WIFI 驱动

场景需求:适配基于RK3568芯片,适配一款USB WiFi模块

型号选用:RTL8822cu
最后字母代表工作方式,“S”为SDIO,“P”为pcie,“U”则为usb

代码环境:Liunx5.10 内核

该模块属于大功率的wifi模块,仅支持单模的wifi信号,不带蓝牙,通讯距离方面相对其他模块较好。

kernel 部分

因为只要使用usb,所以只需要usb口,开启usb供电就行。内核部分也仅仅只需要编译相应驱动代码即可。

dts
1
2
3
4
5
6
7
8
9
10
# 这是一个开启usb供电的gpio
/*************WIFI 电源控制 **************/
gpio-keys {
compatible = "gpio-keys";
pinctrl-names = "default";
pinctrl-0 = <&wifi_key>;
gpios = <&gpio3 RK_PC4 GPIO_ACTIVE_LOW>; // 1016
label = "GPIO Key WIFI";
debounce-interval = <100>;
};
编译文件

linux_deconfig

1
2
# rtl8822cu wifi模块
CONFIG_RTL8822CU=y

WiFi 代码:
驱动代码需找厂商提供,解压查看“/driver/rtl8822cu”目录,放入或者替换SDK中 “/kernel/driver/net/wireless/rockchip_wlan”,其他平台放入wifi对应目录

所在目录 Makefile 增加

1
2
obj-$(CONFIG_RTL8822CU) += rtl8822cu/

所在目录 Kconfig 增加

1
2
source "drivers/net/wireless/rockchip_wlan/rtl8822cu/Kconfig"