aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/spi_software.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/spi_software.c b/src/spi_software.c
index 73cd8788..9a03b8dd 100644
--- a/src/spi_software.c
+++ b/src/spi_software.c
@@ -40,17 +40,20 @@ DECL_COMMAND(command_spi_set_sw_bus,
"spi_set_sw_bus oid=%c miso_pin=%u mosi_pin=%u sclk_pin=%u"
" mode=%u pulse_ticks=%u");
+static void
+spi_delay(uint32_t end)
+{
+ while (timer_is_before(timer_read_time(), end));
+}
+
void
spi_software_prepare(struct spi_software *ss)
{
gpio_out_write(ss->sclk, ss->mode & 0x02);
+ uint32_t end = timer_read_time() + ss->sck_ticks;
+ spi_delay(end);
}
-static void
-spi_delay(uint32_t end)
-{
- while (timer_is_before(timer_read_time(), end));
-}
void
spi_software_transfer(struct spi_software *ss, uint8_t receive_data