661 lines
21 KiB
C
661 lines
21 KiB
C
/**
|
||
******************************************************************************
|
||
* @file sdk\include\chip\txw80x\io_function.h
|
||
* @author HUGE-IC Application Team
|
||
* @version V1.0.0
|
||
* @date 2022-01-11
|
||
* @brief This file contains all the GPIO functions.
|
||
* @copyright Copyright (c) 2016-2022 HUGE-IC
|
||
******************************************************************************
|
||
* @attention
|
||
* Only used for txw80x.
|
||
*
|
||
*
|
||
*
|
||
*
|
||
******************************************************************************
|
||
*/
|
||
|
||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||
#ifndef __IO_FUNCTION_H
|
||
#define __IO_FUNCTION_H
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
#include "typesdef.h"
|
||
|
||
|
||
#define REG_GPIO_DIR_CLR(port, n) \
|
||
(*(volatile unsigned int*)(port+0x00)) &= ~(3<<((n)<<1))
|
||
|
||
#define REG_GPIO_DIR_INPUT(port, n) \
|
||
do { \
|
||
REG_GPIO_DIR_CLR(port, n); \
|
||
(*(volatile unsigned int*)(port+0x00)) |= (0<<((n)<<1)); \
|
||
} while(0)
|
||
|
||
#define REG_GPIO_DIR_OUTPUT(port, n) \
|
||
do { \
|
||
REG_GPIO_DIR_CLR(port, n); \
|
||
(*(volatile unsigned int*)(port+0x00)) |= (1<<((n)<<1)); \
|
||
} while(0)
|
||
|
||
#define REG_GPIO_OTYPE_CLR(port, n) \
|
||
(*(volatile unsigned int*)(port+0x04)) &= ~(1<<(n));
|
||
|
||
#define REG_GPIO_OPEN_DRAIN(port, n) \
|
||
do { \
|
||
REG_GPIO_OTYPE_CLR(port, n); \
|
||
(*(volatile unsigned int*)(port+0x04)) |= (1<<(n));\
|
||
} while(0)
|
||
|
||
#define REG_GPIO_PUSH_PULL(port, n) \
|
||
do { \
|
||
REG_GPIO_OTYPE_CLR(port, n); \
|
||
(*(volatile unsigned int*)(port+0x04)) |= (0<<(n));\
|
||
} while(0)
|
||
|
||
#define REG_GPIO_PUL_100(port, n) \
|
||
(*(volatile unsigned int*)(port+0x10)) |= BIT((((n)-0)<<2))
|
||
#define REG_GPIO_PUH_100(port, n) \
|
||
(*(volatile unsigned int*)(port+0x14)) |= BIT((((n)-8)<<2))
|
||
|
||
#define REG_GPIO_PDL_100(port, n) \
|
||
(*(volatile unsigned int*)(port+0x18)) |= BIT((((n)-0)<<2))
|
||
#define REG_GPIO_PDH_100(port, n) \
|
||
(*(volatile unsigned int*)(port+0x1C)) |= BIT((((n)-8)<<2))
|
||
|
||
#define REG_GPIO_SET(port, n) \
|
||
(*(volatile unsigned int*)(port+0x24)) = \
|
||
((*(volatile unsigned int*)(port+0x24)) & ~BIT(n)) | BIT(n)
|
||
|
||
#define REG_GPIO_RESET(port, n) \
|
||
(*(volatile unsigned int*)(port+0x24)) = \
|
||
((*(volatile unsigned int*)(port+0x24)) & ~BIT(n))
|
||
|
||
/** @addtogroup Docxygenid_GPIO_enum
|
||
* @{
|
||
*/
|
||
|
||
/**
|
||
* @brief Enumeration constant for GPIO command.
|
||
* @note
|
||
* Enum number start from 0x101.
|
||
*/
|
||
enum gpio_cmd {
|
||
/*! GPIO cmd afio set
|
||
*/
|
||
GPIO_CMD_AFIO_SET = 0x101,
|
||
|
||
/*! GPIO cmd iomap output
|
||
*/
|
||
GPIO_CMD_IOMAP_OUT_FUNC,
|
||
|
||
/*! GPIO cmd iomap input
|
||
*/
|
||
GPIO_CMD_IOMAP_IN_FUNC,
|
||
|
||
/*! GPIO cmd iomap inout
|
||
*/
|
||
GPIO_CMD_IOMAP_INOUT_FUNC,
|
||
|
||
/*! GPIO pin driver strength config
|
||
*/
|
||
GPIO_CMD_DRIVER_STRENGTH,
|
||
|
||
};
|
||
|
||
|
||
/**
|
||
* @brief Enumeration constant for GPIO afio set.
|
||
*/
|
||
enum gpio_afio_set{
|
||
/*! gpio cmd afio 0
|
||
*/
|
||
GPIO_AF_0 = 0,
|
||
|
||
/*! gpio cmd afio 1
|
||
*/
|
||
GPIO_AF_1 ,
|
||
|
||
/*! gpio cmd afio 2
|
||
*/
|
||
GPIO_AF_2 ,
|
||
|
||
/*! gpio cmd afio 3
|
||
*/
|
||
GPIO_AF_3 ,
|
||
};
|
||
|
||
/**
|
||
* @breif : Enumeration constant for GPIO pull level.
|
||
*/
|
||
enum gpio_pull_level {
|
||
/*! gpio pull level : NONE
|
||
*/
|
||
GPIO_PULL_LEVEL_NONE = 0,
|
||
|
||
/*! gpio pull level : 4.7K
|
||
*/
|
||
GPIO_PULL_LEVEL_4_7K ,
|
||
|
||
/*! gpio pull level : 100k
|
||
*/
|
||
GPIO_PULL_LEVEL_100K ,
|
||
};
|
||
|
||
/**
|
||
* @breif : Enumeration constant for GPIO driver strength
|
||
*/
|
||
enum pin_driver_strength {
|
||
/**
|
||
*对于81x, 分别对应4, 12, 20, 28mA
|
||
*对于82x, 分别对应4, 8, 16, 20mA. 对于PB12/PD8/PD14/PE1, 则分别是8, 20, 32, 60mA
|
||
*/
|
||
GPIO_DS_G0,
|
||
GPIO_DS_G1,
|
||
GPIO_DS_G2,
|
||
GPIO_DS_G3,
|
||
};
|
||
|
||
/** @defgroup GPIO IO map output function selection
|
||
* @{
|
||
*/
|
||
//除了GPIO_IOMAP_OUTPUT, 不能同时存在两个及以上 [ (枚举值+4)/5 ]相同的GPIO OUTPUT MAPPING 配置,下表已经分好类了
|
||
enum gpio_iomap_out_func{
|
||
GPIO_IOMAP_OUTPUT = 0,
|
||
GPIO_IOMAP_OUT_OSPI_CS_IO = 0x1,
|
||
GPIO_IOMAP_OUT_DBGPATH_DBGO_8 = 0x2,
|
||
GPIO_IOMAP_OUT_LCD_DE_OR_ERD = 0x3,
|
||
GPIO_IOMAP_OUT_COMP_DOUT_DIG0 = 0x5,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_0 = 0x6,
|
||
GPIO_IOMAP_OUT_VIDEO_PAR_DATA_O_0 = 0x7,
|
||
GPIO_IOMAP_OUT_DBGPATH_DBGO_9 = 0x8,
|
||
GPIO_IOMAP_OUT_COMP_DOUT_DIG1 = 0xA,
|
||
GPIO_IOMAP_OUT_LCD_DE_OR_ERD1 = 0xB,
|
||
GPIO_IOMAP_OUT_ANTENNA_SEL = 0xF,
|
||
GPIO_IOMAP_OUT_LCD_HSYNC_OR_DC = 0x10,
|
||
GPIO_IOMAP_OUT_PA_EN = 0x14,
|
||
GPIO_IOMAP_OUT_LCD_VSYNC_OR_CS0 = 0x15,
|
||
GPIO_IOMAP_OUT_RF_EXT_LNA_EN = 0x19,
|
||
GPIO_IOMAP_OUT_LCD_DOTCLK_OR_RWR0 = 0x1A,
|
||
GPIO_IOMAP_OUT_RF_SWITCH_EN1 = 0x1B,
|
||
GPIO_IOMAP_OUT_RF_TX_EN_FEM = 0x1E,
|
||
GPIO_IOMAP_OUT_RF_SWITCH_EN0 = 0x1F,
|
||
GPIO_IOMAP_OUT_DVP_MCLK_OUT = 0x20,
|
||
GPIO_IOMAP_OUT_RF_RX_EN_FEM = 0x23,
|
||
GPIO_IOMAP_OUT_VIDEO_PAR_DATA_O_1 = 0x24,
|
||
GPIO_IOMAP_OUT_RF_TRX_SW_FEM = 0x25,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_1 = 0x28,
|
||
GPIO_IOMAP_OUT_DAC_PDM_OUT = 0x29,
|
||
GPIO_IOMAP_OUT_VIDEO_PAR_DATA_O_2 = 0x2A,
|
||
GPIO_IOMAP_OUT_RF_PA_EN_FEM = 0x2B,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_2 = 0x2D,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_3 = 0x2E,
|
||
GPIO_IOMAP_OUT_VIDEO_PAR_DATA_O_3 = 0x2F,
|
||
GPIO_IOMAP_OUT_DBGPATH_DBGO_0 = 0x30,
|
||
GPIO_IOMAP_OUT_UART1_RTS_RE_O = 0x32,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_4 = 0x33,
|
||
GPIO_IOMAP_OUT_VIDEO_PAR_DATA_O_4 = 0x34,
|
||
GPIO_IOMAP_OUT_DBGPATH_DBGO_1 = 0x35,
|
||
GPIO_IOMAP_OUT_UART1_CTS_DE_OUT = 0x37,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_5 = 0x38,
|
||
GPIO_IOMAP_OUT_VIDEO_PAR_DATA_O_5 = 0x39,
|
||
GPIO_IOMAP_OUT_UART1_OUT = 0x3C,
|
||
GPIO_IOMAP_OUT_DBGPATH_DBGO_2 = 0x3D,
|
||
GPIO_IOMAP_OUT_UART0_RTS_RE_O = 0x41,
|
||
GPIO_IOMAP_OUT_DBGPATH_DBGO_3 = 0x42,
|
||
GPIO_IOMAP_OUT_UART0_CTS_DE_OUT = 0x46,
|
||
GPIO_IOMAP_OUT_UART0_OUT = 0x4B,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_6 = 0x4C,
|
||
GPIO_IOMAP_OUT_VIDEO_PAR_DATA_O_6 = 0x4D,
|
||
GPIO_IOMAP_OUT_STMR3_PWM_OUT = 0x50,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_7 = 0x51,
|
||
GPIO_IOMAP_OUT_VIDEO_PAR_DATA_O_7 = 0x52,
|
||
GPIO_IOMAP_OUT_STMR2_PWM_OUT = 0x55,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_8 = 0x56,
|
||
GPIO_IOMAP_OUT_VIDEO_PAR_DATA_O_8 = 0x57,
|
||
GPIO_IOMAP_OUT_STMR1_PWM_OUT = 0x5A,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_9 = 0x5B,
|
||
GPIO_IOMAP_OUT_VIDEO_PAR_DATA_O_9 = 0x5C,
|
||
GPIO_IOMAP_OUT_STMR0_PWM_OUT = 0x5F,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_10 = 0x60,
|
||
GPIO_IOMAP_OUT_VIDEO_PAR_DATA_O_10 = 0x61,
|
||
GPIO_IOMAP_OUT_STMR4_PWM_OUT = 0x64,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_11 = 0x65,
|
||
GPIO_IOMAP_OUT_QSPI_OSPI_MNT_O_6 = 0x66,
|
||
GPIO_IOMAP_OUT_STMR5_PWM_OUT = 0x69,
|
||
GPIO_IOMAP_OUT_SPI0_IO3_OUT = 0x6A,
|
||
GPIO_IOMAP_OUT_SDHOST_SCLK_O = 0x6E,
|
||
GPIO_IOMAP_OUT_SPI0_IO2_OUT = 0x6F,
|
||
GPIO_IOMAP_OUT_TMR3_PWM_OUT = 0x73,
|
||
GPIO_IOMAP_OUT_SPI0_IO1_OUT = 0x74,
|
||
GPIO_IOMAP_OUT_TMR2_PWM_OUT = 0x78,
|
||
GPIO_IOMAP_OUT_SPI1_NSS_OUT = 0x79,
|
||
GPIO_IOMAP_OUT_TMR1_PWM_OUT = 0x7D,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_12 = 0x7E,
|
||
GPIO_IOMAP_OUT_TMR0_PWM_OUT = 0x82,
|
||
GPIO_IOMAP_OUT_DBGPATH_DBGO_4 = 0x83,
|
||
GPIO_IOMAP_OUT_SDHOST1_DAT1_OUT = 0x84,
|
||
GPIO_IOMAP_OUT_DUAL_ORG_FSYNC = 0x85,
|
||
GPIO_IOMAP_OUT_LED_TMR0_PWM_OUT = 0x87,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_13 = 0x88,
|
||
GPIO_IOMAP_OUT_DBGPATH_DBGO_5 = 0x89,
|
||
GPIO_IOMAP_OUT_LED_TMR1_PWM_OUT = 0x8C,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_14 = 0x8D,
|
||
GPIO_IOMAP_OUT_DBGPATH_DBGO_6 = 0x8E,
|
||
GPIO_IOMAP_OUT_LED_TMR2_PWM_OUT = 0x91,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_15 = 0x92,
|
||
GPIO_IOMAP_OUT_DBGPATH_DBGO_7 = 0x93,
|
||
GPIO_IOMAP_OUT_LED_TMR3_PWM_OUT = 0x96,
|
||
GPIO_IOMAP_OUT_CAN_TXD = 0x97,
|
||
GPIO_IOMAP_OUT_CPU1_JTG_TMS = 0x98,
|
||
GPIO_IOMAP_OUT_PDM_MCLK = 0x9B,
|
||
GPIO_IOMAP_OUT_OSPI_CS_IO1 = 0x9C,
|
||
GPIO_IOMAP_OUT_QSPI_NSS1_OUT = 0xA0,
|
||
GPIO_IOMAP_OUT_QSPI_OSPI_MNT_O_0 = 0xA1,
|
||
GPIO_IOMAP_OUT_GRANT_BLE = 0xA2,
|
||
GPIO_IOMAP_OUT_SPI0_NSS_OUT = 0xA5,
|
||
GPIO_IOMAP_OUT_QSPI_OSPI_MNT_O_1 = 0xA6,
|
||
GPIO_IOMAP_OUT_GRANT_BLE_SWITCH_O = 0xA7,
|
||
GPIO_IOMAP_OUT_SPI0_SCK_OUT = 0xAA,
|
||
GPIO_IOMAP_OUT_QSPI_OSPI_MNT_O_2 = 0xAB,
|
||
GPIO_IOMAP_OUT_GRANT_WIFI_SWITCH_O = 0xAC,
|
||
GPIO_IOMAP_OUT_SPI0_IO0_OUT = 0xAF,
|
||
GPIO_IOMAP_OUT_QSPI_OSPI_MNT_O_3 = 0xB0,
|
||
GPIO_IOMAP_OUT_SPARE0 = 0xB4,
|
||
GPIO_IOMAP_OUT_QSPI_OSPI_MNT_O_4 = 0xB5,
|
||
GPIO_IOMAP_OUT_SPARE1 = 0xB9,
|
||
GPIO_IOMAP_OUT_QSPI_OSPI_MNT_O_5 = 0xBA,
|
||
GPIO_IOMAP_OUT_SPARE2 = 0xBE,
|
||
GPIO_IOMAP_OUT_QSPI_OSPI_MNT_O_7 = 0xBF,
|
||
GPIO_IOMAP_OUT_SPARE3 = 0xC3,
|
||
GPIO_IOMAP_OUT_QSPI_OSPI_MNT_O_8 = 0xC4,
|
||
GPIO_IOMAP_OUT_SPI1_SCK_OUT = 0xC8,
|
||
GPIO_IOMAP_OUT_QSPI_OSPI_MNT_O_9 = 0xC9,
|
||
GPIO_IOMAP_OUT_SPI1_IO0_OUT = 0xCD,
|
||
GPIO_IOMAP_OUT_QSPI_OSPI_MNT_O_10 = 0xCE,
|
||
GPIO_IOMAP_OUT_SPI1_IO1_OUT = 0xD2,
|
||
GPIO_IOMAP_OUT_QSPI_OSPI_MNT_O_11 = 0xD3,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_16 = 0xD7,
|
||
GPIO_IOMAP_OUT_QSPI_OSPI_MNT_O_12 = 0xD8,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_17 = 0xDC,
|
||
GPIO_IOMAP_OUT_QSPI_OSPI_MNT_O_13 = 0xDD,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_18 = 0xDE,
|
||
GPIO_IOMAP_OUT_SPI2_NSS_OUT = 0xE1,
|
||
GPIO_IOMAP_OUT_QSPI_OSPI_MNT_O_14 = 0xE2,
|
||
GPIO_IOMAP_OUT_SDHOST1_SCLK_O = 0xE3,
|
||
GPIO_IOMAP_OUT_SPI2_SCK_OUT = 0xE6,
|
||
GPIO_IOMAP_OUT_QSPI_OSPI_MNT_O_15 = 0xE7,
|
||
GPIO_IOMAP_OUT_SDHOST1_DAT0_OUT = 0xE8,
|
||
GPIO_IOMAP_OUT_SPI2_IO0_OUT = 0xEB,
|
||
GPIO_IOMAP_OUT_QSPI_OSPI_MNT_O_16 = 0xEC,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_19 = 0xED,
|
||
GPIO_IOMAP_OUT_SDHOST1_CMD_OUT = 0xEE,
|
||
GPIO_IOMAP_OUT_SPI2_IO1_OUT = 0xF0,
|
||
GPIO_IOMAP_OUT_QSPI_OSPI_MNT_O_17 = 0xF1,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_20 = 0xF2,
|
||
GPIO_IOMAP_OUT_SDHOST1_DAT2_OUT = 0xF3,
|
||
GPIO_IOMAP_OUT_SPI2_IO2_OUT = 0xF5,
|
||
GPIO_IOMAP_OUT_QSPI_OSPI_MNT_O_18 = 0xF6,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_21 = 0xF7,
|
||
GPIO_IOMAP_OUT_SDHOST1_DAT3_OUT = 0xF8,
|
||
GPIO_IOMAP_OUT_SPI2_IO3_OUT = 0xFA,
|
||
GPIO_IOMAP_OUT_QSPI_OSPI_MNT_O_19 = 0xFB,
|
||
GPIO_IOMAP_OUT_SDHOST_CMD_OUT = 0xFF,
|
||
GPIO_IOMAP_OUT_UART6_TX = 0x100,
|
||
GPIO_IOMAP_OUT_SDHOST_DAT0_OUT = 0x104,
|
||
GPIO_IOMAP_OUT_LCD_DOTCLK_OR_RWR1 = 0x105,
|
||
GPIO_IOMAP_OUT_SDHOST_DAT1_OUT = 0x109,
|
||
GPIO_IOMAP_OUT_LCD_VSYNC_OR_CS1 = 0x10A,
|
||
GPIO_IOMAP_OUT_SDHOST_DAT2_OUT = 0x10E,
|
||
GPIO_IOMAP_OUT_LCD_HSYNC_OR_DC1 = 0x10F,
|
||
GPIO_IOMAP_OUT_SDHOST_DAT3_OUT = 0x113,
|
||
GPIO_IOMAP_OUT_LCD_DOTCLK_OR_RWR2 = 0x114,
|
||
GPIO_IOMAP_OUT_IO2IO_CHANNAL3 = 0x115,
|
||
GPIO_IOMAP_OUT_IIS0_MCLK_OUT = 0x118,
|
||
GPIO_IOMAP_OUT_LCD_VSYNC_OR_CS2 = 0x119,
|
||
GPIO_IOMAP_OUT_IO2IO_CHANNAL2 = 0x11A,
|
||
GPIO_IOMAP_OUT_IIS0_WSCLK_OUT = 0x11D,
|
||
GPIO_IOMAP_OUT_LCD_HSYNC_OR_DC2 = 0x11E,
|
||
GPIO_IOMAP_OUT_IO2IO_CHANNAL1 = 0x11F,
|
||
GPIO_IOMAP_OUT_IIS0_BCLK_OUT = 0x122,
|
||
GPIO_IOMAP_OUT_LCD_DE_OR_ERD2 = 0x123,
|
||
GPIO_IOMAP_OUT_IO2IO_CHANNAL0 = 0x124,
|
||
GPIO_IOMAP_OUT_IIS0_DO = 0x127,
|
||
GPIO_IOMAP_OUT_UART5_TX = 0x128,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_22 = 0x129,
|
||
GPIO_IOMAP_OUT_IIS1_MCLK_OUT = 0x12C,
|
||
GPIO_IOMAP_OUT_LCD_DATA_O_23 = 0x12D,
|
||
GPIO_IOMAP_OUT_NFC_TX_GATE_N = 0x12E,
|
||
GPIO_IOMAP_OUT_IIS1_WSCLK_OUT = 0x131,
|
||
GPIO_IOMAP_OUT_SPI1_IO2_OUT = 0x132,
|
||
GPIO_IOMAP_OUT_NFC_TX_N = 0x133,
|
||
GPIO_IOMAP_OUT_IIS1_BCLK_OUT = 0x136,
|
||
GPIO_IOMAP_OUT_SPI1_IO3_OUT = 0x137,
|
||
GPIO_IOMAP_OUT_NFC_TX_GATE_P = 0x138,
|
||
GPIO_IOMAP_OUT_IIS1_DO = 0x13B,
|
||
GPIO_IOMAP_OUT_UART4_TX = 0x13C,
|
||
GPIO_IOMAP_OUT_NFC_TX_P = 0x13D,
|
||
GPIO_IOMAP_OUT_CLK_TO_IO = 0x140,
|
||
};
|
||
|
||
|
||
|
||
/** @defgroup Enumeration constant for GPIO IO map input function selection
|
||
* @{
|
||
*/
|
||
enum gpio_iomap_in_func{
|
||
GPIO_IOMAP_INPUT = 0xF000,
|
||
GPIO_IOMAP_IN_SPARE_IO1 = 0x0000,
|
||
GPIO_IOMAP_IN_SPARE_IO2,
|
||
GPIO_IOMAP_IN_SPARE_IO3,
|
||
GPIO_IOMAP_IN_TMR2_CAP_IN,
|
||
GPIO_IOMAP_IN_TMR3_CAP_IN,
|
||
GPIO_IOMAP_IN_PDM_DATA_IN_EPWM_TZ1_M3_2,
|
||
GPIO_IOMAP_IN_PTA_REQ_IN_EPWM_TZ2_M3_3,
|
||
GPIO_IOMAP_IN_PTA_PRI_IN_EPWM_TZ3_M3_4,
|
||
GPIO_IOMAP_IN_FREQ_IND_IN_EPWM_TZ4_M3_5,
|
||
GPIO_IOMAP_IN_STMR0_CAP_IN_LCD_D3_IN_M1_22_EPWM_SYNC_IO_M3_6,
|
||
GPIO_IOMAP_IN_STMR1_CAP_IN_LCD_D4_IN_M1_23,
|
||
GPIO_IOMAP_IN_STMR2_CAP_IN_LCD_D5_IN_M1_24,
|
||
GPIO_IOMAP_IN_STMR3_CAP_IN_LCD_D6_IN_M1_25,
|
||
GPIO_IOMAP_IN_PORT_WKUP_IN0 = 13,
|
||
GPIO_IOMAP_IN_TMR0_CAP_IN = 13,
|
||
GPIO_IOMAP_IN_PORT_WKUP_IN1_LCD_D7_IN_M1_26 = 14,
|
||
GPIO_IOMAP_IN_TMR0_SYNCI = 14,
|
||
GPIO_IOMAP_IN_EXT_RFSWITCH_EN0 = 14,
|
||
GPIO_IOMAP_IN_PORT_WKUP_IN2_LCD_D8_IN_M1_27 = 15,
|
||
GPIO_IOMAP_IN_TMR1_CAP_IN = 15,
|
||
GPIO_IOMAP_IN_PORT_WKUP_IN3_LCD_TE_M0_10,
|
||
GPIO_IOMAP_IN_UART0_IN,
|
||
GPIO_IOMAP_IN_UART0_CTS_DE_IN,
|
||
GPIO_IOMAP_IN_UART1_IN_LCD_D9_IN_M1_28,
|
||
GPIO_IOMAP_IN_UART1_CTS_DE_IN_LCD_D10_IN_M1_29,
|
||
GPIO_IOMAP_IN_FB_IN_EXT_PA_EN_SYS_NMI_CAN_RXD,
|
||
GPIO_IOMAP_IN_UART4_IN,
|
||
GPIO_IOMAP_IN_LCD_D0_IN_M1_19,
|
||
GPIO_IOMAP_IN_SPI0_NSS_IN,
|
||
GPIO_IOMAP_IN_SPI0_SCK_IN,
|
||
GPIO_IOMAP_IN_SPI0_IO0_IN,
|
||
GPIO_IOMAP_IN_SPI0_IO1_IN,
|
||
GPIO_IOMAP_IN_SPI0_IO2_IN,
|
||
GPIO_IOMAP_IN_SPI0_IO3_IN,
|
||
GPIO_IOMAP_IN_SPI1_NSS_IN_LCD_D11_IN_M1_30,
|
||
GPIO_IOMAP_IN_SPI1_SCK_IN,
|
||
GPIO_IOMAP_IN_SPI1_IO0_IN,
|
||
GPIO_IOMAP_IN_SPI1_IO1_IN_LCD_D12_IN_M1_31,
|
||
GPIO_IOMAP_IN_LCD_D1_IN_M1_20,
|
||
GPIO_IOMAP_IN_LCD_D2_IN_M1_21,
|
||
GPIO_IOMAP_IN_SPI2_NSS_IN_LCD_D13_IN_M2_0,
|
||
GPIO_IOMAP_IN_SPI2_SCK_IN,
|
||
GPIO_IOMAP_IN_SPI2_IO0_IN,
|
||
GPIO_IOMAP_IN_SPI2_IO1_IN_LCD_D14_IN_M2_1,
|
||
GPIO_IOMAP_IN_SPI2_IO2_IN_LCD_D15_IN_M2_2,
|
||
GPIO_IOMAP_IN_SPI2_IO3_IN_LCD_D16_IN_M2_3,
|
||
GPIO_IOMAP_IN_STMR4_CAP_IN_LCD_D17_IN_M2_4,
|
||
GPIO_IOMAP_IN_STMR5_CAP_IN_LCD_D18_IN_M2_5,
|
||
GPIO_IOMAP_IN_SDHOST_CMD_IN,
|
||
GPIO_IOMAP_IN_SDHOST_DAT0_IN,
|
||
GPIO_IOMAP_IN_SDHOST_DAT1_IN,
|
||
GPIO_IOMAP_IN_SDHOST_DAT2_IN,
|
||
GPIO_IOMAP_IN_SDHOST_DAT3_IN,
|
||
GPIO_IOMAP_IN_IIS0_MCLK_IN_LCD_D19_IN_M2_6,
|
||
GPIO_IOMAP_IN_IIS0_WSCLK_IN_LCD_D20_IN_M2_7,
|
||
GPIO_IOMAP_IN_IIS0_BCLK_IN_LCD_D21_IN_M2_8,
|
||
GPIO_IOMAP_IN_IIS0_DAT_IN_UART6_RX_M3_9,
|
||
GPIO_IOMAP_IN_IIS1_MCLK_IN_Uart5_IN_LCD_D22_IN_M2_9,
|
||
GPIO_IOMAP_IN_IIS1_WSCLK_IN_LCD_D23_IN_M2_10,
|
||
GPIO_IOMAP_IN_SPI1_IO2_IN_IIS1_BCLK_IN,
|
||
GPIO_IOMAP_IN_SPI1_IO3_IN_IIS1_DAT_IN_UART6_RX_M3_9,
|
||
};
|
||
|
||
|
||
/** @defgroup Enumeration constant for GPIO spare iomap function
|
||
* @{ 选择一个IO连接到备用的功能点上, 解决同组MAP无法复用的问题
|
||
*
|
||
*/
|
||
enum smap_node{
|
||
SMAP_OUT_0 = 0,
|
||
SMAP_OUT_1,
|
||
SMAP_OUT_2,
|
||
SMAP_OUT_3,
|
||
|
||
SMAP_IN_1,
|
||
SMAP_IN_2,
|
||
SMAP_IN_3,
|
||
};
|
||
|
||
enum smap_output{
|
||
SMAP_OUT_RF_EXT_LNA_EN ,
|
||
SMAP_OUT_RF_TX_EN_FEM ,
|
||
SMAP_OUT_RF_SWITCH_EN1 ,
|
||
SMAP_OUT_RF_RX_EN_FEM ,
|
||
SMAP_OUT_RF_SWITCH_EN0 ,
|
||
SMAP_OUT_RF_TRX_SW_FEM ,
|
||
SMAP_OUT_RF_PA_EN_FEM ,
|
||
SMAP_OUT_GRANT_BLE ,
|
||
SMAP_OUT_GRANT_BLE_SWITCH_O ,
|
||
SMAP_OUT_GRANT_WIFI_SWITCH_O ,
|
||
SMAP_OUT_UART0_RTS_RE_O ,
|
||
SMAP_OUT_UART0_CTS_DE_OUT ,
|
||
SMAP_OUT_UART0_OUT ,
|
||
SMAP_OUT_UART1_RTS_RE_O ,
|
||
SMAP_OUT_UART1_CTS_DE_OUT ,
|
||
SMAP_OUT_UART1_OUT ,
|
||
SMAP_OUT_UART4_TX ,
|
||
SMAP_OUT_UART5_TX ,
|
||
SMAP_OUT_UART6_TX ,
|
||
SMAP_OUT_VIDEO_PAR_DATA_O_0 ,
|
||
SMAP_OUT_VIDEO_PAR_DATA_O_1 ,
|
||
SMAP_OUT_VIDEO_PAR_DATA_O_2 ,
|
||
SMAP_OUT_VIDEO_PAR_DATA_O_3 ,
|
||
SMAP_OUT_VIDEO_PAR_DATA_O_4 ,
|
||
SMAP_OUT_VIDEO_PAR_DATA_O_5 ,
|
||
SMAP_OUT_VIDEO_PAR_DATA_O_6 ,
|
||
SMAP_OUT_VIDEO_PAR_DATA_O_7 ,
|
||
SMAP_OUT_VIDEO_PAR_DATA_O_8 ,
|
||
SMAP_OUT_VIDEO_PAR_DATA_O_9 ,
|
||
SMAP_OUT_DBGPATH_DBGO_0 ,
|
||
SMAP_OUT_DBGPATH_DBGO_1 ,
|
||
SMAP_OUT_DBGPATH_DBGO_2 ,
|
||
SMAP_OUT_DBGPATH_DBGO_3 ,
|
||
SMAP_OUT_DBGPATH_DBGO_4 ,
|
||
SMAP_OUT_DBGPATH_DBGO_5 ,
|
||
SMAP_OUT_DBGPATH_DBGO_6 ,
|
||
SMAP_OUT_DBGPATH_DBGO_7 ,
|
||
SMAP_OUT_DBGPATH_DBGO_8 ,
|
||
SMAP_OUT_DBGPATH_DBGO_9 ,
|
||
SMAP_OUT_STMR0_PWM_OUT ,
|
||
SMAP_OUT_STMR1_PWM_OUT ,
|
||
SMAP_OUT_STMR2_PWM_OUT ,
|
||
SMAP_OUT_STMR3_PWM_OUT ,
|
||
SMAP_OUT_STMR4_PWM_OUT ,
|
||
SMAP_OUT_STMR5_PWM_OUT ,
|
||
SMAP_OUT_TMR3_PWM_OUT ,
|
||
SMAP_OUT_TMR2_PWM_OUT ,
|
||
SMAP_OUT_TMR1_PWM_OUT ,
|
||
SMAP_OUT_TMR0_PWM_OUT ,
|
||
SMAP_OUT_LED_TMR0_PWM_OUT ,
|
||
SMAP_OUT_LED_TMR1_PWM_OUT ,
|
||
SMAP_OUT_LED_TMR2_PWM_OUT ,
|
||
SMAP_OUT_LED_TMR3_PWM_OUT ,
|
||
SMAP_OUT_OSPI_CS_IO ,
|
||
SMAP_OUT_QSPI_NSS1_OUT ,
|
||
SMAP_OUT_QSPI_OSPI_MNT_O_0 ,
|
||
SMAP_OUT_QSPI_OSPI_MNT_O_1 ,
|
||
SMAP_OUT_QSPI_OSPI_MNT_O_2 ,
|
||
SMAP_OUT_QSPI_OSPI_MNT_O_3 ,
|
||
SMAP_OUT_QSPI_OSPI_MNT_O_4 ,
|
||
SMAP_OUT_QSPI_OSPI_MNT_O_5 ,
|
||
SMAP_OUT_QSPI_OSPI_MNT_O_6 ,
|
||
SMAP_OUT_QSPI_OSPI_MNT_O_7 ,
|
||
SMAP_OUT_QSPI_OSPI_MNT_O_8 ,
|
||
SMAP_OUT_QSPI_OSPI_MNT_O_9 ,
|
||
SMAP_OUT_QSPI_OSPI_MNT_O_10 ,
|
||
SMAP_OUT_QSPI_OSPI_MNT_O_11 ,
|
||
SMAP_OUT_QSPI_OSPI_MNT_O_12 ,
|
||
SMAP_OUT_QSPI_OSPI_MNT_O_13 ,
|
||
SMAP_OUT_QSPI_OSPI_MNT_O_14 ,
|
||
SMAP_OUT_QSPI_OSPI_MNT_O_15 ,
|
||
SMAP_OUT_QSPI_OSPI_MNT_O_16 ,
|
||
SMAP_OUT_QSPI_OSPI_MNT_O_17 ,
|
||
SMAP_OUT_QSPI_OSPI_MNT_O_18 ,
|
||
SMAP_OUT_QSPI_OSPI_MNT_O_19 ,
|
||
SMAP_OUT_SDHOST1_CMD_OUT ,
|
||
SMAP_OUT_SDHOST1_SCLK_O ,
|
||
SMAP_OUT_SDHOST1_DAT0_OUT,
|
||
SMAP_OUT_SDHOST1_DAT1_OUT,
|
||
SMAP_OUT_SDHOST1_DAT2_OUT,
|
||
SMAP_OUT_SDHOST1_DAT3_OUT,
|
||
SMAP_OUT_SDHOST_SCLK_O ,
|
||
SMAP_OUT_SDHOST_CMD_OUT ,
|
||
SMAP_OUT_SDHOST_DAT0_OUT ,
|
||
SMAP_OUT_SDHOST_DAT1_OUT ,
|
||
SMAP_OUT_SDHOST_DAT2_OUT ,
|
||
SMAP_OUT_SDHOST_DAT3_OUT ,
|
||
SMAP_OUT_IO2IO_CHANNAL3 ,
|
||
SMAP_OUT_IO2IO_CHANNAL2 ,
|
||
SMAP_OUT_IO2IO_CHANNAL1 ,
|
||
SMAP_OUT_IO2IO_CHANNAL0 ,
|
||
SMAP_OUT_IIS1_WSCLK_OUT ,
|
||
SMAP_OUT_IIS1_BCLK_OUT ,
|
||
SMAP_OUT_IIS1_DO ,
|
||
SMAP_OUT_IIS1_MCLK_OUT ,
|
||
SMAP_OUT_IIS0_MCLK_OUT ,
|
||
SMAP_OUT_IIS0_WSCLK_OUT ,
|
||
SMAP_OUT_IIS0_BCLK_OUT ,
|
||
SMAP_OUT_IIS0_DO ,
|
||
SMAP_OUT_LCD_DATA_O_0 ,
|
||
SMAP_OUT_LCD_DATA_O_1 ,
|
||
SMAP_OUT_LCD_DATA_O_2 ,
|
||
SMAP_OUT_LCD_DATA_O_3 ,
|
||
SMAP_OUT_LCD_DATA_O_4 ,
|
||
SMAP_OUT_LCD_DATA_O_5 ,
|
||
SMAP_OUT_LCD_DATA_O_6 ,
|
||
SMAP_OUT_LCD_DATA_O_7 ,
|
||
SMAP_OUT_LCD_DATA_O_8 ,
|
||
SMAP_OUT_LCD_DATA_O_9 ,
|
||
SMAP_OUT_LCD_DATA_O_10 ,
|
||
SMAP_OUT_LCD_DATA_O_11 ,
|
||
SMAP_OUT_LCD_DATA_O_12 ,
|
||
SMAP_OUT_LCD_DATA_O_13 ,
|
||
SMAP_OUT_LCD_DATA_O_14 ,
|
||
SMAP_OUT_LCD_DATA_O_15 ,
|
||
SMAP_OUT_LCD_DATA_O_16 ,
|
||
SMAP_OUT_LCD_DATA_O_17 ,
|
||
SMAP_OUT_LCD_DATA_O_18 ,
|
||
SMAP_OUT_LCD_DATA_O_19 ,
|
||
SMAP_OUT_LCD_DATA_O_20 ,
|
||
SMAP_OUT_LCD_DATA_O_21 ,
|
||
SMAP_OUT_LCD_DATA_O_22 ,
|
||
SMAP_OUT_LCD_DATA_O_23 ,
|
||
SMAP_OUT_LCD_DOTCLK_OR_RWR ,
|
||
SMAP_OUT_LCD_VSYNC_OR_CS ,
|
||
SMAP_OUT_LCD_HSYNC_OR_DC ,
|
||
SMAP_OUT_LCD_DE_OR_ERD ,
|
||
SMAP_OUT_SPI0_NSS_OUT ,
|
||
SMAP_OUT_SPI0_SCK_OUT ,
|
||
SMAP_OUT_SPI0_IO0_OUT ,
|
||
SMAP_OUT_SPI0_IO1_OUT ,
|
||
SMAP_OUT_SPI0_IO2_OUT ,
|
||
SMAP_OUT_SPI0_IO3_OUT ,
|
||
SMAP_OUT_SPI1_SCK_OUT ,
|
||
SMAP_OUT_SPI1_NSS_OUT ,
|
||
SMAP_OUT_SPI1_IO0_OUT ,
|
||
SMAP_OUT_SPI1_IO1_OUT ,
|
||
SMAP_OUT_SPI1_IO2_OUT ,
|
||
SMAP_OUT_SPI1_IO3_OUT ,
|
||
SMAP_OUT_SPI2_NSS_OUT ,
|
||
SMAP_OUT_SPI2_SCK_OUT ,
|
||
SMAP_OUT_SPI2_IO0_OUT ,
|
||
SMAP_OUT_SPI2_IO1_OUT ,
|
||
SMAP_OUT_SPI2_IO2_OUT ,
|
||
SMAP_OUT_SPI2_IO3_OUT ,
|
||
SMAP_OUT_NFC_TX_GATE_N ,
|
||
SMAP_OUT_NFC_TX_N ,
|
||
SMAP_OUT_NFC_TX_GATE_P ,
|
||
SMAP_OUT_NFC_TX_P ,
|
||
SMAP_OUT_COMP_DOUT_DIG0 ,
|
||
SMAP_OUT_COMP_DOUT_DIG1 ,
|
||
SMAP_OUT_ANTENNA_SEL ,
|
||
SMAP_OUT_LIN_TX ,
|
||
SMAP_OUT_LIN1_TX ,
|
||
SMAP_OUT_PA_EN ,
|
||
SMAP_OUT_DVP_MCLK_OUT ,
|
||
SMAP_OUT_DAC_PDM_OUT ,
|
||
SMAP_OUT_DUAL_ORG_FSYNC ,
|
||
SMAP_OUT_PDM_MCLK ,
|
||
SMAP_OUT_CAN_TXD ,
|
||
SMAP_OUT_CLK_TO_IO ,
|
||
};
|
||
|
||
enum smap_input{
|
||
SMAP_IN_IO2IO_CH0 = 1,
|
||
SMAP_IN_IO2IO_CH1,
|
||
SMAP_IN_IO2IO_CH2,
|
||
SMAP_IN_IO2IO_CH3,
|
||
|
||
SMAP_IN_LCD_DAT_3 =5,
|
||
SMAP_IN_LCD_DAT_4,
|
||
SMAP_IN_LCD_DAT_5,
|
||
SMAP_IN_LCD_DAT_6,
|
||
SMAP_IN_LCD_DAT_7,
|
||
SMAP_IN_LCD_DAT_8 = 10,
|
||
|
||
SMAP_IN_EX_RFSWI_EN0 = 11,
|
||
|
||
SMAP_IN_LCD_DAT_9 = 12,
|
||
SMAP_IN_LCD_DAT_10,
|
||
|
||
SMAP_IN_FB_IN = 14,
|
||
SMAP_IN_EX_RF_PA_EN = 15,
|
||
|
||
SMAP_IN_LCD_DAT_11 = 16,
|
||
SMAP_IN_LCD_DAT_12,
|
||
|
||
SMAP_IN_SDHOST1_DAT3,
|
||
SMAP_IN_LCD_DAT_13,
|
||
SMAP_IN_SDHOST1_DAT0,
|
||
SMAP_IN_SDHOST1_CMD,
|
||
|
||
SMAP_IN_LCD_DAT_14,
|
||
SMAP_IN_SDHOST1_DAT2,
|
||
SMAP_IN_LCD_DAT_15,
|
||
|
||
SMAP_IN_SPI2_IO3,
|
||
SMAP_IN_LCD_DAT_16,
|
||
SMAP_IN_LCD_DAT_17,
|
||
SMAP_IN_LCD_DAT_18,
|
||
SMAP_IN_LCD_DAT_19,
|
||
SMAP_IN_LCD_DAT_20,
|
||
SMAP_IN_LCD_DAT_21,
|
||
SMAP_IN_UART5_RX = 32,
|
||
SMAP_IN_LCD_DAT_22,
|
||
SMAP_IN_LCD_DAT_23,
|
||
|
||
SMAP_IN_SPI_IO2,
|
||
SMAP_IN_SPI_IO3,
|
||
|
||
SMAP_IN_UART6_RX,
|
||
};
|
||
/** @} Docxygenid_IO_function_enum*/
|
||
|
||
int32 gpio_driver_strength(uint32 pin, enum pin_driver_strength strength);
|
||
int32 gpio_set_altnt_func(uint32 pin, enum gpio_afio_set afio);
|
||
int32 gpio_iomap_output(uint32 pin, enum gpio_iomap_out_func func_sel);
|
||
int32 gpio_iomap_input(uint32 pin, enum gpio_iomap_in_func func_sel);
|
||
int32 gpio_iomap_inout(uint32 pin, enum gpio_iomap_in_func in_func_sel, enum gpio_iomap_out_func out_func_sel);
|
||
int lmac_fem_pin_func(int request);
|
||
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
#endif
|
||
|
||
/*************************** (C) COPYRIGHT 2016-2022 HUGE-IC ***** END OF FILE *****/
|
||
|