linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH  0/2] Convert stm32 dwmac to DT schema
@ 2019-11-08 10:35 Christophe Roullier
  2019-11-08 10:35 ` [PATCH 1/2] dt-bindings: net: dwmac: increase 'maxItems' for 'clocks', 'clock-names' properties Christophe Roullier
  2019-11-08 10:35 ` [PATCH 2/2] dt-bindings: net: dwmac: Convert stm32 dwmac to DT schema Christophe Roullier
  0 siblings, 2 replies; 10+ messages in thread
From: Christophe Roullier @ 2019-11-08 10:35 UTC (permalink / raw)
  To: davem, robh+dt, mark.rutland, mripard, martin.blumenstingl,
	alexandru.ardelean, narmstrong, mcoquelin.stm32,
	alexandre.torgue
  Cc: devicetree, netdev, linux-kernel, christophe.roullier,
	linux-stm32, linux-arm-kernel

Convert stm32 dwmac to DT schema

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  | 161 ++++++++++++++++++
 3 files changed, 168 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


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 1/2] dt-bindings: net: dwmac: increase 'maxItems' for 'clocks', 'clock-names' properties
  2019-11-08 10:35 [PATCH 0/2] Convert stm32 dwmac to DT schema Christophe Roullier
@ 2019-11-08 10:35 ` Christophe Roullier
  2019-11-08 10:42   ` Maxime Ripard
  2019-11-08 10:35 ` [PATCH 2/2] dt-bindings: net: dwmac: Convert stm32 dwmac to DT schema Christophe Roullier
  1 sibling, 1 reply; 10+ messages in thread
From: Christophe Roullier @ 2019-11-08 10:35 UTC (permalink / raw)
  To: davem, robh+dt, mark.rutland, mripard, martin.blumenstingl,
	alexandru.ardelean, narmstrong, mcoquelin.stm32,
	alexandre.torgue
  Cc: devicetree, netdev, linux-kernel, christophe.roullier,
	linux-stm32, linux-arm-kernel

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

Signed-off-by: Christophe Roullier <christophe.roullier@st.com>
---
 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 4845e29411e4..376a531062c2 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


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/2] dt-bindings: net: dwmac: Convert stm32 dwmac to DT schema
  2019-11-08 10:35 [PATCH 0/2] Convert stm32 dwmac to DT schema Christophe Roullier
  2019-11-08 10:35 ` [PATCH 1/2] dt-bindings: net: dwmac: increase 'maxItems' for 'clocks', 'clock-names' properties Christophe Roullier
@ 2019-11-08 10:35 ` Christophe Roullier
  2019-11-14 18:22   ` Rob Herring
  1 sibling, 1 reply; 10+ messages in thread
From: Christophe Roullier @ 2019-11-08 10:35 UTC (permalink / raw)
  To: davem, robh+dt, mark.rutland, mripard, martin.blumenstingl,
	alexandru.ardelean, narmstrong, mcoquelin.stm32,
	alexandre.torgue
  Cc: devicetree, netdev, linux-kernel, christophe.roullier,
	linux-stm32, linux-arm-kernel

Convert stm32 dwmac to DT schema.

