ar71xx: move micrel PHY driver to the generic linux target
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Thu, 15 Mar 2012 09:25:53 +0000 (09:25 +0000)
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Thu, 15 Mar 2012 09:25:53 +0000 (09:25 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@30946 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/ar71xx/files/drivers/net/phy/micrel.c [deleted file]
target/linux/ar71xx/patches-3.2/421-net-ksz8041_phy_driver.patch [deleted file]
target/linux/ar71xx/patches-3.3/421-net-ksz8041_phy_driver.patch [deleted file]
target/linux/generic/files/drivers/net/phy/micrel.c [new file with mode: 0644]
target/linux/generic/patches-3.2/728-phy-micrel.patch [new file with mode: 0644]
target/linux/generic/patches-3.3/728-phy-micrel.patch [new file with mode: 0644]

diff --git a/target/linux/ar71xx/files/drivers/net/phy/micrel.c b/target/linux/ar71xx/files/drivers/net/phy/micrel.c
deleted file mode 100644 (file)
index 1499d4a..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- *  Driver for Micrel/Kendin PHYs
- *
- *  Copyright (c) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
- *  Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
- *
- *  This program is free software; you can redistribute it and/or modify it
- *  under the terms of the GNU General Public License version 2 as published
- *  by the Free Software Foundation.
- *
- */
-
-#include <linux/module.h>
-#include <linux/delay.h>
-#include <linux/skbuff.h>
-#include <linux/phy.h>
-
-#define KSZ_REG_INT_CTRL       0x1b
-
-#define KSZ_INT_LU_EN  (1 << 8)        /* enable Link Up interrupt */
-#define KSZ_INT_RF_EN  (1 << 9)        /* enable Remote Fault interrupt */
-#define KSZ_INT_LD_EN  (1 << 10)       /* enable Link Down interrupt */
-
-#define KSZ_INT_INIT   (KSZ_INT_LU_EN | KSZ_INT_LD_EN)
-
-static int ksz8041_ack_interrupt(struct phy_device *phydev)
-{
-       int err;
-
-       err = phy_read(phydev, KSZ_REG_INT_CTRL);
-
-       return (err < 0) ? err : 0;
-}
-
-static int ksz8041_config_intr(struct phy_device *phydev)
-{
-       int err;
-
-       if (phydev->interrupts == PHY_INTERRUPT_ENABLED)
-               err = phy_write(phydev, KSZ_REG_INT_CTRL,
-                               KSZ_INT_INIT);
-       else
-               err = phy_write(phydev, KSZ_REG_INT_CTRL, 0);
-
-       return err;
-}
-
-static struct phy_driver ksz8041_phy_driver = {
-       .phy_id         = 0x00221512,
-       .name           = "Micrel KSZ8041",
-       .phy_id_mask    = 0x001fffff,
-       .features       = PHY_BASIC_FEATURES,
-       .flags          = PHY_HAS_INTERRUPT,
-       .config_aneg    = genphy_config_aneg,
-       .read_status    = genphy_read_status,
-       .ack_interrupt  = ksz8041_ack_interrupt,
-       .config_intr    = ksz8041_config_intr,
-       .driver = {
-               .owner  = THIS_MODULE,
-       },
-};
-
-static int __init micrel_phy_init(void)
-{
-       return phy_driver_register(&ksz8041_phy_driver);
-}
-
-static void __exit micrel_phy_exit(void)
-{
-       phy_driver_unregister(&ksz8041_phy_driver);
-}
-
-#ifdef MODULE
-module_init(micrel_phy_init);
-module_exit(micrel_phy_exit);
-#else
-subsys_initcall(micrel_phy_init);
-#endif
-
-MODULE_DESCRIPTION("Micrel/Kendin PHY driver");
-MODULE_AUTHOR("Gabor Juhos <juhosg@openwrt.org>");
-MODULE_AUTHOR("Imre Kaloz <kaloz@openwrt.org>");
-MODULE_LICENSE("GPL v2");
diff --git a/target/linux/ar71xx/patches-3.2/421-net-ksz8041_phy_driver.patch b/target/linux/ar71xx/patches-3.2/421-net-ksz8041_phy_driver.patch
deleted file mode 100644 (file)
index 78d7e0e..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
---- a/drivers/net/phy/Kconfig
-+++ b/drivers/net/phy/Kconfig
-@@ -124,6 +124,11 @@ config RTL8306_PHY
-       tristate "Driver for Realtek RTL8306S switches"
-       select SWCONFIG
-+config MICREL_PHY
-+      tristate "Drivers for Micrel/Kendin PHYs"
-+      ---help---
-+        Currently has a driver for the KSZ8041
-+
- config FIXED_PHY
-       bool "Driver for MDIO Bus/PHY emulation with fixed speed/link PHYs"
-       depends on PHYLIB=y
---- a/drivers/net/phy/Makefile
-+++ b/drivers/net/phy/Makefile
-@@ -25,6 +25,7 @@ obj-$(CONFIG_RTL8366S_PHY)   += rtl8366s.o
- obj-$(CONFIG_RTL8366RB_PHY)   += rtl8366rb.o
- obj-$(CONFIG_RTL8367_PHY)     += rtl8367.o
- obj-$(CONFIG_LSI_ET1011C_PHY) += et1011c.o
-+obj-$(CONFIG_MICREL_PHY)      += micrel.o
- obj-$(CONFIG_FIXED_PHY)               += fixed.o
- obj-$(CONFIG_MDIO_BITBANG)    += mdio-bitbang.o
- obj-$(CONFIG_MDIO_GPIO)               += mdio-gpio.o
diff --git a/target/linux/ar71xx/patches-3.3/421-net-ksz8041_phy_driver.patch b/target/linux/ar71xx/patches-3.3/421-net-ksz8041_phy_driver.patch
deleted file mode 100644 (file)
index 78d7e0e..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
---- a/drivers/net/phy/Kconfig
-+++ b/drivers/net/phy/Kconfig
-@@ -124,6 +124,11 @@ config RTL8306_PHY
-       tristate "Driver for Realtek RTL8306S switches"
-       select SWCONFIG
-+config MICREL_PHY
-+      tristate "Drivers for Micrel/Kendin PHYs"
-+      ---help---
-+        Currently has a driver for the KSZ8041
-+
- config FIXED_PHY
-       bool "Driver for MDIO Bus/PHY emulation with fixed speed/link PHYs"
-       depends on PHYLIB=y
---- a/drivers/net/phy/Makefile
-+++ b/drivers/net/phy/Makefile
-@@ -25,6 +25,7 @@ obj-$(CONFIG_RTL8366S_PHY)   += rtl8366s.o
- obj-$(CONFIG_RTL8366RB_PHY)   += rtl8366rb.o
- obj-$(CONFIG_RTL8367_PHY)     += rtl8367.o
- obj-$(CONFIG_LSI_ET1011C_PHY) += et1011c.o
-+obj-$(CONFIG_MICREL_PHY)      += micrel.o
- obj-$(CONFIG_FIXED_PHY)               += fixed.o
- obj-$(CONFIG_MDIO_BITBANG)    += mdio-bitbang.o
- obj-$(CONFIG_MDIO_GPIO)               += mdio-gpio.o
diff --git a/target/linux/generic/files/drivers/net/phy/micrel.c b/target/linux/generic/files/drivers/net/phy/micrel.c
new file mode 100644 (file)
index 0000000..1499d4a
--- /dev/null
@@ -0,0 +1,83 @@
+/*
+ *  Driver for Micrel/Kendin PHYs
+ *
+ *  Copyright (c) 2008-2009 Gabor Juhos <juhosg@openwrt.org>
+ *  Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org>
+ *
+ *  This program is free software; you can redistribute it and/or modify it
+ *  under the terms of the GNU General Public License version 2 as published
+ *  by the Free Software Foundation.
+ *
+ */
+
+#include <linux/module.h>
+#include <linux/delay.h>
+#include <linux/skbuff.h>
+#include <linux/phy.h>
+
+#define KSZ_REG_INT_CTRL       0x1b
+
+#define KSZ_INT_LU_EN  (1 << 8)        /* enable Link Up interrupt */
+#define KSZ_INT_RF_EN  (1 << 9)        /* enable Remote Fault interrupt */
+#define KSZ_INT_LD_EN  (1 << 10)       /* enable Link Down interrupt */
+
+#define KSZ_INT_INIT   (KSZ_INT_LU_EN | KSZ_INT_LD_EN)
+
+static int ksz8041_ack_interrupt(struct phy_device *phydev)
+{
+       int err;
+
+       err = phy_read(phydev, KSZ_REG_INT_CTRL);
+
+       return (err < 0) ? err : 0;
+}
+
+static int ksz8041_config_intr(struct phy_device *phydev)
+{
+       int err;
+
+       if (phydev->interrupts == PHY_INTERRUPT_ENABLED)
+               err = phy_write(phydev, KSZ_REG_INT_CTRL,
+                               KSZ_INT_INIT);
+       else
+               err = phy_write(phydev, KSZ_REG_INT_CTRL, 0);
+
+       return err;
+}
+
+static struct phy_driver ksz8041_phy_driver = {
+       .phy_id         = 0x00221512,
+       .name           = "Micrel KSZ8041",
+       .phy_id_mask    = 0x001fffff,
+       .features       = PHY_BASIC_FEATURES,
+       .flags          = PHY_HAS_INTERRUPT,
+       .config_aneg    = genphy_config_aneg,
+       .read_status    = genphy_read_status,
+       .ack_interrupt  = ksz8041_ack_interrupt,
+       .config_intr    = ksz8041_config_intr,
+       .driver = {
+               .owner  = THIS_MODULE,
+       },
+};
+
+static int __init micrel_phy_init(void)
+{
+       return phy_driver_register(&ksz8041_phy_driver);
+}
+
+static void __exit micrel_phy_exit(void)
+{
+       phy_driver_unregister(&ksz8041_phy_driver);
+}
+
+#ifdef MODULE
+module_init(micrel_phy_init);
+module_exit(micrel_phy_exit);
+#else
+subsys_initcall(micrel_phy_init);
+#endif
+
+MODULE_DESCRIPTION("Micrel/Kendin PHY driver");
+MODULE_AUTHOR("Gabor Juhos <juhosg@openwrt.org>");
+MODULE_AUTHOR("Imre Kaloz <kaloz@openwrt.org>");
+MODULE_LICENSE("GPL v2");
diff --git a/target/linux/generic/patches-3.2/728-phy-micrel.patch b/target/linux/generic/patches-3.2/728-phy-micrel.patch
new file mode 100644 (file)
index 0000000..8272ba7
--- /dev/null
@@ -0,0 +1,24 @@
+--- a/drivers/net/phy/Kconfig
++++ b/drivers/net/phy/Kconfig
+@@ -128,6 +128,11 @@ config RTL8306_PHY
+       tristate "Driver for Realtek RTL8306S switches"
+       select SWCONFIG
++config MICREL_PHY
++      tristate "Drivers for Micrel/Kendin PHYs"
++      ---help---
++        Currently has a driver for the KSZ8041
++
+ config FIXED_PHY
+       bool "Driver for MDIO Bus/PHY emulation with fixed speed/link PHYs"
+       depends on PHYLIB=y
+--- a/drivers/net/phy/Makefile
++++ b/drivers/net/phy/Makefile
+@@ -27,6 +27,7 @@ obj-$(CONFIG_RTL8366S_PHY)   += rtl8366s.o
+ obj-$(CONFIG_RTL8366RB_PHY)   += rtl8366rb.o
+ obj-$(CONFIG_RTL8367_PHY)     += rtl8367.o
+ obj-$(CONFIG_LSI_ET1011C_PHY) += et1011c.o
++obj-$(CONFIG_MICREL_PHY)      += micrel.o
+ obj-$(CONFIG_FIXED_PHY)               += fixed.o
+ obj-$(CONFIG_MDIO_BITBANG)    += mdio-bitbang.o
+ obj-$(CONFIG_MDIO_GPIO)               += mdio-gpio.o
diff --git a/target/linux/generic/patches-3.3/728-phy-micrel.patch b/target/linux/generic/patches-3.3/728-phy-micrel.patch
new file mode 100644 (file)
index 0000000..8272ba7
--- /dev/null
@@ -0,0 +1,24 @@
+--- a/drivers/net/phy/Kconfig
++++ b/drivers/net/phy/Kconfig
+@@ -128,6 +128,11 @@ config RTL8306_PHY
+       tristate "Driver for Realtek RTL8306S switches"
+       select SWCONFIG
++config MICREL_PHY
++      tristate "Drivers for Micrel/Kendin PHYs"
++      ---help---
++        Currently has a driver for the KSZ8041
++
+ config FIXED_PHY
+       bool "Driver for MDIO Bus/PHY emulation with fixed speed/link PHYs"
+       depends on PHYLIB=y
+--- a/drivers/net/phy/Makefile
++++ b/drivers/net/phy/Makefile
+@@ -27,6 +27,7 @@ obj-$(CONFIG_RTL8366S_PHY)   += rtl8366s.o
+ obj-$(CONFIG_RTL8366RB_PHY)   += rtl8366rb.o
+ obj-$(CONFIG_RTL8367_PHY)     += rtl8367.o
+ obj-$(CONFIG_LSI_ET1011C_PHY) += et1011c.o
++obj-$(CONFIG_MICREL_PHY)      += micrel.o
+ obj-$(CONFIG_FIXED_PHY)               += fixed.o
+ obj-$(CONFIG_MDIO_BITBANG)    += mdio-bitbang.o
+ obj-$(CONFIG_MDIO_GPIO)               += mdio-gpio.o