coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
qmpv4_usb_phy.c File Reference
#include <timer.h>
#include <soc/usb/qmp_usb_phy.h>
#include <soc/addressmap.h>
Include dependency graph for qmpv4_usb_phy.c:

Go to the source code of this file.

Data Structures

struct  usb3_phy_qserdes_com_reg_layout
 
struct  usb3_phy_qserdes_tx_reg_layout
 
struct  usb3_phy_qserdes_rx_reg_layout
 
struct  usb3_phy_pcs_reg_layout
 

Functions

 check_member (usb3_phy_qserdes_com_reg_layout, com_ssc_en_center, 0x010)
 
 check_member (usb3_phy_qserdes_com_reg_layout, com_ssc_adj_per1, 0x014)
 
 check_member (usb3_phy_qserdes_com_reg_layout, com_ssc_adj_per2, 0x018)
 
 check_member (usb3_phy_qserdes_com_reg_layout, com_ssc_per1, 0x01c)
 
 check_member (usb3_phy_qserdes_com_reg_layout, com_ssc_per2, 0x020)
 
 check_member (usb3_phy_qserdes_com_reg_layout, com_bias_en_clkbuflr_en, 0x044)
 
 check_member (usb3_phy_qserdes_com_reg_layout, com_pll_ivco, 0x058)
 
 check_member (usb3_phy_qserdes_com_reg_layout, com_cp_ctrl_mode0, 0x074)
 
 check_member (usb3_phy_qserdes_com_reg_layout, com_sysclk_en_sel, 0x094)
 
 check_member (usb3_phy_qserdes_com_reg_layout, com_resetsm_ctrl2, 0x0a0)
 
 check_member (usb3_phy_qserdes_com_reg_layout, com_dec_start_mode0, 0x0bc)
 
 check_member (usb3_phy_qserdes_com_reg_layout, com_div_frac_start1_mode0, 0x0cc)
 
 check_member (usb3_phy_qserdes_com_reg_layout, com_integloop_gain0_mode0, 0x0ec)
 
 check_member (usb3_phy_qserdes_com_reg_layout, com_vco_tune_map, 0x010c)
 
 check_member (usb3_phy_qserdes_com_reg_layout, com_clk_select, 0x154)
 
 check_member (usb3_phy_qserdes_com_reg_layout, com_coreclk_div_mode0, 0x168)
 
 check_member (usb3_phy_qserdes_com_reg_layout, com_core_clk_en, 0x174)
 
 check_member (usb3_phy_qserdes_com_reg_layout, com_svs_mode_clk_sel, 0x184)
 
 check_member (usb3_phy_qserdes_com_reg_layout, com_bin_vcocal_hsclk_sel, 0x1bc)
 
 check_member (usb3_phy_qserdes_tx_reg_layout, tx_res_code_lane_offset_tx, 0x03c)
 
 check_member (usb3_phy_qserdes_tx_reg_layout, tx_res_code_lane_offset_rx, 0x040)
 
 check_member (usb3_phy_qserdes_tx_reg_layout, tx_lane_mode_1, 0x084)
 
 check_member (usb3_phy_qserdes_tx_reg_layout, tx_rcv_detect_lvl_2, 0x09c)
 
 check_member (usb3_phy_qserdes_tx_reg_layout, tx_pi_qec_ctrl, 0x104)
 
 check_member (usb3_phy_qserdes_rx_reg_layout, rx_ucdr_so_gain, 0x014)
 
 check_member (usb3_phy_qserdes_rx_reg_layout, rx_ucdr_fastlock_fo_gain, 0x030)
 
 check_member (usb3_phy_qserdes_rx_reg_layout, rx_vga_cal_cntrl1, 0x0d4)
 
 check_member (usb3_phy_qserdes_rx_reg_layout, rx_rx_equ_adaptor_cntrl2, 0x0ec)
 
 check_member (usb3_phy_qserdes_rx_reg_layout, rx_rx_equ_adaptor_cntrl3, 0x0f0)
 
 check_member (usb3_phy_qserdes_rx_reg_layout, rx_rx_equ_adaptor_cntrl4, 0x0f4)
 
 check_member (usb3_phy_qserdes_rx_reg_layout, rx_sigdet_cntrl, 0x11c)
 
 check_member (usb3_phy_qserdes_rx_reg_layout, rx_dcc_ctrl1, 0x1bc)
 
 check_member (usb3_phy_qserdes_rx_reg_layout, rx_vth_code, 0x1c4)
 
 check_member (usb3_phy_pcs_reg_layout, pcs_lock_detect_config1, 0x0c4)
 
 check_member (usb3_phy_pcs_reg_layout, pcs_lock_detect_config2, 0x0c8)
 
 check_member (usb3_phy_pcs_reg_layout, pcs_lock_detect_config6, 0x0d8)
 
 check_member (usb3_phy_pcs_reg_layout, pcs_pcs_tx_rx_config, 0x1d0)
 
 check_member (usb3_phy_pcs_reg_layout, pcs_eq_config5, 0x1ec)
 
 check_member (usb3_phy_pcs_reg_layout, pcs_usb3_lfps_det_high_count_val, 0x318)
 
 check_member (usb3_phy_pcs_reg_layout, pcs_usb3_rxeqtraining_dfe_time_s2, 0x338)
 
