天天看点

全志平台的 sys_config.fex文件

先说结论:

在全志平台上进行开发,大部分的硬件配置都可以在sys_config.fex文件中进行配置和修改,该文件是全志自己的配置文件(类似设备树),可以说基本上取代了dts文件。

但是在编译过程中,全志内部会将该文件与dts文件进行了合并偶生成dtb文件。

配置项以sys_config.fex文件优先。

合并后的设备树路径:lichee/out/sunXXXX/linux/common/.sunxi.dts

关于该文件的说明,全志的官网上有详细的介绍,有兴趣的朋友也可以去看看:

http://linux-sunxi.org

全志平台的 sys_config.fex文件

http://linux-sunxi.org/Fex_Guide#FEX_Description或:

http://linux-sunxi.org/Fex_Guide#FEX_Description

全志平台的 sys_config.fex文件

http://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文件:

全志平台的 sys_config.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互相怎么联系起来的问题)

全志平台的 sys_config.fex文件
全志平台的 sys_config.fex文件

 driver连接硬件资源大概就这样,mtk和qcom解析硬件资源直接就在厂商驱动中通过dsti解析节

点,全志中间加了一层用于解析,解析的节点来自fex文件。基本是一样,还是设备节点,还是of

的 api解析。

继续阅读