diff options
Diffstat (limited to 'shared-module')
| -rw-r--r-- | shared-module/board/__init__.c | 11 | ||||
| -rw-r--r-- | shared-module/displayio/__init__.c | 5 |
2 files changed, 16 insertions, 0 deletions
diff --git a/shared-module/board/__init__.c b/shared-module/board/__init__.c index 914bc4313..8d87a98eb 100644 --- a/shared-module/board/__init__.c +++ b/shared-module/board/__init__.c @@ -29,6 +29,8 @@ #include "mpconfigboard.h" #include "py/runtime.h" +#include "supervisor/spi_flash_api.h" + #if CIRCUITPY_BUSIO #include "shared-bindings/busio/I2C.h" #include "shared-bindings/busio/SPI.h" @@ -89,6 +91,15 @@ mp_obj_t common_hal_board_create_spi(void) { } #endif +#if BOARD_INTERNAL_SPI +//Provide a reference to the internal SPI, if required. +mp_obj_t common_hal_board_get_internal_spi(void) { + //TODO: can we change the name of this without having to change every instance of spi in every + //flash file? + return (mp_obj_t)(&spi); +} +#endif + #if BOARD_UART mp_obj_t common_hal_board_get_uart(void) { return MP_STATE_VM(shared_uart_bus); diff --git a/shared-module/displayio/__init__.c b/shared-module/displayio/__init__.c index af22cb0df..795de7b87 100644 --- a/shared-module/displayio/__init__.c +++ b/shared-module/displayio/__init__.c @@ -100,6 +100,11 @@ void reset_displays(void) { continue; } #endif + #if BOARD_INTERNAL_SPI + if (original_spi == common_hal_board_get_internal_spi()) { + continue; + } + #endif memcpy(&fourwire->inline_bus, original_spi, sizeof(busio_spi_obj_t)); fourwire->bus = &fourwire->inline_bus; // Check for other displays that use the same spi bus and swap them too. |
