Repository navigation
zephyr-cp: restore fixed board buses on non-nRF boards - #11638
Merged
Merged
Conversation
Only nRF SoCs have iobroker routing. On other SoCs the pinctrl states have no nRF psels, and the "all psels disconnected" test passed on the empty list. So every bus on those boards was treated as dynamically routable and left out of board, while busio could not route it either. Look for routable buses only when CONFIG_PINCTRL_NRF is set, as the iobroker pool tables already do. Non-nRF boards get their devicetree buses back as board objects. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
dhalbert
force-pushed
the
zephyr-cp-static-board-buses
branch
from
October 20, 2026 15:28
22498a5 to
4815d5a
Compare
This was referenced Oct 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note by Claude, clarified by @dhalbert.
Problem first found on Feather RP2040 while trying to add
board.STEMMA_I2C().Same fix as #11619, which was closed by mistake as superseded by #11576. #11576 checks for
CONFIG_PINCTRL_NRFbefore using iobroker for board buses, but it still marks bus instances as routable on every SoC, and the fixed board objects skip routable instances.Problem
On non-nRF boards that use pinctrl,
boardhas noI2C(),SPI()orUART(). Their pinctrl states have no nRFpsels, so the "all psels disconnected" test passes on the empty list, and every bus instance is treated as routable by iobroker. The buses went missing after #11420.Fix
Look for routable bus instances only when
CONFIG_PINCTRL_NRFis set, as the iobroker pool tables already do.Testing
board.board.I2C()andboard.SPI()are back. (Tested together with an upcomingSTEMMA_I2Cchange.)make test: cptools tests 71 passed; native_sim and bsim tests 516 passed, 3 skipped.board.I2C()scan with a secondbusio.I2Con other pins at the same time,board.SPI(),board.UART()and abusio.UARTon other pins, each re-created afterdeinit().There is no
board.UART(), becauseuart0is the console. We'll fix that when the console UART becomes optional on RP2xxx, as it is on the nRF Feathers.