netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] mv643xx_eth device tree bindings
@ 2013-03-29 18:14 Florian Fainelli
  2013-03-29 18:14 ` [PATCH 1/4] mv643xx_eth: add Device Tree bindings Florian Fainelli
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Florian Fainelli @ 2013-03-29 18:14 UTC (permalink / raw)
  To: davem
  Cc: netdev, linux-arm-kernel, devicetree-discuss, thomas.petazzoni,
	jm, moinejf, sebastian.hesselbarth, buytenh, andrew, jason,
	grant.likely, rob.herring, Florian Fainelli

Hi all,

This patch serie implements mv643xx_eth device tree bindings. I opted for
the reuse of the bindings already defined in
Documentation/devicetree/bindings/marvell.txt so that we do not create
any confusion.

For reference, I have included the mv643xx-eth related nodes in the
corresponding Kirkwood, Dove and Orion5x .dtsi files so you can more
easily test on your own platforms.

I tested these on a custom 88F6181-based boards, but I would appreciate
more testing.

Thanks!

Florian Fainelli (4):
  mv643xx_eth: add Device Tree bindings
  ARM: kirkwood: add device node entries for the gigabit interfaces
  ARM: orion5x: add gigabit ethernet device tree node
  ARM: dove: add gigabit device tree nodes to dove.dtsi

 Documentation/devicetree/bindings/marvell.txt |   21 ++++-
 arch/arm/boot/dts/dove.dtsi                   |   25 ++++++
 arch/arm/boot/dts/kirkwood.dtsi               |   46 ++++++++++
 arch/arm/boot/dts/orion5x.dtsi                |   23 +++++
 arch/arm/mach-kirkwood/common.c               |    4 +-
 drivers/net/ethernet/marvell/mv643xx_eth.c    |  114 ++++++++++++++++++++++++-
 6 files changed, 226 insertions(+), 7 deletions(-)

-- 
1.7.10.4

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

* [PATCH 1/4] mv643xx_eth: add Device Tree bindings
  2013-03-29 18:14 [PATCH 0/4] mv643xx_eth device tree bindings Florian Fainelli
@ 2013-03-29 18:14 ` Florian Fainelli
  2013-03-29 18:25   ` Florian Fainelli
  2013-03-29 18:14 ` [PATCH 2/4] ARM: kirkwood: add device node entries for the gigabit interfaces Florian Fainelli
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 9+ messages in thread
From: Florian Fainelli @ 2013-03-29 18:14 UTC (permalink / raw)
  To: davem
  Cc: netdev, linux-arm-kernel, devicetree-discuss, thomas.petazzoni,
	jm, moinejf, sebastian.hesselbarth, buytenh, andrew, jason,
	grant.likely, rob.herring, Florian Fainelli

This patch adds Device Tree bindings following the already defined
bindings at Documentation/devicetree/bindings/marvell.txt. The binding
documentation is also enhanced with new optionnal properties required
for supporting certain devices (RX/TX queue and SRAM). Since we now have
proper support for the orion MDIO bus driver, there is no need to fiddle
around with device tree phandles.

Signed-off-by: Florian Fainelli <florian@openwrt.org>
---
 Documentation/devicetree/bindings/marvell.txt |   21 ++++-
 drivers/net/ethernet/marvell/mv643xx_eth.c    |  114 ++++++++++++++++++++++++-
 2 files changed, 130 insertions(+), 5 deletions(-)

diff --git a/Documentation/devicetree/bindings/marvell.txt b/Documentation/devicetree/bindings/marvell.txt
index f1533d9..fd05016 100644
--- a/Documentation/devicetree/bindings/marvell.txt
+++ b/Documentation/devicetree/bindings/marvell.txt
@@ -112,9 +112,14 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd.
    Required properties:
      - #address-cells : <1>
      - #size-cells : <0>
-     - compatible : "marvell,mv64360-eth-block"
+     - compatible : "marvell,mv64360-eth-block", "marvell,mv64360-eth-group",
+		    "marvell,mv643xx-eth-block"
      - reg : Offset and length of the register set for this block
 
