Commit 83cb72b4 authored by Dmitry Baryshkov's avatar Dmitry Baryshkov Committed by Vinod Koul
Browse files

phy: qcom-qmp-usb: rework regs layout arrays



Use symbolic names for the values inside reg layout arrays. New register
names are added following the PCS register layout that is used by the
particular PHY.

Note: ipq8074 tables appear to use a mixture of v2 and v3 registers.
This might need additional fixes.

Signed-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20221110192248.873973-12-dmitry.baryshkov@linaro.org


Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent 5c45d288
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -28,7 +28,10 @@
#define QPHY_V2_PCS_FLL_CNT_VAL_L			0x0c8
#define QPHY_V2_PCS_FLL_CNT_VAL_H_TOL			0x0cc
#define QPHY_V2_PCS_FLL_MAN_CODE			0x0d0
#define QPHY_V2_PCS_AUTONOMOUS_MODE_CTRL		0x0d4
#define QPHY_V2_PCS_LFPS_RXTERM_IRQ_CLEAR		0x0d8
#define QPHY_V2_PCS_LFPS_RXTERM_IRQ_STATUS		0x178
#define QPHY_V2_PCS_USB_PCS_STATUS			0x17c /* USB */
#define QPHY_V2_PCS_PLL_LOCK_CHK_DLY_TIME_AUXCLK_LSB	0x1a8
#define QPHY_V2_PCS_OSC_DTCT_ACTIONS			0x1ac
#define QPHY_V2_PCS_RX_SIGDET_LVL			0x1d8
+26 −26
Original line number Diff line number Diff line
@@ -96,42 +96,42 @@ enum qphy_reg_layout {
	QPHY_LAYOUT_SIZE
};

static const unsigned int usb3phy_regs_layout[QPHY_LAYOUT_SIZE] = {
	[QPHY_SW_RESET]			= 0x00,
	[QPHY_START_CTRL]		= 0x08,
	[QPHY_PCS_STATUS]		= 0x17c,
	[QPHY_PCS_AUTONOMOUS_MODE_CTRL]	= 0x0d4,
	[QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR]  = 0x0d8,
	[QPHY_PCS_POWER_DOWN_CONTROL]	= 0x04,
static const unsigned int qmp_v2_usb3phy_regs_layout[QPHY_LAYOUT_SIZE] = {
	[QPHY_SW_RESET]			= QPHY_V2_PCS_SW_RESET,
	[QPHY_START_CTRL]		= QPHY_V2_PCS_START_CONTROL,
	[QPHY_PCS_STATUS]		= QPHY_V2_PCS_USB_PCS_STATUS,
	[QPHY_PCS_AUTONOMOUS_MODE_CTRL]	= QPHY_V2_PCS_AUTONOMOUS_MODE_CTRL,
	[QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR] = QPHY_V2_PCS_LFPS_RXTERM_IRQ_CLEAR,
	[QPHY_PCS_POWER_DOWN_CONTROL]	= QPHY_V2_PCS_POWER_DOWN_CONTROL,
};

static const unsigned int qmp_v3_usb3phy_regs_layout[QPHY_LAYOUT_SIZE] = {
	[QPHY_SW_RESET]			= 0x00,
	[QPHY_START_CTRL]		= 0x08,
	[QPHY_PCS_STATUS]		= 0x174,
	[QPHY_PCS_AUTONOMOUS_MODE_CTRL]	= 0x0d8,
	[QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR]  = 0x0dc,
	[QPHY_PCS_POWER_DOWN_CONTROL]	= 0x04,
	[QPHY_SW_RESET]			= QPHY_V3_PCS_SW_RESET,
	[QPHY_START_CTRL]		= QPHY_V3_PCS_START_CONTROL,
	[QPHY_PCS_STATUS]		= QPHY_V3_PCS_PCS_STATUS,
	[QPHY_PCS_AUTONOMOUS_MODE_CTRL]	= QPHY_V3_PCS_AUTONOMOUS_MODE_CTRL,
	[QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR] = QPHY_V3_PCS_LFPS_RXTERM_IRQ_CLEAR,
	[QPHY_PCS_POWER_DOWN_CONTROL]	= QPHY_V3_PCS_POWER_DOWN_CONTROL,
};

static const unsigned int qmp_v4_usb3phy_regs_layout[QPHY_LAYOUT_SIZE] = {
	[QPHY_SW_RESET]			= 0x00,
	[QPHY_START_CTRL]		= 0x44,
	[QPHY_PCS_STATUS]		= 0x14,
	[QPHY_PCS_POWER_DOWN_CONTROL]	= 0x40,
	[QPHY_SW_RESET]			= QPHY_V4_PCS_SW_RESET,
	[QPHY_START_CTRL]		= QPHY_V4_PCS_START_CONTROL,
	[QPHY_PCS_STATUS]		= QPHY_V4_PCS_PCS_STATUS1,
	[QPHY_PCS_POWER_DOWN_CONTROL]	= QPHY_V4_PCS_POWER_DOWN_CONTROL,

	/* In PCS_USB */
	[QPHY_PCS_AUTONOMOUS_MODE_CTRL]	= 0x008,
	[QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR] = 0x014,
	[QPHY_PCS_AUTONOMOUS_MODE_CTRL]	= QPHY_V4_PCS_USB3_AUTONOMOUS_MODE_CTRL,
	[QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR] = QPHY_V4_PCS_USB3_LFPS_RXTERM_IRQ_CLEAR,
};

static const unsigned int qcm2290_usb3phy_regs_layout[QPHY_LAYOUT_SIZE] = {
	[QPHY_SW_RESET]			= 0x00,
	[QPHY_PCS_POWER_DOWN_CONTROL]	= 0x04,
	[QPHY_START_CTRL]		= 0x08,
	[QPHY_PCS_AUTONOMOUS_MODE_CTRL]	= 0xd8,
	[QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR] = 0xdc,
	[QPHY_PCS_STATUS]		= 0x174,
	[QPHY_SW_RESET]			= QPHY_V3_PCS_SW_RESET,
	[QPHY_PCS_POWER_DOWN_CONTROL]	= QPHY_V3_PCS_POWER_DOWN_CONTROL,
	[QPHY_START_CTRL]		= QPHY_V3_PCS_START_CONTROL,
	[QPHY_PCS_AUTONOMOUS_MODE_CTRL]	= QPHY_V3_PCS_AUTONOMOUS_MODE_CTRL,
	[QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR] = QPHY_V3_PCS_LFPS_RXTERM_IRQ_CLEAR,
	[QPHY_PCS_STATUS]		= QPHY_V3_PCS_PCS_STATUS,
};

static const struct qmp_phy_init_tbl ipq8074_usb3_serdes_tbl[] = {
@@ -1598,7 +1598,7 @@ static const struct qmp_phy_cfg msm8996_usb3phy_cfg = {
	.num_resets		= ARRAY_SIZE(msm8996_usb3phy_reset_l),
	.vreg_list		= qmp_phy_vreg_l,
	.num_vregs		= ARRAY_SIZE(qmp_phy_vreg_l),
	.regs			= usb3phy_regs_layout,
	.regs			= qmp_v2_usb3phy_regs_layout,
};

static const struct qmp_phy_cfg qmp_v3_usb3phy_cfg = {