2020-04-03 14:06:55

by Christophe Roullier

[permalink] [raw]
Subject: [PATCH V2 0/2] Convert stm32 dwmac to DT schema

Convert stm32 dwmac to DT schema

v1->v2: Remarks from Rob

Christophe Roullier (2):
dt-bindings: net: dwmac: increase 'maxItems' for 'clocks',
'clock-names' properties
dt-bindings: net: dwmac: Convert stm32 dwmac to DT schema

.../devicetree/bindings/net/snps,dwmac.yaml | 8 +-
.../devicetree/bindings/net/stm32-dwmac.txt | 44 -----
.../devicetree/bindings/net/stm32-dwmac.yaml | 150 ++++++++++++++++++
3 files changed, 157 insertions(+), 45 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/net/stm32-dwmac.txt
create mode 100644 Documentation/devicetree/bindings/net/stm32-dwmac.yaml

--
2.17.1


2020-04-03 14:08:58

by Christophe Roullier

[permalink] [raw]
Subject: [PATCH V2 2/2] dt-bindings: net: dwmac: Convert stm32 dwmac to DT schema

Convert stm32 dwmac to DT schema.

Signed-off-by: Christophe Roullier <[email protected]>
---
.../devicetree/bindings/net/stm32-dwmac.txt | 44 -----
.../devicetree/bindings/net/stm32-dwmac.yaml | 150 ++++++++++++++++++
2 files changed, 150 insertions(+), 44 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/net/stm32-dwmac.txt
create mode 100644 Documentation/devicetree/bindings/net/stm32-dwmac.yaml