static void qcom_qmp_phy_configure (const struct qmp_phy_init_tbl tbl[], int num)
 
void ss_qmp_phy_init (void)
 

Variables

static struct usb3_phy_qserdes_com_reg_layout *const qserdes_com_reg_layout
 
static struct usb3_phy_qserdes_tx_reg_layout *const qserdes_tx_reg_layout
 
static struct usb3_phy_qserdes_rx_reg_layout *const qserdes_rx_reg_layout
 
static struct usb3_phy_pcs_reg_layout *const pcs_reg_layout
 
static const struct qmp_phy_init_tbl qmp_v4_usb3_serdes_tbl []
 
static const struct qmp_phy_init_tbl qmp_v4_usb3_tx_tbl []
 
static const struct qmp_phy_init_tbl qmp_v4_usb3_rx_tbl []
 
static const struct qmp_phy_init_tbl qmp_v4_usb3_pcs_tbl []
 
struct ss_usb_phy_reg qmp_v4_usb_phy
 

Function Documentation

◆ check_member() [1/40]

check_member ( usb3_phy_pcs_reg_layout  ,
pcs_eq_config5  ,
0x1ec   
)

◆ check_member() [2/40]

check_member ( usb3_phy_pcs_reg_layout  ,
pcs_lock_detect_config1  ,
0x0c4   
)

◆ check_member() [3/40]

check_member ( usb3_phy_pcs_reg_layout  ,
pcs_lock_detect_config2  ,
0x0c8   
)

◆ check_member() [4/40]

check_member ( usb3_phy_pcs_reg_layout  ,
pcs_lock_detect_config6  ,
0x0d8   
)

◆ check_member() [5/40]

check_member ( usb3_phy_pcs_reg_layout  ,
pcs_pcs_tx_rx_config  ,
0x1d0   
)

◆ check_member() [6/40]

check_member ( usb3_phy_pcs_reg_layout  ,
pcs_usb3_lfps_det_high_count_val  ,
0x318   
)

◆ check_member() [7/40]

check_member ( usb3_phy_pcs_reg_layout  ,
pcs_usb3_rxeqtraining_dfe_time_s2  ,
0x338   
)

◆ check_member() [8/40]

check_member ( usb3_phy_qserdes_com_reg_layout  ,
com_bias_en_clkbuflr_en  ,
0x044   
)

◆ check_member() [9/40]

check_member ( usb3_phy_qserdes_com_reg_layout  ,
com_bin_vcocal_hsclk_sel  ,
0x1bc   
)

◆ check_member() [10/40]

check_member ( usb3_phy_qserdes_com_reg_layout  ,
com_clk_select  ,
0x154   
)

◆ check_member() [11/40]

check_member ( usb3_phy_qserdes_com_reg_layout  ,
com_core_clk_en  ,
0x174   
)

◆ check_member() [12/40]

check_member ( usb3_phy_qserdes_com_reg_layout  ,
com_coreclk_div_mode0  ,
0x168   
)

