aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-omap2/io.c8
-rw-r--r--arch/arm/mach-omap2/prm2xxx.c3
-rw-r--r--arch/arm/mach-omap2/prm2xxx.h3
-rw-r--r--arch/arm/mach-omap2/prm3xxx.c17
-rw-r--r--arch/arm/mach-omap2/prm3xxx.h1
-rw-r--r--arch/arm/mach-omap2/prm44xx.c16
-rw-r--r--arch/arm/mach-omap2/prm44xx.h1
7 files changed, 31 insertions, 18 deletions
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index 924bf24693cd..007dc4d85d54 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -51,6 +51,10 @@
51#include "prcm_mpu44xx.h" 51#include "prcm_mpu44xx.h"
52#include "prminst44xx.h" 52#include "prminst44xx.h"
53#include "cminst44xx.h" 53#include "cminst44xx.h"
54#include "prm2xxx.h"
55#include "prm3xxx.h"
56#include "prm44xx.h"
57
54/* 58/*
55 * The machine specific code may provide the extra mapping besides the 59 * The machine specific code may provide the extra mapping besides the
56 * default mapping provided here. 60 * default mapping provided here.
@@ -392,6 +396,7 @@ void __init omap2420_init_early(void)
392 omap2_set_globals_prm(OMAP2_L4_IO_ADDRESS(OMAP2420_PRM_BASE)); 396 omap2_set_globals_prm(OMAP2_L4_IO_ADDRESS(OMAP2420_PRM_BASE));
393 omap2_set_globals_cm(OMAP2_L4_IO_ADDRESS(OMAP2420_CM_BASE), NULL); 397 omap2_set_globals_cm(OMAP2_L4_IO_ADDRESS(OMAP2420_CM_BASE), NULL);
394 omap2xxx_check_revision(); 398 omap2xxx_check_revision();
399 omap2xxx_prm_init();
395 omap2xxx_cm_init(); 400 omap2xxx_cm_init();
396 omap_common_init_early(); 401 omap_common_init_early();
397 omap2xxx_voltagedomains_init(); 402 omap2xxx_voltagedomains_init();
@@ -422,6 +427,7 @@ void __init omap2430_init_early(void)
422 omap2_set_globals_prm(OMAP2_L4_IO_ADDRESS(OMAP2430_PRM_BASE)); 427 omap2_set_globals_prm(OMAP2_L4_IO_ADDRESS(OMAP2430_PRM_BASE));
423 omap2_set_globals_cm(OMAP2_L4_IO_ADDRESS(OMAP2430_CM_BASE), NULL); 428 omap2_set_globals_cm(OMAP2_L4_IO_ADDRESS(OMAP2430_CM_BASE), NULL);
424 omap2xxx_check_revision(); 429 omap2xxx_check_revision();
430 omap2xxx_prm_init();
425 omap2xxx_cm_init(); 431 omap2xxx_cm_init();
426 omap_common_init_early(); 432 omap_common_init_early();
427 omap2xxx_voltagedomains_init(); 433 omap2xxx_voltagedomains_init();
@@ -457,6 +463,7 @@ void __init omap3_init_early(void)
457 omap2_set_globals_cm(OMAP2_L4_IO_ADDRESS(OMAP3430_CM_BASE), NULL); 463 omap2_set_globals_cm(OMAP2_L4_IO_ADDRESS(OMAP3430_CM_BASE), NULL);
458 omap3xxx_check_revision(); 464 omap3xxx_check_revision();
459 omap3xxx_check_features(); 465 omap3xxx_check_features();
466 omap3xxx_prm_init();
460 omap3xxx_cm_init(); 467 omap3xxx_cm_init();
461 omap_common_init_early(); 468 omap_common_init_early();
462 omap3xxx_voltagedomains_init(); 469 omap3xxx_voltagedomains_init();
@@ -591,6 +598,7 @@ void __init omap4430_init_early(void)
591 omap_cm_base_init(); 598 omap_cm_base_init();
592 omap4xxx_check_revision(); 599 omap4xxx_check_revision();
593 omap4xxx_check_features(); 600 omap4xxx_check_features();
601 omap44xx_prm_init();
594 omap_common_init_early(); 602 omap_common_init_early();
595 omap44xx_voltagedomains_init(); 603 omap44xx_voltagedomains_init();
596 omap44xx_powerdomains_init(); 604 omap44xx_powerdomains_init();
diff --git a/arch/arm/mach-omap2/prm2xxx.c b/arch/arm/mach-omap2/prm2xxx.c
index bf24fc47603b..faeab18696df 100644
--- a/arch/arm/mach-omap2/prm2xxx.c
+++ b/arch/arm/mach-omap2/prm2xxx.c
@@ -118,14 +118,13 @@ static struct prm_ll_data omap2xxx_prm_ll_data = {
118 .read_reset_sources = &omap2xxx_prm_read_reset_sources, 118 .read_reset_sources = &omap2xxx_prm_read_reset_sources,
119}; 119};
120 120
121static int __init omap2xxx_prm_init(void) 121int __init omap2xxx_prm_init(void)
122{ 122{
123 if (!cpu_is_omap24xx()) 123 if (!cpu_is_omap24xx())
124 return 0; 124 return 0;
125 125
126 return prm_register(&omap2xxx_prm_ll_data); 126 return prm_register(&omap2xxx_prm_ll_data);
127} 127}
128subsys_initcall(omap2xxx_prm_init);
129 128
130static void __exit omap2xxx_prm_exit(void) 129static void __exit omap2xxx_prm_exit(void)
131{ 130{
diff --git a/arch/arm/mach-omap2/prm2xxx.h b/arch/arm/mach-omap2/prm2xxx.h
index fe8a14f190ab..3194dd87e0e4 100644
--- a/arch/arm/mach-omap2/prm2xxx.h
+++ b/arch/arm/mach-omap2/prm2xxx.h
@@ -126,8 +126,7 @@ extern int omap2xxx_clkdm_wakeup(struct clockdomain *clkdm);
126 126
127extern void omap2xxx_prm_dpll_reset(void); 127extern void omap2xxx_prm_dpll_reset(void);
128 128
129extern int __init prm2xxx_init(void); 129extern int __init omap2xxx_prm_init(void);
130extern int __exit prm2xxx_exit(void);
131 130
132#endif 131#endif
133 132
diff --git a/arch/arm/mach-omap2/prm3xxx.c b/arch/arm/mach-omap2/prm3xxx.c
index b86116cf0db9..db198d058584 100644
--- a/arch/arm/mach-omap2/prm3xxx.c
+++ b/arch/arm/mach-omap2/prm3xxx.c
@@ -383,27 +383,30 @@ static struct prm_ll_data omap3xxx_prm_ll_data = {
383 .read_reset_sources = &omap3xxx_prm_read_reset_sources, 383 .read_reset_sources = &omap3xxx_prm_read_reset_sources,
384}; 384};
385 385
386static int __init omap3xxx_prm_init(void) 386int __init omap3xxx_prm_init(void)
387{
388 if (!cpu_is_omap34xx())
389 return 0;
390
391 return prm_register(&omap3xxx_prm_ll_data);
392}
393
394static int __init omap3xxx_prm_late_init(void)
387{ 395{
388 int ret; 396 int ret;
389 397
390 if (!cpu_is_omap34xx()) 398 if (!cpu_is_omap34xx())
391 return 0; 399 return 0;
392 400
393 ret = prm_register(&omap3xxx_prm_ll_data);
394 if (ret)
395 return ret;
396
397 omap3xxx_prm_enable_io_wakeup(); 401 omap3xxx_prm_enable_io_wakeup();
398 ret = omap_prcm_register_chain_handler(&omap3_prcm_irq_setup); 402 ret = omap_prcm_register_chain_handler(&omap3_prcm_irq_setup);
399 if (!ret) 403 if (!ret)
400 irq_set_status_flags(omap_prcm_event_to_irq("io"), 404 irq_set_status_flags(omap_prcm_event_to_irq("io"),
401 IRQ_NOAUTOEN); 405 IRQ_NOAUTOEN);
402 406
403
404 return ret; 407 return ret;
405} 408}
406subsys_initcall(omap3xxx_prm_init); 409subsys_initcall(omap3xxx_prm_late_init);
407 410
408static void __exit omap3xxx_prm_exit(void) 411static void __exit omap3xxx_prm_exit(void)
409{ 412{
diff --git a/arch/arm/mach-omap2/prm3xxx.h b/arch/arm/mach-omap2/prm3xxx.h
index 10cd41a8129e..277f71794e61 100644
--- a/arch/arm/mach-omap2/prm3xxx.h
+++ b/arch/arm/mach-omap2/prm3xxx.h
@@ -154,6 +154,7 @@ extern void omap3xxx_prm_restore_irqen(u32 *saved_mask);
154 154
155extern void omap3xxx_prm_dpll3_reset(void); 155extern void omap3xxx_prm_dpll3_reset(void);
156 156
157extern int __init omap3xxx_prm_init(void);
157extern u32 omap3xxx_prm_get_reset_sources(void); 158extern u32 omap3xxx_prm_get_reset_sources(void);
158 159
159#endif /* __ASSEMBLER */ 160#endif /* __ASSEMBLER */
diff --git a/arch/arm/mach-omap2/prm44xx.c b/arch/arm/mach-omap2/prm44xx.c
index 6d3467af205d..9db1bd279f8e 100644
--- a/arch/arm/mach-omap2/prm44xx.c
+++ b/arch/arm/mach-omap2/prm44xx.c
@@ -615,22 +615,24 @@ static struct prm_ll_data omap44xx_prm_ll_data = {
615 .read_reset_sources = &omap44xx_prm_read_reset_sources, 615 .read_reset_sources = &omap44xx_prm_read_reset_sources,
616}; 616};
617 617
618static int __init omap44xx_prm_init(void) 618int __init omap44xx_prm_init(void)
619{ 619{
620 int ret;
621
622 if (!cpu_is_omap44xx()) 620 if (!cpu_is_omap44xx())
623 return 0; 621 return 0;
624 622
625 ret = prm_register(&omap44xx_prm_ll_data); 623 return prm_register(&omap44xx_prm_ll_data);
626 if (ret) 624}
627 return ret; 625
626static int __init omap44xx_prm_late_init(void)
627{
628 if (!cpu_is_omap44xx())
629 return 0;
628 630
629 omap44xx_prm_enable_io_wakeup(); 631 omap44xx_prm_enable_io_wakeup();
630 632
631 return omap_prcm_register_chain_handler(&omap4_prcm_irq_setup); 633 return omap_prcm_register_chain_handler(&omap4_prcm_irq_setup);
632} 634}
633subsys_initcall(omap44xx_prm_init); 635subsys_initcall(omap44xx_prm_late_init);
634 636
635static void __exit omap44xx_prm_exit(void) 637static void __exit omap44xx_prm_exit(void)
636{ 638{
diff --git a/arch/arm/mach-omap2/prm44xx.h b/arch/arm/mach-omap2/prm44xx.h
index c8e1accdc90e..22b0979206ca 100644
--- a/arch/arm/mach-omap2/prm44xx.h
+++ b/arch/arm/mach-omap2/prm44xx.h
@@ -771,6 +771,7 @@ extern void omap44xx_prm_ocp_barrier(void);
771extern void omap44xx_prm_save_and_clear_irqen(u32 *saved_mask); 771extern void omap44xx_prm_save_and_clear_irqen(u32 *saved_mask);
772extern void omap44xx_prm_restore_irqen(u32 *saved_mask); 772extern void omap44xx_prm_restore_irqen(u32 *saved_mask);
773 773
774extern int __init omap44xx_prm_init(void);
774extern u32 omap44xx_prm_get_reset_sources(void); 775extern u32 omap44xx_prm_get_reset_sources(void);
775 776
776# endif 777# endif