[PATCH v2 0/4] dt-bindings: net: Convert qcom,ethqos bindings to YAML (and related fixes)

STALE1307d

Revision v2 of 2 in this series.

18 messages, 3 authors, 2023-02-23 · open the first message on its own page

[PATCH v2 0/4] dt-bindings: net: Convert qcom,ethqos bindings to YAML (and related fixes)

From: Bhupesh Sharma <hidden>
Date: 2022-09-29 06:04:55

Changes since v1:
------------------
- v1 can be viewed here: https://lore.kernel.org/lkml/20220907204924.2040384-3-bhupesh.sharma@linaro.org/
- Addressed review comments from Krzysztof:
  ~ Updated MAINTAINERS file to point to yaml version of 'qcom,ethqos' dt-bindings.
  ~ Fix yaml bindings related review comments.

This patchset converts the qcom,ethqos bindings to YAML. It also
contains a few related fixes in the snps,dwmac bindings to support
Qualcomm ethqos ethernet controller for qcs404 (based) and sa8155p-adp
boards.

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 <redacted>

Bhupesh Sharma (4):
  dt-bindings: net: snps,dwmac: Update interrupt-names
  dt-bindings: net: snps,dwmac: Add Qualcomm Ethernet ETHQOS compatibles
  dt-bindings: net: qcom,ethqos: Convert bindings to yaml
  MAINTAINERS: Point to the yaml version of 'qcom,ethqos' dt-bindings

 .../devicetree/bindings/net/qcom,ethqos.txt   |  66 --------
 .../devicetree/bindings/net/qcom,ethqos.yaml  | 145 ++++++++++++++++++
 .../devicetree/bindings/net/snps,dwmac.yaml   |   8 +-
 MAINTAINERS                                   |   2 +-
 4 files changed, 152 insertions(+), 69 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/net/qcom,ethqos.txt
 create mode 100644 Documentation/devicetree/bindings/net/qcom,ethqos.yaml

-- 
2.37.1

[PATCH v2 1/4] dt-bindings: net: snps,dwmac: Update interrupt-names

From: Bhupesh Sharma <hidden>
Date: 2022-09-29 06:05:04

As commit fc191af1bb0d ("net: stmmac: platform: Fix misleading
interrupt error msg") noted, not every stmmac based platform
makes use of the 'eth_wake_irq' or 'eth_lpi' interrupts.

So, update the 'interrupt-names' inside 'snps,dwmac' YAML
bindings to reflect the same.

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 <redacted>
---
 Documentation/devicetree/bindings/net/snps,dwmac.yaml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
index 2d4e7c7c230a..37f2ed3194de 100644
--- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml
+++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
@@ -105,8 +105,8 @@ properties:
     minItems: 1
     items:
       - const: macirq
-      - const: eth_wake_irq
-      - const: eth_lpi
+      - enum: [eth_wake_irq, eth_lpi]
+      - enum: [eth_wake_irq, eth_lpi]
 
   clocks:
     minItems: 1
-- 
2.37.1

[PATCH v2 2/4] dt-bindings: net: snps,dwmac: Add Qualcomm Ethernet ETHQOS compatibles

From: Bhupesh Sharma <hidden>
Date: 2022-09-29 06:05:09

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 <redacted>
---
 Documentation/devicetree/bindings/net/snps,dwmac.yaml | 4 ++++
 1 file changed, 4 insertions(+)
diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
index 37f2ed3194de..35ce351a3d0c 100644
--- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml
+++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
@@ -65,6 +65,8 @@ properties:
         - ingenic,x2000-mac
         - loongson,ls2k-dwmac
         - loongson,ls7a-dwmac
+        - qcom,qcs404-ethqos
+        - qcom,sm8150-ethqos
         - renesas,r9a06g032-gmac
         - renesas,rzn1-gmac
         - rockchip,px30-gmac
@@ -384,6 +386,8 @@ allOf:
               - ingenic,x1600-mac
               - ingenic,x1830-mac
               - ingenic,x2000-mac
+              - qcom,qcs404-ethqos
+              - qcom,sm8150-ethqos
               - snps,dwmac-4.00
               - snps,dwmac-4.10a
               - snps,dwmac-4.20a
-- 
2.37.1

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

From: Bhupesh Sharma <hidden>
Date: 2022-09-29 06:05:30

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 <redacted>
---
 .../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
+
+  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>;
+        };
+      };
+    };
-- 
2.37.1

[PATCH v2 4/4] MAINTAINERS: Point to the yaml version of 'qcom,ethqos' dt-bindings

From: Bhupesh Sharma <hidden>
Date: 2022-09-29 06:05:44

Update the MAINTAINERS file to point to the yaml version of
'qcom,ethqos' dt-bindings.

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 <redacted>
---
 MAINTAINERS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index 3f7082a08ac4..b9860fd758c0 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -17011,7 +17011,7 @@ M:	Vinod Koul <vkoul@kernel.org>
 R:	Bhupesh Sharma <bhupesh.sharma@linaro.org>
 L:	netdev@vger.kernel.org
 S:	Maintained
-F:	Documentation/devicetree/bindings/net/qcom,ethqos.txt
+F:	Documentation/devicetree/bindings/net/qcom,ethqos.yaml
 F:	drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
 
 QUALCOMM FASTRPC DRIVER
