Skip to content

Zephyr: allocate I2C, SPI, UART buses dynamically instead of using the fixed assignments in devicetree #11596

Open
0 of 6 issues completed

Description

@dhalbert

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions