HPM SDK
HPMicro Software Development Kit
PIXELMUX driver APIs

PIXELMUX APIs. More...

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...
 

Detailed Description

PIXELMUX APIs.

Macro Definition Documentation

◆ PIXELMUX_LVDS_TX_PHY_DATA_LANE_FREQ_MAX

#define PIXELMUX_LVDS_TX_PHY_DATA_LANE_FREQ_MAX   1000000000UL

◆ PIXELMUX_LVDS_TX_PHY_PFD_FREQ_MAX

#define PIXELMUX_LVDS_TX_PHY_PFD_FREQ_MAX   40000000UL

◆ PIXELMUX_LVDS_TX_PHY_PFD_FREQ_MIN

#define PIXELMUX_LVDS_TX_PHY_PFD_FREQ_MIN   10000000UL

◆ PIXELMUX_LVDS_TX_PHY_VCO_FREQ_MAX

#define PIXELMUX_LVDS_TX_PHY_VCO_FREQ_MAX   4000000000UL

◆ PIXELMUX_LVDS_TX_PHY_VCO_FREQ_MIN

#define PIXELMUX_LVDS_TX_PHY_VCO_FREQ_MIN   2000000000UL

Typedef Documentation

◆ lvds_phy_clk_param_t

◆ lvds_phy_clk_reg_t

◆ pixelmux_rx_phy_mode_t

◆ pixelmux_tx_phy_mode_t

Enumeration Type Documentation

◆ pixelmux_cam0_select_t

#include <drivers/inc/hpm_pixelmux_drv.h>

cam0 pixel data source

Enumerator
pixelmux_cam0_sel_dvp 
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 

◆ pixelmux_cam1_select_t

#include <drivers/inc/hpm_pixelmux_drv.h>

cam1 pixel data source

Enumerator
pixelmux_cam1_sel_dvp 
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 

◆ pixelmux_gwc0_select_t

#include <drivers/inc/hpm_pixelmux_drv.h>

gwc0 pixel data source

Enumerator
pixelmux_gwc0_sel_lcdc0 
pixelmux_gwc0_sel_lcdc1 

◆ pixelmux_gwc1_select_t

#include <drivers/inc/hpm_pixelmux_drv.h>

gwc1 pixel data source

Enumerator
pixelmux_gwc1_sel_lcdc0 
pixelmux_gwc1_sel_lcdc1 

◆ pixelmux_lvb_di0_select_t

#include <drivers/inc/hpm_pixelmux_drv.h>

lvb di0 pixel data source

Enumerator
pixelmux_lvb_di0_sel_lcdc0 
pixelmux_lvb_di0_sel_lcdc1 

◆ pixelmux_lvb_di1_select_t

#include <drivers/inc/hpm_pixelmux_drv.h>

lvb di1 pixel data source

Enumerator
pixelmux_lvb_di1_sel_lcdc0 
pixelmux_lvb_di1_sel_lcdc1 

◆ pixelmux_mipi_dsi0_select_t

#include <drivers/inc/hpm_pixelmux_drv.h>

mipi dsi0 pixel data source

Enumerator
pixelmux_mipi_dsi0_sel_lcdc0 
pixelmux_mipi_dsi0_sel_lcdc1 

◆ pixelmux_mipi_dsi1_select_t

#include <drivers/inc/hpm_pixelmux_drv.h>

mipi dsi1 pixel data source

Enumerator
pixelmux_mipi_dsi1_sel_lcdc0 
pixelmux_mipi_dsi1_sel_lcdc1 

◆ pixelmux_mipi_dsi_data_type_t

#include <drivers/inc/hpm_pixelmux_drv.h>

mipi dsi pixel data type

Enumerator
pixelmux_mipi_dsi_data_type_rgb565 
pixelmux_mipi_dsi_data_type_rgb666 
pixelmux_mipi_dsi_data_type_rgb666_packed 
pixelmux_mipi_dsi_data_type_rgb888 

◆ pixelmux_rgb_select_t

#include <drivers/inc/hpm_pixelmux_drv.h>

rgb interface pixel data source

Enumerator
pixelmux_rgb_sel_lcdc0 
pixelmux_rgb_sel_lcdc1 

◆ pixelmux_rx_phy_mode

