linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 0/4] dt-bindings: net: dsa: microchip: convert KSZ bindings to yaml
@ 2020-11-20 11:21 Christian Eggers
  2020-11-20 11:21 ` [PATCH net-next 1/4] dt-bindings: net: dsa: convert ksz bindings document " Christian Eggers
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Christian Eggers @ 2020-11-20 11:21 UTC (permalink / raw)
  To: Vladimir Oltean, Jakub Kicinski, Andrew Lunn, Rob Herring
  Cc: Richard Cochran, Vivien Didelot, David S . Miller,
	Kurt Kanzenbach, Marek Vasut, Codrin Ciubotariu, Tristram Ha,
	Woojung Huh, Microchip Linux Driver Support, Christian Eggers,
	netdev, devicetree, linux-kernel

These patches are orginally from the series

"net: dsa: microchip: PTP support for KSZ956x"

As the the device tree conversion to yaml is not really related to the
PTP patches and the original series is going to take more time than
I expected, I would like to split this.

Changes (original series -> v1)
--------------------------------
- dts: moved "allOf" below "maintainers"
- dts: use "unevaluatedProperties" instead of "additionalProperties"
- dts: removed "spi-cpha" and "spi-cpol" flags as the hardware is fixed
- ksz8795: setup SPI for mode 3
- ksz9477: dito




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

* [PATCH net-next 1/4] dt-bindings: net: dsa: convert ksz bindings document to yaml
  2020-11-20 11:21 [PATCH net-next 0/4] dt-bindings: net: dsa: microchip: convert KSZ bindings to yaml Christian Eggers
@ 2020-11-20 11:21 ` Christian Eggers
  2020-11-20 11:21 ` [PATCH net-next 2/4] net: dsa: microchip: support for "ethernet-ports" node Christian Eggers
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Christian Eggers @ 2020-11-20 11:21 UTC (permalink / raw)
  To: Vladimir Oltean, Jakub Kicinski, Andrew Lunn, Rob Herring
  Cc: Richard Cochran, Vivien Didelot, David S . Miller,
	Kurt Kanzenbach, Marek Vasut, Codrin Ciubotariu, Tristram Ha,
	Woojung Huh, Microchip Linux Driver Support, Christian Eggers,
	netdev, devicetree, linux-kernel

Convert the bindings document for Microchip KSZ Series Ethernet switches
from txt to yaml. Removed spi-cpha and spi-cpol flags is this should be
handled by the device driver.

Signed-off-by: Christian Eggers <ceggers@arri.de>
---
 .../devicetree/bindings/net/dsa/ksz.txt       | 125 ---------------
 .../bindings/net/dsa/microchip,ksz.yaml       | 148 ++++++++++++++++++
 MAINTAINERS                                   |   2 +-
 3 files changed, 149 insertions(+), 126 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/net/dsa/ksz.txt
 create mode 100644 Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml

diff --git a/Documentation/devicetree/bindings/net/dsa/ksz.txt b/Documentation/devicetree/bindings/net/dsa/ksz.txt
deleted file mode 100644
index 95e91e84151c..000000000000
--- a/Documentation/devicetree/bindings/net/dsa/ksz.txt
+++ /dev/null
@@ -1,125 +0,0 @@
-Microchip KSZ Series Ethernet switches
-==================================
-
-Required properties:
-
-- compatible: For external switch chips, compatible string must be exactly one
-  of the following:
-  - "microchip,ksz8765"
-  - "microchip,ksz8794"
-  - "microchip,ksz8795"
-  - "microchip,ksz9477"
-  - "microchip,ksz9897"
-  - "microchip,ksz9896"
-  - "microchip,ksz9567"
-  - "microchip,ksz8565"
-  - "microchip,ksz9893"
-  - "microchip,ksz9563"
-  - "microchip,ksz8563"
-
-Optional properties:
-
-- reset-gpios		: Should be a gpio specifier for a reset line
-- microchip,synclko-125 : Set if the output SYNCLKO frequency should be set to
-			  125MHz instead of 25MHz.
-
-See Documentation/devicetree/bindings/net/dsa/dsa.txt for a list of additional
-required and optional properties.
-
-Examples:
-
-Ethernet switch connected via SPI to the host, CPU port wired to eth0:
-
-	eth0: ethernet@10001000 {
-		fixed-link {
-			speed = <1000>;
-			full-duplex;
-		};
-	};
-
-	spi1: spi@f8008000 {
-		pinctrl-0 = <&pinctrl_spi_ksz>;
-		cs-gpios = <&pioC 25 0>;
-		id = <1>;
-
-		ksz9477: ksz9477@0 {
-			compatible = "microchip,ksz9477";
-			reg = <0>;
-
-			spi-max-frequency = <44000000>;
-			spi-cpha;
-			spi-cpol;
-
-			ports {
-				#address-cells = <1>;
-				#size-cells = <0>;
-				port@0 {
-					reg = <0>;
-					label = "lan1";
-				};
-				port@1 {
-					reg = <1>;
-					label = "lan2";
-				};
-				port@2 {
-					reg = <2>;
-					label = "lan3";
-				};
-				port@3 {
-					reg = <3>;
-					label = "lan4";
-				};
-				port@4 {
-					reg = <4>;
-					label = "lan5";
-				};
-				port@5 {
-					reg = <5>;
-					label = "cpu";
-					ethernet = <&eth0>;
-					fixed-link {
-						speed = <1000>;
-						full-duplex;
-					};
-				};
-			};
-		};
-		ksz8565: ksz8565@0 {
-			compatible = "microchip,ksz8565";
-			reg = <0>;
-
-			spi-max-frequency = <44000000>;
-			spi-cpha;
-			spi-cpol;
-
-			ports {
-				#address-cells = <1>;
-				#size-cells = <0>;
-				port@0 {
-					reg = <0>;
-					label = "lan1";
-				};
-				port@1 {
-					reg = <1>;
-					label = "lan2";
-				};
-				port@2 {
-					reg = <2>;
-					label = "lan3";
-				};
-				port@3 {
-					reg = <3>;
-					label = "lan4";
-				};
-				port@6 {
-					reg = <6>;
-					label = "cpu";
-					ethernet = <&eth0>;
-					fixed-link {
-						speed = <1000>;
-						full-duplex;
-					};
-				};
-			};
-		};
-	};
diff --git a/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml b/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
new file mode 100644
index 000000000000..9f7d131bbcef
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
@@ -0,0 +1,148 @@
+# SPDX-License-Identifier: GPL-2.0-only
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/net/dsa/microchip,ksz.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip KSZ Series Ethernet switches
+
+maintainers:
+  - Marek Vasut <marex@denx.de>
+  - Woojung Huh <Woojung.Huh@microchip.com>
+
+allOf:
+  - $ref: dsa.yaml#
+
+properties:
+  # See Documentation/devicetree/bindings/net/dsa/dsa.yaml for a list of additional
+  # required and optional properties.
+  compatible:
+    enum:
+      - microchip,ksz8765
+      - microchip,ksz8794
+      - microchip,ksz8795
+      - microchip,ksz9477
+      - microchip,ksz9897
+      - microchip,ksz9896
+      - microchip,ksz9567
+      - microchip,ksz8565
+      - microchip,ksz9893
+      - microchip,ksz9563
+      - microchip,ksz8563
+
+  reset-gpios:
+    description:
+      Should be a gpio specifier for a reset line.
+    maxItems: 1
+
+  microchip,synclko-125:
+    $ref: /schemas/types.yaml#/definitions/flag
+    description:
+      Set if the output SYNCLKO frequency should be set to 125MHz instead of 25MHz.
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+
+    // Ethernet switch connected via SPI to the host, CPU port wired to eth0:
+    eth0 {
+        fixed-link {
+            speed = <1000>;
+            full-duplex;
+        };
+    };
+
+    spi0 {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        pinctrl-0 = <&pinctrl_spi_ksz>;
+        cs-gpios = <&pioC 25 0>;
+        id = <1>;
+
+        ksz9477: switch@0 {
+            compatible = "microchip,ksz9477";
+            reg = <0>;
+            reset-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>;
+
+            spi-max-frequency = <44000000>;
+
+            ethernet-ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+                port@0 {
+                    reg = <0>;
+                    label = "lan1";
+                };
+                port@1 {
+                    reg = <1>;
+                    label = "lan2";
+                };
+                port@2 {
+                    reg = <2>;
+                    label = "lan3";
+                };
+                port@3 {
+                    reg = <3>;
+                    label = "lan4";
+                };
+                port@4 {
+                    reg = <4>;
+                    label = "lan5";
+                };
+                port@5 {
+                    reg = <5>;
+                    label = "cpu";
+                    ethernet = <&eth0>;
+                    fixed-link {
+                        speed = <1000>;
+                        full-duplex;
+                    };
+                };
+            };
+        };
+
+        ksz8565: switch@1 {
+            compatible = "microchip,ksz8565";
+            reg = <1>;
+
+            spi-max-frequency = <44000000>;
+
+            ethernet-ports {
+                #address-cells = <1>;
+                #size-cells = <0>;
+                port@0 {
+                    reg = <0>;
+                    label = "lan1";
+                };
+                port@1 {
+                    reg = <1>;
+                    label = "lan2";
+                };
+                port@2 {
+                    reg = <2>;
+                    label = "lan3";
+                };
+                port@3 {
+                    reg = <3>;
+                    label = "lan4";
+                };
+                port@6 {
+                    reg = <6>;
+                    label = "cpu";
+                    ethernet = <&eth0>;
+                    fixed-link {
+                        speed = <1000>;
+                        full-duplex;
+                    };
+                };
+            };
+        };
+    };
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 18b5b7896af8..d1003033412f 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -11508,7 +11508,7 @@ M:	Woojung Huh <woojung.huh@microchip.com>
 M:	Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
 L:	netdev@vger.kernel.org
 S:	Maintained
-F:	Documentation/devicetree/bindings/net/dsa/ksz.txt
+F:	Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
 F:	drivers/net/dsa/microchip/*
 F:	include/linux/platform_data/microchip-ksz.h
 F:	net/dsa/tag_ksz.c
-- 
Christian Eggers
Embedded software developer

Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRA 57918
Persoenlich haftender Gesellschafter: Arnold & Richter Cine Technik GmbH
Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRB 54477
Geschaeftsfuehrer: Dr. Michael Neuhaeuser; Stephan Schenk; Walter Trauninger; Markus Zeiler


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

* [PATCH net-next 2/4] net: dsa: microchip: support for "ethernet-ports" node
  2020-11-20 11:21 [PATCH net-next 0/4] dt-bindings: net: dsa: microchip: convert KSZ bindings to yaml Christian Eggers
  2020-11-20 11:21 ` [PATCH net-next 1/4] dt-bindings: net: dsa: convert ksz bindings document " Christian Eggers
