diff options
author | Ben Dooks <ben-linux@fluff.org> | 2010-05-05 21:50:42 -0400 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2010-05-05 21:50:42 -0400 |
commit | 9933847b29bb3d3447d19236375ccc84bfbcf3df (patch) | |
tree | d8aa5a6cfc064cf668950c08f4a99418a104b950 /arch | |
parent | 97a339995fa6224487dc026e466f5bd1bbcaa3b2 (diff) |
ARM: S3C24XX: Remove s3c2410_gpio_getcfg(), implement s3c_gpio_getcfg()
Add s3c_gpio_getcfg() and change anything using s3c2410_gpio_getcfg() to
use this instead.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/plat-s3c24xx/gpio.c | 19 | ||||
-rw-r--r-- | arch/arm/plat-s3c24xx/pm.c | 4 | ||||
-rw-r--r-- | arch/arm/plat-samsung/gpio-config.c | 20 | ||||
-rw-r--r-- | arch/arm/plat-samsung/include/plat/gpio-cfg-helpers.h | 6 | ||||
-rw-r--r-- | arch/arm/plat-samsung/include/plat/gpio-cfg.h | 11 |
5 files changed, 39 insertions, 21 deletions
diff --git a/arch/arm/plat-s3c24xx/gpio.c b/arch/arm/plat-s3c24xx/gpio.c index 24c00470b86c..c7c0cd73b946 100644 --- a/arch/arm/plat-s3c24xx/gpio.c +++ b/arch/arm/plat-s3c24xx/gpio.c | |||
@@ -33,25 +33,6 @@ | |||
33 | 33 | ||
34 | #include <mach/regs-gpio.h> | 34 | #include <mach/regs-gpio.h> |
35 | 35 | ||
36 | unsigned int s3c2410_gpio_getcfg(unsigned int pin) | ||
37 | { | ||
38 | void __iomem *base = S3C24XX_GPIO_BASE(pin); | ||
39 | unsigned long val = __raw_readl(base); | ||
40 | |||
41 | if (pin < S3C2410_GPIO_BANKB) { | ||
42 | val >>= S3C2410_GPIO_OFFSET(pin); | ||
43 | val &= 1; | ||
44 | val += 1; | ||
45 | } else { | ||
46 | val >>= S3C2410_GPIO_OFFSET(pin)*2; | ||
47 | val &= 3; | ||
48 | } | ||
49 | |||
50 | return val | S3C2410_GPIO_INPUT; | ||
51 | } | ||
52 | |||
53 | EXPORT_SYMBOL(s3c2410_gpio_getcfg); | ||
54 | |||
55 | void s3c2410_gpio_pullup(unsigned int pin, unsigned int to) | 36 | void s3c2410_gpio_pullup(unsigned int pin, unsigned int to) |
56 | { | 37 | { |
57 | void __iomem *base = S3C24XX_GPIO_BASE(pin); | 38 | void __iomem *base = S3C24XX_GPIO_BASE(pin); |
diff --git a/arch/arm/plat-s3c24xx/pm.c b/arch/arm/plat-s3c24xx/pm.c index 691fecc61d53..60627e63a254 100644 --- a/arch/arm/plat-s3c24xx/pm.c +++ b/arch/arm/plat-s3c24xx/pm.c | |||
@@ -98,11 +98,11 @@ static void s3c_pm_check_resume_pin(unsigned int pin, unsigned int irqoffs) | |||
98 | else | 98 | else |
99 | irqstate = s3c_irqwake_eintmask & (1L<<irqoffs); | 99 | irqstate = s3c_irqwake_eintmask & (1L<<irqoffs); |
100 | 100 | ||
101 | pinstate = s3c2410_gpio_getcfg(pin); | 101 | pinstate = s3c_gpio_getcfg(pin); |
102 | 102 | ||
103 | if (!irqstate) { | 103 | if (!irqstate) { |
104 | if (pinstate == S3C2410_GPIO_IRQ) | 104 | if (pinstate == S3C2410_GPIO_IRQ) |
105 | S3C_PMDBG("Leaving IRQ %d (pin %d) enabled\n", irq, pin); | 105 | S3C_PMDBG("Leaving IRQ %d (pin %d) as is\n", irq, pin); |
106 | } else { | 106 | } else { |
107 | if (pinstate == S3C2410_GPIO_IRQ) { | 107 | if (pinstate == S3C2410_GPIO_IRQ) { |
108 | S3C_PMDBG("Disabling IRQ %d (pin %d)\n", irq, pin); | 108 | S3C_PMDBG("Disabling IRQ %d (pin %d)\n", irq, pin); |
diff --git a/arch/arm/plat-samsung/gpio-config.c b/arch/arm/plat-samsung/gpio-config.c index 19ab89df24c1..3282db360fa8 100644 --- a/arch/arm/plat-samsung/gpio-config.c +++ b/arch/arm/plat-samsung/gpio-config.c | |||
@@ -41,6 +41,26 @@ int s3c_gpio_cfgpin(unsigned int pin, unsigned int config) | |||
41 | } | 41 | } |
42 | EXPORT_SYMBOL(s3c_gpio_cfgpin); | 42 | EXPORT_SYMBOL(s3c_gpio_cfgpin); |
43 | 43 | ||
44 | unsigned s3c_gpio_getcfg(unsigned int pin) | ||
45 | { | ||
46 | struct s3c_gpio_chip *chip = s3c_gpiolib_getchip(pin); | ||
47 | unsigned long flags; | ||
48 | unsigned ret = 0; | ||
49 | int offset; | ||
50 | |||
51 | if (chip) { | ||
52 | offset = pin - chip->chip.base; | ||
53 | |||
54 | local_irq_save(flags); | ||
55 | ret = s3c_gpio_do_getcfg(chip, offset); | ||
56 | local_irq_restore(flags); | ||
57 | } | ||
58 | |||
59 | return ret; | ||
60 | } | ||
61 | EXPORT_SYMBOL(s3c_gpio_getcfg); | ||
62 | |||
63 | |||
44 | int s3c_gpio_setpull(unsigned int pin, s3c_gpio_pull_t pull) | 64 | int s3c_gpio_setpull(unsigned int pin, s3c_gpio_pull_t pull) |
45 | { | 65 | { |
46 | struct s3c_gpio_chip *chip = s3c_gpiolib_getchip(pin); | 66 | struct s3c_gpio_chip *chip = s3c_gpiolib_getchip(pin); |
diff --git a/arch/arm/plat-samsung/include/plat/gpio-cfg-helpers.h b/arch/arm/plat-samsung/include/plat/gpio-cfg-helpers.h index a8868c429f7a..3e21c75feefa 100644 --- a/arch/arm/plat-samsung/include/plat/gpio-cfg-helpers.h +++ b/arch/arm/plat-samsung/include/plat/gpio-cfg-helpers.h | |||
@@ -30,6 +30,12 @@ static inline int s3c_gpio_do_setcfg(struct s3c_gpio_chip *chip, | |||
30 | return (chip->config->set_config)(chip, off, config); | 30 | return (chip->config->set_config)(chip, off, config); |
31 | } | 31 | } |
32 | 32 | ||
33 | static inline unsigned s3c_gpio_do_getcfg(struct s3c_gpio_chip *chip, | ||
34 | unsigned int off) | ||
35 | { | ||
36 | return (chip->config->get_config)(chip, off); | ||
37 | } | ||
38 | |||
33 | static inline int s3c_gpio_do_setpull(struct s3c_gpio_chip *chip, | 39 | static inline int s3c_gpio_do_setpull(struct s3c_gpio_chip *chip, |
34 | unsigned int off, s3c_gpio_pull_t pull) | 40 | unsigned int off, s3c_gpio_pull_t pull) |
35 | { | 41 | { |
diff --git a/arch/arm/plat-samsung/include/plat/gpio-cfg.h b/arch/arm/plat-samsung/include/plat/gpio-cfg.h index 29cd6a86cade..8d01e853df39 100644 --- a/arch/arm/plat-samsung/include/plat/gpio-cfg.h +++ b/arch/arm/plat-samsung/include/plat/gpio-cfg.h | |||
@@ -77,6 +77,17 @@ struct s3c_gpio_cfg { | |||
77 | */ | 77 | */ |
78 | extern int s3c_gpio_cfgpin(unsigned int pin, unsigned int to); | 78 | extern int s3c_gpio_cfgpin(unsigned int pin, unsigned int to); |
79 | 79 | ||
80 | /** | ||
81 | * s3c_gpio_getcfg - Read the current function for a GPIO pin | ||
82 | * @pin: The pin to read the configuration value for. | ||
83 | * | ||
84 | * Read the configuration state of the given @pin, returning a value that | ||
85 | * could be passed back to s3c_gpio_cfgpin(). | ||
86 | * | ||
87 | * @sa s3c_gpio_cfgpin | ||
88 | */ | ||
89 | extern unsigned s3c_gpio_getcfg(unsigned int pin); | ||
90 | |||
80 | /* Define values for the pull-{up,down} available for each gpio pin. | 91 | /* Define values for the pull-{up,down} available for each gpio pin. |
81 | * | 92 | * |
82 | * These values control the state of the weak pull-{up,down} resistors | 93 | * These values control the state of the weak pull-{up,down} resistors |