📄 mx27_gpio.h
字号:
#define GPIO_ATAD1_MASK (0x0001FFFC)
#define GPIO_ATAD1_PUEN GPIO_ATAD1_MASK
// ATAD2 (DATA15)
// PF23, PRI function
#define GPIO_ATAD2_PORT GPIO_PORT(F)
#define GPIO_ATAD2_CONFIG_TYPE PRI
#define GPIO_ATAD2_MASK (0x00800000)
#define GPIO_ATAD2_PUEN GPIO_ATAD2_MASK
//SSI1
// PE20-23 PRI
#define GPIO_SSI1_PORT GPIO_PORT(C)
#define GPIO_SSI1_CONFIG_TYPE PRI
#define GPIO_SSI1_MASK (0x00F00000)
#define GPIO_SSI1_PUEN GPIO_SSI1_MASK
// SSI2
// PE24-27 PRI
#define GPIO_SSI2_PORT GPIO_PORT(C)
#define GPIO_SSI2_CONFIG_TYPE PRI
#define GPIO_SSI2_MASK (0x0F000000)
#define GPIO_SSI2_PUEN GPIO_SSI2_MASK
// USB
#define GPIO_USBOTG_E_PORT GPIO_PORT(E)
#define GPIO_USBOTG_E_CONFIG_TYPE PRI
#define GPIO_USBOTG_E_MASK (0x03000007)
#define GPIO_USBOTG_E_PUEN GPIO_USBOTG_E_MASK
#define GPIO_USBOTG_C_PORT GPIO_PORT(C)
#define GPIO_USBOTG_C_CONFIG_TYPE PRI
#define GPIO_USBOTG_C_MASK (0x00003F80)
#define GPIO_USBOTG_C_PUEN GPIO_USBOTG_C_MASK
// USB GPIO_PORT E
#define GPIO_USBOTG_E_PORT GPIO_PORT(E)
#define GPIO_USBOTG_E_CONFIG_TYPE PRI
#define GPIO_USBOTG_E_MASK (0x03000007)
#define GPIO_USBOTG_E_PUEN GPIO_USBOTG_E_MASK
// USB GPIO_PORT C
#define GPIO_USBOTG_C_PORT GPIO_PORT(C)
#define GPIO_USBOTG_C_CONFIG_TYPE PRI
#define GPIO_USBOTG_C_MASK (0x00003F80)
#define GPIO_USBOTG_C_PUEN GPIO_USBOTG_C_MASK
// USB GPIO_PORT B
#define GPIO_USBOTG_B_PORT GPIO_PORT(B)
#define GPIO_USBOTG_B_CONFIG_TYPE PRI
#define GPIO_USBOTG_B_MASK (0x01800000)
#define GPIO_USBOTG_B_PUEN GPIO_USBOTG_B_MASK
// USB GPIO_PORT D
#define GPIO_USBH2_D_PORT GPIO_PORT(D)
#define GPIO_USBH2_D_CONFIG_TYPE ALT
#define GPIO_USBH2_D_MASK (0x05F80000)
#define GPIO_USBH2_D_PUEN GPIO_USBH2_D_MASK
// USB GPIO_PORT A
#define GPIO_USBH2_A_PORT GPIO_PORT(A)
#define GPIO_USBH2_A_CONFIG_TYPE PRI
#define GPIO_USBH2_A_MASK (0x0000001F)
#define GPIO_USBH2_A_PUEN GPIO_USBH2_A_MASK
//eric
#define GPIO_USBF1_B_PORT GPIO_PORT(B)
#define GPIO_USBF1_B_CONFIG_TYPE PRI
#define GPIO_USBF1_B_MASK (0x0FE400000)
#define GPIO_USBF1_B_PUEN GPIO_USBF1_B_MASK
#define GPIO_USBOTG_PWR_B_PORT GPIO_PORT(B)
#define GPIO_USBOTG_PWR_B_CONFIG_TYPE PRI
#define GPIO_USBOTG_PWR_B_MASK (0x01800000) //PB23 as USB_PWR
#define GPIO_USBOTG_PWR_B_PUEN (GPIO_USBOTG_PWR_B_MASK)
////////////////////////////////////////////////////////////////////////////////
// ALT pin configurations
////////////////////////////////////////////////////////////////////////////////
// OWIRE
// PE16, ALT
#define GPIO_OWIRE_PORT GPIO_PORT(E)
#define GPIO_OWIRE_CONFIG_TYPE ALT
#define GPIO_OWIRE_MASK (0x00010000)
#define GPIO_OWIRE_PUEN GPIO_OWIRE_MASK
// CSPI3
// PE18, PE21-23, ALT
#define GPIO_CSPI3_PORT GPIO_PORT(E)
#define GPIO_CSPI3_CONFIG_TYPE ALT
#define GPIO_CSPI3_MASK (0x00E40000)
#define GPIO_CSPI3_PUEN GPIO_CSPI3_MASK
// UART4_ALT
// PB28 ALT
#define GPIO_UART4_ALT_PORT GPIO_PORT(B)
#define GPIO_UART4_ALT_CONFIG_TYPE ALT
#define GPIO_UART4_ALT_MASK (0xb4000000)
#define GPIO_UART4_ALT_PUEN GPIO_UART4_ALT_MASK
// UART4_IR
// PB28, PB31 ALT
#define GPIO_UART4_IR_PORT GPIO_PORT(B)
#define GPIO_UART4_IR_CONFIG_TYPE ALT
#define GPIO_UART4_IR_MASK (0x90000000)
#define GPIO_UART4_IR_PUEN GPIO_UART4_IR_MASK
// UART5
// PB18-21, ALT
#define GPIO_UART5_ALT_PORT GPIO_PORT(B)
#define GPIO_UART5_ALT_CONFIG_TYPE ALT
#define GPIO_UART5_ALT_MASK (0x003c0000)
#define GPIO_UART5_ALT_PUEN GPIO_UART5_ALT_MASK
// UART5_IR
// PB18-21, ALT
#define GPIO_UART5_IR_PORT GPIO_PORT(B)
#define GPIO_UART5_IR_CONFIG_TYPE ALT
#define GPIO_UART5_IR_MASK (0x000c0000)
#define GPIO_UART5_IR_PUEN GPIO_UART5_IR_MASK
// UART6
// PB10-13, ALT
#define GPIO_UART6_ALT_PORT GPIO_PORT(B)
#define GPIO_UART6_ALT_CONFIG_TYPE ALT
#define GPIO_UART6_ALT_MASK (0x00003c00)
#define GPIO_UART6_ALT_PUEN GPIO_UART6_ALT_MASK
// UART6_IR
// PB10-13, ALT
#define GPIO_UART6_IR_PORT GPIO_PORT(B)
#define GPIO_UART6_IR_CONFIG_TYPE ALT
#define GPIO_UART6_IR_MASK (0x00000c00)
#define GPIO_UART6_IR_PUEN GPIO_UART6_IR_MASK
// KPP
// PE6, ALT (KPP_COL6)
// PE7, ALT (KPP_ROW6)
// PE3, ALT (KPP_COL7)
// PE4, ALT (KPP_ROW7)
#define GPIO_KPP_PORT GPIO_PORT(E)
#define GPIO_KPP_CONFIG_TYPE ALT
#define GPIO_KPP_COL6_MASK (0x00000040)
#define GPIO_KPP_ROW6_MASK (0x00000080)
#define GPIO_KPP_COL7_MASK (0x00000008)
#define GPIO_KPP_ROW7_MASK (0x00000010)
#define GPIO_KPP_MASK (GPIO_KPP_COL7_MASK | \
GPIO_KPP_COL6_MASK | \
GPIO_KPP_ROW7_MASK | \
GPIO_KPP_ROW6_MASK)
#define GPIO_KPP_PUEN GPIO_KPP_MASK
// ATAC (CTRL)
// PF7-14, 16-20
#define GPIO_ATAC_PORT GPIO_PORT(F)
#define GPIO_ATAC_CONFIG_TYPE ALT
#define GPIO_ATAC_MASK (0x001f7f80)
#define GPIO_ATAC_PUEN GPIO_ATAC_MASK
//SDHC 3
// PD2-5, ALt (PD2-5 pullup)
#define GPIO_SDHC3_DA_PORT GPIO_PORT(D)
#define GPIO_SDHC3_DA_CONFIG_TYPE ALT
#define GPIO_SDHC3_DA_MASK (0x0000001E)
#define GPIO_SDHC3_DAT0_PIN 2
#define GPIO_SDHC3_DAT0_MASK GPIO_PIN_MASK(GPIO_SDHC3_DAT0_PIN)
#define GPIO_SDHC3_DA_PUEN GPIO_SDHC3_DA_MASK
// FEC (MDIO)
// PD8 Alt
#define GPIO_FECMDIO_PORT GPIO_PORT(D)
#define GPIO_FECMDIO_CONFIG_TYPE ALT
#define GPIO_FECMDIO_MASK (0x00000100)
#define GPIO_FECMDIO_PUEN 0x0
//SDHC 3
// PD 0,1 (PD 0 pullup, PD 1 pull low)
#define GPIO_SDHC3_PORT GPIO_PORT(D)
#define GPIO_SDHC3_CONFIG_TYPE PRI
#define GPIO_SDHC3_MASK (0x00000003)
#define GPIO_SDHC3_PUEN GPIO_SDHC3_MASK
//PMIC
#define GPIO_PMIC_PORT GPIO_PORT(C)
////////////////////////////////////////////////////////////////////////////////
// module GPIO pin configurations
////////////////////////////////////////////////////////////////////////////////
// UART4_REDIRECT
// PB29, PB31 Input, A_OUT, Pull Up
// PB30 Output, C_IN, Pull Up
#define GPIO_UART4_REDIRECT_PORT GPIO_PORT(B)
#define GPIO_UART4_REDIRECT_CONFIG_TYPE MODULEIO
#define GPIO_UART4_REDIRECT_IN_MASK (0xA0000000) // PB29,31
#define GPIO_UART4_REDIRECT_IN_DEST GPIO_INPUT_DEST(AOUT)
#define GPIO_UART4_REDIRECT_OUT_MASK (0x40000000) // PB30
#define GPIO_UART4_REDIRECT_OUT_SOURCE GPIO_OUTPUT_SOURCE(CIN)
#define GPIO_UART4_REDIRECT_PUEN (GPIO_UART4_REDIRECT_IN_MASK | \
GPIO_UART4_REDIRECT_OUT_MASK)
// SLCDC
// //PA6-PA21, 25, 26, 27 AIN function
#define GPIO_SLCDC_PORT GPIO_PORT(A)
#define GPIO_SLCDC_CONFIG_TYPE MODULEIO
#define GPIO_SLCDC_IN_MASK (0x00800000) // not used
#define GPIO_SLCDC_IN_DEST GPIO_INPUT_DEST(AOUT)
#define GPIO_SLCDC_OUT_MASK (0x0F7FFFC0) //PA6-PA21, 25, 26, 27 AIN function
#define GPIO_SLCDC_OUT_SOURCE GPIO_OUTPUT_SOURCE(AIN)
#define GPIO_SLCDC_PUEN (GPIO_SLCDC_IN_MASK | \
GPIO_SLCDC_OUT_MASK)
// FEC
// PD4-7, PD10-15 Input A-out except PD5, others pull-up enable
// PD0-3, PD9, PD16 Output AIN except PD16, others pull-up enable
#define GPIO_FEC_PORT GPIO_PORT(D)
#define GPIO_FEC_CONFIG_TYPE MODULEIO
#define GPIO_FEC_IN_MASK (0x0000FCF0)
#define GPIO_FEC_IN_DEST GPIO_INPUT_DEST(AOUT)
#define GPIO_FEC_OUT_MASK (0x0001020F)
#define GPIO_FEC_OUT_SOURCE GPIO_OUTPUT_SOURCE(AIN)
#define GPIO_FEC_PUEN (0x0000FFDF)
// FEC (FEC_TX_EN)
// PF23 Output AIN
#define GPIO_FECTXEN_PORT GPIO_PORT(F)
#define GPIO_FECTXEN_CONFIG_TYPE MODULEIO
#define GPIO_FECTXEN_IN_MASK (0x0)
#define GPIO_FECTXEN_IN_DEST GPIO_INPUT_DEST(MAX)
#define GPIO_FECTXEN_OUT_MASK (0x00800000)
#define GPIO_FECTXEN_OUT_SOURCE GPIO_OUTPUT_SOURCE(AIN)
#define GPIO_FECTXEN_PUEN (0x0)
// SLCDCBKL
// PA30, DATA function
#define GPIO_SLCDCBKL_PORT GPIO_PORT(A)
#define GPIO_SLCDCBKL_CONFIG_TYPE IO
#define GPIO_SLCDCBKL_IN_MASK (0x0)
#define GPIO_SLCDCBKL_IN_DEST GPIO_INPUT_DEST(MAX)
#define GPIO_SLCDCBKL_OUT_MASK (0x40000000) // PA30
#define GPIO_SLCDCBKL_OUT_SOURCE GPIO_OUTPUT_SOURCE(DATA)
#define GPIO_SLCDCBKL_PUEN (GPIO_SLCDCBKL_IN_MASK | \
GPIO_SLCDCBKL_OUT_MASK)
// SLCDCRESET
// PA30, DATA function
#define GPIO_SLCDCRESET_PORT GPIO_PORT(A)
#define GPIO_SLCDCRESET_CONFIG_TYPE IO
#define GPIO_SLCDCRESET_IN_MASK (0x0)
#define GPIO_SLCDCRESET_IN_DEST GPIO_INPUT_DEST(MAX)
#define GPIO_SLCDCRESET_OUT_MASK (0x80000000) // PA31
#define GPIO_SLCDCRESET_OUT_SOURCE GPIO_OUTPUT_SOURCE(DATA)
#define GPIO_SLCDCRESET_PUEN (GPIO_SLCDCRESET_IN_MASK | \
GPIO_SLCDCRESET_OUT_MASK)
// SLCDCCS
// PA30, DATA function
#define GPIO_SLCDCCS_PORT GPIO_PORT(A)
#define GPIO_SLCDCCS_CONFIG_TYPE IO
#define GPIO_SLCDCCS_IN_MASK (0x0)
#define GPIO_SLCDCCS_IN_DEST GPIO_INPUT_DEST(MAX)
#define GPIO_SLCDCCS_OUT_MASK (0x00800000) // PA23
#define GPIO_SLCDCCS_OUT_SOURCE GPIO_OUTPUT_SOURCE(DATA)
#define GPIO_SLCDCCS_PUEN (GPIO_SLCDCCS_IN_MASK | \
GPIO_SLCDCCS_OUT_MASK)
// CSI
// PB10-21, PRI
#define GPIO_CSI_PORT GPIO_PORT(B)
#define GPIO_CSI_CONFIG_TYPE PRI
#define GPIO_CSI_MASK (0x003FFC00)
#define GPIO_CSI_PUEN GPIO_CSI_MASK
//------------------------------------------------------------------------------
// WARNING: Do not change codes between these comments!!
//------------------------------------------------------------------------------
#define GPIOSetCfgPRI(config, module) \
do { \
config.ConfigType = GPIO_CONFIG_TYPE(PRI); \
config.PriConfig.Port = GPIOValuePort(module); \
config.PriConfig.PinMap = GPIOValueMask(module); \
config.PriConfig.PuenMap = GPIOValuePuen(module); \
} while(0)
#define GPIOSetCfgALT(config, module) \
do { \
config.ConfigType = GPIO_CONFIG_TYPE(ALT); \
config.AltConfig.Port = GPIOValuePort(module); \
config.AltConfig.PinMap = GPIOValueMask(module); \
config.AltConfig.PuenMap = GPIOValuePuen(module); \
} while(0)
#define GPIOSetCfgMODULEIO(config, module) \
do { \
config.ConfigType = GPIO_CONFIG_TYPE(MODULEIO); \
config.ModuleIOConfig.Port = GPIOValuePort(module); \
config.ModuleIOConfig.InputPinMap = GPIOValueInMask(module); \
config.ModuleIOConfig.InputDest = GPIOValueInDest(module); \
config.ModuleIOConfig.OutputPinMap = GPIOValueOutMask(module); \
config.ModuleIOConfig.OutputSource = GPIOValueOutSource(module); \
config.ModuleIOConfig.PuenMap = GPIOValuePuen(module); \
} while(0)
#define GPIOSetCfgINT(config, module) \
do { \
config.ConfigType = GPIO_CONFIG_TYPE(INT); \
config.IntrConfig.Port = GPIOValuePort(module); \
config.IntrConfig.PinMap = GPIOValueMask(module); \
config.IntrConfig.IntType = GPIOValueIntType(module); \
} while(0)
#define GPIOSetCfgIO(config, module) \
do { \
config.ConfigType = GPIO_CONFIG_TYPE(IO); \
config.IOConfig.Port = GPIOValuePort(module); \
config.IOConfig.InputPinMap = GPIOValueInMask(module); \
config.IOConfig.OutputPinMap = GPIOValueOutMask(module); \
config.IOConfig.PuenMap = GPIOValuePuen(module); \
} while(0)
#define GPIOCat(x, y) x##y
#define GPIOCat2(x, y) x##y
#define GPIOValueMacro(x) x
#define GPIOCatMacro(module, macro) GPIOCat(GPIOValueMacro, (GPIOCat2(module, macro)))
#define GPIOValueCfgType(module) GPIOCatMacro(GPIOCat(GPIO_, module), _CONFIG_TYPE)
#define GPIOValuePort(module) GPIOCatMacro(GPIOCat(GPIO_, module), _PORT)
#define GPIOValueMask(module) GPIOCatMacro(GPIOCat(GPIO_, module), _MASK)
#define GPIOValuePuen(module) GPIOCatMacro(GPIOCat(GPIO_, module), _PUEN)
#define GPIOValueInMask(module) GPIOCatMacro(GPIOCat(GPIO_, module), _IN_MASK)
#define GPIOValueOutMask(module) GPIOCatMacro(GPIOCat(GPIO_, module), _OUT_MASK)
#define GPIOValueInDest(module) GPIOCatMacro(GPIOCat(GPIO_, module), _IN_DEST)
#define GPIOValueOutSource(module) GPIOCatMacro(GPIOCat(GPIO_, module), _OUT_SOURCE)
#define GPIOValueIntType(module) GPIOCatMacro(GPIOCat(GPIO_, module), _INT_TYPE)
#define GPIOSetCfg3(x, y, z) GPIOCat2(GPIOCat(GPIOSetCfg, x), (y, z))
#define GPIOSetCfg2(x, y, z) GPIOSetCfg3(x, y, z)
//------------------------------------------------------------------------------
// WARNING: Do not change codes between these comments!!
//------------------------------------------------------------------------------
#ifdef __cplusplus
}
#endif
#endif // __MX27_GPIO_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -