Files
TAIXIN/sdk/include/chip/txw82x/io_function.h

661 lines
21 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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