全志 Fex文件

也是刚接触全志平台,网上搜到一些内容,然后简单总结一下

这个网站上有详细的介绍Fex

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

也可以转到

 http://linux-sunxi.org  

了解全志的sunxi

一些翻译和概括:
        
fex目录:
    lichee/tool/pack/chips/sun8iw11p1/config/a40-p1/sys_config.fex
fex是Allwinner的设备树,用于配置gpio和一些配置,然后fex文件不是像dts一样用于解析的,而是fex
编译器编译的。
 
然后后面英文有备注全志跟其他mtk和高通平台不一样,不依赖dts和dsti:
    
   注意:主线Linux内核不使用FEX / script.bin,而是依靠设备树模型(.dtb文件)
 
--------------------
总结起来就是:
 

  驱动 = driver code + fex配置

然后看下代码,这个硬件资源是怎么联系driver代码的呢,我这里看下TP的节点ctp_power_ldo在driver中怎么用的。

Fex文件:

image

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

image

image

driver连接硬件资源大概就这样,mtk和qcom解析硬件资源直接就在厂商驱动中通过dsti解析节点,全志中间加了一层用于解析,解析的节点来自fex文件。基本是一样,还是设备节点,还是of api解析。

暂时不知道为啥这样做,不清楚软件这样做的好处是啥。

原文地址:https://www.cnblogs.com/linhaostudy/p/14954578.html