diff options
| author | Victor Mignot <victor@vmignot.fr> | 2026-02-02 20:20:08 +0100 |
|---|---|---|
| committer | Victor Mignot <victor@vmignot.fr> | 2026-02-06 14:50:37 +0100 |
| commit | 719538162cd390963b3ac8f2965a3e6546162b3b (patch) | |
| tree | 6a291ffdb67cb530ce42b2c3af0d5f4e67cd8dc8 /src/spi.h | |
| parent | f19ca61f48710fab019f39bb87bf6fb15f4ae7da (diff) | |
| download | nanji-719538162cd390963b3ac8f2965a3e6546162b3b.tar.gz | |
[WIP] nrf52832: add interface for SPI Master devices
Diffstat (limited to 'src/spi.h')
| -rw-r--r-- | src/spi.h | 45 |
1 files changed, 45 insertions, 0 deletions
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 |
