s5pc1xx: Update GPIO definition
authorKyungmin Park <kyungmin.park@samsung.com>
Wed, 22 Jul 2009 00:26:51 +0000 (09:26 +0900)
committerKyungmin Park <kyungmin.park@samsung.com>
Wed, 22 Jul 2009 00:26:51 +0000 (09:26 +0900)
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
board/samsung/universal/lowlevel_init.S
board/samsung/universal/universal.c
drivers/i2c/s5pc1xx_i2c.c
include/asm-arm/arch-s5pc100/cpu.h
include/asm-arm/arch-s5pc100/gpio.h

index e64380f..3f22fc9 100644 (file)
@@ -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
 
index fb737bf..ffe0cd6 100644 (file)
@@ -29,6 +29,7 @@
  */
 
 #include <common.h>
+#include <asm/io.h>
 
 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;
index b854cda..c0cd019 100644 (file)
@@ -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);
 }
 
 /*
index 8e7b7b9..e699bfd 100644 (file)
@@ -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 */
index bd49aaa..9baef7f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * (C) Copyright 2009 SAMSUNG Electronics
+ * (C) Copyright 2009 Samsung Electronics
  * Heungjun Kim <riverful.kim@samsung.com>
  * Minkyu Kang <mk7.kang@samsung.com>
  *
  * 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