Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20221110192248.873973-12-dmitry.baryshkov@linaro.org
Signed-off-by: Vinod Koul <vkoul@kernel.org>

authored by

Dmitry Baryshkov and committed by
Vinod Koul
83cb72b4 5c45d288

+29 -26
+3
drivers/phy/qualcomm/phy-qcom-qmp-pcs-v2.h
··· 28 28 #define QPHY_V2_PCS_FLL_CNT_VAL_L 0x0c8 29 29 #define QPHY_V2_PCS_FLL_CNT_VAL_H_TOL 0x0cc 30 30 #define QPHY_V2_PCS_FLL_MAN_CODE 0x0d0 31 + #define QPHY_V2_PCS_AUTONOMOUS_MODE_CTRL 0x0d4 32 + #define QPHY_V2_PCS_LFPS_RXTERM_IRQ_CLEAR 0x0d8 31 33 #define QPHY_V2_PCS_LFPS_RXTERM_IRQ_STATUS 0x178 34 + #define QPHY_V2_PCS_USB_PCS_STATUS 0x17c /* USB */ 32 35 #define QPHY_V2_PCS_PLL_LOCK_CHK_DLY_TIME_AUXCLK_LSB 0x1a8 33 36 #define QPHY_V2_PCS_OSC_DTCT_ACTIONS 0x1ac 34 37 #define QPHY_V2_PCS_RX_SIGDET_LVL 0x1d8
+26 -26
drivers/phy/qualcomm/phy-qcom-qmp-usb.c
··· 96 96 QPHY_LAYOUT_SIZE 97 97 }; 98 98 99 - static const unsigned int usb3phy_regs_layout[QPHY_LAYOUT_SIZE] = { 100 - [QPHY_SW_RESET] = 0x00, 101 - [QPHY_START_CTRL] = 0x08, 102 - [QPHY_PCS_STATUS] = 0x17c, 103 - [QPHY_PCS_AUTONOMOUS_MODE_CTRL] = 0x0d4, 104 - [QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR] = 0x0d8, 105 - [QPHY_PCS_POWER_DOWN_CONTROL] = 0x04, 99 + static const unsigned int qmp_v2_usb3phy_regs_layout[QPHY_LAYOUT_SIZE] = { 100 + [QPHY_SW_RESET] = QPHY_V2_PCS_SW_RESET, 101 + [QPHY_START_CTRL] = QPHY_V2_PCS_START_CONTROL, 102 + [QPHY_PCS_STATUS] = QPHY_V2_PCS_USB_PCS_STATUS, 103 + [QPHY_PCS_AUTONOMOUS_MODE_CTRL] = QPHY_V2_PCS_AUTONOMOUS_MODE_CTRL, 104 + [QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR] = QPHY_V2_PCS_LFPS_RXTERM_IRQ_CLEAR, 105 + [QPHY_PCS_POWER_DOWN_CONTROL] = QPHY_V2_PCS_POWER_DOWN_CONTROL, 106 106 }; 107 107 108 108 static const unsigned int qmp_v3_usb3phy_regs_layout[QPHY_LAYOUT_SIZE] = { 109 - [QPHY_SW_RESET] = 0x00, 110 - [QPHY_START_CTRL] = 0x08, 111 - [QPHY_PCS_STATUS] = 0x174, 112 - [QPHY_PCS_AUTONOMOUS_MODE_CTRL] = 0x0d8, 113 - [QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR] = 0x0dc, 114 - [QPHY_PCS_POWER_DOWN_CONTROL] = 0x04, 109 + [QPHY_SW_RESET] = QPHY_V3_PCS_SW_RESET, 110 + [QPHY_START_CTRL] = QPHY_V3_PCS_START_CONTROL, 111 + [QPHY_PCS_STATUS] = QPHY_V3_PCS_PCS_STATUS, 112 + [QPHY_PCS_AUTONOMOUS_MODE_CTRL] = QPHY_V3_PCS_AUTONOMOUS_MODE_CTRL, 113 + [QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR] = QPHY_V3_PCS_LFPS_RXTERM_IRQ_CLEAR, 114 + [QPHY_PCS_POWER_DOWN_CONTROL] = QPHY_V3_PCS_POWER_DOWN_CONTROL, 115 115 }; 116 116 117 117 static const unsigned int qmp_v4_usb3phy_regs_layout[QPHY_LAYOUT_SIZE] = { 118 - [QPHY_SW_RESET] = 0x00, 119 - [QPHY_START_CTRL] = 0x44, 120 - [QPHY_PCS_STATUS] = 0x14, 121 - [QPHY_PCS_POWER_DOWN_CONTROL] = 0x40, 118 + [QPHY_SW_RESET] = QPHY_V4_PCS_SW_RESET, 119 + [QPHY_START_CTRL] = QPHY_V4_PCS_START_CONTROL, 120 + [QPHY_PCS_STATUS] = QPHY_V4_PCS_PCS_STATUS1, 121 + [QPHY_PCS_POWER_DOWN_CONTROL] = QPHY_V4_PCS_POWER_DOWN_CONTROL, 122 122 123 123 /* In PCS_USB */ 124 - [QPHY_PCS_AUTONOMOUS_MODE_CTRL] = 0x008, 125 - [QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR] = 0x014, 124 + [QPHY_PCS_AUTONOMOUS_MODE_CTRL] = QPHY_V4_PCS_USB3_AUTONOMOUS_MODE_CTRL, 125 + [QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR] = QPHY_V4_PCS_USB3_LFPS_RXTERM_IRQ_CLEAR, 126 126 }; 127 127 128 128 static const unsigned int qcm2290_usb3phy_regs_layout[QPHY_LAYOUT_SIZE] = { 129 - [QPHY_SW_RESET] = 0x00, 130 - [QPHY_PCS_POWER_DOWN_CONTROL] = 0x04, 131 - [QPHY_START_CTRL] = 0x08, 132 - [QPHY_PCS_AUTONOMOUS_MODE_CTRL] = 0xd8, 133 - [QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR] = 0xdc, 134 - [QPHY_PCS_STATUS] = 0x174, 129 + [QPHY_SW_RESET] = QPHY_V3_PCS_SW_RESET, 130 + [QPHY_PCS_POWER_DOWN_CONTROL] = QPHY_V3_PCS_POWER_DOWN_CONTROL, 131 + [QPHY_START_CTRL] = QPHY_V3_PCS_START_CONTROL, 132 + [QPHY_PCS_AUTONOMOUS_MODE_CTRL] = QPHY_V3_PCS_AUTONOMOUS_MODE_CTRL, 133 + [QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR] = QPHY_V3_PCS_LFPS_RXTERM_IRQ_CLEAR, 134 + [QPHY_PCS_STATUS] = QPHY_V3_PCS_PCS_STATUS, 135 135 }; 136 136 137 137 static const struct qmp_phy_init_tbl ipq8074_usb3_serdes_tbl[] = { ··· 1598 1598 .num_resets = ARRAY_SIZE(msm8996_usb3phy_reset_l), 1599 1599 .vreg_list = qmp_phy_vreg_l, 1600 1600 .num_vregs = ARRAY_SIZE(qmp_phy_vreg_l), 1601 - .regs = usb3phy_regs_layout, 1601 + .regs = qmp_v2_usb3phy_regs_layout, 1602 1602 }; 1603 1603 1604 1604 static const struct qmp_phy_cfg qmp_v3_usb3phy_cfg = {