diff --git a/Documentation/devicetree/bindings/net/stm32-dwmac.txt b/Documentation/devicetree/bindings/net/stm32-dwmac.txt
deleted file mode 100644
index a90eef11dc46..000000000000
--- a/Documentation/devicetree/bindings/net/stm32-dwmac.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-STMicroelectronics STM32 / MCU DWMAC glue layer controller
-
-This file documents platform glue layer for stmmac.
-Please see stmmac.txt for the other unchanged properties.
-
-The device node has following properties.
-
-Required properties:
-- compatible: For MCU family should be "st,stm32-dwmac" to select glue, and
- "snps,dwmac-3.50a" to select IP version.
- For MPU family should be "st,stm32mp1-dwmac" to select
- glue, and "snps,dwmac-4.20a" to select IP version.
-- clocks: Must contain a phandle for each entry in clock-names.
-- clock-names: Should be "stmmaceth" for the host clock.
- Should be "mac-clk-tx" for the MAC TX clock.
- Should be "mac-clk-rx" for the MAC RX clock.
- For MPU family need to add also "ethstp" for power mode clock
-- interrupt-names: Should contain a list of interrupt names corresponding to
- the interrupts in the interrupts property, if available.
- Should be "macirq" for the main MAC IRQ
- Should be "eth_wake_irq" for the IT which wake up system
-- st,syscon : Should be phandle/offset pair. The phandle to the syscon node which
- encompases the glue register, and the offset of the control register.
-
-Optional properties:
-- clock-names: For MPU family "eth-ck" for PHY without quartz
-- st,eth-clk-sel (boolean) : set this property in RGMII PHY when you want to select RCC clock instead of ETH_CLK125.
-- st,eth-ref-clk-sel (boolean) : set this property in RMII mode when you have PHY without crystal 50MHz and want to select RCC clock instead of ETH_REF_CLK.
-
-Example:
-
- ethernet@40028000 {
- compatible = "st,stm32-dwmac", "snps,dwmac-3.50a";
- reg = <0x40028000 0x8000>;
- reg-names = "stmmaceth";
- interrupts = <0 61 0>, <0 62 0>;
- interrupt-names = "macirq", "eth_wake_irq";
- clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx";
- clocks = <&rcc 0 25>, <&rcc 0 26>, <&rcc 0 27>;
- st,syscon = <&syscfg 0x4>;
- snps,pbl = <8>;
- snps,mixed-burst;
- dma-ranges;
- };
diff --git a/Documentation/devicetree/bindings/net/stm32-dwmac.yaml b/Documentation/devicetree/bindings/net/stm32-dwmac.yaml
new file mode 100644
index 000000000000..f559293dbab5
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/stm32-dwmac.yaml
@@ -0,0 +1,150 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright 2019 BayLibre, SAS
+%YAML 1.2
+---
+$id: "http://devicetree.org/schemas/net/stm32-dwmac.yaml#"
+$schema: "http://devicetree.org/meta-schemas/core.yaml#"
+
+title: STMicroelectronics STM32 / MCU DWMAC glue layer controller
+
+maintainers:
+ - Alexandre Torgue <[email protected]>
+ - Christophe Roullier <[email protected]>
+
+description:
+ This file documents platform glue layer for stmmac.
+
+# We need a select here so we don't match all nodes with 'snps,dwmac'
+select:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - st,stm32-dwmac
+ - st,stm32mp1-dwmac
+ required:
+ - compatible
+
+allOf:
+ - $ref: "snps,dwmac.yaml#"
+
+properties:
+ compatible:
+ oneOf:
+ - items:
+ - enum:
+ - st,stm32mp1-dwmac
+ - const: snps,dwmac-4.20a
+ - items:
+ - enum:
+ - st,stm32-dwmac
+ - const: snps,dwmac-4.10a
+ - items:
+ - enum:
+ - st,stm32-dwmac
+ - const: snps,dwmac-3.50a
+
+ clocks:
+ minItems: 3
+ maxItems: 5
+ items:
+ - description: GMAC main clock
+ - description: MAC TX clock
+ - description: MAC RX clock
+ - description: For MPU family, used for power mode
+ - description: For MPU family, used for PHY without quartz
+
+ clock-names:
+ minItems: 3
+ maxItems: 5
+ contains:
+ enum:
+ - stmmaceth
+ - mac-clk-tx
+ - mac-clk-rx
+ - ethstp
+ - eth-ck
+
+ st,syscon:
+ allOf:
+ - $ref: "/schemas/types.yaml#/definitions/phandle-array"
+ description:
+ Should be phandle/offset pair. The phandle to the syscon node which
+ encompases the glue register, and the offset of the control register
+
+ st,eth-clk-sel:
+ description:
+ set this property in RGMII PHY when you want to select RCC clock instead of ETH_CLK125.
+ type: boolean
+
+ st,eth-ref-clk-sel:
+ description:
+ set this property in RMII mode when you have PHY without crystal 50MHz and want to
+ select RCC clock instead of ETH_REF_CLK.
+ type: boolean
+
+required:
+ - compatible
+ - clocks
+ - clock-names
+ - st,syscon
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/clock/stm32mp1-clks.h>
+ #include <dt-bindings/reset/stm32mp1-resets.h>
+ #include <dt-bindings/mfd/stm32h7-rcc.h>
+ //Example 1
+ ethernet0: ethernet@5800a000 {
+ compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
+ reg = <0x5800a000 0x2000>;
+ reg-names = "stmmaceth";
+ interrupts = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "macirq";
+ clock-names = "stmmaceth",
+ "mac-clk-tx",
+ "mac-clk-rx",
+ "ethstp",
+ "eth-ck";
+ clocks = <&rcc ETHMAC>,
+ <&rcc ETHTX>,
+ <&rcc ETHRX>,
+ <&rcc ETHSTP>,
+ <&rcc ETHCK_K>;
+ st,syscon = <&syscfg 0x4>;
+ snps,pbl = <2>;
+ snps,axi-config = <&stmmac_axi_config_0>;
+ snps,tso;
+ phy-mode = "rgmii";
+ };
+
+ //Example 2 (MCU example)
+ ethernet1: ethernet@40028000 {
+ compatible = "st,stm32-dwmac", "snps,dwmac-3.50a";
+ reg = <0x40028000 0x8000>;
+ reg-names = "stmmaceth";
+ interrupts = <0 61 0>, <0 62 0>;
+ interrupt-names = "macirq", "eth_wake_irq";
+ clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx";
+ clocks = <&rcc 0 25>, <&rcc 0 26>, <&rcc 0 27>;
+ st,syscon = <&syscfg 0x4>;
+ snps,pbl = <8>;
+ snps,mixed-burst;
+ dma-ranges;
+ phy-mode = "mii";
+ };
+
+ //Example 3
+ ethernet2: ethernet@40027000 {
+ compatible = "st,stm32-dwmac", "snps,dwmac-4.10a";
+ reg = <0x40028000 0x8000>;
+ reg-names = "stmmaceth";
+ interrupts = <61>;
+ interrupt-names = "macirq";
+ clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx";
+ clocks = <&rcc 62>, <&rcc 61>, <&rcc 60>;
+ st,syscon = <&syscfg 0x4>;
+ snps,pbl = <8>;
+ phy-mode = "mii";
+ };
--
2.17.1

