📄 ixp425gpio.h
字号:
/* ixp425Gpio.h - Intel IXP425 GPIO header file *//* Copyright 2002 Wind River Systems, Inc. *//*modification history--------------------01a,05jun02,jb initial version...*/#ifndef __INCixp425Gpioh #define __INCixp425Gpioh#include "ixp425.h"#ifdef __cplusplusextern "C" {#endif#define IXP425_GPIO_PIN_MAX 15 /* 16 pins (incl. 0) *//* GPIO pin mappings */#define IXP425_GPIO_PIN_16 16#define IXP425_GPIO_PIN_15 15#define IXP425_GPIO_PIN_14 14#define IXP425_GPIO_PIN_13 13#define IXP425_GPIO_PIN_12 12#define IXP425_GPIO_PIN_11 11#define IXP425_GPIO_PIN_10 10#define IXP425_GPIO_PIN_9 9#define IXP425_GPIO_PIN_8 8#define IXP425_GPIO_PIN_7 7#define IXP425_GPIO_PIN_6 6#define IXP425_GPIO_PIN_5 5#define IXP425_GPIO_PIN_4 4#define IXP425_GPIO_PIN_3 3#define IXP425_GPIO_PIN_2 2#define IXP425_GPIO_PIN_1 1#define IXP425_GPIO_PIN_0 0/* * All pins are configured as inputs by default with the exception of pin 15 * which is configured to be a clock source. */#ifndef IXP425_GPIO_GPOER_DEF#define IXP425_GPIO_GPOER_DEF (0x7FFF)#endif/* * Default value to set pins at. */#ifndef IXP425_GPIO_GPOUTR_DEF#define IXP425_GPIO_GPOUTR_DEF (0x0)#endif/* * Pin 15 is clock source at 33MHZ by default. */#ifndef IXP425_GPIO_GPCLKR_DEF#define IXP425_GPIO_GPCLKR_DEF (0x01100000)#endif/* Interrupts are active low by default */#ifndef IXP425_GPIO_GPIT1R_DEF#define IXP425_GPIO_GPIT1R_DEF (0x0)#endif#ifndef IXP425_GPIO_GPIT2R_DEF#define IXP425_GPIO_GPIT2R_DEF (0x0)#endif/* * Macros used by ixp425GPIOLineGet() and ixp425GPIOLineSet() to get and * set pin values. They may be used by client software for the purposes * of speed but it is recommended that the API functions be used as * they provide error checking. */#define IXP425_GPIO_LINE_GET(pin) \(((*(volatile UINT32 *) IXP425_GPIO_GPINR) >> (pin)) & 0x1)#define IXP425_GPIO_LINE_SET(pin) \ (*(volatile UINT32 *) IXP425_GPIO_GPOUTR) |= (0x1 << (pin));#define IXP425_GPIO_LINE_CLEAR(pin) \ (*(volatile UINT32 *) IXP425_GPIO_GPOUTR) &= ~(0x1 << (pin));/* GPIO pin types */#define IXP425_GPIO_OUT (0x1)#define IXP425_GPIO_IN (0x2) /* GPIO signal types */typedef enum _IXP425_GPIO_SIG{ IXP425_GPIO_LOW =0, IXP425_GPIO_HIGH} IXP425_GPIO_SIG;/* GPIO interrupt types */#define IXP425_GPIO_ACTIVE_HIGH (0x4) /* Default */#define IXP425_GPIO_ACTIVE_LOW (0x8) #define IXP425_GPIO_RISING_EDGE (0x10)#define IXP425_GPIO_FALLING_EDGE (0x20)#define IXP425_GPIO_TRANSITIONAL (0x40)/* GPIO Clocks */typedef enum _IXP425_GPIO_CLK_NO{ IXP425_GPIO_CLK_0 = 14, IXP425_GPIO_CLK_1 = 15} IXP425_GPIO_CLK_NO;/* * GPIO clock frequencies. These correspond to fractions of the * 66 MHz APB clock. */typedef enum _IXP425_GPIO_CLK_FREQ{ IXP425_GPIO_33_MHZ = 0x1, /* Default */ IXP425_GPIO_22_MHZ = 0x2, IXP425_GPIO_16_5_MHZ = 0x3, IXP425_GPIO_13_2_MHZ = 0x4, IXP425_GPIO_11_MHZ = 0x5, IXP425_GPIO_9_4_MHZ = 0x6, IXP425_GPIO_8_3_MHZ = 0x7, IXP425_GPIO_7_3_MHZ = 0x8, IXP425_GPIO_6_6_MHZ = 0x9, IXP425_GPIO_6_MHZ = 0xA, IXP425_GPIO_5_5_MHZ = 0xB, IXP425_GPIO_5_1_MHZ = 0xC, IXP425_GPIO_4_7_MHZ = 0xD, IXP425_GPIO_4_4_MHZ = 0xF} IXP425_GPIO_CLK_FREQ;#define IXP425_GPIO_DEBUG_NPEA (0x0)#define IXP425_GPIO_DEBUG_NPEB (0x1)#define IXP425_GPIO_DEBUG_NPEC (0x2)#ifdef IXP425_GPIO_CODE_REENTRANT #define IXP425_GPIO_INTLOCK(key) #define IXP425_GPIO_INTUNLOCK(key) #define IXP425_GPIO_KEYDECLARE#else #define IXP425_GPIO_INTLOCK(key) (key = intLock()) #define IXP425_GPIO_INTUNLOCK(key) (intUnlock(key)) #define IXP425_GPIO_KEYDECLARE int intKey#endif /* IXP425_CODE_REENTRANT *//* Function Declarations */void ixp425GPIOReset (void);STATUS ixp425GPIOLineConfig (UINT8 lineNo, UINT32 style);STATUS ixp425GPIOLineSet (UINT8 lineNo, IXP425_GPIO_SIG value);STATUS ixp425GPIOLineGet (UINT8 lineNo, IXP425_GPIO_SIG *value);STATUS ixp425GPIOIntStatusGet (UINT8 lineNo, BOOL *status);STATUS ixp425GPIOIntStatusClear (UINT8 lineNo);STATUS ixp425GPIOClockSet (IXP425_GPIO_CLK_NO clock, IXP425_GPIO_CLK_FREQ freq);STATUS ixp425GPIOClockEnable (IXP425_GPIO_CLK_NO clock, BOOL state);void ixp425GPIOShow (void);#ifdef IXP425_GPIO_NPEDEBUGSTATUS ixp425GPIONPEDebugEnable (UINT32 npe, BOOL state);#endif /* IXP425_GPIO_NPEDEBUG */#ifdef __cplusplus}#endif#endif /* __INCixp425Gpioh */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -