HPM SDK
HPMicro Software Development Kit
LCB driver APIs

LCB APIs. More...

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

Detailed Description

LCB APIs.

Typedef Documentation

◆ lcb_cam_link_mode_config_t

◆ lcb_cam_link_mode_data_width_t

◆ lcb_config_t

◆ lcb_display_mode_config_t

◆ lcb_display_mode_data_width_t

◆ lcb_display_mode_mapping_t

◆ lcb_lvds_phy_clk_lane_config_t

◆ lcb_lvds_phy_data_lane_config_t

◆ lcb_lvds_phy_data_lane_id_t

◆ lcb_lvds_phy_dll_delay_adj_min_freq_t

#include <drivers/inc/hpm_lcb_drv.h>

DLL loop delay adjustment minimum frequency.

◆ lcb_lvds_phy_rterm_t

#include <drivers/inc/hpm_lcb_drv.h>

Terminal impedance regulation.

◆ lcb_mode_t

◆ lcb_rxclk_sel_t

Enumeration Type Documentation

◆ lcb_cam_link_mode_data_width

#include <drivers/inc/hpm_lcb_drv.h>

Enumerator
lcb_cam_link_mode_data_width_24bit 
lcb_cam_link_mode_data_width_30bit 
lcb_cam_link_mode_data_width_36bit 

◆ lcb_display_mode_data_width

#include <drivers/inc/hpm_lcb_drv.h>

Enumerator
lcb_display_mode_data_width_18bit 
lcb_display_mode_data_width_24bit 

◆ lcb_display_mode_mapping

#include <drivers/inc/hpm_lcb_drv.h>

Enumerator
lcb_display_mode_mapping_vesa 
lcb_display_mode_mapping_jeida 

◆ lcb_lvds_phy_data_lane_id

#include <drivers/inc/hpm_lcb_drv.h>

Enumerator
lcb_lvds_phy_data_lane_id_0 
lcb_lvds_phy_data_lane_id_1 

◆ lcb_lvds_phy_dll_delay_adj_min_freq

#include <drivers/inc/hpm_lcb_drv.h>

DLL loop delay adjustment minimum frequency.

Enumerator
lcb_lvds_phy_dll_delay_adj_min_freq_40_70mhz 
lcb_lvds_phy_dll_delay_adj_min_freq_70_110mhz 

◆ lcb_lvds_phy_rterm

#include <drivers/inc/hpm_lcb_drv.h>

Terminal impedance regulation.

Enumerator
lcb_lvds_phy_rterm_hi_z 
lcb_lvds_phy_rterm_150_ohm 
lcb_lvds_phy_rterm_100_ohm 
lcb_lvds_phy_rterm_75_ohm 

◆ lcb_mode

enum lcb_mode

#include <drivers/inc/hpm_lcb_drv.h>

Enumerator
lcb_mode_display 
lcb_mode_cam_link 

◆ lcb_rxclk_sel

#include <drivers/inc/hpm_lcb_drv.h>

Enumerator
lcb_rxclk_sel_phy0 
lcb_rxclk_sel_phy1 

Function Documentation

◆ lcb_get_default_config()

void lcb_get_default_config ( lcb_config_t cfg)

#include <drivers/inc/hpm_lcb_drv.h>

get LCB of default config

Parameters
[out]cfgconfig of LCB

◆ lcb_get_phy_clk_lane_default_config()

void lcb_get_phy_clk_lane_default_config ( lcb_lvds_phy_clk_lane_config_t cfg)

#include <drivers/inc/hpm_lcb_drv.h>

get LCB clk_lane of default config

Parameters
[out]cfgconfig of clk_lane

◆ lcb_get_phy_data_lane_default_config()

void lcb_get_phy_data_lane_default_config ( lcb_lvds_phy_data_lane_config_t cfg)

#include <drivers/inc/hpm_lcb_drv.h>

get LCB data_lane of default config

Parameters
[out]cfgconfig of data_lane

◆ lcb_init()

void lcb_init ( LCB_Type ptr,
lcb_config_t cfg 
)

#include <drivers/inc/hpm_lcb_drv.h>

LCB init.

Parameters
[in]ptrLCB base address
[in]cfgconfig of LCB

◆ lcb_lvds_display_phy_dll_is_lock()

static bool lcb_lvds_display_phy_dll_is_lock ( LCB_Type ptr)
inlinestatic

#include <drivers/inc/hpm_lcb_drv.h>

check LCB display phy is lock

Parameters
[in]ptrLCB base address

◆ lcb_lvds_phy0_clk_lane_config()

void lcb_lvds_phy0_clk_lane_config ( LCB_Type ptr,
lcb_lvds_phy_clk_lane_config_t cfg 
)

#include <drivers/inc/hpm_lcb_drv.h>

LCB phy0 clk lane config.

Parameters
[in]ptrLCB base address
[in]cfgconfig of phy0 clk lane

◆ lcb_lvds_phy0_data_lane_config()

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 
)

#include <drivers/inc/hpm_lcb_drv.h>

LCB phy0 data lane config.

Parameters
[in]ptrLCB base address
[in]cfgconfig of phy0 data lane
[in]lane_iddata lane id

◆ lcb_lvds_phy0_dll_is_lock()

static bool lcb_lvds_phy0_dll_is_lock ( LCB_Type ptr)
inlinestatic

#include <drivers/inc/hpm_lcb_drv.h>

check LCB phy0 is lock

Parameters
[in]ptrLCB base address

◆ lcb_lvds_phy0_powerdown()

void lcb_lvds_phy0_powerdown ( LCB_Type ptr)

#include <drivers/inc/hpm_lcb_drv.h>

power down LCB phy0

Parameters
[in]ptrLCB base address

◆ lcb_lvds_phy0_poweron()

void lcb_lvds_phy0_poweron ( LCB_Type ptr)

#include <drivers/inc/hpm_lcb_drv.h>

power on LCB phy0

Parameters
[in]ptrLCB base address

◆ lcb_lvds_phy1_clk_lane_config()

void lcb_lvds_phy1_clk_lane_config ( LCB_Type ptr,
lcb_lvds_phy_clk_lane_config_t cfg 
)

#include <drivers/inc/hpm_lcb_drv.h>

LCB phy1 clk lane config.

Parameters
[in]ptrLCB base address
[in]cfgconfig of phy1 clk lane

◆ lcb_lvds_phy1_data_lane_config()

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 
)

#include <drivers/inc/hpm_lcb_drv.h>

LCB phy1 data lane config.

Parameters
[in]ptrLCB base address
[in]cfgconfig of phy1 data lane
[in]lane_iddata lane id

◆ lcb_lvds_phy1_dll_is_lock()

static bool lcb_lvds_phy1_dll_is_lock ( LCB_Type ptr)
inlinestatic

#include <drivers/inc/hpm_lcb_drv.h>

check LCB phy1 is lock

Parameters
[in]ptrLCB base address

◆ lcb_lvds_phy1_powerdown()

void lcb_lvds_phy1_powerdown ( LCB_Type ptr)

#include <drivers/inc/hpm_lcb_drv.h>

power on LCB phy1

Parameters
[in]ptrLCB base address

◆ lcb_lvds_phy1_poweron()

void lcb_lvds_phy1_poweron ( LCB_Type ptr)

#include <drivers/inc/hpm_lcb_drv.h>

power on LCB phy1

Parameters
[in]ptrLCB base address