summaryrefslogtreecommitdiff
path: root/shared-module
diff options
context:
space:
mode:
authorRadomir Dopieralski <openstack@sheep.art.pl>2019-04-06 15:08:31 +0200
committerRadomir Dopieralski <openstack@sheep.art.pl>2019-04-06 15:15:29 +0200
commit8323721232f52fcb216a4fa32e5572d5f4369c6c (patch)
treeef7eee5474984b9913dd87d1bc9d34f15e5a5e57 /shared-module
parent8b9e93329d5b9c732954f0d8f1ba2c97819ad774 (diff)
Stop hard-coding SPI frequency in FourWire
Instead remember and use the frequency, polarity and phase that was set when the bus was first created.
Diffstat (limited to 'shared-module')
-rw-r--r--shared-module/displayio/FourWire.c7
-rw-r--r--shared-module/displayio/FourWire.h3
2 files changed, 8 insertions, 2 deletions
diff --git a/shared-module/displayio/FourWire.c b/shared-module/displayio/FourWire.c
index 043f68e26..c87d2be95 100644
--- a/shared-module/displayio/FourWire.c
+++ b/shared-module/displayio/FourWire.c
@@ -40,6 +40,9 @@ void common_hal_displayio_fourwire_construct(displayio_fourwire_obj_t* self,
self->bus = spi;
common_hal_busio_spi_never_reset(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);
@@ -71,8 +74,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