Re: [PATCH v2 1/2] dt-bindings: usb: Add the binding example for the Genesys Logic GL3523 hub

From: Anand Moon
Date: Thu Oct 12 2023 - 12:37:47 EST


Hi Krzysztof,

On Thu, 12 Oct 2023 at 13:13, Krzysztof Kozlowski
<krzysztof.kozlowski@xxxxxxxxxx> wrote:
>
> On 11/10/2023 07:11, Anand Moon wrote:
> > Add the binding example for the USB3.1 Genesys Logic GL3523
> > integrates with USB 3.1 Gen 1 Super Speed and USB 2.0 High-Speed
> > hub.
>
> That's not what the patch does.

Ok I have tried to add an example below the original changes
but the device tree complained of duplicate entries. Hence I
modified these changes.

This change was requested to update the peer-hub example below.
[0] https://lore.kernel.org/all/9fe7d0d2-3582-4b62-be9b-aa9134c18023@xxxxxxxxxx/

>
> >
> > Signed-off-by: Anand Moon <linux.amoon@xxxxxxxxx>
> > ---
> > New patch.
> > ---
> > .../bindings/usb/genesys,gl850g.yaml | 28 +++++++++++++++++--
> > 1 file changed, 25 insertions(+), 3 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml b/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml
> > index d0927f6768a4..2f6e0c870e1d 100644
> > --- a/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml
> > +++ b/Documentation/devicetree/bindings/usb/genesys,gl850g.yaml
> > @@ -22,29 +22,51 @@ properties:
> > reg: true
> >
> > reset-gpios:
> > + maxItems: 1
>
> Why?

Following another example, I added this and will drop this.
>
> > description: GPIO controlling the RESET# pin.
> >
> > vdd-supply:
> > description:
> > the regulator that provides 3.3V core power to the hub.
> >
> > + peer-hub:
> > + $ref: /schemas/types.yaml#/definitions/phandle
> > + description:
> > + phandle to the peer hub on the controller.
> > +
> > required:
> > - compatible
> > - reg
> > + - reset-gpios
>
> Why?
see below.
>
> > + - vdd-supply
> > + - peer-hub
> >
> > additionalProperties: false
> >
> > examples:
> > - |
> > #include <dt-bindings/gpio/gpio.h>
> > +
> > usb {
> > dr_mode = "host";
> > #address-cells = <1>;
> > #size-cells = <0>;
> >
> > - hub: hub@1 {
> > - compatible = "usb5e3,608";
> > + /* 2.0 hub on port 1 */
> > + hub_2_0: hub@1 {
> > + compatible = "usb5e3,610";
> > reg = <1>;
> > - reset-gpios = <&pio 7 2 GPIO_ACTIVE_LOW>;
> > + vdd-supply = <&vcc_5v>;
> > + peer-hub = <&hub_3_0>;
> > + reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
> > + };
> > +
> > + /* 3.1 hub on port 4 */
> > + hub_3_0: hub@2 {
> > + compatible = "usb5e3,620";
> > + reg = <2>;
> > + vdd-supply = <&vcc_5v>;
> > + peer-hub = <&hub_2_0>;
> > + reset-gpios = <&gpio 20 GPIO_ACTIVE_LOW>;
>
> Really, what is happening here?

USB hub GL3523-QFN76 supports two pins CHIP_EN and RST_N pins
so RST_N (GPIOH_4) is used to reset the USB hub,
earlier we were using gpio-hog to reset the hub.

>
> Best regards,
> Krzysztof
>

Thanks
-Anand