RE: [PATCH 1/3] dt-bindings: mmc: imx-esdhc: Change imx8mn and imx8mp compatible fallback

From: Bough Chen
Date: Wed Mar 23 2022 - 22:54:41 EST


> -----Original Message-----
> From: Adam Ford [mailto:aford173@xxxxxxxxx]
> Sent: 2022年3月24日 1:23
> To: Krzysztof Kozlowski <krzk@xxxxxxxxxx>
> Cc: arm-soc <linux-arm-kernel@xxxxxxxxxxxxxxxxxxx>; Adam Ford-BE
> <aford@xxxxxxxxxxxxxxxxxx>; Ulf Hansson <ulf.hansson@xxxxxxxxxx>; Rob
> Herring <robh+dt@xxxxxxxxxx>; Krzysztof Kozlowski <krzk+dt@xxxxxxxxxx>;
> Shawn Guo <shawnguo@xxxxxxxxxx>; Sascha Hauer
> <s.hauer@xxxxxxxxxxxxxx>; Pengutronix Kernel Team
> <kernel@xxxxxxxxxxxxxx>; Fabio Estevam <festevam@xxxxxxxxx>;
> dl-linux-imx <linux-imx@xxxxxxx>; linux-mmc <linux-mmc@xxxxxxxxxxxxxxx>;
> devicetree <devicetree@xxxxxxxxxxxxxxx>; Linux Kernel Mailing List
> <linux-kernel@xxxxxxxxxxxxxxx>
> Subject: Re: [PATCH 1/3] dt-bindings: mmc: imx-esdhc: Change imx8mn and
> imx8mp compatible fallback
>
> On Wed, Mar 23, 2022 at 9:11 AM Krzysztof Kozlowski <krzk@xxxxxxxxxx>
> wrote:
> >
> > On 23/03/2022 15:00, Adam Ford wrote:
> > > On Wed, Mar 23, 2022 at 8:56 AM Krzysztof Kozlowski <krzk@xxxxxxxxxx>
> wrote:
> > >>
> > >> On 23/03/2022 14:40, Adam Ford 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.
> > >>>
> > >>> Signed-off-by: Adam Ford <aford173@xxxxxxxxx>
> > >>>
> > >>> diff --git
> > >>> a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml
> > >>> b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml
> > >>> index 7dbbcae9485c..d6ea73d76bdd 100644
> > >>> --- a/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml
> > >>> +++ b/Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml
> > >>> @@ -39,14 +39,14 @@ properties:
> > >>> - items:
> > >>> - enum:
> > >>> - fsl,imx8mm-usdhc
> > >>
> > >> Your change looks reasonable, but why imx8mm is compatible with imx7d?
> > >
> > > I saw that, and I wasn't sure the best way to go about fixing it.
> > > If I move the 8mm out of the imx7d category, do I need to add it to
> > > the enum list associated with the imx8mm, or can I just delete it
> > > from the enum leaving the const for imx8mm good enough?
> > >
> >
> > The DTS is using:
> > compatible = "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc"
> > which looks incorrect, based on what you wrote in commit description.
> > Since fsl,imx8mm-usdhc has its own compatibility-group and defines the
> > properties for entire family (imx8mm + imx8mn + imx8mp), then I would
> > assume that either fsl,imx8mm-usdhc is not be compatible with imx7d or
> > everything is compatible with imx7d. IOW, DTS and bindings should be
> > changed to one of following:
> > 1. Everything compatible with imx7d:
> > compatible = "fsl,imx8mm-usdhc", "fsl,imx7d-usdhc";
> > compatible = "fsl,imx8mq-usdhc", "fsl,imx8mm-usdhc",
> > "fsl,imx7d-usdhc";
> >
> > 2. A new group:
> > compatible = "fsl,imx8mm-usdhc";
> > compatible = "fsl,imx8mq-usdhc", "fsl,imx8mm-usdhc";
> >
> > Which one, I am not sure. My commit 80fd350b95 organized it in (1)
> > approach, because also that time there was no new group for 8mm (added
> > in commit 431fae8). I assume NXP engineer knows better, so the better
> > solution would be (2). In such case, imx8mm has to be moved to the
> > first enum and all DTS have to be adjusted.
>
> I pulled NXP's downtream kernel based on 5.15.y, and grepped the code for
> imx8mm-usdhc. It looks like the imx8mm, imx8mn, imx8mp, and imx8ulp use
> the imx8mm compatible flag.
> The imx8mq uses the older imx7d. I'll do a second revision later today or
> tomorrow. Looking inside the driver, it appears there are some other quirks
> that different between the imx7d and imx8mm beyond just support for
> HS400-ES, so I think your option 2 is appropriate.
> Hopefully someone from NXP can comment.
>

I think better to change like this, and dts need change accordingly.

compatible:
oneOf:
- enum:
- fsl,imx25-esdhc
- fsl,imx35-esdhc
- fsl,imx51-esdhc
- fsl,imx53-esdhc
- fsl,imx6q-usdhc
- fsl,imx6sl-usdhc
- fsl,imx6sll-usdhc
- fsl,imx6sx-usdhc
- fsl,imx6ull-usdhc
- fsl,imx7d-usdhc
- fsl,imx7ulp-usdhc
- fsl,imxrt1050-usdhc
- fsl,imx8mm-usdhc
- fsl,imx8qxp-usdhc
- nxp,s32g2-usdhc
- items:
- enum:
- fsl,imx8mq-usdhc
- const: fsl,imx7d-usdhc
- items:
- enum:
- fsl,imx93-usdhc
- fsl,imx8ulp-usdhc
- fsl,imx8mn-usdhc
- fsl,imx8mp-usdhc
- const: fsl,imx8mm-usdhc
- items:
- enum:
- fsl,imx8qm-usdhc
- const: fsl,imx8qxp-usdhc


Best Regards
Haibo Chen

> adam
> >
> >
> > Best regards,
> > Krzysztof

Attachment: smime.p7s
Description: S/MIME cryptographic signature