diff mbox series

dt-bindings: usb: usb-device: make "compatible" optional

Message ID 20230228182909.1011-1-zajec5@gmail.com
State New
Headers show
Series dt-bindings: usb: usb-device: make "compatible" optional | expand

Commit Message

Rafał Miłecki Feb. 28, 2023, 6:29 p.m. UTC
From: Rafał Miłecki <rafal@milecki.pl>

This binding was originally meant to describe hard-wired USB devices but
in some situations we need to describe USB ports. That is needed e.g. if
USB port is meant to be used as a trigger source but it can have any
device plugged. It's a common case for home routers which have USB ports
(with no hard-wired devices) and USB LEDs to indicate ports state.

There is no point (and no easy way) to add separate binding covering
just USB ports. Adjust existing devices binding to allow describing
ports.

This fixes:
arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@21000: port@1: 'compatible' is a required property
        From schema: Documentation/devicetree/bindings/usb/generic-ehci.yaml
arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@21000: port@2: 'compatible' is a required property
        From schema: Documentation/devicetree/bindings/usb/generic-ehci.yaml
arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@21000: Unevaluated properties are not allowed ('#address-cells', '#size-cells', 'port@1', 'port@2' were unexpected)
        From schema: Documentation/devicetree/bindings/usb/generic-ehci.yaml
arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@22000: port@1: 'compatible' is a required property
        From schema: Documentation/devicetree/bindings/usb/generic-ohci.yaml
arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@22000: port@2: 'compatible' is a required property
        From schema: Documentation/devicetree/bindings/usb/generic-ohci.yaml
arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@22000: Unevaluated properties are not allowed ('#address-cells', '#size-cells', 'port@1', 'port@2' were unexpected)
        From schema: Documentation/devicetree/bindings/usb/generic-ohci.yaml
arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@23000: port@1: 'compatible' is a required property
        From schema: Documentation/devicetree/bindings/usb/generic-xhci.yaml
arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@23000: Unevaluated properties are not allowed ('#address-cells', '#size-cells', 'phy-names', 'phys', 'port@1' were unexpected)
        From schema: Documentation/devicetree/bindings/usb/generic-xhci.yaml

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
I tried to add USB port binding but it didn't work because of $nodename.
Rob suggested to just make "compatible" optional:
[PATCH robh next] dt-bindings: usb: add USB controller port
https://www.spinics.net/lists/linux-usb/msg209553.html
---
 Documentation/devicetree/bindings/usb/usb-device.yaml | 1 -
 1 file changed, 1 deletion(-)

Comments

Rob Herring March 8, 2023, 7:10 p.m. UTC | #1
On Tue, 28 Feb 2023 19:29:09 +0100, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal@milecki.pl>
> 
> This binding was originally meant to describe hard-wired USB devices but
> in some situations we need to describe USB ports. That is needed e.g. if
> USB port is meant to be used as a trigger source but it can have any
> device plugged. It's a common case for home routers which have USB ports
> (with no hard-wired devices) and USB LEDs to indicate ports state.
> 
> There is no point (and no easy way) to add separate binding covering
> just USB ports. Adjust existing devices binding to allow describing
> ports.
> 
> This fixes:
> arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@21000: port@1: 'compatible' is a required property
>         From schema: Documentation/devicetree/bindings/usb/generic-ehci.yaml
> arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@21000: port@2: 'compatible' is a required property
>         From schema: Documentation/devicetree/bindings/usb/generic-ehci.yaml
> arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@21000: Unevaluated properties are not allowed ('#address-cells', '#size-cells', 'port@1', 'port@2' were unexpected)
>         From schema: Documentation/devicetree/bindings/usb/generic-ehci.yaml
> arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@22000: port@1: 'compatible' is a required property
>         From schema: Documentation/devicetree/bindings/usb/generic-ohci.yaml
> arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@22000: port@2: 'compatible' is a required property
>         From schema: Documentation/devicetree/bindings/usb/generic-ohci.yaml
> arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@22000: Unevaluated properties are not allowed ('#address-cells', '#size-cells', 'port@1', 'port@2' were unexpected)
>         From schema: Documentation/devicetree/bindings/usb/generic-ohci.yaml
> arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@23000: port@1: 'compatible' is a required property
>         From schema: Documentation/devicetree/bindings/usb/generic-xhci.yaml
> arch/arm/boot/dts/bcm4708-asus-rt-ac56u.dtb: usb@23000: Unevaluated properties are not allowed ('#address-cells', '#size-cells', 'phy-names', 'phys', 'port@1' were unexpected)
>         From schema: Documentation/devicetree/bindings/usb/generic-xhci.yaml
> 
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> ---
> I tried to add USB port binding but it didn't work because of $nodename.
> Rob suggested to just make "compatible" optional:
> [PATCH robh next] dt-bindings: usb: add USB controller port
> https://www.spinics.net/lists/linux-usb/msg209553.html
> ---
>  Documentation/devicetree/bindings/usb/usb-device.yaml | 1 -
>  1 file changed, 1 deletion(-)
> 

Reviewed-by: Rob Herring <robh@kernel.org>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/usb/usb-device.yaml b/Documentation/devicetree/bindings/usb/usb-device.yaml
index 7a771125ec76..da890ee60ce6 100644
--- a/Documentation/devicetree/bindings/usb/usb-device.yaml
+++ b/Documentation/devicetree/bindings/usb/usb-device.yaml
@@ -76,7 +76,6 @@  patternProperties:
         maxItems: 1
 
 required:
-  - compatible
   - reg
 
 additionalProperties: true