Lines Matching refs:spi

29     csi_spi_t *spi = (csi_spi_t *)Adaptor;  in ssi_interrupt()  local
30 uint32_t spi_idx = spi->dev.idx; in ssi_interrupt()
32 SSI_InitTypeDef *SSI_InitStruct = (SSI_InitTypeDef *)spi->priv; in ssi_interrupt()
48 TransLen = SSI_ReceiveData(spi_dev, spi->rx_data, spi->rx_size); in ssi_interrupt()
49 spi->rx_size -= TransLen; in ssi_interrupt()
52 spi->rx_data = (uint8_t *)(((uint16_t *)spi->rx_data) + TransLen); in ssi_interrupt()
55 spi->rx_data = (uint8_t *)(((uint8_t *)spi->rx_data) + TransLen); in ssi_interrupt()
58 if (spi->rx_size == 0) { in ssi_interrupt()
60 if (spi->callback != NULL) { in ssi_interrupt()
61 spi->callback(spi, SPI_EVENT_RECEIVE_COMPLETE, NULL); in ssi_interrupt()
72 if (spi->tx_size == 0) { in ssi_interrupt()
82 if (spi->tx_data != NULL) { in ssi_interrupt()
83 if (spi->callback != NULL) { in ssi_interrupt()
84 spi->callback(spi, SPI_EVENT_SEND_COMPLETE, NULL); in ssi_interrupt()
91 TransLen = SSI_SendData(spi_dev, spi->tx_data, spi->tx_size, SSI_InitStruct->SPI_Role); in ssi_interrupt()
93 spi->tx_size -= TransLen; in ssi_interrupt()
94 if (spi->tx_data != NULL) { in ssi_interrupt()
97 spi->tx_data = (((uint16_t *)spi->tx_data) + TransLen); in ssi_interrupt()
100 spi->tx_data = (void *)(((uint8_t *)spi->tx_data) + TransLen); in ssi_interrupt()
104 if (spi->tx_size == 0) { in ssi_interrupt()
107 if (spi->tx_data != NULL) { in ssi_interrupt()
108 if (spi->callback != NULL) { in ssi_interrupt()
109 spi->callback(spi, SPI_EVENT_SEND_COMPLETE, NULL); in ssi_interrupt()
118 csi_error_t csi_spi_init(csi_spi_t *spi, uint32_t idx) in csi_spi_init() argument
120 if (!spi) in csi_spi_init()
128 spi->priv = (SSI_InitTypeDef *)malloc(sizeof(SSI_InitTypeDef)); in csi_spi_init()
129 SSI_InitTypeDef *SSI_InitStruct = (SSI_InitTypeDef *)spi->priv; in csi_spi_init()
134 spi->dev.idx = idx; in csi_spi_init()
159 InterruptRegister((IRQ_FUN)ssi_interrupt, IrqNum, (uint32_t)spi, 5); in csi_spi_init()
165 void csi_spi_uninit(csi_spi_t *spi) in csi_spi_uninit() argument
167 uint32_t spi_idx = spi->dev.idx; in csi_spi_uninit()
177 if (spi && spi->priv) { in csi_spi_uninit()
178 free(spi->priv); in csi_spi_uninit()
179 spi->priv = NULL; in csi_spi_uninit()
183 csi_error_t csi_spi_attach_callback(csi_spi_t *spi, void *callback, void *arg) in csi_spi_attach_callback() argument
185 spi->callback = callback; in csi_spi_attach_callback()
186 spi->arg = arg; in csi_spi_attach_callback()
190 void csi_spi_detach_callback(csi_spi_t *spi) in csi_spi_detach_callback() argument
192 spi->callback = NULL; in csi_spi_detach_callback()
195 csi_error_t csi_spi_mode(csi_spi_t *spi, csi_spi_mode_t mode) in csi_spi_mode() argument
197 uint32_t spi_idx = spi->dev.idx; in csi_spi_mode()
199 SSI_InitTypeDef *SSI_InitStruct = (SSI_InitTypeDef *)spi->priv; in csi_spi_mode()
219 csi_error_t csi_spi_cp_format(csi_spi_t *spi, csi_spi_cp_format_t format) in csi_spi_cp_format() argument
221 uint32_t spi_idx = spi->dev.idx; in csi_spi_cp_format()
223 SSI_InitTypeDef *SSI_InitStruct = (SSI_InitTypeDef *)spi->priv; in csi_spi_cp_format()
266 csi_error_t csi_spi_frame_len(csi_spi_t *spi, csi_spi_frame_len_t length) in csi_spi_frame_len() argument
268 uint32_t spi_idx = spi->dev.idx; in csi_spi_frame_len()
276 uint32_t csi_spi_baud(csi_spi_t *spi, uint32_t baud) in csi_spi_baud() argument
278 uint32_t spi_idx = spi->dev.idx; in csi_spi_baud()
303 int32_t csi_spi_send(csi_spi_t *spi, const void *data, uint32_t size, uint32_t timeout) in csi_spi_send() argument
305 uint8_t spi_idx = spi->dev.idx; in csi_spi_send()
307 SSI_InitTypeDef *SSI_InitStruct = (SSI_InitTypeDef *)spi->priv; in csi_spi_send()
355 csi_error_t csi_spi_send_async(csi_spi_t *spi, const void *data, uint32_t size) in csi_spi_send_async() argument
357 uint8_t spi_idx = spi->dev.idx; in csi_spi_send_async()
366 spi->tx_size = size >> 1; // 2 bytes(16 bit) every transfer in csi_spi_send_async()
369 spi->tx_size = size; // 1 byte(8 bit) every transfer in csi_spi_send_async()
372 spi->tx_data = (uint8_t *)data; in csi_spi_send_async()
378 int32_t csi_spi_receive(csi_spi_t *spi, void *data, uint32_t size, uint32_t timeout) in csi_spi_receive() argument
380 uint8_t spi_idx = spi->dev.idx; in csi_spi_receive()
419 csi_error_t csi_spi_receive_async(csi_spi_t *spi, void *data, uint32_t size) in csi_spi_receive_async() argument
421 uint8_t spi_idx = spi->dev.idx; in csi_spi_receive_async()
423 SSI_InitTypeDef *SSI_InitStruct = (SSI_InitTypeDef *)spi->priv; in csi_spi_receive_async()
437 spi->rx_size = size >> 1; // 2 bytes(16 bit) every transfer in csi_spi_receive_async()
440 spi->rx_size = size; // 1 byte(8 bit) every transfer in csi_spi_receive_async()
443 spi->rx_data = (uint8_t *)data; in csi_spi_receive_async()
453 spi->tx_size = size >> 1; // 2 bytes(16 bit) every transfer in csi_spi_receive_async()
456 spi->tx_size = size; // 1 byte(8 bit) every transfer in csi_spi_receive_async()
458 spi->tx_data = (void *)NULL; in csi_spi_receive_async()
464 int32_t csi_spi_send_receive(csi_spi_t *spi, const void *data_out, void *data_in, in csi_spi_send_receive() argument
467 uint8_t spi_idx = spi->dev.idx; in csi_spi_send_receive()
509 void csi_spi_select_slave(csi_spi_t *spi, uint32_t slave_num) in csi_spi_select_slave() argument
511 uint8_t spi_idx = spi->dev.idx; in csi_spi_select_slave()
513 SSI_InitTypeDef *SSI_InitStruct = (SSI_InitTypeDef *)spi->priv; in csi_spi_select_slave()
522 csi_error_t csi_spi_get_state(csi_spi_t *spi, csi_state_t *state) in csi_spi_get_state() argument
524 uint8_t spi_idx = spi->dev.idx; in csi_spi_get_state()
534 csi_error_t csi_spi_link_dma(csi_spi_t *spi, csi_dma_ch_t *tx_dma, csi_dma_ch_t *rx_dma) in csi_spi_link_dma() argument
536 spi->tx_dma = tx_dma; in csi_spi_link_dma()
537 spi->rx_dma = rx_dma; in csi_spi_link_dma()