From 719538162cd390963b3ac8f2965a3e6546162b3b Mon Sep 17 00:00:00 2001 From: Victor Mignot Date: Mon, 2 Feb 2026 20:20:08 +0100 Subject: [WIP] nrf52832: add interface for SPI Master devices --- src/spi.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/spi.h (limited to 'src/spi.h') diff --git a/src/spi.h b/src/spi.h new file mode 100644 index 0000000..b076bcb --- /dev/null +++ b/src/spi.h @@ -0,0 +1,45 @@ +#ifndef SPI_H +#define SPI_H + +#include "gpio.h" + +#define MAX_TRANSFER_SIZE 256 + +enum spi_interface { + SPI_0, + SPI_1, + SPI_2, +}; + +enum spi_frequency { + K125, + K250, + K500, + M1, + M2, + M4, + M8, +}; + +enum spi_clock_polarity { + ACTIVE_HIGH = 0, + ACTIVE_LOW = 1, +}; + +enum spi_clock_phase { + LEADING = 0, + TRAILING = 1, +}; + +enum spi_bits_order { + MSB_FIRST = 0, + LSB_FIRST = 0, +}; + +void spi_master_init(enum spi_interface spi, enum gpio_pin clock, enum gpio_pin mosi, enum gpio_pin miso, enum spi_bits_order order, enum spi_clock_polarity polarity, enum spi_clock_phase phase, enum spi_frequency frequency, char overread_char); + +u8 spi_master_transfer(enum spi_interface spi, u8 tx_size, u8 tx[], u8 rx_size, u8 rx[]); + +void spi_master_stop(enum spi_interface spi, enum gpio_pin clock, enum gpio_pin mosi, enum gpio_pin miso); + +#endif -- cgit v1.2.3