mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
sd: add sd power cycle for sd3.0 [1/1]
PD#SWPL-14953 Problem: SD card 3.0 mode requires power cycle. if not, the initialization of SD card will be affected. Solution: add SD power cycle supported. Verify: sm1_ac200 Change-Id: Ic8aecadf3b63660adb74ff4ecf0a5d38037b579f Signed-off-by: Nan Li <nan.li@amlogic.com>
This commit is contained in:
@@ -1511,7 +1511,8 @@
|
||||
"sd_to_ao_uart_pins",
|
||||
"ao_to_sd_uart_pins",
|
||||
"sd_to_ao_jtag_pins",
|
||||
"ao_to_sd_jtag_pins";
|
||||
"ao_to_sd_jtag_pins",
|
||||
"sd_all_pd_pins";
|
||||
|
||||
pinctrl-0 = <&sd_all_pins>;
|
||||
pinctrl-1 = <&sd_clk_cmd_pins>;
|
||||
@@ -1526,6 +1527,7 @@
|
||||
pinctrl-7 = <&sd_all_pins &sd_to_ao_uart_pins>;
|
||||
pinctrl-8 = <&sd_to_ao_uart_clr_pins
|
||||
&ao_to_sd_uart_pins>;
|
||||
pinctrl-9 = <&sd_all_pd_pins>;
|
||||
|
||||
clocks = <&clkc CLKID_SD_EMMC_B>,
|
||||
<&clkc CLKID_SD_EMMC_B_P0_COMP>,
|
||||
@@ -2047,6 +2049,20 @@
|
||||
};
|
||||
};
|
||||
|
||||
sd_all_pd_pins:sd_all_pd_pins {
|
||||
mux {
|
||||
groups = "GPIOC_0",
|
||||
"GPIOC_1",
|
||||
"GPIOC_2",
|
||||
"GPIOC_3",
|
||||
"GPIOC_4",
|
||||
"GPIOC_5";
|
||||
function = "gpio_periphs";
|
||||
bias-pull-down;
|
||||
output-low;
|
||||
};
|
||||
};
|
||||
|
||||
sd_1bit_pins:sd_1bit_pins {
|
||||
mux {
|
||||
groups = "sdcard_d0_c",
|
||||
|
||||
@@ -1510,7 +1510,8 @@
|
||||
"sd_to_ao_uart_pins",
|
||||
"ao_to_sd_uart_pins",
|
||||
"sd_to_ao_jtag_pins",
|
||||
"ao_to_sd_jtag_pins";
|
||||
"ao_to_sd_jtag_pins",
|
||||
"sd_all_pd_pins";
|
||||
|
||||
pinctrl-0 = <&sd_all_pins>;
|
||||
pinctrl-1 = <&sd_clk_cmd_pins>;
|
||||
@@ -1525,6 +1526,7 @@
|
||||
pinctrl-7 = <&sd_all_pins &sd_to_ao_uart_pins>;
|
||||
pinctrl-8 = <&sd_to_ao_uart_clr_pins
|
||||
&ao_to_sd_uart_pins>;
|
||||
pinctrl-8 = <&sd_all_pd_pins>;
|
||||
|
||||
clocks = <&clkc CLKID_SD_EMMC_B>,
|
||||
<&clkc CLKID_SD_EMMC_B_P0_COMP>,
|
||||
@@ -2007,6 +2009,20 @@
|
||||
};
|
||||
};
|
||||
|
||||
sd_all_pd_pins:sd_all_pd_pins {
|
||||
mux {
|
||||
groups = "GPIOC_0",
|
||||
"GPIOC_1",
|
||||
"GPIOC_2",
|
||||
"GPIOC_3",
|
||||
"GPIOC_4",
|
||||
"GPIOC_5";
|
||||
function = "gpio_periphs";
|
||||
bias-pull-down;
|
||||
output-low;
|
||||
};
|
||||
};
|
||||
|
||||
sd_1bit_pins:sd_1bit_pins {
|
||||
mux {
|
||||
groups = "sdcard_d0_c",
|
||||
|
||||
@@ -470,6 +470,10 @@ static void aml_sd_emmc_set_power_v3(struct amlsd_platform *pdata,
|
||||
pdata->pwr_on(pdata);
|
||||
break;
|
||||
case MMC_POWER_UP:
|
||||
if (aml_card_type_non_sdio(pdata)) {
|
||||
of_amlsd_pwr_off(pdata);
|
||||
of_amlsd_pwr_on(pdata);
|
||||
}
|
||||
break;
|
||||
case MMC_POWER_OFF:
|
||||
writel(0, host->base + SD_EMMC_DELAY1_V3);
|
||||
|
||||
Reference in New Issue
Block a user