71 lines
2.4 KiB
C
71 lines
2.4 KiB
C
|
/****************************************************************************
|
||
|
|
||
|
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
|
||
|
|
||
|
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
|
||
|
be copied by any method or incorporated into another program without
|
||
|
the express written consent of Aerospace C.Power. This Information or any portion
|
||
|
thereof remains the property of Aerospace C.Power. The Information contained herein
|
||
|
is believed to be accurate and Aerospace C.Power assumes no responsibility or
|
||
|
liability for its use in any way and conveys no license or title under
|
||
|
any patent or copyright and makes no representation or warranty that this
|
||
|
Information is free from patent or copyright infringement.
|
||
|
|
||
|
****************************************************************************/
|
||
|
#ifndef _IOT_SPI_DMA_API_H_
|
||
|
#define _IOT_SPI_DMA_API_H_
|
||
|
|
||
|
#include "os_types_api.h"
|
||
|
#include "iot_pkt_api.h"
|
||
|
#include "iot_spi_api.h"
|
||
|
|
||
|
/**
|
||
|
* @brief iot_spi_dma_h - SPI handle.
|
||
|
*/
|
||
|
typedef void* iot_spi_dma_h;
|
||
|
|
||
|
/**
|
||
|
* @brief iot_spi_dma_config_t - SPI configuration.
|
||
|
*/
|
||
|
typedef struct _iot_spi_dma_config_t_ {
|
||
|
uint32_t freq; /* 1000000 -> 1MHZ */
|
||
|
uint32_t role; /* Master or slaver. See SPI_MASTER / SPI_SLAVER. */
|
||
|
iot_spi_gpio_sel_t gpio;
|
||
|
} iot_spi_dma_config_t;
|
||
|
|
||
|
/**
|
||
|
* @brief iot_spi_dma_rcv_func - Function pointer to get received data from SPI.
|
||
|
* @param p_buf: Pointer of a buffer holding data received.
|
||
|
* @param len: Length of buffer.
|
||
|
*/
|
||
|
typedef void (*iot_spi_dma_rcv_func)(uint8_t *p_buf, uint32_t len);
|
||
|
|
||
|
/**
|
||
|
* @brief iot_spi_dma_open - Open a spi device.
|
||
|
* @param dev: Device number. See enum spi_device_list.
|
||
|
* @param p_func: Function pointer to receive data.
|
||
|
* @return SPI handle.
|
||
|
*/
|
||
|
iot_spi_dma_h iot_spi_dma_open(uint32_t dev, iot_spi_dma_rcv_func p_func);
|
||
|
|
||
|
/**
|
||
|
* @brief iot_spi_dma_send - Send data to SPI.
|
||
|
* @param spi_h: SPI handle.
|
||
|
* @param p_pkt: Packet of data to send.
|
||
|
* @return ERR_FAIL -- Operation failed.
|
||
|
* @return ERR_OK -- Operation Successful.
|
||
|
*/
|
||
|
uint32_t iot_spi_dma_send(iot_spi_dma_h spi_h, iot_pkt_t *p_pkt);
|
||
|
|
||
|
/**
|
||
|
* @brief iot_spi_dma_config - Config SPI port.
|
||
|
* @param spi_h: SPI handle.
|
||
|
* @param p_cfg: Configuration.
|
||
|
* @return ERR_FAIL -- Operation failed.
|
||
|
* @return ERR_OK -- Operation Successful.
|
||
|
*/
|
||
|
uint32_t iot_spi_dma_config(iot_spi_dma_h spi_h, iot_spi_dma_config_t *p_cfg);
|
||
|
|
||
|
|
||
|
#endif /* _IOT_SPI_DMA_API_H_ */
|