zoukankan      html  css  js  c++  java
  • pinctrl和gpio子系统

      LInux针对PIN的配置推出了pinctrl子系统,针对GPIO的配置推出了gpio子系统。

    1、pinctrl子系统

      pinctrl子系统重点是设置PIN(有的SOC叫做PAD)的复用和电气属性。下面向设备树添加一个pinctrl节点模板:

    功能:创建一个test设备,test使用了GPIO1_IO00这个PIN的GPIO功能。
    添加过程:在imx6ull-alientek-emmc.dts文件,iomuxc节点中的“imx6ul-evk”子节点下添加"pinctrl_test"节点(节点前缀一定要是“pinctrl_”)。

    pinctrl_test: testgrp{
        fsl, pins = <
            MX6UL_PAD_UART1_RTS_B__GPIO1_IO19 0x17059 
        >;
    };

    1.1 MX6UL_PAD_UART1_RTS_B__GPIO1_IO19

      在/arch/arm/imx6ul-pinfunc.h中进行了宏定义。

    1.2 0x17059

      设置配置寄存器的值,这个需要我们自己设置。

    参考:https://www.cnblogs.com/Mike2019/p/13530450.html

     2、GPIO子系统

      如果 pinctrl 子系统将一个 PIN 复用为 GPIO ,那么接下来就要用到 gpio 子系
    统了。 gpio 子系统就是用于初始化 GPIO 并且提供相应的 API 函数。

    test{
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_test>;
        GPIOA = <&gpio1 19 GPIO_ACTIVE_LOW>;  //使用了GPIO1_IO19,低电平有效
    }

    &gpio1:表示该引脚所使用的IO属于GPIO1组

    19:       表示GPIO1组的第19号IO

    GPIO_ACTIVE_LOW:低电平有效

    3、GPIO子系统API函数

     

    4、GPIO相关OF函数

    4.1 of_gpio_named_count

    4.2 of_gpio_count

    4.3 of_get_named_gpio

  • 相关阅读:
    用linux搭建ranzhi环境
    软件测试知识点总结
    python函数
    python基础
    数据库学习之四
    数据库学习之三
    数据库学习之二
    git常用命令
    JS方法总结
    原生javascript请求服务器详解
  • 原文地址:https://www.cnblogs.com/Mike2019/p/13531080.html
Copyright © 2011-2022 走看看