aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/m68k/include/asm/mcfgpio.h3
-rw-r--r--arch/m68k/platform/5206/gpio.c12
-rw-r--r--arch/m68k/platform/520x/gpio.c12
-rw-r--r--arch/m68k/platform/523x/gpio.c12
-rw-r--r--arch/m68k/platform/5249/gpio.c12
-rw-r--r--arch/m68k/platform/5272/gpio.c12
-rw-r--r--arch/m68k/platform/527x/gpio.c12
-rw-r--r--arch/m68k/platform/528x/gpio.c12
-rw-r--r--arch/m68k/platform/5307/gpio.c12
-rw-r--r--arch/m68k/platform/532x/gpio.c12
-rw-r--r--arch/m68k/platform/5407/gpio.c12
-rw-r--r--arch/m68k/platform/54xx/config.c7
-rw-r--r--arch/m68k/platform/coldfire/gpio.c4
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
32extern struct mcf_gpio_chip mcf_gpio_chips[];
33extern unsigned int mcf_gpio_chips_size;
34
32int mcf_gpio_direction_input(struct gpio_chip *, unsigned); 35int mcf_gpio_direction_input(struct gpio_chip *, unsigned);
33int mcf_gpio_get_value(struct gpio_chip *, unsigned); 36int mcf_gpio_get_value(struct gpio_chip *, unsigned);
34int mcf_gpio_direction_output(struct gpio_chip *, unsigned, int); 37int 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
23static struct mcf_gpio_chip mcf_gpio_chips[] = { 23struct 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
27static int __init mcf_gpio_init(void) 27unsigned 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
35core_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
23static struct mcf_gpio_chip mcf_gpio_chips[] = { 23struct 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
34static int __init mcf_gpio_init(void) 34unsigned 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
42core_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
23static struct mcf_gpio_chip mcf_gpio_chips[] = { 23struct 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
40static int __init mcf_gpio_init(void) 40unsigned 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
48core_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
23static struct mcf_gpio_chip mcf_gpio_chips[] = { 23struct 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
28static int __init mcf_gpio_init(void) 28unsigned 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
36core_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
23static struct mcf_gpio_chip mcf_gpio_chips[] = { 23struct 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
29static int __init mcf_gpio_init(void) 29unsigned 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
37core_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
23static struct mcf_gpio_chip mcf_gpio_chips[] = { 23struct 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
61static int __init mcf_gpio_init(void) 61unsigned 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
69core_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
23static struct mcf_gpio_chip mcf_gpio_chips[] = { 23struct 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
49static int __init mcf_gpio_init(void) 49unsigned 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
57core_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
23static struct mcf_gpio_chip mcf_gpio_chips[] = { 23struct 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
27static int __init mcf_gpio_init(void) 27unsigned 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
35core_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
23static struct mcf_gpio_chip mcf_gpio_chips[] = { 23struct 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
43static int __init mcf_gpio_init(void) 43unsigned 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
51core_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
23static struct mcf_gpio_chip mcf_gpio_chips[] = { 23struct 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
27static int __init mcf_gpio_init(void) 27unsigned 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
35core_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
31struct mcf_gpio_chip mcf_gpio_chips[] = { };
32
33unsigned int mcf_gpio_chips_size = ARRAY_SIZE(mcf_gpio_chips);
34
35/***************************************************************************/
36
30static void __init m54xx_uarts_init(void) 37static 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
123static int __init mcf_gpio_sysinit(void) 123static 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