You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Zephyr: allocate I2C, SPI, UART buses dynamically instead of using the fixed assignments in devicetree #11596
The upstream board definitions in Zephyr statically assign some I2C, SPI, and UART buses to particular pins. Our zephyr port used these for board.I2C() etc. However, doing that means that those pins can't be used for anything else.
Instead, don't assign the buses to pins until runtime, such as when board.I2C() is instantiated.
Note that in 11.0.0-alpha1, the iobroker work caused, for example, Feather nRF52840 to have board.FEATHER_I2C(), .FEATHER_SERIAL(), and .UART0(), which weren't intended. We need to go back to the regular board.<bus> names. #11590 noted this.
Initial work on this will be on the nordic boards. It may not be possible on all boards.
Sub-issues will be created for the individual tasks.
Activity
busio.I2C(),busio.UART(), busio.SPI()` on boards where it disappeared #11598