All of lore.kernel.org
 help / color / mirror / Atom feed
From: f.fainelli@gmail.com (Florian Fainelli)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH net-next 8/8] ARM: orion: Register DSA switch as a MDIO device
Date: Tue, 10 Jan 2017 12:12:35 -0800	[thread overview]
Message-ID: <20170110201235.21771-9-f.fainelli@gmail.com> (raw)
In-Reply-To: <20170110201235.21771-1-f.fainelli@gmail.com>

Utilize the ability to pass board specific MDIO bus information towards a
particular MDIO device thus allowing us to provide the per-port switch layout
to the Marvell 88E6XXX switch driver.

Since we would end-up with conflicting registration paths, do not register the
"dsa" platform device anymore.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
 arch/arm/plat-orion/common.c | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/arch/arm/plat-orion/common.c b/arch/arm/plat-orion/common.c
index 272f49b2c68f..1d8f4ad1ac9a 100644
--- a/arch/arm/plat-orion/common.c
+++ b/arch/arm/plat-orion/common.c
@@ -22,6 +22,7 @@
 #include <linux/platform_data/dma-mv_xor.h>
 #include <linux/platform_data/usb-ehci-orion.h>
 #include <plat/common.h>
+#include <linux/phy.h>
 
 /* Create a clkdev entry for a given device/clk */
 void __init orion_clkdev_add(const char *con_id, const char *dev_id,
@@ -470,15 +471,27 @@ void __init orion_ge11_init(struct mv643xx_eth_platform_data *eth_data,
 /*****************************************************************************
  * Ethernet switch
  ****************************************************************************/
+static __initdata const char *orion_ge00_mvmdio_bus_name = "orion-mii";
+static __initdata struct mdio_board_info
+		  orion_ge00_switch_board_info[DSA_MAX_SWITCHES];
+
 void __init orion_ge00_switch_init(struct dsa_platform_data *d)
 {
+	struct mdio_board_info *bd;
 	int i;
 
 	d->netdev = &orion_ge00.dev;
-	for (i = 0; i < d->nr_chips; i++)
-		d->chip[i].host_dev = &orion_ge_mvmdio.dev;
+	for (i = 0; i < d->nr_chips; i++) {
+		bd = &orion_ge00_switch_board_info[i];
+		bd->bus_id = orion_ge00_mvmdio_bus_name;
+		bd->mdio_addr = d->chip[i].sw_addr;
+		strcpy(bd->modalias, "mv88e6085");
+		bd->platform_data = d;
+	}
+
+	mdiobus_register_board_info(orion_ge00_switch_board_info,
+				    ARRAY_SIZE(orion_ge00_switch_board_info));
 
-	platform_device_register_data(NULL, "dsa", 0, d, sizeof(d));
 }
 
 /*****************************************************************************
-- 
2.9.3

WARNING: multiple messages have this Message-ID (diff)
From: Florian Fainelli <f.fainelli@gmail.com>
To: netdev@vger.kernel.org
Cc: Florian Fainelli <f.fainelli@gmail.com>,
	Jason Cooper <jason@lakedaemon.net>, Andrew Lunn <andrew@lunn.ch>,
	Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,
	Gregory Clement <gregory.clement@free-electrons.com>,
	Russell King <linux@armlinux.org.uk>,
	Vivien Didelot <vivien.didelot@savoirfairelinux.com>,
	"David S. Miller" <davem@davemloft.net>,
	Philippe Reynes <tremyfr@gmail.com>,
	Martin Schwidefsky <schwidefsky@de.ibm.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Stuart Yoder <stuart.yoder@nxp.com>,
	Ingo Tuchscherer <ingo.tuchscherer@linux.vnet.ibm.com>,
	linux-arm-kernel@lists.infradead.org (moderated list:ARM/Marvell
	Dove/MV78xx0/Orion SOC support),
	linux-kernel@vger.kernel.org (open list)
Subject: [PATCH net-next 8/8] ARM: orion: Register DSA switch as a MDIO device
Date: Tue, 10 Jan 2017 12:12:35 -0800	[thread overview]
Message-ID: <20170110201235.21771-9-f.fainelli@gmail.com> (raw)
In-Reply-To: <20170110201235.21771-1-f.fainelli@gmail.com>

Utilize the ability to pass board specific MDIO bus information towards a
particular MDIO device thus allowing us to provide the per-port switch layout
to the Marvell 88E6XXX switch driver.

Since we would end-up with conflicting registration paths, do not register the
"dsa" platform device anymore.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
 arch/arm/plat-orion/common.c | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/arch/arm/plat-orion/common.c b/arch/arm/plat-orion/common.c
index 272f49b2c68f..1d8f4ad1ac9a 100644
--- a/arch/arm/plat-orion/common.c
+++ b/arch/arm/plat-orion/common.c
@@ -22,6 +22,7 @@
 #include <linux/platform_data/dma-mv_xor.h>
 #include <linux/platform_data/usb-ehci-orion.h>
 #include <plat/common.h>
+#include <linux/phy.h>
 
 /* Create a clkdev entry for a given device/clk */
 void __init orion_clkdev_add(const char *con_id, const char *dev_id,
@@ -470,15 +471,27 @@ void __init orion_ge11_init(struct mv643xx_eth_platform_data *eth_data,
 /*****************************************************************************
  * Ethernet switch
  ****************************************************************************/
+static __initdata const char *orion_ge00_mvmdio_bus_name = "orion-mii";
+static __initdata struct mdio_board_info
+		  orion_ge00_switch_board_info[DSA_MAX_SWITCHES];
+
 void __init orion_ge00_switch_init(struct dsa_platform_data *d)
 {
+	struct mdio_board_info *bd;
 	int i;
 
 	d->netdev = &orion_ge00.dev;
-	for (i = 0; i < d->nr_chips; i++)
-		d->chip[i].host_dev = &orion_ge_mvmdio.dev;
+	for (i = 0; i < d->nr_chips; i++) {
+		bd = &orion_ge00_switch_board_info[i];
+		bd->bus_id = orion_ge00_mvmdio_bus_name;
+		bd->mdio_addr = d->chip[i].sw_addr;
+		strcpy(bd->modalias, "mv88e6085");
+		bd->platform_data = d;
+	}
+
+	mdiobus_register_board_info(orion_ge00_switch_board_info,
+				    ARRAY_SIZE(orion_ge00_switch_board_info));
 
-	platform_device_register_data(NULL, "dsa", 0, d, sizeof(d));
 }
 
 /*****************************************************************************
-- 
2.9.3

  parent reply	other threads:[~2017-01-10 20:12 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-10 20:12 [PATCH net-next 0/8] net: dsa: Support for pdata in dsa2 Florian Fainelli
2017-01-10 20:12 ` Florian Fainelli
2017-01-10 20:12 ` [PATCH net-next 1/8] net: dsa: Pass device pointer to dsa_register_switch Florian Fainelli
2017-01-10 20:12   ` Florian Fainelli
2017-01-10 20:12   ` Florian Fainelli
2017-01-10 20:12 ` [PATCH net-next 2/8] net: dsa: Make most functions take a dsa_port argument Florian Fainelli
2017-01-10 20:12   ` Florian Fainelli
2017-01-10 20:12   ` Florian Fainelli
2017-01-10 20:12 ` [PATCH net-next 3/8] net: dsa: Suffix function manipulating device_node with _dn Florian Fainelli
2017-01-10 20:12   ` Florian Fainelli
2017-01-10 20:12 ` [PATCH net-next 4/8] net: dsa: Move ports assignment closer to error checking Florian Fainelli
2017-01-10 20:12   ` Florian Fainelli
2017-01-10 20:12   ` Florian Fainelli
2017-01-10 20:12 ` [PATCH net-next 5/8] net: dsa: Export dev_to_net_device() Florian Fainelli
2017-01-10 20:12   ` Florian Fainelli
2017-01-10 20:12   ` Florian Fainelli
2017-01-11  2:24   ` David Miller
2017-01-11  2:24     ` David Miller
2017-01-10 20:12 ` [PATCH net-next 6/8] net: dsa: Add support for platform data Florian Fainelli
2017-01-10 20:12   ` Florian Fainelli
2017-01-10 20:41   ` Andrew Lunn
2017-01-10 20:41     ` Andrew Lunn
2017-01-10 21:06     ` Florian Fainelli
2017-01-10 21:06       ` Florian Fainelli
2017-01-10 21:21       ` Andrew Lunn
2017-01-10 21:21         ` Andrew Lunn
2017-01-10 21:21         ` Andrew Lunn
2017-01-10 22:15         ` Florian Fainelli
2017-01-10 22:15           ` Florian Fainelli
2017-01-10 20:12 ` [PATCH net-next 7/8] net: phy: Allow pre-declaration of MDIO devices Florian Fainelli
2017-01-10 20:12   ` Florian Fainelli
2017-01-10 20:12 ` Florian Fainelli [this message]
2017-01-10 20:12   ` [PATCH net-next 8/8] ARM: orion: Register DSA switch as a MDIO device Florian Fainelli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170110201235.21771-9-f.fainelli@gmail.com \
    --to=f.fainelli@gmail.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.