39#define NO_OS_SPI_CPHA 0x01
40#define NO_OS_SPI_CPOL 0x02
41#define SPI_MAX_BUS_NUMBER 8
227 uint32_t, void (*)(
void *),
void *);
244 uint16_t bytes_number);
262 void (*callback)(
void *),
int32_t no_os_spi_transfer_dma(struct no_os_spi_desc *desc, struct no_os_spi_msg *msgs, uint32_t len)
Transfer a list of messages using DMA and busy wait for the completion.
Definition no_os_spi.c:224
int32_t no_os_spibus_init(const struct no_os_spi_init_param *param)
Initialize the SPI bus communication peripheral.
Definition no_os_spi.c:88
no_os_spi_lanes
SPI configuration for number of lanes.
Definition no_os_spi.h:73
@ NO_OS_SPI_SINGLE_LANE
Definition no_os_spi.h:75
@ NO_OS_SPI_OCTO_LANE
Definition no_os_spi.h:81
@ NO_OS_SPI_QUAD_LANE
Definition no_os_spi.h:79
@ NO_OS_SPI_DUAL_LANE
Definition no_os_spi.h:77
int32_t no_os_spi_transfer(struct no_os_spi_desc *desc, struct no_os_spi_msg *msgs, uint32_t len)
Iterate over head list and send all spi messages.
Definition no_os_spi.c:185
int32_t no_os_spi_remove(struct no_os_spi_desc *desc)
Free the resources allocated by no_os_spi_init().
Definition no_os_spi.c:116
#define NO_OS_SPI_CPHA
Definition no_os_spi.h:39
int32_t no_os_spi_transfer_dma_async(struct no_os_spi_desc *desc, struct no_os_spi_msg *msgs, uint32_t len, void(*callback)(void *), void *ctx)
Transfer a list of messages using DMA. The function will return after the first transfer is started....
Definition no_os_spi.c:248
int32_t no_os_spi_write_and_read(struct no_os_spi_desc *desc, uint8_t *data, uint16_t bytes_number)
Write and read data to/from SPI.
Definition no_os_spi.c:159
void no_os_spibus_remove(uint32_t bus_number)
Removes SPI bus instance.
Definition no_os_spi.c:133
no_os_spi_bit_order
SPI configuration for bit order (MSB/LSB).
Definition no_os_spi.h:62
@ NO_OS_SPI_BIT_ORDER_MSB_FIRST
Definition no_os_spi.h:64
@ NO_OS_SPI_BIT_ORDER_LSB_FIRST
Definition no_os_spi.h:66
int32_t no_os_spi_init(struct no_os_spi_desc **desc, const struct no_os_spi_init_param *param)
Initialize the SPI communication peripheral.
Definition no_os_spi.c:52
#define NO_OS_SPI_CPOL
Definition no_os_spi.h:40
no_os_spi_mode
SPI configuration for clock phase and polarity.
Definition no_os_spi.h:47
@ NO_OS_SPI_MODE_2
Definition no_os_spi.h:53
@ NO_OS_SPI_MODE_3
Definition no_os_spi.h:55
@ NO_OS_SPI_MODE_1
Definition no_os_spi.h:51
@ NO_OS_SPI_MODE_0
Definition no_os_spi.h:49
int32_t no_os_spi_transfer_abort(struct no_os_spi_desc *desc)
Abort SPI transfers.
Definition no_os_spi.c:269
Structure holding SPI descriptor.
Definition no_os_spi.h:180
enum no_os_spi_mode mode
Definition no_os_spi.h:190
enum no_os_spi_lanes lanes
Definition no_os_spi.h:194
enum no_os_spi_bit_order bit_order
Definition no_os_spi.h:192
struct no_os_spibus_desc * bus
Definition no_os_spi.h:182
uint32_t max_speed_hz
Definition no_os_spi.h:186
struct no_os_spi_desc * parent
Definition no_os_spi.h:202
struct no_os_platform_spi_delays platform_delays
Definition no_os_spi.h:198
uint32_t device_id
Definition no_os_spi.h:184
const struct no_os_spi_platform_ops * platform_ops
Definition no_os_spi.h:196
uint8_t chip_select
Definition no_os_spi.h:188
void * extra
Definition no_os_spi.h:200
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128
const struct no_os_spi_platform_ops * platform_ops
Definition no_os_spi.h:142
void * extra
Definition no_os_spi.h:146
struct no_os_platform_spi_delays platform_delays
Definition no_os_spi.h:144
uint8_t chip_select
Definition no_os_spi.h:134
uint32_t device_id
Definition no_os_spi.h:130
struct no_os_spi_desc * parent
Definition no_os_spi.h:148
uint32_t max_speed_hz
Definition no_os_spi.h:132
enum no_os_spi_bit_order bit_order
Definition no_os_spi.h:138
enum no_os_spi_mode mode
Definition no_os_spi.h:136
enum no_os_spi_lanes lanes
Definition no_os_spi.h:140
Definition no_os_spi.h:88
uint32_t bytes_number
Definition no_os_spi.h:94
uint8_t cs_change
Definition no_os_spi.h:96
uint8_t * rx_buff
Definition no_os_spi.h:92
uint32_t cs_change_delay
Definition no_os_spi.h:101
uint32_t cs_delay_last
Definition no_os_spi.h:105
uint32_t cs_delay_first
Definition no_os_spi.h:103
uint8_t * tx_buff
Definition no_os_spi.h:90
SPI bus descriptor.
Definition no_os_spi.h:155
const struct no_os_spi_platform_ops * platform_ops
Definition no_os_spi.h:171
uint8_t slave_number
Definition no_os_spi.h:159
enum no_os_spi_mode mode
Definition no_os_spi.h:165
void * extra
Definition no_os_spi.h:173
uint32_t max_speed_hz
Definition no_os_spi.h:163
void * mutex
Definition no_os_spi.h:157
enum no_os_spi_lanes lanes
Definition no_os_spi.h:169
enum no_os_spi_bit_order bit_order
Definition no_os_spi.h:167
uint32_t device_id
Definition no_os_spi.h:161