#ifndef __ADM5120GPIO_H__
#define __ADM5120GPIO_H__

/* IO Address base and length */
#define GPIO_IO_BASE	((unsigned long)0xb20000b8)
#define GPIO_IO_LEN	0x1

/* Major character device number */
#define GPIO_DEV_MAJOR	167

/* Various I/O ports used by the driver */
#define GPIO_IO_CONF0	(*(unsigned long*)0xb20000b8)
#define SW_PORT0_LED	(*(unsigned long*)0xb2000100)
#define SW_PORT1_LED	(*(unsigned long*)0xb2000104)
#define SW_PORT2_LED	(*(unsigned long*)0xb2000108)
#define SW_PORT3_LED	(*(unsigned long*)0xb200010C)
#define SW_PORT4_LED	(*(unsigned long*)0xb2000110)

/* Number of devices */
#define GPIO_NUM_DEV	18 //8 GPIO + 2*5 SW LED

/* GPIO modes */
#define GPIO_MODE_INPUT    0
#define GPIO_MODE_OUTPUT   1
#define SW_MODE_DEFAULT    2

/* SWITCH PORTx_LED */
#define SW_LED_GPIO_IN           0x00
#define SW_LED_GPIO_OUTPUT_FLASH 0x01
#define SW_LED_GPIO_OUTPUT_1     0x02
#define SW_LED_GPIO_OUTPUT_0     0x03
#define SW_LED_LINK              0x04
#define SW_LED_SPEED             0x05
#define SW_LED_DUPLEX            0x06
#define SW_LED_ACTIVITY          0x07
#define SW_LED_COLLISION         0x08
#define SW_LED_LINK_ACT          0x09
#define SW_LED_DUPLEX_COL        0x10
#define SW_LED_10M_ACT           0x11
#define SW_LED_100M_ACT          0x12

/* Private IOCTLs */
#define SIOCDEVSGPIOMODE	SIOCDEVPRIVATE
#define SIOCDEVGGPIOMODE	SIOCDEVPRIVATE+1

#endif /* __ADM5120GPIO_H__ */

