1.简介
RK的wifi与蓝牙都是集成在一块IC上的,一般查看RK的支持系列,都可以快速的配置出wifi与蓝牙。目前我这有个项目使用的是PX30 android8.1 + AP6212,就拿此案例作为演示
2.wifi配置流程
2.1 Wifi的dts查看
wireless-wlan { compatible = "wlan-platdata"; wifi_chip_type = "AP6210";
//需要参考原理图进行配置的引脚 WIFI,host_wake_irq = <&gpio0 RK_PB2 GPIO_ACTIVE_HIGH>; status = "okay"; };
可以看见,RK支持的ap系列只需要配置wifi的唤醒脚就可以了
2.2 Wifi的硬件原理图查看
经过硬件原理图的查找,我们可以看见硬件是把wifi的唤醒脚接到px30的GPIO0_B2上了,我们只需要把dts上wifi的唤醒脚更换成这个就可以使用了
2.3 Wifi验证
编译一版新的kernel固件,烧录进设备上,开启wifi连接热点,检查是否可以正常上网。或者命令行上ping一下外网
3.bluetooth配置流程
3.1 bluetooth的dts查看
wireless-bluetooth { compatible = "bluetooth-platdata"; clocks = <&rk809 1>; clock-names = "ext_clock"; uart_rts_gpios = <&gpio1 RK_PC3 GPIO_ACTIVE_LOW>; pinctrl-names = "default","rts_gpio"; pinctrl-0 = <&uart1_rts>; pinctrl-1 = <&uart1_rts_gpio>;
//需要参考原理图进行配置的引脚 BT,reset_gpio = <&gpio2 RK_PB0 GPIO_ACTIVE_HIGH>; BT,wake_gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>; BT,wake_host_irq = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>; status = "okay"; }
依次查看硬件的原理图,进行引脚的配置
3.2 bluetooth硬件原理图的查看
由原理图可知,我们可以配置BT,wake_host_irq = <&gpio0 RK_PB3 GPIO_ACTIVE_HIGH>;
由原理图可知,我们可以配置BT,reset_gpio = <&gpio2 RK_PB0 GPIO_ACTIVE_HIGH>;
由原理图可知,我们可以配置BT,wake_gpio = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>;
3.3 bluetooth验证
编译一版kernel的固件,烧录进设备上,打开蓝牙,连接手机或其他设备,进行蓝牙文件的传输与接收,看看功能是否正常