0%

gpio驱动程序

简介

GPIO是一种灵活的软件控制数字信号。通用可操作的功能:

  • 输出功能
  • 输入功能
  • 中断功能

在GPIO子系统中,有两种不同的方式来获取和使用gpio:

  • The descriptor-based interface:gpio操作的首选方式。

  • The legacy integer-based interface:已弃用(但出于兼容性原因仍然可用),参见:gpio legacy.txt文档

关键词

  • Open Drain:

    CMOS CONFIGURATION   
            ||--- out          
     in ----||                  
            ||--+        
                |              
               GND	          
    
    • 在Open Drain配置中,晶体管(或逻辑门)仅在其输出端驱动低电平信号(通常是0V或接近0V的电压)。当晶体管或逻辑门不驱动时,输出端处于高阻态(即“悬浮”或“未连接”状态),不会主动拉高或拉低信号线。
    • 为了确保信号线在晶体管不驱动时具有确定的状态,通常会连接一个上拉电阻(pullup resistor)到电源正极(如VCC)。当没有设备驱动信号线为低电平时,上拉电阻会将信号线拉高至高电平状态。
  • Open Source:

    1
    2
    3
    4
    5
    6
    TTL CONFIGURATION
    +--- out
    |/
    in ----|
    |\
    GND

GPIO子系统

驱动结构

名称 说明 备注
devres.c managed gpio resources
gpiolib-devprop.c Device property helpers for GPIO chips
gpiolib-of.c OF helpers for the GPIO API
gpio-syscon.c YSCON GPIO driver
gpiolib-legacy.c
gpiolib-sysfs.c 入口sys节点的创建
gpio-useri.c 控制器驱动
gpiolib.c gpiolib库
gpio-mmio.c Generic driver for memory-mapped GPIO controllers

Pinctrl子系统

参见文档:

[pinctrl文档]: https://www.kernel.org/doc/html/latest/driver-api/pin-control.html?highlight=pinctrl “文档”