⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mx27_gpio.h

📁 Microsoft WinCE 6.0 BSP FINAL release source code for use with the i.MX27ADS TO2 WCE600_FINAL_MX27_S
💻 H
📖 第 1 页 / 共 2 页
字号:
#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 + -