Message ID | 8e48edc5e7b65f8dfd8b76c583e0265b9b97e62b.1652099944.git.geert+renesas@glider.be |
---|---|
State | New, archived |
Headers | show |
Series | dt-bindings: phy: renesas, rcar-gen2-usb-phy: Convert to json-schema | expand |
On Mon, May 09, 2022 at 02:41:38PM +0200, Geert Uytterhoeven wrote: > Convert the Renesas R-Car Gen2 USB PHY Device Tree binding documentation > to json-schema. > > Add missing properties. > Drop the second example, as it doesn't add any value. > > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> > --- > Validation gives: > > Documentation/devicetree/bindings/phy/renesas,rcar-gen2-usb-phy.example.dtb: usb > -phy@e6590100: '#phy-cells' is a required property > From schema: dt-schema/dtschema/schemas/phy/phy-provider.yaml > > The latter considers '#phy-cells' a required property, as the node name > matches "usb-phy". But in this binding the actual PHY providers are the > child nodes. > > Is there a way to fix this? Overriding "#phy-cells" to "false" doesn't > work. > Should all nodes and child nodes be renamed? The (Linux) driver doesn't > care about the names of the children. There's an open issue in dtschema for this. I don't have an answer other than don't use 'phy' in the parent node name. > > --- > This is the final conversion to json-schema of DT bindings for Renesas > ARM SoCs, hurray! Great, certainly looking better than some! My tracking in linux-next gives me this: For arm: Processing (r7|r8|r9|emev2|sh73a|gr-|iwg): warnings: 283 undocumented compat: 32 arch/arm/boot/dts/(r7|r8|r9|emev2|sh73a|gr-|iwg):32 ['ams,as3711'] ['arm,coresight-etm3x'] ['dlg,da9063-onkey'] ['dlg,da9063-rtc'] ['dlg,da9063-watchdog'] ['dlg,da9063l'] ['dlg,da9210'] ['i2c-demux-pinctrl'] ['renesas,pci-r8a7742', 'renesas,pci-rcar-gen2'] ['renesas,pci-r8a7743', 'renesas,pci-rcar-gen2'] ['renesas,pci-r8a7744', 'renesas,pci-rcar-gen2'] ['renesas,pci-r8a7745', 'renesas,pci-rcar-gen2'] ['renesas,pci-r8a7790', 'renesas,pci-rcar-gen2'] ['renesas,pci-r8a7791', 'renesas,pci-rcar-gen2'] ['renesas,pci-r8a7794', 'renesas,pci-rcar-gen2'] ['renesas,pci-r9a06g032', 'renesas,pci-rzn1'] ['renesas,r2a11302ft'] ['renesas,r9a06g032-dma', 'renesas,rzn1-dma'] ['renesas,r9a06g032-rtc', 'renesas,rzn1-rtc'] ['renesas,r9a06g032-wdt', 'renesas,rzn1-wdt'] ['renesas,rzn1-dmamux'] ['renesas,usb-phy-r8a7742', 'renesas,rcar-gen2-usb-phy'] ['renesas,usb-phy-r8a7743', 'renesas,rcar-gen2-usb-phy'] ['renesas,usb-phy-r8a7744', 'renesas,rcar-gen2-usb-phy'] ['renesas,usb-phy-r8a7745', 'renesas,rcar-gen2-usb-phy'] ['renesas,usb-phy-r8a77470', 'renesas,rcar-gen2-usb-phy'] ['renesas,usb-phy-r8a7790', 'renesas,rcar-gen2-usb-phy'] ['renesas,usb-phy-r8a7791', 'renesas,rcar-gen2-usb-phy'] ['renesas,usb-phy-r8a7794', 'renesas,rcar-gen2-usb-phy'] ['sil,sii9022'] ['st,stmpe-ts'] ['st,stmpe811'] For arm64: Processing renesas: warnings: 312 undocumented compat: 15 undocumented here means no schema. arch/arm64/boot/dts/renesas:15 ['ilitek,ili2117'] ['micron,mt25qu512a', 'jedec,spi-nor'] ['nxp,tda998x'] ['ovti,ov5645'] ['renesas,r8a7795-mlp', 'renesas,rcar-gen3-mlp'] ['renesas,r8a7796-mlp', 'renesas,rcar-gen3-mlp'] ['renesas,r8a77961-mlp', 'renesas,rcar-gen3-mlp'] ['renesas,r8a77965-mlp', 'renesas,rcar-gen3-mlp'] ['renesas,r8a77990-mlp', 'renesas,rcar-gen3-mlp'] ['renesas,r8a77995-mlp', 'renesas,rcar-gen3-mlp'] ['renesas,r9a07g043-ssi', 'renesas,rz-ssi'] ['renesas,r9a07g043-tsu', 'renesas,rzg2l-tsu'] ['renesas,r9a07g043-usbphy-ctrl', 'renesas,rzg2l-usbphy-ctrl'] ['renesas,r9a07g043-wdt', 'renesas,rzg2l-wdt'] ['ti,pcm3168a'] I guess board level components don't count and some might be pending. All this comes from here: https://gitlab.com/robherring/linux-dt/-/jobs > > Note that there are still a few plain text bindings left for Renesas IP > cores that are present on non-Renesas SoCs (nbpfaxi and usdhi6rol0). > And H8/300 is being removed. > --- > .../devicetree/bindings/phy/rcar-gen2-phy.txt | 112 ---------------- > .../phy/renesas,rcar-gen2-usb-phy.yaml | 123 ++++++++++++++++++ > 2 files changed, 123 insertions(+), 112 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt > create mode 100644 Documentation/devicetree/bindings/phy/renesas,rcar-gen2-usb-phy.yaml Ignoring the node names for now, Reviewed-by: Rob Herring <robh@kernel.org>
Hi Rob, On Tue, May 17, 2022 at 3:04 AM Rob Herring <robh@kernel.org> wrote: > On Mon, May 09, 2022 at 02:41:38PM +0200, Geert Uytterhoeven wrote: > > Convert the Renesas R-Car Gen2 USB PHY Device Tree binding documentation > > to json-schema. > > > > Add missing properties. > > Drop the second example, as it doesn't add any value. > > > > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> > > --- > > Validation gives: > > > > Documentation/devicetree/bindings/phy/renesas,rcar-gen2-usb-phy.example.dtb: usb > > -phy@e6590100: '#phy-cells' is a required property > > From schema: dt-schema/dtschema/schemas/phy/phy-provider.yaml > > > > The latter considers '#phy-cells' a required property, as the node name > > matches "usb-phy". But in this binding the actual PHY providers are the > > child nodes. > > > > Is there a way to fix this? Overriding "#phy-cells" to "false" doesn't > > work. > > Should all nodes and child nodes be renamed? The (Linux) driver doesn't > > care about the names of the children. > > There's an open issue in dtschema for this. I don't have an answer other > than don't use 'phy' in the parent node name. IC... > > --- > > This is the final conversion to json-schema of DT bindings for Renesas > > ARM SoCs, hurray! > > Great, certainly looking better than some! My tracking in linux-next > gives me this: > > For arm: > > Processing (r7|r8|r9|emev2|sh73a|gr-|iwg): > warnings: 283 > undocumented compat: 32 > > arch/arm/boot/dts/(r7|r8|r9|emev2|sh73a|gr-|iwg):32 > ['ams,as3711'] Board component > ['arm,coresight-etm3x'] ARM core > ['dlg,da9063-onkey'] > ['dlg,da9063-rtc'] > ['dlg,da9063-watchdog'] > ['dlg,da9063l'] > ['dlg,da9210'] Board components > ['i2c-demux-pinctrl'] I2C framework > ['renesas,pci-r8a7742', 'renesas,pci-rcar-gen2'] > ['renesas,pci-r8a7743', 'renesas,pci-rcar-gen2'] > ['renesas,pci-r8a7744', 'renesas,pci-rcar-gen2'] > ['renesas,pci-r8a7745', 'renesas,pci-rcar-gen2'] > ['renesas,pci-r8a7790', 'renesas,pci-rcar-gen2'] > ['renesas,pci-r8a7791', 'renesas,pci-rcar-gen2'] > ['renesas,pci-r8a7794', 'renesas,pci-rcar-gen2'] > ['renesas,pci-r9a06g032', 'renesas,pci-rzn1'] https://lore.kernel.org/r/20220429134143.628428-3-herve.codina@bootlin.com > ['renesas,r2a11302ft'] I2C device without bindings or upstream driver. > ['renesas,r9a06g032-dma', 'renesas,rzn1-dma'] https://lore.kernel.org/r/20220427095653.91804-2-miquel.raynal@bootlin.com > ['renesas,r9a06g032-rtc', 'renesas,rzn1-rtc'] https://lore.kernel.org/r/20220512143920.238987-2-miquel.raynal@bootlin.com > ['renesas,r9a06g032-wdt', 'renesas,rzn1-wdt'] https://lore.kernel.org/r/20220413082527.155740-2-jjhiblot@traphandler.com > ['renesas,rzn1-dmamux'] https://lore.kernel.org/r/20220421085112.78858-2-miquel.raynal@bootlin.com > ['renesas,usb-phy-r8a7742', 'renesas,rcar-gen2-usb-phy'] > ['renesas,usb-phy-r8a7743', 'renesas,rcar-gen2-usb-phy'] > ['renesas,usb-phy-r8a7744', 'renesas,rcar-gen2-usb-phy'] > ['renesas,usb-phy-r8a7745', 'renesas,rcar-gen2-usb-phy'] > ['renesas,usb-phy-r8a77470', 'renesas,rcar-gen2-usb-phy'] > ['renesas,usb-phy-r8a7790', 'renesas,rcar-gen2-usb-phy'] > ['renesas,usb-phy-r8a7791', 'renesas,rcar-gen2-usb-phy'] > ['renesas,usb-phy-r8a7794', 'renesas,rcar-gen2-usb-phy'] This patch. > ['sil,sii9022'] https://lore.kernel.org/r/3b2619682694050696e5c85269ccc4f864590e66.1638540704.git.geert+renesas@glider.be > ['st,stmpe-ts'] > ['st,stmpe811'] Board components > > For arm64: > > Processing renesas: > warnings: 312 > undocumented compat: 15 > > undocumented here means no schema. > > arch/arm64/boot/dts/renesas:15 > ['ilitek,ili2117'] https://lore.kernel.org/r/0c5f06c9d262c1720b40d068b6eefe58ca406601.1638539806.git.geert+renesas@glider.be > ['micron,mt25qu512a', 'jedec,spi-nor'] Board component > ['nxp,tda998x'] https://lore.kernel.org/r/1f6bf58d76efc2e869b800534b818d1451ef98a2.1634822085.git.geert+renesas@glider.be > ['ovti,ov5645'] Board component > ['renesas,r8a7795-mlp', 'renesas,rcar-gen3-mlp'] > ['renesas,r8a7796-mlp', 'renesas,rcar-gen3-mlp'] > ['renesas,r8a77961-mlp', 'renesas,rcar-gen3-mlp'] > ['renesas,r8a77965-mlp', 'renesas,rcar-gen3-mlp'] > ['renesas,r8a77990-mlp', 'renesas,rcar-gen3-mlp'] > ['renesas,r8a77995-mlp', 'renesas,rcar-gen3-mlp'] Driver in staging without any bindings > ['renesas,r9a07g043-ssi', 'renesas,rz-ssi'] https://lore.kernel.org/r/20220423133154.141027-1-biju.das.jz@bp.renesas.com > ['renesas,r9a07g043-tsu', 'renesas,rzg2l-tsu'] https://lore.kernel.org/r/20220501081930.23743-1-biju.das.jz@bp.renesas.com > ['renesas,r9a07g043-usbphy-ctrl', 'renesas,rzg2l-usbphy-ctrl'] https://lore.kernel.org/r/20220423134601.141975-1-biju.das.jz@bp.renesas.com > ['renesas,r9a07g043-wdt', 'renesas,rzg2l-wdt'] https://lore.kernel.org/r/20220424071323.151757-1-biju.das.jz@bp.renesas.com > ['ti,pcm3168a'] Board component > I guess board level components don't count and some might be pending. Some have been pending (or blocked) for a long time... > All this comes from here: https://gitlab.com/robherring/linux-dt/-/jobs > Ignoring the node names for now, > > Reviewed-by: Rob Herring <robh@kernel.org> Thanks! Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
On Tue, May 17, 2022 at 1:59 AM Geert Uytterhoeven <geert@linux-m68k.org> wrote: > > Hi Rob, > > On Tue, May 17, 2022 at 3:04 AM Rob Herring <robh@kernel.org> wrote: > > On Mon, May 09, 2022 at 02:41:38PM +0200, Geert Uytterhoeven wrote: > > > Convert the Renesas R-Car Gen2 USB PHY Device Tree binding documentation > > > to json-schema. > > > > > > Add missing properties. > > > Drop the second example, as it doesn't add any value. > > > > > > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> > > > --- > > > Validation gives: > > > > > > Documentation/devicetree/bindings/phy/renesas,rcar-gen2-usb-phy.example.dtb: usb > > > -phy@e6590100: '#phy-cells' is a required property > > > From schema: dt-schema/dtschema/schemas/phy/phy-provider.yaml > > > > > > The latter considers '#phy-cells' a required property, as the node name > > > matches "usb-phy". But in this binding the actual PHY providers are the > > > child nodes. > > > > > > Is there a way to fix this? Overriding "#phy-cells" to "false" doesn't > > > work. > > > Should all nodes and child nodes be renamed? The (Linux) driver doesn't > > > care about the names of the children. > > > > There's an open issue in dtschema for this. I don't have an answer other > > than don't use 'phy' in the parent node name. > > IC... > > > > --- > > > This is the final conversion to json-schema of DT bindings for Renesas > > > ARM SoCs, hurray! > > > > Great, certainly looking better than some! My tracking in linux-next > > gives me this: > > > > For arm: > > > > Processing (r7|r8|r9|emev2|sh73a|gr-|iwg): > > warnings: 283 > > undocumented compat: 32 > > > > arch/arm/boot/dts/(r7|r8|r9|emev2|sh73a|gr-|iwg):32 > > ['ams,as3711'] > > Board component > > > ['arm,coresight-etm3x'] > > ARM core > > > ['dlg,da9063-onkey'] > > ['dlg,da9063-rtc'] > > ['dlg,da9063-watchdog'] > > ['dlg,da9063l'] > > ['dlg,da9210'] > > Board components > > > ['i2c-demux-pinctrl'] > > I2C framework > > > ['renesas,pci-r8a7742', 'renesas,pci-rcar-gen2'] > > ['renesas,pci-r8a7743', 'renesas,pci-rcar-gen2'] > > ['renesas,pci-r8a7744', 'renesas,pci-rcar-gen2'] > > ['renesas,pci-r8a7745', 'renesas,pci-rcar-gen2'] > > ['renesas,pci-r8a7790', 'renesas,pci-rcar-gen2'] > > ['renesas,pci-r8a7791', 'renesas,pci-rcar-gen2'] > > ['renesas,pci-r8a7794', 'renesas,pci-rcar-gen2'] > > ['renesas,pci-r9a06g032', 'renesas,pci-rzn1'] > > https://lore.kernel.org/r/20220429134143.628428-3-herve.codina@bootlin.com > > > ['renesas,r2a11302ft'] > > I2C device without bindings or upstream driver. > > > ['renesas,r9a06g032-dma', 'renesas,rzn1-dma'] > > https://lore.kernel.org/r/20220427095653.91804-2-miquel.raynal@bootlin.com > > > ['renesas,r9a06g032-rtc', 'renesas,rzn1-rtc'] > > https://lore.kernel.org/r/20220512143920.238987-2-miquel.raynal@bootlin.com > > > ['renesas,r9a06g032-wdt', 'renesas,rzn1-wdt'] > > https://lore.kernel.org/r/20220413082527.155740-2-jjhiblot@traphandler.com > > > ['renesas,rzn1-dmamux'] > > https://lore.kernel.org/r/20220421085112.78858-2-miquel.raynal@bootlin.com > > > ['renesas,usb-phy-r8a7742', 'renesas,rcar-gen2-usb-phy'] > > ['renesas,usb-phy-r8a7743', 'renesas,rcar-gen2-usb-phy'] > > ['renesas,usb-phy-r8a7744', 'renesas,rcar-gen2-usb-phy'] > > ['renesas,usb-phy-r8a7745', 'renesas,rcar-gen2-usb-phy'] > > ['renesas,usb-phy-r8a77470', 'renesas,rcar-gen2-usb-phy'] > > ['renesas,usb-phy-r8a7790', 'renesas,rcar-gen2-usb-phy'] > > ['renesas,usb-phy-r8a7791', 'renesas,rcar-gen2-usb-phy'] > > ['renesas,usb-phy-r8a7794', 'renesas,rcar-gen2-usb-phy'] > > This patch. > > > ['sil,sii9022'] > > https://lore.kernel.org/r/3b2619682694050696e5c85269ccc4f864590e66.1638540704.git.geert+renesas@glider.be > > > ['st,stmpe-ts'] > > ['st,stmpe811'] > > Board components > > > > > For arm64: > > > > Processing renesas: > > warnings: 312 > > undocumented compat: 15 > > > > undocumented here means no schema. > > > > arch/arm64/boot/dts/renesas:15 > > ['ilitek,ili2117'] > > https://lore.kernel.org/r/0c5f06c9d262c1720b40d068b6eefe58ca406601.1638539806.git.geert+renesas@glider.be > > > ['micron,mt25qu512a', 'jedec,spi-nor'] > > Board component > > > ['nxp,tda998x'] > > https://lore.kernel.org/r/1f6bf58d76efc2e869b800534b818d1451ef98a2.1634822085.git.geert+renesas@glider.be > > > ['ovti,ov5645'] > > Board component > > > ['renesas,r8a7795-mlp', 'renesas,rcar-gen3-mlp'] > > ['renesas,r8a7796-mlp', 'renesas,rcar-gen3-mlp'] > > ['renesas,r8a77961-mlp', 'renesas,rcar-gen3-mlp'] > > ['renesas,r8a77965-mlp', 'renesas,rcar-gen3-mlp'] > > ['renesas,r8a77990-mlp', 'renesas,rcar-gen3-mlp'] > > ['renesas,r8a77995-mlp', 'renesas,rcar-gen3-mlp'] > > Driver in staging without any bindings > > > ['renesas,r9a07g043-ssi', 'renesas,rz-ssi'] > > https://lore.kernel.org/r/20220423133154.141027-1-biju.das.jz@bp.renesas.com > > > ['renesas,r9a07g043-tsu', 'renesas,rzg2l-tsu'] > > https://lore.kernel.org/r/20220501081930.23743-1-biju.das.jz@bp.renesas.com > > > ['renesas,r9a07g043-usbphy-ctrl', 'renesas,rzg2l-usbphy-ctrl'] > > https://lore.kernel.org/r/20220423134601.141975-1-biju.das.jz@bp.renesas.com > > > ['renesas,r9a07g043-wdt', 'renesas,rzg2l-wdt'] > > https://lore.kernel.org/r/20220424071323.151757-1-biju.das.jz@bp.renesas.com > > > ['ti,pcm3168a'] > > Board component > > > I guess board level components don't count and some might be pending. > > Some have been pending (or blocked) for a long time... Can you tell me which ones and I can apply them. If they have my tag already, then I tend to ignore them. Rob
Hi Rob, On Tue, May 17, 2022 at 3:57 PM Rob Herring <robh@kernel.org> wrote: > On Tue, May 17, 2022 at 1:59 AM Geert Uytterhoeven <geert@linux-m68k.org> wrote: > > On Tue, May 17, 2022 at 3:04 AM Rob Herring <robh@kernel.org> wrote: > > > I guess board level components don't count and some might be pending. > > > > Some have been pending (or blocked) for a long time... > > Can you tell me which ones and I can apply them. If they have my tag > already, then I tend to ignore them. I think you can safely take the following: https://lore.kernel.org/r/0c5f06c9d262c1720b40d068b6eefe58ca406601.1638539806.git.geert+renesas@glider.be I have also sent a v3 of the sil,sii9022 conversion. Thanks! Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
diff --git a/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt b/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt deleted file mode 100644 index a3bd1c4499b75bdb..0000000000000000 --- a/Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt +++ /dev/null @@ -1,112 +0,0 @@ -* Renesas R-Car generation 2 USB PHY - -This file provides information on what the device node for the R-Car generation -2 USB PHY contains. - -Required properties: -- compatible: "renesas,usb-phy-r8a7742" if the device is a part of R8A7742 SoC. - "renesas,usb-phy-r8a7743" if the device is a part of R8A7743 SoC. - "renesas,usb-phy-r8a7744" if the device is a part of R8A7744 SoC. - "renesas,usb-phy-r8a7745" if the device is a part of R8A7745 SoC. - "renesas,usb-phy-r8a77470" if the device is a part of R8A77470 SoC. - "renesas,usb-phy-r8a7790" if the device is a part of R8A7790 SoC. - "renesas,usb-phy-r8a7791" if the device is a part of R8A7791 SoC. - "renesas,usb-phy-r8a7794" if the device is a part of R8A7794 SoC. - "renesas,rcar-gen2-usb-phy" for a generic R-Car Gen2 or - RZ/G1 compatible device. - - When compatible with the generic version, nodes must list the - SoC-specific version corresponding to the platform first - followed by the generic version. - -- reg: offset and length of the register block. -- #address-cells: number of address cells for the USB channel subnodes, must - be <1>. -- #size-cells: number of size cells for the USB channel subnodes, must be <0>. -- clocks: clock phandle and specifier pair. -- clock-names: string, clock input name, must be "usbhs". - -The USB PHY device tree node should have the subnodes corresponding to the USB -channels. These subnodes must contain the following properties: -- reg: the USB controller selector; see the table below for the values. -- #phy-cells: see phy-bindings.txt in the same directory, must be <1>. - -The phandle's argument in the PHY specifier is the USB controller selector for -the USB channel other than r8a77470 SoC; see the selector meanings below: - -+-----------+---------------+---------------+ -|\ Selector | | | -+ --------- + 0 | 1 | -| Channel \| | | -+-----------+---------------+---------------+ -| 0 | PCI EHCI/OHCI | HS-USB | -| 2 | PCI EHCI/OHCI | xHCI | -+-----------+---------------+---------------+ - -For r8a77470 SoC;see the selector meaning below: - -+-----------+---------------+---------------+ -|\ Selector | | | -+ --------- + 0 | 1 | -| Channel \| | | -+-----------+---------------+---------------+ -| 0 | EHCI/OHCI | HS-USB | -+-----------+---------------+---------------+ - -Example (Lager board): - - usb-phy@e6590100 { - compatible = "renesas,usb-phy-r8a7790", "renesas,rcar-gen2-usb-phy"; - reg = <0 0xe6590100 0 0x100>; - #address-cells = <1>; - #size-cells = <0>; - clocks = <&cpg CPG_MOD 704>; - clock-names = "usbhs"; - power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; - resets = <&cpg 704>; - - usb0: usb-channel@0 { - reg = <0>; - #phy-cells = <1>; - }; - usb2: usb-channel@2 { - reg = <2>; - #phy-cells = <1>; - }; - }; - -Example (iWave RZ/G1C sbc): - - usbphy0: usb-phy0@e6590100 { - compatible = "renesas,usb-phy-r8a77470", - "renesas,rcar-gen2-usb-phy"; - reg = <0 0xe6590100 0 0x100>; - #address-cells = <1>; - #size-cells = <0>; - clocks = <&cpg CPG_MOD 704>; - clock-names = "usbhs"; - power-domains = <&sysc R8A77470_PD_ALWAYS_ON>; - resets = <&cpg 704>; - - usb0: usb-channel@0 { - reg = <0>; - #phy-cells = <1>; - }; - }; - - usbphy1: usb-phy@e6598100 { - compatible = "renesas,usb-phy-r8a77470", - "renesas,rcar-gen2-usb-phy"; - reg = <0 0xe6598100 0 0x100>; - #address-cells = <1>; - #size-cells = <0>; - clocks = <&cpg CPG_MOD 706>; - clock-names = "usbhs"; - power-domains = <&sysc R8A77470_PD_ALWAYS_ON>; - resets = <&cpg 706>; - - usb1: usb-channel@0 { - reg = <0>; - #phy-cells = <1>; - }; - }; diff --git a/Documentation/devicetree/bindings/phy/renesas,rcar-gen2-usb-phy.yaml b/Documentation/devicetree/bindings/phy/renesas,rcar-gen2-usb-phy.yaml new file mode 100644 index 0000000000000000..aa2bbc7e35dd4ace --- /dev/null +++ b/Documentation/devicetree/bindings/phy/renesas,rcar-gen2-usb-phy.yaml @@ -0,0 +1,123 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/phy/renesas,rcar-gen2-usb-phy.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Renesas R-Car Gen2 USB PHY + +maintainers: + - Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> + +properties: + compatible: + items: + - enum: + - renesas,usb-phy-r8a7742 # RZ/G1H + - renesas,usb-phy-r8a7743 # RZ/G1M + - renesas,usb-phy-r8a7744 # RZ/G1N + - renesas,usb-phy-r8a7745 # RZ/G1E + - renesas,usb-phy-r8a77470 # RZ/G1C + - renesas,usb-phy-r8a7790 # R-Car H2 + - renesas,usb-phy-r8a7791 # R-Car M2-W + - renesas,usb-phy-r8a7794 # R-Car E2 + - const: renesas,rcar-gen2-usb-phy # R-Car Gen2 or RZ/G1 + + reg: + maxItems: 1 + + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + + clocks: + maxItems: 1 + + clock-names: + items: + - const: usbhs + + power-domains: + maxItems: 1 + + resets: + maxItems: 1 + +patternProperties: + "^usb-channel@[02]$": + type: object + description: Subnode corresponding to a USB channel. + + properties: + reg: + description: FIXME RZ/G1C supports channel 0 only + enum: [0, 2] + + '#phy-cells': + description: | + The phandle's argument in the PHY specifier is the USB controller + selector for the USB channel. + For RZ/G1C: + - 0 for EHCI/OHCI + - 1 for HS-USB + For all other SoCS: + - 0 for PCI EHCI/OHCI + - 1 for HS-USB (channel 0) or xHCI (channel 2) + const: 1 + + required: + - reg + - '#phy-cells' + + additionalProperties: false + +required: + - compatible + - reg + - '#address-cells' + - '#size-cells' + - clocks + - clock-names + - resets + - power-domains + - usb-channel@0 + +if: + properties: + compatible: + contains: + const: renesas,usb-phy-r8a77470 +then: + properties: + usb-channel@2: false +else: + required: + - usb-channel@2 + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/r8a7790-cpg-mssr.h> + #include <dt-bindings/power/r8a7790-sysc.h> + usb-phy@e6590100 { + compatible = "renesas,usb-phy-r8a7790", "renesas,rcar-gen2-usb-phy"; + reg = <0xe6590100 0x100>; + #address-cells = <1>; + #size-cells = <0>; + clocks = <&cpg CPG_MOD 704>; + clock-names = "usbhs"; + power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; + resets = <&cpg 704>; + + usb0: usb-channel@0 { + reg = <0>; + #phy-cells = <1>; + }; + usb2: usb-channel@2 { + reg = <2>; + #phy-cells = <1>; + }; + };
Convert the Renesas R-Car Gen2 USB PHY Device Tree binding documentation to json-schema. Add missing properties. Drop the second example, as it doesn't add any value. Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> --- Validation gives: Documentation/devicetree/bindings/phy/renesas,rcar-gen2-usb-phy.example.dtb: usb -phy@e6590100: '#phy-cells' is a required property From schema: dt-schema/dtschema/schemas/phy/phy-provider.yaml The latter considers '#phy-cells' a required property, as the node name matches "usb-phy". But in this binding the actual PHY providers are the child nodes. Is there a way to fix this? Overriding "#phy-cells" to "false" doesn't work. Should all nodes and child nodes be renamed? The (Linux) driver doesn't care about the names of the children. --- This is the final conversion to json-schema of DT bindings for Renesas ARM SoCs, hurray! Note that there are still a few plain text bindings left for Renesas IP cores that are present on non-Renesas SoCs (nbpfaxi and usdhi6rol0). And H8/300 is being removed. --- .../devicetree/bindings/phy/rcar-gen2-phy.txt | 112 ---------------- .../phy/renesas,rcar-gen2-usb-phy.yaml | 123 ++++++++++++++++++ 2 files changed, 123 insertions(+), 112 deletions(-) delete mode 100644 Documentation/devicetree/bindings/phy/rcar-gen2-phy.txt create mode 100644 Documentation/devicetree/bindings/phy/renesas,rcar-gen2-usb-phy.yaml