Linux:3.10
WiFi芯片:RTL8723
接口:SDIO
本文从硬件结构到软件实现探究Linux中WiFi驱动的框架。如下图:
硬件角度:
- CPU
- WiFi芯片,以rtl8723为例
- 总线SDIO
- 电源、GPIO:负责WiFi模组的电源管理、IO管理
- SDIO:数据通道
- WiFi驱动:负责WiFi规范实现
- Sysfs:/sys/文件系统中提供访问驱动接口
Linux有非常好的模块化机制,所以这几部分作为各自独立的模块进行注册,下面从代码示例的方式看下。
一、电源、GPIO管理模块
该模块完成CPU对WiFi模组电源、引脚的初始化、控制等功能。由于Linux采用设备树(Device Tree)方式管理硬件设置,所以第一步就是解