Message ID | 20220929060405.2445745-4-bhupesh.sharma@linaro.org (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | dt-bindings: net: Convert qcom,ethqos bindings to YAML (and related fixes) | expand |
On 29/09/2022 08:04, Bhupesh Sharma wrote: > Convert Qualcomm ETHQOS Ethernet devicetree binding to YAML. > > While at it, also add Qualcomm Ethernet ETHQOS compatible checks > in snps,dwmac YAML binding document. There are no checks added to snps,dwmac. > > Cc: Bjorn Andersson <andersson@kernel.org> > Cc: Rob Herring <robh@kernel.org> > Cc: Vinod Koul <vkoul@kernel.org> > Cc: David Miller <davem@davemloft.net> > Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org> > --- > .../devicetree/bindings/net/qcom,ethqos.txt | 66 -------- > .../devicetree/bindings/net/qcom,ethqos.yaml | 145 ++++++++++++++++++ > 2 files changed, 145 insertions(+), 66 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/net/qcom,ethqos.txt > create mode 100644 Documentation/devicetree/bindings/net/qcom,ethqos.yaml > > diff --git a/Documentation/devicetree/bindings/net/qcom,ethqos.txt b/Documentation/devicetree/bindings/net/qcom,ethqos.txt > deleted file mode 100644 > index 1f5746849a71..000000000000 > --- a/Documentation/devicetree/bindings/net/qcom,ethqos.txt > +++ /dev/null > @@ -1,66 +0,0 @@ > -Qualcomm Ethernet ETHQOS device > - > -This documents dwmmac based ethernet device which supports Gigabit > -ethernet for version v2.3.0 onwards. > - > -This device has following properties: > - > -Required properties: > - > -- compatible: Should be one of: > - "qcom,qcs404-ethqos" > - "qcom,sm8150-ethqos" > - > -- reg: Address and length of the register set for the device > - > -- reg-names: Should contain register names "stmmaceth", "rgmii" > - > -- clocks: Should contain phandle to clocks > - > -- clock-names: Should contain clock names "stmmaceth", "pclk", > - "ptp_ref", "rgmii" > - > -- interrupts: Should contain phandle to interrupts > - > -- interrupt-names: Should contain interrupt names "macirq", "eth_lpi" > - > -Rest of the properties are defined in stmmac.txt file in same directory > - > - > -Example: > - > -ethernet: ethernet@7a80000 { > - compatible = "qcom,qcs404-ethqos"; > - reg = <0x07a80000 0x10000>, > - <0x07a96000 0x100>; > - reg-names = "stmmaceth", "rgmii"; > - clock-names = "stmmaceth", "pclk", "ptp_ref", "rgmii"; > - clocks = <&gcc GCC_ETH_AXI_CLK>, > - <&gcc GCC_ETH_SLAVE_AHB_CLK>, > - <&gcc GCC_ETH_PTP_CLK>, > - <&gcc GCC_ETH_RGMII_CLK>; > - interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, > - <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; > - interrupt-names = "macirq", "eth_lpi"; > - snps,reset-gpio = <&tlmm 60 GPIO_ACTIVE_LOW>; > - snps,reset-active-low; > - > - snps,txpbl = <8>; > - snps,rxpbl = <2>; > - snps,aal; > - snps,tso; > - > - phy-handle = <&phy1>; > - phy-mode = "rgmii"; > - > - mdio { > - #address-cells = <0x1>; > - #size-cells = <0x0>; > - compatible = "snps,dwmac-mdio"; > - phy1: phy@4 { > - device_type = "ethernet-phy"; > - reg = <0x4>; > - }; > - }; > - > -}; > diff --git a/Documentation/devicetree/bindings/net/qcom,ethqos.yaml b/Documentation/devicetree/bindings/net/qcom,ethqos.yaml > new file mode 100644 > index 000000000000..d3d8f6799d18 > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/qcom,ethqos.yaml > @@ -0,0 +1,145 @@ > +# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/net/qcom,ethqos.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Qualcomm Ethernet ETHQOS device > + > +maintainers: > + - Bhupesh Sharma <bhupesh.sharma@linaro.org> > + > +description: > + This binding describes the dwmmac based Qualcomm ethernet devices which > + support Gigabit ethernet (version v2.3.0 onwards). > + > + So, this file documents platform glue layer for dwmmac stmmac based Qualcomm > + ethernet devices. > + > +allOf: > + - $ref: snps,dwmac.yaml# > + > +properties: > + compatible: > + enum: > + - qcom,qcs404-ethqos > + - qcom,sm8150-ethqos > + > + reg: > + maxItems: 2 > + > + reg-names: > + items: > + - const: stmmaceth > + - const: rgmii > + > + interrupts: > + items: > + - description: Combined signal for various interrupt events > + - description: The interrupt that occurs when Rx exits the LPI state > + > + interrupt-names: > + items: > + - const: macirq > + - const: eth_lpi > + > + clocks: > + maxItems: 4 > + > + clock-names: > + items: > + - const: stmmaceth > + - const: pclk > + - const: ptp_ref > + - const: rgmii > + > + iommus: > + maxItems: 1 > + > + mdio: > + $ref: mdio.yaml# > + unevaluatedProperties: false > + > + properties: > + compatible: > + const: snps,dwmac-mdio > + > + phy-handle: > + maxItems: 1 > + > + phy-mode: > + maxItems: 1 > + > + snps,reset-gpio: > + maxItems: 1 Why is this one here? It's already in snps,dwmac. Actually this applies to several other properties. You have unevaluatedProperties:false, so you do not have to duplicate snps,dwmac. You only need to constrain it, like we said about interrupts in your previous patch. > + > + power-domains: > + maxItems: 1 > + > + resets: > + maxItems: 1 > + > + rx-fifo-depth: > + $ref: /schemas/types.yaml#/definitions/uint32 > + > + tx-fifo-depth: > + $ref: /schemas/types.yaml#/definitions/uint32 > + > + snps,tso: > + type: boolean > + description: Enables the TSO feature (otherwise managed by MAC HW capability register). You add here several new properties. Mention in commit msg changes from pure conversion with answer to "why". > + > +required: > + - compatible > + - clocks > + - clock-names > + > +unevaluatedProperties: false > + Best regards, Krzysztof
On 9/29/22 12:52 PM, Krzysztof Kozlowski wrote: > On 29/09/2022 08:04, Bhupesh Sharma wrote: >> Convert Qualcomm ETHQOS Ethernet devicetree binding to YAML. >> >> While at it, also add Qualcomm Ethernet ETHQOS compatible checks >> in snps,dwmac YAML binding document. > > There are no checks added to snps,dwmac. Ack. >> >> Cc: Bjorn Andersson <andersson@kernel.org> >> Cc: Rob Herring <robh@kernel.org> >> Cc: Vinod Koul <vkoul@kernel.org> >> Cc: David Miller <davem@davemloft.net> >> Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org> >> --- >> .../devicetree/bindings/net/qcom,ethqos.txt | 66 -------- >> .../devicetree/bindings/net/qcom,ethqos.yaml | 145 ++++++++++++++++++ >> 2 files changed, 145 insertions(+), 66 deletions(-) >> delete mode 100644 Documentation/devicetree/bindings/net/qcom,ethqos.txt >> create mode 100644 Documentation/devicetree/bindings/net/qcom,ethqos.yaml >> >> diff --git a/Documentation/devicetree/bindings/net/qcom,ethqos.txt b/Documentation/devicetree/bindings/net/qcom,ethqos.txt >> deleted file mode 100644 >> index 1f5746849a71..000000000000 >> --- a/Documentation/devicetree/bindings/net/qcom,ethqos.txt >> +++ /dev/null >> @@ -1,66 +0,0 @@ >> -Qualcomm Ethernet ETHQOS device >> - >> -This documents dwmmac based ethernet device which supports Gigabit >> -ethernet for version v2.3.0 onwards. >> - >> -This device has following properties: >> - >> -Required properties: >> - >> -- compatible: Should be one of: >> - "qcom,qcs404-ethqos" >> - "qcom,sm8150-ethqos" >> - >> -- reg: Address and length of the register set for the device >> - >> -- reg-names: Should contain register names "stmmaceth", "rgmii" >> - >> -- clocks: Should contain phandle to clocks >> - >> -- clock-names: Should contain clock names "stmmaceth", "pclk", >> - "ptp_ref", "rgmii" >> - >> -- interrupts: Should contain phandle to interrupts >> - >> -- interrupt-names: Should contain interrupt names "macirq", "eth_lpi" >> - >> -Rest of the properties are defined in stmmac.txt file in same directory >> - >> - >> -Example: >> - >> -ethernet: ethernet@7a80000 { >> - compatible = "qcom,qcs404-ethqos"; >> - reg = <0x07a80000 0x10000>, >> - <0x07a96000 0x100>; >> - reg-names = "stmmaceth", "rgmii"; >> - clock-names = "stmmaceth", "pclk", "ptp_ref", "rgmii"; >> - clocks = <&gcc GCC_ETH_AXI_CLK>, >> - <&gcc GCC_ETH_SLAVE_AHB_CLK>, >> - <&gcc GCC_ETH_PTP_CLK>, >> - <&gcc GCC_ETH_RGMII_CLK>; >> - interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, >> - <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; >> - interrupt-names = "macirq", "eth_lpi"; >> - snps,reset-gpio = <&tlmm 60 GPIO_ACTIVE_LOW>; >> - snps,reset-active-low; >> - >> - snps,txpbl = <8>; >> - snps,rxpbl = <2>; >> - snps,aal; >> - snps,tso; >> - >> - phy-handle = <&phy1>; >> - phy-mode = "rgmii"; >> - >> - mdio { >> - #address-cells = <0x1>; >> - #size-cells = <0x0>; >> - compatible = "snps,dwmac-mdio"; >> - phy1: phy@4 { >> - device_type = "ethernet-phy"; >> - reg = <0x4>; >> - }; >> - }; >> - >> -}; >> diff --git a/Documentation/devicetree/bindings/net/qcom,ethqos.yaml b/Documentation/devicetree/bindings/net/qcom,ethqos.yaml >> new file mode 100644 >> index 000000000000..d3d8f6799d18 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/net/qcom,ethqos.yaml >> @@ -0,0 +1,145 @@ >> +# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/net/qcom,ethqos.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Qualcomm Ethernet ETHQOS device >> + >> +maintainers: >> + - Bhupesh Sharma <bhupesh.sharma@linaro.org> >> + >> +description: >> + This binding describes the dwmmac based Qualcomm ethernet devices which >> + support Gigabit ethernet (version v2.3.0 onwards). >> + >> + So, this file documents platform glue layer for dwmmac stmmac based Qualcomm >> + ethernet devices. >> + >> +allOf: >> + - $ref: snps,dwmac.yaml# >> + >> +properties: >> + compatible: >> + enum: >> + - qcom,qcs404-ethqos >> + - qcom,sm8150-ethqos >> + >> + reg: >> + maxItems: 2 >> + >> + reg-names: >> + items: >> + - const: stmmaceth >> + - const: rgmii >> + >> + interrupts: >> + items: >> + - description: Combined signal for various interrupt events >> + - description: The interrupt that occurs when Rx exits the LPI state >> + >> + interrupt-names: >> + items: >> + - const: macirq >> + - const: eth_lpi >> + >> + clocks: >> + maxItems: 4 >> + >> + clock-names: >> + items: >> + - const: stmmaceth >> + - const: pclk >> + - const: ptp_ref >> + - const: rgmii >> + >> + iommus: >> + maxItems: 1 >> + >> + mdio: >> + $ref: mdio.yaml# >> + unevaluatedProperties: false >> + >> + properties: >> + compatible: >> + const: snps,dwmac-mdio >> + >> + phy-handle: >> + maxItems: 1 >> + >> + phy-mode: >> + maxItems: 1 >> + >> + snps,reset-gpio: >> + maxItems: 1 > > Why is this one here? It's already in snps,dwmac. > > Actually this applies to several other properties. You have > unevaluatedProperties:false, so you do not have to duplicate snps,dwmac. > You only need to constrain it, like we said about interrupts in your > previous patch. I was actually getting errors like the following without the same: arm64/boot/dts/qcom/qcs404-evb-1000.dtb: ethernet@7a80000: Unevaluated properties are not allowed ('snps,tso' was unexpected) From schema: Documentation/devicetree/bindings/net/qcom,ethqos.yaml So, its not clear to me that even though 'snps,dwmac.yaml' is referenced here, the property appears as unevaluated. >> + >> + power-domains: >> + maxItems: 1 >> + >> + resets: >> + maxItems: 1 >> + >> + rx-fifo-depth: >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + >> + tx-fifo-depth: >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + >> + snps,tso: >> + type: boolean >> + description: Enables the TSO feature (otherwise managed by MAC HW capability register). > > You add here several new properties. Mention in commit msg changes from > pure conversion with answer to "why". Right, most of them are to avoid the make dtbs_check errors / warnings like the one mentioned above. I will add a comment in the commit log regarding the same. Thanks, Bhupesh
On 30/09/2022 10:12, Bhupesh Sharma wrote: >>> + snps,reset-gpio: >>> + maxItems: 1 >> >> Why is this one here? It's already in snps,dwmac. >> >> Actually this applies to several other properties. You have >> unevaluatedProperties:false, so you do not have to duplicate snps,dwmac. >> You only need to constrain it, like we said about interrupts in your >> previous patch. > > I was actually getting errors like the following without the same: > > arm64/boot/dts/qcom/qcs404-evb-1000.dtb: ethernet@7a80000: Unevaluated > properties are not allowed ('snps,tso' was unexpected) > From schema: Documentation/devicetree/bindings/net/qcom,ethqos.yaml > > So, its not clear to me that even though 'snps,dwmac.yaml' is referenced > here, the property appears as unevaluated. Because snps,tso is not allowed, but the rest is. > >>> + >>> + power-domains: >>> + maxItems: 1 >>> + >>> + resets: >>> + maxItems: 1 >>> + >>> + rx-fifo-depth: >>> + $ref: /schemas/types.yaml#/definitions/uint32 >>> + >>> + tx-fifo-depth: >>> + $ref: /schemas/types.yaml#/definitions/uint32 >>> + >>> + snps,tso: >>> + type: boolean >>> + description: Enables the TSO feature (otherwise managed by MAC HW capability register). >> >> You add here several new properties. Mention in commit msg changes from >> pure conversion with answer to "why". > > Right, most of them are to avoid the make dtbs_check errors / warnings > like the one mentioned above. All of them should not be here. Best regards, Krzysztof
On 9/30/22 3:56 PM, Krzysztof Kozlowski wrote: > On 30/09/2022 10:12, Bhupesh Sharma wrote: >>>> + snps,reset-gpio: >>>> + maxItems: 1 >>> >>> Why is this one here? It's already in snps,dwmac. >>> >>> Actually this applies to several other properties. You have >>> unevaluatedProperties:false, so you do not have to duplicate snps,dwmac. >>> You only need to constrain it, like we said about interrupts in your >>> previous patch. >> >> I was actually getting errors like the following without the same: >> >> arm64/boot/dts/qcom/qcs404-evb-1000.dtb: ethernet@7a80000: Unevaluated >> properties are not allowed ('snps,tso' was unexpected) >> From schema: Documentation/devicetree/bindings/net/qcom,ethqos.yaml >> >> So, its not clear to me that even though 'snps,dwmac.yaml' is referenced >> here, the property appears as unevaluated. > > Because snps,tso is not allowed, but the rest is. > >> >>>> + >>>> + power-domains: >>>> + maxItems: 1 >>>> + >>>> + resets: >>>> + maxItems: 1 >>>> + >>>> + rx-fifo-depth: >>>> + $ref: /schemas/types.yaml#/definitions/uint32 >>>> + >>>> + tx-fifo-depth: >>>> + $ref: /schemas/types.yaml#/definitions/uint32 >>>> + >>>> + snps,tso: >>>> + type: boolean >>>> + description: Enables the TSO feature (otherwise managed by MAC HW capability register). >>> >>> You add here several new properties. Mention in commit msg changes from >>> pure conversion with answer to "why". >> >> Right, most of them are to avoid the make dtbs_check errors / warnings >> like the one mentioned above. > > All of them should not be here. I guess only 'snps,reset-gpio' need not be replicated here, as for others I still see 'dtbs_check' error, if they are not replicated here: arch/arm64/boot/dts/qcom/sm8150-hdk.dtb: ethernet@20000: Unevaluated properties are not allowed ('power-domains', 'resets', 'rx-fifo-depth', 'tx-fifo-depth' were unexpected) From schema: /Documentation/devicetree/bindings/net/qcom,ethqos.yaml Am I missing something here? Thanks.
On 01/10/2022 14:51, Bhupesh Sharma wrote: >>> Right, most of them are to avoid the make dtbs_check errors / warnings >>> like the one mentioned above. >> >> All of them should not be here. > > I guess only 'snps,reset-gpio' need not be replicated here, as for > others I still see 'dtbs_check' error, if they are not replicated here: > > > arch/arm64/boot/dts/qcom/sm8150-hdk.dtb: ethernet@20000: Unevaluated > properties are not allowed ('power-domains', 'resets', 'rx-fifo-depth', > 'tx-fifo-depth' were unexpected) > From schema: /Documentation/devicetree/bindings/net/qcom,ethqos.yaml > > Am I missing something here? Probably the snps,dwmac schema failed. It is then considered unevaluated, so such properties are unknown for qcom,ethqos schema. Run check with snps,dwmac and fix all errors first. Best regards, Krzysztof
On Sun, 2 Oct 2022 at 13:24, Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote: > > On 01/10/2022 14:51, Bhupesh Sharma wrote: > >>> Right, most of them are to avoid the make dtbs_check errors / warnings > >>> like the one mentioned above. > >> > >> All of them should not be here. > > > > I guess only 'snps,reset-gpio' need not be replicated here, as for > > others I still see 'dtbs_check' error, if they are not replicated here: > > > > > > arch/arm64/boot/dts/qcom/sm8150-hdk.dtb: ethernet@20000: Unevaluated > > properties are not allowed ('power-domains', 'resets', 'rx-fifo-depth', > > 'tx-fifo-depth' were unexpected) > > From schema: /Documentation/devicetree/bindings/net/qcom,ethqos.yaml > > > > Am I missing something here? > > Probably the snps,dwmac schema failed. It is then considered > unevaluated, so such properties are unknown for qcom,ethqos schema. Run > check with snps,dwmac and fix all errors first. Running dt_binding_check DT_SCHEMA_FILES=net/snps,dwmac.yaml reports no error currently. Thanks.
On 03/10/2022 10:29, Bhupesh Sharma wrote: > On Sun, 2 Oct 2022 at 13:24, Krzysztof Kozlowski > <krzysztof.kozlowski@linaro.org> wrote: >> >> On 01/10/2022 14:51, Bhupesh Sharma wrote: >>>>> Right, most of them are to avoid the make dtbs_check errors / warnings >>>>> like the one mentioned above. >>>> >>>> All of them should not be here. >>> >>> I guess only 'snps,reset-gpio' need not be replicated here, as for >>> others I still see 'dtbs_check' error, if they are not replicated here: >>> >>> >>> arch/arm64/boot/dts/qcom/sm8150-hdk.dtb: ethernet@20000: Unevaluated >>> properties are not allowed ('power-domains', 'resets', 'rx-fifo-depth', >>> 'tx-fifo-depth' were unexpected) >>> From schema: /Documentation/devicetree/bindings/net/qcom,ethqos.yaml >>> >>> Am I missing something here? >> >> Probably the snps,dwmac schema failed. It is then considered >> unevaluated, so such properties are unknown for qcom,ethqos schema. Run >> check with snps,dwmac and fix all errors first. > > Running dt_binding_check DT_SCHEMA_FILES=net/snps,dwmac.yaml > reports no error currently. Then it's something in your commits. I don't know what you wrote, as you did not sent a commit. I cannot reproduce your errors after removing unneeded power-domains. Just to clarify - I am testing only the dt_binding_check (so only the examples - I assume they are meaningful). Best regards, Krzysztof
On Mon, Oct 03, 2022 at 11:32:58AM +0200, Krzysztof Kozlowski wrote: > On 03/10/2022 10:29, Bhupesh Sharma wrote: > > On Sun, 2 Oct 2022 at 13:24, Krzysztof Kozlowski > > <krzysztof.kozlowski@linaro.org> wrote: > >> > >> On 01/10/2022 14:51, Bhupesh Sharma wrote: > >>>>> Right, most of them are to avoid the make dtbs_check errors / warnings > >>>>> like the one mentioned above. > >>>> > >>>> All of them should not be here. > >>> > >>> I guess only 'snps,reset-gpio' need not be replicated here, as for > >>> others I still see 'dtbs_check' error, if they are not replicated here: > >>> > >>> > >>> arch/arm64/boot/dts/qcom/sm8150-hdk.dtb: ethernet@20000: Unevaluated > >>> properties are not allowed ('power-domains', 'resets', 'rx-fifo-depth', > >>> 'tx-fifo-depth' were unexpected) > >>> From schema: /Documentation/devicetree/bindings/net/qcom,ethqos.yaml > >>> > >>> Am I missing something here? > >> > >> Probably the snps,dwmac schema failed. It is then considered > >> unevaluated, so such properties are unknown for qcom,ethqos schema. Run > >> check with snps,dwmac and fix all errors first. > > > > Running dt_binding_check DT_SCHEMA_FILES=net/snps,dwmac.yaml > > reports no error currently. > > Then it's something in your commits. I don't know what you wrote, as you > did not sent a commit. I cannot reproduce your errors after removing > unneeded power-domains. > > Just to clarify - I am testing only the dt_binding_check (so only the > examples - I assume they are meaningful). Just a little note before I forget.. I picked this up yesterday (in prep for adding sa8540p support here), and noticed the same thing as Bhupesh when validating dtbs with the requested changes (not duplicating snsp,dwmac.yaml). I ended up tracking it down to a (fixed) bug in dtschema: https://github.com/devicetree-org/dt-schema/commit/e503ec1115345bdfa06b96c9d6c4496457cbd75b And a little test output showing before and after (fix is in the 2022.12 release): (dtschema-2022.11) ahalaney@halaney-x13s ~/git/redhat/stmmac (git)-[stmmac] % make CHECK_DTBS=y DT_SCHEMA_FILES=/net/qcom,ethqos.yaml qcom/sm8150-hdk.dtb LINT Documentation/devicetree/bindings CHKDT Documentation/devicetree/bindings/processed-schema.json SCHEMA Documentation/devicetree/bindings/processed-schema.json DTC_CHK arch/arm64/boot/dts/qcom/sm8150-hdk.dtb /home/ahalaney/git/redhat/stmmac/arch/arm64/boot/dts/qcom/sm8150-hdk.dtb: ethernet@20000: Unevaluated properties are not allowed ('power-domains', 'resets', 'rx-fifo-depth', 'snps,tso', 'tx-fifo-depth' were unexpected) From schema: /home/ahalaney/git/redhat/stmmac/Documentation/devicetree/bindings/net/qcom,ethqos.yaml (dtschema-2022.11) ahalaney@halaney-x13s ~/git/redhat/stmmac (git)-[stmmac] % pip3 list | grep dtschema dtschema 2022.11 (dtschema-2022.11) ahalaney@halaney-x13s ~/git/redhat/stmmac (git)-[stmmac] % dtschema) ahalaney@halaney-x13s ~/git/redhat/stmmac (git)-[stmmac] % pip3 list | grep dtschema dtschema 2023.1 (dtschema) ahalaney@halaney-x13s ~/git/redhat/stmmac (git)-[stmmac] % make CHECK_DTBS=y DT_SCHEMA_FILES=/net/qcom,ethqos.yaml qcom/sm8150-hdk.dtb LINT Documentation/devicetree/bindings CHKDT Documentation/devicetree/bindings/processed-schema.json SCHEMA Documentation/devicetree/bindings/processed-schema.json DTC_CHK arch/arm64/boot/dts/qcom/sm8150-hdk.dtb (dtschema) ahalaney@halaney-x13s ~/git/redhat/stmmac (git)-[stmmac] % I'll go ahead and make the adjustments and pull this series into mine adding sa8540p support, thanks for starting it! - Andrew
On Thu, 23 Feb 2023 at 01:59, Andrew Halaney <ahalaney@redhat.com> wrote: > > On Mon, Oct 03, 2022 at 11:32:58AM +0200, Krzysztof Kozlowski wrote: > > On 03/10/2022 10:29, Bhupesh Sharma wrote: > > > On Sun, 2 Oct 2022 at 13:24, Krzysztof Kozlowski > > > <krzysztof.kozlowski@linaro.org> wrote: > > >> > > >> On 01/10/2022 14:51, Bhupesh Sharma wrote: > > >>>>> Right, most of them are to avoid the make dtbs_check errors / warnings > > >>>>> like the one mentioned above. > > >>>> > > >>>> All of them should not be here. > > >>> > > >>> I guess only 'snps,reset-gpio' need not be replicated here, as for > > >>> others I still see 'dtbs_check' error, if they are not replicated here: > > >>> > > >>> > > >>> arch/arm64/boot/dts/qcom/sm8150-hdk.dtb: ethernet@20000: Unevaluated > > >>> properties are not allowed ('power-domains', 'resets', 'rx-fifo-depth', > > >>> 'tx-fifo-depth' were unexpected) > > >>> From schema: /Documentation/devicetree/bindings/net/qcom,ethqos.yaml > > >>> > > >>> Am I missing something here? > > >> > > >> Probably the snps,dwmac schema failed. It is then considered > > >> unevaluated, so such properties are unknown for qcom,ethqos schema. Run > > >> check with snps,dwmac and fix all errors first. > > > > > > Running dt_binding_check DT_SCHEMA_FILES=net/snps,dwmac.yaml > > > reports no error currently. > > > > Then it's something in your commits. I don't know what you wrote, as you > > did not sent a commit. I cannot reproduce your errors after removing > > unneeded power-domains. > > > > Just to clarify - I am testing only the dt_binding_check (so only the > > examples - I assume they are meaningful). > > Just a little note before I forget.. > > I picked this up yesterday (in prep for adding sa8540p support here), > and noticed the same thing as Bhupesh when validating dtbs with > the requested changes (not duplicating snsp,dwmac.yaml). I ended up > tracking it down to a (fixed) bug in dtschema: > > https://github.com/devicetree-org/dt-schema/commit/e503ec1115345bdfa06b96c9d6c4496457cbd75b > > And a little test output showing before and after (fix is in the 2022.12 > release): > > (dtschema-2022.11) ahalaney@halaney-x13s ~/git/redhat/stmmac (git)-[stmmac] % make CHECK_DTBS=y DT_SCHEMA_FILES=/net/qcom,ethqos.yaml qcom/sm8150-hdk.dtb > LINT Documentation/devicetree/bindings > CHKDT Documentation/devicetree/bindings/processed-schema.json > SCHEMA Documentation/devicetree/bindings/processed-schema.json > DTC_CHK arch/arm64/boot/dts/qcom/sm8150-hdk.dtb > /home/ahalaney/git/redhat/stmmac/arch/arm64/boot/dts/qcom/sm8150-hdk.dtb: ethernet@20000: Unevaluated properties are not allowed ('power-domains', 'resets', 'rx-fifo-depth', 'snps,tso', 'tx-fifo-depth' were unexpected) > From schema: /home/ahalaney/git/redhat/stmmac/Documentation/devicetree/bindings/net/qcom,ethqos.yaml > (dtschema-2022.11) ahalaney@halaney-x13s ~/git/redhat/stmmac (git)-[stmmac] % pip3 list | grep dtschema > dtschema 2022.11 > (dtschema-2022.11) ahalaney@halaney-x13s ~/git/redhat/stmmac (git)-[stmmac] % > > dtschema) ahalaney@halaney-x13s ~/git/redhat/stmmac (git)-[stmmac] % pip3 list | grep dtschema > dtschema 2023.1 > (dtschema) ahalaney@halaney-x13s ~/git/redhat/stmmac (git)-[stmmac] % make CHECK_DTBS=y DT_SCHEMA_FILES=/net/qcom,ethqos.yaml qcom/sm8150-hdk.dtb > LINT Documentation/devicetree/bindings > CHKDT Documentation/devicetree/bindings/processed-schema.json > SCHEMA Documentation/devicetree/bindings/processed-schema.json > DTC_CHK arch/arm64/boot/dts/qcom/sm8150-hdk.dtb > (dtschema) ahalaney@halaney-x13s ~/git/redhat/stmmac (git)-[stmmac] % > > > I'll go ahead and make the adjustments and pull this series into mine > adding sa8540p support, thanks for starting it! Thanks Andrew. Please feel free to add it to your series. Regards, Bhupesh
diff --git a/Documentation/devicetree/bindings/net/qcom,ethqos.txt b/Documentation/devicetree/bindings/net/qcom,ethqos.txt deleted file mode 100644 index 1f5746849a71..000000000000 --- a/Documentation/devicetree/bindings/net/qcom,ethqos.txt +++ /dev/null @@ -1,66 +0,0 @@ -Qualcomm Ethernet ETHQOS device - -This documents dwmmac based ethernet device which supports Gigabit -ethernet for version v2.3.0 onwards. - -This device has following properties: - -Required properties: - -- compatible: Should be one of: - "qcom,qcs404-ethqos" - "qcom,sm8150-ethqos" - -- reg: Address and length of the register set for the device - -- reg-names: Should contain register names "stmmaceth", "rgmii" - -- clocks: Should contain phandle to clocks - -- clock-names: Should contain clock names "stmmaceth", "pclk", - "ptp_ref", "rgmii" - -- interrupts: Should contain phandle to interrupts - -- interrupt-names: Should contain interrupt names "macirq", "eth_lpi" - -Rest of the properties are defined in stmmac.txt file in same directory - - -Example: - -ethernet: ethernet@7a80000 { - compatible = "qcom,qcs404-ethqos"; - reg = <0x07a80000 0x10000>, - <0x07a96000 0x100>; - reg-names = "stmmaceth", "rgmii"; - clock-names = "stmmaceth", "pclk", "ptp_ref", "rgmii"; - clocks = <&gcc GCC_ETH_AXI_CLK>, - <&gcc GCC_ETH_SLAVE_AHB_CLK>, - <&gcc GCC_ETH_PTP_CLK>, - <&gcc GCC_ETH_RGMII_CLK>; - interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, - <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; - interrupt-names = "macirq", "eth_lpi"; - snps,reset-gpio = <&tlmm 60 GPIO_ACTIVE_LOW>; - snps,reset-active-low; - - snps,txpbl = <8>; - snps,rxpbl = <2>; - snps,aal; - snps,tso; - - phy-handle = <&phy1>; - phy-mode = "rgmii"; - - mdio { - #address-cells = <0x1>; - #size-cells = <0x0>; - compatible = "snps,dwmac-mdio"; - phy1: phy@4 { - device_type = "ethernet-phy"; - reg = <0x4>; - }; - }; - -}; diff --git a/Documentation/devicetree/bindings/net/qcom,ethqos.yaml b/Documentation/devicetree/bindings/net/qcom,ethqos.yaml new file mode 100644 index 000000000000..d3d8f6799d18 --- /dev/null +++ b/Documentation/devicetree/bindings/net/qcom,ethqos.yaml @@ -0,0 +1,145 @@ +# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/net/qcom,ethqos.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm Ethernet ETHQOS device + +maintainers: + - Bhupesh Sharma <bhupesh.sharma@linaro.org> + +description: + This binding describes the dwmmac based Qualcomm ethernet devices which + support Gigabit ethernet (version v2.3.0 onwards). + + So, this file documents platform glue layer for dwmmac stmmac based Qualcomm + ethernet devices. + +allOf: + - $ref: snps,dwmac.yaml# + +properties: + compatible: + enum: + - qcom,qcs404-ethqos + - qcom,sm8150-ethqos + + reg: + maxItems: 2 + + reg-names: + items: + - const: stmmaceth + - const: rgmii + + interrupts: + items: + - description: Combined signal for various interrupt events + - description: The interrupt that occurs when Rx exits the LPI state + + interrupt-names: + items: + - const: macirq + - const: eth_lpi + + clocks: + maxItems: 4 + + clock-names: + items: + - const: stmmaceth + - const: pclk + - const: ptp_ref + - const: rgmii + + iommus: + maxItems: 1 + + mdio: + $ref: mdio.yaml# + unevaluatedProperties: false + + properties: + compatible: + const: snps,dwmac-mdio + + phy-handle: + maxItems: 1 + + phy-mode: + maxItems: 1 + + snps,reset-gpio: + maxItems: 1 + + power-domains: + maxItems: 1 + + resets: + maxItems: 1 + + rx-fifo-depth: + $ref: /schemas/types.yaml#/definitions/uint32 + + tx-fifo-depth: + $ref: /schemas/types.yaml#/definitions/uint32 + + snps,tso: + type: boolean + description: Enables the TSO feature (otherwise managed by MAC HW capability register). + +required: + - compatible + - clocks + - clock-names + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/interrupt-controller/arm-gic.h> + #include <dt-bindings/clock/qcom,gcc-qcs404.h> + #include <dt-bindings/gpio/gpio.h> + + ethernet: ethernet@7a80000 { + compatible = "qcom,qcs404-ethqos"; + reg = <0x07a80000 0x10000>, + <0x07a96000 0x100>; + reg-names = "stmmaceth", "rgmii"; + clock-names = "stmmaceth", "pclk", "ptp_ref", "rgmii"; + clocks = <&gcc GCC_ETH_AXI_CLK>, + <&gcc GCC_ETH_SLAVE_AHB_CLK>, + <&gcc GCC_ETH_PTP_CLK>, + <&gcc GCC_ETH_RGMII_CLK>; + interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "macirq", "eth_lpi"; + + rx-fifo-depth = <4096>; + tx-fifo-depth = <4096>; + + snps,tso; + snps,reset-gpio = <&tlmm 60 GPIO_ACTIVE_LOW>; + snps,reset-active-low; + snps,reset-delays-us = <0 10000 10000>; + + pinctrl-names = "default"; + pinctrl-0 = <ðernet_defaults>; + + phy-handle = <&phy1>; + phy-mode = "rgmii"; + mdio { + #address-cells = <0x1>; + #size-cells = <0x0>; + + compatible = "snps,dwmac-mdio"; + phy1: phy@4 { + compatible = "ethernet-phy-ieee802.3-c22"; + device_type = "ethernet-phy"; + reg = <0x4>; + + #phy-cells = <0>; + }; + }; + };
Convert Qualcomm ETHQOS Ethernet devicetree binding to YAML. While at it, also add Qualcomm Ethernet ETHQOS compatible checks in snps,dwmac YAML binding document. Cc: Bjorn Andersson <andersson@kernel.org> Cc: Rob Herring <robh@kernel.org> Cc: Vinod Koul <vkoul@kernel.org> Cc: David Miller <davem@davemloft.net> Signed-off-by: Bhupesh Sharma <bhupesh.sharma@linaro.org> --- .../devicetree/bindings/net/qcom,ethqos.txt | 66 -------- .../devicetree/bindings/net/qcom,ethqos.yaml | 145 ++++++++++++++++++ 2 files changed, 145 insertions(+), 66 deletions(-) delete mode 100644 Documentation/devicetree/bindings/net/qcom,ethqos.txt create mode 100644 Documentation/devicetree/bindings/net/qcom,ethqos.yaml