#include <drivers/inc/hpm_pixelmux_drv.h>

Enumerator
pixelmux_rx_phy_mode_gpio 
pixelmux_rx_phy_mode_lvds 
pixelmux_rx_phy_mode_mipi 
pixelmux_rx_phy_mode_lvds_camera 

◆ pixelmux_tx_phy_mode

#include <drivers/inc/hpm_pixelmux_drv.h>

Enumerator
pixelmux_tx_phy_mode_gpio 
pixelmux_tx_phy_mode_lvds 
pixelmux_tx_phy_mode_mipi 

Function Documentation

◆ pixelmux_cam0_data_source_disable()

void pixelmux_cam0_data_source_disable ( void  )

#include <drivers/inc/hpm_pixelmux_drv.h>

disable camera0 pixel data source

◆ pixelmux_cam0_data_source_enable()

void pixelmux_cam0_data_source_enable ( pixelmux_cam0_select_t  src)

#include <drivers/inc/hpm_pixelmux_drv.h>

select pixel data source and enable for camera0

Parameters
[in]srccamera0 pixel data source options

◆ pixelmux_cam1_data_source_disable()

void pixelmux_cam1_data_source_disable ( void  )

#include <drivers/inc/hpm_pixelmux_drv.h>

disable camera1 pixel data source

◆ pixelmux_cam1_data_source_enable()

void pixelmux_cam1_data_source_enable ( pixelmux_cam1_select_t  src)

#include <drivers/inc/hpm_pixelmux_drv.h>

select pixel data source and enable for camera1

Parameters
[in]srccamera1 pixel data source options

◆ pixelmux_config_lvds_tx_phy0_clk()

void pixelmux_config_lvds_tx_phy0_clk ( const lvds_phy_clk_reg_t clk_reg)

#include <drivers/inc/hpm_pixelmux_drv.h>

config lvds tx phy0 clock

Parameters
[in]clk_regphy register config

◆ pixelmux_config_lvds_tx_phy1_clk()

void pixelmux_config_lvds_tx_phy1_clk ( const lvds_phy_clk_reg_t clk_reg)

#include <drivers/inc/hpm_pixelmux_drv.h>

config lvds tx phy1 clock

Parameters
[in]clk_regphy register config

◆ pixelmux_config_rx_phy0_mode()

void pixelmux_config_rx_phy0_mode ( pixelmux_rx_phy_mode_t  mode)

#include <drivers/inc/hpm_pixelmux_drv.h>

config rx phy0 mode

Parameters
[in]modephy mode

◆ pixelmux_config_rx_phy1_mode()

void pixelmux_config_rx_phy1_mode ( pixelmux_rx_phy_mode_t  mode)

#include <drivers/inc/hpm_pixelmux_drv.h>

config rx phy1 mode

Parameters
[in]modephy mode

◆ pixelmux_config_tx_phy0_mode()

void pixelmux_config_tx_phy0_mode ( pixelmux_tx_phy_mode_t  mode)

#include <drivers/inc/hpm_pixelmux_drv.h>

config tx phy0 mode

Parameters
[in]modephy mode

◆ pixelmux_config_tx_phy1_mode()

void pixelmux_config_tx_phy1_mode ( pixelmux_tx_phy_mode_t  mode)

#include <drivers/inc/hpm_pixelmux_drv.h>

config tx phy1 mode

Parameters
[in]modephy mode

◆ pixelmux_gwc0_data_source_disable()

void pixelmux_gwc0_data_source_disable ( void  )

#include <drivers/inc/hpm_pixelmux_drv.h>

disable gwc0 pixel data source

◆ pixelmux_gwc0_data_source_enable()

void pixelmux_gwc0_data_source_enable ( pixelmux_gwc0_select_t  src)

#include <drivers/inc/hpm_pixelmux_drv.h>

select pixel data source and enable for gwc0

Parameters
[in]srcgwc0 pixel data source options

◆ pixelmux_gwc1_data_source_disable()

void pixelmux_gwc1_data_source_disable ( void  )

#include <drivers/inc/hpm_pixelmux_drv.h>

disable gwc1 pixel data source

◆ pixelmux_gwc1_data_source_enable()