Signed-off-by: Christophe Roullier <christophe.roullier@st.com>
---
 .../devicetree/bindings/net/stm32-dwmac.txt   |  44 -----
 .../devicetree/bindings/net/stm32-dwmac.yaml  | 161 ++++++++++++++++++
 2 files changed, 161 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..eb0fd831f59d
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/stm32-dwmac.yaml
@@ -0,0 +1,161 @@
+# 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 <alexandre.torgue@st.com>
+  - Christophe Roullier <christophe.roullier@st.com>
+
+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#"
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - st,stm32-dwmac
+              - st,stm32mp1-dwmac
+    then:
+      properties:
+       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     
+
+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            
+
+  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;
+       status = "disabled";
+       phy-mode = "rgmii";       
+       };
+
+    //Example 1 (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 2 
+     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>;
+       status = "disabled";
+       phy-mode = "mii";        
+       };
+
+       
-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH  1/2] dt-bindings: net: dwmac: increase 'maxItems' for 'clocks', 'clock-names' properties
  2019-11-08 10:35 ` [PATCH 1/2] dt-bindings: net: dwmac: increase 'maxItems' for 'clocks', 'clock-names' properties Christophe Roullier
@ 2019-11-08 10:42   ` Maxime Ripard
  2019-11-08 13:02     ` Christophe ROULLIER
  0 siblings, 1 reply; 10+ messages in thread
From: Maxime Ripard @ 2019-11-08 10:42 UTC (permalink / raw)
  To: Christophe Roullier
  Cc: mark.rutland, devicetree, alexandre.torgue, narmstrong,
	martin.blumenstingl, netdev, linux-kernel, linux-stm32, robh+dt,
	mcoquelin.stm32, alexandru.ardelean, davem, linux-arm-kernel


[-- Attachment #1.1: Type: text/plain, Size: 1266 bytes --]

Hi,

On Fri, Nov 08, 2019 at 11:35:25AM +0100, 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 <christophe.roullier@st.com>
> ---
>  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 4845e29411e4..376a531062c2 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

Those additional clocks should be documented

Maxime

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

[-- Attachment #2: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/2] dt-bindings: net: dwmac: increase 'maxItems' for 'clocks', 'clock-names' properties
  2019-11-08 10:42   ` Maxime Ripard
@ 2019-11-08 13:02     ` Christophe ROULLIER
  2019-11-15  7:50       ` Maxime Ripard
  0 siblings, 1 reply; 10+ messages in thread
From: Christophe ROULLIER @ 2019-11-08 13:02 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: mark.rutland, devicetree, Alexandre TORGUE, narmstrong,
	martin.blumenstingl, netdev, linux-kernel, linux-stm32, robh+dt,
	mcoquelin.stm32, alexandru.ardelean, davem, linux-arm-kernel

On 11/8/19 11:42 AM, Maxime Ripard wrote:
> Hi,
>
> On Fri, Nov 08, 2019 at 11:35:25AM +0100, 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 <christophe.roullier@st.com>
>> ---
>>   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 4845e29411e4..376a531062c2 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
> Those additional clocks should be documented
>
> Maxime

Hi Maxime,

The problem it is specific to our soc, so is it possible to

propose "optional clock" for 2 extras clocks in snps,dwmac.yaml

and "official" description in soc yaml file (stm32-dwmac.yaml) ?

   clocks:
     minItems: 1
     maxItems: 5
     additionalItems: true
     items:
       - description: GMAC main clock
       - description: Peripheral registers interface clock
       - description:
           PTP reference clock. This clock is used for programming the
           Timestamp Addend Register. If not passed then the system
           clock will be used and this is fine on some platforms.

+      - description: optional clock

+      - description: optional clock

Thanks

Christophe

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH  2/2] dt-bindings: net: dwmac: Convert stm32 dwmac to DT schema
  2019-11-08 10:35 ` [PATCH 2/2] dt-bindings: net: dwmac: Convert stm32 dwmac to DT schema Christophe Roullier
@ 2019-11-14 18:22   ` Rob Herring
  2020-01-14 11:09     ` Christophe ROULLIER
  0 siblings, 1 reply; 10+ messages in thread
From: Rob Herring @ 2019-11-14 18:22 UTC (permalink / raw)
  To: Christophe Roullier
  Cc: mark.rutland, devicetree, alexandre.torgue, narmstrong,
	martin.blumenstingl, netdev, linux-kernel, mripard, linux-stm32,
	mcoquelin.stm32, alexandru.ardelean, davem, linux-arm-kernel

On Fri, Nov 08, 2019 at 11:35:26AM +0100, Christophe Roullier wrote:
> Convert stm32 dwmac to DT schema.

Lots of checkpatch errors with trailing WS.

> 
> Signed-off-by: Christophe Roullier <christophe.roullier@st.com>
> ---
>  .../devicetree/bindings/net/stm32-dwmac.txt   |  44 -----
>  .../devicetree/bindings/net/stm32-dwmac.yaml  | 161 ++++++++++++++++++
>  2 files changed, 161 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..eb0fd831f59d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/stm32-dwmac.yaml
> @@ -0,0 +1,161 @@
> +# 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 <alexandre.torgue@st.com>
> +  - Christophe Roullier <christophe.roullier@st.com>
> +
> +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#"
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - st,stm32-dwmac
> +              - st,stm32mp1-dwmac
> +    then:
> +      properties:
> +       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

What does 'power mode' mean? IIRC, some DW MACs have a clock for WoL 
called LPI or something. Are you sure this is ST specific and not DW 
config or version specific?

> +          - description: For MPU family, used for PHY without quartz

It would be cleaner to define the clock always present and use a 
fixed-clock when you have an external quartz. 

> +
> +       clock-names:
> +         minItems: 3          
> +         maxItems: 5
> +         contains:
> +          enum:
> +            - stmmaceth
> +            - mac-clk-tx
> +            - mac-clk-rx
> +            - ethstp
> +            - eth-ck     
> +
> +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            
> +
> +  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.

Wrap lines.

> +    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;
> +       status = "disabled";
> +       phy-mode = "rgmii";       
> +       };
> +
> +    //Example 1 (MCU example)

2 Example 1's?

> +     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 2 
> +     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>;
> +       status = "disabled";
> +       phy-mode = "mii";        
> +       };
> +
> +       
> -- 
> 2.17.1
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/2] dt-bindings: net: dwmac: increase 'maxItems' for 'clocks', 'clock-names' properties
  2019-11-08 13:02     ` Christophe ROULLIER