+   Optional properties:
+     - tx-csum-limit : Hardware limit above which transmit checksumming
+                       is disabled.
+
    Example Discovery Ethernet block node:
      ethernet-block@2000 {
 	     #address-cells = <1>;
@@ -130,7 +135,7 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd.
 
    Required properties:
      - device_type : Should be "network".
-     - compatible : Should be "marvell,mv64360-eth".
+     - compatible : Should be "marvell,mv64360-eth", "marvell,mv643xx-eth".
      - reg : Should be <0>, <1>, or <2>, according to which registers
        within the silicon block the device uses.
      - interrupts : <a> where a is the interrupt number for the port.
@@ -140,6 +145,18 @@ prefixed with the string "marvell,", for Marvell Technology Group Ltd.
        controller.
      - local-mac-address : 6 bytes, MAC address
 
+   Optional properties:
+     - clocks : Phandle to the clock control device and gate bit
+     - clock-names : String describing the clock gate bit
+     - rx-queue-count : number of RX queues to use
+     - tx-queue-count : number of TX queues to use
+     - rx-queue-size : size of the RX queue (in bytes)
+     - tx-queue-size : size of the TX queue (in bytes)
+     - rx-sram-addr : address of the SRAM for RX path (non 0 means used)
+     - rx-sram-size : size of the SRAM for RX path (non 0 means used)
+     - tx-sram-addr : address of the SRAM for TX path (non 0 means used)
+     - tx-sram-size : size of the SRAM for TX path (non 0 means used)
+
    Example Discovery Ethernet port node:
      ethernet@0 {
 	     device_type = "network";
diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c
index aedbd82..57164cb 100644
--- a/drivers/net/ethernet/marvell/mv643xx_eth.c
+++ b/drivers/net/ethernet/marvell/mv643xx_eth.c
@@ -60,6 +60,10 @@
 #include <linux/inet_lro.h>
 #include <linux/slab.h>
 #include <linux/clk.h>
+#include <linux/stringify.h>
+#include <linux/of.h>
+#include <linux/of_platform.h>
+#include <linux/of_net.h>
 
 static char mv643xx_eth_driver_name[] = "mv643xx_eth";
 static char mv643xx_eth_driver_version[] = "1.4";
@@ -2542,14 +2546,24 @@ static void infer_hw_params(struct mv643xx_eth_shared_private *msp)
 	}
 }
 
