提交 7e78e5e5 编写于 作者: K Kumar Gala 提交者: Paul Mackerras

[PATCH] powerpc: Updated platforms that use gianfar to match driver

The gianfar driver changed how it required MDIO bus and phy id's
to be passed to it.  Also, it no longer passes the physical address
of the MDIO bus.  Instead we have a proper platform device.
Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
Signed-off-by: NPaul Mackerras <paulus@samba.org>
上级 135f0b17
...@@ -51,9 +51,6 @@ ...@@ -51,9 +51,6 @@
#include <syslib/ppc83xx_setup.h> #include <syslib/ppc83xx_setup.h>
static const char *GFAR_PHY_0 = "phy0:0";
static const char *GFAR_PHY_1 = "phy0:1";
#ifndef CONFIG_PCI #ifndef CONFIG_PCI
unsigned long isa_io_base = 0; unsigned long isa_io_base = 0;
unsigned long isa_mem_base = 0; unsigned long isa_mem_base = 0;
...@@ -129,20 +126,21 @@ mpc834x_sys_setup_arch(void) ...@@ -129,20 +126,21 @@ mpc834x_sys_setup_arch(void)
mdata->irq[1] = MPC83xx_IRQ_EXT2; mdata->irq[1] = MPC83xx_IRQ_EXT2;
mdata->irq[2] = -1; mdata->irq[2] = -1;
mdata->irq[31] = -1; mdata->irq[31] = -1;
mdata->paddr += binfo->bi_immr_base;
/* setup the board related information for the enet controllers */ /* setup the board related information for the enet controllers */
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC83xx_TSEC1); pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC83xx_TSEC1);
if (pdata) { if (pdata) {
pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
pdata->bus_id = GFAR_PHY_0; pdata->bus_id = 0;
pdata->phy_id = 0;
memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6); memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6);
} }
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC83xx_TSEC2); pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC83xx_TSEC2);
if (pdata) { if (pdata) {
pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
pdata->bus_id = GFAR_PHY_1; pdata->bus_id = 0;
pdata->phy_id = 1;
memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6); memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6);
} }
......
...@@ -52,10 +52,6 @@ ...@@ -52,10 +52,6 @@
#include <syslib/ppc85xx_setup.h> #include <syslib/ppc85xx_setup.h>
static const char *GFAR_PHY_0 = "phy0:0";
static const char *GFAR_PHY_1 = "phy0:1";
static const char *GFAR_PHY_3 = "phy0:3";
/* ************************************************************************ /* ************************************************************************
* *
* Setup the architecture * Setup the architecture
...@@ -102,27 +98,29 @@ mpc8540ads_setup_arch(void) ...@@ -102,27 +98,29 @@ mpc8540ads_setup_arch(void)
mdata->irq[2] = -1; mdata->irq[2] = -1;
mdata->irq[3] = MPC85xx_IRQ_EXT5; mdata->irq[3] = MPC85xx_IRQ_EXT5;
mdata->irq[31] = -1; mdata->irq[31] = -1;
mdata->paddr += binfo->bi_immr_base;
/* setup the board related information for the enet controllers */ /* setup the board related information for the enet controllers */
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC1); pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC1);
if (pdata) { if (pdata) {
pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
pdata->bus_id = GFAR_PHY_0; pdata->bus_id = 0;
pdata->phy_id = 0;
memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6); memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6);
} }
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC2); pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC2);
if (pdata) { if (pdata) {
pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
pdata->bus_id = GFAR_PHY_1; pdata->bus_id = 0;
pdata->phy_id = 1;
memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6); memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6);
} }
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_FEC); pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_FEC);
if (pdata) { if (pdata) {
pdata->board_flags = 0; pdata->board_flags = 0;
pdata->bus_id = GFAR_PHY_3; pdata->bus_id = 0;
pdata->phy_id = 3;
memcpy(pdata->mac_addr, binfo->bi_enet2addr, 6); memcpy(pdata->mac_addr, binfo->bi_enet2addr, 6);
} }
......
...@@ -56,10 +56,6 @@ ...@@ -56,10 +56,6 @@
#include <syslib/ppc85xx_setup.h> #include <syslib/ppc85xx_setup.h>
static const char *GFAR_PHY_0 = "phy0:0";
static const char *GFAR_PHY_1 = "phy0:1";
static const char *GFAR_PHY_3 = "phy0:3";
/* ************************************************************************ /* ************************************************************************
* *
* Setup the architecture * Setup the architecture
...@@ -99,20 +95,21 @@ mpc8560ads_setup_arch(void) ...@@ -99,20 +95,21 @@ mpc8560ads_setup_arch(void)
mdata->irq[2] = -1; mdata->irq[2] = -1;
mdata->irq[3] = MPC85xx_IRQ_EXT5; mdata->irq[3] = MPC85xx_IRQ_EXT5;
mdata->irq[31] = -1; mdata->irq[31] = -1;
mdata->paddr += binfo->bi_immr_base;
/* setup the board related information for the enet controllers */ /* setup the board related information for the enet controllers */
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC1); pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC1);
if (pdata) { if (pdata) {
pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
pdata->bus_id = GFAR_PHY_0; pdata->bus_id = 0;
pdata->phy_id = 0;
memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6); memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6);
} }
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC2); pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC2);
if (pdata) { if (pdata) {
pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
pdata->bus_id = GFAR_PHY_1; pdata->bus_id = 0;
pdata->phy_id = 1;
memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6); memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6);
} }
......
...@@ -395,9 +395,6 @@ mpc85xx_cds_pcibios_fixup(void) ...@@ -395,9 +395,6 @@ mpc85xx_cds_pcibios_fixup(void)
TODC_ALLOC(); TODC_ALLOC();
static const char *GFAR_PHY_0 = "phy0:0";
static const char *GFAR_PHY_1 = "phy0:1";
/* ************************************************************************ /* ************************************************************************
* *
* Setup the architecture * Setup the architecture
...@@ -461,34 +458,37 @@ mpc85xx_cds_setup_arch(void) ...@@ -461,34 +458,37 @@ mpc85xx_cds_setup_arch(void)
mdata->irq[2] = -1; mdata->irq[2] = -1;
mdata->irq[3] = -1; mdata->irq[3] = -1;
mdata->irq[31] = -1; mdata->irq[31] = -1;
mdata->paddr += binfo->bi_immr_base;
/* setup the board related information for the enet controllers */ /* setup the board related information for the enet controllers */
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC1); pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC1);
if (pdata) { if (pdata) {
pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
pdata->bus_id = GFAR_PHY_0; pdata->bus_id = 0;
pdata->phy_id = 0;
memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6); memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6);
} }
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC2); pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC2);
if (pdata) { if (pdata) {
pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
pdata->bus_id = GFAR_PHY_1; pdata->bus_id = 0;
pdata->phy_id = 1;
memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6); memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6);
} }
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_eTSEC1); pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_eTSEC1);
if (pdata) { if (pdata) {
pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
pdata->bus_id = GFAR_PHY_0; pdata->bus_id = 0;
pdata->phy_id = 0;
memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6); memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6);
} }
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_eTSEC2); pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_eTSEC2);
if (pdata) { if (pdata) {
pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
pdata->bus_id = GFAR_PHY_1; pdata->bus_id = 0;
pdata->phy_id = 1;
memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6); memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6);
} }
......
...@@ -91,9 +91,6 @@ sbc8560_early_serial_map(void) ...@@ -91,9 +91,6 @@ sbc8560_early_serial_map(void)
} }
#endif #endif
static const char *GFAR_PHY_25 = "phy0:25";
static const char *GFAR_PHY_26 = "phy0:26";
/* ************************************************************************ /* ************************************************************************
* *
* Setup the architecture * Setup the architecture
...@@ -136,20 +133,21 @@ sbc8560_setup_arch(void) ...@@ -136,20 +133,21 @@ sbc8560_setup_arch(void)
mdata->irq[25] = MPC85xx_IRQ_EXT6; mdata->irq[25] = MPC85xx_IRQ_EXT6;
mdata->irq[26] = MPC85xx_IRQ_EXT7; mdata->irq[26] = MPC85xx_IRQ_EXT7;
mdata->irq[31] = -1; mdata->irq[31] = -1;
mdata->paddr += binfo->bi_immr_base;
/* setup the board related information for the enet controllers */ /* setup the board related information for the enet controllers */
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC1); pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC1);
if (pdata) { if (pdata) {
pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
pdata->bus_id = GFAR_PHY_25; pdata->bus_id = 0;
pdata->phy_id = 25;
memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6); memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6);
} }
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC2); pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC2);
if (pdata) { if (pdata) {
pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
pdata->bus_id = GFAR_PHY_26; pdata->bus_id = 0;
pdata->phy_id = 26;
memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6); memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6);
} }
......
...@@ -93,9 +93,6 @@ static u8 gp3_openpic_initsenses[] __initdata = { ...@@ -93,9 +93,6 @@ static u8 gp3_openpic_initsenses[] __initdata = {
0x0, /* External 11: */ 0x0, /* External 11: */
}; };
static const char *GFAR_PHY_2 = "phy0:2";
static const char *GFAR_PHY_4 = "phy0:4";
/* /*
* Setup the architecture * Setup the architecture
*/ */
...@@ -130,20 +127,21 @@ gp3_setup_arch(void) ...@@ -130,20 +127,21 @@ gp3_setup_arch(void)
mdata->irq[2] = MPC85xx_IRQ_EXT5; mdata->irq[2] = MPC85xx_IRQ_EXT5;
mdata->irq[4] = MPC85xx_IRQ_EXT5; mdata->irq[4] = MPC85xx_IRQ_EXT5;
mdata->irq[31] = -1; mdata->irq[31] = -1;
mdata->paddr += binfo->bi_immr_base;
/* setup the board related information for the enet controllers */ /* setup the board related information for the enet controllers */
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC1); pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC1);
if (pdata) { if (pdata) {
/* pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; */ /* pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; */
pdata->bus_id = GFAR_PHY_2; pdata->bus_id = 0;
pdata->phy_id = 2;
memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6); memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6);
} }
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC2); pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC2);
if (pdata) { if (pdata) {
/* pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; */ /* pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; */
pdata->bus_id = GFAR_PHY_4; pdata->bus_id = 0;
pdata->phy_id = 4;
memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6); memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6);
} }
......
...@@ -91,12 +91,6 @@ static u_char tqm85xx_openpic_initsenses[] __initdata = { ...@@ -91,12 +91,6 @@ static u_char tqm85xx_openpic_initsenses[] __initdata = {
0x0, /* External 11: */ 0x0, /* External 11: */
}; };
static const char *GFAR_PHY_0 = "phy0:2";
static const char *GFAR_PHY_1 = "phy0:1";
#ifdef CONFIG_MPC8540
static const char *GFAR_PHY_3 = "phy0:3";
#endif
/* ************************************************************************ /* ************************************************************************
* *
* Setup the architecture * Setup the architecture
...@@ -149,20 +143,21 @@ tqm85xx_setup_arch(void) ...@@ -149,20 +143,21 @@ tqm85xx_setup_arch(void)
mdata->irq[2] = -1; mdata->irq[2] = -1;
mdata->irq[3] = MPC85xx_IRQ_EXT8; mdata->irq[3] = MPC85xx_IRQ_EXT8;
mdata->irq[31] = -1; mdata->irq[31] = -1;
mdata->paddr += binfo->bi_immr_base;
/* setup the board related information for the enet controllers */ /* setup the board related information for the enet controllers */
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC1); pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC1);
if (pdata) { if (pdata) {
pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
pdata->bus_id = GFAR_PHY_0; pdata->bus_id = 0;
pdata->phy_id = 2;
memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6); memcpy(pdata->mac_addr, binfo->bi_enetaddr, 6);
} }
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC2); pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_TSEC2);
if (pdata) { if (pdata) {
pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR; pdata->board_flags = FSL_GIANFAR_BRD_HAS_PHY_INTR;
pdata->bus_id = GFAR_PHY_1; pdata->bus_id = 0;
pdata->phy_id = 1;
memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6); memcpy(pdata->mac_addr, binfo->bi_enet1addr, 6);
} }
...@@ -170,7 +165,8 @@ tqm85xx_setup_arch(void) ...@@ -170,7 +165,8 @@ tqm85xx_setup_arch(void)
pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_FEC); pdata = (struct gianfar_platform_data *) ppc_sys_get_pdata(MPC85xx_FEC);
if (pdata) { if (pdata) {
pdata->board_flags = 0; pdata->board_flags = 0;
pdata->bus_id = GFAR_PHY_3; pdata->bus_id = 0;
pdata->phy_id = 3;
memcpy(pdata->mac_addr, binfo->bi_enet2addr, 6); memcpy(pdata->mac_addr, binfo->bi_enet2addr, 6);
} }
#endif #endif
......
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
*/ */
struct gianfar_mdio_data mpc83xx_mdio_pdata = { struct gianfar_mdio_data mpc83xx_mdio_pdata = {
.paddr = 0x24520,
}; };
static struct gianfar_platform_data mpc83xx_tsec1_pdata = { static struct gianfar_platform_data mpc83xx_tsec1_pdata = {
...@@ -226,7 +225,14 @@ struct platform_device ppc_sys_platform_devices[] = { ...@@ -226,7 +225,14 @@ struct platform_device ppc_sys_platform_devices[] = {
.name = "fsl-gianfar_mdio", .name = "fsl-gianfar_mdio",
.id = 0, .id = 0,
.dev.platform_data = &mpc83xx_mdio_pdata, .dev.platform_data = &mpc83xx_mdio_pdata,
.num_resources = 0, .num_resources = 1,
.resource = (struct resource[]) {
{
.start = 0x24520,
.end = 0x2453f,
.flags = IORESOURCE_MEM,
},
},
}, },
}; };
......
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
* what CCSRBAR is, will get fixed up by mach_mpc85xx_fixup * what CCSRBAR is, will get fixed up by mach_mpc85xx_fixup
*/ */
struct gianfar_mdio_data mpc85xx_mdio_pdata = { struct gianfar_mdio_data mpc85xx_mdio_pdata = {
.paddr = MPC85xx_MIIM_OFFSET,
}; };
static struct gianfar_platform_data mpc85xx_tsec1_pdata = { static struct gianfar_platform_data mpc85xx_tsec1_pdata = {
...@@ -720,7 +719,14 @@ struct platform_device ppc_sys_platform_devices[] = { ...@@ -720,7 +719,14 @@ struct platform_device ppc_sys_platform_devices[] = {
.name = "fsl-gianfar_mdio", .name = "fsl-gianfar_mdio",
.id = 0, .id = 0,
.dev.platform_data = &mpc85xx_mdio_pdata, .dev.platform_data = &mpc85xx_mdio_pdata,
.num_resources = 0, .num_resources = 1,
.resource = (struct resource[]) {
{
.start = 0x24520,
.end = 0x2453f,
.flags = IORESOURCE_MEM,
},
},
}, },
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册