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。这样做可以更好地集成到内核框架中,简化和加快嵌入式系统开发过程。
本文来自博客园,作者:dolinux,未经同意,禁止转载
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
2013-12-11 512字节纠错1位的ECC校验码生成演示
2013-12-11 在应用程序中操作NorFlash
2013-12-11 在应用程序中实现对NandFlash的操作