Pin Control and GPIO Update
summary
Summary of the last ~24 months of work: the kernel gains an IRQ domain to translate controller-local interrupt numbers to Linux IRQs (reducing global-number pain), a move toward a descriptor API to stop exposing raw GPIO numbers, and a kernel-internal blocked GPIO requests mechanism to atomically toggle multiple lines for bit‑banged protocols. Pin control adds named states, hogs and device-core auto-enable of default states, many controllers are converted and the changes are partially merged and actively landing.
AI-written summary · about
chapters (18)
- 0:00Introduction
- 1:20What is a GPIO
- 5:56Electronics
- 7:34GPIO
- 9:03Generic GPIO
- 13:16Synchronous Edge Detector
- 14:02GPIO Update
- 19:23Descriptor refactoring
- 22:49Error pointers
- 26:49Userspace API
- 28:11GPIO Subsystem
- 29:52IRQ Subsystem
- 30:14GPIO hawks
- 30:49Hardcoded GPIOs
- 31:51Pin Control Subsystem
- 33:56hysteresis control
- 35:08Pin Control
- 38:42GPIO Map
related talks
37mIntroduction to Pin Muxing and GPIO Control Under Linux
51mGPIO for Engineers and Makers
19mPinctrl and GPIO - Interactions and Footguns
37mDeep Dive into Pin Control in Zephyr
19mPinctrl and GPIO - Interactions and Footguns
35mCompound Interest - Dealing with Two Decades of Technical Debt in Embedded...
16mSharing Reset GPIOs in the Linux Kernel
44mNew GPIO Interface for User Space
