Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 43762master
parent
7d6a749278
commit
5506420980
@ -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"); |
@ -1,24 +0,0 @@ |
||||
--- a/drivers/net/phy/Kconfig
|
||||
+++ b/drivers/net/phy/Kconfig
|
||||
@@ -144,6 +144,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
|
||||
@@ -28,6 +28,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
|
@ -1,24 +0,0 @@ |
||||
--- a/drivers/net/phy/Kconfig
|
||||
+++ b/drivers/net/phy/Kconfig
|
||||
@@ -156,6 +156,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
|
||||
@@ -29,6 +29,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
|
Loading…
Reference in new issue