16bb58cd6SBitterblue Smith // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause 26bb58cd6SBitterblue Smith /* Copyright(c) 2026 Realtek Corporation 36bb58cd6SBitterblue Smith */ 46bb58cd6SBitterblue Smith 56bb58cd6SBitterblue Smith #include <linux/module.h> 66bb58cd6SBitterblue Smith #include <linux/usb.h> 76bb58cd6SBitterblue Smith #include "rtw8922a.h" 86bb58cd6SBitterblue Smith #include "usb.h" 96bb58cd6SBitterblue Smith 106bb58cd6SBitterblue Smith static const struct rtw89_usb_info rtw8922a_usb_info = { 116bb58cd6SBitterblue Smith .usb_host_request_2 = 0, 126bb58cd6SBitterblue Smith .usb_wlan0_1 = 0, 136bb58cd6SBitterblue Smith .hci_func_en = 0, 146bb58cd6SBitterblue Smith .usb3_mac_npi_config_intf_0 = 0, 156bb58cd6SBitterblue Smith .usb_endpoint_0 = 0, 166bb58cd6SBitterblue Smith .usb_endpoint_2 = 0, 176bb58cd6SBitterblue Smith .rx_agg_alignment = 16, 186bb58cd6SBitterblue Smith .bulkout_id = { 196bb58cd6SBitterblue Smith [RTW89_DMA_ACH0] = 3, 206bb58cd6SBitterblue Smith [RTW89_DMA_ACH2] = 5, 216bb58cd6SBitterblue Smith [RTW89_DMA_ACH4] = 4, 226bb58cd6SBitterblue Smith [RTW89_DMA_ACH6] = 6, 236bb58cd6SBitterblue Smith [RTW89_DMA_B0MG] = 0, 246bb58cd6SBitterblue Smith [RTW89_DMA_B0HI] = 0, 256bb58cd6SBitterblue Smith [RTW89_DMA_B1MG] = 1, 266bb58cd6SBitterblue Smith [RTW89_DMA_B1HI] = 1, 276bb58cd6SBitterblue Smith [RTW89_DMA_H2C] = 2, 286bb58cd6SBitterblue Smith }, 296bb58cd6SBitterblue Smith }; 306bb58cd6SBitterblue Smith 316bb58cd6SBitterblue Smith static const struct rtw89_driver_info rtw89_8922au_info = { 326bb58cd6SBitterblue Smith .chip = &rtw8922a_chip_info, 336bb58cd6SBitterblue Smith .variant = NULL, 34*721d90c8SJohnson Tsai .board = NULL, 356bb58cd6SBitterblue Smith .quirks = NULL, 367554f660SJohnson Tsai .dev_id_quirks = 0, 376bb58cd6SBitterblue Smith .bus = { 386bb58cd6SBitterblue Smith .usb = &rtw8922a_usb_info, 396bb58cd6SBitterblue Smith }, 406bb58cd6SBitterblue Smith }; 416bb58cd6SBitterblue Smith 426bb58cd6SBitterblue Smith static const struct usb_device_id rtw_8922au_id_table[] = { 436bb58cd6SBitterblue Smith { USB_DEVICE_AND_INTERFACE_INFO(0x0411, 0x03ef, 0xff, 0xff, 0xff), 446bb58cd6SBitterblue Smith .driver_info = (kernel_ulong_t)&rtw89_8922au_info }, 456bb58cd6SBitterblue Smith { USB_DEVICE_AND_INTERFACE_INFO(0x0502, 0x76d7, 0xff, 0xff, 0xff), 466bb58cd6SBitterblue Smith .driver_info = (kernel_ulong_t)&rtw89_8922au_info }, 476bb58cd6SBitterblue Smith { USB_DEVICE_AND_INTERFACE_INFO(0x056e, 0x4025, 0xff, 0xff, 0xff), 486bb58cd6SBitterblue Smith .driver_info = (kernel_ulong_t)&rtw89_8922au_info }, 496bb58cd6SBitterblue Smith { USB_DEVICE_AND_INTERFACE_INFO(0x056e, 0x4026, 0xff, 0xff, 0xff), 506bb58cd6SBitterblue Smith .driver_info = (kernel_ulong_t)&rtw89_8922au_info }, 516bb58cd6SBitterblue Smith { USB_DEVICE_AND_INTERFACE_INFO(0x0b05, 0x1bcf, 0xff, 0xff, 0xff), 526bb58cd6SBitterblue Smith .driver_info = (kernel_ulong_t)&rtw89_8922au_info }, 536bb58cd6SBitterblue Smith { USB_DEVICE_AND_INTERFACE_INFO(0x0b05, 0x1bd2, 0xff, 0xff, 0xff), 546bb58cd6SBitterblue Smith .driver_info = (kernel_ulong_t)&rtw89_8922au_info }, 556bb58cd6SBitterblue Smith { USB_DEVICE_AND_INTERFACE_INFO(0x0bda, 0x8912, 0xff, 0xff, 0xff), 566bb58cd6SBitterblue Smith .driver_info = (kernel_ulong_t)&rtw89_8922au_info }, 576bb58cd6SBitterblue Smith { USB_DEVICE_AND_INTERFACE_INFO(0x0db0, 0xda0e, 0xff, 0xff, 0xff), 586bb58cd6SBitterblue Smith .driver_info = (kernel_ulong_t)&rtw89_8922au_info }, 596bb58cd6SBitterblue Smith { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x332b, 0xff, 0xff, 0xff), 606bb58cd6SBitterblue Smith .driver_info = (kernel_ulong_t)&rtw89_8922au_info }, 616bb58cd6SBitterblue Smith { USB_DEVICE_AND_INTERFACE_INFO(0x3625, 0x010a, 0xff, 0xff, 0xff), 626bb58cd6SBitterblue Smith .driver_info = (kernel_ulong_t)&rtw89_8922au_info }, 636bb58cd6SBitterblue Smith { USB_DEVICE_AND_INTERFACE_INFO(0x37ad, 0x0100, 0xff, 0xff, 0xff), 646bb58cd6SBitterblue Smith .driver_info = (kernel_ulong_t)&rtw89_8922au_info }, 656bb58cd6SBitterblue Smith { USB_DEVICE_AND_INTERFACE_INFO(0x37ad, 0x0101, 0xff, 0xff, 0xff), 666bb58cd6SBitterblue Smith .driver_info = (kernel_ulong_t)&rtw89_8922au_info }, 676bb58cd6SBitterblue Smith { USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0x3822, 0xff, 0xff, 0xff), 686bb58cd6SBitterblue Smith .driver_info = (kernel_ulong_t)&rtw89_8922au_info }, 696bb58cd6SBitterblue Smith { USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0x4822, 0xff, 0xff, 0xff), 706bb58cd6SBitterblue Smith .driver_info = (kernel_ulong_t)&rtw89_8922au_info }, 716bb58cd6SBitterblue Smith { USB_DEVICE_AND_INTERFACE_INFO(0x7392, 0x5822, 0xff, 0xff, 0xff), 726bb58cd6SBitterblue Smith .driver_info = (kernel_ulong_t)&rtw89_8922au_info }, 736bb58cd6SBitterblue Smith {}, 746bb58cd6SBitterblue Smith }; 756bb58cd6SBitterblue Smith MODULE_DEVICE_TABLE(usb, rtw_8922au_id_table); 766bb58cd6SBitterblue Smith 776bb58cd6SBitterblue Smith static struct usb_driver rtw_8922au_driver = { 786bb58cd6SBitterblue Smith .name = KBUILD_MODNAME, 796bb58cd6SBitterblue Smith .id_table = rtw_8922au_id_table, 806bb58cd6SBitterblue Smith .probe = rtw89_usb_probe, 816bb58cd6SBitterblue Smith .disconnect = rtw89_usb_disconnect, 826bb58cd6SBitterblue Smith }; 836bb58cd6SBitterblue Smith module_usb_driver(rtw_8922au_driver); 846bb58cd6SBitterblue Smith 856bb58cd6SBitterblue Smith MODULE_AUTHOR("Bitterblue Smith <rtl8821cerfe2@gmail.com>"); 866bb58cd6SBitterblue Smith MODULE_DESCRIPTION("Realtek 802.11be wireless 8922AU driver"); 876bb58cd6SBitterblue Smith MODULE_LICENSE("Dual BSD/GPL"); 88