基于Linux 3.10.49内核的pinctrl流程分析(4)

##############################################################################################
pinctrl 运行原理:
1) 读取dts: 先读入dts的pinmuxing节点的信息到map;
 2) dts的子节点的function 和 自定义function结构体的function的名字匹配, 得到自定义function结构体的下标, 放入Setting变量的func:
 3) 由自定义function结构体的下标, 得到自定义function结构体的group的名字和数量;
4) 判断 dts的子节点的group 是否在自定义function结构体的group的名字里面, 如果是, 运行第5步, 否就运行第二步匹配dts下一个子节点的function;
 5) dts的子节点的group 和 自定义group结构体的group的名字匹配, 得到自定义group结构体的下标, 放入Setting变量的group;
 6) 通过Setting变量的func和group这两个下标调用struct pinmux_ops的enable回调函数. 哈哈, 络于可以设置寄存器了.

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7ba6319fb11879e189706f1d0eff5d9e.html