aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-omap2/board-2430sdp.c1
-rw-r--r--arch/arm/mach-omap2/board-3430sdp.c1
-rw-r--r--arch/arm/mach-omap2/board-3630sdp.c1
-rw-r--r--arch/arm/mach-omap2/board-4430sdp.c1
-rw-r--r--arch/arm/mach-omap2/board-am3517crane.c1
-rw-r--r--arch/arm/mach-omap2/board-am3517evm.c1
-rw-r--r--arch/arm/mach-omap2/board-apollon.c1
-rw-r--r--arch/arm/mach-omap2/board-cm-t35.c2
-rw-r--r--arch/arm/mach-omap2/board-cm-t3517.c1
-rw-r--r--arch/arm/mach-omap2/board-devkit8000.c1
-rw-r--r--arch/arm/mach-omap2/board-generic.c1
-rw-r--r--arch/arm/mach-omap2/board-h4.c1
-rw-r--r--arch/arm/mach-omap2/board-igep0020.c2
-rw-r--r--arch/arm/mach-omap2/board-ldp.c1
-rw-r--r--arch/arm/mach-omap2/board-n8x0.c3
-rw-r--r--arch/arm/mach-omap2/board-omap3beagle.c1
-rw-r--r--arch/arm/mach-omap2/board-omap3evm.c1
-rw-r--r--arch/arm/mach-omap2/board-omap3logic.c2
-rw-r--r--arch/arm/mach-omap2/board-omap3pandora.c1
-rw-r--r--arch/arm/mach-omap2/board-omap3stalker.c1
-rw-r--r--arch/arm/mach-omap2/board-omap3touchbook.c1
-rw-r--r--arch/arm/mach-omap2/board-omap4panda.c1
-rw-r--r--arch/arm/mach-omap2/board-overo.c1
-rw-r--r--arch/arm/mach-omap2/board-rm680.c2
-rw-r--r--arch/arm/mach-omap2/board-rx51.c1
-rw-r--r--arch/arm/mach-omap2/board-ti8168evm.c2
-rw-r--r--arch/arm/mach-omap2/board-zoom.c2
-rw-r--r--arch/arm/mach-omap2/common.h47
-rw-r--r--arch/arm/mach-omap2/io.c63
-rw-r--r--arch/arm/mach-omap2/mux.c3
-rw-r--r--arch/arm/mach-omap2/pm.c3
-rw-r--r--arch/arm/mach-omap2/pm24xx.c17
-rw-r--r--arch/arm/mach-omap2/pm34xx.c7
-rw-r--r--arch/arm/mach-omap2/pm44xx.c6
34 files changed, 154 insertions, 27 deletions
diff --git a/arch/arm/mach-omap2/board-2430sdp.c b/arch/arm/mach-omap2/board-2430sdp.c
index e658f835d0de..99ca6bad5c30 100644
--- a/arch/arm/mach-omap2/board-2430sdp.c
+++ b/arch/arm/mach-omap2/board-2430sdp.c
@@ -303,6 +303,7 @@ MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board")
303 .init_irq = omap2_init_irq, 303 .init_irq = omap2_init_irq,
304 .handle_irq = omap2_intc_handle_irq, 304 .handle_irq = omap2_intc_handle_irq,
305 .init_machine = omap_2430sdp_init, 305 .init_machine = omap_2430sdp_init,
306 .init_late = omap2430_init_late,
306 .timer = &omap2_timer, 307 .timer = &omap2_timer,
307 .restart = omap_prcm_restart, 308 .restart = omap_prcm_restart,
308MACHINE_END 309MACHINE_END
diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c
index da75f239873e..8ceb480996e0 100644
--- a/arch/arm/mach-omap2/board-3430sdp.c
+++ b/arch/arm/mach-omap2/board-3430sdp.c
@@ -635,6 +635,7 @@ MACHINE_START(OMAP_3430SDP, "OMAP3430 3430SDP board")
635 .init_irq = omap3_init_irq, 635 .init_irq = omap3_init_irq,
636 .handle_irq = omap3_intc_handle_irq, 636 .handle_irq = omap3_intc_handle_irq,
637 .init_machine = omap_3430sdp_init, 637 .init_machine = omap_3430sdp_init,
638 .init_late = omap3430_init_late,
638 .timer = &omap3_timer, 639 .timer = &omap3_timer,
639 .restart = omap_prcm_restart, 640 .restart = omap_prcm_restart,
640MACHINE_END 641MACHINE_END
diff --git a/arch/arm/mach-omap2/board-3630sdp.c b/arch/arm/mach-omap2/board-3630sdp.c
index 6ef350d1ae4f..2dc9ba523c7a 100644
--- a/arch/arm/mach-omap2/board-3630sdp.c
+++ b/arch/arm/mach-omap2/board-3630sdp.c
@@ -217,6 +217,7 @@ MACHINE_START(OMAP_3630SDP, "OMAP 3630SDP board")
217 .init_irq = omap3_init_irq, 217 .init_irq = omap3_init_irq,
218 .handle_irq = omap3_intc_handle_irq, 218 .handle_irq = omap3_intc_handle_irq,
219 .init_machine = omap_sdp_init, 219 .init_machine = omap_sdp_init,
220 .init_late = omap3630_init_late,
220 .timer = &omap3_timer, 221 .timer = &omap3_timer,
221 .restart = omap_prcm_restart, 222 .restart = omap_prcm_restart,
222MACHINE_END 223MACHINE_END
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index 130ab00c09a2..3f6cf228e0b0 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -969,6 +969,7 @@ MACHINE_START(OMAP_4430SDP, "OMAP4430 4430SDP board")
969 .init_irq = gic_init_irq, 969 .init_irq = gic_init_irq,
970 .handle_irq = gic_handle_irq, 970 .handle_irq = gic_handle_irq,
971 .init_machine = omap_4430sdp_init, 971 .init_machine = omap_4430sdp_init,
972 .init_late = omap4430_init_late,
972 .timer = &omap4_timer, 973 .timer = &omap4_timer,
973 .restart = omap_prcm_restart, 974 .restart = omap_prcm_restart,
974MACHINE_END 975MACHINE_END
diff --git a/arch/arm/mach-omap2/board-am3517crane.c b/arch/arm/mach-omap2/board-am3517crane.c
index c3851e8de28b..7231020d9af8 100644
--- a/arch/arm/mach-omap2/board-am3517crane.c
+++ b/arch/arm/mach-omap2/board-am3517crane.c
@@ -100,6 +100,7 @@ MACHINE_START(CRANEBOARD, "AM3517/05 CRANEBOARD")
100 .init_irq = omap3_init_irq, 100 .init_irq = omap3_init_irq,
101 .handle_irq = omap3_intc_handle_irq, 101 .handle_irq = omap3_intc_handle_irq,
102 .init_machine = am3517_crane_init, 102 .init_machine = am3517_crane_init,
103 .init_late = am35xx_init_late,
103 .timer = &omap3_timer, 104 .timer = &omap3_timer,
104 .restart = omap_prcm_restart, 105 .restart = omap_prcm_restart,
105MACHINE_END 106MACHINE_END
diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c
index 3645285a3e2b..ae50e11a2559 100644
--- a/arch/arm/mach-omap2/board-am3517evm.c
+++ b/arch/arm/mach-omap2/board-am3517evm.c
@@ -402,6 +402,7 @@ MACHINE_START(OMAP3517EVM, "OMAP3517/AM3517 EVM")
402 .init_irq = omap3_init_irq, 402 .init_irq = omap3_init_irq,
403 .handle_irq = omap3_intc_handle_irq, 403 .handle_irq = omap3_intc_handle_irq,
404 .init_machine = am3517_evm_init, 404 .init_machine = am3517_evm_init,
405 .init_late = am35xx_init_late,
405 .timer = &omap3_timer, 406 .timer = &omap3_timer,
406 .restart = omap_prcm_restart, 407 .restart = omap_prcm_restart,
407MACHINE_END 408MACHINE_END
diff --git a/arch/arm/mach-omap2/board-apollon.c b/arch/arm/mach-omap2/board-apollon.c
index 768ece2e9c3b..502c31e123be 100644
--- a/arch/arm/mach-omap2/board-apollon.c
+++ b/arch/arm/mach-omap2/board-apollon.c
@@ -356,6 +356,7 @@ MACHINE_START(OMAP_APOLLON, "OMAP24xx Apollon")
356 .init_irq = omap2_init_irq, 356 .init_irq = omap2_init_irq,
357 .handle_irq = omap2_intc_handle_irq, 357 .handle_irq = omap2_intc_handle_irq,
358 .init_machine = omap_apollon_init, 358 .init_machine = omap_apollon_init,
359 .init_late = omap2420_init_late,
359 .timer = &omap2_timer, 360 .timer = &omap2_timer,
360 .restart = omap_prcm_restart, 361 .restart = omap_prcm_restart,
361MACHINE_END 362MACHINE_END
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c
index 909a8b91b564..f9750613686c 100644
--- a/arch/arm/mach-omap2/board-cm-t35.c
+++ b/arch/arm/mach-omap2/board-cm-t35.c
@@ -686,6 +686,7 @@ MACHINE_START(CM_T35, "Compulab CM-T35")
686 .init_irq = omap3_init_irq, 686 .init_irq = omap3_init_irq,
687 .handle_irq = omap3_intc_handle_irq, 687 .handle_irq = omap3_intc_handle_irq,
688 .init_machine = cm_t35_init, 688 .init_machine = cm_t35_init,
689 .init_late = omap35xx_init_late,
689 .timer = &omap3_timer, 690 .timer = &omap3_timer,
690 .restart = omap_prcm_restart, 691 .restart = omap_prcm_restart,
691MACHINE_END 692MACHINE_END
@@ -698,6 +699,7 @@ MACHINE_START(CM_T3730, "Compulab CM-T3730")
698 .init_irq = omap3_init_irq, 699 .init_irq = omap3_init_irq,
699 .handle_irq = omap3_intc_handle_irq, 700 .handle_irq = omap3_intc_handle_irq,
700 .init_machine = cm_t3730_init, 701 .init_machine = cm_t3730_init,
702 .init_late = omap3630_init_late,
701 .timer = &omap3_timer, 703 .timer = &omap3_timer,
702 .restart = omap_prcm_restart, 704 .restart = omap_prcm_restart,
703MACHINE_END 705MACHINE_END
diff --git a/arch/arm/mach-omap2/board-cm-t3517.c b/arch/arm/mach-omap2/board-cm-t3517.c
index 9e66e167e4f3..a33ad4641d9a 100644
--- a/arch/arm/mach-omap2/board-cm-t3517.c
+++ b/arch/arm/mach-omap2/board-cm-t3517.c
@@ -303,6 +303,7 @@ MACHINE_START(CM_T3517, "Compulab CM-T3517")
303 .init_irq = omap3_init_irq, 303 .init_irq = omap3_init_irq,
304 .handle_irq = omap3_intc_handle_irq, 304 .handle_irq = omap3_intc_handle_irq,
305 .init_machine = cm_t3517_init, 305 .init_machine = cm_t3517_init,
306 .init_late = am35xx_init_late,
306 .timer = &omap3_timer, 307 .timer = &omap3_timer,
307 .restart = omap_prcm_restart, 308 .restart = omap_prcm_restart,
308MACHINE_END 309MACHINE_END
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index a2010f07de31..f616c8c8bc80 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -664,6 +664,7 @@ MACHINE_START(DEVKIT8000, "OMAP3 Devkit8000")
664 .init_irq = omap3_init_irq, 664 .init_irq = omap3_init_irq,
665 .handle_irq = omap3_intc_handle_irq, 665 .handle_irq = omap3_intc_handle_irq,
666 .init_machine = devkit8000_init, 666 .init_machine = devkit8000_init,
667 .init_late = omap35xx_init_late,
667 .timer = &omap3_secure_timer, 668 .timer = &omap3_secure_timer,
668 .restart = omap_prcm_restart, 669 .restart = omap_prcm_restart,
669MACHINE_END 670MACHINE_END
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c
index 098d183a0086..56ffcc9f2b2b 100644
--- a/arch/arm/mach-omap2/board-generic.c
+++ b/arch/arm/mach-omap2/board-generic.c
@@ -158,6 +158,7 @@ DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)")
158 .init_irq = omap_init_irq, 158 .init_irq = omap_init_irq,
159 .handle_irq = gic_handle_irq, 159 .handle_irq = gic_handle_irq,
160 .init_machine = omap4_init, 160 .init_machine = omap4_init,
161 .init_late = omap4430_init_late,
161 .timer = &omap4_timer, 162 .timer = &omap4_timer,
162 .dt_compat = omap4_boards_compat, 163 .dt_compat = omap4_boards_compat,
163 .restart = omap_prcm_restart, 164 .restart = omap_prcm_restart,
diff --git a/arch/arm/mach-omap2/board-h4.c b/arch/arm/mach-omap2/board-h4.c
index 0bbbabe28fcc..876becf8205a 100644
--- a/arch/arm/mach-omap2/board-h4.c
+++ b/arch/arm/mach-omap2/board-h4.c
@@ -398,6 +398,7 @@ MACHINE_START(OMAP_H4, "OMAP2420 H4 board")
398 .init_irq = omap2_init_irq, 398 .init_irq = omap2_init_irq,
399 .handle_irq = omap2_intc_handle_irq, 399 .handle_irq = omap2_intc_handle_irq,
400 .init_machine = omap_h4_init, 400 .init_machine = omap_h4_init,
401 .init_late = omap2420_init_late,
401 .timer = &omap2_timer, 402 .timer = &omap2_timer,
402 .restart = omap_prcm_restart, 403 .restart = omap_prcm_restart,
403MACHINE_END 404MACHINE_END
diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c
index 930c0d380435..21df74e835b7 100644
--- a/arch/arm/mach-omap2/board-igep0020.c
+++ b/arch/arm/mach-omap2/board-igep0020.c
@@ -684,6 +684,7 @@ MACHINE_START(IGEP0020, "IGEP v2 board")
684 .init_irq = omap3_init_irq, 684 .init_irq = omap3_init_irq,
685 .handle_irq = omap3_intc_handle_irq, 685 .handle_irq = omap3_intc_handle_irq,
686 .init_machine = igep_init, 686 .init_machine = igep_init,
687 .init_late = omap35xx_init_late,
687 .timer = &omap3_timer, 688 .timer = &omap3_timer,
688 .restart = omap_prcm_restart, 689 .restart = omap_prcm_restart,
689MACHINE_END 690MACHINE_END
@@ -696,6 +697,7 @@ MACHINE_START(IGEP0030, "IGEP OMAP3 module")
696 .init_irq = omap3_init_irq, 697 .init_irq = omap3_init_irq,
697 .handle_irq = omap3_intc_handle_irq, 698 .handle_irq = omap3_intc_handle_irq,
698 .init_machine = igep_init, 699 .init_machine = igep_init,
700 .init_late = omap35xx_init_late,
699 .timer = &omap3_timer, 701 .timer = &omap3_timer,
700 .restart = omap_prcm_restart, 702 .restart = omap_prcm_restart,
701MACHINE_END 703MACHINE_END
diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c
index 1b6049567ab4..ef9e82977499 100644
--- a/arch/arm/mach-omap2/board-ldp.c
+++ b/arch/arm/mach-omap2/board-ldp.c
@@ -442,6 +442,7 @@ MACHINE_START(OMAP_LDP, "OMAP LDP board")
442 .init_irq = omap3_init_irq, 442 .init_irq = omap3_init_irq,
443 .handle_irq = omap3_intc_handle_irq, 443 .handle_irq = omap3_intc_handle_irq,
444 .init_machine = omap_ldp_init, 444 .init_machine = omap_ldp_init,
445 .init_late = omap3430_init_late,
445 .timer = &omap3_timer, 446 .timer = &omap3_timer,
446 .restart = omap_prcm_restart, 447 .restart = omap_prcm_restart,
447MACHINE_END 448MACHINE_END
diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c
index 518091c5f77c..8ca14e88a31a 100644
--- a/arch/arm/mach-omap2/board-n8x0.c
+++ b/arch/arm/mach-omap2/board-n8x0.c
@@ -694,6 +694,7 @@ MACHINE_START(NOKIA_N800, "Nokia N800")
694 .init_irq = omap2_init_irq, 694 .init_irq = omap2_init_irq,
695 .handle_irq = omap2_intc_handle_irq, 695 .handle_irq = omap2_intc_handle_irq,
696 .init_machine = n8x0_init_machine, 696 .init_machine = n8x0_init_machine,
697 .init_late = omap2420_init_late,
697 .timer = &omap2_timer, 698 .timer = &omap2_timer,
698 .restart = omap_prcm_restart, 699 .restart = omap_prcm_restart,
699MACHINE_END 700MACHINE_END
@@ -706,6 +707,7 @@ MACHINE_START(NOKIA_N810, "Nokia N810")
706 .init_irq = omap2_init_irq, 707 .init_irq = omap2_init_irq,
707 .handle_irq = omap2_intc_handle_irq, 708 .handle_irq = omap2_intc_handle_irq,
708 .init_machine = n8x0_init_machine, 709 .init_machine = n8x0_init_machine,
710 .init_late = omap2420_init_late,
709 .timer = &omap2_timer, 711 .timer = &omap2_timer,
710 .restart = omap_prcm_restart, 712 .restart = omap_prcm_restart,
711MACHINE_END 713MACHINE_END
@@ -718,6 +720,7 @@ MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX")
718 .init_irq = omap2_init_irq, 720 .init_irq = omap2_init_irq,
719 .handle_irq = omap2_intc_handle_irq, 721 .handle_irq = omap2_intc_handle_irq,
720 .init_machine = n8x0_init_machine, 722 .init_machine = n8x0_init_machine,
723 .init_late = omap2420_init_late,
721 .timer = &omap2_timer, 724 .timer = &omap2_timer,
722 .restart = omap_prcm_restart, 725 .restart = omap_prcm_restart,
723MACHINE_END 726MACHINE_END
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
index 7be8d659d91d..b6cd804e8114 100644
--- a/arch/arm/mach-omap2/board-omap3beagle.c
+++ b/arch/arm/mach-omap2/board-omap3beagle.c
@@ -565,6 +565,7 @@ MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")
565 .init_irq = omap3_init_irq, 565 .init_irq = omap3_init_irq,
566 .handle_irq = omap3_intc_handle_irq, 566 .handle_irq = omap3_intc_handle_irq,
567 .init_machine = omap3_beagle_init, 567 .init_machine = omap3_beagle_init,
568 .init_late = omap3_init_late,
568 .timer = &omap3_secure_timer, 569 .timer = &omap3_secure_timer,
569 .restart = omap_prcm_restart, 570 .restart = omap_prcm_restart,
570MACHINE_END 571MACHINE_END
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
index 49df12735b41..e98c230f5f63 100644
--- a/arch/arm/mach-omap2/board-omap3evm.c
+++ b/arch/arm/mach-omap2/board-omap3evm.c
@@ -692,6 +692,7 @@ MACHINE_START(OMAP3EVM, "OMAP3 EVM")
692 .init_irq = omap3_init_irq, 692 .init_irq = omap3_init_irq,
693 .handle_irq = omap3_intc_handle_irq, 693 .handle_irq = omap3_intc_handle_irq,
694 .init_machine = omap3_evm_init, 694 .init_machine = omap3_evm_init,
695 .init_late = omap35xx_init_late,
695 .timer = &omap3_timer, 696 .timer = &omap3_timer,
696 .restart = omap_prcm_restart, 697 .restart = omap_prcm_restart,
697MACHINE_END 698MACHINE_END
diff --git a/arch/arm/mach-omap2/board-omap3logic.c b/arch/arm/mach-omap2/board-omap3logic.c
index 9b3c141ff51b..892792755898 100644
--- a/arch/arm/mach-omap2/board-omap3logic.c
+++ b/arch/arm/mach-omap2/board-omap3logic.c
@@ -218,6 +218,7 @@ MACHINE_START(OMAP3_TORPEDO, "Logic OMAP3 Torpedo board")
218 .init_irq = omap3_init_irq, 218 .init_irq = omap3_init_irq,
219 .handle_irq = omap3_intc_handle_irq, 219 .handle_irq = omap3_intc_handle_irq,
220 .init_machine = omap3logic_init, 220 .init_machine = omap3logic_init,
221 .init_late = omap35xx_init_late,
221 .timer = &omap3_timer, 222 .timer = &omap3_timer,
222 .restart = omap_prcm_restart, 223 .restart = omap_prcm_restart,
223MACHINE_END 224MACHINE_END
@@ -230,6 +231,7 @@ MACHINE_START(OMAP3530_LV_SOM, "OMAP Logic 3530 LV SOM board")
230 .init_irq = omap3_init_irq, 231 .init_irq = omap3_init_irq,
231 .handle_irq = omap3_intc_handle_irq, 232 .handle_irq = omap3_intc_handle_irq,
232 .init_machine = omap3logic_init, 233 .init_machine = omap3logic_init,
234 .init_late = omap35xx_init_late,
233 .timer = &omap3_timer, 235 .timer = &omap3_timer,
234 .restart = omap_prcm_restart, 236 .restart = omap_prcm_restart,
235MACHINE_END 237MACHINE_END
diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c
index 33d995d0f075..57aebee44fd0 100644
--- a/arch/arm/mach-omap2/board-omap3pandora.c
+++ b/arch/arm/mach-omap2/board-omap3pandora.c
@@ -622,6 +622,7 @@ MACHINE_START(OMAP3_PANDORA, "Pandora Handheld Console")
622 .init_irq = omap3_init_irq, 622 .init_irq = omap3_init_irq,
623 .handle_irq = omap3_intc_handle_irq, 623 .handle_irq = omap3_intc_handle_irq,
624 .init_machine = omap3pandora_init, 624 .init_machine = omap3pandora_init,
625 .init_late = omap35xx_init_late,
625 .timer = &omap3_timer, 626 .timer = &omap3_timer,
626 .restart = omap_prcm_restart, 627 .restart = omap_prcm_restart,
627MACHINE_END 628MACHINE_END
diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c
index 4dffc95bddd2..c05fe3a340df 100644
--- a/arch/arm/mach-omap2/board-omap3stalker.c
+++ b/arch/arm/mach-omap2/board-omap3stalker.c
@@ -457,6 +457,7 @@ MACHINE_START(SBC3530, "OMAP3 STALKER")
457 .init_irq = omap3_init_irq, 457 .init_irq = omap3_init_irq,
458 .handle_irq = omap3_intc_handle_irq, 458 .handle_irq = omap3_intc_handle_irq,
459 .init_machine = omap3_stalker_init, 459 .init_machine = omap3_stalker_init,
460 .init_late = omap35xx_init_late,
460 .timer = &omap3_secure_timer, 461 .timer = &omap3_secure_timer,
461 .restart = omap_prcm_restart, 462 .restart = omap_prcm_restart,
462MACHINE_END 463MACHINE_END
diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c b/arch/arm/mach-omap2/board-omap3touchbook.c
index ae2251fa4a69..485d14d6a8cd 100644
--- a/arch/arm/mach-omap2/board-omap3touchbook.c
+++ b/arch/arm/mach-omap2/board-omap3touchbook.c
@@ -387,6 +387,7 @@ MACHINE_START(TOUCHBOOK, "OMAP3 touchbook Board")
387 .init_irq = omap3_init_irq, 387 .init_irq = omap3_init_irq,
388 .handle_irq = omap3_intc_handle_irq, 388 .handle_irq = omap3_intc_handle_irq,
389 .init_machine = omap3_touchbook_init, 389 .init_machine = omap3_touchbook_init,
390 .init_late = omap3430_init_late,
390 .timer = &omap3_secure_timer, 391 .timer = &omap3_secure_timer,
391 .restart = omap_prcm_restart, 392 .restart = omap_prcm_restart,
392MACHINE_END 393MACHINE_END
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c
index 1b782ba53433..7ca817f47cf2 100644
--- a/arch/arm/mach-omap2/board-omap4panda.c
+++ b/arch/arm/mach-omap2/board-omap4panda.c
@@ -582,6 +582,7 @@ MACHINE_START(OMAP4_PANDA, "OMAP4 Panda board")
582 .init_irq = gic_init_irq, 582 .init_irq = gic_init_irq,
583 .handle_irq = gic_handle_irq, 583 .handle_irq = gic_handle_irq,
584 .init_machine = omap4_panda_init, 584 .init_machine = omap4_panda_init,
585 .init_late = omap4430_init_late,
585 .timer = &omap4_timer, 586 .timer = &omap4_timer,
586 .restart = omap_prcm_restart, 587 .restart = omap_prcm_restart,
587MACHINE_END 588MACHINE_END
diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c
index 33aa3910b09e..af7ac0ba9888 100644
--- a/arch/arm/mach-omap2/board-overo.c
+++ b/arch/arm/mach-omap2/board-overo.c
@@ -571,6 +571,7 @@ MACHINE_START(OVERO, "Gumstix Overo")
571 .init_irq = omap3_init_irq, 571 .init_irq = omap3_init_irq,
572 .handle_irq = omap3_intc_handle_irq, 572 .handle_irq = omap3_intc_handle_irq,
573 .init_machine = overo_init, 573 .init_machine = overo_init,
574 .init_late = omap35xx_init_late,
574 .timer = &omap3_timer, 575 .timer = &omap3_timer,
575 .restart = omap_prcm_restart, 576 .restart = omap_prcm_restart,
576MACHINE_END 577MACHINE_END
diff --git a/arch/arm/mach-omap2/board-rm680.c b/arch/arm/mach-omap2/board-rm680.c
index ae53d71f0ce0..0ad1bb3bdb98 100644
--- a/arch/arm/mach-omap2/board-rm680.c
+++ b/arch/arm/mach-omap2/board-rm680.c
@@ -151,6 +151,7 @@ MACHINE_START(NOKIA_RM680, "Nokia RM-680 board")
151 .init_irq = omap3_init_irq, 151 .init_irq = omap3_init_irq,
152 .handle_irq = omap3_intc_handle_irq, 152 .handle_irq = omap3_intc_handle_irq,
153 .init_machine = rm680_init, 153 .init_machine = rm680_init,
154 .init_late = omap3630_init_late,
154 .timer = &omap3_timer, 155 .timer = &omap3_timer,
155 .restart = omap_prcm_restart, 156 .restart = omap_prcm_restart,
156MACHINE_END 157MACHINE_END
@@ -163,6 +164,7 @@ MACHINE_START(NOKIA_RM696, "Nokia RM-696 board")
163 .init_irq = omap3_init_irq, 164 .init_irq = omap3_init_irq,
164 .handle_irq = omap3_intc_handle_irq, 165 .handle_irq = omap3_intc_handle_irq,
165 .init_machine = rm680_init, 166 .init_machine = rm680_init,
167 .init_late = omap3630_init_late,
166 .timer = &omap3_timer, 168 .timer = &omap3_timer,
167 .restart = omap_prcm_restart, 169 .restart = omap_prcm_restart,
168MACHINE_END 170MACHINE_END
diff --git a/arch/arm/mach-omap2/board-rx51.c b/arch/arm/mach-omap2/board-rx51.c
index 27f01f051dff..5010f6d27ad7 100644
--- a/arch/arm/mach-omap2/board-rx51.c
+++ b/arch/arm/mach-omap2/board-rx51.c
@@ -129,6 +129,7 @@ MACHINE_START(NOKIA_RX51, "Nokia RX-51 board")
129 .init_irq = omap3_init_irq, 129 .init_irq = omap3_init_irq,
130 .handle_irq = omap3_intc_handle_irq, 130 .handle_irq = omap3_intc_handle_irq,
131 .init_machine = rx51_init, 131 .init_machine = rx51_init,
132 .init_late = omap3430_init_late,
132 .timer = &omap3_timer, 133 .timer = &omap3_timer,
133 .restart = omap_prcm_restart, 134 .restart = omap_prcm_restart,
134MACHINE_END 135MACHINE_END
diff --git a/arch/arm/mach-omap2/board-ti8168evm.c b/arch/arm/mach-omap2/board-ti8168evm.c
index ab9a7a9e9d64..d4c8392cadb6 100644
--- a/arch/arm/mach-omap2/board-ti8168evm.c
+++ b/arch/arm/mach-omap2/board-ti8168evm.c
@@ -52,6 +52,7 @@ MACHINE_START(TI8168EVM, "ti8168evm")
52 .init_irq = ti81xx_init_irq, 52 .init_irq = ti81xx_init_irq,
53 .timer = &omap3_timer, 53 .timer = &omap3_timer,
54 .init_machine = ti81xx_evm_init, 54 .init_machine = ti81xx_evm_init,
55 .init_late = ti81xx_init_late,
55 .restart = omap_prcm_restart, 56 .restart = omap_prcm_restart,
56MACHINE_END 57MACHINE_END
57 58
@@ -63,5 +64,6 @@ MACHINE_START(TI8148EVM, "ti8148evm")
63 .init_irq = ti81xx_init_irq, 64 .init_irq = ti81xx_init_irq,
64 .timer = &omap3_timer, 65 .timer = &omap3_timer,
65 .init_machine = ti81xx_evm_init, 66 .init_machine = ti81xx_evm_init,
67 .init_late = ti81xx_init_late,
66 .restart = omap_prcm_restart, 68 .restart = omap_prcm_restart,
67MACHINE_END 69MACHINE_END
diff --git a/arch/arm/mach-omap2/board-zoom.c b/arch/arm/mach-omap2/board-zoom.c
index 5c20bcc57f2b..4e7e56142e6f 100644
--- a/arch/arm/mach-omap2/board-zoom.c
+++ b/arch/arm/mach-omap2/board-zoom.c
@@ -137,6 +137,7 @@ MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board")
137 .init_irq = omap3_init_irq, 137 .init_irq = omap3_init_irq,
138 .handle_irq = omap3_intc_handle_irq, 138 .handle_irq = omap3_intc_handle_irq,
139 .init_machine = omap_zoom_init, 139 .init_machine = omap_zoom_init,
140 .init_late = omap3430_init_late,
140 .timer = &omap3_timer, 141 .timer = &omap3_timer,
141 .restart = omap_prcm_restart, 142 .restart = omap_prcm_restart,
142MACHINE_END 143MACHINE_END
@@ -149,6 +150,7 @@ MACHINE_START(OMAP_ZOOM3, "OMAP Zoom3 board")
149 .init_irq = omap3_init_irq, 150 .init_irq = omap3_init_irq,
150 .handle_irq = omap3_intc_handle_irq, 151 .handle_irq = omap3_intc_handle_irq,
151 .init_machine = omap_zoom_init, 152 .init_machine = omap_zoom_init,
153 .init_late = omap3630_init_late,
152 .timer = &omap3_timer, 154 .timer = &omap3_timer,
153 .restart = omap_prcm_restart, 155 .restart = omap_prcm_restart,
154MACHINE_END 156MACHINE_END
diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
index 57da7f406e28..58ef29b1c7d7 100644
--- a/arch/arm/mach-omap2/common.h
+++ b/arch/arm/mach-omap2/common.h
@@ -78,6 +78,42 @@ static inline void omap44xx_map_common_io(void)
78} 78}
79#endif 79#endif
80 80
81#if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP2)
82int omap2_pm_init(void);
83#else
84static inline int omap2_pm_init(void)
85{
86 return 0;
87}
88#endif
89
90#if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP3)
91int omap3_pm_init(void);
92#else
93static inline int omap3_pm_init(void)
94{
95 return 0;
96}
97#endif
98
99#if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP4)
100int omap4_pm_init(void);
101#else
102static inline int omap4_pm_init(void)
103{
104 return 0;
105}
106#endif
107
108#ifdef CONFIG_OMAP_MUX
109int omap_mux_late_init(void);
110#else
111static inline int omap_mux_late_init(void)
112{
113 return 0;
114}
115#endif
116
81extern void omap2_init_common_infrastructure(void); 117extern void omap2_init_common_infrastructure(void);
82 118
83extern struct sys_timer omap2_timer; 119extern struct sys_timer omap2_timer;
@@ -94,6 +130,17 @@ void omap3_init_early(void); /* Do not use this one */
94void am35xx_init_early(void); 130void am35xx_init_early(void);
95void ti81xx_init_early(void); 131void ti81xx_init_early(void);
96void omap4430_init_early(void); 132void omap4430_init_early(void);
133void omap3_init_late(void); /* Do not use this one */
134void omap4430_init_late(void);
135void omap2420_init_late(void);
136void omap2430_init_late(void);
137void omap3430_init_late(void);
138void omap35xx_init_late(void);
139void omap3630_init_late(void);
140void am35xx_init_late(void);
141void ti81xx_init_late(void);
142void omap4430_init_late(void);
143int omap2_common_pm_late_init(void);
97void omap_prcm_restart(char, const char *); 144void omap_prcm_restart(char, const char *);
98 145
99/* 146/*
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index 065bd768987c..cc86e710b108 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -397,6 +397,13 @@ void __init omap2420_init_early(void)
397 omap_hwmod_init_postsetup(); 397 omap_hwmod_init_postsetup();
398 omap2420_clk_init(); 398 omap2420_clk_init();
399} 399}
400
401void __init omap2420_init_late(void)
402{
403 omap_mux_late_init();
404 omap2_common_pm_late_init();
405 omap2_pm_init();
406}
400#endif 407#endif
401 408
402#ifdef CONFIG_SOC_OMAP2430 409#ifdef CONFIG_SOC_OMAP2430
@@ -412,6 +419,13 @@ void __init omap2430_init_early(void)
412 omap_hwmod_init_postsetup(); 419 omap_hwmod_init_postsetup();
413 omap2430_clk_init(); 420 omap2430_clk_init();
414} 421}
422
423void __init omap2430_init_late(void)
424{
425 omap_mux_late_init();
426 omap2_common_pm_late_init();
427 omap2_pm_init();
428}
415#endif 429#endif
416 430
417/* 431/*
@@ -466,6 +480,48 @@ void __init ti81xx_init_early(void)
466 omap_hwmod_init_postsetup(); 480 omap_hwmod_init_postsetup();
467 omap3xxx_clk_init(); 481 omap3xxx_clk_init();
468} 482}
483
484void __init omap3_init_late(void)
485{
486 omap_mux_late_init();
487 omap2_common_pm_late_init();
488 omap3_pm_init();
489}
490
491void __init omap3430_init_late(void)
492{
493 omap_mux_late_init();
494 omap2_common_pm_late_init();
495 omap3_pm_init();
496}
497
498void __init omap35xx_init_late(void)
499{
500 omap_mux_late_init();
501 omap2_common_pm_late_init();
502 omap3_pm_init();
503}
504
505void __init omap3630_init_late(void)
506{
507 omap_mux_late_init();
508 omap2_common_pm_late_init();
509 omap3_pm_init();
510}
511
512void __init am35xx_init_late(void)
513{
514 omap_mux_late_init();
515 omap2_common_pm_late_init();
516 omap3_pm_init();
517}
518
519void __init ti81xx_init_late(void)
520{
521 omap_mux_late_init();
522 omap2_common_pm_late_init();
523 omap3_pm_init();
524}
469#endif 525#endif
470 526
471#ifdef CONFIG_ARCH_OMAP4 527#ifdef CONFIG_ARCH_OMAP4
@@ -482,6 +538,13 @@ void __init omap4430_init_early(void)
482 omap_hwmod_init_postsetup(); 538 omap_hwmod_init_postsetup();
483 omap4xxx_clk_init(); 539 omap4xxx_clk_init();
484} 540}
541
542void __init omap4430_init_late(void)
543{
544 omap_mux_late_init();
545 omap2_common_pm_late_init();
546 omap4_pm_init();
547}
485#endif 548#endif
486 549
487void __init omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0, 550void __init omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c
index 65c33911341f..0ede4d6010c3 100644
--- a/arch/arm/mach-omap2/mux.c
+++ b/arch/arm/mach-omap2/mux.c
@@ -788,7 +788,7 @@ static void __init omap_mux_free_names(struct omap_mux *m)
788} 788}
789 789
790/* Free all data except for GPIO pins unless CONFIG_DEBUG_FS is set */ 790/* Free all data except for GPIO pins unless CONFIG_DEBUG_FS is set */
791static int __init omap_mux_late_init(void) 791int __init omap_mux_late_init(void)
792{ 792{
793 struct omap_mux_partition *partition; 793 struct omap_mux_partition *partition;
794 int ret; 794 int ret;
@@ -823,7 +823,6 @@ static int __init omap_mux_late_init(void)
823 823
824 return 0; 824 return 0;
825} 825}
826late_initcall(omap_mux_late_init);
827 826
828static void __init omap_mux_package_fixup(struct omap_mux *p, 827static void __init omap_mux_package_fixup(struct omap_mux *p,
829 struct omap_mux *superset) 828 struct omap_mux *superset)
diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c
index d0c1c9695996..9cb5cede0f50 100644
--- a/arch/arm/mach-omap2/pm.c
+++ b/arch/arm/mach-omap2/pm.c
@@ -295,7 +295,7 @@ static int __init omap2_common_pm_init(void)
295} 295}
296postcore_initcall(omap2_common_pm_init); 296postcore_initcall(omap2_common_pm_init);
297 297
298static int __init omap2_common_pm_late_init(void) 298int __init omap2_common_pm_late_init(void)
299{ 299{
300 /* 300 /*
301 * In the case of DT, the PMIC and SR initialization will be done using 301 * In the case of DT, the PMIC and SR initialization will be done using
@@ -322,4 +322,3 @@ static int __init omap2_common_pm_late_init(void)
322 322
323 return 0; 323 return 0;
324} 324}
325late_initcall(omap2_common_pm_late_init);
diff --git a/arch/arm/mach-omap2/pm24xx.c b/arch/arm/mach-omap2/pm24xx.c
index 95442b69ae27..b2758b83a0a6 100644
--- a/arch/arm/mach-omap2/pm24xx.c
+++ b/arch/arm/mach-omap2/pm24xx.c
@@ -301,13 +301,10 @@ static void __init prcm_setup_regs(void)
301 WKUP_MOD, PM_WKEN); 301 WKUP_MOD, PM_WKEN);
302} 302}
303 303
304static int __init omap2_pm_init(void) 304int __init omap2_pm_init(void)
305{ 305{
306 u32 l; 306 u32 l;
307 307
308 if (!cpu_is_omap24xx())
309 return -ENODEV;
310
311 printk(KERN_INFO "Power Management for OMAP2 initializing\n"); 308 printk(KERN_INFO "Power Management for OMAP2 initializing\n");
312 l = omap2_prm_read_mod_reg(OCP_MOD, OMAP2_PRCM_REVISION_OFFSET); 309 l = omap2_prm_read_mod_reg(OCP_MOD, OMAP2_PRCM_REVISION_OFFSET);
313 printk(KERN_INFO "PRCM revision %d.%d\n", (l >> 4) & 0x0f, l & 0x0f); 310 printk(KERN_INFO "PRCM revision %d.%d\n", (l >> 4) & 0x0f, l & 0x0f);
@@ -373,17 +370,13 @@ static int __init omap2_pm_init(void)
373 * These routines need to be in SRAM as that's the only 370 * These routines need to be in SRAM as that's the only
374 * memory the MPU can see when it wakes up. 371 * memory the MPU can see when it wakes up.
375 */ 372 */
376 if (cpu_is_omap24xx()) { 373 omap2_sram_idle = omap_sram_push(omap24xx_idle_loop_suspend,
377 omap2_sram_idle = omap_sram_push(omap24xx_idle_loop_suspend, 374 omap24xx_idle_loop_suspend_sz);
378 omap24xx_idle_loop_suspend_sz);
379 375
380 omap2_sram_suspend = omap_sram_push(omap24xx_cpu_suspend, 376 omap2_sram_suspend = omap_sram_push(omap24xx_cpu_suspend,
381 omap24xx_cpu_suspend_sz); 377 omap24xx_cpu_suspend_sz);
382 }
383 378
384 arm_pm_idle = omap2_pm_idle; 379 arm_pm_idle = omap2_pm_idle;
385 380
386 return 0; 381 return 0;
387} 382}
388
389late_initcall(omap2_pm_init);
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
index 703bd1099259..c769b888e2c8 100644
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -699,15 +699,12 @@ static void __init pm_errata_configure(void)
699 } 699 }
700} 700}
701 701
702static int __init omap3_pm_init(void) 702int __init omap3_pm_init(void)
703{ 703{
704 struct power_state *pwrst, *tmp; 704 struct power_state *pwrst, *tmp;
705 struct clockdomain *neon_clkdm, *per_clkdm, *mpu_clkdm, *core_clkdm; 705 struct clockdomain *neon_clkdm, *per_clkdm, *mpu_clkdm, *core_clkdm;
706 int ret; 706 int ret;
707 707
708 if (!cpu_is_omap34xx())
709 return -ENODEV;
710
711 if (!omap3_has_io_chain_ctrl()) 708 if (!omap3_has_io_chain_ctrl())
712 pr_warning("PM: no software I/O chain control; some wakeups may be lost\n"); 709 pr_warning("PM: no software I/O chain control; some wakeups may be lost\n");
713 710
@@ -808,5 +805,3 @@ err2:
808err1: 805err1:
809 return ret; 806 return ret;
810} 807}
811
812late_initcall(omap3_pm_init);
diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
index 885625352429..ea24174f5707 100644
--- a/arch/arm/mach-omap2/pm44xx.c
+++ b/arch/arm/mach-omap2/pm44xx.c
@@ -141,15 +141,12 @@ static void omap_default_idle(void)
141 * Initializes all powerdomain and clockdomain target states 141 * Initializes all powerdomain and clockdomain target states
142 * and all PRCM settings. 142 * and all PRCM settings.
143 */ 143 */
144static int __init omap4_pm_init(void) 144int __init omap4_pm_init(void)
145{ 145{
146 int ret; 146 int ret;
147 struct clockdomain *emif_clkdm, *mpuss_clkdm, *l3_1_clkdm, *l4wkup; 147 struct clockdomain *emif_clkdm, *mpuss_clkdm, *l3_1_clkdm, *l4wkup;
148 struct clockdomain *ducati_clkdm, *l3_2_clkdm, *l4_per_clkdm; 148 struct clockdomain *ducati_clkdm, *l3_2_clkdm, *l4_per_clkdm;
149 149
150 if (!cpu_is_omap44xx())
151 return -ENODEV;
152
153 if (omap_rev() == OMAP4430_REV_ES1_0) { 150 if (omap_rev() == OMAP4430_REV_ES1_0) {
154 WARN(1, "Power Management not supported on OMAP4430 ES1.0\n"); 151 WARN(1, "Power Management not supported on OMAP4430 ES1.0\n");
155 return -ENODEV; 152 return -ENODEV;
@@ -217,4 +214,3 @@ static int __init omap4_pm_init(void)
217err2: 214err2:
218 return ret; 215 return ret;
219} 216}
220late_initcall(omap4_pm_init);