2020-04-03 15:44:02

by Christophe Roullier

[permalink] [raw]
Subject: [PATCH V2 1/2] dt-bindings: net: dwmac: increase 'maxItems' for 'clocks', 'clock-names' properties

This change is needed for some soc based on snps,dwmac, which have
more than 3 clocks.

Signed-off-by: Christophe Roullier <[email protected]>
---
Documentation/devicetree/bindings/net/snps,dwmac.yaml | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/net/snps,dwmac.yaml b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
index e08cd4c4d568..439115b7663c 100644
--- a/Documentation/devicetree/bindings/net/snps,dwmac.yaml
+++ b/Documentation/devicetree/bindings/net/snps,dwmac.yaml
@@ -27,6 +27,7 @@ select:
- snps,dwmac-3.710
- snps,dwmac-4.00
- snps,dwmac-4.10a
+ - snps,dwmac-4.20a
- snps,dwxgmac
- snps,dwxgmac-2.10

@@ -62,6 +63,7 @@ properties:
- snps,dwmac-3.710
- snps,dwmac-4.00
- snps,dwmac-4.10a
+ - snps,dwmac-4.20a
- snps,dwxgmac
- snps,dwxgmac-2.10

@@ -87,7 +89,8 @@ properties:

clocks:
minItems: 1
- maxItems: 3
+ maxItems: 5
+ additionalItems: true
items:
- description: GMAC main clock
- description: Peripheral registers interface clock
@@ -97,6 +100,8 @@ properties:
clock will be used and this is fine on some platforms.

clock-names:
+ minItems: 1
+ maxItems: 5
additionalItems: true
contains:
enum:
@@ -342,6 +347,7 @@ allOf:
- allwinner,sun50i-a64-emac
- snps,dwmac-4.00
- snps,dwmac-4.10a
+ - snps,dwmac-4.20a
- snps,dwxgmac
- snps,dwxgmac-2.10
- st,spear600-gmac
--
2.17.1

2020-04-03 23:16:03

by David Miller

[permalink] [raw]
Subject: Re: [PATCH V2 0/2] Convert stm32 dwmac to DT schema

From: Christophe Roullier <[email protected]>
Date: Fri, 3 Apr 2020 16:04:13 +0200

> Convert stm32 dwmac to DT schema
>
> v1->v2: Remarks from Rob

I am assuming that the DT folks will pick this up.

2020-04-14 16:33:37

by Christophe Roullier

[permalink] [raw]
Subject: Re: [PATCH V2 0/2] Convert stm32 dwmac to DT schema

Hi,

Gentle reminder

Thanks,

Christophe.

On 04/04/2020 01:14, David Miller wrote:
> From: Christophe Roullier <[email protected]>
> Date: Fri, 3 Apr 2020 16:04:13 +0200
>
>> Convert stm32 dwmac to DT schema
>>
>> v1->v2: Remarks from Rob
> I am assuming that the DT folks will pick this up.

2020-04-15 21:48:11

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH V2 0/2] Convert stm32 dwmac to DT schema

On Tue, Apr 14, 2020 at 03:11:03PM +0000, Christophe ROULLIER wrote:
> Hi,
>
> Gentle reminder

If it is in DT patchwork, you can see where you are in the queue. Feel
free to review patches in front of you for faster response. :)

Rob

2020-04-15 21:48:24

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH V2 2/2] dt-bindings: net: dwmac: Convert stm32 dwmac to DT schema

