diff options
Diffstat (limited to 'meta/recipes-kernel/linux/linux-omap3-pm-git')
4 files changed, 697 insertions, 0 deletions
diff --git a/meta/recipes-kernel/linux/linux-omap3-pm-git/zoom2/0001-OMAP1-2-3-4-DEBUG_LL-cleanup.patch b/meta/recipes-kernel/linux/linux-omap3-pm-git/zoom2/0001-OMAP1-2-3-4-DEBUG_LL-cleanup.patch new file mode 100644 index 0000000000..e1e216c915 --- /dev/null +++ b/meta/recipes-kernel/linux/linux-omap3-pm-git/zoom2/0001-OMAP1-2-3-4-DEBUG_LL-cleanup.patch | |||
@@ -0,0 +1,217 @@ | |||
1 | From 51f967864f0e30225c8a8e50e0bbaf92258c0032 Mon Sep 17 00:00:00 2001 | ||
2 | From: Vikram Pandita <vikram.pandita@ti.com> | ||
3 | Date: Thu, 20 Aug 2009 16:13:20 -0500 | ||
4 | Subject: [PATCH 1/5] OMAP1/2/3/4: DEBUG_LL: cleanup | ||
5 | |||
6 | This patch cleans up the DEBUG_LL infrastructure for omap boards. | ||
7 | |||
8 | The three stages of log printing infrastructure is using their own #defines | ||
9 | The patch integrates the three stages to use the same variable. | ||
10 | |||
11 | Three stages are: | ||
12 | Stage 1: Prints - Uncompressing Linux...... | ||
13 | File getting used: arch/arm/plat-omap/include/mach/uncompress.h | ||
14 | Stage 2: Prints - <5>Linux version 2.6.31 | ||
15 | File getting used: arch/arm/plat-omap/include/mach/debug-macro.S | ||
16 | Stage 3: Kernel ttyS console takes over | ||
17 | |||
18 | On enabling the DEBUG_LL menuconfig item | ||
19 | [Kernel Hacking -> Kernel low-level debugging functions] | ||
20 | |||
21 | the following entry gets auto selected | ||
22 | [Systerm Type -> TI OMAP Implementations -> Low-level Debug console UART] | ||
23 | |||
24 | This is the physical address of the UART getting used for the board. | ||
25 | The physical address of debug uart is provided as a menuconfig option now. | ||
26 | |||
27 | Issue with current system: | ||
28 | (a) Zoom2 board has a detachable debug board having the TL16CP754 Quad uart chip. | ||
29 | If the debug board is not attached, _NO_ debug uart is available. | ||
30 | OMAP internal uarts are not used for traces on zoom2 board. | ||
31 | Current framework does not account for boards that may not have a debug uart | ||
32 | at all. The Stage 1 always accesses one of the uarts. Thats fixed now. | ||
33 | |||
34 | (b) this patch does a cleanup of arch/arm/plat-omap/include/mach/debug-macro.S | ||
35 | |||
36 | Signed-off-by: Vikram Pandita <vikram.pandita@ti.com> | ||
37 | --- | ||
38 | arch/arm/plat-omap/Kconfig | 50 ++++++++++++++++++------- | ||
39 | arch/arm/plat-omap/include/mach/common.h | 7 +++ | ||
40 | arch/arm/plat-omap/include/mach/debug-macro.S | 40 ++++---------------- | ||
41 | arch/arm/plat-omap/include/mach/uncompress.h | 12 +---- | ||
42 | 4 files changed, 54 insertions(+), 55 deletions(-) | ||
43 | |||
44 | diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig | ||
45 | index ab9f9ef..2fefb64 100644 | ||
46 | --- a/arch/arm/plat-omap/Kconfig | ||
47 | +++ b/arch/arm/plat-omap/Kconfig | ||
48 | @@ -162,21 +162,43 @@ config OMAP_DM_TIMER | ||
49 | help | ||
50 | Select this option if you want to use OMAP Dual-Mode timers. | ||
51 | |||
52 | -choice | ||
53 | - prompt "Low-level debug console UART" | ||
54 | - depends on ARCH_OMAP | ||
55 | - default OMAP_LL_DEBUG_UART1 | ||
56 | - | ||
57 | -config OMAP_LL_DEBUG_UART1 | ||
58 | - bool "UART1" | ||
59 | - | ||
60 | -config OMAP_LL_DEBUG_UART2 | ||
61 | - bool "UART2" | ||
62 | |||
63 | -config OMAP_LL_DEBUG_UART3 | ||
64 | - bool "UART3" | ||
65 | - | ||
66 | -endchoice | ||
67 | +config OMAP_DEBUG_LL_UART_PHY_ADDR | ||
68 | + hex "Low-level debug console UART Physical Address" | ||
69 | + depends on ARCH_OMAP && DEBUG_LL | ||
70 | + | ||
71 | + default "0xfffb0800" if ARCH_OMAP1 && (MACH_OMAP_PALMTT || MACH_SX1) | ||
72 | + default "0xfffb0000" if ARCH_OMAP1 | ||
73 | + default "0x4806e000" if ARCH_OMAP2 && MACH_NOKIA_N8X0 | ||
74 | + default "0x4806a000" if ARCH_OMAP2 | ||
75 | + default "0x49020000" if ARCH_OMAP3 && (MACH_NOKIA_RX51 || MACH_OMAP_BEAGLE) | ||
76 | + default "0x49020000" if ARCH_OMAP3 && (MACH_OMAP3_PANDORA || MACH_OMAP_LDP || MACH_OVERO) | ||
77 | + default "0x10000000" if ARCH_OMAP3 && MACH_OMAP_ZOOM2 | ||
78 | + default "0x4806a000" if ARCH_OMAP3 | ||
79 | + default "0x4806a000" if ARCH_OMAP4 | ||
80 | + help | ||
81 | + Specify the Physical address of Low level debug UART | ||
82 | + Specify 0x0 in case you do not want DEBUG_LL functions to iterfere with your board uarts | ||
83 | + | ||
84 | + OMAP1: | ||
85 | + ------------------- | ||
86 | + UART1 -> 0xfffb0000 (default) | ||
87 | + UART2 -> 0xfffb0800 | ||
88 | + UART3 -> 0xfffb9800 (sx1, palmtt) | ||
89 | + | ||
90 | + OMAP2: | ||
91 | + ------------------- | ||
92 | + UART1 -> 0x4806a000 (default) | ||
93 | + UART2 -> 0x4806c000 | ||
94 | + UART3 -> 0x4806e000 (N8X0) | ||
95 | + | ||
96 | + OMAP3/4: | ||
97 | + ------------------- | ||
98 | + UART1 -> 0x4806a000 (default: except following) | ||
99 | + UART2 -> 0x4806c000 | ||
100 | + UART3 -> 0x49020000 (rx51, beagle, pendora, ldp, overo) | ||
101 | + UART4 -> 0x4806e000 | ||
102 | + UART_EXT -> 0x10000000 (zoom2: Debug uart is on external debug board) | ||
103 | |||
104 | config OMAP_SERIAL_WAKE | ||
105 | bool "Enable wake-up events for serial ports" | ||
106 | diff --git a/arch/arm/plat-omap/include/mach/common.h b/arch/arm/plat-omap/include/mach/common.h | ||
107 | index fdeab42..f29d31f 100644 | ||
108 | --- a/arch/arm/plat-omap/include/mach/common.h | ||
109 | +++ b/arch/arm/plat-omap/include/mach/common.h | ||
110 | @@ -68,4 +68,11 @@ void omap2_set_globals_sdrc(struct omap_globals *); | ||
111 | void omap2_set_globals_control(struct omap_globals *); | ||
112 | void omap2_set_globals_prcm(struct omap_globals *); | ||
113 | |||
114 | +/* In case Low Level debug is not defined | ||
115 | + * make the low level uart address as zero | ||
116 | + */ | ||
117 | +#if !defined(CONFIG_DEBUG_LL) | ||
118 | +#define CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR 0 | ||
119 | +#endif | ||
120 | + | ||
121 | #endif /* __ARCH_ARM_MACH_OMAP_COMMON_H */ | ||
122 | diff --git a/arch/arm/plat-omap/include/mach/debug-macro.S b/arch/arm/plat-omap/include/mach/debug-macro.S | ||
123 | index ac24050..f546d6c 100644 | ||
124 | --- a/arch/arm/plat-omap/include/mach/debug-macro.S | ||
125 | +++ b/arch/arm/plat-omap/include/mach/debug-macro.S | ||
126 | @@ -10,43 +10,19 @@ | ||
127 | * published by the Free Software Foundation. | ||
128 | * | ||
129 | */ | ||
130 | +#include "io.h" | ||
131 | |||
132 | .macro addruart,rx | ||
133 | mrc p15, 0, \rx, c1, c0 | ||
134 | tst \rx, #1 @ MMU enabled? | ||
135 | #ifdef CONFIG_ARCH_OMAP1 | ||
136 | - moveq \rx, #0xff000000 @ physical base address | ||
137 | - movne \rx, #0xfe000000 @ virtual base | ||
138 | - orr \rx, \rx, #0x00fb0000 | ||
139 | -#ifdef CONFIG_OMAP_LL_DEBUG_UART3 | ||
140 | - orr \rx, \rx, #0x00009000 @ UART 3 | ||
141 | -#endif | ||
142 | -#if defined(CONFIG_OMAP_LL_DEBUG_UART2) || defined(CONFIG_OMAP_LL_DEBUG_UART3) | ||
143 | - orr \rx, \rx, #0x00000800 @ UART 2 & 3 | ||
144 | -#endif | ||
145 | - | ||
146 | -#elif CONFIG_ARCH_OMAP2 | ||
147 | - moveq \rx, #0x48000000 @ physical base address | ||
148 | - movne \rx, #0xd8000000 @ virtual base | ||
149 | - orr \rx, \rx, #0x0006a000 | ||
150 | -#ifdef CONFIG_OMAP_LL_DEBUG_UART2 | ||
151 | - add \rx, \rx, #0x00002000 @ UART 2 | ||
152 | -#endif | ||
153 | -#ifdef CONFIG_OMAP_LL_DEBUG_UART3 | ||
154 | - add \rx, \rx, #0x00004000 @ UART 3 | ||
155 | -#endif | ||
156 | - | ||
157 | -#elif defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4) | ||
158 | - moveq \rx, #0x48000000 @ physical base address | ||
159 | - movne \rx, #0xd8000000 @ virtual base | ||
160 | - orr \rx, \rx, #0x0006a000 | ||
161 | -#ifdef CONFIG_OMAP_LL_DEBUG_UART2 | ||
162 | - add \rx, \rx, #0x00002000 @ UART 2 | ||
163 | -#endif | ||
164 | -#ifdef CONFIG_OMAP_LL_DEBUG_UART3 | ||
165 | - add \rx, \rx, #0x00fb0000 @ UART 3 | ||
166 | - add \rx, \rx, #0x00006000 | ||
167 | -#endif | ||
168 | + /* omap1 */ | ||
169 | + ldr \rx, =CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR @ physical base address | ||
170 | + subne \rx, #CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR, #OMAP1_IO_OFFSET @ virtual base | ||
171 | +#else | ||
172 | + /* omap2/omap3/omap4 */ | ||
173 | + ldr \rx, =CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR @ physical base address | ||
174 | + orrne \rx, \rx, #OMAP2_IO_OFFSET @ virtual base | ||
175 | #endif | ||
176 | .endm | ||
177 | |||
178 | diff --git a/arch/arm/plat-omap/include/mach/uncompress.h b/arch/arm/plat-omap/include/mach/uncompress.h | ||
179 | index 0814c5f..0e21eb3 100644 | ||
180 | --- a/arch/arm/plat-omap/include/mach/uncompress.h | ||
181 | +++ b/arch/arm/plat-omap/include/mach/uncompress.h | ||
182 | @@ -38,14 +38,8 @@ static void putc(int c) | ||
183 | return; | ||
184 | #endif | ||
185 | |||
186 | -#ifdef CONFIG_ARCH_OMAP | ||
187 | -#ifdef CONFIG_OMAP_LL_DEBUG_UART3 | ||
188 | - uart = (volatile u8 *)(OMAP_UART3_BASE); | ||
189 | -#elif defined(CONFIG_OMAP_LL_DEBUG_UART2) | ||
190 | - uart = (volatile u8 *)(OMAP_UART2_BASE); | ||
191 | -#else | ||
192 | - uart = (volatile u8 *)(OMAP_UART1_BASE); | ||
193 | -#endif | ||
194 | +#if defined(CONFIG_DEBUG_LL) | ||
195 | + uart = (volatile u8 *)(CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR); | ||
196 | |||
197 | #ifdef CONFIG_ARCH_OMAP1 | ||
198 | /* Determine which serial port to use */ | ||
199 | @@ -62,7 +56,6 @@ static void putc(int c) | ||
200 | return; | ||
201 | } while (0); | ||
202 | #endif /* CONFIG_ARCH_OMAP1 */ | ||
203 | -#endif | ||
204 | |||
205 | /* | ||
206 | * Now, xmit each character | ||
207 | @@ -70,6 +63,7 @@ static void putc(int c) | ||
208 | while (!(uart[UART_LSR << shift] & UART_LSR_THRE)) | ||
209 | barrier(); | ||
210 | uart[UART_TX << shift] = c; | ||
211 | +#endif /* CONFIG_DEBUG_LL */ | ||
212 | } | ||
213 | |||
214 | static inline void flush(void) | ||
215 | -- | ||
216 | 1.6.3.2 | ||
217 | |||
diff --git a/meta/recipes-kernel/linux/linux-omap3-pm-git/zoom2/0002-OMAP1-2-3-4-Adapt-board-files-for-cleand-DEBUG_LL-in.patch b/meta/recipes-kernel/linux/linux-omap3-pm-git/zoom2/0002-OMAP1-2-3-4-Adapt-board-files-for-cleand-DEBUG_LL-in.patch new file mode 100644 index 0000000000..8019631b1d --- /dev/null +++ b/meta/recipes-kernel/linux/linux-omap3-pm-git/zoom2/0002-OMAP1-2-3-4-Adapt-board-files-for-cleand-DEBUG_LL-in.patch | |||
@@ -0,0 +1,268 @@ | |||
1 | From 533dc09b3515211d6bee1f63aa3ddd659d0d319c Mon Sep 17 00:00:00 2001 | ||
2 | From: Vikram Pandita <vikram.pandita@ti.com> | ||
3 | Date: Thu, 20 Aug 2009 16:58:42 -0500 | ||
4 | Subject: [PATCH 2/5] OMAP1/2/3/4: Adapt board files for cleand DEBUG_LL interface | ||
5 | |||
6 | This patch assigns the physical address of debug uart as defined | ||
7 | in menucoinfig item CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR to phys_io | ||
8 | |||
9 | The virtual address for io_pg_offset is calculated as per static | ||
10 | mapping | ||
11 | |||
12 | CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR is a hex value and for boards | ||
13 | like Zoom2, the phy address can be zero, in case debug board | ||
14 | is not attached. | ||
15 | |||
16 | Signed-off-by: Vikram Pandita <vikram.pandita@ti.com> | ||
17 | --- | ||
18 | arch/arm/mach-omap2/board-2430sdp.c | 4 ++-- | ||
19 | arch/arm/mach-omap2/board-3430sdp.c | 4 ++-- | ||
20 | arch/arm/mach-omap2/board-4430sdp.c | 4 ++-- | ||
21 | arch/arm/mach-omap2/board-apollon.c | 4 ++-- | ||
22 | arch/arm/mach-omap2/board-generic.c | 4 ++-- | ||
23 | arch/arm/mach-omap2/board-h4.c | 4 ++-- | ||
24 | arch/arm/mach-omap2/board-ldp.c | 4 ++-- | ||
25 | arch/arm/mach-omap2/board-n8x0.c | 12 ++++++------ | ||
26 | arch/arm/mach-omap2/board-omap3beagle.c | 4 ++-- | ||
27 | arch/arm/mach-omap2/board-omap3evm.c | 4 ++-- | ||
28 | arch/arm/mach-omap2/board-omap3pandora.c | 4 ++-- | ||
29 | arch/arm/mach-omap2/board-overo.c | 4 ++-- | ||
30 | arch/arm/mach-omap2/board-rx51.c | 4 ++-- | ||
31 | arch/arm/mach-omap2/board-zoom2.c | 4 ++-- | ||
32 | 14 files changed, 32 insertions(+), 32 deletions(-) | ||
33 | |||
34 | diff --git a/arch/arm/mach-omap2/board-2430sdp.c b/arch/arm/mach-omap2/board-2430sdp.c | ||
35 | index c693668..9ed2f2c 100644 | ||
36 | --- a/arch/arm/mach-omap2/board-2430sdp.c | ||
37 | +++ b/arch/arm/mach-omap2/board-2430sdp.c | ||
38 | @@ -225,8 +225,8 @@ static void __init omap_2430sdp_map_io(void) | ||
39 | |||
40 | MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board") | ||
41 | /* Maintainer: Syed Khasim - Texas Instruments Inc */ | ||
42 | - .phys_io = 0x48000000, | ||
43 | - .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc, | ||
44 | + .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR, | ||
45 | + .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc, | ||
46 | .boot_params = 0x80000100, | ||
47 | .map_io = omap_2430sdp_map_io, | ||
48 | .init_irq = omap_2430sdp_init_irq, | ||
49 | diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c | ||
50 | index c71417f..f085eee 100644 | ||
51 | --- a/arch/arm/mach-omap2/board-3430sdp.c | ||
52 | +++ b/arch/arm/mach-omap2/board-3430sdp.c | ||
53 | @@ -505,8 +505,8 @@ static void __init omap_3430sdp_map_io(void) | ||
54 | |||
55 | MACHINE_START(OMAP_3430SDP, "OMAP3430 3430SDP board") | ||
56 | /* Maintainer: Syed Khasim - Texas Instruments Inc */ | ||
57 | - .phys_io = 0x48000000, | ||
58 | - .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc, | ||
59 | + .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR, | ||
60 | + .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc, | ||
61 | .boot_params = 0x80000100, | ||
62 | .map_io = omap_3430sdp_map_io, | ||
63 | .init_irq = omap_3430sdp_init_irq, | ||
64 | diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c | ||
65 | index 646079f..4c1a166 100644 | ||
66 | --- a/arch/arm/mach-omap2/board-4430sdp.c | ||
67 | +++ b/arch/arm/mach-omap2/board-4430sdp.c | ||
68 | @@ -83,8 +83,8 @@ static void __init omap_4430sdp_map_io(void) | ||
69 | |||
70 | MACHINE_START(OMAP_4430SDP, "OMAP4430 4430SDP board") | ||
71 | /* Maintainer: Santosh Shilimkar - Texas Instruments Inc */ | ||
72 | - .phys_io = 0x48000000, | ||
73 | - .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc, | ||
74 | + .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR, | ||
75 | + .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc, | ||
76 | .boot_params = 0x80000100, | ||
77 | .map_io = omap_4430sdp_map_io, | ||
78 | .init_irq = omap_4430sdp_init_irq, | ||
79 | diff --git a/arch/arm/mach-omap2/board-apollon.c b/arch/arm/mach-omap2/board-apollon.c | ||
80 | index e2947fd..61da659 100644 | ||
81 | --- a/arch/arm/mach-omap2/board-apollon.c | ||
82 | +++ b/arch/arm/mach-omap2/board-apollon.c | ||
83 | @@ -336,8 +336,8 @@ static void __init omap_apollon_map_io(void) | ||
84 | |||
85 | MACHINE_START(OMAP_APOLLON, "OMAP24xx Apollon") | ||
86 | /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */ | ||
87 | - .phys_io = 0x48000000, | ||
88 | - .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc, | ||
89 | + .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR, | ||
90 | + .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc, | ||
91 | .boot_params = 0x80000100, | ||
92 | .map_io = omap_apollon_map_io, | ||
93 | .init_irq = omap_apollon_init_irq, | ||
94 | diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c | ||
95 | index fc9eccb..6d39eaa 100644 | ||
96 | --- a/arch/arm/mach-omap2/board-generic.c | ||
97 | +++ b/arch/arm/mach-omap2/board-generic.c | ||
98 | @@ -59,8 +59,8 @@ static void __init omap_generic_map_io(void) | ||
99 | |||
100 | MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx") | ||
101 | /* Maintainer: Paul Mundt <paul.mundt@nokia.com> */ | ||
102 | - .phys_io = 0x48000000, | ||
103 | - .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc, | ||
104 | + .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR, | ||
105 | + .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR - OMAP1_IO_OFFSET) >> 18) & 0xfffc, | ||
106 | .boot_params = 0x80000100, | ||
107 | .map_io = omap_generic_map_io, | ||
108 | .init_irq = omap_generic_init_irq, | ||
109 | diff --git a/arch/arm/mach-omap2/board-h4.c b/arch/arm/mach-omap2/board-h4.c | ||
110 | index 7eda321..4ce760f 100644 | ||
111 | --- a/arch/arm/mach-omap2/board-h4.c | ||
112 | +++ b/arch/arm/mach-omap2/board-h4.c | ||
113 | @@ -379,8 +379,8 @@ static void __init omap_h4_map_io(void) | ||
114 | |||
115 | MACHINE_START(OMAP_H4, "OMAP2420 H4 board") | ||
116 | /* Maintainer: Paul Mundt <paul.mundt@nokia.com> */ | ||
117 | - .phys_io = 0x48000000, | ||
118 | - .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc, | ||
119 | + .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR, | ||
120 | + .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc, | ||
121 | .boot_params = 0x80000100, | ||
122 | .map_io = omap_h4_map_io, | ||
123 | .init_irq = omap_h4_init_irq, | ||
124 | diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c | ||
125 | index 4a4b300..5f06434 100644 | ||
126 | --- a/arch/arm/mach-omap2/board-ldp.c | ||
127 | +++ b/arch/arm/mach-omap2/board-ldp.c | ||
128 | @@ -398,8 +398,8 @@ static void __init omap_ldp_map_io(void) | ||
129 | } | ||
130 | |||
131 | MACHINE_START(OMAP_LDP, "OMAP LDP board") | ||
132 | - .phys_io = 0x48000000, | ||
133 | - .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc, | ||
134 | + .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR, | ||
135 | + .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc, | ||
136 | .boot_params = 0x80000100, | ||
137 | .map_io = omap_ldp_map_io, | ||
138 | .init_irq = omap_ldp_init_irq, | ||
139 | diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c | ||
140 | index af6fcee..464b432 100644 | ||
141 | --- a/arch/arm/mach-omap2/board-n8x0.c | ||
142 | +++ b/arch/arm/mach-omap2/board-n8x0.c | ||
143 | @@ -125,8 +125,8 @@ static void __init n8x0_init_machine(void) | ||
144 | } | ||
145 | |||
146 | MACHINE_START(NOKIA_N800, "Nokia N800") | ||
147 | - .phys_io = 0x48000000, | ||
148 | - .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc, | ||
149 | + .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR, | ||
150 | + .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc, | ||
151 | .boot_params = 0x80000100, | ||
152 | .map_io = n8x0_map_io, | ||
153 | .init_irq = n8x0_init_irq, | ||
154 | @@ -135,8 +135,8 @@ MACHINE_START(NOKIA_N800, "Nokia N800") | ||
155 | MACHINE_END | ||
156 | |||
157 | MACHINE_START(NOKIA_N810, "Nokia N810") | ||
158 | - .phys_io = 0x48000000, | ||
159 | - .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc, | ||
160 | + .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR, | ||
161 | + .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc, | ||
162 | .boot_params = 0x80000100, | ||
163 | .map_io = n8x0_map_io, | ||
164 | .init_irq = n8x0_init_irq, | ||
165 | @@ -145,8 +145,8 @@ MACHINE_START(NOKIA_N810, "Nokia N810") | ||
166 | MACHINE_END | ||
167 | |||
168 | MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX") | ||
169 | - .phys_io = 0x48000000, | ||
170 | - .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc, | ||
171 | + .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR, | ||
172 | + .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc, | ||
173 | .boot_params = 0x80000100, | ||
174 | .map_io = n8x0_map_io, | ||
175 | .init_irq = n8x0_init_irq, | ||
176 | diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c | ||
177 | index 07aee90..4d30948 100644 | ||
178 | --- a/arch/arm/mach-omap2/board-omap3beagle.c | ||
179 | +++ b/arch/arm/mach-omap2/board-omap3beagle.c | ||
180 | @@ -428,8 +428,8 @@ static void __init omap3_beagle_map_io(void) | ||
181 | |||
182 | MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board") | ||
183 | /* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */ | ||
184 | - .phys_io = 0x48000000, | ||
185 | - .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc, | ||
186 | + .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR, | ||
187 | + .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc, | ||
188 | .boot_params = 0x80000100, | ||
189 | .map_io = omap3_beagle_map_io, | ||
190 | .init_irq = omap3_beagle_init_irq, | ||
191 | diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c | ||
192 | index c0cb29d..8f24dd6 100644 | ||
193 | --- a/arch/arm/mach-omap2/board-omap3evm.c | ||
194 | +++ b/arch/arm/mach-omap2/board-omap3evm.c | ||
195 | @@ -324,8 +324,8 @@ static void __init omap3_evm_map_io(void) | ||
196 | |||
197 | MACHINE_START(OMAP3EVM, "OMAP3 EVM") | ||
198 | /* Maintainer: Syed Mohammed Khasim - Texas Instruments */ | ||
199 | - .phys_io = 0x48000000, | ||
200 | - .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc, | ||
201 | + .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR, | ||
202 | + .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc, | ||
203 | .boot_params = 0x80000100, | ||
204 | .map_io = omap3_evm_map_io, | ||
205 | .init_irq = omap3_evm_init_irq, | ||
206 | diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c | ||
207 | index 1991f19..05d1994 100644 | ||
208 | --- a/arch/arm/mach-omap2/board-omap3pandora.c | ||
209 | +++ b/arch/arm/mach-omap2/board-omap3pandora.c | ||
210 | @@ -412,8 +412,8 @@ static void __init omap3pandora_map_io(void) | ||
211 | } | ||
212 | |||
213 | MACHINE_START(OMAP3_PANDORA, "Pandora Handheld Console") | ||
214 | - .phys_io = 0x48000000, | ||
215 | - .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc, | ||
216 | + .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR, | ||
217 | + .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc, | ||
218 | .boot_params = 0x80000100, | ||
219 | .map_io = omap3pandora_map_io, | ||
220 | .init_irq = omap3pandora_init_irq, | ||
221 | diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c | ||
222 | index a9d7c2e..4057a1b 100644 | ||
223 | --- a/arch/arm/mach-omap2/board-overo.c | ||
224 | +++ b/arch/arm/mach-omap2/board-overo.c | ||
225 | @@ -454,8 +454,8 @@ static void __init overo_map_io(void) | ||
226 | } | ||
227 | |||
228 | MACHINE_START(OVERO, "Gumstix Overo") | ||
229 | - .phys_io = 0x48000000, | ||
230 | - .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc, | ||
231 | + .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR, | ||
232 | + .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc, | ||
233 | .boot_params = 0x80000100, | ||
234 | .map_io = overo_map_io, | ||
235 | .init_irq = overo_init_irq, | ||
236 | diff --git a/arch/arm/mach-omap2/board-rx51.c b/arch/arm/mach-omap2/board-rx51.c | ||
237 | index 8a3dc61..4b97fe8 100644 | ||
238 | --- a/arch/arm/mach-omap2/board-rx51.c | ||
239 | +++ b/arch/arm/mach-omap2/board-rx51.c | ||
240 | @@ -88,8 +88,8 @@ static void __init rx51_map_io(void) | ||
241 | |||
242 | MACHINE_START(NOKIA_RX51, "Nokia RX-51 board") | ||
243 | /* Maintainer: Lauri Leukkunen <lauri.leukkunen@nokia.com> */ | ||
244 | - .phys_io = 0x48000000, | ||
245 | - .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc, | ||
246 | + .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR, | ||
247 | + .io_pg_offst = ((CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR + OMAP2_IO_OFFSET) >> 18) & 0xfffc, | ||
248 | .boot_params = 0x80000100, | ||
249 | .map_io = rx51_map_io, | ||
250 | .init_irq = rx51_init_irq, | ||
251 | diff --git a/arch/arm/mach-omap2/board-zoom2.c b/arch/arm/mach-omap2/board-zoom2.c | ||
252 | index 4d295d5..58baee3 100644 | ||
253 | --- a/arch/arm/mach-omap2/board-zoom2.c | ||
254 | +++ b/arch/arm/mach-omap2/board-zoom2.c | ||
255 | @@ -280,8 +280,8 @@ static void __init omap_zoom2_map_io(void) | ||
256 | } | ||
257 | |||
258 | MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board") | ||
259 | - .phys_io = 0x48000000, | ||
260 | - .io_pg_offst = ((0xd8000000) >> 18) & 0xfffc, | ||
261 | + .phys_io = CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR, | ||
262 | + .io_pg_offst = ((ZOOM2_EXT_QUART_VIRT) >> 18) & 0xfffc, | ||
263 | .boot_params = 0x80000100, | ||
264 | .map_io = omap_zoom2_map_io, | ||
265 | .init_irq = omap_zoom2_init_irq, | ||
266 | -- | ||
267 | 1.6.3.2 | ||
268 | |||
diff --git a/meta/recipes-kernel/linux/linux-omap3-pm-git/zoom2/0003-OMAP-Zoom2-Add-DEBUG_LL-interface-using-external-Qua.patch b/meta/recipes-kernel/linux/linux-omap3-pm-git/zoom2/0003-OMAP-Zoom2-Add-DEBUG_LL-interface-using-external-Qua.patch new file mode 100644 index 0000000000..e39090f6cf --- /dev/null +++ b/meta/recipes-kernel/linux/linux-omap3-pm-git/zoom2/0003-OMAP-Zoom2-Add-DEBUG_LL-interface-using-external-Qua.patch | |||
@@ -0,0 +1,171 @@ | |||
1 | From 98d46e88ffe23a9adcf6ae1acf19b210d5ac3737 Mon Sep 17 00:00:00 2001 | ||
2 | From: Vikram Pandita <vikram.pandita@ti.com> | ||
3 | Date: Thu, 20 Aug 2009 17:16:24 -0500 | ||
4 | Subject: [PATCH 3/5] OMAP: Zoom2: Add DEBUG_LL interface using external Quart | ||
5 | |||
6 | This patch adds DEBUG_LL interface for Zoom2 board. | ||
7 | The low level debug uart now points corrctly to External Quad uart | ||
8 | controller on detachable debug board. | ||
9 | |||
10 | The Quad uart is available over GPMC chip select with physical address | ||
11 | 0x10000000. | ||
12 | |||
13 | This physical address has been mapped to virtual address 0xFB000000 | ||
14 | as per static mapping. | ||
15 | |||
16 | Also the register accesses to Quad uart have a requirement of shift=1 | ||
17 | based on the h/w mapping of the registers | ||
18 | |||
19 | This patch is adapted from a version by Erik Gilling: | ||
20 | http://android.git.kernel.org/?p=kernel/omap.git; | ||
21 | a=commit;h=e9d72efdd88877d2d6ea74a08983ace0dcc771d3 | ||
22 | |||
23 | Signed-off-by: Vikram Pandita <vikram.pandita@ti.com> | ||
24 | Cc: Erik Gilling <konkers@android.com> | ||
25 | --- | ||
26 | arch/arm/mach-omap2/board-zoom-debugboard.c | 5 +++-- | ||
27 | arch/arm/mach-omap2/board-zoom2.c | 15 +++++++++++++++ | ||
28 | arch/arm/plat-omap/include/mach/debug-macro.S | 14 ++++++++++++-- | ||
29 | arch/arm/plat-omap/include/mach/io.h | 6 ++++++ | ||
30 | arch/arm/plat-omap/include/mach/uncompress.h | 7 +++++++ | ||
31 | 5 files changed, 43 insertions(+), 4 deletions(-) | ||
32 | |||
33 | diff --git a/arch/arm/mach-omap2/board-zoom-debugboard.c b/arch/arm/mach-omap2/board-zoom-debugboard.c | ||
34 | index f546063..f8b0726 100644 | ||
35 | --- a/arch/arm/mach-omap2/board-zoom-debugboard.c | ||
36 | +++ b/arch/arm/mach-omap2/board-zoom-debugboard.c | ||
37 | @@ -82,9 +82,10 @@ static inline void __init zoom2_init_smsc911x(void) | ||
38 | |||
39 | static struct plat_serial8250_port serial_platform_data[] = { | ||
40 | { | ||
41 | - .mapbase = 0x10000000, | ||
42 | + .membase = IOMEM(ZOOM2_EXT_QUART_VIRT), | ||
43 | + .mapbase = ZOOM2_EXT_QUART_PHYS, | ||
44 | .irq = OMAP_GPIO_IRQ(102), | ||
45 | - .flags = UPF_BOOT_AUTOCONF|UPF_IOREMAP|UPF_SHARE_IRQ, | ||
46 | + .flags = UPF_BOOT_AUTOCONF|UPF_SHARE_IRQ, | ||
47 | .irqflags = IRQF_SHARED | IRQF_TRIGGER_RISING, | ||
48 | .iotype = UPIO_MEM, | ||
49 | .regshift = 1, | ||
50 | diff --git a/arch/arm/mach-omap2/board-zoom2.c b/arch/arm/mach-omap2/board-zoom2.c | ||
51 | index 58baee3..fc27b07 100644 | ||
52 | --- a/arch/arm/mach-omap2/board-zoom2.c | ||
53 | +++ b/arch/arm/mach-omap2/board-zoom2.c | ||
54 | @@ -16,9 +16,11 @@ | ||
55 | #include <linux/gpio.h> | ||
56 | #include <linux/i2c/twl4030.h> | ||
57 | #include <linux/regulator/machine.h> | ||
58 | +#include <linux/io.h> | ||
59 | |||
60 | #include <asm/mach-types.h> | ||
61 | #include <asm/mach/arch.h> | ||
62 | +#include <asm/mach/map.h> | ||
63 | |||
64 | #include <mach/common.h> | ||
65 | #include <mach/usb.h> | ||
66 | @@ -273,9 +275,22 @@ static void __init omap_zoom2_init(void) | ||
67 | usb_musb_init(); | ||
68 | } | ||
69 | |||
70 | +static struct map_desc zoom2_io_desc[] __initdata = { | ||
71 | + { | ||
72 | + .virtual = ZOOM2_EXT_QUART_VIRT, | ||
73 | + .pfn = __phys_to_pfn(ZOOM2_EXT_QUART_PHYS), | ||
74 | + .length = ZOOM2_EXT_QUART_SIZE, | ||
75 | + .type = MT_DEVICE | ||
76 | + } | ||
77 | +}; | ||
78 | + | ||
79 | static void __init omap_zoom2_map_io(void) | ||
80 | { | ||
81 | omap2_set_globals_343x(); | ||
82 | + | ||
83 | + /* Map external quad UART virt to phy mapping */ | ||
84 | + iotable_init(zoom2_io_desc, ARRAY_SIZE(zoom2_io_desc)); | ||
85 | + | ||
86 | omap2_map_common_io(); | ||
87 | } | ||
88 | |||
89 | diff --git a/arch/arm/plat-omap/include/mach/debug-macro.S b/arch/arm/plat-omap/include/mach/debug-macro.S | ||
90 | index f546d6c..a97f2fb 100644 | ||
91 | --- a/arch/arm/plat-omap/include/mach/debug-macro.S | ||
92 | +++ b/arch/arm/plat-omap/include/mach/debug-macro.S | ||
93 | @@ -12,6 +12,14 @@ | ||
94 | */ | ||
95 | #include "io.h" | ||
96 | |||
97 | +#if (CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR == 0x10000000) | ||
98 | +#define REGSHIFT 1 | ||
99 | +#define UART_VIRT_TO_PHY_OFFSET ZOOM2_EXT_QUART_PHY_TO_VIRT_OFF | ||
100 | +#else | ||
101 | +#define REGSHIFT 2 | ||
102 | +#define UART_VIRT_TO_PHY_OFFSET OMAP2_IO_OFFSET | ||
103 | +#endif | ||
104 | + | ||
105 | .macro addruart,rx | ||
106 | mrc p15, 0, \rx, c1, c0 | ||
107 | tst \rx, #1 @ MMU enabled? | ||
108 | @@ -22,7 +30,7 @@ | ||
109 | #else | ||
110 | /* omap2/omap3/omap4 */ | ||
111 | ldr \rx, =CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR @ physical base address | ||
112 | - orrne \rx, \rx, #OMAP2_IO_OFFSET @ virtual base | ||
113 | + orrne \rx, \rx, #UART_VIRT_TO_PHY_OFFSET @ virtual base | ||
114 | #endif | ||
115 | .endm | ||
116 | |||
117 | @@ -31,13 +39,15 @@ | ||
118 | .endm | ||
119 | |||
120 | .macro busyuart,rd,rx | ||
121 | -1001: ldrb \rd, [\rx, #(0x5 << 2)] @ OMAP-1510 and friends | ||
122 | +1001: ldrb \rd, [\rx, #(0x5 << REGSHIFT)] @ OMAP-1510 and friends | ||
123 | and \rd, \rd, #0x60 | ||
124 | teq \rd, #0x60 | ||
125 | +#if (CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR != 0x10000000) | ||
126 | beq 1002f | ||
127 | ldrb \rd, [\rx, #(0x5 << 0)] @ OMAP-730 only | ||
128 | and \rd, \rd, #0x60 | ||
129 | teq \rd, #0x60 | ||
130 | +#endif | ||
131 | bne 1001b | ||
132 | 1002: | ||
133 | .endm | ||
134 | diff --git a/arch/arm/plat-omap/include/mach/io.h b/arch/arm/plat-omap/include/mach/io.h | ||
135 | index 8d32df3..97702e6 100644 | ||
136 | --- a/arch/arm/plat-omap/include/mach/io.h | ||
137 | +++ b/arch/arm/plat-omap/include/mach/io.h | ||
138 | @@ -169,6 +169,12 @@ | ||
139 | #define DSP_MMU_34XX_VIRT 0xe2000000 | ||
140 | #define DSP_MMU_34XX_SIZE SZ_4K | ||
141 | |||
142 | +/* Map External Quad UART for Zoom2 board */ | ||
143 | +#define ZOOM2_EXT_QUART_PHYS 0x10000000 /* PHY address if fixed */ | ||
144 | +#define ZOOM2_EXT_QUART_PHY_TO_VIRT_OFF 0xeb000000 | ||
145 | +#define ZOOM2_EXT_QUART_VIRT 0xfb000000 | ||
146 | +#define ZOOM2_EXT_QUART_SIZE SZ_16 | ||
147 | + | ||
148 | /* | ||
149 | * ---------------------------------------------------------------------------- | ||
150 | * Omap4 specific IO mapping | ||
151 | diff --git a/arch/arm/plat-omap/include/mach/uncompress.h b/arch/arm/plat-omap/include/mach/uncompress.h | ||
152 | index 0e21eb3..959195a 100644 | ||
153 | --- a/arch/arm/plat-omap/include/mach/uncompress.h | ||
154 | +++ b/arch/arm/plat-omap/include/mach/uncompress.h | ||
155 | @@ -41,6 +41,13 @@ static void putc(int c) | ||
156 | #if defined(CONFIG_DEBUG_LL) | ||
157 | uart = (volatile u8 *)(CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR); | ||
158 | |||
159 | +#if (CONFIG_OMAP_DEBUG_LL_UART_PHY_ADDR == 0x10000000) | ||
160 | + /* External UART has a shift=1 requirement | ||
161 | + * Internal OMAP UARTs have shift=2 requirement | ||
162 | + */ | ||
163 | + shift = 1; | ||
164 | +#endif | ||
165 | + | ||
166 | #ifdef CONFIG_ARCH_OMAP1 | ||
167 | /* Determine which serial port to use */ | ||
168 | do { | ||
169 | -- | ||
170 | 1.6.3.2 | ||
171 | |||
diff --git a/meta/recipes-kernel/linux/linux-omap3-pm-git/zoom2/0005-OMAP-Zoom2-Release-Dbg-board-detect-gpio.patch b/meta/recipes-kernel/linux/linux-omap3-pm-git/zoom2/0005-OMAP-Zoom2-Release-Dbg-board-detect-gpio.patch new file mode 100644 index 0000000000..a01f65f890 --- /dev/null +++ b/meta/recipes-kernel/linux/linux-omap3-pm-git/zoom2/0005-OMAP-Zoom2-Release-Dbg-board-detect-gpio.patch | |||
@@ -0,0 +1,41 @@ | |||
1 | From 04c8398ae7dfdbe0d9aaf27fdda35f6ab91e8b85 Mon Sep 17 00:00:00 2001 | ||
2 | From: Vikram Pandita <vikram.pandita@ti.com> | ||
3 | Date: Thu, 20 Aug 2009 17:31:58 -0500 | ||
4 | Subject: [PATCH 5/5] OMAP: Zoom2: Release Dbg board detect gpio | ||
5 | |||
6 | Release the Dbg board detection gpio once its purpose is served | ||
7 | |||
8 | Signed-off-by: Vikram Pandita <vikram.pandita@ti.com> | ||
9 | --- | ||
10 | arch/arm/mach-omap2/board-zoom-debugboard.c | 7 ++++--- | ||
11 | 1 files changed, 4 insertions(+), 3 deletions(-) | ||
12 | |||
13 | diff --git a/arch/arm/mach-omap2/board-zoom-debugboard.c b/arch/arm/mach-omap2/board-zoom-debugboard.c | ||
14 | index 4dd714d..d80e448 100644 | ||
15 | --- a/arch/arm/mach-omap2/board-zoom-debugboard.c | ||
16 | +++ b/arch/arm/mach-omap2/board-zoom-debugboard.c | ||
17 | @@ -130,6 +130,7 @@ static inline void __init zoom2_init_quaduart(void) | ||
18 | static inline int omap_zoom2_debugboard_detect(void) | ||
19 | { | ||
20 | int debug_board_detect = 0; | ||
21 | + int ret = 1; | ||
22 | |||
23 | debug_board_detect = ZOOM2_SMSC911X_GPIO; | ||
24 | |||
25 | @@ -141,10 +142,10 @@ static inline int omap_zoom2_debugboard_detect(void) | ||
26 | gpio_direction_input(debug_board_detect); | ||
27 | |||
28 | if (!gpio_get_value(debug_board_detect)) { | ||
29 | - gpio_free(debug_board_detect); | ||
30 | - return 0; | ||
31 | + ret = 0; | ||
32 | } | ||
33 | - return 1; | ||
34 | + gpio_free(debug_board_detect); | ||
35 | + return ret; | ||
36 | } | ||
37 | |||
38 | static struct platform_device *zoom2_devices[] __initdata = { | ||
39 | -- | ||
40 | 1.6.3.2 | ||
41 | |||