diff options
author | Florian Fainelli <florian@openwrt.org> | 2015-04-04 18:01:07 +0000 |
---|---|---|
committer | Florian Fainelli <florian@openwrt.org> | 2015-04-04 18:01:07 +0000 |
commit | d030e21a01634dd74b84b4b1de55fe1a86ad1a15 (patch) | |
tree | a06c2ec374a34c9b7fff6551e596e381eb87e263 /target/linux/mcs814x/files-3.18/drivers/net/phy | |
parent | 71f35a88e4666f4f310efb4563ebfce54045636f (diff) | |
download | master-187ad058-d030e21a01634dd74b84b4b1de55fe1a86ad1a15.tar.gz master-187ad058-d030e21a01634dd74b84b4b1de55fe1a86ad1a15.tar.bz2 master-187ad058-d030e21a01634dd74b84b4b1de55fe1a86ad1a15.zip |
mcs814x: add support for 3.18
Signed-off-by: Florian Fainelli <florian@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@45273 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/mcs814x/files-3.18/drivers/net/phy')
-rw-r--r-- | target/linux/mcs814x/files-3.18/drivers/net/phy/mcs814x.c | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/target/linux/mcs814x/files-3.18/drivers/net/phy/mcs814x.c b/target/linux/mcs814x/files-3.18/drivers/net/phy/mcs814x.c new file mode 100644 index 0000000000..e92176e3be --- /dev/null +++ b/target/linux/mcs814x/files-3.18/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); |