xref: /openbmc/linux/drivers/net/usb/aqc111.c (revision 17364b805f5b9016bb528241ba91481e3497e5e1)
1*17364b80SDmitry Bezrukov // SPDX-License-Identifier: GPL-2.0-or-later
2*17364b80SDmitry Bezrukov /* Aquantia Corp. Aquantia AQtion USB to 5GbE Controller
3*17364b80SDmitry Bezrukov  * Copyright (C) 2003-2005 David Hollis <dhollis@davehollis.com>
4*17364b80SDmitry Bezrukov  * Copyright (C) 2005 Phil Chang <pchang23@sbcglobal.net>
5*17364b80SDmitry Bezrukov  * Copyright (C) 2002-2003 TiVo Inc.
6*17364b80SDmitry Bezrukov  * Copyright (C) 2017-2018 ASIX
7*17364b80SDmitry Bezrukov  * Copyright (C) 2018 Aquantia Corp.
8*17364b80SDmitry Bezrukov  */
9*17364b80SDmitry Bezrukov 
10*17364b80SDmitry Bezrukov #include <linux/module.h>
11*17364b80SDmitry Bezrukov #include <linux/netdevice.h>
12*17364b80SDmitry Bezrukov #include <linux/mii.h>
13*17364b80SDmitry Bezrukov #include <linux/usb.h>
14*17364b80SDmitry Bezrukov #include <linux/usb/cdc.h>
15*17364b80SDmitry Bezrukov #include <linux/usb/usbnet.h>
16*17364b80SDmitry Bezrukov 
17*17364b80SDmitry Bezrukov static const struct driver_info aqc111_info = {
18*17364b80SDmitry Bezrukov 	.description	= "Aquantia AQtion USB to 5GbE Controller",
19*17364b80SDmitry Bezrukov };
20*17364b80SDmitry Bezrukov 
21*17364b80SDmitry Bezrukov #define AQC111_USB_ETH_DEV(vid, pid, table) \
22*17364b80SDmitry Bezrukov 	USB_DEVICE_INTERFACE_CLASS((vid), (pid), USB_CLASS_VENDOR_SPEC), \
23*17364b80SDmitry Bezrukov 	.driver_info = (unsigned long)&(table) \
24*17364b80SDmitry Bezrukov }, \
25*17364b80SDmitry Bezrukov { \
26*17364b80SDmitry Bezrukov 	USB_DEVICE_AND_INTERFACE_INFO((vid), (pid), \
27*17364b80SDmitry Bezrukov 				      USB_CLASS_COMM, \
28*17364b80SDmitry Bezrukov 				      USB_CDC_SUBCLASS_ETHERNET, \
29*17364b80SDmitry Bezrukov 				      USB_CDC_PROTO_NONE), \
30*17364b80SDmitry Bezrukov 	.driver_info = (unsigned long)&(table),
31*17364b80SDmitry Bezrukov 
32*17364b80SDmitry Bezrukov static const struct usb_device_id products[] = {
33*17364b80SDmitry Bezrukov 	{AQC111_USB_ETH_DEV(0x2eca, 0xc101, aqc111_info)},
34*17364b80SDmitry Bezrukov 	{ },/* END */
35*17364b80SDmitry Bezrukov };
36*17364b80SDmitry Bezrukov MODULE_DEVICE_TABLE(usb, products);
37*17364b80SDmitry Bezrukov 
38*17364b80SDmitry Bezrukov static struct usb_driver aq_driver = {
39*17364b80SDmitry Bezrukov 	.name		= "aqc111",
40*17364b80SDmitry Bezrukov 	.id_table	= products,
41*17364b80SDmitry Bezrukov 	.probe		= usbnet_probe,
42*17364b80SDmitry Bezrukov 	.disconnect	= usbnet_disconnect,
43*17364b80SDmitry Bezrukov };
44*17364b80SDmitry Bezrukov 
45*17364b80SDmitry Bezrukov module_usb_driver(aq_driver);
46*17364b80SDmitry Bezrukov 
47*17364b80SDmitry Bezrukov MODULE_DESCRIPTION("Aquantia AQtion USB to 5/2.5GbE Controllers");
48*17364b80SDmitry Bezrukov MODULE_LICENSE("GPL");
49