aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorSachin Kamat <sachin.kamat@linaro.org>2012-04-25 11:31:37 +0530
committerTushar Behera <tushar.behera@linaro.org>2013-03-14 10:46:02 +0530
commit04433ba9ec45ba83333b8956276988664a741196 (patch)
tree0d2c3aa6e05d1fb840b926f86ea56ceac4e6adc1 /arch
parent37419ff89ed9cf6639419aded4b3d840319d48e0 (diff)
ARM: EXYNOS: GPIO: Add GPIO support for EXYNOS4412
Add GPIO support for EXYNOS4210. 1. Increased the length for gpio part 3 to accomodate all the SFRs of EXYNOS4412 gpio part 3. 2. Added additional part4 for GPVs. 3. Added new GPMs 4. Updated S3C_GPIO_END as with the inclusion of new gpios, EXYNOS4 has more gpios than exynos5. Signed-off-by: Inderpal Singh <inderpal.singh@linaro.org> Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-exynos/include/mach/gpio.h36
-rw-r--r--arch/arm/mach-exynos/include/mach/map.h2
2 files changed, 35 insertions, 3 deletions
diff --git a/arch/arm/mach-exynos/include/mach/gpio.h b/arch/arm/mach-exynos/include/mach/gpio.h
index eb24f1eb8e3b..be227588cd8c 100644
--- a/arch/arm/mach-exynos/include/mach/gpio.h
+++ b/arch/arm/mach-exynos/include/mach/gpio.h
@@ -44,6 +44,16 @@
#define EXYNOS4_GPIO_L0_NR (8)
#define EXYNOS4_GPIO_L1_NR (3)
#define EXYNOS4_GPIO_L2_NR (8)
+#define EXYNOS4_GPIO_M0_NR (8)
+#define EXYNOS4_GPIO_M1_NR (7)
+#define EXYNOS4_GPIO_M2_NR (5)
+#define EXYNOS4_GPIO_M3_NR (8)
+#define EXYNOS4_GPIO_M4_NR (8)
+#define EXYNOS4_GPIO_V0_NR (8)
+#define EXYNOS4_GPIO_V1_NR (8)
+#define EXYNOS4_GPIO_V2_NR (8)
+#define EXYNOS4_GPIO_V3_NR (8)
+#define EXYNOS4_GPIO_V4_NR (2)
#define EXYNOS4_GPIO_X0_NR (8)
#define EXYNOS4_GPIO_X1_NR (8)
#define EXYNOS4_GPIO_X2_NR (8)
@@ -85,7 +95,17 @@ enum exynos4_gpio_number {
EXYNOS4_GPIO_L0_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_K3),
EXYNOS4_GPIO_L1_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_L0),
EXYNOS4_GPIO_L2_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_L1),
- EXYNOS4_GPIO_X0_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_L2),
+ EXYNOS4_GPIO_M0_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_L2),
+ EXYNOS4_GPIO_M1_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_M0),
+ EXYNOS4_GPIO_M2_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_M1),
+ EXYNOS4_GPIO_M3_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_M2),
+ EXYNOS4_GPIO_M4_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_M3),
+ EXYNOS4_GPIO_V0_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_M4),
+ EXYNOS4_GPIO_V1_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_V0),
+ EXYNOS4_GPIO_V2_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_V1),
+ EXYNOS4_GPIO_V3_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_V2),
+ EXYNOS4_GPIO_V4_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_V3),
+ EXYNOS4_GPIO_X0_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_V4),
EXYNOS4_GPIO_X1_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_X0),
EXYNOS4_GPIO_X2_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_X1),
EXYNOS4_GPIO_X3_START = EXYNOS_GPIO_NEXT(EXYNOS4_GPIO_X2),
@@ -126,6 +146,16 @@ enum exynos4_gpio_number {
#define EXYNOS4_GPL0(_nr) (EXYNOS4_GPIO_L0_START + (_nr))
#define EXYNOS4_GPL1(_nr) (EXYNOS4_GPIO_L1_START + (_nr))
#define EXYNOS4_GPL2(_nr) (EXYNOS4_GPIO_L2_START + (_nr))
+#define EXYNOS4_GPM0(_nr) (EXYNOS4_GPIO_M0_START + (_nr))
+#define EXYNOS4_GPM1(_nr) (EXYNOS4_GPIO_M1_START + (_nr))
+#define EXYNOS4_GPM2(_nr) (EXYNOS4_GPIO_M2_START + (_nr))
+#define EXYNOS4_GPM3(_nr) (EXYNOS4_GPIO_M3_START + (_nr))
+#define EXYNOS4_GPM4(_nr) (EXYNOS4_GPIO_M4_START + (_nr))
+#define EXYNOS4_GPV0(_nr) (EXYNOS4_GPIO_V0_START + (_nr))
+#define EXYNOS4_GPV1(_nr) (EXYNOS4_GPIO_V1_START + (_nr))
+#define EXYNOS4_GPV2(_nr) (EXYNOS4_GPIO_V2_START + (_nr))
+#define EXYNOS4_GPV3(_nr) (EXYNOS4_GPIO_V3_START + (_nr))
+#define EXYNOS4_GPV4(_nr) (EXYNOS4_GPIO_V4_START + (_nr))
#define EXYNOS4_GPX0(_nr) (EXYNOS4_GPIO_X0_START + (_nr))
#define EXYNOS4_GPX1(_nr) (EXYNOS4_GPIO_X1_START + (_nr))
#define EXYNOS4_GPX2(_nr) (EXYNOS4_GPIO_X2_START + (_nr))
@@ -278,9 +308,9 @@ enum exynos5_gpio_number {
#define EXYNOS5_GPIO_END (EXYNOS5_GPZ(EXYNOS5_GPIO_Z_NR) + 1)
-/* actually, EXYNOS5_GPIO_END is bigger than EXYNOS4 */
+/* EXYNOS4_GPIO_END is bigger than EXYNOS5 */
-#define S3C_GPIO_END (EXYNOS5_GPIO_END)
+#define S3C_GPIO_END (EXYNOS4_GPIO_END)
/* define the number of gpios */
diff --git a/arch/arm/mach-exynos/include/mach/map.h b/arch/arm/mach-exynos/include/mach/map.h
index b8ea67e55fbe..e474a1ce0d9b 100644
--- a/arch/arm/mach-exynos/include/mach/map.h
+++ b/arch/arm/mach-exynos/include/mach/map.h
@@ -172,6 +172,8 @@
#define EXYNOS4_PA_GPIO1 0x11400000
#define EXYNOS4_PA_GPIO2 0x11000000
#define EXYNOS4_PA_GPIO3 0x03860000
+#define EXYNOS4_PA_GPIO4 0x106E0000
+
#define EXYNOS5_PA_GPIO1 0x11400000
#define EXYNOS5_PA_GPIO2 0x13400000
#define EXYNOS5_PA_GPIO3 0x10D10000