diff options
| author | Kim Phillips <kim.phillips@freescale.com> | 2006-06-28 22:13:23 -0400 |
|---|---|---|
| committer | Jeff Garzik <jeff@garzik.org> | 2006-07-05 14:07:14 -0400 |
| commit | 0c639b31068e8e111ec330a3634d95e20c11aab6 (patch) | |
| tree | d3fe1de937067552cdba4d656c3a4a02311929a6 | |
| parent | c9a4b35df9a5e24065e2dd80aa18a381da62339d (diff) | |
[PATCH] Add support for the Cicada 8201 PHY
Add support for the Cicada 8201 PHY, a.k.a Vitesse VSC8201. This PHY is present on the MPC8349mITX.
Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Signed-off-by: Andy Fleming <afleming@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
| -rw-r--r-- | drivers/net/phy/cicada.c | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/drivers/net/phy/cicada.c b/drivers/net/phy/cicada.c index 3efb715c28dc..ae60e6e4107c 100644 --- a/drivers/net/phy/cicada.c +++ b/drivers/net/phy/cicada.c | |||
| @@ -103,7 +103,22 @@ static int cis820x_config_intr(struct phy_device *phydev) | |||
| 103 | return err; | 103 | return err; |
| 104 | } | 104 | } |
| 105 | 105 | ||
| 106 | /* Cicada 820x */ | 106 | /* Cicada 8201, a.k.a Vitesse VSC8201 */ |
| 107 | static struct phy_driver cis8201_driver = { | ||
| 108 | .phy_id = 0x000fc410, | ||
| 109 | .name = "Cicada Cis8201", | ||
| 110 | .phy_id_mask = 0x000ffff0, | ||
| 111 | .features = PHY_GBIT_FEATURES, | ||
| 112 | .flags = PHY_HAS_INTERRUPT, | ||
| 113 | .config_init = &cis820x_config_init, | ||
| 114 | .config_aneg = &genphy_config_aneg, | ||
| 115 | .read_status = &genphy_read_status, | ||
| 116 | .ack_interrupt = &cis820x_ack_interrupt, | ||
| 117 | .config_intr = &cis820x_config_intr, | ||
| 118 | .driver = { .owner = THIS_MODULE,}, | ||
| 119 | }; | ||
| 120 | |||
| 121 | /* Cicada 8204 */ | ||
| 107 | static struct phy_driver cis8204_driver = { | 122 | static struct phy_driver cis8204_driver = { |
| 108 | .phy_id = 0x000fc440, | 123 | .phy_id = 0x000fc440, |
| 109 | .name = "Cicada Cis8204", | 124 | .name = "Cicada Cis8204", |
| @@ -118,15 +133,30 @@ static struct phy_driver cis8204_driver = { | |||
| 118 | .driver = { .owner = THIS_MODULE,}, | 133 | .driver = { .owner = THIS_MODULE,}, |
| 119 | }; | 134 | }; |
| 120 | 135 | ||
| 121 | static int __init cis8204_init(void) | 136 | static int __init cicada_init(void) |
| 122 | { | 137 | { |
| 123 | return phy_driver_register(&cis8204_driver); | 138 | int ret; |
| 139 | |||
| 140 | ret = phy_driver_register(&cis8204_driver); | ||
| 141 | if (ret) | ||
| 142 | goto err1; | ||
| 143 | |||
| 144 | ret = phy_driver_register(&cis8201_driver); | ||
| 145 | if (ret) | ||
| 146 | goto err2; | ||
| 147 | return 0; | ||
| 148 | |||
| 149 | err2: | ||
| 150 | phy_driver_unregister(&cis8204_driver); | ||
| 151 | err1: | ||
| 152 | return ret; | ||
| 124 | } | 153 | } |
| 125 | 154 | ||
| 126 | static void __exit cis8204_exit(void) | 155 | static void __exit cicada_exit(void) |
| 127 | { | 156 | { |
| 128 | phy_driver_unregister(&cis8204_driver); | 157 | phy_driver_unregister(&cis8204_driver); |
| 158 | phy_driver_unregister(&cis8201_driver); | ||
| 129 | } | 159 | } |
| 130 | 160 | ||
| 131 | module_init(cis8204_init); | 161 | module_init(cicada_init); |
| 132 | module_exit(cis8204_exit); | 162 | module_exit(cicada_exit); |