+static const struct of_device_id mv643xx_eth_match[] = {
+	{ .compatible = "marvell,mv64360-eth" },
+	{ .compatible = "marvell,mv643xx-eth" },
+	{ /* sentinel */ },
+};
+MODULE_DEVICE_TABLE(of, mv643xx_eth_match);
+
 static int mv643xx_eth_shared_probe(struct platform_device *pdev)
 {
 	static int mv643xx_eth_version_printed;
+	struct device_node *np = pdev->dev.of_node;
 	struct mv643xx_eth_shared_platform_data *pd = pdev->dev.platform_data;
 	struct mv643xx_eth_shared_private *msp;
 	const struct mbus_dram_target_info *dram;
 	struct resource *res;
 	int ret;
+	const int *prop;
+	int tx_csum_limit = 0;
 
 	if (!mv643xx_eth_version_printed++)
 		pr_notice("MV-643xx 10/100/1000 ethernet driver version %s\n",
@@ -2576,13 +2590,19 @@ static int mv643xx_eth_shared_probe(struct platform_device *pdev)
 	if (dram)
 		mv643xx_eth_conf_mbus_windows(msp, dram);
 
-	msp->tx_csum_limit = (pd != NULL && pd->tx_csum_limit) ?
-					pd->tx_csum_limit : 9 * 1024;
+	if (np) {
+		prop = of_get_property(np, "tx-csum-limit", NULL);
+		if (prop)
+			tx_csum_limit = be32_to_cpup(prop);
+	} else
+		tx_csum_limit = pd->tx_csum_limit;
+
+	msp->tx_csum_limit = tx_csum_limit ? tx_csum_limit : 9 * 1024;
 	infer_hw_params(msp);
 
 	platform_set_drvdata(pdev, msp);
 
-	return 0;
+	return of_platform_bus_probe(np, mv643xx_eth_match, &pdev->dev);
 
 out_free:
 	kfree(msp);
@@ -2600,12 +2620,22 @@ static int mv643xx_eth_shared_remove(struct platform_device *pdev)
 	return 0;
 }
 
+static const struct of_device_id mv643xx_eth_shared_match[] = {
+	{ .compatible = "marvell,mv64360-eth-group" },
+	{ .compatible = "marvell,mv64360-eth-block" },
+	{ .compatible = "marvell,mv643xx-eth-group" },
+	{ .compatible = "marvell,mv643xx-eth-block" },
+	{ /* sentinel */ },
+};
+MODULE_DEVICE_TABLE(of, mv643xx_eth_shared_match);
+
 static struct platform_driver mv643xx_eth_shared_driver = {
 	.probe		= mv643xx_eth_shared_probe,
 	.remove		= mv643xx_eth_shared_remove,
 	.driver = {
 		.name	= MV643XX_ETH_SHARED_NAME,
 		.owner	= THIS_MODULE,
+		.of_match_table = mv643xx_eth_shared_match,
 	},
 };
 
@@ -2764,6 +2794,71 @@ static const struct net_device_ops mv643xx_eth_netdev_ops = {
 #endif
 };
 
+#ifdef CONFIG_OF
+static int mv643xx_eth_of_probe(struct platform_device *pdev)
+{
+	struct mv643xx_eth_platform_data *pd;
+	struct device_node *np = pdev->dev.of_node;
+	struct device_node *shared = of_get_parent(np);
+	struct device_node *phy_node;
+	const int *prop;
+	const char *mac_addr;
+
+	if (!pdev->dev.of_node)
+		return 0;
+
+	pd = kzalloc(sizeof(*pd), GFP_KERNEL);
+	if (!pd)
+		return -ENOMEM;
+
+	pdev->dev.platform_data = pd;
+
+	pd->shared = of_find_device_by_node(shared);
+	if (!pd->shared)
+		return -ENODEV;
+
+	prop = of_get_property(np, "reg", NULL);
+	if (!prop)
+		return -EINVAL;
+
+	pd->port_number = be32_to_cpup(prop);
+
+	phy_node = of_parse_phandle(np, "phy", 0);
+	if (!phy_node)
+		pd->phy_addr = MV643XX_ETH_PHY_NONE;
+	else {
+		prop = of_get_property(phy_node, "reg", NULL);
+		if (prop)
+			pd->phy_addr = be32_to_cpup(prop);
+	}
+
+	mac_addr = of_get_mac_address(np);
+	if (mac_addr)
+		memcpy(pd->mac_addr, mac_addr, ETH_ALEN);
+
+#define rx_tx_queue_sram_property(_name)			\
+	prop = of_get_property(np, __stringify(_name), NULL);	\
+	if (prop)						\
+		pd->_name = be32_to_cpup(prop);
+
+	rx_tx_queue_sram_property(rx_queue_count);
+	rx_tx_queue_sram_property(tx_queue_count);
+	rx_tx_queue_sram_property(rx_queue_size);
+	rx_tx_queue_sram_property(tx_queue_size);
+	rx_tx_queue_sram_property(rx_sram_addr);
+	rx_tx_queue_sram_property(rx_sram_size);
+	rx_tx_queue_sram_property(tx_sram_addr);
+	rx_tx_queue_sram_property(rx_sram_size);
+
+	return 0;
+}
+#else
+static inline int mv643xx_eth_of_probe(struct platform_device *dev)
+{
+	return 0;
+}
+#endif
+
 static int mv643xx_eth_probe(struct platform_device *pdev)
 {
 	struct mv643xx_eth_platform_data *pd;
@@ -2772,7 +2867,12 @@ static int mv643xx_eth_probe(struct platform_device *pdev)
 	struct resource *res;
 	int err;
 
+	err = mv643xx_eth_of_probe(pdev);
+	if (err)
+		return err;
+
 	pd = pdev->dev.platform_data;
+
 	if (pd == NULL) {
 		dev_err(&pdev->dev, "no mv643xx_eth_platform_data\n");
 		return -ENODEV;
@@ -2896,6 +2996,8 @@ out:
 	}
 #endif
 	free_netdev(dev);
+	if (pdev->dev.of_node)
+		kfree(pd);
 
 	return err;
 }
@@ -2903,6 +3005,7 @@ out:
 static int mv643xx_eth_remove(struct platform_device *pdev)
 {
 	struct mv643xx_eth_private *mp = platform_get_drvdata(pdev);
+	struct mv643xx_eth_platform_data *pd = pdev->dev.platform_data;
 
 	unregister_netdev(mp->dev);
 	if (mp->phy != NULL)
@@ -2918,6 +3021,9 @@ static int mv643xx_eth_remove(struct platform_device *pdev)
 
 	free_netdev(mp->dev);
 
+	if (pdev->dev.of_node)
+		kfree(pd);
+
 	platform_set_drvdata(pdev, NULL);
 
 	return 0;
@@ -2935,6 +3041,7 @@ static void mv643xx_eth_shutdown(struct platform_device *pdev)
 		port_reset(mp);
 }
 
+
 static struct platform_driver mv643xx_eth_driver = {
 	.probe		= mv643xx_eth_probe,
 	.remove		= mv643xx_eth_remove,
@@ -2942,6 +3049,7 @@ static struct platform_driver mv643xx_eth_driver = {
 	.driver = {
 		.name	= MV643XX_ETH_NAME,
 		.owner	= THIS_MODULE,
+		.of_match_table = mv643xx_eth_match,
 	},
 };
 
-- 
1.7.10.4

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

* [PATCH 2/4] ARM: kirkwood: add device node entries for the gigabit interfaces
  2013-03-29 18:14 [PATCH 0/4] mv643xx_eth device tree bindings Florian Fainelli
  2013-03-29 18:14 ` [PATCH 1/4] mv643xx_eth: add Device Tree bindings Florian Fainelli
@ 2013-03-29 18:14 ` Florian Fainelli
       [not found]   ` <1364580879-4297-3-git-send-email-florian-p3rKhJxN3npAfugRpC6u6w@public.gmane.org>
  2013-03-29 18:14 ` [PATCH 3/4] ARM: orion5x: add gigabit ethernet device tree node Florian Fainelli
  2013-03-29 18:14 ` [PATCH 4/4] ARM: dove: add gigabit device tree nodes to dove.dtsi Florian Fainelli
  3 siblings, 1 reply; 9+ messages in thread
From: Florian Fainelli @ 2013-03-29 18:14 UTC (permalink / raw)
  To: davem
  Cc: netdev, linux-arm-kernel, devicetree-discuss, thomas.petazzoni,
	jm, moinejf, sebastian.hesselbarth, buytenh, andrew, jason,
	grant.likely, rob.herring, Florian Fainelli

This patch modifies kirkwood.dtsi to specify the various gigabit
interfaces nodes available on kirkwood devices. They are disabled by
default and should be enabled on a per-board basis. egiga0 and egiga1
aliases are defined for convenience. The mdio node is also present and
should be enabled on a per-board basis as well.

Signed-off-by: Florian Fainelli <florian@openwrt.org>
---
 arch/arm/boot/dts/kirkwood.dtsi |   46 +++++++++++++++++++++++++++++++++++++++
 arch/arm/mach-kirkwood/common.c |    4 ++--
 2 files changed, 48 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/kirkwood.dtsi b/arch/arm/boot/dts/kirkwood.dtsi
index fada7e6..e0860f8 100644
--- a/arch/arm/boot/dts/kirkwood.dtsi
+++ b/arch/arm/boot/dts/kirkwood.dtsi
@@ -7,6 +7,8 @@
 	aliases {
 	       gpio0 = &gpio0;
 	       gpio1 = &gpio1;
+	       egiga0 = &egiga0;
+	       egiga1 = &egiga1;
 	};
 	intc: interrupt-controller {
 		compatible = "marvell,orion-intc", "marvell,intc";
@@ -202,5 +204,49 @@
 			clocks = <&gate_clk 4>;
 			status = "disabled";
 		};
+
+		mdio@72004 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "marvell,orion-mdio";
+			reg = <0x72004 0x84>;
+			status = "disabled";
+		};
+
+		ethernet-group@70000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "marvell,mv643xx-eth-block";
+			reg = <0x70000 0x4000>;
+			tx-csum-limit = <1600>;
+			status = "disabled";
+
+			egiga0: egiga0@0 {
+				device_type = "network";
+				compatible = "marvell,mv643xx-eth";
+				reg = <0>;
+				interrupts = <11>;
+				clocks = <&gate_clk 0>;
+				clock-names = "0";
+			};
+		};
+
+		ethernet-group@74000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "marvell,mv643xx-eth-block";
+			reg = <0x74000 0x4000>;
+			tx-csum-limit = <1600>;
+			status = "disabled";
+
+			egiga1: egiga1@0 {
+				device_type = "network";
+				compatible = "marvell,mv643xx-eth";
+				reg = <0>;
+				interrupts = <15>;
+				clocks = <&gate_clk 19>;
+				clock-names = "1";
+			};
+		};
 	};
 };
diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c
index 49792a0..a606f9f 100644
--- a/arch/arm/mach-kirkwood/common.c
+++ b/arch/arm/mach-kirkwood/common.c
@@ -251,8 +251,8 @@ void __init kirkwood_clk_init(void)
 	/* clkdev entries, mapping clks to devices */
 	orion_clkdev_add(NULL, "orion_spi.0", runit);
 	orion_clkdev_add(NULL, "orion_spi.1", runit);
-	orion_clkdev_add(NULL, MV643XX_ETH_NAME ".0", ge0);
-	orion_clkdev_add(NULL, MV643XX_ETH_NAME ".1", ge1);
+	orion_clkdev_add("0", MV643XX_ETH_NAME ".0", ge0);
+	orion_clkdev_add("1", MV643XX_ETH_NAME ".1", ge1);
 	orion_clkdev_add(NULL, "orion_wdt", tclk);
 	orion_clkdev_add("0", "sata_mv.0", sata0);
 	orion_clkdev_add("1", "sata_mv.0", sata1);
-- 
1.7.10.4

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

* [PATCH 3/4] ARM: orion5x: add gigabit ethernet device tree node
  2013-03-29 18:14 [PATCH 0/4] mv643xx_eth device tree bindings Florian Fainelli
  2013-03-29 18:14 ` [PATCH 1/4] mv643xx_eth: add Device Tree bindings Florian Fainelli
  2013-03-29 18:14 ` [PATCH 2/4] ARM: kirkwood: add device node entries for the gigabit interfaces Florian Fainelli
@ 2013-03-29 18:14 ` Florian Fainelli
  2013-03-29 18:14 ` [PATCH 4/4] ARM: dove: add gigabit device tree nodes to dove.dtsi Florian Fainelli
  3 siblings, 0 replies; 9+ messages in thread
From: Florian Fainelli @ 2013-03-29 18:14 UTC (permalink / raw)
  To: davem
  Cc: netdev, linux-arm-kernel, devicetree-discuss, thomas.petazzoni,
	jm, moinejf, sebastian.hesselbarth, buytenh, andrew, jason,
	grant.likely, rob.herring, Florian Fainelli

This patch adds the gigabit ethernet device tree node to orion5x.dtsi.
This node is disabled by default and must be enabled on a per-board
basis. For completeness and easier testing the MDIO node is also added
and disabled by default.

Signed-off-by: Florian Fainelli <florian@openwrt.org>
---
 arch/arm/boot/dts/orion5x.dtsi |   23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/arch/arm/boot/dts/orion5x.dtsi b/arch/arm/boot/dts/orion5x.dtsi
index 8aad00f..8d83220 100644
--- a/arch/arm/boot/dts/orion5x.dtsi
+++ b/arch/arm/boot/dts/orion5x.dtsi
@@ -94,5 +94,28 @@
 			interrupts = <22>;
 			status = "okay";
 		};
+
+		mdio@72004 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "marvell,orion-mdio";
+			reg = <0x72004 0x84>;
+			status = "disabled";
+		};
+
+		ethernet-group@70000 {
+			#address-cells = <1>.
+			#size-cells = <0>;
+			compatible = "marvell,mv643xx-eth-block";
+			reg = <0x70000 0x4000>;
+			status = "disabled";
+
+			egiga0: ethernet@0 {
+				device_type = "network";
+				compatible = "marvell,mv643xx-eth";
+				reg = <0>;
+				interrupts = <21>;
+			};
+		};
 	};
 };
-- 
1.7.10.4

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

* [PATCH 4/4] ARM: dove: add gigabit device tree nodes to dove.dtsi
  2013-03-29 18:14 [PATCH 0/4] mv643xx_eth device tree bindings Florian Fainelli
                   ` (2 preceding siblings ...)
  2013-03-29 18:14 ` [PATCH 3/4] ARM: orion5x: add gigabit ethernet device tree node Florian Fainelli
@ 2013-03-29 18:14 ` Florian Fainelli
  3 siblings, 0 replies; 9+ messages in thread
From: Florian Fainelli @ 2013-03-29 18:14 UTC (permalink / raw)
  To: davem
  Cc: netdev, linux-arm-kernel, devicetree-discuss, thomas.petazzoni,
	jm, moinejf, sebastian.hesselbarth, buytenh, andrew, jason,
	grant.likely, rob.herring, Florian Fainelli

This patch adds the gigabit ethernet device tree nodes to dove.dtsi in a
disabled state. The gigabit ethernet device tree node must be enabled on
a per-board basis. For completeness and easier testing the MDIO node is
also added in a disabled state.

Signed-off-by: Florian Fainelli <florian@openwrt.org>
---
 arch/arm/boot/dts/dove.dtsi |   25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/arch/arm/boot/dts/dove.dtsi b/arch/arm/boot/dts/dove.dtsi
index f7509ca..8a24d6b 100644
--- a/arch/arm/boot/dts/dove.dtsi
+++ b/arch/arm/boot/dts/dove.dtsi
@@ -253,5 +253,30 @@
 				dmacap,xor;
 			};
 		};
