www.pudn.com > GPIO.rar > gpio.h


/****************************************Copyright (c)************************************************** 
**                               Guangzhou ZHIYUAN electronics Co.,LTD. 
**                                      
**                                 http://www.zyinside.com 
** 
**--------------File Info------------------------------------------------------------------------------- 
** File Name: 				gpio.h 
** Last modified Date: 		2006-10-09 
** Last Version:			V1.0		 
** Description: 			S3C2410 GPIO 驱动头文件 
**                           
**------------------------------------------------------------------------------------------------------ 
** Created By: 				MingYuan Zheng 郑明远 
** Created date: 			2006-10-09 
** Version: 				V1.0 
** Descriptions:			The original version 
** 
**------------------------------------------------------------------------------------------------------ 
** Modified by: 
** Modified date: 
** Version: 
** Description: 
** 
********************************************************************************************************/ 
 
#ifndef __GPIO_H__ 
#define __GPIO_H__ 
 
#ifdef __cplusplus 
extern "C" { 
#endif 
 
 
 
#define  GPIO_A	 	0x00 
#define  GPIO_B	 	0x01 
#define  GPIO_C	 	0x02 
#define  GPIO_D	 	0x03 
#define  GPIO_E	 	0x04 
#define  GPIO_F	 	0x05 
#define  GPIO_G	 	0x06 
#define  GPIO_H 	0x07 
#define  GPIO_J		0x0D 
 
 
 
/* config GPx pin out */ 
			 
 
#define	 IOCTL_GPIO_FUN_MASK				0x00000F0 
#define	 IOCTL_GPX_MASK					0x000000F 
 
#define  IOCTL_GPIO_SET_PIN_OUT				0x0000010			/* pin out  */ 
#define  IOCTL_GPA_SET_PIN_OUT				0x0000010			/* pin out  */ 
#define  IOCTL_GPB_SET_PIN_OUT				0x0000011			/* pin out  */ 
#define  IOCTL_GPC_SET_PIN_OUT				0x0000012			/* pin out  */ 
#define  IOCTL_GPD_SET_PIN_OUT				0x0000013			/* pin out  */ 
#define  IOCTL_GPE_SET_PIN_OUT				0x0000014			/* pin out  */ 
#define  IOCTL_GPF_SET_PIN_OUT				0x0000015			/* pin out  */ 
#define  IOCTL_GPG_SET_PIN_OUT				0x0000016			/* pin out  */ 
#define  IOCTL_GPH_SET_PIN_OUT				0x0000017			/* pin out  */ 
 
#define  IOCTL_GPJ_SET_PIN_OUT				0x000001D			/* pin out  */ 
 
/* set GPx's multi pin's out */ 
/* one bit is 1, the pin is out */ 
/* one bit is 0, the pin don't change */ 
#define  IOCTL_GPIO_SET_MULTI_PIN_OUT		0x0000020 
#define  IOCTL_GPA_SET_MULTI_PIN_OUT		0x0000020			 
#define  IOCTL_GPB_SET_MULTI_PIN_OUT		0x0000021			 
#define  IOCTL_GPC_SET_MULTI_PIN_OUT		0x0000022			 
#define  IOCTL_GPD_SET_MULTI_PIN_OUT		0x0000023			 
#define  IOCTL_GPE_SET_MULTI_PIN_OUT		0x0000024			 
#define  IOCTL_GPF_SET_MULTI_PIN_OUT		0x0000025			 
#define  IOCTL_GPG_SET_MULTI_PIN_OUT		0x0000026			 
#define  IOCTL_GPH_SET_MULTI_PIN_OUT		0x0000027 
 
#define  IOCTL_GPJ_SET_MULTI_PIN_OUT		0x000002D 
 
/* config pin in   */ 
#define  IOCTL_GPIO_SET_PIN_IN				0x0000030	 
#define  IOCTL_GPA_SET_PIN_IN				0x0000030 
#define  IOCTL_GPB_SET_PIN_IN				0x0000031 
#define  IOCTL_GPC_SET_PIN_IN				0x0000032 
#define  IOCTL_GPD_SET_PIN_IN				0x0000033 
#define  IOCTL_GPE_SET_PIN_IN				0x0000034 
#define  IOCTL_GPF_SET_PIN_IN				0x0000035 
#define  IOCTL_GPG_SET_PIN_IN				0x0000036 
#define  IOCTL_GPH_SET_PIN_IN				0x0000037 
 
#define  IOCTL_GPJ_SET_PIN_IN				0x000003D 
 
/* set GPx's multi pin's in */ 
/* one bit is 1, the pin is in */ 
/* one bit is 0, the pin don't change */ 
#define  IOCTL_GPIO_SET_MULTI_PIN_IN			0x0000040 
#define  IOCTL_GPA_SET_MULTI_PIN_IN			0x0000040	 
#define  IOCTL_GPB_SET_MULTI_PIN_IN			0x0000041 
#define  IOCTL_GPC_SET_MULTI_PIN_IN			0x0000042 
#define  IOCTL_GPD_SET_MULTI_PIN_IN			0x0000043 
#define  IOCTL_GPE_SET_MULTI_PIN_IN			0x0000044 
#define  IOCTL_GPF_SET_MULTI_PIN_IN			0x0000045 
#define  IOCTL_GPG_SET_MULTI_PIN_IN			0x0000046 
#define  IOCTL_GPH_SET_MULTI_PIN_IN			0x0000047 
 
#define  IOCTL_GPJ_SET_MULTI_PIN_IN			0x000004D 
 
 
/* set pin high */ 
#define  IOCTL_GPIO_SET_PIN					0x0000050 
#define  IOCTL_GPA_SET_PIN					0x0000050 
#define  IOCTL_GPB_SET_PIN					0x0000051 
#define  IOCTL_GPC_SET_PIN					0x0000052 
#define  IOCTL_GPD_SET_PIN					0x0000053 
#define  IOCTL_GPE_SET_PIN					0x0000054 
#define  IOCTL_GPF_SET_PIN					0x0000055 
#define  IOCTL_GPG_SET_PIN					0x0000056 
#define  IOCTL_GPH_SET_PIN					0x0000057 
 
#define  IOCTL_GPJ_SET_PIN					0x000005D 
	 
 
/* set GPx's MULTI pins */ 
/* one bit is 1, the pin is high */ 
/* one bit is 0, the pin don't change */ 
#define  IOCTL_GPIO_SET_MULTI_PIN			0x0000060			 
#define  IOCTL_GPA_SET_MULTI_PIN			0x0000060	 
#define  IOCTL_GPB_SET_MULTI_PIN			0x0000061		 
#define  IOCTL_GPC_SET_MULTI_PIN			0x0000062	 
#define  IOCTL_GPD_SET_MULTI_PIN			0x0000063	 
#define  IOCTL_GPE_SET_MULTI_PIN			0x0000064	 
#define  IOCTL_GPF_SET_MULTI_PIN			0x0000065	 
#define  IOCTL_GPG_SET_MULTI_PIN			0x0000066	 
#define  IOCTL_GPH_SET_MULTI_PIN			0x0000067	 
 
#define  IOCTL_GPJ_SET_MULTI_PIN			0x000006D 
/* set pin low   */ 
#define  IOCTL_GPIO_CLR_PIN					0x0000070 
#define  IOCTL_GPA_CLR_PIN					0x0000070	 
#define  IOCTL_GPB_CLR_PIN					0x0000071 
#define  IOCTL_GPC_CLR_PIN					0x0000072 
#define  IOCTL_GPD_CLR_PIN					0x0000073 
#define  IOCTL_GPE_CLR_PIN					0x0000074 
#define  IOCTL_GPF_CLR_PIN					0x0000075 
#define  IOCTL_GPG_CLR_PIN					0x0000076 
#define  IOCTL_GPH_CLR_PIN					0x0000077 
 
#define  IOCTL_GPJ_CLR_PIN					0x000007D 
/* clr GPx's all pins */ 
/* one bit is 1, the pin is low */ 
/* one bit is 0, the pin don't change */ 
#define  IOCTL_GPIO_CLR_MULTI_PIN				0x0000080			 
#define  IOCTL_GPA_CLR_MULTI_PIN				0x0000080	 
#define  IOCTL_GPB_CLR_MULTI_PIN				0x0000081	 
#define  IOCTL_GPC_CLR_MULTI_PIN				0x0000082	 
#define  IOCTL_GPD_CLR_MULTI_PIN				0x0000083 
#define  IOCTL_GPE_CLR_MULTI_PIN				0x0000084 
#define  IOCTL_GPF_CLR_MULTI_PIN				0x0000085	 
#define  IOCTL_GPG_CLR_MULTI_PIN				0x0000086	 
#define  IOCTL_GPH_CLR_MULTI_PIN				0x0000087 
 
#define  IOCTL_GPJ_CLR_MULTI_PIN				0x000008D 
	                                                                 
                                                                 
/* read pin's voltage level status */ 
#define  IOCTL_GPIO_READ_PIN					0x0000090	 
#define  IOCTL_GPA_READ_PIN					0x0000090 
#define  IOCTL_GPB_READ_PIN					0x0000091 
#define  IOCTL_GPC_READ_PIN					0x0000092 
#define  IOCTL_GPD_READ_PIN					0x0000093 
#define  IOCTL_GPE_READ_PIN					0x0000094 
#define  IOCTL_GPF_READ_PIN					0x0000095 
#define  IOCTL_GPG_READ_PIN					0x0000096 
#define  IOCTL_GPH_READ_PIN					0x0000097 
 
#define  IOCTL_GPJ_READ_PIN					0x000009D 
 
 
 
/* read GPx's all pin's set */				 
#define  IOCTL_GPIO_READ_ALL_PIN			0x00000A0			 
#define  IOCTL_GPA_READ_ALL_PIN				0x00000A0 
#define  IOCTL_GPB_READ_ALL_PIN				0x00000A1 
#define  IOCTL_GPC_READ_ALL_PIN				0x00000A2 
#define  IOCTL_GPD_READ_ALL_PIN				0x00000A3 
#define  IOCTL_GPE_READ_ALL_PIN				0x00000A4 
#define  IOCTL_GPF_READ_ALL_PIN				0x00000A5 
#define  IOCTL_GPG_READ_ALL_PIN				0x00000A6 
#define  IOCTL_GPH_READ_ALL_PIN				0x00000A7 
 
#define  IOCTL_GPJ_READ_ALL_PIN				0x00000AD 
 
 
 
/* enable GPx pin pull-up */ 
#define  IOCTL_GPIO_EN_PULLUP				0x00000B0	 
#define  IOCTL_GPA_EN_PULLUP				0x00000B0 
#define  IOCTL_GPB_EN_PULLUP				0x00000B1 
#define  IOCTL_GPC_EN_PULLUP				0x00000B2 
#define  IOCTL_GPD_EN_PULLUP				0x00000B3 
#define  IOCTL_GPE_EN_PULLUP				0x00000B4 
#define  IOCTL_GPF_EN_PULLUP				0x00000B5 
#define  IOCTL_GPG_EN_PULLUP				0x00000B6 
#define  IOCTL_GPH_EN_PULLUP				0x00000B7 
 
#define  IOCTL_GPJ_EN_PULLUP				0x00000BD 
 
/* enable GPx pin pull-up */ 
#define  IOCTL_GPIO_EN_MULTI_PIN_PULLUP		0x00000C0	 
#define  IOCTL_GPA_EN_MULTI_PIN_PULLUP		0x00000C0 
#define  IOCTL_GPB_EN_MULTI_PIN_PULLUP		0x00000C1 
#define  IOCTL_GPC_EN_MULTI_PIN_PULLUP		0x00000C2 
#define  IOCTL_GPD_EN_MULTI_PIN_PULLUP		0x00000C3 
#define  IOCTL_GPE_EN_MULTI_PIN_PULLUP		0x00000C4 
#define  IOCTL_GPF_EN_MULTI_PIN_PULLUP		0x00000C5 
#define  IOCTL_GPG_EN_MULTI_PIN_PULLUP		0x00000C6 
#define  IOCTL_GPH_EN_MULTI_PIN_PULLUP		0x00000C7 
 
#define  IOCTL_GPJ_EN_MULTI_PIN_PULLUP		0x00000CD 
 
 
/* disable GPx pin pull-up */ 
#define  IOCTL_GPIO_DIS_PULLUP				0x00000D0	 
#define  IOCTL_GPA_DIS_PULLUP				0x00000D0 
#define  IOCTL_GPB_DIS_PULLUP				0x00000D1 
#define  IOCTL_GPC_DIS_PULLUP				0x00000D2 
#define  IOCTL_GPD_DIS_PULLUP				0x00000D3 
#define  IOCTL_GPE_DIS_PULLUP				0x00000D4 
#define  IOCTL_GPF_DIS_PULLUP				0x00000D5 
#define  IOCTL_GPG_DIS_PULLUP				0x00000D6 
#define  IOCTL_GPH_DIS_PULLUP				0x00000D7 
 
#define  IOCTL_GPJ_DIS_PULLUP				0x00000DD 
 
/* disable GPx pin pull-up */ 
#define  IOCTL_GPIO_DIS_MULTI_PIN_PULLUP	0x00000E0	 
#define  IOCTL_GPA_DIS_MULTI_PIN_PULLUP		0x00000E0 
#define  IOCTL_GPB_DIS_MULTI_PIN_PULLUP		0x00000E1 
#define  IOCTL_GPC_DIS_MULTI_PIN_PULLUP		0x00000E2 
#define  IOCTL_GPD_DIS_MULTI_PIN_PULLUP		0x00000E3 
#define  IOCTL_GPE_DIS_MULTI_PIN_PULLUP		0x00000E4 
#define  IOCTL_GPF_DIS_MULTI_PIN_PULLUP		0x00000E5 
#define  IOCTL_GPG_DIS_MULTI_PIN_PULLUP		0x00000E6 
#define  IOCTL_GPH_DIS_MULTI_PIN_PULLUP		0x00000E7 
 
#define  IOCTL_GPJ_DIS_MULTI_PIN_PULLUP		0x00000ED 
 
 
 
/* read port's setting */ 
#define  IOCTL_GPIO_READ_PORT				0x00000F0			 
#define  IOCTL_GPA_READ_PORT				0x00000F0			 
#define  IOCTL_GPB_READ_PORT				0x00000F1			 
#define  IOCTL_GPC_READ_PORT				0x00000F2			 
#define  IOCTL_GPD_READ_PORT				0x00000F3			 
#define  IOCTL_GPE_READ_PORT				0x00000F4			 
#define  IOCTL_GPF_READ_PORT				0x00000F5			 
#define  IOCTL_GPG_READ_PORT				0x00000F6			 
#define  IOCTL_GPH_READ_PORT				0x00000F7 
 
#define  IOCTL_GPJ_READ_PORT				0x00000FD 
				 
 
#ifdef __cplusplus 
} 
#endif 
 
#endif // __GPIO_H__