工作概述
- CL1689 ADC采样芯片驱动适配
- SPI转CAN MCP2515芯片驱动适配
1.解决spi转adc驱动无法正常加载的问题
-
错误信息 :
内核驱动打印 : spi spi1.0: Driver ad7949 requests probe deferral 驱动应用打印 : fail to request regulator
-
解决方法
-
解决思路 : 最开始一直怀疑是设备树配置方式不对导致该问题的发生,尝试各种配置设备树的方式,依然报错.期间也咨询过厂家及原厂的工程师,依然没有得到解决方法及思路,最后只能还是依靠自己.咱们可以通过顺着设备树对应的设备属性的思路来进行分析,可以发现引用的adc_supply节点中的compatible = “regulator-fixed”,一般根据该属性来匹配设备与驱动的关联,因此就怀疑该属性也是对应其中一个驱动,果真在内核搜索中能搜索到该驱动属性,发现内核配置中没有配置该驱动,而spi转adc驱动是基于iio驱动框架,而iio驱动框架恰好依赖于regulator驱动,因此需要在内核中配置使能regulator驱动选项,该初始化问题即可解决.
-
设备树配置信息 :
adc_supply: fixedregulator { compatible = "regulator-fixed"; regulator-name = "fixed-supply"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; &spi1 { status = "okay"; sp
-