[imx6][Linux4.9]IMX6平台 pinctrl子系统

发布时间:2024年01月23日

在这里插入图片描述

主控芯片硬件开发板内核版本
imx6100ask_imx6ullLinux-4.9.88

1、Pinctrl 子系统

1.1、Pinctrl 子系统的作用

  • 获取设备树中的pin信息;
  • 根据获取到的pin信息来设置pin的复用功能;
  • 根据获取到的pin信息来设置pin的电气特性。

1.2、设备树中PIN的配置信息

设备树里面创建一个节点来描述 GPIO PIN 的配置信息:
设备树文件目录:Linux-4.9.88/arch/arm/boot/dts/imx6ull.dtsi
在这里插入图片描述
iomuxc 节点进行数据的追加:

&iomuxc {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_hog_1>;
        imx6ul-evk {
                pinctrl_hog_1: hoggrp-1 {
                        fsl,pins = <
                                MX6UL_PAD_UART1_RTS_B__GPIO1_IO19       0x17059 /* SD1 CD */
                                MX6UL_PAD_GPIO1_IO00__ANATOP_OTG1_ID    0x17059 /* USB OTG1 ID */
                                MX6UL_PAD_CSI_DATA07__GPIO4_IO28           0x000010B0
                                MX6ULL_PAD_SNVS_TAMPER5__GPIO5_IO05        0x000110A0
                        >;
                };
                ......
                pinctrl_i2c1: i2c1grp {
                        fsl,pins = <
                                MX6UL_PAD_UART4_TX_DATA__I2C1_SCL 0x4001b8b0
                                MX6UL_PAD_UART4_RX_DATA__I2C1_SDA 0x4001b8b0
                        >;
                };
                ......
		}
}

1.2、设备树中PIN的配置信息中的复用信息解析

MX6UL_PAD_UART1_RTS_B__GPIO1_IO19       0x17059

这个宏定义在:Linux-4.9.88/arch/arm/boot/dts/imx6ul-pinfunc.h

                                                    /* <mux_reg  conf_reg  input_reg  mux_mode input_val> */
#define MX6UL_PAD_UART1_RTS_B__GPIO1_IO19               0x0090   0x031c    0x0000     5        0

从芯片手册:IMX6ULLRM.pdf可知

  • mux_regSW_MUX_CTL_PAD_UART1_RTS_B偏移地址:0x0090

  • mux_mode5代表为普通GPIO模式
    在这里插入图片描述

  • conf_regIOMUXC_SW_PAD_CTL_PAD_UART1_RTS_B 偏移地址:0x031c

  • 0x17059 就是 conf_reg 寄存器值,对应二级制为:10111000001011001
    在这里插入图片描述

1.3、PINCTRL子系统驱动

文件目录:Linux-4.9.88/drivers/pinctrl/freescale/pinctrl-imx6ul.c
文件目录:Linux-4.9.88/rivers/pinctrl/freescale/pinctrl-imx.c

文章来源:https://blog.csdn.net/qq_33487044/article/details/127760526
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。