Android:平台自动设置Pinctrl的默认配置

            Android:平台自动设置Pinctrl的默认配置

 

一、GPIO的MUX的功能,RK平台针对“default”的状态是不需要在Driver中去配置,而是由平台统一的实现了,不需要driver另外去设置。

Android:平台自动设置Pinctrl的默认配置_第1张图片

 

二、只需要如上的配置就可以选择复用pin的功能了,驱动中我们完全不用再去管了。既然驱动中没有去做配置,那么平台是在哪个地方完成的呢?其实就是在设备和驱动Match成功后,在触发probe之前。

 

三、分析一下实现流程,在driver 的probe函数里面添加dump_stack()打印堆栈信息。

Android:平台自动设置Pinctrl的默认配置_第2张图片

 

四、查看打印信息

Android:平台自动设置Pinctrl的默认配置_第3张图片

五、分析上面的堆栈log,可以理清大概的调用流程 driver_probe_device->really_probe->pinctrl_bind_pins->pinctrl_lookup_state,如果init状态存在则初始化为init,否则初始化为default。

Android:平台自动设置Pinctrl的默认配置_第4张图片

Android:平台自动设置Pinctrl的默认配置_第5张图片

 

Android:平台自动设置Pinctrl的默认配置_第6张图片

 

你可能感兴趣的:(Linux学习)