aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd/rts5249.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mfd/rts5249.c')
-rw-r--r--drivers/mfd/rts5249.c11
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
91static 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
91static int rts5249_extra_init_hw(struct rtsx_pcr *pcr) 101static 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: