diff options
author | Rob Herring <rob.herring@calxeda.com> | 2012-08-28 13:54:42 -0400 |
---|---|---|
committer | Rob Herring <rob.herring@calxeda.com> | 2012-09-14 10:21:58 -0400 |
commit | 6679185909e79df85bd44fd964f80f36899d0880 (patch) | |
tree | 7cf6de310303227c7a1ec060fe4af60df0707746 /arch/arm/mach-shmobile | |
parent | 74595e1764e271911c73e8ab816e0be269420134 (diff) |
ARM: shmobile: move custom gpio functions to sh-gpio.h
Move custom shmobile gpio code to a sh-gpio.h to remove the dependency
on mach/gpio.h. shmobile always uses gpiolib, so we can remove
__GPIOLIB_COMPLEX define from mach/gpio.h.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Magnus Damm <magnus.damm@gmail.com>
Diffstat (limited to 'arch/arm/mach-shmobile')
-rw-r--r-- | arch/arm/mach-shmobile/board-ap4evb.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/board-armadillo800eva.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/board-g4evm.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/board-mackerel.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/include/mach/gpio.h | 63 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/pfc-r8a7740.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/pfc-r8a7779.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/pfc-sh7367.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/pfc-sh7372.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/pfc-sh7377.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/pfc-sh73a0.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/sh-gpio.h | 48 |
12 files changed, 63 insertions, 68 deletions
diff --git a/arch/arm/mach-shmobile/board-ap4evb.c b/arch/arm/mach-shmobile/board-ap4evb.c index f172ca85905c..c7f164e20661 100644 --- a/arch/arm/mach-shmobile/board-ap4evb.c +++ b/arch/arm/mach-shmobile/board-ap4evb.c | |||
@@ -66,6 +66,8 @@ | |||
66 | #include <asm/mach/arch.h> | 66 | #include <asm/mach/arch.h> |
67 | #include <asm/setup.h> | 67 | #include <asm/setup.h> |
68 | 68 | ||
69 | #include "sh-gpio.h" | ||
70 | |||
69 | /* | 71 | /* |
70 | * Address Interface BusWidth note | 72 | * Address Interface BusWidth note |
71 | * ------------------------------------------------------------------ | 73 | * ------------------------------------------------------------------ |
diff --git a/arch/arm/mach-shmobile/board-armadillo800eva.c b/arch/arm/mach-shmobile/board-armadillo800eva.c index cf10f92856dc..15ffb4cac424 100644 --- a/arch/arm/mach-shmobile/board-armadillo800eva.c +++ b/arch/arm/mach-shmobile/board-armadillo800eva.c | |||
@@ -54,6 +54,8 @@ | |||
54 | #include <sound/sh_fsi.h> | 54 | #include <sound/sh_fsi.h> |
55 | #include <sound/simple_card.h> | 55 | #include <sound/simple_card.h> |
56 | 56 | ||
57 | #include "sh-gpio.h" | ||
58 | |||
57 | /* | 59 | /* |
58 | * CON1 Camera Module | 60 | * CON1 Camera Module |
59 | * CON2 Extension Bus | 61 | * CON2 Extension Bus |
diff --git a/arch/arm/mach-shmobile/board-g4evm.c b/arch/arm/mach-shmobile/board-g4evm.c index fa5dfc5c8ed6..eeee12e4da62 100644 --- a/arch/arm/mach-shmobile/board-g4evm.c +++ b/arch/arm/mach-shmobile/board-g4evm.c | |||
@@ -42,6 +42,8 @@ | |||
42 | #include <asm/mach-types.h> | 42 | #include <asm/mach-types.h> |
43 | #include <asm/mach/arch.h> | 43 | #include <asm/mach/arch.h> |
44 | 44 | ||
45 | #include "sh-gpio.h" | ||
46 | |||
45 | /* | 47 | /* |
46 | * SDHI | 48 | * SDHI |
47 | * | 49 | * |
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index 7ea2b31e3199..76544044bf6a 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c | |||
@@ -64,6 +64,8 @@ | |||
64 | #include <asm/mach/arch.h> | 64 | #include <asm/mach/arch.h> |
65 | #include <asm/mach-types.h> | 65 | #include <asm/mach-types.h> |
66 | 66 | ||
67 | #include "sh-gpio.h" | ||
68 | |||
67 | /* | 69 | /* |
68 | * Address Interface BusWidth note | 70 | * Address Interface BusWidth note |
69 | * ------------------------------------------------------------------ | 71 | * ------------------------------------------------------------------ |
diff --git a/arch/arm/mach-shmobile/include/mach/gpio.h b/arch/arm/mach-shmobile/include/mach/gpio.h index 844507d937cb..40a8c178f10d 100644 --- a/arch/arm/mach-shmobile/include/mach/gpio.h +++ b/arch/arm/mach-shmobile/include/mach/gpio.h | |||
@@ -1,62 +1 @@ | |||
1 | /* | /* empty */ | |
2 | * Generic GPIO API and pinmux table support | ||
3 | * | ||
4 | * Copyright (c) 2008 Magnus Damm | ||
5 | * | ||
6 | * This file is subject to the terms and conditions of the GNU General Public | ||
7 | * License. See the file "COPYING" in the main directory of this archive | ||
8 | * for more details. | ||
9 | */ | ||
10 | #ifndef __ASM_ARCH_GPIO_H | ||
11 | #define __ASM_ARCH_GPIO_H | ||
12 | |||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/errno.h> | ||
15 | #include <linux/sh_pfc.h> | ||
16 | #include <linux/io.h> | ||
17 | |||
18 | #ifdef CONFIG_GPIOLIB | ||
19 | |||
20 | static inline int irq_to_gpio(unsigned int irq) | ||
21 | { | ||
22 | return -ENOSYS; | ||
23 | } | ||
24 | |||
25 | #else | ||
26 | |||
27 | #define __ARM_GPIOLIB_COMPLEX | ||
28 | |||
29 | #endif /* CONFIG_GPIOLIB */ | ||
30 | |||
31 | /* | ||
32 | * FIXME !! | ||
33 | * | ||
34 | * current gpio frame work doesn't have | ||
35 | * the method to control only pull up/down/free. | ||
36 | * this function should be replaced by correct gpio function | ||
37 | */ | ||
38 | static inline void __init gpio_direction_none(u32 addr) | ||
39 | { | ||
40 | __raw_writeb(0x00, addr); | ||
41 | } | ||
42 | |||
43 | static inline void __init gpio_request_pullup(u32 addr) | ||
44 | { | ||
45 | u8 data = __raw_readb(addr); | ||
46 | |||
47 | data &= 0x0F; | ||
48 | data |= 0xC0; | ||
49 | __raw_writeb(data, addr); | ||
50 | } | ||
51 | |||
52 | static inline void __init gpio_request_pulldown(u32 addr) | ||
53 | { | ||
54 | u8 data = __raw_readb(addr); | ||
55 | |||
56 | data &= 0x0F; | ||
57 | data |= 0xA0; | ||
58 | |||
59 | __raw_writeb(data, addr); | ||
60 | } | ||
61 | |||
62 | #endif /* __ASM_ARCH_GPIO_H */ | ||
diff --git a/arch/arm/mach-shmobile/pfc-r8a7740.c b/arch/arm/mach-shmobile/pfc-r8a7740.c index ce9e7fa5cc8a..134d1b9a8821 100644 --- a/arch/arm/mach-shmobile/pfc-r8a7740.c +++ b/arch/arm/mach-shmobile/pfc-r8a7740.c | |||
@@ -20,7 +20,7 @@ | |||
20 | */ | 20 | */ |
21 | #include <linux/init.h> | 21 | #include <linux/init.h> |
22 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
23 | #include <linux/gpio.h> | 23 | #include <linux/sh_pfc.h> |
24 | #include <mach/r8a7740.h> | 24 | #include <mach/r8a7740.h> |
25 | #include <mach/irqs.h> | 25 | #include <mach/irqs.h> |
26 | 26 | ||
diff --git a/arch/arm/mach-shmobile/pfc-r8a7779.c b/arch/arm/mach-shmobile/pfc-r8a7779.c index d14c9b048077..cbc26ba2a0a2 100644 --- a/arch/arm/mach-shmobile/pfc-r8a7779.c +++ b/arch/arm/mach-shmobile/pfc-r8a7779.c | |||
@@ -19,7 +19,7 @@ | |||
19 | */ | 19 | */ |
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
22 | #include <linux/gpio.h> | 22 | #include <linux/sh_pfc.h> |
23 | #include <linux/ioport.h> | 23 | #include <linux/ioport.h> |
24 | #include <mach/r8a7779.h> | 24 | #include <mach/r8a7779.h> |
25 | 25 | ||
diff --git a/arch/arm/mach-shmobile/pfc-sh7367.c b/arch/arm/mach-shmobile/pfc-sh7367.c index e6e524654e67..c0c137f39052 100644 --- a/arch/arm/mach-shmobile/pfc-sh7367.c +++ b/arch/arm/mach-shmobile/pfc-sh7367.c | |||
@@ -18,7 +18,7 @@ | |||
18 | */ | 18 | */ |
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
21 | #include <linux/gpio.h> | 21 | #include <linux/sh_pfc.h> |
22 | #include <mach/sh7367.h> | 22 | #include <mach/sh7367.h> |
23 | 23 | ||
24 | #define CPU_ALL_PORT(fn, pfx, sfx) \ | 24 | #define CPU_ALL_PORT(fn, pfx, sfx) \ |
diff --git a/arch/arm/mach-shmobile/pfc-sh7372.c b/arch/arm/mach-shmobile/pfc-sh7372.c index 336093f9210a..7a1525fd6ada 100644 --- a/arch/arm/mach-shmobile/pfc-sh7372.c +++ b/arch/arm/mach-shmobile/pfc-sh7372.c | |||
@@ -22,7 +22,7 @@ | |||
22 | */ | 22 | */ |
23 | #include <linux/init.h> | 23 | #include <linux/init.h> |
24 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
25 | #include <linux/gpio.h> | 25 | #include <linux/sh_pfc.h> |
26 | #include <mach/irqs.h> | 26 | #include <mach/irqs.h> |
27 | #include <mach/sh7372.h> | 27 | #include <mach/sh7372.h> |
28 | 28 | ||
diff --git a/arch/arm/mach-shmobile/pfc-sh7377.c b/arch/arm/mach-shmobile/pfc-sh7377.c index 2f10511946ad..f3117f67fa25 100644 --- a/arch/arm/mach-shmobile/pfc-sh7377.c +++ b/arch/arm/mach-shmobile/pfc-sh7377.c | |||
@@ -19,7 +19,7 @@ | |||
19 | */ | 19 | */ |
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
22 | #include <linux/gpio.h> | 22 | #include <linux/sh_pfc.h> |
23 | #include <mach/sh7377.h> | 23 | #include <mach/sh7377.h> |
24 | 24 | ||
25 | #define CPU_ALL_PORT(fn, pfx, sfx) \ | 25 | #define CPU_ALL_PORT(fn, pfx, sfx) \ |
diff --git a/arch/arm/mach-shmobile/pfc-sh73a0.c b/arch/arm/mach-shmobile/pfc-sh73a0.c index 4a547b803268..b442f9d8c716 100644 --- a/arch/arm/mach-shmobile/pfc-sh73a0.c +++ b/arch/arm/mach-shmobile/pfc-sh73a0.c | |||
@@ -20,7 +20,7 @@ | |||
20 | */ | 20 | */ |
21 | #include <linux/init.h> | 21 | #include <linux/init.h> |
22 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
23 | #include <linux/gpio.h> | 23 | #include <linux/sh_pfc.h> |
24 | #include <mach/sh73a0.h> | 24 | #include <mach/sh73a0.h> |
25 | #include <mach/irqs.h> | 25 | #include <mach/irqs.h> |
26 | 26 | ||
diff --git a/arch/arm/mach-shmobile/sh-gpio.h b/arch/arm/mach-shmobile/sh-gpio.h new file mode 100644 index 000000000000..7ba1877fa97a --- /dev/null +++ b/arch/arm/mach-shmobile/sh-gpio.h | |||
@@ -0,0 +1,48 @@ | |||
1 | /* | ||
2 | * Generic GPIO API and pinmux table support | ||
3 | * | ||
4 | * Copyright (c) 2008 Magnus Damm | ||
5 | * | ||
6 | * This file is subject to the terms and conditions of the GNU General Public | ||
7 | * License. See the file "COPYING" in the main directory of this archive | ||
8 | * for more details. | ||
9 | */ | ||
10 | #ifndef __ASM_ARCH_GPIO_H | ||
11 | #define __ASM_ARCH_GPIO_H | ||
12 | |||
13 | #include <linux/kernel.h> | ||
14 | #include <linux/errno.h> | ||
15 | #include <linux/io.h> | ||
16 | |||
17 | /* | ||
18 | * FIXME !! | ||
19 | * | ||
20 | * current gpio frame work doesn't have | ||
21 | * the method to control only pull up/down/free. | ||
22 | * this function should be replaced by correct gpio function | ||
23 | */ | ||
24 | static inline void __init gpio_direction_none(u32 addr) | ||
25 | { | ||
26 | __raw_writeb(0x00, addr); | ||
27 | } | ||
28 | |||
29 | static inline void __init gpio_request_pullup(u32 addr) | ||
30 | { | ||
31 | u8 data = __raw_readb(addr); | ||
32 | |||
33 | data &= 0x0F; | ||
34 | data |= 0xC0; | ||
35 | __raw_writeb(data, addr); | ||
36 | } | ||
37 | |||
38 | static inline void __init gpio_request_pulldown(u32 addr) | ||
39 | { | ||
40 | u8 data = __raw_readb(addr); | ||
41 | |||
42 | data &= 0x0F; | ||
43 | data |= 0xA0; | ||
44 | |||
45 | __raw_writeb(data, addr); | ||
46 | } | ||
47 | |||
48 | #endif /* __ASM_ARCH_GPIO_H */ | ||