diff options
author | Victor Mignot <victor@vmignot.fr> | 2025-08-22 14:06:29 +0200 |
---|---|---|
committer | Victor Mignot <victor@vmignot.fr> | 2025-08-22 14:06:29 +0200 |
commit | 5e2d0ffd4d5c50c75afbd66f559d304c773903ef (patch) | |
tree | 7d25912b39857e9ca42b9e434562c9b24c01618e /src/spim.h | |
parent | 31eb5b5de15908fecf3a615910b3273de62baeeb (diff) | |
download | nanji-5e2d0ffd4d5c50c75afbd66f559d304c773903ef.tar.gz |
Diffstat (limited to 'src/spim.h')
-rw-r--r-- | src/spim.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/spim.h b/src/spim.h new file mode 100644 index 0000000..2a7a5aa --- /dev/null +++ b/src/spim.h @@ -0,0 +1,47 @@ +#ifndef SPIM_H +#define SPIM_H + +#include "types.h" + +#define SPI_MAX_BUFFER_SIZE 256 + +enum spim_clk_frequency_bps { + K125 = 0x02000000, + K250 = 0x04000000, + K500 = 0x08000000, + M1 = 0x10000000, + M2 = 0x20000000, + M4 = 0x40000000, + M8 = 0x80000000, +}; + +enum spim_clk_phase { + LEADING = 0, + TRAILING = 1, +}; + +enum spim_clk_polarity { + ACTIVE_HIGH = 0, + ACTIVE_LOW = 1, +}; + +struct spim_setup_info { + u8 sclk_pin; + u8 miso_pin; + u8 mosi_pin; + u8 ss_pin; + enum clk_frequency_bps clk_freqency; + u8 rxd_len; + u8 txd_len; + enum spim_clk_phase clk_phase; + enum spim_clk_polarity clk_polarity; + u8 over_read_char; +}; + +u8 spim_setup(u8 spi_index, struct spim_setup_info setup_info); + +void spim_send(u8 spi_index, u8 *write_buffer, u8 *read_buffer); + +void spim_stop(u8 spi_index); + +#endif |