@@ -94,6 +94,7 @@ enum qphy_reg_layout {
9494 QPHY_PCS_AUTONOMOUS_MODE_CTRL ,
9595 QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR ,
9696 QPHY_PCS_POWER_DOWN_CONTROL ,
97+ QPHY_PCS_MISC_CLAMP_ENABLE ,
9798 /* Keep last to ensure regs_layout arrays are properly initialized */
9899 QPHY_LAYOUT_SIZE
99100};
@@ -114,6 +115,16 @@ static const unsigned int qmp_v3_usb3phy_regs_layout[QPHY_LAYOUT_SIZE] = {
114115 [QPHY_PCS_AUTONOMOUS_MODE_CTRL ] = QPHY_V3_PCS_AUTONOMOUS_MODE_CTRL ,
115116 [QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR ] = QPHY_V3_PCS_LFPS_RXTERM_IRQ_CLEAR ,
116117 [QPHY_PCS_POWER_DOWN_CONTROL ] = QPHY_V3_PCS_POWER_DOWN_CONTROL ,
118+ [QPHY_PCS_MISC_CLAMP_ENABLE ] = QPHY_V3_PCS_MISC_CLAMP_ENABLE ,
119+ };
120+
121+ static const unsigned int qmp_v3_usb3phy_regs_layout_qcm2290 [QPHY_LAYOUT_SIZE ] = {
122+ [QPHY_SW_RESET ] = QPHY_V3_PCS_SW_RESET ,
123+ [QPHY_START_CTRL ] = QPHY_V3_PCS_START_CONTROL ,
124+ [QPHY_PCS_STATUS ] = QPHY_V3_PCS_PCS_STATUS ,
125+ [QPHY_PCS_AUTONOMOUS_MODE_CTRL ] = QPHY_V3_PCS_AUTONOMOUS_MODE_CTRL ,
126+ [QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR ] = QPHY_V3_PCS_LFPS_RXTERM_IRQ_CLEAR ,
127+ [QPHY_PCS_POWER_DOWN_CONTROL ] = QPHY_V3_PCS_POWER_DOWN_CONTROL ,
117128};
118129
119130static const unsigned int qmp_v4_usb3phy_regs_layout [QPHY_LAYOUT_SIZE ] = {
@@ -125,6 +136,7 @@ static const unsigned int qmp_v4_usb3phy_regs_layout[QPHY_LAYOUT_SIZE] = {
125136 /* In PCS_USB */
126137 [QPHY_PCS_AUTONOMOUS_MODE_CTRL ] = QPHY_V4_PCS_USB3_AUTONOMOUS_MODE_CTRL ,
127138 [QPHY_PCS_LFPS_RXTERM_IRQ_CLEAR ] = QPHY_V4_PCS_USB3_LFPS_RXTERM_IRQ_CLEAR ,
139+ [QPHY_PCS_MISC_CLAMP_ENABLE ] = QPHY_V4_PCS_MISC_CLAMP_ENABLE ,
128140};
129141
130142static const unsigned int qmp_v5_usb3phy_regs_layout [QPHY_LAYOUT_SIZE ] = {
@@ -1523,7 +1535,7 @@ static const struct qmp_phy_cfg qcm2290_usb3phy_cfg = {
15231535 .pcs_tbl_num = ARRAY_SIZE (qcm2290_usb3_pcs_tbl ),
15241536 .vreg_list = qmp_phy_vreg_l ,
15251537 .num_vregs = ARRAY_SIZE (qmp_phy_vreg_l ),
1526- .regs = qmp_v3_usb3phy_regs_layout ,
1538+ .regs = qmp_v3_usb3phy_regs_layout_qcm2290 ,
15271539};
15281540
15291541static void qmp_usb_configure_lane (void __iomem * base ,
@@ -1761,8 +1773,8 @@ static void qmp_usb_enable_autonomous_mode(struct qmp_usb *qmp)
17611773 qphy_setbits (pcs_usb , cfg -> regs [QPHY_PCS_AUTONOMOUS_MODE_CTRL ], intr_mask );
17621774
17631775 /* Enable i/o clamp_n for autonomous mode */
1764- if (pcs_misc )
1765- qphy_clrbits (pcs_misc , QPHY_V3_PCS_MISC_CLAMP_ENABLE , CLAMP_EN );
1776+ if (pcs_misc && cfg -> regs [ QPHY_PCS_MISC_CLAMP_ENABLE ] )
1777+ qphy_clrbits (pcs_misc , cfg -> regs [ QPHY_PCS_MISC_CLAMP_ENABLE ] , CLAMP_EN );
17661778}
17671779
17681780static void qmp_usb_disable_autonomous_mode (struct qmp_usb * qmp )
@@ -1772,8 +1784,8 @@ static void qmp_usb_disable_autonomous_mode(struct qmp_usb *qmp)
17721784 void __iomem * pcs_misc = qmp -> pcs_misc ;
17731785
17741786 /* Disable i/o clamp_n on resume for normal mode */
1775- if (pcs_misc )
1776- qphy_setbits (pcs_misc , QPHY_V3_PCS_MISC_CLAMP_ENABLE , CLAMP_EN );
1787+ if (pcs_misc && cfg -> regs [ QPHY_PCS_MISC_CLAMP_ENABLE ] )
1788+ qphy_setbits (pcs_misc , cfg -> regs [ QPHY_PCS_MISC_CLAMP_ENABLE ] , CLAMP_EN );
17771789
17781790 qphy_clrbits (pcs_usb , cfg -> regs [QPHY_PCS_AUTONOMOUS_MODE_CTRL ],
17791791 ARCVR_DTCT_EN | ARCVR_DTCT_EVENT_SEL | ALFPS_DTCT_EN );
0 commit comments