generic: rtl8366{s,rb}: remove the PHY driver.
Since the PHY driver is only used for the WAN port and there is virtually no difference between it and the generic PHY driver, we can sefely remove it. Signed-off-by: Jonas Gorski <jonas.gorski+openwrt@gmail.com> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@26600 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
4db6664002
commit
6c38894393
|
@ -26,7 +26,6 @@
|
||||||
#define RTL8366RB_PHY_NO_MAX 4
|
#define RTL8366RB_PHY_NO_MAX 4
|
||||||
#define RTL8366RB_PHY_PAGE_MAX 7
|
#define RTL8366RB_PHY_PAGE_MAX 7
|
||||||
#define RTL8366RB_PHY_ADDR_MAX 31
|
#define RTL8366RB_PHY_ADDR_MAX 31
|
||||||
#define RTL8366RB_PHY_WAN 4
|
|
||||||
|
|
||||||
/* Switch Global Configuration register */
|
/* Switch Global Configuration register */
|
||||||
#define RTL8366RB_SGCR 0x0000
|
#define RTL8366RB_SGCR 0x0000
|
||||||
|
@ -1157,12 +1156,6 @@ static int rtl8366rb_mii_write(struct mii_bus *bus, int addr, int reg, u16 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int rtl8366rb_mii_bus_match(struct mii_bus *bus)
|
|
||||||
{
|
|
||||||
return (bus->read == rtl8366rb_mii_read &&
|
|
||||||
bus->write == rtl8366rb_mii_write);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int rtl8366rb_setup(struct rtl8366_smi *smi)
|
static int rtl8366rb_setup(struct rtl8366_smi *smi)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -1282,36 +1275,6 @@ static int __devinit rtl8366rb_probe(struct platform_device *pdev)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int rtl8366rb_phy_config_init(struct phy_device *phydev)
|
|
||||||
{
|
|
||||||
if (!rtl8366rb_mii_bus_match(phydev->bus))
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int rtl8366rb_phy_config_aneg(struct phy_device *phydev)
|
|
||||||
{
|
|
||||||
/* phy 4 might be connected to a second mac, allow aneg config */
|
|
||||||
if (phydev->addr == RTL8366RB_PHY_WAN)
|
|
||||||
return genphy_config_aneg(phydev);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct phy_driver rtl8366rb_phy_driver = {
|
|
||||||
.phy_id = 0x001cc960,
|
|
||||||
.name = "Realtek RTL8366RB",
|
|
||||||
.phy_id_mask = 0x1ffffff0,
|
|
||||||
.features = PHY_GBIT_FEATURES,
|
|
||||||
.config_aneg = rtl8366rb_phy_config_aneg,
|
|
||||||
.config_init = rtl8366rb_phy_config_init,
|
|
||||||
.read_status = genphy_read_status,
|
|
||||||
.driver = {
|
|
||||||
.owner = THIS_MODULE,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static int __devexit rtl8366rb_remove(struct platform_device *pdev)
|
static int __devexit rtl8366rb_remove(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct rtl8366_smi *smi = platform_get_drvdata(pdev);
|
struct rtl8366_smi *smi = platform_get_drvdata(pdev);
|
||||||
|
@ -1337,26 +1300,12 @@ static struct platform_driver rtl8366rb_driver = {
|
||||||
|
|
||||||
static int __init rtl8366rb_module_init(void)
|
static int __init rtl8366rb_module_init(void)
|
||||||
{
|
{
|
||||||
int ret;
|
return platform_driver_register(&rtl8366rb_driver);
|
||||||
ret = platform_driver_register(&rtl8366rb_driver);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
ret = phy_driver_register(&rtl8366rb_phy_driver);
|
|
||||||
if (ret)
|
|
||||||
goto err_platform_unregister;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
err_platform_unregister:
|
|
||||||
platform_driver_unregister(&rtl8366rb_driver);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
module_init(rtl8366rb_module_init);
|
module_init(rtl8366rb_module_init);
|
||||||
|
|
||||||
static void __exit rtl8366rb_module_exit(void)
|
static void __exit rtl8366rb_module_exit(void)
|
||||||
{
|
{
|
||||||
phy_driver_unregister(&rtl8366rb_phy_driver);
|
|
||||||
platform_driver_unregister(&rtl8366rb_driver);
|
platform_driver_unregister(&rtl8366rb_driver);
|
||||||
}
|
}
|
||||||
module_exit(rtl8366rb_module_exit);
|
module_exit(rtl8366rb_module_exit);
|
||||||
|
|
|
@ -25,7 +25,6 @@
|
||||||
#define RTL8366S_PHY_NO_MAX 4
|
#define RTL8366S_PHY_NO_MAX 4
|
||||||
#define RTL8366S_PHY_PAGE_MAX 7
|
#define RTL8366S_PHY_PAGE_MAX 7
|
||||||
#define RTL8366S_PHY_ADDR_MAX 31
|
#define RTL8366S_PHY_ADDR_MAX 31
|
||||||
#define RTL8366S_PHY_WAN 4
|
|
||||||
|
|
||||||
/* Switch Global Configuration register */
|
/* Switch Global Configuration register */
|
||||||
#define RTL8366S_SGCR 0x0000
|
#define RTL8366S_SGCR 0x0000
|
||||||
|
@ -986,12 +985,6 @@ static int rtl8366s_mii_write(struct mii_bus *bus, int addr, int reg, u16 val)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int rtl8366s_mii_bus_match(struct mii_bus *bus)
|
|
||||||
{
|
|
||||||
return (bus->read == rtl8366s_mii_read &&
|
|
||||||
bus->write == rtl8366s_mii_write);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int rtl8366s_setup(struct rtl8366_smi *smi)
|
static int rtl8366s_setup(struct rtl8366_smi *smi)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -1111,36 +1104,6 @@ static int __devinit rtl8366s_probe(struct platform_device *pdev)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int rtl8366s_phy_config_init(struct phy_device *phydev)
|
|
||||||
{
|
|
||||||
if (!rtl8366s_mii_bus_match(phydev->bus))
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int rtl8366s_phy_config_aneg(struct phy_device *phydev)
|
|
||||||
{
|
|
||||||
/* phy 4 might be connected to a second mac, allow aneg config */
|
|
||||||
if (phydev->addr == RTL8366S_PHY_WAN)
|
|
||||||
return genphy_config_aneg(phydev);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct phy_driver rtl8366s_phy_driver = {
|
|
||||||
.phy_id = 0x001cc960,
|
|
||||||
.name = "Realtek RTL8366S",
|
|
||||||
.phy_id_mask = 0x1ffffff0,
|
|
||||||
.features = PHY_GBIT_FEATURES,
|
|
||||||
.config_aneg = rtl8366s_phy_config_aneg,
|
|
||||||
.config_init = rtl8366s_phy_config_init,
|
|
||||||
.read_status = genphy_read_status,
|
|
||||||
.driver = {
|
|
||||||
.owner = THIS_MODULE,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static int __devexit rtl8366s_remove(struct platform_device *pdev)
|
static int __devexit rtl8366s_remove(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct rtl8366_smi *smi = platform_get_drvdata(pdev);
|
struct rtl8366_smi *smi = platform_get_drvdata(pdev);
|
||||||
|
@ -1166,26 +1129,12 @@ static struct platform_driver rtl8366s_driver = {
|
||||||
|
|
||||||
static int __init rtl8366s_module_init(void)
|
static int __init rtl8366s_module_init(void)
|
||||||
{
|
{
|
||||||
int ret;
|
return platform_driver_register(&rtl8366s_driver);
|
||||||
ret = platform_driver_register(&rtl8366s_driver);
|
|
||||||
if (ret)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
ret = phy_driver_register(&rtl8366s_phy_driver);
|
|
||||||
if (ret)
|
|
||||||
goto err_platform_unregister;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
err_platform_unregister:
|
|
||||||
platform_driver_unregister(&rtl8366s_driver);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
module_init(rtl8366s_module_init);
|
module_init(rtl8366s_module_init);
|
||||||
|
|
||||||
static void __exit rtl8366s_module_exit(void)
|
static void __exit rtl8366s_module_exit(void)
|
||||||
{
|
{
|
||||||
phy_driver_unregister(&rtl8366s_phy_driver);
|
|
||||||
platform_driver_unregister(&rtl8366s_driver);
|
platform_driver_unregister(&rtl8366s_driver);
|
||||||
}
|
}
|
||||||
module_exit(rtl8366s_module_exit);
|
module_exit(rtl8366s_module_exit);
|
||||||
|
|
Loading…
Reference in New Issue