GPIO子系统驱动程序 【ChatGPT】

简介: GPIO子系统驱动程序 【ChatGPT】

GPIO子系统驱动程序

在Linux内核中,有许多标准的GPIO任务的驱动程序,它们提供了适当的内核空间和用户空间的API/ABI,并且可以通过硬件描述(如设备树或ACPI)与其他内核子系统轻松连接:

  • leds-gpio: drivers/leds/leds-gpio.c 用于处理连接到GPIO线的LED,提供LED的sysfs接口。
  • ledtrig-gpio: drivers/leds/trigger/ledtrig-gpio.c 提供LED触发器,即LED会在GPIO线高低电平变化时打开/关闭(该LED可能会使用上述的leds-gpio)。
  • gpio-keys: drivers/input/keyboard/gpio_keys.c 用于处理GPIO线产生的中断,例如按键事件,同时支持去抖动。
  • gpio-keys-polled: drivers/input/keyboard/gpio_keys_polled.c 用于轮询GPIO线状态,当GPIO线无法产生中断时使用,需要通过定时器进行轮询。
  • gpio_mouse: drivers/input/mouse/gpio_mouse.c 用于通过GPIO提供具有最多三个按钮的鼠标,无需鼠标端口。
  • gpio-beeper: drivers/input/misc/gpio-beeper.c 用于通过连接到GPIO线的外部扬声器提供蜂鸣声。
  • extcon-gpio: drivers/extcon/extcon-gpio.c 用于读取外部连接器状态,例如音频驱动的耳机线或HDMI连接器。
  • restart-gpio: drivers/power/reset/gpio-restart.c 用于通过拉动GPIO线重新启动系统。
  • poweroff-gpio: drivers/power/reset/gpio-poweroff.c 用于通过拉动GPIO线关闭系统电源。
  • gpio-gate-clock: drivers/clk/clk-gpio.c 用于控制使用GPIO的门控时钟,并与时钟子系统集成。
  • i2c-gpio: drivers/i2c/busses/i2c-gpio.c 用于通过GPIO线驱动I2C总线。
  • spi_gpio: drivers/spi/spi-gpio.c 用于通过GPIO线驱动SPI总线。
  • w1-gpio: drivers/w1/masters/w1-gpio.c 用于通过GPIO线驱动一线总线。
  • gpio-fan: drivers/hwmon/gpio-fan.c 用于通过GPIO线控制风扇。
  • gpio-regulator: drivers/regulator/gpio-regulator.c 用于通过拉动GPIO线控制稳压器。
  • gpio-wdt: drivers/watchdog/gpio_wdt.c 用于提供定时“ping”硬件的看门狗定时器。
  • gpio-nand: drivers/mtd/nand/raw/gpio.c 用于连接NAND闪存芯片到一组简单的GPIO线。
  • ps2-gpio: drivers/input/serio/ps2-gpio.c 用于通过GPIO线驱动PS/2总线。
  • cec-gpio: drivers/media/platform/cec-gpio/ 用于使用GPIO与CEC消费电子控制总线进行通信。
  • gpio-charger: drivers/power/supply/gpio-charger.c 用于检测AC充电器状态和指示充电状态。
  • gpio-mux: drivers/mux/gpio.c 用于控制多路复用器。

除此之外,在子系统中还有特殊的GPIO驱动程序,例如MMC/SD子系统中用于读取卡检测和写保护GPIO线,以及在TTY串行子系统中通过两个GPIO线模拟MCTRL(调制解调器控制)信号CTS/RTS。MTD NOR闪存也有额外的GPIO线附加功能。

在使用嵌入式系统时,建议使用这些标准的GPIO驱动程序,而不是直接从用户空间操作GPIO。这样做可以更好地集成到内核框架中,简化和加快嵌入式系统开发过程。

本文来自博客园,作者:摩斯电码,未经同意,禁止转载

相关文章
|
16天前
|
Linux
genalloc/genpool 子系统 【ChatGPT】
genalloc/genpool 子系统 【ChatGPT】
34 11
|
16天前
|
开发框架 安全 .NET
TEE(可信执行环境)子系统 【ChatGPT】
TEE(可信执行环境)子系统 【ChatGPT】
|
16天前
|
Linux API
General Purpose Input/Output (GPIO) 【ChatGPT】
General Purpose Input/Output (GPIO) 【ChatGPT】
|
16天前
|
Linux 芯片
GPIO - 介绍 【ChatGPT】
GPIO - 介绍 【ChatGPT】
|
16天前
|
Linux API 虚拟化
PCI总线子系统 【ChatGPT】
PCI总线子系统 【ChatGPT】
|
16天前
|
Linux
消费者设备驱动程序的调节器接口【ChatGPT】
消费者设备驱动程序的调节器接口【ChatGPT】
|
16天前
|
安全 Linux 芯片
传统的GPIO接口 【ChatGPT】
传统的GPIO接口 【ChatGPT】
|
16天前
|
芯片 索引
GPIO映射 【ChatGPT】
GPIO映射 【ChatGPT】
|
16天前
|
存储 安全 测试技术
GPIO描述符消费者接口 【ChatGPT】
GPIO描述符消费者接口 【ChatGPT】
|
16天前
|
测试技术 Linux API
GPIO 驱动接口 【ChatGPT】
GPIO 驱动接口 【ChatGPT】