@ 2020-11-20 11:21 ` Christian Eggers
  2020-11-20 11:21 ` [PATCH net-next 3/4] net: dsa: microchip: ksz9477: setup SPI mode Christian Eggers
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Christian Eggers @ 2020-11-20 11:21 UTC (permalink / raw)
  To: Vladimir Oltean, Jakub Kicinski, Andrew Lunn, Rob Herring
  Cc: Richard Cochran, Vivien Didelot, David S . Miller,
	Kurt Kanzenbach, Marek Vasut, Codrin Ciubotariu, Tristram Ha,
	Woojung Huh, Microchip Linux Driver Support, Christian Eggers,
	netdev, devicetree, linux-kernel

The dsa.yaml device tree binding allows "ethernet-ports" (preferred) and
"ports".

Signed-off-by: Christian Eggers <ceggers@arri.de>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
---
 drivers/net/dsa/microchip/ksz_common.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c
index 71cd1828e25d..a135fd5a9264 100644
--- a/drivers/net/dsa/microchip/ksz_common.c
+++ b/drivers/net/dsa/microchip/ksz_common.c
@@ -427,7 +427,9 @@ int ksz_switch_register(struct ksz_device *dev,
 		ret = of_get_phy_mode(dev->dev->of_node, &interface);
 		if (ret == 0)
 			dev->compat_interface = interface;
-		ports = of_get_child_by_name(dev->dev->of_node, "ports");
+		ports = of_get_child_by_name(dev->dev->of_node, "ethernet-ports");
+		if (!ports)
+			ports = of_get_child_by_name(dev->dev->of_node, "ports");
 		if (ports)
 			for_each_available_child_of_node(ports, port) {
 				if (of_property_read_u32(port, "reg",
-- 
Christian Eggers
Embedded software developer

Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRA 57918
Persoenlich haftender Gesellschafter: Arnold & Richter Cine Technik GmbH
Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRB 54477
Geschaeftsfuehrer: Dr. Michael Neuhaeuser; Stephan Schenk; Walter Trauninger; Markus Zeiler


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

* [PATCH net-next 3/4] net: dsa: microchip: ksz9477: setup SPI mode
  2020-11-20 11:21 [PATCH net-next 0/4] dt-bindings: net: dsa: microchip: convert KSZ bindings to yaml Christian Eggers
  2020-11-20 11:21 ` [PATCH net-next 1/4] dt-bindings: net: dsa: convert ksz bindings document " Christian Eggers
  2020-11-20 11:21 ` [PATCH net-next 2/4] net: dsa: microchip: support for "ethernet-ports" node Christian Eggers
@ 2020-11-20 11:21 ` Christian Eggers
  2020-11-20 11:21 ` [PATCH net-next 4/4] net: dsa: microchip: ksz8795: " Christian Eggers
  2020-11-26  2:00 ` [PATCH net-next 0/4] dt-bindings: net: dsa: microchip: convert KSZ bindings to yaml patchwork-bot+netdevbpf
  4 siblings, 0 replies; 6+ messages in thread
From: Christian Eggers @ 2020-11-20 11:21 UTC (permalink / raw)
  To: Vladimir Oltean, Jakub Kicinski, Andrew Lunn, Rob Herring
  Cc: Richard Cochran, Vivien Didelot, David S . Miller,
	Kurt Kanzenbach, Marek Vasut, Codrin Ciubotariu, Tristram Ha,
	Woojung Huh, Microchip Linux Driver Support, Christian Eggers,
	netdev, devicetree, linux-kernel

This should be done in the device driver instead of the device tree.

Signed-off-by: Christian Eggers <ceggers@arri.de>
---
 drivers/net/dsa/microchip/ksz9477_spi.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/dsa/microchip/ksz9477_spi.c b/drivers/net/dsa/microchip/ksz9477_spi.c
index 1142768969c2..15bc11b3cda4 100644
--- a/drivers/net/dsa/microchip/ksz9477_spi.c
+++ b/drivers/net/dsa/microchip/ksz9477_spi.c
@@ -48,6 +48,12 @@ static int ksz9477_spi_probe(struct spi_device *spi)
 	if (spi->dev.platform_data)
 		dev->pdata = spi->dev.platform_data;
 
+	/* setup spi */
+	spi->mode = SPI_MODE_3;
+	ret = spi_setup(spi);
+	if (ret)
+		return ret;
+
 	ret = ksz9477_switch_register(dev);
 
 	/* Main DSA driver may not be started yet. */
-- 
Christian Eggers
Embedded software developer

Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRA 57918
Persoenlich haftender Gesellschafter: Arnold & Richter Cine Technik GmbH
Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRB 54477
Geschaeftsfuehrer: Dr. Michael Neuhaeuser; Stephan Schenk; Walter Trauninger; Markus Zeiler


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

* [PATCH net-next 4/4] net: dsa: microchip: ksz8795: setup SPI mode
  2020-11-20 11:21 [PATCH net-next 0/4] dt-bindings: net: dsa: microchip: convert KSZ bindings to yaml Christian Eggers
                   ` (2 preceding siblings ...)
  2020-11-20 11:21 ` [PATCH net-next 3/4] net: dsa: microchip: ksz9477: setup SPI mode Christian Eggers
@ 2020-11-20 11:21 ` Christian Eggers
  2020-11-26  2:00 ` [PATCH net-next 0/4] dt-bindings: net: dsa: microchip: convert KSZ bindings to yaml patchwork-bot+netdevbpf
  4 siblings, 0 replies; 6+ messages in thread
From: Christian Eggers @ 2020-11-20 11:21 UTC (permalink / raw)
  To: Vladimir Oltean, Jakub Kicinski, Andrew Lunn, Rob Herring
  Cc: Richard Cochran, Vivien Didelot, David S . Miller,
	Kurt Kanzenbach, Marek Vasut, Codrin Ciubotariu, Tristram Ha,
	Woojung Huh, Microchip Linux Driver Support, Christian Eggers,
	netdev, devicetree, linux-kernel

This should be done in the device driver instead of the device tree.

Signed-off-by: Christian Eggers <ceggers@arri.de>
---
 drivers/net/dsa/microchip/ksz8795_spi.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/net/dsa/microchip/ksz8795_spi.c b/drivers/net/dsa/microchip/ksz8795_spi.c
index 8b00f8e6c02f..f98432a3e2b5 100644
--- a/drivers/net/dsa/microchip/ksz8795_spi.c
+++ b/drivers/net/dsa/microchip/ksz8795_spi.c
@@ -49,6 +49,12 @@ static int ksz8795_spi_probe(struct spi_device *spi)
 	if (spi->dev.platform_data)
 		dev->pdata = spi->dev.platform_data;
 
+	/* setup spi */
+	spi->mode = SPI_MODE_3;
+	ret = spi_setup(spi);
+	if (ret)
+		return ret;
+
 	ret = ksz8795_switch_register(dev);
 
 	/* Main DSA driver may not be started yet. */
-- 
Christian Eggers
Embedded software developer

Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRA 57918
Persoenlich haftender Gesellschafter: Arnold & Richter Cine Technik GmbH
Sitz: Muenchen - Registergericht: Amtsgericht Muenchen - Handelsregisternummer: HRB 54477
Geschaeftsfuehrer: Dr. Michael Neuhaeuser; Stephan Schenk; Walter Trauninger; Markus Zeiler


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

* Re: [PATCH net-next 0/4] dt-bindings: net: dsa: microchip: convert KSZ bindings to yaml
  2020-11-20 11:21 [PATCH net-next 0/4] dt-bindings: net: dsa: microchip: convert KSZ bindings to yaml Christian Eggers
                   ` (3 preceding siblings ...)
  2020-11-20 11:21 ` [PATCH net-next 4/4] net: dsa: microchip: ksz8795: " Christian Eggers
@ 2020-11-26  2:00 ` patchwork-bot+netdevbpf
  4 siblings, 0 replies; 6+ messages in thread
From: patchwork-bot+netdevbpf @ 2020-11-26  2:00 UTC (permalink / raw)
  To: Christian Eggers
  Cc: olteanv, kuba, andrew, robh+dt, richardcochran, vivien.didelot,
	davem, kurt.kanzenbach, marex, codrin.ciubotariu, Tristram.Ha,
	woojung.huh, UNGLinuxDriver, netdev, devicetree, linux-kernel

Hello:

This series was applied to netdev/net-next.git (refs/heads/master):

On Fri, 20 Nov 2020 12:21:03 +0100 you wrote:
> These patches are orginally from the series
> 
> "net: dsa: microchip: PTP support for KSZ956x"
> 
> As the the device tree conversion to yaml is not really related to the
> PTP patches and the original series is going to take more time than
> I expected, I would like to split this.
> 
> [...]

Here is the summary with links:
  - [net-next,1/4] dt-bindings: net: dsa: convert ksz bindings document to yaml
    https://git.kernel.org/netdev/net-next/c/4f36d97786c6
  - [net-next,2/4] net: dsa: microchip: support for "ethernet-ports" node
    https://git.kernel.org/netdev/net-next/c/44e53c88828f
  - [net-next,3/4] net: dsa: microchip: ksz9477: setup SPI mode
    https://git.kernel.org/netdev/net-next/c/9ed602bac971
  - [net-next,4/4] net: dsa: microchip: ksz8795: setup SPI mode
    https://git.kernel.org/netdev/net-next/c/8c4599f49841

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



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

end of thread, other threads:[~2020-11-26  2:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-20 11:21 [PATCH net-next 0/4] dt-bindings: net: dsa: microchip: convert KSZ bindings to yaml Christian Eggers
2020-11-20 11:21 ` [PATCH net-next 1/4] dt-bindings: net: dsa: convert ksz bindings document " Christian Eggers
2020-11-20 11:21 ` [PATCH net-next 2/4] net: dsa: microchip: support for "ethernet-ports" node Christian Eggers
2020-11-20 11:21 ` [PATCH net-next 3/4] net: dsa: microchip: ksz9477: setup SPI mode Christian Eggers
2020-11-20 11:21 ` [PATCH net-next 4/4] net: dsa: microchip: ksz8795: " Christian Eggers
2020-11-26  2:00 ` [PATCH net-next 0/4] dt-bindings: net: dsa: microchip: convert KSZ bindings to yaml patchwork-bot+netdevbpf

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).