Message ID | 20200619100035.4032596-2-noltari@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | phy: bcm63xx-usbh: Add BCM63xx USBH driver | expand |
On Fri, Jun 19, 2020 at 12:00:34PM +0200, Álvaro Fernández Rojas wrote: > Document BCM63xx USBH PHY bindings. > > Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> > Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> > --- > v5: no changes. > v4: conditionally require 1/2 clocks and fix clock/reset values. > v3: no changes. > v2: phy-cells changed to 1. > > .../bindings/phy/brcm,bcm63xx-usbh-phy.yaml | 84 +++++++++++++++++++ > 1 file changed, 84 insertions(+) > create mode 100644 Documentation/devicetree/bindings/phy/brcm,bcm63xx-usbh-phy.yaml > > diff --git a/Documentation/devicetree/bindings/phy/brcm,bcm63xx-usbh-phy.yaml b/Documentation/devicetree/bindings/phy/brcm,bcm63xx-usbh-phy.yaml > new file mode 100644 > index 000000000000..f267da6193a9 > --- /dev/null > +++ b/Documentation/devicetree/bindings/phy/brcm,bcm63xx-usbh-phy.yaml > @@ -0,0 +1,84 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: "http://devicetree.org/schemas/phy/brcm,bcm63xx-usbh-phy.yaml#" > +$schema: "http://devicetree.org/meta-schemas/core.yaml#" > + > +title: BCM63xx USBH PHY > + > +maintainers: > + - Álvaro Fernández Rojas <noltari@gmail.com> > + > +properties: > + compatible: > + enum: > + - brcm,bcm6318-usbh-phy > + - brcm,bcm6328-usbh-phy > + - brcm,bcm6358-usbh-phy > + - brcm,bcm6362-usbh-phy > + - brcm,bcm6368-usbh-phy > + - brcm,bcm63268-usbh-phy > + > + reg: > + maxItems: 1 > + > + clocks: > + maxItems: 1 > + > + clock-names: > + const: usbh > + > + resets: > + maxItems: 1 > + > + "#phy-cells": > + const: 1 > + > +required: > + - compatible > + - reg > + - clocks > + - clock-names > + - resets > + - "#phy-cells" You need: additionalProperties: false > + > +allOf: > + - if: > + properties: > + compatible: > + enum: > + - brcm,bcm6318-usbh-phy > + - brcm,bcm63268-usbh-phy > + then: > + properties: > + clocks: > + maxItems: 2 This doesn't work. The main schema will also be applied and it says there's 1. The main schema has to cover all the cases and then if/then schemas add constraints. > + clock-names: > + items: > + - const: usbh > + - const: usb_ref > + - if: > + properties: > + compatible: > + enum: > + - brcm,bcm6318-usbh-phy > + - brcm,bcm6328-usbh-phy > + - brcm,bcm6362-usbh-phy > + - brcm,bcm63268-usbh-phy > + then: > + properties: > + power-domains: > + maxItems: 1 > + required: > + - power-domains > + > +examples: > + - | > + usbh: usb-phy@10001700 { > + compatible = "brcm,bcm6368-usbh-phy"; > + reg = <0x10001700 0x38>; > + clocks = <&periph_clk 15>; > + clock-names = "usbh"; > + resets = <&periph_rst 12>; > + #phy-cells = <1>; > + }; > -- > 2.27.0 >
Hi Rob, If adding "additionalProperties: false” throws the following error, which I don’t understand: /home/noltari/workspace/linux/Documentation/devicetree/bindings/phy/brcm,bcm63xx-usbh-phy.example.dt.yaml: usb-phy@10001700: 'clock-names', 'clocks' do not match any of the regexes: 'pinctrl-[0-9]+’ BTW, is this what you mean? (I added another if section for the cases with just 1 clock): https://gist.github.com/Noltari/9bd94a30e8bcc857d6af87985d7ca010 Best regards, Álvaro. > El 10 jul 2020, a las 0:11, Rob Herring <robh@kernel.org> escribió: > > On Fri, Jun 19, 2020 at 12:00:34PM +0200, Álvaro Fernández Rojas wrote: >> Document BCM63xx USBH PHY bindings. >> >> Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> >> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> >> --- >> v5: no changes. >> v4: conditionally require 1/2 clocks and fix clock/reset values. >> v3: no changes. >> v2: phy-cells changed to 1. >> >> .../bindings/phy/brcm,bcm63xx-usbh-phy.yaml | 84 +++++++++++++++++++ >> 1 file changed, 84 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/phy/brcm,bcm63xx-usbh-phy.yaml >> >> diff --git a/Documentation/devicetree/bindings/phy/brcm,bcm63xx-usbh-phy.yaml b/Documentation/devicetree/bindings/phy/brcm,bcm63xx-usbh-phy.yaml >> new file mode 100644 >> index 000000000000..f267da6193a9 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/phy/brcm,bcm63xx-usbh-phy.yaml >> @@ -0,0 +1,84 @@ >> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: "http://devicetree.org/schemas/phy/brcm,bcm63xx-usbh-phy.yaml#" >> +$schema: "http://devicetree.org/meta-schemas/core.yaml#" >> + >> +title: BCM63xx USBH PHY >> + >> +maintainers: >> + - Álvaro Fernández Rojas <noltari@gmail.com> >> + >> +properties: >> + compatible: >> + enum: >> + - brcm,bcm6318-usbh-phy >> + - brcm,bcm6328-usbh-phy >> + - brcm,bcm6358-usbh-phy >> + - brcm,bcm6362-usbh-phy >> + - brcm,bcm6368-usbh-phy >> + - brcm,bcm63268-usbh-phy >> + >> + reg: >> + maxItems: 1 >> + >> + clocks: >> + maxItems: 1 >> + >> + clock-names: >> + const: usbh >> + >> + resets: >> + maxItems: 1 >> + >> + "#phy-cells": >> + const: 1 >> + >> +required: >> + - compatible >> + - reg >> + - clocks >> + - clock-names >> + - resets >> + - "#phy-cells" > > You need: > > additionalProperties: false > >> + >> +allOf: >> + - if: >> + properties: >> + compatible: >> + enum: >> + - brcm,bcm6318-usbh-phy >> + - brcm,bcm63268-usbh-phy >> + then: >> + properties: >> + clocks: >> + maxItems: 2 > > This doesn't work. The main schema will also be applied and it says > there's 1. The main schema has to cover all the cases and then if/then > schemas add constraints. > >> + clock-names: >> + items: >> + - const: usbh >> + - const: usb_ref >> + - if: >> + properties: >> + compatible: >> + enum: >> + - brcm,bcm6318-usbh-phy >> + - brcm,bcm6328-usbh-phy >> + - brcm,bcm6362-usbh-phy >> + - brcm,bcm63268-usbh-phy >> + then: >> + properties: >> + power-domains: >> + maxItems: 1 >> + required: >> + - power-domains >> + >> +examples: >> + - | >> + usbh: usb-phy@10001700 { >> + compatible = "brcm,bcm6368-usbh-phy"; >> + reg = <0x10001700 0x38>; >> + clocks = <&periph_clk 15>; >> + clock-names = "usbh"; >> + resets = <&periph_rst 12>; >> + #phy-cells = <1>; >> + }; >> -- >> 2.27.0
diff --git a/Documentation/devicetree/bindings/phy/brcm,bcm63xx-usbh-phy.yaml b/Documentation/devicetree/bindings/phy/brcm,bcm63xx-usbh-phy.yaml new file mode 100644 index 000000000000..f267da6193a9 --- /dev/null +++ b/Documentation/devicetree/bindings/phy/brcm,bcm63xx-usbh-phy.yaml @@ -0,0 +1,84 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/phy/brcm,bcm63xx-usbh-phy.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" + +title: BCM63xx USBH PHY + +maintainers: + - Álvaro Fernández Rojas <noltari@gmail.com> + +properties: + compatible: + enum: + - brcm,bcm6318-usbh-phy + - brcm,bcm6328-usbh-phy + - brcm,bcm6358-usbh-phy + - brcm,bcm6362-usbh-phy + - brcm,bcm6368-usbh-phy + - brcm,bcm63268-usbh-phy + + reg: + maxItems: 1 + + clocks: + maxItems: 1 + + clock-names: + const: usbh + + resets: + maxItems: 1 + + "#phy-cells": + const: 1 + +required: + - compatible + - reg + - clocks + - clock-names + - resets + - "#phy-cells" + +allOf: + - if: + properties: + compatible: + enum: + - brcm,bcm6318-usbh-phy + - brcm,bcm63268-usbh-phy + then: + properties: + clocks: + maxItems: 2 + clock-names: + items: + - const: usbh + - const: usb_ref + - if: + properties: + compatible: + enum: + - brcm,bcm6318-usbh-phy + - brcm,bcm6328-usbh-phy + - brcm,bcm6362-usbh-phy + - brcm,bcm63268-usbh-phy + then: + properties: + power-domains: + maxItems: 1 + required: + - power-domains + +examples: + - | + usbh: usb-phy@10001700 { + compatible = "brcm,bcm6368-usbh-phy"; + reg = <0x10001700 0x38>; + clocks = <&periph_clk 15>; + clock-names = "usbh"; + resets = <&periph_rst 12>; + #phy-cells = <1>; + };