diff options
author | Ben Dooks <ben-linux@fluff.org> | 2010-05-04 02:01:44 -0400 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2010-05-05 20:32:30 -0400 |
commit | eee2b94f01f7379940a656af8ef097749ce025b5 (patch) | |
tree | 710ff6594a5619df3ffc48b1a661ce68de5cc1a8 /arch/arm | |
parent | 40b956f026a3303a67d2ab7fffa2331f72e1e019 (diff) |
ARM: S3C24XX: Remove s3c2410_gpio_setcfg()
Remove the implementation of s3c2410_gpio_setcfg() as it should now be
functionally equivalent to s3c_gpio_cfgpin(), and add a wrapper for those
drivers that are still using this call.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-s3c2410/include/mach/gpio-fns.h | 35 | ||||
-rw-r--r-- | arch/arm/plat-s3c24xx/gpio.c | 48 |
2 files changed, 24 insertions, 59 deletions
diff --git a/arch/arm/mach-s3c2410/include/mach/gpio-fns.h b/arch/arm/mach-s3c2410/include/mach/gpio-fns.h index 035a493952db..f50c2a5f7ab3 100644 --- a/arch/arm/mach-s3c2410/include/mach/gpio-fns.h +++ b/arch/arm/mach-s3c2410/include/mach/gpio-fns.h | |||
@@ -10,14 +10,28 @@ | |||
10 | * published by the Free Software Foundation. | 10 | * published by the Free Software Foundation. |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #ifndef __MACH_GPIO_FNS_H | ||
14 | #define __MACH_GPIO_FNS_H __FILE__ | ||
15 | |||
13 | /* These functions are in the to-be-removed category and it is strongly | 16 | /* These functions are in the to-be-removed category and it is strongly |
14 | * encouraged not to use these in new code. They will be marked deprecated | 17 | * encouraged not to use these in new code. They will be marked deprecated |
15 | * very soon. | 18 | * very soon. |
16 | * | 19 | * |
17 | * Most of the functionality can be either replaced by the gpiocfg calls | 20 | * Most of the functionality can be either replaced by the gpiocfg calls |
18 | * for the s3c platform or by the generic GPIOlib API. | 21 | * for the s3c platform or by the generic GPIOlib API. |
22 | * | ||
23 | * As of 2.6.35-rc, these will be removed, with the few drivers using them | ||
24 | * either replaced or given a wrapper until the calls can be removed. | ||
19 | */ | 25 | */ |
20 | 26 | ||
27 | #include <plat/gpio-cfg.h> | ||
28 | |||
29 | static inline void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int cfg) | ||
30 | { | ||
31 | /* 1:1 mapping between cfgpin and setcfg calls at the moment */ | ||
32 | s3c_gpio_cfgpin(pin, cfg); | ||
33 | } | ||
34 | |||
21 | /* external functions for GPIO support | 35 | /* external functions for GPIO support |
22 | * | 36 | * |
23 | * These allow various different clients to access the same GPIO | 37 | * These allow various different clients to access the same GPIO |
@@ -25,17 +39,6 @@ | |||
25 | * GPIO register, then it is safe to ioremap/__raw_{read|write} to it. | 39 | * GPIO register, then it is safe to ioremap/__raw_{read|write} to it. |
26 | */ | 40 | */ |
27 | 41 | ||
28 | /* s3c2410_gpio_cfgpin | ||
29 | * | ||
30 | * set the configuration of the given pin to the value passed. | ||
31 | * | ||
32 | * eg: | ||
33 | * s3c2410_gpio_cfgpin(S3C2410_GPA(0), S3C2410_GPA0_ADDR0); | ||
34 | * s3c2410_gpio_cfgpin(S3C2410_GPE(8), S3C2410_GPE8_SDDAT1); | ||
35 | */ | ||
36 | |||
37 | extern void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function); | ||
38 | |||
39 | extern unsigned int s3c2410_gpio_getcfg(unsigned int pin); | 42 | extern unsigned int s3c2410_gpio_getcfg(unsigned int pin); |
40 | 43 | ||
41 | /* s3c2410_gpio_getirq | 44 | /* s3c2410_gpio_getirq |
@@ -73,6 +76,14 @@ extern int s3c2410_gpio_irqfilter(unsigned int pin, unsigned int on, | |||
73 | 76 | ||
74 | /* s3c2410_gpio_pullup | 77 | /* s3c2410_gpio_pullup |
75 | * | 78 | * |
79 | * This call should be replaced with s3c_gpio_setpull(). | ||
80 | * | ||
81 | * As a note, there is currently no distinction between pull-up and pull-down | ||
82 | * in the s3c24xx series devices with only an on/off configuration. | ||
83 | */ | ||
84 | |||
85 | /* s3c2410_gpio_pullup | ||
86 | * | ||
76 | * configure the pull-up control on the given pin | 87 | * configure the pull-up control on the given pin |
77 | * | 88 | * |
78 | * to = 1 => disable the pull-up | 89 | * to = 1 => disable the pull-up |
@@ -101,3 +112,5 @@ extern int s3c2410_gpio_getpull(unsigned int pin); | |||
101 | extern void s3c2410_gpio_setpin(unsigned int pin, unsigned int to); | 112 | extern void s3c2410_gpio_setpin(unsigned int pin, unsigned int to); |
102 | 113 | ||
103 | extern unsigned int s3c2410_gpio_getpin(unsigned int pin); | 114 | extern unsigned int s3c2410_gpio_getpin(unsigned int pin); |
115 | |||
116 | #endif /* __MACH_GPIO_FNS_H */ | ||
diff --git a/arch/arm/plat-s3c24xx/gpio.c b/arch/arm/plat-s3c24xx/gpio.c index 5467470badfd..0b3b2cb228ab 100644 --- a/arch/arm/plat-s3c24xx/gpio.c +++ b/arch/arm/plat-s3c24xx/gpio.c | |||
@@ -34,54 +34,6 @@ | |||
34 | 34 | ||
35 | #include <mach/regs-gpio.h> | 35 | #include <mach/regs-gpio.h> |
36 | 36 | ||
37 | void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function) | ||
38 | { | ||
39 | void __iomem *base = S3C24XX_GPIO_BASE(pin); | ||
40 | unsigned long mask; | ||
41 | unsigned long con; | ||
42 | unsigned long flags; | ||
43 | |||
44 | if (pin < S3C2410_GPIO_BANKB) { | ||
45 | mask = 1 << S3C2410_GPIO_OFFSET(pin); | ||
46 | } else { | ||
47 | mask = 3 << S3C2410_GPIO_OFFSET(pin)*2; | ||
48 | } | ||
49 | |||
50 | switch (function) { | ||
51 | case S3C2410_GPIO_LEAVE: | ||
52 | mask = 0; | ||
53 | function = 0; | ||
54 | break; | ||
55 | |||
56 | case S3C2410_GPIO_INPUT: | ||
57 | case S3C2410_GPIO_OUTPUT: | ||
58 | case S3C2410_GPIO_SFN2: | ||
59 | case S3C2410_GPIO_SFN3: | ||
60 | if (pin < S3C2410_GPIO_BANKB) { | ||
61 | function -= 1; | ||
62 | function &= 1; | ||
63 | function <<= S3C2410_GPIO_OFFSET(pin); | ||
64 | } else { | ||
65 | function &= 3; | ||
66 | function <<= S3C2410_GPIO_OFFSET(pin)*2; | ||
67 | } | ||
68 | } | ||
69 | |||
70 | /* modify the specified register wwith IRQs off */ | ||
71 | |||
72 | local_irq_save(flags); | ||
73 | |||
74 | con = __raw_readl(base + 0x00); | ||
75 | con &= ~mask; | ||
76 | con |= function; | ||
77 | |||
78 | __raw_writel(con, base + 0x00); | ||
79 | |||
80 | local_irq_restore(flags); | ||
81 | } | ||
82 | |||
83 | EXPORT_SYMBOL(s3c2410_gpio_cfgpin); | ||
84 | |||
85 | unsigned int s3c2410_gpio_getcfg(unsigned int pin) | 37 | unsigned int s3c2410_gpio_getcfg(unsigned int pin) |
86 | { | 38 | { |
87 | void __iomem *base = S3C24XX_GPIO_BASE(pin); | 39 | void __iomem *base = S3C24XX_GPIO_BASE(pin); |