On Fri, Apr 03, 2020 at 04:04:15PM +0200, Christophe Roullier wrote:
> Convert stm32 dwmac to DT schema.
>
> Signed-off-by: Christophe Roullier <[email protected]>
> ---
> .../devicetree/bindings/net/stm32-dwmac.txt | 44 -----
> .../devicetree/bindings/net/stm32-dwmac.yaml | 150 ++++++++++++++++++
> 2 files changed, 150 insertions(+), 44 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/net/stm32-dwmac.txt
> create mode 100644 Documentation/devicetree/bindings/net/stm32-dwmac.yaml
>
> diff --git a/Documentation/devicetree/bindings/net/stm32-dwmac.txt b/Documentation/devicetree/bindings/net/stm32-dwmac.txt
> deleted file mode 100644
> index a90eef11dc46..000000000000
> --- a/Documentation/devicetree/bindings/net/stm32-dwmac.txt
> +++ /dev/null
> @@ -1,44 +0,0 @@
> -STMicroelectronics STM32 / MCU DWMAC glue layer controller
> -
> -This file documents platform glue layer for stmmac.
> -Please see stmmac.txt for the other unchanged properties.
> -
> -The device node has following properties.
> -
> -Required properties:
> -- compatible: For MCU family should be "st,stm32-dwmac" to select glue, and
> - "snps,dwmac-3.50a" to select IP version.
> - For MPU family should be "st,stm32mp1-dwmac" to select
> - glue, and "snps,dwmac-4.20a" to select IP version.
> -- clocks: Must contain a phandle for each entry in clock-names.
> -- clock-names: Should be "stmmaceth" for the host clock.
> - Should be "mac-clk-tx" for the MAC TX clock.
> - Should be "mac-clk-rx" for the MAC RX clock.
> - For MPU family need to add also "ethstp" for power mode clock
> -- interrupt-names: Should contain a list of interrupt names corresponding to
> - the interrupts in the interrupts property, if available.
> - Should be "macirq" for the main MAC IRQ
> - Should be "eth_wake_irq" for the IT which wake up system
> -- st,syscon : Should be phandle/offset pair. The phandle to the syscon node which
> - encompases the glue register, and the offset of the control register.
> -
> -Optional properties:
> -- clock-names: For MPU family "eth-ck" for PHY without quartz
> -- st,eth-clk-sel (boolean) : set this property in RGMII PHY when you want to select RCC clock instead of ETH_CLK125.
> -- st,eth-ref-clk-sel (boolean) : set this property in RMII mode when you have PHY without crystal 50MHz and want to select RCC clock instead of ETH_REF_CLK.
> -
> -Example:
> -
> - ethernet@40028000 {
> - compatible = "st,stm32-dwmac", "snps,dwmac-3.50a";
> - reg = <0x40028000 0x8000>;
> - reg-names = "stmmaceth";
> - interrupts = <0 61 0>, <0 62 0>;
> - interrupt-names = "macirq", "eth_wake_irq";
> - clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx";
> - clocks = <&rcc 0 25>, <&rcc 0 26>, <&rcc 0 27>;
> - st,syscon = <&syscfg 0x4>;
> - snps,pbl = <8>;
> - snps,mixed-burst;
> - dma-ranges;
> - };
> diff --git a/Documentation/devicetree/bindings/net/stm32-dwmac.yaml b/Documentation/devicetree/bindings/net/stm32-dwmac.yaml
> new file mode 100644
> index 000000000000..f559293dbab5
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/stm32-dwmac.yaml
> @@ -0,0 +1,150 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +# Copyright 2019 BayLibre, SAS
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/net/stm32-dwmac.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: STMicroelectronics STM32 / MCU DWMAC glue layer controller
> +
> +maintainers:
> + - Alexandre Torgue <[email protected]>
> + - Christophe Roullier <[email protected]>
> +
> +description:
> + This file documents platform glue layer for stmmac.
> +
> +# We need a select here so we don't match all nodes with 'snps,dwmac'
> +select:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - st,stm32-dwmac
> + - st,stm32mp1-dwmac
> + required:
> + - compatible
> +
> +allOf:
> + - $ref: "snps,dwmac.yaml#"
> +
> +properties:
> + compatible:
> + oneOf:
> + - items:
> + - enum:
> + - st,stm32mp1-dwmac
> + - const: snps,dwmac-4.20a
> + - items:
> + - enum:
> + - st,stm32-dwmac
> + - const: snps,dwmac-4.10a
> + - items:
> + - enum:
> + - st,stm32-dwmac
> + - const: snps,dwmac-3.50a
> +
> + clocks:
> + minItems: 3
> + maxItems: 5
> + items:
> + - description: GMAC main clock
> + - description: MAC TX clock
> + - description: MAC RX clock
> + - description: For MPU family, used for power mode
> + - description: For MPU family, used for PHY without quartz
> +
> + clock-names:
> + minItems: 3
> + maxItems: 5
> + contains:
> + enum:
> + - stmmaceth
> + - mac-clk-tx
> + - mac-clk-rx
> + - ethstp
> + - eth-ck
> +
> + st,syscon:
> + allOf:
> + - $ref: "/schemas/types.yaml#/definitions/phandle-array"
> + description:
> + Should be phandle/offset pair. The phandle to the syscon node which
> + encompases the glue register, and the offset of the control register
> +
> + st,eth-clk-sel:
> + description:
> + set this property in RGMII PHY when you want to select RCC clock instead of ETH_CLK125.
> + type: boolean
> +
> + st,eth-ref-clk-sel:
> + description:
> + set this property in RMII mode when you have PHY without crystal 50MHz and want to
> + select RCC clock instead of ETH_REF_CLK.
> + type: boolean
> +
> +required:
> + - compatible
> + - clocks
> + - clock-names
> + - st,syscon
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> + #include <dt-bindings/clock/stm32mp1-clks.h>
> + #include <dt-bindings/reset/stm32mp1-resets.h>
> + #include <dt-bindings/mfd/stm32h7-rcc.h>
> + //Example 1
> + ethernet0: ethernet@5800a000 {
> + compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
> + reg = <0x5800a000 0x2000>;
> + reg-names = "stmmaceth";
> + interrupts = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
> + interrupt-names = "macirq";
> + clock-names = "stmmaceth",
> + "mac-clk-tx",
> + "mac-clk-rx",
> + "ethstp",
> + "eth-ck";
> + clocks = <&rcc ETHMAC>,
> + <&rcc ETHTX>,
> + <&rcc ETHRX>,
> + <&rcc ETHSTP>,
> + <&rcc ETHCK_K>;
> + st,syscon = <&syscfg 0x4>;
> + snps,pbl = <2>;
> + snps,axi-config = <&stmmac_axi_config_0>;
> + snps,tso;
> + phy-mode = "rgmii";
> + };
> +
> + //Example 2 (MCU example)
> + ethernet1: ethernet@40028000 {
> + compatible = "st,stm32-dwmac", "snps,dwmac-3.50a";
> + reg = <0x40028000 0x8000>;
> + reg-names = "stmmaceth";
> + interrupts = <0 61 0>, <0 62 0>;
> + interrupt-names = "macirq", "eth_wake_irq";
> + clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx";
> + clocks = <&rcc 0 25>, <&rcc 0 26>, <&rcc 0 27>;
> + st,syscon = <&syscfg 0x4>;
> + snps,pbl = <8>;
> + snps,mixed-burst;
> + dma-ranges;

dma-ranges is not valid here. I will drop on applying, but you should
check your dts files.

Rob

2020-04-15 21:48:31

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH V2 2/2] dt-bindings: net: dwmac: Convert stm32 dwmac to DT schema

On Fri, 3 Apr 2020 16:04:15 +0200, Christophe Roullier wrote:
> Convert stm32 dwmac to DT schema.
>
> Signed-off-by: Christophe Roullier <[email protected]>
> ---
> .../devicetree/bindings/net/stm32-dwmac.txt | 44 -----
> .../devicetree/bindings/net/stm32-dwmac.yaml | 150 ++++++++++++++++++
> 2 files changed, 150 insertions(+), 44 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/net/stm32-dwmac.txt
> create mode 100644 Documentation/devicetree/bindings/net/stm32-dwmac.yaml
>

Applied, thanks.

Rob

2020-04-15 21:50:29

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH V2 1/2] dt-bindings: net: dwmac: increase 'maxItems' for 'clocks', 'clock-names' properties

On Fri, 3 Apr 2020 16:04:14 +0200, Christophe Roullier wrote:
> This change is needed for some soc based on snps,dwmac, which have
> more than 3 clocks.
>
> Signed-off-by: Christophe Roullier <[email protected]>
> ---
> Documentation/devicetree/bindings/net/snps,dwmac.yaml | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>

Applied, thanks.

Rob