+
+		mdio@72004 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "marvell,orion-mdio";
+			reg = <0x72004 0x84>;
+			status = "disabled";
+		};
+
+		ethernet-group@70000 {
+			#address-cells = <1>;
+			#size-cells = <0>;
+			compatible = "marvell,mv643xx-eth-block";
+			reg = <0x70000 0x4000>;
+			tx-csum-limit = <1600>;
+			status = "disabled";
+
+			egiga0: ethernet@0 {
+				device_type = "network";
+				compatible = "marvell,mv643xx-eth";
+				reg = <0>;
+				interrupts = <29>;
+				clocks = <&gate_clk 2>;
+			};
+		};
 	};
 };
-- 
1.7.10.4

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

* Re: [PATCH 1/4] mv643xx_eth: add Device Tree bindings
  2013-03-29 18:14 ` [PATCH 1/4] mv643xx_eth: add Device Tree bindings Florian Fainelli
@ 2013-03-29 18:25   ` Florian Fainelli
  0 siblings, 0 replies; 9+ messages in thread
From: Florian Fainelli @ 2013-03-29 18:25 UTC (permalink / raw)
  To: Florian Fainelli
  Cc: davem, netdev, linux-arm-kernel, devicetree-discuss,
	thomas.petazzoni, jm, moinejf, sebastian.hesselbarth, buytenh,
	andrew, jason, grant.likely, rob.herring

