内核使用的是天嵌移植好的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的配置信
理解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字段的含义。
最低0.47元/天 解锁文章
3624

被折叠的 条评论
为什么被折叠?



