Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1555890 > unrolled thread
| Started by | Florian Fainelli <f.fainelli@gmail.com> |
|---|---|
| First post | 2017-01-10 21:20 +0100 |
| Last post | 2017-01-10 21:20 +0100 |
| Articles | 1 — 1 participant |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH net-next 8/8] ARM: orion: Register DSA switch as a MDIO device Florian Fainelli <f.fainelli@gmail.com> - 2017-01-10 21:20 +0100
| From | Florian Fainelli <f.fainelli@gmail.com> |
|---|---|
| Date | 2017-01-10 21:20 +0100 |
| Subject | [PATCH net-next 8/8] ARM: orion: Register DSA switch as a MDIO device |
| Message-ID | <sYb3H-5OA-13@gated-at.bofh.it> |
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
Back to top | Article view | linux.kernel
csiph-web