Deep Dive w/Scott: Pin Muxing
Author: Adafruit Industries
September 12, 2026
Duration: 1:05:36
Join Scott as he discusses dynamic pin muxing in the Zephyr port. For example, pin muxing allows user code to use any I2C on any capable pins. He'll also answer any questions folks have.
Visit the Adafruit shop online - http://www.adafruit.com
Thanks to dcd for timecodes
0:00 Getting started
0:37 join the discord #live-broadcast-chat channel on http://adafru.it/discord
1:00 Scott welcomes you to the deep dive, working for open source hardware company http://www.adafruit.com/
1:38 Circuit Python (CP) runs on microcontrollers
2:52 "Snake Acceleration", (using micropyton v1.28 native modules to speed things up) in CP v10.4
5:10 The new bootloader hopefully will go into CP v10.4 also
6:00 Github adafruit/circuitpython insights
6:30 Picogame and CI speedup
7:45 CP is a fork of micropython
8:54 Zephyr Pin Muxing / github zephyr "Introduce Dynamic pinctrl" #18255
9:19 Zephyr device tree file zephyrproject-rtos / zephyr / boards / adafruit / feather_nrf52840 dtsi example
12:20 CP allows specifying pins at run time ( https://learn.adafruit.com/circuitpython-essentials/circuitpython-i2c )
13:30 Goal is to get zephyr port to allow dynamic pin control
14:20 nRF54LM20 datasheet
16:34 iMX RT1011 adafruit.com/product/4950 pin names, mapped to
17:07 main guide ( learn.adafruit.com/adafruit-metro-m7-with-airlift )
17:27 Follow D10 to cpu on fab print https://learn.adafruit.com/assets/119301
17:50 schematic trace D10 net name to GPIO_06 on iMX RT1010 https://learn.adafruit.com/assets/119300
19:20 pins.c in board folder
20:39 i.MX RT1010 datasheet block diagram / IOMUX / pin muxing background
26:28 down in the weeds with the i.MX RT1010 processor reference manual
28:55 Chapter 10-12 IOMUX Controller (Port / Pin / Pad )
30:00 Intel 8080 die shot - example ioring / pad
30:50 RT1011 IORING pad and IOMUX
32:39 IOMUXC functional description / peripheral to pad muxing
35:19 GPIOMUX diagram and scheme
36:40 GPIO pad structure
38:30 settings to connect function to chips pin, and board pin
39:30 github adafruit circuitpython / ports / mimxrt10xx / common-hal / busio / I2C.c
40:50 common_hal_busio_i2c_construct() parameters
41:00 #if CIRCUITPY_REQUIRE_I2C_PULLUPS and "No pull up found" exception
42:11 searching the mcu_i2c sda and scl lists
43:30 refer to datasheet
43:23 and lists in periph.c
45:17 goals for zephyr
46:36 compare to nRF54LM20A data sheet
53:17 peripher and subsystem assignment 8.9.4 ( Nordic PSEL )
54:30 dynamic_bus.h dynamic_bus_i2c_allocate(), spi, and uart API
57:54 dynamic_bus_gpio.c implementation
58:45 zephyr dts structures
59:41 stm32c0 arm m0 small package wrinkle
1:02:43 alternate function mapping
1:03:47 wrap up pin muxing background
1:04:00 discord ( see above ) live all week, also, deep divers role
1:05:21 see you next week
-----------------------------------------
LIVE CHAT IS HERE! http://adafru.it/discord
Subscribe to Adafruit on YouTube: http://adafru.it/subscribe
New tutorials on the Adafruit Learning System: http://learn.adafruit.com/
-----------------------------------------