diff options
author | Florian Fainelli <florian@openwrt.org> | 2015-01-10 20:12:02 +0000 |
---|---|---|
committer | Florian Fainelli <florian@openwrt.org> | 2015-01-10 20:12:02 +0000 |
commit | f52b2a5e6bf14f3eb65988d7cccd9c38e93cb83e (patch) | |
tree | 955bc2cbe0486d209a5eb52ad2b165d5d629d580 /target/linux/mcs814x/files-3.14/drivers/net/phy/mcs814x.c | |
parent | 03e961eb20b65edfbcdc6ccf3d82667ad36246c7 (diff) | |
download | upstream-f52b2a5e6bf14f3eb65988d7cccd9c38e93cb83e.tar.gz upstream-f52b2a5e6bf14f3eb65988d7cccd9c38e93cb83e.tar.bz2 upstream-f52b2a5e6bf14f3eb65988d7cccd9c38e93cb83e.zip |
mcs814x: add 3.14 kernel support
Signed-off-by: Florian Fainelli <florian@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@43926 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/mcs814x/files-3.14/drivers/net/phy/mcs814x.c')
-rw-r--r-- | target/linux/mcs814x/files-3.14/drivers/net/phy/mcs814x.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/target/linux/mcs814x/files-3.14/drivers/net/phy/mcs814x.c b/target/linux/mcs814x/files-3.14/drivers/net/phy/mcs814x.c new file mode 100644 index 0000000000..e92176e3be --- /dev/null +++ b/target/linux/mcs814x/files-3.14/drivers/net/phy/mcs814x.c @@ -0,0 +1,64 @@ +/* + * Driver for Moschip MCS814x internal PHY + * + * Copyright (c) 2012 Florian Fainelli <florian@openwrt.org> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + */ +#include <linux/kernel.h> +#include <linux/string.h> +#include <linux/errno.h> +#include <linux/unistd.h> +#include <linux/interrupt.h> +#include <linux/init.h> +#include <linux/delay.h> +#include <linux/netdevice.h> +#include <linux/etherdevice.h> +#include <linux/skbuff.h> +#include <linux/spinlock.h> +#include <linux/mm.h> +#include <linux/module.h> +#include <linux/mii.h> +#include <linux/ethtool.h> +#include <linux/phy.h> + +MODULE_DESCRIPTION("Moschip MCS814x PHY driver"); +MODULE_AUTHOR("Florian Fainelli <florian@openwrt.org>"); +MODULE_LICENSE("GPL"); + +/* Nothing special about this PHY but its OUI (O) */ +static struct phy_driver mcs8140_driver = { + .phy_id = 0, + .name = "Moschip MCS8140", + .phy_id_mask = 0x02, + .features = PHY_BASIC_FEATURES, + .config_aneg = &genphy_config_aneg, + .read_status = &genphy_read_status, + .suspend = genphy_suspend, + .resume = genphy_resume, + .driver = { .owner = THIS_MODULE,}, +}; + +static int __init mcs814x_phy_init(void) +{ + return phy_driver_register(&mcs8140_driver); +} + +static void __exit mcs814x_phy_exit(void) +{ + phy_driver_unregister(&mcs8140_driver); +} + +module_init(mcs814x_phy_init); +module_exit(mcs814x_phy_exit); + +static struct mdio_device_id __maybe_unused mcs814x_phy_tbl[] = { + { 0x0, 0x0ffffff0 }, + { } +}; + +MODULE_DEVICE_TABLE(mdio, mcs814x_phy_tbl); |