diff options
| author | Micky Ching <micky_ching@realsil.com.cn> | 2015-02-25 00:50:12 -0500 |
|---|---|---|
| committer | Lee Jones <lee.jones@linaro.org> | 2015-03-03 11:41:19 -0500 |
| commit | b038538104d5b033d3beaffba6d6efe01246930b (patch) | |
| tree | e51dc6db8a785a16bfb91316543baa5fb4eccc4c /drivers/mfd | |
| parent | e89f231826a773ea37dfa99ab619f3ee34c06522 (diff) | |
mfd: rtsx: Update phy register
Update some phy register name and value for rts5249,
the updated value makes chip more stable on some platform.
Signed-off-by: Micky Ching <micky_ching@realsil.com.cn>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'drivers/mfd')
| -rw-r--r-- | drivers/mfd/rts5249.c | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/drivers/mfd/rts5249.c b/drivers/mfd/rts5249.c index 2fe2854fb450..8de822048ff2 100644 --- a/drivers/mfd/rts5249.c +++ b/drivers/mfd/rts5249.c | |||
| @@ -132,11 +132,12 @@ static int rts5249_optimize_phy(struct rtsx_pcr *pcr) | |||
| 132 | if (err < 0) | 132 | if (err < 0) |
| 133 | return err; | 133 | return err; |
| 134 | 134 | ||
| 135 | err = rtsx_pci_write_phy_register(pcr, PHY_REG_REV, | 135 | err = rtsx_pci_write_phy_register(pcr, PHY_REV, |
| 136 | PHY_REG_REV_RESV | PHY_REG_REV_RXIDLE_LATCHED | | 136 | PHY_REV_RESV | PHY_REV_RXIDLE_LATCHED | |
| 137 | PHY_REG_REV_P1_EN | PHY_REG_REV_RXIDLE_EN | | 137 | PHY_REV_P1_EN | PHY_REV_RXIDLE_EN | |
| 138 | PHY_REG_REV_RX_PWST | PHY_REG_REV_CLKREQ_DLY_TIMER_1_0 | | 138 | PHY_REV_CLKREQ_TX_EN | PHY_REV_RX_PWST | |
| 139 | PHY_REG_REV_STOP_CLKRD | PHY_REG_REV_STOP_CLKWR); | 139 | PHY_REV_CLKREQ_DT_1_0 | PHY_REV_STOP_CLKRD | |
| 140 | PHY_REV_STOP_CLKWR); | ||
| 140 | if (err < 0) | 141 | if (err < 0) |
| 141 | return err; | 142 | return err; |
| 142 | 143 | ||
| @@ -147,19 +148,21 @@ static int rts5249_optimize_phy(struct rtsx_pcr *pcr) | |||
| 147 | PHY_BPCR_IB_FILTER | PHY_BPCR_CMIRROR_EN); | 148 | PHY_BPCR_IB_FILTER | PHY_BPCR_CMIRROR_EN); |
| 148 | if (err < 0) | 149 | if (err < 0) |
| 149 | return err; | 150 | return err; |
| 151 | |||
| 150 | err = rtsx_pci_write_phy_register(pcr, PHY_PCR, | 152 | err = rtsx_pci_write_phy_register(pcr, PHY_PCR, |
| 151 | PHY_PCR_FORCE_CODE | PHY_PCR_OOBS_CALI_50 | | 153 | PHY_PCR_FORCE_CODE | PHY_PCR_OOBS_CALI_50 | |
| 152 | PHY_PCR_OOBS_VCM_08 | PHY_PCR_OOBS_SEN_90 | | 154 | PHY_PCR_OOBS_VCM_08 | PHY_PCR_OOBS_SEN_90 | |
| 153 | PHY_PCR_RSSI_EN); | 155 | PHY_PCR_RSSI_EN | PHY_PCR_RX10K); |
| 154 | if (err < 0) | 156 | if (err < 0) |
| 155 | return err; | 157 | return err; |
| 158 | |||
| 156 | err = rtsx_pci_write_phy_register(pcr, PHY_RCR2, | 159 | err = rtsx_pci_write_phy_register(pcr, PHY_RCR2, |
| 157 | PHY_RCR2_EMPHASE_EN | PHY_RCR2_NADJR | | 160 | PHY_RCR2_EMPHASE_EN | PHY_RCR2_NADJR | |
| 158 | PHY_RCR2_CDR_CP_10 | PHY_RCR2_CDR_SR_2 | | 161 | PHY_RCR2_CDR_SR_2 | PHY_RCR2_FREQSEL_12 | |
| 159 | PHY_RCR2_FREQSEL_12 | PHY_RCR2_CPADJEN | | 162 | PHY_RCR2_CDR_SC_12P | PHY_RCR2_CALIB_LATE); |
| 160 | PHY_RCR2_CDR_SC_8 | PHY_RCR2_CALIB_LATE); | ||
| 161 | if (err < 0) | 163 | if (err < 0) |
| 162 | return err; | 164 | return err; |
| 165 | |||
| 163 | err = rtsx_pci_write_phy_register(pcr, PHY_FLD4, | 166 | err = rtsx_pci_write_phy_register(pcr, PHY_FLD4, |
| 164 | PHY_FLD4_FLDEN_SEL | PHY_FLD4_REQ_REF | | 167 | PHY_FLD4_FLDEN_SEL | PHY_FLD4_REQ_REF | |
| 165 | PHY_FLD4_RXAMP_OFF | PHY_FLD4_REQ_ADDA | | 168 | PHY_FLD4_RXAMP_OFF | PHY_FLD4_REQ_ADDA | |
| @@ -167,11 +170,12 @@ static int rts5249_optimize_phy(struct rtsx_pcr *pcr) | |||
| 167 | PHY_FLD4_BER_CHK_EN); | 170 | PHY_FLD4_BER_CHK_EN); |
| 168 | if (err < 0) | 171 | if (err < 0) |
| 169 | return err; | 172 | return err; |
| 170 | err = rtsx_pci_write_phy_register(pcr, PHY_RDR, PHY_RDR_RXDSEL_1_9); | 173 | err = rtsx_pci_write_phy_register(pcr, PHY_RDR, |
| 174 | PHY_RDR_RXDSEL_1_9 | PHY_SSC_AUTO_PWD); | ||
| 171 | if (err < 0) | 175 | if (err < 0) |
| 172 | return err; | 176 | return err; |
| 173 | err = rtsx_pci_write_phy_register(pcr, PHY_RCR1, | 177 | err = rtsx_pci_write_phy_register(pcr, PHY_RCR1, |
| 174 | PHY_RCR1_ADP_TIME | PHY_RCR1_VCO_COARSE); | 178 | PHY_RCR1_ADP_TIME_4 | PHY_RCR1_VCO_COARSE); |
| 175 | if (err < 0) | 179 | if (err < 0) |
| 176 | return err; | 180 | return err; |
| 177 | err = rtsx_pci_write_phy_register(pcr, PHY_FLD3, | 181 | err = rtsx_pci_write_phy_register(pcr, PHY_FLD3, |
| @@ -179,10 +183,11 @@ static int rts5249_optimize_phy(struct rtsx_pcr *pcr) | |||
| 179 | PHY_FLD3_RXDELINK); | 183 | PHY_FLD3_RXDELINK); |
| 180 | if (err < 0) | 184 | if (err < 0) |
| 181 | return err; | 185 | return err; |
| 186 | |||
| 182 | return rtsx_pci_write_phy_register(pcr, PHY_TUNE, | 187 | return rtsx_pci_write_phy_register(pcr, PHY_TUNE, |
| 183 | PHY_TUNE_TUNEREF_1_0 | PHY_TUNE_VBGSEL_1252 | | 188 | PHY_TUNE_TUNEREF_1_0 | PHY_TUNE_VBGSEL_1252 | |
| 184 | PHY_TUNE_SDBUS_33 | PHY_TUNE_TUNED18 | | 189 | PHY_TUNE_SDBUS_33 | PHY_TUNE_TUNED18 | |
| 185 | PHY_TUNE_TUNED12); | 190 | PHY_TUNE_TUNED12 | PHY_TUNE_TUNEA12); |
| 186 | } | 191 | } |
| 187 | 192 | ||
| 188 | static int rts5249_turn_on_led(struct rtsx_pcr *pcr) | 193 | static int rts5249_turn_on_led(struct rtsx_pcr *pcr) |
