xref: /freebsd/sys/contrib/dev/rtw88/rtw8821cs.c (revision 90aac0d83bc9645f51ef0c2aeae6f9c0540bb031)
1*90aac0d8SBjoern A. Zeeb // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
2*90aac0d8SBjoern A. Zeeb /* Copyright(c) Martin Blumenstingl <martin.blumenstingl@googlemail.com>
3*90aac0d8SBjoern A. Zeeb  */
4*90aac0d8SBjoern A. Zeeb 
5*90aac0d8SBjoern A. Zeeb #include <linux/mmc/sdio_func.h>
6*90aac0d8SBjoern A. Zeeb #include <linux/mmc/sdio_ids.h>
7*90aac0d8SBjoern A. Zeeb #include <linux/module.h>
8*90aac0d8SBjoern A. Zeeb #include "main.h"
9*90aac0d8SBjoern A. Zeeb #include "rtw8821c.h"
10*90aac0d8SBjoern A. Zeeb #include "sdio.h"
11*90aac0d8SBjoern A. Zeeb 
12*90aac0d8SBjoern A. Zeeb static const struct sdio_device_id rtw_8821cs_id_table[] =  {
13*90aac0d8SBjoern A. Zeeb 	{
14*90aac0d8SBjoern A. Zeeb 		SDIO_DEVICE(SDIO_VENDOR_ID_REALTEK,
15*90aac0d8SBjoern A. Zeeb 			    SDIO_DEVICE_ID_REALTEK_RTW8821CS),
16*90aac0d8SBjoern A. Zeeb 		.driver_data = (kernel_ulong_t)&rtw8821c_hw_spec,
17*90aac0d8SBjoern A. Zeeb 	},
18*90aac0d8SBjoern A. Zeeb 	{}
19*90aac0d8SBjoern A. Zeeb };
20*90aac0d8SBjoern A. Zeeb MODULE_DEVICE_TABLE(sdio, rtw_8821cs_id_table);
21*90aac0d8SBjoern A. Zeeb 
22*90aac0d8SBjoern A. Zeeb static struct sdio_driver rtw_8821cs_driver = {
23*90aac0d8SBjoern A. Zeeb 	.name = "rtw_8821cs",
24*90aac0d8SBjoern A. Zeeb 	.probe = rtw_sdio_probe,
25*90aac0d8SBjoern A. Zeeb 	.remove = rtw_sdio_remove,
26*90aac0d8SBjoern A. Zeeb 	.id_table = rtw_8821cs_id_table,
27*90aac0d8SBjoern A. Zeeb 	.drv = {
28*90aac0d8SBjoern A. Zeeb 		.pm = &rtw_sdio_pm_ops,
29*90aac0d8SBjoern A. Zeeb 		.shutdown = rtw_sdio_shutdown,
30*90aac0d8SBjoern A. Zeeb 	}
31*90aac0d8SBjoern A. Zeeb };
32*90aac0d8SBjoern A. Zeeb module_sdio_driver(rtw_8821cs_driver);
33*90aac0d8SBjoern A. Zeeb 
34*90aac0d8SBjoern A. Zeeb MODULE_AUTHOR("Martin Blumenstingl <martin.blumenstingl@googlemail.com>");
35*90aac0d8SBjoern A. Zeeb MODULE_DESCRIPTION("Realtek 802.11ac wireless 8821cs driver");
36*90aac0d8SBjoern A. Zeeb MODULE_LICENSE("Dual BSD/GPL");
37