yb_arm/driver/rfic/rf/api/inc/ucp_jesd_gpio.h
2025-05-20 01:20:32 +08:00

122 lines
3.0 KiB
C

//******************** (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