162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (c) 2017, The Linux Foundation. All rights reserved.
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#ifndef QCOM_PHY_QMP_QSERDES_TXRX_H_
762306a36Sopenharmony_ci#define QCOM_PHY_QMP_QSERDES_TXRX_H_
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci/* Only for QMP V2 PHY - TX registers */
1062306a36Sopenharmony_ci#define QSERDES_TX_BIST_MODE_LANENO			0x000
1162306a36Sopenharmony_ci#define QSERDES_TX_BIST_INVERT				0x004
1262306a36Sopenharmony_ci#define QSERDES_TX_CLKBUF_ENABLE			0x008
1362306a36Sopenharmony_ci#define QSERDES_TX_CMN_CONTROL_ONE			0x00c
1462306a36Sopenharmony_ci#define QSERDES_TX_CMN_CONTROL_TWO			0x010
1562306a36Sopenharmony_ci#define QSERDES_TX_CMN_CONTROL_THREE			0x014
1662306a36Sopenharmony_ci#define QSERDES_TX_TX_EMP_POST1_LVL			0x018
1762306a36Sopenharmony_ci#define QSERDES_TX_TX_POST2_EMPH			0x01c
1862306a36Sopenharmony_ci#define QSERDES_TX_TX_BOOST_LVL_UP_DN			0x020
1962306a36Sopenharmony_ci#define QSERDES_TX_HP_PD_ENABLES			0x024
2062306a36Sopenharmony_ci#define QSERDES_TX_TX_IDLE_LVL_LARGE_AMP		0x028
2162306a36Sopenharmony_ci#define QSERDES_TX_TX_DRV_LVL				0x02c
2262306a36Sopenharmony_ci#define QSERDES_TX_TX_DRV_LVL_OFFSET			0x030
2362306a36Sopenharmony_ci#define QSERDES_TX_RESET_TSYNC_EN			0x034
2462306a36Sopenharmony_ci#define QSERDES_TX_PRE_STALL_LDO_BOOST_EN		0x038
2562306a36Sopenharmony_ci#define QSERDES_TX_TX_BAND				0x03c
2662306a36Sopenharmony_ci#define QSERDES_TX_SLEW_CNTL				0x040
2762306a36Sopenharmony_ci#define QSERDES_TX_INTERFACE_SELECT			0x044
2862306a36Sopenharmony_ci#define QSERDES_TX_LPB_EN				0x048
2962306a36Sopenharmony_ci#define QSERDES_TX_RES_CODE_LANE_TX			0x04c
3062306a36Sopenharmony_ci#define QSERDES_TX_RES_CODE_LANE_RX			0x050
3162306a36Sopenharmony_ci#define QSERDES_TX_RES_CODE_LANE_OFFSET			0x054
3262306a36Sopenharmony_ci#define QSERDES_TX_PERL_LENGTH1				0x058
3362306a36Sopenharmony_ci#define QSERDES_TX_PERL_LENGTH2				0x05c
3462306a36Sopenharmony_ci#define QSERDES_TX_SERDES_BYP_EN_OUT			0x060
3562306a36Sopenharmony_ci#define QSERDES_TX_DEBUG_BUS_SEL			0x064
3662306a36Sopenharmony_ci#define QSERDES_TX_HIGHZ_TRANSCEIVEREN_BIAS_DRVR_EN	0x068
3762306a36Sopenharmony_ci#define QSERDES_TX_TX_POL_INV				0x06c
3862306a36Sopenharmony_ci#define QSERDES_TX_PARRATE_REC_DETECT_IDLE_EN		0x070
3962306a36Sopenharmony_ci#define QSERDES_TX_BIST_PATTERN1			0x074
4062306a36Sopenharmony_ci#define QSERDES_TX_BIST_PATTERN2			0x078
4162306a36Sopenharmony_ci#define QSERDES_TX_BIST_PATTERN3			0x07c
4262306a36Sopenharmony_ci#define QSERDES_TX_BIST_PATTERN4			0x080
4362306a36Sopenharmony_ci#define QSERDES_TX_BIST_PATTERN5			0x084
4462306a36Sopenharmony_ci#define QSERDES_TX_BIST_PATTERN6			0x088
4562306a36Sopenharmony_ci#define QSERDES_TX_BIST_PATTERN7			0x08c
4662306a36Sopenharmony_ci#define QSERDES_TX_BIST_PATTERN8			0x090
4762306a36Sopenharmony_ci#define QSERDES_TX_LANE_MODE				0x094
4862306a36Sopenharmony_ci#define QSERDES_TX_IDAC_CAL_LANE_MODE			0x098
4962306a36Sopenharmony_ci#define QSERDES_TX_IDAC_CAL_LANE_MODE_CONFIGURATION	0x09c
5062306a36Sopenharmony_ci#define QSERDES_TX_ATB_SEL1				0x0a0
5162306a36Sopenharmony_ci#define QSERDES_TX_ATB_SEL2				0x0a4
5262306a36Sopenharmony_ci#define QSERDES_TX_RCV_DETECT_LVL			0x0a8
5362306a36Sopenharmony_ci#define QSERDES_TX_RCV_DETECT_LVL_2			0x0ac
5462306a36Sopenharmony_ci#define QSERDES_TX_PRBS_SEED1				0x0b0
5562306a36Sopenharmony_ci#define QSERDES_TX_PRBS_SEED2				0x0b4
5662306a36Sopenharmony_ci#define QSERDES_TX_PRBS_SEED3				0x0b8
5762306a36Sopenharmony_ci#define QSERDES_TX_PRBS_SEED4				0x0bc
5862306a36Sopenharmony_ci#define QSERDES_TX_RESET_GEN				0x0c0
5962306a36Sopenharmony_ci#define QSERDES_TX_RESET_GEN_MUXES			0x0c4
6062306a36Sopenharmony_ci#define QSERDES_TX_TRAN_DRVR_EMP_EN			0x0c8
6162306a36Sopenharmony_ci#define QSERDES_TX_TX_INTERFACE_MODE			0x0cc
6262306a36Sopenharmony_ci#define QSERDES_TX_PWM_CTRL				0x0d0
6362306a36Sopenharmony_ci#define QSERDES_TX_PWM_ENCODED_OR_DATA			0x0d4
6462306a36Sopenharmony_ci#define QSERDES_TX_PWM_GEAR_1_DIVIDER_BAND2		0x0d8
6562306a36Sopenharmony_ci#define QSERDES_TX_PWM_GEAR_2_DIVIDER_BAND2		0x0dc
6662306a36Sopenharmony_ci#define QSERDES_TX_PWM_GEAR_3_DIVIDER_BAND2		0x0e0
6762306a36Sopenharmony_ci#define QSERDES_TX_PWM_GEAR_4_DIVIDER_BAND2		0x0e4
6862306a36Sopenharmony_ci#define QSERDES_TX_PWM_GEAR_1_DIVIDER_BAND0_1		0x0e8
6962306a36Sopenharmony_ci#define QSERDES_TX_PWM_GEAR_2_DIVIDER_BAND0_1		0x0ec
7062306a36Sopenharmony_ci#define QSERDES_TX_PWM_GEAR_3_DIVIDER_BAND0_1		0x0f0
7162306a36Sopenharmony_ci#define QSERDES_TX_PWM_GEAR_4_DIVIDER_BAND0_1		0x0f4
7262306a36Sopenharmony_ci#define QSERDES_TX_VMODE_CTRL1				0x0f8
7362306a36Sopenharmony_ci#define QSERDES_TX_VMODE_CTRL2				0x0fc
7462306a36Sopenharmony_ci#define QSERDES_TX_TX_ALOG_INTF_OBSV_CNTL		0x100
7562306a36Sopenharmony_ci#define QSERDES_TX_BIST_STATUS				0x104
7662306a36Sopenharmony_ci#define QSERDES_TX_BIST_ERROR_COUNT1			0x108
7762306a36Sopenharmony_ci#define QSERDES_TX_BIST_ERROR_COUNT2			0x10c
7862306a36Sopenharmony_ci#define QSERDES_TX_TX_ALOG_INTF_OBSV			0x110
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci/* Only for QMP V2 PHY - RX registers */
8162306a36Sopenharmony_ci#define QSERDES_RX_UCDR_FO_GAIN_HALF			0x000
8262306a36Sopenharmony_ci#define QSERDES_RX_UCDR_FO_GAIN_QUARTER			0x004
8362306a36Sopenharmony_ci#define QSERDES_RX_UCDR_FO_GAIN_EIGHTH			0x008
8462306a36Sopenharmony_ci#define QSERDES_RX_UCDR_FO_GAIN				0x00c
8562306a36Sopenharmony_ci#define QSERDES_RX_UCDR_SO_GAIN_HALF			0x010
8662306a36Sopenharmony_ci#define QSERDES_RX_UCDR_SO_GAIN_QUARTER			0x014
8762306a36Sopenharmony_ci#define QSERDES_RX_UCDR_SO_GAIN_EIGHTH			0x018
8862306a36Sopenharmony_ci#define QSERDES_RX_UCDR_SO_GAIN				0x01c
8962306a36Sopenharmony_ci#define QSERDES_RX_UCDR_SVS_FO_GAIN_HALF		0x020
9062306a36Sopenharmony_ci#define QSERDES_RX_UCDR_SVS_FO_GAIN_QUARTER		0x024
9162306a36Sopenharmony_ci#define QSERDES_RX_UCDR_SVS_FO_GAIN_EIGHTH		0x028
9262306a36Sopenharmony_ci#define QSERDES_RX_UCDR_SVS_FO_GAIN			0x02c
9362306a36Sopenharmony_ci#define QSERDES_RX_UCDR_SVS_SO_GAIN_HALF		0x030
9462306a36Sopenharmony_ci#define QSERDES_RX_UCDR_SVS_SO_GAIN_QUARTER		0x034
9562306a36Sopenharmony_ci#define QSERDES_RX_UCDR_SVS_SO_GAIN_EIGHTH		0x038
9662306a36Sopenharmony_ci#define QSERDES_RX_UCDR_SVS_SO_GAIN			0x03c
9762306a36Sopenharmony_ci#define QSERDES_RX_UCDR_FASTLOCK_FO_GAIN		0x040
9862306a36Sopenharmony_ci#define QSERDES_RX_UCDR_FD_GAIN				0x044
9962306a36Sopenharmony_ci#define QSERDES_RX_UCDR_SO_SATURATION_AND_ENABLE	0x048
10062306a36Sopenharmony_ci#define QSERDES_RX_UCDR_FO_TO_SO_DELAY			0x04c
10162306a36Sopenharmony_ci#define QSERDES_RX_UCDR_FASTLOCK_COUNT_LOW		0x050
10262306a36Sopenharmony_ci#define QSERDES_RX_UCDR_FASTLOCK_COUNT_HIGH		0x054
10362306a36Sopenharmony_ci#define QSERDES_RX_UCDR_MODULATE			0x058
10462306a36Sopenharmony_ci#define QSERDES_RX_UCDR_PI_CONTROLS			0x05c
10562306a36Sopenharmony_ci#define QSERDES_RX_RBIST_CONTROL			0x060
10662306a36Sopenharmony_ci#define QSERDES_RX_AUX_CONTROL				0x064
10762306a36Sopenharmony_ci#define QSERDES_RX_AUX_DATA_TCOARSE			0x068
10862306a36Sopenharmony_ci#define QSERDES_RX_AUX_DATA_TFINE_LSB			0x06c
10962306a36Sopenharmony_ci#define QSERDES_RX_AUX_DATA_TFINE_MSB			0x070
11062306a36Sopenharmony_ci#define QSERDES_RX_RCLK_AUXDATA_SEL			0x074
11162306a36Sopenharmony_ci#define QSERDES_RX_AC_JTAG_ENABLE			0x078
11262306a36Sopenharmony_ci#define QSERDES_RX_AC_JTAG_INITP			0x07c
11362306a36Sopenharmony_ci#define QSERDES_RX_AC_JTAG_INITN			0x080
11462306a36Sopenharmony_ci#define QSERDES_RX_AC_JTAG_LVL				0x084
11562306a36Sopenharmony_ci#define QSERDES_RX_AC_JTAG_MODE				0x088
11662306a36Sopenharmony_ci#define QSERDES_RX_AC_JTAG_RESET			0x08c
11762306a36Sopenharmony_ci#define QSERDES_RX_RX_TERM_BW				0x090
11862306a36Sopenharmony_ci#define QSERDES_RX_RX_RCVR_IQ_EN			0x094
11962306a36Sopenharmony_ci#define QSERDES_RX_RX_IDAC_I_DC_OFFSETS			0x098
12062306a36Sopenharmony_ci#define QSERDES_RX_RX_IDAC_IBAR_DC_OFFSETS		0x09c
12162306a36Sopenharmony_ci#define QSERDES_RX_RX_IDAC_Q_DC_OFFSETS			0x0a0
12262306a36Sopenharmony_ci#define QSERDES_RX_RX_IDAC_QBAR_DC_OFFSETS		0x0a4
12362306a36Sopenharmony_ci#define QSERDES_RX_RX_IDAC_A_DC_OFFSETS			0x0a8
12462306a36Sopenharmony_ci#define QSERDES_RX_RX_IDAC_ABAR_DC_OFFSETS		0x0ac
12562306a36Sopenharmony_ci#define QSERDES_RX_RX_IDAC_EN				0x0b0
12662306a36Sopenharmony_ci#define QSERDES_RX_RX_IDAC_ENABLES			0x0b4
12762306a36Sopenharmony_ci#define QSERDES_RX_RX_IDAC_SIGN				0x0b8
12862306a36Sopenharmony_ci#define QSERDES_RX_RX_HIGHZ_HIGHRATE			0x0bc
12962306a36Sopenharmony_ci#define QSERDES_RX_RX_TERM_AC_BYPASS_DC_COUPLE_OFFSET	0x0c0
13062306a36Sopenharmony_ci#define QSERDES_RX_RX_EQ_GAIN1_LSB			0x0c4
13162306a36Sopenharmony_ci#define QSERDES_RX_RX_EQ_GAIN1_MSB			0x0c8
13262306a36Sopenharmony_ci#define QSERDES_RX_RX_EQ_GAIN2_LSB			0x0cc
13362306a36Sopenharmony_ci#define QSERDES_RX_RX_EQ_GAIN2_MSB			0x0d0
13462306a36Sopenharmony_ci#define QSERDES_RX_RX_EQU_ADAPTOR_CNTRL1		0x0d4
13562306a36Sopenharmony_ci#define QSERDES_RX_RX_EQU_ADAPTOR_CNTRL2		0x0d8
13662306a36Sopenharmony_ci#define QSERDES_RX_RX_EQU_ADAPTOR_CNTRL3		0x0dc
13762306a36Sopenharmony_ci#define QSERDES_RX_RX_EQU_ADAPTOR_CNTRL4		0x0e0
13862306a36Sopenharmony_ci#define QSERDES_RX_RX_IDAC_CAL_CONFIGURATION		0x0e4
13962306a36Sopenharmony_ci#define QSERDES_RX_RX_IDAC_TSETTLE_LOW			0x0e8
14062306a36Sopenharmony_ci#define QSERDES_RX_RX_IDAC_TSETTLE_HIGH			0x0ec
14162306a36Sopenharmony_ci#define QSERDES_RX_RX_IDAC_ENDSAMP_LOW			0x0f0
14262306a36Sopenharmony_ci#define QSERDES_RX_RX_IDAC_ENDSAMP_HIGH			0x0f4
14362306a36Sopenharmony_ci#define QSERDES_RX_RX_IDAC_MIDPOINT_LOW			0x0f8
14462306a36Sopenharmony_ci#define QSERDES_RX_RX_IDAC_MIDPOINT_HIGH		0x0fc
14562306a36Sopenharmony_ci#define QSERDES_RX_RX_EQ_OFFSET_LSB			0x100
14662306a36Sopenharmony_ci#define QSERDES_RX_RX_EQ_OFFSET_MSB			0x104
14762306a36Sopenharmony_ci#define QSERDES_RX_RX_EQ_OFFSET_ADAPTOR_CNTRL1		0x108
14862306a36Sopenharmony_ci#define QSERDES_RX_RX_OFFSET_ADAPTOR_CNTRL2		0x10c
14962306a36Sopenharmony_ci#define QSERDES_RX_SIGDET_ENABLES			0x110
15062306a36Sopenharmony_ci#define QSERDES_RX_SIGDET_CNTRL				0x114
15162306a36Sopenharmony_ci#define QSERDES_RX_SIGDET_LVL				0x118
15262306a36Sopenharmony_ci#define QSERDES_RX_SIGDET_DEGLITCH_CNTRL		0x11c
15362306a36Sopenharmony_ci#define QSERDES_RX_RX_BAND				0x120
15462306a36Sopenharmony_ci#define QSERDES_RX_CDR_FREEZE_UP_DN			0x124
15562306a36Sopenharmony_ci#define QSERDES_RX_CDR_RESET_OVERRIDE			0x128
15662306a36Sopenharmony_ci#define QSERDES_RX_RX_INTERFACE_MODE			0x12c
15762306a36Sopenharmony_ci#define QSERDES_RX_JITTER_GEN_MODE			0x130
15862306a36Sopenharmony_ci#define QSERDES_RX_BUJ_AMP				0x134
15962306a36Sopenharmony_ci#define QSERDES_RX_SJ_AMP1				0x138
16062306a36Sopenharmony_ci#define QSERDES_RX_SJ_AMP2				0x13c
16162306a36Sopenharmony_ci#define QSERDES_RX_SJ_PER1				0x140
16262306a36Sopenharmony_ci#define QSERDES_RX_SJ_PER2				0x144
16362306a36Sopenharmony_ci#define QSERDES_RX_BUJ_STEP_FREQ1			0x148
16462306a36Sopenharmony_ci#define QSERDES_RX_BUJ_STEP_FREQ2			0x14c
16562306a36Sopenharmony_ci#define QSERDES_RX_PPM_OFFSET1				0x150
16662306a36Sopenharmony_ci#define QSERDES_RX_PPM_OFFSET2				0x154
16762306a36Sopenharmony_ci#define QSERDES_RX_SIGN_PPM_PERIOD1			0x158
16862306a36Sopenharmony_ci#define QSERDES_RX_SIGN_PPM_PERIOD2			0x15c
16962306a36Sopenharmony_ci#define QSERDES_RX_SSC_CTRL				0x160
17062306a36Sopenharmony_ci#define QSERDES_RX_SSC_COUNT1				0x164
17162306a36Sopenharmony_ci#define QSERDES_RX_SSC_COUNT2				0x168
17262306a36Sopenharmony_ci#define QSERDES_RX_RX_ALOG_INTF_OBSV_CNTL		0x16c
17362306a36Sopenharmony_ci#define QSERDES_RX_RX_PWM_ENABLE_AND_DATA		0x170
17462306a36Sopenharmony_ci#define QSERDES_RX_RX_PWM_GEAR1_TIMEOUT_COUNT		0x174
17562306a36Sopenharmony_ci#define QSERDES_RX_RX_PWM_GEAR2_TIMEOUT_COUNT		0x178
17662306a36Sopenharmony_ci#define QSERDES_RX_RX_PWM_GEAR3_TIMEOUT_COUNT		0x17c
17762306a36Sopenharmony_ci#define QSERDES_RX_RX_PWM_GEAR4_TIMEOUT_COUNT		0x180
17862306a36Sopenharmony_ci#define QSERDES_RX_PI_CTRL1				0x184
17962306a36Sopenharmony_ci#define QSERDES_RX_PI_CTRL2				0x188
18062306a36Sopenharmony_ci#define QSERDES_RX_PI_QUAD				0x18c
18162306a36Sopenharmony_ci#define QSERDES_RX_IDATA1				0x190
18262306a36Sopenharmony_ci#define QSERDES_RX_IDATA2				0x194
18362306a36Sopenharmony_ci#define QSERDES_RX_AUX_DATA1				0x198
18462306a36Sopenharmony_ci#define QSERDES_RX_AUX_DATA2				0x19c
18562306a36Sopenharmony_ci#define QSERDES_RX_AC_JTAG_OUTP				0x1a0
18662306a36Sopenharmony_ci#define QSERDES_RX_AC_JTAG_OUTN				0x1a4
18762306a36Sopenharmony_ci#define QSERDES_RX_RX_SIGDET				0x1a8
18862306a36Sopenharmony_ci#define QSERDES_RX_RX_VDCOFF				0x1ac
18962306a36Sopenharmony_ci#define QSERDES_RX_IDAC_CAL_ON				0x1b0
19062306a36Sopenharmony_ci#define QSERDES_RX_IDAC_STATUS_I			0x1b4
19162306a36Sopenharmony_ci#define QSERDES_RX_IDAC_STATUS_IBAR			0x1b8
19262306a36Sopenharmony_ci#define QSERDES_RX_IDAC_STATUS_Q			0x1bc
19362306a36Sopenharmony_ci#define QSERDES_RX_IDAC_STATUS_QBAR			0x1c0
19462306a36Sopenharmony_ci#define QSERDES_RX_IDAC_STATUS_A			0x1c4
19562306a36Sopenharmony_ci#define QSERDES_RX_IDAC_STATUS_ABAR			0x1c8
19662306a36Sopenharmony_ci#define QSERDES_RX_CALST_STATUS_I			0x1cc
19762306a36Sopenharmony_ci#define QSERDES_RX_CALST_STATUS_Q			0x1d0
19862306a36Sopenharmony_ci#define QSERDES_RX_CALST_STATUS_A			0x1d4
19962306a36Sopenharmony_ci#define QSERDES_RX_RX_ALOG_INTF_OBSV			0x1d8
20062306a36Sopenharmony_ci#define QSERDES_RX_READ_EQCODE				0x1dc
20162306a36Sopenharmony_ci#define QSERDES_RX_READ_OFFSETCODE			0x1e0
20262306a36Sopenharmony_ci#define QSERDES_RX_IA_ERROR_COUNTER_LOW			0x1e4
20362306a36Sopenharmony_ci#define QSERDES_RX_IA_ERROR_COUNTER_HIGH		0x1e8
20462306a36Sopenharmony_ci
20562306a36Sopenharmony_ci#endif
206