diff options
Diffstat (limited to 'drivers/mfd/rts5249.c')
-rw-r--r-- | drivers/mfd/rts5249.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/mfd/rts5249.c b/drivers/mfd/rts5249.c index d5db182f35db..79ff212c3e7b 100644 --- a/drivers/mfd/rts5249.c +++ b/drivers/mfd/rts5249.c | |||
@@ -88,6 +88,16 @@ static void rts5249_fetch_vendor_settings(struct rtsx_pcr *pcr) | |||
88 | pcr->flags |= PCR_REVERSE_SOCKET; | 88 | pcr->flags |= PCR_REVERSE_SOCKET; |
89 | } | 89 | } |
90 | 90 | ||
91 | static void rts5249_force_power_down(struct rtsx_pcr *pcr) | ||
92 | { | ||
93 | /* Set relink_time to 0 */ | ||
94 | rtsx_pci_write_register(pcr, AUTOLOAD_CFG_BASE + 1, 0xFF, 0); | ||
95 | rtsx_pci_write_register(pcr, AUTOLOAD_CFG_BASE + 2, 0xFF, 0); | ||
96 | rtsx_pci_write_register(pcr, AUTOLOAD_CFG_BASE + 3, 0x01, 0); | ||
97 | |||
98 | rtsx_pci_write_register(pcr, FPDCTL, 0x03, 0x03); | ||
99 | } | ||
100 | |||
91 | static int rts5249_extra_init_hw(struct rtsx_pcr *pcr) | 101 | static int rts5249_extra_init_hw(struct rtsx_pcr *pcr) |
92 | { | 102 | { |
93 | rtsx_pci_init_cmd(pcr); | 103 | rtsx_pci_init_cmd(pcr); |
@@ -217,6 +227,7 @@ static const struct pcr_ops rts5249_pcr_ops = { | |||
217 | .card_power_on = rts5249_card_power_on, | 227 | .card_power_on = rts5249_card_power_on, |
218 | .card_power_off = rts5249_card_power_off, | 228 | .card_power_off = rts5249_card_power_off, |
219 | .switch_output_voltage = rts5249_switch_output_voltage, | 229 | .switch_output_voltage = rts5249_switch_output_voltage, |
230 | .force_power_down = rts5249_force_power_down, | ||
220 | }; | 231 | }; |
221 | 232 | ||
222 | /* SD Pull Control Enable: | 233 | /* SD Pull Control Enable: |