On Tue, Mar 09, 2021 at 01:13:11PM +0100, Rafał Miłecki wrote: > From: Rafał Miłecki <rafal@xxxxxxxxxx> > > USB bindings already allow specifying USB device hard wired to a > specific controller port but they don't allow describing port on its > own. > > This fixes: > arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dt.yaml: usb@23000: port@1: 'compatible' is a required property > From schema: Documentation/devicetree/bindings/usb/generic-xhci.yaml > > Signed-off-by: Rafał Miłecki <rafal@xxxxxxxxxx> > --- > Please check if I got the $nodename part right. Somehow I don't see any > errors / warnings when using: > > something@1 { > reg = <1>; > }; $nodename may not work in child nodes of a schema. > --- > .../devicetree/bindings/usb/usb-hcd.yaml | 4 +- > .../devicetree/bindings/usb/usb-port.yaml | 39 +++++++++++++++++++ > 2 files changed, 42 insertions(+), 1 deletion(-) > create mode 100644 Documentation/devicetree/bindings/usb/usb-port.yaml > > diff --git a/Documentation/devicetree/bindings/usb/usb-hcd.yaml b/Documentation/devicetree/bindings/usb/usb-hcd.yaml > index 56853c17af66..b0c6a79cad57 100644 > --- a/Documentation/devicetree/bindings/usb/usb-hcd.yaml > +++ b/Documentation/devicetree/bindings/usb/usb-hcd.yaml > @@ -33,7 +33,9 @@ patternProperties: > "^.*@[0-9a-f]{1,2}$": > description: The hard wired USB devices > type: object > - $ref: /usb/usb-device.yaml > + oneOf: > + - $ref: /usb/usb-port.yaml > + - $ref: /usb/usb-device.yaml > > additionalProperties: true > > diff --git a/Documentation/devicetree/bindings/usb/usb-port.yaml b/Documentation/devicetree/bindings/usb/usb-port.yaml > new file mode 100644 > index 000000000000..68fe16c8703e > --- /dev/null > +++ b/Documentation/devicetree/bindings/usb/usb-port.yaml > @@ -0,0 +1,39 @@ > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/usb/usb-port.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: USB port on USB controller > + > +maintainers: > + - Rafał Miłecki <rafal@xxxxxxxxxx> > + > +description: | > + This binding describes a single USB controller port that doesn't have any > + device hard wired. > + > +properties: > + $nodename: > + pattern: "^port@[0-9a-f]{1,2}$" Unfortunately, 'port' is used elsewhere, so this would be applied any node that matches. That's not really a problem as this is simple enough, but then what does it buy us? I'd be fine just dropping 'compatible' as required in usb-device.yaml. > + > + reg: > + description: number of USB controller port > + maxItems: 1 > + > +required: > + - reg > + > +additionalProperties: true > + > +examples: > + - | > + usb@11270000 { > + reg = <0x11270000 0x1000>; > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@1 { > + reg = <1>; > + }; > + }; > -- > 2.26.2 >