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

Message ID 20221107135825.583877-3-herve.codina@bootlin.com
State New
Headers
Series Add the Renesas USBF controller support |

Commit Message

Herve Codina Nov. 7, 2022, 1:58 p.m. UTC
  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>
---
 .../bindings/clock/renesas,r9a06g032-sysctrl.yaml      | 10 ++++++++++
 1 file changed, 10 insertions(+)
  

Comments

Geert Uytterhoeven Nov. 7, 2022, 3:14 p.m. UTC | #1
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?

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
  
Herve Codina Nov. 7, 2022, 5:26 p.m. UTC | #2
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
  

Patch

diff --git a/Documentation/devicetree/bindings/clock/renesas,r9a06g032-sysctrl.yaml b/Documentation/devicetree/bindings/clock/renesas,r9a06g032-sysctrl.yaml
index 95bf485c6cec..f9e0a58aa4fb 100644
--- 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