Merge branch 'for-2.6.28' of git://git.marvell.com/mv643xx_eth into upstream-next
This commit is contained in:
commit
ae19161e28
24 changed files with 838 additions and 795 deletions
|
@ -25,7 +25,7 @@
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
static struct mv643xx_eth_platform_data db88f6281_ge00_data = {
|
static struct mv643xx_eth_platform_data db88f6281_ge00_data = {
|
||||||
.phy_addr = 8,
|
.phy_addr = MV643XX_ETH_PHY_ADDR(8),
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct mv_sata_platform_data db88f6281_sata_data = {
|
static struct mv_sata_platform_data db88f6281_sata_data = {
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
#define RD88F6192_GPIO_USB_VBUS 10
|
#define RD88F6192_GPIO_USB_VBUS 10
|
||||||
|
|
||||||
static struct mv643xx_eth_platform_data rd88f6192_ge00_data = {
|
static struct mv643xx_eth_platform_data rd88f6192_ge00_data = {
|
||||||
.phy_addr = 8,
|
.phy_addr = MV643XX_ETH_PHY_ADDR(8),
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct mv_sata_platform_data rd88f6192_sata_data = {
|
static struct mv_sata_platform_data rd88f6192_sata_data = {
|
||||||
|
|
|
@ -69,7 +69,7 @@ static struct platform_device rd88f6281_nand_flash = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct mv643xx_eth_platform_data rd88f6281_ge00_data = {
|
static struct mv643xx_eth_platform_data rd88f6281_ge00_data = {
|
||||||
.phy_addr = -1,
|
.phy_addr = MV643XX_ETH_PHY_NONE,
|
||||||
.speed = SPEED_1000,
|
.speed = SPEED_1000,
|
||||||
.duplex = DUPLEX_FULL,
|
.duplex = DUPLEX_FULL,
|
||||||
};
|
};
|
||||||
|
|
|
@ -67,7 +67,7 @@ static struct platform_device lb88rc8480_boot_flash = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct mv643xx_eth_platform_data lb88rc8480_ge0_data = {
|
static struct mv643xx_eth_platform_data lb88rc8480_ge0_data = {
|
||||||
.phy_addr = 1,
|
.phy_addr = MV643XX_ETH_PHY_ADDR(1),
|
||||||
.mac_addr = { 0x00, 0x50, 0x43, 0x11, 0x22, 0x33 },
|
.mac_addr = { 0x00, 0x50, 0x43, 0x11, 0x22, 0x33 },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -330,6 +330,7 @@ void __init mv78xx0_ge00_init(struct mv643xx_eth_platform_data *eth_data)
|
||||||
struct mv643xx_eth_shared_platform_data mv78xx0_ge01_shared_data = {
|
struct mv643xx_eth_shared_platform_data mv78xx0_ge01_shared_data = {
|
||||||
.t_clk = 0,
|
.t_clk = 0,
|
||||||
.dram = &mv78xx0_mbus_dram_info,
|
.dram = &mv78xx0_mbus_dram_info,
|
||||||
|
.shared_smi = &mv78xx0_ge00_shared,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct resource mv78xx0_ge01_shared_resources[] = {
|
static struct resource mv78xx0_ge01_shared_resources[] = {
|
||||||
|
@ -370,7 +371,6 @@ static struct platform_device mv78xx0_ge01 = {
|
||||||
void __init mv78xx0_ge01_init(struct mv643xx_eth_platform_data *eth_data)
|
void __init mv78xx0_ge01_init(struct mv643xx_eth_platform_data *eth_data)
|
||||||
{
|
{
|
||||||
eth_data->shared = &mv78xx0_ge01_shared;
|
eth_data->shared = &mv78xx0_ge01_shared;
|
||||||
eth_data->shared_smi = &mv78xx0_ge00_shared;
|
|
||||||
mv78xx0_ge01.dev.platform_data = eth_data;
|
mv78xx0_ge01.dev.platform_data = eth_data;
|
||||||
|
|
||||||
platform_device_register(&mv78xx0_ge01_shared);
|
platform_device_register(&mv78xx0_ge01_shared);
|
||||||
|
@ -384,6 +384,7 @@ void __init mv78xx0_ge01_init(struct mv643xx_eth_platform_data *eth_data)
|
||||||
struct mv643xx_eth_shared_platform_data mv78xx0_ge10_shared_data = {
|
struct mv643xx_eth_shared_platform_data mv78xx0_ge10_shared_data = {
|
||||||
.t_clk = 0,
|
.t_clk = 0,
|
||||||
.dram = &mv78xx0_mbus_dram_info,
|
.dram = &mv78xx0_mbus_dram_info,
|
||||||
|
.shared_smi = &mv78xx0_ge00_shared,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct resource mv78xx0_ge10_shared_resources[] = {
|
static struct resource mv78xx0_ge10_shared_resources[] = {
|
||||||
|
@ -424,7 +425,6 @@ static struct platform_device mv78xx0_ge10 = {
|
||||||
void __init mv78xx0_ge10_init(struct mv643xx_eth_platform_data *eth_data)
|
void __init mv78xx0_ge10_init(struct mv643xx_eth_platform_data *eth_data)
|
||||||
{
|
{
|
||||||
eth_data->shared = &mv78xx0_ge10_shared;
|
eth_data->shared = &mv78xx0_ge10_shared;
|
||||||
eth_data->shared_smi = &mv78xx0_ge00_shared;
|
|
||||||
mv78xx0_ge10.dev.platform_data = eth_data;
|
mv78xx0_ge10.dev.platform_data = eth_data;
|
||||||
|
|
||||||
platform_device_register(&mv78xx0_ge10_shared);
|
platform_device_register(&mv78xx0_ge10_shared);
|
||||||
|
@ -438,6 +438,7 @@ void __init mv78xx0_ge10_init(struct mv643xx_eth_platform_data *eth_data)
|
||||||
struct mv643xx_eth_shared_platform_data mv78xx0_ge11_shared_data = {
|
struct mv643xx_eth_shared_platform_data mv78xx0_ge11_shared_data = {
|
||||||
.t_clk = 0,
|
.t_clk = 0,
|
||||||
.dram = &mv78xx0_mbus_dram_info,
|
.dram = &mv78xx0_mbus_dram_info,
|
||||||
|
.shared_smi = &mv78xx0_ge00_shared,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct resource mv78xx0_ge11_shared_resources[] = {
|
static struct resource mv78xx0_ge11_shared_resources[] = {
|
||||||
|
@ -478,7 +479,6 @@ static struct platform_device mv78xx0_ge11 = {
|
||||||
void __init mv78xx0_ge11_init(struct mv643xx_eth_platform_data *eth_data)
|
void __init mv78xx0_ge11_init(struct mv643xx_eth_platform_data *eth_data)
|
||||||
{
|
{
|
||||||
eth_data->shared = &mv78xx0_ge11_shared;
|
eth_data->shared = &mv78xx0_ge11_shared;
|
||||||
eth_data->shared_smi = &mv78xx0_ge00_shared;
|
|
||||||
mv78xx0_ge11.dev.platform_data = eth_data;
|
mv78xx0_ge11.dev.platform_data = eth_data;
|
||||||
|
|
||||||
platform_device_register(&mv78xx0_ge11_shared);
|
platform_device_register(&mv78xx0_ge11_shared);
|
||||||
|
|
|
@ -19,19 +19,19 @@
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
static struct mv643xx_eth_platform_data db78x00_ge00_data = {
|
static struct mv643xx_eth_platform_data db78x00_ge00_data = {
|
||||||
.phy_addr = 8,
|
.phy_addr = MV643XX_ETH_PHY_ADDR(8),
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct mv643xx_eth_platform_data db78x00_ge01_data = {
|
static struct mv643xx_eth_platform_data db78x00_ge01_data = {
|
||||||
.phy_addr = 9,
|
.phy_addr = MV643XX_ETH_PHY_ADDR(9),
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct mv643xx_eth_platform_data db78x00_ge10_data = {
|
static struct mv643xx_eth_platform_data db78x00_ge10_data = {
|
||||||
.phy_addr = -1,
|
.phy_addr = MV643XX_ETH_PHY_NONE,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct mv643xx_eth_platform_data db78x00_ge11_data = {
|
static struct mv643xx_eth_platform_data db78x00_ge11_data = {
|
||||||
.phy_addr = -1,
|
.phy_addr = MV643XX_ETH_PHY_NONE,
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct mv_sata_platform_data db78x00_sata_data = {
|
static struct mv_sata_platform_data db78x00_sata_data = {
|
||||||
|
|
|
@ -285,7 +285,7 @@ subsys_initcall(db88f5281_pci_init);
|
||||||
* Ethernet
|
* Ethernet
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
static struct mv643xx_eth_platform_data db88f5281_eth_data = {
|
static struct mv643xx_eth_platform_data db88f5281_eth_data = {
|
||||||
.phy_addr = 8,
|
.phy_addr = MV643XX_ETH_PHY_ADDR(8),
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
|
|
@ -79,7 +79,7 @@ subsys_initcall(dns323_pci_init);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static struct mv643xx_eth_platform_data dns323_eth_data = {
|
static struct mv643xx_eth_platform_data dns323_eth_data = {
|
||||||
.phy_addr = 8,
|
.phy_addr = MV643XX_ETH_PHY_ADDR(8),
|
||||||
};
|
};
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
|
|
@ -161,7 +161,7 @@ subsys_initcall(kurobox_pro_pci_init);
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static struct mv643xx_eth_platform_data kurobox_pro_eth_data = {
|
static struct mv643xx_eth_platform_data kurobox_pro_eth_data = {
|
||||||
.phy_addr = 8,
|
.phy_addr = MV643XX_ETH_PHY_ADDR(8),
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
|
|
@ -109,7 +109,7 @@ subsys_initcall(mss2_pci_init);
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static struct mv643xx_eth_platform_data mss2_eth_data = {
|
static struct mv643xx_eth_platform_data mss2_eth_data = {
|
||||||
.phy_addr = 8,
|
.phy_addr = MV643XX_ETH_PHY_ADDR(8),
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
* Ethernet
|
* Ethernet
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
static struct mv643xx_eth_platform_data mv2120_eth_data = {
|
static struct mv643xx_eth_platform_data mv2120_eth_data = {
|
||||||
.phy_addr = 8,
|
.phy_addr = MV643XX_ETH_PHY_ADDR(8),
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct mv_sata_platform_data mv2120_sata_data = {
|
static struct mv_sata_platform_data mv2120_sata_data = {
|
||||||
|
|
|
@ -88,7 +88,7 @@ static struct orion5x_mpp_mode rd88f5181l_fxo_mpp_modes[] __initdata = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct mv643xx_eth_platform_data rd88f5181l_fxo_eth_data = {
|
static struct mv643xx_eth_platform_data rd88f5181l_fxo_eth_data = {
|
||||||
.phy_addr = -1,
|
.phy_addr = MV643XX_ETH_PHY_NONE,
|
||||||
.speed = SPEED_1000,
|
.speed = SPEED_1000,
|
||||||
.duplex = DUPLEX_FULL,
|
.duplex = DUPLEX_FULL,
|
||||||
};
|
};
|
||||||
|
|
|
@ -89,7 +89,7 @@ static struct orion5x_mpp_mode rd88f5181l_ge_mpp_modes[] __initdata = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct mv643xx_eth_platform_data rd88f5181l_ge_eth_data = {
|
static struct mv643xx_eth_platform_data rd88f5181l_ge_eth_data = {
|
||||||
.phy_addr = -1,
|
.phy_addr = MV643XX_ETH_PHY_NONE,
|
||||||
.speed = SPEED_1000,
|
.speed = SPEED_1000,
|
||||||
.duplex = DUPLEX_FULL,
|
.duplex = DUPLEX_FULL,
|
||||||
};
|
};
|
||||||
|
|
|
@ -221,7 +221,7 @@ subsys_initcall(rd88f5182_pci_init);
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static struct mv643xx_eth_platform_data rd88f5182_eth_data = {
|
static struct mv643xx_eth_platform_data rd88f5182_eth_data = {
|
||||||
.phy_addr = 8,
|
.phy_addr = MV643XX_ETH_PHY_ADDR(8),
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
|
|
@ -103,8 +103,7 @@ static struct platform_device ts78xx_nor_boot_flash = {
|
||||||
* Ethernet
|
* Ethernet
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
static struct mv643xx_eth_platform_data ts78xx_eth_data = {
|
static struct mv643xx_eth_platform_data ts78xx_eth_data = {
|
||||||
.phy_addr = 0,
|
.phy_addr = MV643XX_ETH_PHY_ADDR(0),
|
||||||
.force_phy_addr = 1,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
|
|
@ -48,7 +48,7 @@ void qnap_tsx09_power_off(void)
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
struct mv643xx_eth_platform_data qnap_tsx09_eth_data = {
|
struct mv643xx_eth_platform_data qnap_tsx09_eth_data = {
|
||||||
.phy_addr = 8,
|
.phy_addr = MV643XX_ETH_PHY_ADDR(8),
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __init qnap_tsx09_parse_hex_nibble(char n)
|
static int __init qnap_tsx09_parse_hex_nibble(char n)
|
||||||
|
|
|
@ -92,7 +92,7 @@ static struct platform_device wnr854t_nor_flash = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct mv643xx_eth_platform_data wnr854t_eth_data = {
|
static struct mv643xx_eth_platform_data wnr854t_eth_data = {
|
||||||
.phy_addr = -1,
|
.phy_addr = MV643XX_ETH_PHY_NONE,
|
||||||
.speed = SPEED_1000,
|
.speed = SPEED_1000,
|
||||||
.duplex = DUPLEX_FULL,
|
.duplex = DUPLEX_FULL,
|
||||||
};
|
};
|
||||||
|
|
|
@ -100,7 +100,7 @@ static struct platform_device wrt350n_v2_nor_flash = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct mv643xx_eth_platform_data wrt350n_v2_eth_data = {
|
static struct mv643xx_eth_platform_data wrt350n_v2_eth_data = {
|
||||||
.phy_addr = -1,
|
.phy_addr = MV643XX_ETH_PHY_NONE,
|
||||||
.speed = SPEED_1000,
|
.speed = SPEED_1000,
|
||||||
.duplex = DUPLEX_FULL,
|
.duplex = DUPLEX_FULL,
|
||||||
};
|
};
|
||||||
|
|
|
@ -293,10 +293,8 @@ static int __init mv64x60_eth_device_setup(struct device_node *np, int id,
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
prop = of_get_property(phy, "reg", NULL);
|
prop = of_get_property(phy, "reg", NULL);
|
||||||
if (prop) {
|
if (prop)
|
||||||
pdata.force_phy_addr = 1;
|
pdata.phy_addr = MV643XX_ETH_PHY_ADDR(*prop);
|
||||||
pdata.phy_addr = *prop;
|
|
||||||
}
|
|
||||||
|
|
||||||
of_node_put(phy);
|
of_node_put(phy);
|
||||||
|
|
||||||
|
|
|
@ -2274,7 +2274,7 @@ config UGETH_TX_ON_DEMAND
|
||||||
config MV643XX_ETH
|
config MV643XX_ETH
|
||||||
tristate "Marvell Discovery (643XX) and Orion ethernet support"
|
tristate "Marvell Discovery (643XX) and Orion ethernet support"
|
||||||
depends on MV64360 || MV64X60 || (PPC_MULTIPLATFORM && PPC32) || PLAT_ORION
|
depends on MV64360 || MV64X60 || (PPC_MULTIPLATFORM && PPC32) || PLAT_ORION
|
||||||
select MII
|
select PHYLIB
|
||||||
help
|
help
|
||||||
This driver supports the gigabit ethernet MACs in the
|
This driver supports the gigabit ethernet MACs in the
|
||||||
Marvell Discovery PPC/MIPS chipset family (MV643XX) and
|
Marvell Discovery PPC/MIPS chipset family (MV643XX) and
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -60,49 +60,14 @@ int mdiobus_register(struct mii_bus *bus)
|
||||||
bus->reset(bus);
|
bus->reset(bus);
|
||||||
|
|
||||||
for (i = 0; i < PHY_MAX_ADDR; i++) {
|
for (i = 0; i < PHY_MAX_ADDR; i++) {
|
||||||
struct phy_device *phydev;
|
bus->phy_map[i] = NULL;
|
||||||
|
if ((bus->phy_mask & (1 << i)) == 0) {
|
||||||
|
struct phy_device *phydev;
|
||||||
|
|
||||||
if (bus->phy_mask & (1 << i)) {
|
phydev = mdiobus_scan(bus, i);
|
||||||
bus->phy_map[i] = NULL;
|
if (IS_ERR(phydev))
|
||||||
continue;
|
err = PTR_ERR(phydev);
|
||||||
}
|
}
|
||||||
|
|
||||||
phydev = get_phy_device(bus, i);
|
|
||||||
|
|
||||||
if (IS_ERR(phydev))
|
|
||||||
return PTR_ERR(phydev);
|
|
||||||
|
|
||||||
/* There's a PHY at this address
|
|
||||||
* We need to set:
|
|
||||||
* 1) IRQ
|
|
||||||
* 2) bus_id
|
|
||||||
* 3) parent
|
|
||||||
* 4) bus
|
|
||||||
* 5) mii_bus
|
|
||||||
* And, we need to register it */
|
|
||||||
if (phydev) {
|
|
||||||
phydev->irq = bus->irq[i];
|
|
||||||
|
|
||||||
phydev->dev.parent = bus->dev;
|
|
||||||
phydev->dev.bus = &mdio_bus_type;
|
|
||||||
snprintf(phydev->dev.bus_id, BUS_ID_SIZE, PHY_ID_FMT, bus->id, i);
|
|
||||||
|
|
||||||
phydev->bus = bus;
|
|
||||||
|
|
||||||
/* Run all of the fixups for this PHY */
|
|
||||||
phy_scan_fixups(phydev);
|
|
||||||
|
|
||||||
err = device_register(&phydev->dev);
|
|
||||||
|
|
||||||
if (err) {
|
|
||||||
printk(KERN_ERR "phy %d failed to register\n",
|
|
||||||
i);
|
|
||||||
phy_device_free(phydev);
|
|
||||||
phydev = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bus->phy_map[i] = phydev;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pr_info("%s: probed\n", bus->name);
|
pr_info("%s: probed\n", bus->name);
|
||||||
|
@ -122,6 +87,48 @@ void mdiobus_unregister(struct mii_bus *bus)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(mdiobus_unregister);
|
EXPORT_SYMBOL(mdiobus_unregister);
|
||||||
|
|
||||||
|
struct phy_device *mdiobus_scan(struct mii_bus *bus, int addr)
|
||||||
|
{
|
||||||
|
struct phy_device *phydev;
|
||||||
|
int err;
|
||||||
|
|
||||||
|
phydev = get_phy_device(bus, addr);
|
||||||
|
if (IS_ERR(phydev) || phydev == NULL)
|
||||||
|
return phydev;
|
||||||
|
|
||||||
|
/* There's a PHY at this address
|
||||||
|
* We need to set:
|
||||||
|
* 1) IRQ
|
||||||
|
* 2) bus_id
|
||||||
|
* 3) parent
|
||||||
|
* 4) bus
|
||||||
|
* 5) mii_bus
|
||||||
|
* And, we need to register it */
|
||||||
|
|
||||||
|
phydev->irq = bus->irq != NULL ? bus->irq[addr] : PHY_POLL;
|
||||||
|
|
||||||
|
phydev->dev.parent = bus->dev;
|
||||||
|
phydev->dev.bus = &mdio_bus_type;
|
||||||
|
snprintf(phydev->dev.bus_id, BUS_ID_SIZE, PHY_ID_FMT, bus->id, addr);
|
||||||
|
|
||||||
|
phydev->bus = bus;
|
||||||
|
|
||||||
|
/* Run all of the fixups for this PHY */
|
||||||
|
phy_scan_fixups(phydev);
|
||||||
|
|
||||||
|
err = device_register(&phydev->dev);
|
||||||
|
if (err) {
|
||||||
|
printk(KERN_ERR "phy %d failed to register\n", addr);
|
||||||
|
phy_device_free(phydev);
|
||||||
|
phydev = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
bus->phy_map[addr] = phydev;
|
||||||
|
|
||||||
|
return phydev;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(mdiobus_scan);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* mdio_bus_match - determine if given PHY driver supports the given PHY device
|
* mdio_bus_match - determine if given PHY driver supports the given PHY device
|
||||||
* @dev: target PHY device
|
* @dev: target PHY device
|
||||||
|
|
|
@ -17,9 +17,14 @@
|
||||||
|
|
||||||
struct mv643xx_eth_shared_platform_data {
|
struct mv643xx_eth_shared_platform_data {
|
||||||
struct mbus_dram_target_info *dram;
|
struct mbus_dram_target_info *dram;
|
||||||
|
struct platform_device *shared_smi;
|
||||||
unsigned int t_clk;
|
unsigned int t_clk;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define MV643XX_ETH_PHY_ADDR_DEFAULT 0
|
||||||
|
#define MV643XX_ETH_PHY_ADDR(x) (0x80 | (x))
|
||||||
|
#define MV643XX_ETH_PHY_NONE 0xff
|
||||||
|
|
||||||
struct mv643xx_eth_platform_data {
|
struct mv643xx_eth_platform_data {
|
||||||
/*
|
/*
|
||||||
* Pointer back to our parent instance, and our port number.
|
* Pointer back to our parent instance, and our port number.
|
||||||
|
@ -30,8 +35,6 @@ struct mv643xx_eth_platform_data {
|
||||||
/*
|
/*
|
||||||
* Whether a PHY is present, and if yes, at which address.
|
* Whether a PHY is present, and if yes, at which address.
|
||||||
*/
|
*/
|
||||||
struct platform_device *shared_smi;
|
|
||||||
int force_phy_addr;
|
|
||||||
int phy_addr;
|
int phy_addr;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -49,10 +52,10 @@ struct mv643xx_eth_platform_data {
|
||||||
int duplex;
|
int duplex;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Which RX/TX queues to use.
|
* How many RX/TX queues to use.
|
||||||
*/
|
*/
|
||||||
int rx_queue_mask;
|
int rx_queue_count;
|
||||||
int tx_queue_mask;
|
int tx_queue_count;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Override default RX/TX queue sizes if nonzero.
|
* Override default RX/TX queue sizes if nonzero.
|
||||||
|
|
|
@ -410,6 +410,8 @@ int phy_start_aneg(struct phy_device *phydev);
|
||||||
|
|
||||||
int mdiobus_register(struct mii_bus *bus);
|
int mdiobus_register(struct mii_bus *bus);
|
||||||
void mdiobus_unregister(struct mii_bus *bus);
|
void mdiobus_unregister(struct mii_bus *bus);
|
||||||
|
struct phy_device *mdiobus_scan(struct mii_bus *bus, int addr);
|
||||||
|
|
||||||
void phy_sanitize_settings(struct phy_device *phydev);
|
void phy_sanitize_settings(struct phy_device *phydev);
|
||||||
int phy_stop_interrupts(struct phy_device *phydev);
|
int phy_stop_interrupts(struct phy_device *phydev);
|
||||||
int phy_enable_interrupts(struct phy_device *phydev);
|
int phy_enable_interrupts(struct phy_device *phydev);
|
||||||
|
|
Reference in a new issue