imx6系列--引脚复用及特性设置(设备树)

来源:互联网 发布:aim 霹雳 知乎 编辑:程序博客网 时间:2024/05/21 17:38

转自 http://blog.csdn.net/vertor11/article/details/67633652

imx6系列--引脚复用及特性设置(设备树)


一 简介 
IOMUX:让IC的多个功能模块共享一个引脚。 
每个模块都需要设置每个引脚的性能,如上下拉 高阻等,对于每个引脚都有高达8个复用选项。 
相关寄存器: 
32位的复用控制寄存器(IOMUXC_SW_MUX_CTL_PAD_ or IOMUXC_SW_MUX_CTL_GRP_) ,用于选择复用模式。 
32位的引脚控制寄存(IOMUXC_SW_PAD_CTL_PAD_ orIOMUXC_SW_PAD_CTL_GRP_) ,用于配置每个引脚特性。 
32位通用寄存器(GPR0 to GPR13) 
32位输入选择寄存器 xxxxx_INPUT,用于选择输入信号。

模块功能简图 
这里写图片描述

datasheet:相关章节 
Chapter 4​: External Signals and Pin Multiplexing 引脚复用 
Chapter 31​: IOMUX Controller (IOMUXC) 引脚复用控制器

二 驱动文件相关

寄存器配置宏: /arch/arm/boot/dts/Imx6ul-pinfunc.h 
举例详解:

#define    MX6UL_PAD_SNVS_TAMPER5__GPIO5_IO05                0x0030 0x02BC 0x0000 5 0
  • 1

其对应意义: 
即:复用控制寄存器IOMUXC_SW_MUX_CTL_PAD_SNVS_TAMPER5 的偏移地址:30h offset 
引脚控制寄存器IOMUXC_SW_PAD_CTL_PAD_SNVS_TAMPER5 的偏移地址:2BCh offset 
输入寄存器的偏移地址:无,则写0 ; 有则写相应的 偏移地址。例如:IOMUXC_UART6_RX_DATA_SELECT_INPUT:64Ch offset 
复用模式值:见 datasheet的Chapter 4: External Signals and Pin Multiplexing 章节,则,写5 
输入值:输入寄存器值xxxx_INPUT。 
读取设备树文件:/drivers/pinctrl/Pinctrl-imx.c

设备树设置: 
例如:

pinctrl_uart4: uart4grp {    fsl,pins = <        MX6UL_PAD_LCD_CLK__UART4_DCE_TX     0x1b0b1        MX6UL_PAD_LCD_ENABLE__UART4_DCE_RX  0x1b0b1        /*设置为引脚流控*/        //MX6UL_PAD_LCD_HSYNC__UART4_DTE_RTS    0x1b0b1        //MX6UL_PAD_LCD_VSYNC__UART4_DTE_CTS    0x1b0b1        /*设置为普通GPIO*/        MX6UL_PAD_LCD_HSYNC__GPIO3_IO02     0xb0b0        MX6UL_PAD_LCD_VSYNC__GPIO3_IO03     0xb0b0    >;};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

注:最后一个值 为该引脚的性能配置值,可根据需求修改。 0x80000000表示无效配置,即取默认配置。0x4xxxxxxxxx,表示设置了SION软件标志位。

    0x80000000 is special and means "I don't know and don't change from the default"    Bit 30 set to 1 means: software input on (SION) whcih means that the logical value of an output can be read back
原创粉丝点击