[RK3399 Android7.1.2]新增wifi&bt模块:rtl8822cs驱动以及解决所遇问题

本文介绍了在ROCKCHIP RK3399平台,运行Android7.1.2系统的设备上,针对rtl8822cs WiFi和BT芯片的驱动集成过程。内容包括硬件替换后的识别问题、代码改动、内核编译以及遇到的IO错误、SDIO时钟和reset脚问题的解决方案。同时提到了BT模块的替换和补丁应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Platform: ROCKCHIP
Chip: RK3399
OS: Android7.1.2
Kernel: 4.4.126

背景

硬件替换芯片rtl8822cs;未改代码情况下,WIFI:点pown on立即跳到off
bt:点on 无反应,串口打印

[  875.649281] ret = 0
[  875.704811] [BT_RFKILL]: bt shut off power
[  875.726554] [BT_RFKILL]: rfkill_rk_set_power: set bt wake_host high!
[  875.771901] [BT_RFKILL]: ENABLE UART_RTS
[  875.875559] [BT_RFKILL]: DISABLE UART_RTS
[  875.875683] [BT_RFKILL]: bt turn on power
[  875.875708] [BT_RFKILL]: Request irq for bt wakeup host
[  875.875748] [BT_RFKILL]: ** disable irq

在这里插入图片描述

代码改动

1.修改WIFI配置的dtsi:



    wireless-wlan {
   
        compatible = "wlan-platdata";
        rockchip,grf = <&grf>;
        wifi_chip_type = "rtl8822cs";
        sdio_vref = <1800>;
        WIFI,host_wake_irq = <&gpio0 3 GPIO_ACTIVE_HIGH>; /* GPIO0_a3 */
        status = "okay";
    };

2.2.添加驱动
将供应商提供的驱动放在目录:kernel\drivers\net\wireless\rockchip_wlan
修改当前目录下makefile:

obj-$(CONFIG_RTL8822CS)    += rtl8822cs/
修改kconfig:
source "drivers/net/wireless/rockchip_wlan/rtl8822cs/Kconfig"

修改rtl8822cs/makefile:

    CONFIG_PLATFORM_I386_PC=n
    CONFIG_PLATFORM_ARM_RK3188=y
make ARCH=arm64 menuconfig 添加勾选
   Device Drivers  --->  
   [*] Network device support  --->  
    [*]   Wireless LAN  --->    
    [*]   Rockchip Wireless LAN support  --->  
    <M>   Realtek 8822C SDIO WiFi  

3.添加芯片类型枚举:
kernel/net/rfkill/rfkill-wlan.c

int get_wifi_chip_type<
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值