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