2022-04-12 09:28:58

by Adam Ford

[permalink] [raw]
Subject: [PATCH V4 1/3] dt-bindings: mmc: imx-esdhc: Update compatible fallbacks

The SDHC controller in the imx8mn and imx8mp have the same controller
as the imx8mm which is slightly different than that of the imx7d.

Using the fallback of the imx8mm enables the controllers to support
HS400-ES which is not available on the imx7d. After discussion with NXP,
it turns out that the imx8qm should fall back to the imx8qxp, because
those have some additional flags not present in the imx8mm.

Mark the current state of the fallbacks as deprecated, and add the
proper fallbacks so in the future, the deprecated combination can be
removed and prevent any future devices from using the wrong fallback.

Suggested-by: [email protected]
Signed-off-by: Adam Ford <[email protected]>
---
V4: Mark deprecated items with "deprecated: true" instead of a comment
V3: Add support for the interim fallback on imx8mn and imx8mp where
they both fallback to imx8mm, but keep the imx7d to prevent any
breakage.

diff --git a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml
index 7dbbcae9485c..58447095f000 100644
--- a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml
+++ b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml
@@ -34,22 +34,46 @@ properties:
- fsl,imx6ull-usdhc
- fsl,imx7d-usdhc
- fsl,imx7ulp-usdhc
+ - fsl,imx8mm-usdhc
- fsl,imxrt1050-usdhc
- nxp,s32g2-usdhc
+ - items:
+ - enum:
+ - fsl,imx8mq-usdhc
+ - const: fsl,imx7d-usdhc
+ - items:
+ - enum:
+ - fsl,imx8mn-usdhc
+ - fsl,imx8mp-usdhc
+ - fsl,imx93-usdhc
+ - fsl,imx8ulp-usdhc
+ - const: fsl,imx8mm-usdhc
+ - items:
+ - enum:
+ - fsl,imx8qm-usdhc
+ - const: fsl,imx8qxp-usdhc
- items:
- enum:
- fsl,imx8mm-usdhc
- fsl,imx8mn-usdhc
- fsl,imx8mp-usdhc
- - fsl,imx8mq-usdhc
- fsl,imx8qm-usdhc
- fsl,imx8qxp-usdhc
- const: fsl,imx7d-usdhc
+ deprecated: true
- items:
- enum:
- - fsl,imx93-usdhc
- - fsl,imx8ulp-usdhc
+ - fsl,imx8mn-usdhc
+ - fsl,imx8mp-usdhc
- const: fsl,imx8mm-usdhc
+ - const: fsl,imx7d-usdhc
+ deprecated: true
+ - items:
+ - enum:
+ - fsl,imx8qm-usdhc
+ - const: fsl,imx8qxp-usdhc
+ - const: fsl,imx7d-usdhc
+ deprecated: true

reg:
maxItems: 1
--
2.34.1


2022-04-12 13:14:48

by Ulf Hansson

[permalink] [raw]
Subject: Re: [PATCH V4 1/3] dt-bindings: mmc: imx-esdhc: Update compatible fallbacks

On Sun, 10 Apr 2022 at 21:35, Adam Ford <[email protected]> wrote:
>
> The SDHC controller in the imx8mn and imx8mp have the same controller
> as the imx8mm which is slightly different than that of the imx7d.
>
> Using the fallback of the imx8mm enables the controllers to support
> HS400-ES which is not available on the imx7d. After discussion with NXP,
> it turns out that the imx8qm should fall back to the imx8qxp, because
> those have some additional flags not present in the imx8mm.
>
> Mark the current state of the fallbacks as deprecated, and add the
> proper fallbacks so in the future, the deprecated combination can be
> removed and prevent any future devices from using the wrong fallback.
>
> Suggested-by: [email protected]
> Signed-off-by: Adam Ford <[email protected]>

Applied for next, thanks!

Kind regards
Uffe


