Pinctrl and GPIO - Interactions and Footguns
summary
Explains that Linux has two subsystems, pinctrl and GPIO, and demonstrates concrete failure modes: strict GPIO pin muxing is rarely enabled so a userspace request can claim an MMC clock pin and break the bus, some SoC drivers map pin config output/input enable to GPIO direction instead of muxing so settings do nothing, and pin config readback often reports bogus state. Shows fixes applied to Mediatek and Raspberry Pi drivers and urges implementing strict mode and tightening pin config definitions.
AI-written summary · about
chapters (9)
- 0:00Pin control and GPIO intro
- 1:08Strict mode and pinmux
- 3:40GPIO core and API limits
- 6:30GPIO and pin control hardware
- 9:08GPIO overriding risks
- 10:11Pin config output issues
- 12:31Pin config readback issues
- 14:38Improving pin control and GPIO
- 15:49Q&A
related talks
19mPinctrl and GPIO - Interactions and Footguns
37mIntroduction to Pin Muxing and GPIO Control Under Linux
48mPin Control and GPIO Update
16mSharing Reset GPIOs in the Linux Kernel
37mDeep Dive into Pin Control in Zephyr
51mGPIO for Engineers and Makers
12mGPIO across Linux and Zephyr kernels
35mCompound Interest - Dealing with Two Decades of Technical Debt in Embedded...
