diff options
author | viresh kumar <viresh.kumar@st.com> | 2011-02-16 01:40:30 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2011-03-09 04:49:44 -0500 |
commit | 53688c51e412b7fd642e5c8eb8ba8ee19744c4ea (patch) | |
tree | 3b4ef416df3f04841f48996414107e5220f0ca81 | |
parent | f9324a85c10ee109022672ec72db9e2eb37050ee (diff) |
ARM: 6678/1: SPEAr: update padmux code
- compile padmux only for spear3xx
- padmux initialization code rearranged in evaluation board and machine
files.
Reviewed-by: Stanley Miao <stanley.miao@windriver.com>
Signed-off-by: Viresh Kumar <viresh.kumar@st.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r-- | arch/arm/mach-spear3xx/include/mach/generic.h | 7 | ||||
-rw-r--r-- | arch/arm/mach-spear3xx/spear300.c | 14 | ||||
-rw-r--r-- | arch/arm/mach-spear3xx/spear300_evb.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-spear3xx/spear310.c | 11 | ||||
-rw-r--r-- | arch/arm/mach-spear3xx/spear310_evb.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-spear3xx/spear320.c | 11 | ||||
-rw-r--r-- | arch/arm/mach-spear3xx/spear320_evb.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-spear3xx/spear3xx.c | 21 | ||||
-rw-r--r-- | arch/arm/plat-spear/Makefile | 4 |
9 files changed, 36 insertions, 59 deletions
diff --git a/arch/arm/mach-spear3xx/include/mach/generic.h b/arch/arm/mach-spear3xx/include/mach/generic.h index af7e02c909a3..c16d2f8025e9 100644 --- a/arch/arm/mach-spear3xx/include/mach/generic.h +++ b/arch/arm/mach-spear3xx/include/mach/generic.h | |||
@@ -40,7 +40,6 @@ void __init clk_init(void); | |||
40 | void __init spear3xx_map_io(void); | 40 | void __init spear3xx_map_io(void); |
41 | void __init spear3xx_init_irq(void); | 41 | void __init spear3xx_init_irq(void); |
42 | void __init spear3xx_init(void); | 42 | void __init spear3xx_init(void); |
43 | void spear_pmx_init(struct pmx_driver *pmx_driver, uint base, uint size); | ||
44 | 43 | ||
45 | /* pad mux declarations */ | 44 | /* pad mux declarations */ |
46 | #define PMX_FIRDA_MASK (1 << 14) | 45 | #define PMX_FIRDA_MASK (1 << 14) |
@@ -133,8 +132,6 @@ extern struct pmx_dev pmx_telecom_sdio_4bit; | |||
133 | extern struct pmx_dev pmx_telecom_sdio_8bit; | 132 | extern struct pmx_dev pmx_telecom_sdio_8bit; |
134 | extern struct pmx_dev pmx_gpio1; | 133 | extern struct pmx_dev pmx_gpio1; |
135 | 134 | ||
136 | void spear300_pmx_init(void); | ||
137 | |||
138 | /* Add spear300 machine function declarations here */ | 135 | /* Add spear300 machine function declarations here */ |
139 | void __init spear300_init(void); | 136 | void __init spear300_init(void); |
140 | 137 | ||
@@ -154,8 +151,6 @@ extern struct pmx_dev pmx_fsmc; | |||
154 | extern struct pmx_dev pmx_rs485_0_1; | 151 | extern struct pmx_dev pmx_rs485_0_1; |
155 | extern struct pmx_dev pmx_tdm0; | 152 | extern struct pmx_dev pmx_tdm0; |
156 | 153 | ||
157 | void spear310_pmx_init(void); | ||
158 | |||
159 | /* Add spear310 machine function declarations here */ | 154 | /* Add spear310 machine function declarations here */ |
160 | void __init spear310_init(void); | 155 | void __init spear310_init(void); |
161 | 156 | ||
@@ -195,8 +190,6 @@ extern struct pmx_dev pmx_smii0; | |||
195 | extern struct pmx_dev pmx_smii1; | 190 | extern struct pmx_dev pmx_smii1; |
196 | extern struct pmx_dev pmx_i2c1; | 191 | extern struct pmx_dev pmx_i2c1; |
197 | 192 | ||
198 | void spear320_pmx_init(void); | ||
199 | |||
200 | /* Add spear320 machine function declarations here */ | 193 | /* Add spear320 machine function declarations here */ |
201 | void __init spear320_init(void); | 194 | void __init spear320_init(void); |
202 | 195 | ||
diff --git a/arch/arm/mach-spear3xx/spear300.c b/arch/arm/mach-spear3xx/spear300.c index 5aa2d54ebfaa..7e01677e2fc2 100644 --- a/arch/arm/mach-spear3xx/spear300.c +++ b/arch/arm/mach-spear3xx/spear300.c | |||
@@ -459,10 +459,16 @@ void __init spear300_init(void) | |||
459 | if (ret) | 459 | if (ret) |
460 | printk(KERN_ERR "Error registering Shared IRQ\n"); | 460 | printk(KERN_ERR "Error registering Shared IRQ\n"); |
461 | } | 461 | } |
462 | } | ||
463 | 462 | ||
464 | void spear300_pmx_init(void) | 463 | /* pmx initialization */ |
465 | { | 464 | pmx_driver.base = ioremap(SPEAR300_SOC_CONFIG_BASE, |
466 | spear_pmx_init(&pmx_driver, SPEAR300_SOC_CONFIG_BASE, | ||
467 | SPEAR300_SOC_CONFIG_SIZE); | 465 | SPEAR300_SOC_CONFIG_SIZE); |
466 | if (pmx_driver.base) { | ||
467 | ret = pmx_register(&pmx_driver); | ||
468 | if (ret) | ||
469 | printk(KERN_ERR "padmux: registeration failed. err no" | ||
470 | ": %d\n", ret); | ||
471 | /* Free Mapping, device selection already done */ | ||
472 | iounmap(pmx_driver.base); | ||
473 | } | ||
468 | } | 474 | } |
diff --git a/arch/arm/mach-spear3xx/spear300_evb.c b/arch/arm/mach-spear3xx/spear300_evb.c index bb21db152a23..2c90663e5c71 100644 --- a/arch/arm/mach-spear3xx/spear300_evb.c +++ b/arch/arm/mach-spear3xx/spear300_evb.c | |||
@@ -51,14 +51,13 @@ static void __init spear300_evb_init(void) | |||
51 | { | 51 | { |
52 | unsigned int i; | 52 | unsigned int i; |
53 | 53 | ||
54 | /* call spear300 machine init function */ | 54 | /* padmux initialization, must be done before spear300_init */ |
55 | spear300_init(); | ||
56 | |||
57 | /* padmux initialization */ | ||
58 | pmx_driver.mode = &photo_frame_mode; | 55 | pmx_driver.mode = &photo_frame_mode; |
59 | pmx_driver.devs = pmx_devs; | 56 | pmx_driver.devs = pmx_devs; |
60 | pmx_driver.devs_count = ARRAY_SIZE(pmx_devs); | 57 | pmx_driver.devs_count = ARRAY_SIZE(pmx_devs); |
61 | spear300_pmx_init(); | 58 | |
59 | /* call spear300 machine init function */ | ||
60 | spear300_init(); | ||
62 | 61 | ||
63 | /* Add Platform Devices */ | 62 | /* Add Platform Devices */ |
64 | platform_add_devices(plat_devs, ARRAY_SIZE(plat_devs)); | 63 | platform_add_devices(plat_devs, ARRAY_SIZE(plat_devs)); |
diff --git a/arch/arm/mach-spear3xx/spear310.c b/arch/arm/mach-spear3xx/spear310.c index 53b41b52d7ee..f38eb2146e2f 100644 --- a/arch/arm/mach-spear3xx/spear310.c +++ b/arch/arm/mach-spear3xx/spear310.c | |||
@@ -293,10 +293,11 @@ void __init spear310_init(void) | |||
293 | if (ret) | 293 | if (ret) |
294 | printk(KERN_ERR "Error registering Shared IRQ 4\n"); | 294 | printk(KERN_ERR "Error registering Shared IRQ 4\n"); |
295 | } | 295 | } |
296 | } | ||
297 | 296 | ||
298 | void spear310_pmx_init(void) | 297 | /* pmx initialization */ |
299 | { | 298 | pmx_driver.base = base; |
300 | spear_pmx_init(&pmx_driver, SPEAR310_SOC_CONFIG_BASE, | 299 | ret = pmx_register(&pmx_driver); |
301 | SPEAR310_SOC_CONFIG_SIZE); | 300 | if (ret) |
301 | printk(KERN_ERR "padmux: registeration failed. err no: %d\n", | ||
302 | ret); | ||
302 | } | 303 | } |
diff --git a/arch/arm/mach-spear3xx/spear310_evb.c b/arch/arm/mach-spear3xx/spear310_evb.c index 7facf6643199..4e55e553a2cf 100644 --- a/arch/arm/mach-spear3xx/spear310_evb.c +++ b/arch/arm/mach-spear3xx/spear310_evb.c | |||
@@ -58,14 +58,13 @@ static void __init spear310_evb_init(void) | |||
58 | { | 58 | { |
59 | unsigned int i; | 59 | unsigned int i; |
60 | 60 | ||
61 | /* call spear310 machine init function */ | 61 | /* padmux initialization, must be done before spear310_init */ |
62 | spear310_init(); | ||
63 | |||
64 | /* padmux initialization */ | ||
65 | pmx_driver.mode = NULL; | 62 | pmx_driver.mode = NULL; |
66 | pmx_driver.devs = pmx_devs; | 63 | pmx_driver.devs = pmx_devs; |
67 | pmx_driver.devs_count = ARRAY_SIZE(pmx_devs); | 64 | pmx_driver.devs_count = ARRAY_SIZE(pmx_devs); |
68 | spear310_pmx_init(); | 65 | |
66 | /* call spear310 machine init function */ | ||
67 | spear310_init(); | ||
69 | 68 | ||
70 | /* Add Platform Devices */ | 69 | /* Add Platform Devices */ |
71 | platform_add_devices(plat_devs, ARRAY_SIZE(plat_devs)); | 70 | platform_add_devices(plat_devs, ARRAY_SIZE(plat_devs)); |
diff --git a/arch/arm/mach-spear3xx/spear320.c b/arch/arm/mach-spear3xx/spear320.c index 88b465284c36..456bb331340f 100644 --- a/arch/arm/mach-spear3xx/spear320.c +++ b/arch/arm/mach-spear3xx/spear320.c | |||
@@ -540,10 +540,11 @@ void __init spear320_init(void) | |||
540 | if (ret) | 540 | if (ret) |
541 | printk(KERN_ERR "Error registering Shared IRQ 4\n"); | 541 | printk(KERN_ERR "Error registering Shared IRQ 4\n"); |
542 | } | 542 | } |
543 | } | ||
544 | 543 | ||
545 | void spear320_pmx_init(void) | 544 | /* pmx initialization */ |
546 | { | 545 | pmx_driver.base = base; |
547 | spear_pmx_init(&pmx_driver, SPEAR320_SOC_CONFIG_BASE, | 546 | ret = pmx_register(&pmx_driver); |
548 | SPEAR320_SOC_CONFIG_SIZE); | 547 | if (ret) |
548 | printk(KERN_ERR "padmux: registeration failed. err no: %d\n", | ||
549 | ret); | ||
549 | } | 550 | } |
diff --git a/arch/arm/mach-spear3xx/spear320_evb.c b/arch/arm/mach-spear3xx/spear320_evb.c index 62ac685a4135..7083a06df9b6 100644 --- a/arch/arm/mach-spear3xx/spear320_evb.c +++ b/arch/arm/mach-spear3xx/spear320_evb.c | |||
@@ -55,14 +55,13 @@ static void __init spear320_evb_init(void) | |||
55 | { | 55 | { |
56 | unsigned int i; | 56 | unsigned int i; |
57 | 57 | ||
58 | /* call spear320 machine init function */ | 58 | /* padmux initialization, must be done before spear320_init */ |
59 | spear320_init(); | ||
60 | |||
61 | /* padmux initialization */ | ||
62 | pmx_driver.mode = &auto_net_mii_mode; | 59 | pmx_driver.mode = &auto_net_mii_mode; |
63 | pmx_driver.devs = pmx_devs; | 60 | pmx_driver.devs = pmx_devs; |
64 | pmx_driver.devs_count = ARRAY_SIZE(pmx_devs); | 61 | pmx_driver.devs_count = ARRAY_SIZE(pmx_devs); |
65 | spear320_pmx_init(); | 62 | |
63 | /* call spear320 machine init function */ | ||
64 | spear320_init(); | ||
66 | 65 | ||
67 | /* Add Platform Devices */ | 66 | /* Add Platform Devices */ |
68 | platform_add_devices(plat_devs, ARRAY_SIZE(plat_devs)); | 67 | platform_add_devices(plat_devs, ARRAY_SIZE(plat_devs)); |
diff --git a/arch/arm/mach-spear3xx/spear3xx.c b/arch/arm/mach-spear3xx/spear3xx.c index 52f553c8c46d..faf87097767d 100644 --- a/arch/arm/mach-spear3xx/spear3xx.c +++ b/arch/arm/mach-spear3xx/spear3xx.c | |||
@@ -525,24 +525,3 @@ struct pmx_dev pmx_plgpio_45_46_49_50 = { | |||
525 | }; | 525 | }; |
526 | 526 | ||
527 | #endif | 527 | #endif |
528 | |||
529 | /* spear padmux initialization function */ | ||
530 | void spear_pmx_init(struct pmx_driver *pmx_driver, uint base, uint size) | ||
531 | { | ||
532 | int ret = 0; | ||
533 | |||
534 | /* pad mux initialization */ | ||
535 | pmx_driver->base = ioremap(base, size); | ||
536 | if (!pmx_driver->base) { | ||
537 | ret = -ENOMEM; | ||
538 | goto pmx_fail; | ||
539 | } | ||
540 | |||
541 | ret = pmx_register(pmx_driver); | ||
542 | iounmap(pmx_driver->base); | ||
543 | |||
544 | pmx_fail: | ||
545 | if (ret) | ||
546 | printk(KERN_ERR "padmux: registration failed. err no: %d\n", | ||
547 | ret); | ||
548 | } | ||
diff --git a/arch/arm/plat-spear/Makefile b/arch/arm/plat-spear/Makefile index eb89540aeda9..b4f340b8f1f1 100644 --- a/arch/arm/plat-spear/Makefile +++ b/arch/arm/plat-spear/Makefile | |||
@@ -3,6 +3,6 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | # Common support | 5 | # Common support |
6 | obj-y := clock.o padmux.o time.o | 6 | obj-y := clock.o time.o |
7 | 7 | ||
8 | obj-$(CONFIG_ARCH_SPEAR3XX) += shirq.o | 8 | obj-$(CONFIG_ARCH_SPEAR3XX) += shirq.o padmux.o |