先说结论:

  • 在全志平台上进行开发,大部分的硬件配置都可以在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解析。

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