aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd
diff options
context:
space:
mode:
authorMicky Ching <micky_ching@realsil.com.cn>2015-02-25 00:50:12 -0500
committerLee Jones <lee.jones@linaro.org>2015-03-03 11:41:19 -0500
commitb038538104d5b033d3beaffba6d6efe01246930b (patch)
treee51dc6db8a785a16bfb91316543baa5fb4eccc4c /drivers/mfd
parente89f231826a773ea37dfa99ab619f3ee34c06522 (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.c29
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
188static int rts5249_turn_on_led(struct rtsx_pcr *pcr) 193static int rts5249_turn_on_led(struct rtsx_pcr *pcr)