Le 03/29/13 19:14, Florian Fainelli a écrit :
> This patch adds Device Tree bindings following the already defined
> bindings at Documentation/devicetree/bindings/marvell.txt. The binding
> documentation is also enhanced with new optionnal properties required
> for supporting certain devices (RX/TX queue and SRAM). Since we now have
> proper support for the orion MDIO bus driver, there is no need to fiddle
> around with device tree phandles.
>
> Signed-off-by: Florian Fainelli <florian@openwrt.org>
> ---

[snip]

>
> -	return 0;
> +	return of_platform_bus_probe(np, mv643xx_eth_match, &pdev->dev);

This breaks on non-OF builds, I will wait for more comments to show up 
and fix this in the next round.
--
Florian

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

* Re: [PATCH 2/4] ARM: kirkwood: add device node entries for the gigabit interfaces
       [not found]   ` <1364580879-4297-3-git-send-email-florian-p3rKhJxN3npAfugRpC6u6w@public.gmane.org>
@ 2013-03-29 18:48     ` Jason Cooper
  2013-03-29 18:51       ` Florian Fainelli
  2013-04-03  9:27     ` Florian Fainelli
  1 sibling, 1 reply; 9+ messages in thread
From: Jason Cooper @ 2013-03-29 18:48 UTC (permalink / raw)
  To: Florian Fainelli
  Cc: moinejf-GANU6spQydw, andrew-g2DYL2Zd6BY,
	netdev-u79uwXL29TY76Z2rM5mHXA,
	devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ,
	rob.herring-bsGFqQB8/DxBDgjK7y7TUQ,
	buytenh-OLH4Qvv75CYX/NnBR394Jw, jm-Pj/HzkgeCk7QXOPxS62xeg,
	davem-fT/PcQaiUtIeIZ0/mPfg9Q,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w

