diff mbox series

[v2,3/4] dt-bindings: net: qcom,ethqos: Convert bindings to yaml

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

Commit Message

Bhupesh Sharma Sept. 29, 2022, 6:04 a.m. UTC
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

Comments

Krzysztof Kozlowski Sept. 29, 2022, 7:22 a.m. UTC | #1
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
Bhupesh Sharma Sept. 30, 2022, 8:12 a.m. UTC | #2
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
Krzysztof Kozlowski Sept. 30, 2022, 10:26 a.m. UTC | #3
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
Bhupesh Sharma Oct. 1, 2022, 12:51 p.m. UTC | #4
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.
Krzysztof Kozlowski Oct. 2, 2022, 7:54 a.m. UTC | #5
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
Bhupesh Sharma Oct. 3, 2022, 8:29 a.m. UTC | #6
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.
Krzysztof Kozlowski Oct. 3, 2022, 9:32 a.m. UTC | #7
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
Andrew Halaney Feb. 22, 2023, 8:29 p.m. UTC | #8
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
Bhupesh Sharma Feb. 23, 2023, 7:09 p.m. UTC | #9
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 mbox series

Patch

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 = <&ethernet_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>;
+        };
+      };
+    };