sdio wifi 移植

本文详细介绍了如何将RTL8822cs SDIO WiFi模块移植到rk3308板子上,包括设备树的修改、内核源码的移植步骤、Kconfig配置以及解决启动时的错误。重点讨论了mmc的配置和sdio设备的检测,确保驱动能够正确加载。

介绍

简单来说,sdio起源自sd标准,顾名思义就是sd的IO接口(interface)的意思,更具体的说明,sd本来是记忆卡的标准,但是现在也可以把SD卡拿来插上一些外围设备接口使用,这个就是就叫做sdio。

而且sdio本身是一种相当单纯的技术,通过sd的IO引脚来连接外部外围,并且通过sd的IO数据接位与外围传输数据,而且sd协会也推出很完整的sdio stack 驱动程序,使得sdio外围得开发与应用变得非常热门

这里我们要移植的是RTL8822cs的sdio WiFi 模块,将其移植到rk3308的板子上去。

设备树得修改

我们使用的是sdio接口的,所以我们需要先在设备树内支持相关配置,在自己板子相关的dts中引用sdio和wireless

wireless-wlan {
                compatible = "wlan-platdata";
                rockchip,grf = <&grf>;
                wifi_chip_type = "rtl8822cs";
                sdio_vref = <1800>;
                WIFI,host_wake_irq = <&gpio4 RK_PB4 GPIO_ACTIVE_HIGH>;
                status = "okay";
};
&sdio {
        clock-frequency = <100000000>;
        clock-freq-min-max = <200000 100000000>;
        bus-width = <4>;
        max-frequency = <150000000>;
        cap-sd-highspeed;
        cap-sdio-irq;
        keep-power-in-suspend;
        supports-sdio;
        non-removable;
        mmc-pwrseq = <&sdio_pwrseq>;
        //sd-uhs-sdr104;		//这句话需要屏蔽,不然会出错不上去
        num-slots = <1>;
        status = "okay";
};

rtl8822cs源码移植

移植源码包我们需要做以下步骤

(1)拷贝源码包到内核

将厂商提供的源码包放入内核内合适的地方,这里我放在kernel/drivers/net/wireless/rockchip_wlan/ 目录下并将其重命名为rtl8822cs

(2)修改kernel/drivers/net/wireless/rockchip_wlan/Makefile 将rtl8822cs加入

# SPDX-License-Identifier: GPL-2.0
obj-$(CONFIG_AP6XXX)    += rkwifi/
obj-$(CONFIG_RTL8188EU) += rtl8188eu/
obj-$(CONFIG_RTL8188FU) += rtl8188fu/
obj-$(CONFIG_RTL8189ES) += rtl8189es/
o
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Enosji

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值