diff options
author | Sangsu Park <sangsu4u.park@samsung.com> | 2012-04-24 17:44:58 -0400 |
---|---|---|
committer | Kukjin Kim <kgene.kim@samsung.com> | 2012-05-15 18:03:01 -0400 |
commit | f10590c9836c9fc595d1dafff965b280029d4f16 (patch) | |
tree | d227e00bf2c8428040d6d21e43dfc6bb81650eee | |
parent | eeed66e3a50f4d23d542498b17861ffadcdaf8ec (diff) |
ARM: EXYNOS: add GPC4 bank instance
Add GPC4 bank instance which is included in rev1 of EXYNOS5.
Signed-off-by: Sangsu Park <sangsu4u.park@samsung.com>
Signed-off-by: Thomas Abraham <thomas.abraham@linaro.org>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
-rw-r--r-- | arch/arm/mach-exynos/include/mach/gpio.h | 9 | ||||
-rw-r--r-- | arch/arm/mach-exynos/include/mach/irqs.h | 2 | ||||
-rw-r--r-- | drivers/gpio/gpio-samsung.c | 11 |
3 files changed, 17 insertions, 5 deletions
diff --git a/arch/arm/mach-exynos/include/mach/gpio.h b/arch/arm/mach-exynos/include/mach/gpio.h index d7498afe036a..eb24f1eb8e3b 100644 --- a/arch/arm/mach-exynos/include/mach/gpio.h +++ b/arch/arm/mach-exynos/include/mach/gpio.h | |||
@@ -153,10 +153,11 @@ enum exynos4_gpio_number { | |||
153 | #define EXYNOS5_GPIO_B2_NR (4) | 153 | #define EXYNOS5_GPIO_B2_NR (4) |
154 | #define EXYNOS5_GPIO_B3_NR (4) | 154 | #define EXYNOS5_GPIO_B3_NR (4) |
155 | #define EXYNOS5_GPIO_C0_NR (7) | 155 | #define EXYNOS5_GPIO_C0_NR (7) |
156 | #define EXYNOS5_GPIO_C1_NR (7) | 156 | #define EXYNOS5_GPIO_C1_NR (4) |
157 | #define EXYNOS5_GPIO_C2_NR (7) | 157 | #define EXYNOS5_GPIO_C2_NR (7) |
158 | #define EXYNOS5_GPIO_C3_NR (7) | 158 | #define EXYNOS5_GPIO_C3_NR (7) |
159 | #define EXYNOS5_GPIO_D0_NR (8) | 159 | #define EXYNOS5_GPIO_C4_NR (7) |
160 | #define EXYNOS5_GPIO_D0_NR (4) | ||
160 | #define EXYNOS5_GPIO_D1_NR (8) | 161 | #define EXYNOS5_GPIO_D1_NR (8) |
161 | #define EXYNOS5_GPIO_Y0_NR (6) | 162 | #define EXYNOS5_GPIO_Y0_NR (6) |
162 | #define EXYNOS5_GPIO_Y1_NR (4) | 163 | #define EXYNOS5_GPIO_Y1_NR (4) |
@@ -199,7 +200,8 @@ enum exynos5_gpio_number { | |||
199 | EXYNOS5_GPIO_C1_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_C0), | 200 | EXYNOS5_GPIO_C1_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_C0), |
200 | EXYNOS5_GPIO_C2_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_C1), | 201 | EXYNOS5_GPIO_C2_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_C1), |
201 | EXYNOS5_GPIO_C3_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_C2), | 202 | EXYNOS5_GPIO_C3_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_C2), |
202 | EXYNOS5_GPIO_D0_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_C3), | 203 | EXYNOS5_GPIO_C4_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_C3), |
204 | EXYNOS5_GPIO_D0_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_C4), | ||
203 | EXYNOS5_GPIO_D1_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_D0), | 205 | EXYNOS5_GPIO_D1_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_D0), |
204 | EXYNOS5_GPIO_Y0_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_D1), | 206 | EXYNOS5_GPIO_Y0_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_D1), |
205 | EXYNOS5_GPIO_Y1_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_Y0), | 207 | EXYNOS5_GPIO_Y1_START = EXYNOS_GPIO_NEXT(EXYNOS5_GPIO_Y0), |
@@ -242,6 +244,7 @@ enum exynos5_gpio_number { | |||
242 | #define EXYNOS5_GPC1(_nr) (EXYNOS5_GPIO_C1_START + (_nr)) | 244 | #define EXYNOS5_GPC1(_nr) (EXYNOS5_GPIO_C1_START + (_nr)) |
243 | #define EXYNOS5_GPC2(_nr) (EXYNOS5_GPIO_C2_START + (_nr)) | 245 | #define EXYNOS5_GPC2(_nr) (EXYNOS5_GPIO_C2_START + (_nr)) |
244 | #define EXYNOS5_GPC3(_nr) (EXYNOS5_GPIO_C3_START + (_nr)) | 246 | #define EXYNOS5_GPC3(_nr) (EXYNOS5_GPIO_C3_START + (_nr)) |
247 | #define EXYNOS5_GPC4(_nr) (EXYNOS5_GPIO_C4_START + (_nr)) | ||
245 | #define EXYNOS5_GPD0(_nr) (EXYNOS5_GPIO_D0_START + (_nr)) | 248 | #define EXYNOS5_GPD0(_nr) (EXYNOS5_GPIO_D0_START + (_nr)) |
246 | #define EXYNOS5_GPD1(_nr) (EXYNOS5_GPIO_D1_START + (_nr)) | 249 | #define EXYNOS5_GPD1(_nr) (EXYNOS5_GPIO_D1_START + (_nr)) |
247 | #define EXYNOS5_GPY0(_nr) (EXYNOS5_GPIO_Y0_START + (_nr)) | 250 | #define EXYNOS5_GPY0(_nr) (EXYNOS5_GPIO_Y0_START + (_nr)) |
diff --git a/arch/arm/mach-exynos/include/mach/irqs.h b/arch/arm/mach-exynos/include/mach/irqs.h index 86e75f561b6f..b1d3b68fcc9f 100644 --- a/arch/arm/mach-exynos/include/mach/irqs.h +++ b/arch/arm/mach-exynos/include/mach/irqs.h | |||
@@ -435,7 +435,7 @@ | |||
435 | 435 | ||
436 | #define EXYNOS5_MAX_COMBINER_NR 32 | 436 | #define EXYNOS5_MAX_COMBINER_NR 32 |
437 | 437 | ||
438 | #define EXYNOS5_IRQ_GPIO1_NR_GROUPS 13 | 438 | #define EXYNOS5_IRQ_GPIO1_NR_GROUPS 14 |
439 | #define EXYNOS5_IRQ_GPIO2_NR_GROUPS 9 | 439 | #define EXYNOS5_IRQ_GPIO2_NR_GROUPS 9 |
440 | #define EXYNOS5_IRQ_GPIO3_NR_GROUPS 5 | 440 | #define EXYNOS5_IRQ_GPIO3_NR_GROUPS 5 |
441 | #define EXYNOS5_IRQ_GPIO4_NR_GROUPS 1 | 441 | #define EXYNOS5_IRQ_GPIO4_NR_GROUPS 1 |
diff --git a/drivers/gpio/gpio-samsung.c b/drivers/gpio/gpio-samsung.c index e991d9171961..f88bb9f919a8 100644 --- a/drivers/gpio/gpio-samsung.c +++ b/drivers/gpio/gpio-samsung.c | |||
@@ -2454,6 +2454,12 @@ static struct samsung_gpio_chip exynos5_gpios_1[] = { | |||
2454 | }, | 2454 | }, |
2455 | }, { | 2455 | }, { |
2456 | .chip = { | 2456 | .chip = { |
2457 | .base = EXYNOS5_GPC4(0), | ||
2458 | .ngpio = EXYNOS5_GPIO_C4_NR, | ||
2459 | .label = "GPC4", | ||
2460 | }, | ||
2461 | }, { | ||
2462 | .chip = { | ||
2457 | .base = EXYNOS5_GPD0(0), | 2463 | .base = EXYNOS5_GPD0(0), |
2458 | .ngpio = EXYNOS5_GPIO_D0_NR, | 2464 | .ngpio = EXYNOS5_GPIO_D0_NR, |
2459 | .label = "GPD0", | 2465 | .label = "GPD0", |
@@ -2878,8 +2884,11 @@ static __init int samsung_gpiolib_init(void) | |||
2878 | goto err_ioremap1; | 2884 | goto err_ioremap1; |
2879 | } | 2885 | } |
2880 | 2886 | ||
2887 | /* need to set base address for gpc4 */ | ||
2888 | exynos5_gpios_1[11].base = gpio_base1 + 0x2E0; | ||
2889 | |||
2881 | /* need to set base address for gpx */ | 2890 | /* need to set base address for gpx */ |
2882 | chip = &exynos5_gpios_1[20]; | 2891 | chip = &exynos5_gpios_1[21]; |
2883 | gpx_base = gpio_base1 + 0xC00; | 2892 | gpx_base = gpio_base1 + 0xC00; |
2884 | for (i = 0; i < 4; i++, chip++, gpx_base += 0x20) | 2893 | for (i = 0; i < 4; i++, chip++, gpx_base += 0x20) |
2885 | chip->base = gpx_base; | 2894 | chip->base = gpx_base; |