[PATCH 1/3] ARM: dts: meson: add the SDHC MMC controller

Anand Moon linux.amoon at gmail.com
Mon Jun 22 08:47:02 EDT 2020


Hi Martin,


On Sat, 20 Jun 2020 at 22:07, Martin Blumenstingl
<martin.blumenstingl at googlemail.com> wrote:
>
> Meson6, Meson8, Meson8b and Meson8m2 are using a similar SDHC controller
> IP which typically connects to an eMMC chip (because unlike the SDIO
> controller the SDHC controller has an 8-bit bus interface).
>
> On Meson8, Meson8b and Meson8m2 the clock inputs are all the same.
> However, Meson8m2 seems to have an improved version of the SHDC
> controller IP which doesn't require the driver to wait manually for a
> flush of a DMA transfer. Thus every SoC has it's own compatible string
> so if more difference are discovered they can be implemented.
>
> Signed-off-by: Martin Blumenstingl <martin.blumenstingl at googlemail.com>

Please add my
Reviewed-by: Anand Moon <linux.amoon at gmail.com>

-Anand
> ---
>  arch/arm/boot/dts/meson.dtsi    |  7 +++++++
>  arch/arm/boot/dts/meson8.dtsi   | 19 +++++++++++++++++++
>  arch/arm/boot/dts/meson8b.dtsi  | 20 ++++++++++++++++++++
>  arch/arm/boot/dts/meson8m2.dtsi |  4 ++++
>  4 files changed, 50 insertions(+)
>
> diff --git a/arch/arm/boot/dts/meson.dtsi b/arch/arm/boot/dts/meson.dtsi
> index ae89deaa8c9c..464057989572 100644
> --- a/arch/arm/boot/dts/meson.dtsi
> +++ b/arch/arm/boot/dts/meson.dtsi
> @@ -140,6 +140,13 @@ spifc: spi at 8c80 {
>                                 status = "disabled";
>                         };
>
> +                       sdhc: mmc at 8e00 {
> +                               compatible = "amlogic,meson-mx-sdhc";
> +                               reg = <0x8e00 0x42>;
> +                               interrupts = <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>;
> +                               status = "disabled";
> +                       };
> +
>                         gpio_intc: interrupt-controller at 9880 {
>                                 compatible = "amlogic,meson-gpio-intc";
>                                 reg = <0x9880 0x10>;
> diff --git a/arch/arm/boot/dts/meson8.dtsi b/arch/arm/boot/dts/meson8.dtsi
> index 3d0ab2ac5332..04688e8abce2 100644
> --- a/arch/arm/boot/dts/meson8.dtsi
> +++ b/arch/arm/boot/dts/meson8.dtsi
> @@ -384,6 +384,15 @@ mux {
>                         };
>                 };
>
> +               sdxc_b_pins: sdxc-b {
> +                       mux {
> +                               groups = "sdxc_d0_b", "sdxc_d13_b",
> +                                        "sdxc_clk_b", "sdxc_cmd_b";
> +                               function = "sdxc_b";
> +                               bias-pull-up;
> +                       };
> +               };
> +
>                 spi_nor_pins: nor {
>                         mux {
>                                 groups = "nor_d", "nor_q", "nor_c", "nor_cs";
> @@ -558,6 +567,16 @@ &saradc {
>         nvmem-cell-names = "temperature_calib";
>  };
>
> +&sdhc {
> +       compatible = "amlogic,meson8-sdhc", "amlogic,meson-mx-sdhc";
> +       clocks = <&xtal>,
> +                <&clkc CLKID_FCLK_DIV4>,
> +                <&clkc CLKID_FCLK_DIV3>,
> +                <&clkc CLKID_FCLK_DIV5>,
> +                <&clkc CLKID_SDHC>;
> +       clock-names = "clkin0", "clkin1", "clkin2", "clkin3", "pclk";
> +};
> +
>  &sdio {
>         compatible = "amlogic,meson8-sdio", "amlogic,meson-mx-sdio";
>         clocks = <&clkc CLKID_SDIO>, <&clkc CLKID_CLK81>;
> diff --git a/arch/arm/boot/dts/meson8b.dtsi b/arch/arm/boot/dts/meson8b.dtsi
> index 2069c57343e5..2401cdf5f751 100644
> --- a/arch/arm/boot/dts/meson8b.dtsi
> +++ b/arch/arm/boot/dts/meson8b.dtsi
> @@ -363,6 +363,16 @@ mux {
>                         };
>                 };
>
> +               sdxc_c_pins: sdxc-c {
> +                       mux {
> +                               groups = "sdxc_d0_c", "sdxc_d13_c",
> +                                        "sdxc_d47_c", "sdxc_clk_c",
> +                                        "sdxc_cmd_c";
> +                               function = "sdxc_c";
> +                               bias-pull-up;
> +                       };
> +               };
> +
>                 pwm_c1_pins: pwm-c1 {
>                         mux {
>                                 groups = "pwm_c1";
> @@ -554,6 +564,16 @@ &saradc {
>         nvmem-cell-names = "temperature_calib";
>  };
>
> +&sdhc {
> +       compatible = "amlogic,meson8-sdhc", "amlogic,meson-mx-sdhc";
> +       clocks = <&xtal>,
> +                <&clkc CLKID_FCLK_DIV4>,
> +                <&clkc CLKID_FCLK_DIV3>,
> +                <&clkc CLKID_FCLK_DIV5>,
> +                <&clkc CLKID_SDHC>;
> +       clock-names = "clkin0", "clkin1", "clkin2", "clkin3", "pclk";
> +};
> +
>  &sdio {
>         compatible = "amlogic,meson8b-sdio", "amlogic,meson-mx-sdio";
>         clocks = <&clkc CLKID_SDIO>, <&clkc CLKID_CLK81>;
> diff --git a/arch/arm/boot/dts/meson8m2.dtsi b/arch/arm/boot/dts/meson8m2.dtsi
> index c7ddbb210366..6725dd9fd825 100644
> --- a/arch/arm/boot/dts/meson8m2.dtsi
> +++ b/arch/arm/boot/dts/meson8m2.dtsi
> @@ -84,6 +84,10 @@ &saradc {
>         compatible = "amlogic,meson8m2-saradc", "amlogic,meson-saradc";
>  };
>
> +&sdhc {
> +       compatible = "amlogic,meson8m2-sdhc", "amlogic,meson-mx-sdhc";
> +};
> +
>  &usb0_phy {
>         compatible = "amlogic,meson8m2-usb2-phy", "amlogic,meson-mx-usb2-phy";
>  };
> --
> 2.27.0
>
>
> _______________________________________________
> linux-amlogic mailing list
> linux-amlogic at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-amlogic



More information about the linux-amlogic mailing list