diff options
| -rw-r--r-- | drivers/gpio/gpio-samsung.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/drivers/gpio/gpio-samsung.c b/drivers/gpio/gpio-samsung.c index 19d6fc0229c3..e991d9171961 100644 --- a/drivers/gpio/gpio-samsung.c +++ b/drivers/gpio/gpio-samsung.c | |||
| @@ -452,12 +452,14 @@ static struct samsung_gpio_cfg s3c24xx_gpiocfg_banka = { | |||
| 452 | }; | 452 | }; |
| 453 | #endif | 453 | #endif |
| 454 | 454 | ||
| 455 | #if defined(CONFIG_ARCH_EXYNOS4) || defined(CONFIG_ARCH_EXYNOS5) | ||
| 455 | static struct samsung_gpio_cfg exynos_gpio_cfg = { | 456 | static struct samsung_gpio_cfg exynos_gpio_cfg = { |
| 456 | .set_pull = exynos_gpio_setpull, | 457 | .set_pull = exynos_gpio_setpull, |
| 457 | .get_pull = exynos_gpio_getpull, | 458 | .get_pull = exynos_gpio_getpull, |
| 458 | .set_config = samsung_gpio_setcfg_4bit, | 459 | .set_config = samsung_gpio_setcfg_4bit, |
| 459 | .get_config = samsung_gpio_getcfg_4bit, | 460 | .get_config = samsung_gpio_getcfg_4bit, |
| 460 | }; | 461 | }; |
| 462 | #endif | ||
| 461 | 463 | ||
| 462 | #if defined(CONFIG_CPU_S5P6440) || defined(CONFIG_CPU_S5P6450) | 464 | #if defined(CONFIG_CPU_S5P6440) || defined(CONFIG_CPU_S5P6450) |
| 463 | static struct samsung_gpio_cfg s5p64x0_gpio_cfg_rbank = { | 465 | static struct samsung_gpio_cfg s5p64x0_gpio_cfg_rbank = { |
| @@ -2123,8 +2125,8 @@ static struct samsung_gpio_chip s5pv210_gpios_4bit[] = { | |||
| 2123 | * uses the above macro and depends on the banks being listed in order here. | 2125 | * uses the above macro and depends on the banks being listed in order here. |
| 2124 | */ | 2126 | */ |
| 2125 | 2127 | ||
| 2126 | static struct samsung_gpio_chip exynos4_gpios_1[] = { | ||
| 2127 | #ifdef CONFIG_ARCH_EXYNOS4 | 2128 | #ifdef CONFIG_ARCH_EXYNOS4 |
| 2129 | static struct samsung_gpio_chip exynos4_gpios_1[] = { | ||
| 2128 | { | 2130 | { |
| 2129 | .chip = { | 2131 | .chip = { |
| 2130 | .base = EXYNOS4_GPA0(0), | 2132 | .base = EXYNOS4_GPA0(0), |
| @@ -2222,11 +2224,11 @@ static struct samsung_gpio_chip exynos4_gpios_1[] = { | |||
| 2222 | .label = "GPF3", | 2224 | .label = "GPF3", |
| 2223 | }, | 2225 | }, |
| 2224 | }, | 2226 | }, |
| 2225 | #endif | ||
| 2226 | }; | 2227 | }; |
| 2228 | #endif | ||
| 2227 | 2229 | ||
| 2228 | static struct samsung_gpio_chip exynos4_gpios_2[] = { | ||
| 2229 | #ifdef CONFIG_ARCH_EXYNOS4 | 2230 | #ifdef CONFIG_ARCH_EXYNOS4 |
| 2231 | static struct samsung_gpio_chip exynos4_gpios_2[] = { | ||
| 2230 | { | 2232 | { |
| 2231 | .chip = { | 2233 | .chip = { |
| 2232 | .base = EXYNOS4_GPJ0(0), | 2234 | .base = EXYNOS4_GPJ0(0), |
| @@ -2367,11 +2369,11 @@ static struct samsung_gpio_chip exynos4_gpios_2[] = { | |||
| 2367 | .to_irq = samsung_gpiolib_to_irq, | 2369 | .to_irq = samsung_gpiolib_to_irq, |
| 2368 | }, | 2370 | }, |
| 2369 | }, | 2371 | }, |
| 2370 | #endif | ||
| 2371 | }; | 2372 | }; |
| 2373 | #endif | ||
| 2372 | 2374 | ||
| 2373 | static struct samsung_gpio_chip exynos4_gpios_3[] = { | ||
| 2374 | #ifdef CONFIG_ARCH_EXYNOS4 | 2375 | #ifdef CONFIG_ARCH_EXYNOS4 |
| 2376 | static struct samsung_gpio_chip exynos4_gpios_3[] = { | ||
| 2375 | { | 2377 | { |
| 2376 | .chip = { | 2378 | .chip = { |
| 2377 | .base = EXYNOS4_GPZ(0), | 2379 | .base = EXYNOS4_GPZ(0), |
| @@ -2379,8 +2381,8 @@ static struct samsung_gpio_chip exynos4_gpios_3[] = { | |||
| 2379 | .label = "GPZ", | 2381 | .label = "GPZ", |
| 2380 | }, | 2382 | }, |
| 2381 | }, | 2383 | }, |
| 2382 | #endif | ||
| 2383 | }; | 2384 | }; |
| 2385 | #endif | ||
| 2384 | 2386 | ||
| 2385 | #ifdef CONFIG_ARCH_EXYNOS5 | 2387 | #ifdef CONFIG_ARCH_EXYNOS5 |
| 2386 | static struct samsung_gpio_chip exynos5_gpios_1[] = { | 2388 | static struct samsung_gpio_chip exynos5_gpios_1[] = { |
| @@ -2719,7 +2721,9 @@ static __init int samsung_gpiolib_init(void) | |||
| 2719 | { | 2721 | { |
| 2720 | struct samsung_gpio_chip *chip; | 2722 | struct samsung_gpio_chip *chip; |
| 2721 | int i, nr_chips; | 2723 | int i, nr_chips; |
| 2724 | #if defined(CONFIG_CPU_EXYNOS4210) || defined(CONFIG_SOC_EXYNOS5250) | ||
| 2722 | void __iomem *gpio_base1, *gpio_base2, *gpio_base3, *gpio_base4; | 2725 | void __iomem *gpio_base1, *gpio_base2, *gpio_base3, *gpio_base4; |
| 2726 | #endif | ||
| 2723 | int group = 0; | 2727 | int group = 0; |
| 2724 | 2728 | ||
| 2725 | samsung_gpiolib_set_cfg(samsung_gpio_cfgs, ARRAY_SIZE(samsung_gpio_cfgs)); | 2729 | samsung_gpiolib_set_cfg(samsung_gpio_cfgs, ARRAY_SIZE(samsung_gpio_cfgs)); |
| @@ -2971,6 +2975,7 @@ static __init int samsung_gpiolib_init(void) | |||
| 2971 | 2975 | ||
| 2972 | return 0; | 2976 | return 0; |
| 2973 | 2977 | ||
| 2978 | #if defined(CONFIG_CPU_EXYNOS4210) || defined(CONFIG_SOC_EXYNOS5250) | ||
| 2974 | err_ioremap4: | 2979 | err_ioremap4: |
| 2975 | iounmap(gpio_base3); | 2980 | iounmap(gpio_base3); |
| 2976 | err_ioremap3: | 2981 | err_ioremap3: |
| @@ -2979,6 +2984,7 @@ err_ioremap2: | |||
| 2979 | iounmap(gpio_base1); | 2984 | iounmap(gpio_base1); |
| 2980 | err_ioremap1: | 2985 | err_ioremap1: |
| 2981 | return -ENOMEM; | 2986 | return -ENOMEM; |
| 2987 | #endif | ||
| 2982 | } | 2988 | } |
| 2983 | core_initcall(samsung_gpiolib_init); | 2989 | core_initcall(samsung_gpiolib_init); |
| 2984 | 2990 | ||
