diff options
-rw-r--r-- | arch/m68k/include/asm/mcfgpio.h | 3 | ||||
-rw-r--r-- | arch/m68k/platform/5206/gpio.c | 12 | ||||
-rw-r--r-- | arch/m68k/platform/520x/gpio.c | 12 | ||||
-rw-r--r-- | arch/m68k/platform/523x/gpio.c | 12 | ||||
-rw-r--r-- | arch/m68k/platform/5249/gpio.c | 12 | ||||
-rw-r--r-- | arch/m68k/platform/5272/gpio.c | 12 | ||||
-rw-r--r-- | arch/m68k/platform/527x/gpio.c | 12 | ||||
-rw-r--r-- | arch/m68k/platform/528x/gpio.c | 12 | ||||
-rw-r--r-- | arch/m68k/platform/5307/gpio.c | 12 | ||||
-rw-r--r-- | arch/m68k/platform/532x/gpio.c | 12 | ||||
-rw-r--r-- | arch/m68k/platform/5407/gpio.c | 12 | ||||
-rw-r--r-- | arch/m68k/platform/54xx/config.c | 7 | ||||
-rw-r--r-- | arch/m68k/platform/coldfire/gpio.c | 4 |
13 files changed, 34 insertions, 100 deletions
diff --git a/arch/m68k/include/asm/mcfgpio.h b/arch/m68k/include/asm/mcfgpio.h index 1bc877b45554..fe468eaa51e0 100644 --- a/arch/m68k/include/asm/mcfgpio.h +++ b/arch/m68k/include/asm/mcfgpio.h | |||
@@ -29,6 +29,9 @@ struct mcf_gpio_chip { | |||
29 | const u8 *gpio_to_pinmux; | 29 | const u8 *gpio_to_pinmux; |
30 | }; | 30 | }; |
31 | 31 | ||
32 | extern struct mcf_gpio_chip mcf_gpio_chips[]; | ||
33 | extern unsigned int mcf_gpio_chips_size; | ||
34 | |||
32 | int mcf_gpio_direction_input(struct gpio_chip *, unsigned); | 35 | int mcf_gpio_direction_input(struct gpio_chip *, unsigned); |
33 | int mcf_gpio_get_value(struct gpio_chip *, unsigned); | 36 | int mcf_gpio_get_value(struct gpio_chip *, unsigned); |
34 | int mcf_gpio_direction_output(struct gpio_chip *, unsigned, int); | 37 | int mcf_gpio_direction_output(struct gpio_chip *, unsigned, int); |
diff --git a/arch/m68k/platform/5206/gpio.c b/arch/m68k/platform/5206/gpio.c index 200a7acf0842..a652f8e550c6 100644 --- a/arch/m68k/platform/5206/gpio.c +++ b/arch/m68k/platform/5206/gpio.c | |||
@@ -20,16 +20,8 @@ | |||
20 | #include <asm/mcfsim.h> | 20 | #include <asm/mcfsim.h> |
21 | #include <asm/mcfgpio.h> | 21 | #include <asm/mcfgpio.h> |
22 | 22 | ||
23 | static struct mcf_gpio_chip mcf_gpio_chips[] = { | 23 | struct mcf_gpio_chip mcf_gpio_chips[] = { |
24 | MCFGPS(PP, 0, 8, MCFSIM_PADDR, MCFSIM_PADAT, MCFSIM_PADAT), | 24 | MCFGPS(PP, 0, 8, MCFSIM_PADDR, MCFSIM_PADAT, MCFSIM_PADAT), |
25 | }; | 25 | }; |
26 | 26 | ||
27 | static int __init mcf_gpio_init(void) | 27 | unsigned int mcf_gpio_chips_size = ARRAY_SIZE(mcf_gpio_chips); |
28 | { | ||
29 | unsigned i = 0; | ||
30 | while (i < ARRAY_SIZE(mcf_gpio_chips)) | ||
31 | (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
32 | return 0; | ||
33 | } | ||
34 | |||
35 | core_initcall(mcf_gpio_init); | ||
diff --git a/arch/m68k/platform/520x/gpio.c b/arch/m68k/platform/520x/gpio.c index 96b368578baf..49387c34f0c4 100644 --- a/arch/m68k/platform/520x/gpio.c +++ b/arch/m68k/platform/520x/gpio.c | |||
@@ -20,7 +20,7 @@ | |||
20 | #include <asm/mcfsim.h> | 20 | #include <asm/mcfsim.h> |
21 | #include <asm/mcfgpio.h> | 21 | #include <asm/mcfgpio.h> |
22 | 22 | ||
23 | static struct mcf_gpio_chip mcf_gpio_chips[] = { | 23 | struct mcf_gpio_chip mcf_gpio_chips[] = { |
24 | MCFGPS(PIRQ, 0, 8, MCFEPORT_EPDDR, MCFEPORT_EPDR, MCFEPORT_EPPDR), | 24 | MCFGPS(PIRQ, 0, 8, MCFEPORT_EPDDR, MCFEPORT_EPDR, MCFEPORT_EPPDR), |
25 | MCFGPF(CS, 9, 3), | 25 | MCFGPF(CS, 9, 3), |
26 | MCFGPF(FECI2C, 16, 4), | 26 | MCFGPF(FECI2C, 16, 4), |
@@ -31,12 +31,4 @@ static struct mcf_gpio_chip mcf_gpio_chips[] = { | |||
31 | MCFGPF(FECL, 56, 8), | 31 | MCFGPF(FECL, 56, 8), |
32 | }; | 32 | }; |
33 | 33 | ||
34 | static int __init mcf_gpio_init(void) | 34 | unsigned int mcf_gpio_chips_size = ARRAY_SIZE(mcf_gpio_chips); |
35 | { | ||
36 | unsigned i = 0; | ||
37 | while (i < ARRAY_SIZE(mcf_gpio_chips)) | ||
38 | (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
39 | return 0; | ||
40 | } | ||
41 | |||
42 | core_initcall(mcf_gpio_init); | ||
diff --git a/arch/m68k/platform/523x/gpio.c b/arch/m68k/platform/523x/gpio.c index 8e6e30e80361..07806eb34dd7 100644 --- a/arch/m68k/platform/523x/gpio.c +++ b/arch/m68k/platform/523x/gpio.c | |||
@@ -20,7 +20,7 @@ | |||
20 | #include <asm/mcfsim.h> | 20 | #include <asm/mcfsim.h> |
21 | #include <asm/mcfgpio.h> | 21 | #include <asm/mcfgpio.h> |
22 | 22 | ||
23 | static struct mcf_gpio_chip mcf_gpio_chips[] = { | 23 | struct mcf_gpio_chip mcf_gpio_chips[] = { |
24 | MCFGPS(PIRQ, 1, 7, MCFEPORT_EPDDR, MCFEPORT_EPDR, MCFEPORT_EPPDR), | 24 | MCFGPS(PIRQ, 1, 7, MCFEPORT_EPDDR, MCFEPORT_EPDR, MCFEPORT_EPPDR), |
25 | MCFGPF(ADDR, 13, 3), | 25 | MCFGPF(ADDR, 13, 3), |
26 | MCFGPF(DATAH, 16, 8), | 26 | MCFGPF(DATAH, 16, 8), |
@@ -37,12 +37,4 @@ static struct mcf_gpio_chip mcf_gpio_chips[] = { | |||
37 | MCFGPF(ETPU, 104, 3), | 37 | MCFGPF(ETPU, 104, 3), |
38 | }; | 38 | }; |
39 | 39 | ||
40 | static int __init mcf_gpio_init(void) | 40 | unsigned int mcf_gpio_chips_size = ARRAY_SIZE(mcf_gpio_chips); |
41 | { | ||
42 | unsigned i = 0; | ||
43 | while (i < ARRAY_SIZE(mcf_gpio_chips)) | ||
44 | (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
45 | return 0; | ||
46 | } | ||
47 | |||
48 | core_initcall(mcf_gpio_init); | ||
diff --git a/arch/m68k/platform/5249/gpio.c b/arch/m68k/platform/5249/gpio.c index 775d618b9a44..422e45fe771d 100644 --- a/arch/m68k/platform/5249/gpio.c +++ b/arch/m68k/platform/5249/gpio.c | |||
@@ -20,17 +20,9 @@ | |||
20 | #include <asm/mcfsim.h> | 20 | #include <asm/mcfsim.h> |
21 | #include <asm/mcfgpio.h> | 21 | #include <asm/mcfgpio.h> |
22 | 22 | ||
23 | static struct mcf_gpio_chip mcf_gpio_chips[] = { | 23 | struct mcf_gpio_chip mcf_gpio_chips[] = { |
24 | MCFGPS(GPIO0, 0, 32, MCFSIM2_GPIOENABLE, MCFSIM2_GPIOWRITE, MCFSIM2_GPIOREAD), | 24 | MCFGPS(GPIO0, 0, 32, MCFSIM2_GPIOENABLE, MCFSIM2_GPIOWRITE, MCFSIM2_GPIOREAD), |
25 | MCFGPS(GPIO1, 32, 32, MCFSIM2_GPIO1ENABLE, MCFSIM2_GPIO1WRITE, MCFSIM2_GPIO1READ), | 25 | MCFGPS(GPIO1, 32, 32, MCFSIM2_GPIO1ENABLE, MCFSIM2_GPIO1WRITE, MCFSIM2_GPIO1READ), |
26 | }; | 26 | }; |
27 | 27 | ||
28 | static int __init mcf_gpio_init(void) | 28 | unsigned int mcf_gpio_chips_size = ARRAY_SIZE(mcf_gpio_chips); |
29 | { | ||
30 | unsigned i = 0; | ||
31 | while (i < ARRAY_SIZE(mcf_gpio_chips)) | ||
32 | (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
33 | return 0; | ||
34 | } | ||
35 | |||
36 | core_initcall(mcf_gpio_init); | ||
diff --git a/arch/m68k/platform/5272/gpio.c b/arch/m68k/platform/5272/gpio.c index 91358b830fc9..c029dab7baf3 100644 --- a/arch/m68k/platform/5272/gpio.c +++ b/arch/m68k/platform/5272/gpio.c | |||
@@ -20,18 +20,10 @@ | |||
20 | #include <asm/mcfsim.h> | 20 | #include <asm/mcfsim.h> |
21 | #include <asm/mcfgpio.h> | 21 | #include <asm/mcfgpio.h> |
22 | 22 | ||
23 | static struct mcf_gpio_chip mcf_gpio_chips[] = { | 23 | struct mcf_gpio_chip mcf_gpio_chips[] = { |
24 | MCFGPS(PA, 0, 16, MCFSIM_PADDR, MCFSIM_PADAT, MCFSIM_PADAT), | 24 | MCFGPS(PA, 0, 16, MCFSIM_PADDR, MCFSIM_PADAT, MCFSIM_PADAT), |
25 | MCFGPS(PB, 16, 16, MCFSIM_PBDDR, MCFSIM_PBDAT, MCFSIM_PBDAT), | 25 | MCFGPS(PB, 16, 16, MCFSIM_PBDDR, MCFSIM_PBDAT, MCFSIM_PBDAT), |
26 | MCFGPS(Pc, 32, 16, MCFSIM_PCDDR, MCFSIM_PCDAT, MCFSIM_PCDAT), | 26 | MCFGPS(Pc, 32, 16, MCFSIM_PCDDR, MCFSIM_PCDAT, MCFSIM_PCDAT), |
27 | }; | 27 | }; |
28 | 28 | ||
29 | static int __init mcf_gpio_init(void) | 29 | unsigned int mcf_gpio_chips_size = ARRAY_SIZE(mcf_gpio_chips); |
30 | { | ||
31 | unsigned i = 0; | ||
32 | while (i < ARRAY_SIZE(mcf_gpio_chips)) | ||
33 | (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
34 | return 0; | ||
35 | } | ||
36 | |||
37 | core_initcall(mcf_gpio_init); | ||
diff --git a/arch/m68k/platform/527x/gpio.c b/arch/m68k/platform/527x/gpio.c index b612a63b6c20..1c8633be71ab 100644 --- a/arch/m68k/platform/527x/gpio.c +++ b/arch/m68k/platform/527x/gpio.c | |||
@@ -20,7 +20,7 @@ | |||
20 | #include <asm/mcfsim.h> | 20 | #include <asm/mcfsim.h> |
21 | #include <asm/mcfgpio.h> | 21 | #include <asm/mcfgpio.h> |
22 | 22 | ||
23 | static struct mcf_gpio_chip mcf_gpio_chips[] = { | 23 | struct mcf_gpio_chip mcf_gpio_chips[] = { |
24 | #if defined(CONFIG_M5271) | 24 | #if defined(CONFIG_M5271) |
25 | MCFGPS(PIRQ, 1, 7, MCFEPORT_EPDDR, MCFEPORT_EPDR, MCFEPORT_EPPDR), | 25 | MCFGPS(PIRQ, 1, 7, MCFEPORT_EPDDR, MCFEPORT_EPDR, MCFEPORT_EPPDR), |
26 | MCFGPF(ADDR, 13, 3), | 26 | MCFGPF(ADDR, 13, 3), |
@@ -58,12 +58,4 @@ static struct mcf_gpio_chip mcf_gpio_chips[] = { | |||
58 | #endif | 58 | #endif |
59 | }; | 59 | }; |
60 | 60 | ||
61 | static int __init mcf_gpio_init(void) | 61 | unsigned int mcf_gpio_chips_size = ARRAY_SIZE(mcf_gpio_chips); |
62 | { | ||
63 | unsigned i = 0; | ||
64 | while (i < ARRAY_SIZE(mcf_gpio_chips)) | ||
65 | (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
66 | return 0; | ||
67 | } | ||
68 | |||
69 | core_initcall(mcf_gpio_init); | ||
diff --git a/arch/m68k/platform/528x/gpio.c b/arch/m68k/platform/528x/gpio.c index 81b161c8667f..79459acd8d36 100644 --- a/arch/m68k/platform/528x/gpio.c +++ b/arch/m68k/platform/528x/gpio.c | |||
@@ -20,7 +20,7 @@ | |||
20 | #include <asm/mcfsim.h> | 20 | #include <asm/mcfsim.h> |
21 | #include <asm/mcfgpio.h> | 21 | #include <asm/mcfgpio.h> |
22 | 22 | ||
23 | static struct mcf_gpio_chip mcf_gpio_chips[] = { | 23 | struct mcf_gpio_chip mcf_gpio_chips[] = { |
24 | MCFGPS(NQ, 1, 7, MCFEPORT_EPDDR, MCFEPORT_EPDR, MCFEPORT_EPPDR), | 24 | MCFGPS(NQ, 1, 7, MCFEPORT_EPDDR, MCFEPORT_EPDR, MCFEPORT_EPPDR), |
25 | MCFGPS(TA, 8, 4, MCFGPTA_GPTDDR, MCFGPTA_GPTPORT, MCFGPTB_GPTPORT), | 25 | MCFGPS(TA, 8, 4, MCFGPTA_GPTDDR, MCFGPTA_GPTPORT, MCFGPTB_GPTPORT), |
26 | MCFGPS(TB, 16, 4, MCFGPTB_GPTDDR, MCFGPTB_GPTPORT, MCFGPTB_GPTPORT), | 26 | MCFGPS(TB, 16, 4, MCFGPTB_GPTDDR, MCFGPTB_GPTPORT, MCFGPTB_GPTPORT), |
@@ -46,12 +46,4 @@ static struct mcf_gpio_chip mcf_gpio_chips[] = { | |||
46 | MCFGPF(UA, 176, 4), | 46 | MCFGPF(UA, 176, 4), |
47 | }; | 47 | }; |
48 | 48 | ||
49 | static int __init mcf_gpio_init(void) | 49 | unsigned int mcf_gpio_chips_size = ARRAY_SIZE(mcf_gpio_chips); |
50 | { | ||
51 | unsigned i = 0; | ||
52 | while (i < ARRAY_SIZE(mcf_gpio_chips)) | ||
53 | (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
54 | return 0; | ||
55 | } | ||
56 | |||
57 | core_initcall(mcf_gpio_init); | ||
diff --git a/arch/m68k/platform/5307/gpio.c b/arch/m68k/platform/5307/gpio.c index 91d042030657..7bbbea7a8556 100644 --- a/arch/m68k/platform/5307/gpio.c +++ b/arch/m68k/platform/5307/gpio.c | |||
@@ -20,16 +20,8 @@ | |||
20 | #include <asm/mcfsim.h> | 20 | #include <asm/mcfsim.h> |
21 | #include <asm/mcfgpio.h> | 21 | #include <asm/mcfgpio.h> |
22 | 22 | ||
23 | static struct mcf_gpio_chip mcf_gpio_chips[] = { | 23 | struct mcf_gpio_chip mcf_gpio_chips[] = { |
24 | MCFGPS(PP, 0, 16, MCFSIM_PADDR, MCFSIM_PADAT, MCFSIM_PADAT), | 24 | MCFGPS(PP, 0, 16, MCFSIM_PADDR, MCFSIM_PADAT, MCFSIM_PADAT), |
25 | }; | 25 | }; |
26 | 26 | ||
27 | static int __init mcf_gpio_init(void) | 27 | unsigned int mcf_gpio_chips_size = ARRAY_SIZE(mcf_gpio_chips); |
28 | { | ||
29 | unsigned i = 0; | ||
30 | while (i < ARRAY_SIZE(mcf_gpio_chips)) | ||
31 | (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
32 | return 0; | ||
33 | } | ||
34 | |||
35 | core_initcall(mcf_gpio_init); | ||
diff --git a/arch/m68k/platform/532x/gpio.c b/arch/m68k/platform/532x/gpio.c index 9454c65e40ef..3e1b71dc7042 100644 --- a/arch/m68k/platform/532x/gpio.c +++ b/arch/m68k/platform/532x/gpio.c | |||
@@ -20,7 +20,7 @@ | |||
20 | #include <asm/mcfsim.h> | 20 | #include <asm/mcfsim.h> |
21 | #include <asm/mcfgpio.h> | 21 | #include <asm/mcfgpio.h> |
22 | 22 | ||
23 | static struct mcf_gpio_chip mcf_gpio_chips[] = { | 23 | struct mcf_gpio_chip mcf_gpio_chips[] = { |
24 | MCFGPS(PIRQ, 0, 8, MCFEPORT_EPDDR, MCFEPORT_EPDR, MCFEPORT_EPPDR), | 24 | MCFGPS(PIRQ, 0, 8, MCFEPORT_EPDDR, MCFEPORT_EPDR, MCFEPORT_EPPDR), |
25 | MCFGPF(FECH, 8, 8), | 25 | MCFGPF(FECH, 8, 8), |
26 | MCFGPF(FECL, 16, 8), | 26 | MCFGPF(FECL, 16, 8), |
@@ -40,12 +40,4 @@ static struct mcf_gpio_chip mcf_gpio_chips[] = { | |||
40 | MCFGPF(LCDCTLL, 128, 8), | 40 | MCFGPF(LCDCTLL, 128, 8), |
41 | }; | 41 | }; |
42 | 42 | ||
43 | static int __init mcf_gpio_init(void) | 43 | unsigned int mcf_gpio_chips_size = ARRAY_SIZE(mcf_gpio_chips); |
44 | { | ||
45 | unsigned i = 0; | ||
46 | while (i < ARRAY_SIZE(mcf_gpio_chips)) | ||
47 | (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
48 | return 0; | ||
49 | } | ||
50 | |||
51 | core_initcall(mcf_gpio_init); | ||
diff --git a/arch/m68k/platform/5407/gpio.c b/arch/m68k/platform/5407/gpio.c index 91d042030657..7bbbea7a8556 100644 --- a/arch/m68k/platform/5407/gpio.c +++ b/arch/m68k/platform/5407/gpio.c | |||
@@ -20,16 +20,8 @@ | |||
20 | #include <asm/mcfsim.h> | 20 | #include <asm/mcfsim.h> |
21 | #include <asm/mcfgpio.h> | 21 | #include <asm/mcfgpio.h> |
22 | 22 | ||
23 | static struct mcf_gpio_chip mcf_gpio_chips[] = { | 23 | struct mcf_gpio_chip mcf_gpio_chips[] = { |
24 | MCFGPS(PP, 0, 16, MCFSIM_PADDR, MCFSIM_PADAT, MCFSIM_PADAT), | 24 | MCFGPS(PP, 0, 16, MCFSIM_PADDR, MCFSIM_PADAT, MCFSIM_PADAT), |
25 | }; | 25 | }; |
26 | 26 | ||
27 | static int __init mcf_gpio_init(void) | 27 | unsigned int mcf_gpio_chips_size = ARRAY_SIZE(mcf_gpio_chips); |
28 | { | ||
29 | unsigned i = 0; | ||
30 | while (i < ARRAY_SIZE(mcf_gpio_chips)) | ||
31 | (void)gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
32 | return 0; | ||
33 | } | ||
34 | |||
35 | core_initcall(mcf_gpio_init); | ||
diff --git a/arch/m68k/platform/54xx/config.c b/arch/m68k/platform/54xx/config.c index 2081c6cbb3de..20672dadb252 100644 --- a/arch/m68k/platform/54xx/config.c +++ b/arch/m68k/platform/54xx/config.c | |||
@@ -21,12 +21,19 @@ | |||
21 | #include <asm/m54xxsim.h> | 21 | #include <asm/m54xxsim.h> |
22 | #include <asm/mcfuart.h> | 22 | #include <asm/mcfuart.h> |
23 | #include <asm/m54xxgpt.h> | 23 | #include <asm/m54xxgpt.h> |
24 | #include <asm/mcfgpio.h> | ||
24 | #ifdef CONFIG_MMU | 25 | #ifdef CONFIG_MMU |
25 | #include <asm/mmu_context.h> | 26 | #include <asm/mmu_context.h> |
26 | #endif | 27 | #endif |
27 | 28 | ||
28 | /***************************************************************************/ | 29 | /***************************************************************************/ |
29 | 30 | ||
31 | struct mcf_gpio_chip mcf_gpio_chips[] = { }; | ||
32 | |||
33 | unsigned int mcf_gpio_chips_size = ARRAY_SIZE(mcf_gpio_chips); | ||
34 | |||
35 | /***************************************************************************/ | ||
36 | |||
30 | static void __init m54xx_uarts_init(void) | 37 | static void __init m54xx_uarts_init(void) |
31 | { | 38 | { |
32 | /* enable io pins */ | 39 | /* enable io pins */ |
diff --git a/arch/m68k/platform/coldfire/gpio.c b/arch/m68k/platform/coldfire/gpio.c index 292a1a5a2d7c..4c8c42450a4e 100644 --- a/arch/m68k/platform/coldfire/gpio.c +++ b/arch/m68k/platform/coldfire/gpio.c | |||
@@ -122,6 +122,10 @@ struct bus_type mcf_gpio_subsys = { | |||
122 | 122 | ||
123 | static int __init mcf_gpio_sysinit(void) | 123 | static int __init mcf_gpio_sysinit(void) |
124 | { | 124 | { |
125 | unsigned int i = 0; | ||
126 | |||
127 | while (i < mcf_gpio_chips_size) | ||
128 | gpiochip_add((struct gpio_chip *)&mcf_gpio_chips[i++]); | ||
125 | return subsys_system_register(&mcf_gpio_subsys, NULL); | 129 | return subsys_system_register(&mcf_gpio_subsys, NULL); |
126 | } | 130 | } |
127 | 131 | ||