mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-03 09:41:54 +09:00
ODROIDC: mmc: Support UHS-1 micro sdcard
Since MESON8B has single SDHC and SDIO block, 'meson8b_odroidc.dtd' is to boot by sdcard and 'meson8b_odroidc_emmc.dtd' by eMMC. Change-Id: I5550197122c023d50665a3bcfc740567b99420f4
This commit is contained in:
@@ -366,51 +366,6 @@ void root_func(){
|
||||
dev_name = "uart_3";
|
||||
};
|
||||
|
||||
/// ***************************************************************************************
|
||||
/// - Bluetooth
|
||||
//$$ MODULE="Bluetooth"
|
||||
//$$ DEVICE="bt-dev"
|
||||
//$$ L2 PROP_STR = "status"
|
||||
//$$ L2 PROP_STR = "gpio_reset"
|
||||
bt-dev{
|
||||
compatible = "amlogic,bt-dev";
|
||||
dev_name = "bt-dev";
|
||||
status = "ok";
|
||||
gpio_reset = "GPIOX_20";
|
||||
};
|
||||
/// ***************************************************************************************
|
||||
/// - WiFi
|
||||
//$$ MODULE="WiFi"
|
||||
//$$ DEVICE="aml_broadcm_wifi"
|
||||
//$$ L2 PROP_STR = "status"
|
||||
//$$ L2 PROP_STR = "interrupt_pin"
|
||||
//$$ L2 PROP_U32 = "irq_num"
|
||||
//$$ L2 PROP_STR = "irq_trigger_type"
|
||||
//$$ L2 PROP_STR = "power_on_pin"
|
||||
//$$ L2 PROP_STR = "clock_32k_pin"
|
||||
wifi{
|
||||
compatible = "amlogic,aml_broadcm_wifi";
|
||||
dev_name = "aml_broadcm_wifi";
|
||||
status = "okay";
|
||||
interrupt_pin = "GPIOX_21";
|
||||
irq_num = <4>;
|
||||
irq_trigger_type = "GPIO_IRQ_HIGH";
|
||||
power_on_pin = "GPIOAO_6";
|
||||
power_on_pin2 = "GPIOX_11";
|
||||
clock_32k_pin = "GPIOX_10";
|
||||
};
|
||||
|
||||
//$$ DEVICE="wifi_power"
|
||||
//$$ L2 PROP_STR = "status"
|
||||
//$$ L2 PROP_STR = "power_gpio"
|
||||
wifi_power{
|
||||
compatible = "amlogic,wifi_power";
|
||||
dev_name = "wifi_power";
|
||||
status = "okay";
|
||||
power_gpio = "GPIOAO_6";
|
||||
power_gpio2 = "GPIOX_11";
|
||||
};
|
||||
|
||||
/// ***************************************************************************************
|
||||
/// - MMC
|
||||
//$$ MODULE="MMC"
|
||||
@@ -439,42 +394,6 @@ void root_func(){
|
||||
pinctrl-5 = <&sdio_all_pins>;
|
||||
pinctrl-6 = <&sd_1bit_pins>;
|
||||
|
||||
//$$ DEVICE="sd"
|
||||
//$$ L2 PROP_STR = "status"
|
||||
//$$ L3 PROP_U32 = "port"
|
||||
//$$ L2 PROP_STR = "pinname"
|
||||
//$$ L3 PROP_U32 = "ocr_avail"
|
||||
//$$ L2 PROP_STR 3 = "caps"
|
||||
//$$ L3 PROP_U32 = "f_min"
|
||||
//$$ L3 PROP_U32 = "f_max"
|
||||
//$$ L3 PROP_U32 = "f_max_w"
|
||||
//$$ L3 PROP_U32 = "max_req_size"
|
||||
//$$ L2 PROP_STR = "gpio_dat3"
|
||||
//$$ L2 PROP_STR = "jtag_pin"
|
||||
//$$ L2 PROP_STR = "gpio_cd"
|
||||
//$$ L2 PROP_STR = "gpio_ro"
|
||||
//$$ L2 PROP_U32 = "irq_in"
|
||||
//$$ L2 PROP_U32 = "irq_out"
|
||||
//$$ L2 PROP_U32 = "card_type"
|
||||
sd{
|
||||
status = "okay";
|
||||
port = <1>; /**0:sdio_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */
|
||||
pinname = "sd";
|
||||
ocr_avail = <0x200000>; /**VDD voltage 3.3 ~ 3.4 */
|
||||
caps = "MMC_CAP_4_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED";
|
||||
f_min = <300000>;
|
||||
f_max = <50000000>;
|
||||
f_max_w = <50000000>;
|
||||
max_req_size = <0x20000>; /**128KB*/
|
||||
gpio_dat3 = "CARD_4";
|
||||
jtag_pin = "CARD_0";
|
||||
gpio_cd = "CARD_6";
|
||||
gpio_ro = "GPIODV_25";
|
||||
irq_in = <3>;
|
||||
irq_out = <5>;
|
||||
card_type = <5>; /* 0:unknown, 1:mmc card(include eMMC), 2:sd card(include tSD), 3:sdio device(ie:sdio-wifi), 4:SD combo (IO+mem) card, 5:NON sdio device(means sd/mmc card), other:reserved */
|
||||
};
|
||||
|
||||
//$$ DEVICE="emmc"
|
||||
//$$ L2 PROP_STR = "status"
|
||||
//$$ L3 PROP_U32 = "port"
|
||||
@@ -487,34 +406,23 @@ void root_func(){
|
||||
//$$ L3 PROP_U32 = "max_req_size"
|
||||
//$$ L2 PROP_STR = "gpio_dat3"
|
||||
//$$ L2 PROP_U32 = "card_type"
|
||||
// emmc{
|
||||
// status = "ok";
|
||||
// port = <2>; /**0:sdio_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */
|
||||
// pinname = "emmc";
|
||||
// ocr_avail = <0x200000>; /**VDD voltage 3.3 ~ 3.4 */
|
||||
// caps = "MMC_CAP_4_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED", "MMC_CAP_NONREMOVABLE","MMC_CAP_ERASE", "MMC_CAP_HW_RESET"; // MMC_CAP_NEEDS_POLL -- for detect, MMC_CAP_NONREMOVABLE -- for eMMC/TSD
|
||||
// f_min = <300000>;
|
||||
// f_max = <50000000>;
|
||||
// f_max_w = <50000000>;
|
||||
// max_req_size = <0x20000>; /**128KB*/
|
||||
// gpio_dat3 = "BOOT_3";
|
||||
// card_type = <1>; /* 0:unknown, 1:mmc card(include eMMC), 2:sd card(include tSD), 3:sdio device(ie:sdio-wifi), 4:SD combo (IO+mem) card, 5:NON sdio device(means sd/mmc card), other:reserved */
|
||||
// };
|
||||
//sdio{
|
||||
// status = "ok";
|
||||
// port = <0>; /*0:sdio_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */
|
||||
// pinname = "sdio";
|
||||
// ocr_avail = <0x200000>; /*VDD voltage 3.3 ~ 3.4 */
|
||||
// caps = "MMC_CAP_4_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED", "MMC_CAP_NONREMOVABLE";
|
||||
// f_min = <300000>;
|
||||
// f_max = <50000000>;
|
||||
// max_req_size = <0x20000>; /**128KB*/
|
||||
// card_type = <3>; /* 0:unknown, 1:mmc card(include eMMC), 2:sd card(include tSD), 3:sdio device(ie:sdio-wifi), 4:SD combo (IO+mem) card, 5:NON sdio device(means sd/mmc card), other:reserved */
|
||||
// };
|
||||
emmc{
|
||||
status = "ok";
|
||||
port = <2>; /**0:sdio_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */
|
||||
pinname = "emmc";
|
||||
ocr_avail = <0x200000>; /**VDD voltage 3.3 ~ 3.4 */
|
||||
caps = "MMC_CAP_4_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED", "MMC_CAP_NONREMOVABLE","MMC_CAP_ERASE", "MMC_CAP_HW_RESET"; // MMC_CAP_NEEDS_POLL -- for detect, MMC_CAP_NONREMOVABLE -- for eMMC/TSD
|
||||
f_min = <300000>;
|
||||
f_max = <50000000>;
|
||||
f_max_w = <50000000>;
|
||||
max_req_size = <0x20000>; /**128KB*/
|
||||
gpio_dat3 = "BOOT_3";
|
||||
card_type = <1>; /* 0:unknown, 1:mmc card(include eMMC), 2:sd card(include tSD), 3:sdio device(ie:sdio-wifi), 4:SD combo (IO+mem) card, 5:NON sdio device(means sd/mmc card), other:reserved */
|
||||
};
|
||||
};
|
||||
|
||||
/// ***************************************************************************************
|
||||
/// - MMC
|
||||
/// - MMC
|
||||
//$$ MODULE="MMC"
|
||||
//$$ DEVICE="aml_sdhc"
|
||||
//$$ L2 PROP_STR = "status"
|
||||
@@ -526,7 +434,7 @@ void root_func(){
|
||||
//$$ L2 PROP_CHOICE "sdhc_pin_3_match" = "pinctrl-3"
|
||||
//$$ L2 PROP_CHOICE "sdhc_pin_4_match" = "pinctrl-4"
|
||||
//$$ L2 PROP_CHOICE "sdjc_pin_5_match" = "pinctrl-5"
|
||||
// L2 PROP_CHOICE "sdhc_pin_6_match" = "pinctrl-6"
|
||||
//$$ L2 PROP_CHOICE "sdhc_pin_6_match" = "pinctrl-6"
|
||||
sdhc{
|
||||
compatible = "amlogic,aml_sdhc";
|
||||
dev_name = "aml_sdhc.0";
|
||||
@@ -555,73 +463,27 @@ void root_func(){
|
||||
//$$ L2 PROP_STR = "jtag_pin"
|
||||
//$$ L2 PROP_STR = "gpio_cd"
|
||||
//$$ L2 PROP_STR = "gpio_ro"
|
||||
//$$ L2 PROP_STR = "gpio_volsw"
|
||||
//$$ L2 PROP_U32 = "irq_in"
|
||||
//$$ L2 PROP_U32 = "irq_out"
|
||||
//$$ L2 PROP_U32 = "card_type"
|
||||
// sd{
|
||||
// status = "okay";
|
||||
// port = <4>; /**0:sdhc_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */
|
||||
// pinname = "sd";
|
||||
// ocr_avail = <0x00200080>; // 3.3:0x200000, 1.8+3.3:0x00200080
|
||||
// caps = "MMC_CAP_4_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED","MMC_CAP_UHS_SDR12","MMC_CAP_UHS_SDR25","MMC_CAP_UHS_SDR50","MMC_CAP_UHS_SDR104";
|
||||
// f_min = <300000>;
|
||||
// f_max = <100000000>;
|
||||
// max_req_size = <0x20000>; /**128KB*/
|
||||
// gpio_dat3 = "CARD_4";
|
||||
// //jtag_pin = "CARD_0";
|
||||
// gpio_cd = "CARD_6";
|
||||
// //gpio_ro = "GPIOZ_0";
|
||||
// irq_in = <3>;
|
||||
// irq_out = <5>;
|
||||
// card_type = <5>; /* 0:unknown, 1:mmc card(include eMMC), 2:sd card(include tSD), 3:sdio device(ie:sdio-wifi), 4:SD combo (IO+mem) card, 5:NON sdio device(means sd/mmc card), other:reserved */
|
||||
// };
|
||||
|
||||
//$$ DEVICE="emmc"
|
||||
//$$ L2 PROP_STR = "status"
|
||||
//$$ L3 PROP_U32 = "port"
|
||||
//$$ L2 PROP_STR = "pinname"
|
||||
//$$ L3 PROP_U32 = "ocr_avail"
|
||||
//$$ L2 PROP_STR 4 = "caps"
|
||||
//$$ L3 PROP_U32 = "f_min"
|
||||
//$$ L3 PROP_U32 = "f_max"
|
||||
//$$ L3 PROP_U32 = "f_max_w"
|
||||
//$$ L3 PROP_U32 = "max_req_size"
|
||||
//$$ L2 PROP_STR = "gpio_dat3"
|
||||
//$$ L2 PROP_U32 = "card_type"
|
||||
emmc{
|
||||
status = "okay";
|
||||
port = <5>; /**0:sdio_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */
|
||||
pinname = "emmc";
|
||||
ocr_avail = <0x200000>; /**VDD voltage 3.3 ~ 3.4 */
|
||||
caps = "MMC_CAP_8_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED", "MMC_CAP_NONREMOVABLE","MMC_CAP_ERASE", "MMC_CAP_HW_RESET"; // MMC_CAP_NEEDS_POLL -- for detect, MMC_CAP_NONREMOVABLE -- for eMMC/TSD
|
||||
caps2 = "MMC_CAP2_HS200_1_8V_SDR";
|
||||
f_min = <300000>;
|
||||
f_max = <150000000>;
|
||||
max_req_size = <0x20000>; /**128KB*/
|
||||
gpio_dat3 = "BOOT_3";
|
||||
card_type = <1>; /* 0:unknown, 1:mmc card(include eMMC), 2:sd card(include tSD), 3:sdio device(ie:sdio-wifi), 4:SD combo (IO+mem) card, 5:NON sdio device(means sd/mmc card), other:reserved */
|
||||
};
|
||||
|
||||
//$$ DEVICE="sdio"
|
||||
//$$ L2 PROP_STR = "status"
|
||||
//$$ L3 PROP_U32 = "port"
|
||||
//$$ L2 PROP_STR = "pinname"
|
||||
//$$ L3 PROP_U32 = "ocr_avail"
|
||||
//$$ L2 PROP_STR 4 = "caps"
|
||||
//$$ L3 PROP_U32 = "f_min"
|
||||
//$$ L3 PROP_U32 = "f_max"
|
||||
//$$ L3 PROP_U32 = "max_req_size"
|
||||
//$$ L2 PROP_U32 = "card_type"
|
||||
sdio{
|
||||
sd{
|
||||
status = "okay";
|
||||
port = <3>; /**0:sdio_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */
|
||||
pinname = "sdio";
|
||||
port = <4>; /**0:sdhc_a, 1:sdio_b, 2:sdio_c, 3:sdhc_a, 4:sdhc_b, 5:sdhc_c */
|
||||
pinname = "sd";
|
||||
ocr_avail = <0x00200080>; // 3.3:0x200000, 1.8+3.3:0x00200080
|
||||
caps = "MMC_CAP_4_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED", "MMC_CAP_NONREMOVABLE", "MMC_CAP_UHS_SDR12","MMC_CAP_UHS_SDR25","MMC_CAP_UHS_SDR50","MMC_CAP_UHS_SDR104","MMC_PM_KEEP_POWER";
|
||||
caps = "MMC_CAP_4_BIT_DATA","MMC_CAP_MMC_HIGHSPEED","MMC_CAP_SD_HIGHSPEED","MMC_CAP_UHS_SDR12","MMC_CAP_UHS_SDR25","MMC_CAP_UHS_SDR50","MMC_CAP_UHS_SDR104";
|
||||
f_min = <300000>;
|
||||
f_max = <200000000>;
|
||||
f_max = <100000000>;
|
||||
max_req_size = <0x20000>; /**128KB*/
|
||||
card_type = <3>; /* 0:unknown, 1:mmc card(include eMMC), 2:sd card(include tSD), 3:sdio device(ie:sdio-wifi), 4:SD combo (IO+mem) card, 5:NON sdio device(means sd/mmc card), other:reserved */
|
||||
gpio_dat3 = "CARD_4";
|
||||
//jtag_pin = "CARD_0";
|
||||
gpio_cd = "CARD_6";
|
||||
//gpio_ro = "GPIOZ_0";
|
||||
gpio_volsw = "GPIOAO_3";
|
||||
irq_in = <3>;
|
||||
irq_out = <5>;
|
||||
card_type = <5>; /* 0:unknown, 1:mmc card(include eMMC), 2:sd card(include tSD), 3:sdio device(ie:sdio-wifi), 4:SD combo (IO+mem) card, 5:NON sdio device(means sd/mmc card), other:reserved */
|
||||
};
|
||||
};
|
||||
|
||||
@@ -911,30 +773,6 @@ void root_func(){
|
||||
};
|
||||
};
|
||||
|
||||
/// ***************************************************************************************
|
||||
/// - Input
|
||||
//$$ MODULE="Input"
|
||||
//$$ DEVICE="gpio_keypad"
|
||||
//$$ L2 PROP_STR = "status"
|
||||
//$$ L2 PROP_U32 = "scan_period"
|
||||
//$$ L2 PROP_U32 = "key_num"
|
||||
//$$ L2 PROP_STR = "key_name"
|
||||
//$$ L2 PROP_U32 = "key_code"
|
||||
//$$ L2 PROP_STR = "key_pin"
|
||||
//$$ L2 PROP_U32 = "irq_keyup"
|
||||
//$$ L2 PROP_U32 = "irq_keydown"
|
||||
gpio_keypad{
|
||||
compatible = "amlogic,gpio_keypad";
|
||||
status = "okay";
|
||||
scan_period = <20>;
|
||||
key_num = <1>;
|
||||
key_name = "power";
|
||||
gpio_high_z;
|
||||
key_code = <116>;
|
||||
key_pin = "GPIOAO_3";
|
||||
irq_keyup = <6>;
|
||||
irq_keydown = <7>;
|
||||
};
|
||||
//$$ DEVICE="saradc"
|
||||
//$$ L2 PROP_STR = "status"
|
||||
saradc{
|
||||
|
||||
1567
arch/arm/boot/dts/amlogic/meson8b_odroidc_emmc.dtd
Normal file
1567
arch/arm/boot/dts/amlogic/meson8b_odroidc_emmc.dtd
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1069,7 +1069,7 @@ CONFIG_LIGHT_EPL6814=y
|
||||
CONFIG_LIGHT_ISL29023=y
|
||||
CONFIG_LIGHT_STK220X=y
|
||||
CONFIG_LIGHT_LTR558=y
|
||||
CONFIG_AML_GPIO_KEY=y
|
||||
# CONFIG_AML_GPIO_KEY is not set
|
||||
CONFIG_GPIO_AMLOGIC=y
|
||||
CONFIG_PINCTRL_AMLOGIC=y
|
||||
|
||||
@@ -1166,26 +1166,18 @@ CONFIG_AML_KSZ8091=y
|
||||
CONFIG_AML_RTL8211F=y
|
||||
CONFIG_AM_ETHERNET_DEBUG_LEVEL=1
|
||||
CONFIG_AM_WIFI=y
|
||||
CONFIG_AM_WIFI_SD_MMC=y
|
||||
# CONFIG_AM_WIFI_SD_MMC is not set
|
||||
# CONFIG_DHD_USE_STATIC_BUF is not set
|
||||
CONFIG_AM_WIFI_USB=y
|
||||
CONFIG_SDIO_DHD_CDC_WIFI_40181_MODULE=m
|
||||
CONFIG_BCMDHD_FW_PATH="/system/etc/wifi/fw_bcmdhd.bin"
|
||||
CONFIG_BCMDHD_NVRAM_PATH="/system/etc/wifi/nvram.txt"
|
||||
CONFIG_BCMDHD_CONFIG_PATH="/system/etc/wifi/config.txt"
|
||||
# CONFIG_BCMDHD_POWER_OFF_IN_SUSPEND is not set
|
||||
CONFIG_BCMDHD_OOB=y
|
||||
# CONFIG_SDIO_HARD_IRQ is not set
|
||||
# CONFIG_BCMDHD is not set
|
||||
CONFIG_RTL8188EU=m
|
||||
CONFIG_RTL8188EU_MP=m
|
||||
# CONFIG_RTL8192CU is not set
|
||||
# CONFIG_RTL8192DU is not set
|
||||
# CONFIG_RTL8192EU is not set
|
||||
CONFIG_RTL8189ES=m
|
||||
# CONFIG_RTL8189ES is not set
|
||||
# CONFIG_RTL8723AS is not set
|
||||
CONFIG_RTL8723BS=m
|
||||
# CONFIG_WLAN_SDIO is not set
|
||||
# CONFIG_RTL8723BS is not set
|
||||
# CONFIG_RTL8723AU is not set
|
||||
# CONFIG_RTL8821AU is not set
|
||||
# CONFIG_RTL8812AU is not set
|
||||
|
||||
@@ -94,6 +94,9 @@ struct amlsd_platform {
|
||||
unsigned int gpio_dat3;
|
||||
unsigned int jtag_pin;
|
||||
|
||||
#if defined(CONFIG_MACH_MESON8B_ODROIDC)
|
||||
unsigned int gpio_volsw;
|
||||
#endif
|
||||
int is_sduart;
|
||||
bool is_in;
|
||||
bool is_tuned; /* if card has been tuning */
|
||||
|
||||
46
drivers/amlogic/mmc/amlsd.c
Executable file → Normal file
46
drivers/amlogic/mmc/amlsd.c
Executable file → Normal file
@@ -720,6 +720,16 @@ int of_amlsd_init(struct amlsd_platform* pdata)
|
||||
CHECK_RET(ret);
|
||||
}
|
||||
}
|
||||
#if defined(CONFIG_MACH_MESON8B_ODROIDC)
|
||||
if(pdata->gpio_volsw) {
|
||||
ret = amlogic_gpio_request_one(pdata->gpio_volsw, GPIOF_OUT_INIT_LOW, MODULE_NAME);
|
||||
CHECK_RET(ret);
|
||||
if (ret == 0) {
|
||||
ret = amlogic_gpio_direction_output(pdata->gpio_volsw, 0, MODULE_NAME); // output low default 3.3V
|
||||
CHECK_RET(ret);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// if(pdata->port == MESON_SDIO_PORT_A)
|
||||
// wifi_setup_dt();
|
||||
@@ -1256,6 +1266,40 @@ int aml_check_unsupport_cmd(struct mmc_host* mmc, struct mmc_request* mrq)
|
||||
|
||||
int aml_sd_voltage_switch (struct amlsd_platform* pdata, char signal_voltage)
|
||||
{
|
||||
#if defined(CONFIG_MACH_MESON8B_ODROIDC)
|
||||
char *str;
|
||||
int delay_ms = 0;
|
||||
int volsw = 0;
|
||||
int ret=0;
|
||||
|
||||
switch (signal_voltage) {
|
||||
case MMC_SIGNAL_VOLTAGE_180:
|
||||
delay_ms = 10;
|
||||
volsw = 1;
|
||||
str = "1.80 V";
|
||||
if (!mmc_host_uhs(pdata->mmc)) {
|
||||
sdhc_err("switch to 1.8V for a non-uhs device.\n");
|
||||
}
|
||||
break;
|
||||
case MMC_SIGNAL_VOLTAGE_330:
|
||||
delay_ms = 20;
|
||||
volsw = 0;
|
||||
str = "3.30 V";
|
||||
break;
|
||||
default:
|
||||
str = "invalid";
|
||||
break;
|
||||
}
|
||||
|
||||
if(pdata->gpio_volsw) {
|
||||
ret = amlogic_set_value(pdata->gpio_volsw, volsw, MODULE_NAME);
|
||||
CHECK_RET(ret);
|
||||
printk("%s[%d] : Switched to voltage -> %s\n",__func__,__LINE__,str);
|
||||
}
|
||||
pdata->signal_voltage = signal_voltage;
|
||||
mdelay(delay_ms); // wait for voltage to be stable
|
||||
#else
|
||||
|
||||
#if ((defined CONFIG_ARCH_MESON8))
|
||||
#ifdef CONFIG_AMLOGIC_BOARD_HAS_PMU
|
||||
int vol = LDO4DAC_REG_3_3_V;
|
||||
@@ -1307,7 +1351,7 @@ int aml_sd_voltage_switch (struct amlsd_platform* pdata, char signal_voltage)
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -181,6 +181,7 @@ int amlsd_get_platform_data(struct platform_device* pdev,
|
||||
SD_PARSE_GPIO_NUM_PROP(child, "jtag_pin", str, pdata->jtag_pin);
|
||||
SD_PARSE_U32_PROP(child, "card_type", prop, pdata->card_type);
|
||||
SD_PARSE_GPIO_NUM_PROP(child, "gpio_dat3", str, pdata->gpio_dat3);
|
||||
SD_PARSE_GPIO_NUM_PROP(child, "gpio_volsw", str, pdata->gpio_volsw);
|
||||
|
||||
pdata->port_init = of_amlsd_init;
|
||||
pdata->pwr_pre = of_amlsd_pwr_prepare;
|
||||
|
||||
Reference in New Issue
Block a user