From 231e4158574481a02417c5f5289566768e234dc1 Mon Sep 17 00:00:00 2001 From: Kyungmin Park Date: Wed, 22 Jul 2009 09:26:51 +0900 Subject: [PATCH] s5pc1xx: Update GPIO definition Signed-off-by: Kyungmin Park --- board/samsung/universal/lowlevel_init.S | 52 ++- board/samsung/universal/universal.c | 3 +- drivers/i2c/s5pc1xx_i2c.c | 4 +- include/asm-arm/arch-s5pc100/cpu.h | 2 +- include/asm-arm/arch-s5pc100/gpio.h | 659 +++++--------------------------- 5 files changed, 130 insertions(+), 590 deletions(-) diff --git a/board/samsung/universal/lowlevel_init.S b/board/samsung/universal/lowlevel_init.S index e64380f..3f22fc9 100644 --- a/board/samsung/universal/lowlevel_init.S +++ b/board/samsung/universal/lowlevel_init.S @@ -51,20 +51,19 @@ lowlevel_init: mov r9, lr /* Turn on KEY_LED_ON [GPJ4(1)] */ - ldr r0, =S5P_GPIO_J4_CON - ldr r1, [r0] + ldr r0, =S5PC100_GPIO_BASE(S5PC100_GPIO_J4_OFFSET) + ldr r1, [r0, #S5PC1XX_GPIO_CON_OFFSET] bic r1, r1, #(0xf << 4) @ 1 * 4-bit orr r1, r1, #(0x1 << 4) - str r1, [r0] + str r1, [r0, #S5PC1XX_GPIO_CON_OFFSET] - ldr r0, =S5P_GPIO_J4_DAT - ldr r1, [r0] + ldr r1, [r0, #S5PC1XX_GPIO_DAT_OFFSET] #ifdef CONFIG_ONENAND_IPL orr r1, r1, #(1 << 1) @ 1 * 1-bit #else bic r1, r1, #(1 << 1) #endif - str r1, [r0] + str r1, [r0, #S5PC1XX_GPIO_DAT_OFFSET] /* IO retension release */ ldr r0, =S5P_OTHERS @0xE0108200 @@ -138,17 +137,16 @@ lowlevel_init: #ifdef CONFIG_ONENAND_IPL wakeup_reset: - /* Turn on 7color [GPJ4(2)] */ - ldr r0, =S5P_GPIO_J4_CON - ldr r1, [r0] - bic r1, r1, #(0xf << 8) + /* Turn on 7color [GPJ4(2)] at universal */ + ldr r0, =S5PC100_GPIO_BASE(S5PC100_GPIO_J4_OFFSET) + ldr r1, [r0, #S5PC1XX_GPIO_CON_OFFSET] + bic r1, r1, #(0xf << 8) @ 2 * 4-bit orr r1, r1, #(0x1 << 8) - str r1, [r0] + str r1, [r0, #S5PC1XX_GPIO_CON_OFFSET] - ldr r0, =S5P_GPIO_J4_DAT - ldr r1, [r0] - orr r1, r1, #(1 << 2) - str r1, [r0] + ldr r1, [r0, #S5PC1XX_GPIO_DAT_OFFSET] + orr r1, r1, #(1 << 2) @ 2 * 1-bit + str r1, [r0, #S5PC1XX_GPIO_DAT_OFFSET] /* Clear wakeup status register */ ldr r0, =S5P_WAKEUP_STAT @@ -257,29 +255,27 @@ system_clock_init: */ uart_asm_init: /* set GPIO to enable UART0-UART4 */ - ldr r0, =S5P_PA_GPIO + ldr r0, =S5PC100_GPIO_BASE(0) ldr r1, =0x22222222 - str r1, [r0, #0x000] @ GPA0_CON + str r1, [r0, #S5PC100_GPIO_A0_OFFSET] @ GPA0_CON ldr r1, =0x00002222 - str r1, [r0, #0x020] @ GPA1_CON + str r1, [r0, #S5PC100_GPIO_A1_OFFSET] @ GPA1_CON - /* uart_sel GPK0[5] */ - ldr r0, =S5P_GPIO_K0_CON - ldr r1, [r0] + /* UART_SEL GPK0[5] at S5PC100 */ + ldr r0, =S5PC100_GPIO_BASE(S5PC100_GPIO_K0_OFFSET) + ldr r1, [r0, #S5PC1XX_GPIO_CON_OFFSET] bic r1, r1, #(0xf << 20) @ 20 = 5 * 4-bit orr r1, r1, #(0x1 << 20) - str r1, [r0] + str r1, [r0, #S5PC1XX_GPIO_CON_OFFSET] - ldr r0, =S5P_GPIO_K0_PULL - ldr r1, [r0] + ldr r1, [r0, #S5PC1XX_GPIO_PULL_OFFSET] bic r1, r1, #(0x3 << 10) @ 10 = 5 * 2-bit orr r1, r1, #(0x2 << 10) @ Enables Pull-up - str r1, [r0] + str r1, [r0, #S5PC1XX_GPIO_PULL_OFFSET] - ldr r0, =S5P_GPIO_K0_DAT - ldr r1, [r0] + ldr r1, [r0, #S5PC1XX_GPIO_DAT_OFFSET] orr r1, r1, #(1 << 5) @ 5 = 1 * 1-bit - str r1, [r0] + str r1, [r0, #S5PC1XX_GPIO_DAT_OFFSET] mov pc, lr diff --git a/board/samsung/universal/universal.c b/board/samsung/universal/universal.c index fb737bf..ffe0cd6 100644 --- a/board/samsung/universal/universal.c +++ b/board/samsung/universal/universal.c @@ -29,6 +29,7 @@ */ #include +#include DECLARE_GLOBAL_DATA_PTR; @@ -84,7 +85,7 @@ static const char *board_name[] = { int misc_init_r(void) { /* check H/W revision */ - board_rev = __REG(S5P_GPIO_J0_DAT); + board_rev = readl(S5PC100_GPIO_BASE(S5PC100_GPIO_J0_OFFSET)); /* GPJ0[4:2] */ board_rev >>= 2; diff --git a/drivers/i2c/s5pc1xx_i2c.c b/drivers/i2c/s5pc1xx_i2c.c index b854cda..c0cd019 100644 --- a/drivers/i2c/s5pc1xx_i2c.c +++ b/drivers/i2c/s5pc1xx_i2c.c @@ -133,8 +133,8 @@ void i2c_init(int speed, int slaveadd) else gpio_shift = 12; - __REG(S5P_GPIO_D_CON) &= ~(0xff << gpio_shift); - __REG(S5P_GPIO_D_CON) |= (0x22 << gpio_shift); + __REG(S5PC100_GPIO_BASE(S5PC100_GPIO_D_OFFSET)) &= ~(0xff << gpio_shift); + __REG(S5PC100_GPIO_BASE(S5PC100_GPIO_D_OFFSET)) |= (0x22 << gpio_shift); } /* diff --git a/include/asm-arm/arch-s5pc100/cpu.h b/include/asm-arm/arch-s5pc100/cpu.h index 8e7b7b9..e699bfd 100644 --- a/include/asm-arm/arch-s5pc100/cpu.h +++ b/include/asm-arm/arch-s5pc100/cpu.h @@ -36,7 +36,7 @@ #define S5P_PA_CLK S5P_ADDR(0x00100000) /* Clock Base */ #define S5P_PA_PWR S5P_ADDR(0x00108000) /* Power Base */ #define S5P_PA_CLK_OTHERS S5P_ADDR(0x00200000) /* Clock Others Base */ -#define S5P_PA_GPIO S5P_ADDR(0x00300000) /* GPIO Base */ +#define S5PC100_PA_GPIO 0xE0300000 /* GPIO Base */ #define S5P_PA_VIC0 S5P_ADDR(0x04000000) /* Vector Interrupt Controller 0 */ #define S5P_PA_VIC1 S5P_ADDR(0x04100000) /* Vector Interrupt Controller 1 */ #define S5P_PA_VIC2 S5P_ADDR(0x04200000) /* Vector Interrupt Controller 2 */ diff --git a/include/asm-arm/arch-s5pc100/gpio.h b/include/asm-arm/arch-s5pc100/gpio.h index bd49aaa..9baef7f 100644 --- a/include/asm-arm/arch-s5pc100/gpio.h +++ b/include/asm-arm/arch-s5pc100/gpio.h @@ -1,5 +1,5 @@ /* - * (C) Copyright 2009 SAMSUNG Electronics + * (C) Copyright 2009 Samsung Electronics * Heungjun Kim * Minkyu Kang * @@ -19,562 +19,105 @@ * MA 02111-1307 USA */ -/* - * GPIO - */ +#ifndef __S5PC1XX_GPIO_H +#define __S5PC1XX_GPIO_H /* GPIO Bank Base */ -#define S5P_GPIO_BASE(x) (S5P_PA_GPIO + (x)) - -#define S5P_GPIO_A_REG(x) (S5P_GPIO_BASE(0x0) + (x)) -#define S5P_GPIO_B_REG(x) (S5P_GPIO_BASE(0x40) + (x)) -#define S5P_GPIO_C_REG(x) (S5P_GPIO_BASE(0x60) + (x)) -#define S5P_GPIO_D_REG(x) (S5P_GPIO_BASE(0x80) + (x)) -#define S5P_GPIO_E_REG(x) (S5P_GPIO_BASE(0xa0) + (x)) -#define S5P_GPIO_F_REG(x) (S5P_GPIO_BASE(0xe0) + (x)) -#define S5P_GPIO_G_REG(x) (S5P_GPIO_BASE(0x160) + (x)) -#define S5P_GPIO_I_REG(x) (S5P_GPIO_BASE(0x1e0) + (x)) -#define S5P_GPIO_J_REG(x) (S5P_GPIO_BASE(0x200) + (x)) -#define S5P_GPIO_K_REG(x) (S5P_GPIO_BASE(0x2a0) + (x)) -#define S5P_GPIO_L_REG(x) (S5P_GPIO_BASE(0x320) + (x)) - -#define S5P_MP_REG(x) (S5P_GPIO_BASE(0x3c0) + (x)) -#define S5P_ETC_REG(x) (S5P_GPIO_BASE(0x4e0) + (x)) - -#define S5P_GPIO_INT_CON_REG(x) (S5P_GPIO_BASE(0x700) + (x)) -#define S5P_GPIO_INT_FLTCON_REG(x) (S5P_GPIO_BASE(0x800) + (x)) -#define S5P_GPIO_INT_MASK_REG(x) (S5P_GPIO_BASE(0x900) + (x)) -#define S5P_GPIO_INT_PEND_REG(x) (S5P_GPIO_BASE(0xa00) + (x)) -#define S5P_GPIO_INT_PRIO_REG(x) (S5P_GPIO_BASE(0xb00) + (x)) - -#define S5P_GPIO_H_REG(x) (S5P_GPIO_BASE(0xc00) + (x)) - -#define S5P_WAKEUP_INT_CON(x) (S5P_GPIO_BASE(0xe00) + (x)) -#define S5P_WAKEUP_FLTINT_CON(x) (S5P_GPIO_BASE(0xe80) + (x)) -#define S5P_WAKEUP_INT_MASK(x) (S5P_GPIO_BASE(0xf00) + (x)) -#define S5P_WAKEUP_INT_PEND(x) (S5P_GPIO_BASE(0xf40) + (x)) - - -/* GPIO Offset */ -#define CON_OFFSET 0x0 -#define DAT_OFFSET 0x4 -#define PULL_OFFSET 0x8 -#define DRV_OFFSET 0xc -#define PDNCON_OFFSET 0x10 -#define PDNPULL_OFFSET 0x14 - - -/* GPIO A Bank Base */ -#define S5P_GPIO_A0_BASE(x) (S5P_GPIO_A_REG(0x0) + (x)) -#define S5P_GPIO_A1_BASE(x) (S5P_GPIO_A_REG(0x20) + (x)) - -#define S5P_GPIO_A0_CON S5P_GPIO_A0_BASE(CON_OFFSET) -#define S5P_GPIO_A0_DAT S5P_GPIO_A0_BASE(DAT_OFFSET) -#define S5P_GPIO_A0_PULL S5P_GPIO_A0_BASE(PULL_OFFSET) -#define S5P_GPIO_A0_DRV S5P_GPIO_A0_BASE(DRV_OFFSET) -#define S5P_GPIO_A0_PDNCON S5P_GPIO_A0_BASE(PDNCON_OFFSET) -#define S5P_GPIO_A0_PDNPUL S5P_GPIO_A0_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_A1_CON S5P_GPIO_A1_BASE(CON_OFFSET) -#define S5P_GPIO_A1_DAT S5P_GPIO_A1_BASE(DAT_OFFSET) -#define S5P_GPIO_A1_PULL S5P_GPIO_A1_BASE(PULL_OFFSET) -#define S5P_GPIO_A1_DRV S5P_GPIO_A1_BASE(DRV_OFFSET) -#define S5P_GPIO_A1_PDNCON S5P_GPIO_A1_BASE(PDNCON_OFFSET) -#define S5P_GPIO_A1_PDNPUL S5P_GPIO_A1_BASE(PDNPULL_OFFSET) - -/* GPIO B Bank Base */ -#define S5P_GPIO_B_BASE(x) (S5P_GPIO_B_REG(0x0) + (x)) - -#define S5P_GPIO_B_CON S5P_GPIO_B_BASE(CON_OFFSET) -#define S5P_GPIO_B_DAT S5P_GPIO_B_BASE(DAT_OFFSET) -#define S5P_GPIO_B_PULL S5P_GPIO_B_BASE(PULL_OFFSET) -#define S5P_GPIO_B_DRV S5P_GPIO_B_BASE(DRV_OFFSET) -#define S5P_GPIO_B_PDNCON S5P_GPIO_B_BASE(PDNCON_OFFSET) -#define S5P_GPIO_B_PDNPUL S5P_GPIO_B_BASE(PDNPULL_OFFSET) - -/* GPIO C Bank Base */ -#define S5P_GPIO_C_BASE(x) (S5P_GPIO_C_REG(0x0) + (x)) - -#define S5P_GPIO_C_CON S5P_GPIO_C_BASE(CON_OFFSET) -#define S5P_GPIO_C_DAT S5P_GPIO_C_BASE(DAT_OFFSET) -#define S5P_GPIO_C_PULL S5P_GPIO_C_BASE(PULL_OFFSET) -#define S5P_GPIO_C_DRV S5P_GPIO_C_BASE(DRV_OFFSET) -#define S5P_GPIO_C_PDNCON S5P_GPIO_C_BASE(PDNCON_OFFSET) -#define S5P_GPIO_C_PDNPUL S5P_GPIO_C_BASE(PDNPULL_OFFSET) - -/* GPIO D Bank Base */ -#define S5P_GPIO_D_BASE(x) (S5P_GPIO_D_REG(0x0) + (x)) - -#define S5P_GPIO_D_CON S5P_GPIO_D_BASE(CON_OFFSET) -#define S5P_GPIO_D_DAT S5P_GPIO_D_BASE(DAT_OFFSET) -#define S5P_GPIO_D_PULL S5P_GPIO_D_BASE(PULL_OFFSET) -#define S5P_GPIO_D_DRV S5P_GPIO_D_BASE(DRV_OFFSET) -#define S5P_GPIO_D_PDNCON S5P_GPIO_D_BASE(PDNCON_OFFSET) -#define S5P_GPIO_D_PDNPUL S5P_GPIO_D_BASE(PDNPULL_OFFSET) - -/* GPIO E Bank Base */ -#define S5P_GPIO_E0_BASE(x) (S5P_GPIO_E_REG(0x0) + (x)) -#define S5P_GPIO_E1_BASE(x) (S5P_GPIO_E_REG(0x20) + (x)) - -#define S5P_GPIO_E0_CON S5P_GPIO_E0_BASE(CON_OFFSET) -#define S5P_GPIO_E0_DAT S5P_GPIO_E0_BASE(DAT_OFFSET) -#define S5P_GPIO_E0_PULL S5P_GPIO_E0_BASE(PULL_OFFSET) -#define S5P_GPIO_E0_DRV S5P_GPIO_E0_BASE(DRV_OFFSET) -#define S5P_GPIO_E0_PDNCON S5P_GPIO_E0_BASE(PDNCON_OFFSET) -#define S5P_GPIO_E0_PDNPUL S5P_GPIO_E0_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_E1_CON S5P_GPIO_E1_BASE(CON_OFFSET) -#define S5P_GPIO_E1_DAT S5P_GPIO_E1_BASE(DAT_OFFSET) -#define S5P_GPIO_E1_PULL S5P_GPIO_E1_BASE(PULL_OFFSET) -#define S5P_GPIO_E1_DRV S5P_GPIO_E1_BASE(DRV_OFFSET) -#define S5P_GPIO_E1_PDNCON S5P_GPIO_E1_BASE(PDNCON_OFFSET) -#define S5P_GPIO_E1_PDNPUL S5P_GPIO_E1_BASE(PDNPULL_OFFSET) - -/* GPIO F Bank Base */ -#define S5P_GPIO_F0_BASE(x) (S5P_GPIO_F_REG(0x0) + (x)) -#define S5P_GPIO_F1_BASE(x) (S5P_GPIO_F_REG(0x20) + (x)) -#define S5P_GPIO_F2_BASE(x) (S5P_GPIO_F_REG(0x40) + (x)) -#define S5P_GPIO_F3_BASE(x) (S5P_GPIO_F_REG(0x60) + (x)) - -#define S5P_GPIO_F0_CON S5P_GPIO_F0_BASE(CON_OFFSET) -#define S5P_GPIO_F0_DAT S5P_GPIO_F0_BASE(DAT_OFFSET) -#define S5P_GPIO_F0_PULL S5P_GPIO_F0_BASE(PULL_OFFSET) -#define S5P_GPIO_F0_DRV S5P_GPIO_F0_BASE(DRV_OFFSET) -#define S5P_GPIO_F0_PDNCON S5P_GPIO_F0_BASE(PDNCON_OFFSET) -#define S5P_GPIO_F0_PDNPUL S5P_GPIO_F0_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_F1_CON S5P_GPIO_F1_BASE(CON_OFFSET) -#define S5P_GPIO_F1_DAT S5P_GPIO_F1_BASE(DAT_OFFSET) -#define S5P_GPIO_F1_PULL S5P_GPIO_F1_BASE(PULL_OFFSET) -#define S5P_GPIO_F1_DRV S5P_GPIO_F1_BASE(DRV_OFFSET) -#define S5P_GPIO_F1_PDNCON S5P_GPIO_F1_BASE(PDNCON_OFFSET) -#define S5P_GPIO_F1_PDNPUL S5P_GPIO_F1_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_F2_CON S5P_GPIO_F2_BASE(CON_OFFSET) -#define S5P_GPIO_F2_DAT S5P_GPIO_F2_BASE(DAT_OFFSET) -#define S5P_GPIO_F2_PULL S5P_GPIO_F2_BASE(PULL_OFFSET) -#define S5P_GPIO_F2_DRV S5P_GPIO_F2_BASE(DRV_OFFSET) -#define S5P_GPIO_F2_PDNCON S5P_GPIO_F2_BASE(PDNCON_OFFSET) -#define S5P_GPIO_F2_PDNPUL S5P_GPIO_F2_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_F3_CON S5P_GPIO_F3_BASE(CON_OFFSET) -#define S5P_GPIO_F3_DAT S5P_GPIO_F3_BASE(DAT_OFFSET) -#define S5P_GPIO_F3_PULL S5P_GPIO_F3_BASE(PULL_OFFSET) -#define S5P_GPIO_F3_DRV S5P_GPIO_F3_BASE(DRV_OFFSET) -#define S5P_GPIO_F3_PDNCON S5P_GPIO_F3_BASE(PDNCON_OFFSET) -#define S5P_GPIO_F3_PDNPUL S5P_GPIO_F3_BASE(PDNPULL_OFFSET) - -/* GPIO G Bank Base */ -#define S5P_GPIO_G0_BASE(x) (S5P_GPIO_G_REG(0x0) + (x)) -#define S5P_GPIO_G1_BASE(x) (S5P_GPIO_G_REG(0x20) + (x)) -#define S5P_GPIO_G2_BASE(x) (S5P_GPIO_G_REG(0x40) + (x)) -#define S5P_GPIO_G3_BASE(x) (S5P_GPIO_G_REG(0x60) + (x)) - -#define S5P_GPIO_G0_CON S5P_GPIO_G0_BASE(CON_OFFSET) -#define S5P_GPIO_G0_DAT S5P_GPIO_G0_BASE(DAT_OFFSET) -#define S5P_GPIO_G0_PULL S5P_GPIO_G0_BASE(PULL_OFFSET) -#define S5P_GPIO_G0_DRV S5P_GPIO_G0_BASE(DRV_OFFSET) -#define S5P_GPIO_G0_PDNCON S5P_GPIO_G0_BASE(PDNCON_OFFSET) -#define S5P_GPIO_G0_PDNPUL S5P_GPIO_G0_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_G1_CON S5P_GPIO_G1_BASE(CON_OFFSET) -#define S5P_GPIO_G1_DAT S5P_GPIO_G1_BASE(DAT_OFFSET) -#define S5P_GPIO_G1_PULL S5P_GPIO_G1_BASE(PULL_OFFSET) -#define S5P_GPIO_G1_DRV S5P_GPIO_G1_BASE(DRV_OFFSET) -#define S5P_GPIO_G1_PDNCON S5P_GPIO_G1_BASE(PDNCON_OFFSET) -#define S5P_GPIO_G1_PDNPUL S5P_GPIO_G1_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_G2_CON S5P_GPIO_G2_BASE(CON_OFFSET) -#define S5P_GPIO_G2_DAT S5P_GPIO_G2_BASE(DAT_OFFSET) -#define S5P_GPIO_G2_PULL S5P_GPIO_G2_BASE(PULL_OFFSET) -#define S5P_GPIO_G2_DRV S5P_GPIO_G2_BASE(DRV_OFFSET) -#define S5P_GPIO_G2_PDNCON S5P_GPIO_G2_BASE(PDNCON_OFFSET) -#define S5P_GPIO_G2_PDNPUL S5P_GPIO_G2_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_G3_CON S5P_GPIO_G3_BASE(CON_OFFSET) -#define S5P_GPIO_G3_DAT S5P_GPIO_G3_BASE(DAT_OFFSET) -#define S5P_GPIO_G3_PULL S5P_GPIO_G3_BASE(PULL_OFFSET) -#define S5P_GPIO_G3_DRV S5P_GPIO_G3_BASE(DRV_OFFSET) -#define S5P_GPIO_G3_PDNCON S5P_GPIO_G3_BASE(PDNCON_OFFSET) -#define S5P_GPIO_G3_PDNPUL S5P_GPIO_G3_BASE(PDNPULL_OFFSET) - -/* GPIO I Bank Base */ -#define S5P_GPIO_I_BASE(x) (S5P_GPIO_I_REG(0x0) + (x)) - -#define S5P_GPIO_I_CON S5P_GPIO_I_BASE(CON_OFFSET) -#define S5P_GPIO_I_DAT S5P_GPIO_I_BASE(DAT_OFFSET) -#define S5P_GPIO_I_PULL S5P_GPIO_I_BASE(PULL_OFFSET) -#define S5P_GPIO_I_DRV S5P_GPIO_I_BASE(DRV_OFFSET) -#define S5P_GPIO_I_PDNCON S5P_GPIO_I_BASE(PDNCON_OFFSET) -#define S5P_GPIO_I_PDNPUL S5P_GPIO_I_BASE(PDNPULL_OFFSET) - -/* GPIO J Bank Base */ -#define S5P_GPIO_J0_BASE(x) (S5P_GPIO_J_REG(0x0) + (x)) -#define S5P_GPIO_J1_BASE(x) (S5P_GPIO_J_REG(0x20) + (x)) -#define S5P_GPIO_J2_BASE(x) (S5P_GPIO_J_REG(0x40) + (x)) -#define S5P_GPIO_J3_BASE(x) (S5P_GPIO_J_REG(0x60) + (x)) -#define S5P_GPIO_J4_BASE(x) (S5P_GPIO_J_REG(0x80) + (x)) - -#define S5P_GPIO_J0_CON S5P_GPIO_J0_BASE(CON_OFFSET) -#define S5P_GPIO_J0_DAT S5P_GPIO_J0_BASE(DAT_OFFSET) -#define S5P_GPIO_J0_PULL S5P_GPIO_J0_BASE(PULL_OFFSET) -#define S5P_GPIO_J0_DRV S5P_GPIO_J0_BASE(DRV_OFFSET) -#define S5P_GPIO_J0_PDNCON S5P_GPIO_J0_BASE(PDNCON_OFFSET) -#define S5P_GPIO_J0_PDNPUL S5P_GPIO_J0_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_J1_CON S5P_GPIO_J1_BASE(CON_OFFSET) -#define S5P_GPIO_J1_DAT S5P_GPIO_J1_BASE(DAT_OFFSET) -#define S5P_GPIO_J1_PULL S5P_GPIO_J1_BASE(PULL_OFFSET) -#define S5P_GPIO_J1_DRV S5P_GPIO_J1_BASE(DRV_OFFSET) -#define S5P_GPIO_J1_PDNCON S5P_GPIO_J1_BASE(PDNCON_OFFSET) -#define S5P_GPIO_J1_PDNPUL S5P_GPIO_J1_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_J2_CON S5P_GPIO_J2_BASE(CON_OFFSET) -#define S5P_GPIO_J2_DAT S5P_GPIO_J2_BASE(DAT_OFFSET) -#define S5P_GPIO_J2_PULL S5P_GPIO_J2_BASE(PULL_OFFSET) -#define S5P_GPIO_J2_DRV S5P_GPIO_J2_BASE(DRV_OFFSET) -#define S5P_GPIO_J2_PDNCON S5P_GPIO_J2_BASE(PDNCON_OFFSET) -#define S5P_GPIO_J2_PDNPUL S5P_GPIO_J2_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_J3_CON S5P_GPIO_J3_BASE(CON_OFFSET) -#define S5P_GPIO_J3_DAT S5P_GPIO_J3_BASE(DAT_OFFSET) -#define S5P_GPIO_J3_PULL S5P_GPIO_J3_BASE(PULL_OFFSET) -#define S5P_GPIO_J3_DRV S5P_GPIO_J3_BASE(DRV_OFFSET) -#define S5P_GPIO_J3_PDNCON S5P_GPIO_J3_BASE(PDNCON_OFFSET) -#define S5P_GPIO_J3_PDNPUL S5P_GPIO_J3_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_J4_CON S5P_GPIO_J4_BASE(CON_OFFSET) -#define S5P_GPIO_J4_DAT S5P_GPIO_J4_BASE(DAT_OFFSET) -#define S5P_GPIO_J4_PULL S5P_GPIO_J4_BASE(PULL_OFFSET) -#define S5P_GPIO_J4_DRV S5P_GPIO_J4_BASE(DRV_OFFSET) -#define S5P_GPIO_J4_PDNCON S5P_GPIO_J4_BASE(PDNCON_OFFSET) -#define S5P_GPIO_J4_PDNPUL S5P_GPIO_J4_BASE(PDNPULL_OFFSET) - -/* GPIO K Bank Base */ -#define S5P_GPIO_K0_BASE(x) (S5P_GPIO_K_REG(0x0) + (x)) -#define S5P_GPIO_K1_BASE(x) (S5P_GPIO_K_REG(0x20) + (x)) -#define S5P_GPIO_K2_BASE(x) (S5P_GPIO_K_REG(0x40) + (x)) -#define S5P_GPIO_K3_BASE(x) (S5P_GPIO_K_REG(0x60) + (x)) - -#define S5P_GPIO_K0_CON S5P_GPIO_K0_BASE(CON_OFFSET) -#define S5P_GPIO_K0_DAT S5P_GPIO_K0_BASE(DAT_OFFSET) -#define S5P_GPIO_K0_PULL S5P_GPIO_K0_BASE(PULL_OFFSET) -#define S5P_GPIO_K0_DRV S5P_GPIO_K0_BASE(DRV_OFFSET) -#define S5P_GPIO_K0_PDNCON S5P_GPIO_K0_BASE(PDNCON_OFFSET) -#define S5P_GPIO_K0_PDNPUL S5P_GPIO_K0_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_K1_CON S5P_GPIO_K1_BASE(CON_OFFSET) -#define S5P_GPIO_K1_DAT S5P_GPIO_K1_BASE(DAT_OFFSET) -#define S5P_GPIO_K1_PULL S5P_GPIO_K1_BASE(PULL_OFFSET) -#define S5P_GPIO_K1_DRV S5P_GPIO_K1_BASE(DRV_OFFSET) -#define S5P_GPIO_K1_PDNCON S5P_GPIO_K1_BASE(PDNCON_OFFSET) -#define S5P_GPIO_K1_PDNPUL S5P_GPIO_K1_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_K2_CON S5P_GPIO_K2_BASE(CON_OFFSET) -#define S5P_GPIO_K2_DAT S5P_GPIO_K2_BASE(DAT_OFFSET) -#define S5P_GPIO_K2_PULL S5P_GPIO_K2_BASE(PULL_OFFSET) -#define S5P_GPIO_K2_DRV S5P_GPIO_K2_BASE(DRV_OFFSET) -#define S5P_GPIO_K2_PDNCON S5P_GPIO_K2_BASE(PDNCON_OFFSET) -#define S5P_GPIO_K2_PDNPUL S5P_GPIO_K2_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_K3_CON S5P_GPIO_K3_BASE(CON_OFFSET) -#define S5P_GPIO_K3_DAT S5P_GPIO_K3_BASE(DAT_OFFSET) -#define S5P_GPIO_K3_PULL S5P_GPIO_K3_BASE(PULL_OFFSET) -#define S5P_GPIO_K3_DRV S5P_GPIO_K3_BASE(DRV_OFFSET) -#define S5P_GPIO_K3_PDNCON S5P_GPIO_K3_BASE(PDNCON_OFFSET) -#define S5P_GPIO_K3_PDNPUL S5P_GPIO_K3_BASE(PDNPULL_OFFSET) - -/* GPIO L Bank */ -#define S5P_GPIO_L0_BASE(x) (S5P_GPIO_L_REG(0x0) + (x)) -#define S5P_GPIO_L1_BASE(x) (S5P_GPIO_L_REG(0x20) + (x)) -#define S5P_GPIO_L2_BASE(x) (S5P_GPIO_L_REG(0x40) + (x)) -#define S5P_GPIO_L3_BASE(x) (S5P_GPIO_L_REG(0x60) + (x)) -#define S5P_GPIO_L4_BASE(x) (S5P_GPIO_L_REG(0x80) + (x)) - -#define S5P_GPIO_L0_CON S5P_GPIO_L0_BASE(CON_OFFSET) -#define S5P_GPIO_L0_DAT S5P_GPIO_L0_BASE(DAT_OFFSET) -#define S5P_GPIO_L0_PULL S5P_GPIO_L0_BASE(PULL_OFFSET) -#define S5P_GPIO_L0_DRV S5P_GPIO_L0_BASE(DRV_OFFSET) -#define S5P_GPIO_L0_PDNCON S5P_GPIO_L0_BASE(PDNCON_OFFSET) -#define S5P_GPIO_L0_PDNPUL S5P_GPIO_L0_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_L1_CON S5P_GPIO_L1_BASE(CON_OFFSET) -#define S5P_GPIO_L1_DAT S5P_GPIO_L1_BASE(DAT_OFFSET) -#define S5P_GPIO_L1_PULL S5P_GPIO_L1_BASE(PULL_OFFSET) -#define S5P_GPIO_L1_DRV S5P_GPIO_L1_BASE(DRV_OFFSET) -#define S5P_GPIO_L1_PDNCON S5P_GPIO_L1_BASE(PDNCON_OFFSET) -#define S5P_GPIO_L1_PDNPUL S5P_GPIO_L1_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_L2_CON S5P_GPIO_L2_BASE(CON_OFFSET) -#define S5P_GPIO_L2_DAT S5P_GPIO_L2_BASE(DAT_OFFSET) -#define S5P_GPIO_L2_PULL S5P_GPIO_L2_BASE(PULL_OFFSET) -#define S5P_GPIO_L2_DRV S5P_GPIO_L2_BASE(DRV_OFFSET) -#define S5P_GPIO_L2_PDNCON S5P_GPIO_L2_BASE(PDNCON_OFFSET) -#define S5P_GPIO_L2_PDNPUL S5P_GPIO_L2_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_L3_CON S5P_GPIO_L3_BASE(CON_OFFSET) -#define S5P_GPIO_L3_DAT S5P_GPIO_L3_BASE(DAT_OFFSET) -#define S5P_GPIO_L3_PULL S5P_GPIO_L3_BASE(PULL_OFFSET) -#define S5P_GPIO_L3_DRV S5P_GPIO_L3_BASE(DRV_OFFSET) -#define S5P_GPIO_L3_PDNCON S5P_GPIO_L3_BASE(PDNCON_OFFSET) -#define S5P_GPIO_L3_PDNPUL S5P_GPIO_L3_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_L4_CON S5P_GPIO_L4_BASE(CON_OFFSET) -#define S5P_GPIO_L4_DAT S5P_GPIO_L4_BASE(DAT_OFFSET) -#define S5P_GPIO_L4_PULL S5P_GPIO_L4_BASE(PULL_OFFSET) -#define S5P_GPIO_L4_DRV S5P_GPIO_L4_BASE(DRV_OFFSET) -#define S5P_GPIO_L4_PDNCON S5P_GPIO_L4_BASE(PDNCON_OFFSET) -#define S5P_GPIO_L4_PDNPUL S5P_GPIO_L4_BASE(PDNPULL_OFFSET) - -/* GPIO MP Bank */ -#define S5P_MP_0_OFFSET 0x0 -#define S5P_MP_1_OFFSET 0x20 -#define S5P_MP_2_OFFSET 0x40 -#define S5P_MP_3_OFFSET 0x60 -#define S5P_MP_4_OFFSET 0x80 -#define S5P_MP_5_OFFSET 0xa0 -#define S5P_MP_6_OFFSET 0xc0 -#define S5P_MP_7_OFFSET 0xe0 - -#define S5P_MP_0_BASE(x) (S5P_MP_REG(S5P_MP_0_OFFSET) + (x)) -#define S5P_MP_1_BASE(x) (S5P_MP_REG(S5P_MP_1_OFFSET) + (x)) -#define S5P_MP_2_BASE(x) (S5P_MP_REG(S5P_MP_2_OFFSET) + (x)) -#define S5P_MP_3_BASE(x) (S5P_MP_REG(S5P_MP_3_OFFSET) + (x)) -#define S5P_MP_4_BASE(x) (S5P_MP_REG(S5P_MP_4_OFFSET) + (x)) -#define S5P_MP_5_BASE(x) (S5P_MP_REG(S5P_MP_5_OFFSET) + (x)) -#define S5P_MP_6_BASE(x) (S5P_MP_REG(S5P_MP_6_OFFSET) + (x)) -#define S5P_MP_7_BASE(x) (S5P_MP_REG(S5P_MP_7_OFFSET) + (x)) - -#define S5P_MP_0PULL S5P_MP_0_BASE(PULL_OFFSET) -#define S5P_MP_0DRV S5P_MP_0_BASE(DRV_OFFSET) -#define S5P_MP_0PDNPULL S5P_MP_0_BASE(PDNPULL_OFFSET) - -#define S5P_MP_1PULL S5P_MP_1_BASE(PULL_OFFSET) -#define S5P_MP_1DRV S5P_MP_1_BASE(DRV_OFFSET) -#define S5P_MP_1PDNPULL S5P_MP_1_BASE(PDNPULL_OFFSET) - -#define S5P_MP_2PULL S5P_MP_2_BASE(PULL_OFFSET) -#define S5P_MP_2DRV S5P_MP_2_BASE(DRV_OFFSET) -#define S5P_MP_2PDNPULL S5P_MP_2_BASE(PDNPULL_OFFSET) - -#define S5P_MP_3DRV S5P_MP_3_BASE(DRV_OFFSET) -#define S5P_MP_4DRV S5P_MP_4_BASE(DRV_OFFSET) -#define S5P_MP_5DRV S5P_MP_5_BASE(DRV_OFFSET) -#define S5P_MP_6DRV S5P_MP_6_BASE(DRV_OFFSET) -#define S5P_MP_7DRV S5P_MP_7_BASE(DRV_OFFSET) -#define S5P_MP_8DRV S5P_MP_8_BASE(DRV_OFFSET) - -/* GPIO ETC Bank */ -#define S5P_ETC0_BASE(x) (S5P_ETC_REG(0x0) + (x)) -#define S5P_ETC1_BASE(x) (S5P_ETC_REG(0x20) + (x)) -#define S5P_ETC2_BASE(x) (S5P_ETC_REG(0x40) + (x)) -#define S5P_ETC3_BASE(x) (S5P_ETC_REG(0x60) + (x)) -#define S5P_ETC4_BASE(x) (S5P_ETC_REG(0x80) + (x)) - -#define S5P_ETC0PULL S5P_ETC0_BASE(PULL_OFFSET) -#define S5P_ETC0DRV S5P_ETC0_BASE(DRV_OFFSET) -#define S5P_ETC1PULL S5P_ETC1_BASE(PULL_OFFSET) -#define S5P_ETC1DRV S5P_ETC1_BASE(DRV_OFFSET) -#define S5P_ETC2PULL S5P_ETC2_BASE(PULL_OFFSET) -#define S5P_ETC2DRV S5P_ETC2_BASE(DRV_OFFSET) -#define S5P_ETC3PULL S5P_ETC3_BASE(PULL_OFFSET) -#define S5P_ETC3DRV S5P_ETC3_BASE(DRV_OFFSET) -#define S5P_ETC4DRV S5P_ETC4_BASE(DRV_OFFSET) - -/* GPIO External Interrupt */ -#define S5P_GPIO_INT0_CON S5P_GPIO_INT_CON_REG(0x0) -#define S5P_GPIO_INT1_CON S5P_GPIO_INT_CON_REG(0x4) -#define S5P_GPIO_INT2_CON S5P_GPIO_INT_CON_REG(0x8) -#define S5P_GPIO_INT3_CON S5P_GPIO_INT_CON_REG(0xc) -#define S5P_GPIO_INT4_CON S5P_GPIO_INT_CON_REG(0x10) -#define S5P_GPIO_INT5_CON S5P_GPIO_INT_CON_REG(0x14) -#define S5P_GPIO_INT6_CON S5P_GPIO_INT_CON_REG(0x18) -#define S5P_GPIO_INT7_CON S5P_GPIO_INT_CON_REG(0x1c) -#define S5P_GPIO_INT8_CON S5P_GPIO_INT_CON_REG(0x20) -#define S5P_GPIO_INT9_CON S5P_GPIO_INT_CON_REG(0x24) -#define S5P_GPIO_INT10_CON S5P_GPIO_INT_CON_REG(0x28) -#define S5P_GPIO_INT11_CON S5P_GPIO_INT_CON_REG(0x2c) -#define S5P_GPIO_INT12_CON S5P_GPIO_INT_CON_REG(0x30) -#define S5P_GPIO_INT13_CON S5P_GPIO_INT_CON_REG(0x34) -#define S5P_GPIO_INT14_CON S5P_GPIO_INT_CON_REG(0x38) -#define S5P_GPIO_INT15_CON S5P_GPIO_INT_CON_REG(0x3c) -#define S5P_GPIO_INT16_CON S5P_GPIO_INT_CON_REG(0x40) -#define S5P_GPIO_INT17_CON S5P_GPIO_INT_CON_REG(0x44) -#define S5P_GPIO_INT18_CON S5P_GPIO_INT_CON_REG(0x48) -#define S5P_GPIO_INT19_CON S5P_GPIO_INT_CON_REG(0x4c) -#define S5P_GPIO_INT20_CON S5P_GPIO_INT_CON_REG(0x50) - -#define S5P_GPIO_INT0_FLTCON0 S5P_GPIO_INT_CON_REG(0x0) -#define S5P_GPIO_INT0_FLTCON1 S5P_GPIO_INT_CON_REG(0x4) -#define S5P_GPIO_INT1_FLTCON0 S5P_GPIO_INT_CON_REG(0x8) -#define S5P_GPIO_INT1_FLTCON1 S5P_GPIO_INT_CON_REG(0xc) -#define S5P_GPIO_INT2_FLTCON0 S5P_GPIO_INT_CON_REG(0x10) -#define S5P_GPIO_INT2_FLTCON1 S5P_GPIO_INT_CON_REG(0x14) -#define S5P_GPIO_INT3_FLTCON0 S5P_GPIO_INT_CON_REG(0x18) -#define S5P_GPIO_INT3_FLTCON1 S5P_GPIO_INT_CON_REG(0x1c) -#define S5P_GPIO_INT4_FLTCON0 S5P_GPIO_INT_CON_REG(0x20) -#define S5P_GPIO_INT4_FLTCON1 S5P_GPIO_INT_CON_REG(0x24) -#define S5P_GPIO_INT5_FLTCON0 S5P_GPIO_INT_CON_REG(0x28) -#define S5P_GPIO_INT5_FLTCON1 S5P_GPIO_INT_CON_REG(0x2c) -#define S5P_GPIO_INT6_FLTCON0 S5P_GPIO_INT_CON_REG(0x30) -#define S5P_GPIO_INT6_FLTCON1 S5P_GPIO_INT_CON_REG(0x34) -#define S5P_GPIO_INT7_FLTCON0 S5P_GPIO_INT_CON_REG(0x38) -#define S5P_GPIO_INT7_FLTCON1 S5P_GPIO_INT_CON_REG(0x3c) -#define S5P_GPIO_INT8_FLTCON0 S5P_GPIO_INT_CON_REG(0x40) -#define S5P_GPIO_INT8_FLTCON1 S5P_GPIO_INT_CON_REG(0x44) -#define S5P_GPIO_INT9_FLTCON0 S5P_GPIO_INT_CON_REG(0x48) -#define S5P_GPIO_INT9_FLTCON1 S5P_GPIO_INT_CON_REG(0x4c) -#define S5P_GPIO_INT10_FLTCON0 S5P_GPIO_INT_CON_REG(0x50) -#define S5P_GPIO_INT11_FLTCON0 S5P_GPIO_INT_CON_REG(0x58) -#define S5P_GPIO_INT11_FLTCON1 S5P_GPIO_INT_CON_REG(0x5c) -#define S5P_GPIO_INT12_FLTCON0 S5P_GPIO_INT_CON_REG(0x60) -#define S5P_GPIO_INT13_FLTCON0 S5P_GPIO_INT_CON_REG(0x68) -#define S5P_GPIO_INT13_FLTCON1 S5P_GPIO_INT_CON_REG(0x6c) -#define S5P_GPIO_INT14_FLTCON0 S5P_GPIO_INT_CON_REG(0x70) -#define S5P_GPIO_INT14_FLTCON1 S5P_GPIO_INT_CON_REG(0x74) -#define S5P_GPIO_INT15_FLTCON0 S5P_GPIO_INT_CON_REG(0x78) -#define S5P_GPIO_INT15_FLTCON1 S5P_GPIO_INT_CON_REG(0x7c) -#define S5P_GPIO_INT16_FLTCON0 S5P_GPIO_INT_CON_REG(0x80) -#define S5P_GPIO_INT16_FLTCON1 S5P_GPIO_INT_CON_REG(0x84) -#define S5P_GPIO_INT17_FLTCON0 S5P_GPIO_INT_CON_REG(0x88) -#define S5P_GPIO_INT17_FLTCON1 S5P_GPIO_INT_CON_REG(0x8c) -#define S5P_GPIO_INT18_FLTCON0 S5P_GPIO_INT_CON_REG(0x90) -#define S5P_GPIO_INT18_FLTCON1 S5P_GPIO_INT_CON_REG(0x94) -#define S5P_GPIO_INT19_FLTCON0 S5P_GPIO_INT_CON_REG(0x98) -#define S5P_GPIO_INT19_FLTCON1 S5P_GPIO_INT_CON_REG(0x9c) -#define S5P_GPIO_INT20_FLTCON0 S5P_GPIO_INT_CON_REG(0xa0) - -#define S5P_GPIO_INT0_MASK S5P_GPIO_INT_MASK_REG(0x00) -#define S5P_GPIO_INT1_MASK S5P_GPIO_INT_MASK_REG(0x04) -#define S5P_GPIO_INT2_MASK S5P_GPIO_INT_MASK_REG(0x08) -#define S5P_GPIO_INT3_MASK S5P_GPIO_INT_MASK_REG(0x0c) -#define S5P_GPIO_INT4_MASK S5P_GPIO_INT_MASK_REG(0x10) -#define S5P_GPIO_INT5_MASK S5P_GPIO_INT_MASK_REG(0x14) -#define S5P_GPIO_INT6_MASK S5P_GPIO_INT_MASK_REG(0x18) -#define S5P_GPIO_INT7_MASK S5P_GPIO_INT_MASK_REG(0x1c) -#define S5P_GPIO_INT8_MASK S5P_GPIO_INT_MASK_REG(0x20) -#define S5P_GPIO_INT9_MASK S5P_GPIO_INT_MASK_REG(0x24) -#define S5P_GPIO_INT10_MASK S5P_GPIO_INT_MASK_REG(0x28) -#define S5P_GPIO_INT11_MASK S5P_GPIO_INT_MASK_REG(0x2c) -#define S5P_GPIO_INT12_MASK S5P_GPIO_INT_MASK_REG(0x30) -#define S5P_GPIO_INT13_MASK S5P_GPIO_INT_MASK_REG(0x34) -#define S5P_GPIO_INT14_MASK S5P_GPIO_INT_MASK_REG(0x38) -#define S5P_GPIO_INT15_MASK S5P_GPIO_INT_MASK_REG(0x3c) -#define S5P_GPIO_INT16_MASK S5P_GPIO_INT_MASK_REG(0x40) -#define S5P_GPIO_INT17_MASK S5P_GPIO_INT_MASK_REG(0x44) -#define S5P_GPIO_INT18_MASK S5P_GPIO_INT_MASK_REG(0x48) -#define S5P_GPIO_INT19_MASK S5P_GPIO_INT_MASK_REG(0x4c) -#define S5P_GPIO_INT20_MASK S5P_GPIO_INT_MASK_REG(0x50) - -#define S5P_GPIO_INT0_PEND S5P_GPIO_INT_PEND_REG(0x00) -#define S5P_GPIO_INT1_PEND S5P_GPIO_INT_PEND_REG(0x04) -#define S5P_GPIO_INT2_PEND S5P_GPIO_INT_PEND_REG(0x08) -#define S5P_GPIO_INT3_PEND S5P_GPIO_INT_PEND_REG(0x0c) -#define S5P_GPIO_INT4_PEND S5P_GPIO_INT_PEND_REG(0x10) -#define S5P_GPIO_INT5_PEND S5P_GPIO_INT_PEND_REG(0x14) -#define S5P_GPIO_INT6_PEND S5P_GPIO_INT_PEND_REG(0x18) -#define S5P_GPIO_INT7_PEND S5P_GPIO_INT_PEND_REG(0x1c) -#define S5P_GPIO_INT8_PEND S5P_GPIO_INT_PEND_REG(0x20) -#define S5P_GPIO_INT9_PEND S5P_GPIO_INT_PEND_REG(0x24) -#define S5P_GPIO_INT10_PEND S5P_GPIO_INT_PEND_REG(0x28) -#define S5P_GPIO_INT11_PEND S5P_GPIO_INT_PEND_REG(0x2c) -#define S5P_GPIO_INT12_PEND S5P_GPIO_INT_PEND_REG(0x30) -#define S5P_GPIO_INT13_PEND S5P_GPIO_INT_PEND_REG(0x34) -#define S5P_GPIO_INT14_PEND S5P_GPIO_INT_PEND_REG(0x38) -#define S5P_GPIO_INT15_PEND S5P_GPIO_INT_PEND_REG(0x3c) -#define S5P_GPIO_INT16_PEND S5P_GPIO_INT_PEND_REG(0x40) -#define S5P_GPIO_INT17_PEND S5P_GPIO_INT_PEND_REG(0x44) -#define S5P_GPIO_INT18_PEND S5P_GPIO_INT_PEND_REG(0x48) -#define S5P_GPIO_INT19_PEND S5P_GPIO_INT_PEND_REG(0x4c) -#define S5P_GPIO_INT20_PEND S5P_GPIO_INT_PEND_REG(0x50) - -#define S5P_GPIO_INT_GRPPRI S5P_GPIO_INT_PRIO_REG(0x00) -#define S5P_GPIO_INT_PRIORITY S5P_GPIO_INT_PRIO_REG(0x04) -#define S5P_GPIO_INT_SERVICE S5P_GPIO_INT_PRIO_REG(0x08) -#define S5P_GPIO_INT_SERVICE_PEND S5P_GPIO_INT_PRIO_REG(0x0c) -#define S5P_GPIO_INT_GRPFIXPRI S5P_GPIO_INT_PRIO_REG(0x10) - -#define S5P_GPIO_INT0_FIXPRI S5P_GPIO_INT_PRIO_REG(0x14) -#define S5P_GPIO_INT1_FIXPRI S5P_GPIO_INT_PRIO_REG(0x18) -#define S5P_GPIO_INT2_FIXPRI S5P_GPIO_INT_PRIO_REG(0x1c) -#define S5P_GPIO_INT3_FIXPRI S5P_GPIO_INT_PRIO_REG(0x20) -#define S5P_GPIO_INT4_FIXPRI S5P_GPIO_INT_PRIO_REG(0x24) -#define S5P_GPIO_INT5_FIXPRI S5P_GPIO_INT_PRIO_REG(0x28) -#define S5P_GPIO_INT6_FIXPRI S5P_GPIO_INT_PRIO_REG(0x2c) -#define S5P_GPIO_INT7_FIXPRI S5P_GPIO_INT_PRIO_REG(0x30) -#define S5P_GPIO_INT8_FIXPRI S5P_GPIO_INT_PRIO_REG(0x34) -#define S5P_GPIO_INT9_FIXPRI S5P_GPIO_INT_PRIO_REG(0x38) -#define S5P_GPIO_INT10_FIXPRI S5P_GPIO_INT_PRIO_REG(0x3c) -#define S5P_GPIO_INT11_FIXPRI S5P_GPIO_INT_PRIO_REG(0x40) -#define S5P_GPIO_INT12_FIXPRI S5P_GPIO_INT_PRIO_REG(0x44) -#define S5P_GPIO_INT13_FIXPRI S5P_GPIO_INT_PRIO_REG(0x48) -#define S5P_GPIO_INT14_FIXPRI S5P_GPIO_INT_PRIO_REG(0x4c) -#define S5P_GPIO_INT15_FIXPRI S5P_GPIO_INT_PRIO_REG(0x50) -#define S5P_GPIO_INT16_FIXPRI S5P_GPIO_INT_PRIO_REG(0x54) -#define S5P_GPIO_INT17_FIXPRI S5P_GPIO_INT_PRIO_REG(0x58) -#define S5P_GPIO_INT18_FIXPRI S5P_GPIO_INT_PRIO_REG(0x5c) -#define S5P_GPIO_INT19_FIXPRI S5P_GPIO_INT_PRIO_REG(0x60) -#define S5P_GPIO_INT20_FIXPRI S5P_GPIO_INT_PRIO_REG(0x64) - -/* GPIO H Bank Base */ -#define S5P_GPIO_H0_BASE(x) (S5P_GPIO_H_REG(0x0) + (x)) -#define S5P_GPIO_H1_BASE(x) (S5P_GPIO_H_REG(0x20) + (x)) -#define S5P_GPIO_H2_BASE(x) (S5P_GPIO_H_REG(0x40) + (x)) -#define S5P_GPIO_H3_BASE(x) (S5P_GPIO_H_REG(0x60) + (x)) - -#define S5P_GPIO_H0_CON S5P_GPIO_H0_BASE(CON_OFFSET) -#define S5P_GPIO_H0_DAT S5P_GPIO_H0_BASE(DAT_OFFSET) -#define S5P_GPIO_H0_PULL S5P_GPIO_H0_BASE(PULL_OFFSET) -#define S5P_GPIO_H0_DRV S5P_GPIO_H0_BASE(DRV_OFFSET) -#define S5P_GPIO_H0_PDNCON S5P_GPIO_H0_BASE(PDNCON_OFFSET) -#define S5P_GPIO_H0_PDNPUL S5P_GPIO_H0_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_H1_CON S5P_GPIO_H1_BASE(CON_OFFSET) -#define S5P_GPIO_H1_DAT S5P_GPIO_H1_BASE(DAT_OFFSET) -#define S5P_GPIO_H1_PULL S5P_GPIO_H1_BASE(PULL_OFFSET) -#define S5P_GPIO_H1_DRV S5P_GPIO_H1_BASE(DRV_OFFSET) -#define S5P_GPIO_H1_PDNCON S5P_GPIO_H1_BASE(PDNCON_OFFSET) -#define S5P_GPIO_H1_PDNPUL S5P_GPIO_H1_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_H2_CON S5P_GPIO_H2_BASE(CON_OFFSET) -#define S5P_GPIO_H2_DAT S5P_GPIO_H2_BASE(DAT_OFFSET) -#define S5P_GPIO_H2_PULL S5P_GPIO_H2_BASE(PULL_OFFSET) -#define S5P_GPIO_H2_DRV S5P_GPIO_H2_BASE(DRV_OFFSET) -#define S5P_GPIO_H2_PDNCON S5P_GPIO_H2_BASE(PDNCON_OFFSET) -#define S5P_GPIO_H2_PDNPUL S5P_GPIO_H2_BASE(PDNPULL_OFFSET) - -#define S5P_GPIO_H3_CON S5P_GPIO_H3_BASE(CON_OFFSET) -#define S5P_GPIO_H3_DAT S5P_GPIO_H3_BASE(DAT_OFFSET) -#define S5P_GPIO_H3_PULL S5P_GPIO_H3_BASE(PULL_OFFSET) -#define S5P_GPIO_H3_DRV S5P_GPIO_H3_BASE(DRV_OFFSET) -#define S5P_GPIO_H3_PDNCON S5P_GPIO_H3_BASE(PDNCON_OFFSET) -#define S5P_GPIO_H3_PDNPUL S5P_GPIO_H3_BASE(PDNPULL_OFFSET) - -/* GPIO Wakeup Interrupt Configuration */ -#define S5P_GPIO_WAKEUP_INT0_CON S5P_WAKEUP_INT_CON(0x00) -#define S5P_GPIO_WAKEUP_INT1_CON S5P_WAKEUP_INT_CON(0x04) -#define S5P_GPIO_WAKEUP_INT2_CON S5P_WAKEUP_INT_CON(0x08) -#define S5P_GPIO_WAKEUP_INT3_CON S5P_WAKEUP_INT_CON(0x0c) - -/* GPIO Wakeup Interrupt Filter Configuration */ -#define S5P_GPIO_WAKEUP_FLTINT0_CON0 S5P_WAKEUP_FLTINT_CON(0x00) -#define S5P_GPIO_WAKEUP_FLTINT0_CON1 S5P_WAKEUP_FLTINT_CON(0x04) -#define S5P_GPIO_WAKEUP_FLTINT1_CON0 S5P_WAKEUP_FLTINT_CON(0x08) -#define S5P_GPIO_WAKEUP_FLTINT1_CON1 S5P_WAKEUP_FLTINT_CON(0x0c) -#define S5P_GPIO_WAKEUP_FLTINT2_CON0 S5P_WAKEUP_FLTINT_CON(0x10) -#define S5P_GPIO_WAKEUP_FLTINT2_CON1 S5P_WAKEUP_FLTINT_CON(0x14) -#define S5P_GPIO_WAKEUP_FLTINT3_CON0 S5P_WAKEUP_FLTINT_CON(0x18) -#define S5P_GPIO_WAKEUP_FLTINT3_CON1 S5P_WAKEUP_FLTINT_CON(0x1c) - -/* GPIO Wakeup Interrupt Mask */ -#define S5P_GPIO_WAKEUP_INT0_MASK S5P_WAKEUP_INT_MASK(0x00) -#define S5P_GPIO_WAKEUP_INT1_MASK S5P_WAKEUP_INT_MASK(0x04) -#define S5P_GPIO_WAKEUP_INT2_MASK S5P_WAKEUP_INT_MASK(0x08) -#define S5P_GPIO_WAKEUP_INT3_MASK S5P_WAKEUP_INT_MASK(0x0c) - -/* GPIO Wakeup Interrupt Pend */ -#define S5P_GPIO_WAKEUP_INT0_PEND S5P_WAKEUP_INT_PEND(0x00) -#define S5P_GPIO_WAKEUP_INT1_PEND S5P_WAKEUP_INT_PEND(0x04) -#define S5P_GPIO_WAKEUP_INT2_PEND S5P_WAKEUP_INT_PEND(0x08) -#define S5P_GPIO_WAKEUP_INT3_PEND S5P_WAKEUP_INT_PEND(0x0c) - +#define S5PC100_GPIO_BASE(x) (0xE0300000 + (x)) +#define S5PC110_GPIO_BASE(x) (0xE0200000 + (x)) + +/* S5PC100 bank offset */ +#define S5PC100_GPIO_A0_OFFSET 0x000 +#define S5PC100_GPIO_A1_OFFSET 0x020 +#define S5PC100_GPIO_B_OFFSET 0x040 +#define S5PC100_GPIO_C_OFFSET 0x060 +#define S5PC100_GPIO_D_OFFSET 0x080 +#define S5PC100_GPIO_E0_OFFSET 0x0A0 +#define S5PC100_GPIO_E1_OFFSET 0x0C0 +#define S5PC100_GPIO_F0_OFFSET 0x0E0 +#define S5PC100_GPIO_F1_OFFSET 0x100 +#define S5PC100_GPIO_F2_OFFSET 0x120 +#define S5PC100_GPIO_F3_OFFSET 0x140 +#define S5PC100_GPIO_G0_OFFSET 0x160 +#define S5PC100_GPIO_G1_OFFSET 0x180 +#define S5PC100_GPIO_G2_OFFSET 0x1A0 +#define S5PC100_GPIO_G3_OFFSET 0x1C0 +#define S5PC100_GPIO_H0_OFFSET 0xC00 +#define S5PC100_GPIO_H1_OFFSET 0xC20 +#define S5PC100_GPIO_H2_OFFSET 0xC40 +#define S5PC100_GPIO_H3_OFFSET 0xC60 +#define S5PC100_GPIO_I_OFFSET 0x1E0 +#define S5PC100_GPIO_J0_OFFSET 0x200 +#define S5PC100_GPIO_J1_OFFSET 0x220 +#define S5PC100_GPIO_J2_OFFSET 0x240 +#define S5PC100_GPIO_J3_OFFSET 0x260 +#define S5PC100_GPIO_J4_OFFSET 0x280 +#define S5PC100_GPIO_K0_OFFSET 0x2A0 +#define S5PC100_GPIO_K1_OFFSET 0x2C0 +#define S5PC100_GPIO_K2_OFFSET 0x2E0 +#define S5PC100_GPIO_K3_OFFSET 0x300 +#define S5PC100_GPIO_L0_OFFSET 0x320 +#define S5PC100_GPIO_L1_OFFSET 0x340 +#define S5PC100_GPIO_L2_OFFSET 0x360 +#define S5PC100_GPIO_L3_OFFSET 0x380 +#define S5PC100_GPIO_L4_OFFSET 0x3A0 + +/* S5PC110 bank offset */ +#define S5PC110_GPIO_A0_OFFSET 0x000 +#define S5PC110_GPIO_A1_OFFSET 0x020 +#define S5PC110_GPIO_B_OFFSET 0x040 +#define S5PC110_GPIO_C0_OFFSET 0x060 +#define S5PC110_GPIO_C1_OFFSET 0x080 +#define S5PC110_GPIO_D0_OFFSET 0x0A0 +#define S5PC110_GPIO_D1_OFFSET 0x0C0 +#define S5PC110_GPIO_E0_OFFSET 0x0E0 +#define S5PC110_GPIO_E1_OFFSET 0x110 +#define S5PC110_GPIO_F0_OFFSET 0x120 +#define S5PC110_GPIO_F1_OFFSET 0x140 +#define S5PC110_GPIO_F2_OFFSET 0x160 +#define S5PC110_GPIO_F3_OFFSET 0x180 +#define S5PC110_GPIO_G0_OFFSET 0x1A0 +#define S5PC110_GPIO_G1_OFFSET 0x1C0 +#define S5PC110_GPIO_G2_OFFSET 0x1E0 +#define S5PC110_GPIO_G3_OFFSET 0x210 +#define S5PC110_GPIO_I_OFFSET 0x220 +#define S5PC110_GPIO_J0_OFFSET 0x240 +#define S5PC110_GPIO_J1_OFFSET 0x260 +#define S5PC110_GPIO_J2_OFFSET 0x280 +#define S5PC110_GPIO_J3_OFFSET 0x2A0 +#define S5PC110_GPIO_J4_OFFSET 0x2C0 +#define S5PC110_GPIO_MP0_1_OFFSET 0x2E0 +#define S5PC110_GPIO_MP0_2_OFFSET 0x310 +#define S5PC110_GPIO_MP0_3_OFFSET 0x320 +#define S5PC110_GPIO_MP0_4_OFFSET 0x340 +#define S5PC110_GPIO_MP0_5_OFFSET 0x360 +#define S5PC110_GPIO_MP0_6_OFFSET 0x380 +#define S5PC110_GPIO_MP0_7_OFFSET 0x3A0 +#define S5PC110_GPIO_MP1_0_OFFSET 0x3C0 +#define S5PC110_GPIO_MP1_1_OFFSET 0x3E0 +#define S5PC110_GPIO_MP1_2_OFFSET 0x410 +#define S5PC110_GPIO_MP1_3_OFFSET 0x420 +#define S5PC110_GPIO_MP1_4_OFFSET 0x440 +#define S5PC110_GPIO_MP1_5_OFFSET 0x460 +#define S5PC110_GPIO_MP1_6_OFFSET 0x480 +#define S5PC110_GPIO_MP1_7_OFFSET 0x4A0 +#define S5PC110_GPIO_MP1_8_OFFSET 0x4C0 +#define S5PC110_GPIO_MP2_0_OFFSET 0x4E0 +#define S5PC110_GPIO_MP2_1_OFFSET 0x510 +#define S5PC110_GPIO_MP2_2_OFFSET 0x520 +#define S5PC110_GPIO_MP2_3_OFFSET 0x540 +#define S5PC110_GPIO_MP2_4_OFFSET 0x560 +#define S5PC110_GPIO_MP2_5_OFFSET 0x580 +#define S5PC110_GPIO_MP2_6_OFFSET 0x5A0 +#define S5PC110_GPIO_MP2_7_OFFSET 0x5C0 +#define S5PC110_GPIO_MP2_8_OFFSET 0x5E0 + +/* GPIO bank Offset */ +#define S5PC1XX_GPIO_CON_OFFSET 0x0 +#define S5PC1XX_GPIO_DAT_OFFSET 0x4 +#define S5PC1XX_GPIO_PULL_OFFSET 0x8 +#define S5PC1XX_GPIO_DRV_OFFSET 0xc +#define S5PC1XX_GPIO_PDNCON_OFFSET 0x10 +#define S5PC1XX_GPIO_PDNPULL_OFFSET 0x14 + +#endif -- 2.7.4