
#include "type.h"
#include "memmap.h"


#define SWAPCR	IOCTRL_BASE_ADDR+0x1C


#define OUTPUT			1
#define INPUT			0

#define PULL_UP		1
#define PULL_DOWN		0

#define HIGH			1
#define LOW				0

#define GPIO_PIN0  0
#define GPIO_PIN1  1
#define GPIO_PIN2  2
#define GPIO_PIN3  3
#define GPIO_PIN4  4
#define GPIO_PIN5  5
#define GPIO_PIN6  6
#define GPIO_PIN7  7

	/*GPIO1*/
#define GPIO_PIN8  8
#define GPIO_PIN9  9
#define GPIO_PIN10 10
#define GPIO_PIN11 11
#define GPIO_PIN12 12
#define GPIO_PIN13 13
#define GPIO_PIN14 14
#define GPIO_PIN15 15
	
	/*GPIO2*/
#define GPIO_PIN16 16
#define GPIO_PIN17 17
#define GPIO_PIN18 18
#define GPIO_PIN19 19
#define GPIO_PIN20 20
#define GPIO_PIN21 21
#define GPIO_PIN22 22
#define GPIO_PIN23 23
	
	/*GPIO3*/
#define GPIO_PIN24 24
#define GPIO_PIN25 25
#define GPIO_PIN26 26
#define GPIO_PIN27 27
#define GPIO_PIN28 28
#define GPIO_PIN29 29
#define GPIO_PIN30 30
#define GPIO_PIN31 31
	
	/*GPIO4*/
#define GPIO_PIN32 32
#define GPIO_PIN33 33
#define GPIO_PIN34 34
#define GPIO_PIN35 35
#define GPIO_PIN36 36
#define GPIO_PIN37 37
#define GPIO_PIN38 38
#define GPIO_PIN39 39


extern void GPIOPin_Init(u8 pinx, bool dir,u8 pull);

extern void GPIOPort_Init(u8 portx, u8 dir, u8 pull);

extern bool GPIOPin_Read(u8 pinx);

extern void GPIOPin_Write(u8 pinx, bool state);

extern u8 GPIOPort_Read(u8 portx);

extern void GPIOPort_Write(u8 portx, u8 state);

extern void GINTPin_Init(u8 pinx, u8 triggerMode,bool intEnable);

