diff options
| author | Scott Shawcroft <scott@tannewt.org> | 2019-04-08 17:15:08 -0700 |
|---|---|---|
| committer | Scott Shawcroft <scott@tannewt.org> | 2019-04-08 17:15:08 -0700 |
| commit | de48e4b262f17b8c75449be0ae30a10ffd1489e1 (patch) | |
| tree | 9be165f2c1b9320f3e166433c439c2eaf7127cce /shared-module | |
| parent | 0f003ac5b8312fafb120e86e05eefd2431014d8c (diff) | |
| parent | 5015036c06e12c158ca0b36a23fade8da6fbbf07 (diff) | |
Merge remote-tracking branch 'adafruit/master' into fix_cpx_display
Diffstat (limited to 'shared-module')
| -rw-r--r-- | shared-module/displayio/FourWire.c | 10 | ||||
| -rw-r--r-- | shared-module/displayio/FourWire.h | 3 |
2 files changed, 11 insertions, 2 deletions
diff --git a/shared-module/displayio/FourWire.c b/shared-module/displayio/FourWire.c index 2ca685f17..b01456bba 100644 --- a/shared-module/displayio/FourWire.c +++ b/shared-module/displayio/FourWire.c @@ -41,8 +41,14 @@ void common_hal_displayio_fourwire_construct(displayio_fourwire_obj_t* self, self->bus = spi; common_hal_busio_spi_never_reset(self->bus); + // Our object is statically allocated off the heap so make sure the bus object lives to the end + // of the heap as well. gc_never_free(self->bus); + self->frequency = common_hal_busio_spi_get_frequency(spi); + self->polarity = common_hal_busio_spi_get_polarity(spi); + self->phase = common_hal_busio_spi_get_phase(spi); + common_hal_digitalio_digitalinout_construct(&self->command, command); common_hal_digitalio_digitalinout_switch_to_output(&self->command, true, DRIVE_MODE_PUSH_PULL); common_hal_digitalio_digitalinout_construct(&self->chip_select, chip_select); @@ -73,8 +79,8 @@ bool common_hal_displayio_fourwire_begin_transaction(mp_obj_t obj) { if (!common_hal_busio_spi_try_lock(self->bus)) { return false; } - // TODO(tannewt): Stop hardcoding SPI frequency, polarity and phase. - common_hal_busio_spi_configure(self->bus, 12000000, 0, 0, 8); + common_hal_busio_spi_configure(self->bus, self->frequency, self->polarity, + self->phase, 8); common_hal_digitalio_digitalinout_set_value(&self->chip_select, false); return true; } diff --git a/shared-module/displayio/FourWire.h b/shared-module/displayio/FourWire.h index 234bcf794..743139e62 100644 --- a/shared-module/displayio/FourWire.h +++ b/shared-module/displayio/FourWire.h @@ -38,6 +38,9 @@ typedef struct { digitalio_digitalinout_obj_t command; digitalio_digitalinout_obj_t chip_select; digitalio_digitalinout_obj_t reset; + uint32_t frequency; + uint8_t polarity; + uint8_t phase; } displayio_fourwire_obj_t; #endif // MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_DISPLAYIO_FOURWIRE_H |
