aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2012-02-29 16:08:48 -0500
committerArnd Bergmann <arnd@arndb.de>2012-02-29 16:08:48 -0500
commit590d829a7cf882cf1a9d6fb7bdb247dc6b0993cb (patch)
tree21a1d0e576aabad465a3c1eb706f9c46a291f5d9 /arch
parente0e5ce59dc7b2685516219fdf44f01a8d53e0228 (diff)
parentffd76d8be36da09f8456c55569c008f5aa93095e (diff)
Merge branch 'dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/dt
* 'dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: arm/dts: Add support for TI OMAP3 EVM board arm/dts: OMAP4: Update DTS file with new GIC bindings arm/dts: OMAP3: Add i2c controller nodes arm/dts: OMAP4: Add i2c controller nodes ARM: OMAP2+: Set Kconfig dependencies for PROC_DEVICETREE arm/dts: OMAP3&4: Remove the '0x' prefix for serial nodes ARM: OMAP1: kconfig: Enable IRQ_DOMAIN by default for OMAP1 platforms ARM: OMAP2+: pm: Do not init statically the SR and voltage layer with DT ARM: OMAP2+: omap_device: Replace dev_warn by dev_dbg in omap_device_build_from_dt ARM: OMAP2+: board-generic: Remove un-needed .atag_offset for DT_MACHINE ARM: OMAP2+: kconfig: Enable devicetree by default for OMAP2+ systems arm/dts: OMAP: Remove bootargs node from board files
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/boot/dts/omap3-beagle.dts9
-rw-r--r--arch/arm/boot/dts/omap3-evm.dts20
-rw-r--r--arch/arm/boot/dts/omap3.dtsi29
-rw-r--r--arch/arm/boot/dts/omap4-panda.dts9
-rw-r--r--arch/arm/boot/dts/omap4-sdp.dts9
-rw-r--r--arch/arm/boot/dts/omap4.dtsi38
-rw-r--r--arch/arm/mach-omap2/Kconfig1
-rw-r--r--arch/arm/mach-omap2/board-generic.c12
-rw-r--r--arch/arm/mach-omap2/pm.c8
-rw-r--r--arch/arm/plat-omap/Kconfig3
-rw-r--r--arch/arm/plat-omap/omap_device.c2
11 files changed, 94 insertions, 46 deletions
diff --git a/arch/arm/boot/dts/omap3-beagle.dts b/arch/arm/boot/dts/omap3-beagle.dts
index 9486be62bcdd..9f72cd4cf308 100644
--- a/arch/arm/boot/dts/omap3-beagle.dts
+++ b/arch/arm/boot/dts/omap3-beagle.dts
@@ -13,15 +13,6 @@
13 model = "TI OMAP3 BeagleBoard"; 13 model = "TI OMAP3 BeagleBoard";
14 compatible = "ti,omap3-beagle", "ti,omap3"; 14 compatible = "ti,omap3-beagle", "ti,omap3";
15 15
16 /*
17 * Since the initial device tree board file does not create any
18 * devices (MMC, network...), the only way to boot is to provide a
19 * ramdisk.
20 */
21 chosen {
22 bootargs = "root=/dev/ram0 rw console=ttyO2,115200n8 initrd=0x81600000,20M ramdisk_size=20480 no_console_suspend debug earlyprintk";
23 };
24
25 memory { 16 memory {
26 device_type = "memory"; 17 device_type = "memory";
27 reg = <0x80000000 0x20000000>; /* 512 MB */ 18 reg = <0x80000000 0x20000000>; /* 512 MB */
diff --git a/arch/arm/boot/dts/omap3-evm.dts b/arch/arm/boot/dts/omap3-evm.dts
new file mode 100644
index 000000000000..2eee16ec59b4
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-evm.dts
@@ -0,0 +1,20 @@
1/*
2 * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8/dts-v1/;
9
10/include/ "omap3.dtsi"
11
12/ {
13 model = "TI OMAP3 EVM (OMAP3530, AM/DM37x)";
14 compatible = "ti,omap3-evm", "ti,omap3";
15
16 memory {
17 device_type = "memory";
18 reg = <0x80000000 0x10000000>; /* 256 MB */
19 };
20};
diff --git a/arch/arm/boot/dts/omap3.dtsi b/arch/arm/boot/dts/omap3.dtsi
index 216c3317461d..e69806432874 100644
--- a/arch/arm/boot/dts/omap3.dtsi
+++ b/arch/arm/boot/dts/omap3.dtsi
@@ -67,28 +67,49 @@
67 #interrupt-cells = <1>; 67 #interrupt-cells = <1>;
68 }; 68 };
69 69
70 uart1: serial@0x4806a000 { 70 uart1: serial@4806a000 {
71 compatible = "ti,omap3-uart"; 71 compatible = "ti,omap3-uart";
72 ti,hwmods = "uart1"; 72 ti,hwmods = "uart1";
73 clock-frequency = <48000000>; 73 clock-frequency = <48000000>;
74 }; 74 };
75 75
76 uart2: serial@0x4806c000 { 76 uart2: serial@4806c000 {
77 compatible = "ti,omap3-uart"; 77 compatible = "ti,omap3-uart";
78 ti,hwmods = "uart2"; 78 ti,hwmods = "uart2";
79 clock-frequency = <48000000>; 79 clock-frequency = <48000000>;
80 }; 80 };
81 81
82 uart3: serial@0x49020000 { 82 uart3: serial@49020000 {
83 compatible = "ti,omap3-uart"; 83 compatible = "ti,omap3-uart";
84 ti,hwmods = "uart3"; 84 ti,hwmods = "uart3";
85 clock-frequency = <48000000>; 85 clock-frequency = <48000000>;
86 }; 86 };
87 87
88 uart4: serial@0x49042000 { 88 uart4: serial@49042000 {
89 compatible = "ti,omap3-uart"; 89 compatible = "ti,omap3-uart";
90 ti,hwmods = "uart4"; 90 ti,hwmods = "uart4";
91 clock-frequency = <48000000>; 91 clock-frequency = <48000000>;
92 }; 92 };
93
94 i2c1: i2c@48070000 {
95 compatible = "ti,omap3-i2c";
96 #address-cells = <1>;
97 #size-cells = <0>;
98 ti,hwmods = "i2c1";
99 };
100
101 i2c2: i2c@48072000 {
102 compatible = "ti,omap3-i2c";
103 #address-cells = <1>;
104 #size-cells = <0>;
105 ti,hwmods = "i2c2";
106 };
107
108 i2c3: i2c@48060000 {
109 compatible = "ti,omap3-i2c";
110 #address-cells = <1>;
111 #size-cells = <0>;
112 ti,hwmods = "i2c3";
113 };
93 }; 114 };
94}; 115};
diff --git a/arch/arm/boot/dts/omap4-panda.dts b/arch/arm/boot/dts/omap4-panda.dts
index c7026578ce7d..9755ad5917f8 100644
--- a/arch/arm/boot/dts/omap4-panda.dts
+++ b/arch/arm/boot/dts/omap4-panda.dts
@@ -13,15 +13,6 @@
13 model = "TI OMAP4 PandaBoard"; 13 model = "TI OMAP4 PandaBoard";
14 compatible = "ti,omap4-panda", "ti,omap4430", "ti,omap4"; 14 compatible = "ti,omap4-panda", "ti,omap4430", "ti,omap4";
15 15
16 /*
17 * Since the initial device tree board file does not create any
18 * devices (MMC, network...), the only way to boot is to provide a
19 * ramdisk.
20 */
21 chosen {
22 bootargs = "root=/dev/ram0 rw console=ttyO2,115200n8 initrd=0x81600000,20M ramdisk_size=20480 no_console_suspend debug";
23 };
24
25 memory { 16 memory {
26 device_type = "memory"; 17 device_type = "memory";
27 reg = <0x80000000 0x40000000>; /* 1 GB */ 18 reg = <0x80000000 0x40000000>; /* 1 GB */
diff --git a/arch/arm/boot/dts/omap4-sdp.dts b/arch/arm/boot/dts/omap4-sdp.dts
index 066e28c90328..63c6b2b2bf42 100644
--- a/arch/arm/boot/dts/omap4-sdp.dts
+++ b/arch/arm/boot/dts/omap4-sdp.dts
@@ -13,15 +13,6 @@
13 model = "TI OMAP4 SDP board"; 13 model = "TI OMAP4 SDP board";
14 compatible = "ti,omap4-sdp", "ti,omap4430", "ti,omap4"; 14 compatible = "ti,omap4-sdp", "ti,omap4430", "ti,omap4";
15 15
16 /*
17 * Since the initial device tree board file does not create any
18 * devices (MMC, network...), the only way to boot is to provide a
19 * ramdisk.
20 */
21 chosen {
22 bootargs = "root=/dev/ram0 rw console=ttyO2,115200n8 initrd=0x81600000,20M ramdisk_size=20480 no_console_suspend debug";
23 };
24
25 memory { 16 memory {
26 device_type = "memory"; 17 device_type = "memory";
27 reg = <0x80000000 0x40000000>; /* 1 GB */ 18 reg = <0x80000000 0x40000000>; /* 1 GB */
diff --git a/arch/arm/boot/dts/omap4.dtsi b/arch/arm/boot/dts/omap4.dtsi
index e8fe75fac7c5..3d35559e77bc 100644
--- a/arch/arm/boot/dts/omap4.dtsi
+++ b/arch/arm/boot/dts/omap4.dtsi
@@ -99,33 +99,61 @@
99 gic: interrupt-controller@48241000 { 99 gic: interrupt-controller@48241000 {
100 compatible = "arm,cortex-a9-gic"; 100 compatible = "arm,cortex-a9-gic";
101 interrupt-controller; 101 interrupt-controller;
102 #interrupt-cells = <1>; 102 #interrupt-cells = <3>;
103 reg = <0x48241000 0x1000>, 103 reg = <0x48241000 0x1000>,
104 <0x48240100 0x0100>; 104 <0x48240100 0x0100>;
105 }; 105 };
106 106
107 uart1: serial@0x4806a000 { 107 uart1: serial@4806a000 {
108 compatible = "ti,omap4-uart"; 108 compatible = "ti,omap4-uart";
109 ti,hwmods = "uart1"; 109 ti,hwmods = "uart1";
110 clock-frequency = <48000000>; 110 clock-frequency = <48000000>;
111 }; 111 };
112 112
113 uart2: serial@0x4806c000 { 113 uart2: serial@4806c000 {
114 compatible = "ti,omap4-uart"; 114 compatible = "ti,omap4-uart";
115 ti,hwmods = "uart2"; 115 ti,hwmods = "uart2";
116 clock-frequency = <48000000>; 116 clock-frequency = <48000000>;
117 }; 117 };
118 118
119 uart3: serial@0x48020000 { 119 uart3: serial@48020000 {
120 compatible = "ti,omap4-uart"; 120 compatible = "ti,omap4-uart";
121 ti,hwmods = "uart3"; 121 ti,hwmods = "uart3";
122 clock-frequency = <48000000>; 122 clock-frequency = <48000000>;
123 }; 123 };
124 124
125 uart4: serial@0x4806e000 { 125 uart4: serial@4806e000 {
126 compatible = "ti,omap4-uart"; 126 compatible = "ti,omap4-uart";
127 ti,hwmods = "uart4"; 127 ti,hwmods = "uart4";
128 clock-frequency = <48000000>; 128 clock-frequency = <48000000>;
129 }; 129 };
130
131 i2c1: i2c@48070000 {
132 compatible = "ti,omap4-i2c";
133 #address-cells = <1>;
134 #size-cells = <0>;
135 ti,hwmods = "i2c1";
136 };
137
138 i2c2: i2c@48072000 {
139 compatible = "ti,omap4-i2c";
140 #address-cells = <1>;
141 #size-cells = <0>;
142 ti,hwmods = "i2c2";
143 };
144
145 i2c3: i2c@48060000 {
146 compatible = "ti,omap4-i2c";
147 #address-cells = <1>;
148 #size-cells = <0>;
149 ti,hwmods = "i2c3";
150 };
151
152 i2c4: i2c@48350000 {
153 compatible = "ti,omap4-i2c";
154 #address-cells = <1>;
155 #size-cells = <0>;
156 ti,hwmods = "i2c4";
157 };
130 }; 158 };
131}; 159};
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index d965da45160e..72ce50ecf328 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -117,7 +117,6 @@ comment "OMAP Board Type"
117config MACH_OMAP_GENERIC 117config MACH_OMAP_GENERIC
118 bool "Generic OMAP2+ board" 118 bool "Generic OMAP2+ board"
119 depends on ARCH_OMAP2PLUS 119 depends on ARCH_OMAP2PLUS
120 select USE_OF
121 default y 120 default y
122 help 121 help
123 Support for generic TI OMAP2+ boards using Flattened Device Tree. 122 Support for generic TI OMAP2+ boards using Flattened Device Tree.
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c
index ad497620539b..d32b5935233f 100644
--- a/arch/arm/mach-omap2/board-generic.c
+++ b/arch/arm/mach-omap2/board-generic.c
@@ -91,14 +91,13 @@ static void __init omap3_init(void)
91} 91}
92#endif 92#endif
93 93
94#if defined(CONFIG_SOC_OMAP2420) 94#ifdef CONFIG_SOC_OMAP2420
95static const char *omap242x_boards_compat[] __initdata = { 95static const char *omap242x_boards_compat[] __initdata = {
96 "ti,omap2420", 96 "ti,omap2420",
97 NULL, 97 NULL,
98}; 98};
99 99
100DT_MACHINE_START(OMAP242X_DT, "Generic OMAP2420 (Flattened Device Tree)") 100DT_MACHINE_START(OMAP242X_DT, "Generic OMAP2420 (Flattened Device Tree)")
101 .atag_offset = 0x100,
102 .reserve = omap_reserve, 101 .reserve = omap_reserve,
103 .map_io = omap242x_map_io, 102 .map_io = omap242x_map_io,
104 .init_early = omap2420_init_early, 103 .init_early = omap2420_init_early,
@@ -111,14 +110,13 @@ DT_MACHINE_START(OMAP242X_DT, "Generic OMAP2420 (Flattened Device Tree)")
111MACHINE_END 110MACHINE_END
112#endif 111#endif
113 112
114#if defined(CONFIG_SOC_OMAP2430) 113#ifdef CONFIG_SOC_OMAP2430
115static const char *omap243x_boards_compat[] __initdata = { 114static const char *omap243x_boards_compat[] __initdata = {
116 "ti,omap2430", 115 "ti,omap2430",
117 NULL, 116 NULL,
118}; 117};
119 118
120DT_MACHINE_START(OMAP243X_DT, "Generic OMAP2430 (Flattened Device Tree)") 119DT_MACHINE_START(OMAP243X_DT, "Generic OMAP2430 (Flattened Device Tree)")
121 .atag_offset = 0x100,
122 .reserve = omap_reserve, 120 .reserve = omap_reserve,
123 .map_io = omap243x_map_io, 121 .map_io = omap243x_map_io,
124 .init_early = omap2430_init_early, 122 .init_early = omap2430_init_early,
@@ -131,14 +129,13 @@ DT_MACHINE_START(OMAP243X_DT, "Generic OMAP2430 (Flattened Device Tree)")
131MACHINE_END 129MACHINE_END
132#endif 130#endif
133 131
134#if defined(CONFIG_ARCH_OMAP3) 132#ifdef CONFIG_ARCH_OMAP3
135static const char *omap3_boards_compat[] __initdata = { 133static const char *omap3_boards_compat[] __initdata = {
136 "ti,omap3", 134 "ti,omap3",
137 NULL, 135 NULL,
138}; 136};
139 137
140DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)") 138DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")
141 .atag_offset = 0x100,
142 .reserve = omap_reserve, 139 .reserve = omap_reserve,
143 .map_io = omap3_map_io, 140 .map_io = omap3_map_io,
144 .init_early = omap3430_init_early, 141 .init_early = omap3430_init_early,
@@ -151,14 +148,13 @@ DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")
151MACHINE_END 148MACHINE_END
152#endif 149#endif
153 150
154#if defined(CONFIG_ARCH_OMAP4) 151#ifdef CONFIG_ARCH_OMAP4
155static const char *omap4_boards_compat[] __initdata = { 152static const char *omap4_boards_compat[] __initdata = {
156 "ti,omap4", 153 "ti,omap4",
157 NULL, 154 NULL,
158}; 155};
159 156
160DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)") 157DT_MACHINE_START(OMAP4_DT, "Generic OMAP4 (Flattened Device Tree)")
161 .atag_offset = 0x100,
162 .reserve = omap_reserve, 158 .reserve = omap_reserve,
163 .map_io = omap4_map_io, 159 .map_io = omap4_map_io,
164 .init_early = omap4430_init_early, 160 .init_early = omap4430_init_early,
diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c
index 1881fe915149..ad4f69394166 100644
--- a/arch/arm/mach-omap2/pm.c
+++ b/arch/arm/mach-omap2/pm.c
@@ -227,6 +227,14 @@ postcore_initcall(omap2_common_pm_init);
227 227
228static int __init omap2_common_pm_late_init(void) 228static int __init omap2_common_pm_late_init(void)
229{ 229{
230 /*
231 * In the case of DT, the PMIC and SR initialization will be done using
232 * a completely different mechanism.
233 * Disable this part if a DT blob is available.
234 */
235 if (of_have_populated_dt())
236 return 0;
237
230 /* Init the voltage layer */ 238 /* Init the voltage layer */
231 omap_pmic_late_init(); 239 omap_pmic_late_init();
232 omap_voltage_late_init(); 240 omap_voltage_late_init();
diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig
index aa59f4247dc5..f419a082b04b 100644
--- a/arch/arm/plat-omap/Kconfig
+++ b/arch/arm/plat-omap/Kconfig
@@ -14,6 +14,7 @@ config ARCH_OMAP1
14 select CLKDEV_LOOKUP 14 select CLKDEV_LOOKUP
15 select CLKSRC_MMIO 15 select CLKSRC_MMIO
16 select GENERIC_IRQ_CHIP 16 select GENERIC_IRQ_CHIP
17 select IRQ_DOMAIN
17 select HAVE_IDE 18 select HAVE_IDE
18 select NEED_MACH_MEMORY_H 19 select NEED_MACH_MEMORY_H
19 help 20 help
@@ -24,6 +25,8 @@ config ARCH_OMAP2PLUS
24 select CLKDEV_LOOKUP 25 select CLKDEV_LOOKUP
25 select GENERIC_IRQ_CHIP 26 select GENERIC_IRQ_CHIP
26 select OMAP_DM_TIMER 27 select OMAP_DM_TIMER
28 select USE_OF
29 select PROC_DEVICETREE if PROC_FS
27 help 30 help
28 "Systems based on OMAP2, OMAP3 or OMAP4" 31 "Systems based on OMAP2, OMAP3 or OMAP4"
29 32
diff --git a/arch/arm/plat-omap/omap_device.c b/arch/arm/plat-omap/omap_device.c
index e8d98693d2dd..69fde03729cd 100644
--- a/arch/arm/plat-omap/omap_device.c
+++ b/arch/arm/plat-omap/omap_device.c
@@ -348,7 +348,7 @@ static int omap_device_build_from_dt(struct platform_device *pdev)
348 348
349 oh_cnt = of_property_count_strings(node, "ti,hwmods"); 349 oh_cnt = of_property_count_strings(node, "ti,hwmods");
350 if (!oh_cnt || IS_ERR_VALUE(oh_cnt)) { 350 if (!oh_cnt || IS_ERR_VALUE(oh_cnt)) {
351 dev_warn(&pdev->dev, "No 'hwmods' to build omap_device\n"); 351 dev_dbg(&pdev->dev, "No 'hwmods' to build omap_device\n");
352 return -ENODEV; 352 return -ENODEV;
353 } 353 }
354 354