Re: [PATCH 2/7] dt-bindings: clock: renesas,r9a06g032-sysctrl: Add h2mode property

Herve Codina
2022-11-07T17:26:58Z

Hi Geert,

On Mon, 7 Nov 2022 16:14:10 +0100
Geert Uytterhoeven <geert@linux-m68k.org> wrote:

> Hi Hervé,
>
> On Mon, Nov 7, 2022 at 2:59 PM Herve Codina <herve.codina@bootlin.com> wrote:
> > Add the h2mode property to force the USBs mode ie:
> > - 2 hosts
> > or
> > - 1 host and 1 device
> >
> > Signed-off-by: Herve Codina <herve.codina@bootlin.com>
>
> Thanks for your patch!
>
> > --- a/Documentation/devicetree/bindings/clock/renesas,r9a06g032-sysctrl.yaml
> > +++ b/Documentation/devicetree/bindings/clock/renesas,r9a06g032-sysctrl.yaml
> > @@ -39,6 +39,16 @@ properties:
> > '#power-domain-cells':
> > const: 0
> >
> > + renesas,h2mode:
> > + description: |
> > + Configure the USBs mode.
> > + - <0> : the USBs are in 1 host and 1 device mode.
> > + - <1> : the USBs are in 2 host mode.
> > + If the property is not present, the value used is the one already present
> > + in the CFG_USB register (from reset or set by the bootloader).
> > + $ref: /schemas/types.yaml#/definitions/uint32
> > + enum: [0, 1]
> > +
> > '#address-cells':
> > const: 1
>
> While the H2MODE register bit is indeed located in the sysctrl's
> address space, and handling it here makes it simpler for the drivers
> (especially w.r.t. the default handling), this is really a property
> of the switchable usbh/f core...
> Perhaps it can be moved there? Or not?

Moving the property outside sysctrl (and so its handling) will not
be that easy especially if some more operations are needed (as you
mention in your patch 3/4 review).

Not sure about what is the best thing to do.
(a) Keep it simple and stay in sysctrl
or
(b) Create an usb_role_switch driver.

>
> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
>
> 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

--
Hervé Codina, Bootlin
Embedded Linux and Kernel engineering