diff options
author | Ben Dooks <ben-linux@fluff.org> | 2009-05-13 17:52:24 -0400 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2009-05-18 11:25:40 -0400 |
commit | ec976d6eb021dc8f2994248c310a41540f4756bd (patch) | |
tree | 5e8864353b70625baf9f88860729d5e2934e21f3 /arch/arm/mach-s3c2410 | |
parent | 9f05f6a921353f4293cda37f221b9bfa532d3c57 (diff) |
[ARM] S3C24XX: GPIO: Move gpio functions out of <mach/hardware.h>
Move all the gpio functions out of <mach/hardware.h> as
this file is for defining the generic IO base addresses
for the kernel IO calls.
Make a new header <mach/gpio-fns.h> to take this and
include it via the chain from <linux/gpio.h> which is
what most of these files should be using (and will be
changed as soon as possible).
Note, this does make minor changes to some drivers but
should not mess up any pending merges.
CC: Richard Purdie <rpurdie@rpsys.net>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
CC: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'arch/arm/mach-s3c2410')
-rw-r--r-- | arch/arm/mach-s3c2410/h1940-bluetooth.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/include/mach/gpio-fns.h | 103 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/include/mach/gpio.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/include/mach/hardware.h | 84 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/mach-amlm5900.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/mach-bast.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/mach-n30.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/mach-qt2410.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/mach-vr1000.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/pm.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/usb-simtec.c | 1 |
11 files changed, 113 insertions, 84 deletions
diff --git a/arch/arm/mach-s3c2410/h1940-bluetooth.c b/arch/arm/mach-s3c2410/h1940-bluetooth.c index 1f332b38f15..9bbea8a73dd 100644 --- a/arch/arm/mach-s3c2410/h1940-bluetooth.c +++ b/arch/arm/mach-s3c2410/h1940-bluetooth.c | |||
@@ -16,6 +16,8 @@ | |||
16 | #include <linux/string.h> | 16 | #include <linux/string.h> |
17 | #include <linux/ctype.h> | 17 | #include <linux/ctype.h> |
18 | #include <linux/leds.h> | 18 | #include <linux/leds.h> |
19 | #include <linux/gpio.h> | ||
20 | |||
19 | #include <mach/regs-gpio.h> | 21 | #include <mach/regs-gpio.h> |
20 | #include <mach/hardware.h> | 22 | #include <mach/hardware.h> |
21 | #include <mach/h1940-latch.h> | 23 | #include <mach/h1940-latch.h> |
diff --git a/arch/arm/mach-s3c2410/include/mach/gpio-fns.h b/arch/arm/mach-s3c2410/include/mach/gpio-fns.h new file mode 100644 index 00000000000..b4f39558bed --- /dev/null +++ b/arch/arm/mach-s3c2410/include/mach/gpio-fns.h | |||
@@ -0,0 +1,103 @@ | |||
1 | /* arch/arm/mach-s3c2410/include/mach/gpio-fns.h | ||
2 | * | ||
3 | * Copyright (c) 2003,2009 Simtec Electronics | ||
4 | * Ben Dooks <ben@simtec.co.uk> | ||
5 | * | ||
6 | * S3C2410 - hardware | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | /* 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 | ||
15 | * very soon. | ||
16 | * | ||
17 | * Most of the functionality can be either replaced by the gpiocfg calls | ||
18 | * for the s3c platform or by the generic GPIOlib API. | ||
19 | */ | ||
20 | |||
21 | /* external functions for GPIO support | ||
22 | * | ||
23 | * These allow various different clients to access the same GPIO | ||
24 | * registers without conflicting. If your driver only owns the entire | ||
25 | * GPIO register, then it is safe to ioremap/__raw_{read|write} to it. | ||
26 | */ | ||
27 | |||
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_GPA0, S3C2410_GPA0_ADDR0); | ||
34 | * s3c2410_gpio_cfgpin(S3C2410_GPE8, 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); | ||
40 | |||
41 | /* s3c2410_gpio_getirq | ||
42 | * | ||
43 | * turn the given pin number into the corresponding IRQ number | ||
44 | * | ||
45 | * returns: | ||
46 | * < 0 = no interrupt for this pin | ||
47 | * >=0 = interrupt number for the pin | ||
48 | */ | ||
49 | |||
50 | extern int s3c2410_gpio_getirq(unsigned int pin); | ||
51 | |||
52 | #ifdef CONFIG_CPU_S3C2400 | ||
53 | |||
54 | extern int s3c2400_gpio_getirq(unsigned int pin); | ||
55 | |||
56 | #endif /* CONFIG_CPU_S3C2400 */ | ||
57 | |||
58 | /* s3c2410_gpio_irqfilter | ||
59 | * | ||
60 | * set the irq filtering on the given pin | ||
61 | * | ||
62 | * on = 0 => disable filtering | ||
63 | * 1 => enable filtering | ||
64 | * | ||
65 | * config = S3C2410_EINTFLT_PCLK or S3C2410_EINTFLT_EXTCLK orred with | ||
66 | * width of filter (0 through 63) | ||
67 | * | ||
68 | * | ||
69 | */ | ||
70 | |||
71 | extern int s3c2410_gpio_irqfilter(unsigned int pin, unsigned int on, | ||
72 | unsigned int config); | ||
73 | |||
74 | /* s3c2410_gpio_pullup | ||
75 | * | ||
76 | * configure the pull-up control on the given pin | ||
77 | * | ||
78 | * to = 1 => disable the pull-up | ||
79 | * 0 => enable the pull-up | ||
80 | * | ||
81 | * eg; | ||
82 | * | ||
83 | * s3c2410_gpio_pullup(S3C2410_GPB0, 0); | ||
84 | * s3c2410_gpio_pullup(S3C2410_GPE8, 0); | ||
85 | */ | ||
86 | |||
87 | extern void s3c2410_gpio_pullup(unsigned int pin, unsigned int to); | ||
88 | |||
89 | /* s3c2410_gpio_getpull | ||
90 | * | ||
91 | * Read the state of the pull-up on a given pin | ||
92 | * | ||
93 | * return: | ||
94 | * < 0 => error code | ||
95 | * 0 => enabled | ||
96 | * 1 => disabled | ||
97 | */ | ||
98 | |||
99 | extern int s3c2410_gpio_getpull(unsigned int pin); | ||
100 | |||
101 | extern void s3c2410_gpio_setpin(unsigned int pin, unsigned int to); | ||
102 | |||
103 | extern unsigned int s3c2410_gpio_getpin(unsigned int pin); | ||
diff --git a/arch/arm/mach-s3c2410/include/mach/gpio.h b/arch/arm/mach-s3c2410/include/mach/gpio.h index 51a88cf9526..15f0b3e7ce6 100644 --- a/arch/arm/mach-s3c2410/include/mach/gpio.h +++ b/arch/arm/mach-s3c2410/include/mach/gpio.h | |||
@@ -24,5 +24,6 @@ | |||
24 | 24 | ||
25 | #include <asm-generic/gpio.h> | 25 | #include <asm-generic/gpio.h> |
26 | #include <mach/gpio-nrs.h> | 26 | #include <mach/gpio-nrs.h> |
27 | #include <mach/gpio-fns.h> | ||
27 | 28 | ||
28 | #define S3C_GPIO_END (S3C2410_GPIO_BANKH + 32) | 29 | #define S3C_GPIO_END (S3C2410_GPIO_BANKH + 32) |
diff --git a/arch/arm/mach-s3c2410/include/mach/hardware.h b/arch/arm/mach-s3c2410/include/mach/hardware.h index d7745d85392..aef5631eac5 100644 --- a/arch/arm/mach-s3c2410/include/mach/hardware.h +++ b/arch/arm/mach-s3c2410/include/mach/hardware.h | |||
@@ -15,90 +15,6 @@ | |||
15 | 15 | ||
16 | #ifndef __ASSEMBLY__ | 16 | #ifndef __ASSEMBLY__ |
17 | 17 | ||
18 | /* external functions for GPIO support | ||
19 | * | ||
20 | * These allow various different clients to access the same GPIO | ||
21 | * registers without conflicting. If your driver only owns the entire | ||
22 | * GPIO register, then it is safe to ioremap/__raw_{read|write} to it. | ||
23 | */ | ||
24 | |||
25 | /* s3c2410_gpio_cfgpin | ||
26 | * | ||
27 | * set the configuration of the given pin to the value passed. | ||
28 | * | ||
29 | * eg: | ||
30 | * s3c2410_gpio_cfgpin(S3C2410_GPA0, S3C2410_GPA0_ADDR0); | ||
31 | * s3c2410_gpio_cfgpin(S3C2410_GPE8, S3C2410_GPE8_SDDAT1); | ||
32 | */ | ||
33 | |||
34 | extern void s3c2410_gpio_cfgpin(unsigned int pin, unsigned int function); | ||
35 | |||
36 | extern unsigned int s3c2410_gpio_getcfg(unsigned int pin); | ||
37 | |||
38 | /* s3c2410_gpio_getirq | ||
39 | * | ||
40 | * turn the given pin number into the corresponding IRQ number | ||
41 | * | ||
42 | * returns: | ||
43 | * < 0 = no interrupt for this pin | ||
44 | * >=0 = interrupt number for the pin | ||
45 | */ | ||
46 | |||
47 | extern int s3c2410_gpio_getirq(unsigned int pin); | ||
48 | |||
49 | #ifdef CONFIG_CPU_S3C2400 | ||
50 | |||
51 | extern int s3c2400_gpio_getirq(unsigned int pin); | ||
52 | |||
53 | #endif /* CONFIG_CPU_S3C2400 */ | ||
54 | |||
55 | /* s3c2410_gpio_irqfilter | ||
56 | * | ||
57 | * set the irq filtering on the given pin | ||
58 | * | ||
59 | * on = 0 => disable filtering | ||
60 | * 1 => enable filtering | ||
61 | * | ||
62 | * config = S3C2410_EINTFLT_PCLK or S3C2410_EINTFLT_EXTCLK orred with | ||
63 | * width of filter (0 through 63) | ||
64 | * | ||
65 | * | ||
66 | */ | ||
67 | |||
68 | extern int s3c2410_gpio_irqfilter(unsigned int pin, unsigned int on, | ||
69 | unsigned int config); | ||
70 | |||
71 | /* s3c2410_gpio_pullup | ||
72 | * | ||
73 | * configure the pull-up control on the given pin | ||
74 | * | ||
75 | * to = 1 => disable the pull-up | ||
76 | * 0 => enable the pull-up | ||
77 | * | ||
78 | * eg; | ||
79 | * | ||
80 | * s3c2410_gpio_pullup(S3C2410_GPB0, 0); | ||
81 | * s3c2410_gpio_pullup(S3C2410_GPE8, 0); | ||
82 | */ | ||
83 | |||
84 | extern void s3c2410_gpio_pullup(unsigned int pin, unsigned int to); | ||
85 | |||
86 | /* s3c2410_gpio_getpull | ||
87 | * | ||
88 | * Read the state of the pull-up on a given pin | ||
89 | * | ||
90 | * return: | ||
91 | * < 0 => error code | ||
92 | * 0 => enabled | ||
93 | * 1 => disabled | ||
94 | */ | ||
95 | |||
96 | extern int s3c2410_gpio_getpull(unsigned int pin); | ||
97 | |||
98 | extern void s3c2410_gpio_setpin(unsigned int pin, unsigned int to); | ||
99 | |||
100 | extern unsigned int s3c2410_gpio_getpin(unsigned int pin); | ||
101 | |||
102 | extern unsigned int s3c2410_modify_misccr(unsigned int clr, unsigned int chg); | 18 | extern unsigned int s3c2410_modify_misccr(unsigned int clr, unsigned int chg); |
103 | 19 | ||
104 | #ifdef CONFIG_CPU_S3C2440 | 20 | #ifdef CONFIG_CPU_S3C2440 |
diff --git a/arch/arm/mach-s3c2410/mach-amlm5900.c b/arch/arm/mach-s3c2410/mach-amlm5900.c index 79428ed789b..43f7536c529 100644 --- a/arch/arm/mach-s3c2410/mach-amlm5900.c +++ b/arch/arm/mach-s3c2410/mach-amlm5900.c | |||
@@ -32,6 +32,7 @@ | |||
32 | #include <linux/list.h> | 32 | #include <linux/list.h> |
33 | #include <linux/timer.h> | 33 | #include <linux/timer.h> |
34 | #include <linux/init.h> | 34 | #include <linux/init.h> |
35 | #include <linux/gpio.h> | ||
35 | #include <linux/device.h> | 36 | #include <linux/device.h> |
36 | #include <linux/platform_device.h> | 37 | #include <linux/platform_device.h> |
37 | #include <linux/proc_fs.h> | 38 | #include <linux/proc_fs.h> |
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c index 10ba91b7744..3410caefb86 100644 --- a/arch/arm/mach-s3c2410/mach-bast.c +++ b/arch/arm/mach-s3c2410/mach-bast.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/list.h> | 16 | #include <linux/list.h> |
17 | #include <linux/timer.h> | 17 | #include <linux/timer.h> |
18 | #include <linux/init.h> | 18 | #include <linux/init.h> |
19 | #include <linux/gpio.h> | ||
19 | #include <linux/sysdev.h> | 20 | #include <linux/sysdev.h> |
20 | #include <linux/serial_core.h> | 21 | #include <linux/serial_core.h> |
21 | #include <linux/platform_device.h> | 22 | #include <linux/platform_device.h> |
diff --git a/arch/arm/mach-s3c2410/mach-n30.c b/arch/arm/mach-s3c2410/mach-n30.c index 2b83f870771..83705036ca6 100644 --- a/arch/arm/mach-s3c2410/mach-n30.c +++ b/arch/arm/mach-s3c2410/mach-n30.c | |||
@@ -19,6 +19,7 @@ | |||
19 | 19 | ||
20 | #include <linux/gpio_keys.h> | 20 | #include <linux/gpio_keys.h> |
21 | #include <linux/init.h> | 21 | #include <linux/init.h> |
22 | #include <linux/gpio.h> | ||
22 | #include <linux/input.h> | 23 | #include <linux/input.h> |
23 | #include <linux/interrupt.h> | 24 | #include <linux/interrupt.h> |
24 | #include <linux/platform_device.h> | 25 | #include <linux/platform_device.h> |
diff --git a/arch/arm/mach-s3c2410/mach-qt2410.c b/arch/arm/mach-s3c2410/mach-qt2410.c index 9f1ba9b63f7..7520aee3c9e 100644 --- a/arch/arm/mach-s3c2410/mach-qt2410.c +++ b/arch/arm/mach-s3c2410/mach-qt2410.c | |||
@@ -27,6 +27,7 @@ | |||
27 | #include <linux/list.h> | 27 | #include <linux/list.h> |
28 | #include <linux/timer.h> | 28 | #include <linux/timer.h> |
29 | #include <linux/init.h> | 29 | #include <linux/init.h> |
30 | #include <linux/gpio.h> | ||
30 | #include <linux/sysdev.h> | 31 | #include <linux/sysdev.h> |
31 | #include <linux/platform_device.h> | 32 | #include <linux/platform_device.h> |
32 | #include <linux/serial_core.h> | 33 | #include <linux/serial_core.h> |
diff --git a/arch/arm/mach-s3c2410/mach-vr1000.c b/arch/arm/mach-s3c2410/mach-vr1000.c index 7e002f9473b..0507a7ec18c 100644 --- a/arch/arm/mach-s3c2410/mach-vr1000.c +++ b/arch/arm/mach-s3c2410/mach-vr1000.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/list.h> | 18 | #include <linux/list.h> |
19 | #include <linux/timer.h> | 19 | #include <linux/timer.h> |
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/gpio.h> | ||
21 | #include <linux/dm9000.h> | 22 | #include <linux/dm9000.h> |
22 | #include <linux/i2c.h> | 23 | #include <linux/i2c.h> |
23 | 24 | ||
diff --git a/arch/arm/mach-s3c2410/pm.c b/arch/arm/mach-s3c2410/pm.c index 87fc481d92d..726cfc09388 100644 --- a/arch/arm/mach-s3c2410/pm.c +++ b/arch/arm/mach-s3c2410/pm.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/errno.h> | 25 | #include <linux/errno.h> |
26 | #include <linux/time.h> | 26 | #include <linux/time.h> |
27 | #include <linux/sysdev.h> | 27 | #include <linux/sysdev.h> |
28 | #include <linux/gpio.h> | ||
28 | #include <linux/io.h> | 29 | #include <linux/io.h> |
29 | 30 | ||
30 | #include <mach/hardware.h> | 31 | #include <mach/hardware.h> |
diff --git a/arch/arm/mach-s3c2410/usb-simtec.c b/arch/arm/mach-s3c2410/usb-simtec.c index b209749b78e..506252b33fe 100644 --- a/arch/arm/mach-s3c2410/usb-simtec.c +++ b/arch/arm/mach-s3c2410/usb-simtec.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/types.h> | 18 | #include <linux/types.h> |
19 | #include <linux/interrupt.h> | 19 | #include <linux/interrupt.h> |
20 | #include <linux/list.h> | 20 | #include <linux/list.h> |
21 | #include <linux/gpio.h> | ||
21 | #include <linux/timer.h> | 22 | #include <linux/timer.h> |
22 | #include <linux/init.h> | 23 | #include <linux/init.h> |
23 | #include <linux/device.h> | 24 | #include <linux/device.h> |