On Fri, Mar 29, 2013 at 07:14:37PM +0100, Florian Fainelli wrote:
> This patch modifies kirkwood.dtsi to specify the various gigabit
> interfaces nodes available on kirkwood devices. They are disabled by
> default and should be enabled on a per-board basis. egiga0 and egiga1
> aliases are defined for convenience. The mdio node is also present and
> should be enabled on a per-board basis as well.
> 
> Signed-off-by: Florian Fainelli <florian-p3rKhJxN3npAfugRpC6u6w@public.gmane.org>
> ---
>  arch/arm/boot/dts/kirkwood.dtsi |   46 +++++++++++++++++++++++++++++++++++++++
>  arch/arm/mach-kirkwood/common.c |    4 ++--
>  2 files changed, 48 insertions(+), 2 deletions(-)
> 
...
> diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c
> index 49792a0..a606f9f 100644
> --- a/arch/arm/mach-kirkwood/common.c
> +++ b/arch/arm/mach-kirkwood/common.c
> @@ -251,8 +251,8 @@ void __init kirkwood_clk_init(void)
>  	/* clkdev entries, mapping clks to devices */
>  	orion_clkdev_add(NULL, "orion_spi.0", runit);
>  	orion_clkdev_add(NULL, "orion_spi.1", runit);
> -	orion_clkdev_add(NULL, MV643XX_ETH_NAME ".0", ge0);
> -	orion_clkdev_add(NULL, MV643XX_ETH_NAME ".1", ge1);
> +	orion_clkdev_add("0", MV643XX_ETH_NAME ".0", ge0);
> +	orion_clkdev_add("1", MV643XX_ETH_NAME ".1", ge1);

