kernel_samsung_a53x/drivers/phy/samsung/snps-usbdp-con-reg.h
2024-06-15 16:02:09 -03:00

1379 lines
36 KiB
C
Executable file
Raw Blame History

/* SPDX-License-Identifier: GPL-2.0 */
/**
*
* Copyright (c) 2021 Samsung Electronics Co., Ltd.
* http://www.samsung.com
*
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 of
* the License as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _USB_USBPHY_CAL_SNPS_USBDP_CON_REG_H_
#define _USB_USBPHY_CAL_SNPS_USBDP_CON_REG_H_
#define SNPS_USBDPPHY_REG_PHY_RST_CTRL 0x0000
typedef union {
u32 data;
struct {
/* bit[0] */
unsigned phy_reset : 1;
/* bit[1] */
unsigned phy_reset_ovrd_en : 1;
/* bit[3:2] */
unsigned RSVD3_2 : 2;
/* bit[4] */
unsigned pipe_lane0_reset_n : 1;
/* bit[5] */
unsigned pipe_lane0_reset_n_ovrd_en : 1;
/* bit[31:6] */
unsigned RSVD31_6 : 26;
} b;
} SNPS_USBDPPHY_REG_PHY_RST_CTRL_o, *SNPS_USBDPPHY_REG_PHY_RST_CTRL_p;
#define SNPS_USBDPPHY_REG_PHY_CR_PARA_CON0 0x0004
typedef union {
u32 data;
struct {
/* bit[0] */
unsigned phy0_cr_para_sel : 1;
/* bit[3:1] */
unsigned RSVD3_1 : 3;
/* bit[4] */
unsigned phy0_cr_para_ack : 1;
/* bit[7:5] */
unsigned RSVD7_5 : 3;
/* bit[8] */
unsigned phy0_cr_para_clk : 1;
/* bit[15:9] */
unsigned RSVD15_9 : 7;
/* bit[31:16] */
unsigned phy0_cr_para_addr : 16;
} b;
} SNPS_USBDPPHY_REG_PHY_CR_PARA_CON0_o, *SNPS_USBDPPHY_REG_PHY_CR_PARA_CON0_p;
#define SNPS_USBDPPHY_REG_PHY_CR_PARA_CON1 0x0008
typedef union {
u32 data;
struct {
/* bit[0] */
unsigned phy0_cr_para_rd_en : 1;
/* bit[15:1] */
unsigned RSVD15_1 : 15;
/* bit[31:16] */
unsigned phy0_cr_para_rd_data : 16;
} b;
} SNPS_USBDPPHY_REG_PHY_CR_PARA_CON1_o, *SNPS_USBDPPHY_REG_PHY_CR_PARA_CON1_p;
#define SNPS_USBDPPHY_REG_PHY_CR_PARA_CON2 0x000c
typedef union {
u32 data;
struct {
/* bit[0] */
unsigned phy0_cr_para_wr_en : 1;
/* bit[15:1] */
unsigned RSVD15_1 : 15;
/* bit[31:16] */
unsigned phy0_cr_para_wr_data : 16;
} b;
} SNPS_USBDPPHY_REG_PHY_CR_PARA_CON2_o, *SNPS_USBDPPHY_REG_PHY_CR_PARA_CON2_p;
#define SNPS_USBDPPHY_REG_PHY_CONFIG0 0x0100
typedef union {
u32 data;
struct {
/* bit[0] */
unsigned pg_mode_en : 1;
/* bit[1] */
unsigned phy0_ana_pwr_en : 1;
/* bit[2] */
unsigned phy0_ana_pwr_stable : 1;
/* bit[7:3] */
unsigned phy0_cmn_in_generic_bus : 5;
/* bit[12:8] */
unsigned phy0_cmn_out_generic_bus : 5;
/* bit[13] */
unsigned phy0_hdmimode_enable : 1;
/* bit[14] */
unsigned phy0_pcs_pwr_stable : 1;
/* bit[15] */
unsigned phy0_pma_pwr_stable : 1;
/* bit[16] */
unsigned RSVD16 : 1;
/* bit[17] */
unsigned phy0_ref_alt_clk_lp_sel : 1;
/* bit[18] */
unsigned phy0_ref_repeat_clk_en : 1;
/* bit[19] */
unsigned phy0_ref_use_pad : 1;
/* bit[20] */
unsigned phy0_ss_mplla_force_en : 1;
/* bit[21] */
unsigned phy0_ss_mplla_ssc_en : 1;
/* bit[22] */
unsigned phy0_sup_pre_hp : 1;
/* bit[23] */
unsigned phy_rtune_req : 1;
/* bit[24] */
unsigned phy_rtune_ack : 1;
/* bit[25] */
unsigned phy_ss_lane0_rx2tx_par_lb_en : 1;
/* bit[26] */
unsigned phy_ss_rx0_term_acdc : 1;
/* bit[27] */
unsigned phy_ss_tx0_vregdrv_byp : 1;
/* bit[28] */
unsigned phy_ss_tx0_bypass_eq_calc : 1;
/* bit[31:29] */
unsigned RSVD31_29 : 3;
} b;
} SNPS_USBDPPHY_REG_PHY_CONFIG0_o, *SNPS_USBDPPHY_REG_PHY_CONFIG0_p;
#define SNPS_USBDPPHY_REG_PHY_CONFIG1 0x0104
typedef union {
u32 data;
struct {
/* bit[3:0] */
unsigned pipe_lane0_link_num : 4;
/* bit[5:4] */
unsigned pipe_lane0_phy_src_sel : 2;
/* bit[6] */
unsigned pipe_lane0_tx2rx_loopbk : 1;
/* bit[7] */
unsigned pipe_rx_cdr_legacy_en : 1;
/* bit[8] */
unsigned pipe_rx_recal_cont_en : 1;
/* bit[14:9] */
unsigned pipe_rx0_idle_los_cnt : 6;
/* bit[23:15] */
unsigned pipe_rx0_ebuff_location : 9;
/* bit[24] */
unsigned ext_pclk_req : 1;
/* bit[27:25] */
unsigned hdmi_mpllb_hdmi_div : 3;
/* bit[28] */
unsigned hdmi_mpllb_hdmi_pixel_clk : 1;
/* bit[30:29] */
unsigned hdmi_mpllb_hdmi_pixel_clk_div : 2;
/* bit[31] */
unsigned RSVD31 : 1;
} b;
} SNPS_USBDPPHY_REG_PHY_CONFIG1_o, *SNPS_USBDPPHY_REG_PHY_CONFIG1_p;
#define SNPS_USBDPPHY_REG_PHY_CONFIG2 0x0108
typedef union {
u32 data;
struct {
/* bit[15:0] */
unsigned upcs_pipe_config : 16;
/* bit[16] */
unsigned upcs_pwr_stable : 1;
/* bit[17] */
unsigned upcs_pwr_en : 1;
/* bit[18] */
unsigned phy0_pcs_pwr_en : 1;
/* bit[19] */
unsigned phy0_pma_pwr_en : 1;
/* bit[20] */
unsigned phy0_test_flyover_en : 1;
/* bit[21] */
unsigned phy0_test_stop_clk_en : 1;
/* bit[22] */
unsigned phy0_test_tx_ref_clk_en : 1;
/* bit[23] */
unsigned phy_test_burnin : 1;
/* bit[24] */
unsigned phy_test_powerdown : 1;
/* bit[25] */
unsigned ss_lane0_active : 1;
/* bit[26] */
unsigned ss_lane1_active : 1;
/* bit[31:27] */
unsigned RSVD31_27 : 5;
} b;
} SNPS_USBDPPHY_REG_PHY_CONFIG2_o, *SNPS_USBDPPHY_REG_PHY_CONFIG2_p;
#define SNPS_USBDPPHY_REG_PHY_CONFIG3 0x010c
typedef union {
u32 data;
struct {
/* bit[5:0] */
unsigned phy0_rext_ctrl : 6;
/* bit[7:6] */
unsigned RSVD7_6 : 2;
/* bit[8] */
unsigned phy0_rext_en : 1;
/* bit[31:9] */
unsigned RSVD31_9 : 23;
} b;
} SNPS_USBDPPHY_REG_PHY_CONFIG3_o, *SNPS_USBDPPHY_REG_PHY_CONFIG3_p;
#define SNPS_USBDPPHY_REG_PHY_SRAM_CON 0x0110
typedef union {
u32 data;
struct {
/* bit[0] */
unsigned phy0_sram_bypass : 1;
/* bit[1] */
unsigned phy0_sram_ext_ld_done : 1;
/* bit[2] */
unsigned phy0_sram_init_done : 1;
/* bit[31:3] */
unsigned RSVD31_3 : 29;
} b;
} SNPS_USBDPPHY_REG_PHY_SRAM_CON_o, *SNPS_USBDPPHY_REG_PHY_SRAM_CON_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG0 0x0114
typedef union {
u32 data;
struct {
/* bit[0] */
unsigned phy_ext_ctrl_sel : 1;
/* bit[3:1] */
unsigned RSVD3_1 : 3;
/* bit[4] */
unsigned phy_ext_bs_rx_bigswing : 1;
/* bit[7:5] */
unsigned phy_ext_bs_rx_level : 3;
/* bit[8] */
unsigned phy_ext_bs_tx_lowswing : 1;
/* bit[14:9] */
unsigned phy_ext_dco_finetune : 6;
/* bit[16:15] */
unsigned phy_ext_dco_range : 2;
/* bit[31:17] */
unsigned RSVD31_17 : 15;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG0_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG0_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG1 0x0118
typedef union {
u32 data;
struct {
/* bit[6:0] */
unsigned phy_ext_mplla_cp_int : 7;
/* bit[7] */
unsigned RSVD7 : 1;
/* bit[14:8] */
unsigned phy_ext_mplla_cp_int_gs : 7;
/* bit[15] */
unsigned RSVD15 : 1;
/* bit[22:16] */
unsigned phy_ext_mplla_cp_prop : 7;
/* bit[23] */
unsigned RSVD23 : 1;
/* bit[30:24] */
unsigned phy_ext_mplla_cp_prop_gs : 7;
/* bit[31] */
unsigned RSVD31 : 1;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG1_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG1_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG2 0x011c
typedef union {
u32 data;
struct {
/* bit[0] */
unsigned phy_ext_mplla_div5_clk_en : 1;
/* bit[1] */
unsigned phy_ext_mplla_div_clk_en : 1;
/* bit[3:2] */
unsigned RSVD3_2 : 2;
/* bit[11:4] */
unsigned phy_ext_mplla_div_multiplier : 8;
/* bit[31:12] */
unsigned RSVD31_12 : 20;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG2_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG2_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG3 0x0120
typedef union {
u32 data;
struct {
/* bit[15:0] */
unsigned phy_ext_mplla_fracn_den : 16;
/* bit[16] */
unsigned phy_ext_mplla_fracn_en : 1;
/* bit[31:17] */
unsigned RSVD31_17 : 15;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG3_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG3_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG4 0x0124
typedef union {
u32 data;
struct {
/* bit[15:0] */
unsigned phy_ext_mplla_fracn_quot : 16;
/* bit[31:16] */
unsigned phy_ext_mplla_fracn_rem : 16;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG4_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG4_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG5 0x0128
typedef union {
u32 data;
struct {
/* bit[1:0] */
unsigned phy_ext_mplla_freq_vco : 2;
/* bit[3:2] */
unsigned RSVD3_2 : 2;
/* bit[15:4] */
unsigned phy_ext_mplla_multiplier : 12;
/* bit[31:16] */
unsigned RSVD31_16 : 16;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG5_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG5_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG6 0x012c
typedef union {
u32 data;
struct {
/* bit[19:0] */
unsigned phy_ext_mplla_ssc_peak : 20;
/* bit[31:20] */
unsigned RSVD31_20 : 12;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG6_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG6_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG7 0x0130
typedef union {
u32 data;
struct {
/* bit[20:0] */
unsigned phy_ext_mplla_ssc_stepsize : 21;
/* bit[31:21] */
unsigned RSVD31_21 : 11;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG7_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG7_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG8 0x0134
typedef union {
u32 data;
struct {
/* bit[0] SSC profile control. */
unsigned ss_mplla_ssc_up_spread : 1;
/* bit[3:1] MPLLA Output Clock Divider.
mplla_tx_clk_div[2:0] - Divide Ratio:
<09> 3'b000 - 1
<09> 3'b001 - 2
<09> 3'b010 - 4
<09> 3'b011 - 8
<09> 3'b100 - 16
<09> 3'b101 - 32
<09> 3'b110 - 32
<09> 3'b111 - 32 */
unsigned ss_mplla_tx_clk_div : 3;
/* bit[5:4] V2I operating range. */
unsigned ss_mplla_v2i : 2;
/* bit[6] MPLLA word clock divide by 2 enable. */
unsigned ss_mplla_word_div2_en : 1;
/* bit[7] */
unsigned RSVD7 : 1;
/* bit[10:8] MPLLA reference clock divider control. */
unsigned ss_ref_clk_mplla_div : 3;
/* bit[11] */
unsigned RSVD11 : 1;
/* bit[14:12] Input reference clock frequency range.
Specifies the frequency range of the input reference clock */
unsigned ref_range : 3;
/* bit[19:15] */
unsigned RSVD19_15 : 5;
/* bit[21:20] RX adaptation enable.
Enables the RX adaptation circuitry and applies the input receiver
AFE(analog front end) equalization settings */
unsigned ss_rx_adapt_afe_en_g1 : 2;
/* bit[23:22] RX adaptation enable.
Enables the RX adaptation circuitry and applies the input receiver
AFE(analog front end) equalization settings */
unsigned ss_rx_adapt_afe_en_g2 : 2;
/* bit[25:24] Enables the RX adaptation and decision feedback equalization */
unsigned ss_rx_adapt_dfe_en_g1 : 2;
/* bit[27:26] Enables the RX adaptation and decision feedback equalization */
unsigned ss_rx_adapt_dfe_en_g2 : 2;
/* bit[29:28] Controls the frequency of the RX VCO to a lower-frequency operating band. */
unsigned ss_rx_cdr_vco_lowfreq_g1 : 2;
/* bit[31:30] Controls the frequency of the RX VCO to a lower-frequency operating band. */
unsigned ss_rx_cdr_vco_lowfreq_g2 : 2;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG8_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG8_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG9 0x0138
typedef union {
u32 data;
struct {
/* bit[7:0] Controls the gain of the AFE. */
unsigned ss_rx_eq_afe_gain_g1 : 8;
/* bit[15:8] Controls the gain of the AFE. */
unsigned ss_rx_eq_afe_gain_g2 : 8;
/* bit[21:16] RX equalization attenuation level. */
unsigned ss_rx_eq_att_lvl_g1 : 6;
/* bit[23:22] */
unsigned RSVD23_22 : 2;
/* bit[29:24] RX equalization attenuation level. */
unsigned ss_rx_eq_att_lvl_g2 : 6;
/* bit[31:30] */
unsigned RSVD31_30 : 2;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG9_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG9_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG10 0x013c
typedef union {
u32 data;
struct {
/* bit[9:0] Controls the CTLE boost level */
unsigned ss_rx_eq_ctle_boost_g1 : 10;
/* bit[11:10] */
unsigned RSVD11_10 : 2;
/* bit[21:12] Controls the CTLE boost level */
unsigned ss_rx_eq_ctle_boost_g2 : 10;
/* bit[31:22] */
unsigned RSVD31_22 : 10;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG10_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG10_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG11 0x0140
typedef union {
u32 data;
struct {
/* bit[7:0] Controls the value of the offset applied to the IQ calibration result. */
unsigned phy_ext_rx_eq_delta_iq_g1 : 8;
/* bit[15:8] Controls the value of the offset applied to the IQ calibration result. */
unsigned phy_ext_rx_eq_delta_iq_g2 : 8;
/* bit[31:16] */
unsigned RSVD31_16 : 16;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG11_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG11_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG12 0x0144
typedef union {
u32 data;
struct {
/* bit[15:0] Controls the value of DFE data Tap1. */
unsigned ss_rx_eq_dfe_tap1_g1 : 16;
/* bit[31:16] Controls the value of DFE data Tap1. */
unsigned ss_rx_eq_dfe_tap1_g2 : 16;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG12_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG12_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG13 0x0148
typedef union {
u32 data;
struct {
/* bit[1:0] This signal allows to bypass the duty cycle corrector AC coupling capacitor.*/
unsigned ss_rx_dcc_byp_ac_cap : 2;
/* bit[3:2] */
unsigned RSVD3_2 : 2;
/* bit[10:4] RX VCO calibration reference load value. */
unsigned ss_rx_ref_ld_val_g1 : 7;
/* bit[11] */
unsigned RSVD11 : 1;
/* bit[18:12] RX VCO calibration reference load value */
unsigned ss_rx_ref_ld_val_g2 : 7;
/* bit[31:19] */
unsigned RSVD31_19 : 13;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG13_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG13_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG14 0x014c
typedef union {
u32 data;
struct {
/* bit[0] High Frequency Signal Detection. */
unsigned ss_rx_sigdet_hf_en : 1;
/* bit[1] PCS_RAW sigdef_hf_out disable filtering */
unsigned ss_rx_sigdet_hf_filt_dis : 1;
/* bit[3:2] */
unsigned RSVD3_2 : 2;
/* bit[9:4] Threshold for signal detection in high speed path */
unsigned ss_rx_sigdet_hf_threshold_g1 : 6;
/* bit[11:10] Threshold for signal detection in high speed path */
unsigned RSVD11_10 : 2;
/* bit[17:12] */
unsigned ss_rx_sigdet_hf_threshold_g2 : 6;
/* bit[31:18] */
unsigned RSVD31_18 : 14;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG14_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG14_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG15 0x0150
typedef union {
u32 data;
struct {
/* bit[0] Low Frequency Signal Detection. */
unsigned ss_rx_sigdet_lf_en : 1;
/* bit[1] Low Frequency Filter Enable */
unsigned ss_rx_sigdet_lf_filter_en : 1;
/* bit[3:2] */
unsigned RSVD3_2 : 2;
/* bit[9:4] Threshold for signal detection in low speed path. */
unsigned ss_rx_sigdet_lf_threshold_g1 : 6;
/* bit[11:10] */
unsigned RSVD11_10 : 2;
/* bit[17:12] Threshold for signal detection in low speed path. */
unsigned ss_rx_sigdet_lf_threshold_g2 : 6;
/* bit[19:18] */
unsigned RSVD19_18 : 2;
/* bit[22:20] Set the desired termination value for the receiver */
unsigned ss_rx_term_ctrl : 3;
/* bit[31:23] */
unsigned RSVD31_23 : 9;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG15_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG15_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG16 0x0154
typedef union {
u32 data;
struct {
/* bit[12:0] SS RX VCO calibration load value */
unsigned ss_rx_vco_ld_val_g1 : 13;
/* bit[15:13] */
unsigned RSVD15_13 : 3;
/* bit[28:16] SS RX VCO calibration load value */
unsigned ss_rx_vco_ld_val_g2 : 13;
/* bit[31:29] */
unsigned RSVD31_29 : 3;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG16_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG16_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG17 0x0158
typedef union {
u32 data;
struct {
/* bit[2:0] RX biasing current control.*/
unsigned rx_vref_ctrl : 3;
/* bit[3] */
unsigned RSVD3 : 1;
/* bit[6:4] Controls VCO regulator reference. */
unsigned sup_rx_vco_vref_sel : 3;
/* bit[7] */
unsigned RSVD7 : 1;
/* bit[8] */
unsigned ss_tx_ana_iboost_en : 1;
/* bit[9] */
unsigned dp_tx_ana_iboost_en : 1;
/* bit[11:10] */
unsigned RSVD11_10 : 2;
/* bit[13:12] */
unsigned ss_tx_ana_rboost_en : 4;
/* bit[15:14] */
unsigned dp_tx_ana_rboost_en : 4;
/* bit[17] */
unsigned ss_tx_dcc_byp_ac_cap : 1;
/* bit[16] */
unsigned dp_tx_dcc_byp_ac_cap : 1;
/* bit[31:18] */
unsigned RSVD31_18 : 14;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG17_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG17_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG18 0x015c
typedef union {
u32 data;
struct {
/* bit[5:0] */
unsigned ss_tx_eq_main_g1 : 6;
/* bit[6:0] */
unsigned dp_tx_eq_main_g1 : 6;
/* bit[17:12] */
unsigned ss_tx_eq_main_g2 : 6;
/* bit[23:18] */
unsigned dp_tx_eq_main_g2 : 6;
/* bit[24] */
unsigned ss_tx_eq_ovrd_g1 : 1;
/* bit[25] */
unsigned dp_tx_eq_ovrd_g1 : 1;
/* bit[26] */
unsigned ss_tx_eq_ovrd_g2 : 1;
/* bit[27] */
unsigned dp_tx_eq_ovrd_g2 : 1;
/* bit[31:28] */
unsigned RSVD31_28 : 4;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG18_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG18_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG19 0x0160
typedef union {
u32 data;
struct {
/* bit[5:0] */
unsigned ss_tx_eq_post_g1 : 6;
/* bit[11:6] */
unsigned dp_tx_eq_post_g1 : 6;
/* bit[17:12] */
unsigned ss_tx_eq_post_g2 : 6;
/* bit[23:18] */
unsigned dp_tx_eq_post_g2 : 6;
/* bit[31:24] */
unsigned RSVD31_24 : 8;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG19_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG19_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG20 0x0164
typedef union {
u32 data;
struct {
/* bit[5:0] */
unsigned ss_tx_eq_pre_g1 : 6;
/* bit[11:6] */
unsigned dp_tx_eq_pre_g1 : 6;
/* bit[17:12] */
unsigned ss_tx_eq_pre_g2 : 6;
/* bit[23:18] */
unsigned dp_tx_eq_pre_g2 : 6;
/* bit[31:24] */
unsigned RSVD31_24 : 8;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG20_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG20_p;
#define SNPS_USBDPPHY_REG_PHY_EXT_CONFIG21 0x0168
typedef union {
u32 data;
struct {
/* bit[2:0] */
unsigned ss_tx_term_ctrl : 3;
/* bit[3] */
unsigned RSVD3 : 1;
/* bit[6:4] */
unsigned ss_tx_vswing_lvl : 3;
/* bit[31:7] */
unsigned RSVD31_7 : 25;
} b;
} SNPS_USBDPPHY_REG_PHY_EXT_CONFIG21_o, *SNPS_USBDPPHY_REG_PHY_EXT_CONFIG21_p;
#define SNPS_USBDPPHY_REG_TCA_CONFIG 0x016c
typedef union {
u32 data;
struct {
/* bit[1:0] */
unsigned RSVD1_0 : 2;
/* bit[2] Flip Invert to ComboPHYType-C
* Allows SS[Tx/Rx]2 pairs on Type-C connector to be the primary connector.
* May be used to preferable choose SS[Tx/Rx]2 based on routing considerations
* over the PCB.*/
unsigned typec_flip_invert : 1;
/* bit[3] PoR as USB Device
* Changes the TCA PoR for a USB device. As a device TCA relies on
* VBUS Valid interface interface instead of USB Controller interface
* to achive controller and PHY synchronization to reach P3.
* System should drive this as 1'b1 during TCA PoR for a USB Device PoR.*/
unsigned tca_usb_dev_por : 1;
/* bit[4] Type-C Host Drive VBUS from TCA
* Indication to the USB Host Subsystem that the VBUS Valid Drive
* needs to be held till this signal is asserted.
* Prevents the SS+ Device RxDetect timeout and the Device falling
* back to USB 2.0 only mode by disallowing the VBUS enable until the
* Host PHY is ready to respond to the SS+ Device Receiver Detection
* request.*/
unsigned tca_drv_host_vbus : 1;
/* bit[5] Type-C IDDIG indication to USB Subsystem from TCA.(Output)
* Implements the DR_SWAP functionality as specified in [TYPEC].
* The TCPM may access TCA to manipulate this signal and do the
* OTG like role swap for a DRP.*/
unsigned tca_iddig : 1;
/* bit[6] */
unsigned tca_powerpresent : 1;
/* bit[7] */
unsigned tca_vbusvalid : 1;
/* bit[13:8] Type-C Miscellaneous control to USB Subsystem from TCA.
* Implements the generic control and override functionality to be used
* within the USB Subsystems migrating to Type-C.*/
unsigned tca_misc_ctrl : 6;
/* bit[31:14] */
unsigned RSVD31_14 : 18;
} b;
} SNPS_USBDPPHY_REG_TCA_CONFIG_o, *SNPS_USBDPPHY_REG_TCA_CONFIG_p;
#define SNPS_USBDPPHY_REG_PHY_POWER_DOWN 0x0170
typedef union {
u32 data;
struct {
/* bit[0] (?) */
unsigned power_down_mode_en : 1;
/* bit[1] */
unsigned ref_clk_en_pd : 1;
/* bit[3:2] */
unsigned RSVD3_2 : 2;
/* bit[5:4] */
unsigned tx0_pstate_pd : 2;
/* bit[7:6] */
unsigned tx1_pstate_pd : 2;
/* bit[9:8] */
unsigned tx2_pstate_pd : 2;
/* bit[11:10] */
unsigned tx3_pstate_pd : 2;
/* bit[13:12] */
unsigned rx1_pstate_pd : 2;
/* bit[15:14] */
unsigned rx2_pstate_pd : 2;
/* bit[16] */
unsigned tx0_reset_pd : 1;
/* bit[17] */
unsigned tx1_reset_pd : 1;
/* bit[18] */
unsigned tx2_reset_pd : 1;
/* bit[19] */
unsigned tx3_reset_pd : 1;
/* bit[20] */
unsigned rx1_reset_pd : 1;
/* bit[21] */
unsigned rx2_reset_pd : 1;
/* bit[23:22] */
unsigned RSVD23_22 : 2;
/* bit[24] */
unsigned tx0_disable_pd : 1;
/* bit[25] */
unsigned tx1_disable_pd : 1;
/* bit[26] */
unsigned tx2_disable_pd : 1;
/* bit[27] */
unsigned tx3_disable_pd : 1;
/* bit[28] */
unsigned rx1_disable_pd : 1;
/* bit[29] */
unsigned rx2_disable_pd : 1;
/* bit[31:30] */
unsigned RSVD31_30 : 2;
} b;
} SNPS_USBDPPHY_REG_PHY_POWER_DOWN_o, *SNPS_USBDPPHY_REG_PHY_POWER_DOWN_p;
#define SNPS_USBDPPHY_REG_TCA_STATE_CTRL 0x0174
typedef union {
u32 data;
struct {
/* bit[0] SuperSpeed+ RxDetect Disable/Enable Acknowledge.
* When asserted, acknowledge from SuperSpeed+ state machine that
* Receiver has been disabled and it has put the PHY in P3 state.
* When de-asserted, acknowledge from the controller that it has
* received Rx Detection Enable request and it has proceeded to
* enable USB SS+ operation.
* After de-assertion, the USB controller may optionally assert
* ss_pipe_resetn*/
unsigned ss_rxdet_disable_ack : 1;
/* bit[1] Select ss_rxdet_disable_ack signal from link or by register */
unsigned ss_rxdet_disable_ack_ovrd_en : 1;
/* bit[3:2] */
unsigned RSVD3_2 : 2;
/* bit[7:4] */
unsigned pipe_lane0_powerdown : 4;
/* bit[8] */
unsigned pipe_lane0_powerdown_ovrd_en : 1;
/* bit[15:9] */
unsigned RSVD15_9 : 7;
/* bit[16] */
unsigned ss_rxdet_disable : 1;
/* bit[17] */
unsigned pipe_lane0_phystatus : 1;
/* bit[31:18] */
unsigned RSVD31_18 : 14;
} b;
} SNPS_USBDPPHY_REG_TCA_STATE_CTRL_o, *SNPS_USBDPPHY_REG_TCA_STATE_CTRL_p;
#define SNPS_USBDPPHY_REG_PHY_LANE1_CTRL 0x0178
typedef union {
u32 data;
struct {
/* bit[0] */
unsigned phy_lane1_power_present : 1;
/* bit[1] */
unsigned phy_ss_rx1_term_acdc : 1;
/* bit[2] */
unsigned phy_ss_tx1_bypass_eq_calc : 1;
/* bit[3] */
unsigned phy_ss_tx1_vregdrv_byp : 1;
/* bit[7:4] */
unsigned pipe_lane1_link_num : 4;
/* bit[11:8] */
unsigned pipe_lane1_powerdown : 4;
/* bit[13:12] */
unsigned pipe_lane1_rate : 2;
/* bit[14] */
unsigned pipe_tx1_elecidle : 1;
/* bit[15] */
unsigned RSVD15 : 1;
/* bit[16] */
unsigned ss_rxdet_disable_1 : 1;
/* bit[17] */
unsigned ss_rxdet_disable_ack_1 : 1;
/* bit[31:18] */
unsigned RSVD31_18 : 14;
} b;
} SNPS_USBDPPHY_REG_PHY_LANE1_CTRL_o, *SNPS_USBDPPHY_REG_PHY_LANE1_CTRL_p;
#define SNPS_USBDPPHY_REG_DP_AUX_CONFIG0 0x0200
typedef union {
u32 data;
struct {
/* bit[0] */
unsigned aux_dp_dn_swap : 1;
/* bit[3:1] */
unsigned RSVD3_1 : 3;
/* bit[5:4] */
unsigned aux_hys_tune : 2;
/* bit[7:6] */
unsigned RSVD7_6 : 2;
/* bit[8] */
unsigned aux_vod_tune : 1;
/* bit[9] */
unsigned aux_pwdnb : 1;
/* bit[11:10] */
unsigned RSVD11_10 : 2;
/* bit[15:12] */
unsigned aux_ctrl : 4;
/* bit[31:16] */
unsigned RSVD31_16 : 16;
} b;
} SNPS_USBDPPHY_REG_DP_AUX_CONFIG0_o, *SNPS_USBDPPHY_REG_DP_AUX_CONFIG0_p;
#define SNPS_USBDPPHY_REG_DP_CONFIG0 0x0204
typedef union {
u32 data;
struct {
/* bit[0] */
unsigned dp_lane0_rx2tx_par_lb_en : 1;
/* bit[1] */
unsigned dp_lane1_rx2tx_par_lb_en : 1;
/* bit[2] */
unsigned dp_lane2_rx2tx_par_lb_en : 1;
/* bit[3] */
unsigned dp_lane3_rx2tx_par_lb_en : 1;
/* bit[4] */
unsigned dp_lane0_tx2rx_ser_lb_en : 1;
/* bit[5] */
unsigned dp_lane1_tx2rx_ser_lb_en : 1;
/* bit[6] */
unsigned dp_lane2_tx2rx_ser_lb_en : 1;
/* bit[7] */
unsigned dp_lane3_tx2rx_ser_lb_en : 1;
/* bit[31:8] */
unsigned RSVD31_8 : 24;
} b;
} SNPS_USBDPPHY_REG_DP_CONFIG0_o, *SNPS_USBDPPHY_REG_DP_CONFIG0_p;
#define SNPS_USBDPPHY_REG_DP_CONFIG1 0x0208
typedef union {
u32 data;
struct {
/* bit[6:0] */
unsigned dp_mpllb_cp_int : 7;
/* bit[7] */
unsigned RSVD7 : 1;
/* bit[14:8] */
unsigned dp_mpllb_cp_int_gs : 7;
/* bit[15] */
unsigned RSVD15 : 1;
/* bit[22:16] */
unsigned dp_mpllb_cp_prop : 7;
/* bit[23] */
unsigned RSVD23 : 1;
/* bit[30:24] */
unsigned dp_mpllb_cp_prop_gs : 7;
/* bit[31] */
unsigned RSVD31 : 1;
} b;
} SNPS_USBDPPHY_REG_DP_CONFIG1_o, *SNPS_USBDPPHY_REG_DP_CONFIG1_p;
#define SNPS_USBDPPHY_REG_DP_CONFIG2 0x020c
typedef union {
u32 data;
struct {
/* bit[0] */
unsigned dp_mpllb_div5_clk_en : 1;
/* bit[1] */
unsigned dp_mpllb_div_clk_en : 1;
/* bit[3:2] */
unsigned RSVD3_2 : 2;
/* bit[11:4] */
unsigned dp_mpllb_div_multiplier : 8;
/* bit[12] */
unsigned dp_mpllb_force_en : 1;
/* bit[13] */
unsigned dp_mpllb_force_ack : 1;
/* bit[14] */
unsigned dp_mpllb_fracn_cfg_update_en : 1;
/* bit[15] */
unsigned dp_mpllb_fracn_en : 1;
/* bit[31:16] */
unsigned dp_mpllb_fracn_den : 16;
} b;
} SNPS_USBDPPHY_REG_DP_CONFIG2_o, *SNPS_USBDPPHY_REG_DP_CONFIG2_p;
#define SNPS_USBDPPHY_REG_DP_CONFIG3 0x0210
typedef union {
u32 data;
struct {
/* bit[15:0] */
unsigned dp_mpllb_fracn_quot : 16;
/* bit[31:16] */
unsigned dp_mpllb_fracn_rem : 16;
} b;
} SNPS_USBDPPHY_REG_DP_CONFIG3_o, *SNPS_USBDPPHY_REG_DP_CONFIG3_p;
#define SNPS_USBDPPHY_REG_DP_CONFIG4 0x0214
typedef union {
u32 data;
struct {
/* bit[1:0] */
unsigned dp_mpllb_freq_vco : 2;
/* bit[2] */
unsigned dp_mpllb_init_cal_disable : 1;
/* bit[3] */
unsigned RSVD3 : 1;
/* bit[15:4] */
unsigned dp_mpllb_multiplier : 12;
/* bit[16] */
unsigned dp_mpllb_pmix_en : 1;
/* bit[17] */
unsigned dp_mpllb_ssc_en : 1;
/* bit[31:18] */
unsigned RSVD31_18 : 14;
} b;
} SNPS_USBDPPHY_REG_DP_CONFIG4_o, *SNPS_USBDPPHY_REG_DP_CONFIG4_p;
#define SNPS_USBDPPHY_REG_DP_CONFIG5 0x0218
typedef union {
u32 data;
struct {
/* bit[19:0] */
unsigned dp_mpllb_ssc_peak : 20;
/* bit[31:20] */
unsigned RSVD31_20 : 12;
} b;
} SNPS_USBDPPHY_REG_DP_CONFIG5_o, *SNPS_USBDPPHY_REG_DP_CONFIG5_p;
#define SNPS_USBDPPHY_REG_DP_CONFIG6 0x021c
typedef union {
u32 data;
struct {
/* bit[20:0] */
unsigned dp_mpllb_ssc_stepsize : 21;
/* bit[31:21] */
unsigned RSVD31_21 : 11;
} b;
} SNPS_USBDPPHY_REG_DP_CONFIG6_o, *SNPS_USBDPPHY_REG_DP_CONFIG6_p;
#define SNPS_USBDPPHY_REG_DP_CONFIG7 0x0220
typedef union {
u32 data;
struct {
/* bit[0] */
unsigned dp_mpllb_ssc_up_spread : 1;
/* bit[3:1] */
unsigned dp_mpllb_tx_clk_div : 3;
/* bit[5:4] */
unsigned dp_mpllb_v2i : 2;
/* bit[6] */
unsigned dp_mpllb_word_div2_en : 1;
/* bit[7] */
unsigned dp_pg_reset : 1;
/* bit[8] */
unsigned dp_ref_clk_en : 1;
/* bit[11:9] */
unsigned dp_ref_clk_mpllb_div : 3;
/* bit[12] */
unsigned dp_ref_clk_req : 1;
/* bit[31:13] */
unsigned RSVD31_13 : 19;
} b;
} SNPS_USBDPPHY_REG_DP_CONFIG7_o, *SNPS_USBDPPHY_REG_DP_CONFIG7_p;
#define SNPS_USBDPPHY_REG_DP_CONFIG8 0x0224
typedef union {
u32 data;
struct {
/* bit[5:0] */
unsigned dp_tx0_eq_main : 6;
/* bit[7:6] */
unsigned RSVD7_6 : 2;
/* bit[13:8] */
unsigned dp_tx1_eq_main : 6;
/* bit[15:14] */
unsigned RSVD15_14 : 2;
/* bit[21:16] */
unsigned dp_tx2_eq_main : 6;
/* bit[23:22] */
unsigned RSVD23_22 : 2;
/* bit[29:24] */
unsigned dp_tx3_eq_main : 6;
/* bit[31:30] */
unsigned RSVD31_30 : 2;
} b;
} SNPS_USBDPPHY_REG_DP_CONFIG8_o, *SNPS_USBDPPHY_REG_DP_CONFIG8_p;
#define SNPS_USBDPPHY_REG_DP_CONFIG9 0x0228
typedef union {
u32 data;
struct {
/* bit[5:0] */
unsigned dp_tx0_eq_post : 6;
/* bit[7:6] */
unsigned RSVD7_6 : 2;
/* bit[13:8] */
unsigned dp_tx1_eq_post : 6;
/* bit[15:14] */
unsigned RSVD15_14 : 2;
/* bit[21:16] */
unsigned dp_tx2_eq_post : 6;
/* bit[23:22] */
unsigned RSVD23_22 : 2;
/* bit[29:24] */
unsigned dp_tx3_eq_post : 6;
/* bit[31:30] */
unsigned RSVD31_30 : 2;
} b;
} SNPS_USBDPPHY_REG_DP_CONFIG9_o, *SNPS_USBDPPHY_REG_DP_CONFIG9_p;
#define SNPS_USBDPPHY_REG_DP_CONFIG10 0x022c
typedef union {
u32 data;
struct {
/* bit[5:0] */
unsigned dp_tx0_eq_pre : 6;
/* bit[7:6] */
unsigned RSVD7_6 : 2;
/* bit[13:8] */
unsigned dp_tx1_eq_pre : 6;
/* bit[15:14] */
unsigned RSVD15_14 : 2;
/* bit[21:16] */
unsigned dp_tx2_eq_pre : 6;
/* bit[23:22] */
unsigned RSVD23_22 : 2;
/* bit[29:24] */
unsigned dp_tx3_eq_pre : 6;
/* bit[31:30] */
unsigned RSVD31_30 : 2;
} b;
} SNPS_USBDPPHY_REG_DP_CONFIG10_o, *SNPS_USBDPPHY_REG_DP_CONFIG10_p;
#define SNPS_USBDPPHY_REG_DP_CONFIG11 0x0230
typedef union {
u32 data;
struct {
/* bit[0] */
unsigned dp_tx0_bypass_eq_calc : 1;
/* bit[1] */
unsigned dp_tx1_bypass_eq_calc : 1;
/* bit[2] */
unsigned dp_tx2_bypass_eq_calc : 1;
/* bit[3] */
unsigned dp_tx3_bypass_eq_calc : 1;
/* bit[5:4] */
unsigned dp_tx0_pstate : 2;
/* bit[7:6] */
unsigned dp_tx1_pstate : 2;
/* bit[9:8] */
unsigned dp_tx2_pstate : 2;
/* bit[11:10] */
unsigned dp_tx3_pstate : 2;
/* bit[12] */
unsigned dp_tx0_lpd : 1;
/* bit[13] */
unsigned dp_tx1_lpd : 1;
/* bit[14] */
unsigned dp_tx2_lpd : 1;
/* bit[15] */
unsigned dp_tx3_lpd : 1;
/* bit[18:16] */
unsigned dp_tx0_rate : 3;
/* bit[19] */
unsigned RSVD19 : 1;
/* bit[22:20] */
unsigned dp_tx1_rate : 3;
/* bit[23] */
unsigned RSVD23 : 1;
/* bit[26:24] */
unsigned dp_tx2_rate : 3;
/* bit[27] */
unsigned RSVD27 : 1;
/* bit[30:28] */
unsigned dp_tx3_rate : 3;
/* bit[31] */
unsigned RSVD31 : 1;
} b;
} SNPS_USBDPPHY_REG_DP_CONFIG11_o, *SNPS_USBDPPHY_REG_DP_CONFIG11_p;
#define SNPS_USBDPPHY_REG_DP_CONFIG12 0x0234
typedef union {
u32 data;
struct {
/* bit[1:0] */
unsigned dp_tx0_width : 2;
/* bit[3:2] */
unsigned dp_tx1_width : 2;
/* bit[5:4] */
unsigned dp_tx2_width : 2;
/* bit[7:6] */
unsigned dp_tx3_width : 2;
/* bit[8] */
unsigned dp_tx0_mpll_en : 1;
/* bit[9] */
unsigned dp_tx1_mpll_en : 1;
/* bit[10] */
unsigned dp_tx2_mpll_en : 1;
/* bit[11] */
unsigned dp_tx3_mpll_en : 1;
/* bit[12] */
unsigned dp_tx0_req_status : 1;
/* bit[13] */
unsigned dp_tx1_req_status : 1;
/* bit[14] */
unsigned dp_tx2_req_status : 1;
/* bit[15] Write 1 : Indicates */
unsigned dp_tx3_req_status : 1;
/* bit[16] */
unsigned dp_tx0_ack : 1;
/* bit[17] */
unsigned dp_tx1_ack : 1;
/* bit[18] */
unsigned dp_tx2_ack : 1;
/* bit[19] */
unsigned dp_tx3_ack : 1;
/* bit[31:20] */
unsigned RSVD31_20 : 12;
} b;
} SNPS_USBDPPHY_REG_DP_CONFIG12_o, *SNPS_USBDPPHY_REG_DP_CONFIG12_p;
#define SNPS_USBDPPHY_REG_DP_CONFIG13 0x0238
typedef union {
u32 data;
struct {
/* bit[0] */
unsigned dp_tx0_disable : 1;
/* bit[1] */
unsigned dp_tx1_disable : 1;
/* bit[2] */
unsigned dp_tx2_disable : 1;
/* bit[3] */
unsigned dp_tx3_disable : 1;
/* bit[4] */
unsigned dp_tx0_reset : 1;
/* bit[5] */
unsigned dp_tx1_reset : 1;
/* bit[6] */
unsigned dp_tx2_reset : 1;
/* bit[7] */
unsigned dp_tx3_reset : 1;
/* bit[8] */
unsigned dp_tx0_detrx_req_status : 1;
/* bit[9] */
unsigned dp_tx1_detrx_req_status : 1;
/* bit[10] */
unsigned dp_tx2_detrx_req_status : 1;
/* bit[11] */
unsigned dp_tx3_detrx_req_status : 1;
/* bit[12] */
unsigned dp_tx0_detrx_result : 1;
/* bit[13] */
unsigned dp_tx1_detrx_result : 1;
/* bit[14] */
unsigned dp_tx2_detrx_result : 1;
/* bit[15] */
unsigned dp_tx3_detrx_result : 1;
/* bit[16] */
unsigned dp_tx0_flyover_data_m : 1;
/* bit[17] */
unsigned dp_tx1_flyover_data_m : 1;
/* bit[18] */
unsigned dp_tx2_flyover_data_m : 1;
/* bit[19] */
unsigned dp_tx3_flyover_data_m : 1;
/* bit[20] */
unsigned dp_tx0_flyover_data_p : 1;
/* bit[21] */
unsigned dp_tx1_flyover_data_p : 1;
/* bit[22] */
unsigned dp_tx2_flyover_data_p : 1;
/* bit[23] */
unsigned dp_tx3_flyover_data_p : 1;
/* bit[24] */
unsigned dp_tx0_hp_prot_en : 1;
/* bit[25] */
unsigned dp_tx1_hp_prot_en : 1;
/* bit[26] */
unsigned dp_tx2_hp_prot_en : 1;
/* bit[27] */
unsigned dp_tx3_hp_prot_en : 1;
/* bit[31:28] */
unsigned RSVD31_28 : 4;
} b;
} SNPS_USBDPPHY_REG_DP_CONFIG13_o, *SNPS_USBDPPHY_REG_DP_CONFIG13_p;
#define SNPS_USBDPPHY_REG_DP_CONFIG14 0x023c
typedef union {
u32 data;
struct {
/* bit[4:0] */
unsigned dp_tx0_in_generic_bus : 5;
/* bit[7:5] */
unsigned RSVD7_5 : 3;
/* bit[12:8] */
unsigned dp_tx1_in_generic_bus : 5;
/* bit[15:13] */
unsigned RSVD15_13 : 3;
/* bit[20:16] */
unsigned dp_tx2_in_generic_bus : 5;
/* bit[23:21] */
unsigned RSVD23_21 : 3;
/* bit[28:24] */
unsigned dp_tx3_in_generic_bus : 5;
/* bit[31:29] */
unsigned RSVD31_29 : 3;
} b;
} SNPS_USBDPPHY_REG_DP_CONFIG14_o, *SNPS_USBDPPHY_REG_DP_CONFIG14_p;
#define SNPS_USBDPPHY_REG_DP_CONFIG15 0x0240
typedef union {
u32 data;
struct {
/* bit[4:0] */
unsigned dp_tx0_out_generic_bus : 5;
/* bit[7:5] */
unsigned RSVD7_5 : 3;
/* bit[12:8] */
unsigned dp_tx1_out_generic_bus : 5;
/* bit[15:13] */
unsigned RSVD15_13 : 3;
/* bit[20:16] */
unsigned dp_tx2_out_generic_bus : 5;
/* bit[23:21] */
unsigned RSVD23_21 : 3;
/* bit[28:24] */
unsigned dp_tx3_out_generic_bus : 5;
/* bit[31:29] */
unsigned RSVD31_29 : 3;
} b;
} SNPS_USBDPPHY_REG_DP_CONFIG15_o, *SNPS_USBDPPHY_REG_DP_CONFIG15_p;
#define SNPS_USBDPPHY_REG_DP_CONFIG16 0x0244
typedef union {
u32 data;
struct {
/* bit[0] */
unsigned dp_tx0_invert : 1;
/* bit[1] */
unsigned dp_tx1_invert : 1;
/* bit[2] */
unsigned dp_tx2_invert : 1;
/* bit[3] */
unsigned dp_tx3_invert : 1;
/* bit[6:4] */
unsigned dp_tx0_term_ctrl : 3;
/* bit[7] */
unsigned RSVD7 : 1;
/* bit[10:8] */
unsigned dp_tx1_term_ctrl : 3;
/* bit[11] */
unsigned RSVD11 : 1;
/* bit[14:12] */
unsigned dp_tx2_term_ctrl : 3;
/* bit[15] */
unsigned RSVD15 : 1;
/* bit[18:16] */
unsigned dp_tx3_term_ctrl : 3;
/* bit[19] */
unsigned RSVD19 : 1;
/* bit[20] */
unsigned dp_tx0_vregdrv_byp : 1;
/* bit[21] */
unsigned dp_tx1_vregdrv_byp : 1;
/* bit[22] */
unsigned dp_tx2_vregdrv_byp : 1;
/* bit[23] */
unsigned dp_tx3_vregdrv_byp : 1;
/* bit[24] */
unsigned dp_tx0_clk_rdy : 1;
/* bit[25] */
unsigned dp_tx1_clk_rdy : 1;
/* bit[26] */
unsigned dp_tx2_clk_rdy : 1;
/* bit[27] */
unsigned dp_tx3_clk_rdy : 1;
/* bit[28] */
unsigned dp_tx0_data_en : 1;
/* bit[29] */
unsigned dp_tx1_data_en : 1;
/* bit[30] */
unsigned dp_tx2_data_en : 1;
/* bit[31] */
unsigned dp_tx3_data_en : 1;
} b;
} SNPS_USBDPPHY_REG_DP_CONFIG16_o, *SNPS_USBDPPHY_REG_DP_CONFIG16_p;
#define SNPS_USBDPPHY_REG_DP_CONFIG17 0x0248
typedef union {
u32 data;
struct {
/* bit[0] */
unsigned dp_tx0_dcc_byp_ac_cap : 1;
/* bit[1] */
unsigned dp_tx1_dcc_byp_ac_cap : 1;
/* bit[2] */
unsigned dp_tx2_dcc_byp_ac_cap : 1;
/* bit[3] */
unsigned dp_tx3_dcc_byp_ac_cap : 1;
/* bit[4] */
unsigned dp_tx0_iboost_en : 1;
/* bit[5] */
unsigned dp_tx1_iboost_en : 1;
/* bit[6] */
unsigned dp_tx2_iboost_en : 1;
/* bit[7] */
unsigned dp_tx3_iboost_en : 1;
/* bit[9:8] */
unsigned dp_tx0_rboost_en : 2;
/* bit[11:10] */
unsigned dp_tx1_rboost_en : 2;
/* bit[13:12] */
unsigned dp_tx2_rboost_en : 2;
/* bit[15:14] */
unsigned dp_tx3_rboost_en : 2;
/* bit[31:16] */
unsigned RSVD31_16 : 16;
} b;
} SNPS_USBDPPHY_REG_DP_CONFIG17_o, *SNPS_USBDPPHY_REG_DP_CONFIG17_p;
#define SNPS_USBDPPHY_REG_DP_CONFIG18 0x024c
typedef union {
u32 data;
struct {
/* bit[0] */
unsigned dp_mpllb_div_clk : 1;
/* bit[1] */
unsigned dp_mpllb_oword_clk : 1;
/* bit[2] */
unsigned dp_mpllb_qword_clk : 1;
/* bit[31:3] */
unsigned RSVD31_3 : 29;
} b;
} SNPS_USBDPPHY_REG_DP_CONFIG18_o, *SNPS_USBDPPHY_REG_DP_CONFIG18_p;
#define SNPS_USBDPPHY_REG_DP_CONFIG19 0x0250
typedef union {
u32 data;
struct {
/* bit[0] */
unsigned dpalt_disable : 1;
/* bit[1] */
unsigned dpalt_disable_ack : 1;
/* bit[2] */
unsigned dpalt_dp4 : 1;
/* bit[3] */
unsigned tca_dp4_por : 1;
/* bit[31:4] */
unsigned RSVD31_4 : 28;
} b;
} SNPS_USBDPPHY_REG_DP_CONFIG19_o, *SNPS_USBDPPHY_REG_DP_CONFIG19_p;
#define USB31DRD_LINK_LCSR_TX_DEEMPH (0xD060)
#define USB31DRD_LINK_LCSR_TX_DEEMPH_1 (0xD064)
#define USB31DRD_LINK_LCSR_TX_DEEMPH_2 (0xD068)
#define USB31DRD_LINK_LCSR_TX_DEEMPH_3 (0xD06C)
#endif