From: Yonghui Yu Date: Thu, 1 Feb 2018 17:36:02 +0000 (+0800) Subject: sdcard: g12a: enbable hotplug X-Git-Tag: khadas-vims-v0.9.6-release~2496 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=33da4f3153ec8d1993bd289c60cb3a93712213e9;p=platform%2Fkernel%2Flinux-amlogic.git sdcard: g12a: enbable hotplug PD#156734: sdcard: g12a: enable hotplug on skt. Change-Id: I04d42895bb526134ea6d9c2a5222e1acbae533a0 Signed-off-by: Yonghui Yu --- diff --git a/arch/arm64/boot/dts/amlogic/g12a_skt.dts b/arch/arm64/boot/dts/amlogic/g12a_skt.dts index c4106a1..2433a87 100644 --- a/arch/arm64/boot/dts/amlogic/g12a_skt.dts +++ b/arch/arm64/boot/dts/amlogic/g12a_skt.dts @@ -142,21 +142,22 @@ reg = <0x0 0xffe05000 0x0 0x2000>; interrupts = <0 190 1>; - pinctrl-names = "sd_clk_cmd_pins", "sd_all_pins"; - pinctrl-0 = <&sd_clk_cmd_pins>; - pinctrl-1 = <&sd_all_pins>; + pinctrl-names = "sd_all_pins", + "sd_clk_cmd_pins"; + pinctrl-0 = <&sd_all_pins>; + pinctrl-1 = <&sd_clk_cmd_pins>; clocks = <&clkc CLKID_SD_EMMC_B>, <&clkc CLKID_SD_EMMC_B_P0_COMP>, <&clkc CLKID_FCLK_DIV2>, - <&clkc CLKID_FCLK_DIV5>; - clock-names = "core", "clkin0", "clkin1", "clkin2"; + <&clkc CLKID_FCLK_DIV5>, + <&xtal>; + clock-names = "core", "clkin0", "clkin1", "clkin2", "xtal"; bus-width = <4>; cap-sd-highspeed; cap-mmc-highspeed; max-frequency = <100000000>; - non-removable; disable-wp; sd { pinname = "sd"; @@ -164,15 +165,15 @@ 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_PM_KEEP_POWER", - "MMC_CAP_NONREMOVABLE"; /**ptm debug */ + "MMC_CAP_UHS_SDR50"; f_min = <400000>; f_max = <200000000>; max_req_size = <0x20000>; /**128KB*/ + gpio_dat3 = <&gpio GPIOC_4 GPIO_ACTIVE_HIGH>; + jtag_pin = <&gpio GPIOC_0 GPIO_ACTIVE_HIGH>; + gpio_cd = <&gpio GPIOC_6 GPIO_ACTIVE_HIGH>; card_type = <5>; /* 3:sdio device(ie:sdio-wifi), * 4:SD combo (IO+mem) card diff --git a/arch/arm64/boot/dts/amlogic/mesong12a.dtsi b/arch/arm64/boot/dts/amlogic/mesong12a.dtsi index dc5f0d3..1ed8f65 100644 --- a/arch/arm64/boot/dts/amlogic/mesong12a.dtsi +++ b/arch/arm64/boot/dts/amlogic/mesong12a.dtsi @@ -569,6 +569,26 @@ bias-pull-up; }; }; + sd_1bit_pins:sd_1bit_pins { + mux { + groups = "sdcard_d0_c", + "sdcard_cmd_c", + "sdcard_clk_c"; + function = "sdcard"; + input-enable; + bias-pull-up; + }; + }; + + ao_to_sd_uart_pins:ao_to_sd_uart_pins { + mux { + groups = "uart_tx_ao_a_c4", + "uart_rx_ao_a_c5"; + function = "uart_ao_a_ee"; + bias-pull-up; + input-enable; + }; + }; all_nand_pins: all_nand_pins { mux { diff --git a/drivers/amlogic/mmc/amlsd.c b/drivers/amlogic/mmc/amlsd.c index 178a2c9..aa51349 100644 --- a/drivers/amlogic/mmc/amlsd.c +++ b/drivers/amlogic/mmc/amlsd.c @@ -669,7 +669,7 @@ static int aml_is_sdjtag(struct amlsd_host *host) static int aml_is_sduart(struct amlsd_host *host) { -#ifdef CONFIG_MESON_CPU_EMULATOR +#ifndef SD_EMMC_DEBUG_BOARD return 0; #else int in = 0, i; @@ -705,6 +705,9 @@ static int aml_is_sduart(struct amlsd_host *host) /* int n=0; */ static int aml_uart_switch(struct amlsd_host *host, bool on) { +#ifndef SD_EMMC_DEBUG_BOARD + return on; +#else struct pinctrl *pc; char *name[2] = { "sd_to_ao_uart_pins", @@ -716,6 +719,7 @@ static int aml_uart_switch(struct amlsd_host *host, bool on) mutex_lock(&host->pinmux_lock); pc = aml_devm_pinctrl_get_select(host, name[on]); mutex_unlock(&host->pinmux_lock); +#endif return on; } @@ -786,6 +790,9 @@ static void aml_jtag_switch_sd(struct amlsd_host *host) static void aml_jtag_switch_ao(struct amlsd_host *host) { +#ifndef SD_EMMC_DEBUG_BOARD + +#else struct pinctrl *pc; int i; @@ -798,6 +805,7 @@ static void aml_jtag_switch_ao(struct amlsd_host *host) break; mdelay(1); } +#endif } #endif diff --git a/include/linux/amlogic/amlsd.h b/include/linux/amlogic/amlsd.h index 14c0ce0..96675f3 100644 --- a/include/linux/amlogic/amlsd.h +++ b/include/linux/amlogic/amlsd.h @@ -20,7 +20,8 @@ #include /* ptm or pxp simulation */ -#define CONFIG_MESON_CPU_EMULATOR +/* #define CONFIG_MESON_CPU_EMULATOR */ +/* #define SD_EMMC_DEBUG_BOARD */ /* hardcode clock, for debug or bringup */ /* #define SD_EMMC_CLK_CTRL (1) */ /* #define SD_EMMC_PIN_CTRL (1) */