> ---
> V4: Mark deprecated items with "deprecated: true" instead of a comment
> V3: Add support for the interim fallback on imx8mn and imx8mp where
> they both fallback to imx8mm, but keep the imx7d to prevent any
> breakage.
>
> diff --git a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml
> index 7dbbcae9485c..58447095f000 100644
> --- a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml
> +++ b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml
> @@ -34,22 +34,46 @@ properties:
> - fsl,imx6ull-usdhc
> - fsl,imx7d-usdhc
> - fsl,imx7ulp-usdhc
> + - fsl,imx8mm-usdhc
> - fsl,imxrt1050-usdhc
> - nxp,s32g2-usdhc
> + - items:
> + - enum:
> + - fsl,imx8mq-usdhc
> + - const: fsl,imx7d-usdhc
> + - items:
> + - enum:
> + - fsl,imx8mn-usdhc
> + - fsl,imx8mp-usdhc
> + - fsl,imx93-usdhc
> + - fsl,imx8ulp-usdhc
> + - const: fsl,imx8mm-usdhc
> + - items:
> + - enum:
> + - fsl,imx8qm-usdhc
> + - const: fsl,imx8qxp-usdhc
> - items:
> - enum:
> - fsl,imx8mm-usdhc
> - fsl,imx8mn-usdhc
> - fsl,imx8mp-usdhc
> - - fsl,imx8mq-usdhc
> - fsl,imx8qm-usdhc
> - fsl,imx8qxp-usdhc
> - const: fsl,imx7d-usdhc
> + deprecated: true
> - items:
> - enum:
> - - fsl,imx93-usdhc
> - - fsl,imx8ulp-usdhc
> + - fsl,imx8mn-usdhc
> + - fsl,imx8mp-usdhc
> - const: fsl,imx8mm-usdhc
> + - const: fsl,imx7d-usdhc
> + deprecated: true
> + - items:
> + - enum:
> + - fsl,imx8qm-usdhc
> + - const: fsl,imx8qxp-usdhc
> + - const: fsl,imx7d-usdhc
> + deprecated: true
>
> reg:
> maxItems: 1
> --
> 2.34.1
>

2022-04-12 15:37:39

by Adam Ford

[permalink] [raw]
Subject: [PATCH V4 2/3] arm64: dts: imx8mn: Enable HS400-ES

The SDHC controller in the imx8mn has the same controller
as the imx8mm which supports HS400-ES. Change the compatible
fallback to imx8mm to enable it, but keep the imx7d-usdhc
to prevent breaking backwards compatibility.

Signed-off-by: Adam Ford <[email protected]>
---
V4: No Change
V3: No change
V2: Keep fallback to fsl,imx7d-usdhc to prevent breakage

diff --git a/arch/arm64/boot/dts/freescale/imx8mn.dtsi b/arch/arm64/boot/dts/freescale/imx8mn.dtsi
index 99f0f5026674..13c51363cc06 100644
--- a/arch/arm64/boot/dts/freescale/imx8mn.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8mn.dtsi
@@ -933,7 +933,7 @@ mu: mailbox@30aa0000 {
};

usdhc1: mmc@30b40000 {
- compatible = "fsl,imx8mn-usdhc", "fsl,imx7d-usdhc";
+ compatible = "fsl,imx8mn-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
reg = <0x30b40000 0x10000>;
interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX8MN_CLK_IPG_ROOT>,
@@ -947,7 +947,7 @@ usdhc1: mmc@30b40000 {
};

usdhc2: mmc@30b50000 {
- compatible = "fsl,imx8mn-usdhc", "fsl,imx7d-usdhc";
+ compatible = "fsl,imx8mn-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
reg = <0x30b50000 0x10000>;
interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX8MN_CLK_IPG_ROOT>,
@@ -961,7 +961,7 @@ usdhc2: mmc@30b50000 {
};

usdhc3: mmc@30b60000 {
- compatible = "fsl,imx8mn-usdhc", "fsl,imx7d-usdhc";
+ compatible = "fsl,imx8mn-usdhc", "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
reg = <0x30b60000 0x10000>;
interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX8MN_CLK_IPG_ROOT>,
--
2.34.1

2022-04-18 15:53:33

by Shawn Guo

[permalink] [raw]
Subject: Re: [PATCH V4 2/3] arm64: dts: imx8mn: Enable HS400-ES

On Sun, Apr 10, 2022 at 02:35:42PM -0500, Adam Ford wrote:
> The SDHC controller in the imx8mn has the same controller
> as the imx8mm which supports HS400-ES. Change the compatible
> fallback to imx8mm to enable it, but keep the imx7d-usdhc
> to prevent breaking backwards compatibility.
>
> Signed-off-by: Adam Ford <[email protected]>

Applied #2 and #3, thanks!