首页 > 其他分享 >pinctrl子系统 和 GPIO子系统

pinctrl子系统 和 GPIO子系统

时间:2023-02-12 17:12:26浏览次数:41  
标签:cells fsl pinctrl controller GPIO gpio bindings 子系统

pin controller

pin controller 是用来设置引脚上下拉、三态、驱动强度、复用功能的,作为一个设备树节点,如 testgrp

iomuxc: pinctrl@20e0000 {
    compatible = "fsl,imx6ul-iomuxc";
    reg = <0x020e0000 0x4000>;
};

&iomuxc {
    pinctrl_test: testgrp {
        fsl,pins = <
            MX6UL_PAD_GPIO1_IO00__GPIO1_IO00 config /*config 是具体设置值*/
        >;
    };

pinctrl作为一个设备节点,必然一个驱动程序以之对应,在linux kernel中搜索 "fsl,imx6ul-iomuxc" 即可

参考文档:

Documentation\devicetree\bindings\pinctrl\fsl,imx-pinctrl.txt

Documentation\devicetree\bindings\pinctrl\fsl,imx6ul-pinctrl.txt

gpio controller

    gpio1: gpio@73f84000 {
        compatible = "fsl,imx35-gpio";
        reg = <0x73f84000 0x4000>;
        interrupts = <50 51>;
        gpio-controller;
        #gpio-cells = <2>;
        interrupt-controller;
        #interrupt-cells = <2>;
    };

 

gipo作为一个设备节点,必然有一个驱动程序以之对应,在linux kernel 中搜索 "fsl,imx35-gpio" 即可

#gpio-cells = <2>:引用 gpio controller 的语句称为 gpio-specifier,比如 "led-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>",#gpio-cells是用来指示 gpio-specifier 带几个参数的,此处 2 对应的参数是 3 和 GPIO_ACTIVE_LOW。

参考文档:

Documentation\devicetree\bindings\gpio\gpio.txt

Documentation\devicetree\bindings\gpio\fsl-imx-gpio.yaml

client device

如果某个设备节点需要设置 pin,此设备节点称为 client device。

client device 设置 pin 的方法为引用 pin controller

gpioled {
    #address-cells = <1>;
    #size-cells = <1>;
    compatible = "atkalpha-gpioled";
    pinctrl-0 = <&pinctrl_led>;
    led-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;
    status = "okay";
};

 

参考文档:

Documentation\devicetree\bindings\pinctrl\pinctrl-bindings.txt

 

以上的节点属性,只有 led-gpio 是自定义的,在 gpioled 的驱动程序中,我们就可以指定节点属性 led-gpio,从而获得此 gpio 的编号,最后控制此 gpio 的电平。

 

标签:cells,fsl,pinctrl,controller,GPIO,gpio,bindings,子系统
From: https://www.cnblogs.com/god-of-death/p/17114144.html

相关文章

  • TX2 核心板 GPIO、IO扩展器、拨码开关、LED灯 使用总结
    PS:要转载请注明出处,本人版权所有。PS:这个只是基于《我自己》的理解,如果和你的原则及想法相冲突,请谅解,勿喷。前置说明  本文作为本人csdnblog的主站的备份。(BlogID......
  • MT7621 openWrt插件操作GPIO(mmap)
    OpenWrt应用中操作GPIO的方式多数都是:修改设备树通过shell脚本export出对应的GPIO通过shell脚本或操作文件的方式控制GPIO/通过LEDELED配置控制GPIO不用这种方式的......
  • Arm-Linux子系统的互相Notify
    前言:Linux下面不同的子系统一个个的组成了整个系统的运行环节,为了让这些子系统能够互相通讯,有一种叫做:notifychain(通知链)的东西。本篇看下。概括所谓通知链,有通知,......
  • 明解STM32—GPIO理论基础知识篇之基本结构
    ​一、前言        万物皆有源头,大家学习单片机的源头操作就是通过GPIO口点灯,GPIO作为STM32最基础的外设,也是大家最先接触的外设。当然,看似基础的GPIO,不仅仅是简......
  • 明解STM32—GPIO理论基础知识篇之基本结构
     一、前言        万物皆有源头,大家学习单片机的源头操作就是通过GPIO口点灯,GPIO作为STM32最基础的外设,也是大家最先接触的外设。当然,看似基础的GPIO,不仅仅是简单......
  • HamsterBear Linux 开启GPIO子系统sysfs接口开启
    HamsterBearLinux开启GPIO子系统sysfs接口内核配置Generalsetup中打开内核feature或者直接搜索CONFIG_EXPERT开启gpio子系统sysfs接口Devicedrivers->......
  • Linux系统入门-SELinux安全子系统
    SELinux系统安全增强型Linux(SELinux)是一种采用安全架构的Linux®系统,它能够让管理员更好地管控哪些人可以访问系统。它最初是作为Linux内核的一系列补丁,由美国国家安全......
  • GPIO模拟串口TX与RX,波特率115200
    使用单片机的GPIO口去模拟串口的TX与RX进行数据的发送和接收处理,里面主要需要关注的和使用的为:GPIO的初始化,时钟频率的设置,引脚中断的设置。模拟串口的TX:首先初始化......
  • stm32f407探索者开发板(八)——按键输入实验--GPIO做输入
    文章目录​​一、按键实验的硬件连接​​​​二、GPIO输入操作说明​​​​三、按键实验​​​​3.1支持连续按​​​​3.2不支持随便按​​​​3.3都兼容​​一、按键实......
  • 适用于 Linux 的 Windows 子系统使用 Visual Studio Code
    在WSL中使用VSCode,先在Windows中安装vscode,再通过功能扩展安装Vscodeforwsl。VSCode有system和user两个版本,默认下载链接为user版本。以下内容为system版本。......