diff options
-rw-r--r-- | arch/arm/mach-omap2/io.c | 8 | ||||
-rw-r--r-- | arch/arm/mach-omap2/prm2xxx.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-omap2/prm2xxx.h | 3 | ||||
-rw-r--r-- | arch/arm/mach-omap2/prm3xxx.c | 17 | ||||
-rw-r--r-- | arch/arm/mach-omap2/prm3xxx.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-omap2/prm44xx.c | 16 | ||||
-rw-r--r-- | arch/arm/mach-omap2/prm44xx.h | 1 |
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 | ||
121 | static int __init omap2xxx_prm_init(void) | 121 | int __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 | } |
128 | subsys_initcall(omap2xxx_prm_init); | ||
129 | 128 | ||
130 | static void __exit omap2xxx_prm_exit(void) | 129 | static 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 | ||
127 | extern void omap2xxx_prm_dpll_reset(void); | 127 | extern void omap2xxx_prm_dpll_reset(void); |
128 | 128 | ||
129 | extern int __init prm2xxx_init(void); | 129 | extern int __init omap2xxx_prm_init(void); |
130 | extern 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 | ||
386 | static int __init omap3xxx_prm_init(void) | 386 | int __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 | |||
394 | static 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 | } |
406 | subsys_initcall(omap3xxx_prm_init); | 409 | subsys_initcall(omap3xxx_prm_late_init); |
407 | 410 | ||
408 | static void __exit omap3xxx_prm_exit(void) | 411 | static 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 | ||
155 | extern void omap3xxx_prm_dpll3_reset(void); | 155 | extern void omap3xxx_prm_dpll3_reset(void); |
156 | 156 | ||
157 | extern int __init omap3xxx_prm_init(void); | ||
157 | extern u32 omap3xxx_prm_get_reset_sources(void); | 158 | extern 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 | ||
618 | static int __init omap44xx_prm_init(void) | 618 | int __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 | |
626 | static 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 | } |
633 | subsys_initcall(omap44xx_prm_init); | 635 | subsys_initcall(omap44xx_prm_late_init); |
634 | 636 | ||
635 | static void __exit omap44xx_prm_exit(void) | 637 | static 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); | |||
771 | extern void omap44xx_prm_save_and_clear_irqen(u32 *saved_mask); | 771 | extern void omap44xx_prm_save_and_clear_irqen(u32 *saved_mask); |
772 | extern void omap44xx_prm_restore_irqen(u32 *saved_mask); | 772 | extern void omap44xx_prm_restore_irqen(u32 *saved_mask); |
773 | 773 | ||
774 | extern int __init omap44xx_prm_init(void); | ||
774 | extern u32 omap44xx_prm_get_reset_sources(void); | 775 | extern u32 omap44xx_prm_get_reset_sources(void); |
775 | 776 | ||
776 | # endif | 777 | # endif |