Re: dt-bindings: generic-ehci.yaml doesn't work well with usb-hcd.yaml

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jul 21, 2022 at 4:14 AM Rafał Miłecki <rafal@xxxxxxxxxx> wrote:
>
> Hi,
>
> I'm trying to fix ARCH_BCM_5301X=y + "dtbs_check" error:
>
> arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dtb: usb@21000: '#address-cells', '#size-cells', '#usb-cells', 'port@1', 'port@2' do not match any of the regexes: 'pinctrl-[0-9]+'
>          From schema: Documentation/devicetree/bindings/usb/generic-ehci.yaml
>
> that comes from:
>
> usb@21000 {
>         #usb-cells = <0>;
>
>         compatible = "generic-ehci";
>         reg = <0x00021000 0x1000>;
>         interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
>         phys = <&usb2_phy>;
>
>         #address-cells = <1>;
>         #size-cells = <0>;
>
>         ehci_port1: port@1 {

I think the issue is usb-device.yaml says 'compatible' is required.

>                 reg = <1>;
>                 #trigger-source-cells = <0>;
>         };
>
>         ehci_port2: port@2 {
>                 reg = <2>;
>                 #trigger-source-cells = <0>;
>         };
> };
>
> ##########
>
> If you check Documentation/devicetree/bindings/usb/generic-ehci.yaml it does:
>
> allOf:
>    - $ref: "usb-hcd.yaml"
>
>
> In the usb-hcd.yaml there is:
>
> properties:
>    "#address-cells":
>      const: 1
>
>    "#size-cells":
>      const: 0
>
> patternProperties:
>    "^.*@[0-9a-f]{1,2}$":
>      description: The hard wired USB devices
>      type: object
>      $ref: /schemas/usb/usb-device.yaml
>
> ##########
>
> So all looks good at first sight. I guess it's some problem with $ref /
> additionalProperties / unevaluatedProperties.
>
> I thought that generic-ehci.yaml should do:
> unevaluatedProperties: false
> instead of:
> additionalProperties: false

Yes, and upstream does now.

>
> but that doesn't help:
> arch/arm/boot/dts/bcm4708-netgear-r6300-v2.dtb: usb@21000: Unevaluated properties are not allowed ('#usb-cells', '#address-cells', '#size-cells', 'port@1', 'port@2' were unexpected)
>          From schema: Documentation/devicetree/bindings/usb/generic-ehci.yaml

You will see unevaluated properties warning if any of the listed
properties failed validation. I added your child nodes to the example
and got:

/home/rob/proj/git/linux-dt/.build-arm64/Documentation/devicetree/bindings/usb/generic-ehci.example.dtb:
usb@1c14000: port@1: 'compatible' is a required property
        From schema:
/home/rob/proj/git/linux-dt/Documentation/devicetree/bindings/usb/generic-ehci.yaml
/home/rob/proj/git/linux-dt/.build-arm64/Documentation/devicetree/bindings/usb/generic-ehci.example.dtb:
usb@1c14000: port@2: 'compatible' is a required property
        From schema:
/home/rob/proj/git/linux-dt/Documentation/devicetree/bindings/usb/generic-ehci.yaml
/home/rob/proj/git/linux-dt/.build-arm64/Documentation/devicetree/bindings/usb/generic-ehci.example.dtb:
usb@1c14000: Unevaluated properties are not allowed ('#address-cells',
'#size-cells', 'port@1', 'port@2' were unexpected)
        From schema:
/home/rob/proj/git/linux-dt/Documentation/devicetree/bindings/usb/generic-ehci.yaml

Rob




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux