Pinctrl and GPIO - Interactions and Footguns
summary
Explains how pinctrl and GPIO collide on real SoCs, showing that only a few platforms adopt strict GPIO pinmuxing so userspace or bad device-tree GPIOs can steal an MMC clock and break peripherals, and that many drivers implement pin config output/input-enable and readback incorrectly (examples: MediaTek, Qualcomm, Rockchip, Microsemi Ocelot), causing bogus pin state reports; recommends implementing strict mode, fixing pin-config semantics and readback, and making DT-to-strict compatibility explicit.
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
51mGPIO for Engineers and Makers
16mSharing Reset GPIOs in the Linux Kernel
50mHow Not to Write X86 Platform Drivers
19m"Exclusive" resources that are not exclusive - the case of shared GPIOs in...
12mGPIO across Linux and Zephyr kernels