@ 2019-11-15  7:50       ` Maxime Ripard
  2020-01-09  9:07         ` Christophe ROULLIER
  0 siblings, 1 reply; 10+ messages in thread
From: Maxime Ripard @ 2019-11-15  7:50 UTC (permalink / raw)
  To: Christophe ROULLIER
  Cc: mark.rutland, devicetree, Alexandre TORGUE, narmstrong,
	martin.blumenstingl, netdev, linux-kernel, linux-stm32, robh+dt,
	mcoquelin.stm32, alexandru.ardelean, davem, linux-arm-kernel


[-- Attachment #1.1: Type: text/plain, Size: 2529 bytes --]

On Fri, Nov 08, 2019 at 01:02:14PM +0000, Christophe ROULLIER wrote:
> On 11/8/19 11:42 AM, Maxime Ripard wrote:
> > Hi,
> >
> > On Fri, Nov 08, 2019 at 11:35:25AM +0100, 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 <christophe.roullier@st.com>
> >> ---
> >>   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 4845e29411e4..376a531062c2 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
> > Those additional clocks should be documented
> >
> > Maxime
>
> Hi Maxime,
>
> The problem it is specific to our soc, so is it possible to
>
> propose "optional clock" for 2 extras clocks in snps,dwmac.yaml
>
> and "official" description in soc yaml file (stm32-dwmac.yaml) ?
>
>    clocks:
>      minItems: 1
>      maxItems: 5
>      additionalItems: true
>      items:
>        - description: GMAC main clock
>        - description: Peripheral registers interface clock
>        - description:
>            PTP reference clock. This clock is used for programming the
>            Timestamp Addend Register. If not passed then the system
>            clock will be used and this is fine on some platforms.
>
> +      - description: optional clock
>
> +      - description: optional clock

I guess we'd really need to figure out what those clocks are doing,
they are probably helpful (and used, under a different name) by
others.

Hopefully the questions Rob asked will clear that out

Maxime

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

[-- Attachment #2: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/2] dt-bindings: net: dwmac: increase 'maxItems' for 'clocks', 'clock-names' properties
  2019-11-15  7:50       ` Maxime Ripard
@ 2020-01-09  9:07         ` Christophe ROULLIER
  2020-01-09 21:34           ` Rob Herring
  0 siblings, 1 reply; 10+ messages in thread
From: Christophe ROULLIER @ 2020-01-09  9:07 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: mark.rutland, devicetree, Alexandre TORGUE, narmstrong,
	martin.blumenstingl, netdev, linux-kernel, linux-stm32, robh+dt,
	mcoquelin.stm32, alexandru.ardelean, davem, linux-arm-kernel

On 15/11/2019 08:50, Maxime Ripard wrote:
> On Fri, Nov 08, 2019 at 01:02:14PM +0000, Christophe ROULLIER wrote:
>> On 11/8/19 11:42 AM, Maxime Ripard wrote:
>>> Hi,
>>>
>>> On Fri, Nov 08, 2019 at 11:35:25AM +0100, 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 <christophe.roullier@st.com>
>>>> ---
>>>>    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 4845e29411e4..376a531062c2 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
>>> Those additional clocks should be documented
>>>
>>> Maxime
>> Hi Maxime,
>>
>> The problem it is specific to our soc, so is it possible to
>>
>> propose "optional clock" for 2 extras clocks in snps,dwmac.yaml
>>
>> and "official" description in soc yaml file (stm32-dwmac.yaml) ?
>>
>>     clocks:
>>       minItems: 1
>>       maxItems: 5
>>       additionalItems: true
>>       items:
>>         - description: GMAC main clock
>>         - description: Peripheral registers interface clock
>>         - description:
>>             PTP reference clock. This clock is used for programming the
>>             Timestamp Addend Register. If not passed then the system
>>             clock will be used and this is fine on some platforms.
>>
>> +      - description: optional clock
>>
>> +      - description: optional clock
> I guess we'd really need to figure out what those clocks are doing,
> they are probably helpful (and used, under a different name) by
> others.
>
> Hopefully the questions Rob asked will clear that out

Rob, do you have any ideas, suggestions ?

Thanks

> Maxime
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 1/2] dt-bindings: net: dwmac: increase 'maxItems' for 'clocks', 'clock-names' properties
  2020-01-09  9:07         ` Christophe ROULLIER
@ 2020-01-09 21:34           ` Rob Herring
  0 siblings, 0 replies; 10+ messages in thread
From: Rob Herring @ 2020-01-09 21:34 UTC (permalink / raw)
  To: Christophe ROULLIER
  Cc: mark.rutland, devicetree, Alexandre TORGUE, narmstrong,
	martin.blumenstingl, netdev, linux-kernel, Maxime Ripard,
	linux-stm32, mcoquelin.stm32, alexandru.ardelean, davem,
	linux-arm-kernel

On Thu, Jan 9, 2020 at 3:07 AM Christophe ROULLIER
<christophe.roullier@st.com> wrote:
>
> On 15/11/2019 08:50, Maxime Ripard wrote:
> > On Fri, Nov 08, 2019 at 01:02:14PM +0000, Christophe ROULLIER wrote:
> >> On 11/8/19 11:42 AM, Maxime Ripard wrote:
> >>> Hi,
> >>>
> >>> On Fri, Nov 08, 2019 at 11:35:25AM +0100, 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 <christophe.roullier@st.com>
> >>>> ---
> >>>>    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 4845e29411e4..376a531062c2 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
> >>> Those additional clocks should be documented
> >>>
> >>> Maxime
> >> Hi Maxime,
> >>
> >> The problem it is specific to our soc, so is it possible to
> >>
> >> propose "optional clock" for 2 extras clocks in snps,dwmac.yaml
> >>
> >> and "official" description in soc yaml file (stm32-dwmac.yaml) ?
> >>
> >>     clocks:
> >>       minItems: 1
> >>       maxItems: 5
> >>       additionalItems: true
> >>       items:
> >>         - description: GMAC main clock
> >>         - description: Peripheral registers interface clock
> >>         - description:
> >>             PTP reference clock. This clock is used for programming the
> >>             Timestamp Addend Register. If not passed then the system
> >>             clock will be used and this is fine on some platforms.
> >>
> >> +      - description: optional clock
> >>
> >> +      - description: optional clock
> > I guess we'd really need to figure out what those clocks are doing,
> > they are probably helpful (and used, under a different name) by
> > others.
> >
> > Hopefully the questions Rob asked will clear that out
>
> Rob, do you have any ideas, suggestions ?

Answer my questions from patch 2:

> What does 'power mode' mean? IIRC, some DW MACs have a clock for WoL
> called LPI or something. Are you sure this is ST specific and not DW
> config or version specific?

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/2] dt-bindings: net: dwmac: Convert stm32 dwmac to DT schema
  2019-11-14 18:22   ` Rob Herring
@ 2020-01-14 11:09     ` Christophe ROULLIER
  0 siblings, 0 replies; 10+ messages in thread
From: Christophe ROULLIER @ 2020-01-14 11:09 UTC (permalink / raw)
  To: Rob Herring
  Cc: mark.rutland, devicetree, Alexandre TORGUE, narmstrong,
	martin.blumenstingl, netdev, linux-kernel, mripard, linux-stm32,
	mcoquelin.stm32, alexandru.ardelean, davem, linux-arm-kernel

Hi Rob, all,

On 11/14/19 7:22 PM, Rob Herring wrote:
> On Fri, Nov 08, 2019 at 11:35:26AM +0100, Christophe Roullier wrote:
>> Convert stm32 dwmac to DT schema.
> Lots of checkpatch errors with trailing WS.
ok, sorry I forgot to execute checkpatch before upstream.
>> Signed-off-by: Christophe Roullier <christophe.roullier@st.com>
>> ---
>>   .../devicetree/bindings/net/stm32-dwmac.txt   |  44 -----
>>   .../devicetree/bindings/net/stm32-dwmac.yaml  | 161 ++++++++++++++++++
>>   2 files changed, 161 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..eb0fd831f59d
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/net/stm32-dwmac.yaml
>> @@ -0,0 +1,161 @@
>> +# 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 <alexandre.torgue@st.com>
>> +  - Christophe Roullier <christophe.roullier@st.com>
>> +
>> +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#"
>> +  - if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            enum:
>> +              - st,stm32-dwmac
>> +              - st,stm32mp1-dwmac
>> +    then:
>> +      properties:
>> +       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
> What does 'power mode' mean? IIRC, some DW MACs have a clock for WoL
> called LPI or something. Are you sure this is ST specific and not DW
> config or version specific?

Yes that right, it is clock used to manage WoL during suspend.

My problem it is may be to manage MCU and MPU family in same yaml file

Because in MCU family only 3 clocks used (GMAC main clock, MAC TX clock 
and MAC RX clock)

In MPU family it is same clocks + clock to manage WoL and clock to 
manage PHY without Cristal

>> +          - description: For MPU family, used for PHY without quartz
> It would be cleaner to define the clock always present and use a
> fixed-clock when you have an external quartz.

You are right, I will define clocks always present and manage them in my 
driver (enable or disable it in function of phy mode, if with or without 
quartz in PHY etc..)

So for MCU (st,stm32-dwmac) I need 3 clocks and for MPU 
(st,stm32mp1-dwmac) 5 clocks

How to manage this in yaml ? 2 differents files ?

>> +
>> +       clock-names:
>> +         minItems: 3
>> +         maxItems: 5
>> +         contains:
>> +          enum:
>> +            - stmmaceth
>> +            - mac-clk-tx
>> +            - mac-clk-rx
>> +            - ethstp
>> +            - eth-ck
>> +
>> +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
>> +
>> +  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.
> Wrap lines.
ok
>> +    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;
>> +       status = "disabled";
>> +       phy-mode = "rgmii";
>> +       };
>> +
>> +    //Example 1 (MCU example)
> 2 Example 1's?
>
exact, I will rename it

Thanks Rob

>> +     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 2
>> +     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>;
>> +       status = "disabled";
>> +       phy-mode = "mii";
>> +       };
>> +
>> +
>> -- 
>> 2.17.1
>>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2020-01-14 11:10 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-08 10:35 [PATCH 0/2] Convert stm32 dwmac to DT schema Christophe Roullier
2019-11-08 10:35 ` [PATCH 1/2] dt-bindings: net: dwmac: increase 'maxItems' for 'clocks', 'clock-names' properties Christophe Roullier
2019-11-08 10:42   ` Maxime Ripard
2019-11-08 13:02     ` Christophe ROULLIER
2019-11-15  7:50       ` Maxime Ripard
2020-01-09  9:07         ` Christophe ROULLIER
2020-01-09 21:34           ` Rob Herring
2019-11-08 10:35 ` [PATCH 2/2] dt-bindings: net: dwmac: Convert stm32 dwmac to DT schema Christophe Roullier
2019-11-14 18:22   ` Rob Herring
2020-01-14 11:09     ` Christophe ROULLIER

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).