void pixelmux_gwc1_data_source_enable ( pixelmux_gwc1_select_t  src)

#include <drivers/inc/hpm_pixelmux_drv.h>

select pixel data source and enable for gwc1

Parameters
[in]srcgwc1 pixel data source options

◆ pixelmux_lvb_di0_data_source_disable()

void pixelmux_lvb_di0_data_source_disable ( void  )

#include <drivers/inc/hpm_pixelmux_drv.h>

disable lvb di0 pixel data source

◆ pixelmux_lvb_di0_data_source_enable()

void pixelmux_lvb_di0_data_source_enable ( pixelmux_lvb_di0_select_t  src)

#include <drivers/inc/hpm_pixelmux_drv.h>

select pixel data source and enable for lvb di0

Parameters
[in]srclvb di0 pixel data source options

◆ pixelmux_lvb_di1_data_source_disable()

void pixelmux_lvb_di1_data_source_disable ( void  )

#include <drivers/inc/hpm_pixelmux_drv.h>

disable lvb di1 pixel data source

◆ pixelmux_lvb_di1_data_source_enable()

void pixelmux_lvb_di1_data_source_enable ( pixelmux_lvb_di1_select_t  src)

#include <drivers/inc/hpm_pixelmux_drv.h>

select pixel data source and enable for lvb di1

Parameters
[in]srclvb di1 pixel data source options

◆ pixelmux_lvds_phy_calc_pll_cfg()

hpm_stat_t pixelmux_lvds_phy_calc_pll_cfg ( uint32_t  pixel_freq_hz,
bool  is_split,
lvds_phy_clk_param_t param 
)

#include <drivers/inc/hpm_pixelmux_drv.h>

calculate pll config base pixel frequency

Parameters
[in]pixel_freq_hzlcdc pixel frequency
[in]is_split1: enable split mode, 0: disable split mode
[out]paramuse for lvds phy config
Returns
status

◆ pixelmux_mipi_dsi0_data_source_disable()

void pixelmux_mipi_dsi0_data_source_disable ( void  )

#include <drivers/inc/hpm_pixelmux_drv.h>

disable mipi dsi0 pixel data source

◆ pixelmux_mipi_dsi0_data_source_enable()

void pixelmux_mipi_dsi0_data_source_enable ( pixelmux_mipi_dsi0_select_t  src)

#include <drivers/inc/hpm_pixelmux_drv.h>

select pixel data source and enable for mipi dsi0

Parameters
[in]srcmipi dsi0 pixel data source options

◆ pixelmux_mipi_dsi0_set_data_type()

void pixelmux_mipi_dsi0_set_data_type ( pixelmux_mipi_dsi_data_type_t  type)

#include <drivers/inc/hpm_pixelmux_drv.h>

set data type for mipi dsi0

Parameters
[in]typemipi dsi data type

◆ pixelmux_mipi_dsi1_data_source_disable()

void pixelmux_mipi_dsi1_data_source_disable ( void  )

#include <drivers/inc/hpm_pixelmux_drv.h>

disable mipi dis1 pixel data source

◆ pixelmux_mipi_dsi1_data_source_enable()

void pixelmux_mipi_dsi1_data_source_enable ( pixelmux_mipi_dsi1_select_t  src)

#include <drivers/inc/hpm_pixelmux_drv.h>

select pixel data source and enable for mipi dsi1

Parameters
[in]srcmipi dsi1 pixel data source options

◆ pixelmux_mipi_dsi1_set_data_type()

void pixelmux_mipi_dsi1_set_data_type ( pixelmux_mipi_dsi_data_type_t  type)

#include <drivers/inc/hpm_pixelmux_drv.h>

set data type for mipi dsi1

Parameters
[in]typemipi dsi data type

◆ pixelmux_rgb_data_source_disable()

void pixelmux_rgb_data_source_disable ( void  )

#include <drivers/inc/hpm_pixelmux_drv.h>

disable rgb interface pixel data source

◆ pixelmux_rgb_data_source_enable()

void pixelmux_rgb_data_source_enable ( pixelmux_rgb_select_t  src)

#include <drivers/inc/hpm_pixelmux_drv.h>

select pixel data source and enable for rgb interface

Parameters
[in]srcrgb pixel data source options