Introduction to Pin Muxing and GPIO Control Under Linux
summary
Covers how package pads map to pad circuitry and the kernel subsystems that control them, noting pinctrl merged in Linux 3.2 and the original gpiolib submission in 2008; explains pin/ group/ function names, runtime-selectable pinmux states via device-tree pinmux states, and conflict checking kept simple by storing active groups. Shows concrete APIs and callbacks: pinctrl ops, gpio controller callbacks (direction_output / get / set), consumer.h vs driver.h, gpio descriptor use to get/set an amp enable line, and handling of active_low and open-drain flags.
AI-written summary · about
chapters (8)
- 0:00Start
- 3:06Hardware Design
- 5:54Open Drain Pads
- 7:53Functions
- 18:27Conflict Checking
- 19:41Pin Control
- 24:35Gpio Framework
- 32:45Jpro Flags
related talks
19mPinctrl and GPIO - Interactions and Footguns
19mPinctrl and GPIO - Interactions and Footguns
48mPin Control and GPIO Update
37mDeep Dive into Pin Control in Zephyr
51mGPIO for Engineers and Makers
12mGPIO across Linux and Zephyr kernels
44mNew GPIO Interface for User Space
35mCompound Interest - Dealing with Two Decades of Technical Debt in Embedded...