◆ check_member() [13/40]

check_member ( usb3_phy_qserdes_com_reg_layout  ,
com_cp_ctrl_mode0  ,
0x074   
)

◆ check_member() [14/40]

check_member ( usb3_phy_qserdes_com_reg_layout  ,
com_dec_start_mode0  ,
0x0bc   
)

◆ check_member() [15/40]

check_member ( usb3_phy_qserdes_com_reg_layout  ,
com_div_frac_start1_mode0  ,
0x0cc   
)

◆ check_member() [16/40]

check_member ( usb3_phy_qserdes_com_reg_layout  ,
com_integloop_gain0_mode0  ,
0x0ec   
)

◆ check_member() [17/40]

check_member ( usb3_phy_qserdes_com_reg_layout  ,
com_pll_ivco  ,
0x058   
)

◆ check_member() [18/40]

check_member ( usb3_phy_qserdes_com_reg_layout  ,
com_resetsm_ctrl2  ,
0x0a0   
)

◆ check_member() [19/40]

check_member ( usb3_phy_qserdes_com_reg_layout  ,
com_ssc_adj_per1  ,
0x014   
)

◆ check_member() [20/40]

check_member ( usb3_phy_qserdes_com_reg_layout  ,
com_ssc_adj_per2  ,
0x018   
)

◆ check_member() [21/40]

check_member ( usb3_phy_qserdes_com_reg_layout  ,
com_ssc_en_center  ,
0x010   
)

◆ check_member() [22/40]

check_member ( usb3_phy_qserdes_com_reg_layout  ,
com_ssc_per1  ,
0x01c   
)

◆ check_member() [23/40]

check_member ( usb3_phy_qserdes_com_reg_layout  ,
com_ssc_per2  ,
0x020   
)

◆ check_member() [24/40]

check_member ( usb3_phy_qserdes_com_reg_layout  ,
com_svs_mode_clk_sel  ,
0x184   
)

◆ check_member() [25/40]

check_member ( usb3_phy_qserdes_com_reg_layout  ,
com_sysclk_en_sel  ,
0x094   
)

◆ check_member() [26/40]

check_member ( usb3_phy_qserdes_com_reg_layout  ,
com_vco_tune_map  ,
0x010c   
)

◆ check_member() [27/40]

check_member ( usb3_phy_qserdes_rx_reg_layout  ,
rx_dcc_ctrl1  ,
0x1bc   
)

◆ check_member() [28/40]

check_member ( usb3_phy_qserdes_rx_reg_layout  ,
rx_rx_equ_adaptor_cntrl2  ,
0x0ec   
)

◆ check_member() [29/40]

check_member ( usb3_phy_qserdes_rx_reg_layout  ,
rx_rx_equ_adaptor_cntrl3  ,
0x0f0   
)

◆ check_member() [30/40]

check_member ( usb3_phy_qserdes_rx_reg_layout  ,
rx_rx_equ_adaptor_cntrl4  ,
0x0f4   
)

◆ check_member() [31/40]

check_member ( usb3_phy_qserdes_rx_reg_layout  ,
rx_sigdet_cntrl  ,
0x11c   
)

◆ check_member() [32/40]

check_member ( usb3_phy_qserdes_rx_reg_layout  ,
rx_ucdr_fastlock_fo_gain  ,
0x030   
)

◆ check_member() [33/40]

check_member ( usb3_phy_qserdes_rx_reg_layout  ,
rx_ucdr_so_gain  ,
0x014   
)

◆ check_member() [34/40]

check_member ( usb3_phy_qserdes_rx_reg_layout  ,
rx_vga_cal_cntrl1  ,
0x0d4   
)

◆ check_member() [35/40]

check_member ( usb3_phy_qserdes_rx_reg_layout  ,
rx_vth_code  ,
0x1c4   
)

◆ check_member() [36/40]

check_member ( usb3_phy_qserdes_tx_reg_layout  ,
tx_lane_mode_1  ,
0x084   
)

◆ check_member() [37/40]

check_member ( usb3_phy_qserdes_tx_reg_layout  ,
tx_pi_qec_ctrl  ,
0x104   
)

