1*eb15fdb1SBjoern A. Zeeb // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause 2*eb15fdb1SBjoern A. Zeeb /* Copyright(c) 2025 Realtek Corporation 3*eb15fdb1SBjoern A. Zeeb */ 4*eb15fdb1SBjoern A. Zeeb 5*eb15fdb1SBjoern A. Zeeb #include <linux/module.h> 6*eb15fdb1SBjoern A. Zeeb #include <linux/usb.h> 7*eb15fdb1SBjoern A. Zeeb #include "main.h" 8*eb15fdb1SBjoern A. Zeeb #include "rtw8814a.h" 9*eb15fdb1SBjoern A. Zeeb #include "usb.h" 10*eb15fdb1SBjoern A. Zeeb 11*eb15fdb1SBjoern A. Zeeb static const struct usb_device_id rtw_8814au_id_table[] = { 12*eb15fdb1SBjoern A. Zeeb { USB_DEVICE_AND_INTERFACE_INFO(RTW_USB_VENDOR_ID_REALTEK, 0x8813, 0xff, 0xff, 0xff), 13*eb15fdb1SBjoern A. Zeeb .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) }, 14*eb15fdb1SBjoern A. Zeeb { USB_DEVICE_AND_INTERFACE_INFO(0x056e, 0x400b, 0xff, 0xff, 0xff), 15*eb15fdb1SBjoern A. Zeeb .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) }, 16*eb15fdb1SBjoern A. Zeeb { USB_DEVICE_AND_INTERFACE_INFO(0x056e, 0x400d, 0xff, 0xff, 0xff), 17*eb15fdb1SBjoern A. Zeeb .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) }, 18*eb15fdb1SBjoern A. Zeeb { USB_DEVICE_AND_INTERFACE_INFO(0x0846, 0x9054, 0xff, 0xff, 0xff), 19*eb15fdb1SBjoern A. Zeeb .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) }, 20*eb15fdb1SBjoern A. Zeeb { USB_DEVICE_AND_INTERFACE_INFO(0x0b05, 0x1817, 0xff, 0xff, 0xff), 21*eb15fdb1SBjoern A. Zeeb .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) }, 22*eb15fdb1SBjoern A. Zeeb { USB_DEVICE_AND_INTERFACE_INFO(0x0b05, 0x1852, 0xff, 0xff, 0xff), 23*eb15fdb1SBjoern A. Zeeb .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) }, 24*eb15fdb1SBjoern A. Zeeb { USB_DEVICE_AND_INTERFACE_INFO(0x0b05, 0x1853, 0xff, 0xff, 0xff), 25*eb15fdb1SBjoern A. Zeeb .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) }, 26*eb15fdb1SBjoern A. Zeeb { USB_DEVICE_AND_INTERFACE_INFO(0x0e66, 0x0026, 0xff, 0xff, 0xff), 27*eb15fdb1SBjoern A. Zeeb .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) }, 28*eb15fdb1SBjoern A. Zeeb { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x331a, 0xff, 0xff, 0xff), 29*eb15fdb1SBjoern A. Zeeb .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) }, 30*eb15fdb1SBjoern A. Zeeb { USB_DEVICE_AND_INTERFACE_INFO(0x20f4, 0x809a, 0xff, 0xff, 0xff), 31*eb15fdb1SBjoern A. Zeeb .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) }, 32*eb15fdb1SBjoern A. Zeeb { USB_DEVICE_AND_INTERFACE_INFO(0x20f4, 0x809b, 0xff, 0xff, 0xff), 33*eb15fdb1SBjoern A. Zeeb .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) }, 34*eb15fdb1SBjoern A. Zeeb { USB_DEVICE_AND_INTERFACE_INFO(0x2357, 0x0106, 0xff, 0xff, 0xff), 35*eb15fdb1SBjoern A. Zeeb .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) }, 36*eb15fdb1SBjoern A. Zeeb { USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0xa834, 0xff, 0xff, 0xff), 37*eb15fdb1SBjoern A. Zeeb .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) }, 38*eb15fdb1SBjoern A. Zeeb { USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0xa833, 0xff, 0xff, 0xff), 39*eb15fdb1SBjoern A. Zeeb .driver_info = (kernel_ulong_t)&(rtw8814a_hw_spec) }, 40*eb15fdb1SBjoern A. Zeeb {}, 41*eb15fdb1SBjoern A. Zeeb }; 42*eb15fdb1SBjoern A. Zeeb MODULE_DEVICE_TABLE(usb, rtw_8814au_id_table); 43*eb15fdb1SBjoern A. Zeeb 44*eb15fdb1SBjoern A. Zeeb static struct usb_driver rtw_8814au_driver = { 45*eb15fdb1SBjoern A. Zeeb .name = KBUILD_MODNAME, 46*eb15fdb1SBjoern A. Zeeb .id_table = rtw_8814au_id_table, 47*eb15fdb1SBjoern A. Zeeb .probe = rtw_usb_probe, 48*eb15fdb1SBjoern A. Zeeb .disconnect = rtw_usb_disconnect, 49*eb15fdb1SBjoern A. Zeeb }; 50*eb15fdb1SBjoern A. Zeeb module_usb_driver(rtw_8814au_driver); 51*eb15fdb1SBjoern A. Zeeb 52*eb15fdb1SBjoern A. Zeeb MODULE_AUTHOR("Bitterblue Smith <rtl8821cerfe2@gmail.com>"); 53*eb15fdb1SBjoern A. Zeeb MODULE_DESCRIPTION("Realtek 802.11ac wireless 8814au driver"); 54*eb15fdb1SBjoern A. Zeeb MODULE_LICENSE("Dual BSD/GPL"); 55