From 28a4baf95cf5bb24b4697f85c67badab42b4a9f8 Mon Sep 17 00:00:00 2001 From: Timofey Titovets Date: Thu, 22 May 2025 23:29:51 +0200 Subject: spi_software: add a delay on mode change Signed-off-by: Timofey Titovets --- src/spi_software.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src') 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 -- cgit v1.2.3-70-g09d2