115 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			4.0 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 __FDMA_MST_PROTOCOL_H__
 | |
| #define __FDMA_MST_PROTOCOL_H__
 | |
| 
 | |
| #include "os_types.h"
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| // clk cs ms
 | |
| #define GPIO_S_CLK                  9
 | |
| #define GPIO_S_CS                   34
 | |
| #define GPIO_S_MS                   35
 | |
| 
 | |
| #define INVALID_DRIVER                      0
 | |
| 
 | |
| #define FMST_CMD_ID_OFFSET                  28
 | |
| #define FMST_CMD_ID_MASK                    0xf
 | |
| #define FMST_CMD_PARAM_OFFSET               0
 | |
| #define FMST_CMD_PARAM_MASK                 0x0fffffff
 | |
| 
 | |
| #define FMST_CMD_NOP                        0x0
 | |
| #define FMST_CMD_INIT                       0x1
 | |
| #define FMST_CMD_READ_ALLOCATE              0x4
 | |
| #define FMST_CMD_READ_FETCH                 0x5
 | |
| #define FMST_CMD_PING                       0x6
 | |
| #define FMST_CMD_WRITE                      0x7
 | |
| #define FMST_CMD_CPU_RESET                  0x8
 | |
| #define FMST_CMD_CPU_RESET_RELEASE          0x9
 | |
| #define FMST_CMD_MODULE_STS                 0xf
 | |
| 
 | |
| #define RX_BUFF_LENTH                       200
 | |
| 
 | |
| #ifndef NTOHL
 | |
| #define NTOHL(x)                                                               \
 | |
|     (((x & 0xff) << 24) | ((x & 0xff00) << 8) | ((x & 0xff0000) >> 8) |        \
 | |
|      ((x & 0xff000000) >> 24))
 | |
| #endif
 | |
| 
 | |
| #ifndef NTOHS
 | |
| #define NTOHS(x) (((x & 0xff) << 8) | ((x & 0xff00) >> 8))
 | |
| #endif
 | |
| 
 | |
| #define FMST_SET_CMD(cmd, param)                                               \
 | |
|     ((((uint32_t)cmd & FMST_CMD_ID_MASK) << FMST_CMD_ID_OFFSET) |              \
 | |
|      ((uint32_t)param & FMST_CMD_PARAM_MASK) << FMST_CMD_PARAM_OFFSET)
 | |
| 
 | |
| /**
 | |
|  * @brief iot_spi_fdma_master_write() - write data to address by simu spi
 | |
|  * @param [in] addr: address
 | |
|  * @param [in] w_lenth: lenth of data
 | |
|  * @param [in] w_data: pointer to content of data
 | |
|  */
 | |
| void iot_spi_fdma_master_write(uint32_t addr, uint32_t w_lenth,
 | |
|                                uint32_t* w_data);
 | |
| 
 | |
| /**
 | |
|  * @brief iot_spi_fdma_master_read() - read data from address by simu spi
 | |
|  * @param [in] addr: address
 | |
|  * @param [in] r_lenth: lenth of data
 | |
|  * @param [out] rx_buff: buff to hold rx data
 | |
|  * @return: error code, see ERR_XXX.
 | |
|  */
 | |
| uint16_t iot_spi_fdma_master_read(uint32_t addr, uint32_t r_lenth,
 | |
|                                   uint32_t* rx_buff);
 | |
| 
 | |
| /**
 | |
|  * @brief iot_spi_fdma_master_get_debuginfo() - get debug infomation by simu spi
 | |
|  * @param [in] id: debug id
 | |
|  * @param [out] rx_buff: buff to hold debug info
 | |
|  * @return: error code, see ERR_XXX.
 | |
|  */
 | |
| uint16_t iot_spi_fdma_master_get_debuginfo(uint32_t id, uint32_t* rx_buff);
 | |
| 
 | |
| /**
 | |
|  * @brief iot_spi_fdma_master_reset_cpu() - reset cpu by simu spi
 | |
|  */
 | |
| void iot_spi_fdma_master_reset_cpu(void);
 | |
| 
 | |
| /**
 | |
|  * @brief iot_spi_fdma_master_reset_release_cpu() - release cpu by simu spi
 | |
|  */
 | |
| void iot_spi_fdma_master_reset_release_cpu(void);
 | |
| 
 | |
| /**
 | |
|  * @brief iot_spi_fdma_master_ping() - ping by simu spi
 | |
|  * @param [out] rx_buff: pointer to rx buff to hold rx data.
 | |
|  * @return:error code, see ERR_XXX.
 | |
|  */
 | |
| uint16_t iot_spi_fdma_master_ping(uint32_t* rx_buff);
 | |
| 
 | |
| /**
 | |
|  * @brief iot_spi_fdma_master_nop() - nop by simu spi
 | |
|  */
 | |
| void iot_spi_fdma_master_nop(void);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif  //__FDMA_MST_PROTOCOL_H__
 |