HPM SDK
HPMicro Software Development Kit
hpm_lcb_drv.h File Reference
#include "hpm_common.h"
#include "hpm_soc.h"
#include "hpm_lcb_regs.h"

Go to the source code of this file.

Data Structures

struct  lcb_display_mode_config
 
struct  lcb_cam_link_mode_config
 
struct  lcb_config
 
struct  lcb_lvds_phy_data_lane_config
 
struct  lcb_lvds_phy_clk_lane_config
 

Typedefs

typedef enum lcb_rxclk_sel lcb_rxclk_sel_t
 
typedef enum lcb_mode lcb_mode_t
 
typedef enum lcb_display_mode_mapping lcb_display_mode_mapping_t
 
typedef enum lcb_display_mode_data_width lcb_display_mode_data_width_t
 
typedef struct lcb_display_mode_config lcb_display_mode_config_t
 
typedef enum lcb_cam_link_mode_data_width lcb_cam_link_mode_data_width_t
 
typedef struct lcb_cam_link_mode_config lcb_cam_link_mode_config_t
 
typedef struct lcb_config lcb_config_t
 
typedef enum lcb_lvds_phy_rterm lcb_lvds_phy_rterm_t
 Terminal impedance regulation. More...
 
typedef struct lcb_lvds_phy_data_lane_config lcb_lvds_phy_data_lane_config_t
 
typedef enum lcb_lvds_phy_dll_delay_adj_min_freq lcb_lvds_phy_dll_delay_adj_min_freq_t
 DLL loop delay adjustment minimum frequency. More...
 
typedef struct lcb_lvds_phy_clk_lane_config lcb_lvds_phy_clk_lane_config_t
 
typedef enum lcb_lvds_phy_data_lane_id lcb_lvds_phy_data_lane_id_t
 

Enumerations

enum  lcb_rxclk_sel { lcb_rxclk_sel_phy0 = 0 , lcb_rxclk_sel_phy1 = 1 }
 
enum  lcb_mode { lcb_mode_display = 0 , lcb_mode_cam_link = 1 }
 
enum  lcb_display_mode_mapping { lcb_display_mode_mapping_vesa = 0 , lcb_display_mode_mapping_jeida = 1 }
 
enum  lcb_display_mode_data_width { lcb_display_mode_data_width_18bit = 0 , lcb_display_mode_data_width_24bit = 1 }
 
enum  lcb_cam_link_mode_data_width { lcb_cam_link_mode_data_width_24bit = 0 , lcb_cam_link_mode_data_width_30bit = 1 , lcb_cam_link_mode_data_width_36bit = 1 }
 
enum  lcb_lvds_phy_rterm { lcb_lvds_phy_rterm_hi_z = 0 , lcb_lvds_phy_rterm_150_ohm = 1 , lcb_lvds_phy_rterm_100_ohm = 8 , lcb_lvds_phy_rterm_75_ohm = 15 }
 Terminal impedance regulation. More...
 
enum  lcb_lvds_phy_dll_delay_adj_min_freq { lcb_lvds_phy_dll_delay_adj_min_freq_40_70mhz = 0 , lcb_lvds_phy_dll_delay_adj_min_freq_70_110mhz = 0 }
 DLL loop delay adjustment minimum frequency. More...
 
enum  lcb_lvds_phy_data_lane_id { lcb_lvds_phy_data_lane_id_0 = 0 , lcb_lvds_phy_data_lane_id_1 = 1 }
 

Functions

void lcb_get_default_config (lcb_config_t *cfg)
 get LCB of default config More...
 
void lcb_init (LCB_Type *ptr, lcb_config_t *cfg)
 LCB init. More...
 
void lcb_get_phy_clk_lane_default_config (lcb_lvds_phy_clk_lane_config_t *cfg)
 get LCB clk_lane of default config More...
 
void lcb_get_phy_data_lane_default_config (lcb_lvds_phy_data_lane_config_t *cfg)
 get LCB data_lane of default config More...
 
void lcb_lvds_phy0_data_lane_config (LCB_Type *ptr, lcb_lvds_phy_data_lane_config_t *cfg, lcb_lvds_phy_data_lane_id_t lane_id)
 LCB phy0 data lane config. More...
 
void lcb_lvds_phy0_clk_lane_config (LCB_Type *ptr, lcb_lvds_phy_clk_lane_config_t *cfg)
 LCB phy0 clk lane config. More...
 
void lcb_lvds_phy1_data_lane_config (LCB_Type *ptr, lcb_lvds_phy_data_lane_config_t *cfg, lcb_lvds_phy_data_lane_id_t lane_id)
 LCB phy1 data lane config. More...
 
void lcb_lvds_phy1_clk_lane_config (LCB_Type *ptr, lcb_lvds_phy_clk_lane_config_t *cfg)
 LCB phy1 clk lane config. More...
 
void lcb_lvds_phy0_poweron (LCB_Type *ptr)
 power on LCB phy0 More...
 
void lcb_lvds_phy1_poweron (LCB_Type *ptr)
 power on LCB phy1 More...
 
void lcb_lvds_phy0_powerdown (LCB_Type *ptr)
 power down LCB phy0 More...
 
void lcb_lvds_phy1_powerdown (LCB_Type *ptr)
 power on LCB phy1 More...
 
static bool lcb_lvds_phy0_dll_is_lock (LCB_Type *ptr)
 check LCB phy0 is lock More...
 
static bool lcb_lvds_phy1_dll_is_lock (LCB_Type *ptr)
 check LCB phy1 is lock More...
 
static bool lcb_lvds_display_phy_dll_is_lock (LCB_Type *ptr)
 check LCB display phy is lock More...