Hi Prabhakar, On Tue, Jun 25, 2024 at 10:47 AM Lad, Prabhakar <prabhakar.csengg@xxxxxxxxx> wrote: > On Tue, Jun 25, 2024 at 7:57 AM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: > > On Mon, Jun 24, 2024 at 5:33 PM Prabhakar <prabhakar.csengg@xxxxxxxxx> wrote: > > > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> > > > > > > The SD/MMC block on the RZ/V2H(P) ("R9A09G057") SoC is similar to that > > > of the R-Car Gen3, but it has some differences: > > > - HS400 is not supported. > > > - It supports the SD_IOVS bit to control the IO voltage level. > > > - It supports fixed address mode. > > > > > > To accommodate these differences, a SoC-specific 'renesas,sdhi-r9a09g057' > > > compatible string is added. > > > > > > A 'vqmmc-regulator' object is introduced to handle the power enable (PWEN) > > > and voltage level switching for the SD/MMC. > > > > > > Additionally, the 'renesas,sdhi-use-internal-regulator' flag is introduced > > > to indicate that an internal regulator is used instead of a > > > GPIO-controlled regulator. This flag will help configure the internal > > > regulator and avoid special handling when GPIO is used for voltage > > > regulation instead of the SD_(IOVS/PWEN) pins. > > > > > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> > > > --- > > > v2->v3 > > > - Renamed vqmmc-r9a09g057-regulator object to vqmmc-regulator > > > - Added regulator-compatible property for vqmmc-regulator > > > - Added 'renesas,sdhi-use-internal-regulator' property > > > > Thanks for the update! > > > > > --- a/Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml > > > +++ b/Documentation/devicetree/bindings/mmc/renesas,sdhi.yaml > > > @@ -204,6 +207,31 @@ allOf: > > > sectioned off to be run by a separate second clock source to allow > > > the main core clock to be turned off to save power. > > > > > > + - if: > > > + properties: > > > + compatible: > > > + contains: > > > + const: renesas,sdhi-r9a09g057 > > > + then: > > > + properties: > > > + renesas,sdhi-use-internal-regulator: > > > + $ref: /schemas/types.yaml#/definitions/flag > > > + description: > > > + Flag to indicate internal regulator is being used instead of GPIO regulator. > > > > Do you really need this? > For cases where the status is okay for the regulator but still the > user has phandle for the GPIO regulator or shall I drop this case? I think that case can be ignored. The regulator subnode would be disabled by default in the .dtsi, right? > > The status of the regulator subnode already indicates this. > You mean to use of_device_is_available() ? Exactly. I.e. only register the regulator when it is enabled. > > > + > > > + vqmmc-regulator: > > > + type: object > > > + description: VQMMC SD regulator > > > + $ref: /schemas/regulator/regulator.yaml# > > > + unevaluatedProperties: false > > > + > > > + properties: > > > + regulator-compatible: > > > + pattern: "^vqmmc-r9a09g057-regulator" > > > + > > > + required: > > > + - vqmmc-regulator > > > > I'm not 100% sure this works correctly: does the checker complain if > > a required subnode is disabled? Note that I haven't checked that. > > > Here is the experiment which I tried and the checker didnt complain, > > &sdhi1 { > status = "okay"; > }; > > &vqmmc_sdhi1 { > status = "disabled"; > }; OK, thanks for checking! > But the above is still a valid case where the user wants to use a GPIO > regulator? Yes it is. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds