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__
 |