00001
00006
00007
00008 #ifndef __XINU_GPIO_H__
00009 #define __XINU_GPIO_H__
00010
00011 #define GPIO_BASE 0xb8000060
00012
00013
00014 struct gpio_csreg
00015 {
00016 volatile unsigned long input;
00017 volatile unsigned long output;
00018 volatile unsigned long enable;
00019 volatile unsigned long control;
00020 };
00021
00022
00023
00024 #define GPIO_DIR_IN 0x00
00025 #define GPIO_DIR_OUT 0x01
00027
00028 #define GPIO0 0x01
00029 #define GPIO1 0x02
00030 #define GPIO2 0x04
00031 #define GPIO3 0x08
00032 #define GPIO4 0x10
00033 #define GPIO5 0x20
00034 #define GPIO6 0x40
00035 #define GPIO7 0x80
00036
00037 #define GPIO_PIN_COUNT 8
00038
00039
00040 #define GPIO_LED_WLAN GPIO0
00041 #define GPIO_LED_POWER GPIO1
00042 #define GPIO_LED_CISCOWHT GPIO2
00043 #define GPIO_LED_CISCOONG GPIO3
00044 #define GPIO_LED_DMZ GPIO7
00046
00047 #define GPIO_CTRL_LED_ON(n) ((struct gpio_csreg *)GPIO_BASE)->enable |= n; \
00048 ((struct gpio_csreg *)GPIO_BASE)->output &= ~n
00049
00050 #define GPIO_CTRL_LED_OFF(n) ((struct gpio_csreg *)GPIO_BASE)->enable &= ~n
00051
00052
00053 #define GPIO_BUT_CISCO GPIO4
00054 #define GPIO_BUT_RESET GPIO6
00056 #endif