Your first patch is going to go through David's tree, and I'd like to
prevent any hard dependency between his tree and arm-soc.  Can this
change be pulled out and applied separately?  At first glance, it looks
like a fix to match sata and pcie.

thx,

Jason.

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

* Re: [PATCH 2/4] ARM: kirkwood: add device node entries for the gigabit interfaces
  2013-03-29 18:48     ` Jason Cooper
@ 2013-03-29 18:51       ` Florian Fainelli
  0 siblings, 0 replies; 9+ messages in thread
From: Florian Fainelli @ 2013-03-29 18:51 UTC (permalink / raw)
  To: Jason Cooper
  Cc: davem, netdev, linux-arm-kernel, devicetree-discuss,
	thomas.petazzoni, jm, moinejf, sebastian.hesselbarth, buytenh,
	andrew, grant.likely, rob.herring

Le 03/29/13 19:48, Jason Cooper a écrit :
> On Fri, Mar 29, 2013 at 07:14:37PM +0100, Florian Fainelli wrote:
>> This patch modifies kirkwood.dtsi to specify the various gigabit
>> interfaces nodes available on kirkwood devices. They are disabled by
>> default and should be enabled on a per-board basis. egiga0 and egiga1
>> aliases are defined for convenience. The mdio node is also present and
>> should be enabled on a per-board basis as well.
>>
>> Signed-off-by: Florian Fainelli <florian@openwrt.org>
>> ---
>>   arch/arm/boot/dts/kirkwood.dtsi |   46 +++++++++++++++++++++++++++++++++++++++
>>   arch/arm/mach-kirkwood/common.c |    4 ++--
>>   2 files changed, 48 insertions(+), 2 deletions(-)
>>
> ...
>> diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c
>> index 49792a0..a606f9f 100644
>> --- a/arch/arm/mach-kirkwood/common.c
>> +++ b/arch/arm/mach-kirkwood/common.c
>> @@ -251,8 +251,8 @@ void __init kirkwood_clk_init(void)
>>   	/* clkdev entries, mapping clks to devices */
>>   	orion_clkdev_add(NULL, "orion_spi.0", runit);
>>   	orion_clkdev_add(NULL, "orion_spi.1", runit);
>> -	orion_clkdev_add(NULL, MV643XX_ETH_NAME ".0", ge0);
>> -	orion_clkdev_add(NULL, MV643XX_ETH_NAME ".1", ge1);
>> +	orion_clkdev_add("0", MV643XX_ETH_NAME ".0", ge0);
>> +	orion_clkdev_add("1", MV643XX_ETH_NAME ".1", ge1);
>
> Your first patch is going to go through David's tree, and I'd like to
> prevent any hard dependency between his tree and arm-soc.  Can this
> change be pulled out and applied separately?  At first glance, it looks
> like a fix to match sata and pcie.

I just actually did the same thing as what SATA has (two clocks with 
names), define a clock name "0" and "1" (is not that too generic BTW?) 
for ge0 and ge1. But I don't think this change is required.
--
Florian

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

* Re: [PATCH 2/4] ARM: kirkwood: add device node entries for the gigabit interfaces
       [not found]   ` <1364580879-4297-3-git-send-email-florian-p3rKhJxN3npAfugRpC6u6w@public.gmane.org>
  2013-03-29 18:48     ` Jason Cooper
@ 2013-04-03  9:27     ` Florian Fainelli
  1 sibling, 0 replies; 9+ messages in thread
From: Florian Fainelli @ 2013-04-03  9:27 UTC (permalink / raw)
  To: Florian Fainelli
  Cc: moinejf-GANU6spQydw, jason-NLaQJdtUoK4Be96aLqz0jA,
	andrew-g2DYL2Zd6BY, netdev-u79uwXL29TY76Z2rM5mHXA,
	devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ,
	rob.herring-bsGFqQB8/DxBDgjK7y7TUQ,
	buytenh-OLH4Qvv75CYX/NnBR394Jw, jm-Pj/HzkgeCk7QXOPxS62xeg,
	davem-fT/PcQaiUtIeIZ0/mPfg9Q,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w

Le 03/29/13 19:14, Florian Fainelli a écrit :
> This patch modifies kirkwood.dtsi to specify the various gigabit
> interfaces nodes available on kirkwood devices. They are disabled by
> default and should be enabled on a per-board basis. egiga0 and egiga1
> aliases are defined for convenience. The mdio node is also present and
> should be enabled on a per-board basis as well.
>
> Signed-off-by: Florian Fainelli <florian@openwrt.org>
> ---

[snip]

> +
> +		ethernet-group@70000 {

This one is off-by 0x2000 and should have been 72000

> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			compatible = "marvell,mv643xx-eth-block";
> +			reg = <0x70000 0x4000>;

Same here

> +			tx-csum-limit = <1600>;
> +			status = "disabled";
> +
> +			egiga0: egiga0@0 {
> +				device_type = "network";
> +				compatible = "marvell,mv643xx-eth";
> +				reg = <0>;
> +				interrupts = <11>;
> +				clocks = <&gate_clk 0>;
> +				clock-names = "0";
> +			};
> +		};
> +
> +		ethernet-group@74000 {

And here, it should be 76000

> +			#address-cells = <1>;
> +			#size-cells = <0>;
> +			compatible = "marvell,mv643xx-eth-block";
> +			reg = <0x74000 0x4000>;

And here too.
--
Florian
_______________________________________________
devicetree-discuss mailing list
devicetree-discuss@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/devicetree-discuss

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

end of thread, other threads:[~2013-04-03  9:27 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-29 18:14 [PATCH 0/4] mv643xx_eth device tree bindings Florian Fainelli
2013-03-29 18:14 ` [PATCH 1/4] mv643xx_eth: add Device Tree bindings Florian Fainelli
2013-03-29 18:25   ` Florian Fainelli
2013-03-29 18:14 ` [PATCH 2/4] ARM: kirkwood: add device node entries for the gigabit interfaces Florian Fainelli
     [not found]   ` <1364580879-4297-3-git-send-email-florian-p3rKhJxN3npAfugRpC6u6w@public.gmane.org>
2013-03-29 18:48     ` Jason Cooper
2013-03-29 18:51       ` Florian Fainelli
2013-04-03  9:27     ` Florian Fainelli
2013-03-29 18:14 ` [PATCH 3/4] ARM: orion5x: add gigabit ethernet device tree node Florian Fainelli
2013-03-29 18:14 ` [PATCH 4/4] ARM: dove: add gigabit device tree nodes to dove.dtsi Florian Fainelli

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