diff options
| author | Scott Shawcroft <scott@tannewt.org> | 2019-01-17 18:19:07 -0800 |
|---|---|---|
| committer | Scott Shawcroft <scott@tannewt.org> | 2019-01-17 18:19:07 -0800 |
| commit | 6404aaf411d7fe5fd96f3a8cbf7a1cb7580a09e7 (patch) | |
| tree | c4862f29c962e724a0df35c01ed04256df03b22a /shared-module | |
| parent | 760bd8d8a4f0aa0ed8651e89596fb2e6effbc14f (diff) | |
Fix up nrf and using board.SPI in FourWire
Diffstat (limited to 'shared-module')
| -rw-r--r-- | shared-module/displayio/FourWire.c | 8 | ||||
| -rw-r--r-- | shared-module/displayio/__init__.c | 3 |
2 files changed, 8 insertions, 3 deletions
diff --git a/shared-module/displayio/FourWire.c b/shared-module/displayio/FourWire.c index ab01e2609..9da5c0701 100644 --- a/shared-module/displayio/FourWire.c +++ b/shared-module/displayio/FourWire.c @@ -45,12 +45,14 @@ void common_hal_displayio_fourwire_construct(displayio_fourwire_obj_t* self, common_hal_digitalio_digitalinout_construct(&self->chip_select, chip_select); common_hal_digitalio_digitalinout_switch_to_output(&self->chip_select, true, DRIVE_MODE_PUSH_PULL); - common_hal_digitalio_digitalinout_construct(&self->reset, reset); - common_hal_digitalio_digitalinout_switch_to_output(&self->reset, true, DRIVE_MODE_PUSH_PULL); + if (reset != NULL) { + common_hal_digitalio_digitalinout_construct(&self->reset, reset); + common_hal_digitalio_digitalinout_switch_to_output(&self->reset, true, DRIVE_MODE_PUSH_PULL); + never_reset_pin_number(reset->number); + } never_reset_pin_number(command->number); never_reset_pin_number(chip_select->number); - never_reset_pin_number(reset->number); } void common_hal_displayio_fourwire_deinit(displayio_fourwire_obj_t* self) { diff --git a/shared-module/displayio/__init__.c b/shared-module/displayio/__init__.c index 92d97a6ef..ccabe9c9d 100644 --- a/shared-module/displayio/__init__.c +++ b/shared-module/displayio/__init__.c @@ -151,6 +151,9 @@ void reset_displays(void) { if (((uint32_t) fourwire->bus) < ((uint32_t) &displays) || ((uint32_t) fourwire->bus) > ((uint32_t) &displays + CIRCUITPY_DISPLAY_LIMIT)) { busio_spi_obj_t* original_spi = fourwire->bus; + if (original_spi == board_spi()) { + continue; + } 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. |
