//******************** (C) COPYRIGHT 2022 SmartLogic******************************* // FileName : ucp_jesd_gpio.h (ap side) // Author : Boheng Lin bhlin919@126.com // Date First Issued : 2022-09-08 02:37:50 PM // Last Modified : // Description : // ------------------------------------------------------------ // Modification History: // Version Date Author Modification Description // //********************************************************************************** #ifndef __UCP_JESD_GPIO__ #define __UCP_JESD_GPIO__ #include "ucp_api_jesd.h" #ifdef __cplusplus extern "C" { #endif #define GPIO_INDEX_MAX (64) #define UCP_GPIO(port, pin) ((tUcpGpioRegTable_t *)&pUcpGpioTable[port][pin]) typedef struct tUcpGpioRegTable_tag { uint32_t pinMuxReg; uint32_t muxValue; uint32_t muxMask; uint32_t dirReg; uint32_t valueReg; uint32_t bitMask; } tUcpGpioRegTable_t; typedef struct tGpioInfRegTable_tag { uint8_t index; uint8_t enable; uint8_t dir; uint8_t value; tUcpGpioRegTable_t *gpio; } tGpioInfRegTable; enum { GPIO_PORT0A = 0, GPIO_PORT0B, GPIO_PORT1A, GPIO_PORT1B }; typedef enum eGpioDir_tag { GPIO_DIR_IN = 0, GPIO_DIR_OUT } eGpioDir; enum { GPIO_INDEX_TRX_TX1 = 0, GPIO_INDEX_TRX_TX2, GPIO_INDEX_TRX_TX3, GPIO_INDEX_TRX_TX4, GPIO_INDEX_RF_TX1, GPIO_INDEX_RF_TX2, GPIO_INDEX_RF_TX3, GPIO_INDEX_RF_TX4, GPIO_INDEX_SW_TX1, GPIO_INDEX_SW_TX2, GPIO_INDEX_SW_TX3, GPIO_INDEX_SW_TX4, GPIO_INDEX_TRX_RX1, GPIO_INDEX_TRX_RX2, GPIO_INDEX_TRX_RX3, GPIO_INDEX_TRX_RX4, GPIO_INDEX_RF_RX1, GPIO_INDEX_RF_RX2, GPIO_INDEX_RF_RX3, GPIO_INDEX_RF_RX4, GPIO_INDEX_SW_RX1, GPIO_INDEX_SW_RX2, GPIO_INDEX_SW_RX3, GPIO_INDEX_SW_RX4, GPIO_INDEX_TRX_ORX1, GPIO_INDEX_TRX_ORX2, GPIO_INDEX_TRX_ORX3, GPIO_INDEX_TRX_ORX4, GPIO_INDEX_RF_ORX1, GPIO_INDEX_RF_ORX2, GPIO_INDEX_RF_ORX3, GPIO_INDEX_RF_ORX4, GPIO_INDEX_SW_ORX1, GPIO_INDEX_SW_ORX2, GPIO_INDEX_SW_ORX3, GPIO_INDEX_SW_ORX4, GPIO_INDEX_TRIGER, GPIO_INDEX_TR_MAX }; extern const tUcpGpioRegTable_t *pUcpGpioTable[]; extern ucp_jesd_TrxGpioCfg_t ucp_jesd_gpioInit (const char *trxGpioConfigFile, uint16_t enLog); extern int ucp_jesd_gpioConfig (const int pinIdex, uint8_t dir, uint8_t enable, tUcpGpioRegTable_t *gpio); extern int ucp_jesd_gpioSetDir(const int pinIdex, eGpioDir dir); extern eGpioDir ucp_jesd_gpioGetDir(const int pinIdex); extern int ucp_jesd_gpioSet(const int pinIdex, int value); extern int ucp_jesd_gpioGet(const int pinIdex); extern void ucp_jesd_gpio_tx (void); extern void ucp_jesd_gpio_rx (void); extern void ucp_jesd_gpio_on (void); extern void ucp_jesd_gpio_off (void); extern void ucp_jesd_gpio_orxOn (void); extern void ucp_jesd_gpio_orxOff (void); extern void ucp_jesd_gpio_trigOn (void); extern void ucp_jesd_gpio_trigOff (void); #ifdef __cplusplus } #endif #endif