当前位置: 代码迷 >> 综合 >> 6.3在设备树中pinctrl的简单使用
  详细解决方案

6.3在设备树中pinctrl的简单使用

热度:51   发布时间:2023-10-16 01:22:15.0

 

文档:
内核 Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt

几个概念:

Bank: 以引脚名为依据, 这些引脚分为若干组, 每组称为一个Bank
      比如s3c2440里有GPA、GPB、GPC等Bank,
      每个Bank中有若干个引脚, 比如GPA0,GPA1, ..., GPC0, GPC1,...等引脚

Group: 以功能为依据, 具有相同功能的引脚称为一个Group
       比如s3c2440中串口0的TxD、RxD引脚使用 GPH2,GPH3, 那这2个引脚可以列为一组
       比如s3c2440中串口0的流量控制引脚使用 GPH0,GPH1, 那这2个引脚也可以列为一组

State: 设备的某种状态, 比如内核自己定义的"default","init","idel","sleep"状态;
       也可以是其他自己定义的状态, 比如串口的"flow_ctrl"状态(使用流量控制)
       
       设备处于某种状态时, 它可以使用若干个Group引脚a. 设备树中pinctrl节点:
a.1 它定义了各种 pin bank, 比如s3c2440有GPA,GPB,GPC,...,GPB各种BANK, 每个BANK中有若干引脚:
    

pinctrl_0: pinctrl@56000000 {
        reg = <0x56000000 0x1000>;        gpa: gpa {
            gpio-controller;
            #gpio-cells = <2>;  /* 以后想使用gpa bank中的引脚时, 需要2个u32来指定引脚 */
        }; 
  相关解决方案