mv88e6060.c (8dd06ef34b6e2f41b29fbf5fc1663780f2524285) mv88e6060.c (0650bf52b31ff35dc6430fc2e37969c36baba724)
1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * net/dsa/mv88e6060.c - Driver for Marvell 88e6060 switch chips
4 * Copyright (c) 2008-2009 Marvell Semiconductor
5 */
6
7#include <linux/delay.h>
8#include <linux/etherdevice.h>

--- 276 unchanged lines hidden (view full) ---

285
286 return dsa_register_switch(ds);
287}
288
289static void mv88e6060_remove(struct mdio_device *mdiodev)
290{
291 struct dsa_switch *ds = dev_get_drvdata(&mdiodev->dev);
292
1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * net/dsa/mv88e6060.c - Driver for Marvell 88e6060 switch chips
4 * Copyright (c) 2008-2009 Marvell Semiconductor
5 */
6
7#include <linux/delay.h>
8#include <linux/etherdevice.h>

--- 276 unchanged lines hidden (view full) ---

285
286 return dsa_register_switch(ds);
287}
288
289static void mv88e6060_remove(struct mdio_device *mdiodev)
290{
291 struct dsa_switch *ds = dev_get_drvdata(&mdiodev->dev);
292
293 if (!ds)
294 return;
295
293 dsa_unregister_switch(ds);
296 dsa_unregister_switch(ds);
297
298 dev_set_drvdata(&mdiodev->dev, NULL);
294}
295
299}
300
301static void mv88e6060_shutdown(struct mdio_device *mdiodev)
302{
303 struct dsa_switch *ds = dev_get_drvdata(&mdiodev->dev);
304
305 if (!ds)
306 return;
307
308 dsa_switch_shutdown(ds);
309
310 dev_set_drvdata(&mdiodev->dev, NULL);
311}
312
296static const struct of_device_id mv88e6060_of_match[] = {
297 {
298 .compatible = "marvell,mv88e6060",
299 },
300 { /* sentinel */ },
301};
302
303static struct mdio_driver mv88e6060_driver = {
304 .probe = mv88e6060_probe,
305 .remove = mv88e6060_remove,
313static const struct of_device_id mv88e6060_of_match[] = {
314 {
315 .compatible = "marvell,mv88e6060",
316 },
317 { /* sentinel */ },
318};
319
320static struct mdio_driver mv88e6060_driver = {
321 .probe = mv88e6060_probe,
322 .remove = mv88e6060_remove,
323 .shutdown = mv88e6060_shutdown,
306 .mdiodrv.driver = {
307 .name = "mv88e6060",
308 .of_match_table = mv88e6060_of_match,
309 },
310};
311
312mdio_module_driver(mv88e6060_driver);
313
314MODULE_AUTHOR("Lennert Buytenhek <buytenh@wantstofly.org>");
315MODULE_DESCRIPTION("Driver for Marvell 88E6060 ethernet switch chip");
316MODULE_LICENSE("GPL");
317MODULE_ALIAS("platform:mv88e6060");
324 .mdiodrv.driver = {
325 .name = "mv88e6060",
326 .of_match_table = mv88e6060_of_match,
327 },
328};
329
330mdio_module_driver(mv88e6060_driver);
331
332MODULE_AUTHOR("Lennert Buytenhek <buytenh@wantstofly.org>");
333MODULE_DESCRIPTION("Driver for Marvell 88E6060 ethernet switch chip");
334MODULE_LICENSE("GPL");
335MODULE_ALIAS("platform:mv88e6060");