[RFC PATCH] ARM: dts: meson8b-odroidc1: add microSD support

Martin Blumenstingl martin.blumenstingl at googlemail.com
Sun Jan 28 12:33:28 PST 2018


Hi Linus,

thank you for this patch!

On Thu, Jan 25, 2018 at 5:23 AM, Linus Lüssing <linus.luessing at c0d3.blue> wrote:
> The Odroid C1 features a microSD slot. This patch adds the necessary
> DT bindings to support it.
>
> Signed-off-by: Linus Lüssing <linus.luessing at c0d3.blue>
> ---
> This patch only worked after Martin's attempt to fix the pinctrl issues
> for meson8b:
>
> https://patchwork.kernel.org/patch/10181185/
unfortunately that patch requires more work

> Another note: I was seeing the following error message in dmesg after
> writing a 64MB file to the microSD card and right after typing "$ sync":
>
> [  512.584687] mmcblk0: error -84 sending status command, retrying
> [  512.586985] mmcblk0: timed out sending r/w cmd command, card status 0xd00
> [  512.591756] mmcblk0: status not valid, retrying timeout
>
> However read/write operations seemed unaffected. The file seemed fine
> afterwards, even after unmounting, replugging and remounting the microSD
> card.
>
> Not sure whether this error message could potentially point to some
> error in the changes in here.
these errors may be a problem with the meson-mx-sdio (MMC) driver
can you please show the output of /sys/kernel/debug/mmc0/ios ?

>
>  arch/arm/boot/dts/meson8b-odroidc1.dts | 58 ++++++++++++++++++++++++++++++++++
>  arch/arm/boot/dts/meson8b.dtsi         |  8 +++++
>  2 files changed, 66 insertions(+)
>
> diff --git a/arch/arm/boot/dts/meson8b-odroidc1.dts b/arch/arm/boot/dts/meson8b-odroidc1.dts
> index d5e83051bb54..3a5603d95b70 100644
> --- a/arch/arm/boot/dts/meson8b-odroidc1.dts
> +++ b/arch/arm/boot/dts/meson8b-odroidc1.dts
> @@ -54,6 +54,7 @@
>
>         aliases {
>                 serial0 = &uart_AO;
> +               mmc0 = &sd_card_slot;
>         };
>
>         memory {
> @@ -69,6 +70,37 @@
>                         default-state = "off";
>                 };
>         };
> +
> +       tflash_vdd: regulator-tflash_vdd {
> +               /*
> +                * signal name from schematics: TFLASH_VDD_EN
> +                */
> +               compatible = "regulator-fixed";
> +
> +               regulator-name = "TFLASH_VDD";
> +               regulator-min-microvolt = <3300000>;
> +               regulator-max-microvolt = <3300000>;
> +
> +               gpio = <&gpio GPIOY_12 GPIO_ACTIVE_HIGH>;
> +               enable-active-high;
> +       };
> +
> +       tf_io: gpio-regulator-tf_io {
> +               compatible = "regulator-gpio";
> +
> +               regulator-name = "TF_IO";
> +               regulator-min-microvolt = <1800000>;
> +               regulator-max-microvolt = <3300000>;
> +
> +               /*
> +                * signal name from schematics: TF_3V3N_1V8_EN
> +                */
> +               gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
> +               gpios-states = <0>;
> +
> +               states = <3300000 0
> +                         1800000 1>;
> +       };
>  };
>
>  &uart_AO {
> @@ -100,6 +132,32 @@
>         status = "okay";
>  };
>
> +&sdio {
> +       status = "okay";
> +
> +       pinctrl-0 = <&sd_b_pins>;
> +       pinctrl-names = "default";
> +
> +       /* SD card */
> +       sd_card_slot: slot at 1 {
> +               compatible = "mmc-slot";
> +               reg = <1>;
> +               status = "okay";
> +
> +               bus-width = <4>;
> +               no-sdio;
> +               cap-mmc-highspeed;
> +               cap-sd-highspeed;
> +               disable-wp;
> +
> +               cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
> +               cd-inverted;
> +
> +               vmmc-supply = <&tflash_vdd>;
> +               vqmmc-supply = <&tf_io>;
> +       };
> +};
> +
>  &ethmac {
>         status = "okay";
>
> diff --git a/arch/arm/boot/dts/meson8b.dtsi b/arch/arm/boot/dts/meson8b.dtsi
> index fa5274aa370b..87687c09ca3f 100644
> --- a/arch/arm/boot/dts/meson8b.dtsi
> +++ b/arch/arm/boot/dts/meson8b.dtsi
> @@ -206,6 +206,14 @@
>                                 function = "ethernet";
>                         };
>                 };
> +
> +               sd_b_pins: sd-b {
> +                       mux {
> +                               groups = "sd_d0_b", "sd_d1_b", "sd_d2_b",
> +                                       "sd_d3_b", "sd_clk_b", "sd_cmd_b";
> +                               function = "sd_b";
> +                       };
> +               };
>         };
>  };
>
> --
> 2.11.0
>
>
> _______________________________________________
> linux-amlogic mailing list
> linux-amlogic at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-amlogic


Regards
Martin



More information about the linux-amlogic mailing list