4 #ifndef RTOS_SPI_MASTER_H_
5 #define RTOS_SPI_MASTER_H_
16 #include "rtos_osal.h"
17 #include "rtos_driver_rpc.h"
37 __attribute__((fptrgroup(
"rtos_spi_master_transaction_start_fptr_grp")))
40 __attribute__((fptrgroup(
"rtos_spi_master_transfer_fptr_grp")))
43 __attribute__((fptrgroup(
"rtos_spi_master_delay_before_next_transfer_fptr_grp")))
46 __attribute__((fptrgroup(
"rtos_spi_master_transaction_end_fptr_grp")))
51 unsigned op_task_priority;
52 rtos_osal_thread_t op_task;
53 rtos_osal_queue_t xfer_req_queue;
54 rtos_osal_semaphore_t data_ready;
55 rtos_osal_mutex_t lock;
70 #include "rtos_spi_master_rpc.h"
90 ctx->bus_ctx->transaction_start(ctx);
118 ctx->bus_ctx->transfer(ctx, data_out, data_in, len);
143 uint32_t delay_ticks)
145 ctx->bus_ctx->delay_before_next_transfer(ctx, delay_ticks);
157 ctx->bus_ctx->transaction_end(ctx);
194 xclock_t clock_block,
237 uint32_t clock_divisor,
239 uint32_t miso_pad_delay,
240 uint32_t cs_to_clk_delay_ticks,
241 uint32_t clk_to_cs_delay_ticks,
242 uint32_t cs_to_cs_delay_ticks);
spi_master_source_clock_t
Definition: spi.h:63
spi_master_sample_delay_t
Definition: spi.h:52
void rtos_spi_master_transaction_end(rtos_spi_master_device_t *ctx)
Definition: rtos_spi_master.h:154
void rtos_spi_master_delay_before_next_transfer(rtos_spi_master_device_t *ctx, uint32_t delay_ticks)
Definition: rtos_spi_master.h:141
void rtos_spi_master_transfer(rtos_spi_master_device_t *ctx, uint8_t *data_out, uint8_t *data_in, size_t len)
Definition: rtos_spi_master.h:112
void rtos_spi_master_transaction_start(rtos_spi_master_device_t *ctx)
Definition: rtos_spi_master.h:87
void rtos_spi_master_init(rtos_spi_master_t *bus_ctx, xclock_t clock_block, port_t cs_port, port_t sclk_port, port_t mosi_port, port_t miso_port)
Definition: rtos_spi_master.c:176
void rtos_spi_master_device_init(rtos_spi_master_device_t *dev_ctx, rtos_spi_master_t *bus_ctx, uint32_t cs_pin, int cpol, int cpha, spi_master_source_clock_t source_clock, uint32_t clock_divisor, spi_master_sample_delay_t miso_sample_delay, uint32_t miso_pad_delay, uint32_t cs_to_clk_delay_ticks, uint32_t clk_to_cs_delay_ticks, uint32_t cs_to_cs_delay_ticks)
Definition: rtos_spi_master.c:202
void rtos_spi_master_start(rtos_spi_master_t *spi_master_ctx, unsigned priority)
Definition: rtos_spi_master.c:154
Definition: rtos_driver_rpc.h:23
Definition: rtos_spi_master.h:63
Definition: rtos_spi_master.h:34