pinctrl子系统(一):iomuxc节点

设备树

iomuxc节点:pinctrl子系统初窥

  • pinctrl子系统使用iomuxc节点来汇总pin引脚信息,对于不同的外设选择对应的pin group使用
iomuxc节点
  • imx6ull.dtsi

    iomuxc: iomuxc@20e0000 {
    				compatible = "fsl,imx6ul-iomuxc";
    				reg = <0x20e0000 0x4000>;
    			};
    
    • iomuxc也看做是一个外设
    • compatible:与pinctrl子系统的平台驱动做匹配
    • reg:引脚配置寄存器的基地址
  • imx6ull-seeed-npi.dts

    &iomuxc {
    	pinctrl-names = "default","init","sleep"; 
    	pinctrl-0 = <&pinctrl_hog_1>;
    	pinctrl-1 =<&xxx>;
    	pinctrl-2 =<&yyy>;
    ...
    	pinctrl_uart1: uart1grp {
    		fsl,pins = <
    			MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
    			MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1
    		>;
    	};
    ...
    }
    
节点引脚配置方式
  • pinctrl-names:定义引脚状态,一种状态对应一个pinctrl-x

  • pinctrl-0:定义第0种状态需要使用到的引脚,可引用其他节点标识

  • pinctrl-1:定义第1种状态需要使用到的引脚,以此类推

节点配置信息记录
  • fsl,pins(这个是由芯片厂家决定的)

    • 结合imx6ull的pinctrl子系统驱动使用
    • 以该属性来标识引脚的配置信息
  • fsl,pins属性值

    一个宏+一个十六进制数

    MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
    
  • 宏定义原型

    imx6ull.dtsi ->#include “imx6ull-pinfunc.h”->#include “imx6ul-pinfunc.h”

    #define MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x0084 0x0310 0x0000 0 0
    
  • 宏值含义

    <mux_reg conf_reg input_reg mux_mode input_val>
     0x0084    0x0310    0x0000     0x0      0x0
    
    • mux_reg:引脚复用设置寄存器

      请添加图片描述

    • conf_reg:引脚属性设置寄存器

      请添加图片描述

    • input_reg:引脚输入设置寄存器

    • 引脚需要输入功能时设置

    • mux_mode:复用寄存器设置值

    • 设置引脚复用

    • input_value:输入寄存器设置值

      • 设置引脚输入特性
  • 十六进制数

    属性寄存器设置值

    • 特性复杂,独立设置
  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值