HPM SDK
HPMicro Software Development Kit
hpm_pixelmux_drv.h File Reference
#include "hpm_common.h"
#include "hpm_soc.h"
#include "hpm_pixelmux_regs.h"

Go to the source code of this file.

Data Structures

struct  lvds_phy_clk_reg
 
struct  lvds_phy_clk_param
 

Macros

#define PIXELMUX_LVDS_TX_PHY_PFD_FREQ_MAX   40000000UL
 
#define PIXELMUX_LVDS_TX_PHY_PFD_FREQ_MIN   10000000UL
 
#define PIXELMUX_LVDS_TX_PHY_VCO_FREQ_MAX   4000000000UL
 
#define PIXELMUX_LVDS_TX_PHY_VCO_FREQ_MIN   2000000000UL
 
#define PIXELMUX_LVDS_TX_PHY_DATA_LANE_FREQ_MAX   1000000000UL
 

Typedefs

typedef struct lvds_phy_clk_reg lvds_phy_clk_reg_t
 
typedef struct lvds_phy_clk_param lvds_phy_clk_param_t
 
typedef enum pixelmux_tx_phy_mode pixelmux_tx_phy_mode_t
 
typedef enum pixelmux_rx_phy_mode pixelmux_rx_phy_mode_t
 

Enumerations

enum  pixelmux_rgb_select_t { pixelmux_rgb_sel_lcdc0 = 0 , pixelmux_rgb_sel_lcdc1 }
 rgb interface pixel data source More...
 
enum  pixelmux_gwc1_select_t { pixelmux_gwc1_sel_lcdc0 = 0 , pixelmux_gwc1_sel_lcdc1 }
 gwc1 pixel data source More...
 
enum  pixelmux_gwc0_select_t { pixelmux_gwc0_sel_lcdc0 = 0 , pixelmux_gwc0_sel_lcdc1 }
 gwc0 pixel data source More...
 
enum  pixelmux_lvb_di1_select_t { pixelmux_lvb_di1_sel_lcdc0 = 0 , pixelmux_lvb_di1_sel_lcdc1 }
 lvb di1 pixel data source More...
 
enum  pixelmux_lvb_di0_select_t { pixelmux_lvb_di0_sel_lcdc0 = 0 , pixelmux_lvb_di0_sel_lcdc1 }
 lvb di0 pixel data source More...
 
enum  pixelmux_mipi_dsi1_select_t { pixelmux_mipi_dsi1_sel_lcdc0 = 0 , pixelmux_mipi_dsi1_sel_lcdc1 }
 mipi dsi1 pixel data source More...
 
enum  pixelmux_mipi_dsi0_select_t { pixelmux_mipi_dsi0_sel_lcdc0 = 0 , pixelmux_mipi_dsi0_sel_lcdc1 }
 mipi dsi0 pixel data source More...
 
enum  pixelmux_mipi_dsi_data_type_t { pixelmux_mipi_dsi_data_type_rgb565 = 0 , pixelmux_mipi_dsi_data_type_rgb666 = 3 , pixelmux_mipi_dsi_data_type_rgb666_packed = 4 , pixelmux_mipi_dsi_data_type_rgb888 = 5 }
 mipi dsi pixel data type More...
 
enum  pixelmux_cam1_select_t {
  pixelmux_cam1_sel_dvp = 0 , pixelmux_cam1_sel_mipi_csi0 , pixelmux_cam1_sel_mipi_csi1 , pixelmux_cam1_sel_lcdc0 ,
  pixelmux_cam1_sel_lcdc1 , pixelmux_cam1_sel_lcb_do0 , pixelmux_cam1_sel_lcb_do1
}
 cam1 pixel data source More...
 
enum  pixelmux_cam0_select_t {
  pixelmux_cam0_sel_dvp = 0 , pixelmux_cam0_sel_mipi_csi0 , pixelmux_cam0_sel_mipi_csi1 , pixelmux_cam0_sel_lcdc0 ,
  pixelmux_cam0_sel_lcdc1 , pixelmux_cam0_sel_lcb_do0 , pixelmux_cam0_sel_lcb_do1
}
 cam0 pixel data source More...
 