◆ check_member() [38/40]

check_member ( usb3_phy_qserdes_tx_reg_layout  ,
tx_rcv_detect_lvl_2  ,
0x09c   
)

◆ check_member() [39/40]

check_member ( usb3_phy_qserdes_tx_reg_layout  ,
tx_res_code_lane_offset_rx  ,
0x040   
)

◆ check_member() [40/40]

check_member ( usb3_phy_qserdes_tx_reg_layout  ,
tx_res_code_lane_offset_tx  ,
0x03c   
)

◆ qcom_qmp_phy_configure()

static void qcom_qmp_phy_configure ( const struct qmp_phy_init_tbl  tbl[],
int  num 
)
static

Definition at line 363 of file qmpv4_usb_phy.c.

References qmp_phy_init_tbl::address, qmp_phy_init_tbl::val, and write32().

Referenced by ss_qmp_phy_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ss_qmp_phy_init()

Variable Documentation

◆ pcs_reg_layout

struct usb3_phy_pcs_reg_layout* const pcs_reg_layout
static
Initial value:
=
#define QMP_PHY_PCS_REG_BASE
Definition: addressmap.h:46

Definition at line 238 of file qmpv4_usb_phy.c.

◆ qmp_v4_usb3_pcs_tbl

const struct qmp_phy_init_tbl qmp_v4_usb3_pcs_tbl[]
static
Initial value:
= {
}
static struct usb3_phy_pcs_reg_layout *const pcs_reg_layout

Definition at line 238 of file qmpv4_usb_phy.c.

◆ qmp_v4_usb3_rx_tbl

const struct qmp_phy_init_tbl qmp_v4_usb3_rx_tbl[]
static

Definition at line 238 of file qmpv4_usb_phy.c.

◆ qmp_v4_usb3_serdes_tbl

const struct qmp_phy_init_tbl qmp_v4_usb3_serdes_tbl[]
static

Definition at line 238 of file qmpv4_usb_phy.c.

◆ qmp_v4_usb3_tx_tbl

◆ qmp_v4_usb_phy

struct ss_usb_phy_reg qmp_v4_usb_phy
Initial value:
= {
.serdes_tbl = qmp_v4_usb3_serdes_tbl,
.serdes_tbl_num = ARRAY_SIZE(qmp_v4_usb3_serdes_tbl),
.tx_tbl = qmp_v4_usb3_tx_tbl,
.rx_tbl = qmp_v4_usb3_rx_tbl,
.pcs_tbl = qmp_v4_usb3_pcs_tbl,
.qmp_pcs_reg = (void *)QMP_PHY_PCS_REG_BASE,
}
#define ARRAY_SIZE(a)
Definition: helpers.h:12
static const struct qmp_phy_init_tbl qmp_v4_usb3_tx_tbl[]
static const struct qmp_phy_init_tbl qmp_v4_usb3_rx_tbl[]
static const struct qmp_phy_init_tbl qmp_v4_usb3_serdes_tbl[]
static const struct qmp_phy_init_tbl qmp_v4_usb3_pcs_tbl[]

Definition at line 238 of file qmpv4_usb_phy.c.

Referenced by ss_qmp_phy_init().

◆ qserdes_com_reg_layout

struct usb3_phy_qserdes_com_reg_layout* const qserdes_com_reg_layout
static
Initial value:
=
#define QMP_PHY_QSERDES_COM_REG_BASE
Definition: addressmap.h:43

Definition at line 232 of file qmpv4_usb_phy.c.

◆ qserdes_rx_reg_layout

struct usb3_phy_qserdes_rx_reg_layout* const qserdes_rx_reg_layout
static
Initial value:
=
#define QMP_PHY_QSERDES_RX_REG_BASE
Definition: addressmap.h:45

Definition at line 236 of file qmpv4_usb_phy.c.

◆ qserdes_tx_reg_layout

struct usb3_phy_qserdes_tx_reg_layout* const qserdes_tx_reg_layout
static
Initial value:
=
#define QMP_PHY_QSERDES_TX_REG_BASE
Definition: addressmap.h:44

Definition at line 234 of file qmpv4_usb_phy.c.