On Mon, Sep 14, 2020 at 11:27:48AM -0700, Matthias Kaehlcke wrote: > Onboard USB hubs need to be powered and may require initiaization of > other resources (like GPIOs or clocks) to work properly. This adds > a device tree binding for these hubs. We already have bindings for these. 2 in fact as I2C controlled hubs are often described under the I2C bus. > > Signed-off-by: Matthias Kaehlcke <mka@xxxxxxxxxxxx> > --- > > .../bindings/usb/onboard_usb_hub.yaml | 70 +++++++++++++++++++ > 1 file changed, 70 insertions(+) > create mode 100644 Documentation/devicetree/bindings/usb/onboard_usb_hub.yaml > > diff --git a/Documentation/devicetree/bindings/usb/onboard_usb_hub.yaml b/Documentation/devicetree/bindings/usb/onboard_usb_hub.yaml > new file mode 100644 > index 000000000000..f82d8f459eed > --- /dev/null > +++ b/Documentation/devicetree/bindings/usb/onboard_usb_hub.yaml > @@ -0,0 +1,70 @@ > +# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/usb/onboard_usb_hub.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Binding for onboard USB hubs > + > +maintainers: > + - Matthias Kaehlcke <mka@xxxxxxxxxxxx> > + > +allOf: > + - $ref: /schemas/usb/onboard_usb_hub.yaml# > + > +properties: > + compatible: > + enum: > + - onboard-usb-hub > + - realtek,rts5411 > + > + power-off-in-suspend: > + description: > + The hub should be powered off during system suspend. When the > + "wakeup-source" property is also provided the hub is only powered > + off during suspend when no wakeup capable descendants are connected. > + type: boolean > + > + vdd-supply: > + description: > + phandle to the regulator that provides power to the hub. > + > + wakeup-source: > + description: > + Wakeup capable USB devices connected to this hub can be used as > + wakeup source. > + type: boolean > + > +required: > + - compatible > + - vdd-supply > + > +examples: > + - | > + usb_hub: usb-hub { > + compatible = "realtek,rts5411", "onboard-usb-hub"; > + vdd-supply = <&pp3300_hub>; > + power-off-in-suspend; > + wakeup-source; This is the hub device? > + }; > + > + &usb_1_dwc3 { > + dr_mode = "host"; > + #address-cells = <1>; > + #size-cells = <0>; > + > + /* 2.0 hub on port 1 */ > + hub@1 { > + compatible = "usbbda,5411"; > + reg = <1>; > + hub = <&usb_hub>; Or this node is? > + }; > + > + /* 3.0 hub on port 2 */ > + hub@2 { > + compatible = "usbbda,411"; > + reg = <2>; > + hub = <&usb_hub>; Or this node is? The hub node belongs here. If you really have it connected to 2 upstream ports, then just do one node with 'reg = <1 2>;'. Rob > + }; > + > +... > -- > 2.28.0.618.gf4bc123cb7-goog >