全志平台的 sys_config.fex文件
先说结论:
- 在全志平台上进行开发,大部分的硬件配置都可以在sys_config.fex文件中进行配置和修改,该文件是全志自己的配置文件(类似设备树)。但是在编译过程中,全志内部会将该文件与dts文件进行了合并偶生成dtb文件。
- 配置项以sys_config.fex文件优先。
- 合并后的设备树路径:lichee/out/sunXXXX/linux/common/.sunxi.dts
关于该文件的说明,全志的官网上有详细的介绍,有兴趣的朋友也可以去看看:
http://linux-sunxi.orghttp://linux-sunxi.org/Fex_Guide#FEX_Description或:
http://linux-sunxi.org/Fex_Guide#FEX_Descriptionhttp://linux-sunxi.org/Fex_Guide#FEX_Description
关于该文件的语法规则,有兴趣的朋友可以去找到相关文档的说明,或者在我的资源里下载。
其他:
fex目录: lichee/tool/pack/chips/sunXXXX/config/XXXX/sys_config.fex
fex是Allwinner的设备树,用于配置gpio和一些配置。
fex文件不是像dts一样用于解析的,而是fex编译器编译的。
全志跟其他mtk和高通平台不一样,不完全依赖dts和dtsi。
注意:主线Linux内核不使用FEX / script.bin,而是依靠设备树模型(.dtb文件)
总结起来就是:驱动 = driver code + 设备树 +fex配置
示例:
查看代码,这个硬件资源是如何联系driver代码的,这里以TP的节点ctp_power_ldo在driver中使用为例:
Fex文件:
grep搜了一下,然后就明白怎么回事了
全志把ctp, gsensor, compass, lsensor, gsensor这些input设备统一起来,在
driver/input写了一个sw-device.c驱动,fex里面的compatible和driver里面的compatible
匹配后,调用probe,然后把设备节点的引用统一放到数组里面。
而input设备节点的解析是在init-input.c里面,解析的方法与别的平台dsti解析一样,of函数找到节点。解析存放在init-input.h的头文件中对应的设备结构体device_config_info
的实例中。
驱动文件中:
定义结构体,然后直接使用 (有一个驱动模块中ctp_config_info互相怎么联系起来的问题)
driver连接硬件资源大概就这样,mtk和qcom解析硬件资源直接就在厂商驱动中通过dsti解析节
点,全志中间加了一层用于解析,解析的节点来自fex文件。基本是一样,还是设备节点,还是of
的 api解析。
更多推荐
所有评论(0)