summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2013-06-19 22:44:16 -0700
committerKeith Packard <keithp@keithp.com>2013-06-19 22:44:16 -0700
commitd90c2fa650de4cdb008d5e2559463c08da8db934 (patch)
treedb452cc83135b716dc823a9da0001ab0a1a6f77a
parent572faa19b9a496866e3b589d5eb9f37a680206ab (diff)
altos: PCA9922 LED driver needs Enable driven low to latch values
Driving Enable high means anything going past on the clock and data pair is reflected on the LEDs, which isn't terribly useful Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--src/drivers/ao_pca9922.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/drivers/ao_pca9922.c b/src/drivers/ao_pca9922.c
index 6d8d18d8..fe070b88 100644
--- a/src/drivers/ao_pca9922.c
+++ b/src/drivers/ao_pca9922.c
@@ -30,9 +30,12 @@ ao_led_apply(void)
/* Don't try the SPI bus during initialization */
if (!ao_cur_task)
return;
- ao_spi_get_bit(AO_PCA9922_CS_PORT, AO_PCA9922_CS_PIN, AO_PCA9922_CS, AO_PCA9922_SPI_BUS, AO_SPI_SPEED_FAST);
+ ao_mutex_get(&ao_spi_mutex);
+ ao_spi_set_speed(AO_SPI_SPEED_FAST);
+ AO_PCA9922_CS = 1;
ao_spi_send(&ao_led_state, 1, AO_PCA9922_SPI_BUS);
- ao_spi_put_bit(AO_PCA9922_CS_PORT, AO_PCA9922_CS_PIN, AO_PCA9922_CS, AO_PCA9922_SPI_BUS);
+ AO_PCA9922_CS = 0;
+ ao_mutex_put(&ao_spi_mutex);
}
void