-- 
2.37.1

Re: [PATCH v2 1/4] dt-bindings: net: snps,dwmac: Update interrupt-names

From: Krzysztof Kozlowski <hidden>
Date: 2022-09-29 07:17:21

On 29/09/2022 08:04, Bhupesh Sharma wrote:
As commit fc191af1bb0d ("net: stmmac: platform: Fix misleading
interrupt error msg") noted, not every stmmac based platform
makes use of the 'eth_wake_irq' or 'eth_lpi' interrupts.

So, update the 'interrupt-names' inside 'snps,dwmac' YAML

Acked-by: Krzysztof Kozlowski <redacted>

Best regards,
Krzysztof

Re: [PATCH v2 2/4] dt-bindings: net: snps,dwmac: Add Qualcomm Ethernet ETHQOS compatibles

From: Krzysztof Kozlowski <hidden>
Date: 2022-09-29 07:17:54

On 29/09/2022 08:04, Bhupesh Sharma wrote:
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 <redacted>
---

Reviewed-by: Krzysztof Kozlowski <redacted>

Best regards,
Krzysztof

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

From: Krzysztof Kozlowski <hidden>
Date: 2022-09-29 07:23:06

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.
quoted hunk
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 <redacted>
---
 .../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

Re: [PATCH v2 4/4] MAINTAINERS: Point to the yaml version of 'qcom,ethqos' dt-bindings

From: Krzysztof Kozlowski <hidden>
Date: 2022-09-29 07:24:29

On 29/09/2022 08:04, Bhupesh Sharma wrote:
Update the MAINTAINERS file to point to the yaml version of
'qcom,ethqos' dt-bindings.

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 <redacted>
This cannot be a separate patch - it's not bisectable.

Best regards,
Krzysztof

Re: [PATCH v2 4/4] MAINTAINERS: Point to the yaml version of 'qcom,ethqos' dt-bindings

From: Bhupesh Sharma <hidden>
Date: 2022-09-30 06:01:43

On 9/29/22 12:53 PM, Krzysztof Kozlowski wrote:
On 29/09/2022 08:04, Bhupesh Sharma wrote:
quoted
Update the MAINTAINERS file to point to the yaml version of
'qcom,ethqos' dt-bindings.

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 <redacted>
This cannot be a separate patch - it's not bisectable.
Ok, let me merge this with [PATCH 3/4] then.

Thanks.

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

From: Bhupesh Sharma <hidden>
Date: 2022-09-30 08:12:29

On 9/29/22 12:52 PM, Krzysztof Kozlowski wrote:
On 29/09/2022 08:04, Bhupesh Sharma wrote:
quoted
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.
quoted
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 <redacted>
---
  .../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.
quoted
+
+  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

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

From: Krzysztof Kozlowski <hidden>
Date: 2022-09-30 11:16:30

On 30/09/2022 10:12, Bhupesh Sharma wrote:
quoted
quoted
+  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.
quoted
quoted
+
+  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

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

From: Bhupesh Sharma <hidden>
Date: 2022-10-01 12:51:35

On 9/30/22 3:56 PM, Krzysztof Kozlowski wrote:
On 30/09/2022 10:12, Bhupesh Sharma wrote:
quoted
quoted
quoted
+  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.
quoted
quoted
quoted
+
+  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.

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

From: Krzysztof Kozlowski <hidden>
Date: 2022-10-02 07:54:29

On 01/10/2022 14:51, Bhupesh Sharma wrote:
quoted
quoted
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

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

From: Bhupesh Sharma <hidden>
Date: 2022-10-03 08:49:21

On Sun, 2 Oct 2022 at 13:24, Krzysztof Kozlowski
[off-list ref] wrote:
On 01/10/2022 14:51, Bhupesh Sharma wrote:
quoted
quoted
quoted
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.

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

From: Krzysztof Kozlowski <hidden>
Date: 2022-10-03 09:44:01

On 03/10/2022 10:29, Bhupesh Sharma wrote:
On Sun, 2 Oct 2022 at 13:24, Krzysztof Kozlowski
[off-list ref] wrote:
quoted
On 01/10/2022 14:51, Bhupesh Sharma wrote:
quoted
quoted
quoted
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

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

From: Andrew Halaney <hidden>
Date: 2023-02-22 20:29:58

On Mon, Oct 03, 2022 at 11:32:58AM +0200, Krzysztof Kozlowski wrote:
On 03/10/2022 10:29, Bhupesh Sharma wrote:
quoted
On Sun, 2 Oct 2022 at 13:24, Krzysztof Kozlowski
[off-list ref] wrote:
quoted
On 01/10/2022 14:51, Bhupesh Sharma wrote:
quoted
quoted
quoted
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

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

From: Bhupesh Sharma <hidden>
Date: 2023-02-23 19:09:44

On Thu, 23 Feb 2023 at 01:59, Andrew Halaney [off-list ref] wrote:
On Mon, Oct 03, 2022 at 11:32:58AM +0200, Krzysztof Kozlowski wrote:
quoted
On 03/10/2022 10:29, Bhupesh Sharma wrote:
quoted
On Sun, 2 Oct 2022 at 13:24, Krzysztof Kozlowski
[off-list ref] wrote:
quoted
On 01/10/2022 14:51, Bhupesh Sharma wrote:
quoted
quoted
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help