i.MX6ULL终结者Pinctrl子系统和GPIO子系统Pinctrl子系统

大多数SOC的PIN都是支持复用的,比如 I.MX6ULL 的 GPIO1_IO03 既可以作为普通的GPIO 使用,也可以作为 I2C1 的 SDA 等等。所以在配置时要考虑复用的设置,此外还要配置PIN的电气特性,比如上下拉、速度、驱动等。
pinctrl子系统的主要工作内容:
获取设备树中pin信息
根据获得到的pin信息来设置pin的复用功能
根据获得到的pin信息来设置pin的电气特性,比如上下拉、速度、驱动能力
对于我们使用者来说,只需要在设备树里面设置好某个pin的相关属性即可,其他的初始化工作均由pinctrl子系统来完成,pinctrl 子系统源码目录drivers/pinctrl。

1 配置pinctrl

下面我们来看一下pinctrl子系统在imx6ull的设备树中是如何实现并使用的。
先来看一下官方手册Documentation/devicetree/bindings/pinctrl/fsl,imx-pinctrl.txt中关于pinctrl的语法实例:

Examples:
usdhc@0219c000 {
    /* uSDHC4 */
        non-removable;
        vmmc-supply = <&reg_3p3v>;
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usdhc4_1>;
};
iomuxc@020e0000 {
   
        compatible = "fsl,imx6q-iomuxc";
        reg = <0x020e0000 0x4000>;
        /* shared pinctrl settings */
        usdhc4 {
   
                pinctrl_usdhc4_1: usdhc4grp-1 {
   
                        fsl,pins = <
                                MX6QDL_PAD_SD4_CMD__SD4_CMD  0x17059
                                MX6QDL_PAD_SD4_CLK__SD4_CLK    0x10059
                                MX6QDL_PAD_SD4_DAT0__SD4_DATA0 0x17059
                                MX6QDL_PAD_SD4_DAT1__SD4_DATA1 0x17059
                                MX6QDL_PAD_SD4_DAT2__SD4_DATA2 0x17059
                                MX6QDL_PAD_SD4_DAT3__SD4_DATA3 0x17059
                                MX6QDL_PAD_SD4_DAT4__SD4_DATA4 0x17059
                                MX6QDL_PAD_SD4_DAT5__SD4_DATA5 0x17059
                                MX6QDL_PAD_SD4_DAT6__SD4_DATA6 0x17059
                                MX6QDL_PAD_SD4_DAT7__SD4_DATA7 0x17059
                        >;
 
        }
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值