imx6ul设备树pinctrl解析

本文档记录了对Linux内核4.1.15版本中,天嵌移植的IMX6UL设备树中pinctrl配置的理解过程。以led_gpio为例,详细探讨了MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07的定义,解析了配置信息在`imx6ul-pinfunc.h`和`pinctrl-imx.c`中的作用。通过查阅数据手册,了解到config_reg寄存器用于配置IO模式,如上拉电阻和速度。最后,分析了源代码的逻辑,并与其他设备树进行对比,以助于理解如何判断端口输入模式和SION字段的含义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内核使用的是天嵌移植好的linux4.1.15版本的内核,看它的设备树中用到pinctrl的配置不是很理解,理解一番后现在记录下:

1、以led_gpio为例:

leds {
        compatible = "gpio-leds";
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_gpio_leds>;

        led1 {
            label = "LED1";
            gpios = <&gpio5 7 GPIO_ACTIVE_LOW>; //led 使用的引脚,与触发电平
        };
        led2 {
            label = "LED2";
            gpios = <&gpio5 2 GPIO_ACTIVE_LOW>;
        };
    };

pinctrl_gpio_leds: gpio_leds{
            fsl,pins = <
                MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07  0x70a1      //led1
                MX6UL_PAD_SNVS_TAMPER2__GPIO5_IO02  0x70a1      //led2

            >;
        };

pinctrl的配置信

### IMX6ULL PWM 设备树配置 对于IMX6ULL的PWM模块,在设备树中的配置通常涉及定义PWM控制器节点以及其属性。以下是基于提供的参考资料和专业知识构建的一个典型设备树片段。 #### 配置说明 在设备树中,PWM控制器通过`pwm-controller`兼容字符串来声明,并设置相应的寄存器基地址、中断号以及其他必要的参数[^2]。以下是一个可能的IMX6ULL PWM设备树配置示例: ```dts /pinctrl@... { pinctrl_pwm1: pwm1grp { fsl,pins = < MX6UL_PAD_GPIO1_IO07__PWM1_OUT 0x80000000 /* 设置GPIO引脚为PWM功能 */ >; }; }; &iomuxc { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_pwm1>; /* 使用上述定义的pinmux组 */ }; &pwm1 { /* 假设PWM1控制器位于这个路径下 */ compatible = "fsl,imx6ul-pwm"; /* 定义与Freescale IMX6UL PWM兼容 */ reg = <0x020a0000 0x4000>; /* 寄存器基址及其大小 */ interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; /* 中断号及类型 */ clocks = <&clk IMX6UL_CLK_PWM1>, <&clks IMX6UL_CLK_OSC_24M>; /* 所需时钟源 */ clock-names = "ipg", "per"; /* 对应的时钟名称 */ status = "okay"; /* 启用该PWM控制器 */ pwm { pwms = <0 0 500000 0>; /* 定义PWM通道、极性、周期(纳秒)、占空比 */ }; }; ``` 以上代码展示了如何在设备树中配置IMX6ULL的PWM模块。具体来说: - `reg` 属性指定了PWM控制器的内存映射地址范围。 - `interrupts` 属性描述了用于处理PWM事件的硬件中断编号和触发模式。 - `clocks` 和 `clock-names` 提供了所需的时钟资源及其对应的名称。 - `pwms` 子节点则进一步细化了PWM信号的具体特性,例如周期和占空比。 #### 注意事项 当启用驱动程序模型时,确保内核编译选项中启用了相关支持,比如`CONFIG_OF_CONTROL`,以便能够解析设备树并初始化相应外设。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值