enum  pixelmux_tx_phy_mode { pixelmux_tx_phy_mode_gpio = 0 , pixelmux_tx_phy_mode_lvds = 1 , pixelmux_tx_phy_mode_mipi = 2 }
 
enum  pixelmux_rx_phy_mode { pixelmux_rx_phy_mode_gpio = 0 , pixelmux_rx_phy_mode_lvds = 1 , pixelmux_rx_phy_mode_mipi = 2 , pixelmux_rx_phy_mode_lvds_camera = 3 }
 

Functions

void pixelmux_rgb_data_source_enable (pixelmux_rgb_select_t src)
 select pixel data source and enable for rgb interface More...
 
void pixelmux_rgb_data_source_disable (void)
 disable rgb interface pixel data source More...
 
void pixelmux_gwc1_data_source_enable (pixelmux_gwc1_select_t src)
 select pixel data source and enable for gwc1 More...
 
void pixelmux_gwc1_data_source_disable (void)
 disable gwc1 pixel data source More...
 
void pixelmux_gwc0_data_source_enable (pixelmux_gwc0_select_t src)
 select pixel data source and enable for gwc0 More...
 
void pixelmux_gwc0_data_source_disable (void)
 disable gwc0 pixel data source More...
 
void pixelmux_lvb_di1_data_source_enable (pixelmux_lvb_di1_select_t src)
 select pixel data source and enable for lvb di1 More...
 
void pixelmux_lvb_di1_data_source_disable (void)
 disable lvb di1 pixel data source More...
 
void pixelmux_lvb_di0_data_source_enable (pixelmux_lvb_di0_select_t src)
 select pixel data source and enable for lvb di0 More...
 
void pixelmux_lvb_di0_data_source_disable (void)
 disable lvb di0 pixel data source More...
 
void pixelmux_mipi_dsi1_data_source_enable (pixelmux_mipi_dsi1_select_t src)
 select pixel data source and enable for mipi dsi1 More...
 
void pixelmux_mipi_dsi1_data_source_disable (void)
 disable mipi dis1 pixel data source More...
 
void pixelmux_mipi_dsi0_data_source_enable (pixelmux_mipi_dsi0_select_t src)
 select pixel data source and enable for mipi dsi0 More...
 
void pixelmux_mipi_dsi0_data_source_disable (void)
 disable mipi dsi0 pixel data source More...
 
void pixelmux_mipi_dsi1_set_data_type (pixelmux_mipi_dsi_data_type_t type)
 set data type for mipi dsi1 More...
 
void pixelmux_mipi_dsi0_set_data_type (pixelmux_mipi_dsi_data_type_t type)
 set data type for mipi dsi0 More...
 
void pixelmux_cam1_data_source_enable (pixelmux_cam1_select_t src)
 select pixel data source and enable for camera1 More...
 
void pixelmux_cam1_data_source_disable (void)
 disable camera1 pixel data source More...
 
void pixelmux_cam0_data_source_enable (pixelmux_cam0_select_t src)
 select pixel data source and enable for camera0 More...
 
void pixelmux_cam0_data_source_disable (void)
 disable camera0 pixel data source More...
 
hpm_stat_t pixelmux_lvds_phy_calc_pll_cfg (uint32_t pixel_freq_hz, bool is_split, lvds_phy_clk_param_t *param)
 calculate pll config base pixel frequency More...
 
void pixelmux_config_tx_phy0_mode (pixelmux_tx_phy_mode_t mode)
 config tx phy0 mode More...
 
void pixelmux_config_tx_phy1_mode (pixelmux_tx_phy_mode_t mode)
 config tx phy1 mode More...
 
void pixelmux_config_lvds_tx_phy0_clk (const lvds_phy_clk_reg_t *clk_reg)
 config lvds tx phy0 clock More...
 
void pixelmux_config_lvds_tx_phy1_clk (const lvds_phy_clk_reg_t *clk_reg)
 config lvds tx phy1 clock More...
 
void pixelmux_config_rx_phy0_mode (pixelmux_rx_phy_mode_t mode)
 config rx phy0 mode More...
 
void pixelmux_config_rx_phy1_mode (pixelmux_rx_phy_mode_t mode)
 config rx phy1 mode More...