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>
This commit is contained in:
Родитель
5c45d28845
Коммит
83cb72b4e3
|
@ -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
|
||||
|
|
|
@ -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 = {
|
||||
|
|
Загрузка…
Ссылка в новой задаче