15#include <driver/spi_master.h>
17typedef enum _disp_spi_send_flag_t {
34typedef struct _disp_spi_read_data {
59static inline void disp_spi_send_data(uint8_t *data,
size_t length) {
63static inline void disp_spi_send_colors(uint8_t *data,
size_t length) {
87#define member_size(type, member) sizeof(((type *)0)->member)
89#define SPI_READ_DUMMY_LEN member_size(disp_spi_read_data, _dummy_byte)
90#define SPI_READ_BYTE_LEN (SPI_READ_DUMMY_LEN + member_size(disp_spi_read_data, byte))
91#define SPI_READ_WORD_LEN (SPI_READ_DUMMY_LEN + member_size(disp_spi_read_data, word))
92#define SPI_READ_DWORD_LEN (SPI_READ_DUMMY_LEN + member_size(disp_spi_read_data, dword))
uint32_t dword
Definition: disp_spi.h:2
void disp_spi_transaction(const uint8_t *data, size_t length, disp_spi_send_flag_t flags, disp_spi_read_data *out, uint64_t addr)
Definition: disp_spi.c:77
struct _disp_spi_read_data __attribute__((aligned(4)))
void spi_poll()
Polls the SPI bus for a pending SPI transaction to complete.
Definition: disp_spi.c:34
SemaphoreHandle_t spi_mutex
Semaphore for the shared SPI bus.
Definition: disp_spi.c:21
uint8_t _dummy_byte
Definition: disp_spi.h:0
uint8_t byte
Definition: disp_spi.h:0
disp_spi_send_flag_t
Definition: disp_spi.h:17
@ DISP_SPI_MODE_DIO
Definition: disp_spi.h:29
@ DISP_SPI_MODE_DIOQIO_ADDR
Definition: disp_spi.h:31
@ DISP_SPI_SEND_SYNCHRONOUS
Definition: disp_spi.h:20
@ DISP_SPI_SEND_POLLING
Definition: disp_spi.h:19
@ DISP_SPI_ADDRESS_24
Definition: disp_spi.h:27
@ DISP_SPI_ADDRESS_8
Definition: disp_spi.h:25
@ DISP_SPI_SIGNAL_FLUSH
Definition: disp_spi.h:21
@ DISP_SPI_ADDRESS_16
Definition: disp_spi.h:26
@ DISP_SPI_MODE_QIO
Definition: disp_spi.h:30
@ DISP_SPI_ADDRESS_32
Definition: disp_spi.h:28
@ DISP_SPI_CMD_8
Definition: disp_spi.h:23
@ DISP_SPI_RECEIVE
Definition: disp_spi.h:22
@ DISP_SPI_SEND_QUEUED
Definition: disp_spi.h:18
@ DISP_SPI_CMD_16
Definition: disp_spi.h:24
void disp_spi_add_device(spi_host_device_t host)
Definition: disp_spi.c:57
void disp_spi_add_device_config(spi_host_device_t host, spi_device_interface_config_t *devcfg)
Definition: disp_spi.c:49
uint16_t word
Definition: disp_spi.h:1
void disp_wait_for_pending_transactions(void)
Definition: disp_spi.c:147