diff options
Diffstat (limited to 'arch')
550 files changed, 11957 insertions, 10224 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 3146ed3f6eca..9277237810e9 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -29,6 +29,7 @@ config ARM | |||
29 | select HAVE_GENERIC_HARDIRQS | 29 | select HAVE_GENERIC_HARDIRQS |
30 | select HAVE_SPARSE_IRQ | 30 | select HAVE_SPARSE_IRQ |
31 | select GENERIC_IRQ_SHOW | 31 | select GENERIC_IRQ_SHOW |
32 | select CPU_PM if (SUSPEND || CPU_IDLE) | ||
32 | help | 33 | help |
33 | The ARM series is a line of low-power-consumption RISC chip designs | 34 | The ARM series is a line of low-power-consumption RISC chip designs |
34 | licensed by ARM Ltd and targeted at embedded applications and | 35 | licensed by ARM Ltd and targeted at embedded applications and |
@@ -830,6 +831,7 @@ config ARCH_U300 | |||
830 | select HAVE_SCHED_CLOCK | 831 | select HAVE_SCHED_CLOCK |
831 | select HAVE_TCM | 832 | select HAVE_TCM |
832 | select ARM_AMBA | 833 | select ARM_AMBA |
834 | select ARM_PATCH_PHYS_VIRT | ||
833 | select ARM_VIC | 835 | select ARM_VIC |
834 | select GENERIC_CLOCKEVENTS | 836 | select GENERIC_CLOCKEVENTS |
835 | select CLKDEV_LOOKUP | 837 | select CLKDEV_LOOKUP |
@@ -1807,6 +1809,38 @@ config ZBOOT_ROM_SH_MOBILE_SDHI | |||
1807 | 1809 | ||
1808 | endchoice | 1810 | endchoice |
1809 | 1811 | ||
1812 | config ARM_APPENDED_DTB | ||
1813 | bool "Use appended device tree blob to zImage (EXPERIMENTAL)" | ||
1814 | depends on OF && !ZBOOT_ROM && EXPERIMENTAL | ||
1815 | help | ||
1816 | With this option, the boot code will look for a device tree binary | ||
1817 | (DTB) appended to zImage | ||
1818 | (e.g. cat zImage <filename>.dtb > zImage_w_dtb). | ||
1819 | |||
1820 | This is meant as a backward compatibility convenience for those | ||
1821 | systems with a bootloader that can't be upgraded to accommodate | ||
1822 | the documented boot protocol using a device tree. | ||
1823 | |||
1824 | Beware that there is very little in terms of protection against | ||
1825 | this option being confused by leftover garbage in memory that might | ||
1826 | look like a DTB header after a reboot if no actual DTB is appended | ||
1827 | to zImage. Do not leave this option active in a production kernel | ||
1828 | if you don't intend to always append a DTB. Proper passing of the | ||
1829 | location into r2 of a bootloader provided DTB is always preferable | ||
1830 | to this option. | ||
1831 | |||
1832 | config ARM_ATAG_DTB_COMPAT | ||
1833 | bool "Supplement the appended DTB with traditional ATAG information" | ||
1834 | depends on ARM_APPENDED_DTB | ||
1835 | help | ||
1836 | Some old bootloaders can't be updated to a DTB capable one, yet | ||
1837 | they provide ATAGs with memory configuration, the ramdisk address, | ||
1838 | the kernel cmdline string, etc. Such information is dynamically | ||
1839 | provided by the bootloader and can't always be stored in a static | ||
1840 | DTB. To allow a device tree enabled kernel to be used with such | ||
1841 | bootloaders, this option allows zImage to extract the information | ||
1842 | from the ATAG list and store it at run time into the appended DTB. | ||
1843 | |||
1810 | config CMDLINE | 1844 | config CMDLINE |
1811 | string "Default kernel command string" | 1845 | string "Default kernel command string" |
1812 | default "" | 1846 | default "" |
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug index 81cbe40c159c..be3a0f78d915 100644 --- a/arch/arm/Kconfig.debug +++ b/arch/arm/Kconfig.debug | |||
@@ -129,4 +129,10 @@ config DEBUG_S3C_UART | |||
129 | The uncompressor code port configuration is now handled | 129 | The uncompressor code port configuration is now handled |
130 | by CONFIG_S3C_LOWLEVEL_UART_PORT. | 130 | by CONFIG_S3C_LOWLEVEL_UART_PORT. |
131 | 131 | ||
132 | config ARM_KPROBES_TEST | ||
133 | tristate "Kprobes test module" | ||
134 | depends on KPROBES && MODULES | ||
135 | help | ||
136 | Perform tests of kprobes API and instruction set simulation. | ||
137 | |||
132 | endmenu | 138 | endmenu |
diff --git a/arch/arm/boot/compressed/.gitignore b/arch/arm/boot/compressed/.gitignore index c6028967d336..e0936a148516 100644 --- a/arch/arm/boot/compressed/.gitignore +++ b/arch/arm/boot/compressed/.gitignore | |||
@@ -5,3 +5,12 @@ piggy.lzo | |||
5 | piggy.lzma | 5 | piggy.lzma |
6 | vmlinux | 6 | vmlinux |
7 | vmlinux.lds | 7 | vmlinux.lds |
8 | |||
9 | # borrowed libfdt files | ||
10 | fdt.c | ||
11 | fdt.h | ||
12 | fdt_ro.c | ||
13 | fdt_rw.c | ||
14 | fdt_wip.c | ||
15 | libfdt.h | ||
16 | libfdt_internal.h | ||
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile index 0c74a6fab952..e4f32a8e002a 100644 --- a/arch/arm/boot/compressed/Makefile +++ b/arch/arm/boot/compressed/Makefile | |||
@@ -26,6 +26,10 @@ HEAD = head.o | |||
26 | OBJS += misc.o decompress.o | 26 | OBJS += misc.o decompress.o |
27 | FONTC = $(srctree)/drivers/video/console/font_acorn_8x8.c | 27 | FONTC = $(srctree)/drivers/video/console/font_acorn_8x8.c |
28 | 28 | ||
29 | # string library code (-Os is enforced to keep it much smaller) | ||
30 | OBJS += string.o | ||
31 | CFLAGS_string.o := -Os | ||
32 | |||
29 | # | 33 | # |
30 | # Architecture dependencies | 34 | # Architecture dependencies |
31 | # | 35 | # |
@@ -89,21 +93,41 @@ suffix_$(CONFIG_KERNEL_GZIP) = gzip | |||
89 | suffix_$(CONFIG_KERNEL_LZO) = lzo | 93 | suffix_$(CONFIG_KERNEL_LZO) = lzo |
90 | suffix_$(CONFIG_KERNEL_LZMA) = lzma | 94 | suffix_$(CONFIG_KERNEL_LZMA) = lzma |
91 | 95 | ||
96 | # Borrowed libfdt files for the ATAG compatibility mode | ||
97 | |||
98 | libfdt := fdt_rw.c fdt_ro.c fdt_wip.c fdt.c | ||
99 | libfdt_hdrs := fdt.h libfdt.h libfdt_internal.h | ||
100 | |||
101 | libfdt_objs := $(addsuffix .o, $(basename $(libfdt))) | ||
102 | |||
103 | $(addprefix $(obj)/,$(libfdt) $(libfdt_hdrs)): $(obj)/%: $(srctree)/scripts/dtc/libfdt/% | ||
104 | $(call cmd,shipped) | ||
105 | |||
106 | $(addprefix $(obj)/,$(libfdt_objs) atags_to_fdt.o): \ | ||
107 | $(addprefix $(obj)/,$(libfdt_hdrs)) | ||
108 | |||
109 | ifeq ($(CONFIG_ARM_ATAG_DTB_COMPAT),y) | ||
110 | OBJS += $(libfdt_objs) atags_to_fdt.o | ||
111 | endif | ||
112 | |||
92 | targets := vmlinux vmlinux.lds \ | 113 | targets := vmlinux vmlinux.lds \ |
93 | piggy.$(suffix_y) piggy.$(suffix_y).o \ | 114 | piggy.$(suffix_y) piggy.$(suffix_y).o \ |
94 | font.o font.c head.o misc.o $(OBJS) | 115 | lib1funcs.o lib1funcs.S font.o font.c head.o misc.o $(OBJS) |
95 | 116 | ||
96 | # Make sure files are removed during clean | 117 | # Make sure files are removed during clean |
97 | extra-y += piggy.gzip piggy.lzo piggy.lzma lib1funcs.S | 118 | extra-y += piggy.gzip piggy.lzo piggy.lzma lib1funcs.S $(libfdt) $(libfdt_hdrs) |
98 | 119 | ||
99 | ifeq ($(CONFIG_FUNCTION_TRACER),y) | 120 | ifeq ($(CONFIG_FUNCTION_TRACER),y) |
100 | ORIG_CFLAGS := $(KBUILD_CFLAGS) | 121 | ORIG_CFLAGS := $(KBUILD_CFLAGS) |
101 | KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS)) | 122 | KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS)) |
102 | endif | 123 | endif |
103 | 124 | ||
104 | ccflags-y := -fpic -fno-builtin | 125 | ccflags-y := -fpic -fno-builtin -I$(obj) |
105 | asflags-y := -Wa,-march=all | 126 | asflags-y := -Wa,-march=all |
106 | 127 | ||
128 | # Supply kernel BSS size to the decompressor via a linker symbol. | ||
129 | KBSS_SZ = $(shell size $(obj)/../../../../vmlinux | awk 'END{print $$3}') | ||
130 | LDFLAGS_vmlinux = --defsym _kernel_bss_size=$(KBSS_SZ) | ||
107 | # Supply ZRELADDR to the decompressor via a linker symbol. | 131 | # Supply ZRELADDR to the decompressor via a linker symbol. |
108 | ifneq ($(CONFIG_AUTO_ZRELADDR),y) | 132 | ifneq ($(CONFIG_AUTO_ZRELADDR),y) |
109 | LDFLAGS_vmlinux += --defsym zreladdr=$(ZRELADDR) | 133 | LDFLAGS_vmlinux += --defsym zreladdr=$(ZRELADDR) |
@@ -123,7 +147,7 @@ LDFLAGS_vmlinux += -T | |||
123 | # For __aeabi_uidivmod | 147 | # For __aeabi_uidivmod |
124 | lib1funcs = $(obj)/lib1funcs.o | 148 | lib1funcs = $(obj)/lib1funcs.o |
125 | 149 | ||
126 | $(obj)/lib1funcs.S: $(srctree)/arch/$(SRCARCH)/lib/lib1funcs.S FORCE | 150 | $(obj)/lib1funcs.S: $(srctree)/arch/$(SRCARCH)/lib/lib1funcs.S |
127 | $(call cmd,shipped) | 151 | $(call cmd,shipped) |
128 | 152 | ||
129 | # We need to prevent any GOTOFF relocs being used with references | 153 | # We need to prevent any GOTOFF relocs being used with references |
diff --git a/arch/arm/boot/compressed/atags_to_fdt.c b/arch/arm/boot/compressed/atags_to_fdt.c new file mode 100644 index 000000000000..6ce11c481178 --- /dev/null +++ b/arch/arm/boot/compressed/atags_to_fdt.c | |||
@@ -0,0 +1,97 @@ | |||
1 | #include <asm/setup.h> | ||
2 | #include <libfdt.h> | ||
3 | |||
4 | static int node_offset(void *fdt, const char *node_path) | ||
5 | { | ||
6 | int offset = fdt_path_offset(fdt, node_path); | ||
7 | if (offset == -FDT_ERR_NOTFOUND) | ||
8 | offset = fdt_add_subnode(fdt, 0, node_path); | ||
9 | return offset; | ||
10 | } | ||
11 | |||
12 | static int setprop(void *fdt, const char *node_path, const char *property, | ||
13 | uint32_t *val_array, int size) | ||
14 | { | ||
15 | int offset = node_offset(fdt, node_path); | ||
16 | if (offset < 0) | ||
17 | return offset; | ||
18 | return fdt_setprop(fdt, offset, property, val_array, size); | ||
19 | } | ||
20 | |||
21 | static int setprop_string(void *fdt, const char *node_path, | ||
22 | const char *property, const char *string) | ||
23 | { | ||
24 | int offset = node_offset(fdt, node_path); | ||
25 | if (offset < 0) | ||
26 | return offset; | ||
27 | return fdt_setprop_string(fdt, offset, property, string); | ||
28 | } | ||
29 | |||
30 | static int setprop_cell(void *fdt, const char *node_path, | ||
31 | const char *property, uint32_t val) | ||
32 | { | ||
33 | int offset = node_offset(fdt, node_path); | ||
34 | if (offset < 0) | ||
35 | return offset; | ||
36 | return fdt_setprop_cell(fdt, offset, property, val); | ||
37 | } | ||
38 | |||
39 | /* | ||
40 | * Convert and fold provided ATAGs into the provided FDT. | ||
41 | * | ||
42 | * REturn values: | ||
43 | * = 0 -> pretend success | ||
44 | * = 1 -> bad ATAG (may retry with another possible ATAG pointer) | ||
45 | * < 0 -> error from libfdt | ||
46 | */ | ||
47 | int atags_to_fdt(void *atag_list, void *fdt, int total_space) | ||
48 | { | ||
49 | struct tag *atag = atag_list; | ||
50 | uint32_t mem_reg_property[2 * NR_BANKS]; | ||
51 | int memcount = 0; | ||
52 | int ret; | ||
53 | |||
54 | /* make sure we've got an aligned pointer */ | ||
55 | if ((u32)atag_list & 0x3) | ||
56 | return 1; | ||
57 | |||
58 | /* if we get a DTB here we're done already */ | ||
59 | if (*(u32 *)atag_list == fdt32_to_cpu(FDT_MAGIC)) | ||
60 | return 0; | ||
61 | |||
62 | /* validate the ATAG */ | ||
63 | if (atag->hdr.tag != ATAG_CORE || | ||
64 | (atag->hdr.size != tag_size(tag_core) && | ||
65 | atag->hdr.size != 2)) | ||
66 | return 1; | ||
67 | |||
68 | /* let's give it all the room it could need */ | ||
69 | ret = fdt_open_into(fdt, fdt, total_space); | ||
70 | if (ret < 0) | ||
71 | return ret; | ||
72 | |||
73 | for_each_tag(atag, atag_list) { | ||
74 | if (atag->hdr.tag == ATAG_CMDLINE) { | ||
75 | setprop_string(fdt, "/chosen", "bootargs", | ||
76 | atag->u.cmdline.cmdline); | ||
77 | } else if (atag->hdr.tag == ATAG_MEM) { | ||
78 | if (memcount >= sizeof(mem_reg_property)/4) | ||
79 | continue; | ||
80 | mem_reg_property[memcount++] = cpu_to_fdt32(atag->u.mem.start); | ||
81 | mem_reg_property[memcount++] = cpu_to_fdt32(atag->u.mem.size); | ||
82 | } else if (atag->hdr.tag == ATAG_INITRD2) { | ||
83 | uint32_t initrd_start, initrd_size; | ||
84 | initrd_start = atag->u.initrd.start; | ||
85 | initrd_size = atag->u.initrd.size; | ||
86 | setprop_cell(fdt, "/chosen", "linux,initrd-start", | ||
87 | initrd_start); | ||
88 | setprop_cell(fdt, "/chosen", "linux,initrd-end", | ||
89 | initrd_start + initrd_size); | ||
90 | } | ||
91 | } | ||
92 | |||
93 | if (memcount) | ||
94 | setprop(fdt, "/memory", "reg", mem_reg_property, 4*memcount); | ||
95 | |||
96 | return fdt_pack(fdt); | ||
97 | } | ||
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index e95a5989602a..9f5ac11ccd8e 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S | |||
@@ -216,6 +216,103 @@ restart: adr r0, LC0 | |||
216 | mov r10, r6 | 216 | mov r10, r6 |
217 | #endif | 217 | #endif |
218 | 218 | ||
219 | mov r5, #0 @ init dtb size to 0 | ||
220 | #ifdef CONFIG_ARM_APPENDED_DTB | ||
221 | /* | ||
222 | * r0 = delta | ||
223 | * r2 = BSS start | ||
224 | * r3 = BSS end | ||
225 | * r4 = final kernel address | ||
226 | * r5 = appended dtb size (still unknown) | ||
227 | * r6 = _edata | ||
228 | * r7 = architecture ID | ||
229 | * r8 = atags/device tree pointer | ||
230 | * r9 = size of decompressed image | ||
231 | * r10 = end of this image, including bss/stack/malloc space if non XIP | ||
232 | * r11 = GOT start | ||
233 | * r12 = GOT end | ||
234 | * sp = stack pointer | ||
235 | * | ||
236 | * if there are device trees (dtb) appended to zImage, advance r10 so that the | ||
237 | * dtb data will get relocated along with the kernel if necessary. | ||
238 | */ | ||
239 | |||
240 | ldr lr, [r6, #0] | ||
241 | #ifndef __ARMEB__ | ||
242 | ldr r1, =0xedfe0dd0 @ sig is 0xd00dfeed big endian | ||
243 | #else | ||
244 | ldr r1, =0xd00dfeed | ||
245 | #endif | ||
246 | cmp lr, r1 | ||
247 | bne dtb_check_done @ not found | ||
248 | |||
249 | #ifdef CONFIG_ARM_ATAG_DTB_COMPAT | ||
250 | /* | ||
251 | * OK... Let's do some funky business here. | ||
252 | * If we do have a DTB appended to zImage, and we do have | ||
253 | * an ATAG list around, we want the later to be translated | ||
254 | * and folded into the former here. To be on the safe side, | ||
255 | * let's temporarily move the stack away into the malloc | ||
256 | * area. No GOT fixup has occurred yet, but none of the | ||
257 | * code we're about to call uses any global variable. | ||
258 | */ | ||
259 | add sp, sp, #0x10000 | ||
260 | stmfd sp!, {r0-r3, ip, lr} | ||
261 | mov r0, r8 | ||
262 | mov r1, r6 | ||
263 | sub r2, sp, r6 | ||
264 | bl atags_to_fdt | ||
265 | |||
266 | /* | ||
267 | * If returned value is 1, there is no ATAG at the location | ||
268 | * pointed by r8. Try the typical 0x100 offset from start | ||
269 | * of RAM and hope for the best. | ||
270 | */ | ||
271 | cmp r0, #1 | ||
272 | sub r0, r4, #(TEXT_OFFSET - 0x100) | ||
273 | mov r1, r6 | ||
274 | sub r2, sp, r6 | ||
275 | blne atags_to_fdt | ||
276 | |||
277 | ldmfd sp!, {r0-r3, ip, lr} | ||
278 | sub sp, sp, #0x10000 | ||
279 | #endif | ||
280 | |||
281 | mov r8, r6 @ use the appended device tree | ||
282 | |||
283 | /* | ||
284 | * Make sure that the DTB doesn't end up in the final | ||
285 | * kernel's .bss area. To do so, we adjust the decompressed | ||
286 | * kernel size to compensate if that .bss size is larger | ||
287 | * than the relocated code. | ||
288 | */ | ||
289 | ldr r5, =_kernel_bss_size | ||
290 | adr r1, wont_overwrite | ||
291 | sub r1, r6, r1 | ||
292 | subs r1, r5, r1 | ||
293 | addhi r9, r9, r1 | ||
294 | |||
295 | /* Get the dtb's size */ | ||
296 | ldr r5, [r6, #4] | ||
297 | #ifndef __ARMEB__ | ||
298 | /* convert r5 (dtb size) to little endian */ | ||
299 | eor r1, r5, r5, ror #16 | ||
300 | bic r1, r1, #0x00ff0000 | ||
301 | mov r5, r5, ror #8 | ||
302 | eor r5, r5, r1, lsr #8 | ||
303 | #endif | ||
304 | |||
305 | /* preserve 64-bit alignment */ | ||
306 | add r5, r5, #7 | ||
307 | bic r5, r5, #7 | ||
308 | |||
309 | /* relocate some pointers past the appended dtb */ | ||
310 | add r6, r6, r5 | ||
311 | add r10, r10, r5 | ||
312 | add sp, sp, r5 | ||
313 | dtb_check_done: | ||
314 | #endif | ||
315 | |||
219 | /* | 316 | /* |
220 | * Check to see if we will overwrite ourselves. | 317 | * Check to see if we will overwrite ourselves. |
221 | * r4 = final kernel address | 318 | * r4 = final kernel address |
@@ -223,15 +320,14 @@ restart: adr r0, LC0 | |||
223 | * r10 = end of this image, including bss/stack/malloc space if non XIP | 320 | * r10 = end of this image, including bss/stack/malloc space if non XIP |
224 | * We basically want: | 321 | * We basically want: |
225 | * r4 - 16k page directory >= r10 -> OK | 322 | * r4 - 16k page directory >= r10 -> OK |
226 | * r4 + image length <= current position (pc) -> OK | 323 | * r4 + image length <= address of wont_overwrite -> OK |
227 | */ | 324 | */ |
228 | add r10, r10, #16384 | 325 | add r10, r10, #16384 |
229 | cmp r4, r10 | 326 | cmp r4, r10 |
230 | bhs wont_overwrite | 327 | bhs wont_overwrite |
231 | add r10, r4, r9 | 328 | add r10, r4, r9 |
232 | ARM( cmp r10, pc ) | 329 | adr r9, wont_overwrite |
233 | THUMB( mov lr, pc ) | 330 | cmp r10, r9 |
234 | THUMB( cmp r10, lr ) | ||
235 | bls wont_overwrite | 331 | bls wont_overwrite |
236 | 332 | ||
237 | /* | 333 | /* |
@@ -285,14 +381,16 @@ wont_overwrite: | |||
285 | * r2 = BSS start | 381 | * r2 = BSS start |
286 | * r3 = BSS end | 382 | * r3 = BSS end |
287 | * r4 = kernel execution address | 383 | * r4 = kernel execution address |
384 | * r5 = appended dtb size (0 if not present) | ||
288 | * r7 = architecture ID | 385 | * r7 = architecture ID |
289 | * r8 = atags pointer | 386 | * r8 = atags pointer |
290 | * r11 = GOT start | 387 | * r11 = GOT start |
291 | * r12 = GOT end | 388 | * r12 = GOT end |
292 | * sp = stack pointer | 389 | * sp = stack pointer |
293 | */ | 390 | */ |
294 | teq r0, #0 | 391 | orrs r1, r0, r5 |
295 | beq not_relocated | 392 | beq not_relocated |
393 | |||
296 | add r11, r11, r0 | 394 | add r11, r11, r0 |
297 | add r12, r12, r0 | 395 | add r12, r12, r0 |
298 | 396 | ||
@@ -307,12 +405,21 @@ wont_overwrite: | |||
307 | 405 | ||
308 | /* | 406 | /* |
309 | * Relocate all entries in the GOT table. | 407 | * Relocate all entries in the GOT table. |
408 | * Bump bss entries to _edata + dtb size | ||
310 | */ | 409 | */ |
311 | 1: ldr r1, [r11, #0] @ relocate entries in the GOT | 410 | 1: ldr r1, [r11, #0] @ relocate entries in the GOT |
312 | add r1, r1, r0 @ table. This fixes up the | 411 | add r1, r1, r0 @ This fixes up C references |
313 | str r1, [r11], #4 @ C references. | 412 | cmp r1, r2 @ if entry >= bss_start && |
413 | cmphs r3, r1 @ bss_end > entry | ||
414 | addhi r1, r1, r5 @ entry += dtb size | ||
415 | str r1, [r11], #4 @ next entry | ||
314 | cmp r11, r12 | 416 | cmp r11, r12 |
315 | blo 1b | 417 | blo 1b |
418 | |||
419 | /* bump our bss pointers too */ | ||
420 | add r2, r2, r5 | ||
421 | add r3, r3, r5 | ||
422 | |||
316 | #else | 423 | #else |
317 | 424 | ||
318 | /* | 425 | /* |
diff --git a/arch/arm/boot/compressed/libfdt_env.h b/arch/arm/boot/compressed/libfdt_env.h new file mode 100644 index 000000000000..1f4e71876b00 --- /dev/null +++ b/arch/arm/boot/compressed/libfdt_env.h | |||
@@ -0,0 +1,15 @@ | |||
1 | #ifndef _ARM_LIBFDT_ENV_H | ||
2 | #define _ARM_LIBFDT_ENV_H | ||
3 | |||
4 | #include <linux/types.h> | ||
5 | #include <linux/string.h> | ||
6 | #include <asm/byteorder.h> | ||
7 | |||
8 | #define fdt16_to_cpu(x) be16_to_cpu(x) | ||
9 | #define cpu_to_fdt16(x) cpu_to_be16(x) | ||
10 | #define fdt32_to_cpu(x) be32_to_cpu(x) | ||
11 | #define cpu_to_fdt32(x) cpu_to_be32(x) | ||
12 | #define fdt64_to_cpu(x) be64_to_cpu(x) | ||
13 | #define cpu_to_fdt64(x) cpu_to_be64(x) | ||
14 | |||
15 | #endif | ||
diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c index 832d37236c59..8e2a8fca5ed2 100644 --- a/arch/arm/boot/compressed/misc.c +++ b/arch/arm/boot/compressed/misc.c | |||
@@ -18,14 +18,9 @@ | |||
18 | 18 | ||
19 | unsigned int __machine_arch_type; | 19 | unsigned int __machine_arch_type; |
20 | 20 | ||
21 | #define _LINUX_STRING_H_ | ||
22 | |||
23 | #include <linux/compiler.h> /* for inline */ | 21 | #include <linux/compiler.h> /* for inline */ |
24 | #include <linux/types.h> /* for size_t */ | 22 | #include <linux/types.h> |
25 | #include <linux/stddef.h> /* for NULL */ | ||
26 | #include <linux/linkage.h> | 23 | #include <linux/linkage.h> |
27 | #include <asm/string.h> | ||
28 | |||
29 | 24 | ||
30 | static void putstr(const char *ptr); | 25 | static void putstr(const char *ptr); |
31 | extern void error(char *x); | 26 | extern void error(char *x); |
@@ -101,41 +96,6 @@ static void putstr(const char *ptr) | |||
101 | flush(); | 96 | flush(); |
102 | } | 97 | } |
103 | 98 | ||
104 | |||
105 | void *memcpy(void *__dest, __const void *__src, size_t __n) | ||
106 | { | ||
107 | int i = 0; | ||
108 | unsigned char *d = (unsigned char *)__dest, *s = (unsigned char *)__src; | ||
109 | |||
110 | for (i = __n >> 3; i > 0; i--) { | ||
111 | *d++ = *s++; | ||
112 | *d++ = *s++; | ||
113 | *d++ = *s++; | ||
114 | *d++ = *s++; | ||
115 | *d++ = *s++; | ||
116 | *d++ = *s++; | ||
117 | *d++ = *s++; | ||
118 | *d++ = *s++; | ||
119 | } | ||
120 | |||
121 | if (__n & 1 << 2) { | ||
122 | *d++ = *s++; | ||
123 | *d++ = *s++; | ||
124 | *d++ = *s++; | ||
125 | *d++ = *s++; | ||
126 | } | ||
127 | |||
128 | if (__n & 1 << 1) { | ||
129 | *d++ = *s++; | ||
130 | *d++ = *s++; | ||
131 | } | ||
132 | |||
133 | if (__n & 1) | ||
134 | *d++ = *s++; | ||
135 | |||
136 | return __dest; | ||
137 | } | ||
138 | |||
139 | /* | 99 | /* |
140 | * gzip declarations | 100 | * gzip declarations |
141 | */ | 101 | */ |
diff --git a/arch/arm/boot/compressed/string.c b/arch/arm/boot/compressed/string.c new file mode 100644 index 000000000000..36e53ef9200f --- /dev/null +++ b/arch/arm/boot/compressed/string.c | |||
@@ -0,0 +1,127 @@ | |||
1 | /* | ||
2 | * arch/arm/boot/compressed/string.c | ||
3 | * | ||
4 | * Small subset of simple string routines | ||
5 | */ | ||
6 | |||
7 | #include <linux/string.h> | ||
8 | |||
9 | void *memcpy(void *__dest, __const void *__src, size_t __n) | ||
10 | { | ||
11 | int i = 0; | ||
12 | unsigned char *d = (unsigned char *)__dest, *s = (unsigned char *)__src; | ||
13 | |||
14 | for (i = __n >> 3; i > 0; i--) { | ||
15 | *d++ = *s++; | ||
16 | *d++ = *s++; | ||
17 | *d++ = *s++; | ||
18 | *d++ = *s++; | ||
19 | *d++ = *s++; | ||
20 | *d++ = *s++; | ||
21 | *d++ = *s++; | ||
22 | *d++ = *s++; | ||
23 | } | ||
24 | |||
25 | if (__n & 1 << 2) { | ||
26 | *d++ = *s++; | ||
27 | *d++ = *s++; | ||
28 | *d++ = *s++; | ||
29 | *d++ = *s++; | ||
30 | } | ||
31 | |||
32 | if (__n & 1 << 1) { | ||
33 | *d++ = *s++; | ||
34 | *d++ = *s++; | ||
35 | } | ||
36 | |||
37 | if (__n & 1) | ||
38 | *d++ = *s++; | ||
39 | |||
40 | return __dest; | ||
41 | } | ||
42 | |||
43 | void *memmove(void *__dest, __const void *__src, size_t count) | ||
44 | { | ||
45 | unsigned char *d = __dest; | ||
46 | const unsigned char *s = __src; | ||
47 | |||
48 | if (__dest == __src) | ||
49 | return __dest; | ||
50 | |||
51 | if (__dest < __src) | ||
52 | return memcpy(__dest, __src, count); | ||
53 | |||
54 | while (count--) | ||
55 | d[count] = s[count]; | ||
56 | return __dest; | ||
57 | } | ||
58 | |||
59 | size_t strlen(const char *s) | ||
60 | { | ||
61 | const char *sc = s; | ||
62 | |||
63 | while (*sc != '\0') | ||
64 | sc++; | ||
65 | return sc - s; | ||
66 | } | ||
67 | |||
68 | int memcmp(const void *cs, const void *ct, size_t count) | ||
69 | { | ||
70 | const unsigned char *su1 = cs, *su2 = ct, *end = su1 + count; | ||
71 | int res = 0; | ||
72 | |||
73 | while (su1 < end) { | ||
74 | res = *su1++ - *su2++; | ||
75 | if (res) | ||
76 | break; | ||
77 | } | ||
78 | return res; | ||
79 | } | ||
80 | |||
81 | int strcmp(const char *cs, const char *ct) | ||
82 | { | ||
83 | unsigned char c1, c2; | ||
84 | int res = 0; | ||
85 | |||
86 | do { | ||
87 | c1 = *cs++; | ||
88 | c2 = *ct++; | ||
89 | res = c1 - c2; | ||
90 | if (res) | ||
91 | break; | ||
92 | } while (c1); | ||
93 | return res; | ||
94 | } | ||
95 | |||
96 | void *memchr(const void *s, int c, size_t count) | ||
97 | { | ||
98 | const unsigned char *p = s; | ||
99 | |||
100 | while (count--) | ||
101 | if ((unsigned char)c == *p++) | ||
102 | return (void *)(p - 1); | ||
103 | return NULL; | ||
104 | } | ||
105 | |||
106 | char *strchr(const char *s, int c) | ||
107 | { | ||
108 | while (*s != (char)c) | ||
109 | if (*s++ == '\0') | ||
110 | return NULL; | ||
111 | return (char *)s; | ||
112 | } | ||
113 | |||
114 | #undef memset | ||
115 | |||
116 | void *memset(void *s, int c, size_t count) | ||
117 | { | ||
118 | char *xs = s; | ||
119 | while (count--) | ||
120 | *xs++ = c; | ||
121 | return s; | ||
122 | } | ||
123 | |||
124 | void __memzero(void *s, size_t count) | ||
125 | { | ||
126 | memset(s, 0, count); | ||
127 | } | ||
diff --git a/arch/arm/boot/compressed/vmlinux.lds.in b/arch/arm/boot/compressed/vmlinux.lds.in index 4e728834a1b9..4919f2ac8b89 100644 --- a/arch/arm/boot/compressed/vmlinux.lds.in +++ b/arch/arm/boot/compressed/vmlinux.lds.in | |||
@@ -51,6 +51,10 @@ SECTIONS | |||
51 | _got_start = .; | 51 | _got_start = .; |
52 | .got : { *(.got) } | 52 | .got : { *(.got) } |
53 | _got_end = .; | 53 | _got_end = .; |
54 | |||
55 | /* ensure the zImage file size is always a multiple of 64 bits */ | ||
56 | /* (without a dummy byte, ld just ignores the empty section) */ | ||
57 | .pad : { BYTE(0); . = ALIGN(8); } | ||
54 | _edata = .; | 58 | _edata = .; |
55 | 59 | ||
56 | . = BSS_START; | 60 | . = BSS_START; |
diff --git a/arch/arm/common/gic.c b/arch/arm/common/gic.c index 3227ca952a12..734db99eaee7 100644 --- a/arch/arm/common/gic.c +++ b/arch/arm/common/gic.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <linux/kernel.h> | 26 | #include <linux/kernel.h> |
27 | #include <linux/list.h> | 27 | #include <linux/list.h> |
28 | #include <linux/smp.h> | 28 | #include <linux/smp.h> |
29 | #include <linux/cpu_pm.h> | ||
29 | #include <linux/cpumask.h> | 30 | #include <linux/cpumask.h> |
30 | #include <linux/io.h> | 31 | #include <linux/io.h> |
31 | 32 | ||
@@ -276,6 +277,8 @@ static void __init gic_dist_init(struct gic_chip_data *gic, | |||
276 | if (gic_irqs > 1020) | 277 | if (gic_irqs > 1020) |
277 | gic_irqs = 1020; | 278 | gic_irqs = 1020; |
278 | 279 | ||
280 | gic->gic_irqs = gic_irqs; | ||
281 | |||
279 | /* | 282 | /* |
280 | * Set all global interrupts to be level triggered, active low. | 283 | * Set all global interrupts to be level triggered, active low. |
281 | */ | 284 | */ |
@@ -343,6 +346,189 @@ static void __cpuinit gic_cpu_init(struct gic_chip_data *gic) | |||
343 | writel_relaxed(1, base + GIC_CPU_CTRL); | 346 | writel_relaxed(1, base + GIC_CPU_CTRL); |
344 | } | 347 | } |
345 | 348 | ||
349 | #ifdef CONFIG_CPU_PM | ||
350 | /* | ||
351 | * Saves the GIC distributor registers during suspend or idle. Must be called | ||
352 | * with interrupts disabled but before powering down the GIC. After calling | ||
353 | * this function, no interrupts will be delivered by the GIC, and another | ||
354 | * platform-specific wakeup source must be enabled. | ||
355 | */ | ||
356 | static void gic_dist_save(unsigned int gic_nr) | ||
357 | { | ||
358 | unsigned int gic_irqs; | ||
359 | void __iomem *dist_base; | ||
360 | int i; | ||
361 | |||
362 | if (gic_nr >= MAX_GIC_NR) | ||
363 | BUG(); | ||
364 | |||
365 | gic_irqs = gic_data[gic_nr].gic_irqs; | ||
366 | dist_base = gic_data[gic_nr].dist_base; | ||
367 | |||
368 | if (!dist_base) | ||
369 | return; | ||
370 | |||
371 | for (i = 0; i < DIV_ROUND_UP(gic_irqs, 16); i++) | ||
372 | gic_data[gic_nr].saved_spi_conf[i] = | ||
373 | readl_relaxed(dist_base + GIC_DIST_CONFIG + i * 4); | ||
374 | |||
375 | for (i = 0; i < DIV_ROUND_UP(gic_irqs, 4); i++) | ||
376 | gic_data[gic_nr].saved_spi_target[i] = | ||
377 | readl_relaxed(dist_base + GIC_DIST_TARGET + i * 4); | ||
378 | |||
379 | for (i = 0; i < DIV_ROUND_UP(gic_irqs, 32); i++) | ||
380 | gic_data[gic_nr].saved_spi_enable[i] = | ||
381 | readl_relaxed(dist_base + GIC_DIST_ENABLE_SET + i * 4); | ||
382 | } | ||
383 | |||
384 | /* | ||
385 | * Restores the GIC distributor registers during resume or when coming out of | ||
386 | * idle. Must be called before enabling interrupts. If a level interrupt | ||
387 | * that occured while the GIC was suspended is still present, it will be | ||
388 | * handled normally, but any edge interrupts that occured will not be seen by | ||
389 | * the GIC and need to be handled by the platform-specific wakeup source. | ||
390 | */ | ||
391 | static void gic_dist_restore(unsigned int gic_nr) | ||
392 | { | ||
393 | unsigned int gic_irqs; | ||
394 | unsigned int i; | ||
395 | void __iomem *dist_base; | ||
396 | |||
397 | if (gic_nr >= MAX_GIC_NR) | ||
398 | BUG(); | ||
399 | |||
400 | gic_irqs = gic_data[gic_nr].gic_irqs; | ||
401 | dist_base = gic_data[gic_nr].dist_base; | ||
402 | |||
403 | if (!dist_base) | ||
404 | return; | ||
405 | |||
406 | writel_relaxed(0, dist_base + GIC_DIST_CTRL); | ||
407 | |||
408 | for (i = 0; i < DIV_ROUND_UP(gic_irqs, 16); i++) | ||
409 | writel_relaxed(gic_data[gic_nr].saved_spi_conf[i], | ||
410 | dist_base + GIC_DIST_CONFIG + i * 4); | ||
411 | |||
412 | for (i = 0; i < DIV_ROUND_UP(gic_irqs, 4); i++) | ||
413 | writel_relaxed(0xa0a0a0a0, | ||
414 | dist_base + GIC_DIST_PRI + i * 4); | ||
415 | |||
416 | for (i = 0; i < DIV_ROUND_UP(gic_irqs, 4); i++) | ||
417 | writel_relaxed(gic_data[gic_nr].saved_spi_target[i], | ||
418 | dist_base + GIC_DIST_TARGET + i * 4); | ||
419 | |||
420 | for (i = 0; i < DIV_ROUND_UP(gic_irqs, 32); i++) | ||
421 | writel_relaxed(gic_data[gic_nr].saved_spi_enable[i], | ||
422 | dist_base + GIC_DIST_ENABLE_SET + i * 4); | ||
423 | |||
424 | writel_relaxed(1, dist_base + GIC_DIST_CTRL); | ||
425 | } | ||
426 | |||
427 | static void gic_cpu_save(unsigned int gic_nr) | ||
428 | { | ||
429 | int i; | ||
430 | u32 *ptr; | ||
431 | void __iomem *dist_base; | ||
432 | void __iomem *cpu_base; | ||
433 | |||
434 | if (gic_nr >= MAX_GIC_NR) | ||
435 | BUG(); | ||
436 | |||
437 | dist_base = gic_data[gic_nr].dist_base; | ||
438 | cpu_base = gic_data[gic_nr].cpu_base; | ||
439 | |||
440 | if (!dist_base || !cpu_base) | ||
441 | return; | ||
442 | |||
443 | ptr = __this_cpu_ptr(gic_data[gic_nr].saved_ppi_enable); | ||
444 | for (i = 0; i < DIV_ROUND_UP(32, 32); i++) | ||
445 | ptr[i] = readl_relaxed(dist_base + GIC_DIST_ENABLE_SET + i * 4); | ||
446 | |||
447 | ptr = __this_cpu_ptr(gic_data[gic_nr].saved_ppi_conf); | ||
448 | for (i = 0; i < DIV_ROUND_UP(32, 16); i++) | ||
449 | ptr[i] = readl_relaxed(dist_base + GIC_DIST_CONFIG + i * 4); | ||
450 | |||
451 | } | ||
452 | |||
453 | static void gic_cpu_restore(unsigned int gic_nr) | ||
454 | { | ||
455 | int i; | ||
456 | u32 *ptr; | ||
457 | void __iomem *dist_base; | ||
458 | void __iomem *cpu_base; | ||
459 | |||
460 | if (gic_nr >= MAX_GIC_NR) | ||
461 | BUG(); | ||
462 | |||
463 | dist_base = gic_data[gic_nr].dist_base; | ||
464 | cpu_base = gic_data[gic_nr].cpu_base; | ||
465 | |||
466 | if (!dist_base || !cpu_base) | ||
467 | return; | ||
468 | |||
469 | ptr = __this_cpu_ptr(gic_data[gic_nr].saved_ppi_enable); | ||
470 | for (i = 0; i < DIV_ROUND_UP(32, 32); i++) | ||
471 | writel_relaxed(ptr[i], dist_base + GIC_DIST_ENABLE_SET + i * 4); | ||
472 | |||
473 | ptr = __this_cpu_ptr(gic_data[gic_nr].saved_ppi_conf); | ||
474 | for (i = 0; i < DIV_ROUND_UP(32, 16); i++) | ||
475 | writel_relaxed(ptr[i], dist_base + GIC_DIST_CONFIG + i * 4); | ||
476 | |||
477 | for (i = 0; i < DIV_ROUND_UP(32, 4); i++) | ||
478 | writel_relaxed(0xa0a0a0a0, dist_base + GIC_DIST_PRI + i * 4); | ||
479 | |||
480 | writel_relaxed(0xf0, cpu_base + GIC_CPU_PRIMASK); | ||
481 | writel_relaxed(1, cpu_base + GIC_CPU_CTRL); | ||
482 | } | ||
483 | |||
484 | static int gic_notifier(struct notifier_block *self, unsigned long cmd, void *v) | ||
485 | { | ||
486 | int i; | ||
487 | |||
488 | for (i = 0; i < MAX_GIC_NR; i++) { | ||
489 | switch (cmd) { | ||
490 | case CPU_PM_ENTER: | ||
491 | gic_cpu_save(i); | ||
492 | break; | ||
493 | case CPU_PM_ENTER_FAILED: | ||
494 | case CPU_PM_EXIT: | ||
495 | gic_cpu_restore(i); | ||
496 | break; | ||
497 | case CPU_CLUSTER_PM_ENTER: | ||
498 | gic_dist_save(i); | ||
499 | break; | ||
500 | case CPU_CLUSTER_PM_ENTER_FAILED: | ||
501 | case CPU_CLUSTER_PM_EXIT: | ||
502 | gic_dist_restore(i); | ||
503 | break; | ||
504 | } | ||
505 | } | ||
506 | |||
507 | return NOTIFY_OK; | ||
508 | } | ||
509 | |||
510 | static struct notifier_block gic_notifier_block = { | ||
511 | .notifier_call = gic_notifier, | ||
512 | }; | ||
513 | |||
514 | static void __init gic_pm_init(struct gic_chip_data *gic) | ||
515 | { | ||
516 | gic->saved_ppi_enable = __alloc_percpu(DIV_ROUND_UP(32, 32) * 4, | ||
517 | sizeof(u32)); | ||
518 | BUG_ON(!gic->saved_ppi_enable); | ||
519 | |||
520 | gic->saved_ppi_conf = __alloc_percpu(DIV_ROUND_UP(32, 16) * 4, | ||
521 | sizeof(u32)); | ||
522 | BUG_ON(!gic->saved_ppi_conf); | ||
523 | |||
524 | cpu_pm_register_notifier(&gic_notifier_block); | ||
525 | } | ||
526 | #else | ||
527 | static void __init gic_pm_init(struct gic_chip_data *gic) | ||
528 | { | ||
529 | } | ||
530 | #endif | ||
531 | |||
346 | void __init gic_init(unsigned int gic_nr, unsigned int irq_start, | 532 | void __init gic_init(unsigned int gic_nr, unsigned int irq_start, |
347 | void __iomem *dist_base, void __iomem *cpu_base) | 533 | void __iomem *dist_base, void __iomem *cpu_base) |
348 | { | 534 | { |
@@ -358,8 +544,10 @@ void __init gic_init(unsigned int gic_nr, unsigned int irq_start, | |||
358 | if (gic_nr == 0) | 544 | if (gic_nr == 0) |
359 | gic_cpu_base_addr = cpu_base; | 545 | gic_cpu_base_addr = cpu_base; |
360 | 546 | ||
547 | gic_chip.flags |= gic_arch_extn.flags; | ||
361 | gic_dist_init(gic, irq_start); | 548 | gic_dist_init(gic, irq_start); |
362 | gic_cpu_init(gic); | 549 | gic_cpu_init(gic); |
550 | gic_pm_init(gic); | ||
363 | } | 551 | } |
364 | 552 | ||
365 | void __cpuinit gic_secondary_init(unsigned int gic_nr) | 553 | void __cpuinit gic_secondary_init(unsigned int gic_nr) |
diff --git a/arch/arm/include/asm/device.h b/arch/arm/include/asm/device.h index 9f390ce335cb..b5c9f5b1f6a3 100644 --- a/arch/arm/include/asm/device.h +++ b/arch/arm/include/asm/device.h | |||
@@ -12,7 +12,12 @@ struct dev_archdata { | |||
12 | #endif | 12 | #endif |
13 | }; | 13 | }; |
14 | 14 | ||
15 | struct omap_device; | ||
16 | |||
15 | struct pdev_archdata { | 17 | struct pdev_archdata { |
18 | #ifdef CONFIG_ARCH_OMAP | ||
19 | struct omap_device *od; | ||
20 | #endif | ||
16 | }; | 21 | }; |
17 | 22 | ||
18 | #endif | 23 | #endif |
diff --git a/arch/arm/include/asm/dma-mapping.h b/arch/arm/include/asm/dma-mapping.h index 7a21d0bf7134..7f27fab9d404 100644 --- a/arch/arm/include/asm/dma-mapping.h +++ b/arch/arm/include/asm/dma-mapping.h | |||
@@ -205,6 +205,13 @@ extern void *dma_alloc_writecombine(struct device *, size_t, dma_addr_t *, | |||
205 | int dma_mmap_writecombine(struct device *, struct vm_area_struct *, | 205 | int dma_mmap_writecombine(struct device *, struct vm_area_struct *, |
206 | void *, dma_addr_t, size_t); | 206 | void *, dma_addr_t, size_t); |
207 | 207 | ||
208 | /* | ||
209 | * This can be called during boot to increase the size of the consistent | ||
210 | * DMA region above it's default value of 2MB. It must be called before the | ||
211 | * memory allocator is initialised, i.e. before any core_initcall. | ||
212 | */ | ||
213 | extern void __init init_consistent_dma_size(unsigned long size); | ||
214 | |||
208 | 215 | ||
209 | #ifdef CONFIG_DMABOUNCE | 216 | #ifdef CONFIG_DMABOUNCE |
210 | /* | 217 | /* |
diff --git a/arch/arm/include/asm/hardware/gic.h b/arch/arm/include/asm/hardware/gic.h index 435d3f86c708..c5627057b1c7 100644 --- a/arch/arm/include/asm/hardware/gic.h +++ b/arch/arm/include/asm/hardware/gic.h | |||
@@ -46,6 +46,14 @@ struct gic_chip_data { | |||
46 | unsigned int irq_offset; | 46 | unsigned int irq_offset; |
47 | void __iomem *dist_base; | 47 | void __iomem *dist_base; |
48 | void __iomem *cpu_base; | 48 | void __iomem *cpu_base; |
49 | #ifdef CONFIG_CPU_PM | ||
50 | u32 saved_spi_enable[DIV_ROUND_UP(1020, 32)]; | ||
51 | u32 saved_spi_conf[DIV_ROUND_UP(1020, 16)]; | ||
52 | u32 saved_spi_target[DIV_ROUND_UP(1020, 4)]; | ||
53 | u32 __percpu *saved_ppi_enable; | ||
54 | u32 __percpu *saved_ppi_conf; | ||
55 | #endif | ||
56 | unsigned int gic_irqs; | ||
49 | }; | 57 | }; |
50 | #endif | 58 | #endif |
51 | 59 | ||
diff --git a/arch/arm/include/asm/hw_breakpoint.h b/arch/arm/include/asm/hw_breakpoint.h index f389b2704d82..c190bc992f0e 100644 --- a/arch/arm/include/asm/hw_breakpoint.h +++ b/arch/arm/include/asm/hw_breakpoint.h | |||
@@ -50,6 +50,7 @@ static inline void decode_ctrl_reg(u32 reg, | |||
50 | #define ARM_DEBUG_ARCH_V6_1 2 | 50 | #define ARM_DEBUG_ARCH_V6_1 2 |
51 | #define ARM_DEBUG_ARCH_V7_ECP14 3 | 51 | #define ARM_DEBUG_ARCH_V7_ECP14 3 |
52 | #define ARM_DEBUG_ARCH_V7_MM 4 | 52 | #define ARM_DEBUG_ARCH_V7_MM 4 |
53 | #define ARM_DEBUG_ARCH_V7_1 5 | ||
53 | 54 | ||
54 | /* Breakpoint */ | 55 | /* Breakpoint */ |
55 | #define ARM_BREAKPOINT_EXECUTE 0 | 56 | #define ARM_BREAKPOINT_EXECUTE 0 |
@@ -57,6 +58,7 @@ static inline void decode_ctrl_reg(u32 reg, | |||
57 | /* Watchpoints */ | 58 | /* Watchpoints */ |
58 | #define ARM_BREAKPOINT_LOAD 1 | 59 | #define ARM_BREAKPOINT_LOAD 1 |
59 | #define ARM_BREAKPOINT_STORE 2 | 60 | #define ARM_BREAKPOINT_STORE 2 |
61 | #define ARM_FSR_ACCESS_MASK (1 << 11) | ||
60 | 62 | ||
61 | /* Privilege Levels */ | 63 | /* Privilege Levels */ |
62 | #define ARM_BREAKPOINT_PRIV 1 | 64 | #define ARM_BREAKPOINT_PRIV 1 |
diff --git a/arch/arm/include/asm/mach/arch.h b/arch/arm/include/asm/mach/arch.h index 217aa1911dd7..727da118bcc1 100644 --- a/arch/arm/include/asm/mach/arch.h +++ b/arch/arm/include/asm/mach/arch.h | |||
@@ -17,7 +17,7 @@ struct sys_timer; | |||
17 | struct machine_desc { | 17 | struct machine_desc { |
18 | unsigned int nr; /* architecture number */ | 18 | unsigned int nr; /* architecture number */ |
19 | const char *name; /* architecture name */ | 19 | const char *name; /* architecture name */ |
20 | unsigned long boot_params; /* tagged list */ | 20 | unsigned long atag_offset; /* tagged list (relative) */ |
21 | const char **dt_compat; /* array of device tree | 21 | const char **dt_compat; /* array of device tree |
22 | * 'compatible' strings */ | 22 | * 'compatible' strings */ |
23 | 23 | ||
diff --git a/arch/arm/include/asm/mach/map.h b/arch/arm/include/asm/mach/map.h index d2fedb5aeb1f..b36f3654bf54 100644 --- a/arch/arm/include/asm/mach/map.h +++ b/arch/arm/include/asm/mach/map.h | |||
@@ -29,6 +29,7 @@ struct map_desc { | |||
29 | #define MT_MEMORY_NONCACHED 11 | 29 | #define MT_MEMORY_NONCACHED 11 |
30 | #define MT_MEMORY_DTCM 12 | 30 | #define MT_MEMORY_DTCM 12 |
31 | #define MT_MEMORY_ITCM 13 | 31 | #define MT_MEMORY_ITCM 13 |
32 | #define MT_MEMORY_SO 14 | ||
32 | 33 | ||
33 | #ifdef CONFIG_MMU | 34 | #ifdef CONFIG_MMU |
34 | extern void iotable_init(struct map_desc *, int); | 35 | extern void iotable_init(struct map_desc *, int); |
diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h index b8de516e600e..652fccca4952 100644 --- a/arch/arm/include/asm/memory.h +++ b/arch/arm/include/asm/memory.h | |||
@@ -77,16 +77,7 @@ | |||
77 | */ | 77 | */ |
78 | #define IOREMAP_MAX_ORDER 24 | 78 | #define IOREMAP_MAX_ORDER 24 |
79 | 79 | ||
80 | /* | ||
81 | * Size of DMA-consistent memory region. Must be multiple of 2M, | ||
82 | * between 2MB and 14MB inclusive. | ||
83 | */ | ||
84 | #ifndef CONSISTENT_DMA_SIZE | ||
85 | #define CONSISTENT_DMA_SIZE SZ_2M | ||
86 | #endif | ||
87 | |||
88 | #define CONSISTENT_END (0xffe00000UL) | 80 | #define CONSISTENT_END (0xffe00000UL) |
89 | #define CONSISTENT_BASE (CONSISTENT_END - CONSISTENT_DMA_SIZE) | ||
90 | 81 | ||
91 | #else /* CONFIG_MMU */ | 82 | #else /* CONFIG_MMU */ |
92 | 83 | ||
diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h index 5750704e0271..f1956b27ae5a 100644 --- a/arch/arm/include/asm/pgtable.h +++ b/arch/arm/include/asm/pgtable.h | |||
@@ -232,6 +232,9 @@ extern pgprot_t pgprot_kernel; | |||
232 | #define pgprot_writecombine(prot) \ | 232 | #define pgprot_writecombine(prot) \ |
233 | __pgprot_modify(prot, L_PTE_MT_MASK, L_PTE_MT_BUFFERABLE) | 233 | __pgprot_modify(prot, L_PTE_MT_MASK, L_PTE_MT_BUFFERABLE) |
234 | 234 | ||
235 | #define pgprot_stronglyordered(prot) \ | ||
236 | __pgprot_modify(prot, L_PTE_MT_MASK, L_PTE_MT_UNCACHED) | ||
237 | |||
235 | #ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE | 238 | #ifdef CONFIG_ARM_DMA_MEM_BUFFERABLE |
236 | #define pgprot_dmacoherent(prot) \ | 239 | #define pgprot_dmacoherent(prot) \ |
237 | __pgprot_modify(prot, L_PTE_MT_MASK, L_PTE_MT_BUFFERABLE | L_PTE_XN) | 240 | __pgprot_modify(prot, L_PTE_MT_MASK, L_PTE_MT_BUFFERABLE | L_PTE_XN) |
diff --git a/arch/arm/include/asm/pmu.h b/arch/arm/include/asm/pmu.h index b7e82c4aced6..71d99b83cdb9 100644 --- a/arch/arm/include/asm/pmu.h +++ b/arch/arm/include/asm/pmu.h | |||
@@ -13,7 +13,12 @@ | |||
13 | #define __ARM_PMU_H__ | 13 | #define __ARM_PMU_H__ |
14 | 14 | ||
15 | #include <linux/interrupt.h> | 15 | #include <linux/interrupt.h> |
16 | #include <linux/perf_event.h> | ||
16 | 17 | ||
18 | /* | ||
19 | * Types of PMUs that can be accessed directly and require mutual | ||
20 | * exclusion between profiling tools. | ||
21 | */ | ||
17 | enum arm_pmu_type { | 22 | enum arm_pmu_type { |
18 | ARM_PMU_DEVICE_CPU = 0, | 23 | ARM_PMU_DEVICE_CPU = 0, |
19 | ARM_NUM_PMU_DEVICES, | 24 | ARM_NUM_PMU_DEVICES, |
@@ -37,21 +42,17 @@ struct arm_pmu_platdata { | |||
37 | * reserve_pmu() - reserve the hardware performance counters | 42 | * reserve_pmu() - reserve the hardware performance counters |
38 | * | 43 | * |
39 | * Reserve the hardware performance counters in the system for exclusive use. | 44 | * Reserve the hardware performance counters in the system for exclusive use. |
40 | * The platform_device for the system is returned on success, ERR_PTR() | 45 | * Returns 0 on success or -EBUSY if the lock is already held. |
41 | * encoded error on failure. | ||
42 | */ | 46 | */ |
43 | extern struct platform_device * | 47 | extern int |
44 | reserve_pmu(enum arm_pmu_type type); | 48 | reserve_pmu(enum arm_pmu_type type); |
45 | 49 | ||
46 | /** | 50 | /** |
47 | * release_pmu() - Relinquish control of the performance counters | 51 | * release_pmu() - Relinquish control of the performance counters |
48 | * | 52 | * |
49 | * Release the performance counters and allow someone else to use them. | 53 | * Release the performance counters and allow someone else to use them. |
50 | * Callers must have disabled the counters and released IRQs before calling | ||
51 | * this. The platform_device returned from reserve_pmu() must be passed as | ||
52 | * a cookie. | ||
53 | */ | 54 | */ |
54 | extern int | 55 | extern void |
55 | release_pmu(enum arm_pmu_type type); | 56 | release_pmu(enum arm_pmu_type type); |
56 | 57 | ||
57 | /** | 58 | /** |
@@ -68,24 +69,78 @@ init_pmu(enum arm_pmu_type type); | |||
68 | 69 | ||
69 | #include <linux/err.h> | 70 | #include <linux/err.h> |
70 | 71 | ||
71 | static inline struct platform_device * | ||
72 | reserve_pmu(enum arm_pmu_type type) | ||
73 | { | ||
74 | return ERR_PTR(-ENODEV); | ||
75 | } | ||
76 | |||
77 | static inline int | 72 | static inline int |
78 | release_pmu(enum arm_pmu_type type) | 73 | reserve_pmu(enum arm_pmu_type type) |
79 | { | 74 | { |
80 | return -ENODEV; | 75 | return -ENODEV; |
81 | } | 76 | } |
82 | 77 | ||
83 | static inline int | 78 | static inline void |
84 | init_pmu(enum arm_pmu_type type) | 79 | release_pmu(enum arm_pmu_type type) { } |
85 | { | ||
86 | return -ENODEV; | ||
87 | } | ||
88 | 80 | ||
89 | #endif /* CONFIG_CPU_HAS_PMU */ | 81 | #endif /* CONFIG_CPU_HAS_PMU */ |
90 | 82 | ||
83 | #ifdef CONFIG_HW_PERF_EVENTS | ||
84 | |||
85 | /* The events for a given PMU register set. */ | ||
86 | struct pmu_hw_events { | ||
87 | /* | ||
88 | * The events that are active on the PMU for the given index. | ||
89 | */ | ||
90 | struct perf_event **events; | ||
91 | |||
92 | /* | ||
93 | * A 1 bit for an index indicates that the counter is being used for | ||
94 | * an event. A 0 means that the counter can be used. | ||
95 | */ | ||
96 | unsigned long *used_mask; | ||
97 | |||
98 | /* | ||
99 | * Hardware lock to serialize accesses to PMU registers. Needed for the | ||
100 | * read/modify/write sequences. | ||
101 | */ | ||
102 | raw_spinlock_t pmu_lock; | ||
103 | }; | ||
104 | |||
105 | struct arm_pmu { | ||
106 | struct pmu pmu; | ||
107 | enum arm_perf_pmu_ids id; | ||
108 | enum arm_pmu_type type; | ||
109 | cpumask_t active_irqs; | ||
110 | const char *name; | ||
111 | irqreturn_t (*handle_irq)(int irq_num, void *dev); | ||
112 | void (*enable)(struct hw_perf_event *evt, int idx); | ||
113 | void (*disable)(struct hw_perf_event *evt, int idx); | ||
114 | int (*get_event_idx)(struct pmu_hw_events *hw_events, | ||
115 | struct hw_perf_event *hwc); | ||
116 | int (*set_event_filter)(struct hw_perf_event *evt, | ||
117 | struct perf_event_attr *attr); | ||
118 | u32 (*read_counter)(int idx); | ||
119 | void (*write_counter)(int idx, u32 val); | ||
120 | void (*start)(void); | ||
121 | void (*stop)(void); | ||
122 | void (*reset)(void *); | ||
123 | int (*map_event)(struct perf_event *event); | ||
124 | int num_events; | ||
125 | atomic_t active_events; | ||
126 | struct mutex reserve_mutex; | ||
127 | u64 max_period; | ||
128 | struct platform_device *plat_device; | ||
129 | struct pmu_hw_events *(*get_hw_events)(void); | ||
130 | }; | ||
131 | |||
132 | #define to_arm_pmu(p) (container_of(p, struct arm_pmu, pmu)) | ||
133 | |||
134 | int __init armpmu_register(struct arm_pmu *armpmu, char *name, int type); | ||
135 | |||
136 | u64 armpmu_event_update(struct perf_event *event, | ||
137 | struct hw_perf_event *hwc, | ||
138 | int idx, int overflow); | ||
139 | |||
140 | int armpmu_event_set_period(struct perf_event *event, | ||
141 | struct hw_perf_event *hwc, | ||
142 | int idx); | ||
143 | |||
144 | #endif /* CONFIG_HW_PERF_EVENTS */ | ||
145 | |||
91 | #endif /* __ARM_PMU_H__ */ | 146 | #endif /* __ARM_PMU_H__ */ |
diff --git a/arch/arm/include/asm/proc-fns.h b/arch/arm/include/asm/proc-fns.h index 633d1cb84d87..9e92cb205e65 100644 --- a/arch/arm/include/asm/proc-fns.h +++ b/arch/arm/include/asm/proc-fns.h | |||
@@ -81,6 +81,10 @@ extern void cpu_dcache_clean_area(void *, int); | |||
81 | extern void cpu_do_switch_mm(unsigned long pgd_phys, struct mm_struct *mm); | 81 | extern void cpu_do_switch_mm(unsigned long pgd_phys, struct mm_struct *mm); |
82 | extern void cpu_set_pte_ext(pte_t *ptep, pte_t pte, unsigned int ext); | 82 | extern void cpu_set_pte_ext(pte_t *ptep, pte_t pte, unsigned int ext); |
83 | extern void cpu_reset(unsigned long addr) __attribute__((noreturn)); | 83 | extern void cpu_reset(unsigned long addr) __attribute__((noreturn)); |
84 | |||
85 | /* These three are private to arch/arm/kernel/suspend.c */ | ||
86 | extern void cpu_do_suspend(void *); | ||
87 | extern void cpu_do_resume(void *); | ||
84 | #else | 88 | #else |
85 | #define cpu_proc_init processor._proc_init | 89 | #define cpu_proc_init processor._proc_init |
86 | #define cpu_proc_fin processor._proc_fin | 90 | #define cpu_proc_fin processor._proc_fin |
@@ -89,6 +93,10 @@ extern void cpu_reset(unsigned long addr) __attribute__((noreturn)); | |||
89 | #define cpu_dcache_clean_area processor.dcache_clean_area | 93 | #define cpu_dcache_clean_area processor.dcache_clean_area |
90 | #define cpu_set_pte_ext processor.set_pte_ext | 94 | #define cpu_set_pte_ext processor.set_pte_ext |
91 | #define cpu_do_switch_mm processor.switch_mm | 95 | #define cpu_do_switch_mm processor.switch_mm |
96 | |||
97 | /* These three are private to arch/arm/kernel/suspend.c */ | ||
98 | #define cpu_do_suspend processor.do_suspend | ||
99 | #define cpu_do_resume processor.do_resume | ||
92 | #endif | 100 | #endif |
93 | 101 | ||
94 | extern void cpu_resume(void); | 102 | extern void cpu_resume(void); |
diff --git a/arch/arm/include/asm/suspend.h b/arch/arm/include/asm/suspend.h index b0e4e1a02318..1c0a551ae375 100644 --- a/arch/arm/include/asm/suspend.h +++ b/arch/arm/include/asm/suspend.h | |||
@@ -1,22 +1,7 @@ | |||
1 | #ifndef __ASM_ARM_SUSPEND_H | 1 | #ifndef __ASM_ARM_SUSPEND_H |
2 | #define __ASM_ARM_SUSPEND_H | 2 | #define __ASM_ARM_SUSPEND_H |
3 | 3 | ||
4 | #include <asm/memory.h> | ||
5 | #include <asm/tlbflush.h> | ||
6 | |||
7 | extern void cpu_resume(void); | 4 | extern void cpu_resume(void); |
8 | 5 | extern int cpu_suspend(unsigned long, int (*)(unsigned long)); | |
9 | /* | ||
10 | * Hide the first two arguments to __cpu_suspend - these are an implementation | ||
11 | * detail which platform code shouldn't have to know about. | ||
12 | */ | ||
13 | static inline int cpu_suspend(unsigned long arg, int (*fn)(unsigned long)) | ||
14 | { | ||
15 | extern int __cpu_suspend(int, long, unsigned long, | ||
16 | int (*)(unsigned long)); | ||
17 | int ret = __cpu_suspend(0, PHYS_OFFSET - PAGE_OFFSET, arg, fn); | ||
18 | flush_tlb_all(); | ||
19 | return ret; | ||
20 | } | ||
21 | 6 | ||
22 | #endif | 7 | #endif |
diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile index f7887dc53c1f..8fa83f54c967 100644 --- a/arch/arm/kernel/Makefile +++ b/arch/arm/kernel/Makefile | |||
@@ -29,7 +29,7 @@ obj-$(CONFIG_MODULES) += armksyms.o module.o | |||
29 | obj-$(CONFIG_ARTHUR) += arthur.o | 29 | obj-$(CONFIG_ARTHUR) += arthur.o |
30 | obj-$(CONFIG_ISA_DMA) += dma-isa.o | 30 | obj-$(CONFIG_ISA_DMA) += dma-isa.o |
31 | obj-$(CONFIG_PCI) += bios32.o isa.o | 31 | obj-$(CONFIG_PCI) += bios32.o isa.o |
32 | obj-$(CONFIG_PM_SLEEP) += sleep.o | 32 | obj-$(CONFIG_PM_SLEEP) += sleep.o suspend.o |
33 | obj-$(CONFIG_HAVE_SCHED_CLOCK) += sched_clock.o | 33 | obj-$(CONFIG_HAVE_SCHED_CLOCK) += sched_clock.o |
34 | obj-$(CONFIG_SMP) += smp.o smp_tlb.o | 34 | obj-$(CONFIG_SMP) += smp.o smp_tlb.o |
35 | obj-$(CONFIG_HAVE_ARM_SCU) += smp_scu.o | 35 | obj-$(CONFIG_HAVE_ARM_SCU) += smp_scu.o |
@@ -43,6 +43,13 @@ obj-$(CONFIG_KPROBES) += kprobes-thumb.o | |||
43 | else | 43 | else |
44 | obj-$(CONFIG_KPROBES) += kprobes-arm.o | 44 | obj-$(CONFIG_KPROBES) += kprobes-arm.o |
45 | endif | 45 | endif |
46 | obj-$(CONFIG_ARM_KPROBES_TEST) += test-kprobes.o | ||
47 | test-kprobes-objs := kprobes-test.o | ||
48 | ifdef CONFIG_THUMB2_KERNEL | ||
49 | test-kprobes-objs += kprobes-test-thumb.o | ||
50 | else | ||
51 | test-kprobes-objs += kprobes-test-arm.o | ||
52 | endif | ||
46 | obj-$(CONFIG_ATAGS_PROC) += atags.o | 53 | obj-$(CONFIG_ATAGS_PROC) += atags.o |
47 | obj-$(CONFIG_OABI_COMPAT) += sys_oabi-compat.o | 54 | obj-$(CONFIG_OABI_COMPAT) += sys_oabi-compat.o |
48 | obj-$(CONFIG_ARM_THUMBEE) += thumbee.o | 55 | obj-$(CONFIG_ARM_THUMBEE) += thumbee.o |
diff --git a/arch/arm/kernel/hw_breakpoint.c b/arch/arm/kernel/hw_breakpoint.c index a927ca1f5566..5a46225f007e 100644 --- a/arch/arm/kernel/hw_breakpoint.c +++ b/arch/arm/kernel/hw_breakpoint.c | |||
@@ -45,7 +45,6 @@ static DEFINE_PER_CPU(struct perf_event *, wp_on_reg[ARM_MAX_WRP]); | |||
45 | 45 | ||
46 | /* Number of BRP/WRP registers on this CPU. */ | 46 | /* Number of BRP/WRP registers on this CPU. */ |
47 | static int core_num_brps; | 47 | static int core_num_brps; |
48 | static int core_num_reserved_brps; | ||
49 | static int core_num_wrps; | 48 | static int core_num_wrps; |
50 | 49 | ||
51 | /* Debug architecture version. */ | 50 | /* Debug architecture version. */ |
@@ -137,10 +136,11 @@ static u8 get_debug_arch(void) | |||
137 | u32 didr; | 136 | u32 didr; |
138 | 137 | ||
139 | /* Do we implement the extended CPUID interface? */ | 138 | /* Do we implement the extended CPUID interface? */ |
140 | if (WARN_ONCE((((read_cpuid_id() >> 16) & 0xf) != 0xf), | 139 | if (((read_cpuid_id() >> 16) & 0xf) != 0xf) { |
141 | "CPUID feature registers not supported. " | 140 | pr_warning("CPUID feature registers not supported. " |
142 | "Assuming v6 debug is present.\n")) | 141 | "Assuming v6 debug is present.\n"); |
143 | return ARM_DEBUG_ARCH_V6; | 142 | return ARM_DEBUG_ARCH_V6; |
143 | } | ||
144 | 144 | ||
145 | ARM_DBG_READ(c0, 0, didr); | 145 | ARM_DBG_READ(c0, 0, didr); |
146 | return (didr >> 16) & 0xf; | 146 | return (didr >> 16) & 0xf; |
@@ -154,10 +154,21 @@ u8 arch_get_debug_arch(void) | |||
154 | static int debug_arch_supported(void) | 154 | static int debug_arch_supported(void) |
155 | { | 155 | { |
156 | u8 arch = get_debug_arch(); | 156 | u8 arch = get_debug_arch(); |
157 | return arch >= ARM_DEBUG_ARCH_V6 && arch <= ARM_DEBUG_ARCH_V7_ECP14; | 157 | |
158 | /* We don't support the memory-mapped interface. */ | ||
159 | return (arch >= ARM_DEBUG_ARCH_V6 && arch <= ARM_DEBUG_ARCH_V7_ECP14) || | ||
160 | arch >= ARM_DEBUG_ARCH_V7_1; | ||
161 | } | ||
162 | |||
163 | /* Determine number of WRP registers available. */ | ||
164 | static int get_num_wrp_resources(void) | ||
165 | { | ||
166 | u32 didr; | ||
167 | ARM_DBG_READ(c0, 0, didr); | ||
168 | return ((didr >> 28) & 0xf) + 1; | ||
158 | } | 169 | } |
159 | 170 | ||
160 | /* Determine number of BRP register available. */ | 171 | /* Determine number of BRP registers available. */ |
161 | static int get_num_brp_resources(void) | 172 | static int get_num_brp_resources(void) |
162 | { | 173 | { |
163 | u32 didr; | 174 | u32 didr; |
@@ -176,9 +187,10 @@ static int core_has_mismatch_brps(void) | |||
176 | static int get_num_wrps(void) | 187 | static int get_num_wrps(void) |
177 | { | 188 | { |
178 | /* | 189 | /* |
179 | * FIXME: When a watchpoint fires, the only way to work out which | 190 | * On debug architectures prior to 7.1, when a watchpoint fires, the |
180 | * watchpoint it was is by disassembling the faulting instruction | 191 | * only way to work out which watchpoint it was is by disassembling |
181 | * and working out the address of the memory access. | 192 | * the faulting instruction and working out the address of the memory |
193 | * access. | ||
182 | * | 194 | * |
183 | * Furthermore, we can only do this if the watchpoint was precise | 195 | * Furthermore, we can only do this if the watchpoint was precise |
184 | * since imprecise watchpoints prevent us from calculating register | 196 | * since imprecise watchpoints prevent us from calculating register |
@@ -192,36 +204,17 @@ static int get_num_wrps(void) | |||
192 | * [the ARM ARM states that the DFAR is UNKNOWN, but experience shows | 204 | * [the ARM ARM states that the DFAR is UNKNOWN, but experience shows |
193 | * that it is set on some implementations]. | 205 | * that it is set on some implementations]. |
194 | */ | 206 | */ |
207 | if (get_debug_arch() < ARM_DEBUG_ARCH_V7_1) | ||
208 | return 1; | ||
195 | 209 | ||
196 | #if 0 | 210 | return get_num_wrp_resources(); |
197 | int wrps; | ||
198 | u32 didr; | ||
199 | ARM_DBG_READ(c0, 0, didr); | ||
200 | wrps = ((didr >> 28) & 0xf) + 1; | ||
201 | #endif | ||
202 | int wrps = 1; | ||
203 | |||
204 | if (core_has_mismatch_brps() && wrps >= get_num_brp_resources()) | ||
205 | wrps = get_num_brp_resources() - 1; | ||
206 | |||
207 | return wrps; | ||
208 | } | ||
209 | |||
210 | /* We reserve one breakpoint for each watchpoint. */ | ||
211 | static int get_num_reserved_brps(void) | ||
212 | { | ||
213 | if (core_has_mismatch_brps()) | ||
214 | return get_num_wrps(); | ||
215 | return 0; | ||
216 | } | 211 | } |
217 | 212 | ||
218 | /* Determine number of usable BRPs available. */ | 213 | /* Determine number of usable BRPs available. */ |
219 | static int get_num_brps(void) | 214 | static int get_num_brps(void) |
220 | { | 215 | { |
221 | int brps = get_num_brp_resources(); | 216 | int brps = get_num_brp_resources(); |
222 | if (core_has_mismatch_brps()) | 217 | return core_has_mismatch_brps() ? brps - 1 : brps; |
223 | brps -= get_num_reserved_brps(); | ||
224 | return brps; | ||
225 | } | 218 | } |
226 | 219 | ||
227 | /* | 220 | /* |
@@ -239,7 +232,7 @@ static int enable_monitor_mode(void) | |||
239 | 232 | ||
240 | /* Ensure that halting mode is disabled. */ | 233 | /* Ensure that halting mode is disabled. */ |
241 | if (WARN_ONCE(dscr & ARM_DSCR_HDBGEN, | 234 | if (WARN_ONCE(dscr & ARM_DSCR_HDBGEN, |
242 | "halting debug mode enabled. Unable to access hardware resources.\n")) { | 235 | "halting debug mode enabled. Unable to access hardware resources.\n")) { |
243 | ret = -EPERM; | 236 | ret = -EPERM; |
244 | goto out; | 237 | goto out; |
245 | } | 238 | } |
@@ -255,6 +248,7 @@ static int enable_monitor_mode(void) | |||
255 | ARM_DBG_WRITE(c1, 0, (dscr | ARM_DSCR_MDBGEN)); | 248 | ARM_DBG_WRITE(c1, 0, (dscr | ARM_DSCR_MDBGEN)); |
256 | break; | 249 | break; |
257 | case ARM_DEBUG_ARCH_V7_ECP14: | 250 | case ARM_DEBUG_ARCH_V7_ECP14: |
251 | case ARM_DEBUG_ARCH_V7_1: | ||
258 | ARM_DBG_WRITE(c2, 2, (dscr | ARM_DSCR_MDBGEN)); | 252 | ARM_DBG_WRITE(c2, 2, (dscr | ARM_DSCR_MDBGEN)); |
259 | break; | 253 | break; |
260 | default: | 254 | default: |
@@ -346,24 +340,10 @@ int arch_install_hw_breakpoint(struct perf_event *bp) | |||
346 | val_base = ARM_BASE_BVR; | 340 | val_base = ARM_BASE_BVR; |
347 | slots = (struct perf_event **)__get_cpu_var(bp_on_reg); | 341 | slots = (struct perf_event **)__get_cpu_var(bp_on_reg); |
348 | max_slots = core_num_brps; | 342 | max_slots = core_num_brps; |
349 | if (info->step_ctrl.enabled) { | ||
350 | /* Override the breakpoint data with the step data. */ | ||
351 | addr = info->trigger & ~0x3; | ||
352 | ctrl = encode_ctrl_reg(info->step_ctrl); | ||
353 | } | ||
354 | } else { | 343 | } else { |
355 | /* Watchpoint */ | 344 | /* Watchpoint */ |
356 | if (info->step_ctrl.enabled) { | 345 | ctrl_base = ARM_BASE_WCR; |
357 | /* Install into the reserved breakpoint region. */ | 346 | val_base = ARM_BASE_WVR; |
358 | ctrl_base = ARM_BASE_BCR + core_num_brps; | ||
359 | val_base = ARM_BASE_BVR + core_num_brps; | ||
360 | /* Override the watchpoint data with the step data. */ | ||
361 | addr = info->trigger & ~0x3; | ||
362 | ctrl = encode_ctrl_reg(info->step_ctrl); | ||
363 | } else { | ||
364 | ctrl_base = ARM_BASE_WCR; | ||
365 | val_base = ARM_BASE_WVR; | ||
366 | } | ||
367 | slots = (struct perf_event **)__get_cpu_var(wp_on_reg); | 347 | slots = (struct perf_event **)__get_cpu_var(wp_on_reg); |
368 | max_slots = core_num_wrps; | 348 | max_slots = core_num_wrps; |
369 | } | 349 | } |
@@ -382,6 +362,17 @@ int arch_install_hw_breakpoint(struct perf_event *bp) | |||
382 | goto out; | 362 | goto out; |
383 | } | 363 | } |
384 | 364 | ||
365 | /* Override the breakpoint data with the step data. */ | ||
366 | if (info->step_ctrl.enabled) { | ||
367 | addr = info->trigger & ~0x3; | ||
368 | ctrl = encode_ctrl_reg(info->step_ctrl); | ||
369 | if (info->ctrl.type != ARM_BREAKPOINT_EXECUTE) { | ||
370 | i = 0; | ||
371 | ctrl_base = ARM_BASE_BCR + core_num_brps; | ||
372 | val_base = ARM_BASE_BVR + core_num_brps; | ||
373 | } | ||
374 | } | ||
375 | |||
385 | /* Setup the address register. */ | 376 | /* Setup the address register. */ |
386 | write_wb_reg(val_base + i, addr); | 377 | write_wb_reg(val_base + i, addr); |
387 | 378 | ||
@@ -405,10 +396,7 @@ void arch_uninstall_hw_breakpoint(struct perf_event *bp) | |||
405 | max_slots = core_num_brps; | 396 | max_slots = core_num_brps; |
406 | } else { | 397 | } else { |
407 | /* Watchpoint */ | 398 | /* Watchpoint */ |
408 | if (info->step_ctrl.enabled) | 399 | base = ARM_BASE_WCR; |
409 | base = ARM_BASE_BCR + core_num_brps; | ||
410 | else | ||
411 | base = ARM_BASE_WCR; | ||
412 | slots = (struct perf_event **)__get_cpu_var(wp_on_reg); | 400 | slots = (struct perf_event **)__get_cpu_var(wp_on_reg); |
413 | max_slots = core_num_wrps; | 401 | max_slots = core_num_wrps; |
414 | } | 402 | } |
@@ -426,6 +414,13 @@ void arch_uninstall_hw_breakpoint(struct perf_event *bp) | |||
426 | if (WARN_ONCE(i == max_slots, "Can't find any breakpoint slot\n")) | 414 | if (WARN_ONCE(i == max_slots, "Can't find any breakpoint slot\n")) |
427 | return; | 415 | return; |
428 | 416 | ||
417 | /* Ensure that we disable the mismatch breakpoint. */ | ||
418 | if (info->ctrl.type != ARM_BREAKPOINT_EXECUTE && | ||
419 | info->step_ctrl.enabled) { | ||
420 | i = 0; | ||
421 | base = ARM_BASE_BCR + core_num_brps; | ||
422 | } | ||
423 | |||
429 | /* Reset the control register. */ | 424 | /* Reset the control register. */ |
430 | write_wb_reg(base + i, 0); | 425 | write_wb_reg(base + i, 0); |
431 | } | 426 | } |
@@ -632,10 +627,9 @@ int arch_validate_hwbkpt_settings(struct perf_event *bp) | |||
632 | * we can use the mismatch feature as a poor-man's hardware | 627 | * we can use the mismatch feature as a poor-man's hardware |
633 | * single-step, but this only works for per-task breakpoints. | 628 | * single-step, but this only works for per-task breakpoints. |
634 | */ | 629 | */ |
635 | if (WARN_ONCE(!bp->overflow_handler && | 630 | if (!bp->overflow_handler && (arch_check_bp_in_kernelspace(bp) || |
636 | (arch_check_bp_in_kernelspace(bp) || !core_has_mismatch_brps() | 631 | !core_has_mismatch_brps() || !bp->hw.bp_target)) { |
637 | || !bp->hw.bp_target), | 632 | pr_warning("overflow handler required but none found\n"); |
638 | "overflow handler required but none found\n")) { | ||
639 | ret = -EINVAL; | 633 | ret = -EINVAL; |
640 | } | 634 | } |
641 | out: | 635 | out: |
@@ -666,34 +660,62 @@ static void disable_single_step(struct perf_event *bp) | |||
666 | arch_install_hw_breakpoint(bp); | 660 | arch_install_hw_breakpoint(bp); |
667 | } | 661 | } |
668 | 662 | ||
669 | static void watchpoint_handler(unsigned long unknown, struct pt_regs *regs) | 663 | static void watchpoint_handler(unsigned long addr, unsigned int fsr, |
664 | struct pt_regs *regs) | ||
670 | { | 665 | { |
671 | int i; | 666 | int i, access; |
667 | u32 val, ctrl_reg, alignment_mask; | ||
672 | struct perf_event *wp, **slots; | 668 | struct perf_event *wp, **slots; |
673 | struct arch_hw_breakpoint *info; | 669 | struct arch_hw_breakpoint *info; |
670 | struct arch_hw_breakpoint_ctrl ctrl; | ||
674 | 671 | ||
675 | slots = (struct perf_event **)__get_cpu_var(wp_on_reg); | 672 | slots = (struct perf_event **)__get_cpu_var(wp_on_reg); |
676 | 673 | ||
677 | /* Without a disassembler, we can only handle 1 watchpoint. */ | ||
678 | BUG_ON(core_num_wrps > 1); | ||
679 | |||
680 | for (i = 0; i < core_num_wrps; ++i) { | 674 | for (i = 0; i < core_num_wrps; ++i) { |
681 | rcu_read_lock(); | 675 | rcu_read_lock(); |
682 | 676 | ||
683 | wp = slots[i]; | 677 | wp = slots[i]; |
684 | 678 | ||
685 | if (wp == NULL) { | 679 | if (wp == NULL) |
686 | rcu_read_unlock(); | 680 | goto unlock; |
687 | continue; | ||
688 | } | ||
689 | 681 | ||
682 | info = counter_arch_bp(wp); | ||
690 | /* | 683 | /* |
691 | * The DFAR is an unknown value. Since we only allow a | 684 | * The DFAR is an unknown value on debug architectures prior |
692 | * single watchpoint, we can set the trigger to the lowest | 685 | * to 7.1. Since we only allow a single watchpoint on these |
693 | * possible faulting address. | 686 | * older CPUs, we can set the trigger to the lowest possible |
687 | * faulting address. | ||
694 | */ | 688 | */ |
695 | info = counter_arch_bp(wp); | 689 | if (debug_arch < ARM_DEBUG_ARCH_V7_1) { |
696 | info->trigger = wp->attr.bp_addr; | 690 | BUG_ON(i > 0); |
691 | info->trigger = wp->attr.bp_addr; | ||
692 | } else { | ||
693 | if (info->ctrl.len == ARM_BREAKPOINT_LEN_8) | ||
694 | alignment_mask = 0x7; | ||
695 | else | ||
696 | alignment_mask = 0x3; | ||
697 | |||
698 | /* Check if the watchpoint value matches. */ | ||
699 | val = read_wb_reg(ARM_BASE_WVR + i); | ||
700 | if (val != (addr & ~alignment_mask)) | ||
701 | goto unlock; | ||
702 | |||
703 | /* Possible match, check the byte address select. */ | ||
704 | ctrl_reg = read_wb_reg(ARM_BASE_WCR + i); | ||
705 | decode_ctrl_reg(ctrl_reg, &ctrl); | ||
706 | if (!((1 << (addr & alignment_mask)) & ctrl.len)) | ||
707 | goto unlock; | ||
708 | |||
709 | /* Check that the access type matches. */ | ||
710 | access = (fsr & ARM_FSR_ACCESS_MASK) ? HW_BREAKPOINT_W : | ||
711 | HW_BREAKPOINT_R; | ||
712 | if (!(access & hw_breakpoint_type(wp))) | ||
713 | goto unlock; | ||
714 | |||
715 | /* We have a winner. */ | ||
716 | info->trigger = addr; | ||
717 | } | ||
718 | |||
697 | pr_debug("watchpoint fired: address = 0x%x\n", info->trigger); | 719 | pr_debug("watchpoint fired: address = 0x%x\n", info->trigger); |
698 | perf_bp_event(wp, regs); | 720 | perf_bp_event(wp, regs); |
699 | 721 | ||
@@ -705,6 +727,7 @@ static void watchpoint_handler(unsigned long unknown, struct pt_regs *regs) | |||
705 | if (!wp->overflow_handler) | 727 | if (!wp->overflow_handler) |
706 | enable_single_step(wp, instruction_pointer(regs)); | 728 | enable_single_step(wp, instruction_pointer(regs)); |
707 | 729 | ||
730 | unlock: | ||
708 | rcu_read_unlock(); | 731 | rcu_read_unlock(); |
709 | } | 732 | } |
710 | } | 733 | } |
@@ -717,7 +740,7 @@ static void watchpoint_single_step_handler(unsigned long pc) | |||
717 | 740 | ||
718 | slots = (struct perf_event **)__get_cpu_var(wp_on_reg); | 741 | slots = (struct perf_event **)__get_cpu_var(wp_on_reg); |
719 | 742 | ||
720 | for (i = 0; i < core_num_reserved_brps; ++i) { | 743 | for (i = 0; i < core_num_wrps; ++i) { |
721 | rcu_read_lock(); | 744 | rcu_read_lock(); |
722 | 745 | ||
723 | wp = slots[i]; | 746 | wp = slots[i]; |
@@ -820,7 +843,7 @@ static int hw_breakpoint_pending(unsigned long addr, unsigned int fsr, | |||
820 | case ARM_ENTRY_ASYNC_WATCHPOINT: | 843 | case ARM_ENTRY_ASYNC_WATCHPOINT: |
821 | WARN(1, "Asynchronous watchpoint exception taken. Debugging results may be unreliable\n"); | 844 | WARN(1, "Asynchronous watchpoint exception taken. Debugging results may be unreliable\n"); |
822 | case ARM_ENTRY_SYNC_WATCHPOINT: | 845 | case ARM_ENTRY_SYNC_WATCHPOINT: |
823 | watchpoint_handler(addr, regs); | 846 | watchpoint_handler(addr, fsr, regs); |
824 | break; | 847 | break; |
825 | default: | 848 | default: |
826 | ret = 1; /* Unhandled fault. */ | 849 | ret = 1; /* Unhandled fault. */ |
@@ -834,11 +857,31 @@ static int hw_breakpoint_pending(unsigned long addr, unsigned int fsr, | |||
834 | /* | 857 | /* |
835 | * One-time initialisation. | 858 | * One-time initialisation. |
836 | */ | 859 | */ |
837 | static void reset_ctrl_regs(void *info) | 860 | static cpumask_t debug_err_mask; |
861 | |||
862 | static int debug_reg_trap(struct pt_regs *regs, unsigned int instr) | ||
838 | { | 863 | { |
839 | int i, cpu = smp_processor_id(); | 864 | int cpu = smp_processor_id(); |
865 | |||
866 | pr_warning("Debug register access (0x%x) caused undefined instruction on CPU %d\n", | ||
867 | instr, cpu); | ||
868 | |||
869 | /* Set the error flag for this CPU and skip the faulting instruction. */ | ||
870 | cpumask_set_cpu(cpu, &debug_err_mask); | ||
871 | instruction_pointer(regs) += 4; | ||
872 | return 0; | ||
873 | } | ||
874 | |||
875 | static struct undef_hook debug_reg_hook = { | ||
876 | .instr_mask = 0x0fe80f10, | ||
877 | .instr_val = 0x0e000e10, | ||
878 | .fn = debug_reg_trap, | ||
879 | }; | ||
880 | |||
881 | static void reset_ctrl_regs(void *unused) | ||
882 | { | ||
883 | int i, raw_num_brps, err = 0, cpu = smp_processor_id(); | ||
840 | u32 dbg_power; | 884 | u32 dbg_power; |
841 | cpumask_t *cpumask = info; | ||
842 | 885 | ||
843 | /* | 886 | /* |
844 | * v7 debug contains save and restore registers so that debug state | 887 | * v7 debug contains save and restore registers so that debug state |
@@ -848,38 +891,52 @@ static void reset_ctrl_regs(void *info) | |||
848 | * Access Register to avoid taking undefined instruction exceptions | 891 | * Access Register to avoid taking undefined instruction exceptions |
849 | * later on. | 892 | * later on. |
850 | */ | 893 | */ |
851 | if (debug_arch >= ARM_DEBUG_ARCH_V7_ECP14) { | 894 | switch (debug_arch) { |
895 | case ARM_DEBUG_ARCH_V7_ECP14: | ||
852 | /* | 896 | /* |
853 | * Ensure sticky power-down is clear (i.e. debug logic is | 897 | * Ensure sticky power-down is clear (i.e. debug logic is |
854 | * powered up). | 898 | * powered up). |
855 | */ | 899 | */ |
856 | asm volatile("mrc p14, 0, %0, c1, c5, 4" : "=r" (dbg_power)); | 900 | asm volatile("mrc p14, 0, %0, c1, c5, 4" : "=r" (dbg_power)); |
857 | if ((dbg_power & 0x1) == 0) { | 901 | if ((dbg_power & 0x1) == 0) |
858 | pr_warning("CPU %d debug is powered down!\n", cpu); | 902 | err = -EPERM; |
859 | cpumask_or(cpumask, cpumask, cpumask_of(cpu)); | 903 | break; |
860 | return; | 904 | case ARM_DEBUG_ARCH_V7_1: |
861 | } | ||
862 | |||
863 | /* | 905 | /* |
864 | * Unconditionally clear the lock by writing a value | 906 | * Ensure the OS double lock is clear. |
865 | * other than 0xC5ACCE55 to the access register. | ||
866 | */ | 907 | */ |
867 | asm volatile("mcr p14, 0, %0, c1, c0, 4" : : "r" (0)); | 908 | asm volatile("mrc p14, 0, %0, c1, c3, 4" : "=r" (dbg_power)); |
868 | isb(); | 909 | if ((dbg_power & 0x1) == 1) |
910 | err = -EPERM; | ||
911 | break; | ||
912 | } | ||
869 | 913 | ||
870 | /* | 914 | if (err) { |
871 | * Clear any configured vector-catch events before | 915 | pr_warning("CPU %d debug is powered down!\n", cpu); |
872 | * enabling monitor mode. | 916 | cpumask_or(&debug_err_mask, &debug_err_mask, cpumask_of(cpu)); |
873 | */ | 917 | return; |
874 | asm volatile("mcr p14, 0, %0, c0, c7, 0" : : "r" (0)); | ||
875 | isb(); | ||
876 | } | 918 | } |
877 | 919 | ||
920 | /* | ||
921 | * Unconditionally clear the lock by writing a value | ||
922 | * other than 0xC5ACCE55 to the access register. | ||
923 | */ | ||
924 | asm volatile("mcr p14, 0, %0, c1, c0, 4" : : "r" (0)); | ||
925 | isb(); | ||
926 | |||
927 | /* | ||
928 | * Clear any configured vector-catch events before | ||
929 | * enabling monitor mode. | ||
930 | */ | ||
931 | asm volatile("mcr p14, 0, %0, c0, c7, 0" : : "r" (0)); | ||
932 | isb(); | ||
933 | |||
878 | if (enable_monitor_mode()) | 934 | if (enable_monitor_mode()) |
879 | return; | 935 | return; |
880 | 936 | ||
881 | /* We must also reset any reserved registers. */ | 937 | /* We must also reset any reserved registers. */ |
882 | for (i = 0; i < core_num_brps + core_num_reserved_brps; ++i) { | 938 | raw_num_brps = get_num_brp_resources(); |
939 | for (i = 0; i < raw_num_brps; ++i) { | ||
883 | write_wb_reg(ARM_BASE_BCR + i, 0UL); | 940 | write_wb_reg(ARM_BASE_BCR + i, 0UL); |
884 | write_wb_reg(ARM_BASE_BVR + i, 0UL); | 941 | write_wb_reg(ARM_BASE_BVR + i, 0UL); |
885 | } | 942 | } |
@@ -895,6 +952,7 @@ static int __cpuinit dbg_reset_notify(struct notifier_block *self, | |||
895 | { | 952 | { |
896 | if (action == CPU_ONLINE) | 953 | if (action == CPU_ONLINE) |
897 | smp_call_function_single((int)cpu, reset_ctrl_regs, NULL, 1); | 954 | smp_call_function_single((int)cpu, reset_ctrl_regs, NULL, 1); |
955 | |||
898 | return NOTIFY_OK; | 956 | return NOTIFY_OK; |
899 | } | 957 | } |
900 | 958 | ||
@@ -905,7 +963,6 @@ static struct notifier_block __cpuinitdata dbg_reset_nb = { | |||
905 | static int __init arch_hw_breakpoint_init(void) | 963 | static int __init arch_hw_breakpoint_init(void) |
906 | { | 964 | { |
907 | u32 dscr; | 965 | u32 dscr; |
908 | cpumask_t cpumask = { CPU_BITS_NONE }; | ||
909 | 966 | ||
910 | debug_arch = get_debug_arch(); | 967 | debug_arch = get_debug_arch(); |
911 | 968 | ||
@@ -916,28 +973,31 @@ static int __init arch_hw_breakpoint_init(void) | |||
916 | 973 | ||
917 | /* Determine how many BRPs/WRPs are available. */ | 974 | /* Determine how many BRPs/WRPs are available. */ |
918 | core_num_brps = get_num_brps(); | 975 | core_num_brps = get_num_brps(); |
919 | core_num_reserved_brps = get_num_reserved_brps(); | ||
920 | core_num_wrps = get_num_wrps(); | 976 | core_num_wrps = get_num_wrps(); |
921 | 977 | ||
922 | pr_info("found %d breakpoint and %d watchpoint registers.\n", | 978 | /* |
923 | core_num_brps + core_num_reserved_brps, core_num_wrps); | 979 | * We need to tread carefully here because DBGSWENABLE may be |
924 | 980 | * driven low on this core and there isn't an architected way to | |
925 | if (core_num_reserved_brps) | 981 | * determine that. |
926 | pr_info("%d breakpoint(s) reserved for watchpoint " | 982 | */ |
927 | "single-step.\n", core_num_reserved_brps); | 983 | register_undef_hook(&debug_reg_hook); |
928 | 984 | ||
929 | /* | 985 | /* |
930 | * Reset the breakpoint resources. We assume that a halting | 986 | * Reset the breakpoint resources. We assume that a halting |
931 | * debugger will leave the world in a nice state for us. | 987 | * debugger will leave the world in a nice state for us. |
932 | */ | 988 | */ |
933 | on_each_cpu(reset_ctrl_regs, &cpumask, 1); | 989 | on_each_cpu(reset_ctrl_regs, NULL, 1); |
934 | if (!cpumask_empty(&cpumask)) { | 990 | unregister_undef_hook(&debug_reg_hook); |
991 | if (!cpumask_empty(&debug_err_mask)) { | ||
935 | core_num_brps = 0; | 992 | core_num_brps = 0; |
936 | core_num_reserved_brps = 0; | ||
937 | core_num_wrps = 0; | 993 | core_num_wrps = 0; |
938 | return 0; | 994 | return 0; |
939 | } | 995 | } |
940 | 996 | ||
997 | pr_info("found %d " "%s" "breakpoint and %d watchpoint registers.\n", | ||
998 | core_num_brps, core_has_mismatch_brps() ? "(+1 reserved) " : | ||
999 | "", core_num_wrps); | ||
1000 | |||
941 | ARM_DBG_READ(c1, 0, dscr); | 1001 | ARM_DBG_READ(c1, 0, dscr); |
942 | if (dscr & ARM_DSCR_HDBGEN) { | 1002 | if (dscr & ARM_DSCR_HDBGEN) { |
943 | max_watchpoint_len = 4; | 1003 | max_watchpoint_len = 4; |
diff --git a/arch/arm/kernel/kprobes-arm.c b/arch/arm/kernel/kprobes-arm.c index 79203ee1d039..9fe8910308af 100644 --- a/arch/arm/kernel/kprobes-arm.c +++ b/arch/arm/kernel/kprobes-arm.c | |||
@@ -60,6 +60,7 @@ | |||
60 | 60 | ||
61 | #include <linux/kernel.h> | 61 | #include <linux/kernel.h> |
62 | #include <linux/kprobes.h> | 62 | #include <linux/kprobes.h> |
63 | #include <linux/module.h> | ||
63 | 64 | ||
64 | #include "kprobes.h" | 65 | #include "kprobes.h" |
65 | 66 | ||
@@ -971,6 +972,9 @@ const union decode_item kprobe_decode_arm_table[] = { | |||
971 | 972 | ||
972 | DECODE_END | 973 | DECODE_END |
973 | }; | 974 | }; |
975 | #ifdef CONFIG_ARM_KPROBES_TEST_MODULE | ||
976 | EXPORT_SYMBOL_GPL(kprobe_decode_arm_table); | ||
977 | #endif | ||
974 | 978 | ||
975 | static void __kprobes arm_singlestep(struct kprobe *p, struct pt_regs *regs) | 979 | static void __kprobes arm_singlestep(struct kprobe *p, struct pt_regs *regs) |
976 | { | 980 | { |
diff --git a/arch/arm/kernel/kprobes-test-arm.c b/arch/arm/kernel/kprobes-test-arm.c new file mode 100644 index 000000000000..fc82de8bdcce --- /dev/null +++ b/arch/arm/kernel/kprobes-test-arm.c | |||
@@ -0,0 +1,1323 @@ | |||
1 | /* | ||
2 | * arch/arm/kernel/kprobes-test-arm.c | ||
3 | * | ||
4 | * Copyright (C) 2011 Jon Medhurst <tixy@yxit.co.uk>. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | #include <linux/kernel.h> | ||
12 | #include <linux/module.h> | ||
13 | |||
14 | #include "kprobes-test.h" | ||
15 | |||
16 | |||
17 | #define TEST_ISA "32" | ||
18 | |||
19 | #define TEST_ARM_TO_THUMB_INTERWORK_R(code1, reg, val, code2) \ | ||
20 | TESTCASE_START(code1 #reg code2) \ | ||
21 | TEST_ARG_REG(reg, val) \ | ||
22 | TEST_ARG_REG(14, 99f) \ | ||
23 | TEST_ARG_END("") \ | ||
24 | "50: nop \n\t" \ | ||
25 | "1: "code1 #reg code2" \n\t" \ | ||
26 | " bx lr \n\t" \ | ||
27 | ".thumb \n\t" \ | ||
28 | "3: adr lr, 2f \n\t" \ | ||
29 | " bx lr \n\t" \ | ||
30 | ".arm \n\t" \ | ||
31 | "2: nop \n\t" \ | ||
32 | TESTCASE_END | ||
33 | |||
34 | #define TEST_ARM_TO_THUMB_INTERWORK_P(code1, reg, val, code2) \ | ||
35 | TESTCASE_START(code1 #reg code2) \ | ||
36 | TEST_ARG_PTR(reg, val) \ | ||
37 | TEST_ARG_REG(14, 99f) \ | ||
38 | TEST_ARG_MEM(15, 3f+1) \ | ||
39 | TEST_ARG_END("") \ | ||
40 | "50: nop \n\t" \ | ||
41 | "1: "code1 #reg code2" \n\t" \ | ||
42 | " bx lr \n\t" \ | ||
43 | ".thumb \n\t" \ | ||
44 | "3: adr lr, 2f \n\t" \ | ||
45 | " bx lr \n\t" \ | ||
46 | ".arm \n\t" \ | ||
47 | "2: nop \n\t" \ | ||
48 | TESTCASE_END | ||
49 | |||
50 | |||
51 | void kprobe_arm_test_cases(void) | ||
52 | { | ||
53 | kprobe_test_flags = 0; | ||
54 | |||
55 | TEST_GROUP("Data-processing (register), (register-shifted register), (immediate)") | ||
56 | |||
57 | #define _DATA_PROCESSING_DNM(op,s,val) \ | ||
58 | TEST_RR( op "eq" s " r0, r",1, VAL1,", r",2, val, "") \ | ||
59 | TEST_RR( op "ne" s " r1, r",1, VAL1,", r",2, val, ", lsl #3") \ | ||
60 | TEST_RR( op "cs" s " r2, r",3, VAL1,", r",2, val, ", lsr #4") \ | ||
61 | TEST_RR( op "cc" s " r3, r",3, VAL1,", r",2, val, ", asr #5") \ | ||
62 | TEST_RR( op "mi" s " r4, r",5, VAL1,", r",2, N(val),", asr #6") \ | ||
63 | TEST_RR( op "pl" s " r5, r",5, VAL1,", r",2, val, ", ror #7") \ | ||
64 | TEST_RR( op "vs" s " r6, r",7, VAL1,", r",2, val, ", rrx") \ | ||
65 | TEST_R( op "vc" s " r6, r",7, VAL1,", pc, lsl #3") \ | ||
66 | TEST_R( op "vc" s " r6, r",7, VAL1,", sp, lsr #4") \ | ||
67 | TEST_R( op "vc" s " r6, pc, r",7, VAL1,", asr #5") \ | ||
68 | TEST_R( op "vc" s " r6, sp, r",7, VAL1,", ror #6") \ | ||
69 | TEST_RRR( op "hi" s " r8, r",9, VAL1,", r",14,val, ", lsl r",0, 3,"")\ | ||
70 | TEST_RRR( op "ls" s " r9, r",9, VAL1,", r",14,val, ", lsr r",7, 4,"")\ | ||
71 | TEST_RRR( op "ge" s " r10, r",11,VAL1,", r",14,val, ", asr r",7, 5,"")\ | ||
72 | TEST_RRR( op "lt" s " r11, r",11,VAL1,", r",14,N(val),", asr r",7, 6,"")\ | ||
73 | TEST_RR( op "gt" s " r12, r13" ", r",14,val, ", ror r",14,7,"")\ | ||
74 | TEST_RR( op "le" s " r14, r",0, val, ", r13" ", lsl r",14,8,"")\ | ||
75 | TEST_RR( op s " r12, pc" ", r",14,val, ", ror r",14,7,"")\ | ||
76 | TEST_RR( op s " r14, r",0, val, ", pc" ", lsl r",14,8,"")\ | ||
77 | TEST_R( op "eq" s " r0, r",11,VAL1,", #0xf5") \ | ||
78 | TEST_R( op "ne" s " r11, r",0, VAL1,", #0xf5000000") \ | ||
79 | TEST_R( op s " r7, r",8, VAL2,", #0x000af000") \ | ||
80 | TEST( op s " r4, pc" ", #0x00005a00") | ||
81 | |||
82 | #define DATA_PROCESSING_DNM(op,val) \ | ||
83 | _DATA_PROCESSING_DNM(op,"",val) \ | ||
84 | _DATA_PROCESSING_DNM(op,"s",val) | ||
85 | |||
86 | #define DATA_PROCESSING_NM(op,val) \ | ||
87 | TEST_RR( op "ne r",1, VAL1,", r",2, val, "") \ | ||
88 | TEST_RR( op "eq r",1, VAL1,", r",2, val, ", lsl #3") \ | ||
89 | TEST_RR( op "cc r",3, VAL1,", r",2, val, ", lsr #4") \ | ||
90 | TEST_RR( op "cs r",3, VAL1,", r",2, val, ", asr #5") \ | ||
91 | TEST_RR( op "pl r",5, VAL1,", r",2, N(val),", asr #6") \ | ||
92 | TEST_RR( op "mi r",5, VAL1,", r",2, val, ", ror #7") \ | ||
93 | TEST_RR( op "vc r",7, VAL1,", r",2, val, ", rrx") \ | ||
94 | TEST_R ( op "vs r",7, VAL1,", pc, lsl #3") \ | ||
95 | TEST_R ( op "vs r",7, VAL1,", sp, lsr #4") \ | ||
96 | TEST_R( op "vs pc, r",7, VAL1,", asr #5") \ | ||
97 | TEST_R( op "vs sp, r",7, VAL1,", ror #6") \ | ||
98 | TEST_RRR( op "ls r",9, VAL1,", r",14,val, ", lsl r",0, 3,"") \ | ||
99 | TEST_RRR( op "hi r",9, VAL1,", r",14,val, ", lsr r",7, 4,"") \ | ||
100 | TEST_RRR( op "lt r",11,VAL1,", r",14,val, ", asr r",7, 5,"") \ | ||
101 | TEST_RRR( op "ge r",11,VAL1,", r",14,N(val),", asr r",7, 6,"") \ | ||
102 | TEST_RR( op "le r13" ", r",14,val, ", ror r",14,7,"") \ | ||
103 | TEST_RR( op "gt r",0, val, ", r13" ", lsl r",14,8,"") \ | ||
104 | TEST_RR( op " pc" ", r",14,val, ", ror r",14,7,"") \ | ||
105 | TEST_RR( op " r",0, val, ", pc" ", lsl r",14,8,"") \ | ||
106 | TEST_R( op "eq r",11,VAL1,", #0xf5") \ | ||
107 | TEST_R( op "ne r",0, VAL1,", #0xf5000000") \ | ||
108 | TEST_R( op " r",8, VAL2,", #0x000af000") | ||
109 | |||
110 | #define _DATA_PROCESSING_DM(op,s,val) \ | ||
111 | TEST_R( op "eq" s " r0, r",1, val, "") \ | ||
112 | TEST_R( op "ne" s " r1, r",1, val, ", lsl #3") \ | ||
113 | TEST_R( op "cs" s " r2, r",3, val, ", lsr #4") \ | ||
114 | TEST_R( op "cc" s " r3, r",3, val, ", asr #5") \ | ||
115 | TEST_R( op "mi" s " r4, r",5, N(val),", asr #6") \ | ||
116 | TEST_R( op "pl" s " r5, r",5, val, ", ror #7") \ | ||
117 | TEST_R( op "vs" s " r6, r",10,val, ", rrx") \ | ||
118 | TEST( op "vs" s " r7, pc, lsl #3") \ | ||
119 | TEST( op "vs" s " r7, sp, lsr #4") \ | ||
120 | TEST_RR( op "vc" s " r8, r",7, val, ", lsl r",0, 3,"") \ | ||
121 | TEST_RR( op "hi" s " r9, r",9, val, ", lsr r",7, 4,"") \ | ||
122 | TEST_RR( op "ls" s " r10, r",9, val, ", asr r",7, 5,"") \ | ||
123 | TEST_RR( op "ge" s " r11, r",11,N(val),", asr r",7, 6,"") \ | ||
124 | TEST_RR( op "lt" s " r12, r",11,val, ", ror r",14,7,"") \ | ||
125 | TEST_R( op "gt" s " r14, r13" ", lsl r",14,8,"") \ | ||
126 | TEST_R( op "le" s " r14, pc" ", lsl r",14,8,"") \ | ||
127 | TEST( op "eq" s " r0, #0xf5") \ | ||
128 | TEST( op "ne" s " r11, #0xf5000000") \ | ||
129 | TEST( op s " r7, #0x000af000") \ | ||
130 | TEST( op s " r4, #0x00005a00") | ||
131 | |||
132 | #define DATA_PROCESSING_DM(op,val) \ | ||
133 | _DATA_PROCESSING_DM(op,"",val) \ | ||
134 | _DATA_PROCESSING_DM(op,"s",val) | ||
135 | |||
136 | DATA_PROCESSING_DNM("and",0xf00f00ff) | ||
137 | DATA_PROCESSING_DNM("eor",0xf00f00ff) | ||
138 | DATA_PROCESSING_DNM("sub",VAL2) | ||
139 | DATA_PROCESSING_DNM("rsb",VAL2) | ||
140 | DATA_PROCESSING_DNM("add",VAL2) | ||
141 | DATA_PROCESSING_DNM("adc",VAL2) | ||
142 | DATA_PROCESSING_DNM("sbc",VAL2) | ||
143 | DATA_PROCESSING_DNM("rsc",VAL2) | ||
144 | DATA_PROCESSING_NM("tst",0xf00f00ff) | ||
145 | DATA_PROCESSING_NM("teq",0xf00f00ff) | ||
146 | DATA_PROCESSING_NM("cmp",VAL2) | ||
147 | DATA_PROCESSING_NM("cmn",VAL2) | ||
148 | DATA_PROCESSING_DNM("orr",0xf00f00ff) | ||
149 | DATA_PROCESSING_DM("mov",VAL2) | ||
150 | DATA_PROCESSING_DNM("bic",0xf00f00ff) | ||
151 | DATA_PROCESSING_DM("mvn",VAL2) | ||
152 | |||
153 | TEST("mov ip, sp") /* This has special case emulation code */ | ||
154 | |||
155 | TEST_SUPPORTED("mov pc, #0x1000"); | ||
156 | TEST_SUPPORTED("mov sp, #0x1000"); | ||
157 | TEST_SUPPORTED("cmp pc, #0x1000"); | ||
158 | TEST_SUPPORTED("cmp sp, #0x1000"); | ||
159 | |||
160 | /* Data-processing with PC as shift*/ | ||
161 | TEST_UNSUPPORTED(".word 0xe15c0f1e @ cmp r12, r14, asl pc") | ||
162 | TEST_UNSUPPORTED(".word 0xe1a0cf1e @ mov r12, r14, asl pc") | ||
163 | TEST_UNSUPPORTED(".word 0xe08caf1e @ add r10, r12, r14, asl pc") | ||
164 | |||
165 | /* Data-processing with PC as shift*/ | ||
166 | TEST_UNSUPPORTED("movs pc, r1") | ||
167 | TEST_UNSUPPORTED("movs pc, r1, lsl r2") | ||
168 | TEST_UNSUPPORTED("movs pc, #0x10000") | ||
169 | TEST_UNSUPPORTED("adds pc, lr, r1") | ||
170 | TEST_UNSUPPORTED("adds pc, lr, r1, lsl r2") | ||
171 | TEST_UNSUPPORTED("adds pc, lr, #4") | ||
172 | |||
173 | /* Data-processing with SP as target */ | ||
174 | TEST("add sp, sp, #16") | ||
175 | TEST("sub sp, sp, #8") | ||
176 | TEST("bic sp, sp, #0x20") | ||
177 | TEST("orr sp, sp, #0x20") | ||
178 | TEST_PR( "add sp, r",10,0,", r",11,4,"") | ||
179 | TEST_PRR("add sp, r",10,0,", r",11,4,", asl r",12,1,"") | ||
180 | TEST_P( "mov sp, r",10,0,"") | ||
181 | TEST_PR( "mov sp, r",10,0,", asl r",12,0,"") | ||
182 | |||
183 | /* Data-processing with PC as target */ | ||
184 | TEST_BF( "add pc, pc, #2f-1b-8") | ||
185 | TEST_BF_R ("add pc, pc, r",14,2f-1f-8,"") | ||
186 | TEST_BF_R ("add pc, r",14,2f-1f-8,", pc") | ||
187 | TEST_BF_R ("mov pc, r",0,2f,"") | ||
188 | TEST_BF_RR("mov pc, r",0,2f,", asl r",1,0,"") | ||
189 | TEST_BB( "sub pc, pc, #1b-2b+8") | ||
190 | #if __LINUX_ARM_ARCH__ >= 6 | ||
191 | TEST_BB( "sub pc, pc, #1b-2b+8-2") /* UNPREDICTABLE before ARMv6 */ | ||
192 | #endif | ||
193 | TEST_BB_R( "sub pc, pc, r",14, 1f-2f+8,"") | ||
194 | TEST_BB_R( "rsb pc, r",14,1f-2f+8,", pc") | ||
195 | TEST_RR( "add pc, pc, r",10,-2,", asl r",11,1,"") | ||
196 | #ifdef CONFIG_THUMB2_KERNEL | ||
197 | TEST_ARM_TO_THUMB_INTERWORK_R("add pc, pc, r",0,3f-1f-8+1,"") | ||
198 | TEST_ARM_TO_THUMB_INTERWORK_R("sub pc, r",0,3f+8+1,", #8") | ||
199 | #endif | ||
200 | TEST_GROUP("Miscellaneous instructions") | ||
201 | |||
202 | TEST("mrs r0, cpsr") | ||
203 | TEST("mrspl r7, cpsr") | ||
204 | TEST("mrs r14, cpsr") | ||
205 | TEST_UNSUPPORTED(".word 0xe10ff000 @ mrs r15, cpsr") | ||
206 | TEST_UNSUPPORTED("mrs r0, spsr") | ||
207 | TEST_UNSUPPORTED("mrs lr, spsr") | ||
208 | |||
209 | TEST_UNSUPPORTED("msr cpsr, r0") | ||
210 | TEST_UNSUPPORTED("msr cpsr_f, lr") | ||
211 | TEST_UNSUPPORTED("msr spsr, r0") | ||
212 | |||
213 | TEST_BF_R("bx r",0,2f,"") | ||
214 | TEST_BB_R("bx r",7,2f,"") | ||
215 | TEST_BF_R("bxeq r",14,2f,"") | ||
216 | |||
217 | TEST_R("clz r0, r",0, 0x0,"") | ||
218 | TEST_R("clzeq r7, r",14,0x1,"") | ||
219 | TEST_R("clz lr, r",7, 0xffffffff,"") | ||
220 | TEST( "clz r4, sp") | ||
221 | TEST_UNSUPPORTED(".word 0x016fff10 @ clz pc, r0") | ||
222 | TEST_UNSUPPORTED(".word 0x016f0f1f @ clz r0, pc") | ||
223 | |||
224 | #if __LINUX_ARM_ARCH__ >= 6 | ||
225 | TEST_UNSUPPORTED("bxj r0") | ||
226 | #endif | ||
227 | |||
228 | TEST_BF_R("blx r",0,2f,"") | ||
229 | TEST_BB_R("blx r",7,2f,"") | ||
230 | TEST_BF_R("blxeq r",14,2f,"") | ||
231 | TEST_UNSUPPORTED(".word 0x0120003f @ blx pc") | ||
232 | |||
233 | TEST_RR( "qadd r0, r",1, VAL1,", r",2, VAL2,"") | ||
234 | TEST_RR( "qaddvs lr, r",9, VAL2,", r",8, VAL1,"") | ||
235 | TEST_R( "qadd lr, r",9, VAL2,", r13") | ||
236 | TEST_RR( "qsub r0, r",1, VAL1,", r",2, VAL2,"") | ||
237 | TEST_RR( "qsubvs lr, r",9, VAL2,", r",8, VAL1,"") | ||
238 | TEST_R( "qsub lr, r",9, VAL2,", r13") | ||
239 | TEST_RR( "qdadd r0, r",1, VAL1,", r",2, VAL2,"") | ||
240 | TEST_RR( "qdaddvs lr, r",9, VAL2,", r",8, VAL1,"") | ||
241 | TEST_R( "qdadd lr, r",9, VAL2,", r13") | ||
242 | TEST_RR( "qdsub r0, r",1, VAL1,", r",2, VAL2,"") | ||
243 | TEST_RR( "qdsubvs lr, r",9, VAL2,", r",8, VAL1,"") | ||
244 | TEST_R( "qdsub lr, r",9, VAL2,", r13") | ||
245 | TEST_UNSUPPORTED(".word 0xe101f050 @ qadd pc, r0, r1") | ||
246 | TEST_UNSUPPORTED(".word 0xe121f050 @ qsub pc, r0, r1") | ||
247 | TEST_UNSUPPORTED(".word 0xe141f050 @ qdadd pc, r0, r1") | ||
248 | TEST_UNSUPPORTED(".word 0xe161f050 @ qdsub pc, r0, r1") | ||
249 | TEST_UNSUPPORTED(".word 0xe16f2050 @ qdsub r2, r0, pc") | ||
250 | TEST_UNSUPPORTED(".word 0xe161205f @ qdsub r2, pc, r1") | ||
251 | |||
252 | TEST_UNSUPPORTED("bkpt 0xffff") | ||
253 | TEST_UNSUPPORTED("bkpt 0x0000") | ||
254 | |||
255 | TEST_UNSUPPORTED(".word 0xe1600070 @ smc #0") | ||
256 | |||
257 | TEST_GROUP("Halfword multiply and multiply-accumulate") | ||
258 | |||
259 | TEST_RRR( "smlabb r0, r",1, VAL1,", r",2, VAL2,", r",3, VAL3,"") | ||
260 | TEST_RRR( "smlabbge r7, r",8, VAL3,", r",9, VAL1,", r",10, VAL2,"") | ||
261 | TEST_RR( "smlabb lr, r",1, VAL2,", r",2, VAL3,", r13") | ||
262 | TEST_UNSUPPORTED(".word 0xe10f3281 @ smlabb pc, r1, r2, r3") | ||
263 | TEST_RRR( "smlatb r0, r",1, VAL1,", r",2, VAL2,", r",3, VAL3,"") | ||
264 | TEST_RRR( "smlatbge r7, r",8, VAL3,", r",9, VAL1,", r",10, VAL2,"") | ||
265 | TEST_RR( "smlatb lr, r",1, VAL2,", r",2, VAL3,", r13") | ||
266 | TEST_UNSUPPORTED(".word 0xe10f32a1 @ smlatb pc, r1, r2, r3") | ||
267 | TEST_RRR( "smlabt r0, r",1, VAL1,", r",2, VAL2,", r",3, VAL3,"") | ||
268 | TEST_RRR( "smlabtge r7, r",8, VAL3,", r",9, VAL1,", r",10, VAL2,"") | ||
269 | TEST_RR( "smlabt lr, r",1, VAL2,", r",2, VAL3,", r13") | ||
270 | TEST_UNSUPPORTED(".word 0xe10f32c1 @ smlabt pc, r1, r2, r3") | ||
271 | TEST_RRR( "smlatt r0, r",1, VAL1,", r",2, VAL2,", r",3, VAL3,"") | ||
272 | TEST_RRR( "smlattge r7, r",8, VAL3,", r",9, VAL1,", r",10, VAL2,"") | ||
273 | TEST_RR( "smlatt lr, r",1, VAL2,", r",2, VAL3,", r13") | ||
274 | TEST_UNSUPPORTED(".word 0xe10f32e1 @ smlatt pc, r1, r2, r3") | ||
275 | |||
276 | TEST_RRR( "smlawb r0, r",1, VAL1,", r",2, VAL2,", r",3, VAL3,"") | ||
277 | TEST_RRR( "smlawbge r7, r",8, VAL3,", r",9, VAL1,", r",10, VAL2,"") | ||
278 | TEST_RR( "smlawb lr, r",1, VAL2,", r",2, VAL3,", r13") | ||
279 | TEST_UNSUPPORTED(".word 0xe12f3281 @ smlawb pc, r1, r2, r3") | ||
280 | TEST_RRR( "smlawt r0, r",1, VAL1,", r",2, VAL2,", r",3, VAL3,"") | ||
281 | TEST_RRR( "smlawtge r7, r",8, VAL3,", r",9, VAL1,", r",10, VAL2,"") | ||
282 | TEST_RR( "smlawt lr, r",1, VAL2,", r",2, VAL3,", r13") | ||
283 | TEST_UNSUPPORTED(".word 0xe12f32c1 @ smlawt pc, r1, r2, r3") | ||
284 | TEST_UNSUPPORTED(".word 0xe12032cf @ smlawt r0, pc, r2, r3") | ||
285 | TEST_UNSUPPORTED(".word 0xe1203fc1 @ smlawt r0, r1, pc, r3") | ||
286 | TEST_UNSUPPORTED(".word 0xe120f2c1 @ smlawt r0, r1, r2, pc") | ||
287 | |||
288 | TEST_RR( "smulwb r0, r",1, VAL1,", r",2, VAL2,"") | ||
289 | TEST_RR( "smulwbge r7, r",8, VAL3,", r",9, VAL1,"") | ||
290 | TEST_R( "smulwb lr, r",1, VAL2,", r13") | ||
291 | TEST_UNSUPPORTED(".word 0xe12f02a1 @ smulwb pc, r1, r2") | ||
292 | TEST_RR( "smulwt r0, r",1, VAL1,", r",2, VAL2,"") | ||
293 | TEST_RR( "smulwtge r7, r",8, VAL3,", r",9, VAL1,"") | ||
294 | TEST_R( "smulwt lr, r",1, VAL2,", r13") | ||
295 | TEST_UNSUPPORTED(".word 0xe12f02e1 @ smulwt pc, r1, r2") | ||
296 | |||
297 | TEST_RRRR( "smlalbb r",0, VAL1,", r",1, VAL2,", r",2, VAL3,", r",3, VAL4) | ||
298 | TEST_RRRR( "smlalbble r",8, VAL4,", r",9, VAL1,", r",10,VAL2,", r",11,VAL3) | ||
299 | TEST_RRR( "smlalbb r",14,VAL3,", r",7, VAL4,", r",5, VAL1,", r13") | ||
300 | TEST_UNSUPPORTED(".word 0xe14f1382 @ smlalbb pc, r1, r2, r3") | ||
301 | TEST_UNSUPPORTED(".word 0xe141f382 @ smlalbb r1, pc, r2, r3") | ||
302 | TEST_RRRR( "smlaltb r",0, VAL1,", r",1, VAL2,", r",2, VAL3,", r",3, VAL4) | ||
303 | TEST_RRRR( "smlaltble r",8, VAL4,", r",9, VAL1,", r",10,VAL2,", r",11,VAL3) | ||
304 | TEST_RRR( "smlaltb r",14,VAL3,", r",7, VAL4,", r",5, VAL1,", r13") | ||
305 | TEST_UNSUPPORTED(".word 0xe14f13a2 @ smlaltb pc, r1, r2, r3") | ||
306 | TEST_UNSUPPORTED(".word 0xe141f3a2 @ smlaltb r1, pc, r2, r3") | ||
307 | TEST_RRRR( "smlalbt r",0, VAL1,", r",1, VAL2,", r",2, VAL3,", r",3, VAL4) | ||
308 | TEST_RRRR( "smlalbtle r",8, VAL4,", r",9, VAL1,", r",10,VAL2,", r",11,VAL3) | ||
309 | TEST_RRR( "smlalbt r",14,VAL3,", r",7, VAL4,", r",5, VAL1,", r13") | ||
310 | TEST_UNSUPPORTED(".word 0xe14f13c2 @ smlalbt pc, r1, r2, r3") | ||
311 | TEST_UNSUPPORTED(".word 0xe141f3c2 @ smlalbt r1, pc, r2, r3") | ||
312 | TEST_RRRR( "smlaltt r",0, VAL1,", r",1, VAL2,", r",2, VAL3,", r",3, VAL4) | ||
313 | TEST_RRRR( "smlalttle r",8, VAL4,", r",9, VAL1,", r",10,VAL2,", r",11,VAL3) | ||
314 | TEST_RRR( "smlaltt r",14,VAL3,", r",7, VAL4,", r",5, VAL1,", r13") | ||
315 | TEST_UNSUPPORTED(".word 0xe14f13e2 @ smlalbb pc, r1, r2, r3") | ||
316 | TEST_UNSUPPORTED(".word 0xe140f3e2 @ smlalbb r0, pc, r2, r3") | ||
317 | TEST_UNSUPPORTED(".word 0xe14013ef @ smlalbb r0, r1, pc, r3") | ||
318 | TEST_UNSUPPORTED(".word 0xe1401fe2 @ smlalbb r0, r1, r2, pc") | ||
319 | |||
320 | TEST_RR( "smulbb r0, r",1, VAL1,", r",2, VAL2,"") | ||
321 | TEST_RR( "smulbbge r7, r",8, VAL3,", r",9, VAL1,"") | ||
322 | TEST_R( "smulbb lr, r",1, VAL2,", r13") | ||
323 | TEST_UNSUPPORTED(".word 0xe16f0281 @ smulbb pc, r1, r2") | ||
324 | TEST_RR( "smultb r0, r",1, VAL1,", r",2, VAL2,"") | ||
325 | TEST_RR( "smultbge r7, r",8, VAL3,", r",9, VAL1,"") | ||
326 | TEST_R( "smultb lr, r",1, VAL2,", r13") | ||
327 | TEST_UNSUPPORTED(".word 0xe16f02a1 @ smultb pc, r1, r2") | ||
328 | TEST_RR( "smulbt r0, r",1, VAL1,", r",2, VAL2,"") | ||
329 | TEST_RR( "smulbtge r7, r",8, VAL3,", r",9, VAL1,"") | ||
330 | TEST_R( "smulbt lr, r",1, VAL2,", r13") | ||
331 | TEST_UNSUPPORTED(".word 0xe16f02c1 @ smultb pc, r1, r2") | ||
332 | TEST_RR( "smultt r0, r",1, VAL1,", r",2, VAL2,"") | ||
333 | TEST_RR( "smulttge r7, r",8, VAL3,", r",9, VAL1,"") | ||
334 | TEST_R( "smultt lr, r",1, VAL2,", r13") | ||
335 | TEST_UNSUPPORTED(".word 0xe16f02e1 @ smultt pc, r1, r2") | ||
336 | TEST_UNSUPPORTED(".word 0xe16002ef @ smultt r0, pc, r2") | ||
337 | TEST_UNSUPPORTED(".word 0xe1600fe1 @ smultt r0, r1, pc") | ||
338 | |||
339 | TEST_GROUP("Multiply and multiply-accumulate") | ||
340 | |||
341 | TEST_RR( "mul r0, r",1, VAL1,", r",2, VAL2,"") | ||
342 | TEST_RR( "mulls r7, r",8, VAL2,", r",9, VAL2,"") | ||
343 | TEST_R( "mul lr, r",4, VAL3,", r13") | ||
344 | TEST_UNSUPPORTED(".word 0xe00f0291 @ mul pc, r1, r2") | ||
345 | TEST_UNSUPPORTED(".word 0xe000029f @ mul r0, pc, r2") | ||
346 | TEST_UNSUPPORTED(".word 0xe0000f91 @ mul r0, r1, pc") | ||
347 | TEST_RR( "muls r0, r",1, VAL1,", r",2, VAL2,"") | ||
348 | TEST_RR( "mullss r7, r",8, VAL2,", r",9, VAL2,"") | ||
349 | TEST_R( "muls lr, r",4, VAL3,", r13") | ||
350 | TEST_UNSUPPORTED(".word 0xe01f0291 @ muls pc, r1, r2") | ||
351 | |||
352 | TEST_RRR( "mla r0, r",1, VAL1,", r",2, VAL2,", r",3, VAL3,"") | ||
353 | TEST_RRR( "mlahi r7, r",8, VAL3,", r",9, VAL1,", r",10, VAL2,"") | ||
354 | TEST_RR( "mla lr, r",1, VAL2,", r",2, VAL3,", r13") | ||
355 | TEST_UNSUPPORTED(".word 0xe02f3291 @ mla pc, r1, r2, r3") | ||
356 | TEST_RRR( "mlas r0, r",1, VAL1,", r",2, VAL2,", r",3, VAL3,"") | ||
357 | TEST_RRR( "mlahis r7, r",8, VAL3,", r",9, VAL1,", r",10, VAL2,"") | ||
358 | TEST_RR( "mlas lr, r",1, VAL2,", r",2, VAL3,", r13") | ||
359 | TEST_UNSUPPORTED(".word 0xe03f3291 @ mlas pc, r1, r2, r3") | ||
360 | |||
361 | #if __LINUX_ARM_ARCH__ >= 6 | ||
362 | TEST_RR( "umaal r0, r1, r",2, VAL1,", r",3, VAL2,"") | ||
363 | TEST_RR( "umaalls r7, r8, r",9, VAL2,", r",10, VAL1,"") | ||
364 | TEST_R( "umaal lr, r12, r",11,VAL3,", r13") | ||
365 | TEST_UNSUPPORTED(".word 0xe041f392 @ umaal pc, r1, r2, r3") | ||
366 | TEST_UNSUPPORTED(".word 0xe04f0392 @ umaal r0, pc, r2, r3") | ||
367 | TEST_UNSUPPORTED(".word 0xe0500090 @ undef") | ||
368 | TEST_UNSUPPORTED(".word 0xe05fff9f @ undef") | ||
369 | |||
370 | TEST_RRR( "mls r0, r",1, VAL1,", r",2, VAL2,", r",3, VAL3,"") | ||
371 | TEST_RRR( "mlshi r7, r",8, VAL3,", r",9, VAL1,", r",10, VAL2,"") | ||
372 | TEST_RR( "mls lr, r",1, VAL2,", r",2, VAL3,", r13") | ||
373 | TEST_UNSUPPORTED(".word 0xe06f3291 @ mls pc, r1, r2, r3") | ||
374 | TEST_UNSUPPORTED(".word 0xe060329f @ mls r0, pc, r2, r3") | ||
375 | TEST_UNSUPPORTED(".word 0xe0603f91 @ mls r0, r1, pc, r3") | ||
376 | TEST_UNSUPPORTED(".word 0xe060f291 @ mls r0, r1, r2, pc") | ||
377 | #endif | ||
378 | |||
379 | TEST_UNSUPPORTED(".word 0xe0700090 @ undef") | ||
380 | TEST_UNSUPPORTED(".word 0xe07fff9f @ undef") | ||
381 | |||
382 | TEST_RR( "umull r0, r1, r",2, VAL1,", r",3, VAL2,"") | ||
383 | TEST_RR( "umullls r7, r8, r",9, VAL2,", r",10, VAL1,"") | ||
384 | TEST_R( "umull lr, r12, r",11,VAL3,", r13") | ||
385 | TEST_UNSUPPORTED(".word 0xe081f392 @ umull pc, r1, r2, r3") | ||
386 | TEST_UNSUPPORTED(".word 0xe08f1392 @ umull r1, pc, r2, r3") | ||
387 | TEST_RR( "umulls r0, r1, r",2, VAL1,", r",3, VAL2,"") | ||
388 | TEST_RR( "umulllss r7, r8, r",9, VAL2,", r",10, VAL1,"") | ||
389 | TEST_R( "umulls lr, r12, r",11,VAL3,", r13") | ||
390 | TEST_UNSUPPORTED(".word 0xe091f392 @ umulls pc, r1, r2, r3") | ||
391 | TEST_UNSUPPORTED(".word 0xe09f1392 @ umulls r1, pc, r2, r3") | ||
392 | |||
393 | TEST_RRRR( "umlal r",0, VAL1,", r",1, VAL2,", r",2, VAL3,", r",3, VAL4) | ||
394 | TEST_RRRR( "umlalle r",8, VAL4,", r",9, VAL1,", r",10,VAL2,", r",11,VAL3) | ||
395 | TEST_RRR( "umlal r",14,VAL3,", r",7, VAL4,", r",5, VAL1,", r13") | ||
396 | TEST_UNSUPPORTED(".word 0xe0af1392 @ umlal pc, r1, r2, r3") | ||
397 | TEST_UNSUPPORTED(".word 0xe0a1f392 @ umlal r1, pc, r2, r3") | ||
398 | TEST_RRRR( "umlals r",0, VAL1,", r",1, VAL2,", r",2, VAL3,", r",3, VAL4) | ||
399 | TEST_RRRR( "umlalles r",8, VAL4,", r",9, VAL1,", r",10,VAL2,", r",11,VAL3) | ||
400 | TEST_RRR( "umlals r",14,VAL3,", r",7, VAL4,", r",5, VAL1,", r13") | ||
401 | TEST_UNSUPPORTED(".word 0xe0bf1392 @ umlals pc, r1, r2, r3") | ||
402 | TEST_UNSUPPORTED(".word 0xe0b1f392 @ umlals r1, pc, r2, r3") | ||
403 | |||
404 | TEST_RR( "smull r0, r1, r",2, VAL1,", r",3, VAL2,"") | ||
405 | TEST_RR( "smullls r7, r8, r",9, VAL2,", r",10, VAL1,"") | ||
406 | TEST_R( "smull lr, r12, r",11,VAL3,", r13") | ||
407 | TEST_UNSUPPORTED(".word 0xe0c1f392 @ smull pc, r1, r2, r3") | ||
408 | TEST_UNSUPPORTED(".word 0xe0cf1392 @ smull r1, pc, r2, r3") | ||
409 | TEST_RR( "smulls r0, r1, r",2, VAL1,", r",3, VAL2,"") | ||
410 | TEST_RR( "smulllss r7, r8, r",9, VAL2,", r",10, VAL1,"") | ||
411 | TEST_R( "smulls lr, r12, r",11,VAL3,", r13") | ||
412 | TEST_UNSUPPORTED(".word 0xe0d1f392 @ smulls pc, r1, r2, r3") | ||
413 | TEST_UNSUPPORTED(".word 0xe0df1392 @ smulls r1, pc, r2, r3") | ||
414 | |||
415 | TEST_RRRR( "smlal r",0, VAL1,", r",1, VAL2,", r",2, VAL3,", r",3, VAL4) | ||
416 | TEST_RRRR( "smlalle r",8, VAL4,", r",9, VAL1,", r",10,VAL2,", r",11,VAL3) | ||
417 | TEST_RRR( "smlal r",14,VAL3,", r",7, VAL4,", r",5, VAL1,", r13") | ||
418 | TEST_UNSUPPORTED(".word 0xe0ef1392 @ smlal pc, r1, r2, r3") | ||
419 | TEST_UNSUPPORTED(".word 0xe0e1f392 @ smlal r1, pc, r2, r3") | ||
420 | TEST_RRRR( "smlals r",0, VAL1,", r",1, VAL2,", r",2, VAL3,", r",3, VAL4) | ||
421 | TEST_RRRR( "smlalles r",8, VAL4,", r",9, VAL1,", r",10,VAL2,", r",11,VAL3) | ||
422 | TEST_RRR( "smlals r",14,VAL3,", r",7, VAL4,", r",5, VAL1,", r13") | ||
423 | TEST_UNSUPPORTED(".word 0xe0ff1392 @ smlals pc, r1, r2, r3") | ||
424 | TEST_UNSUPPORTED(".word 0xe0f0f392 @ smlals r0, pc, r2, r3") | ||
425 | TEST_UNSUPPORTED(".word 0xe0f0139f @ smlals r0, r1, pc, r3") | ||
426 | TEST_UNSUPPORTED(".word 0xe0f01f92 @ smlals r0, r1, r2, pc") | ||
427 | |||
428 | TEST_GROUP("Synchronization primitives") | ||
429 | |||
430 | /* | ||
431 | * Use hard coded constants for SWP instructions to avoid warnings | ||
432 | * about deprecated instructions. | ||
433 | */ | ||
434 | TEST_RP( ".word 0xe108e097 @ swp lr, r",7,VAL2,", [r",8,0,"]") | ||
435 | TEST_R( ".word 0x610d0091 @ swpvs r0, r",1,VAL1,", [sp]") | ||
436 | TEST_RP( ".word 0xe10cd09e @ swp sp, r",14,VAL2,", [r",12,13*4,"]") | ||
437 | TEST_UNSUPPORTED(".word 0xe102f091 @ swp pc, r1, [r2]") | ||
438 | TEST_UNSUPPORTED(".word 0xe102009f @ swp r0, pc, [r2]") | ||
439 | TEST_UNSUPPORTED(".word 0xe10f0091 @ swp r0, r1, [pc]") | ||
440 | TEST_RP( ".word 0xe148e097 @ swpb lr, r",7,VAL2,", [r",8,0,"]") | ||
441 | TEST_R( ".word 0x614d0091 @ swpvsb r0, r",1,VAL1,", [sp]") | ||
442 | TEST_UNSUPPORTED(".word 0xe142f091 @ swpb pc, r1, [r2]") | ||
443 | |||
444 | TEST_UNSUPPORTED(".word 0xe1100090") /* Unallocated space */ | ||
445 | TEST_UNSUPPORTED(".word 0xe1200090") /* Unallocated space */ | ||
446 | TEST_UNSUPPORTED(".word 0xe1300090") /* Unallocated space */ | ||
447 | TEST_UNSUPPORTED(".word 0xe1500090") /* Unallocated space */ | ||
448 | TEST_UNSUPPORTED(".word 0xe1600090") /* Unallocated space */ | ||
449 | TEST_UNSUPPORTED(".word 0xe1700090") /* Unallocated space */ | ||
450 | #if __LINUX_ARM_ARCH__ >= 6 | ||
451 | TEST_UNSUPPORTED("ldrex r2, [sp]") | ||
452 | TEST_UNSUPPORTED("strexd r0, r2, r3, [sp]") | ||
453 | TEST_UNSUPPORTED("ldrexd r2, r3, [sp]") | ||
454 | TEST_UNSUPPORTED("strexb r0, r2, [sp]") | ||
455 | TEST_UNSUPPORTED("ldrexb r2, [sp]") | ||
456 | TEST_UNSUPPORTED("strexh r0, r2, [sp]") | ||
457 | TEST_UNSUPPORTED("ldrexh r2, [sp]") | ||
458 | #endif | ||
459 | TEST_GROUP("Extra load/store instructions") | ||
460 | |||
461 | TEST_RPR( "strh r",0, VAL1,", [r",1, 48,", -r",2, 24,"]") | ||
462 | TEST_RPR( "streqh r",14,VAL2,", [r",13,0, ", r",12, 48,"]") | ||
463 | TEST_RPR( "strh r",1, VAL1,", [r",2, 24,", r",3, 48,"]!") | ||
464 | TEST_RPR( "strneh r",12,VAL2,", [r",11,48,", -r",10,24,"]!") | ||
465 | TEST_RPR( "strh r",2, VAL1,", [r",3, 24,"], r",4, 48,"") | ||
466 | TEST_RPR( "strh r",10,VAL2,", [r",9, 48,"], -r",11,24,"") | ||
467 | TEST_UNSUPPORTED(".word 0xe1afc0ba @ strh r12, [pc, r10]!") | ||
468 | TEST_UNSUPPORTED(".word 0xe089f0bb @ strh pc, [r9], r11") | ||
469 | TEST_UNSUPPORTED(".word 0xe089a0bf @ strh r10, [r9], pc") | ||
470 | |||
471 | TEST_PR( "ldrh r0, [r",0, 48,", -r",2, 24,"]") | ||
472 | TEST_PR( "ldrcsh r14, [r",13,0, ", r",12, 48,"]") | ||
473 | TEST_PR( "ldrh r1, [r",2, 24,", r",3, 48,"]!") | ||
474 | TEST_PR( "ldrcch r12, [r",11,48,", -r",10,24,"]!") | ||
475 | TEST_PR( "ldrh r2, [r",3, 24,"], r",4, 48,"") | ||
476 | TEST_PR( "ldrh r10, [r",9, 48,"], -r",11,24,"") | ||
477 | TEST_UNSUPPORTED(".word 0xe1bfc0ba @ ldrh r12, [pc, r10]!") | ||
478 | TEST_UNSUPPORTED(".word 0xe099f0bb @ ldrh pc, [r9], r11") | ||
479 | TEST_UNSUPPORTED(".word 0xe099a0bf @ ldrh r10, [r9], pc") | ||
480 | |||
481 | TEST_RP( "strh r",0, VAL1,", [r",1, 24,", #-2]") | ||
482 | TEST_RP( "strmih r",14,VAL2,", [r",13,0, ", #2]") | ||
483 | TEST_RP( "strh r",1, VAL1,", [r",2, 24,", #4]!") | ||
484 | TEST_RP( "strplh r",12,VAL2,", [r",11,24,", #-4]!") | ||
485 | TEST_RP( "strh r",2, VAL1,", [r",3, 24,"], #48") | ||
486 | TEST_RP( "strh r",10,VAL2,", [r",9, 64,"], #-48") | ||
487 | TEST_UNSUPPORTED(".word 0xe1efc3b0 @ strh r12, [pc, #48]!") | ||
488 | TEST_UNSUPPORTED(".word 0xe0c9f3b0 @ strh pc, [r9], #48") | ||
489 | |||
490 | TEST_P( "ldrh r0, [r",0, 24,", #-2]") | ||
491 | TEST_P( "ldrvsh r14, [r",13,0, ", #2]") | ||
492 | TEST_P( "ldrh r1, [r",2, 24,", #4]!") | ||
493 | TEST_P( "ldrvch r12, [r",11,24,", #-4]!") | ||
494 | TEST_P( "ldrh r2, [r",3, 24,"], #48") | ||
495 | TEST_P( "ldrh r10, [r",9, 64,"], #-48") | ||
496 | TEST( "ldrh r0, [pc, #0]") | ||
497 | TEST_UNSUPPORTED(".word 0xe1ffc3b0 @ ldrh r12, [pc, #48]!") | ||
498 | TEST_UNSUPPORTED(".word 0xe0d9f3b0 @ ldrh pc, [r9], #48") | ||
499 | |||
500 | TEST_PR( "ldrsb r0, [r",0, 48,", -r",2, 24,"]") | ||
501 | TEST_PR( "ldrhisb r14, [r",13,0,", r",12, 48,"]") | ||
502 | TEST_PR( "ldrsb r1, [r",2, 24,", r",3, 48,"]!") | ||
503 | TEST_PR( "ldrlssb r12, [r",11,48,", -r",10,24,"]!") | ||
504 | TEST_PR( "ldrsb r2, [r",3, 24,"], r",4, 48,"") | ||
505 | TEST_PR( "ldrsb r10, [r",9, 48,"], -r",11,24,"") | ||
506 | TEST_UNSUPPORTED(".word 0xe1bfc0da @ ldrsb r12, [pc, r10]!") | ||
507 | TEST_UNSUPPORTED(".word 0xe099f0db @ ldrsb pc, [r9], r11") | ||
508 | |||
509 | TEST_P( "ldrsb r0, [r",0, 24,", #-1]") | ||
510 | TEST_P( "ldrgesb r14, [r",13,0, ", #1]") | ||
511 | TEST_P( "ldrsb r1, [r",2, 24,", #4]!") | ||
512 | TEST_P( "ldrltsb r12, [r",11,24,", #-4]!") | ||
513 | TEST_P( "ldrsb r2, [r",3, 24,"], #48") | ||
514 | TEST_P( "ldrsb r10, [r",9, 64,"], #-48") | ||
515 | TEST( "ldrsb r0, [pc, #0]") | ||
516 | TEST_UNSUPPORTED(".word 0xe1ffc3d0 @ ldrsb r12, [pc, #48]!") | ||
517 | TEST_UNSUPPORTED(".word 0xe0d9f3d0 @ ldrsb pc, [r9], #48") | ||
518 | |||
519 | TEST_PR( "ldrsh r0, [r",0, 48,", -r",2, 24,"]") | ||
520 | TEST_PR( "ldrgtsh r14, [r",13,0, ", r",12, 48,"]") | ||
521 | TEST_PR( "ldrsh r1, [r",2, 24,", r",3, 48,"]!") | ||
522 | TEST_PR( "ldrlesh r12, [r",11,48,", -r",10,24,"]!") | ||
523 | TEST_PR( "ldrsh r2, [r",3, 24,"], r",4, 48,"") | ||
524 | TEST_PR( "ldrsh r10, [r",9, 48,"], -r",11,24,"") | ||
525 | TEST_UNSUPPORTED(".word 0xe1bfc0fa @ ldrsh r12, [pc, r10]!") | ||
526 | TEST_UNSUPPORTED(".word 0xe099f0fb @ ldrsh pc, [r9], r11") | ||
527 | |||
528 | TEST_P( "ldrsh r0, [r",0, 24,", #-1]") | ||
529 | TEST_P( "ldreqsh r14, [r",13,0 ,", #1]") | ||
530 | TEST_P( "ldrsh r1, [r",2, 24,", #4]!") | ||
531 | TEST_P( "ldrnesh r12, [r",11,24,", #-4]!") | ||
532 | TEST_P( "ldrsh r2, [r",3, 24,"], #48") | ||
533 | TEST_P( "ldrsh r10, [r",9, 64,"], #-48") | ||
534 | TEST( "ldrsh r0, [pc, #0]") | ||
535 | TEST_UNSUPPORTED(".word 0xe1ffc3f0 @ ldrsh r12, [pc, #48]!") | ||
536 | TEST_UNSUPPORTED(".word 0xe0d9f3f0 @ ldrsh pc, [r9], #48") | ||
537 | |||
538 | #if __LINUX_ARM_ARCH__ >= 7 | ||
539 | TEST_UNSUPPORTED("strht r1, [r2], r3") | ||
540 | TEST_UNSUPPORTED("ldrht r1, [r2], r3") | ||
541 | TEST_UNSUPPORTED("strht r1, [r2], #48") | ||
542 | TEST_UNSUPPORTED("ldrht r1, [r2], #48") | ||
543 | TEST_UNSUPPORTED("ldrsbt r1, [r2], r3") | ||
544 | TEST_UNSUPPORTED("ldrsbt r1, [r2], #48") | ||
545 | TEST_UNSUPPORTED("ldrsht r1, [r2], r3") | ||
546 | TEST_UNSUPPORTED("ldrsht r1, [r2], #48") | ||
547 | #endif | ||
548 | |||
549 | TEST_RPR( "strd r",0, VAL1,", [r",1, 48,", -r",2,24,"]") | ||
550 | TEST_RPR( "strccd r",8, VAL2,", [r",13,0, ", r",12,48,"]") | ||
551 | TEST_RPR( "strd r",4, VAL1,", [r",2, 24,", r",3, 48,"]!") | ||
552 | TEST_RPR( "strcsd r",12,VAL2,", [r",11,48,", -r",10,24,"]!") | ||
553 | TEST_RPR( "strd r",2, VAL1,", [r",3, 24,"], r",4,48,"") | ||
554 | TEST_RPR( "strd r",10,VAL2,", [r",9, 48,"], -r",7,24,"") | ||
555 | TEST_UNSUPPORTED(".word 0xe1afc0fa @ strd r12, [pc, r10]!") | ||
556 | |||
557 | TEST_PR( "ldrd r0, [r",0, 48,", -r",2,24,"]") | ||
558 | TEST_PR( "ldrmid r8, [r",13,0, ", r",12,48,"]") | ||
559 | TEST_PR( "ldrd r4, [r",2, 24,", r",3, 48,"]!") | ||
560 | TEST_PR( "ldrpld r6, [r",11,48,", -r",10,24,"]!") | ||
561 | TEST_PR( "ldrd r2, [r",5, 24,"], r",4,48,"") | ||
562 | TEST_PR( "ldrd r10, [r",9,48,"], -r",7,24,"") | ||
563 | TEST_UNSUPPORTED(".word 0xe1afc0da @ ldrd r12, [pc, r10]!") | ||
564 | TEST_UNSUPPORTED(".word 0xe089f0db @ ldrd pc, [r9], r11") | ||
565 | TEST_UNSUPPORTED(".word 0xe089e0db @ ldrd lr, [r9], r11") | ||
566 | TEST_UNSUPPORTED(".word 0xe089c0df @ ldrd r12, [r9], pc") | ||
567 | |||
568 | TEST_RP( "strd r",0, VAL1,", [r",1, 24,", #-8]") | ||
569 | TEST_RP( "strvsd r",8, VAL2,", [r",13,0, ", #8]") | ||
570 | TEST_RP( "strd r",4, VAL1,", [r",2, 24,", #16]!") | ||
571 | TEST_RP( "strvcd r",12,VAL2,", [r",11,24,", #-16]!") | ||
572 | TEST_RP( "strd r",2, VAL1,", [r",4, 24,"], #48") | ||
573 | TEST_RP( "strd r",10,VAL2,", [r",9, 64,"], #-48") | ||
574 | TEST_UNSUPPORTED(".word 0xe1efc3f0 @ strd r12, [pc, #48]!") | ||
575 | |||
576 | TEST_P( "ldrd r0, [r",0, 24,", #-8]") | ||
577 | TEST_P( "ldrhid r8, [r",13,0, ", #8]") | ||
578 | TEST_P( "ldrd r4, [r",2, 24,", #16]!") | ||
579 | TEST_P( "ldrlsd r6, [r",11,24,", #-16]!") | ||
580 | TEST_P( "ldrd r2, [r",5, 24,"], #48") | ||
581 | TEST_P( "ldrd r10, [r",9,6,"], #-48") | ||
582 | TEST_UNSUPPORTED(".word 0xe1efc3d0 @ ldrd r12, [pc, #48]!") | ||
583 | TEST_UNSUPPORTED(".word 0xe0c9f3d0 @ ldrd pc, [r9], #48") | ||
584 | TEST_UNSUPPORTED(".word 0xe0c9e3d0 @ ldrd lr, [r9], #48") | ||
585 | |||
586 | TEST_GROUP("Miscellaneous") | ||
587 | |||
588 | #if __LINUX_ARM_ARCH__ >= 7 | ||
589 | TEST("movw r0, #0") | ||
590 | TEST("movw r0, #0xffff") | ||
591 | TEST("movw lr, #0xffff") | ||
592 | TEST_UNSUPPORTED(".word 0xe300f000 @ movw pc, #0") | ||
593 | TEST_R("movt r",0, VAL1,", #0") | ||
594 | TEST_R("movt r",0, VAL2,", #0xffff") | ||
595 | TEST_R("movt r",14,VAL1,", #0xffff") | ||
596 | TEST_UNSUPPORTED(".word 0xe340f000 @ movt pc, #0") | ||
597 | #endif | ||
598 | |||
599 | TEST_UNSUPPORTED("msr cpsr, 0x13") | ||
600 | TEST_UNSUPPORTED("msr cpsr_f, 0xf0000000") | ||
601 | TEST_UNSUPPORTED("msr spsr, 0x13") | ||
602 | |||
603 | #if __LINUX_ARM_ARCH__ >= 7 | ||
604 | TEST_SUPPORTED("yield") | ||
605 | TEST("sev") | ||
606 | TEST("nop") | ||
607 | TEST("wfi") | ||
608 | TEST_SUPPORTED("wfe") | ||
609 | TEST_UNSUPPORTED("dbg #0") | ||
610 | #endif | ||
611 | |||
612 | TEST_GROUP("Load/store word and unsigned byte") | ||
613 | |||
614 | #define LOAD_STORE(byte) \ | ||
615 | TEST_RP( "str"byte" r",0, VAL1,", [r",1, 24,", #-2]") \ | ||
616 | TEST_RP( "str"byte" r",14,VAL2,", [r",13,0, ", #2]") \ | ||
617 | TEST_RP( "str"byte" r",1, VAL1,", [r",2, 24,", #4]!") \ | ||
618 | TEST_RP( "str"byte" r",12,VAL2,", [r",11,24,", #-4]!") \ | ||
619 | TEST_RP( "str"byte" r",2, VAL1,", [r",3, 24,"], #48") \ | ||
620 | TEST_RP( "str"byte" r",10,VAL2,", [r",9, 64,"], #-48") \ | ||
621 | TEST_RPR("str"byte" r",0, VAL1,", [r",1, 48,", -r",2, 24,"]") \ | ||
622 | TEST_RPR("str"byte" r",14,VAL2,", [r",13,0, ", r",12, 48,"]") \ | ||
623 | TEST_RPR("str"byte" r",1, VAL1,", [r",2, 24,", r",3, 48,"]!") \ | ||
624 | TEST_RPR("str"byte" r",12,VAL2,", [r",11,48,", -r",10,24,"]!") \ | ||
625 | TEST_RPR("str"byte" r",2, VAL1,", [r",3, 24,"], r",4, 48,"") \ | ||
626 | TEST_RPR("str"byte" r",10,VAL2,", [r",9, 48,"], -r",11,24,"") \ | ||
627 | TEST_RPR("str"byte" r",0, VAL1,", [r",1, 24,", r",2, 32,", asl #1]")\ | ||
628 | TEST_RPR("str"byte" r",14,VAL2,", [r",13,0, ", r",12, 32,", lsr #2]")\ | ||
629 | TEST_RPR("str"byte" r",1, VAL1,", [r",2, 24,", r",3, 32,", asr #3]!")\ | ||
630 | TEST_RPR("str"byte" r",12,VAL2,", [r",11,24,", r",10, 4,", ror #31]!")\ | ||
631 | TEST_P( "ldr"byte" r0, [r",0, 24,", #-2]") \ | ||
632 | TEST_P( "ldr"byte" r14, [r",13,0, ", #2]") \ | ||
633 | TEST_P( "ldr"byte" r1, [r",2, 24,", #4]!") \ | ||
634 | TEST_P( "ldr"byte" r12, [r",11,24,", #-4]!") \ | ||
635 | TEST_P( "ldr"byte" r2, [r",3, 24,"], #48") \ | ||
636 | TEST_P( "ldr"byte" r10, [r",9, 64,"], #-48") \ | ||
637 | TEST_PR( "ldr"byte" r0, [r",0, 48,", -r",2, 24,"]") \ | ||
638 | TEST_PR( "ldr"byte" r14, [r",13,0, ", r",12, 48,"]") \ | ||
639 | TEST_PR( "ldr"byte" r1, [r",2, 24,", r",3, 48,"]!") \ | ||
640 | TEST_PR( "ldr"byte" r12, [r",11,48,", -r",10,24,"]!") \ | ||
641 | TEST_PR( "ldr"byte" r2, [r",3, 24,"], r",4, 48,"") \ | ||
642 | TEST_PR( "ldr"byte" r10, [r",9, 48,"], -r",11,24,"") \ | ||
643 | TEST_PR( "ldr"byte" r0, [r",0, 24,", r",2, 32,", asl #1]") \ | ||
644 | TEST_PR( "ldr"byte" r14, [r",13,0, ", r",12, 32,", lsr #2]") \ | ||
645 | TEST_PR( "ldr"byte" r1, [r",2, 24,", r",3, 32,", asr #3]!") \ | ||
646 | TEST_PR( "ldr"byte" r12, [r",11,24,", r",10, 4,", ror #31]!") \ | ||
647 | TEST( "ldr"byte" r0, [pc, #0]") \ | ||
648 | TEST_R( "ldr"byte" r12, [pc, r",14,0,"]") | ||
649 | |||
650 | LOAD_STORE("") | ||
651 | TEST_P( "str pc, [r",0,0,", #15*4]") | ||
652 | TEST_R( "str pc, [sp, r",2,15*4,"]") | ||
653 | TEST_BF( "ldr pc, [sp, #15*4]") | ||
654 | TEST_BF_R("ldr pc, [sp, r",2,15*4,"]") | ||
655 | |||
656 | TEST_P( "str sp, [r",0,0,", #13*4]") | ||
657 | TEST_R( "str sp, [sp, r",2,13*4,"]") | ||
658 | TEST_BF( "ldr sp, [sp, #13*4]") | ||
659 | TEST_BF_R("ldr sp, [sp, r",2,13*4,"]") | ||
660 | |||
661 | #ifdef CONFIG_THUMB2_KERNEL | ||
662 | TEST_ARM_TO_THUMB_INTERWORK_P("ldr pc, [r",0,0,", #15*4]") | ||
663 | #endif | ||
664 | TEST_UNSUPPORTED(".word 0xe5af6008 @ str r6, [pc, #8]!") | ||
665 | TEST_UNSUPPORTED(".word 0xe7af6008 @ str r6, [pc, r8]!") | ||
666 | TEST_UNSUPPORTED(".word 0xe5bf6008 @ ldr r6, [pc, #8]!") | ||
667 | TEST_UNSUPPORTED(".word 0xe7bf6008 @ ldr r6, [pc, r8]!") | ||
668 | TEST_UNSUPPORTED(".word 0xe788600f @ str r6, [r8, pc]") | ||
669 | TEST_UNSUPPORTED(".word 0xe798600f @ ldr r6, [r8, pc]") | ||
670 | |||
671 | LOAD_STORE("b") | ||
672 | TEST_UNSUPPORTED(".word 0xe5f7f008 @ ldrb pc, [r7, #8]!") | ||
673 | TEST_UNSUPPORTED(".word 0xe7f7f008 @ ldrb pc, [r7, r8]!") | ||
674 | TEST_UNSUPPORTED(".word 0xe5ef6008 @ strb r6, [pc, #8]!") | ||
675 | TEST_UNSUPPORTED(".word 0xe7ef6008 @ strb r6, [pc, r3]!") | ||
676 | TEST_UNSUPPORTED(".word 0xe5ff6008 @ ldrb r6, [pc, #8]!") | ||
677 | TEST_UNSUPPORTED(".word 0xe7ff6008 @ ldrb r6, [pc, r3]!") | ||
678 | |||
679 | TEST_UNSUPPORTED("ldrt r0, [r1], #4") | ||
680 | TEST_UNSUPPORTED("ldrt r1, [r2], r3") | ||
681 | TEST_UNSUPPORTED("strt r2, [r3], #4") | ||
682 | TEST_UNSUPPORTED("strt r3, [r4], r5") | ||
683 | TEST_UNSUPPORTED("ldrbt r4, [r5], #4") | ||
684 | TEST_UNSUPPORTED("ldrbt r5, [r6], r7") | ||
685 | TEST_UNSUPPORTED("strbt r6, [r7], #4") | ||
686 | TEST_UNSUPPORTED("strbt r7, [r8], r9") | ||
687 | |||
688 | #if __LINUX_ARM_ARCH__ >= 7 | ||
689 | TEST_GROUP("Parallel addition and subtraction, signed") | ||
690 | |||
691 | TEST_UNSUPPORTED(".word 0xe6000010") /* Unallocated space */ | ||
692 | TEST_UNSUPPORTED(".word 0xe60fffff") /* Unallocated space */ | ||
693 | |||
694 | TEST_RR( "sadd16 r0, r",0, HH1,", r",1, HH2,"") | ||
695 | TEST_RR( "sadd16 r14, r",12,HH2,", r",10,HH1,"") | ||
696 | TEST_UNSUPPORTED(".word 0xe61cff1a @ sadd16 pc, r12, r10") | ||
697 | TEST_RR( "sasx r0, r",0, HH1,", r",1, HH2,"") | ||
698 | TEST_RR( "sasx r14, r",12,HH2,", r",10,HH1,"") | ||
699 | TEST_UNSUPPORTED(".word 0xe61cff3a @ sasx pc, r12, r10") | ||
700 | TEST_RR( "ssax r0, r",0, HH1,", r",1, HH2,"") | ||
701 | TEST_RR( "ssax r14, r",12,HH2,", r",10,HH1,"") | ||
702 | TEST_UNSUPPORTED(".word 0xe61cff5a @ ssax pc, r12, r10") | ||
703 | TEST_RR( "ssub16 r0, r",0, HH1,", r",1, HH2,"") | ||
704 | TEST_RR( "ssub16 r14, r",12,HH2,", r",10,HH1,"") | ||
705 | TEST_UNSUPPORTED(".word 0xe61cff7a @ ssub16 pc, r12, r10") | ||
706 | TEST_RR( "sadd8 r0, r",0, HH1,", r",1, HH2,"") | ||
707 | TEST_RR( "sadd8 r14, r",12,HH2,", r",10,HH1,"") | ||
708 | TEST_UNSUPPORTED(".word 0xe61cff9a @ sadd8 pc, r12, r10") | ||
709 | TEST_UNSUPPORTED(".word 0xe61000b0") /* Unallocated space */ | ||
710 | TEST_UNSUPPORTED(".word 0xe61fffbf") /* Unallocated space */ | ||
711 | TEST_UNSUPPORTED(".word 0xe61000d0") /* Unallocated space */ | ||
712 | TEST_UNSUPPORTED(".word 0xe61fffdf") /* Unallocated space */ | ||
713 | TEST_RR( "ssub8 r0, r",0, HH1,", r",1, HH2,"") | ||
714 | TEST_RR( "ssub8 r14, r",12,HH2,", r",10,HH1,"") | ||
715 | TEST_UNSUPPORTED(".word 0xe61cfffa @ ssub8 pc, r12, r10") | ||
716 | |||
717 | TEST_RR( "qadd16 r0, r",0, HH1,", r",1, HH2,"") | ||
718 | TEST_RR( "qadd16 r14, r",12,HH2,", r",10,HH1,"") | ||
719 | TEST_UNSUPPORTED(".word 0xe62cff1a @ qadd16 pc, r12, r10") | ||
720 | TEST_RR( "qasx r0, r",0, HH1,", r",1, HH2,"") | ||
721 | TEST_RR( "qasx r14, r",12,HH2,", r",10,HH1,"") | ||
722 | TEST_UNSUPPORTED(".word 0xe62cff3a @ qasx pc, r12, r10") | ||
723 | TEST_RR( "qsax r0, r",0, HH1,", r",1, HH2,"") | ||
724 | TEST_RR( "qsax r14, r",12,HH2,", r",10,HH1,"") | ||
725 | TEST_UNSUPPORTED(".word 0xe62cff5a @ qsax pc, r12, r10") | ||
726 | TEST_RR( "qsub16 r0, r",0, HH1,", r",1, HH2,"") | ||
727 | TEST_RR( "qsub16 r14, r",12,HH2,", r",10,HH1,"") | ||
728 | TEST_UNSUPPORTED(".word 0xe62cff7a @ qsub16 pc, r12, r10") | ||
729 | TEST_RR( "qadd8 r0, r",0, HH1,", r",1, HH2,"") | ||
730 | TEST_RR( "qadd8 r14, r",12,HH2,", r",10,HH1,"") | ||
731 | TEST_UNSUPPORTED(".word 0xe62cff9a @ qadd8 pc, r12, r10") | ||
732 | TEST_UNSUPPORTED(".word 0xe62000b0") /* Unallocated space */ | ||
733 | TEST_UNSUPPORTED(".word 0xe62fffbf") /* Unallocated space */ | ||
734 | TEST_UNSUPPORTED(".word 0xe62000d0") /* Unallocated space */ | ||
735 | TEST_UNSUPPORTED(".word 0xe62fffdf") /* Unallocated space */ | ||
736 | TEST_RR( "qsub8 r0, r",0, HH1,", r",1, HH2,"") | ||
737 | TEST_RR( "qsub8 r14, r",12,HH2,", r",10,HH1,"") | ||
738 | TEST_UNSUPPORTED(".word 0xe62cfffa @ qsub8 pc, r12, r10") | ||
739 | |||
740 | TEST_RR( "shadd16 r0, r",0, HH1,", r",1, HH2,"") | ||
741 | TEST_RR( "shadd16 r14, r",12,HH2,", r",10,HH1,"") | ||
742 | TEST_UNSUPPORTED(".word 0xe63cff1a @ shadd16 pc, r12, r10") | ||
743 | TEST_RR( "shasx r0, r",0, HH1,", r",1, HH2,"") | ||
744 | TEST_RR( "shasx r14, r",12,HH2,", r",10,HH1,"") | ||
745 | TEST_UNSUPPORTED(".word 0xe63cff3a @ shasx pc, r12, r10") | ||
746 | TEST_RR( "shsax r0, r",0, HH1,", r",1, HH2,"") | ||
747 | TEST_RR( "shsax r14, r",12,HH2,", r",10,HH1,"") | ||
748 | TEST_UNSUPPORTED(".word 0xe63cff5a @ shsax pc, r12, r10") | ||
749 | TEST_RR( "shsub16 r0, r",0, HH1,", r",1, HH2,"") | ||
750 | TEST_RR( "shsub16 r14, r",12,HH2,", r",10,HH1,"") | ||
751 | TEST_UNSUPPORTED(".word 0xe63cff7a @ shsub16 pc, r12, r10") | ||
752 | TEST_RR( "shadd8 r0, r",0, HH1,", r",1, HH2,"") | ||
753 | TEST_RR( "shadd8 r14, r",12,HH2,", r",10,HH1,"") | ||
754 | TEST_UNSUPPORTED(".word 0xe63cff9a @ shadd8 pc, r12, r10") | ||
755 | TEST_UNSUPPORTED(".word 0xe63000b0") /* Unallocated space */ | ||
756 | TEST_UNSUPPORTED(".word 0xe63fffbf") /* Unallocated space */ | ||
757 | TEST_UNSUPPORTED(".word 0xe63000d0") /* Unallocated space */ | ||
758 | TEST_UNSUPPORTED(".word 0xe63fffdf") /* Unallocated space */ | ||
759 | TEST_RR( "shsub8 r0, r",0, HH1,", r",1, HH2,"") | ||
760 | TEST_RR( "shsub8 r14, r",12,HH2,", r",10,HH1,"") | ||
761 | TEST_UNSUPPORTED(".word 0xe63cfffa @ shsub8 pc, r12, r10") | ||
762 | |||
763 | TEST_GROUP("Parallel addition and subtraction, unsigned") | ||
764 | |||
765 | TEST_UNSUPPORTED(".word 0xe6400010") /* Unallocated space */ | ||
766 | TEST_UNSUPPORTED(".word 0xe64fffff") /* Unallocated space */ | ||
767 | |||
768 | TEST_RR( "uadd16 r0, r",0, HH1,", r",1, HH2,"") | ||
769 | TEST_RR( "uadd16 r14, r",12,HH2,", r",10,HH1,"") | ||
770 | TEST_UNSUPPORTED(".word 0xe65cff1a @ uadd16 pc, r12, r10") | ||
771 | TEST_RR( "uasx r0, r",0, HH1,", r",1, HH2,"") | ||
772 | TEST_RR( "uasx r14, r",12,HH2,", r",10,HH1,"") | ||
773 | TEST_UNSUPPORTED(".word 0xe65cff3a @ uasx pc, r12, r10") | ||
774 | TEST_RR( "usax r0, r",0, HH1,", r",1, HH2,"") | ||
775 | TEST_RR( "usax r14, r",12,HH2,", r",10,HH1,"") | ||
776 | TEST_UNSUPPORTED(".word 0xe65cff5a @ usax pc, r12, r10") | ||
777 | TEST_RR( "usub16 r0, r",0, HH1,", r",1, HH2,"") | ||
778 | TEST_RR( "usub16 r14, r",12,HH2,", r",10,HH1,"") | ||
779 | TEST_UNSUPPORTED(".word 0xe65cff7a @ usub16 pc, r12, r10") | ||
780 | TEST_RR( "uadd8 r0, r",0, HH1,", r",1, HH2,"") | ||
781 | TEST_RR( "uadd8 r14, r",12,HH2,", r",10,HH1,"") | ||
782 | TEST_UNSUPPORTED(".word 0xe65cff9a @ uadd8 pc, r12, r10") | ||
783 | TEST_UNSUPPORTED(".word 0xe65000b0") /* Unallocated space */ | ||
784 | TEST_UNSUPPORTED(".word 0xe65fffbf") /* Unallocated space */ | ||
785 | TEST_UNSUPPORTED(".word 0xe65000d0") /* Unallocated space */ | ||
786 | TEST_UNSUPPORTED(".word 0xe65fffdf") /* Unallocated space */ | ||
787 | TEST_RR( "usub8 r0, r",0, HH1,", r",1, HH2,"") | ||
788 | TEST_RR( "usub8 r14, r",12,HH2,", r",10,HH1,"") | ||
789 | TEST_UNSUPPORTED(".word 0xe65cfffa @ usub8 pc, r12, r10") | ||
790 | |||
791 | TEST_RR( "uqadd16 r0, r",0, HH1,", r",1, HH2,"") | ||
792 | TEST_RR( "uqadd16 r14, r",12,HH2,", r",10,HH1,"") | ||
793 | TEST_UNSUPPORTED(".word 0xe66cff1a @ uqadd16 pc, r12, r10") | ||
794 | TEST_RR( "uqasx r0, r",0, HH1,", r",1, HH2,"") | ||
795 | TEST_RR( "uqasx r14, r",12,HH2,", r",10,HH1,"") | ||
796 | TEST_UNSUPPORTED(".word 0xe66cff3a @ uqasx pc, r12, r10") | ||
797 | TEST_RR( "uqsax r0, r",0, HH1,", r",1, HH2,"") | ||
798 | TEST_RR( "uqsax r14, r",12,HH2,", r",10,HH1,"") | ||
799 | TEST_UNSUPPORTED(".word 0xe66cff5a @ uqsax pc, r12, r10") | ||
800 | TEST_RR( "uqsub16 r0, r",0, HH1,", r",1, HH2,"") | ||
801 | TEST_RR( "uqsub16 r14, r",12,HH2,", r",10,HH1,"") | ||
802 | TEST_UNSUPPORTED(".word 0xe66cff7a @ uqsub16 pc, r12, r10") | ||
803 | TEST_RR( "uqadd8 r0, r",0, HH1,", r",1, HH2,"") | ||
804 | TEST_RR( "uqadd8 r14, r",12,HH2,", r",10,HH1,"") | ||
805 | TEST_UNSUPPORTED(".word 0xe66cff9a @ uqadd8 pc, r12, r10") | ||
806 | TEST_UNSUPPORTED(".word 0xe66000b0") /* Unallocated space */ | ||
807 | TEST_UNSUPPORTED(".word 0xe66fffbf") /* Unallocated space */ | ||
808 | TEST_UNSUPPORTED(".word 0xe66000d0") /* Unallocated space */ | ||
809 | TEST_UNSUPPORTED(".word 0xe66fffdf") /* Unallocated space */ | ||
810 | TEST_RR( "uqsub8 r0, r",0, HH1,", r",1, HH2,"") | ||
811 | TEST_RR( "uqsub8 r14, r",12,HH2,", r",10,HH1,"") | ||
812 | TEST_UNSUPPORTED(".word 0xe66cfffa @ uqsub8 pc, r12, r10") | ||
813 | |||
814 | TEST_RR( "uhadd16 r0, r",0, HH1,", r",1, HH2,"") | ||
815 | TEST_RR( "uhadd16 r14, r",12,HH2,", r",10,HH1,"") | ||
816 | TEST_UNSUPPORTED(".word 0xe67cff1a @ uhadd16 pc, r12, r10") | ||
817 | TEST_RR( "uhasx r0, r",0, HH1,", r",1, HH2,"") | ||
818 | TEST_RR( "uhasx r14, r",12,HH2,", r",10,HH1,"") | ||
819 | TEST_UNSUPPORTED(".word 0xe67cff3a @ uhasx pc, r12, r10") | ||
820 | TEST_RR( "uhsax r0, r",0, HH1,", r",1, HH2,"") | ||
821 | TEST_RR( "uhsax r14, r",12,HH2,", r",10,HH1,"") | ||
822 | TEST_UNSUPPORTED(".word 0xe67cff5a @ uhsax pc, r12, r10") | ||
823 | TEST_RR( "uhsub16 r0, r",0, HH1,", r",1, HH2,"") | ||
824 | TEST_RR( "uhsub16 r14, r",12,HH2,", r",10,HH1,"") | ||
825 | TEST_UNSUPPORTED(".word 0xe67cff7a @ uhsub16 pc, r12, r10") | ||
826 | TEST_RR( "uhadd8 r0, r",0, HH1,", r",1, HH2,"") | ||
827 | TEST_RR( "uhadd8 r14, r",12,HH2,", r",10,HH1,"") | ||
828 | TEST_UNSUPPORTED(".word 0xe67cff9a @ uhadd8 pc, r12, r10") | ||
829 | TEST_UNSUPPORTED(".word 0xe67000b0") /* Unallocated space */ | ||
830 | TEST_UNSUPPORTED(".word 0xe67fffbf") /* Unallocated space */ | ||
831 | TEST_UNSUPPORTED(".word 0xe67000d0") /* Unallocated space */ | ||
832 | TEST_UNSUPPORTED(".word 0xe67fffdf") /* Unallocated space */ | ||
833 | TEST_RR( "uhsub8 r0, r",0, HH1,", r",1, HH2,"") | ||
834 | TEST_RR( "uhsub8 r14, r",12,HH2,", r",10,HH1,"") | ||
835 | TEST_UNSUPPORTED(".word 0xe67cfffa @ uhsub8 pc, r12, r10") | ||
836 | TEST_UNSUPPORTED(".word 0xe67feffa @ uhsub8 r14, pc, r10") | ||
837 | TEST_UNSUPPORTED(".word 0xe67cefff @ uhsub8 r14, r12, pc") | ||
838 | #endif /* __LINUX_ARM_ARCH__ >= 7 */ | ||
839 | |||
840 | #if __LINUX_ARM_ARCH__ >= 6 | ||
841 | TEST_GROUP("Packing, unpacking, saturation, and reversal") | ||
842 | |||
843 | TEST_RR( "pkhbt r0, r",0, HH1,", r",1, HH2,"") | ||
844 | TEST_RR( "pkhbt r14,r",12, HH1,", r",10,HH2,", lsl #2") | ||
845 | TEST_UNSUPPORTED(".word 0xe68cf11a @ pkhbt pc, r12, r10, lsl #2") | ||
846 | TEST_RR( "pkhtb r0, r",0, HH1,", r",1, HH2,"") | ||
847 | TEST_RR( "pkhtb r14,r",12, HH1,", r",10,HH2,", asr #2") | ||
848 | TEST_UNSUPPORTED(".word 0xe68cf15a @ pkhtb pc, r12, r10, asr #2") | ||
849 | TEST_UNSUPPORTED(".word 0xe68fe15a @ pkhtb r14, pc, r10, asr #2") | ||
850 | TEST_UNSUPPORTED(".word 0xe68ce15f @ pkhtb r14, r12, pc, asr #2") | ||
851 | TEST_UNSUPPORTED(".word 0xe6900010") /* Unallocated space */ | ||
852 | TEST_UNSUPPORTED(".word 0xe69fffdf") /* Unallocated space */ | ||
853 | |||
854 | TEST_R( "ssat r0, #24, r",0, VAL1,"") | ||
855 | TEST_R( "ssat r14, #24, r",12, VAL2,"") | ||
856 | TEST_R( "ssat r0, #24, r",0, VAL1,", lsl #8") | ||
857 | TEST_R( "ssat r14, #24, r",12, VAL2,", asr #8") | ||
858 | TEST_UNSUPPORTED(".word 0xe6b7f01c @ ssat pc, #24, r12") | ||
859 | |||
860 | TEST_R( "usat r0, #24, r",0, VAL1,"") | ||
861 | TEST_R( "usat r14, #24, r",12, VAL2,"") | ||
862 | TEST_R( "usat r0, #24, r",0, VAL1,", lsl #8") | ||
863 | TEST_R( "usat r14, #24, r",12, VAL2,", asr #8") | ||
864 | TEST_UNSUPPORTED(".word 0xe6f7f01c @ usat pc, #24, r12") | ||
865 | |||
866 | TEST_RR( "sxtab16 r0, r",0, HH1,", r",1, HH2,"") | ||
867 | TEST_RR( "sxtab16 r14,r",12, HH2,", r",10,HH1,", ror #8") | ||
868 | TEST_R( "sxtb16 r8, r",7, HH1,"") | ||
869 | TEST_UNSUPPORTED(".word 0xe68cf47a @ sxtab16 pc,r12, r10, ror #8") | ||
870 | |||
871 | TEST_RR( "sel r0, r",0, VAL1,", r",1, VAL2,"") | ||
872 | TEST_RR( "sel r14, r",12,VAL1,", r",10, VAL2,"") | ||
873 | TEST_UNSUPPORTED(".word 0xe68cffba @ sel pc, r12, r10") | ||
874 | TEST_UNSUPPORTED(".word 0xe68fefba @ sel r14, pc, r10") | ||
875 | TEST_UNSUPPORTED(".word 0xe68cefbf @ sel r14, r12, pc") | ||
876 | |||
877 | TEST_R( "ssat16 r0, #12, r",0, HH1,"") | ||
878 | TEST_R( "ssat16 r14, #12, r",12, HH2,"") | ||
879 | TEST_UNSUPPORTED(".word 0xe6abff3c @ ssat16 pc, #12, r12") | ||
880 | |||
881 | TEST_RR( "sxtab r0, r",0, HH1,", r",1, HH2,"") | ||
882 | TEST_RR( "sxtab r14,r",12, HH2,", r",10,HH1,", ror #8") | ||
883 | TEST_R( "sxtb r8, r",7, HH1,"") | ||
884 | TEST_UNSUPPORTED(".word 0xe6acf47a @ sxtab pc,r12, r10, ror #8") | ||
885 | |||
886 | TEST_R( "rev r0, r",0, VAL1,"") | ||
887 | TEST_R( "rev r14, r",12, VAL2,"") | ||
888 | TEST_UNSUPPORTED(".word 0xe6bfff3c @ rev pc, r12") | ||
889 | |||
890 | TEST_RR( "sxtah r0, r",0, HH1,", r",1, HH2,"") | ||
891 | TEST_RR( "sxtah r14,r",12, HH2,", r",10,HH1,", ror #8") | ||
892 | TEST_R( "sxth r8, r",7, HH1,"") | ||
893 | TEST_UNSUPPORTED(".word 0xe6bcf47a @ sxtah pc,r12, r10, ror #8") | ||
894 | |||
895 | TEST_R( "rev16 r0, r",0, VAL1,"") | ||
896 | TEST_R( "rev16 r14, r",12, VAL2,"") | ||
897 | TEST_UNSUPPORTED(".word 0xe6bfffbc @ rev16 pc, r12") | ||
898 | |||
899 | TEST_RR( "uxtab16 r0, r",0, HH1,", r",1, HH2,"") | ||
900 | TEST_RR( "uxtab16 r14,r",12, HH2,", r",10,HH1,", ror #8") | ||
901 | TEST_R( "uxtb16 r8, r",7, HH1,"") | ||
902 | TEST_UNSUPPORTED(".word 0xe6ccf47a @ uxtab16 pc,r12, r10, ror #8") | ||
903 | |||
904 | TEST_R( "usat16 r0, #12, r",0, HH1,"") | ||
905 | TEST_R( "usat16 r14, #12, r",12, HH2,"") | ||
906 | TEST_UNSUPPORTED(".word 0xe6ecff3c @ usat16 pc, #12, r12") | ||
907 | TEST_UNSUPPORTED(".word 0xe6ecef3f @ usat16 r14, #12, pc") | ||
908 | |||
909 | TEST_RR( "uxtab r0, r",0, HH1,", r",1, HH2,"") | ||
910 | TEST_RR( "uxtab r14,r",12, HH2,", r",10,HH1,", ror #8") | ||
911 | TEST_R( "uxtb r8, r",7, HH1,"") | ||
912 | TEST_UNSUPPORTED(".word 0xe6ecf47a @ uxtab pc,r12, r10, ror #8") | ||
913 | |||
914 | #if __LINUX_ARM_ARCH__ >= 7 | ||
915 | TEST_R( "rbit r0, r",0, VAL1,"") | ||
916 | TEST_R( "rbit r14, r",12, VAL2,"") | ||
917 | TEST_UNSUPPORTED(".word 0xe6ffff3c @ rbit pc, r12") | ||
918 | #endif | ||
919 | |||
920 | TEST_RR( "uxtah r0, r",0, HH1,", r",1, HH2,"") | ||
921 | TEST_RR( "uxtah r14,r",12, HH2,", r",10,HH1,", ror #8") | ||
922 | TEST_R( "uxth r8, r",7, HH1,"") | ||
923 | TEST_UNSUPPORTED(".word 0xe6fff077 @ uxth pc, r7") | ||
924 | TEST_UNSUPPORTED(".word 0xe6ff807f @ uxth r8, pc") | ||
925 | TEST_UNSUPPORTED(".word 0xe6fcf47a @ uxtah pc, r12, r10, ror #8") | ||
926 | TEST_UNSUPPORTED(".word 0xe6fce47f @ uxtah r14, r12, pc, ror #8") | ||
927 | |||
928 | TEST_R( "revsh r0, r",0, VAL1,"") | ||
929 | TEST_R( "revsh r14, r",12, VAL2,"") | ||
930 | TEST_UNSUPPORTED(".word 0xe6ffff3c @ revsh pc, r12") | ||
931 | TEST_UNSUPPORTED(".word 0xe6ffef3f @ revsh r14, pc") | ||
932 | |||
933 | TEST_UNSUPPORTED(".word 0xe6900070") /* Unallocated space */ | ||
934 | TEST_UNSUPPORTED(".word 0xe69fff7f") /* Unallocated space */ | ||
935 | |||
936 | TEST_UNSUPPORTED(".word 0xe6d00070") /* Unallocated space */ | ||
937 | TEST_UNSUPPORTED(".word 0xe6dfff7f") /* Unallocated space */ | ||
938 | #endif /* __LINUX_ARM_ARCH__ >= 6 */ | ||
939 | |||
940 | #if __LINUX_ARM_ARCH__ >= 6 | ||
941 | TEST_GROUP("Signed multiplies") | ||
942 | |||
943 | TEST_RRR( "smlad r0, r",0, HH1,", r",1, HH2,", r",2, VAL1,"") | ||
944 | TEST_RRR( "smlad r14, r",12,HH2,", r",10,HH1,", r",8, VAL2,"") | ||
945 | TEST_UNSUPPORTED(".word 0xe70f8a1c @ smlad pc, r12, r10, r8") | ||
946 | TEST_RRR( "smladx r0, r",0, HH1,", r",1, HH2,", r",2, VAL1,"") | ||
947 | TEST_RRR( "smladx r14, r",12,HH2,", r",10,HH1,", r",8, VAL2,"") | ||
948 | TEST_UNSUPPORTED(".word 0xe70f8a3c @ smladx pc, r12, r10, r8") | ||
949 | |||
950 | TEST_RR( "smuad r0, r",0, HH1,", r",1, HH2,"") | ||
951 | TEST_RR( "smuad r14, r",12,HH2,", r",10,HH1,"") | ||
952 | TEST_UNSUPPORTED(".word 0xe70ffa1c @ smuad pc, r12, r10") | ||
953 | TEST_RR( "smuadx r0, r",0, HH1,", r",1, HH2,"") | ||
954 | TEST_RR( "smuadx r14, r",12,HH2,", r",10,HH1,"") | ||
955 | TEST_UNSUPPORTED(".word 0xe70ffa3c @ smuadx pc, r12, r10") | ||
956 | |||
957 | TEST_RRR( "smlsd r0, r",0, HH1,", r",1, HH2,", r",2, VAL1,"") | ||
958 | TEST_RRR( "smlsd r14, r",12,HH2,", r",10,HH1,", r",8, VAL2,"") | ||
959 | TEST_UNSUPPORTED(".word 0xe70f8a5c @ smlsd pc, r12, r10, r8") | ||
960 | TEST_RRR( "smlsdx r0, r",0, HH1,", r",1, HH2,", r",2, VAL1,"") | ||
961 | TEST_RRR( "smlsdx r14, r",12,HH2,", r",10,HH1,", r",8, VAL2,"") | ||
962 | TEST_UNSUPPORTED(".word 0xe70f8a7c @ smlsdx pc, r12, r10, r8") | ||
963 | |||
964 | TEST_RR( "smusd r0, r",0, HH1,", r",1, HH2,"") | ||
965 | TEST_RR( "smusd r14, r",12,HH2,", r",10,HH1,"") | ||
966 | TEST_UNSUPPORTED(".word 0xe70ffa5c @ smusd pc, r12, r10") | ||
967 | TEST_RR( "smusdx r0, r",0, HH1,", r",1, HH2,"") | ||
968 | TEST_RR( "smusdx r14, r",12,HH2,", r",10,HH1,"") | ||
969 | TEST_UNSUPPORTED(".word 0xe70ffa7c @ smusdx pc, r12, r10") | ||
970 | |||
971 | TEST_RRRR( "smlald r",0, VAL1,", r",1, VAL2, ", r",0, HH1,", r",1, HH2) | ||
972 | TEST_RRRR( "smlald r",11,VAL2,", r",10,VAL1, ", r",9, HH2,", r",8, HH1) | ||
973 | TEST_UNSUPPORTED(".word 0xe74af819 @ smlald pc, r10, r9, r8") | ||
974 | TEST_UNSUPPORTED(".word 0xe74fb819 @ smlald r11, pc, r9, r8") | ||
975 | TEST_UNSUPPORTED(".word 0xe74ab81f @ smlald r11, r10, pc, r8") | ||
976 | TEST_UNSUPPORTED(".word 0xe74abf19 @ smlald r11, r10, r9, pc") | ||
977 | |||
978 | TEST_RRRR( "smlaldx r",0, VAL1,", r",1, VAL2, ", r",0, HH1,", r",1, HH2) | ||
979 | TEST_RRRR( "smlaldx r",11,VAL2,", r",10,VAL1, ", r",9, HH2,", r",8, HH1) | ||
980 | TEST_UNSUPPORTED(".word 0xe74af839 @ smlaldx pc, r10, r9, r8") | ||
981 | TEST_UNSUPPORTED(".word 0xe74fb839 @ smlaldx r11, pc, r9, r8") | ||
982 | |||
983 | TEST_RRR( "smmla r0, r",0, VAL1,", r",1, VAL2,", r",2, VAL1,"") | ||
984 | TEST_RRR( "smmla r14, r",12,VAL2,", r",10,VAL1,", r",8, VAL2,"") | ||
985 | TEST_UNSUPPORTED(".word 0xe75f8a1c @ smmla pc, r12, r10, r8") | ||
986 | TEST_RRR( "smmlar r0, r",0, VAL1,", r",1, VAL2,", r",2, VAL1,"") | ||
987 | TEST_RRR( "smmlar r14, r",12,VAL2,", r",10,VAL1,", r",8, VAL2,"") | ||
988 | TEST_UNSUPPORTED(".word 0xe75f8a3c @ smmlar pc, r12, r10, r8") | ||
989 | |||
990 | TEST_RR( "smmul r0, r",0, VAL1,", r",1, VAL2,"") | ||
991 | TEST_RR( "smmul r14, r",12,VAL2,", r",10,VAL1,"") | ||
992 | TEST_UNSUPPORTED(".word 0xe75ffa1c @ smmul pc, r12, r10") | ||
993 | TEST_RR( "smmulr r0, r",0, VAL1,", r",1, VAL2,"") | ||
994 | TEST_RR( "smmulr r14, r",12,VAL2,", r",10,VAL1,"") | ||
995 | TEST_UNSUPPORTED(".word 0xe75ffa3c @ smmulr pc, r12, r10") | ||
996 | |||
997 | TEST_RRR( "smmls r0, r",0, VAL1,", r",1, VAL2,", r",2, VAL1,"") | ||
998 | TEST_RRR( "smmls r14, r",12,VAL2,", r",10,VAL1,", r",8, VAL2,"") | ||
999 | TEST_UNSUPPORTED(".word 0xe75f8adc @ smmls pc, r12, r10, r8") | ||
1000 | TEST_RRR( "smmlsr r0, r",0, VAL1,", r",1, VAL2,", r",2, VAL1,"") | ||
1001 | TEST_RRR( "smmlsr r14, r",12,VAL2,", r",10,VAL1,", r",8, VAL2,"") | ||
1002 | TEST_UNSUPPORTED(".word 0xe75f8afc @ smmlsr pc, r12, r10, r8") | ||
1003 | TEST_UNSUPPORTED(".word 0xe75e8aff @ smmlsr r14, pc, r10, r8") | ||
1004 | TEST_UNSUPPORTED(".word 0xe75e8ffc @ smmlsr r14, r12, pc, r8") | ||
1005 | TEST_UNSUPPORTED(".word 0xe75efafc @ smmlsr r14, r12, r10, pc") | ||
1006 | |||
1007 | TEST_RR( "usad8 r0, r",0, VAL1,", r",1, VAL2,"") | ||
1008 | TEST_RR( "usad8 r14, r",12,VAL2,", r",10,VAL1,"") | ||
1009 | TEST_UNSUPPORTED(".word 0xe75ffa1c @ usad8 pc, r12, r10") | ||
1010 | TEST_UNSUPPORTED(".word 0xe75efa1f @ usad8 r14, pc, r10") | ||
1011 | TEST_UNSUPPORTED(".word 0xe75eff1c @ usad8 r14, r12, pc") | ||
1012 | |||
1013 | TEST_RRR( "usada8 r0, r",0, VAL1,", r",1, VAL2,", r",2, VAL3,"") | ||
1014 | TEST_RRR( "usada8 r14, r",12,VAL2,", r",10,VAL1,", r",8, VAL3,"") | ||
1015 | TEST_UNSUPPORTED(".word 0xe78f8a1c @ usada8 pc, r12, r10, r8") | ||
1016 | TEST_UNSUPPORTED(".word 0xe78e8a1f @ usada8 r14, pc, r10, r8") | ||
1017 | TEST_UNSUPPORTED(".word 0xe78e8f1c @ usada8 r14, r12, pc, r8") | ||
1018 | #endif /* __LINUX_ARM_ARCH__ >= 6 */ | ||
1019 | |||
1020 | #if __LINUX_ARM_ARCH__ >= 7 | ||
1021 | TEST_GROUP("Bit Field") | ||
1022 | |||
1023 | TEST_R( "sbfx r0, r",0 , VAL1,", #0, #31") | ||
1024 | TEST_R( "sbfxeq r14, r",12, VAL2,", #8, #16") | ||
1025 | TEST_R( "sbfx r4, r",10, VAL1,", #16, #15") | ||
1026 | TEST_UNSUPPORTED(".word 0xe7aff45c @ sbfx pc, r12, #8, #16") | ||
1027 | |||
1028 | TEST_R( "ubfx r0, r",0 , VAL1,", #0, #31") | ||
1029 | TEST_R( "ubfxcs r14, r",12, VAL2,", #8, #16") | ||
1030 | TEST_R( "ubfx r4, r",10, VAL1,", #16, #15") | ||
1031 | TEST_UNSUPPORTED(".word 0xe7eff45c @ ubfx pc, r12, #8, #16") | ||
1032 | TEST_UNSUPPORTED(".word 0xe7efc45f @ ubfx r12, pc, #8, #16") | ||
1033 | |||
1034 | TEST_R( "bfc r",0, VAL1,", #4, #20") | ||
1035 | TEST_R( "bfcvs r",14,VAL2,", #4, #20") | ||
1036 | TEST_R( "bfc r",7, VAL1,", #0, #31") | ||
1037 | TEST_R( "bfc r",8, VAL2,", #0, #31") | ||
1038 | TEST_UNSUPPORTED(".word 0xe7def01f @ bfc pc, #0, #31"); | ||
1039 | |||
1040 | TEST_RR( "bfi r",0, VAL1,", r",0 , VAL2,", #0, #31") | ||
1041 | TEST_RR( "bfipl r",12,VAL1,", r",14 , VAL2,", #4, #20") | ||
1042 | TEST_UNSUPPORTED(".word 0xe7d7f21e @ bfi pc, r14, #4, #20") | ||
1043 | |||
1044 | TEST_UNSUPPORTED(".word 0x07f000f0") /* Permanently UNDEFINED */ | ||
1045 | TEST_UNSUPPORTED(".word 0x07ffffff") /* Permanently UNDEFINED */ | ||
1046 | #endif /* __LINUX_ARM_ARCH__ >= 6 */ | ||
1047 | |||
1048 | TEST_GROUP("Branch, branch with link, and block data transfer") | ||
1049 | |||
1050 | TEST_P( "stmda r",0, 16*4,", {r0}") | ||
1051 | TEST_P( "stmeqda r",4, 16*4,", {r0-r15}") | ||
1052 | TEST_P( "stmneda r",8, 16*4,"!, {r8-r15}") | ||
1053 | TEST_P( "stmda r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}") | ||
1054 | TEST_P( "stmda r",13,0, "!, {pc}") | ||
1055 | |||
1056 | TEST_P( "ldmda r",0, 16*4,", {r0}") | ||
1057 | TEST_BF_P("ldmcsda r",4, 15*4,", {r0-r15}") | ||
1058 | TEST_BF_P("ldmccda r",7, 15*4,"!, {r8-r15}") | ||
1059 | TEST_P( "ldmda r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}") | ||
1060 | TEST_BF_P("ldmda r",14,15*4,"!, {pc}") | ||
1061 | |||
1062 | TEST_P( "stmia r",0, 16*4,", {r0}") | ||
1063 | TEST_P( "stmmiia r",4, 16*4,", {r0-r15}") | ||
1064 | TEST_P( "stmplia r",8, 16*4,"!, {r8-r15}") | ||
1065 | TEST_P( "stmia r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}") | ||
1066 | TEST_P( "stmia r",14,0, "!, {pc}") | ||
1067 | |||
1068 | TEST_P( "ldmia r",0, 16*4,", {r0}") | ||
1069 | TEST_BF_P("ldmvsia r",4, 0, ", {r0-r15}") | ||
1070 | TEST_BF_P("ldmvcia r",7, 8*4, "!, {r8-r15}") | ||
1071 | TEST_P( "ldmia r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}") | ||
1072 | TEST_BF_P("ldmia r",14,15*4,"!, {pc}") | ||
1073 | |||
1074 | TEST_P( "stmdb r",0, 16*4,", {r0}") | ||
1075 | TEST_P( "stmhidb r",4, 16*4,", {r0-r15}") | ||
1076 | TEST_P( "stmlsdb r",8, 16*4,"!, {r8-r15}") | ||
1077 | TEST_P( "stmdb r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}") | ||
1078 | TEST_P( "stmdb r",13,4, "!, {pc}") | ||
1079 | |||
1080 | TEST_P( "ldmdb r",0, 16*4,", {r0}") | ||
1081 | TEST_BF_P("ldmgedb r",4, 16*4,", {r0-r15}") | ||
1082 | TEST_BF_P("ldmltdb r",7, 16*4,"!, {r8-r15}") | ||
1083 | TEST_P( "ldmdb r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}") | ||
1084 | TEST_BF_P("ldmdb r",14,16*4,"!, {pc}") | ||
1085 | |||
1086 | TEST_P( "stmib r",0, 16*4,", {r0}") | ||
1087 | TEST_P( "stmgtib r",4, 16*4,", {r0-r15}") | ||
1088 | TEST_P( "stmleib r",8, 16*4,"!, {r8-r15}") | ||
1089 | TEST_P( "stmib r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}") | ||
1090 | TEST_P( "stmib r",13,-4, "!, {pc}") | ||
1091 | |||
1092 | TEST_P( "ldmib r",0, 16*4,", {r0}") | ||
1093 | TEST_BF_P("ldmeqib r",4, -4,", {r0-r15}") | ||
1094 | TEST_BF_P("ldmneib r",7, 7*4,"!, {r8-r15}") | ||
1095 | TEST_P( "ldmib r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}") | ||
1096 | TEST_BF_P("ldmib r",14,14*4,"!, {pc}") | ||
1097 | |||
1098 | TEST_P( "stmdb r",13,16*4,"!, {r3-r12,lr}") | ||
1099 | TEST_P( "stmeqdb r",13,16*4,"!, {r3-r12}") | ||
1100 | TEST_P( "stmnedb r",2, 16*4,", {r3-r12,lr}") | ||
1101 | TEST_P( "stmdb r",13,16*4,"!, {r2-r12,lr}") | ||
1102 | TEST_P( "stmdb r",0, 16*4,", {r0-r12}") | ||
1103 | TEST_P( "stmdb r",0, 16*4,", {r0-r12,lr}") | ||
1104 | |||
1105 | TEST_BF_P("ldmia r",13,5*4, "!, {r3-r12,pc}") | ||
1106 | TEST_P( "ldmccia r",13,5*4, "!, {r3-r12}") | ||
1107 | TEST_BF_P("ldmcsia r",2, 5*4, "!, {r3-r12,pc}") | ||
1108 | TEST_BF_P("ldmia r",13,4*4, "!, {r2-r12,pc}") | ||
1109 | TEST_P( "ldmia r",0, 16*4,", {r0-r12}") | ||
1110 | TEST_P( "ldmia r",0, 16*4,", {r0-r12,lr}") | ||
1111 | |||
1112 | #ifdef CONFIG_THUMB2_KERNEL | ||
1113 | TEST_ARM_TO_THUMB_INTERWORK_P("ldmplia r",0,15*4,", {pc}") | ||
1114 | TEST_ARM_TO_THUMB_INTERWORK_P("ldmmiia r",13,0,", {r0-r15}") | ||
1115 | #endif | ||
1116 | TEST_BF("b 2f") | ||
1117 | TEST_BF("bl 2f") | ||
1118 | TEST_BB("b 2b") | ||
1119 | TEST_BB("bl 2b") | ||
1120 | |||
1121 | TEST_BF("beq 2f") | ||
1122 | TEST_BF("bleq 2f") | ||
1123 | TEST_BB("bne 2b") | ||
1124 | TEST_BB("blne 2b") | ||
1125 | |||
1126 | TEST_BF("bgt 2f") | ||
1127 | TEST_BF("blgt 2f") | ||
1128 | TEST_BB("blt 2b") | ||
1129 | TEST_BB("bllt 2b") | ||
1130 | |||
1131 | TEST_GROUP("Supervisor Call, and coprocessor instructions") | ||
1132 | |||
1133 | /* | ||
1134 | * We can't really test these by executing them, so all | ||
1135 | * we can do is check that probes are, or are not allowed. | ||
1136 | * At the moment none are allowed... | ||
1137 | */ | ||
1138 | #define TEST_COPROCESSOR(code) TEST_UNSUPPORTED(code) | ||
1139 | |||
1140 | #define COPROCESSOR_INSTRUCTIONS_ST_LD(two,cc) \ | ||
1141 | TEST_COPROCESSOR("stc"two" 0, cr0, [r13, #4]") \ | ||
1142 | TEST_COPROCESSOR("stc"two" 0, cr0, [r13, #-4]") \ | ||
1143 | TEST_COPROCESSOR("stc"two" 0, cr0, [r13, #4]!") \ | ||
1144 | TEST_COPROCESSOR("stc"two" 0, cr0, [r13, #-4]!") \ | ||
1145 | TEST_COPROCESSOR("stc"two" 0, cr0, [r13], #4") \ | ||
1146 | TEST_COPROCESSOR("stc"two" 0, cr0, [r13], #-4") \ | ||
1147 | TEST_COPROCESSOR("stc"two" 0, cr0, [r13], {1}") \ | ||
1148 | TEST_COPROCESSOR("stc"two"l 0, cr0, [r13, #4]") \ | ||
1149 | TEST_COPROCESSOR("stc"two"l 0, cr0, [r13, #-4]") \ | ||
1150 | TEST_COPROCESSOR("stc"two"l 0, cr0, [r13, #4]!") \ | ||
1151 | TEST_COPROCESSOR("stc"two"l 0, cr0, [r13, #-4]!") \ | ||
1152 | TEST_COPROCESSOR("stc"two"l 0, cr0, [r13], #4") \ | ||
1153 | TEST_COPROCESSOR("stc"two"l 0, cr0, [r13], #-4") \ | ||
1154 | TEST_COPROCESSOR("stc"two"l 0, cr0, [r13], {1}") \ | ||
1155 | TEST_COPROCESSOR("ldc"two" 0, cr0, [r13, #4]") \ | ||
1156 | TEST_COPROCESSOR("ldc"two" 0, cr0, [r13, #-4]") \ | ||
1157 | TEST_COPROCESSOR("ldc"two" 0, cr0, [r13, #4]!") \ | ||
1158 | TEST_COPROCESSOR("ldc"two" 0, cr0, [r13, #-4]!") \ | ||
1159 | TEST_COPROCESSOR("ldc"two" 0, cr0, [r13], #4") \ | ||
1160 | TEST_COPROCESSOR("ldc"two" 0, cr0, [r13], #-4") \ | ||
1161 | TEST_COPROCESSOR("ldc"two" 0, cr0, [r13], {1}") \ | ||
1162 | TEST_COPROCESSOR("ldc"two"l 0, cr0, [r13, #4]") \ | ||
1163 | TEST_COPROCESSOR("ldc"two"l 0, cr0, [r13, #-4]") \ | ||
1164 | TEST_COPROCESSOR("ldc"two"l 0, cr0, [r13, #4]!") \ | ||
1165 | TEST_COPROCESSOR("ldc"two"l 0, cr0, [r13, #-4]!") \ | ||
1166 | TEST_COPROCESSOR("ldc"two"l 0, cr0, [r13], #4") \ | ||
1167 | TEST_COPROCESSOR("ldc"two"l 0, cr0, [r13], #-4") \ | ||
1168 | TEST_COPROCESSOR("ldc"two"l 0, cr0, [r13], {1}") \ | ||
1169 | \ | ||
1170 | TEST_COPROCESSOR( "stc"two" 0, cr0, [r15, #4]") \ | ||
1171 | TEST_COPROCESSOR( "stc"two" 0, cr0, [r15, #-4]") \ | ||
1172 | TEST_UNSUPPORTED(".word 0x"cc"daf0001 @ stc"two" 0, cr0, [r15, #4]!") \ | ||
1173 | TEST_UNSUPPORTED(".word 0x"cc"d2f0001 @ stc"two" 0, cr0, [r15, #-4]!") \ | ||
1174 | TEST_UNSUPPORTED(".word 0x"cc"caf0001 @ stc"two" 0, cr0, [r15], #4") \ | ||
1175 | TEST_UNSUPPORTED(".word 0x"cc"c2f0001 @ stc"two" 0, cr0, [r15], #-4") \ | ||
1176 | TEST_COPROCESSOR( "stc"two" 0, cr0, [r15], {1}") \ | ||
1177 | TEST_COPROCESSOR( "stc"two"l 0, cr0, [r15, #4]") \ | ||
1178 | TEST_COPROCESSOR( "stc"two"l 0, cr0, [r15, #-4]") \ | ||
1179 | TEST_UNSUPPORTED(".word 0x"cc"def0001 @ stc"two"l 0, cr0, [r15, #4]!") \ | ||
1180 | TEST_UNSUPPORTED(".word 0x"cc"d6f0001 @ stc"two"l 0, cr0, [r15, #-4]!") \ | ||
1181 | TEST_UNSUPPORTED(".word 0x"cc"cef0001 @ stc"two"l 0, cr0, [r15], #4") \ | ||
1182 | TEST_UNSUPPORTED(".word 0x"cc"c6f0001 @ stc"two"l 0, cr0, [r15], #-4") \ | ||
1183 | TEST_COPROCESSOR( "stc"two"l 0, cr0, [r15], {1}") \ | ||
1184 | TEST_COPROCESSOR( "ldc"two" 0, cr0, [r15, #4]") \ | ||
1185 | TEST_COPROCESSOR( "ldc"two" 0, cr0, [r15, #-4]") \ | ||
1186 | TEST_UNSUPPORTED(".word 0x"cc"dbf0001 @ ldc"two" 0, cr0, [r15, #4]!") \ | ||
1187 | TEST_UNSUPPORTED(".word 0x"cc"d3f0001 @ ldc"two" 0, cr0, [r15, #-4]!") \ | ||
1188 | TEST_UNSUPPORTED(".word 0x"cc"cbf0001 @ ldc"two" 0, cr0, [r15], #4") \ | ||
1189 | TEST_UNSUPPORTED(".word 0x"cc"c3f0001 @ ldc"two" 0, cr0, [r15], #-4") \ | ||
1190 | TEST_COPROCESSOR( "ldc"two" 0, cr0, [r15], {1}") \ | ||
1191 | TEST_COPROCESSOR( "ldc"two"l 0, cr0, [r15, #4]") \ | ||
1192 | TEST_COPROCESSOR( "ldc"two"l 0, cr0, [r15, #-4]") \ | ||
1193 | TEST_UNSUPPORTED(".word 0x"cc"dff0001 @ ldc"two"l 0, cr0, [r15, #4]!") \ | ||
1194 | TEST_UNSUPPORTED(".word 0x"cc"d7f0001 @ ldc"two"l 0, cr0, [r15, #-4]!") \ | ||
1195 | TEST_UNSUPPORTED(".word 0x"cc"cff0001 @ ldc"two"l 0, cr0, [r15], #4") \ | ||
1196 | TEST_UNSUPPORTED(".word 0x"cc"c7f0001 @ ldc"two"l 0, cr0, [r15], #-4") \ | ||
1197 | TEST_COPROCESSOR( "ldc"two"l 0, cr0, [r15], {1}") | ||
1198 | |||
1199 | #define COPROCESSOR_INSTRUCTIONS_MC_MR(two,cc) \ | ||
1200 | \ | ||
1201 | TEST_COPROCESSOR( "mcrr"two" 0, 15, r0, r14, cr0") \ | ||
1202 | TEST_COPROCESSOR( "mcrr"two" 15, 0, r14, r0, cr15") \ | ||
1203 | TEST_UNSUPPORTED(".word 0x"cc"c4f00f0 @ mcrr"two" 0, 15, r0, r15, cr0") \ | ||
1204 | TEST_UNSUPPORTED(".word 0x"cc"c40ff0f @ mcrr"two" 15, 0, r15, r0, cr15") \ | ||
1205 | TEST_COPROCESSOR( "mrrc"two" 0, 15, r0, r14, cr0") \ | ||
1206 | TEST_COPROCESSOR( "mrrc"two" 15, 0, r14, r0, cr15") \ | ||
1207 | TEST_UNSUPPORTED(".word 0x"cc"c5f00f0 @ mrrc"two" 0, 15, r0, r15, cr0") \ | ||
1208 | TEST_UNSUPPORTED(".word 0x"cc"c50ff0f @ mrrc"two" 15, 0, r15, r0, cr15") \ | ||
1209 | TEST_COPROCESSOR( "cdp"two" 15, 15, cr15, cr15, cr15, 7") \ | ||
1210 | TEST_COPROCESSOR( "cdp"two" 0, 0, cr0, cr0, cr0, 0") \ | ||
1211 | TEST_COPROCESSOR( "mcr"two" 15, 7, r15, cr15, cr15, 7") \ | ||
1212 | TEST_COPROCESSOR( "mcr"two" 0, 0, r0, cr0, cr0, 0") \ | ||
1213 | TEST_COPROCESSOR( "mrc"two" 15, 7, r15, cr15, cr15, 7") \ | ||
1214 | TEST_COPROCESSOR( "mrc"two" 0, 0, r0, cr0, cr0, 0") | ||
1215 | |||
1216 | COPROCESSOR_INSTRUCTIONS_ST_LD("","e") | ||
1217 | COPROCESSOR_INSTRUCTIONS_MC_MR("","e") | ||
1218 | TEST_UNSUPPORTED("svc 0") | ||
1219 | TEST_UNSUPPORTED("svc 0xffffff") | ||
1220 | |||
1221 | TEST_UNSUPPORTED("svc 0") | ||
1222 | |||
1223 | TEST_GROUP("Unconditional instruction") | ||
1224 | |||
1225 | #if __LINUX_ARM_ARCH__ >= 6 | ||
1226 | TEST_UNSUPPORTED("srsda sp, 0x13") | ||
1227 | TEST_UNSUPPORTED("srsdb sp, 0x13") | ||
1228 | TEST_UNSUPPORTED("srsia sp, 0x13") | ||
1229 | TEST_UNSUPPORTED("srsib sp, 0x13") | ||
1230 | TEST_UNSUPPORTED("srsda sp!, 0x13") | ||
1231 | TEST_UNSUPPORTED("srsdb sp!, 0x13") | ||
1232 | TEST_UNSUPPORTED("srsia sp!, 0x13") | ||
1233 | TEST_UNSUPPORTED("srsib sp!, 0x13") | ||
1234 | |||
1235 | TEST_UNSUPPORTED("rfeda sp") | ||
1236 | TEST_UNSUPPORTED("rfedb sp") | ||
1237 | TEST_UNSUPPORTED("rfeia sp") | ||
1238 | TEST_UNSUPPORTED("rfeib sp") | ||
1239 | TEST_UNSUPPORTED("rfeda sp!") | ||
1240 | TEST_UNSUPPORTED("rfedb sp!") | ||
1241 | TEST_UNSUPPORTED("rfeia sp!") | ||
1242 | TEST_UNSUPPORTED("rfeib sp!") | ||
1243 | TEST_UNSUPPORTED(".word 0xf81d0a00 @ rfeda pc") | ||
1244 | TEST_UNSUPPORTED(".word 0xf91d0a00 @ rfedb pc") | ||
1245 | TEST_UNSUPPORTED(".word 0xf89d0a00 @ rfeia pc") | ||
1246 | TEST_UNSUPPORTED(".word 0xf99d0a00 @ rfeib pc") | ||
1247 | TEST_UNSUPPORTED(".word 0xf83d0a00 @ rfeda pc!") | ||
1248 | TEST_UNSUPPORTED(".word 0xf93d0a00 @ rfedb pc!") | ||
1249 | TEST_UNSUPPORTED(".word 0xf8bd0a00 @ rfeia pc!") | ||
1250 | TEST_UNSUPPORTED(".word 0xf9bd0a00 @ rfeib pc!") | ||
1251 | #endif /* __LINUX_ARM_ARCH__ >= 6 */ | ||
1252 | |||
1253 | #if __LINUX_ARM_ARCH__ >= 6 | ||
1254 | TEST_X( "blx __dummy_thumb_subroutine_even", | ||
1255 | ".thumb \n\t" | ||
1256 | ".space 4 \n\t" | ||
1257 | ".type __dummy_thumb_subroutine_even, %%function \n\t" | ||
1258 | "__dummy_thumb_subroutine_even: \n\t" | ||
1259 | "mov r0, pc \n\t" | ||
1260 | "bx lr \n\t" | ||
1261 | ".arm \n\t" | ||
1262 | ) | ||
1263 | TEST( "blx __dummy_thumb_subroutine_even") | ||
1264 | |||
1265 | TEST_X( "blx __dummy_thumb_subroutine_odd", | ||
1266 | ".thumb \n\t" | ||
1267 | ".space 2 \n\t" | ||
1268 | ".type __dummy_thumb_subroutine_odd, %%function \n\t" | ||
1269 | "__dummy_thumb_subroutine_odd: \n\t" | ||
1270 | "mov r0, pc \n\t" | ||
1271 | "bx lr \n\t" | ||
1272 | ".arm \n\t" | ||
1273 | ) | ||
1274 | TEST( "blx __dummy_thumb_subroutine_odd") | ||
1275 | #endif /* __LINUX_ARM_ARCH__ >= 6 */ | ||
1276 | |||
1277 | COPROCESSOR_INSTRUCTIONS_ST_LD("2","f") | ||
1278 | #if __LINUX_ARM_ARCH__ >= 6 | ||
1279 | COPROCESSOR_INSTRUCTIONS_MC_MR("2","f") | ||
1280 | #endif | ||
1281 | |||
1282 | TEST_GROUP("Miscellaneous instructions, memory hints, and Advanced SIMD instructions") | ||
1283 | |||
1284 | #if __LINUX_ARM_ARCH__ >= 6 | ||
1285 | TEST_UNSUPPORTED("cps 0x13") | ||
1286 | TEST_UNSUPPORTED("cpsie i") | ||
1287 | TEST_UNSUPPORTED("cpsid i") | ||
1288 | TEST_UNSUPPORTED("cpsie i,0x13") | ||
1289 | TEST_UNSUPPORTED("cpsid i,0x13") | ||
1290 | TEST_UNSUPPORTED("setend le") | ||
1291 | TEST_UNSUPPORTED("setend be") | ||
1292 | #endif | ||
1293 | |||
1294 | #if __LINUX_ARM_ARCH__ >= 7 | ||
1295 | TEST_P("pli [r",0,0b,", #16]") | ||
1296 | TEST( "pli [pc, #0]") | ||
1297 | TEST_RR("pli [r",12,0b,", r",0, 16,"]") | ||
1298 | TEST_RR("pli [r",0, 0b,", -r",12,16,", lsl #4]") | ||
1299 | #endif | ||
1300 | |||
1301 | #if __LINUX_ARM_ARCH__ >= 5 | ||
1302 | TEST_P("pld [r",0,32,", #-16]") | ||
1303 | TEST( "pld [pc, #0]") | ||
1304 | TEST_PR("pld [r",7, 24, ", r",0, 16,"]") | ||
1305 | TEST_PR("pld [r",8, 24, ", -r",12,16,", lsl #4]") | ||
1306 | #endif | ||
1307 | |||
1308 | #if __LINUX_ARM_ARCH__ >= 7 | ||
1309 | TEST_SUPPORTED( ".word 0xf590f000 @ pldw [r0, #0]") | ||
1310 | TEST_SUPPORTED( ".word 0xf797f000 @ pldw [r7, r0]") | ||
1311 | TEST_SUPPORTED( ".word 0xf798f18c @ pldw [r8, r12, lsl #3]"); | ||
1312 | #endif | ||
1313 | |||
1314 | #if __LINUX_ARM_ARCH__ >= 7 | ||
1315 | TEST_UNSUPPORTED("clrex") | ||
1316 | TEST_UNSUPPORTED("dsb") | ||
1317 | TEST_UNSUPPORTED("dmb") | ||
1318 | TEST_UNSUPPORTED("isb") | ||
1319 | #endif | ||
1320 | |||
1321 | verbose("\n"); | ||
1322 | } | ||
1323 | |||
diff --git a/arch/arm/kernel/kprobes-test-thumb.c b/arch/arm/kernel/kprobes-test-thumb.c new file mode 100644 index 000000000000..5e726c31c45a --- /dev/null +++ b/arch/arm/kernel/kprobes-test-thumb.c | |||
@@ -0,0 +1,1187 @@ | |||
1 | /* | ||
2 | * arch/arm/kernel/kprobes-test-thumb.c | ||
3 | * | ||
4 | * Copyright (C) 2011 Jon Medhurst <tixy@yxit.co.uk>. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | #include <linux/kernel.h> | ||
12 | #include <linux/module.h> | ||
13 | |||
14 | #include "kprobes-test.h" | ||
15 | |||
16 | |||
17 | #define TEST_ISA "16" | ||
18 | |||
19 | #define DONT_TEST_IN_ITBLOCK(tests) \ | ||
20 | kprobe_test_flags |= TEST_FLAG_NO_ITBLOCK; \ | ||
21 | tests \ | ||
22 | kprobe_test_flags &= ~TEST_FLAG_NO_ITBLOCK; | ||
23 | |||
24 | #define CONDITION_INSTRUCTIONS(cc_pos, tests) \ | ||
25 | kprobe_test_cc_position = cc_pos; \ | ||
26 | DONT_TEST_IN_ITBLOCK(tests) \ | ||
27 | kprobe_test_cc_position = 0; | ||
28 | |||
29 | #define TEST_ITBLOCK(code) \ | ||
30 | kprobe_test_flags |= TEST_FLAG_FULL_ITBLOCK; \ | ||
31 | TESTCASE_START(code) \ | ||
32 | TEST_ARG_END("") \ | ||
33 | "50: nop \n\t" \ | ||
34 | "1: "code" \n\t" \ | ||
35 | " mov r1, #0x11 \n\t" \ | ||
36 | " mov r2, #0x22 \n\t" \ | ||
37 | " mov r3, #0x33 \n\t" \ | ||
38 | "2: nop \n\t" \ | ||
39 | TESTCASE_END \ | ||
40 | kprobe_test_flags &= ~TEST_FLAG_FULL_ITBLOCK; | ||
41 | |||
42 | #define TEST_THUMB_TO_ARM_INTERWORK_P(code1, reg, val, code2) \ | ||
43 | TESTCASE_START(code1 #reg code2) \ | ||
44 | TEST_ARG_PTR(reg, val) \ | ||
45 | TEST_ARG_REG(14, 99f+1) \ | ||
46 | TEST_ARG_MEM(15, 3f) \ | ||
47 | TEST_ARG_END("") \ | ||
48 | " nop \n\t" /* To align 1f */ \ | ||
49 | "50: nop \n\t" \ | ||
50 | "1: "code1 #reg code2" \n\t" \ | ||
51 | " bx lr \n\t" \ | ||
52 | ".arm \n\t" \ | ||
53 | "3: adr lr, 2f+1 \n\t" \ | ||
54 | " bx lr \n\t" \ | ||
55 | ".thumb \n\t" \ | ||
56 | "2: nop \n\t" \ | ||
57 | TESTCASE_END | ||
58 | |||
59 | |||
60 | void kprobe_thumb16_test_cases(void) | ||
61 | { | ||
62 | kprobe_test_flags = TEST_FLAG_NARROW_INSTR; | ||
63 | |||
64 | TEST_GROUP("Shift (immediate), add, subtract, move, and compare") | ||
65 | |||
66 | TEST_R( "lsls r7, r",0,VAL1,", #5") | ||
67 | TEST_R( "lsls r0, r",7,VAL2,", #11") | ||
68 | TEST_R( "lsrs r7, r",0,VAL1,", #5") | ||
69 | TEST_R( "lsrs r0, r",7,VAL2,", #11") | ||
70 | TEST_R( "asrs r7, r",0,VAL1,", #5") | ||
71 | TEST_R( "asrs r0, r",7,VAL2,", #11") | ||
72 | TEST_RR( "adds r2, r",0,VAL1,", r",7,VAL2,"") | ||
73 | TEST_RR( "adds r5, r",7,VAL2,", r",0,VAL2,"") | ||
74 | TEST_RR( "subs r2, r",0,VAL1,", r",7,VAL2,"") | ||
75 | TEST_RR( "subs r5, r",7,VAL2,", r",0,VAL2,"") | ||
76 | TEST_R( "adds r7, r",0,VAL1,", #5") | ||
77 | TEST_R( "adds r0, r",7,VAL2,", #2") | ||
78 | TEST_R( "subs r7, r",0,VAL1,", #5") | ||
79 | TEST_R( "subs r0, r",7,VAL2,", #2") | ||
80 | TEST( "movs.n r0, #0x5f") | ||
81 | TEST( "movs.n r7, #0xa0") | ||
82 | TEST_R( "cmp.n r",0,0x5e, ", #0x5f") | ||
83 | TEST_R( "cmp.n r",5,0x15f,", #0x5f") | ||
84 | TEST_R( "cmp.n r",7,0xa0, ", #0xa0") | ||
85 | TEST_R( "adds.n r",0,VAL1,", #0x5f") | ||
86 | TEST_R( "adds.n r",7,VAL2,", #0xa0") | ||
87 | TEST_R( "subs.n r",0,VAL1,", #0x5f") | ||
88 | TEST_R( "subs.n r",7,VAL2,", #0xa0") | ||
89 | |||
90 | TEST_GROUP("16-bit Thumb data-processing instructions") | ||
91 | |||
92 | #define DATA_PROCESSING16(op,val) \ | ||
93 | TEST_RR( op" r",0,VAL1,", r",7,val,"") \ | ||
94 | TEST_RR( op" r",7,VAL2,", r",0,val,"") | ||
95 | |||
96 | DATA_PROCESSING16("ands",0xf00f00ff) | ||
97 | DATA_PROCESSING16("eors",0xf00f00ff) | ||
98 | DATA_PROCESSING16("lsls",11) | ||
99 | DATA_PROCESSING16("lsrs",11) | ||
100 | DATA_PROCESSING16("asrs",11) | ||
101 | DATA_PROCESSING16("adcs",VAL2) | ||
102 | DATA_PROCESSING16("sbcs",VAL2) | ||
103 | DATA_PROCESSING16("rors",11) | ||
104 | DATA_PROCESSING16("tst",0xf00f00ff) | ||
105 | TEST_R("rsbs r",0,VAL1,", #0") | ||
106 | TEST_R("rsbs r",7,VAL2,", #0") | ||
107 | DATA_PROCESSING16("cmp",0xf00f00ff) | ||
108 | DATA_PROCESSING16("cmn",0xf00f00ff) | ||
109 | DATA_PROCESSING16("orrs",0xf00f00ff) | ||
110 | DATA_PROCESSING16("muls",VAL2) | ||
111 | DATA_PROCESSING16("bics",0xf00f00ff) | ||
112 | DATA_PROCESSING16("mvns",VAL2) | ||
113 | |||
114 | TEST_GROUP("Special data instructions and branch and exchange") | ||
115 | |||
116 | TEST_RR( "add r",0, VAL1,", r",7,VAL2,"") | ||
117 | TEST_RR( "add r",3, VAL2,", r",8,VAL3,"") | ||
118 | TEST_RR( "add r",8, VAL3,", r",0,VAL1,"") | ||
119 | TEST_R( "add sp" ", r",8,-8, "") | ||
120 | TEST_R( "add r",14,VAL1,", pc") | ||
121 | TEST_BF_R("add pc" ", r",0,2f-1f-8,"") | ||
122 | TEST_UNSUPPORTED(".short 0x44ff @ add pc, pc") | ||
123 | |||
124 | TEST_RR( "cmp r",3,VAL1,", r",8,VAL2,"") | ||
125 | TEST_RR( "cmp r",8,VAL2,", r",0,VAL1,"") | ||
126 | TEST_R( "cmp sp" ", r",8,-8, "") | ||
127 | |||
128 | TEST_R( "mov r0, r",7,VAL2,"") | ||
129 | TEST_R( "mov r3, r",8,VAL3,"") | ||
130 | TEST_R( "mov r8, r",0,VAL1,"") | ||
131 | TEST_P( "mov sp, r",8,-8, "") | ||
132 | TEST( "mov lr, pc") | ||
133 | TEST_BF_R("mov pc, r",0,2f, "") | ||
134 | |||
135 | TEST_BF_R("bx r",0, 2f+1,"") | ||
136 | TEST_BF_R("bx r",14,2f+1,"") | ||
137 | TESTCASE_START("bx pc") | ||
138 | TEST_ARG_REG(14, 99f+1) | ||
139 | TEST_ARG_END("") | ||
140 | " nop \n\t" /* To align the bx pc*/ | ||
141 | "50: nop \n\t" | ||
142 | "1: bx pc \n\t" | ||
143 | " bx lr \n\t" | ||
144 | ".arm \n\t" | ||
145 | " adr lr, 2f+1 \n\t" | ||
146 | " bx lr \n\t" | ||
147 | ".thumb \n\t" | ||
148 | "2: nop \n\t" | ||
149 | TESTCASE_END | ||
150 | |||
151 | TEST_BF_R("blx r",0, 2f+1,"") | ||
152 | TEST_BB_R("blx r",14,2f+1,"") | ||
153 | TEST_UNSUPPORTED(".short 0x47f8 @ blx pc") | ||
154 | |||
155 | TEST_GROUP("Load from Literal Pool") | ||
156 | |||
157 | TEST_X( "ldr r0, 3f", | ||
158 | ".align \n\t" | ||
159 | "3: .word "__stringify(VAL1)) | ||
160 | TEST_X( "ldr r7, 3f", | ||
161 | ".space 128 \n\t" | ||
162 | ".align \n\t" | ||
163 | "3: .word "__stringify(VAL2)) | ||
164 | |||
165 | TEST_GROUP("16-bit Thumb Load/store instructions") | ||
166 | |||
167 | TEST_RPR("str r",0, VAL1,", [r",1, 24,", r",2, 48,"]") | ||
168 | TEST_RPR("str r",7, VAL2,", [r",6, 24,", r",5, 48,"]") | ||
169 | TEST_RPR("strh r",0, VAL1,", [r",1, 24,", r",2, 48,"]") | ||
170 | TEST_RPR("strh r",7, VAL2,", [r",6, 24,", r",5, 48,"]") | ||
171 | TEST_RPR("strb r",0, VAL1,", [r",1, 24,", r",2, 48,"]") | ||
172 | TEST_RPR("strb r",7, VAL2,", [r",6, 24,", r",5, 48,"]") | ||
173 | TEST_PR( "ldrsb r0, [r",1, 24,", r",2, 48,"]") | ||
174 | TEST_PR( "ldrsb r7, [r",6, 24,", r",5, 50,"]") | ||
175 | TEST_PR( "ldr r0, [r",1, 24,", r",2, 48,"]") | ||
176 | TEST_PR( "ldr r7, [r",6, 24,", r",5, 48,"]") | ||
177 | TEST_PR( "ldrh r0, [r",1, 24,", r",2, 48,"]") | ||
178 | TEST_PR( "ldrh r7, [r",6, 24,", r",5, 50,"]") | ||
179 | TEST_PR( "ldrb r0, [r",1, 24,", r",2, 48,"]") | ||
180 | TEST_PR( "ldrb r7, [r",6, 24,", r",5, 50,"]") | ||
181 | TEST_PR( "ldrsh r0, [r",1, 24,", r",2, 48,"]") | ||
182 | TEST_PR( "ldrsh r7, [r",6, 24,", r",5, 50,"]") | ||
183 | |||
184 | TEST_RP("str r",0, VAL1,", [r",1, 24,", #120]") | ||
185 | TEST_RP("str r",7, VAL2,", [r",6, 24,", #120]") | ||
186 | TEST_P( "ldr r0, [r",1, 24,", #120]") | ||
187 | TEST_P( "ldr r7, [r",6, 24,", #120]") | ||
188 | TEST_RP("strb r",0, VAL1,", [r",1, 24,", #30]") | ||
189 | TEST_RP("strb r",7, VAL2,", [r",6, 24,", #30]") | ||
190 | TEST_P( "ldrb r0, [r",1, 24,", #30]") | ||
191 | TEST_P( "ldrb r7, [r",6, 24,", #30]") | ||
192 | TEST_RP("strh r",0, VAL1,", [r",1, 24,", #60]") | ||
193 | TEST_RP("strh r",7, VAL2,", [r",6, 24,", #60]") | ||
194 | TEST_P( "ldrh r0, [r",1, 24,", #60]") | ||
195 | TEST_P( "ldrh r7, [r",6, 24,", #60]") | ||
196 | |||
197 | TEST_R( "str r",0, VAL1,", [sp, #0]") | ||
198 | TEST_R( "str r",7, VAL2,", [sp, #160]") | ||
199 | TEST( "ldr r0, [sp, #0]") | ||
200 | TEST( "ldr r7, [sp, #160]") | ||
201 | |||
202 | TEST_RP("str r",0, VAL1,", [r",0, 24,"]") | ||
203 | TEST_P( "ldr r0, [r",0, 24,"]") | ||
204 | |||
205 | TEST_GROUP("Generate PC-/SP-relative address") | ||
206 | |||
207 | TEST("add r0, pc, #4") | ||
208 | TEST("add r7, pc, #1020") | ||
209 | TEST("add r0, sp, #4") | ||
210 | TEST("add r7, sp, #1020") | ||
211 | |||
212 | TEST_GROUP("Miscellaneous 16-bit instructions") | ||
213 | |||
214 | TEST_UNSUPPORTED( "cpsie i") | ||
215 | TEST_UNSUPPORTED( "cpsid i") | ||
216 | TEST_UNSUPPORTED( "setend le") | ||
217 | TEST_UNSUPPORTED( "setend be") | ||
218 | |||
219 | TEST("add sp, #"__stringify(TEST_MEMORY_SIZE)) /* Assumes TEST_MEMORY_SIZE < 0x400 */ | ||
220 | TEST("sub sp, #0x7f*4") | ||
221 | |||
222 | DONT_TEST_IN_ITBLOCK( | ||
223 | TEST_BF_R( "cbnz r",0,0, ", 2f") | ||
224 | TEST_BF_R( "cbz r",2,-1,", 2f") | ||
225 | TEST_BF_RX( "cbnz r",4,1, ", 2f",0x20) | ||
226 | TEST_BF_RX( "cbz r",7,0, ", 2f",0x40) | ||
227 | ) | ||
228 | TEST_R("sxth r0, r",7, HH1,"") | ||
229 | TEST_R("sxth r7, r",0, HH2,"") | ||
230 | TEST_R("sxtb r0, r",7, HH1,"") | ||
231 | TEST_R("sxtb r7, r",0, HH2,"") | ||
232 | TEST_R("uxth r0, r",7, HH1,"") | ||
233 | TEST_R("uxth r7, r",0, HH2,"") | ||
234 | TEST_R("uxtb r0, r",7, HH1,"") | ||
235 | TEST_R("uxtb r7, r",0, HH2,"") | ||
236 | TEST_R("rev r0, r",7, VAL1,"") | ||
237 | TEST_R("rev r7, r",0, VAL2,"") | ||
238 | TEST_R("rev16 r0, r",7, VAL1,"") | ||
239 | TEST_R("rev16 r7, r",0, VAL2,"") | ||
240 | TEST_UNSUPPORTED(".short 0xba80") | ||
241 | TEST_UNSUPPORTED(".short 0xbabf") | ||
242 | TEST_R("revsh r0, r",7, VAL1,"") | ||
243 | TEST_R("revsh r7, r",0, VAL2,"") | ||
244 | |||
245 | #define TEST_POPPC(code, offset) \ | ||
246 | TESTCASE_START(code) \ | ||
247 | TEST_ARG_PTR(13, offset) \ | ||
248 | TEST_ARG_END("") \ | ||
249 | TEST_BRANCH_F(code,0) \ | ||
250 | TESTCASE_END | ||
251 | |||
252 | TEST("push {r0}") | ||
253 | TEST("push {r7}") | ||
254 | TEST("push {r14}") | ||
255 | TEST("push {r0-r7,r14}") | ||
256 | TEST("push {r0,r2,r4,r6,r14}") | ||
257 | TEST("push {r1,r3,r5,r7}") | ||
258 | TEST("pop {r0}") | ||
259 | TEST("pop {r7}") | ||
260 | TEST("pop {r0,r2,r4,r6}") | ||
261 | TEST_POPPC("pop {pc}",15*4) | ||
262 | TEST_POPPC("pop {r0-r7,pc}",7*4) | ||
263 | TEST_POPPC("pop {r1,r3,r5,r7,pc}",11*4) | ||
264 | TEST_THUMB_TO_ARM_INTERWORK_P("pop {pc} @ ",13,15*4,"") | ||
265 | TEST_THUMB_TO_ARM_INTERWORK_P("pop {r0-r7,pc} @ ",13,7*4,"") | ||
266 | |||
267 | TEST_UNSUPPORTED("bkpt.n 0") | ||
268 | TEST_UNSUPPORTED("bkpt.n 255") | ||
269 | |||
270 | TEST_SUPPORTED("yield") | ||
271 | TEST("sev") | ||
272 | TEST("nop") | ||
273 | TEST("wfi") | ||
274 | TEST_SUPPORTED("wfe") | ||
275 | TEST_UNSUPPORTED(".short 0xbf50") /* Unassigned hints */ | ||
276 | TEST_UNSUPPORTED(".short 0xbff0") /* Unassigned hints */ | ||
277 | |||
278 | #define TEST_IT(code, code2) \ | ||
279 | TESTCASE_START(code) \ | ||
280 | TEST_ARG_END("") \ | ||
281 | "50: nop \n\t" \ | ||
282 | "1: "code" \n\t" \ | ||
283 | " "code2" \n\t" \ | ||
284 | "2: nop \n\t" \ | ||
285 | TESTCASE_END | ||
286 | |||
287 | DONT_TEST_IN_ITBLOCK( | ||
288 | TEST_IT("it eq","moveq r0,#0") | ||
289 | TEST_IT("it vc","movvc r0,#0") | ||
290 | TEST_IT("it le","movle r0,#0") | ||
291 | TEST_IT("ite eq","moveq r0,#0\n\t movne r1,#1") | ||
292 | TEST_IT("itet vc","movvc r0,#0\n\t movvs r1,#1\n\t movvc r2,#2") | ||
293 | TEST_IT("itete le","movle r0,#0\n\t movgt r1,#1\n\t movle r2,#2\n\t movgt r3,#3") | ||
294 | TEST_IT("itttt le","movle r0,#0\n\t movle r1,#1\n\t movle r2,#2\n\t movle r3,#3") | ||
295 | TEST_IT("iteee le","movle r0,#0\n\t movgt r1,#1\n\t movgt r2,#2\n\t movgt r3,#3") | ||
296 | ) | ||
297 | |||
298 | TEST_GROUP("Load and store multiple") | ||
299 | |||
300 | TEST_P("ldmia r",4, 16*4,"!, {r0,r7}") | ||
301 | TEST_P("ldmia r",7, 16*4,"!, {r0-r6}") | ||
302 | TEST_P("stmia r",4, 16*4,"!, {r0,r7}") | ||
303 | TEST_P("stmia r",0, 16*4,"!, {r0-r7}") | ||
304 | |||
305 | TEST_GROUP("Conditional branch and Supervisor Call instructions") | ||
306 | |||
307 | CONDITION_INSTRUCTIONS(8, | ||
308 | TEST_BF("beq 2f") | ||
309 | TEST_BB("bne 2b") | ||
310 | TEST_BF("bgt 2f") | ||
311 | TEST_BB("blt 2b") | ||
312 | ) | ||
313 | TEST_UNSUPPORTED(".short 0xde00") | ||
314 | TEST_UNSUPPORTED(".short 0xdeff") | ||
315 | TEST_UNSUPPORTED("svc #0x00") | ||
316 | TEST_UNSUPPORTED("svc #0xff") | ||
317 | |||
318 | TEST_GROUP("Unconditional branch") | ||
319 | |||
320 | TEST_BF( "b 2f") | ||
321 | TEST_BB( "b 2b") | ||
322 | TEST_BF_X("b 2f", 0x400) | ||
323 | TEST_BB_X("b 2b", 0x400) | ||
324 | |||
325 | TEST_GROUP("Testing instructions in IT blocks") | ||
326 | |||
327 | TEST_ITBLOCK("subs.n r0, r0") | ||
328 | |||
329 | verbose("\n"); | ||
330 | } | ||
331 | |||
332 | |||
333 | void kprobe_thumb32_test_cases(void) | ||
334 | { | ||
335 | kprobe_test_flags = 0; | ||
336 | |||
337 | TEST_GROUP("Load/store multiple") | ||
338 | |||
339 | TEST_UNSUPPORTED("rfedb sp") | ||
340 | TEST_UNSUPPORTED("rfeia sp") | ||
341 | TEST_UNSUPPORTED("rfedb sp!") | ||
342 | TEST_UNSUPPORTED("rfeia sp!") | ||
343 | |||
344 | TEST_P( "stmia r",0, 16*4,", {r0,r8}") | ||
345 | TEST_P( "stmia r",4, 16*4,", {r0-r12,r14}") | ||
346 | TEST_P( "stmia r",7, 16*4,"!, {r8-r12,r14}") | ||
347 | TEST_P( "stmia r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}") | ||
348 | |||
349 | TEST_P( "ldmia r",0, 16*4,", {r0,r8}") | ||
350 | TEST_P( "ldmia r",4, 0, ", {r0-r12,r14}") | ||
351 | TEST_BF_P("ldmia r",5, 8*4, "!, {r6-r12,r15}") | ||
352 | TEST_P( "ldmia r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}") | ||
353 | TEST_BF_P("ldmia r",14,14*4,"!, {r4,pc}") | ||
354 | |||
355 | TEST_P( "stmdb r",0, 16*4,", {r0,r8}") | ||
356 | TEST_P( "stmdb r",4, 16*4,", {r0-r12,r14}") | ||
357 | TEST_P( "stmdb r",5, 16*4,"!, {r8-r12,r14}") | ||
358 | TEST_P( "stmdb r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}") | ||
359 | |||
360 | TEST_P( "ldmdb r",0, 16*4,", {r0,r8}") | ||
361 | TEST_P( "ldmdb r",4, 16*4,", {r0-r12,r14}") | ||
362 | TEST_BF_P("ldmdb r",5, 16*4,"!, {r6-r12,r15}") | ||
363 | TEST_P( "ldmdb r",12,16*4,"!, {r1,r3,r5,r7,r8-r11,r14}") | ||
364 | TEST_BF_P("ldmdb r",14,16*4,"!, {r4,pc}") | ||
365 | |||
366 | TEST_P( "stmdb r",13,16*4,"!, {r3-r12,lr}") | ||
367 | TEST_P( "stmdb r",13,16*4,"!, {r3-r12}") | ||
368 | TEST_P( "stmdb r",2, 16*4,", {r3-r12,lr}") | ||
369 | TEST_P( "stmdb r",13,16*4,"!, {r2-r12,lr}") | ||
370 | TEST_P( "stmdb r",0, 16*4,", {r0-r12}") | ||
371 | TEST_P( "stmdb r",0, 16*4,", {r0-r12,lr}") | ||
372 | |||
373 | TEST_BF_P("ldmia r",13,5*4, "!, {r3-r12,pc}") | ||
374 | TEST_P( "ldmia r",13,5*4, "!, {r3-r12}") | ||
375 | TEST_BF_P("ldmia r",2, 5*4, "!, {r3-r12,pc}") | ||
376 | TEST_BF_P("ldmia r",13,4*4, "!, {r2-r12,pc}") | ||
377 | TEST_P( "ldmia r",0, 16*4,", {r0-r12}") | ||
378 | TEST_P( "ldmia r",0, 16*4,", {r0-r12,lr}") | ||
379 | |||
380 | TEST_THUMB_TO_ARM_INTERWORK_P("ldmia r",0,14*4,", {r12,pc}") | ||
381 | TEST_THUMB_TO_ARM_INTERWORK_P("ldmia r",13,2*4,", {r0-r12,pc}") | ||
382 | |||
383 | TEST_UNSUPPORTED(".short 0xe88f,0x0101 @ stmia pc, {r0,r8}") | ||
384 | TEST_UNSUPPORTED(".short 0xe92f,0x5f00 @ stmdb pc!, {r8-r12,r14}") | ||
385 | TEST_UNSUPPORTED(".short 0xe8bd,0xc000 @ ldmia r13!, {r14,pc}") | ||
386 | TEST_UNSUPPORTED(".short 0xe93e,0xc000 @ ldmdb r14!, {r14,pc}") | ||
387 | TEST_UNSUPPORTED(".short 0xe8a7,0x3f00 @ stmia r7!, {r8-r12,sp}") | ||
388 | TEST_UNSUPPORTED(".short 0xe8a7,0x9f00 @ stmia r7!, {r8-r12,pc}") | ||
389 | TEST_UNSUPPORTED(".short 0xe93e,0x2010 @ ldmdb r14!, {r4,sp}") | ||
390 | |||
391 | TEST_GROUP("Load/store double or exclusive, table branch") | ||
392 | |||
393 | TEST_P( "ldrd r0, r1, [r",1, 24,", #-16]") | ||
394 | TEST( "ldrd r12, r14, [sp, #16]") | ||
395 | TEST_P( "ldrd r1, r0, [r",7, 24,", #-16]!") | ||
396 | TEST( "ldrd r14, r12, [sp, #16]!") | ||
397 | TEST_P( "ldrd r1, r0, [r",7, 24,"], #16") | ||
398 | TEST( "ldrd r7, r8, [sp], #-16") | ||
399 | |||
400 | TEST_X( "ldrd r12, r14, 3f", | ||
401 | ".align 3 \n\t" | ||
402 | "3: .word "__stringify(VAL1)" \n\t" | ||
403 | " .word "__stringify(VAL2)) | ||
404 | |||
405 | TEST_UNSUPPORTED(".short 0xe9ff,0xec04 @ ldrd r14, r12, [pc, #16]!") | ||
406 | TEST_UNSUPPORTED(".short 0xe8ff,0xec04 @ ldrd r14, r12, [pc], #16") | ||
407 | TEST_UNSUPPORTED(".short 0xe9d4,0xd800 @ ldrd sp, r8, [r4]") | ||
408 | TEST_UNSUPPORTED(".short 0xe9d4,0xf800 @ ldrd pc, r8, [r4]") | ||
409 | TEST_UNSUPPORTED(".short 0xe9d4,0x7d00 @ ldrd r7, sp, [r4]") | ||
410 | TEST_UNSUPPORTED(".short 0xe9d4,0x7f00 @ ldrd r7, pc, [r4]") | ||
411 | |||
412 | TEST_RRP("strd r",0, VAL1,", r",1, VAL2,", [r",1, 24,", #-16]") | ||
413 | TEST_RR( "strd r",12,VAL2,", r",14,VAL1,", [sp, #16]") | ||
414 | TEST_RRP("strd r",1, VAL1,", r",0, VAL2,", [r",7, 24,", #-16]!") | ||
415 | TEST_RR( "strd r",14,VAL2,", r",12,VAL1,", [sp, #16]!") | ||
416 | TEST_RRP("strd r",1, VAL1,", r",0, VAL2,", [r",7, 24,"], #16") | ||
417 | TEST_RR( "strd r",7, VAL2,", r",8, VAL1,", [sp], #-16") | ||
418 | TEST_UNSUPPORTED(".short 0xe9ef,0xec04 @ strd r14, r12, [pc, #16]!") | ||
419 | TEST_UNSUPPORTED(".short 0xe8ef,0xec04 @ strd r14, r12, [pc], #16") | ||
420 | |||
421 | TEST_RX("tbb [pc, r",0, (9f-(1f+4)),"]", | ||
422 | "9: \n\t" | ||
423 | ".byte (2f-1b-4)>>1 \n\t" | ||
424 | ".byte (3f-1b-4)>>1 \n\t" | ||
425 | "3: mvn r0, r0 \n\t" | ||
426 | "2: nop \n\t") | ||
427 | |||
428 | TEST_RX("tbb [pc, r",4, (9f-(1f+4)+1),"]", | ||
429 | "9: \n\t" | ||
430 | ".byte (2f-1b-4)>>1 \n\t" | ||
431 | ".byte (3f-1b-4)>>1 \n\t" | ||
432 | "3: mvn r0, r0 \n\t" | ||
433 | "2: nop \n\t") | ||
434 | |||
435 | TEST_RRX("tbb [r",1,9f,", r",2,0,"]", | ||
436 | "9: \n\t" | ||
437 | ".byte (2f-1b-4)>>1 \n\t" | ||
438 | ".byte (3f-1b-4)>>1 \n\t" | ||
439 | "3: mvn r0, r0 \n\t" | ||
440 | "2: nop \n\t") | ||
441 | |||
442 | TEST_RX("tbh [pc, r",7, (9f-(1f+4))>>1,"]", | ||
443 | "9: \n\t" | ||
444 | ".short (2f-1b-4)>>1 \n\t" | ||
445 | ".short (3f-1b-4)>>1 \n\t" | ||
446 | "3: mvn r0, r0 \n\t" | ||
447 | "2: nop \n\t") | ||
448 | |||
449 | TEST_RX("tbh [pc, r",12, ((9f-(1f+4))>>1)+1,"]", | ||
450 | "9: \n\t" | ||
451 | ".short (2f-1b-4)>>1 \n\t" | ||
452 | ".short (3f-1b-4)>>1 \n\t" | ||
453 | "3: mvn r0, r0 \n\t" | ||
454 | "2: nop \n\t") | ||
455 | |||
456 | TEST_RRX("tbh [r",1,9f, ", r",14,1,"]", | ||
457 | "9: \n\t" | ||
458 | ".short (2f-1b-4)>>1 \n\t" | ||
459 | ".short (3f-1b-4)>>1 \n\t" | ||
460 | "3: mvn r0, r0 \n\t" | ||
461 | "2: nop \n\t") | ||
462 | |||
463 | TEST_UNSUPPORTED(".short 0xe8d1,0xf01f @ tbh [r1, pc]") | ||
464 | TEST_UNSUPPORTED(".short 0xe8d1,0xf01d @ tbh [r1, sp]") | ||
465 | TEST_UNSUPPORTED(".short 0xe8dd,0xf012 @ tbh [sp, r2]") | ||
466 | |||
467 | TEST_UNSUPPORTED("strexb r0, r1, [r2]") | ||
468 | TEST_UNSUPPORTED("strexh r0, r1, [r2]") | ||
469 | TEST_UNSUPPORTED("strexd r0, r1, [r2]") | ||
470 | TEST_UNSUPPORTED("ldrexb r0, [r1]") | ||
471 | TEST_UNSUPPORTED("ldrexh r0, [r1]") | ||
472 | TEST_UNSUPPORTED("ldrexd r0, [r1]") | ||
473 | |||
474 | TEST_GROUP("Data-processing (shifted register) and (modified immediate)") | ||
475 | |||
476 | #define _DATA_PROCESSING32_DNM(op,s,val) \ | ||
477 | TEST_RR(op s".w r0, r",1, VAL1,", r",2, val, "") \ | ||
478 | TEST_RR(op s" r1, r",1, VAL1,", r",2, val, ", lsl #3") \ | ||
479 | TEST_RR(op s" r2, r",3, VAL1,", r",2, val, ", lsr #4") \ | ||
480 | TEST_RR(op s" r3, r",3, VAL1,", r",2, val, ", asr #5") \ | ||
481 | TEST_RR(op s" r4, r",5, VAL1,", r",2, N(val),", asr #6") \ | ||
482 | TEST_RR(op s" r5, r",5, VAL1,", r",2, val, ", ror #7") \ | ||
483 | TEST_RR(op s" r8, r",9, VAL1,", r",10,val, ", rrx") \ | ||
484 | TEST_R( op s" r0, r",11,VAL1,", #0x00010001") \ | ||
485 | TEST_R( op s" r11, r",0, VAL1,", #0xf5000000") \ | ||
486 | TEST_R( op s" r7, r",8, VAL2,", #0x000af000") | ||
487 | |||
488 | #define DATA_PROCESSING32_DNM(op,val) \ | ||
489 | _DATA_PROCESSING32_DNM(op,"",val) \ | ||
490 | _DATA_PROCESSING32_DNM(op,"s",val) | ||
491 | |||
492 | #define DATA_PROCESSING32_NM(op,val) \ | ||
493 | TEST_RR(op".w r",1, VAL1,", r",2, val, "") \ | ||
494 | TEST_RR(op" r",1, VAL1,", r",2, val, ", lsl #3") \ | ||
495 | TEST_RR(op" r",3, VAL1,", r",2, val, ", lsr #4") \ | ||
496 | TEST_RR(op" r",3, VAL1,", r",2, val, ", asr #5") \ | ||
497 | TEST_RR(op" r",5, VAL1,", r",2, N(val),", asr #6") \ | ||
498 | TEST_RR(op" r",5, VAL1,", r",2, val, ", ror #7") \ | ||
499 | TEST_RR(op" r",9, VAL1,", r",10,val, ", rrx") \ | ||
500 | TEST_R( op" r",11,VAL1,", #0x00010001") \ | ||
501 | TEST_R( op" r",0, VAL1,", #0xf5000000") \ | ||
502 | TEST_R( op" r",8, VAL2,", #0x000af000") | ||
503 | |||
504 | #define _DATA_PROCESSING32_DM(op,s,val) \ | ||
505 | TEST_R( op s".w r0, r",14, val, "") \ | ||
506 | TEST_R( op s" r1, r",12, val, ", lsl #3") \ | ||
507 | TEST_R( op s" r2, r",11, val, ", lsr #4") \ | ||
508 | TEST_R( op s" r3, r",10, val, ", asr #5") \ | ||
509 | TEST_R( op s" r4, r",9, N(val),", asr #6") \ | ||
510 | TEST_R( op s" r5, r",8, val, ", ror #7") \ | ||
511 | TEST_R( op s" r8, r",7,val, ", rrx") \ | ||
512 | TEST( op s" r0, #0x00010001") \ | ||
513 | TEST( op s" r11, #0xf5000000") \ | ||
514 | TEST( op s" r7, #0x000af000") \ | ||
515 | TEST( op s" r4, #0x00005a00") | ||
516 | |||
517 | #define DATA_PROCESSING32_DM(op,val) \ | ||
518 | _DATA_PROCESSING32_DM(op,"",val) \ | ||
519 | _DATA_PROCESSING32_DM(op,"s",val) | ||
520 | |||
521 | DATA_PROCESSING32_DNM("and",0xf00f00ff) | ||
522 | DATA_PROCESSING32_NM("tst",0xf00f00ff) | ||
523 | DATA_PROCESSING32_DNM("bic",0xf00f00ff) | ||
524 | DATA_PROCESSING32_DNM("orr",0xf00f00ff) | ||
525 | DATA_PROCESSING32_DM("mov",VAL2) | ||
526 | DATA_PROCESSING32_DNM("orn",0xf00f00ff) | ||
527 | DATA_PROCESSING32_DM("mvn",VAL2) | ||
528 | DATA_PROCESSING32_DNM("eor",0xf00f00ff) | ||
529 | DATA_PROCESSING32_NM("teq",0xf00f00ff) | ||
530 | DATA_PROCESSING32_DNM("add",VAL2) | ||
531 | DATA_PROCESSING32_NM("cmn",VAL2) | ||
532 | DATA_PROCESSING32_DNM("adc",VAL2) | ||
533 | DATA_PROCESSING32_DNM("sbc",VAL2) | ||
534 | DATA_PROCESSING32_DNM("sub",VAL2) | ||
535 | DATA_PROCESSING32_NM("cmp",VAL2) | ||
536 | DATA_PROCESSING32_DNM("rsb",VAL2) | ||
537 | |||
538 | TEST_RR("pkhbt r0, r",0, HH1,", r",1, HH2,"") | ||
539 | TEST_RR("pkhbt r14,r",12, HH1,", r",10,HH2,", lsl #2") | ||
540 | TEST_RR("pkhtb r0, r",0, HH1,", r",1, HH2,"") | ||
541 | TEST_RR("pkhtb r14,r",12, HH1,", r",10,HH2,", asr #2") | ||
542 | |||
543 | TEST_UNSUPPORTED(".short 0xea17,0x0f0d @ tst.w r7, sp") | ||
544 | TEST_UNSUPPORTED(".short 0xea17,0x0f0f @ tst.w r7, pc") | ||
545 | TEST_UNSUPPORTED(".short 0xea1d,0x0f07 @ tst.w sp, r7") | ||
546 | TEST_UNSUPPORTED(".short 0xea1f,0x0f07 @ tst.w pc, r7") | ||
547 | TEST_UNSUPPORTED(".short 0xf01d,0x1f08 @ tst sp, #0x00080008") | ||
548 | TEST_UNSUPPORTED(".short 0xf01f,0x1f08 @ tst pc, #0x00080008") | ||
549 | |||
550 | TEST_UNSUPPORTED(".short 0xea97,0x0f0d @ teq.w r7, sp") | ||
551 | TEST_UNSUPPORTED(".short 0xea97,0x0f0f @ teq.w r7, pc") | ||
552 | TEST_UNSUPPORTED(".short 0xea9d,0x0f07 @ teq.w sp, r7") | ||
553 | TEST_UNSUPPORTED(".short 0xea9f,0x0f07 @ teq.w pc, r7") | ||
554 | TEST_UNSUPPORTED(".short 0xf09d,0x1f08 @ tst sp, #0x00080008") | ||
555 | TEST_UNSUPPORTED(".short 0xf09f,0x1f08 @ tst pc, #0x00080008") | ||
556 | |||
557 | TEST_UNSUPPORTED(".short 0xeb17,0x0f0d @ cmn.w r7, sp") | ||
558 | TEST_UNSUPPORTED(".short 0xeb17,0x0f0f @ cmn.w r7, pc") | ||
559 | TEST_P("cmn.w sp, r",7,0,"") | ||
560 | TEST_UNSUPPORTED(".short 0xeb1f,0x0f07 @ cmn.w pc, r7") | ||
561 | TEST( "cmn sp, #0x00080008") | ||
562 | TEST_UNSUPPORTED(".short 0xf11f,0x1f08 @ cmn pc, #0x00080008") | ||
563 | |||
564 | TEST_UNSUPPORTED(".short 0xebb7,0x0f0d @ cmp.w r7, sp") | ||
565 | TEST_UNSUPPORTED(".short 0xebb7,0x0f0f @ cmp.w r7, pc") | ||
566 | TEST_P("cmp.w sp, r",7,0,"") | ||
567 | TEST_UNSUPPORTED(".short 0xebbf,0x0f07 @ cmp.w pc, r7") | ||
568 | TEST( "cmp sp, #0x00080008") | ||
569 | TEST_UNSUPPORTED(".short 0xf1bf,0x1f08 @ cmp pc, #0x00080008") | ||
570 | |||
571 | TEST_UNSUPPORTED(".short 0xea5f,0x070d @ movs.w r7, sp") | ||
572 | TEST_UNSUPPORTED(".short 0xea5f,0x070f @ movs.w r7, pc") | ||
573 | TEST_UNSUPPORTED(".short 0xea5f,0x0d07 @ movs.w sp, r7") | ||
574 | TEST_UNSUPPORTED(".short 0xea4f,0x0f07 @ mov.w pc, r7") | ||
575 | TEST_UNSUPPORTED(".short 0xf04f,0x1d08 @ mov sp, #0x00080008") | ||
576 | TEST_UNSUPPORTED(".short 0xf04f,0x1f08 @ mov pc, #0x00080008") | ||
577 | |||
578 | TEST_R("add.w r0, sp, r",1, 4,"") | ||
579 | TEST_R("adds r0, sp, r",1, 4,", asl #3") | ||
580 | TEST_R("add r0, sp, r",1, 4,", asl #4") | ||
581 | TEST_R("add r0, sp, r",1, 16,", ror #1") | ||
582 | TEST_R("add.w sp, sp, r",1, 4,"") | ||
583 | TEST_R("add sp, sp, r",1, 4,", asl #3") | ||
584 | TEST_UNSUPPORTED(".short 0xeb0d,0x1d01 @ add sp, sp, r1, asl #4") | ||
585 | TEST_UNSUPPORTED(".short 0xeb0d,0x0d71 @ add sp, sp, r1, ror #1") | ||
586 | TEST( "add.w r0, sp, #24") | ||
587 | TEST( "add.w sp, sp, #24") | ||
588 | TEST_UNSUPPORTED(".short 0xeb0d,0x0f01 @ add pc, sp, r1") | ||
589 | TEST_UNSUPPORTED(".short 0xeb0d,0x000f @ add r0, sp, pc") | ||
590 | TEST_UNSUPPORTED(".short 0xeb0d,0x000d @ add r0, sp, sp") | ||
591 | TEST_UNSUPPORTED(".short 0xeb0d,0x0d0f @ add sp, sp, pc") | ||
592 | TEST_UNSUPPORTED(".short 0xeb0d,0x0d0d @ add sp, sp, sp") | ||
593 | |||
594 | TEST_R("sub.w r0, sp, r",1, 4,"") | ||
595 | TEST_R("subs r0, sp, r",1, 4,", asl #3") | ||
596 | TEST_R("sub r0, sp, r",1, 4,", asl #4") | ||
597 | TEST_R("sub r0, sp, r",1, 16,", ror #1") | ||
598 | TEST_R("sub.w sp, sp, r",1, 4,"") | ||
599 | TEST_R("sub sp, sp, r",1, 4,", asl #3") | ||
600 | TEST_UNSUPPORTED(".short 0xebad,0x1d01 @ sub sp, sp, r1, asl #4") | ||
601 | TEST_UNSUPPORTED(".short 0xebad,0x0d71 @ sub sp, sp, r1, ror #1") | ||
602 | TEST_UNSUPPORTED(".short 0xebad,0x0f01 @ sub pc, sp, r1") | ||
603 | TEST( "sub.w r0, sp, #24") | ||
604 | TEST( "sub.w sp, sp, #24") | ||
605 | |||
606 | TEST_UNSUPPORTED(".short 0xea02,0x010f @ and r1, r2, pc") | ||
607 | TEST_UNSUPPORTED(".short 0xea0f,0x0103 @ and r1, pc, r3") | ||
608 | TEST_UNSUPPORTED(".short 0xea02,0x0f03 @ and pc, r2, r3") | ||
609 | TEST_UNSUPPORTED(".short 0xea02,0x010d @ and r1, r2, sp") | ||
610 | TEST_UNSUPPORTED(".short 0xea0d,0x0103 @ and r1, sp, r3") | ||
611 | TEST_UNSUPPORTED(".short 0xea02,0x0d03 @ and sp, r2, r3") | ||
612 | TEST_UNSUPPORTED(".short 0xf00d,0x1108 @ and r1, sp, #0x00080008") | ||
613 | TEST_UNSUPPORTED(".short 0xf00f,0x1108 @ and r1, pc, #0x00080008") | ||
614 | TEST_UNSUPPORTED(".short 0xf002,0x1d08 @ and sp, r8, #0x00080008") | ||
615 | TEST_UNSUPPORTED(".short 0xf002,0x1f08 @ and pc, r8, #0x00080008") | ||
616 | |||
617 | TEST_UNSUPPORTED(".short 0xeb02,0x010f @ add r1, r2, pc") | ||
618 | TEST_UNSUPPORTED(".short 0xeb0f,0x0103 @ add r1, pc, r3") | ||
619 | TEST_UNSUPPORTED(".short 0xeb02,0x0f03 @ add pc, r2, r3") | ||
620 | TEST_UNSUPPORTED(".short 0xeb02,0x010d @ add r1, r2, sp") | ||
621 | TEST_SUPPORTED( ".short 0xeb0d,0x0103 @ add r1, sp, r3") | ||
622 | TEST_UNSUPPORTED(".short 0xeb02,0x0d03 @ add sp, r2, r3") | ||
623 | TEST_SUPPORTED( ".short 0xf10d,0x1108 @ add r1, sp, #0x00080008") | ||
624 | TEST_UNSUPPORTED(".short 0xf10d,0x1f08 @ add pc, sp, #0x00080008") | ||
625 | TEST_UNSUPPORTED(".short 0xf10f,0x1108 @ add r1, pc, #0x00080008") | ||
626 | TEST_UNSUPPORTED(".short 0xf102,0x1d08 @ add sp, r8, #0x00080008") | ||
627 | TEST_UNSUPPORTED(".short 0xf102,0x1f08 @ add pc, r8, #0x00080008") | ||
628 | |||
629 | TEST_UNSUPPORTED(".short 0xeaa0,0x0000") | ||
630 | TEST_UNSUPPORTED(".short 0xeaf0,0x0000") | ||
631 | TEST_UNSUPPORTED(".short 0xeb20,0x0000") | ||
632 | TEST_UNSUPPORTED(".short 0xeb80,0x0000") | ||
633 | TEST_UNSUPPORTED(".short 0xebe0,0x0000") | ||
634 | |||
635 | TEST_UNSUPPORTED(".short 0xf0a0,0x0000") | ||
636 | TEST_UNSUPPORTED(".short 0xf0c0,0x0000") | ||
637 | TEST_UNSUPPORTED(".short 0xf0f0,0x0000") | ||
638 | TEST_UNSUPPORTED(".short 0xf120,0x0000") | ||
639 | TEST_UNSUPPORTED(".short 0xf180,0x0000") | ||
640 | TEST_UNSUPPORTED(".short 0xf1e0,0x0000") | ||
641 | |||
642 | TEST_GROUP("Coprocessor instructions") | ||
643 | |||
644 | TEST_UNSUPPORTED(".short 0xec00,0x0000") | ||
645 | TEST_UNSUPPORTED(".short 0xeff0,0x0000") | ||
646 | TEST_UNSUPPORTED(".short 0xfc00,0x0000") | ||
647 | TEST_UNSUPPORTED(".short 0xfff0,0x0000") | ||
648 | |||
649 | TEST_GROUP("Data-processing (plain binary immediate)") | ||
650 | |||
651 | TEST_R("addw r0, r",1, VAL1,", #0x123") | ||
652 | TEST( "addw r14, sp, #0xf5a") | ||
653 | TEST( "addw sp, sp, #0x20") | ||
654 | TEST( "addw r7, pc, #0x888") | ||
655 | TEST_UNSUPPORTED(".short 0xf20f,0x1f20 @ addw pc, pc, #0x120") | ||
656 | TEST_UNSUPPORTED(".short 0xf20d,0x1f20 @ addw pc, sp, #0x120") | ||
657 | TEST_UNSUPPORTED(".short 0xf20f,0x1d20 @ addw sp, pc, #0x120") | ||
658 | TEST_UNSUPPORTED(".short 0xf200,0x1d20 @ addw sp, r0, #0x120") | ||
659 | |||
660 | TEST_R("subw r0, r",1, VAL1,", #0x123") | ||
661 | TEST( "subw r14, sp, #0xf5a") | ||
662 | TEST( "subw sp, sp, #0x20") | ||
663 | TEST( "subw r7, pc, #0x888") | ||
664 | TEST_UNSUPPORTED(".short 0xf2af,0x1f20 @ subw pc, pc, #0x120") | ||
665 | TEST_UNSUPPORTED(".short 0xf2ad,0x1f20 @ subw pc, sp, #0x120") | ||
666 | TEST_UNSUPPORTED(".short 0xf2af,0x1d20 @ subw sp, pc, #0x120") | ||
667 | TEST_UNSUPPORTED(".short 0xf2a0,0x1d20 @ subw sp, r0, #0x120") | ||
668 | |||
669 | TEST("movw r0, #0") | ||
670 | TEST("movw r0, #0xffff") | ||
671 | TEST("movw lr, #0xffff") | ||
672 | TEST_UNSUPPORTED(".short 0xf240,0x0d00 @ movw sp, #0") | ||
673 | TEST_UNSUPPORTED(".short 0xf240,0x0f00 @ movw pc, #0") | ||
674 | |||
675 | TEST_R("movt r",0, VAL1,", #0") | ||
676 | TEST_R("movt r",0, VAL2,", #0xffff") | ||
677 | TEST_R("movt r",14,VAL1,", #0xffff") | ||
678 | TEST_UNSUPPORTED(".short 0xf2c0,0x0d00 @ movt sp, #0") | ||
679 | TEST_UNSUPPORTED(".short 0xf2c0,0x0f00 @ movt pc, #0") | ||
680 | |||
681 | TEST_R( "ssat r0, #24, r",0, VAL1,"") | ||
682 | TEST_R( "ssat r14, #24, r",12, VAL2,"") | ||
683 | TEST_R( "ssat r0, #24, r",0, VAL1,", lsl #8") | ||
684 | TEST_R( "ssat r14, #24, r",12, VAL2,", asr #8") | ||
685 | TEST_UNSUPPORTED(".short 0xf30c,0x0d17 @ ssat sp, #24, r12") | ||
686 | TEST_UNSUPPORTED(".short 0xf30c,0x0f17 @ ssat pc, #24, r12") | ||
687 | TEST_UNSUPPORTED(".short 0xf30d,0x0c17 @ ssat r12, #24, sp") | ||
688 | TEST_UNSUPPORTED(".short 0xf30f,0x0c17 @ ssat r12, #24, pc") | ||
689 | |||
690 | TEST_R( "usat r0, #24, r",0, VAL1,"") | ||
691 | TEST_R( "usat r14, #24, r",12, VAL2,"") | ||
692 | TEST_R( "usat r0, #24, r",0, VAL1,", lsl #8") | ||
693 | TEST_R( "usat r14, #24, r",12, VAL2,", asr #8") | ||
694 | TEST_UNSUPPORTED(".short 0xf38c,0x0d17 @ usat sp, #24, r12") | ||
695 | TEST_UNSUPPORTED(".short 0xf38c,0x0f17 @ usat pc, #24, r12") | ||
696 | TEST_UNSUPPORTED(".short 0xf38d,0x0c17 @ usat r12, #24, sp") | ||
697 | TEST_UNSUPPORTED(".short 0xf38f,0x0c17 @ usat r12, #24, pc") | ||
698 | |||
699 | TEST_R( "ssat16 r0, #12, r",0, HH1,"") | ||
700 | TEST_R( "ssat16 r14, #12, r",12, HH2,"") | ||
701 | TEST_UNSUPPORTED(".short 0xf32c,0x0d0b @ ssat16 sp, #12, r12") | ||
702 | TEST_UNSUPPORTED(".short 0xf32c,0x0f0b @ ssat16 pc, #12, r12") | ||
703 | TEST_UNSUPPORTED(".short 0xf32d,0x0c0b @ ssat16 r12, #12, sp") | ||
704 | TEST_UNSUPPORTED(".short 0xf32f,0x0c0b @ ssat16 r12, #12, pc") | ||
705 | |||
706 | TEST_R( "usat16 r0, #12, r",0, HH1,"") | ||
707 | TEST_R( "usat16 r14, #12, r",12, HH2,"") | ||
708 | TEST_UNSUPPORTED(".short 0xf3ac,0x0d0b @ usat16 sp, #12, r12") | ||
709 | TEST_UNSUPPORTED(".short 0xf3ac,0x0f0b @ usat16 pc, #12, r12") | ||
710 | TEST_UNSUPPORTED(".short 0xf3ad,0x0c0b @ usat16 r12, #12, sp") | ||
711 | TEST_UNSUPPORTED(".short 0xf3af,0x0c0b @ usat16 r12, #12, pc") | ||
712 | |||
713 | TEST_R( "sbfx r0, r",0 , VAL1,", #0, #31") | ||
714 | TEST_R( "sbfx r14, r",12, VAL2,", #8, #16") | ||
715 | TEST_R( "sbfx r4, r",10, VAL1,", #16, #15") | ||
716 | TEST_UNSUPPORTED(".short 0xf34c,0x2d0f @ sbfx sp, r12, #8, #16") | ||
717 | TEST_UNSUPPORTED(".short 0xf34c,0x2f0f @ sbfx pc, r12, #8, #16") | ||
718 | TEST_UNSUPPORTED(".short 0xf34d,0x2c0f @ sbfx r12, sp, #8, #16") | ||
719 | TEST_UNSUPPORTED(".short 0xf34f,0x2c0f @ sbfx r12, pc, #8, #16") | ||
720 | |||
721 | TEST_R( "ubfx r0, r",0 , VAL1,", #0, #31") | ||
722 | TEST_R( "ubfx r14, r",12, VAL2,", #8, #16") | ||
723 | TEST_R( "ubfx r4, r",10, VAL1,", #16, #15") | ||
724 | TEST_UNSUPPORTED(".short 0xf3cc,0x2d0f @ ubfx sp, r12, #8, #16") | ||
725 | TEST_UNSUPPORTED(".short 0xf3cc,0x2f0f @ ubfx pc, r12, #8, #16") | ||
726 | TEST_UNSUPPORTED(".short 0xf3cd,0x2c0f @ ubfx r12, sp, #8, #16") | ||
727 | TEST_UNSUPPORTED(".short 0xf3cf,0x2c0f @ ubfx r12, pc, #8, #16") | ||
728 | |||
729 | TEST_R( "bfc r",0, VAL1,", #4, #20") | ||
730 | TEST_R( "bfc r",14,VAL2,", #4, #20") | ||
731 | TEST_R( "bfc r",7, VAL1,", #0, #31") | ||
732 | TEST_R( "bfc r",8, VAL2,", #0, #31") | ||
733 | TEST_UNSUPPORTED(".short 0xf36f,0x0d1e @ bfc sp, #0, #31") | ||
734 | TEST_UNSUPPORTED(".short 0xf36f,0x0f1e @ bfc pc, #0, #31") | ||
735 | |||
736 | TEST_RR( "bfi r",0, VAL1,", r",0 , VAL2,", #0, #31") | ||
737 | TEST_RR( "bfi r",12,VAL1,", r",14 , VAL2,", #4, #20") | ||
738 | TEST_UNSUPPORTED(".short 0xf36e,0x1d17 @ bfi sp, r14, #4, #20") | ||
739 | TEST_UNSUPPORTED(".short 0xf36e,0x1f17 @ bfi pc, r14, #4, #20") | ||
740 | TEST_UNSUPPORTED(".short 0xf36d,0x1e17 @ bfi r14, sp, #4, #20") | ||
741 | |||
742 | TEST_GROUP("Branches and miscellaneous control") | ||
743 | |||
744 | CONDITION_INSTRUCTIONS(22, | ||
745 | TEST_BF("beq.w 2f") | ||
746 | TEST_BB("bne.w 2b") | ||
747 | TEST_BF("bgt.w 2f") | ||
748 | TEST_BB("blt.w 2b") | ||
749 | TEST_BF_X("bpl.w 2f",0x1000) | ||
750 | ) | ||
751 | |||
752 | TEST_UNSUPPORTED("msr cpsr, r0") | ||
753 | TEST_UNSUPPORTED("msr cpsr_f, r1") | ||
754 | TEST_UNSUPPORTED("msr spsr, r2") | ||
755 | |||
756 | TEST_UNSUPPORTED("cpsie.w i") | ||
757 | TEST_UNSUPPORTED("cpsid.w i") | ||
758 | TEST_UNSUPPORTED("cps 0x13") | ||
759 | |||
760 | TEST_SUPPORTED("yield.w") | ||
761 | TEST("sev.w") | ||
762 | TEST("nop.w") | ||
763 | TEST("wfi.w") | ||
764 | TEST_SUPPORTED("wfe.w") | ||
765 | TEST_UNSUPPORTED("dbg.w #0") | ||
766 | |||
767 | TEST_UNSUPPORTED("clrex") | ||
768 | TEST_UNSUPPORTED("dsb") | ||
769 | TEST_UNSUPPORTED("dmb") | ||
770 | TEST_UNSUPPORTED("isb") | ||
771 | |||
772 | TEST_UNSUPPORTED("bxj r0") | ||
773 | |||
774 | TEST_UNSUPPORTED("subs pc, lr, #4") | ||
775 | |||
776 | TEST("mrs r0, cpsr") | ||
777 | TEST("mrs r14, cpsr") | ||
778 | TEST_UNSUPPORTED(".short 0xf3ef,0x8d00 @ mrs sp, spsr") | ||
779 | TEST_UNSUPPORTED(".short 0xf3ef,0x8f00 @ mrs pc, spsr") | ||
780 | TEST_UNSUPPORTED("mrs r0, spsr") | ||
781 | TEST_UNSUPPORTED("mrs lr, spsr") | ||
782 | |||
783 | TEST_UNSUPPORTED(".short 0xf7f0,0x8000 @ smc #0") | ||
784 | |||
785 | TEST_UNSUPPORTED(".short 0xf7f0,0xa000 @ undefeined") | ||
786 | |||
787 | TEST_BF( "b.w 2f") | ||
788 | TEST_BB( "b.w 2b") | ||
789 | TEST_BF_X("b.w 2f", 0x1000) | ||
790 | |||
791 | TEST_BF( "bl.w 2f") | ||
792 | TEST_BB( "bl.w 2b") | ||
793 | TEST_BB_X("bl.w 2b", 0x1000) | ||
794 | |||
795 | TEST_X( "blx __dummy_arm_subroutine", | ||
796 | ".arm \n\t" | ||
797 | ".align \n\t" | ||
798 | ".type __dummy_arm_subroutine, %%function \n\t" | ||
799 | "__dummy_arm_subroutine: \n\t" | ||
800 | "mov r0, pc \n\t" | ||
801 | "bx lr \n\t" | ||
802 | ".thumb \n\t" | ||
803 | ) | ||
804 | TEST( "blx __dummy_arm_subroutine") | ||
805 | |||
806 | TEST_GROUP("Store single data item") | ||
807 | |||
808 | #define SINGLE_STORE(size) \ | ||
809 | TEST_RP( "str"size" r",0, VAL1,", [r",11,-1024,", #1024]") \ | ||
810 | TEST_RP( "str"size" r",14,VAL2,", [r",1, -1024,", #1080]") \ | ||
811 | TEST_RP( "str"size" r",0, VAL1,", [r",11,256, ", #-120]") \ | ||
812 | TEST_RP( "str"size" r",14,VAL2,", [r",1, 256, ", #-128]") \ | ||
813 | TEST_RP( "str"size" r",0, VAL1,", [r",11,24, "], #120") \ | ||
814 | TEST_RP( "str"size" r",14,VAL2,", [r",1, 24, "], #128") \ | ||
815 | TEST_RP( "str"size" r",0, VAL1,", [r",11,24, "], #-120") \ | ||
816 | TEST_RP( "str"size" r",14,VAL2,", [r",1, 24, "], #-128") \ | ||
817 | TEST_RP( "str"size" r",0, VAL1,", [r",11,24, ", #120]!") \ | ||
818 | TEST_RP( "str"size" r",14,VAL2,", [r",1, 24, ", #128]!") \ | ||
819 | TEST_RP( "str"size" r",0, VAL1,", [r",11,256, ", #-120]!") \ | ||
820 | TEST_RP( "str"size" r",14,VAL2,", [r",1, 256, ", #-128]!") \ | ||
821 | TEST_RPR("str"size".w r",0, VAL1,", [r",1, 0,", r",2, 4,"]") \ | ||
822 | TEST_RPR("str"size" r",14,VAL2,", [r",10,0,", r",11,4,", lsl #1]") \ | ||
823 | TEST_R( "str"size".w r",7, VAL1,", [sp, #24]") \ | ||
824 | TEST_RP( "str"size".w r",0, VAL2,", [r",0,0, "]") \ | ||
825 | TEST_UNSUPPORTED("str"size"t r0, [r1, #4]") | ||
826 | |||
827 | SINGLE_STORE("b") | ||
828 | SINGLE_STORE("h") | ||
829 | SINGLE_STORE("") | ||
830 | |||
831 | TEST("str sp, [sp]") | ||
832 | TEST_UNSUPPORTED(".short 0xf8cf,0xe000 @ str r14, [pc]") | ||
833 | TEST_UNSUPPORTED(".short 0xf8ce,0xf000 @ str pc, [r14]") | ||
834 | |||
835 | TEST_GROUP("Advanced SIMD element or structure load/store instructions") | ||
836 | |||
837 | TEST_UNSUPPORTED(".short 0xf900,0x0000") | ||
838 | TEST_UNSUPPORTED(".short 0xf92f,0xffff") | ||
839 | TEST_UNSUPPORTED(".short 0xf980,0x0000") | ||
840 | TEST_UNSUPPORTED(".short 0xf9ef,0xffff") | ||
841 | |||
842 | TEST_GROUP("Load single data item and memory hints") | ||
843 | |||
844 | #define SINGLE_LOAD(size) \ | ||
845 | TEST_P( "ldr"size" r0, [r",11,-1024, ", #1024]") \ | ||
846 | TEST_P( "ldr"size" r14, [r",1, -1024,", #1080]") \ | ||
847 | TEST_P( "ldr"size" r0, [r",11,256, ", #-120]") \ | ||
848 | TEST_P( "ldr"size" r14, [r",1, 256, ", #-128]") \ | ||
849 | TEST_P( "ldr"size" r0, [r",11,24, "], #120") \ | ||
850 | TEST_P( "ldr"size" r14, [r",1, 24, "], #128") \ | ||
851 | TEST_P( "ldr"size" r0, [r",11,24, "], #-120") \ | ||
852 | TEST_P( "ldr"size" r14, [r",1,24, "], #-128") \ | ||
853 | TEST_P( "ldr"size" r0, [r",11,24, ", #120]!") \ | ||
854 | TEST_P( "ldr"size" r14, [r",1, 24, ", #128]!") \ | ||
855 | TEST_P( "ldr"size" r0, [r",11,256, ", #-120]!") \ | ||
856 | TEST_P( "ldr"size" r14, [r",1, 256, ", #-128]!") \ | ||
857 | TEST_PR("ldr"size".w r0, [r",1, 0,", r",2, 4,"]") \ | ||
858 | TEST_PR("ldr"size" r14, [r",10,0,", r",11,4,", lsl #1]") \ | ||
859 | TEST_X( "ldr"size".w r0, 3f", \ | ||
860 | ".align 3 \n\t" \ | ||
861 | "3: .word "__stringify(VAL1)) \ | ||
862 | TEST_X( "ldr"size".w r14, 3f", \ | ||
863 | ".align 3 \n\t" \ | ||
864 | "3: .word "__stringify(VAL2)) \ | ||
865 | TEST( "ldr"size".w r7, 3b") \ | ||
866 | TEST( "ldr"size".w r7, [sp, #24]") \ | ||
867 | TEST_P( "ldr"size".w r0, [r",0,0, "]") \ | ||
868 | TEST_UNSUPPORTED("ldr"size"t r0, [r1, #4]") | ||
869 | |||
870 | SINGLE_LOAD("b") | ||
871 | SINGLE_LOAD("sb") | ||
872 | SINGLE_LOAD("h") | ||
873 | SINGLE_LOAD("sh") | ||
874 | SINGLE_LOAD("") | ||
875 | |||
876 | TEST_BF_P("ldr pc, [r",14, 15*4,"]") | ||
877 | TEST_P( "ldr sp, [r",14, 13*4,"]") | ||
878 | TEST_BF_R("ldr pc, [sp, r",14, 15*4,"]") | ||
879 | TEST_R( "ldr sp, [sp, r",14, 13*4,"]") | ||
880 | TEST_THUMB_TO_ARM_INTERWORK_P("ldr pc, [r",0,0,", #15*4]") | ||
881 | TEST_SUPPORTED("ldr sp, 99f") | ||
882 | TEST_SUPPORTED("ldr pc, 99f") | ||
883 | |||
884 | TEST_UNSUPPORTED(".short 0xf854,0x700d @ ldr r7, [r4, sp]") | ||
885 | TEST_UNSUPPORTED(".short 0xf854,0x700f @ ldr r7, [r4, pc]") | ||
886 | TEST_UNSUPPORTED(".short 0xf814,0x700d @ ldrb r7, [r4, sp]") | ||
887 | TEST_UNSUPPORTED(".short 0xf814,0x700f @ ldrb r7, [r4, pc]") | ||
888 | TEST_UNSUPPORTED(".short 0xf89f,0xd004 @ ldrb sp, 99f") | ||
889 | TEST_UNSUPPORTED(".short 0xf814,0xd008 @ ldrb sp, [r4, r8]") | ||
890 | TEST_UNSUPPORTED(".short 0xf894,0xd000 @ ldrb sp, [r4]") | ||
891 | |||
892 | TEST_UNSUPPORTED(".short 0xf860,0x0000") /* Unallocated space */ | ||
893 | TEST_UNSUPPORTED(".short 0xf9ff,0xffff") /* Unallocated space */ | ||
894 | TEST_UNSUPPORTED(".short 0xf950,0x0000") /* Unallocated space */ | ||
895 | TEST_UNSUPPORTED(".short 0xf95f,0xffff") /* Unallocated space */ | ||
896 | TEST_UNSUPPORTED(".short 0xf800,0x0800") /* Unallocated space */ | ||
897 | TEST_UNSUPPORTED(".short 0xf97f,0xfaff") /* Unallocated space */ | ||
898 | |||
899 | TEST( "pli [pc, #4]") | ||
900 | TEST( "pli [pc, #-4]") | ||
901 | TEST( "pld [pc, #4]") | ||
902 | TEST( "pld [pc, #-4]") | ||
903 | |||
904 | TEST_P( "pld [r",0,-1024,", #1024]") | ||
905 | TEST( ".short 0xf8b0,0xf400 @ pldw [r0, #1024]") | ||
906 | TEST_P( "pli [r",4, 0b,", #1024]") | ||
907 | TEST_P( "pld [r",7, 120,", #-120]") | ||
908 | TEST( ".short 0xf837,0xfc78 @ pldw [r7, #-120]") | ||
909 | TEST_P( "pli [r",11,120,", #-120]") | ||
910 | TEST( "pld [sp, #0]") | ||
911 | |||
912 | TEST_PR("pld [r",7, 24, ", r",0, 16,"]") | ||
913 | TEST_PR("pld [r",8, 24, ", r",12,16,", lsl #3]") | ||
914 | TEST_SUPPORTED(".short 0xf837,0xf000 @ pldw [r7, r0]") | ||
915 | TEST_SUPPORTED(".short 0xf838,0xf03c @ pldw [r8, r12, lsl #3]"); | ||
916 | TEST_RR("pli [r",12,0b,", r",0, 16,"]") | ||
917 | TEST_RR("pli [r",0, 0b,", r",12,16,", lsl #3]") | ||
918 | TEST_R( "pld [sp, r",1, 16,"]") | ||
919 | TEST_UNSUPPORTED(".short 0xf817,0xf00d @pld [r7, sp]") | ||
920 | TEST_UNSUPPORTED(".short 0xf817,0xf00f @pld [r7, pc]") | ||
921 | |||
922 | TEST_GROUP("Data-processing (register)") | ||
923 | |||
924 | #define SHIFTS32(op) \ | ||
925 | TEST_RR(op" r0, r",1, VAL1,", r",2, 3, "") \ | ||
926 | TEST_RR(op" r14, r",12,VAL2,", r",11,10,"") | ||
927 | |||
928 | SHIFTS32("lsl") | ||
929 | SHIFTS32("lsls") | ||
930 | SHIFTS32("lsr") | ||
931 | SHIFTS32("lsrs") | ||
932 | SHIFTS32("asr") | ||
933 | SHIFTS32("asrs") | ||
934 | SHIFTS32("ror") | ||
935 | SHIFTS32("rors") | ||
936 | |||
937 | TEST_UNSUPPORTED(".short 0xfa01,0xff02 @ lsl pc, r1, r2") | ||
938 | TEST_UNSUPPORTED(".short 0xfa01,0xfd02 @ lsl sp, r1, r2") | ||
939 | TEST_UNSUPPORTED(".short 0xfa0f,0xf002 @ lsl r0, pc, r2") | ||
940 | TEST_UNSUPPORTED(".short 0xfa0d,0xf002 @ lsl r0, sp, r2") | ||
941 | TEST_UNSUPPORTED(".short 0xfa01,0xf00f @ lsl r0, r1, pc") | ||
942 | TEST_UNSUPPORTED(".short 0xfa01,0xf00d @ lsl r0, r1, sp") | ||
943 | |||
944 | TEST_RR( "sxtah r0, r",0, HH1,", r",1, HH2,"") | ||
945 | TEST_RR( "sxtah r14,r",12, HH2,", r",10,HH1,", ror #8") | ||
946 | TEST_R( "sxth r8, r",7, HH1,"") | ||
947 | |||
948 | TEST_UNSUPPORTED(".short 0xfa0f,0xff87 @ sxth pc, r7"); | ||
949 | TEST_UNSUPPORTED(".short 0xfa0f,0xfd87 @ sxth sp, r7"); | ||
950 | TEST_UNSUPPORTED(".short 0xfa0f,0xf88f @ sxth r8, pc"); | ||
951 | TEST_UNSUPPORTED(".short 0xfa0f,0xf88d @ sxth r8, sp"); | ||
952 | |||
953 | TEST_RR( "uxtah r0, r",0, HH1,", r",1, HH2,"") | ||
954 | TEST_RR( "uxtah r14,r",12, HH2,", r",10,HH1,", ror #8") | ||
955 | TEST_R( "uxth r8, r",7, HH1,"") | ||
956 | |||
957 | TEST_RR( "sxtab16 r0, r",0, HH1,", r",1, HH2,"") | ||
958 | TEST_RR( "sxtab16 r14,r",12, HH2,", r",10,HH1,", ror #8") | ||
959 | TEST_R( "sxtb16 r8, r",7, HH1,"") | ||
960 | |||
961 | TEST_RR( "uxtab16 r0, r",0, HH1,", r",1, HH2,"") | ||
962 | TEST_RR( "uxtab16 r14,r",12, HH2,", r",10,HH1,", ror #8") | ||
963 | TEST_R( "uxtb16 r8, r",7, HH1,"") | ||
964 | |||
965 | TEST_RR( "sxtab r0, r",0, HH1,", r",1, HH2,"") | ||
966 | TEST_RR( "sxtab r14,r",12, HH2,", r",10,HH1,", ror #8") | ||
967 | TEST_R( "sxtb r8, r",7, HH1,"") | ||
968 | |||
969 | TEST_RR( "uxtab r0, r",0, HH1,", r",1, HH2,"") | ||
970 | TEST_RR( "uxtab r14,r",12, HH2,", r",10,HH1,", ror #8") | ||
971 | TEST_R( "uxtb r8, r",7, HH1,"") | ||
972 | |||
973 | TEST_UNSUPPORTED(".short 0xfa60,0x00f0") | ||
974 | TEST_UNSUPPORTED(".short 0xfa7f,0xffff") | ||
975 | |||
976 | #define PARALLEL_ADD_SUB(op) \ | ||
977 | TEST_RR( op"add16 r0, r",0, HH1,", r",1, HH2,"") \ | ||
978 | TEST_RR( op"add16 r14, r",12,HH2,", r",10,HH1,"") \ | ||
979 | TEST_RR( op"asx r0, r",0, HH1,", r",1, HH2,"") \ | ||
980 | TEST_RR( op"asx r14, r",12,HH2,", r",10,HH1,"") \ | ||
981 | TEST_RR( op"sax r0, r",0, HH1,", r",1, HH2,"") \ | ||
982 | TEST_RR( op"sax r14, r",12,HH2,", r",10,HH1,"") \ | ||
983 | TEST_RR( op"sub16 r0, r",0, HH1,", r",1, HH2,"") \ | ||
984 | TEST_RR( op"sub16 r14, r",12,HH2,", r",10,HH1,"") \ | ||
985 | TEST_RR( op"add8 r0, r",0, HH1,", r",1, HH2,"") \ | ||
986 | TEST_RR( op"add8 r14, r",12,HH2,", r",10,HH1,"") \ | ||
987 | TEST_RR( op"sub8 r0, r",0, HH1,", r",1, HH2,"") \ | ||
988 | TEST_RR( op"sub8 r14, r",12,HH2,", r",10,HH1,"") | ||
989 | |||
990 | TEST_GROUP("Parallel addition and subtraction, signed") | ||
991 | |||
992 | PARALLEL_ADD_SUB("s") | ||
993 | PARALLEL_ADD_SUB("q") | ||
994 | PARALLEL_ADD_SUB("sh") | ||
995 | |||
996 | TEST_GROUP("Parallel addition and subtraction, unsigned") | ||
997 | |||
998 | PARALLEL_ADD_SUB("u") | ||
999 | PARALLEL_ADD_SUB("uq") | ||
1000 | PARALLEL_ADD_SUB("uh") | ||
1001 | |||
1002 | TEST_GROUP("Miscellaneous operations") | ||
1003 | |||
1004 | TEST_RR("qadd r0, r",1, VAL1,", r",2, VAL2,"") | ||
1005 | TEST_RR("qadd lr, r",9, VAL2,", r",8, VAL1,"") | ||
1006 | TEST_RR("qsub r0, r",1, VAL1,", r",2, VAL2,"") | ||
1007 | TEST_RR("qsub lr, r",9, VAL2,", r",8, VAL1,"") | ||
1008 | TEST_RR("qdadd r0, r",1, VAL1,", r",2, VAL2,"") | ||
1009 | TEST_RR("qdadd lr, r",9, VAL2,", r",8, VAL1,"") | ||
1010 | TEST_RR("qdsub r0, r",1, VAL1,", r",2, VAL2,"") | ||
1011 | TEST_RR("qdsub lr, r",9, VAL2,", r",8, VAL1,"") | ||
1012 | |||
1013 | TEST_R("rev.w r0, r",0, VAL1,"") | ||
1014 | TEST_R("rev r14, r",12, VAL2,"") | ||
1015 | TEST_R("rev16.w r0, r",0, VAL1,"") | ||
1016 | TEST_R("rev16 r14, r",12, VAL2,"") | ||
1017 | TEST_R("rbit r0, r",0, VAL1,"") | ||
1018 | TEST_R("rbit r14, r",12, VAL2,"") | ||
1019 | TEST_R("revsh.w r0, r",0, VAL1,"") | ||
1020 | TEST_R("revsh r14, r",12, VAL2,"") | ||
1021 | |||
1022 | TEST_UNSUPPORTED(".short 0xfa9c,0xff8c @ rev pc, r12"); | ||
1023 | TEST_UNSUPPORTED(".short 0xfa9c,0xfd8c @ rev sp, r12"); | ||
1024 | TEST_UNSUPPORTED(".short 0xfa9f,0xfe8f @ rev r14, pc"); | ||
1025 | TEST_UNSUPPORTED(".short 0xfa9d,0xfe8d @ rev r14, sp"); | ||
1026 | |||
1027 | TEST_RR("sel r0, r",0, VAL1,", r",1, VAL2,"") | ||
1028 | TEST_RR("sel r14, r",12,VAL1,", r",10, VAL2,"") | ||
1029 | |||
1030 | TEST_R("clz r0, r",0, 0x0,"") | ||
1031 | TEST_R("clz r7, r",14,0x1,"") | ||
1032 | TEST_R("clz lr, r",7, 0xffffffff,"") | ||
1033 | |||
1034 | TEST_UNSUPPORTED(".short 0xfa80,0xf030") /* Unallocated space */ | ||
1035 | TEST_UNSUPPORTED(".short 0xfaff,0xff7f") /* Unallocated space */ | ||
1036 | TEST_UNSUPPORTED(".short 0xfab0,0xf000") /* Unallocated space */ | ||
1037 | TEST_UNSUPPORTED(".short 0xfaff,0xff7f") /* Unallocated space */ | ||
1038 | |||
1039 | TEST_GROUP("Multiply, multiply accumulate, and absolute difference operations") | ||
1040 | |||
1041 | TEST_RR( "mul r0, r",1, VAL1,", r",2, VAL2,"") | ||
1042 | TEST_RR( "mul r7, r",8, VAL2,", r",9, VAL2,"") | ||
1043 | TEST_UNSUPPORTED(".short 0xfb08,0xff09 @ mul pc, r8, r9") | ||
1044 | TEST_UNSUPPORTED(".short 0xfb08,0xfd09 @ mul sp, r8, r9") | ||
1045 | TEST_UNSUPPORTED(".short 0xfb0f,0xf709 @ mul r7, pc, r9") | ||
1046 | TEST_UNSUPPORTED(".short 0xfb0d,0xf709 @ mul r7, sp, r9") | ||
1047 | TEST_UNSUPPORTED(".short 0xfb08,0xf70f @ mul r7, r8, pc") | ||
1048 | TEST_UNSUPPORTED(".short 0xfb08,0xf70d @ mul r7, r8, sp") | ||
1049 | |||
1050 | TEST_RRR( "mla r0, r",1, VAL1,", r",2, VAL2,", r",3, VAL3,"") | ||
1051 | TEST_RRR( "mla r7, r",8, VAL3,", r",9, VAL1,", r",10, VAL2,"") | ||
1052 | TEST_UNSUPPORTED(".short 0xfb08,0xaf09 @ mla pc, r8, r9, r10"); | ||
1053 | TEST_UNSUPPORTED(".short 0xfb08,0xad09 @ mla sp, r8, r9, r10"); | ||
1054 | TEST_UNSUPPORTED(".short 0xfb0f,0xa709 @ mla r7, pc, r9, r10"); | ||
1055 | TEST_UNSUPPORTED(".short 0xfb0d,0xa709 @ mla r7, sp, r9, r10"); | ||
1056 | TEST_UNSUPPORTED(".short 0xfb08,0xa70f @ mla r7, r8, pc, r10"); | ||
1057 | TEST_UNSUPPORTED(".short 0xfb08,0xa70d @ mla r7, r8, sp, r10"); | ||
1058 | TEST_UNSUPPORTED(".short 0xfb08,0xd709 @ mla r7, r8, r9, sp"); | ||
1059 | |||
1060 | TEST_RRR( "mls r0, r",1, VAL1,", r",2, VAL2,", r",3, VAL3,"") | ||
1061 | TEST_RRR( "mls r7, r",8, VAL3,", r",9, VAL1,", r",10, VAL2,"") | ||
1062 | |||
1063 | TEST_RRR( "smlabb r0, r",1, VAL1,", r",2, VAL2,", r",3, VAL3,"") | ||
1064 | TEST_RRR( "smlabb r7, r",8, VAL3,", r",9, VAL1,", r",10, VAL2,"") | ||
1065 | TEST_RRR( "smlatb r0, r",1, VAL1,", r",2, VAL2,", r",3, VAL3,"") | ||
1066 | TEST_RRR( "smlatb r7, r",8, VAL3,", r",9, VAL1,", r",10, VAL2,"") | ||
1067 | TEST_RRR( "smlabt r0, r",1, VAL1,", r",2, VAL2,", r",3, VAL3,"") | ||
1068 | TEST_RRR( "smlabt r7, r",8, VAL3,", r",9, VAL1,", r",10, VAL2,"") | ||
1069 | TEST_RRR( "smlatt r0, r",1, VAL1,", r",2, VAL2,", r",3, VAL3,"") | ||
1070 | TEST_RRR( "smlatt r7, r",8, VAL3,", r",9, VAL1,", r",10, VAL2,"") | ||
1071 | TEST_RR( "smulbb r0, r",1, VAL1,", r",2, VAL2,"") | ||
1072 | TEST_RR( "smulbb r7, r",8, VAL3,", r",9, VAL1,"") | ||
1073 | TEST_RR( "smultb r0, r",1, VAL1,", r",2, VAL2,"") | ||
1074 | TEST_RR( "smultb r7, r",8, VAL3,", r",9, VAL1,"") | ||
1075 | TEST_RR( "smulbt r0, r",1, VAL1,", r",2, VAL2,"") | ||
1076 | TEST_RR( "smulbt r7, r",8, VAL3,", r",9, VAL1,"") | ||
1077 | TEST_RR( "smultt r0, r",1, VAL1,", r",2, VAL2,"") | ||
1078 | TEST_RR( "smultt r7, r",8, VAL3,", r",9, VAL1,"") | ||
1079 | |||
1080 | TEST_RRR( "smlad r0, r",0, HH1,", r",1, HH2,", r",2, VAL1,"") | ||
1081 | TEST_RRR( "smlad r14, r",12,HH2,", r",10,HH1,", r",8, VAL2,"") | ||
1082 | TEST_RRR( "smladx r0, r",0, HH1,", r",1, HH2,", r",2, VAL1,"") | ||
1083 | TEST_RRR( "smladx r14, r",12,HH2,", r",10,HH1,", r",8, VAL2,"") | ||
1084 | TEST_RR( "smuad r0, r",0, HH1,", r",1, HH2,"") | ||
1085 | TEST_RR( "smuad r14, r",12,HH2,", r",10,HH1,"") | ||
1086 | TEST_RR( "smuadx r0, r",0, HH1,", r",1, HH2,"") | ||
1087 | TEST_RR( "smuadx r14, r",12,HH2,", r",10,HH1,"") | ||
1088 | |||
1089 | TEST_RRR( "smlawb r0, r",1, VAL1,", r",2, VAL2,", r",3, VAL3,"") | ||
1090 | TEST_RRR( "smlawb r7, r",8, VAL3,", r",9, VAL1,", r",10, VAL2,"") | ||
1091 | TEST_RRR( "smlawt r0, r",1, VAL1,", r",2, VAL2,", r",3, VAL3,"") | ||
1092 | TEST_RRR( "smlawt r7, r",8, VAL3,", r",9, VAL1,", r",10, VAL2,"") | ||
1093 | TEST_RR( "smulwb r0, r",1, VAL1,", r",2, VAL2,"") | ||
1094 | TEST_RR( "smulwb r7, r",8, VAL3,", r",9, VAL1,"") | ||
1095 | TEST_RR( "smulwt r0, r",1, VAL1,", r",2, VAL2,"") | ||
1096 | TEST_RR( "smulwt r7, r",8, VAL3,", r",9, VAL1,"") | ||
1097 | |||
1098 | TEST_RRR( "smlsd r0, r",0, HH1,", r",1, HH2,", r",2, VAL1,"") | ||
1099 | TEST_RRR( "smlsd r14, r",12,HH2,", r",10,HH1,", r",8, VAL2,"") | ||
1100 | TEST_RRR( "smlsdx r0, r",0, HH1,", r",1, HH2,", r",2, VAL1,"") | ||
1101 | TEST_RRR( "smlsdx r14, r",12,HH2,", r",10,HH1,", r",8, VAL2,"") | ||
1102 | TEST_RR( "smusd r0, r",0, HH1,", r",1, HH2,"") | ||
1103 | TEST_RR( "smusd r14, r",12,HH2,", r",10,HH1,"") | ||
1104 | TEST_RR( "smusdx r0, r",0, HH1,", r",1, HH2,"") | ||
1105 | TEST_RR( "smusdx r14, r",12,HH2,", r",10,HH1,"") | ||
1106 | |||
1107 | TEST_RRR( "smmla r0, r",0, VAL1,", r",1, VAL2,", r",2, VAL1,"") | ||
1108 | TEST_RRR( "smmla r14, r",12,VAL2,", r",10,VAL1,", r",8, VAL2,"") | ||
1109 | TEST_RRR( "smmlar r0, r",0, VAL1,", r",1, VAL2,", r",2, VAL1,"") | ||
1110 | TEST_RRR( "smmlar r14, r",12,VAL2,", r",10,VAL1,", r",8, VAL2,"") | ||
1111 | TEST_RR( "smmul r0, r",0, VAL1,", r",1, VAL2,"") | ||
1112 | TEST_RR( "smmul r14, r",12,VAL2,", r",10,VAL1,"") | ||
1113 | TEST_RR( "smmulr r0, r",0, VAL1,", r",1, VAL2,"") | ||
1114 | TEST_RR( "smmulr r14, r",12,VAL2,", r",10,VAL1,"") | ||
1115 | |||
1116 | TEST_RRR( "smmls r0, r",0, VAL1,", r",1, VAL2,", r",2, VAL1,"") | ||
1117 | TEST_RRR( "smmls r14, r",12,VAL2,", r",10,VAL1,", r",8, VAL2,"") | ||
1118 | TEST_RRR( "smmlsr r0, r",0, VAL1,", r",1, VAL2,", r",2, VAL1,"") | ||
1119 | TEST_RRR( "smmlsr r14, r",12,VAL2,", r",10,VAL1,", r",8, VAL2,"") | ||
1120 | |||
1121 | TEST_RRR( "usada8 r0, r",0, VAL1,", r",1, VAL2,", r",2, VAL3,"") | ||
1122 | TEST_RRR( "usada8 r14, r",12,VAL2,", r",10,VAL1,", r",8, VAL3,"") | ||
1123 | TEST_RR( "usad8 r0, r",0, VAL1,", r",1, VAL2,"") | ||
1124 | TEST_RR( "usad8 r14, r",12,VAL2,", r",10,VAL1,"") | ||
1125 | |||
1126 | TEST_UNSUPPORTED(".short 0xfb00,0xf010") /* Unallocated space */ | ||
1127 | TEST_UNSUPPORTED(".short 0xfb0f,0xff1f") /* Unallocated space */ | ||
1128 | TEST_UNSUPPORTED(".short 0xfb70,0xf010") /* Unallocated space */ | ||
1129 | TEST_UNSUPPORTED(".short 0xfb7f,0xff1f") /* Unallocated space */ | ||
1130 | TEST_UNSUPPORTED(".short 0xfb70,0x0010") /* Unallocated space */ | ||
1131 | TEST_UNSUPPORTED(".short 0xfb7f,0xff1f") /* Unallocated space */ | ||
1132 | |||
1133 | TEST_GROUP("Long multiply, long multiply accumulate, and divide") | ||
1134 | |||
1135 | TEST_RR( "smull r0, r1, r",2, VAL1,", r",3, VAL2,"") | ||
1136 | TEST_RR( "smull r7, r8, r",9, VAL2,", r",10, VAL1,"") | ||
1137 | TEST_UNSUPPORTED(".short 0xfb89,0xf80a @ smull pc, r8, r9, r10"); | ||
1138 | TEST_UNSUPPORTED(".short 0xfb89,0xd80a @ smull sp, r8, r9, r10"); | ||
1139 | TEST_UNSUPPORTED(".short 0xfb89,0x7f0a @ smull r7, pc, r9, r10"); | ||
1140 | TEST_UNSUPPORTED(".short 0xfb89,0x7d0a @ smull r7, sp, r9, r10"); | ||
1141 | TEST_UNSUPPORTED(".short 0xfb8f,0x780a @ smull r7, r8, pc, r10"); | ||
1142 | TEST_UNSUPPORTED(".short 0xfb8d,0x780a @ smull r7, r8, sp, r10"); | ||
1143 | TEST_UNSUPPORTED(".short 0xfb89,0x780f @ smull r7, r8, r9, pc"); | ||
1144 | TEST_UNSUPPORTED(".short 0xfb89,0x780d @ smull r7, r8, r9, sp"); | ||
1145 | |||
1146 | TEST_RR( "umull r0, r1, r",2, VAL1,", r",3, VAL2,"") | ||
1147 | TEST_RR( "umull r7, r8, r",9, VAL2,", r",10, VAL1,"") | ||
1148 | |||
1149 | TEST_RRRR( "smlal r",0, VAL1,", r",1, VAL2,", r",2, VAL3,", r",3, VAL4) | ||
1150 | TEST_RRRR( "smlal r",8, VAL4,", r",9, VAL1,", r",10,VAL2,", r",11,VAL3) | ||
1151 | |||
1152 | TEST_RRRR( "smlalbb r",0, VAL1,", r",1, VAL2,", r",2, VAL3,", r",3, VAL4) | ||
1153 | TEST_RRRR( "smlalbb r",8, VAL4,", r",9, VAL1,", r",10,VAL2,", r",11,VAL3) | ||
1154 | TEST_RRRR( "smlalbt r",0, VAL1,", r",1, VAL2,", r",2, VAL3,", r",3, VAL4) | ||
1155 | TEST_RRRR( "smlalbt r",8, VAL4,", r",9, VAL1,", r",10,VAL2,", r",11,VAL3) | ||
1156 | TEST_RRRR( "smlaltb r",0, VAL1,", r",1, VAL2,", r",2, VAL3,", r",3, VAL4) | ||
1157 | TEST_RRRR( "smlaltb r",8, VAL4,", r",9, VAL1,", r",10,VAL2,", r",11,VAL3) | ||
1158 | TEST_RRRR( "smlaltt r",0, VAL1,", r",1, VAL2,", r",2, VAL3,", r",3, VAL4) | ||
1159 | TEST_RRRR( "smlaltt r",8, VAL4,", r",9, VAL1,", r",10,VAL2,", r",11,VAL3) | ||
1160 | |||
1161 | TEST_RRRR( "smlald r",0, VAL1,", r",1, VAL2, ", r",0, HH1,", r",1, HH2) | ||
1162 | TEST_RRRR( "smlald r",11,VAL2,", r",10,VAL1, ", r",9, HH2,", r",8, HH1) | ||
1163 | TEST_RRRR( "smlaldx r",0, VAL1,", r",1, VAL2, ", r",0, HH1,", r",1, HH2) | ||
1164 | TEST_RRRR( "smlaldx r",11,VAL2,", r",10,VAL1, ", r",9, HH2,", r",8, HH1) | ||
1165 | |||
1166 | TEST_RRRR( "smlsld r",0, VAL1,", r",1, VAL2, ", r",0, HH1,", r",1, HH2) | ||
1167 | TEST_RRRR( "smlsld r",11,VAL2,", r",10,VAL1, ", r",9, HH2,", r",8, HH1) | ||
1168 | TEST_RRRR( "smlsldx r",0, VAL1,", r",1, VAL2, ", r",0, HH1,", r",1, HH2) | ||
1169 | TEST_RRRR( "smlsldx r",11,VAL2,", r",10,VAL1, ", r",9, HH2,", r",8, HH1) | ||
1170 | |||
1171 | TEST_RRRR( "umlal r",0, VAL1,", r",1, VAL2,", r",2, VAL3,", r",3, VAL4) | ||
1172 | TEST_RRRR( "umlal r",8, VAL4,", r",9, VAL1,", r",10,VAL2,", r",11,VAL3) | ||
1173 | TEST_RRRR( "umaal r",0, VAL1,", r",1, VAL2,", r",2, VAL3,", r",3, VAL4) | ||
1174 | TEST_RRRR( "umaal r",8, VAL4,", r",9, VAL1,", r",10,VAL2,", r",11,VAL3) | ||
1175 | |||
1176 | TEST_GROUP("Coprocessor instructions") | ||
1177 | |||
1178 | TEST_UNSUPPORTED(".short 0xfc00,0x0000") | ||
1179 | TEST_UNSUPPORTED(".short 0xffff,0xffff") | ||
1180 | |||
1181 | TEST_GROUP("Testing instructions in IT blocks") | ||
1182 | |||
1183 | TEST_ITBLOCK("sub.w r0, r0") | ||
1184 | |||
1185 | verbose("\n"); | ||
1186 | } | ||
1187 | |||
diff --git a/arch/arm/kernel/kprobes-test.c b/arch/arm/kernel/kprobes-test.c new file mode 100644 index 000000000000..e17cdd6d90d8 --- /dev/null +++ b/arch/arm/kernel/kprobes-test.c | |||
@@ -0,0 +1,1748 @@ | |||
1 | /* | ||
2 | * arch/arm/kernel/kprobes-test.c | ||
3 | * | ||
4 | * Copyright (C) 2011 Jon Medhurst <tixy@yxit.co.uk>. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | /* | ||
12 | * This file contains test code for ARM kprobes. | ||
13 | * | ||
14 | * The top level function run_all_tests() executes tests for all of the | ||
15 | * supported instruction sets: ARM, 16-bit Thumb, and 32-bit Thumb. These tests | ||
16 | * fall into two categories; run_api_tests() checks basic functionality of the | ||
17 | * kprobes API, and run_test_cases() is a comprehensive test for kprobes | ||
18 | * instruction decoding and simulation. | ||
19 | * | ||
20 | * run_test_cases() first checks the kprobes decoding table for self consistency | ||
21 | * (using table_test()) then executes a series of test cases for each of the CPU | ||
22 | * instruction forms. coverage_start() and coverage_end() are used to verify | ||
23 | * that these test cases cover all of the possible combinations of instructions | ||
24 | * described by the kprobes decoding tables. | ||
25 | * | ||
26 | * The individual test cases are in kprobes-test-arm.c and kprobes-test-thumb.c | ||
27 | * which use the macros defined in kprobes-test.h. The rest of this | ||
28 | * documentation will describe the operation of the framework used by these | ||
29 | * test cases. | ||
30 | */ | ||
31 | |||
32 | /* | ||
33 | * TESTING METHODOLOGY | ||
34 | * ------------------- | ||
35 | * | ||
36 | * The methodology used to test an ARM instruction 'test_insn' is to use | ||
37 | * inline assembler like: | ||
38 | * | ||
39 | * test_before: nop | ||
40 | * test_case: test_insn | ||
41 | * test_after: nop | ||
42 | * | ||
43 | * When the test case is run a kprobe is placed of each nop. The | ||
44 | * post-handler of the test_before probe is used to modify the saved CPU | ||
45 | * register context to that which we require for the test case. The | ||
46 | * pre-handler of the of the test_after probe saves a copy of the CPU | ||
47 | * register context. In this way we can execute test_insn with a specific | ||
48 | * register context and see the results afterwards. | ||
49 | * | ||
50 | * To actually test the kprobes instruction emulation we perform the above | ||
51 | * step a second time but with an additional kprobe on the test_case | ||
52 | * instruction itself. If the emulation is accurate then the results seen | ||
53 | * by the test_after probe will be identical to the first run which didn't | ||
54 | * have a probe on test_case. | ||
55 | * | ||
56 | * Each test case is run several times with a variety of variations in the | ||
57 | * flags value of stored in CPSR, and for Thumb code, different ITState. | ||
58 | * | ||
59 | * For instructions which can modify PC, a second test_after probe is used | ||
60 | * like this: | ||
61 | * | ||
62 | * test_before: nop | ||
63 | * test_case: test_insn | ||
64 | * test_after: nop | ||
65 | * b test_done | ||
66 | * test_after2: nop | ||
67 | * test_done: | ||
68 | * | ||
69 | * The test case is constructed such that test_insn branches to | ||
70 | * test_after2, or, if testing a conditional instruction, it may just | ||
71 | * continue to test_after. The probes inserted at both locations let us | ||
72 | * determine which happened. A similar approach is used for testing | ||
73 | * backwards branches... | ||
74 | * | ||
75 | * b test_before | ||
76 | * b test_done @ helps to cope with off by 1 branches | ||
77 | * test_after2: nop | ||
78 | * b test_done | ||
79 | * test_before: nop | ||
80 | * test_case: test_insn | ||
81 | * test_after: nop | ||
82 | * test_done: | ||
83 | * | ||
84 | * The macros used to generate the assembler instructions describe above | ||
85 | * are TEST_INSTRUCTION, TEST_BRANCH_F (branch forwards) and TEST_BRANCH_B | ||
86 | * (branch backwards). In these, the local variables numbered 1, 50, 2 and | ||
87 | * 99 represent: test_before, test_case, test_after2 and test_done. | ||
88 | * | ||
89 | * FRAMEWORK | ||
90 | * --------- | ||
91 | * | ||
92 | * Each test case is wrapped between the pair of macros TESTCASE_START and | ||
93 | * TESTCASE_END. As well as performing the inline assembler boilerplate, | ||
94 | * these call out to the kprobes_test_case_start() and | ||
95 | * kprobes_test_case_end() functions which drive the execution of the test | ||
96 | * case. The specific arguments to use for each test case are stored as | ||
97 | * inline data constructed using the various TEST_ARG_* macros. Putting | ||
98 | * this all together, a simple test case may look like: | ||
99 | * | ||
100 | * TESTCASE_START("Testing mov r0, r7") | ||
101 | * TEST_ARG_REG(7, 0x12345678) // Set r7=0x12345678 | ||
102 | * TEST_ARG_END("") | ||
103 | * TEST_INSTRUCTION("mov r0, r7") | ||
104 | * TESTCASE_END | ||
105 | * | ||
106 | * Note, in practice the single convenience macro TEST_R would be used for this | ||
107 | * instead. | ||
108 | * | ||
109 | * The above would expand to assembler looking something like: | ||
110 | * | ||
111 | * @ TESTCASE_START | ||
112 | * bl __kprobes_test_case_start | ||
113 | * @ start of inline data... | ||
114 | * .ascii "mov r0, r7" @ text title for test case | ||
115 | * .byte 0 | ||
116 | * .align 2 | ||
117 | * | ||
118 | * @ TEST_ARG_REG | ||
119 | * .byte ARG_TYPE_REG | ||
120 | * .byte 7 | ||
121 | * .short 0 | ||
122 | * .word 0x1234567 | ||
123 | * | ||
124 | * @ TEST_ARG_END | ||
125 | * .byte ARG_TYPE_END | ||
126 | * .byte TEST_ISA @ flags, including ISA being tested | ||
127 | * .short 50f-0f @ offset of 'test_before' | ||
128 | * .short 2f-0f @ offset of 'test_after2' (if relevent) | ||
129 | * .short 99f-0f @ offset of 'test_done' | ||
130 | * @ start of test case code... | ||
131 | * 0: | ||
132 | * .code TEST_ISA @ switch to ISA being tested | ||
133 | * | ||
134 | * @ TEST_INSTRUCTION | ||
135 | * 50: nop @ location for 'test_before' probe | ||
136 | * 1: mov r0, r7 @ the test case instruction 'test_insn' | ||
137 | * nop @ location for 'test_after' probe | ||
138 | * | ||
139 | * // TESTCASE_END | ||
140 | * 2: | ||
141 | * 99: bl __kprobes_test_case_end_##TEST_ISA | ||
142 | * .code NONMAL_ISA | ||
143 | * | ||
144 | * When the above is execute the following happens... | ||
145 | * | ||
146 | * __kprobes_test_case_start() is an assembler wrapper which sets up space | ||
147 | * for a stack buffer and calls the C function kprobes_test_case_start(). | ||
148 | * This C function will do some initial processing of the inline data and | ||
149 | * setup some global state. It then inserts the test_before and test_after | ||
150 | * kprobes and returns a value which causes the assembler wrapper to jump | ||
151 | * to the start of the test case code, (local label '0'). | ||
152 | * | ||
153 | * When the test case code executes, the test_before probe will be hit and | ||
154 | * test_before_post_handler will call setup_test_context(). This fills the | ||
155 | * stack buffer and CPU registers with a test pattern and then processes | ||
156 | * the test case arguments. In our example there is one TEST_ARG_REG which | ||
157 | * indicates that R7 should be loaded with the value 0x12345678. | ||
158 | * | ||
159 | * When the test_before probe ends, the test case continues and executes | ||
160 | * the "mov r0, r7" instruction. It then hits the test_after probe and the | ||
161 | * pre-handler for this (test_after_pre_handler) will save a copy of the | ||
162 | * CPU register context. This should now have R0 holding the same value as | ||
163 | * R7. | ||
164 | * | ||
165 | * Finally we get to the call to __kprobes_test_case_end_{32,16}. This is | ||
166 | * an assembler wrapper which switches back to the ISA used by the test | ||
167 | * code and calls the C function kprobes_test_case_end(). | ||
168 | * | ||
169 | * For each run through the test case, test_case_run_count is incremented | ||
170 | * by one. For even runs, kprobes_test_case_end() saves a copy of the | ||
171 | * register and stack buffer contents from the test case just run. It then | ||
172 | * inserts a kprobe on the test case instruction 'test_insn' and returns a | ||
173 | * value to cause the test case code to be re-run. | ||
174 | * | ||
175 | * For odd numbered runs, kprobes_test_case_end() compares the register and | ||
176 | * stack buffer contents to those that were saved on the previous even | ||
177 | * numbered run (the one without the kprobe on test_insn). These should be | ||
178 | * the same if the kprobe instruction simulation routine is correct. | ||
179 | * | ||
180 | * The pair of test case runs is repeated with different combinations of | ||
181 | * flag values in CPSR and, for Thumb, different ITState. This is | ||
182 | * controlled by test_context_cpsr(). | ||
183 | * | ||
184 | * BUILDING TEST CASES | ||
185 | * ------------------- | ||
186 | * | ||
187 | * | ||
188 | * As an aid to building test cases, the stack buffer is initialised with | ||
189 | * some special values: | ||
190 | * | ||
191 | * [SP+13*4] Contains SP+120. This can be used to test instructions | ||
192 | * which load a value into SP. | ||
193 | * | ||
194 | * [SP+15*4] When testing branching instructions using TEST_BRANCH_{F,B}, | ||
195 | * this holds the target address of the branch, 'test_after2'. | ||
196 | * This can be used to test instructions which load a PC value | ||
197 | * from memory. | ||
198 | */ | ||
199 | |||
200 | #include <linux/kernel.h> | ||
201 | #include <linux/module.h> | ||
202 | #include <linux/slab.h> | ||
203 | #include <linux/kprobes.h> | ||
204 | |||
205 | #include "kprobes.h" | ||
206 | #include "kprobes-test.h" | ||
207 | |||
208 | |||
209 | #define BENCHMARKING 1 | ||
210 | |||
211 | |||
212 | /* | ||
213 | * Test basic API | ||
214 | */ | ||
215 | |||
216 | static bool test_regs_ok; | ||
217 | static int test_func_instance; | ||
218 | static int pre_handler_called; | ||
219 | static int post_handler_called; | ||
220 | static int jprobe_func_called; | ||
221 | static int kretprobe_handler_called; | ||
222 | |||
223 | #define FUNC_ARG1 0x12345678 | ||
224 | #define FUNC_ARG2 0xabcdef | ||
225 | |||
226 | |||
227 | #ifndef CONFIG_THUMB2_KERNEL | ||
228 | |||
229 | long arm_func(long r0, long r1); | ||
230 | |||
231 | static void __used __naked __arm_kprobes_test_func(void) | ||
232 | { | ||
233 | __asm__ __volatile__ ( | ||
234 | ".arm \n\t" | ||
235 | ".type arm_func, %%function \n\t" | ||
236 | "arm_func: \n\t" | ||
237 | "adds r0, r0, r1 \n\t" | ||
238 | "bx lr \n\t" | ||
239 | ".code "NORMAL_ISA /* Back to Thumb if necessary */ | ||
240 | : : : "r0", "r1", "cc" | ||
241 | ); | ||
242 | } | ||
243 | |||
244 | #else /* CONFIG_THUMB2_KERNEL */ | ||
245 | |||
246 | long thumb16_func(long r0, long r1); | ||
247 | long thumb32even_func(long r0, long r1); | ||
248 | long thumb32odd_func(long r0, long r1); | ||
249 | |||
250 | static void __used __naked __thumb_kprobes_test_funcs(void) | ||
251 | { | ||
252 | __asm__ __volatile__ ( | ||
253 | ".type thumb16_func, %%function \n\t" | ||
254 | "thumb16_func: \n\t" | ||
255 | "adds.n r0, r0, r1 \n\t" | ||
256 | "bx lr \n\t" | ||
257 | |||
258 | ".align \n\t" | ||
259 | ".type thumb32even_func, %%function \n\t" | ||
260 | "thumb32even_func: \n\t" | ||
261 | "adds.w r0, r0, r1 \n\t" | ||
262 | "bx lr \n\t" | ||
263 | |||
264 | ".align \n\t" | ||
265 | "nop.n \n\t" | ||
266 | ".type thumb32odd_func, %%function \n\t" | ||
267 | "thumb32odd_func: \n\t" | ||
268 | "adds.w r0, r0, r1 \n\t" | ||
269 | "bx lr \n\t" | ||
270 | |||
271 | : : : "r0", "r1", "cc" | ||
272 | ); | ||
273 | } | ||
274 | |||
275 | #endif /* CONFIG_THUMB2_KERNEL */ | ||
276 | |||
277 | |||
278 | static int call_test_func(long (*func)(long, long), bool check_test_regs) | ||
279 | { | ||
280 | long ret; | ||
281 | |||
282 | ++test_func_instance; | ||
283 | test_regs_ok = false; | ||
284 | |||
285 | ret = (*func)(FUNC_ARG1, FUNC_ARG2); | ||
286 | if (ret != FUNC_ARG1 + FUNC_ARG2) { | ||
287 | pr_err("FAIL: call_test_func: func returned %lx\n", ret); | ||
288 | return false; | ||
289 | } | ||
290 | |||
291 | if (check_test_regs && !test_regs_ok) { | ||
292 | pr_err("FAIL: test regs not OK\n"); | ||
293 | return false; | ||
294 | } | ||
295 | |||
296 | return true; | ||
297 | } | ||
298 | |||
299 | static int __kprobes pre_handler(struct kprobe *p, struct pt_regs *regs) | ||
300 | { | ||
301 | pre_handler_called = test_func_instance; | ||
302 | if (regs->ARM_r0 == FUNC_ARG1 && regs->ARM_r1 == FUNC_ARG2) | ||
303 | test_regs_ok = true; | ||
304 | return 0; | ||
305 | } | ||
306 | |||
307 | static void __kprobes post_handler(struct kprobe *p, struct pt_regs *regs, | ||
308 | unsigned long flags) | ||
309 | { | ||
310 | post_handler_called = test_func_instance; | ||
311 | if (regs->ARM_r0 != FUNC_ARG1 + FUNC_ARG2 || regs->ARM_r1 != FUNC_ARG2) | ||
312 | test_regs_ok = false; | ||
313 | } | ||
314 | |||
315 | static struct kprobe the_kprobe = { | ||
316 | .addr = 0, | ||
317 | .pre_handler = pre_handler, | ||
318 | .post_handler = post_handler | ||
319 | }; | ||
320 | |||
321 | static int test_kprobe(long (*func)(long, long)) | ||
322 | { | ||
323 | int ret; | ||
324 | |||
325 | the_kprobe.addr = (kprobe_opcode_t *)func; | ||
326 | ret = register_kprobe(&the_kprobe); | ||
327 | if (ret < 0) { | ||
328 | pr_err("FAIL: register_kprobe failed with %d\n", ret); | ||
329 | return ret; | ||
330 | } | ||
331 | |||
332 | ret = call_test_func(func, true); | ||
333 | |||
334 | unregister_kprobe(&the_kprobe); | ||
335 | the_kprobe.flags = 0; /* Clear disable flag to allow reuse */ | ||
336 | |||
337 | if (!ret) | ||
338 | return -EINVAL; | ||
339 | if (pre_handler_called != test_func_instance) { | ||
340 | pr_err("FAIL: kprobe pre_handler not called\n"); | ||
341 | return -EINVAL; | ||
342 | } | ||
343 | if (post_handler_called != test_func_instance) { | ||
344 | pr_err("FAIL: kprobe post_handler not called\n"); | ||
345 | return -EINVAL; | ||
346 | } | ||
347 | if (!call_test_func(func, false)) | ||
348 | return -EINVAL; | ||
349 | if (pre_handler_called == test_func_instance || | ||
350 | post_handler_called == test_func_instance) { | ||
351 | pr_err("FAIL: probe called after unregistering\n"); | ||
352 | return -EINVAL; | ||
353 | } | ||
354 | |||
355 | return 0; | ||
356 | } | ||
357 | |||
358 | static void __kprobes jprobe_func(long r0, long r1) | ||
359 | { | ||
360 | jprobe_func_called = test_func_instance; | ||
361 | if (r0 == FUNC_ARG1 && r1 == FUNC_ARG2) | ||
362 | test_regs_ok = true; | ||
363 | jprobe_return(); | ||
364 | } | ||
365 | |||
366 | static struct jprobe the_jprobe = { | ||
367 | .entry = jprobe_func, | ||
368 | }; | ||
369 | |||
370 | static int test_jprobe(long (*func)(long, long)) | ||
371 | { | ||
372 | int ret; | ||
373 | |||
374 | the_jprobe.kp.addr = (kprobe_opcode_t *)func; | ||
375 | ret = register_jprobe(&the_jprobe); | ||
376 | if (ret < 0) { | ||
377 | pr_err("FAIL: register_jprobe failed with %d\n", ret); | ||
378 | return ret; | ||
379 | } | ||
380 | |||
381 | ret = call_test_func(func, true); | ||
382 | |||
383 | unregister_jprobe(&the_jprobe); | ||
384 | the_jprobe.kp.flags = 0; /* Clear disable flag to allow reuse */ | ||
385 | |||
386 | if (!ret) | ||
387 | return -EINVAL; | ||
388 | if (jprobe_func_called != test_func_instance) { | ||
389 | pr_err("FAIL: jprobe handler function not called\n"); | ||
390 | return -EINVAL; | ||
391 | } | ||
392 | if (!call_test_func(func, false)) | ||
393 | return -EINVAL; | ||
394 | if (jprobe_func_called == test_func_instance) { | ||
395 | pr_err("FAIL: probe called after unregistering\n"); | ||
396 | return -EINVAL; | ||
397 | } | ||
398 | |||
399 | return 0; | ||
400 | } | ||
401 | |||
402 | static int __kprobes | ||
403 | kretprobe_handler(struct kretprobe_instance *ri, struct pt_regs *regs) | ||
404 | { | ||
405 | kretprobe_handler_called = test_func_instance; | ||
406 | if (regs_return_value(regs) == FUNC_ARG1 + FUNC_ARG2) | ||
407 | test_regs_ok = true; | ||
408 | return 0; | ||
409 | } | ||
410 | |||
411 | static struct kretprobe the_kretprobe = { | ||
412 | .handler = kretprobe_handler, | ||
413 | }; | ||
414 | |||
415 | static int test_kretprobe(long (*func)(long, long)) | ||
416 | { | ||
417 | int ret; | ||
418 | |||
419 | the_kretprobe.kp.addr = (kprobe_opcode_t *)func; | ||
420 | ret = register_kretprobe(&the_kretprobe); | ||
421 | if (ret < 0) { | ||
422 | pr_err("FAIL: register_kretprobe failed with %d\n", ret); | ||
423 | return ret; | ||
424 | } | ||
425 | |||
426 | ret = call_test_func(func, true); | ||
427 | |||
428 | unregister_kretprobe(&the_kretprobe); | ||
429 | the_kretprobe.kp.flags = 0; /* Clear disable flag to allow reuse */ | ||
430 | |||
431 | if (!ret) | ||
432 | return -EINVAL; | ||
433 | if (kretprobe_handler_called != test_func_instance) { | ||
434 | pr_err("FAIL: kretprobe handler not called\n"); | ||
435 | return -EINVAL; | ||
436 | } | ||
437 | if (!call_test_func(func, false)) | ||
438 | return -EINVAL; | ||
439 | if (jprobe_func_called == test_func_instance) { | ||
440 | pr_err("FAIL: kretprobe called after unregistering\n"); | ||
441 | return -EINVAL; | ||
442 | } | ||
443 | |||
444 | return 0; | ||
445 | } | ||
446 | |||
447 | static int run_api_tests(long (*func)(long, long)) | ||
448 | { | ||
449 | int ret; | ||
450 | |||
451 | pr_info(" kprobe\n"); | ||
452 | ret = test_kprobe(func); | ||
453 | if (ret < 0) | ||
454 | return ret; | ||
455 | |||
456 | pr_info(" jprobe\n"); | ||
457 | ret = test_jprobe(func); | ||
458 | if (ret < 0) | ||
459 | return ret; | ||
460 | |||
461 | pr_info(" kretprobe\n"); | ||
462 | ret = test_kretprobe(func); | ||
463 | if (ret < 0) | ||
464 | return ret; | ||
465 | |||
466 | return 0; | ||
467 | } | ||
468 | |||
469 | |||
470 | /* | ||
471 | * Benchmarking | ||
472 | */ | ||
473 | |||
474 | #if BENCHMARKING | ||
475 | |||
476 | static void __naked benchmark_nop(void) | ||
477 | { | ||
478 | __asm__ __volatile__ ( | ||
479 | "nop \n\t" | ||
480 | "bx lr" | ||
481 | ); | ||
482 | } | ||
483 | |||
484 | #ifdef CONFIG_THUMB2_KERNEL | ||
485 | #define wide ".w" | ||
486 | #else | ||
487 | #define wide | ||
488 | #endif | ||
489 | |||
490 | static void __naked benchmark_pushpop1(void) | ||
491 | { | ||
492 | __asm__ __volatile__ ( | ||
493 | "stmdb"wide" sp!, {r3-r11,lr} \n\t" | ||
494 | "ldmia"wide" sp!, {r3-r11,pc}" | ||
495 | ); | ||
496 | } | ||
497 | |||
498 | static void __naked benchmark_pushpop2(void) | ||
499 | { | ||
500 | __asm__ __volatile__ ( | ||
501 | "stmdb"wide" sp!, {r0-r8,lr} \n\t" | ||
502 | "ldmia"wide" sp!, {r0-r8,pc}" | ||
503 | ); | ||
504 | } | ||
505 | |||
506 | static void __naked benchmark_pushpop3(void) | ||
507 | { | ||
508 | __asm__ __volatile__ ( | ||
509 | "stmdb"wide" sp!, {r4,lr} \n\t" | ||
510 | "ldmia"wide" sp!, {r4,pc}" | ||
511 | ); | ||
512 | } | ||
513 | |||
514 | static void __naked benchmark_pushpop4(void) | ||
515 | { | ||
516 | __asm__ __volatile__ ( | ||
517 | "stmdb"wide" sp!, {r0,lr} \n\t" | ||
518 | "ldmia"wide" sp!, {r0,pc}" | ||
519 | ); | ||
520 | } | ||
521 | |||
522 | |||
523 | #ifdef CONFIG_THUMB2_KERNEL | ||
524 | |||
525 | static void __naked benchmark_pushpop_thumb(void) | ||
526 | { | ||
527 | __asm__ __volatile__ ( | ||
528 | "push.n {r0-r7,lr} \n\t" | ||
529 | "pop.n {r0-r7,pc}" | ||
530 | ); | ||
531 | } | ||
532 | |||
533 | #endif | ||
534 | |||
535 | static int __kprobes | ||
536 | benchmark_pre_handler(struct kprobe *p, struct pt_regs *regs) | ||
537 | { | ||
538 | return 0; | ||
539 | } | ||
540 | |||
541 | static int benchmark(void(*fn)(void)) | ||
542 | { | ||
543 | unsigned n, i, t, t0; | ||
544 | |||
545 | for (n = 1000; ; n *= 2) { | ||
546 | t0 = sched_clock(); | ||
547 | for (i = n; i > 0; --i) | ||
548 | fn(); | ||
549 | t = sched_clock() - t0; | ||
550 | if (t >= 250000000) | ||
551 | break; /* Stop once we took more than 0.25 seconds */ | ||
552 | } | ||
553 | return t / n; /* Time for one iteration in nanoseconds */ | ||
554 | }; | ||
555 | |||
556 | static int kprobe_benchmark(void(*fn)(void), unsigned offset) | ||
557 | { | ||
558 | struct kprobe k = { | ||
559 | .addr = (kprobe_opcode_t *)((uintptr_t)fn + offset), | ||
560 | .pre_handler = benchmark_pre_handler, | ||
561 | }; | ||
562 | |||
563 | int ret = register_kprobe(&k); | ||
564 | if (ret < 0) { | ||
565 | pr_err("FAIL: register_kprobe failed with %d\n", ret); | ||
566 | return ret; | ||
567 | } | ||
568 | |||
569 | ret = benchmark(fn); | ||
570 | |||
571 | unregister_kprobe(&k); | ||
572 | return ret; | ||
573 | }; | ||
574 | |||
575 | struct benchmarks { | ||
576 | void (*fn)(void); | ||
577 | unsigned offset; | ||
578 | const char *title; | ||
579 | }; | ||
580 | |||
581 | static int run_benchmarks(void) | ||
582 | { | ||
583 | int ret; | ||
584 | struct benchmarks list[] = { | ||
585 | {&benchmark_nop, 0, "nop"}, | ||
586 | /* | ||
587 | * benchmark_pushpop{1,3} will have the optimised | ||
588 | * instruction emulation, whilst benchmark_pushpop{2,4} will | ||
589 | * be the equivalent unoptimised instructions. | ||
590 | */ | ||
591 | {&benchmark_pushpop1, 0, "stmdb sp!, {r3-r11,lr}"}, | ||
592 | {&benchmark_pushpop1, 4, "ldmia sp!, {r3-r11,pc}"}, | ||
593 | {&benchmark_pushpop2, 0, "stmdb sp!, {r0-r8,lr}"}, | ||
594 | {&benchmark_pushpop2, 4, "ldmia sp!, {r0-r8,pc}"}, | ||
595 | {&benchmark_pushpop3, 0, "stmdb sp!, {r4,lr}"}, | ||
596 | {&benchmark_pushpop3, 4, "ldmia sp!, {r4,pc}"}, | ||
597 | {&benchmark_pushpop4, 0, "stmdb sp!, {r0,lr}"}, | ||
598 | {&benchmark_pushpop4, 4, "ldmia sp!, {r0,pc}"}, | ||
599 | #ifdef CONFIG_THUMB2_KERNEL | ||
600 | {&benchmark_pushpop_thumb, 0, "push.n {r0-r7,lr}"}, | ||
601 | {&benchmark_pushpop_thumb, 2, "pop.n {r0-r7,pc}"}, | ||
602 | #endif | ||
603 | {0} | ||
604 | }; | ||
605 | |||
606 | struct benchmarks *b; | ||
607 | for (b = list; b->fn; ++b) { | ||
608 | ret = kprobe_benchmark(b->fn, b->offset); | ||
609 | if (ret < 0) | ||
610 | return ret; | ||
611 | pr_info(" %dns for kprobe %s\n", ret, b->title); | ||
612 | } | ||
613 | |||
614 | pr_info("\n"); | ||
615 | return 0; | ||
616 | } | ||
617 | |||
618 | #endif /* BENCHMARKING */ | ||
619 | |||
620 | |||
621 | /* | ||
622 | * Decoding table self-consistency tests | ||
623 | */ | ||
624 | |||
625 | static const int decode_struct_sizes[NUM_DECODE_TYPES] = { | ||
626 | [DECODE_TYPE_TABLE] = sizeof(struct decode_table), | ||
627 | [DECODE_TYPE_CUSTOM] = sizeof(struct decode_custom), | ||
628 | [DECODE_TYPE_SIMULATE] = sizeof(struct decode_simulate), | ||
629 | [DECODE_TYPE_EMULATE] = sizeof(struct decode_emulate), | ||
630 | [DECODE_TYPE_OR] = sizeof(struct decode_or), | ||
631 | [DECODE_TYPE_REJECT] = sizeof(struct decode_reject) | ||
632 | }; | ||
633 | |||
634 | static int table_iter(const union decode_item *table, | ||
635 | int (*fn)(const struct decode_header *, void *), | ||
636 | void *args) | ||
637 | { | ||
638 | const struct decode_header *h = (struct decode_header *)table; | ||
639 | int result; | ||
640 | |||
641 | for (;;) { | ||
642 | enum decode_type type = h->type_regs.bits & DECODE_TYPE_MASK; | ||
643 | |||
644 | if (type == DECODE_TYPE_END) | ||
645 | return 0; | ||
646 | |||
647 | result = fn(h, args); | ||
648 | if (result) | ||
649 | return result; | ||
650 | |||
651 | h = (struct decode_header *) | ||
652 | ((uintptr_t)h + decode_struct_sizes[type]); | ||
653 | |||
654 | } | ||
655 | } | ||
656 | |||
657 | static int table_test_fail(const struct decode_header *h, const char* message) | ||
658 | { | ||
659 | |||
660 | pr_err("FAIL: kprobes test failure \"%s\" (mask %08x, value %08x)\n", | ||
661 | message, h->mask.bits, h->value.bits); | ||
662 | return -EINVAL; | ||
663 | } | ||
664 | |||
665 | struct table_test_args { | ||
666 | const union decode_item *root_table; | ||
667 | u32 parent_mask; | ||
668 | u32 parent_value; | ||
669 | }; | ||
670 | |||
671 | static int table_test_fn(const struct decode_header *h, void *args) | ||
672 | { | ||
673 | struct table_test_args *a = (struct table_test_args *)args; | ||
674 | enum decode_type type = h->type_regs.bits & DECODE_TYPE_MASK; | ||
675 | |||
676 | if (h->value.bits & ~h->mask.bits) | ||
677 | return table_test_fail(h, "Match value has bits not in mask"); | ||
678 | |||
679 | if ((h->mask.bits & a->parent_mask) != a->parent_mask) | ||
680 | return table_test_fail(h, "Mask has bits not in parent mask"); | ||
681 | |||
682 | if ((h->value.bits ^ a->parent_value) & a->parent_mask) | ||
683 | return table_test_fail(h, "Value is inconsistent with parent"); | ||
684 | |||
685 | if (type == DECODE_TYPE_TABLE) { | ||
686 | struct decode_table *d = (struct decode_table *)h; | ||
687 | struct table_test_args args2 = *a; | ||
688 | args2.parent_mask = h->mask.bits; | ||
689 | args2.parent_value = h->value.bits; | ||
690 | return table_iter(d->table.table, table_test_fn, &args2); | ||
691 | } | ||
692 | |||
693 | return 0; | ||
694 | } | ||
695 | |||
696 | static int table_test(const union decode_item *table) | ||
697 | { | ||
698 | struct table_test_args args = { | ||
699 | .root_table = table, | ||
700 | .parent_mask = 0, | ||
701 | .parent_value = 0 | ||
702 | }; | ||
703 | return table_iter(args.root_table, table_test_fn, &args); | ||
704 | } | ||
705 | |||
706 | |||
707 | /* | ||
708 | * Decoding table test coverage analysis | ||
709 | * | ||
710 | * coverage_start() builds a coverage_table which contains a list of | ||
711 | * coverage_entry's to match each entry in the specified kprobes instruction | ||
712 | * decoding table. | ||
713 | * | ||
714 | * When test cases are run, coverage_add() is called to process each case. | ||
715 | * This looks up the corresponding entry in the coverage_table and sets it as | ||
716 | * being matched, as well as clearing the regs flag appropriate for the test. | ||
717 | * | ||
718 | * After all test cases have been run, coverage_end() is called to check that | ||
719 | * all entries in coverage_table have been matched and that all regs flags are | ||
720 | * cleared. I.e. that all possible combinations of instructions described by | ||
721 | * the kprobes decoding tables have had a test case executed for them. | ||
722 | */ | ||
723 | |||
724 | bool coverage_fail; | ||
725 | |||
726 | #define MAX_COVERAGE_ENTRIES 256 | ||
727 | |||
728 | struct coverage_entry { | ||
729 | const struct decode_header *header; | ||
730 | unsigned regs; | ||
731 | unsigned nesting; | ||
732 | char matched; | ||
733 | }; | ||
734 | |||
735 | struct coverage_table { | ||
736 | struct coverage_entry *base; | ||
737 | unsigned num_entries; | ||
738 | unsigned nesting; | ||
739 | }; | ||
740 | |||
741 | struct coverage_table coverage; | ||
742 | |||
743 | #define COVERAGE_ANY_REG (1<<0) | ||
744 | #define COVERAGE_SP (1<<1) | ||
745 | #define COVERAGE_PC (1<<2) | ||
746 | #define COVERAGE_PCWB (1<<3) | ||
747 | |||
748 | static const char coverage_register_lookup[16] = { | ||
749 | [REG_TYPE_ANY] = COVERAGE_ANY_REG | COVERAGE_SP | COVERAGE_PC, | ||
750 | [REG_TYPE_SAMEAS16] = COVERAGE_ANY_REG, | ||
751 | [REG_TYPE_SP] = COVERAGE_SP, | ||
752 | [REG_TYPE_PC] = COVERAGE_PC, | ||
753 | [REG_TYPE_NOSP] = COVERAGE_ANY_REG | COVERAGE_SP, | ||
754 | [REG_TYPE_NOSPPC] = COVERAGE_ANY_REG | COVERAGE_SP | COVERAGE_PC, | ||
755 | [REG_TYPE_NOPC] = COVERAGE_ANY_REG | COVERAGE_PC, | ||
756 | [REG_TYPE_NOPCWB] = COVERAGE_ANY_REG | COVERAGE_PC | COVERAGE_PCWB, | ||
757 | [REG_TYPE_NOPCX] = COVERAGE_ANY_REG, | ||
758 | [REG_TYPE_NOSPPCX] = COVERAGE_ANY_REG | COVERAGE_SP, | ||
759 | }; | ||
760 | |||
761 | unsigned coverage_start_registers(const struct decode_header *h) | ||
762 | { | ||
763 | unsigned regs = 0; | ||
764 | int i; | ||
765 | for (i = 0; i < 20; i += 4) { | ||
766 | int r = (h->type_regs.bits >> (DECODE_TYPE_BITS + i)) & 0xf; | ||
767 | regs |= coverage_register_lookup[r] << i; | ||
768 | } | ||
769 | return regs; | ||
770 | } | ||
771 | |||
772 | static int coverage_start_fn(const struct decode_header *h, void *args) | ||
773 | { | ||
774 | struct coverage_table *coverage = (struct coverage_table *)args; | ||
775 | enum decode_type type = h->type_regs.bits & DECODE_TYPE_MASK; | ||
776 | struct coverage_entry *entry = coverage->base + coverage->num_entries; | ||
777 | |||
778 | if (coverage->num_entries == MAX_COVERAGE_ENTRIES - 1) { | ||
779 | pr_err("FAIL: Out of space for test coverage data"); | ||
780 | return -ENOMEM; | ||
781 | } | ||
782 | |||
783 | ++coverage->num_entries; | ||
784 | |||
785 | entry->header = h; | ||
786 | entry->regs = coverage_start_registers(h); | ||
787 | entry->nesting = coverage->nesting; | ||
788 | entry->matched = false; | ||
789 | |||
790 | if (type == DECODE_TYPE_TABLE) { | ||
791 | struct decode_table *d = (struct decode_table *)h; | ||
792 | int ret; | ||
793 | ++coverage->nesting; | ||
794 | ret = table_iter(d->table.table, coverage_start_fn, coverage); | ||
795 | --coverage->nesting; | ||
796 | return ret; | ||
797 | } | ||
798 | |||
799 | return 0; | ||
800 | } | ||
801 | |||
802 | static int coverage_start(const union decode_item *table) | ||
803 | { | ||
804 | coverage.base = kmalloc(MAX_COVERAGE_ENTRIES * | ||
805 | sizeof(struct coverage_entry), GFP_KERNEL); | ||
806 | coverage.num_entries = 0; | ||
807 | coverage.nesting = 0; | ||
808 | return table_iter(table, coverage_start_fn, &coverage); | ||
809 | } | ||
810 | |||
811 | static void | ||
812 | coverage_add_registers(struct coverage_entry *entry, kprobe_opcode_t insn) | ||
813 | { | ||
814 | int regs = entry->header->type_regs.bits >> DECODE_TYPE_BITS; | ||
815 | int i; | ||
816 | for (i = 0; i < 20; i += 4) { | ||
817 | enum decode_reg_type reg_type = (regs >> i) & 0xf; | ||
818 | int reg = (insn >> i) & 0xf; | ||
819 | int flag; | ||
820 | |||
821 | if (!reg_type) | ||
822 | continue; | ||
823 | |||
824 | if (reg == 13) | ||
825 | flag = COVERAGE_SP; | ||
826 | else if (reg == 15) | ||
827 | flag = COVERAGE_PC; | ||
828 | else | ||
829 | flag = COVERAGE_ANY_REG; | ||
830 | entry->regs &= ~(flag << i); | ||
831 | |||
832 | switch (reg_type) { | ||
833 | |||
834 | case REG_TYPE_NONE: | ||
835 | case REG_TYPE_ANY: | ||
836 | case REG_TYPE_SAMEAS16: | ||
837 | break; | ||
838 | |||
839 | case REG_TYPE_SP: | ||
840 | if (reg != 13) | ||
841 | return; | ||
842 | break; | ||
843 | |||
844 | case REG_TYPE_PC: | ||
845 | if (reg != 15) | ||
846 | return; | ||
847 | break; | ||
848 | |||
849 | case REG_TYPE_NOSP: | ||
850 | if (reg == 13) | ||
851 | return; | ||
852 | break; | ||
853 | |||
854 | case REG_TYPE_NOSPPC: | ||
855 | case REG_TYPE_NOSPPCX: | ||
856 | if (reg == 13 || reg == 15) | ||
857 | return; | ||
858 | break; | ||
859 | |||
860 | case REG_TYPE_NOPCWB: | ||
861 | if (!is_writeback(insn)) | ||
862 | break; | ||
863 | if (reg == 15) { | ||
864 | entry->regs &= ~(COVERAGE_PCWB << i); | ||
865 | return; | ||
866 | } | ||
867 | break; | ||
868 | |||
869 | case REG_TYPE_NOPC: | ||
870 | case REG_TYPE_NOPCX: | ||
871 | if (reg == 15) | ||
872 | return; | ||
873 | break; | ||
874 | } | ||
875 | |||
876 | } | ||
877 | } | ||
878 | |||
879 | static void coverage_add(kprobe_opcode_t insn) | ||
880 | { | ||
881 | struct coverage_entry *entry = coverage.base; | ||
882 | struct coverage_entry *end = coverage.base + coverage.num_entries; | ||
883 | bool matched = false; | ||
884 | unsigned nesting = 0; | ||
885 | |||
886 | for (; entry < end; ++entry) { | ||
887 | const struct decode_header *h = entry->header; | ||
888 | enum decode_type type = h->type_regs.bits & DECODE_TYPE_MASK; | ||
889 | |||
890 | if (entry->nesting > nesting) | ||
891 | continue; /* Skip sub-table we didn't match */ | ||
892 | |||
893 | if (entry->nesting < nesting) | ||
894 | break; /* End of sub-table we were scanning */ | ||
895 | |||
896 | if (!matched) { | ||
897 | if ((insn & h->mask.bits) != h->value.bits) | ||
898 | continue; | ||
899 | entry->matched = true; | ||
900 | } | ||
901 | |||
902 | switch (type) { | ||
903 | |||
904 | case DECODE_TYPE_TABLE: | ||
905 | ++nesting; | ||
906 | break; | ||
907 | |||
908 | case DECODE_TYPE_CUSTOM: | ||
909 | case DECODE_TYPE_SIMULATE: | ||
910 | case DECODE_TYPE_EMULATE: | ||
911 | coverage_add_registers(entry, insn); | ||
912 | return; | ||
913 | |||
914 | case DECODE_TYPE_OR: | ||
915 | matched = true; | ||
916 | break; | ||
917 | |||
918 | case DECODE_TYPE_REJECT: | ||
919 | default: | ||
920 | return; | ||
921 | } | ||
922 | |||
923 | } | ||
924 | } | ||
925 | |||
926 | static void coverage_end(void) | ||
927 | { | ||
928 | struct coverage_entry *entry = coverage.base; | ||
929 | struct coverage_entry *end = coverage.base + coverage.num_entries; | ||
930 | |||
931 | for (; entry < end; ++entry) { | ||
932 | u32 mask = entry->header->mask.bits; | ||
933 | u32 value = entry->header->value.bits; | ||
934 | |||
935 | if (entry->regs) { | ||
936 | pr_err("FAIL: Register test coverage missing for %08x %08x (%05x)\n", | ||
937 | mask, value, entry->regs); | ||
938 | coverage_fail = true; | ||
939 | } | ||
940 | if (!entry->matched) { | ||
941 | pr_err("FAIL: Test coverage entry missing for %08x %08x\n", | ||
942 | mask, value); | ||
943 | coverage_fail = true; | ||
944 | } | ||
945 | } | ||
946 | |||
947 | kfree(coverage.base); | ||
948 | } | ||
949 | |||
950 | |||
951 | /* | ||
952 | * Framework for instruction set test cases | ||
953 | */ | ||
954 | |||
955 | void __naked __kprobes_test_case_start(void) | ||
956 | { | ||
957 | __asm__ __volatile__ ( | ||
958 | "stmdb sp!, {r4-r11} \n\t" | ||
959 | "sub sp, sp, #"__stringify(TEST_MEMORY_SIZE)"\n\t" | ||
960 | "bic r0, lr, #1 @ r0 = inline title string \n\t" | ||
961 | "mov r1, sp \n\t" | ||
962 | "bl kprobes_test_case_start \n\t" | ||
963 | "bx r0 \n\t" | ||
964 | ); | ||
965 | } | ||
966 | |||
967 | #ifndef CONFIG_THUMB2_KERNEL | ||
968 | |||
969 | void __naked __kprobes_test_case_end_32(void) | ||
970 | { | ||
971 | __asm__ __volatile__ ( | ||
972 | "mov r4, lr \n\t" | ||
973 | "bl kprobes_test_case_end \n\t" | ||
974 | "cmp r0, #0 \n\t" | ||
975 | "movne pc, r0 \n\t" | ||
976 | "mov r0, r4 \n\t" | ||
977 | "add sp, sp, #"__stringify(TEST_MEMORY_SIZE)"\n\t" | ||
978 | "ldmia sp!, {r4-r11} \n\t" | ||
979 | "mov pc, r0 \n\t" | ||
980 | ); | ||
981 | } | ||
982 | |||
983 | #else /* CONFIG_THUMB2_KERNEL */ | ||
984 | |||
985 | void __naked __kprobes_test_case_end_16(void) | ||
986 | { | ||
987 | __asm__ __volatile__ ( | ||
988 | "mov r4, lr \n\t" | ||
989 | "bl kprobes_test_case_end \n\t" | ||
990 | "cmp r0, #0 \n\t" | ||
991 | "bxne r0 \n\t" | ||
992 | "mov r0, r4 \n\t" | ||
993 | "add sp, sp, #"__stringify(TEST_MEMORY_SIZE)"\n\t" | ||
994 | "ldmia sp!, {r4-r11} \n\t" | ||
995 | "bx r0 \n\t" | ||
996 | ); | ||
997 | } | ||
998 | |||
999 | void __naked __kprobes_test_case_end_32(void) | ||
1000 | { | ||
1001 | __asm__ __volatile__ ( | ||
1002 | ".arm \n\t" | ||
1003 | "orr lr, lr, #1 @ will return to Thumb code \n\t" | ||
1004 | "ldr pc, 1f \n\t" | ||
1005 | "1: \n\t" | ||
1006 | ".word __kprobes_test_case_end_16 \n\t" | ||
1007 | ); | ||
1008 | } | ||
1009 | |||
1010 | #endif | ||
1011 | |||
1012 | |||
1013 | int kprobe_test_flags; | ||
1014 | int kprobe_test_cc_position; | ||
1015 | |||
1016 | static int test_try_count; | ||
1017 | static int test_pass_count; | ||
1018 | static int test_fail_count; | ||
1019 | |||
1020 | static struct pt_regs initial_regs; | ||
1021 | static struct pt_regs expected_regs; | ||
1022 | static struct pt_regs result_regs; | ||
1023 | |||
1024 | static u32 expected_memory[TEST_MEMORY_SIZE/sizeof(u32)]; | ||
1025 | |||
1026 | static const char *current_title; | ||
1027 | static struct test_arg *current_args; | ||
1028 | static u32 *current_stack; | ||
1029 | static uintptr_t current_branch_target; | ||
1030 | |||
1031 | static uintptr_t current_code_start; | ||
1032 | static kprobe_opcode_t current_instruction; | ||
1033 | |||
1034 | |||
1035 | #define TEST_CASE_PASSED -1 | ||
1036 | #define TEST_CASE_FAILED -2 | ||
1037 | |||
1038 | static int test_case_run_count; | ||
1039 | static bool test_case_is_thumb; | ||
1040 | static int test_instance; | ||
1041 | |||
1042 | /* | ||
1043 | * We ignore the state of the imprecise abort disable flag (CPSR.A) because this | ||
1044 | * can change randomly as the kernel doesn't take care to preserve or initialise | ||
1045 | * this across context switches. Also, with Security Extentions, the flag may | ||
1046 | * not be under control of the kernel; for this reason we ignore the state of | ||
1047 | * the FIQ disable flag CPSR.F as well. | ||
1048 | */ | ||
1049 | #define PSR_IGNORE_BITS (PSR_A_BIT | PSR_F_BIT) | ||
1050 | |||
1051 | static unsigned long test_check_cc(int cc, unsigned long cpsr) | ||
1052 | { | ||
1053 | unsigned long temp; | ||
1054 | |||
1055 | switch (cc) { | ||
1056 | case 0x0: /* eq */ | ||
1057 | return cpsr & PSR_Z_BIT; | ||
1058 | |||
1059 | case 0x1: /* ne */ | ||
1060 | return (~cpsr) & PSR_Z_BIT; | ||
1061 | |||
1062 | case 0x2: /* cs */ | ||
1063 | return cpsr & PSR_C_BIT; | ||
1064 | |||
1065 | case 0x3: /* cc */ | ||
1066 | return (~cpsr) & PSR_C_BIT; | ||
1067 | |||
1068 | case 0x4: /* mi */ | ||
1069 | return cpsr & PSR_N_BIT; | ||
1070 | |||
1071 | case 0x5: /* pl */ | ||
1072 | return (~cpsr) & PSR_N_BIT; | ||
1073 | |||
1074 | case 0x6: /* vs */ | ||
1075 | return cpsr & PSR_V_BIT; | ||
1076 | |||
1077 | case 0x7: /* vc */ | ||
1078 | return (~cpsr) & PSR_V_BIT; | ||
1079 | |||
1080 | case 0x8: /* hi */ | ||
1081 | cpsr &= ~(cpsr >> 1); /* PSR_C_BIT &= ~PSR_Z_BIT */ | ||
1082 | return cpsr & PSR_C_BIT; | ||
1083 | |||
1084 | case 0x9: /* ls */ | ||
1085 | cpsr &= ~(cpsr >> 1); /* PSR_C_BIT &= ~PSR_Z_BIT */ | ||
1086 | return (~cpsr) & PSR_C_BIT; | ||
1087 | |||
1088 | case 0xa: /* ge */ | ||
1089 | cpsr ^= (cpsr << 3); /* PSR_N_BIT ^= PSR_V_BIT */ | ||
1090 | return (~cpsr) & PSR_N_BIT; | ||
1091 | |||
1092 | case 0xb: /* lt */ | ||
1093 | cpsr ^= (cpsr << 3); /* PSR_N_BIT ^= PSR_V_BIT */ | ||
1094 | return cpsr & PSR_N_BIT; | ||
1095 | |||
1096 | case 0xc: /* gt */ | ||
1097 | temp = cpsr ^ (cpsr << 3); /* PSR_N_BIT ^= PSR_V_BIT */ | ||
1098 | temp |= (cpsr << 1); /* PSR_N_BIT |= PSR_Z_BIT */ | ||
1099 | return (~temp) & PSR_N_BIT; | ||
1100 | |||
1101 | case 0xd: /* le */ | ||
1102 | temp = cpsr ^ (cpsr << 3); /* PSR_N_BIT ^= PSR_V_BIT */ | ||
1103 | temp |= (cpsr << 1); /* PSR_N_BIT |= PSR_Z_BIT */ | ||
1104 | return temp & PSR_N_BIT; | ||
1105 | |||
1106 | case 0xe: /* al */ | ||
1107 | case 0xf: /* unconditional */ | ||
1108 | return true; | ||
1109 | } | ||
1110 | BUG(); | ||
1111 | return false; | ||
1112 | } | ||
1113 | |||
1114 | static int is_last_scenario; | ||
1115 | static int probe_should_run; /* 0 = no, 1 = yes, -1 = unknown */ | ||
1116 | static int memory_needs_checking; | ||
1117 | |||
1118 | static unsigned long test_context_cpsr(int scenario) | ||
1119 | { | ||
1120 | unsigned long cpsr; | ||
1121 | |||
1122 | probe_should_run = 1; | ||
1123 | |||
1124 | /* Default case is that we cycle through 16 combinations of flags */ | ||
1125 | cpsr = (scenario & 0xf) << 28; /* N,Z,C,V flags */ | ||
1126 | cpsr |= (scenario & 0xf) << 16; /* GE flags */ | ||
1127 | cpsr |= (scenario & 0x1) << 27; /* Toggle Q flag */ | ||
1128 | |||
1129 | if (!test_case_is_thumb) { | ||
1130 | /* Testing ARM code */ | ||
1131 | probe_should_run = test_check_cc(current_instruction >> 28, cpsr) != 0; | ||
1132 | if (scenario == 15) | ||
1133 | is_last_scenario = true; | ||
1134 | |||
1135 | } else if (kprobe_test_flags & TEST_FLAG_NO_ITBLOCK) { | ||
1136 | /* Testing Thumb code without setting ITSTATE */ | ||
1137 | if (kprobe_test_cc_position) { | ||
1138 | int cc = (current_instruction >> kprobe_test_cc_position) & 0xf; | ||
1139 | probe_should_run = test_check_cc(cc, cpsr) != 0; | ||
1140 | } | ||
1141 | |||
1142 | if (scenario == 15) | ||
1143 | is_last_scenario = true; | ||
1144 | |||
1145 | } else if (kprobe_test_flags & TEST_FLAG_FULL_ITBLOCK) { | ||
1146 | /* Testing Thumb code with all combinations of ITSTATE */ | ||
1147 | unsigned x = (scenario >> 4); | ||
1148 | unsigned cond_base = x % 7; /* ITSTATE<7:5> */ | ||
1149 | unsigned mask = x / 7 + 2; /* ITSTATE<4:0>, bits reversed */ | ||
1150 | |||
1151 | if (mask > 0x1f) { | ||
1152 | /* Finish by testing state from instruction 'itt al' */ | ||
1153 | cond_base = 7; | ||
1154 | mask = 0x4; | ||
1155 | if ((scenario & 0xf) == 0xf) | ||
1156 | is_last_scenario = true; | ||
1157 | } | ||
1158 | |||
1159 | cpsr |= cond_base << 13; /* ITSTATE<7:5> */ | ||
1160 | cpsr |= (mask & 0x1) << 12; /* ITSTATE<4> */ | ||
1161 | cpsr |= (mask & 0x2) << 10; /* ITSTATE<3> */ | ||
1162 | cpsr |= (mask & 0x4) << 8; /* ITSTATE<2> */ | ||
1163 | cpsr |= (mask & 0x8) << 23; /* ITSTATE<1> */ | ||
1164 | cpsr |= (mask & 0x10) << 21; /* ITSTATE<0> */ | ||
1165 | |||
1166 | probe_should_run = test_check_cc((cpsr >> 12) & 0xf, cpsr) != 0; | ||
1167 | |||
1168 | } else { | ||
1169 | /* Testing Thumb code with several combinations of ITSTATE */ | ||
1170 | switch (scenario) { | ||
1171 | case 16: /* Clear NZCV flags and 'it eq' state (false as Z=0) */ | ||
1172 | cpsr = 0x00000800; | ||
1173 | probe_should_run = 0; | ||
1174 | break; | ||
1175 | case 17: /* Set NZCV flags and 'it vc' state (false as V=1) */ | ||
1176 | cpsr = 0xf0007800; | ||
1177 | probe_should_run = 0; | ||
1178 | break; | ||
1179 | case 18: /* Clear NZCV flags and 'it ls' state (true as C=0) */ | ||
1180 | cpsr = 0x00009800; | ||
1181 | break; | ||
1182 | case 19: /* Set NZCV flags and 'it cs' state (true as C=1) */ | ||
1183 | cpsr = 0xf0002800; | ||
1184 | is_last_scenario = true; | ||
1185 | break; | ||
1186 | } | ||
1187 | } | ||
1188 | |||
1189 | return cpsr; | ||
1190 | } | ||
1191 | |||
1192 | static void setup_test_context(struct pt_regs *regs) | ||
1193 | { | ||
1194 | int scenario = test_case_run_count>>1; | ||
1195 | unsigned long val; | ||
1196 | struct test_arg *args; | ||
1197 | int i; | ||
1198 | |||
1199 | is_last_scenario = false; | ||
1200 | memory_needs_checking = false; | ||
1201 | |||
1202 | /* Initialise test memory on stack */ | ||
1203 | val = (scenario & 1) ? VALM : ~VALM; | ||
1204 | for (i = 0; i < TEST_MEMORY_SIZE / sizeof(current_stack[0]); ++i) | ||
1205 | current_stack[i] = val + (i << 8); | ||
1206 | /* Put target of branch on stack for tests which load PC from memory */ | ||
1207 | if (current_branch_target) | ||
1208 | current_stack[15] = current_branch_target; | ||
1209 | /* Put a value for SP on stack for tests which load SP from memory */ | ||
1210 | current_stack[13] = (u32)current_stack + 120; | ||
1211 | |||
1212 | /* Initialise register values to their default state */ | ||
1213 | val = (scenario & 2) ? VALR : ~VALR; | ||
1214 | for (i = 0; i < 13; ++i) | ||
1215 | regs->uregs[i] = val ^ (i << 8); | ||
1216 | regs->ARM_lr = val ^ (14 << 8); | ||
1217 | regs->ARM_cpsr &= ~(APSR_MASK | PSR_IT_MASK); | ||
1218 | regs->ARM_cpsr |= test_context_cpsr(scenario); | ||
1219 | |||
1220 | /* Perform testcase specific register setup */ | ||
1221 | args = current_args; | ||
1222 | for (; args[0].type != ARG_TYPE_END; ++args) | ||
1223 | switch (args[0].type) { | ||
1224 | case ARG_TYPE_REG: { | ||
1225 | struct test_arg_regptr *arg = | ||
1226 | (struct test_arg_regptr *)args; | ||
1227 | regs->uregs[arg->reg] = arg->val; | ||
1228 | break; | ||
1229 | } | ||
1230 | case ARG_TYPE_PTR: { | ||
1231 | struct test_arg_regptr *arg = | ||
1232 | (struct test_arg_regptr *)args; | ||
1233 | regs->uregs[arg->reg] = | ||
1234 | (unsigned long)current_stack + arg->val; | ||
1235 | memory_needs_checking = true; | ||
1236 | break; | ||
1237 | } | ||
1238 | case ARG_TYPE_MEM: { | ||
1239 | struct test_arg_mem *arg = (struct test_arg_mem *)args; | ||
1240 | current_stack[arg->index] = arg->val; | ||
1241 | break; | ||
1242 | } | ||
1243 | default: | ||
1244 | break; | ||
1245 | } | ||
1246 | } | ||
1247 | |||
1248 | struct test_probe { | ||
1249 | struct kprobe kprobe; | ||
1250 | bool registered; | ||
1251 | int hit; | ||
1252 | }; | ||
1253 | |||
1254 | static void unregister_test_probe(struct test_probe *probe) | ||
1255 | { | ||
1256 | if (probe->registered) { | ||
1257 | unregister_kprobe(&probe->kprobe); | ||
1258 | probe->kprobe.flags = 0; /* Clear disable flag to allow reuse */ | ||
1259 | } | ||
1260 | probe->registered = false; | ||
1261 | } | ||
1262 | |||
1263 | static int register_test_probe(struct test_probe *probe) | ||
1264 | { | ||
1265 | int ret; | ||
1266 | |||
1267 | if (probe->registered) | ||
1268 | BUG(); | ||
1269 | |||
1270 | ret = register_kprobe(&probe->kprobe); | ||
1271 | if (ret >= 0) { | ||
1272 | probe->registered = true; | ||
1273 | probe->hit = -1; | ||
1274 | } | ||
1275 | return ret; | ||
1276 | } | ||
1277 | |||
1278 | static int __kprobes | ||
1279 | test_before_pre_handler(struct kprobe *p, struct pt_regs *regs) | ||
1280 | { | ||
1281 | container_of(p, struct test_probe, kprobe)->hit = test_instance; | ||
1282 | return 0; | ||
1283 | } | ||
1284 | |||
1285 | static void __kprobes | ||
1286 | test_before_post_handler(struct kprobe *p, struct pt_regs *regs, | ||
1287 | unsigned long flags) | ||
1288 | { | ||
1289 | setup_test_context(regs); | ||
1290 | initial_regs = *regs; | ||
1291 | initial_regs.ARM_cpsr &= ~PSR_IGNORE_BITS; | ||
1292 | } | ||
1293 | |||
1294 | static int __kprobes | ||
1295 | test_case_pre_handler(struct kprobe *p, struct pt_regs *regs) | ||
1296 | { | ||
1297 | container_of(p, struct test_probe, kprobe)->hit = test_instance; | ||
1298 | return 0; | ||
1299 | } | ||
1300 | |||
1301 | static int __kprobes | ||
1302 | test_after_pre_handler(struct kprobe *p, struct pt_regs *regs) | ||
1303 | { | ||
1304 | if (container_of(p, struct test_probe, kprobe)->hit == test_instance) | ||
1305 | return 0; /* Already run for this test instance */ | ||
1306 | |||
1307 | result_regs = *regs; | ||
1308 | result_regs.ARM_cpsr &= ~PSR_IGNORE_BITS; | ||
1309 | |||
1310 | /* Undo any changes done to SP by the test case */ | ||
1311 | regs->ARM_sp = (unsigned long)current_stack; | ||
1312 | |||
1313 | container_of(p, struct test_probe, kprobe)->hit = test_instance; | ||
1314 | return 0; | ||
1315 | } | ||
1316 | |||
1317 | static struct test_probe test_before_probe = { | ||
1318 | .kprobe.pre_handler = test_before_pre_handler, | ||
1319 | .kprobe.post_handler = test_before_post_handler, | ||
1320 | }; | ||
1321 | |||
1322 | static struct test_probe test_case_probe = { | ||
1323 | .kprobe.pre_handler = test_case_pre_handler, | ||
1324 | }; | ||
1325 | |||
1326 | static struct test_probe test_after_probe = { | ||
1327 | .kprobe.pre_handler = test_after_pre_handler, | ||
1328 | }; | ||
1329 | |||
1330 | static struct test_probe test_after2_probe = { | ||
1331 | .kprobe.pre_handler = test_after_pre_handler, | ||
1332 | }; | ||
1333 | |||
1334 | static void test_case_cleanup(void) | ||
1335 | { | ||
1336 | unregister_test_probe(&test_before_probe); | ||
1337 | unregister_test_probe(&test_case_probe); | ||
1338 | unregister_test_probe(&test_after_probe); | ||
1339 | unregister_test_probe(&test_after2_probe); | ||
1340 | } | ||
1341 | |||
1342 | static void print_registers(struct pt_regs *regs) | ||
1343 | { | ||
1344 | pr_err("r0 %08lx | r1 %08lx | r2 %08lx | r3 %08lx\n", | ||
1345 | regs->ARM_r0, regs->ARM_r1, regs->ARM_r2, regs->ARM_r3); | ||
1346 | pr_err("r4 %08lx | r5 %08lx | r6 %08lx | r7 %08lx\n", | ||
1347 | regs->ARM_r4, regs->ARM_r5, regs->ARM_r6, regs->ARM_r7); | ||
1348 | pr_err("r8 %08lx | r9 %08lx | r10 %08lx | r11 %08lx\n", | ||
1349 | regs->ARM_r8, regs->ARM_r9, regs->ARM_r10, regs->ARM_fp); | ||
1350 | pr_err("r12 %08lx | sp %08lx | lr %08lx | pc %08lx\n", | ||
1351 | regs->ARM_ip, regs->ARM_sp, regs->ARM_lr, regs->ARM_pc); | ||
1352 | pr_err("cpsr %08lx\n", regs->ARM_cpsr); | ||
1353 | } | ||
1354 | |||
1355 | static void print_memory(u32 *mem, size_t size) | ||
1356 | { | ||
1357 | int i; | ||
1358 | for (i = 0; i < size / sizeof(u32); i += 4) | ||
1359 | pr_err("%08x %08x %08x %08x\n", mem[i], mem[i+1], | ||
1360 | mem[i+2], mem[i+3]); | ||
1361 | } | ||
1362 | |||
1363 | static size_t expected_memory_size(u32 *sp) | ||
1364 | { | ||
1365 | size_t size = sizeof(expected_memory); | ||
1366 | int offset = (uintptr_t)sp - (uintptr_t)current_stack; | ||
1367 | if (offset > 0) | ||
1368 | size -= offset; | ||
1369 | return size; | ||
1370 | } | ||
1371 | |||
1372 | static void test_case_failed(const char *message) | ||
1373 | { | ||
1374 | test_case_cleanup(); | ||
1375 | |||
1376 | pr_err("FAIL: %s\n", message); | ||
1377 | pr_err("FAIL: Test %s\n", current_title); | ||
1378 | pr_err("FAIL: Scenario %d\n", test_case_run_count >> 1); | ||
1379 | } | ||
1380 | |||
1381 | static unsigned long next_instruction(unsigned long pc) | ||
1382 | { | ||
1383 | #ifdef CONFIG_THUMB2_KERNEL | ||
1384 | if ((pc & 1) && !is_wide_instruction(*(u16 *)(pc - 1))) | ||
1385 | return pc + 2; | ||
1386 | else | ||
1387 | #endif | ||
1388 | return pc + 4; | ||
1389 | } | ||
1390 | |||
1391 | static uintptr_t __used kprobes_test_case_start(const char *title, void *stack) | ||
1392 | { | ||
1393 | struct test_arg *args; | ||
1394 | struct test_arg_end *end_arg; | ||
1395 | unsigned long test_code; | ||
1396 | |||
1397 | args = (struct test_arg *)PTR_ALIGN(title + strlen(title) + 1, 4); | ||
1398 | |||
1399 | current_title = title; | ||
1400 | current_args = args; | ||
1401 | current_stack = stack; | ||
1402 | |||
1403 | ++test_try_count; | ||
1404 | |||
1405 | while (args->type != ARG_TYPE_END) | ||
1406 | ++args; | ||
1407 | end_arg = (struct test_arg_end *)args; | ||
1408 | |||
1409 | test_code = (unsigned long)(args + 1); /* Code starts after args */ | ||
1410 | |||
1411 | test_case_is_thumb = end_arg->flags & ARG_FLAG_THUMB; | ||
1412 | if (test_case_is_thumb) | ||
1413 | test_code |= 1; | ||
1414 | |||
1415 | current_code_start = test_code; | ||
1416 | |||
1417 | current_branch_target = 0; | ||
1418 | if (end_arg->branch_offset != end_arg->end_offset) | ||
1419 | current_branch_target = test_code + end_arg->branch_offset; | ||
1420 | |||
1421 | test_code += end_arg->code_offset; | ||
1422 | test_before_probe.kprobe.addr = (kprobe_opcode_t *)test_code; | ||
1423 | |||
1424 | test_code = next_instruction(test_code); | ||
1425 | test_case_probe.kprobe.addr = (kprobe_opcode_t *)test_code; | ||
1426 | |||
1427 | if (test_case_is_thumb) { | ||
1428 | u16 *p = (u16 *)(test_code & ~1); | ||
1429 | current_instruction = p[0]; | ||
1430 | if (is_wide_instruction(current_instruction)) { | ||
1431 | current_instruction <<= 16; | ||
1432 | current_instruction |= p[1]; | ||
1433 | } | ||
1434 | } else { | ||
1435 | current_instruction = *(u32 *)test_code; | ||
1436 | } | ||
1437 | |||
1438 | if (current_title[0] == '.') | ||
1439 | verbose("%s\n", current_title); | ||
1440 | else | ||
1441 | verbose("%s\t@ %0*x\n", current_title, | ||
1442 | test_case_is_thumb ? 4 : 8, | ||
1443 | current_instruction); | ||
1444 | |||
1445 | test_code = next_instruction(test_code); | ||
1446 | test_after_probe.kprobe.addr = (kprobe_opcode_t *)test_code; | ||
1447 | |||
1448 | if (kprobe_test_flags & TEST_FLAG_NARROW_INSTR) { | ||
1449 | if (!test_case_is_thumb || | ||
1450 | is_wide_instruction(current_instruction)) { | ||
1451 | test_case_failed("expected 16-bit instruction"); | ||
1452 | goto fail; | ||
1453 | } | ||
1454 | } else { | ||
1455 | if (test_case_is_thumb && | ||
1456 | !is_wide_instruction(current_instruction)) { | ||
1457 | test_case_failed("expected 32-bit instruction"); | ||
1458 | goto fail; | ||
1459 | } | ||
1460 | } | ||
1461 | |||
1462 | coverage_add(current_instruction); | ||
1463 | |||
1464 | if (end_arg->flags & ARG_FLAG_UNSUPPORTED) { | ||
1465 | if (register_test_probe(&test_case_probe) < 0) | ||
1466 | goto pass; | ||
1467 | test_case_failed("registered probe for unsupported instruction"); | ||
1468 | goto fail; | ||
1469 | } | ||
1470 | |||
1471 | if (end_arg->flags & ARG_FLAG_SUPPORTED) { | ||
1472 | if (register_test_probe(&test_case_probe) >= 0) | ||
1473 | goto pass; | ||
1474 | test_case_failed("couldn't register probe for supported instruction"); | ||
1475 | goto fail; | ||
1476 | } | ||
1477 | |||
1478 | if (register_test_probe(&test_before_probe) < 0) { | ||
1479 | test_case_failed("register test_before_probe failed"); | ||
1480 | goto fail; | ||
1481 | } | ||
1482 | if (register_test_probe(&test_after_probe) < 0) { | ||
1483 | test_case_failed("register test_after_probe failed"); | ||
1484 | goto fail; | ||
1485 | } | ||
1486 | if (current_branch_target) { | ||
1487 | test_after2_probe.kprobe.addr = | ||
1488 | (kprobe_opcode_t *)current_branch_target; | ||
1489 | if (register_test_probe(&test_after2_probe) < 0) { | ||
1490 | test_case_failed("register test_after2_probe failed"); | ||
1491 | goto fail; | ||
1492 | } | ||
1493 | } | ||
1494 | |||
1495 | /* Start first run of test case */ | ||
1496 | test_case_run_count = 0; | ||
1497 | ++test_instance; | ||
1498 | return current_code_start; | ||
1499 | pass: | ||
1500 | test_case_run_count = TEST_CASE_PASSED; | ||
1501 | return (uintptr_t)test_after_probe.kprobe.addr; | ||
1502 | fail: | ||
1503 | test_case_run_count = TEST_CASE_FAILED; | ||
1504 | return (uintptr_t)test_after_probe.kprobe.addr; | ||
1505 | } | ||
1506 | |||
1507 | static bool check_test_results(void) | ||
1508 | { | ||
1509 | size_t mem_size = 0; | ||
1510 | u32 *mem = 0; | ||
1511 | |||
1512 | if (memcmp(&expected_regs, &result_regs, sizeof(expected_regs))) { | ||
1513 | test_case_failed("registers differ"); | ||
1514 | goto fail; | ||
1515 | } | ||
1516 | |||
1517 | if (memory_needs_checking) { | ||
1518 | mem = (u32 *)result_regs.ARM_sp; | ||
1519 | mem_size = expected_memory_size(mem); | ||
1520 | if (memcmp(expected_memory, mem, mem_size)) { | ||
1521 | test_case_failed("test memory differs"); | ||
1522 | goto fail; | ||
1523 | } | ||
1524 | } | ||
1525 | |||
1526 | return true; | ||
1527 | |||
1528 | fail: | ||
1529 | pr_err("initial_regs:\n"); | ||
1530 | print_registers(&initial_regs); | ||
1531 | pr_err("expected_regs:\n"); | ||
1532 | print_registers(&expected_regs); | ||
1533 | pr_err("result_regs:\n"); | ||
1534 | print_registers(&result_regs); | ||
1535 | |||
1536 | if (mem) { | ||
1537 | pr_err("current_stack=%p\n", current_stack); | ||
1538 | pr_err("expected_memory:\n"); | ||
1539 | print_memory(expected_memory, mem_size); | ||
1540 | pr_err("result_memory:\n"); | ||
1541 | print_memory(mem, mem_size); | ||
1542 | } | ||
1543 | |||
1544 | return false; | ||
1545 | } | ||
1546 | |||
1547 | static uintptr_t __used kprobes_test_case_end(void) | ||
1548 | { | ||
1549 | if (test_case_run_count < 0) { | ||
1550 | if (test_case_run_count == TEST_CASE_PASSED) | ||
1551 | /* kprobes_test_case_start did all the needed testing */ | ||
1552 | goto pass; | ||
1553 | else | ||
1554 | /* kprobes_test_case_start failed */ | ||
1555 | goto fail; | ||
1556 | } | ||
1557 | |||
1558 | if (test_before_probe.hit != test_instance) { | ||
1559 | test_case_failed("test_before_handler not run"); | ||
1560 | goto fail; | ||
1561 | } | ||
1562 | |||
1563 | if (test_after_probe.hit != test_instance && | ||
1564 | test_after2_probe.hit != test_instance) { | ||
1565 | test_case_failed("test_after_handler not run"); | ||
1566 | goto fail; | ||
1567 | } | ||
1568 | |||
1569 | /* | ||
1570 | * Even numbered test runs ran without a probe on the test case so | ||
1571 | * we can gather reference results. The subsequent odd numbered run | ||
1572 | * will have the probe inserted. | ||
1573 | */ | ||
1574 | if ((test_case_run_count & 1) == 0) { | ||
1575 | /* Save results from run without probe */ | ||
1576 | u32 *mem = (u32 *)result_regs.ARM_sp; | ||
1577 | expected_regs = result_regs; | ||
1578 | memcpy(expected_memory, mem, expected_memory_size(mem)); | ||
1579 | |||
1580 | /* Insert probe onto test case instruction */ | ||
1581 | if (register_test_probe(&test_case_probe) < 0) { | ||
1582 | test_case_failed("register test_case_probe failed"); | ||
1583 | goto fail; | ||
1584 | } | ||
1585 | } else { | ||
1586 | /* Check probe ran as expected */ | ||
1587 | if (probe_should_run == 1) { | ||
1588 | if (test_case_probe.hit != test_instance) { | ||
1589 | test_case_failed("test_case_handler not run"); | ||
1590 | goto fail; | ||
1591 | } | ||
1592 | } else if (probe_should_run == 0) { | ||
1593 | if (test_case_probe.hit == test_instance) { | ||
1594 | test_case_failed("test_case_handler ran"); | ||
1595 | goto fail; | ||
1596 | } | ||
1597 | } | ||
1598 | |||
1599 | /* Remove probe for any subsequent reference run */ | ||
1600 | unregister_test_probe(&test_case_probe); | ||
1601 | |||
1602 | if (!check_test_results()) | ||
1603 | goto fail; | ||
1604 | |||
1605 | if (is_last_scenario) | ||
1606 | goto pass; | ||
1607 | } | ||
1608 | |||
1609 | /* Do next test run */ | ||
1610 | ++test_case_run_count; | ||
1611 | ++test_instance; | ||
1612 | return current_code_start; | ||
1613 | fail: | ||
1614 | ++test_fail_count; | ||
1615 | goto end; | ||
1616 | pass: | ||
1617 | ++test_pass_count; | ||
1618 | end: | ||
1619 | test_case_cleanup(); | ||
1620 | return 0; | ||
1621 | } | ||
1622 | |||
1623 | |||
1624 | /* | ||
1625 | * Top level test functions | ||
1626 | */ | ||
1627 | |||
1628 | static int run_test_cases(void (*tests)(void), const union decode_item *table) | ||
1629 | { | ||
1630 | int ret; | ||
1631 | |||
1632 | pr_info(" Check decoding tables\n"); | ||
1633 | ret = table_test(table); | ||
1634 | if (ret) | ||
1635 | return ret; | ||
1636 | |||
1637 | pr_info(" Run test cases\n"); | ||
1638 | ret = coverage_start(table); | ||
1639 | if (ret) | ||
1640 | return ret; | ||
1641 | |||
1642 | tests(); | ||
1643 | |||
1644 | coverage_end(); | ||
1645 | return 0; | ||
1646 | } | ||
1647 | |||
1648 | |||
1649 | static int __init run_all_tests(void) | ||
1650 | { | ||
1651 | int ret = 0; | ||
1652 | |||
1653 | pr_info("Begining kprobe tests...\n"); | ||
1654 | |||
1655 | #ifndef CONFIG_THUMB2_KERNEL | ||
1656 | |||
1657 | pr_info("Probe ARM code\n"); | ||
1658 | ret = run_api_tests(arm_func); | ||
1659 | if (ret) | ||
1660 | goto out; | ||
1661 | |||
1662 | pr_info("ARM instruction simulation\n"); | ||
1663 | ret = run_test_cases(kprobe_arm_test_cases, kprobe_decode_arm_table); | ||
1664 | if (ret) | ||
1665 | goto out; | ||
1666 | |||
1667 | #else /* CONFIG_THUMB2_KERNEL */ | ||
1668 | |||
1669 | pr_info("Probe 16-bit Thumb code\n"); | ||
1670 | ret = run_api_tests(thumb16_func); | ||
1671 | if (ret) | ||
1672 | goto out; | ||
1673 | |||
1674 | pr_info("Probe 32-bit Thumb code, even halfword\n"); | ||
1675 | ret = run_api_tests(thumb32even_func); | ||
1676 | if (ret) | ||
1677 | goto out; | ||
1678 | |||
1679 | pr_info("Probe 32-bit Thumb code, odd halfword\n"); | ||
1680 | ret = run_api_tests(thumb32odd_func); | ||
1681 | if (ret) | ||
1682 | goto out; | ||
1683 | |||
1684 | pr_info("16-bit Thumb instruction simulation\n"); | ||
1685 | ret = run_test_cases(kprobe_thumb16_test_cases, | ||
1686 | kprobe_decode_thumb16_table); | ||
1687 | if (ret) | ||
1688 | goto out; | ||
1689 | |||
1690 | pr_info("32-bit Thumb instruction simulation\n"); | ||
1691 | ret = run_test_cases(kprobe_thumb32_test_cases, | ||
1692 | kprobe_decode_thumb32_table); | ||
1693 | if (ret) | ||
1694 | goto out; | ||
1695 | #endif | ||
1696 | |||
1697 | pr_info("Total instruction simulation tests=%d, pass=%d fail=%d\n", | ||
1698 | test_try_count, test_pass_count, test_fail_count); | ||
1699 | if (test_fail_count) { | ||
1700 | ret = -EINVAL; | ||
1701 | goto out; | ||
1702 | } | ||
1703 | |||
1704 | #if BENCHMARKING | ||
1705 | pr_info("Benchmarks\n"); | ||
1706 | ret = run_benchmarks(); | ||
1707 | if (ret) | ||
1708 | goto out; | ||
1709 | #endif | ||
1710 | |||
1711 | #if __LINUX_ARM_ARCH__ >= 7 | ||
1712 | /* We are able to run all test cases so coverage should be complete */ | ||
1713 | if (coverage_fail) { | ||
1714 | pr_err("FAIL: Test coverage checks failed\n"); | ||
1715 | ret = -EINVAL; | ||
1716 | goto out; | ||
1717 | } | ||
1718 | #endif | ||
1719 | |||
1720 | out: | ||
1721 | if (ret == 0) | ||
1722 | pr_info("Finished kprobe tests OK\n"); | ||
1723 | else | ||
1724 | pr_err("kprobe tests failed\n"); | ||
1725 | |||
1726 | return ret; | ||
1727 | } | ||
1728 | |||
1729 | |||
1730 | /* | ||
1731 | * Module setup | ||
1732 | */ | ||
1733 | |||
1734 | #ifdef MODULE | ||
1735 | |||
1736 | static void __exit kprobe_test_exit(void) | ||
1737 | { | ||
1738 | } | ||
1739 | |||
1740 | module_init(run_all_tests) | ||
1741 | module_exit(kprobe_test_exit) | ||
1742 | MODULE_LICENSE("GPL"); | ||
1743 | |||
1744 | #else /* !MODULE */ | ||
1745 | |||
1746 | late_initcall(run_all_tests); | ||
1747 | |||
1748 | #endif | ||
diff --git a/arch/arm/kernel/kprobes-test.h b/arch/arm/kernel/kprobes-test.h new file mode 100644 index 000000000000..0dc5d77b9356 --- /dev/null +++ b/arch/arm/kernel/kprobes-test.h | |||
@@ -0,0 +1,392 @@ | |||
1 | /* | ||
2 | * arch/arm/kernel/kprobes-test.h | ||
3 | * | ||
4 | * Copyright (C) 2011 Jon Medhurst <tixy@yxit.co.uk>. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | #define VERBOSE 0 /* Set to '1' for more logging of test cases */ | ||
12 | |||
13 | #ifdef CONFIG_THUMB2_KERNEL | ||
14 | #define NORMAL_ISA "16" | ||
15 | #else | ||
16 | #define NORMAL_ISA "32" | ||
17 | #endif | ||
18 | |||
19 | |||
20 | /* Flags used in kprobe_test_flags */ | ||
21 | #define TEST_FLAG_NO_ITBLOCK (1<<0) | ||
22 | #define TEST_FLAG_FULL_ITBLOCK (1<<1) | ||
23 | #define TEST_FLAG_NARROW_INSTR (1<<2) | ||
24 | |||
25 | extern int kprobe_test_flags; | ||
26 | extern int kprobe_test_cc_position; | ||
27 | |||
28 | |||
29 | #define TEST_MEMORY_SIZE 256 | ||
30 | |||
31 | |||
32 | /* | ||
33 | * Test case structures. | ||
34 | * | ||
35 | * The arguments given to test cases can be one of three types. | ||
36 | * | ||
37 | * ARG_TYPE_REG | ||
38 | * Load a register with the given value. | ||
39 | * | ||
40 | * ARG_TYPE_PTR | ||
41 | * Load a register with a pointer into the stack buffer (SP + given value). | ||
42 | * | ||
43 | * ARG_TYPE_MEM | ||
44 | * Store the given value into the stack buffer at [SP+index]. | ||
45 | * | ||
46 | */ | ||
47 | |||
48 | #define ARG_TYPE_END 0 | ||
49 | #define ARG_TYPE_REG 1 | ||
50 | #define ARG_TYPE_PTR 2 | ||
51 | #define ARG_TYPE_MEM 3 | ||
52 | |||
53 | #define ARG_FLAG_UNSUPPORTED 0x01 | ||
54 | #define ARG_FLAG_SUPPORTED 0x02 | ||
55 | #define ARG_FLAG_THUMB 0x10 /* Must be 16 so TEST_ISA can be used */ | ||
56 | #define ARG_FLAG_ARM 0x20 /* Must be 32 so TEST_ISA can be used */ | ||
57 | |||
58 | struct test_arg { | ||
59 | u8 type; /* ARG_TYPE_x */ | ||
60 | u8 _padding[7]; | ||
61 | }; | ||
62 | |||
63 | struct test_arg_regptr { | ||
64 | u8 type; /* ARG_TYPE_REG or ARG_TYPE_PTR */ | ||
65 | u8 reg; | ||
66 | u8 _padding[2]; | ||
67 | u32 val; | ||
68 | }; | ||
69 | |||
70 | struct test_arg_mem { | ||
71 | u8 type; /* ARG_TYPE_MEM */ | ||
72 | u8 index; | ||
73 | u8 _padding[2]; | ||
74 | u32 val; | ||
75 | }; | ||
76 | |||
77 | struct test_arg_end { | ||
78 | u8 type; /* ARG_TYPE_END */ | ||
79 | u8 flags; /* ARG_FLAG_x */ | ||
80 | u16 code_offset; | ||
81 | u16 branch_offset; | ||
82 | u16 end_offset; | ||
83 | }; | ||
84 | |||
85 | |||
86 | /* | ||
87 | * Building blocks for test cases. | ||
88 | * | ||
89 | * Each test case is wrapped between TESTCASE_START and TESTCASE_END. | ||
90 | * | ||
91 | * To specify arguments for a test case the TEST_ARG_{REG,PTR,MEM} macros are | ||
92 | * used followed by a terminating TEST_ARG_END. | ||
93 | * | ||
94 | * After this, the instruction to be tested is defined with TEST_INSTRUCTION. | ||
95 | * Or for branches, TEST_BRANCH_B and TEST_BRANCH_F (branch forwards/backwards). | ||
96 | * | ||
97 | * Some specific test cases may make use of other custom constructs. | ||
98 | */ | ||
99 | |||
100 | #if VERBOSE | ||
101 | #define verbose(fmt, ...) pr_info(fmt, ##__VA_ARGS__) | ||
102 | #else | ||
103 | #define verbose(fmt, ...) | ||
104 | #endif | ||
105 | |||
106 | #define TEST_GROUP(title) \ | ||
107 | verbose("\n"); \ | ||
108 | verbose(title"\n"); \ | ||
109 | verbose("---------------------------------------------------------\n"); | ||
110 | |||
111 | #define TESTCASE_START(title) \ | ||
112 | __asm__ __volatile__ ( \ | ||
113 | "bl __kprobes_test_case_start \n\t" \ | ||
114 | /* don't use .asciz here as 'title' may be */ \ | ||
115 | /* multiple strings to be concatenated. */ \ | ||
116 | ".ascii "#title" \n\t" \ | ||
117 | ".byte 0 \n\t" \ | ||
118 | ".align 2 \n\t" | ||
119 | |||
120 | #define TEST_ARG_REG(reg, val) \ | ||
121 | ".byte "__stringify(ARG_TYPE_REG)" \n\t" \ | ||
122 | ".byte "#reg" \n\t" \ | ||
123 | ".short 0 \n\t" \ | ||
124 | ".word "#val" \n\t" | ||
125 | |||
126 | #define TEST_ARG_PTR(reg, val) \ | ||
127 | ".byte "__stringify(ARG_TYPE_PTR)" \n\t" \ | ||
128 | ".byte "#reg" \n\t" \ | ||
129 | ".short 0 \n\t" \ | ||
130 | ".word "#val" \n\t" | ||
131 | |||
132 | #define TEST_ARG_MEM(index, val) \ | ||
133 | ".byte "__stringify(ARG_TYPE_MEM)" \n\t" \ | ||
134 | ".byte "#index" \n\t" \ | ||
135 | ".short 0 \n\t" \ | ||
136 | ".word "#val" \n\t" | ||
137 | |||
138 | #define TEST_ARG_END(flags) \ | ||
139 | ".byte "__stringify(ARG_TYPE_END)" \n\t" \ | ||
140 | ".byte "TEST_ISA flags" \n\t" \ | ||
141 | ".short 50f-0f \n\t" \ | ||
142 | ".short 2f-0f \n\t" \ | ||
143 | ".short 99f-0f \n\t" \ | ||
144 | ".code "TEST_ISA" \n\t" \ | ||
145 | "0: \n\t" | ||
146 | |||
147 | #define TEST_INSTRUCTION(instruction) \ | ||
148 | "50: nop \n\t" \ | ||
149 | "1: "instruction" \n\t" \ | ||
150 | " nop \n\t" | ||
151 | |||
152 | #define TEST_BRANCH_F(instruction, xtra_dist) \ | ||
153 | TEST_INSTRUCTION(instruction) \ | ||
154 | ".if "#xtra_dist" \n\t" \ | ||
155 | " b 99f \n\t" \ | ||
156 | ".space "#xtra_dist" \n\t" \ | ||
157 | ".endif \n\t" \ | ||
158 | " b 99f \n\t" \ | ||
159 | "2: nop \n\t" | ||
160 | |||
161 | #define TEST_BRANCH_B(instruction, xtra_dist) \ | ||
162 | " b 50f \n\t" \ | ||
163 | " b 99f \n\t" \ | ||
164 | "2: nop \n\t" \ | ||
165 | " b 99f \n\t" \ | ||
166 | ".if "#xtra_dist" \n\t" \ | ||
167 | ".space "#xtra_dist" \n\t" \ | ||
168 | ".endif \n\t" \ | ||
169 | TEST_INSTRUCTION(instruction) | ||
170 | |||
171 | #define TESTCASE_END \ | ||
172 | "2: \n\t" \ | ||
173 | "99: \n\t" \ | ||
174 | " bl __kprobes_test_case_end_"TEST_ISA" \n\t" \ | ||
175 | ".code "NORMAL_ISA" \n\t" \ | ||
176 | : : \ | ||
177 | : "r0", "r1", "r2", "r3", "ip", "lr", "memory", "cc" \ | ||
178 | ); | ||
179 | |||
180 | |||
181 | /* | ||
182 | * Macros to define test cases. | ||
183 | * | ||
184 | * Those of the form TEST_{R,P,M}* can be used to define test cases | ||
185 | * which take combinations of the three basic types of arguments. E.g. | ||
186 | * | ||
187 | * TEST_R One register argument | ||
188 | * TEST_RR Two register arguments | ||
189 | * TEST_RPR A register, a pointer, then a register argument | ||
190 | * | ||
191 | * For testing instructions which may branch, there are macros TEST_BF_* | ||
192 | * and TEST_BB_* for branching forwards and backwards. | ||
193 | * | ||
194 | * TEST_SUPPORTED and TEST_UNSUPPORTED don't cause the code to be executed, | ||
195 | * the just verify that a kprobe is or is not allowed on the given instruction. | ||
196 | */ | ||
197 | |||
198 | #define TEST(code) \ | ||
199 | TESTCASE_START(code) \ | ||
200 | TEST_ARG_END("") \ | ||
201 | TEST_INSTRUCTION(code) \ | ||
202 | TESTCASE_END | ||
203 | |||
204 | #define TEST_UNSUPPORTED(code) \ | ||
205 | TESTCASE_START(code) \ | ||
206 | TEST_ARG_END("|"__stringify(ARG_FLAG_UNSUPPORTED)) \ | ||
207 | TEST_INSTRUCTION(code) \ | ||
208 | TESTCASE_END | ||
209 | |||
210 | #define TEST_SUPPORTED(code) \ | ||
211 | TESTCASE_START(code) \ | ||
212 | TEST_ARG_END("|"__stringify(ARG_FLAG_SUPPORTED)) \ | ||
213 | TEST_INSTRUCTION(code) \ | ||
214 | TESTCASE_END | ||
215 | |||
216 | #define TEST_R(code1, reg, val, code2) \ | ||
217 | TESTCASE_START(code1 #reg code2) \ | ||
218 | TEST_ARG_REG(reg, val) \ | ||
219 | TEST_ARG_END("") \ | ||
220 | TEST_INSTRUCTION(code1 #reg code2) \ | ||
221 | TESTCASE_END | ||
222 | |||
223 | #define TEST_RR(code1, reg1, val1, code2, reg2, val2, code3) \ | ||
224 | TESTCASE_START(code1 #reg1 code2 #reg2 code3) \ | ||
225 | TEST_ARG_REG(reg1, val1) \ | ||
226 | TEST_ARG_REG(reg2, val2) \ | ||
227 | TEST_ARG_END("") \ | ||
228 | TEST_INSTRUCTION(code1 #reg1 code2 #reg2 code3) \ | ||
229 | TESTCASE_END | ||
230 | |||
231 | #define TEST_RRR(code1, reg1, val1, code2, reg2, val2, code3, reg3, val3, code4)\ | ||
232 | TESTCASE_START(code1 #reg1 code2 #reg2 code3 #reg3 code4) \ | ||
233 | TEST_ARG_REG(reg1, val1) \ | ||
234 | TEST_ARG_REG(reg2, val2) \ | ||
235 | TEST_ARG_REG(reg3, val3) \ | ||
236 | TEST_ARG_END("") \ | ||
237 | TEST_INSTRUCTION(code1 #reg1 code2 #reg2 code3 #reg3 code4) \ | ||
238 | TESTCASE_END | ||
239 | |||
240 | #define TEST_RRRR(code1, reg1, val1, code2, reg2, val2, code3, reg3, val3, code4, reg4, val4) \ | ||
241 | TESTCASE_START(code1 #reg1 code2 #reg2 code3 #reg3 code4 #reg4) \ | ||
242 | TEST_ARG_REG(reg1, val1) \ | ||
243 | TEST_ARG_REG(reg2, val2) \ | ||
244 | TEST_ARG_REG(reg3, val3) \ | ||
245 | TEST_ARG_REG(reg4, val4) \ | ||
246 | TEST_ARG_END("") \ | ||
247 | TEST_INSTRUCTION(code1 #reg1 code2 #reg2 code3 #reg3 code4 #reg4) \ | ||
248 | TESTCASE_END | ||
249 | |||
250 | #define TEST_P(code1, reg1, val1, code2) \ | ||
251 | TESTCASE_START(code1 #reg1 code2) \ | ||
252 | TEST_ARG_PTR(reg1, val1) \ | ||
253 | TEST_ARG_END("") \ | ||
254 | TEST_INSTRUCTION(code1 #reg1 code2) \ | ||
255 | TESTCASE_END | ||
256 | |||
257 | #define TEST_PR(code1, reg1, val1, code2, reg2, val2, code3) \ | ||
258 | TESTCASE_START(code1 #reg1 code2 #reg2 code3) \ | ||
259 | TEST_ARG_PTR(reg1, val1) \ | ||
260 | TEST_ARG_REG(reg2, val2) \ | ||
261 | TEST_ARG_END("") \ | ||
262 | TEST_INSTRUCTION(code1 #reg1 code2 #reg2 code3) \ | ||
263 | TESTCASE_END | ||
264 | |||
265 | #define TEST_RP(code1, reg1, val1, code2, reg2, val2, code3) \ | ||
266 | TESTCASE_START(code1 #reg1 code2 #reg2 code3) \ | ||
267 | TEST_ARG_REG(reg1, val1) \ | ||
268 | TEST_ARG_PTR(reg2, val2) \ | ||
269 | TEST_ARG_END("") \ | ||
270 | TEST_INSTRUCTION(code1 #reg1 code2 #reg2 code3) \ | ||
271 | TESTCASE_END | ||
272 | |||
273 | #define TEST_PRR(code1, reg1, val1, code2, reg2, val2, code3, reg3, val3, code4)\ | ||
274 | TESTCASE_START(code1 #reg1 code2 #reg2 code3 #reg3 code4) \ | ||
275 | TEST_ARG_PTR(reg1, val1) \ | ||
276 | TEST_ARG_REG(reg2, val2) \ | ||
277 | TEST_ARG_REG(reg3, val3) \ | ||
278 | TEST_ARG_END("") \ | ||
279 | TEST_INSTRUCTION(code1 #reg1 code2 #reg2 code3 #reg3 code4) \ | ||
280 | TESTCASE_END | ||
281 | |||
282 | #define TEST_RPR(code1, reg1, val1, code2, reg2, val2, code3, reg3, val3, code4)\ | ||
283 | TESTCASE_START(code1 #reg1 code2 #reg2 code3 #reg3 code4) \ | ||
284 | TEST_ARG_REG(reg1, val1) \ | ||
285 | TEST_ARG_PTR(reg2, val2) \ | ||
286 | TEST_ARG_REG(reg3, val3) \ | ||
287 | TEST_ARG_END("") \ | ||
288 | TEST_INSTRUCTION(code1 #reg1 code2 #reg2 code3 #reg3 code4) \ | ||
289 | TESTCASE_END | ||
290 | |||
291 | #define TEST_RRP(code1, reg1, val1, code2, reg2, val2, code3, reg3, val3, code4)\ | ||
292 | TESTCASE_START(code1 #reg1 code2 #reg2 code3 #reg3 code4) \ | ||
293 | TEST_ARG_REG(reg1, val1) \ | ||
294 | TEST_ARG_REG(reg2, val2) \ | ||
295 | TEST_ARG_PTR(reg3, val3) \ | ||
296 | TEST_ARG_END("") \ | ||
297 | TEST_INSTRUCTION(code1 #reg1 code2 #reg2 code3 #reg3 code4) \ | ||
298 | TESTCASE_END | ||
299 | |||
300 | #define TEST_BF_P(code1, reg1, val1, code2) \ | ||
301 | TESTCASE_START(code1 #reg1 code2) \ | ||
302 | TEST_ARG_PTR(reg1, val1) \ | ||
303 | TEST_ARG_END("") \ | ||
304 | TEST_BRANCH_F(code1 #reg1 code2, 0) \ | ||
305 | TESTCASE_END | ||
306 | |||
307 | #define TEST_BF_X(code, xtra_dist) \ | ||
308 | TESTCASE_START(code) \ | ||
309 | TEST_ARG_END("") \ | ||
310 | TEST_BRANCH_F(code, xtra_dist) \ | ||
311 | TESTCASE_END | ||
312 | |||
313 | #define TEST_BB_X(code, xtra_dist) \ | ||
314 | TESTCASE_START(code) \ | ||
315 | TEST_ARG_END("") \ | ||
316 | TEST_BRANCH_B(code, xtra_dist) \ | ||
317 | TESTCASE_END | ||
318 | |||
319 | #define TEST_BF_RX(code1, reg, val, code2, xtra_dist) \ | ||
320 | TESTCASE_START(code1 #reg code2) \ | ||
321 | TEST_ARG_REG(reg, val) \ | ||
322 | TEST_ARG_END("") \ | ||
323 | TEST_BRANCH_F(code1 #reg code2, xtra_dist) \ | ||
324 | TESTCASE_END | ||
325 | |||
326 | #define TEST_BB_RX(code1, reg, val, code2, xtra_dist) \ | ||
327 | TESTCASE_START(code1 #reg code2) \ | ||
328 | TEST_ARG_REG(reg, val) \ | ||
329 | TEST_ARG_END("") \ | ||
330 | TEST_BRANCH_B(code1 #reg code2, xtra_dist) \ | ||
331 | TESTCASE_END | ||
332 | |||
333 | #define TEST_BF(code) TEST_BF_X(code, 0) | ||
334 | #define TEST_BB(code) TEST_BB_X(code, 0) | ||
335 | |||
336 | #define TEST_BF_R(code1, reg, val, code2) TEST_BF_RX(code1, reg, val, code2, 0) | ||
337 | #define TEST_BB_R(code1, reg, val, code2) TEST_BB_RX(code1, reg, val, code2, 0) | ||
338 | |||
339 | #define TEST_BF_RR(code1, reg1, val1, code2, reg2, val2, code3) \ | ||
340 | TESTCASE_START(code1 #reg1 code2 #reg2 code3) \ | ||
341 | TEST_ARG_REG(reg1, val1) \ | ||
342 | TEST_ARG_REG(reg2, val2) \ | ||
343 | TEST_ARG_END("") \ | ||
344 | TEST_BRANCH_F(code1 #reg1 code2 #reg2 code3, 0) \ | ||
345 | TESTCASE_END | ||
346 | |||
347 | #define TEST_X(code, codex) \ | ||
348 | TESTCASE_START(code) \ | ||
349 | TEST_ARG_END("") \ | ||
350 | TEST_INSTRUCTION(code) \ | ||
351 | " b 99f \n\t" \ | ||
352 | " "codex" \n\t" \ | ||
353 | TESTCASE_END | ||
354 | |||
355 | #define TEST_RX(code1, reg, val, code2, codex) \ | ||
356 | TESTCASE_START(code1 #reg code2) \ | ||
357 | TEST_ARG_REG(reg, val) \ | ||
358 | TEST_ARG_END("") \ | ||
359 | TEST_INSTRUCTION(code1 __stringify(reg) code2) \ | ||
360 | " b 99f \n\t" \ | ||
361 | " "codex" \n\t" \ | ||
362 | TESTCASE_END | ||
363 | |||
364 | #define TEST_RRX(code1, reg1, val1, code2, reg2, val2, code3, codex) \ | ||
365 | TESTCASE_START(code1 #reg1 code2 #reg2 code3) \ | ||
366 | TEST_ARG_REG(reg1, val1) \ | ||
367 | TEST_ARG_REG(reg2, val2) \ | ||
368 | TEST_ARG_END("") \ | ||
369 | TEST_INSTRUCTION(code1 __stringify(reg1) code2 __stringify(reg2) code3) \ | ||
370 | " b 99f \n\t" \ | ||
371 | " "codex" \n\t" \ | ||
372 | TESTCASE_END | ||
373 | |||
374 | |||
375 | /* Various values used in test cases... */ | ||
376 | #define N(val) (val ^ 0xffffffff) | ||
377 | #define VAL1 0x12345678 | ||
378 | #define VAL2 N(VAL1) | ||
379 | #define VAL3 0xa5f801 | ||
380 | #define VAL4 N(VAL3) | ||
381 | #define VALM 0x456789ab | ||
382 | #define VALR 0xdeaddead | ||
383 | #define HH1 0x0123fecb | ||
384 | #define HH2 0xa9874567 | ||
385 | |||
386 | |||
387 | #ifdef CONFIG_THUMB2_KERNEL | ||
388 | void kprobe_thumb16_test_cases(void); | ||
389 | void kprobe_thumb32_test_cases(void); | ||
390 | #else | ||
391 | void kprobe_arm_test_cases(void); | ||
392 | #endif | ||
diff --git a/arch/arm/kernel/kprobes-thumb.c b/arch/arm/kernel/kprobes-thumb.c index 902ca59e8b11..8f96ec778e8d 100644 --- a/arch/arm/kernel/kprobes-thumb.c +++ b/arch/arm/kernel/kprobes-thumb.c | |||
@@ -10,6 +10,7 @@ | |||
10 | 10 | ||
11 | #include <linux/kernel.h> | 11 | #include <linux/kernel.h> |
12 | #include <linux/kprobes.h> | 12 | #include <linux/kprobes.h> |
13 | #include <linux/module.h> | ||
13 | 14 | ||
14 | #include "kprobes.h" | 15 | #include "kprobes.h" |
15 | 16 | ||
@@ -943,6 +944,9 @@ const union decode_item kprobe_decode_thumb32_table[] = { | |||
943 | */ | 944 | */ |
944 | DECODE_END | 945 | DECODE_END |
945 | }; | 946 | }; |
947 | #ifdef CONFIG_ARM_KPROBES_TEST_MODULE | ||
948 | EXPORT_SYMBOL_GPL(kprobe_decode_thumb32_table); | ||
949 | #endif | ||
946 | 950 | ||
947 | static void __kprobes | 951 | static void __kprobes |
948 | t16_simulate_bxblx(struct kprobe *p, struct pt_regs *regs) | 952 | t16_simulate_bxblx(struct kprobe *p, struct pt_regs *regs) |
@@ -1423,6 +1427,9 @@ const union decode_item kprobe_decode_thumb16_table[] = { | |||
1423 | 1427 | ||
1424 | DECODE_END | 1428 | DECODE_END |
1425 | }; | 1429 | }; |
1430 | #ifdef CONFIG_ARM_KPROBES_TEST_MODULE | ||
1431 | EXPORT_SYMBOL_GPL(kprobe_decode_thumb16_table); | ||
1432 | #endif | ||
1426 | 1433 | ||
1427 | static unsigned long __kprobes thumb_check_cc(unsigned long cpsr) | 1434 | static unsigned long __kprobes thumb_check_cc(unsigned long cpsr) |
1428 | { | 1435 | { |
diff --git a/arch/arm/kernel/kprobes.h b/arch/arm/kernel/kprobes.h index a6aeda0a6c7f..38945f78f9f1 100644 --- a/arch/arm/kernel/kprobes.h +++ b/arch/arm/kernel/kprobes.h | |||
@@ -413,6 +413,14 @@ struct decode_reject { | |||
413 | DECODE_HEADER(DECODE_TYPE_REJECT, _mask, _value, 0) | 413 | DECODE_HEADER(DECODE_TYPE_REJECT, _mask, _value, 0) |
414 | 414 | ||
415 | 415 | ||
416 | #ifdef CONFIG_THUMB2_KERNEL | ||
417 | extern const union decode_item kprobe_decode_thumb16_table[]; | ||
418 | extern const union decode_item kprobe_decode_thumb32_table[]; | ||
419 | #else | ||
420 | extern const union decode_item kprobe_decode_arm_table[]; | ||
421 | #endif | ||
422 | |||
423 | |||
416 | int kprobe_decode_insn(kprobe_opcode_t insn, struct arch_specific_insn *asi, | 424 | int kprobe_decode_insn(kprobe_opcode_t insn, struct arch_specific_insn *asi, |
417 | const union decode_item *table, bool thumb16); | 425 | const union decode_item *table, bool thumb16); |
418 | 426 | ||
diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c index 53c9c2610cbc..e6e5d7c84f1a 100644 --- a/arch/arm/kernel/perf_event.c +++ b/arch/arm/kernel/perf_event.c | |||
@@ -12,6 +12,7 @@ | |||
12 | */ | 12 | */ |
13 | #define pr_fmt(fmt) "hw perfevents: " fmt | 13 | #define pr_fmt(fmt) "hw perfevents: " fmt |
14 | 14 | ||
15 | #include <linux/bitmap.h> | ||
15 | #include <linux/interrupt.h> | 16 | #include <linux/interrupt.h> |
16 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
17 | #include <linux/module.h> | 18 | #include <linux/module.h> |
@@ -26,16 +27,8 @@ | |||
26 | #include <asm/pmu.h> | 27 | #include <asm/pmu.h> |
27 | #include <asm/stacktrace.h> | 28 | #include <asm/stacktrace.h> |
28 | 29 | ||
29 | static struct platform_device *pmu_device; | ||
30 | |||
31 | /* | ||
32 | * Hardware lock to serialize accesses to PMU registers. Needed for the | ||
33 | * read/modify/write sequences. | ||
34 | */ | ||
35 | static DEFINE_RAW_SPINLOCK(pmu_lock); | ||
36 | |||
37 | /* | 30 | /* |
38 | * ARMv6 supports a maximum of 3 events, starting from index 1. If we add | 31 | * ARMv6 supports a maximum of 3 events, starting from index 0. If we add |
39 | * another platform that supports more, we need to increase this to be the | 32 | * another platform that supports more, we need to increase this to be the |
40 | * largest of all platforms. | 33 | * largest of all platforms. |
41 | * | 34 | * |
@@ -43,62 +36,24 @@ static DEFINE_RAW_SPINLOCK(pmu_lock); | |||
43 | * cycle counter CCNT + 31 events counters CNT0..30. | 36 | * cycle counter CCNT + 31 events counters CNT0..30. |
44 | * Cortex-A8 has 1+4 counters, Cortex-A9 has 1+6 counters. | 37 | * Cortex-A8 has 1+4 counters, Cortex-A9 has 1+6 counters. |
45 | */ | 38 | */ |
46 | #define ARMPMU_MAX_HWEVENTS 33 | 39 | #define ARMPMU_MAX_HWEVENTS 32 |
47 | 40 | ||
48 | /* The events for a given CPU. */ | 41 | static DEFINE_PER_CPU(struct perf_event * [ARMPMU_MAX_HWEVENTS], hw_events); |
49 | struct cpu_hw_events { | 42 | static DEFINE_PER_CPU(unsigned long [BITS_TO_LONGS(ARMPMU_MAX_HWEVENTS)], used_mask); |
50 | /* | 43 | static DEFINE_PER_CPU(struct pmu_hw_events, cpu_hw_events); |
51 | * The events that are active on the CPU for the given index. Index 0 | ||
52 | * is reserved. | ||
53 | */ | ||
54 | struct perf_event *events[ARMPMU_MAX_HWEVENTS]; | ||
55 | |||
56 | /* | ||
57 | * A 1 bit for an index indicates that the counter is being used for | ||
58 | * an event. A 0 means that the counter can be used. | ||
59 | */ | ||
60 | unsigned long used_mask[BITS_TO_LONGS(ARMPMU_MAX_HWEVENTS)]; | ||
61 | 44 | ||
62 | /* | 45 | #define to_arm_pmu(p) (container_of(p, struct arm_pmu, pmu)) |
63 | * A 1 bit for an index indicates that the counter is actively being | ||
64 | * used. | ||
65 | */ | ||
66 | unsigned long active_mask[BITS_TO_LONGS(ARMPMU_MAX_HWEVENTS)]; | ||
67 | }; | ||
68 | static DEFINE_PER_CPU(struct cpu_hw_events, cpu_hw_events); | ||
69 | |||
70 | struct arm_pmu { | ||
71 | enum arm_perf_pmu_ids id; | ||
72 | const char *name; | ||
73 | irqreturn_t (*handle_irq)(int irq_num, void *dev); | ||
74 | void (*enable)(struct hw_perf_event *evt, int idx); | ||
75 | void (*disable)(struct hw_perf_event *evt, int idx); | ||
76 | int (*get_event_idx)(struct cpu_hw_events *cpuc, | ||
77 | struct hw_perf_event *hwc); | ||
78 | u32 (*read_counter)(int idx); | ||
79 | void (*write_counter)(int idx, u32 val); | ||
80 | void (*start)(void); | ||
81 | void (*stop)(void); | ||
82 | void (*reset)(void *); | ||
83 | const unsigned (*cache_map)[PERF_COUNT_HW_CACHE_MAX] | ||
84 | [PERF_COUNT_HW_CACHE_OP_MAX] | ||
85 | [PERF_COUNT_HW_CACHE_RESULT_MAX]; | ||
86 | const unsigned (*event_map)[PERF_COUNT_HW_MAX]; | ||
87 | u32 raw_event_mask; | ||
88 | int num_events; | ||
89 | u64 max_period; | ||
90 | }; | ||
91 | 46 | ||
92 | /* Set at runtime when we know what CPU type we are. */ | 47 | /* Set at runtime when we know what CPU type we are. */ |
93 | static const struct arm_pmu *armpmu; | 48 | static struct arm_pmu *cpu_pmu; |
94 | 49 | ||
95 | enum arm_perf_pmu_ids | 50 | enum arm_perf_pmu_ids |
96 | armpmu_get_pmu_id(void) | 51 | armpmu_get_pmu_id(void) |
97 | { | 52 | { |
98 | int id = -ENODEV; | 53 | int id = -ENODEV; |
99 | 54 | ||
100 | if (armpmu != NULL) | 55 | if (cpu_pmu != NULL) |
101 | id = armpmu->id; | 56 | id = cpu_pmu->id; |
102 | 57 | ||
103 | return id; | 58 | return id; |
104 | } | 59 | } |
@@ -109,8 +64,8 @@ armpmu_get_max_events(void) | |||
109 | { | 64 | { |
110 | int max_events = 0; | 65 | int max_events = 0; |
111 | 66 | ||
112 | if (armpmu != NULL) | 67 | if (cpu_pmu != NULL) |
113 | max_events = armpmu->num_events; | 68 | max_events = cpu_pmu->num_events; |
114 | 69 | ||
115 | return max_events; | 70 | return max_events; |
116 | } | 71 | } |
@@ -130,7 +85,11 @@ EXPORT_SYMBOL_GPL(perf_num_counters); | |||
130 | #define CACHE_OP_UNSUPPORTED 0xFFFF | 85 | #define CACHE_OP_UNSUPPORTED 0xFFFF |
131 | 86 | ||
132 | static int | 87 | static int |
133 | armpmu_map_cache_event(u64 config) | 88 | armpmu_map_cache_event(const unsigned (*cache_map) |
89 | [PERF_COUNT_HW_CACHE_MAX] | ||
90 | [PERF_COUNT_HW_CACHE_OP_MAX] | ||
91 | [PERF_COUNT_HW_CACHE_RESULT_MAX], | ||
92 | u64 config) | ||
134 | { | 93 | { |
135 | unsigned int cache_type, cache_op, cache_result, ret; | 94 | unsigned int cache_type, cache_op, cache_result, ret; |
136 | 95 | ||
@@ -146,7 +105,7 @@ armpmu_map_cache_event(u64 config) | |||
146 | if (cache_result >= PERF_COUNT_HW_CACHE_RESULT_MAX) | 105 | if (cache_result >= PERF_COUNT_HW_CACHE_RESULT_MAX) |
147 | return -EINVAL; | 106 | return -EINVAL; |
148 | 107 | ||
149 | ret = (int)(*armpmu->cache_map)[cache_type][cache_op][cache_result]; | 108 | ret = (int)(*cache_map)[cache_type][cache_op][cache_result]; |
150 | 109 | ||
151 | if (ret == CACHE_OP_UNSUPPORTED) | 110 | if (ret == CACHE_OP_UNSUPPORTED) |
152 | return -ENOENT; | 111 | return -ENOENT; |
@@ -155,23 +114,46 @@ armpmu_map_cache_event(u64 config) | |||
155 | } | 114 | } |
156 | 115 | ||
157 | static int | 116 | static int |
158 | armpmu_map_event(u64 config) | 117 | armpmu_map_event(const unsigned (*event_map)[PERF_COUNT_HW_MAX], u64 config) |
159 | { | 118 | { |
160 | int mapping = (*armpmu->event_map)[config]; | 119 | int mapping = (*event_map)[config]; |
161 | return mapping == HW_OP_UNSUPPORTED ? -EOPNOTSUPP : mapping; | 120 | return mapping == HW_OP_UNSUPPORTED ? -ENOENT : mapping; |
162 | } | 121 | } |
163 | 122 | ||
164 | static int | 123 | static int |
165 | armpmu_map_raw_event(u64 config) | 124 | armpmu_map_raw_event(u32 raw_event_mask, u64 config) |
166 | { | 125 | { |
167 | return (int)(config & armpmu->raw_event_mask); | 126 | return (int)(config & raw_event_mask); |
168 | } | 127 | } |
169 | 128 | ||
170 | static int | 129 | static int map_cpu_event(struct perf_event *event, |
130 | const unsigned (*event_map)[PERF_COUNT_HW_MAX], | ||
131 | const unsigned (*cache_map) | ||
132 | [PERF_COUNT_HW_CACHE_MAX] | ||
133 | [PERF_COUNT_HW_CACHE_OP_MAX] | ||
134 | [PERF_COUNT_HW_CACHE_RESULT_MAX], | ||
135 | u32 raw_event_mask) | ||
136 | { | ||
137 | u64 config = event->attr.config; | ||
138 | |||
139 | switch (event->attr.type) { | ||
140 | case PERF_TYPE_HARDWARE: | ||
141 | return armpmu_map_event(event_map, config); | ||
142 | case PERF_TYPE_HW_CACHE: | ||
143 | return armpmu_map_cache_event(cache_map, config); | ||
144 | case PERF_TYPE_RAW: | ||
145 | return armpmu_map_raw_event(raw_event_mask, config); | ||
146 | } | ||
147 | |||
148 | return -ENOENT; | ||
149 | } | ||
150 | |||
151 | int | ||
171 | armpmu_event_set_period(struct perf_event *event, | 152 | armpmu_event_set_period(struct perf_event *event, |
172 | struct hw_perf_event *hwc, | 153 | struct hw_perf_event *hwc, |
173 | int idx) | 154 | int idx) |
174 | { | 155 | { |
156 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); | ||
175 | s64 left = local64_read(&hwc->period_left); | 157 | s64 left = local64_read(&hwc->period_left); |
176 | s64 period = hwc->sample_period; | 158 | s64 period = hwc->sample_period; |
177 | int ret = 0; | 159 | int ret = 0; |
@@ -202,11 +184,12 @@ armpmu_event_set_period(struct perf_event *event, | |||
202 | return ret; | 184 | return ret; |
203 | } | 185 | } |
204 | 186 | ||
205 | static u64 | 187 | u64 |
206 | armpmu_event_update(struct perf_event *event, | 188 | armpmu_event_update(struct perf_event *event, |
207 | struct hw_perf_event *hwc, | 189 | struct hw_perf_event *hwc, |
208 | int idx, int overflow) | 190 | int idx, int overflow) |
209 | { | 191 | { |
192 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); | ||
210 | u64 delta, prev_raw_count, new_raw_count; | 193 | u64 delta, prev_raw_count, new_raw_count; |
211 | 194 | ||
212 | again: | 195 | again: |
@@ -246,11 +229,9 @@ armpmu_read(struct perf_event *event) | |||
246 | static void | 229 | static void |
247 | armpmu_stop(struct perf_event *event, int flags) | 230 | armpmu_stop(struct perf_event *event, int flags) |
248 | { | 231 | { |
232 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); | ||
249 | struct hw_perf_event *hwc = &event->hw; | 233 | struct hw_perf_event *hwc = &event->hw; |
250 | 234 | ||
251 | if (!armpmu) | ||
252 | return; | ||
253 | |||
254 | /* | 235 | /* |
255 | * ARM pmu always has to update the counter, so ignore | 236 | * ARM pmu always has to update the counter, so ignore |
256 | * PERF_EF_UPDATE, see comments in armpmu_start(). | 237 | * PERF_EF_UPDATE, see comments in armpmu_start(). |
@@ -266,11 +247,9 @@ armpmu_stop(struct perf_event *event, int flags) | |||
266 | static void | 247 | static void |
267 | armpmu_start(struct perf_event *event, int flags) | 248 | armpmu_start(struct perf_event *event, int flags) |
268 | { | 249 | { |
250 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); | ||
269 | struct hw_perf_event *hwc = &event->hw; | 251 | struct hw_perf_event *hwc = &event->hw; |
270 | 252 | ||
271 | if (!armpmu) | ||
272 | return; | ||
273 | |||
274 | /* | 253 | /* |
275 | * ARM pmu always has to reprogram the period, so ignore | 254 | * ARM pmu always has to reprogram the period, so ignore |
276 | * PERF_EF_RELOAD, see the comment below. | 255 | * PERF_EF_RELOAD, see the comment below. |
@@ -293,16 +272,16 @@ armpmu_start(struct perf_event *event, int flags) | |||
293 | static void | 272 | static void |
294 | armpmu_del(struct perf_event *event, int flags) | 273 | armpmu_del(struct perf_event *event, int flags) |
295 | { | 274 | { |
296 | struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); | 275 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); |
276 | struct pmu_hw_events *hw_events = armpmu->get_hw_events(); | ||
297 | struct hw_perf_event *hwc = &event->hw; | 277 | struct hw_perf_event *hwc = &event->hw; |
298 | int idx = hwc->idx; | 278 | int idx = hwc->idx; |
299 | 279 | ||
300 | WARN_ON(idx < 0); | 280 | WARN_ON(idx < 0); |
301 | 281 | ||
302 | clear_bit(idx, cpuc->active_mask); | ||
303 | armpmu_stop(event, PERF_EF_UPDATE); | 282 | armpmu_stop(event, PERF_EF_UPDATE); |
304 | cpuc->events[idx] = NULL; | 283 | hw_events->events[idx] = NULL; |
305 | clear_bit(idx, cpuc->used_mask); | 284 | clear_bit(idx, hw_events->used_mask); |
306 | 285 | ||
307 | perf_event_update_userpage(event); | 286 | perf_event_update_userpage(event); |
308 | } | 287 | } |
@@ -310,7 +289,8 @@ armpmu_del(struct perf_event *event, int flags) | |||
310 | static int | 289 | static int |
311 | armpmu_add(struct perf_event *event, int flags) | 290 | armpmu_add(struct perf_event *event, int flags) |
312 | { | 291 | { |
313 | struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); | 292 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); |
293 | struct pmu_hw_events *hw_events = armpmu->get_hw_events(); | ||
314 | struct hw_perf_event *hwc = &event->hw; | 294 | struct hw_perf_event *hwc = &event->hw; |
315 | int idx; | 295 | int idx; |
316 | int err = 0; | 296 | int err = 0; |
@@ -318,7 +298,7 @@ armpmu_add(struct perf_event *event, int flags) | |||
318 | perf_pmu_disable(event->pmu); | 298 | perf_pmu_disable(event->pmu); |
319 | 299 | ||
320 | /* If we don't have a space for the counter then finish early. */ | 300 | /* If we don't have a space for the counter then finish early. */ |
321 | idx = armpmu->get_event_idx(cpuc, hwc); | 301 | idx = armpmu->get_event_idx(hw_events, hwc); |
322 | if (idx < 0) { | 302 | if (idx < 0) { |
323 | err = idx; | 303 | err = idx; |
324 | goto out; | 304 | goto out; |
@@ -330,8 +310,7 @@ armpmu_add(struct perf_event *event, int flags) | |||
330 | */ | 310 | */ |
331 | event->hw.idx = idx; | 311 | event->hw.idx = idx; |
332 | armpmu->disable(hwc, idx); | 312 | armpmu->disable(hwc, idx); |
333 | cpuc->events[idx] = event; | 313 | hw_events->events[idx] = event; |
334 | set_bit(idx, cpuc->active_mask); | ||
335 | 314 | ||
336 | hwc->state = PERF_HES_STOPPED | PERF_HES_UPTODATE; | 315 | hwc->state = PERF_HES_STOPPED | PERF_HES_UPTODATE; |
337 | if (flags & PERF_EF_START) | 316 | if (flags & PERF_EF_START) |
@@ -345,25 +324,25 @@ out: | |||
345 | return err; | 324 | return err; |
346 | } | 325 | } |
347 | 326 | ||
348 | static struct pmu pmu; | ||
349 | |||
350 | static int | 327 | static int |
351 | validate_event(struct cpu_hw_events *cpuc, | 328 | validate_event(struct pmu_hw_events *hw_events, |
352 | struct perf_event *event) | 329 | struct perf_event *event) |
353 | { | 330 | { |
331 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); | ||
354 | struct hw_perf_event fake_event = event->hw; | 332 | struct hw_perf_event fake_event = event->hw; |
333 | struct pmu *leader_pmu = event->group_leader->pmu; | ||
355 | 334 | ||
356 | if (event->pmu != &pmu || event->state <= PERF_EVENT_STATE_OFF) | 335 | if (event->pmu != leader_pmu || event->state <= PERF_EVENT_STATE_OFF) |
357 | return 1; | 336 | return 1; |
358 | 337 | ||
359 | return armpmu->get_event_idx(cpuc, &fake_event) >= 0; | 338 | return armpmu->get_event_idx(hw_events, &fake_event) >= 0; |
360 | } | 339 | } |
361 | 340 | ||
362 | static int | 341 | static int |
363 | validate_group(struct perf_event *event) | 342 | validate_group(struct perf_event *event) |
364 | { | 343 | { |
365 | struct perf_event *sibling, *leader = event->group_leader; | 344 | struct perf_event *sibling, *leader = event->group_leader; |
366 | struct cpu_hw_events fake_pmu; | 345 | struct pmu_hw_events fake_pmu; |
367 | 346 | ||
368 | memset(&fake_pmu, 0, sizeof(fake_pmu)); | 347 | memset(&fake_pmu, 0, sizeof(fake_pmu)); |
369 | 348 | ||
@@ -383,110 +362,119 @@ validate_group(struct perf_event *event) | |||
383 | 362 | ||
384 | static irqreturn_t armpmu_platform_irq(int irq, void *dev) | 363 | static irqreturn_t armpmu_platform_irq(int irq, void *dev) |
385 | { | 364 | { |
386 | struct arm_pmu_platdata *plat = dev_get_platdata(&pmu_device->dev); | 365 | struct arm_pmu *armpmu = (struct arm_pmu *) dev; |
366 | struct platform_device *plat_device = armpmu->plat_device; | ||
367 | struct arm_pmu_platdata *plat = dev_get_platdata(&plat_device->dev); | ||
387 | 368 | ||
388 | return plat->handle_irq(irq, dev, armpmu->handle_irq); | 369 | return plat->handle_irq(irq, dev, armpmu->handle_irq); |
389 | } | 370 | } |
390 | 371 | ||
372 | static void | ||
373 | armpmu_release_hardware(struct arm_pmu *armpmu) | ||
374 | { | ||
375 | int i, irq, irqs; | ||
376 | struct platform_device *pmu_device = armpmu->plat_device; | ||
377 | |||
378 | irqs = min(pmu_device->num_resources, num_possible_cpus()); | ||
379 | |||
380 | for (i = 0; i < irqs; ++i) { | ||
381 | if (!cpumask_test_and_clear_cpu(i, &armpmu->active_irqs)) | ||
382 | continue; | ||
383 | irq = platform_get_irq(pmu_device, i); | ||
384 | if (irq >= 0) | ||
385 | free_irq(irq, armpmu); | ||
386 | } | ||
387 | |||
388 | release_pmu(armpmu->type); | ||
389 | } | ||
390 | |||
391 | static int | 391 | static int |
392 | armpmu_reserve_hardware(void) | 392 | armpmu_reserve_hardware(struct arm_pmu *armpmu) |
393 | { | 393 | { |
394 | struct arm_pmu_platdata *plat; | 394 | struct arm_pmu_platdata *plat; |
395 | irq_handler_t handle_irq; | 395 | irq_handler_t handle_irq; |
396 | int i, err = -ENODEV, irq; | 396 | int i, err, irq, irqs; |
397 | struct platform_device *pmu_device = armpmu->plat_device; | ||
397 | 398 | ||
398 | pmu_device = reserve_pmu(ARM_PMU_DEVICE_CPU); | 399 | err = reserve_pmu(armpmu->type); |
399 | if (IS_ERR(pmu_device)) { | 400 | if (err) { |
400 | pr_warning("unable to reserve pmu\n"); | 401 | pr_warning("unable to reserve pmu\n"); |
401 | return PTR_ERR(pmu_device); | 402 | return err; |
402 | } | 403 | } |
403 | 404 | ||
404 | init_pmu(ARM_PMU_DEVICE_CPU); | ||
405 | |||
406 | plat = dev_get_platdata(&pmu_device->dev); | 405 | plat = dev_get_platdata(&pmu_device->dev); |
407 | if (plat && plat->handle_irq) | 406 | if (plat && plat->handle_irq) |
408 | handle_irq = armpmu_platform_irq; | 407 | handle_irq = armpmu_platform_irq; |
409 | else | 408 | else |
410 | handle_irq = armpmu->handle_irq; | 409 | handle_irq = armpmu->handle_irq; |
411 | 410 | ||
412 | if (pmu_device->num_resources < 1) { | 411 | irqs = min(pmu_device->num_resources, num_possible_cpus()); |
412 | if (irqs < 1) { | ||
413 | pr_err("no irqs for PMUs defined\n"); | 413 | pr_err("no irqs for PMUs defined\n"); |
414 | return -ENODEV; | 414 | return -ENODEV; |
415 | } | 415 | } |
416 | 416 | ||
417 | for (i = 0; i < pmu_device->num_resources; ++i) { | 417 | for (i = 0; i < irqs; ++i) { |
418 | err = 0; | ||
418 | irq = platform_get_irq(pmu_device, i); | 419 | irq = platform_get_irq(pmu_device, i); |
419 | if (irq < 0) | 420 | if (irq < 0) |
420 | continue; | 421 | continue; |
421 | 422 | ||
423 | /* | ||
424 | * If we have a single PMU interrupt that we can't shift, | ||
425 | * assume that we're running on a uniprocessor machine and | ||
426 | * continue. Otherwise, continue without this interrupt. | ||
427 | */ | ||
428 | if (irq_set_affinity(irq, cpumask_of(i)) && irqs > 1) { | ||
429 | pr_warning("unable to set irq affinity (irq=%d, cpu=%u)\n", | ||
430 | irq, i); | ||
431 | continue; | ||
432 | } | ||
433 | |||
422 | err = request_irq(irq, handle_irq, | 434 | err = request_irq(irq, handle_irq, |
423 | IRQF_DISABLED | IRQF_NOBALANCING, | 435 | IRQF_DISABLED | IRQF_NOBALANCING, |
424 | "armpmu", NULL); | 436 | "arm-pmu", armpmu); |
425 | if (err) { | 437 | if (err) { |
426 | pr_warning("unable to request IRQ%d for ARM perf " | 438 | pr_err("unable to request IRQ%d for ARM PMU counters\n", |
427 | "counters\n", irq); | 439 | irq); |
428 | break; | 440 | armpmu_release_hardware(armpmu); |
441 | return err; | ||
429 | } | 442 | } |
430 | } | ||
431 | 443 | ||
432 | if (err) { | 444 | cpumask_set_cpu(i, &armpmu->active_irqs); |
433 | for (i = i - 1; i >= 0; --i) { | ||
434 | irq = platform_get_irq(pmu_device, i); | ||
435 | if (irq >= 0) | ||
436 | free_irq(irq, NULL); | ||
437 | } | ||
438 | release_pmu(ARM_PMU_DEVICE_CPU); | ||
439 | pmu_device = NULL; | ||
440 | } | 445 | } |
441 | 446 | ||
442 | return err; | 447 | return 0; |
443 | } | 448 | } |
444 | 449 | ||
445 | static void | 450 | static void |
446 | armpmu_release_hardware(void) | 451 | hw_perf_event_destroy(struct perf_event *event) |
447 | { | 452 | { |
448 | int i, irq; | 453 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); |
454 | atomic_t *active_events = &armpmu->active_events; | ||
455 | struct mutex *pmu_reserve_mutex = &armpmu->reserve_mutex; | ||
449 | 456 | ||
450 | for (i = pmu_device->num_resources - 1; i >= 0; --i) { | 457 | if (atomic_dec_and_mutex_lock(active_events, pmu_reserve_mutex)) { |
451 | irq = platform_get_irq(pmu_device, i); | 458 | armpmu_release_hardware(armpmu); |
452 | if (irq >= 0) | 459 | mutex_unlock(pmu_reserve_mutex); |
453 | free_irq(irq, NULL); | ||
454 | } | 460 | } |
455 | armpmu->stop(); | ||
456 | |||
457 | release_pmu(ARM_PMU_DEVICE_CPU); | ||
458 | pmu_device = NULL; | ||
459 | } | 461 | } |
460 | 462 | ||
461 | static atomic_t active_events = ATOMIC_INIT(0); | 463 | static int |
462 | static DEFINE_MUTEX(pmu_reserve_mutex); | 464 | event_requires_mode_exclusion(struct perf_event_attr *attr) |
463 | |||
464 | static void | ||
465 | hw_perf_event_destroy(struct perf_event *event) | ||
466 | { | 465 | { |
467 | if (atomic_dec_and_mutex_lock(&active_events, &pmu_reserve_mutex)) { | 466 | return attr->exclude_idle || attr->exclude_user || |
468 | armpmu_release_hardware(); | 467 | attr->exclude_kernel || attr->exclude_hv; |
469 | mutex_unlock(&pmu_reserve_mutex); | ||
470 | } | ||
471 | } | 468 | } |
472 | 469 | ||
473 | static int | 470 | static int |
474 | __hw_perf_event_init(struct perf_event *event) | 471 | __hw_perf_event_init(struct perf_event *event) |
475 | { | 472 | { |
473 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); | ||
476 | struct hw_perf_event *hwc = &event->hw; | 474 | struct hw_perf_event *hwc = &event->hw; |
477 | int mapping, err; | 475 | int mapping, err; |
478 | 476 | ||
479 | /* Decode the generic type into an ARM event identifier. */ | 477 | mapping = armpmu->map_event(event); |
480 | if (PERF_TYPE_HARDWARE == event->attr.type) { | ||
481 | mapping = armpmu_map_event(event->attr.config); | ||
482 | } else if (PERF_TYPE_HW_CACHE == event->attr.type) { | ||
483 | mapping = armpmu_map_cache_event(event->attr.config); | ||
484 | } else if (PERF_TYPE_RAW == event->attr.type) { | ||
485 | mapping = armpmu_map_raw_event(event->attr.config); | ||
486 | } else { | ||
487 | pr_debug("event type %x not supported\n", event->attr.type); | ||
488 | return -EOPNOTSUPP; | ||
489 | } | ||
490 | 478 | ||
491 | if (mapping < 0) { | 479 | if (mapping < 0) { |
492 | pr_debug("event %x:%llx not supported\n", event->attr.type, | 480 | pr_debug("event %x:%llx not supported\n", event->attr.type, |
@@ -495,34 +483,31 @@ __hw_perf_event_init(struct perf_event *event) | |||
495 | } | 483 | } |
496 | 484 | ||
497 | /* | 485 | /* |
486 | * We don't assign an index until we actually place the event onto | ||
487 | * hardware. Use -1 to signify that we haven't decided where to put it | ||
488 | * yet. For SMP systems, each core has it's own PMU so we can't do any | ||
489 | * clever allocation or constraints checking at this point. | ||
490 | */ | ||
491 | hwc->idx = -1; | ||
492 | hwc->config_base = 0; | ||
493 | hwc->config = 0; | ||
494 | hwc->event_base = 0; | ||
495 | |||
496 | /* | ||
498 | * Check whether we need to exclude the counter from certain modes. | 497 | * Check whether we need to exclude the counter from certain modes. |
499 | * The ARM performance counters are on all of the time so if someone | ||
500 | * has asked us for some excludes then we have to fail. | ||
501 | */ | 498 | */ |
502 | if (event->attr.exclude_kernel || event->attr.exclude_user || | 499 | if ((!armpmu->set_event_filter || |
503 | event->attr.exclude_hv || event->attr.exclude_idle) { | 500 | armpmu->set_event_filter(hwc, &event->attr)) && |
501 | event_requires_mode_exclusion(&event->attr)) { | ||
504 | pr_debug("ARM performance counters do not support " | 502 | pr_debug("ARM performance counters do not support " |
505 | "mode exclusion\n"); | 503 | "mode exclusion\n"); |
506 | return -EPERM; | 504 | return -EPERM; |
507 | } | 505 | } |
508 | 506 | ||
509 | /* | 507 | /* |
510 | * We don't assign an index until we actually place the event onto | 508 | * Store the event encoding into the config_base field. |
511 | * hardware. Use -1 to signify that we haven't decided where to put it | ||
512 | * yet. For SMP systems, each core has it's own PMU so we can't do any | ||
513 | * clever allocation or constraints checking at this point. | ||
514 | */ | 509 | */ |
515 | hwc->idx = -1; | 510 | hwc->config_base |= (unsigned long)mapping; |
516 | |||
517 | /* | ||
518 | * Store the event encoding into the config_base field. config and | ||
519 | * event_base are unused as the only 2 things we need to know are | ||
520 | * the event mapping and the counter to use. The counter to use is | ||
521 | * also the indx and the config_base is the event type. | ||
522 | */ | ||
523 | hwc->config_base = (unsigned long)mapping; | ||
524 | hwc->config = 0; | ||
525 | hwc->event_base = 0; | ||
526 | 511 | ||
527 | if (!hwc->sample_period) { | 512 | if (!hwc->sample_period) { |
528 | hwc->sample_period = armpmu->max_period; | 513 | hwc->sample_period = armpmu->max_period; |
@@ -542,32 +527,23 @@ __hw_perf_event_init(struct perf_event *event) | |||
542 | 527 | ||
543 | static int armpmu_event_init(struct perf_event *event) | 528 | static int armpmu_event_init(struct perf_event *event) |
544 | { | 529 | { |
530 | struct arm_pmu *armpmu = to_arm_pmu(event->pmu); | ||
545 | int err = 0; | 531 | int err = 0; |
532 | atomic_t *active_events = &armpmu->active_events; | ||
546 | 533 | ||
547 | switch (event->attr.type) { | 534 | if (armpmu->map_event(event) == -ENOENT) |
548 | case PERF_TYPE_RAW: | ||
549 | case PERF_TYPE_HARDWARE: | ||
550 | case PERF_TYPE_HW_CACHE: | ||
551 | break; | ||
552 | |||
553 | default: | ||
554 | return -ENOENT; | 535 | return -ENOENT; |
555 | } | ||
556 | |||
557 | if (!armpmu) | ||
558 | return -ENODEV; | ||
559 | 536 | ||
560 | event->destroy = hw_perf_event_destroy; | 537 | event->destroy = hw_perf_event_destroy; |
561 | 538 | ||
562 | if (!atomic_inc_not_zero(&active_events)) { | 539 | if (!atomic_inc_not_zero(active_events)) { |
563 | mutex_lock(&pmu_reserve_mutex); | 540 | mutex_lock(&armpmu->reserve_mutex); |
564 | if (atomic_read(&active_events) == 0) { | 541 | if (atomic_read(active_events) == 0) |
565 | err = armpmu_reserve_hardware(); | 542 | err = armpmu_reserve_hardware(armpmu); |
566 | } | ||
567 | 543 | ||
568 | if (!err) | 544 | if (!err) |
569 | atomic_inc(&active_events); | 545 | atomic_inc(active_events); |
570 | mutex_unlock(&pmu_reserve_mutex); | 546 | mutex_unlock(&armpmu->reserve_mutex); |
571 | } | 547 | } |
572 | 548 | ||
573 | if (err) | 549 | if (err) |
@@ -582,22 +558,9 @@ static int armpmu_event_init(struct perf_event *event) | |||
582 | 558 | ||
583 | static void armpmu_enable(struct pmu *pmu) | 559 | static void armpmu_enable(struct pmu *pmu) |
584 | { | 560 | { |
585 | /* Enable all of the perf events on hardware. */ | 561 | struct arm_pmu *armpmu = to_arm_pmu(pmu); |
586 | int idx, enabled = 0; | 562 | struct pmu_hw_events *hw_events = armpmu->get_hw_events(); |
587 | struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); | 563 | int enabled = bitmap_weight(hw_events->used_mask, armpmu->num_events); |
588 | |||
589 | if (!armpmu) | ||
590 | return; | ||
591 | |||
592 | for (idx = 0; idx <= armpmu->num_events; ++idx) { | ||
593 | struct perf_event *event = cpuc->events[idx]; | ||
594 | |||
595 | if (!event) | ||
596 | continue; | ||
597 | |||
598 | armpmu->enable(&event->hw, idx); | ||
599 | enabled = 1; | ||
600 | } | ||
601 | 564 | ||
602 | if (enabled) | 565 | if (enabled) |
603 | armpmu->start(); | 566 | armpmu->start(); |
@@ -605,20 +568,32 @@ static void armpmu_enable(struct pmu *pmu) | |||
605 | 568 | ||
606 | static void armpmu_disable(struct pmu *pmu) | 569 | static void armpmu_disable(struct pmu *pmu) |
607 | { | 570 | { |
608 | if (armpmu) | 571 | struct arm_pmu *armpmu = to_arm_pmu(pmu); |
609 | armpmu->stop(); | 572 | armpmu->stop(); |
610 | } | 573 | } |
611 | 574 | ||
612 | static struct pmu pmu = { | 575 | static void __init armpmu_init(struct arm_pmu *armpmu) |
613 | .pmu_enable = armpmu_enable, | 576 | { |
614 | .pmu_disable = armpmu_disable, | 577 | atomic_set(&armpmu->active_events, 0); |
615 | .event_init = armpmu_event_init, | 578 | mutex_init(&armpmu->reserve_mutex); |
616 | .add = armpmu_add, | 579 | |
617 | .del = armpmu_del, | 580 | armpmu->pmu = (struct pmu) { |
618 | .start = armpmu_start, | 581 | .pmu_enable = armpmu_enable, |
619 | .stop = armpmu_stop, | 582 | .pmu_disable = armpmu_disable, |
620 | .read = armpmu_read, | 583 | .event_init = armpmu_event_init, |
621 | }; | 584 | .add = armpmu_add, |
585 | .del = armpmu_del, | ||
586 | .start = armpmu_start, | ||
587 | .stop = armpmu_stop, | ||
588 | .read = armpmu_read, | ||
589 | }; | ||
590 | } | ||
591 | |||
592 | int __init armpmu_register(struct arm_pmu *armpmu, char *name, int type) | ||
593 | { | ||
594 | armpmu_init(armpmu); | ||
595 | return perf_pmu_register(&armpmu->pmu, name, type); | ||
596 | } | ||
622 | 597 | ||
623 | /* Include the PMU-specific implementations. */ | 598 | /* Include the PMU-specific implementations. */ |
624 | #include "perf_event_xscale.c" | 599 | #include "perf_event_xscale.c" |
@@ -630,14 +605,72 @@ static struct pmu pmu = { | |||
630 | * This requires SMP to be available, so exists as a separate initcall. | 605 | * This requires SMP to be available, so exists as a separate initcall. |
631 | */ | 606 | */ |
632 | static int __init | 607 | static int __init |
633 | armpmu_reset(void) | 608 | cpu_pmu_reset(void) |
609 | { | ||
610 | if (cpu_pmu && cpu_pmu->reset) | ||
611 | return on_each_cpu(cpu_pmu->reset, NULL, 1); | ||
612 | return 0; | ||
613 | } | ||
614 | arch_initcall(cpu_pmu_reset); | ||
615 | |||
616 | /* | ||
617 | * PMU platform driver and devicetree bindings. | ||
618 | */ | ||
619 | static struct of_device_id armpmu_of_device_ids[] = { | ||
620 | {.compatible = "arm,cortex-a9-pmu"}, | ||
621 | {.compatible = "arm,cortex-a8-pmu"}, | ||
622 | {.compatible = "arm,arm1136-pmu"}, | ||
623 | {.compatible = "arm,arm1176-pmu"}, | ||
624 | {}, | ||
625 | }; | ||
626 | |||
627 | static struct platform_device_id armpmu_plat_device_ids[] = { | ||
628 | {.name = "arm-pmu"}, | ||
629 | {}, | ||
630 | }; | ||
631 | |||
632 | static int __devinit armpmu_device_probe(struct platform_device *pdev) | ||
634 | { | 633 | { |
635 | if (armpmu && armpmu->reset) | 634 | cpu_pmu->plat_device = pdev; |
636 | return on_each_cpu(armpmu->reset, NULL, 1); | ||
637 | return 0; | 635 | return 0; |
638 | } | 636 | } |
639 | arch_initcall(armpmu_reset); | ||
640 | 637 | ||
638 | static struct platform_driver armpmu_driver = { | ||
639 | .driver = { | ||
640 | .name = "arm-pmu", | ||
641 | .of_match_table = armpmu_of_device_ids, | ||
642 | }, | ||
643 | .probe = armpmu_device_probe, | ||
644 | .id_table = armpmu_plat_device_ids, | ||
645 | }; | ||
646 | |||
647 | static int __init register_pmu_driver(void) | ||
648 | { | ||
649 | return platform_driver_register(&armpmu_driver); | ||
650 | } | ||
651 | device_initcall(register_pmu_driver); | ||
652 | |||
653 | static struct pmu_hw_events *armpmu_get_cpu_events(void) | ||
654 | { | ||
655 | return &__get_cpu_var(cpu_hw_events); | ||
656 | } | ||
657 | |||
658 | static void __init cpu_pmu_init(struct arm_pmu *armpmu) | ||
659 | { | ||
660 | int cpu; | ||
661 | for_each_possible_cpu(cpu) { | ||
662 | struct pmu_hw_events *events = &per_cpu(cpu_hw_events, cpu); | ||
663 | events->events = per_cpu(hw_events, cpu); | ||
664 | events->used_mask = per_cpu(used_mask, cpu); | ||
665 | raw_spin_lock_init(&events->pmu_lock); | ||
666 | } | ||
667 | armpmu->get_hw_events = armpmu_get_cpu_events; | ||
668 | armpmu->type = ARM_PMU_DEVICE_CPU; | ||
669 | } | ||
670 | |||
671 | /* | ||
672 | * CPU PMU identification and registration. | ||
673 | */ | ||
641 | static int __init | 674 | static int __init |
642 | init_hw_perf_events(void) | 675 | init_hw_perf_events(void) |
643 | { | 676 | { |
@@ -651,22 +684,22 @@ init_hw_perf_events(void) | |||
651 | case 0xB360: /* ARM1136 */ | 684 | case 0xB360: /* ARM1136 */ |
652 | case 0xB560: /* ARM1156 */ | 685 | case 0xB560: /* ARM1156 */ |
653 | case 0xB760: /* ARM1176 */ | 686 | case 0xB760: /* ARM1176 */ |
654 | armpmu = armv6pmu_init(); | 687 | cpu_pmu = armv6pmu_init(); |
655 | break; | 688 | break; |
656 | case 0xB020: /* ARM11mpcore */ | 689 | case 0xB020: /* ARM11mpcore */ |
657 | armpmu = armv6mpcore_pmu_init(); | 690 | cpu_pmu = armv6mpcore_pmu_init(); |
658 | break; | 691 | break; |
659 | case 0xC080: /* Cortex-A8 */ | 692 | case 0xC080: /* Cortex-A8 */ |
660 | armpmu = armv7_a8_pmu_init(); | 693 | cpu_pmu = armv7_a8_pmu_init(); |
661 | break; | 694 | break; |
662 | case 0xC090: /* Cortex-A9 */ | 695 | case 0xC090: /* Cortex-A9 */ |
663 | armpmu = armv7_a9_pmu_init(); | 696 | cpu_pmu = armv7_a9_pmu_init(); |
664 | break; | 697 | break; |
665 | case 0xC050: /* Cortex-A5 */ | 698 | case 0xC050: /* Cortex-A5 */ |
666 | armpmu = armv7_a5_pmu_init(); | 699 | cpu_pmu = armv7_a5_pmu_init(); |
667 | break; | 700 | break; |
668 | case 0xC0F0: /* Cortex-A15 */ | 701 | case 0xC0F0: /* Cortex-A15 */ |
669 | armpmu = armv7_a15_pmu_init(); | 702 | cpu_pmu = armv7_a15_pmu_init(); |
670 | break; | 703 | break; |
671 | } | 704 | } |
672 | /* Intel CPUs [xscale]. */ | 705 | /* Intel CPUs [xscale]. */ |
@@ -674,23 +707,23 @@ init_hw_perf_events(void) | |||
674 | part_number = (cpuid >> 13) & 0x7; | 707 | part_number = (cpuid >> 13) & 0x7; |
675 | switch (part_number) { | 708 | switch (part_number) { |
676 | case 1: | 709 | case 1: |
677 | armpmu = xscale1pmu_init(); | 710 | cpu_pmu = xscale1pmu_init(); |
678 | break; | 711 | break; |
679 | case 2: | 712 | case 2: |
680 | armpmu = xscale2pmu_init(); | 713 | cpu_pmu = xscale2pmu_init(); |
681 | break; | 714 | break; |
682 | } | 715 | } |
683 | } | 716 | } |
684 | 717 | ||
685 | if (armpmu) { | 718 | if (cpu_pmu) { |
686 | pr_info("enabled with %s PMU driver, %d counters available\n", | 719 | pr_info("enabled with %s PMU driver, %d counters available\n", |
687 | armpmu->name, armpmu->num_events); | 720 | cpu_pmu->name, cpu_pmu->num_events); |
721 | cpu_pmu_init(cpu_pmu); | ||
722 | armpmu_register(cpu_pmu, "cpu", PERF_TYPE_RAW); | ||
688 | } else { | 723 | } else { |
689 | pr_info("no hardware support available\n"); | 724 | pr_info("no hardware support available\n"); |
690 | } | 725 | } |
691 | 726 | ||
692 | perf_pmu_register(&pmu, "cpu", PERF_TYPE_RAW); | ||
693 | |||
694 | return 0; | 727 | return 0; |
695 | } | 728 | } |
696 | early_initcall(init_hw_perf_events); | 729 | early_initcall(init_hw_perf_events); |
diff --git a/arch/arm/kernel/perf_event_v6.c b/arch/arm/kernel/perf_event_v6.c index dd7f3b9f4cb3..e63d8115c01b 100644 --- a/arch/arm/kernel/perf_event_v6.c +++ b/arch/arm/kernel/perf_event_v6.c | |||
@@ -54,7 +54,7 @@ enum armv6_perf_types { | |||
54 | }; | 54 | }; |
55 | 55 | ||
56 | enum armv6_counters { | 56 | enum armv6_counters { |
57 | ARMV6_CYCLE_COUNTER = 1, | 57 | ARMV6_CYCLE_COUNTER = 0, |
58 | ARMV6_COUNTER0, | 58 | ARMV6_COUNTER0, |
59 | ARMV6_COUNTER1, | 59 | ARMV6_COUNTER1, |
60 | }; | 60 | }; |
@@ -433,6 +433,7 @@ armv6pmu_enable_event(struct hw_perf_event *hwc, | |||
433 | int idx) | 433 | int idx) |
434 | { | 434 | { |
435 | unsigned long val, mask, evt, flags; | 435 | unsigned long val, mask, evt, flags; |
436 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
436 | 437 | ||
437 | if (ARMV6_CYCLE_COUNTER == idx) { | 438 | if (ARMV6_CYCLE_COUNTER == idx) { |
438 | mask = 0; | 439 | mask = 0; |
@@ -454,12 +455,29 @@ armv6pmu_enable_event(struct hw_perf_event *hwc, | |||
454 | * Mask out the current event and set the counter to count the event | 455 | * Mask out the current event and set the counter to count the event |
455 | * that we're interested in. | 456 | * that we're interested in. |
456 | */ | 457 | */ |
457 | raw_spin_lock_irqsave(&pmu_lock, flags); | 458 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
458 | val = armv6_pmcr_read(); | 459 | val = armv6_pmcr_read(); |
459 | val &= ~mask; | 460 | val &= ~mask; |
460 | val |= evt; | 461 | val |= evt; |
461 | armv6_pmcr_write(val); | 462 | armv6_pmcr_write(val); |
462 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 463 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
464 | } | ||
465 | |||
466 | static int counter_is_active(unsigned long pmcr, int idx) | ||
467 | { | ||
468 | unsigned long mask = 0; | ||
469 | if (idx == ARMV6_CYCLE_COUNTER) | ||
470 | mask = ARMV6_PMCR_CCOUNT_IEN; | ||
471 | else if (idx == ARMV6_COUNTER0) | ||
472 | mask = ARMV6_PMCR_COUNT0_IEN; | ||
473 | else if (idx == ARMV6_COUNTER1) | ||
474 | mask = ARMV6_PMCR_COUNT1_IEN; | ||
475 | |||
476 | if (mask) | ||
477 | return pmcr & mask; | ||
478 | |||
479 | WARN_ONCE(1, "invalid counter number (%d)\n", idx); | ||
480 | return 0; | ||
463 | } | 481 | } |
464 | 482 | ||
465 | static irqreturn_t | 483 | static irqreturn_t |
@@ -468,7 +486,7 @@ armv6pmu_handle_irq(int irq_num, | |||
468 | { | 486 | { |
469 | unsigned long pmcr = armv6_pmcr_read(); | 487 | unsigned long pmcr = armv6_pmcr_read(); |
470 | struct perf_sample_data data; | 488 | struct perf_sample_data data; |
471 | struct cpu_hw_events *cpuc; | 489 | struct pmu_hw_events *cpuc; |
472 | struct pt_regs *regs; | 490 | struct pt_regs *regs; |
473 | int idx; | 491 | int idx; |
474 | 492 | ||
@@ -487,11 +505,11 @@ armv6pmu_handle_irq(int irq_num, | |||
487 | perf_sample_data_init(&data, 0); | 505 | perf_sample_data_init(&data, 0); |
488 | 506 | ||
489 | cpuc = &__get_cpu_var(cpu_hw_events); | 507 | cpuc = &__get_cpu_var(cpu_hw_events); |
490 | for (idx = 0; idx <= armpmu->num_events; ++idx) { | 508 | for (idx = 0; idx < cpu_pmu->num_events; ++idx) { |
491 | struct perf_event *event = cpuc->events[idx]; | 509 | struct perf_event *event = cpuc->events[idx]; |
492 | struct hw_perf_event *hwc; | 510 | struct hw_perf_event *hwc; |
493 | 511 | ||
494 | if (!test_bit(idx, cpuc->active_mask)) | 512 | if (!counter_is_active(pmcr, idx)) |
495 | continue; | 513 | continue; |
496 | 514 | ||
497 | /* | 515 | /* |
@@ -508,7 +526,7 @@ armv6pmu_handle_irq(int irq_num, | |||
508 | continue; | 526 | continue; |
509 | 527 | ||
510 | if (perf_event_overflow(event, &data, regs)) | 528 | if (perf_event_overflow(event, &data, regs)) |
511 | armpmu->disable(hwc, idx); | 529 | cpu_pmu->disable(hwc, idx); |
512 | } | 530 | } |
513 | 531 | ||
514 | /* | 532 | /* |
@@ -527,28 +545,30 @@ static void | |||
527 | armv6pmu_start(void) | 545 | armv6pmu_start(void) |
528 | { | 546 | { |
529 | unsigned long flags, val; | 547 | unsigned long flags, val; |
548 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
530 | 549 | ||
531 | raw_spin_lock_irqsave(&pmu_lock, flags); | 550 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
532 | val = armv6_pmcr_read(); | 551 | val = armv6_pmcr_read(); |
533 | val |= ARMV6_PMCR_ENABLE; | 552 | val |= ARMV6_PMCR_ENABLE; |
534 | armv6_pmcr_write(val); | 553 | armv6_pmcr_write(val); |
535 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 554 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
536 | } | 555 | } |
537 | 556 | ||
538 | static void | 557 | static void |
539 | armv6pmu_stop(void) | 558 | armv6pmu_stop(void) |
540 | { | 559 | { |
541 | unsigned long flags, val; | 560 | unsigned long flags, val; |
561 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
542 | 562 | ||
543 | raw_spin_lock_irqsave(&pmu_lock, flags); | 563 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
544 | val = armv6_pmcr_read(); | 564 | val = armv6_pmcr_read(); |
545 | val &= ~ARMV6_PMCR_ENABLE; | 565 | val &= ~ARMV6_PMCR_ENABLE; |
546 | armv6_pmcr_write(val); | 566 | armv6_pmcr_write(val); |
547 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 567 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
548 | } | 568 | } |
549 | 569 | ||
550 | static int | 570 | static int |
551 | armv6pmu_get_event_idx(struct cpu_hw_events *cpuc, | 571 | armv6pmu_get_event_idx(struct pmu_hw_events *cpuc, |
552 | struct hw_perf_event *event) | 572 | struct hw_perf_event *event) |
553 | { | 573 | { |
554 | /* Always place a cycle counter into the cycle counter. */ | 574 | /* Always place a cycle counter into the cycle counter. */ |
@@ -578,6 +598,7 @@ armv6pmu_disable_event(struct hw_perf_event *hwc, | |||
578 | int idx) | 598 | int idx) |
579 | { | 599 | { |
580 | unsigned long val, mask, evt, flags; | 600 | unsigned long val, mask, evt, flags; |
601 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
581 | 602 | ||
582 | if (ARMV6_CYCLE_COUNTER == idx) { | 603 | if (ARMV6_CYCLE_COUNTER == idx) { |
583 | mask = ARMV6_PMCR_CCOUNT_IEN; | 604 | mask = ARMV6_PMCR_CCOUNT_IEN; |
@@ -598,12 +619,12 @@ armv6pmu_disable_event(struct hw_perf_event *hwc, | |||
598 | * of ETM bus signal assertion cycles. The external reporting should | 619 | * of ETM bus signal assertion cycles. The external reporting should |
599 | * be disabled and so this should never increment. | 620 | * be disabled and so this should never increment. |
600 | */ | 621 | */ |
601 | raw_spin_lock_irqsave(&pmu_lock, flags); | 622 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
602 | val = armv6_pmcr_read(); | 623 | val = armv6_pmcr_read(); |
603 | val &= ~mask; | 624 | val &= ~mask; |
604 | val |= evt; | 625 | val |= evt; |
605 | armv6_pmcr_write(val); | 626 | armv6_pmcr_write(val); |
606 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 627 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
607 | } | 628 | } |
608 | 629 | ||
609 | static void | 630 | static void |
@@ -611,6 +632,7 @@ armv6mpcore_pmu_disable_event(struct hw_perf_event *hwc, | |||
611 | int idx) | 632 | int idx) |
612 | { | 633 | { |
613 | unsigned long val, mask, flags, evt = 0; | 634 | unsigned long val, mask, flags, evt = 0; |
635 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
614 | 636 | ||
615 | if (ARMV6_CYCLE_COUNTER == idx) { | 637 | if (ARMV6_CYCLE_COUNTER == idx) { |
616 | mask = ARMV6_PMCR_CCOUNT_IEN; | 638 | mask = ARMV6_PMCR_CCOUNT_IEN; |
@@ -627,15 +649,21 @@ armv6mpcore_pmu_disable_event(struct hw_perf_event *hwc, | |||
627 | * Unlike UP ARMv6, we don't have a way of stopping the counters. We | 649 | * Unlike UP ARMv6, we don't have a way of stopping the counters. We |
628 | * simply disable the interrupt reporting. | 650 | * simply disable the interrupt reporting. |
629 | */ | 651 | */ |
630 | raw_spin_lock_irqsave(&pmu_lock, flags); | 652 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
631 | val = armv6_pmcr_read(); | 653 | val = armv6_pmcr_read(); |
632 | val &= ~mask; | 654 | val &= ~mask; |
633 | val |= evt; | 655 | val |= evt; |
634 | armv6_pmcr_write(val); | 656 | armv6_pmcr_write(val); |
635 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 657 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
658 | } | ||
659 | |||
660 | static int armv6_map_event(struct perf_event *event) | ||
661 | { | ||
662 | return map_cpu_event(event, &armv6_perf_map, | ||
663 | &armv6_perf_cache_map, 0xFF); | ||
636 | } | 664 | } |
637 | 665 | ||
638 | static const struct arm_pmu armv6pmu = { | 666 | static struct arm_pmu armv6pmu = { |
639 | .id = ARM_PERF_PMU_ID_V6, | 667 | .id = ARM_PERF_PMU_ID_V6, |
640 | .name = "v6", | 668 | .name = "v6", |
641 | .handle_irq = armv6pmu_handle_irq, | 669 | .handle_irq = armv6pmu_handle_irq, |
@@ -646,14 +674,12 @@ static const struct arm_pmu armv6pmu = { | |||
646 | .get_event_idx = armv6pmu_get_event_idx, | 674 | .get_event_idx = armv6pmu_get_event_idx, |
647 | .start = armv6pmu_start, | 675 | .start = armv6pmu_start, |
648 | .stop = armv6pmu_stop, | 676 | .stop = armv6pmu_stop, |
649 | .cache_map = &armv6_perf_cache_map, | 677 | .map_event = armv6_map_event, |
650 | .event_map = &armv6_perf_map, | ||
651 | .raw_event_mask = 0xFF, | ||
652 | .num_events = 3, | 678 | .num_events = 3, |
653 | .max_period = (1LLU << 32) - 1, | 679 | .max_period = (1LLU << 32) - 1, |
654 | }; | 680 | }; |
655 | 681 | ||
656 | static const struct arm_pmu *__init armv6pmu_init(void) | 682 | static struct arm_pmu *__init armv6pmu_init(void) |
657 | { | 683 | { |
658 | return &armv6pmu; | 684 | return &armv6pmu; |
659 | } | 685 | } |
@@ -665,7 +691,14 @@ static const struct arm_pmu *__init armv6pmu_init(void) | |||
665 | * disable the interrupt reporting and update the event. When unthrottling we | 691 | * disable the interrupt reporting and update the event. When unthrottling we |
666 | * reset the period and enable the interrupt reporting. | 692 | * reset the period and enable the interrupt reporting. |
667 | */ | 693 | */ |
668 | static const struct arm_pmu armv6mpcore_pmu = { | 694 | |
695 | static int armv6mpcore_map_event(struct perf_event *event) | ||
696 | { | ||
697 | return map_cpu_event(event, &armv6mpcore_perf_map, | ||
698 | &armv6mpcore_perf_cache_map, 0xFF); | ||
699 | } | ||
700 | |||
701 | static struct arm_pmu armv6mpcore_pmu = { | ||
669 | .id = ARM_PERF_PMU_ID_V6MP, | 702 | .id = ARM_PERF_PMU_ID_V6MP, |
670 | .name = "v6mpcore", | 703 | .name = "v6mpcore", |
671 | .handle_irq = armv6pmu_handle_irq, | 704 | .handle_irq = armv6pmu_handle_irq, |
@@ -676,24 +709,22 @@ static const struct arm_pmu armv6mpcore_pmu = { | |||
676 | .get_event_idx = armv6pmu_get_event_idx, | 709 | .get_event_idx = armv6pmu_get_event_idx, |
677 | .start = armv6pmu_start, | 710 | .start = armv6pmu_start, |
678 | .stop = armv6pmu_stop, | 711 | .stop = armv6pmu_stop, |
679 | .cache_map = &armv6mpcore_perf_cache_map, | 712 | .map_event = armv6mpcore_map_event, |
680 | .event_map = &armv6mpcore_perf_map, | ||
681 | .raw_event_mask = 0xFF, | ||
682 | .num_events = 3, | 713 | .num_events = 3, |
683 | .max_period = (1LLU << 32) - 1, | 714 | .max_period = (1LLU << 32) - 1, |
684 | }; | 715 | }; |
685 | 716 | ||
686 | static const struct arm_pmu *__init armv6mpcore_pmu_init(void) | 717 | static struct arm_pmu *__init armv6mpcore_pmu_init(void) |
687 | { | 718 | { |
688 | return &armv6mpcore_pmu; | 719 | return &armv6mpcore_pmu; |
689 | } | 720 | } |
690 | #else | 721 | #else |
691 | static const struct arm_pmu *__init armv6pmu_init(void) | 722 | static struct arm_pmu *__init armv6pmu_init(void) |
692 | { | 723 | { |
693 | return NULL; | 724 | return NULL; |
694 | } | 725 | } |
695 | 726 | ||
696 | static const struct arm_pmu *__init armv6mpcore_pmu_init(void) | 727 | static struct arm_pmu *__init armv6mpcore_pmu_init(void) |
697 | { | 728 | { |
698 | return NULL; | 729 | return NULL; |
699 | } | 730 | } |
diff --git a/arch/arm/kernel/perf_event_v7.c b/arch/arm/kernel/perf_event_v7.c index 4c851834f68e..98b75738345e 100644 --- a/arch/arm/kernel/perf_event_v7.c +++ b/arch/arm/kernel/perf_event_v7.c | |||
@@ -17,6 +17,9 @@ | |||
17 | */ | 17 | */ |
18 | 18 | ||
19 | #ifdef CONFIG_CPU_V7 | 19 | #ifdef CONFIG_CPU_V7 |
20 | |||
21 | static struct arm_pmu armv7pmu; | ||
22 | |||
20 | /* | 23 | /* |
21 | * Common ARMv7 event types | 24 | * Common ARMv7 event types |
22 | * | 25 | * |
@@ -676,23 +679,24 @@ static const unsigned armv7_a15_perf_cache_map[PERF_COUNT_HW_CACHE_MAX] | |||
676 | }; | 679 | }; |
677 | 680 | ||
678 | /* | 681 | /* |
679 | * Perf Events counters | 682 | * Perf Events' indices |
680 | */ | 683 | */ |
681 | enum armv7_counters { | 684 | #define ARMV7_IDX_CYCLE_COUNTER 0 |
682 | ARMV7_CYCLE_COUNTER = 1, /* Cycle counter */ | 685 | #define ARMV7_IDX_COUNTER0 1 |
683 | ARMV7_COUNTER0 = 2, /* First event counter */ | 686 | #define ARMV7_IDX_COUNTER_LAST (ARMV7_IDX_CYCLE_COUNTER + cpu_pmu->num_events - 1) |
684 | }; | 687 | |
688 | #define ARMV7_MAX_COUNTERS 32 | ||
689 | #define ARMV7_COUNTER_MASK (ARMV7_MAX_COUNTERS - 1) | ||
685 | 690 | ||
686 | /* | 691 | /* |
687 | * The cycle counter is ARMV7_CYCLE_COUNTER. | 692 | * ARMv7 low level PMNC access |
688 | * The first event counter is ARMV7_COUNTER0. | ||
689 | * The last event counter is (ARMV7_COUNTER0 + armpmu->num_events - 1). | ||
690 | */ | 693 | */ |
691 | #define ARMV7_COUNTER_LAST (ARMV7_COUNTER0 + armpmu->num_events - 1) | ||
692 | 694 | ||
693 | /* | 695 | /* |
694 | * ARMv7 low level PMNC access | 696 | * Perf Event to low level counters mapping |
695 | */ | 697 | */ |
698 | #define ARMV7_IDX_TO_COUNTER(x) \ | ||
699 | (((x) - ARMV7_IDX_COUNTER0) & ARMV7_COUNTER_MASK) | ||
696 | 700 | ||
697 | /* | 701 | /* |
698 | * Per-CPU PMNC: config reg | 702 | * Per-CPU PMNC: config reg |
@@ -708,103 +712,76 @@ enum armv7_counters { | |||
708 | #define ARMV7_PMNC_MASK 0x3f /* Mask for writable bits */ | 712 | #define ARMV7_PMNC_MASK 0x3f /* Mask for writable bits */ |
709 | 713 | ||
710 | /* | 714 | /* |
711 | * Available counters | 715 | * FLAG: counters overflow flag status reg |
712 | */ | ||
713 | #define ARMV7_CNT0 0 /* First event counter */ | ||
714 | #define ARMV7_CCNT 31 /* Cycle counter */ | ||
715 | |||
716 | /* Perf Event to low level counters mapping */ | ||
717 | #define ARMV7_EVENT_CNT_TO_CNTx (ARMV7_COUNTER0 - ARMV7_CNT0) | ||
718 | |||
719 | /* | ||
720 | * CNTENS: counters enable reg | ||
721 | */ | ||
722 | #define ARMV7_CNTENS_P(idx) (1 << (idx - ARMV7_EVENT_CNT_TO_CNTx)) | ||
723 | #define ARMV7_CNTENS_C (1 << ARMV7_CCNT) | ||
724 | |||
725 | /* | ||
726 | * CNTENC: counters disable reg | ||
727 | */ | ||
728 | #define ARMV7_CNTENC_P(idx) (1 << (idx - ARMV7_EVENT_CNT_TO_CNTx)) | ||
729 | #define ARMV7_CNTENC_C (1 << ARMV7_CCNT) | ||
730 | |||
731 | /* | ||
732 | * INTENS: counters overflow interrupt enable reg | ||
733 | */ | ||
734 | #define ARMV7_INTENS_P(idx) (1 << (idx - ARMV7_EVENT_CNT_TO_CNTx)) | ||
735 | #define ARMV7_INTENS_C (1 << ARMV7_CCNT) | ||
736 | |||
737 | /* | ||
738 | * INTENC: counters overflow interrupt disable reg | ||
739 | */ | ||
740 | #define ARMV7_INTENC_P(idx) (1 << (idx - ARMV7_EVENT_CNT_TO_CNTx)) | ||
741 | #define ARMV7_INTENC_C (1 << ARMV7_CCNT) | ||
742 | |||
743 | /* | ||
744 | * EVTSEL: Event selection reg | ||
745 | */ | 716 | */ |
746 | #define ARMV7_EVTSEL_MASK 0xff /* Mask for writable bits */ | 717 | #define ARMV7_FLAG_MASK 0xffffffff /* Mask for writable bits */ |
718 | #define ARMV7_OVERFLOWED_MASK ARMV7_FLAG_MASK | ||
747 | 719 | ||
748 | /* | 720 | /* |
749 | * SELECT: Counter selection reg | 721 | * PMXEVTYPER: Event selection reg |
750 | */ | 722 | */ |
751 | #define ARMV7_SELECT_MASK 0x1f /* Mask for writable bits */ | 723 | #define ARMV7_EVTYPE_MASK 0xc00000ff /* Mask for writable bits */ |
724 | #define ARMV7_EVTYPE_EVENT 0xff /* Mask for EVENT bits */ | ||
752 | 725 | ||
753 | /* | 726 | /* |
754 | * FLAG: counters overflow flag status reg | 727 | * Event filters for PMUv2 |
755 | */ | 728 | */ |
756 | #define ARMV7_FLAG_P(idx) (1 << (idx - ARMV7_EVENT_CNT_TO_CNTx)) | 729 | #define ARMV7_EXCLUDE_PL1 (1 << 31) |
757 | #define ARMV7_FLAG_C (1 << ARMV7_CCNT) | 730 | #define ARMV7_EXCLUDE_USER (1 << 30) |
758 | #define ARMV7_FLAG_MASK 0xffffffff /* Mask for writable bits */ | 731 | #define ARMV7_INCLUDE_HYP (1 << 27) |
759 | #define ARMV7_OVERFLOWED_MASK ARMV7_FLAG_MASK | ||
760 | 732 | ||
761 | static inline unsigned long armv7_pmnc_read(void) | 733 | static inline u32 armv7_pmnc_read(void) |
762 | { | 734 | { |
763 | u32 val; | 735 | u32 val; |
764 | asm volatile("mrc p15, 0, %0, c9, c12, 0" : "=r"(val)); | 736 | asm volatile("mrc p15, 0, %0, c9, c12, 0" : "=r"(val)); |
765 | return val; | 737 | return val; |
766 | } | 738 | } |
767 | 739 | ||
768 | static inline void armv7_pmnc_write(unsigned long val) | 740 | static inline void armv7_pmnc_write(u32 val) |
769 | { | 741 | { |
770 | val &= ARMV7_PMNC_MASK; | 742 | val &= ARMV7_PMNC_MASK; |
771 | isb(); | 743 | isb(); |
772 | asm volatile("mcr p15, 0, %0, c9, c12, 0" : : "r"(val)); | 744 | asm volatile("mcr p15, 0, %0, c9, c12, 0" : : "r"(val)); |
773 | } | 745 | } |
774 | 746 | ||
775 | static inline int armv7_pmnc_has_overflowed(unsigned long pmnc) | 747 | static inline int armv7_pmnc_has_overflowed(u32 pmnc) |
776 | { | 748 | { |
777 | return pmnc & ARMV7_OVERFLOWED_MASK; | 749 | return pmnc & ARMV7_OVERFLOWED_MASK; |
778 | } | 750 | } |
779 | 751 | ||
780 | static inline int armv7_pmnc_counter_has_overflowed(unsigned long pmnc, | 752 | static inline int armv7_pmnc_counter_valid(int idx) |
781 | enum armv7_counters counter) | 753 | { |
754 | return idx >= ARMV7_IDX_CYCLE_COUNTER && idx <= ARMV7_IDX_COUNTER_LAST; | ||
755 | } | ||
756 | |||
757 | static inline int armv7_pmnc_counter_has_overflowed(u32 pmnc, int idx) | ||
782 | { | 758 | { |
783 | int ret = 0; | 759 | int ret = 0; |
760 | u32 counter; | ||
784 | 761 | ||
785 | if (counter == ARMV7_CYCLE_COUNTER) | 762 | if (!armv7_pmnc_counter_valid(idx)) { |
786 | ret = pmnc & ARMV7_FLAG_C; | ||
787 | else if ((counter >= ARMV7_COUNTER0) && (counter <= ARMV7_COUNTER_LAST)) | ||
788 | ret = pmnc & ARMV7_FLAG_P(counter); | ||
789 | else | ||
790 | pr_err("CPU%u checking wrong counter %d overflow status\n", | 763 | pr_err("CPU%u checking wrong counter %d overflow status\n", |
791 | smp_processor_id(), counter); | 764 | smp_processor_id(), idx); |
765 | } else { | ||
766 | counter = ARMV7_IDX_TO_COUNTER(idx); | ||
767 | ret = pmnc & BIT(counter); | ||
768 | } | ||
792 | 769 | ||
793 | return ret; | 770 | return ret; |
794 | } | 771 | } |
795 | 772 | ||
796 | static inline int armv7_pmnc_select_counter(unsigned int idx) | 773 | static inline int armv7_pmnc_select_counter(int idx) |
797 | { | 774 | { |
798 | u32 val; | 775 | u32 counter; |
799 | 776 | ||
800 | if ((idx < ARMV7_COUNTER0) || (idx > ARMV7_COUNTER_LAST)) { | 777 | if (!armv7_pmnc_counter_valid(idx)) { |
801 | pr_err("CPU%u selecting wrong PMNC counter" | 778 | pr_err("CPU%u selecting wrong PMNC counter %d\n", |
802 | " %d\n", smp_processor_id(), idx); | 779 | smp_processor_id(), idx); |
803 | return -1; | 780 | return -EINVAL; |
804 | } | 781 | } |
805 | 782 | ||
806 | val = (idx - ARMV7_EVENT_CNT_TO_CNTx) & ARMV7_SELECT_MASK; | 783 | counter = ARMV7_IDX_TO_COUNTER(idx); |
807 | asm volatile("mcr p15, 0, %0, c9, c12, 5" : : "r" (val)); | 784 | asm volatile("mcr p15, 0, %0, c9, c12, 5" : : "r" (counter)); |
808 | isb(); | 785 | isb(); |
809 | 786 | ||
810 | return idx; | 787 | return idx; |
@@ -812,124 +789,95 @@ static inline int armv7_pmnc_select_counter(unsigned int idx) | |||
812 | 789 | ||
813 | static inline u32 armv7pmu_read_counter(int idx) | 790 | static inline u32 armv7pmu_read_counter(int idx) |
814 | { | 791 | { |
815 | unsigned long value = 0; | 792 | u32 value = 0; |
816 | 793 | ||
817 | if (idx == ARMV7_CYCLE_COUNTER) | 794 | if (!armv7_pmnc_counter_valid(idx)) |
818 | asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r" (value)); | ||
819 | else if ((idx >= ARMV7_COUNTER0) && (idx <= ARMV7_COUNTER_LAST)) { | ||
820 | if (armv7_pmnc_select_counter(idx) == idx) | ||
821 | asm volatile("mrc p15, 0, %0, c9, c13, 2" | ||
822 | : "=r" (value)); | ||
823 | } else | ||
824 | pr_err("CPU%u reading wrong counter %d\n", | 795 | pr_err("CPU%u reading wrong counter %d\n", |
825 | smp_processor_id(), idx); | 796 | smp_processor_id(), idx); |
797 | else if (idx == ARMV7_IDX_CYCLE_COUNTER) | ||
798 | asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r" (value)); | ||
799 | else if (armv7_pmnc_select_counter(idx) == idx) | ||
800 | asm volatile("mrc p15, 0, %0, c9, c13, 2" : "=r" (value)); | ||
826 | 801 | ||
827 | return value; | 802 | return value; |
828 | } | 803 | } |
829 | 804 | ||
830 | static inline void armv7pmu_write_counter(int idx, u32 value) | 805 | static inline void armv7pmu_write_counter(int idx, u32 value) |
831 | { | 806 | { |
832 | if (idx == ARMV7_CYCLE_COUNTER) | 807 | if (!armv7_pmnc_counter_valid(idx)) |
833 | asm volatile("mcr p15, 0, %0, c9, c13, 0" : : "r" (value)); | ||
834 | else if ((idx >= ARMV7_COUNTER0) && (idx <= ARMV7_COUNTER_LAST)) { | ||
835 | if (armv7_pmnc_select_counter(idx) == idx) | ||
836 | asm volatile("mcr p15, 0, %0, c9, c13, 2" | ||
837 | : : "r" (value)); | ||
838 | } else | ||
839 | pr_err("CPU%u writing wrong counter %d\n", | 808 | pr_err("CPU%u writing wrong counter %d\n", |
840 | smp_processor_id(), idx); | 809 | smp_processor_id(), idx); |
810 | else if (idx == ARMV7_IDX_CYCLE_COUNTER) | ||
811 | asm volatile("mcr p15, 0, %0, c9, c13, 0" : : "r" (value)); | ||
812 | else if (armv7_pmnc_select_counter(idx) == idx) | ||
813 | asm volatile("mcr p15, 0, %0, c9, c13, 2" : : "r" (value)); | ||
841 | } | 814 | } |
842 | 815 | ||
843 | static inline void armv7_pmnc_write_evtsel(unsigned int idx, u32 val) | 816 | static inline void armv7_pmnc_write_evtsel(int idx, u32 val) |
844 | { | 817 | { |
845 | if (armv7_pmnc_select_counter(idx) == idx) { | 818 | if (armv7_pmnc_select_counter(idx) == idx) { |
846 | val &= ARMV7_EVTSEL_MASK; | 819 | val &= ARMV7_EVTYPE_MASK; |
847 | asm volatile("mcr p15, 0, %0, c9, c13, 1" : : "r" (val)); | 820 | asm volatile("mcr p15, 0, %0, c9, c13, 1" : : "r" (val)); |
848 | } | 821 | } |
849 | } | 822 | } |
850 | 823 | ||
851 | static inline u32 armv7_pmnc_enable_counter(unsigned int idx) | 824 | static inline int armv7_pmnc_enable_counter(int idx) |
852 | { | 825 | { |
853 | u32 val; | 826 | u32 counter; |
854 | 827 | ||
855 | if ((idx != ARMV7_CYCLE_COUNTER) && | 828 | if (!armv7_pmnc_counter_valid(idx)) { |
856 | ((idx < ARMV7_COUNTER0) || (idx > ARMV7_COUNTER_LAST))) { | 829 | pr_err("CPU%u enabling wrong PMNC counter %d\n", |
857 | pr_err("CPU%u enabling wrong PMNC counter" | 830 | smp_processor_id(), idx); |
858 | " %d\n", smp_processor_id(), idx); | 831 | return -EINVAL; |
859 | return -1; | ||
860 | } | 832 | } |
861 | 833 | ||
862 | if (idx == ARMV7_CYCLE_COUNTER) | 834 | counter = ARMV7_IDX_TO_COUNTER(idx); |
863 | val = ARMV7_CNTENS_C; | 835 | asm volatile("mcr p15, 0, %0, c9, c12, 1" : : "r" (BIT(counter))); |
864 | else | ||
865 | val = ARMV7_CNTENS_P(idx); | ||
866 | |||
867 | asm volatile("mcr p15, 0, %0, c9, c12, 1" : : "r" (val)); | ||
868 | |||
869 | return idx; | 836 | return idx; |
870 | } | 837 | } |
871 | 838 | ||
872 | static inline u32 armv7_pmnc_disable_counter(unsigned int idx) | 839 | static inline int armv7_pmnc_disable_counter(int idx) |
873 | { | 840 | { |
874 | u32 val; | 841 | u32 counter; |
875 | |||
876 | 842 | ||
877 | if ((idx != ARMV7_CYCLE_COUNTER) && | 843 | if (!armv7_pmnc_counter_valid(idx)) { |
878 | ((idx < ARMV7_COUNTER0) || (idx > ARMV7_COUNTER_LAST))) { | 844 | pr_err("CPU%u disabling wrong PMNC counter %d\n", |
879 | pr_err("CPU%u disabling wrong PMNC counter" | 845 | smp_processor_id(), idx); |
880 | " %d\n", smp_processor_id(), idx); | 846 | return -EINVAL; |
881 | return -1; | ||
882 | } | 847 | } |
883 | 848 | ||
884 | if (idx == ARMV7_CYCLE_COUNTER) | 849 | counter = ARMV7_IDX_TO_COUNTER(idx); |
885 | val = ARMV7_CNTENC_C; | 850 | asm volatile("mcr p15, 0, %0, c9, c12, 2" : : "r" (BIT(counter))); |
886 | else | ||
887 | val = ARMV7_CNTENC_P(idx); | ||
888 | |||
889 | asm volatile("mcr p15, 0, %0, c9, c12, 2" : : "r" (val)); | ||
890 | |||
891 | return idx; | 851 | return idx; |
892 | } | 852 | } |
893 | 853 | ||
894 | static inline u32 armv7_pmnc_enable_intens(unsigned int idx) | 854 | static inline int armv7_pmnc_enable_intens(int idx) |
895 | { | 855 | { |
896 | u32 val; | 856 | u32 counter; |
897 | 857 | ||
898 | if ((idx != ARMV7_CYCLE_COUNTER) && | 858 | if (!armv7_pmnc_counter_valid(idx)) { |
899 | ((idx < ARMV7_COUNTER0) || (idx > ARMV7_COUNTER_LAST))) { | 859 | pr_err("CPU%u enabling wrong PMNC counter IRQ enable %d\n", |
900 | pr_err("CPU%u enabling wrong PMNC counter" | 860 | smp_processor_id(), idx); |
901 | " interrupt enable %d\n", smp_processor_id(), idx); | 861 | return -EINVAL; |
902 | return -1; | ||
903 | } | 862 | } |
904 | 863 | ||
905 | if (idx == ARMV7_CYCLE_COUNTER) | 864 | counter = ARMV7_IDX_TO_COUNTER(idx); |
906 | val = ARMV7_INTENS_C; | 865 | asm volatile("mcr p15, 0, %0, c9, c14, 1" : : "r" (BIT(counter))); |
907 | else | ||
908 | val = ARMV7_INTENS_P(idx); | ||
909 | |||
910 | asm volatile("mcr p15, 0, %0, c9, c14, 1" : : "r" (val)); | ||
911 | |||
912 | return idx; | 866 | return idx; |
913 | } | 867 | } |
914 | 868 | ||
915 | static inline u32 armv7_pmnc_disable_intens(unsigned int idx) | 869 | static inline int armv7_pmnc_disable_intens(int idx) |
916 | { | 870 | { |
917 | u32 val; | 871 | u32 counter; |
918 | 872 | ||
919 | if ((idx != ARMV7_CYCLE_COUNTER) && | 873 | if (!armv7_pmnc_counter_valid(idx)) { |
920 | ((idx < ARMV7_COUNTER0) || (idx > ARMV7_COUNTER_LAST))) { | 874 | pr_err("CPU%u disabling wrong PMNC counter IRQ enable %d\n", |
921 | pr_err("CPU%u disabling wrong PMNC counter" | 875 | smp_processor_id(), idx); |
922 | " interrupt enable %d\n", smp_processor_id(), idx); | 876 | return -EINVAL; |
923 | return -1; | ||
924 | } | 877 | } |
925 | 878 | ||
926 | if (idx == ARMV7_CYCLE_COUNTER) | 879 | counter = ARMV7_IDX_TO_COUNTER(idx); |
927 | val = ARMV7_INTENC_C; | 880 | asm volatile("mcr p15, 0, %0, c9, c14, 2" : : "r" (BIT(counter))); |
928 | else | ||
929 | val = ARMV7_INTENC_P(idx); | ||
930 | |||
931 | asm volatile("mcr p15, 0, %0, c9, c14, 2" : : "r" (val)); | ||
932 | |||
933 | return idx; | 881 | return idx; |
934 | } | 882 | } |
935 | 883 | ||
@@ -973,14 +921,14 @@ static void armv7_pmnc_dump_regs(void) | |||
973 | asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r" (val)); | 921 | asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r" (val)); |
974 | printk(KERN_INFO "CCNT =0x%08x\n", val); | 922 | printk(KERN_INFO "CCNT =0x%08x\n", val); |
975 | 923 | ||
976 | for (cnt = ARMV7_COUNTER0; cnt < ARMV7_COUNTER_LAST; cnt++) { | 924 | for (cnt = ARMV7_IDX_COUNTER0; cnt <= ARMV7_IDX_COUNTER_LAST; cnt++) { |
977 | armv7_pmnc_select_counter(cnt); | 925 | armv7_pmnc_select_counter(cnt); |
978 | asm volatile("mrc p15, 0, %0, c9, c13, 2" : "=r" (val)); | 926 | asm volatile("mrc p15, 0, %0, c9, c13, 2" : "=r" (val)); |
979 | printk(KERN_INFO "CNT[%d] count =0x%08x\n", | 927 | printk(KERN_INFO "CNT[%d] count =0x%08x\n", |
980 | cnt-ARMV7_EVENT_CNT_TO_CNTx, val); | 928 | ARMV7_IDX_TO_COUNTER(cnt), val); |
981 | asm volatile("mrc p15, 0, %0, c9, c13, 1" : "=r" (val)); | 929 | asm volatile("mrc p15, 0, %0, c9, c13, 1" : "=r" (val)); |
982 | printk(KERN_INFO "CNT[%d] evtsel=0x%08x\n", | 930 | printk(KERN_INFO "CNT[%d] evtsel=0x%08x\n", |
983 | cnt-ARMV7_EVENT_CNT_TO_CNTx, val); | 931 | ARMV7_IDX_TO_COUNTER(cnt), val); |
984 | } | 932 | } |
985 | } | 933 | } |
986 | #endif | 934 | #endif |
@@ -988,12 +936,13 @@ static void armv7_pmnc_dump_regs(void) | |||
988 | static void armv7pmu_enable_event(struct hw_perf_event *hwc, int idx) | 936 | static void armv7pmu_enable_event(struct hw_perf_event *hwc, int idx) |
989 | { | 937 | { |
990 | unsigned long flags; | 938 | unsigned long flags; |
939 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
991 | 940 | ||
992 | /* | 941 | /* |
993 | * Enable counter and interrupt, and set the counter to count | 942 | * Enable counter and interrupt, and set the counter to count |
994 | * the event that we're interested in. | 943 | * the event that we're interested in. |
995 | */ | 944 | */ |
996 | raw_spin_lock_irqsave(&pmu_lock, flags); | 945 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
997 | 946 | ||
998 | /* | 947 | /* |
999 | * Disable counter | 948 | * Disable counter |
@@ -1002,9 +951,10 @@ static void armv7pmu_enable_event(struct hw_perf_event *hwc, int idx) | |||
1002 | 951 | ||
1003 | /* | 952 | /* |
1004 | * Set event (if destined for PMNx counters) | 953 | * Set event (if destined for PMNx counters) |
1005 | * We don't need to set the event if it's a cycle count | 954 | * We only need to set the event for the cycle counter if we |
955 | * have the ability to perform event filtering. | ||
1006 | */ | 956 | */ |
1007 | if (idx != ARMV7_CYCLE_COUNTER) | 957 | if (armv7pmu.set_event_filter || idx != ARMV7_IDX_CYCLE_COUNTER) |
1008 | armv7_pmnc_write_evtsel(idx, hwc->config_base); | 958 | armv7_pmnc_write_evtsel(idx, hwc->config_base); |
1009 | 959 | ||
1010 | /* | 960 | /* |
@@ -1017,17 +967,18 @@ static void armv7pmu_enable_event(struct hw_perf_event *hwc, int idx) | |||
1017 | */ | 967 | */ |
1018 | armv7_pmnc_enable_counter(idx); | 968 | armv7_pmnc_enable_counter(idx); |
1019 | 969 | ||
1020 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 970 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
1021 | } | 971 | } |
1022 | 972 | ||
1023 | static void armv7pmu_disable_event(struct hw_perf_event *hwc, int idx) | 973 | static void armv7pmu_disable_event(struct hw_perf_event *hwc, int idx) |
1024 | { | 974 | { |
1025 | unsigned long flags; | 975 | unsigned long flags; |
976 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
1026 | 977 | ||
1027 | /* | 978 | /* |
1028 | * Disable counter and interrupt | 979 | * Disable counter and interrupt |
1029 | */ | 980 | */ |
1030 | raw_spin_lock_irqsave(&pmu_lock, flags); | 981 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
1031 | 982 | ||
1032 | /* | 983 | /* |
1033 | * Disable counter | 984 | * Disable counter |
@@ -1039,14 +990,14 @@ static void armv7pmu_disable_event(struct hw_perf_event *hwc, int idx) | |||
1039 | */ | 990 | */ |
1040 | armv7_pmnc_disable_intens(idx); | 991 | armv7_pmnc_disable_intens(idx); |
1041 | 992 | ||
1042 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 993 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
1043 | } | 994 | } |
1044 | 995 | ||
1045 | static irqreturn_t armv7pmu_handle_irq(int irq_num, void *dev) | 996 | static irqreturn_t armv7pmu_handle_irq(int irq_num, void *dev) |
1046 | { | 997 | { |
1047 | unsigned long pmnc; | 998 | u32 pmnc; |
1048 | struct perf_sample_data data; | 999 | struct perf_sample_data data; |
1049 | struct cpu_hw_events *cpuc; | 1000 | struct pmu_hw_events *cpuc; |
1050 | struct pt_regs *regs; | 1001 | struct pt_regs *regs; |
1051 | int idx; | 1002 | int idx; |
1052 | 1003 | ||
@@ -1069,13 +1020,10 @@ static irqreturn_t armv7pmu_handle_irq(int irq_num, void *dev) | |||
1069 | perf_sample_data_init(&data, 0); | 1020 | perf_sample_data_init(&data, 0); |
1070 | 1021 | ||
1071 | cpuc = &__get_cpu_var(cpu_hw_events); | 1022 | cpuc = &__get_cpu_var(cpu_hw_events); |
1072 | for (idx = 0; idx <= armpmu->num_events; ++idx) { | 1023 | for (idx = 0; idx < cpu_pmu->num_events; ++idx) { |
1073 | struct perf_event *event = cpuc->events[idx]; | 1024 | struct perf_event *event = cpuc->events[idx]; |
1074 | struct hw_perf_event *hwc; | 1025 | struct hw_perf_event *hwc; |
1075 | 1026 | ||
1076 | if (!test_bit(idx, cpuc->active_mask)) | ||
1077 | continue; | ||
1078 | |||
1079 | /* | 1027 | /* |
1080 | * We have a single interrupt for all counters. Check that | 1028 | * We have a single interrupt for all counters. Check that |
1081 | * each counter has overflowed before we process it. | 1029 | * each counter has overflowed before we process it. |
@@ -1090,7 +1038,7 @@ static irqreturn_t armv7pmu_handle_irq(int irq_num, void *dev) | |||
1090 | continue; | 1038 | continue; |
1091 | 1039 | ||
1092 | if (perf_event_overflow(event, &data, regs)) | 1040 | if (perf_event_overflow(event, &data, regs)) |
1093 | armpmu->disable(hwc, idx); | 1041 | cpu_pmu->disable(hwc, idx); |
1094 | } | 1042 | } |
1095 | 1043 | ||
1096 | /* | 1044 | /* |
@@ -1108,61 +1056,114 @@ static irqreturn_t armv7pmu_handle_irq(int irq_num, void *dev) | |||
1108 | static void armv7pmu_start(void) | 1056 | static void armv7pmu_start(void) |
1109 | { | 1057 | { |
1110 | unsigned long flags; | 1058 | unsigned long flags; |
1059 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
1111 | 1060 | ||
1112 | raw_spin_lock_irqsave(&pmu_lock, flags); | 1061 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
1113 | /* Enable all counters */ | 1062 | /* Enable all counters */ |
1114 | armv7_pmnc_write(armv7_pmnc_read() | ARMV7_PMNC_E); | 1063 | armv7_pmnc_write(armv7_pmnc_read() | ARMV7_PMNC_E); |
1115 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 1064 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
1116 | } | 1065 | } |
1117 | 1066 | ||
1118 | static void armv7pmu_stop(void) | 1067 | static void armv7pmu_stop(void) |
1119 | { | 1068 | { |
1120 | unsigned long flags; | 1069 | unsigned long flags; |
1070 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
1121 | 1071 | ||
1122 | raw_spin_lock_irqsave(&pmu_lock, flags); | 1072 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
1123 | /* Disable all counters */ | 1073 | /* Disable all counters */ |
1124 | armv7_pmnc_write(armv7_pmnc_read() & ~ARMV7_PMNC_E); | 1074 | armv7_pmnc_write(armv7_pmnc_read() & ~ARMV7_PMNC_E); |
1125 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 1075 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
1126 | } | 1076 | } |
1127 | 1077 | ||
1128 | static int armv7pmu_get_event_idx(struct cpu_hw_events *cpuc, | 1078 | static int armv7pmu_get_event_idx(struct pmu_hw_events *cpuc, |
1129 | struct hw_perf_event *event) | 1079 | struct hw_perf_event *event) |
1130 | { | 1080 | { |
1131 | int idx; | 1081 | int idx; |
1082 | unsigned long evtype = event->config_base & ARMV7_EVTYPE_EVENT; | ||
1132 | 1083 | ||
1133 | /* Always place a cycle counter into the cycle counter. */ | 1084 | /* Always place a cycle counter into the cycle counter. */ |
1134 | if (event->config_base == ARMV7_PERFCTR_CPU_CYCLES) { | 1085 | if (evtype == ARMV7_PERFCTR_CPU_CYCLES) { |
1135 | if (test_and_set_bit(ARMV7_CYCLE_COUNTER, cpuc->used_mask)) | 1086 | if (test_and_set_bit(ARMV7_IDX_CYCLE_COUNTER, cpuc->used_mask)) |
1136 | return -EAGAIN; | 1087 | return -EAGAIN; |
1137 | 1088 | ||
1138 | return ARMV7_CYCLE_COUNTER; | 1089 | return ARMV7_IDX_CYCLE_COUNTER; |
1139 | } else { | 1090 | } |
1140 | /* | ||
1141 | * For anything other than a cycle counter, try and use | ||
1142 | * the events counters | ||
1143 | */ | ||
1144 | for (idx = ARMV7_COUNTER0; idx <= armpmu->num_events; ++idx) { | ||
1145 | if (!test_and_set_bit(idx, cpuc->used_mask)) | ||
1146 | return idx; | ||
1147 | } | ||
1148 | 1091 | ||
1149 | /* The counters are all in use. */ | 1092 | /* |
1150 | return -EAGAIN; | 1093 | * For anything other than a cycle counter, try and use |
1094 | * the events counters | ||
1095 | */ | ||
1096 | for (idx = ARMV7_IDX_COUNTER0; idx < cpu_pmu->num_events; ++idx) { | ||
1097 | if (!test_and_set_bit(idx, cpuc->used_mask)) | ||
1098 | return idx; | ||
1151 | } | 1099 | } |
1100 | |||
1101 | /* The counters are all in use. */ | ||
1102 | return -EAGAIN; | ||
1103 | } | ||
1104 | |||
1105 | /* | ||
1106 | * Add an event filter to a given event. This will only work for PMUv2 PMUs. | ||
1107 | */ | ||
1108 | static int armv7pmu_set_event_filter(struct hw_perf_event *event, | ||
1109 | struct perf_event_attr *attr) | ||
1110 | { | ||
1111 | unsigned long config_base = 0; | ||
1112 | |||
1113 | if (attr->exclude_idle) | ||
1114 | return -EPERM; | ||
1115 | if (attr->exclude_user) | ||
1116 | config_base |= ARMV7_EXCLUDE_USER; | ||
1117 | if (attr->exclude_kernel) | ||
1118 | config_base |= ARMV7_EXCLUDE_PL1; | ||
1119 | if (!attr->exclude_hv) | ||
1120 | config_base |= ARMV7_INCLUDE_HYP; | ||
1121 | |||
1122 | /* | ||
1123 | * Install the filter into config_base as this is used to | ||
1124 | * construct the event type. | ||
1125 | */ | ||
1126 | event->config_base = config_base; | ||
1127 | |||
1128 | return 0; | ||
1152 | } | 1129 | } |
1153 | 1130 | ||
1154 | static void armv7pmu_reset(void *info) | 1131 | static void armv7pmu_reset(void *info) |
1155 | { | 1132 | { |
1156 | u32 idx, nb_cnt = armpmu->num_events; | 1133 | u32 idx, nb_cnt = cpu_pmu->num_events; |
1157 | 1134 | ||
1158 | /* The counter and interrupt enable registers are unknown at reset. */ | 1135 | /* The counter and interrupt enable registers are unknown at reset. */ |
1159 | for (idx = 1; idx < nb_cnt; ++idx) | 1136 | for (idx = ARMV7_IDX_CYCLE_COUNTER; idx < nb_cnt; ++idx) |
1160 | armv7pmu_disable_event(NULL, idx); | 1137 | armv7pmu_disable_event(NULL, idx); |
1161 | 1138 | ||
1162 | /* Initialize & Reset PMNC: C and P bits */ | 1139 | /* Initialize & Reset PMNC: C and P bits */ |
1163 | armv7_pmnc_write(ARMV7_PMNC_P | ARMV7_PMNC_C); | 1140 | armv7_pmnc_write(ARMV7_PMNC_P | ARMV7_PMNC_C); |
1164 | } | 1141 | } |
1165 | 1142 | ||
1143 | static int armv7_a8_map_event(struct perf_event *event) | ||
1144 | { | ||
1145 | return map_cpu_event(event, &armv7_a8_perf_map, | ||
1146 | &armv7_a8_perf_cache_map, 0xFF); | ||
1147 | } | ||
1148 | |||
1149 | static int armv7_a9_map_event(struct perf_event *event) | ||
1150 | { | ||
1151 | return map_cpu_event(event, &armv7_a9_perf_map, | ||
1152 | &armv7_a9_perf_cache_map, 0xFF); | ||
1153 | } | ||
1154 | |||
1155 | static int armv7_a5_map_event(struct perf_event *event) | ||
1156 | { | ||
1157 | return map_cpu_event(event, &armv7_a5_perf_map, | ||
1158 | &armv7_a5_perf_cache_map, 0xFF); | ||
1159 | } | ||
1160 | |||
1161 | static int armv7_a15_map_event(struct perf_event *event) | ||
1162 | { | ||
1163 | return map_cpu_event(event, &armv7_a15_perf_map, | ||
1164 | &armv7_a15_perf_cache_map, 0xFF); | ||
1165 | } | ||
1166 | |||
1166 | static struct arm_pmu armv7pmu = { | 1167 | static struct arm_pmu armv7pmu = { |
1167 | .handle_irq = armv7pmu_handle_irq, | 1168 | .handle_irq = armv7pmu_handle_irq, |
1168 | .enable = armv7pmu_enable_event, | 1169 | .enable = armv7pmu_enable_event, |
@@ -1173,7 +1174,6 @@ static struct arm_pmu armv7pmu = { | |||
1173 | .start = armv7pmu_start, | 1174 | .start = armv7pmu_start, |
1174 | .stop = armv7pmu_stop, | 1175 | .stop = armv7pmu_stop, |
1175 | .reset = armv7pmu_reset, | 1176 | .reset = armv7pmu_reset, |
1176 | .raw_event_mask = 0xFF, | ||
1177 | .max_period = (1LLU << 32) - 1, | 1177 | .max_period = (1LLU << 32) - 1, |
1178 | }; | 1178 | }; |
1179 | 1179 | ||
@@ -1188,62 +1188,59 @@ static u32 __init armv7_read_num_pmnc_events(void) | |||
1188 | return nb_cnt + 1; | 1188 | return nb_cnt + 1; |
1189 | } | 1189 | } |
1190 | 1190 | ||
1191 | static const struct arm_pmu *__init armv7_a8_pmu_init(void) | 1191 | static struct arm_pmu *__init armv7_a8_pmu_init(void) |
1192 | { | 1192 | { |
1193 | armv7pmu.id = ARM_PERF_PMU_ID_CA8; | 1193 | armv7pmu.id = ARM_PERF_PMU_ID_CA8; |
1194 | armv7pmu.name = "ARMv7 Cortex-A8"; | 1194 | armv7pmu.name = "ARMv7 Cortex-A8"; |
1195 | armv7pmu.cache_map = &armv7_a8_perf_cache_map; | 1195 | armv7pmu.map_event = armv7_a8_map_event; |
1196 | armv7pmu.event_map = &armv7_a8_perf_map; | ||
1197 | armv7pmu.num_events = armv7_read_num_pmnc_events(); | 1196 | armv7pmu.num_events = armv7_read_num_pmnc_events(); |
1198 | return &armv7pmu; | 1197 | return &armv7pmu; |
1199 | } | 1198 | } |
1200 | 1199 | ||
1201 | static const struct arm_pmu *__init armv7_a9_pmu_init(void) | 1200 | static struct arm_pmu *__init armv7_a9_pmu_init(void) |
1202 | { | 1201 | { |
1203 | armv7pmu.id = ARM_PERF_PMU_ID_CA9; | 1202 | armv7pmu.id = ARM_PERF_PMU_ID_CA9; |
1204 | armv7pmu.name = "ARMv7 Cortex-A9"; | 1203 | armv7pmu.name = "ARMv7 Cortex-A9"; |
1205 | armv7pmu.cache_map = &armv7_a9_perf_cache_map; | 1204 | armv7pmu.map_event = armv7_a9_map_event; |
1206 | armv7pmu.event_map = &armv7_a9_perf_map; | ||
1207 | armv7pmu.num_events = armv7_read_num_pmnc_events(); | 1205 | armv7pmu.num_events = armv7_read_num_pmnc_events(); |
1208 | return &armv7pmu; | 1206 | return &armv7pmu; |
1209 | } | 1207 | } |
1210 | 1208 | ||
1211 | static const struct arm_pmu *__init armv7_a5_pmu_init(void) | 1209 | static struct arm_pmu *__init armv7_a5_pmu_init(void) |
1212 | { | 1210 | { |
1213 | armv7pmu.id = ARM_PERF_PMU_ID_CA5; | 1211 | armv7pmu.id = ARM_PERF_PMU_ID_CA5; |
1214 | armv7pmu.name = "ARMv7 Cortex-A5"; | 1212 | armv7pmu.name = "ARMv7 Cortex-A5"; |
1215 | armv7pmu.cache_map = &armv7_a5_perf_cache_map; | 1213 | armv7pmu.map_event = armv7_a5_map_event; |
1216 | armv7pmu.event_map = &armv7_a5_perf_map; | ||
1217 | armv7pmu.num_events = armv7_read_num_pmnc_events(); | 1214 | armv7pmu.num_events = armv7_read_num_pmnc_events(); |
1218 | return &armv7pmu; | 1215 | return &armv7pmu; |
1219 | } | 1216 | } |
1220 | 1217 | ||
1221 | static const struct arm_pmu *__init armv7_a15_pmu_init(void) | 1218 | static struct arm_pmu *__init armv7_a15_pmu_init(void) |
1222 | { | 1219 | { |
1223 | armv7pmu.id = ARM_PERF_PMU_ID_CA15; | 1220 | armv7pmu.id = ARM_PERF_PMU_ID_CA15; |
1224 | armv7pmu.name = "ARMv7 Cortex-A15"; | 1221 | armv7pmu.name = "ARMv7 Cortex-A15"; |
1225 | armv7pmu.cache_map = &armv7_a15_perf_cache_map; | 1222 | armv7pmu.map_event = armv7_a15_map_event; |
1226 | armv7pmu.event_map = &armv7_a15_perf_map; | ||
1227 | armv7pmu.num_events = armv7_read_num_pmnc_events(); | 1223 | armv7pmu.num_events = armv7_read_num_pmnc_events(); |
1224 | armv7pmu.set_event_filter = armv7pmu_set_event_filter; | ||
1228 | return &armv7pmu; | 1225 | return &armv7pmu; |
1229 | } | 1226 | } |
1230 | #else | 1227 | #else |
1231 | static const struct arm_pmu *__init armv7_a8_pmu_init(void) | 1228 | static struct arm_pmu *__init armv7_a8_pmu_init(void) |
1232 | { | 1229 | { |
1233 | return NULL; | 1230 | return NULL; |
1234 | } | 1231 | } |
1235 | 1232 | ||
1236 | static const struct arm_pmu *__init armv7_a9_pmu_init(void) | 1233 | static struct arm_pmu *__init armv7_a9_pmu_init(void) |
1237 | { | 1234 | { |
1238 | return NULL; | 1235 | return NULL; |
1239 | } | 1236 | } |
1240 | 1237 | ||
1241 | static const struct arm_pmu *__init armv7_a5_pmu_init(void) | 1238 | static struct arm_pmu *__init armv7_a5_pmu_init(void) |
1242 | { | 1239 | { |
1243 | return NULL; | 1240 | return NULL; |
1244 | } | 1241 | } |
1245 | 1242 | ||
1246 | static const struct arm_pmu *__init armv7_a15_pmu_init(void) | 1243 | static struct arm_pmu *__init armv7_a15_pmu_init(void) |
1247 | { | 1244 | { |
1248 | return NULL; | 1245 | return NULL; |
1249 | } | 1246 | } |
diff --git a/arch/arm/kernel/perf_event_xscale.c b/arch/arm/kernel/perf_event_xscale.c index 3c4397491d08..e0cca10a8411 100644 --- a/arch/arm/kernel/perf_event_xscale.c +++ b/arch/arm/kernel/perf_event_xscale.c | |||
@@ -40,7 +40,7 @@ enum xscale_perf_types { | |||
40 | }; | 40 | }; |
41 | 41 | ||
42 | enum xscale_counters { | 42 | enum xscale_counters { |
43 | XSCALE_CYCLE_COUNTER = 1, | 43 | XSCALE_CYCLE_COUNTER = 0, |
44 | XSCALE_COUNTER0, | 44 | XSCALE_COUNTER0, |
45 | XSCALE_COUNTER1, | 45 | XSCALE_COUNTER1, |
46 | XSCALE_COUNTER2, | 46 | XSCALE_COUNTER2, |
@@ -222,7 +222,7 @@ xscale1pmu_handle_irq(int irq_num, void *dev) | |||
222 | { | 222 | { |
223 | unsigned long pmnc; | 223 | unsigned long pmnc; |
224 | struct perf_sample_data data; | 224 | struct perf_sample_data data; |
225 | struct cpu_hw_events *cpuc; | 225 | struct pmu_hw_events *cpuc; |
226 | struct pt_regs *regs; | 226 | struct pt_regs *regs; |
227 | int idx; | 227 | int idx; |
228 | 228 | ||
@@ -249,13 +249,10 @@ xscale1pmu_handle_irq(int irq_num, void *dev) | |||
249 | perf_sample_data_init(&data, 0); | 249 | perf_sample_data_init(&data, 0); |
250 | 250 | ||
251 | cpuc = &__get_cpu_var(cpu_hw_events); | 251 | cpuc = &__get_cpu_var(cpu_hw_events); |
252 | for (idx = 0; idx <= armpmu->num_events; ++idx) { | 252 | for (idx = 0; idx < cpu_pmu->num_events; ++idx) { |
253 | struct perf_event *event = cpuc->events[idx]; | 253 | struct perf_event *event = cpuc->events[idx]; |
254 | struct hw_perf_event *hwc; | 254 | struct hw_perf_event *hwc; |
255 | 255 | ||
256 | if (!test_bit(idx, cpuc->active_mask)) | ||
257 | continue; | ||
258 | |||
259 | if (!xscale1_pmnc_counter_has_overflowed(pmnc, idx)) | 256 | if (!xscale1_pmnc_counter_has_overflowed(pmnc, idx)) |
260 | continue; | 257 | continue; |
261 | 258 | ||
@@ -266,7 +263,7 @@ xscale1pmu_handle_irq(int irq_num, void *dev) | |||
266 | continue; | 263 | continue; |
267 | 264 | ||
268 | if (perf_event_overflow(event, &data, regs)) | 265 | if (perf_event_overflow(event, &data, regs)) |
269 | armpmu->disable(hwc, idx); | 266 | cpu_pmu->disable(hwc, idx); |
270 | } | 267 | } |
271 | 268 | ||
272 | irq_work_run(); | 269 | irq_work_run(); |
@@ -284,6 +281,7 @@ static void | |||
284 | xscale1pmu_enable_event(struct hw_perf_event *hwc, int idx) | 281 | xscale1pmu_enable_event(struct hw_perf_event *hwc, int idx) |
285 | { | 282 | { |
286 | unsigned long val, mask, evt, flags; | 283 | unsigned long val, mask, evt, flags; |
284 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
287 | 285 | ||
288 | switch (idx) { | 286 | switch (idx) { |
289 | case XSCALE_CYCLE_COUNTER: | 287 | case XSCALE_CYCLE_COUNTER: |
@@ -305,18 +303,19 @@ xscale1pmu_enable_event(struct hw_perf_event *hwc, int idx) | |||
305 | return; | 303 | return; |
306 | } | 304 | } |
307 | 305 | ||
308 | raw_spin_lock_irqsave(&pmu_lock, flags); | 306 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
309 | val = xscale1pmu_read_pmnc(); | 307 | val = xscale1pmu_read_pmnc(); |
310 | val &= ~mask; | 308 | val &= ~mask; |
311 | val |= evt; | 309 | val |= evt; |
312 | xscale1pmu_write_pmnc(val); | 310 | xscale1pmu_write_pmnc(val); |
313 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 311 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
314 | } | 312 | } |
315 | 313 | ||
316 | static void | 314 | static void |
317 | xscale1pmu_disable_event(struct hw_perf_event *hwc, int idx) | 315 | xscale1pmu_disable_event(struct hw_perf_event *hwc, int idx) |
318 | { | 316 | { |
319 | unsigned long val, mask, evt, flags; | 317 | unsigned long val, mask, evt, flags; |
318 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
320 | 319 | ||
321 | switch (idx) { | 320 | switch (idx) { |
322 | case XSCALE_CYCLE_COUNTER: | 321 | case XSCALE_CYCLE_COUNTER: |
@@ -336,16 +335,16 @@ xscale1pmu_disable_event(struct hw_perf_event *hwc, int idx) | |||
336 | return; | 335 | return; |
337 | } | 336 | } |
338 | 337 | ||
339 | raw_spin_lock_irqsave(&pmu_lock, flags); | 338 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
340 | val = xscale1pmu_read_pmnc(); | 339 | val = xscale1pmu_read_pmnc(); |
341 | val &= ~mask; | 340 | val &= ~mask; |
342 | val |= evt; | 341 | val |= evt; |
343 | xscale1pmu_write_pmnc(val); | 342 | xscale1pmu_write_pmnc(val); |
344 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 343 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
345 | } | 344 | } |
346 | 345 | ||
347 | static int | 346 | static int |
348 | xscale1pmu_get_event_idx(struct cpu_hw_events *cpuc, | 347 | xscale1pmu_get_event_idx(struct pmu_hw_events *cpuc, |
349 | struct hw_perf_event *event) | 348 | struct hw_perf_event *event) |
350 | { | 349 | { |
351 | if (XSCALE_PERFCTR_CCNT == event->config_base) { | 350 | if (XSCALE_PERFCTR_CCNT == event->config_base) { |
@@ -368,24 +367,26 @@ static void | |||
368 | xscale1pmu_start(void) | 367 | xscale1pmu_start(void) |
369 | { | 368 | { |
370 | unsigned long flags, val; | 369 | unsigned long flags, val; |
370 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
371 | 371 | ||
372 | raw_spin_lock_irqsave(&pmu_lock, flags); | 372 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
373 | val = xscale1pmu_read_pmnc(); | 373 | val = xscale1pmu_read_pmnc(); |
374 | val |= XSCALE_PMU_ENABLE; | 374 | val |= XSCALE_PMU_ENABLE; |
375 | xscale1pmu_write_pmnc(val); | 375 | xscale1pmu_write_pmnc(val); |
376 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 376 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
377 | } | 377 | } |
378 | 378 | ||
379 | static void | 379 | static void |
380 | xscale1pmu_stop(void) | 380 | xscale1pmu_stop(void) |
381 | { | 381 | { |
382 | unsigned long flags, val; | 382 | unsigned long flags, val; |
383 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
383 | 384 | ||
384 | raw_spin_lock_irqsave(&pmu_lock, flags); | 385 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
385 | val = xscale1pmu_read_pmnc(); | 386 | val = xscale1pmu_read_pmnc(); |
386 | val &= ~XSCALE_PMU_ENABLE; | 387 | val &= ~XSCALE_PMU_ENABLE; |
387 | xscale1pmu_write_pmnc(val); | 388 | xscale1pmu_write_pmnc(val); |
388 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 389 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
389 | } | 390 | } |
390 | 391 | ||
391 | static inline u32 | 392 | static inline u32 |
@@ -424,7 +425,13 @@ xscale1pmu_write_counter(int counter, u32 val) | |||
424 | } | 425 | } |
425 | } | 426 | } |
426 | 427 | ||
427 | static const struct arm_pmu xscale1pmu = { | 428 | static int xscale_map_event(struct perf_event *event) |
429 | { | ||
430 | return map_cpu_event(event, &xscale_perf_map, | ||
431 | &xscale_perf_cache_map, 0xFF); | ||
432 | } | ||
433 | |||
434 | static struct arm_pmu xscale1pmu = { | ||
428 | .id = ARM_PERF_PMU_ID_XSCALE1, | 435 | .id = ARM_PERF_PMU_ID_XSCALE1, |
429 | .name = "xscale1", | 436 | .name = "xscale1", |
430 | .handle_irq = xscale1pmu_handle_irq, | 437 | .handle_irq = xscale1pmu_handle_irq, |
@@ -435,14 +442,12 @@ static const struct arm_pmu xscale1pmu = { | |||
435 | .get_event_idx = xscale1pmu_get_event_idx, | 442 | .get_event_idx = xscale1pmu_get_event_idx, |
436 | .start = xscale1pmu_start, | 443 | .start = xscale1pmu_start, |
437 | .stop = xscale1pmu_stop, | 444 | .stop = xscale1pmu_stop, |
438 | .cache_map = &xscale_perf_cache_map, | 445 | .map_event = xscale_map_event, |
439 | .event_map = &xscale_perf_map, | ||
440 | .raw_event_mask = 0xFF, | ||
441 | .num_events = 3, | 446 | .num_events = 3, |
442 | .max_period = (1LLU << 32) - 1, | 447 | .max_period = (1LLU << 32) - 1, |
443 | }; | 448 | }; |
444 | 449 | ||
445 | static const struct arm_pmu *__init xscale1pmu_init(void) | 450 | static struct arm_pmu *__init xscale1pmu_init(void) |
446 | { | 451 | { |
447 | return &xscale1pmu; | 452 | return &xscale1pmu; |
448 | } | 453 | } |
@@ -560,7 +565,7 @@ xscale2pmu_handle_irq(int irq_num, void *dev) | |||
560 | { | 565 | { |
561 | unsigned long pmnc, of_flags; | 566 | unsigned long pmnc, of_flags; |
562 | struct perf_sample_data data; | 567 | struct perf_sample_data data; |
563 | struct cpu_hw_events *cpuc; | 568 | struct pmu_hw_events *cpuc; |
564 | struct pt_regs *regs; | 569 | struct pt_regs *regs; |
565 | int idx; | 570 | int idx; |
566 | 571 | ||
@@ -581,13 +586,10 @@ xscale2pmu_handle_irq(int irq_num, void *dev) | |||
581 | perf_sample_data_init(&data, 0); | 586 | perf_sample_data_init(&data, 0); |
582 | 587 | ||
583 | cpuc = &__get_cpu_var(cpu_hw_events); | 588 | cpuc = &__get_cpu_var(cpu_hw_events); |
584 | for (idx = 0; idx <= armpmu->num_events; ++idx) { | 589 | for (idx = 0; idx < cpu_pmu->num_events; ++idx) { |
585 | struct perf_event *event = cpuc->events[idx]; | 590 | struct perf_event *event = cpuc->events[idx]; |
586 | struct hw_perf_event *hwc; | 591 | struct hw_perf_event *hwc; |
587 | 592 | ||
588 | if (!test_bit(idx, cpuc->active_mask)) | ||
589 | continue; | ||
590 | |||
591 | if (!xscale2_pmnc_counter_has_overflowed(pmnc, idx)) | 593 | if (!xscale2_pmnc_counter_has_overflowed(pmnc, idx)) |
592 | continue; | 594 | continue; |
593 | 595 | ||
@@ -598,7 +600,7 @@ xscale2pmu_handle_irq(int irq_num, void *dev) | |||
598 | continue; | 600 | continue; |
599 | 601 | ||
600 | if (perf_event_overflow(event, &data, regs)) | 602 | if (perf_event_overflow(event, &data, regs)) |
601 | armpmu->disable(hwc, idx); | 603 | cpu_pmu->disable(hwc, idx); |
602 | } | 604 | } |
603 | 605 | ||
604 | irq_work_run(); | 606 | irq_work_run(); |
@@ -616,6 +618,7 @@ static void | |||
616 | xscale2pmu_enable_event(struct hw_perf_event *hwc, int idx) | 618 | xscale2pmu_enable_event(struct hw_perf_event *hwc, int idx) |
617 | { | 619 | { |
618 | unsigned long flags, ien, evtsel; | 620 | unsigned long flags, ien, evtsel; |
621 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
619 | 622 | ||
620 | ien = xscale2pmu_read_int_enable(); | 623 | ien = xscale2pmu_read_int_enable(); |
621 | evtsel = xscale2pmu_read_event_select(); | 624 | evtsel = xscale2pmu_read_event_select(); |
@@ -649,16 +652,17 @@ xscale2pmu_enable_event(struct hw_perf_event *hwc, int idx) | |||
649 | return; | 652 | return; |
650 | } | 653 | } |
651 | 654 | ||
652 | raw_spin_lock_irqsave(&pmu_lock, flags); | 655 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
653 | xscale2pmu_write_event_select(evtsel); | 656 | xscale2pmu_write_event_select(evtsel); |
654 | xscale2pmu_write_int_enable(ien); | 657 | xscale2pmu_write_int_enable(ien); |
655 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 658 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
656 | } | 659 | } |
657 | 660 | ||
658 | static void | 661 | static void |
659 | xscale2pmu_disable_event(struct hw_perf_event *hwc, int idx) | 662 | xscale2pmu_disable_event(struct hw_perf_event *hwc, int idx) |
660 | { | 663 | { |
661 | unsigned long flags, ien, evtsel; | 664 | unsigned long flags, ien, evtsel; |
665 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
662 | 666 | ||
663 | ien = xscale2pmu_read_int_enable(); | 667 | ien = xscale2pmu_read_int_enable(); |
664 | evtsel = xscale2pmu_read_event_select(); | 668 | evtsel = xscale2pmu_read_event_select(); |
@@ -692,14 +696,14 @@ xscale2pmu_disable_event(struct hw_perf_event *hwc, int idx) | |||
692 | return; | 696 | return; |
693 | } | 697 | } |
694 | 698 | ||
695 | raw_spin_lock_irqsave(&pmu_lock, flags); | 699 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
696 | xscale2pmu_write_event_select(evtsel); | 700 | xscale2pmu_write_event_select(evtsel); |
697 | xscale2pmu_write_int_enable(ien); | 701 | xscale2pmu_write_int_enable(ien); |
698 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 702 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
699 | } | 703 | } |
700 | 704 | ||
701 | static int | 705 | static int |
702 | xscale2pmu_get_event_idx(struct cpu_hw_events *cpuc, | 706 | xscale2pmu_get_event_idx(struct pmu_hw_events *cpuc, |
703 | struct hw_perf_event *event) | 707 | struct hw_perf_event *event) |
704 | { | 708 | { |
705 | int idx = xscale1pmu_get_event_idx(cpuc, event); | 709 | int idx = xscale1pmu_get_event_idx(cpuc, event); |
@@ -718,24 +722,26 @@ static void | |||
718 | xscale2pmu_start(void) | 722 | xscale2pmu_start(void) |
719 | { | 723 | { |
720 | unsigned long flags, val; | 724 | unsigned long flags, val; |
725 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
721 | 726 | ||
722 | raw_spin_lock_irqsave(&pmu_lock, flags); | 727 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
723 | val = xscale2pmu_read_pmnc() & ~XSCALE_PMU_CNT64; | 728 | val = xscale2pmu_read_pmnc() & ~XSCALE_PMU_CNT64; |
724 | val |= XSCALE_PMU_ENABLE; | 729 | val |= XSCALE_PMU_ENABLE; |
725 | xscale2pmu_write_pmnc(val); | 730 | xscale2pmu_write_pmnc(val); |
726 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 731 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
727 | } | 732 | } |
728 | 733 | ||
729 | static void | 734 | static void |
730 | xscale2pmu_stop(void) | 735 | xscale2pmu_stop(void) |
731 | { | 736 | { |
732 | unsigned long flags, val; | 737 | unsigned long flags, val; |
738 | struct pmu_hw_events *events = cpu_pmu->get_hw_events(); | ||
733 | 739 | ||
734 | raw_spin_lock_irqsave(&pmu_lock, flags); | 740 | raw_spin_lock_irqsave(&events->pmu_lock, flags); |
735 | val = xscale2pmu_read_pmnc(); | 741 | val = xscale2pmu_read_pmnc(); |
736 | val &= ~XSCALE_PMU_ENABLE; | 742 | val &= ~XSCALE_PMU_ENABLE; |
737 | xscale2pmu_write_pmnc(val); | 743 | xscale2pmu_write_pmnc(val); |
738 | raw_spin_unlock_irqrestore(&pmu_lock, flags); | 744 | raw_spin_unlock_irqrestore(&events->pmu_lock, flags); |
739 | } | 745 | } |
740 | 746 | ||
741 | static inline u32 | 747 | static inline u32 |
@@ -786,7 +792,7 @@ xscale2pmu_write_counter(int counter, u32 val) | |||
786 | } | 792 | } |
787 | } | 793 | } |
788 | 794 | ||
789 | static const struct arm_pmu xscale2pmu = { | 795 | static struct arm_pmu xscale2pmu = { |
790 | .id = ARM_PERF_PMU_ID_XSCALE2, | 796 | .id = ARM_PERF_PMU_ID_XSCALE2, |
791 | .name = "xscale2", | 797 | .name = "xscale2", |
792 | .handle_irq = xscale2pmu_handle_irq, | 798 | .handle_irq = xscale2pmu_handle_irq, |
@@ -797,24 +803,22 @@ static const struct arm_pmu xscale2pmu = { | |||
797 | .get_event_idx = xscale2pmu_get_event_idx, | 803 | .get_event_idx = xscale2pmu_get_event_idx, |
798 | .start = xscale2pmu_start, | 804 | .start = xscale2pmu_start, |
799 | .stop = xscale2pmu_stop, | 805 | .stop = xscale2pmu_stop, |
800 | .cache_map = &xscale_perf_cache_map, | 806 | .map_event = xscale_map_event, |
801 | .event_map = &xscale_perf_map, | ||
802 | .raw_event_mask = 0xFF, | ||
803 | .num_events = 5, | 807 | .num_events = 5, |
804 | .max_period = (1LLU << 32) - 1, | 808 | .max_period = (1LLU << 32) - 1, |
805 | }; | 809 | }; |
806 | 810 | ||
807 | static const struct arm_pmu *__init xscale2pmu_init(void) | 811 | static struct arm_pmu *__init xscale2pmu_init(void) |
808 | { | 812 | { |
809 | return &xscale2pmu; | 813 | return &xscale2pmu; |
810 | } | 814 | } |
811 | #else | 815 | #else |
812 | static const struct arm_pmu *__init xscale1pmu_init(void) | 816 | static struct arm_pmu *__init xscale1pmu_init(void) |
813 | { | 817 | { |
814 | return NULL; | 818 | return NULL; |
815 | } | 819 | } |
816 | 820 | ||
817 | static const struct arm_pmu *__init xscale2pmu_init(void) | 821 | static struct arm_pmu *__init xscale2pmu_init(void) |
818 | { | 822 | { |
819 | return NULL; | 823 | return NULL; |
820 | } | 824 | } |
diff --git a/arch/arm/kernel/pmu.c b/arch/arm/kernel/pmu.c index c53474fe84df..2c3407ee8576 100644 --- a/arch/arm/kernel/pmu.c +++ b/arch/arm/kernel/pmu.c | |||
@@ -10,192 +10,26 @@ | |||
10 | * | 10 | * |
11 | */ | 11 | */ |
12 | 12 | ||
13 | #define pr_fmt(fmt) "PMU: " fmt | ||
14 | |||
15 | #include <linux/cpumask.h> | ||
16 | #include <linux/err.h> | 13 | #include <linux/err.h> |
17 | #include <linux/interrupt.h> | ||
18 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
19 | #include <linux/module.h> | 15 | #include <linux/module.h> |
20 | #include <linux/of_device.h> | ||
21 | #include <linux/platform_device.h> | ||
22 | 16 | ||
23 | #include <asm/pmu.h> | 17 | #include <asm/pmu.h> |
24 | 18 | ||
25 | static volatile long pmu_lock; | 19 | /* |
26 | 20 | * PMU locking to ensure mutual exclusion between different subsystems. | |
27 | static struct platform_device *pmu_devices[ARM_NUM_PMU_DEVICES]; | 21 | */ |
28 | 22 | static unsigned long pmu_lock[BITS_TO_LONGS(ARM_NUM_PMU_DEVICES)]; | |
29 | static int __devinit pmu_register(struct platform_device *pdev, | ||
30 | enum arm_pmu_type type) | ||
31 | { | ||
32 | if (type < 0 || type >= ARM_NUM_PMU_DEVICES) { | ||
33 | pr_warning("received registration request for unknown " | ||
34 | "PMU device type %d\n", type); | ||
35 | return -EINVAL; | ||
36 | } | ||
37 | |||
38 | if (pmu_devices[type]) { | ||
39 | pr_warning("rejecting duplicate registration of PMU device " | ||
40 | "type %d.", type); | ||
41 | return -ENOSPC; | ||
42 | } | ||
43 | |||
44 | pr_info("registered new PMU device of type %d\n", type); | ||
45 | pmu_devices[type] = pdev; | ||
46 | return 0; | ||
47 | } | ||
48 | |||
49 | #define OF_MATCH_PMU(_name, _type) { \ | ||
50 | .compatible = _name, \ | ||
51 | .data = (void *)_type, \ | ||
52 | } | ||
53 | |||
54 | #define OF_MATCH_CPU(name) OF_MATCH_PMU(name, ARM_PMU_DEVICE_CPU) | ||
55 | |||
56 | static struct of_device_id armpmu_of_device_ids[] = { | ||
57 | OF_MATCH_CPU("arm,cortex-a9-pmu"), | ||
58 | OF_MATCH_CPU("arm,cortex-a8-pmu"), | ||
59 | OF_MATCH_CPU("arm,arm1136-pmu"), | ||
60 | OF_MATCH_CPU("arm,arm1176-pmu"), | ||
61 | {}, | ||
62 | }; | ||
63 | |||
64 | #define PLAT_MATCH_PMU(_name, _type) { \ | ||
65 | .name = _name, \ | ||
66 | .driver_data = _type, \ | ||
67 | } | ||
68 | |||
69 | #define PLAT_MATCH_CPU(_name) PLAT_MATCH_PMU(_name, ARM_PMU_DEVICE_CPU) | ||
70 | |||
71 | static struct platform_device_id armpmu_plat_device_ids[] = { | ||
72 | PLAT_MATCH_CPU("arm-pmu"), | ||
73 | {}, | ||
74 | }; | ||
75 | |||
76 | enum arm_pmu_type armpmu_device_type(struct platform_device *pdev) | ||
77 | { | ||
78 | const struct of_device_id *of_id; | ||
79 | const struct platform_device_id *pdev_id; | ||
80 | |||
81 | /* provided by of_device_id table */ | ||
82 | if (pdev->dev.of_node) { | ||
83 | of_id = of_match_device(armpmu_of_device_ids, &pdev->dev); | ||
84 | BUG_ON(!of_id); | ||
85 | return (enum arm_pmu_type)of_id->data; | ||
86 | } | ||
87 | |||
88 | /* Provided by platform_device_id table */ | ||
89 | pdev_id = platform_get_device_id(pdev); | ||
90 | BUG_ON(!pdev_id); | ||
91 | return pdev_id->driver_data; | ||
92 | } | ||
93 | |||
94 | static int __devinit armpmu_device_probe(struct platform_device *pdev) | ||
95 | { | ||
96 | return pmu_register(pdev, armpmu_device_type(pdev)); | ||
97 | } | ||
98 | |||
99 | static struct platform_driver armpmu_driver = { | ||
100 | .driver = { | ||
101 | .name = "arm-pmu", | ||
102 | .of_match_table = armpmu_of_device_ids, | ||
103 | }, | ||
104 | .probe = armpmu_device_probe, | ||
105 | .id_table = armpmu_plat_device_ids, | ||
106 | }; | ||
107 | |||
108 | static int __init register_pmu_driver(void) | ||
109 | { | ||
110 | return platform_driver_register(&armpmu_driver); | ||
111 | } | ||
112 | device_initcall(register_pmu_driver); | ||
113 | 23 | ||
114 | struct platform_device * | 24 | int |
115 | reserve_pmu(enum arm_pmu_type type) | 25 | reserve_pmu(enum arm_pmu_type type) |
116 | { | 26 | { |
117 | struct platform_device *pdev; | 27 | return test_and_set_bit_lock(type, pmu_lock) ? -EBUSY : 0; |
118 | |||
119 | if (test_and_set_bit_lock(type, &pmu_lock)) { | ||
120 | pdev = ERR_PTR(-EBUSY); | ||
121 | } else if (pmu_devices[type] == NULL) { | ||
122 | clear_bit_unlock(type, &pmu_lock); | ||
123 | pdev = ERR_PTR(-ENODEV); | ||
124 | } else { | ||
125 | pdev = pmu_devices[type]; | ||
126 | } | ||
127 | |||
128 | return pdev; | ||
129 | } | 28 | } |
130 | EXPORT_SYMBOL_GPL(reserve_pmu); | 29 | EXPORT_SYMBOL_GPL(reserve_pmu); |
131 | 30 | ||
132 | int | 31 | void |
133 | release_pmu(enum arm_pmu_type type) | 32 | release_pmu(enum arm_pmu_type type) |
134 | { | 33 | { |
135 | if (WARN_ON(!pmu_devices[type])) | 34 | clear_bit_unlock(type, pmu_lock); |
136 | return -EINVAL; | ||
137 | clear_bit_unlock(type, &pmu_lock); | ||
138 | return 0; | ||
139 | } | ||
140 | EXPORT_SYMBOL_GPL(release_pmu); | ||
141 | |||
142 | static int | ||
143 | set_irq_affinity(int irq, | ||
144 | unsigned int cpu) | ||
145 | { | ||
146 | #ifdef CONFIG_SMP | ||
147 | int err = irq_set_affinity(irq, cpumask_of(cpu)); | ||
148 | if (err) | ||
149 | pr_warning("unable to set irq affinity (irq=%d, cpu=%u)\n", | ||
150 | irq, cpu); | ||
151 | return err; | ||
152 | #else | ||
153 | return -EINVAL; | ||
154 | #endif | ||
155 | } | ||
156 | |||
157 | static int | ||
158 | init_cpu_pmu(void) | ||
159 | { | ||
160 | int i, irqs, err = 0; | ||
161 | struct platform_device *pdev = pmu_devices[ARM_PMU_DEVICE_CPU]; | ||
162 | |||
163 | if (!pdev) | ||
164 | return -ENODEV; | ||
165 | |||
166 | irqs = pdev->num_resources; | ||
167 | |||
168 | /* | ||
169 | * If we have a single PMU interrupt that we can't shift, assume that | ||
170 | * we're running on a uniprocessor machine and continue. | ||
171 | */ | ||
172 | if (irqs == 1 && !irq_can_set_affinity(platform_get_irq(pdev, 0))) | ||
173 | return 0; | ||
174 | |||
175 | for (i = 0; i < irqs; ++i) { | ||
176 | err = set_irq_affinity(platform_get_irq(pdev, i), i); | ||
177 | if (err) | ||
178 | break; | ||
179 | } | ||
180 | |||
181 | return err; | ||
182 | } | ||
183 | |||
184 | int | ||
185 | init_pmu(enum arm_pmu_type type) | ||
186 | { | ||
187 | int err = 0; | ||
188 | |||
189 | switch (type) { | ||
190 | case ARM_PMU_DEVICE_CPU: | ||
191 | err = init_cpu_pmu(); | ||
192 | break; | ||
193 | default: | ||
194 | pr_warning("attempt to initialise PMU of unknown " | ||
195 | "type %d\n", type); | ||
196 | err = -EINVAL; | ||
197 | } | ||
198 | |||
199 | return err; | ||
200 | } | 35 | } |
201 | EXPORT_SYMBOL_GPL(init_pmu); | ||
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c index e514c76043b4..6136144f8f8d 100644 --- a/arch/arm/kernel/setup.c +++ b/arch/arm/kernel/setup.c | |||
@@ -820,25 +820,8 @@ static struct machine_desc * __init setup_machine_tags(unsigned int nr) | |||
820 | 820 | ||
821 | if (__atags_pointer) | 821 | if (__atags_pointer) |
822 | tags = phys_to_virt(__atags_pointer); | 822 | tags = phys_to_virt(__atags_pointer); |
823 | else if (mdesc->boot_params) { | 823 | else if (mdesc->atag_offset) |
824 | #ifdef CONFIG_MMU | 824 | tags = (void *)(PAGE_OFFSET + mdesc->atag_offset); |
825 | /* | ||
826 | * We still are executing with a minimal MMU mapping created | ||
827 | * with the presumption that the machine default for this | ||
828 | * is located in the first MB of RAM. Anything else will | ||
829 | * fault and silently hang the kernel at this point. | ||
830 | */ | ||
831 | if (mdesc->boot_params < PHYS_OFFSET || | ||
832 | mdesc->boot_params >= PHYS_OFFSET + SZ_1M) { | ||
833 | printk(KERN_WARNING | ||
834 | "Default boot params at physical 0x%08lx out of reach\n", | ||
835 | mdesc->boot_params); | ||
836 | } else | ||
837 | #endif | ||
838 | { | ||
839 | tags = phys_to_virt(mdesc->boot_params); | ||
840 | } | ||
841 | } | ||
842 | 825 | ||
843 | #if defined(CONFIG_DEPRECATED_PARAM_STRUCT) | 826 | #if defined(CONFIG_DEPRECATED_PARAM_STRUCT) |
844 | /* | 827 | /* |
diff --git a/arch/arm/kernel/sleep.S b/arch/arm/kernel/sleep.S index dc902f2c6845..020e99c845e7 100644 --- a/arch/arm/kernel/sleep.S +++ b/arch/arm/kernel/sleep.S | |||
@@ -8,92 +8,61 @@ | |||
8 | .text | 8 | .text |
9 | 9 | ||
10 | /* | 10 | /* |
11 | * Save CPU state for a suspend | 11 | * Save CPU state for a suspend. This saves the CPU general purpose |
12 | * r1 = v:p offset | 12 | * registers, and allocates space on the kernel stack to save the CPU |
13 | * r2 = suspend function arg0 | 13 | * specific registers and some other data for resume. |
14 | * r3 = suspend function | 14 | * r0 = suspend function arg0 |
15 | * r1 = suspend function | ||
15 | */ | 16 | */ |
16 | ENTRY(__cpu_suspend) | 17 | ENTRY(__cpu_suspend) |
17 | stmfd sp!, {r4 - r11, lr} | 18 | stmfd sp!, {r4 - r11, lr} |
18 | #ifdef MULTI_CPU | 19 | #ifdef MULTI_CPU |
19 | ldr r10, =processor | 20 | ldr r10, =processor |
20 | ldr r5, [r10, #CPU_SLEEP_SIZE] @ size of CPU sleep state | 21 | ldr r4, [r10, #CPU_SLEEP_SIZE] @ size of CPU sleep state |
21 | ldr ip, [r10, #CPU_DO_RESUME] @ virtual resume function | ||
22 | #else | 22 | #else |
23 | ldr r5, =cpu_suspend_size | 23 | ldr r4, =cpu_suspend_size |
24 | ldr ip, =cpu_do_resume | ||
25 | #endif | 24 | #endif |
26 | mov r6, sp @ current virtual SP | 25 | mov r5, sp @ current virtual SP |
27 | sub sp, sp, r5 @ allocate CPU state on stack | 26 | add r4, r4, #12 @ Space for pgd, virt sp, phys resume fn |
28 | mov r0, sp @ save pointer to CPU save block | 27 | sub sp, sp, r4 @ allocate CPU state on stack |
29 | add ip, ip, r1 @ convert resume fn to phys | 28 | stmfd sp!, {r0, r1} @ save suspend func arg and pointer |
30 | stmfd sp!, {r1, r6, ip} @ save v:p, virt SP, phys resume fn | 29 | add r0, sp, #8 @ save pointer to save block |
31 | ldr r5, =sleep_save_sp | 30 | mov r1, r4 @ size of save block |
32 | add r6, sp, r1 @ convert SP to phys | 31 | mov r2, r5 @ virtual SP |
33 | stmfd sp!, {r2, r3} @ save suspend func arg and pointer | 32 | ldr r3, =sleep_save_sp |
34 | #ifdef CONFIG_SMP | 33 | #ifdef CONFIG_SMP |
35 | ALT_SMP(mrc p15, 0, lr, c0, c0, 5) | 34 | ALT_SMP(mrc p15, 0, lr, c0, c0, 5) |
36 | ALT_UP(mov lr, #0) | 35 | ALT_UP(mov lr, #0) |
37 | and lr, lr, #15 | 36 | and lr, lr, #15 |
38 | str r6, [r5, lr, lsl #2] @ save phys SP | 37 | add r3, r3, lr, lsl #2 |
39 | #else | ||
40 | str r6, [r5] @ save phys SP | ||
41 | #endif | ||
42 | #ifdef MULTI_CPU | ||
43 | mov lr, pc | ||
44 | ldr pc, [r10, #CPU_DO_SUSPEND] @ save CPU state | ||
45 | #else | ||
46 | bl cpu_do_suspend | ||
47 | #endif | ||
48 | |||
49 | @ flush data cache | ||
50 | #ifdef MULTI_CACHE | ||
51 | ldr r10, =cpu_cache | ||
52 | mov lr, pc | ||
53 | ldr pc, [r10, #CACHE_FLUSH_KERN_ALL] | ||
54 | #else | ||
55 | bl __cpuc_flush_kern_all | ||
56 | #endif | 38 | #endif |
39 | bl __cpu_suspend_save | ||
57 | adr lr, BSYM(cpu_suspend_abort) | 40 | adr lr, BSYM(cpu_suspend_abort) |
58 | ldmfd sp!, {r0, pc} @ call suspend fn | 41 | ldmfd sp!, {r0, pc} @ call suspend fn |
59 | ENDPROC(__cpu_suspend) | 42 | ENDPROC(__cpu_suspend) |
60 | .ltorg | 43 | .ltorg |
61 | 44 | ||
62 | cpu_suspend_abort: | 45 | cpu_suspend_abort: |
63 | ldmia sp!, {r1 - r3} @ pop v:p, virt SP, phys resume fn | 46 | ldmia sp!, {r1 - r3} @ pop phys pgd, virt SP, phys resume fn |
47 | teq r0, #0 | ||
48 | moveq r0, #1 @ force non-zero value | ||
64 | mov sp, r2 | 49 | mov sp, r2 |
65 | ldmfd sp!, {r4 - r11, pc} | 50 | ldmfd sp!, {r4 - r11, pc} |
66 | ENDPROC(cpu_suspend_abort) | 51 | ENDPROC(cpu_suspend_abort) |
67 | 52 | ||
68 | /* | 53 | /* |
69 | * r0 = control register value | 54 | * r0 = control register value |
70 | * r1 = v:p offset (preserved by cpu_do_resume) | ||
71 | * r2 = phys page table base | ||
72 | * r3 = L1 section flags | ||
73 | */ | 55 | */ |
56 | .align 5 | ||
74 | ENTRY(cpu_resume_mmu) | 57 | ENTRY(cpu_resume_mmu) |
75 | adr r4, cpu_resume_turn_mmu_on | ||
76 | mov r4, r4, lsr #20 | ||
77 | orr r3, r3, r4, lsl #20 | ||
78 | ldr r5, [r2, r4, lsl #2] @ save old mapping | ||
79 | str r3, [r2, r4, lsl #2] @ setup 1:1 mapping for mmu code | ||
80 | sub r2, r2, r1 | ||
81 | ldr r3, =cpu_resume_after_mmu | 58 | ldr r3, =cpu_resume_after_mmu |
82 | bic r1, r0, #CR_C @ ensure D-cache is disabled | 59 | mcr p15, 0, r0, c1, c0, 0 @ turn on MMU, I-cache, etc |
83 | b cpu_resume_turn_mmu_on | 60 | mrc p15, 0, r0, c0, c0, 0 @ read id reg |
84 | ENDPROC(cpu_resume_mmu) | 61 | mov r0, r0 |
85 | .ltorg | 62 | mov r0, r0 |
86 | .align 5 | ||
87 | cpu_resume_turn_mmu_on: | ||
88 | mcr p15, 0, r1, c1, c0, 0 @ turn on MMU, I-cache, etc | ||
89 | mrc p15, 0, r1, c0, c0, 0 @ read id reg | ||
90 | mov r1, r1 | ||
91 | mov r1, r1 | ||
92 | mov pc, r3 @ jump to virtual address | 63 | mov pc, r3 @ jump to virtual address |
93 | ENDPROC(cpu_resume_turn_mmu_on) | 64 | ENDPROC(cpu_resume_mmu) |
94 | cpu_resume_after_mmu: | 65 | cpu_resume_after_mmu: |
95 | str r5, [r2, r4, lsl #2] @ restore old mapping | ||
96 | mcr p15, 0, r0, c1, c0, 0 @ turn on D-cache | ||
97 | bl cpu_init @ restore the und/abt/irq banked regs | 66 | bl cpu_init @ restore the und/abt/irq banked regs |
98 | mov r0, #0 @ return zero on success | 67 | mov r0, #0 @ return zero on success |
99 | ldmfd sp!, {r4 - r11, pc} | 68 | ldmfd sp!, {r4 - r11, pc} |
@@ -119,7 +88,7 @@ ENTRY(cpu_resume) | |||
119 | ldr r0, sleep_save_sp @ stack phys addr | 88 | ldr r0, sleep_save_sp @ stack phys addr |
120 | #endif | 89 | #endif |
121 | setmode PSR_I_BIT | PSR_F_BIT | SVC_MODE, r1 @ set SVC, irqs off | 90 | setmode PSR_I_BIT | PSR_F_BIT | SVC_MODE, r1 @ set SVC, irqs off |
122 | @ load v:p, stack, resume fn | 91 | @ load phys pgd, stack, resume fn |
123 | ARM( ldmia r0!, {r1, sp, pc} ) | 92 | ARM( ldmia r0!, {r1, sp, pc} ) |
124 | THUMB( ldmia r0!, {r1, r2, r3} ) | 93 | THUMB( ldmia r0!, {r1, r2, r3} ) |
125 | THUMB( mov sp, r2 ) | 94 | THUMB( mov sp, r2 ) |
diff --git a/arch/arm/kernel/suspend.c b/arch/arm/kernel/suspend.c new file mode 100644 index 000000000000..93a22d282c16 --- /dev/null +++ b/arch/arm/kernel/suspend.c | |||
@@ -0,0 +1,72 @@ | |||
1 | #include <linux/init.h> | ||
2 | |||
3 | #include <asm/pgalloc.h> | ||
4 | #include <asm/pgtable.h> | ||
5 | #include <asm/memory.h> | ||
6 | #include <asm/suspend.h> | ||
7 | #include <asm/tlbflush.h> | ||
8 | |||
9 | static pgd_t *suspend_pgd; | ||
10 | |||
11 | extern int __cpu_suspend(unsigned long, int (*)(unsigned long)); | ||
12 | extern void cpu_resume_mmu(void); | ||
13 | |||
14 | /* | ||
15 | * This is called by __cpu_suspend() to save the state, and do whatever | ||
16 | * flushing is required to ensure that when the CPU goes to sleep we have | ||
17 | * the necessary data available when the caches are not searched. | ||
18 | */ | ||
19 | void __cpu_suspend_save(u32 *ptr, u32 ptrsz, u32 sp, u32 *save_ptr) | ||
20 | { | ||
21 | *save_ptr = virt_to_phys(ptr); | ||
22 | |||
23 | /* This must correspond to the LDM in cpu_resume() assembly */ | ||
24 | *ptr++ = virt_to_phys(suspend_pgd); | ||
25 | *ptr++ = sp; | ||
26 | *ptr++ = virt_to_phys(cpu_do_resume); | ||
27 | |||
28 | cpu_do_suspend(ptr); | ||
29 | |||
30 | flush_cache_all(); | ||
31 | outer_clean_range(*save_ptr, *save_ptr + ptrsz); | ||
32 | outer_clean_range(virt_to_phys(save_ptr), | ||
33 | virt_to_phys(save_ptr) + sizeof(*save_ptr)); | ||
34 | } | ||
35 | |||
36 | /* | ||
37 | * Hide the first two arguments to __cpu_suspend - these are an implementation | ||
38 | * detail which platform code shouldn't have to know about. | ||
39 | */ | ||
40 | int cpu_suspend(unsigned long arg, int (*fn)(unsigned long)) | ||
41 | { | ||
42 | struct mm_struct *mm = current->active_mm; | ||
43 | int ret; | ||
44 | |||
45 | if (!suspend_pgd) | ||
46 | return -EINVAL; | ||
47 | |||
48 | /* | ||
49 | * Provide a temporary page table with an identity mapping for | ||
50 | * the MMU-enable code, required for resuming. On successful | ||
51 | * resume (indicated by a zero return code), we need to switch | ||
52 | * back to the correct page tables. | ||
53 | */ | ||
54 | ret = __cpu_suspend(arg, fn); | ||
55 | if (ret == 0) { | ||
56 | cpu_switch_mm(mm->pgd, mm); | ||
57 | local_flush_tlb_all(); | ||
58 | } | ||
59 | |||
60 | return ret; | ||
61 | } | ||
62 | |||
63 | static int __init cpu_suspend_init(void) | ||
64 | { | ||
65 | suspend_pgd = pgd_alloc(&init_mm); | ||
66 | if (suspend_pgd) { | ||
67 | unsigned long addr = virt_to_phys(cpu_resume_mmu); | ||
68 | identity_mapping_add(suspend_pgd, addr, addr + SECTION_SIZE); | ||
69 | } | ||
70 | return suspend_pgd ? 0 : -ENOMEM; | ||
71 | } | ||
72 | core_initcall(cpu_suspend_init); | ||
diff --git a/arch/arm/mach-at91/at91sam9g45.c b/arch/arm/mach-at91/at91sam9g45.c index e04c5fb6f1ee..1532b508c814 100644 --- a/arch/arm/mach-at91/at91sam9g45.c +++ b/arch/arm/mach-at91/at91sam9g45.c | |||
@@ -12,6 +12,7 @@ | |||
12 | 12 | ||
13 | #include <linux/module.h> | 13 | #include <linux/module.h> |
14 | #include <linux/pm.h> | 14 | #include <linux/pm.h> |
15 | #include <linux/dma-mapping.h> | ||
15 | 16 | ||
16 | #include <asm/irq.h> | 17 | #include <asm/irq.h> |
17 | #include <asm/mach/arch.h> | 18 | #include <asm/mach/arch.h> |
@@ -319,6 +320,7 @@ static void at91sam9g45_poweroff(void) | |||
319 | static void __init at91sam9g45_map_io(void) | 320 | static void __init at91sam9g45_map_io(void) |
320 | { | 321 | { |
321 | at91_init_sram(0, AT91SAM9G45_SRAM_BASE, AT91SAM9G45_SRAM_SIZE); | 322 | at91_init_sram(0, AT91SAM9G45_SRAM_BASE, AT91SAM9G45_SRAM_SIZE); |
323 | init_consistent_dma_size(SZ_4M); | ||
322 | } | 324 | } |
323 | 325 | ||
324 | static void __init at91sam9g45_initialize(void) | 326 | static void __init at91sam9g45_initialize(void) |
diff --git a/arch/arm/mach-at91/include/mach/at91sam9g45.h b/arch/arm/mach-at91/include/mach/at91sam9g45.h index 2c611b9a0138..406bb6496805 100644 --- a/arch/arm/mach-at91/include/mach/at91sam9g45.h +++ b/arch/arm/mach-at91/include/mach/at91sam9g45.h | |||
@@ -128,8 +128,6 @@ | |||
128 | #define AT91SAM9G45_EHCI_BASE 0x00800000 /* USB Host controller (EHCI) */ | 128 | #define AT91SAM9G45_EHCI_BASE 0x00800000 /* USB Host controller (EHCI) */ |
129 | #define AT91SAM9G45_VDEC_BASE 0x00900000 /* Video Decoder Controller */ | 129 | #define AT91SAM9G45_VDEC_BASE 0x00900000 /* Video Decoder Controller */ |
130 | 130 | ||
131 | #define CONSISTENT_DMA_SIZE SZ_4M | ||
132 | |||
133 | /* | 131 | /* |
134 | * DMA peripheral identifiers | 132 | * DMA peripheral identifiers |
135 | * for hardware handshaking interface | 133 | * for hardware handshaking interface |
diff --git a/arch/arm/mach-bcmring/include/mach/memory.h b/arch/arm/mach-bcmring/include/mach/memory.h index 15162e4c75f9..8848a5bb3445 100644 --- a/arch/arm/mach-bcmring/include/mach/memory.h +++ b/arch/arm/mach-bcmring/include/mach/memory.h | |||
@@ -25,9 +25,4 @@ | |||
25 | 25 | ||
26 | #define PLAT_PHYS_OFFSET CFG_GLOBAL_RAM_BASE | 26 | #define PLAT_PHYS_OFFSET CFG_GLOBAL_RAM_BASE |
27 | 27 | ||
28 | /* | ||
29 | * Maximum DMA memory allowed is 14M | ||
30 | */ | ||
31 | #define CONSISTENT_DMA_SIZE (SZ_16M - SZ_2M) | ||
32 | |||
33 | #endif | 28 | #endif |
diff --git a/arch/arm/mach-bcmring/mm.c b/arch/arm/mach-bcmring/mm.c index 0f1c37e4523a..8616876abb9f 100644 --- a/arch/arm/mach-bcmring/mm.c +++ b/arch/arm/mach-bcmring/mm.c | |||
@@ -13,6 +13,7 @@ | |||
13 | *****************************************************************************/ | 13 | *****************************************************************************/ |
14 | 14 | ||
15 | #include <linux/platform_device.h> | 15 | #include <linux/platform_device.h> |
16 | #include <linux/dma-mapping.h> | ||
16 | #include <asm/mach/map.h> | 17 | #include <asm/mach/map.h> |
17 | 18 | ||
18 | #include <mach/hardware.h> | 19 | #include <mach/hardware.h> |
@@ -53,4 +54,6 @@ void __init bcmring_map_io(void) | |||
53 | { | 54 | { |
54 | 55 | ||
55 | iotable_init(bcmring_io_desc, ARRAY_SIZE(bcmring_io_desc)); | 56 | iotable_init(bcmring_io_desc, ARRAY_SIZE(bcmring_io_desc)); |
57 | /* Maximum DMA memory allowed is 14M */ | ||
58 | init_consistent_dma_size(14 << 20); | ||
56 | } | 59 | } |
diff --git a/arch/arm/mach-clps711x/autcpu12.c b/arch/arm/mach-clps711x/autcpu12.c index 4a74b2c959bd..0276091b7f86 100644 --- a/arch/arm/mach-clps711x/autcpu12.c +++ b/arch/arm/mach-clps711x/autcpu12.c | |||
@@ -64,7 +64,7 @@ void __init autcpu12_map_io(void) | |||
64 | 64 | ||
65 | MACHINE_START(AUTCPU12, "autronix autcpu12") | 65 | MACHINE_START(AUTCPU12, "autronix autcpu12") |
66 | /* Maintainer: Thomas Gleixner */ | 66 | /* Maintainer: Thomas Gleixner */ |
67 | .boot_params = 0xc0020000, | 67 | .atag_offset = 0x20000, |
68 | .map_io = autcpu12_map_io, | 68 | .map_io = autcpu12_map_io, |
69 | .init_irq = clps711x_init_irq, | 69 | .init_irq = clps711x_init_irq, |
70 | .timer = &clps711x_timer, | 70 | .timer = &clps711x_timer, |
diff --git a/arch/arm/mach-clps711x/cdb89712.c b/arch/arm/mach-clps711x/cdb89712.c index 5a1689d48793..25b3bfd0e85a 100644 --- a/arch/arm/mach-clps711x/cdb89712.c +++ b/arch/arm/mach-clps711x/cdb89712.c | |||
@@ -55,7 +55,7 @@ static void __init cdb89712_map_io(void) | |||
55 | 55 | ||
56 | MACHINE_START(CDB89712, "Cirrus-CDB89712") | 56 | MACHINE_START(CDB89712, "Cirrus-CDB89712") |
57 | /* Maintainer: Ray Lehtiniemi */ | 57 | /* Maintainer: Ray Lehtiniemi */ |
58 | .boot_params = 0xc0000100, | 58 | .atag_offset = 0x100, |
59 | .map_io = cdb89712_map_io, | 59 | .map_io = cdb89712_map_io, |
60 | .init_irq = clps711x_init_irq, | 60 | .init_irq = clps711x_init_irq, |
61 | .timer = &clps711x_timer, | 61 | .timer = &clps711x_timer, |
diff --git a/arch/arm/mach-clps711x/ceiva.c b/arch/arm/mach-clps711x/ceiva.c index 16481cf3e931..1df9ec67aa92 100644 --- a/arch/arm/mach-clps711x/ceiva.c +++ b/arch/arm/mach-clps711x/ceiva.c | |||
@@ -56,7 +56,7 @@ static void __init ceiva_map_io(void) | |||
56 | 56 | ||
57 | MACHINE_START(CEIVA, "CEIVA/Polaroid Photo MAX Digital Picture Frame") | 57 | MACHINE_START(CEIVA, "CEIVA/Polaroid Photo MAX Digital Picture Frame") |
58 | /* Maintainer: Rob Scott */ | 58 | /* Maintainer: Rob Scott */ |
59 | .boot_params = 0xc0000100, | 59 | .atag_offset = 0x100, |
60 | .map_io = ceiva_map_io, | 60 | .map_io = ceiva_map_io, |
61 | .init_irq = clps711x_init_irq, | 61 | .init_irq = clps711x_init_irq, |
62 | .timer = &clps711x_timer, | 62 | .timer = &clps711x_timer, |
diff --git a/arch/arm/mach-clps711x/clep7312.c b/arch/arm/mach-clps711x/clep7312.c index 67b5abb4a60a..06c8abd9371f 100644 --- a/arch/arm/mach-clps711x/clep7312.c +++ b/arch/arm/mach-clps711x/clep7312.c | |||
@@ -37,7 +37,7 @@ fixup_clep7312(struct machine_desc *desc, struct tag *tags, | |||
37 | 37 | ||
38 | MACHINE_START(CLEP7212, "Cirrus Logic 7212/7312") | 38 | MACHINE_START(CLEP7212, "Cirrus Logic 7212/7312") |
39 | /* Maintainer: Nobody */ | 39 | /* Maintainer: Nobody */ |
40 | .boot_params = 0xc0000100, | 40 | .atag_offset = 0x0100, |
41 | .fixup = fixup_clep7312, | 41 | .fixup = fixup_clep7312, |
42 | .map_io = clps711x_map_io, | 42 | .map_io = clps711x_map_io, |
43 | .init_irq = clps711x_init_irq, | 43 | .init_irq = clps711x_init_irq, |
diff --git a/arch/arm/mach-clps711x/edb7211-arch.c b/arch/arm/mach-clps711x/edb7211-arch.c index 98ca5b2e940d..abf522d1ec9b 100644 --- a/arch/arm/mach-clps711x/edb7211-arch.c +++ b/arch/arm/mach-clps711x/edb7211-arch.c | |||
@@ -57,7 +57,7 @@ fixup_edb7211(struct machine_desc *desc, struct tag *tags, | |||
57 | 57 | ||
58 | MACHINE_START(EDB7211, "CL-EDB7211 (EP7211 eval board)") | 58 | MACHINE_START(EDB7211, "CL-EDB7211 (EP7211 eval board)") |
59 | /* Maintainer: Jon McClintock */ | 59 | /* Maintainer: Jon McClintock */ |
60 | .boot_params = 0xc0020100, /* 0xc0000000 - 0xc001ffff can be video RAM */ | 60 | .atag_offset = 0x20100, /* 0xc0000000 - 0xc001ffff can be video RAM */ |
61 | .fixup = fixup_edb7211, | 61 | .fixup = fixup_edb7211, |
62 | .map_io = edb7211_map_io, | 62 | .map_io = edb7211_map_io, |
63 | .reserve = edb7211_reserve, | 63 | .reserve = edb7211_reserve, |
diff --git a/arch/arm/mach-clps711x/fortunet.c b/arch/arm/mach-clps711x/fortunet.c index b1cb479e71e9..b6f7d86bb1c9 100644 --- a/arch/arm/mach-clps711x/fortunet.c +++ b/arch/arm/mach-clps711x/fortunet.c | |||
@@ -75,7 +75,6 @@ fortunet_fixup(struct machine_desc *desc, struct tag *tags, | |||
75 | 75 | ||
76 | MACHINE_START(FORTUNET, "ARM-FortuNet") | 76 | MACHINE_START(FORTUNET, "ARM-FortuNet") |
77 | /* Maintainer: FortuNet Inc. */ | 77 | /* Maintainer: FortuNet Inc. */ |
78 | .boot_params = 0x00000000, | ||
79 | .fixup = fortunet_fixup, | 78 | .fixup = fortunet_fixup, |
80 | .map_io = clps711x_map_io, | 79 | .map_io = clps711x_map_io, |
81 | .init_irq = clps711x_init_irq, | 80 | .init_irq = clps711x_init_irq, |
diff --git a/arch/arm/mach-clps711x/p720t.c b/arch/arm/mach-clps711x/p720t.c index cefbce0480b9..e7f75aeb1e5b 100644 --- a/arch/arm/mach-clps711x/p720t.c +++ b/arch/arm/mach-clps711x/p720t.c | |||
@@ -89,7 +89,7 @@ static void __init p720t_map_io(void) | |||
89 | 89 | ||
90 | MACHINE_START(P720T, "ARM-Prospector720T") | 90 | MACHINE_START(P720T, "ARM-Prospector720T") |
91 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ | 91 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ |
92 | .boot_params = 0xc0000100, | 92 | .atag_offset = 0x100, |
93 | .fixup = fixup_p720t, | 93 | .fixup = fixup_p720t, |
94 | .map_io = p720t_map_io, | 94 | .map_io = p720t_map_io, |
95 | .init_irq = clps711x_init_irq, | 95 | .init_irq = clps711x_init_irq, |
diff --git a/arch/arm/mach-cns3xxx/cns3420vb.c b/arch/arm/mach-cns3xxx/cns3420vb.c index 3e7d1496cb47..55f7b4b08ab9 100644 --- a/arch/arm/mach-cns3xxx/cns3420vb.c +++ b/arch/arm/mach-cns3xxx/cns3420vb.c | |||
@@ -197,7 +197,7 @@ static void __init cns3420_map_io(void) | |||
197 | } | 197 | } |
198 | 198 | ||
199 | MACHINE_START(CNS3420VB, "Cavium Networks CNS3420 Validation Board") | 199 | MACHINE_START(CNS3420VB, "Cavium Networks CNS3420 Validation Board") |
200 | .boot_params = 0x00000100, | 200 | .atag_offset = 0x100, |
201 | .map_io = cns3420_map_io, | 201 | .map_io = cns3420_map_io, |
202 | .init_irq = cns3xxx_init_irq, | 202 | .init_irq = cns3xxx_init_irq, |
203 | .timer = &cns3xxx_timer, | 203 | .timer = &cns3xxx_timer, |
diff --git a/arch/arm/mach-davinci/board-da830-evm.c b/arch/arm/mach-davinci/board-da830-evm.c index 84fd78684868..26d94c0b555c 100644 --- a/arch/arm/mach-davinci/board-da830-evm.c +++ b/arch/arm/mach-davinci/board-da830-evm.c | |||
@@ -676,7 +676,7 @@ static void __init da830_evm_map_io(void) | |||
676 | } | 676 | } |
677 | 677 | ||
678 | MACHINE_START(DAVINCI_DA830_EVM, "DaVinci DA830/OMAP-L137/AM17x EVM") | 678 | MACHINE_START(DAVINCI_DA830_EVM, "DaVinci DA830/OMAP-L137/AM17x EVM") |
679 | .boot_params = (DA8XX_DDR_BASE + 0x100), | 679 | .atag_offset = 0x100, |
680 | .map_io = da830_evm_map_io, | 680 | .map_io = da830_evm_map_io, |
681 | .init_irq = cp_intc_init, | 681 | .init_irq = cp_intc_init, |
682 | .timer = &davinci_timer, | 682 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c index 008d51407cd7..6e41cb5baeb4 100644 --- a/arch/arm/mach-davinci/board-da850-evm.c +++ b/arch/arm/mach-davinci/board-da850-evm.c | |||
@@ -1291,7 +1291,7 @@ static void __init da850_evm_map_io(void) | |||
1291 | } | 1291 | } |
1292 | 1292 | ||
1293 | MACHINE_START(DAVINCI_DA850_EVM, "DaVinci DA850/OMAP-L138/AM18x EVM") | 1293 | MACHINE_START(DAVINCI_DA850_EVM, "DaVinci DA850/OMAP-L138/AM18x EVM") |
1294 | .boot_params = (DA8XX_DDR_BASE + 0x100), | 1294 | .atag_offset = 0x100, |
1295 | .map_io = da850_evm_map_io, | 1295 | .map_io = da850_evm_map_io, |
1296 | .init_irq = cp_intc_init, | 1296 | .init_irq = cp_intc_init, |
1297 | .timer = &davinci_timer, | 1297 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-dm355-evm.c b/arch/arm/mach-davinci/board-dm355-evm.c index 241a6bd67408..65566280b7c9 100644 --- a/arch/arm/mach-davinci/board-dm355-evm.c +++ b/arch/arm/mach-davinci/board-dm355-evm.c | |||
@@ -351,7 +351,7 @@ static __init void dm355_evm_init(void) | |||
351 | } | 351 | } |
352 | 352 | ||
353 | MACHINE_START(DAVINCI_DM355_EVM, "DaVinci DM355 EVM") | 353 | MACHINE_START(DAVINCI_DM355_EVM, "DaVinci DM355 EVM") |
354 | .boot_params = (0x80000100), | 354 | .atag_offset = 0x100, |
355 | .map_io = dm355_evm_map_io, | 355 | .map_io = dm355_evm_map_io, |
356 | .init_irq = davinci_irq_init, | 356 | .init_irq = davinci_irq_init, |
357 | .timer = &davinci_timer, | 357 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-dm355-leopard.c b/arch/arm/mach-davinci/board-dm355-leopard.c index bee284ca7fd6..b307470b071d 100644 --- a/arch/arm/mach-davinci/board-dm355-leopard.c +++ b/arch/arm/mach-davinci/board-dm355-leopard.c | |||
@@ -270,7 +270,7 @@ static __init void dm355_leopard_init(void) | |||
270 | } | 270 | } |
271 | 271 | ||
272 | MACHINE_START(DM355_LEOPARD, "DaVinci DM355 leopard") | 272 | MACHINE_START(DM355_LEOPARD, "DaVinci DM355 leopard") |
273 | .boot_params = (0x80000100), | 273 | .atag_offset = 0x100, |
274 | .map_io = dm355_leopard_map_io, | 274 | .map_io = dm355_leopard_map_io, |
275 | .init_irq = davinci_irq_init, | 275 | .init_irq = davinci_irq_init, |
276 | .timer = &davinci_timer, | 276 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-dm365-evm.c b/arch/arm/mach-davinci/board-dm365-evm.c index 9818f214d4f0..04c43abcca66 100644 --- a/arch/arm/mach-davinci/board-dm365-evm.c +++ b/arch/arm/mach-davinci/board-dm365-evm.c | |||
@@ -612,7 +612,7 @@ static __init void dm365_evm_init(void) | |||
612 | } | 612 | } |
613 | 613 | ||
614 | MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM365 EVM") | 614 | MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM365 EVM") |
615 | .boot_params = (0x80000100), | 615 | .atag_offset = 0x100, |
616 | .map_io = dm365_evm_map_io, | 616 | .map_io = dm365_evm_map_io, |
617 | .init_irq = davinci_irq_init, | 617 | .init_irq = davinci_irq_init, |
618 | .timer = &davinci_timer, | 618 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-dm644x-evm.c b/arch/arm/mach-davinci/board-dm644x-evm.c index 95607a191e03..a005e7691ddd 100644 --- a/arch/arm/mach-davinci/board-dm644x-evm.c +++ b/arch/arm/mach-davinci/board-dm644x-evm.c | |||
@@ -712,7 +712,7 @@ static __init void davinci_evm_init(void) | |||
712 | 712 | ||
713 | MACHINE_START(DAVINCI_EVM, "DaVinci DM644x EVM") | 713 | MACHINE_START(DAVINCI_EVM, "DaVinci DM644x EVM") |
714 | /* Maintainer: MontaVista Software <source@mvista.com> */ | 714 | /* Maintainer: MontaVista Software <source@mvista.com> */ |
715 | .boot_params = (DAVINCI_DDR_BASE + 0x100), | 715 | .atag_offset = 0x100, |
716 | .map_io = davinci_evm_map_io, | 716 | .map_io = davinci_evm_map_io, |
717 | .init_irq = davinci_irq_init, | 717 | .init_irq = davinci_irq_init, |
718 | .timer = &davinci_timer, | 718 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-dm646x-evm.c b/arch/arm/mach-davinci/board-dm646x-evm.c index 993a3146fd35..337c45e3e44d 100644 --- a/arch/arm/mach-davinci/board-dm646x-evm.c +++ b/arch/arm/mach-davinci/board-dm646x-evm.c | |||
@@ -792,7 +792,7 @@ static __init void evm_init(void) | |||
792 | } | 792 | } |
793 | 793 | ||
794 | MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM") | 794 | MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM") |
795 | .boot_params = (0x80000100), | 795 | .atag_offset = 0x100, |
796 | .map_io = davinci_map_io, | 796 | .map_io = davinci_map_io, |
797 | .init_irq = davinci_irq_init, | 797 | .init_irq = davinci_irq_init, |
798 | .timer = &davinci_timer, | 798 | .timer = &davinci_timer, |
@@ -801,7 +801,7 @@ MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM") | |||
801 | MACHINE_END | 801 | MACHINE_END |
802 | 802 | ||
803 | MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM") | 803 | MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM") |
804 | .boot_params = (0x80000100), | 804 | .atag_offset = 0x100, |
805 | .map_io = davinci_map_io, | 805 | .map_io = davinci_map_io, |
806 | .init_irq = davinci_irq_init, | 806 | .init_irq = davinci_irq_init, |
807 | .timer = &davinci_timer, | 807 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-mityomapl138.c b/arch/arm/mach-davinci/board-mityomapl138.c index c278226627ad..6efc84cceca0 100644 --- a/arch/arm/mach-davinci/board-mityomapl138.c +++ b/arch/arm/mach-davinci/board-mityomapl138.c | |||
@@ -566,7 +566,7 @@ static void __init mityomapl138_map_io(void) | |||
566 | } | 566 | } |
567 | 567 | ||
568 | MACHINE_START(MITYOMAPL138, "MityDSP-L138/MityARM-1808") | 568 | MACHINE_START(MITYOMAPL138, "MityDSP-L138/MityARM-1808") |
569 | .boot_params = (DA8XX_DDR_BASE + 0x100), | 569 | .atag_offset = 0x100, |
570 | .map_io = mityomapl138_map_io, | 570 | .map_io = mityomapl138_map_io, |
571 | .init_irq = cp_intc_init, | 571 | .init_irq = cp_intc_init, |
572 | .timer = &davinci_timer, | 572 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-neuros-osd2.c b/arch/arm/mach-davinci/board-neuros-osd2.c index d60a80028ba3..38d6f644d8b9 100644 --- a/arch/arm/mach-davinci/board-neuros-osd2.c +++ b/arch/arm/mach-davinci/board-neuros-osd2.c | |||
@@ -272,7 +272,7 @@ static __init void davinci_ntosd2_init(void) | |||
272 | 272 | ||
273 | MACHINE_START(NEUROS_OSD2, "Neuros OSD2") | 273 | MACHINE_START(NEUROS_OSD2, "Neuros OSD2") |
274 | /* Maintainer: Neuros Technologies <neuros@groups.google.com> */ | 274 | /* Maintainer: Neuros Technologies <neuros@groups.google.com> */ |
275 | .boot_params = (DAVINCI_DDR_BASE + 0x100), | 275 | .atag_offset = 0x100, |
276 | .map_io = davinci_ntosd2_map_io, | 276 | .map_io = davinci_ntosd2_map_io, |
277 | .init_irq = davinci_irq_init, | 277 | .init_irq = davinci_irq_init, |
278 | .timer = &davinci_timer, | 278 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-omapl138-hawk.c b/arch/arm/mach-davinci/board-omapl138-hawk.c index 237332a11421..c6701e4a795c 100644 --- a/arch/arm/mach-davinci/board-omapl138-hawk.c +++ b/arch/arm/mach-davinci/board-omapl138-hawk.c | |||
@@ -338,7 +338,7 @@ static void __init omapl138_hawk_map_io(void) | |||
338 | } | 338 | } |
339 | 339 | ||
340 | MACHINE_START(OMAPL138_HAWKBOARD, "AM18x/OMAP-L138 Hawkboard") | 340 | MACHINE_START(OMAPL138_HAWKBOARD, "AM18x/OMAP-L138 Hawkboard") |
341 | .boot_params = (DA8XX_DDR_BASE + 0x100), | 341 | .atag_offset = 0x100, |
342 | .map_io = omapl138_hawk_map_io, | 342 | .map_io = omapl138_hawk_map_io, |
343 | .init_irq = cp_intc_init, | 343 | .init_irq = cp_intc_init, |
344 | .timer = &davinci_timer, | 344 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-sffsdr.c b/arch/arm/mach-davinci/board-sffsdr.c index 5f4385c0a089..5dd4da9d2308 100644 --- a/arch/arm/mach-davinci/board-sffsdr.c +++ b/arch/arm/mach-davinci/board-sffsdr.c | |||
@@ -151,7 +151,7 @@ static __init void davinci_sffsdr_init(void) | |||
151 | 151 | ||
152 | MACHINE_START(SFFSDR, "Lyrtech SFFSDR") | 152 | MACHINE_START(SFFSDR, "Lyrtech SFFSDR") |
153 | /* Maintainer: Hugo Villeneuve hugo.villeneuve@lyrtech.com */ | 153 | /* Maintainer: Hugo Villeneuve hugo.villeneuve@lyrtech.com */ |
154 | .boot_params = (DAVINCI_DDR_BASE + 0x100), | 154 | .atag_offset = 0x100, |
155 | .map_io = davinci_sffsdr_map_io, | 155 | .map_io = davinci_sffsdr_map_io, |
156 | .init_irq = davinci_irq_init, | 156 | .init_irq = davinci_irq_init, |
157 | .timer = &davinci_timer, | 157 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/board-tnetv107x-evm.c b/arch/arm/mach-davinci/board-tnetv107x-evm.c index 782892065682..90ee7b5aabdc 100644 --- a/arch/arm/mach-davinci/board-tnetv107x-evm.c +++ b/arch/arm/mach-davinci/board-tnetv107x-evm.c | |||
@@ -277,7 +277,7 @@ console_initcall(tnetv107x_evm_console_init); | |||
277 | #endif | 277 | #endif |
278 | 278 | ||
279 | MACHINE_START(TNETV107X, "TNETV107X EVM") | 279 | MACHINE_START(TNETV107X, "TNETV107X EVM") |
280 | .boot_params = (TNETV107X_DDR_BASE + 0x100), | 280 | .atag_offset = 0x100, |
281 | .map_io = tnetv107x_init, | 281 | .map_io = tnetv107x_init, |
282 | .init_irq = cp_intc_init, | 282 | .init_irq = cp_intc_init, |
283 | .timer = &davinci_timer, | 283 | .timer = &davinci_timer, |
diff --git a/arch/arm/mach-davinci/common.c b/arch/arm/mach-davinci/common.c index 1d2557394235..865ffe5899ac 100644 --- a/arch/arm/mach-davinci/common.c +++ b/arch/arm/mach-davinci/common.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/io.h> | 12 | #include <linux/io.h> |
13 | #include <linux/etherdevice.h> | 13 | #include <linux/etherdevice.h> |
14 | #include <linux/davinci_emac.h> | 14 | #include <linux/davinci_emac.h> |
15 | #include <linux/dma-mapping.h> | ||
15 | 16 | ||
16 | #include <asm/tlb.h> | 17 | #include <asm/tlb.h> |
17 | #include <asm/mach/map.h> | 18 | #include <asm/mach/map.h> |
@@ -86,6 +87,8 @@ void __init davinci_common_init(struct davinci_soc_info *soc_info) | |||
86 | iotable_init(davinci_soc_info.io_desc, | 87 | iotable_init(davinci_soc_info.io_desc, |
87 | davinci_soc_info.io_desc_num); | 88 | davinci_soc_info.io_desc_num); |
88 | 89 | ||
90 | init_consistent_dma_size(14 << 20); | ||
91 | |||
89 | /* | 92 | /* |
90 | * Normally devicemaps_init() would flush caches and tlb after | 93 | * Normally devicemaps_init() would flush caches and tlb after |
91 | * mdesc->map_io(), but we must also do it here because of the CPU | 94 | * mdesc->map_io(), but we must also do it here because of the CPU |
diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c index 2f7e719636f1..68def7188868 100644 --- a/arch/arm/mach-davinci/devices-da8xx.c +++ b/arch/arm/mach-davinci/devices-da8xx.c | |||
@@ -136,6 +136,7 @@ static struct edma_soc_info da830_edma_cc0_info = { | |||
136 | .n_cc = 1, | 136 | .n_cc = 1, |
137 | .queue_tc_mapping = da8xx_queue_tc_mapping, | 137 | .queue_tc_mapping = da8xx_queue_tc_mapping, |
138 | .queue_priority_mapping = da8xx_queue_priority_mapping, | 138 | .queue_priority_mapping = da8xx_queue_priority_mapping, |
139 | .default_queue = EVENTQ_1, | ||
139 | }; | 140 | }; |
140 | 141 | ||
141 | static struct edma_soc_info *da830_edma_info[EDMA_MAX_CC] = { | 142 | static struct edma_soc_info *da830_edma_info[EDMA_MAX_CC] = { |
@@ -151,6 +152,7 @@ static struct edma_soc_info da850_edma_cc_info[] = { | |||
151 | .n_cc = 1, | 152 | .n_cc = 1, |
152 | .queue_tc_mapping = da8xx_queue_tc_mapping, | 153 | .queue_tc_mapping = da8xx_queue_tc_mapping, |
153 | .queue_priority_mapping = da8xx_queue_priority_mapping, | 154 | .queue_priority_mapping = da8xx_queue_priority_mapping, |
155 | .default_queue = EVENTQ_1, | ||
154 | }, | 156 | }, |
155 | { | 157 | { |
156 | .n_channel = 32, | 158 | .n_channel = 32, |
@@ -160,6 +162,7 @@ static struct edma_soc_info da850_edma_cc_info[] = { | |||
160 | .n_cc = 1, | 162 | .n_cc = 1, |
161 | .queue_tc_mapping = da850_queue_tc_mapping, | 163 | .queue_tc_mapping = da850_queue_tc_mapping, |
162 | .queue_priority_mapping = da850_queue_priority_mapping, | 164 | .queue_priority_mapping = da850_queue_priority_mapping, |
165 | .default_queue = EVENTQ_0, | ||
163 | }, | 166 | }, |
164 | }; | 167 | }; |
165 | 168 | ||
diff --git a/arch/arm/mach-davinci/devices-tnetv107x.c b/arch/arm/mach-davinci/devices-tnetv107x.c index 6162cae7f868..29b17f7d3a5f 100644 --- a/arch/arm/mach-davinci/devices-tnetv107x.c +++ b/arch/arm/mach-davinci/devices-tnetv107x.c | |||
@@ -80,6 +80,7 @@ static struct edma_soc_info edma_cc0_info = { | |||
80 | .n_cc = 1, | 80 | .n_cc = 1, |
81 | .queue_tc_mapping = edma_tc_mapping, | 81 | .queue_tc_mapping = edma_tc_mapping, |
82 | .queue_priority_mapping = edma_priority_mapping, | 82 | .queue_priority_mapping = edma_priority_mapping, |
83 | .default_queue = EVENTQ_1, | ||
83 | }; | 84 | }; |
84 | 85 | ||
85 | static struct edma_soc_info *tnetv107x_edma_info[EDMA_MAX_CC] = { | 86 | static struct edma_soc_info *tnetv107x_edma_info[EDMA_MAX_CC] = { |
diff --git a/arch/arm/mach-davinci/dm355.c b/arch/arm/mach-davinci/dm355.c index a3a94e9c9378..68fb18162459 100644 --- a/arch/arm/mach-davinci/dm355.c +++ b/arch/arm/mach-davinci/dm355.c | |||
@@ -591,6 +591,7 @@ static struct edma_soc_info edma_cc0_info = { | |||
591 | .n_cc = 1, | 591 | .n_cc = 1, |
592 | .queue_tc_mapping = queue_tc_mapping, | 592 | .queue_tc_mapping = queue_tc_mapping, |
593 | .queue_priority_mapping = queue_priority_mapping, | 593 | .queue_priority_mapping = queue_priority_mapping, |
594 | .default_queue = EVENTQ_1, | ||
594 | }; | 595 | }; |
595 | 596 | ||
596 | static struct edma_soc_info *dm355_edma_info[EDMA_MAX_CC] = { | 597 | static struct edma_soc_info *dm355_edma_info[EDMA_MAX_CC] = { |
diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c index 4c82c2716293..555ff5bdb220 100644 --- a/arch/arm/mach-davinci/dm644x.c +++ b/arch/arm/mach-davinci/dm644x.c | |||
@@ -514,6 +514,7 @@ static struct edma_soc_info edma_cc0_info = { | |||
514 | .n_cc = 1, | 514 | .n_cc = 1, |
515 | .queue_tc_mapping = queue_tc_mapping, | 515 | .queue_tc_mapping = queue_tc_mapping, |
516 | .queue_priority_mapping = queue_priority_mapping, | 516 | .queue_priority_mapping = queue_priority_mapping, |
517 | .default_queue = EVENTQ_1, | ||
517 | }; | 518 | }; |
518 | 519 | ||
519 | static struct edma_soc_info *dm644x_edma_info[EDMA_MAX_CC] = { | 520 | static struct edma_soc_info *dm644x_edma_info[EDMA_MAX_CC] = { |
diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c index 1802e711a2b8..b0c350a02484 100644 --- a/arch/arm/mach-davinci/dm646x.c +++ b/arch/arm/mach-davinci/dm646x.c | |||
@@ -555,6 +555,7 @@ static struct edma_soc_info edma_cc0_info = { | |||
555 | .n_cc = 1, | 555 | .n_cc = 1, |
556 | .queue_tc_mapping = dm646x_queue_tc_mapping, | 556 | .queue_tc_mapping = dm646x_queue_tc_mapping, |
557 | .queue_priority_mapping = dm646x_queue_priority_mapping, | 557 | .queue_priority_mapping = dm646x_queue_priority_mapping, |
558 | .default_queue = EVENTQ_1, | ||
558 | }; | 559 | }; |
559 | 560 | ||
560 | static struct edma_soc_info *dm646x_edma_info[EDMA_MAX_CC] = { | 561 | static struct edma_soc_info *dm646x_edma_info[EDMA_MAX_CC] = { |
diff --git a/arch/arm/mach-davinci/dma.c b/arch/arm/mach-davinci/dma.c index 6b9669869c46..da90103a313d 100644 --- a/arch/arm/mach-davinci/dma.c +++ b/arch/arm/mach-davinci/dma.c | |||
@@ -1435,12 +1435,11 @@ static int __init edma_probe(struct platform_device *pdev) | |||
1435 | goto fail1; | 1435 | goto fail1; |
1436 | } | 1436 | } |
1437 | 1437 | ||
1438 | edma_cc[j] = kmalloc(sizeof(struct edma), GFP_KERNEL); | 1438 | edma_cc[j] = kzalloc(sizeof(struct edma), GFP_KERNEL); |
1439 | if (!edma_cc[j]) { | 1439 | if (!edma_cc[j]) { |
1440 | status = -ENOMEM; | 1440 | status = -ENOMEM; |
1441 | goto fail1; | 1441 | goto fail1; |
1442 | } | 1442 | } |
1443 | memset(edma_cc[j], 0, sizeof(struct edma)); | ||
1444 | 1443 | ||
1445 | edma_cc[j]->num_channels = min_t(unsigned, info[j]->n_channel, | 1444 | edma_cc[j]->num_channels = min_t(unsigned, info[j]->n_channel, |
1446 | EDMA_MAX_DMACH); | 1445 | EDMA_MAX_DMACH); |
@@ -1450,8 +1449,6 @@ static int __init edma_probe(struct platform_device *pdev) | |||
1450 | EDMA_MAX_CC); | 1449 | EDMA_MAX_CC); |
1451 | 1450 | ||
1452 | edma_cc[j]->default_queue = info[j]->default_queue; | 1451 | edma_cc[j]->default_queue = info[j]->default_queue; |
1453 | if (!edma_cc[j]->default_queue) | ||
1454 | edma_cc[j]->default_queue = EVENTQ_1; | ||
1455 | 1452 | ||
1456 | dev_dbg(&pdev->dev, "DMA REG BASE ADDR=%p\n", | 1453 | dev_dbg(&pdev->dev, "DMA REG BASE ADDR=%p\n", |
1457 | edmacc_regs_base[j]); | 1454 | edmacc_regs_base[j]); |
diff --git a/arch/arm/mach-davinci/include/mach/memory.h b/arch/arm/mach-davinci/include/mach/memory.h index 78731944a70c..885d23319668 100644 --- a/arch/arm/mach-davinci/include/mach/memory.h +++ b/arch/arm/mach-davinci/include/mach/memory.h | |||
@@ -36,9 +36,4 @@ | |||
36 | #define DDR2_MCLKSTOPEN_BIT BIT(30) | 36 | #define DDR2_MCLKSTOPEN_BIT BIT(30) |
37 | #define DDR2_LPMODEN_BIT BIT(31) | 37 | #define DDR2_LPMODEN_BIT BIT(31) |
38 | 38 | ||
39 | /* | ||
40 | * Increase size of DMA-consistent memory region | ||
41 | */ | ||
42 | #define CONSISTENT_DMA_SIZE (14<<20) | ||
43 | |||
44 | #endif /* __ASM_ARCH_MEMORY_H */ | 39 | #endif /* __ASM_ARCH_MEMORY_H */ |
diff --git a/arch/arm/mach-dove/cm-a510.c b/arch/arm/mach-dove/cm-a510.c index 03e11f9dca97..c8a406f7e946 100644 --- a/arch/arm/mach-dove/cm-a510.c +++ b/arch/arm/mach-dove/cm-a510.c | |||
@@ -87,7 +87,7 @@ static void __init cm_a510_init(void) | |||
87 | } | 87 | } |
88 | 88 | ||
89 | MACHINE_START(CM_A510, "Compulab CM-A510 Board") | 89 | MACHINE_START(CM_A510, "Compulab CM-A510 Board") |
90 | .boot_params = 0x00000100, | 90 | .atag_offset = 0x100, |
91 | .init_machine = cm_a510_init, | 91 | .init_machine = cm_a510_init, |
92 | .map_io = dove_map_io, | 92 | .map_io = dove_map_io, |
93 | .init_early = dove_init_early, | 93 | .init_early = dove_init_early, |
diff --git a/arch/arm/mach-dove/dove-db-setup.c b/arch/arm/mach-dove/dove-db-setup.c index 2ac34ecfa745..11ea34e4fc76 100644 --- a/arch/arm/mach-dove/dove-db-setup.c +++ b/arch/arm/mach-dove/dove-db-setup.c | |||
@@ -94,7 +94,7 @@ static void __init dove_db_init(void) | |||
94 | } | 94 | } |
95 | 95 | ||
96 | MACHINE_START(DOVE_DB, "Marvell DB-MV88AP510-BP Development Board") | 96 | MACHINE_START(DOVE_DB, "Marvell DB-MV88AP510-BP Development Board") |
97 | .boot_params = 0x00000100, | 97 | .atag_offset = 0x100, |
98 | .init_machine = dove_db_init, | 98 | .init_machine = dove_db_init, |
99 | .map_io = dove_map_io, | 99 | .map_io = dove_map_io, |
100 | .init_early = dove_init_early, | 100 | .init_early = dove_init_early, |
diff --git a/arch/arm/mach-ebsa110/core.c b/arch/arm/mach-ebsa110/core.c index 087bc771ac23..d0ce8abdd4b6 100644 --- a/arch/arm/mach-ebsa110/core.c +++ b/arch/arm/mach-ebsa110/core.c | |||
@@ -280,7 +280,7 @@ arch_initcall(ebsa110_init); | |||
280 | 280 | ||
281 | MACHINE_START(EBSA110, "EBSA110") | 281 | MACHINE_START(EBSA110, "EBSA110") |
282 | /* Maintainer: Russell King */ | 282 | /* Maintainer: Russell King */ |
283 | .boot_params = 0x00000400, | 283 | .atag_offset = 0x400, |
284 | .reserve_lp0 = 1, | 284 | .reserve_lp0 = 1, |
285 | .reserve_lp2 = 1, | 285 | .reserve_lp2 = 1, |
286 | .soft_reboot = 1, | 286 | .soft_reboot = 1, |
diff --git a/arch/arm/mach-ep93xx/adssphere.c b/arch/arm/mach-ep93xx/adssphere.c index 61b98ce4b673..0713448206a5 100644 --- a/arch/arm/mach-ep93xx/adssphere.c +++ b/arch/arm/mach-ep93xx/adssphere.c | |||
@@ -33,7 +33,7 @@ static void __init adssphere_init_machine(void) | |||
33 | 33 | ||
34 | MACHINE_START(ADSSPHERE, "ADS Sphere board") | 34 | MACHINE_START(ADSSPHERE, "ADS Sphere board") |
35 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 35 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
36 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, | 36 | .atag_offset = 0x100, |
37 | .map_io = ep93xx_map_io, | 37 | .map_io = ep93xx_map_io, |
38 | .init_irq = ep93xx_init_irq, | 38 | .init_irq = ep93xx_init_irq, |
39 | .timer = &ep93xx_timer, | 39 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-ep93xx/edb93xx.c b/arch/arm/mach-ep93xx/edb93xx.c index 9969bb115f60..257175edc575 100644 --- a/arch/arm/mach-ep93xx/edb93xx.c +++ b/arch/arm/mach-ep93xx/edb93xx.c | |||
@@ -240,7 +240,7 @@ static void __init edb93xx_init_machine(void) | |||
240 | #ifdef CONFIG_MACH_EDB9301 | 240 | #ifdef CONFIG_MACH_EDB9301 |
241 | MACHINE_START(EDB9301, "Cirrus Logic EDB9301 Evaluation Board") | 241 | MACHINE_START(EDB9301, "Cirrus Logic EDB9301 Evaluation Board") |
242 | /* Maintainer: H Hartley Sweeten <hsweeten@visionengravers.com> */ | 242 | /* Maintainer: H Hartley Sweeten <hsweeten@visionengravers.com> */ |
243 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, | 243 | .atag_offset = 0x100, |
244 | .map_io = ep93xx_map_io, | 244 | .map_io = ep93xx_map_io, |
245 | .init_irq = ep93xx_init_irq, | 245 | .init_irq = ep93xx_init_irq, |
246 | .timer = &ep93xx_timer, | 246 | .timer = &ep93xx_timer, |
@@ -251,7 +251,7 @@ MACHINE_END | |||
251 | #ifdef CONFIG_MACH_EDB9302 | 251 | #ifdef CONFIG_MACH_EDB9302 |
252 | MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board") | 252 | MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board") |
253 | /* Maintainer: George Kashperko <george@chas.com.ua> */ | 253 | /* Maintainer: George Kashperko <george@chas.com.ua> */ |
254 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, | 254 | .atag_offset = 0x100, |
255 | .map_io = ep93xx_map_io, | 255 | .map_io = ep93xx_map_io, |
256 | .init_irq = ep93xx_init_irq, | 256 | .init_irq = ep93xx_init_irq, |
257 | .timer = &ep93xx_timer, | 257 | .timer = &ep93xx_timer, |
@@ -262,7 +262,7 @@ MACHINE_END | |||
262 | #ifdef CONFIG_MACH_EDB9302A | 262 | #ifdef CONFIG_MACH_EDB9302A |
263 | MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board") | 263 | MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board") |
264 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 264 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
265 | .boot_params = EP93XX_SDCE0_PHYS_BASE + 0x100, | 265 | .atag_offset = 0x100, |
266 | .map_io = ep93xx_map_io, | 266 | .map_io = ep93xx_map_io, |
267 | .init_irq = ep93xx_init_irq, | 267 | .init_irq = ep93xx_init_irq, |
268 | .timer = &ep93xx_timer, | 268 | .timer = &ep93xx_timer, |
@@ -273,7 +273,7 @@ MACHINE_END | |||
273 | #ifdef CONFIG_MACH_EDB9307 | 273 | #ifdef CONFIG_MACH_EDB9307 |
274 | MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board") | 274 | MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board") |
275 | /* Maintainer: Herbert Valerio Riedel <hvr@gnu.org> */ | 275 | /* Maintainer: Herbert Valerio Riedel <hvr@gnu.org> */ |
276 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, | 276 | .atag_offset = 0x100, |
277 | .map_io = ep93xx_map_io, | 277 | .map_io = ep93xx_map_io, |
278 | .init_irq = ep93xx_init_irq, | 278 | .init_irq = ep93xx_init_irq, |
279 | .timer = &ep93xx_timer, | 279 | .timer = &ep93xx_timer, |
@@ -284,7 +284,7 @@ MACHINE_END | |||
284 | #ifdef CONFIG_MACH_EDB9307A | 284 | #ifdef CONFIG_MACH_EDB9307A |
285 | MACHINE_START(EDB9307A, "Cirrus Logic EDB9307A Evaluation Board") | 285 | MACHINE_START(EDB9307A, "Cirrus Logic EDB9307A Evaluation Board") |
286 | /* Maintainer: H Hartley Sweeten <hsweeten@visionengravers.com> */ | 286 | /* Maintainer: H Hartley Sweeten <hsweeten@visionengravers.com> */ |
287 | .boot_params = EP93XX_SDCE0_PHYS_BASE + 0x100, | 287 | .atag_offset = 0x100, |
288 | .map_io = ep93xx_map_io, | 288 | .map_io = ep93xx_map_io, |
289 | .init_irq = ep93xx_init_irq, | 289 | .init_irq = ep93xx_init_irq, |
290 | .timer = &ep93xx_timer, | 290 | .timer = &ep93xx_timer, |
@@ -295,7 +295,7 @@ MACHINE_END | |||
295 | #ifdef CONFIG_MACH_EDB9312 | 295 | #ifdef CONFIG_MACH_EDB9312 |
296 | MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board") | 296 | MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board") |
297 | /* Maintainer: Toufeeq Hussain <toufeeq_hussain@infosys.com> */ | 297 | /* Maintainer: Toufeeq Hussain <toufeeq_hussain@infosys.com> */ |
298 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, | 298 | .atag_offset = 0x100, |
299 | .map_io = ep93xx_map_io, | 299 | .map_io = ep93xx_map_io, |
300 | .init_irq = ep93xx_init_irq, | 300 | .init_irq = ep93xx_init_irq, |
301 | .timer = &ep93xx_timer, | 301 | .timer = &ep93xx_timer, |
@@ -306,7 +306,7 @@ MACHINE_END | |||
306 | #ifdef CONFIG_MACH_EDB9315 | 306 | #ifdef CONFIG_MACH_EDB9315 |
307 | MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board") | 307 | MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board") |
308 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 308 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
309 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, | 309 | .atag_offset = 0x100, |
310 | .map_io = ep93xx_map_io, | 310 | .map_io = ep93xx_map_io, |
311 | .init_irq = ep93xx_init_irq, | 311 | .init_irq = ep93xx_init_irq, |
312 | .timer = &ep93xx_timer, | 312 | .timer = &ep93xx_timer, |
@@ -317,7 +317,7 @@ MACHINE_END | |||
317 | #ifdef CONFIG_MACH_EDB9315A | 317 | #ifdef CONFIG_MACH_EDB9315A |
318 | MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board") | 318 | MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board") |
319 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 319 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
320 | .boot_params = EP93XX_SDCE0_PHYS_BASE + 0x100, | 320 | .atag_offset = 0x100, |
321 | .map_io = ep93xx_map_io, | 321 | .map_io = ep93xx_map_io, |
322 | .init_irq = ep93xx_init_irq, | 322 | .init_irq = ep93xx_init_irq, |
323 | .timer = &ep93xx_timer, | 323 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-ep93xx/gesbc9312.c b/arch/arm/mach-ep93xx/gesbc9312.c index 9bd3152bff9a..45ee205856f8 100644 --- a/arch/arm/mach-ep93xx/gesbc9312.c +++ b/arch/arm/mach-ep93xx/gesbc9312.c | |||
@@ -33,7 +33,7 @@ static void __init gesbc9312_init_machine(void) | |||
33 | 33 | ||
34 | MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx") | 34 | MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx") |
35 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 35 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
36 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, | 36 | .atag_offset = 0x100, |
37 | .map_io = ep93xx_map_io, | 37 | .map_io = ep93xx_map_io, |
38 | .init_irq = ep93xx_init_irq, | 38 | .init_irq = ep93xx_init_irq, |
39 | .timer = &ep93xx_timer, | 39 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-ep93xx/micro9.c b/arch/arm/mach-ep93xx/micro9.c index 7adea6258efe..e72f7368876e 100644 --- a/arch/arm/mach-ep93xx/micro9.c +++ b/arch/arm/mach-ep93xx/micro9.c | |||
@@ -77,7 +77,7 @@ static void __init micro9_init_machine(void) | |||
77 | #ifdef CONFIG_MACH_MICRO9H | 77 | #ifdef CONFIG_MACH_MICRO9H |
78 | MACHINE_START(MICRO9, "Contec Micro9-High") | 78 | MACHINE_START(MICRO9, "Contec Micro9-High") |
79 | /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */ | 79 | /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */ |
80 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, | 80 | .atag_offset = 0x100, |
81 | .map_io = ep93xx_map_io, | 81 | .map_io = ep93xx_map_io, |
82 | .init_irq = ep93xx_init_irq, | 82 | .init_irq = ep93xx_init_irq, |
83 | .timer = &ep93xx_timer, | 83 | .timer = &ep93xx_timer, |
@@ -88,7 +88,7 @@ MACHINE_END | |||
88 | #ifdef CONFIG_MACH_MICRO9M | 88 | #ifdef CONFIG_MACH_MICRO9M |
89 | MACHINE_START(MICRO9M, "Contec Micro9-Mid") | 89 | MACHINE_START(MICRO9M, "Contec Micro9-Mid") |
90 | /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */ | 90 | /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */ |
91 | .boot_params = EP93XX_SDCE3_PHYS_BASE_ASYNC + 0x100, | 91 | .atag_offset = 0x100, |
92 | .map_io = ep93xx_map_io, | 92 | .map_io = ep93xx_map_io, |
93 | .init_irq = ep93xx_init_irq, | 93 | .init_irq = ep93xx_init_irq, |
94 | .timer = &ep93xx_timer, | 94 | .timer = &ep93xx_timer, |
@@ -99,7 +99,7 @@ MACHINE_END | |||
99 | #ifdef CONFIG_MACH_MICRO9L | 99 | #ifdef CONFIG_MACH_MICRO9L |
100 | MACHINE_START(MICRO9L, "Contec Micro9-Lite") | 100 | MACHINE_START(MICRO9L, "Contec Micro9-Lite") |
101 | /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */ | 101 | /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */ |
102 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, | 102 | .atag_offset = 0x100, |
103 | .map_io = ep93xx_map_io, | 103 | .map_io = ep93xx_map_io, |
104 | .init_irq = ep93xx_init_irq, | 104 | .init_irq = ep93xx_init_irq, |
105 | .timer = &ep93xx_timer, | 105 | .timer = &ep93xx_timer, |
@@ -110,7 +110,7 @@ MACHINE_END | |||
110 | #ifdef CONFIG_MACH_MICRO9S | 110 | #ifdef CONFIG_MACH_MICRO9S |
111 | MACHINE_START(MICRO9S, "Contec Micro9-Slim") | 111 | MACHINE_START(MICRO9S, "Contec Micro9-Slim") |
112 | /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */ | 112 | /* Maintainer: Hubert Feurstein <hubert.feurstein@contec.at> */ |
113 | .boot_params = EP93XX_SDCE3_PHYS_BASE_ASYNC + 0x100, | 113 | .atag_offset = 0x100, |
114 | .map_io = ep93xx_map_io, | 114 | .map_io = ep93xx_map_io, |
115 | .init_irq = ep93xx_init_irq, | 115 | .init_irq = ep93xx_init_irq, |
116 | .timer = &ep93xx_timer, | 116 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-ep93xx/simone.c b/arch/arm/mach-ep93xx/simone.c index 8392e95d7cea..238bc603da86 100644 --- a/arch/arm/mach-ep93xx/simone.c +++ b/arch/arm/mach-ep93xx/simone.c | |||
@@ -65,8 +65,8 @@ static void __init simone_init_machine(void) | |||
65 | } | 65 | } |
66 | 66 | ||
67 | MACHINE_START(SIM_ONE, "Simplemachines Sim.One Board") | 67 | MACHINE_START(SIM_ONE, "Simplemachines Sim.One Board") |
68 | /* Maintainer: Ryan Mallon */ | 68 | /* Maintainer: Ryan Mallon */ |
69 | .boot_params = EP93XX_SDCE0_PHYS_BASE + 0x100, | 69 | .atag_offset = 0x100, |
70 | .map_io = ep93xx_map_io, | 70 | .map_io = ep93xx_map_io, |
71 | .init_irq = ep93xx_init_irq, | 71 | .init_irq = ep93xx_init_irq, |
72 | .timer = &ep93xx_timer, | 72 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-ep93xx/snappercl15.c b/arch/arm/mach-ep93xx/snappercl15.c index 2e9c614757e4..3bdf3a2e5ad0 100644 --- a/arch/arm/mach-ep93xx/snappercl15.c +++ b/arch/arm/mach-ep93xx/snappercl15.c | |||
@@ -163,7 +163,7 @@ static void __init snappercl15_init_machine(void) | |||
163 | 163 | ||
164 | MACHINE_START(SNAPPER_CL15, "Bluewater Systems Snapper CL15") | 164 | MACHINE_START(SNAPPER_CL15, "Bluewater Systems Snapper CL15") |
165 | /* Maintainer: Ryan Mallon */ | 165 | /* Maintainer: Ryan Mallon */ |
166 | .boot_params = EP93XX_SDCE0_PHYS_BASE + 0x100, | 166 | .atag_offset = 0x100, |
167 | .map_io = ep93xx_map_io, | 167 | .map_io = ep93xx_map_io, |
168 | .init_irq = ep93xx_init_irq, | 168 | .init_irq = ep93xx_init_irq, |
169 | .timer = &ep93xx_timer, | 169 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-ep93xx/ts72xx.c b/arch/arm/mach-ep93xx/ts72xx.c index c2d2cf40ead9..1ade3c340507 100644 --- a/arch/arm/mach-ep93xx/ts72xx.c +++ b/arch/arm/mach-ep93xx/ts72xx.c | |||
@@ -257,7 +257,7 @@ static void __init ts72xx_init_machine(void) | |||
257 | 257 | ||
258 | MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC") | 258 | MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC") |
259 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 259 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
260 | .boot_params = EP93XX_SDCE3_PHYS_BASE_SYNC + 0x100, | 260 | .atag_offset = 0x100, |
261 | .map_io = ts72xx_map_io, | 261 | .map_io = ts72xx_map_io, |
262 | .init_irq = ep93xx_init_irq, | 262 | .init_irq = ep93xx_init_irq, |
263 | .timer = &ep93xx_timer, | 263 | .timer = &ep93xx_timer, |
diff --git a/arch/arm/mach-exynos4/Kconfig b/arch/arm/mach-exynos4/Kconfig index 0c77ab99fa16..bee8f77de2ab 100644 --- a/arch/arm/mach-exynos4/Kconfig +++ b/arch/arm/mach-exynos4/Kconfig | |||
@@ -113,22 +113,7 @@ menu "EXYNOS4 Machines" | |||
113 | 113 | ||
114 | config MACH_SMDKC210 | 114 | config MACH_SMDKC210 |
115 | bool "SMDKC210" | 115 | bool "SMDKC210" |
116 | select CPU_EXYNOS4210 | 116 | select MACH_SMDKV310 |
117 | select S5P_DEV_FIMD0 | ||
118 | select S3C_DEV_RTC | ||
119 | select S3C_DEV_WDT | ||
120 | select S3C_DEV_I2C1 | ||
121 | select S3C_DEV_HSMMC | ||
122 | select S3C_DEV_HSMMC1 | ||
123 | select S3C_DEV_HSMMC2 | ||
124 | select S3C_DEV_HSMMC3 | ||
125 | select SAMSUNG_DEV_PWM | ||
126 | select SAMSUNG_DEV_BACKLIGHT | ||
127 | select EXYNOS4_DEV_PD | ||
128 | select EXYNOS4_DEV_SYSMMU | ||
129 | select EXYNOS4_SETUP_FIMD0 | ||
130 | select EXYNOS4_SETUP_I2C1 | ||
131 | select EXYNOS4_SETUP_SDHCI | ||
132 | help | 117 | help |
133 | Machine support for Samsung SMDKC210 | 118 | Machine support for Samsung SMDKC210 |
134 | 119 | ||
diff --git a/arch/arm/mach-exynos4/Makefile b/arch/arm/mach-exynos4/Makefile index b7fe1d7b0b1f..e3e93ea41385 100644 --- a/arch/arm/mach-exynos4/Makefile +++ b/arch/arm/mach-exynos4/Makefile | |||
@@ -25,7 +25,7 @@ obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o | |||
25 | 25 | ||
26 | # machine support | 26 | # machine support |
27 | 27 | ||
28 | obj-$(CONFIG_MACH_SMDKC210) += mach-smdkc210.o | 28 | obj-$(CONFIG_MACH_SMDKC210) += mach-smdkv310.o |
29 | obj-$(CONFIG_MACH_SMDKV310) += mach-smdkv310.o | 29 | obj-$(CONFIG_MACH_SMDKV310) += mach-smdkv310.o |
30 | obj-$(CONFIG_MACH_ARMLEX4210) += mach-armlex4210.o | 30 | obj-$(CONFIG_MACH_ARMLEX4210) += mach-armlex4210.o |
31 | obj-$(CONFIG_MACH_UNIVERSAL_C210) += mach-universal_c210.o | 31 | obj-$(CONFIG_MACH_UNIVERSAL_C210) += mach-universal_c210.o |
diff --git a/arch/arm/mach-exynos4/mach-armlex4210.c b/arch/arm/mach-exynos4/mach-armlex4210.c index b482c6285fc4..f0ca6c157d29 100644 --- a/arch/arm/mach-exynos4/mach-armlex4210.c +++ b/arch/arm/mach-exynos4/mach-armlex4210.c | |||
@@ -207,7 +207,7 @@ static void __init armlex4210_machine_init(void) | |||
207 | 207 | ||
208 | MACHINE_START(ARMLEX4210, "ARMLEX4210") | 208 | MACHINE_START(ARMLEX4210, "ARMLEX4210") |
209 | /* Maintainer: Alim Akhtar <alim.akhtar@samsung.com> */ | 209 | /* Maintainer: Alim Akhtar <alim.akhtar@samsung.com> */ |
210 | .boot_params = S5P_PA_SDRAM + 0x100, | 210 | .atag_offset = 0x100, |
211 | .init_irq = exynos4_init_irq, | 211 | .init_irq = exynos4_init_irq, |
212 | .map_io = armlex4210_map_io, | 212 | .map_io = armlex4210_map_io, |
213 | .init_machine = armlex4210_machine_init, | 213 | .init_machine = armlex4210_machine_init, |
diff --git a/arch/arm/mach-exynos4/mach-nuri.c b/arch/arm/mach-exynos4/mach-nuri.c index 43be71b799cb..6e0536818bf5 100644 --- a/arch/arm/mach-exynos4/mach-nuri.c +++ b/arch/arm/mach-exynos4/mach-nuri.c | |||
@@ -1152,7 +1152,7 @@ static void __init nuri_machine_init(void) | |||
1152 | 1152 | ||
1153 | MACHINE_START(NURI, "NURI") | 1153 | MACHINE_START(NURI, "NURI") |
1154 | /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */ | 1154 | /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */ |
1155 | .boot_params = S5P_PA_SDRAM + 0x100, | 1155 | .atag_offset = 0x100, |
1156 | .init_irq = exynos4_init_irq, | 1156 | .init_irq = exynos4_init_irq, |
1157 | .map_io = nuri_map_io, | 1157 | .map_io = nuri_map_io, |
1158 | .init_machine = nuri_machine_init, | 1158 | .init_machine = nuri_machine_init, |
diff --git a/arch/arm/mach-exynos4/mach-smdkc210.c b/arch/arm/mach-exynos4/mach-smdkc210.c deleted file mode 100644 index a7c65e05c1eb..000000000000 --- a/arch/arm/mach-exynos4/mach-smdkc210.c +++ /dev/null | |||
@@ -1,309 +0,0 @@ | |||
1 | /* linux/arch/arm/mach-exynos4/mach-smdkc210.c | ||
2 | * | ||
3 | * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. | ||
4 | * http://www.samsung.com | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | #include <linux/serial_core.h> | ||
12 | #include <linux/delay.h> | ||
13 | #include <linux/gpio.h> | ||
14 | #include <linux/lcd.h> | ||
15 | #include <linux/mmc/host.h> | ||
16 | #include <linux/platform_device.h> | ||
17 | #include <linux/smsc911x.h> | ||
18 | #include <linux/io.h> | ||
19 | #include <linux/i2c.h> | ||
20 | #include <linux/pwm_backlight.h> | ||
21 | |||
22 | #include <asm/mach/arch.h> | ||
23 | #include <asm/mach-types.h> | ||
24 | |||
25 | #include <video/platform_lcd.h> | ||
26 | |||
27 | #include <plat/regs-serial.h> | ||
28 | #include <plat/regs-srom.h> | ||
29 | #include <plat/regs-fb-v4.h> | ||
30 | #include <plat/exynos4.h> | ||
31 | #include <plat/cpu.h> | ||
32 | #include <plat/devs.h> | ||
33 | #include <plat/fb.h> | ||
34 | #include <plat/sdhci.h> | ||
35 | #include <plat/iic.h> | ||
36 | #include <plat/pd.h> | ||
37 | #include <plat/gpio-cfg.h> | ||
38 | #include <plat/backlight.h> | ||
39 | |||
40 | #include <mach/map.h> | ||
41 | |||
42 | /* Following are default values for UCON, ULCON and UFCON UART registers */ | ||
43 | #define SMDKC210_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \ | ||
44 | S3C2410_UCON_RXILEVEL | \ | ||
45 | S3C2410_UCON_TXIRQMODE | \ | ||
46 | S3C2410_UCON_RXIRQMODE | \ | ||
47 | S3C2410_UCON_RXFIFO_TOI | \ | ||
48 | S3C2443_UCON_RXERR_IRQEN) | ||
49 | |||
50 | #define SMDKC210_ULCON_DEFAULT S3C2410_LCON_CS8 | ||
51 | |||
52 | #define SMDKC210_UFCON_DEFAULT (S3C2410_UFCON_FIFOMODE | \ | ||
53 | S5PV210_UFCON_TXTRIG4 | \ | ||
54 | S5PV210_UFCON_RXTRIG4) | ||
55 | |||
56 | static struct s3c2410_uartcfg smdkc210_uartcfgs[] __initdata = { | ||
57 | [0] = { | ||
58 | .hwport = 0, | ||
59 | .flags = 0, | ||
60 | .ucon = SMDKC210_UCON_DEFAULT, | ||
61 | .ulcon = SMDKC210_ULCON_DEFAULT, | ||
62 | .ufcon = SMDKC210_UFCON_DEFAULT, | ||
63 | }, | ||
64 | [1] = { | ||
65 | .hwport = 1, | ||
66 | .flags = 0, | ||
67 | .ucon = SMDKC210_UCON_DEFAULT, | ||
68 | .ulcon = SMDKC210_ULCON_DEFAULT, | ||
69 | .ufcon = SMDKC210_UFCON_DEFAULT, | ||
70 | }, | ||
71 | [2] = { | ||
72 | .hwport = 2, | ||
73 | .flags = 0, | ||
74 | .ucon = SMDKC210_UCON_DEFAULT, | ||
75 | .ulcon = SMDKC210_ULCON_DEFAULT, | ||
76 | .ufcon = SMDKC210_UFCON_DEFAULT, | ||
77 | }, | ||
78 | [3] = { | ||
79 | .hwport = 3, | ||
80 | .flags = 0, | ||
81 | .ucon = SMDKC210_UCON_DEFAULT, | ||
82 | .ulcon = SMDKC210_ULCON_DEFAULT, | ||
83 | .ufcon = SMDKC210_UFCON_DEFAULT, | ||
84 | }, | ||
85 | }; | ||
86 | |||
87 | static struct s3c_sdhci_platdata smdkc210_hsmmc0_pdata __initdata = { | ||
88 | .cd_type = S3C_SDHCI_CD_GPIO, | ||
89 | .ext_cd_gpio = EXYNOS4_GPK0(2), | ||
90 | .ext_cd_gpio_invert = 1, | ||
91 | .clk_type = S3C_SDHCI_CLK_DIV_EXTERNAL, | ||
92 | #ifdef CONFIG_EXYNOS4_SDHCI_CH0_8BIT | ||
93 | .max_width = 8, | ||
94 | .host_caps = MMC_CAP_8_BIT_DATA, | ||
95 | #endif | ||
96 | }; | ||
97 | |||
98 | static struct s3c_sdhci_platdata smdkc210_hsmmc1_pdata __initdata = { | ||
99 | .cd_type = S3C_SDHCI_CD_GPIO, | ||
100 | .ext_cd_gpio = EXYNOS4_GPK0(2), | ||
101 | .ext_cd_gpio_invert = 1, | ||
102 | .clk_type = S3C_SDHCI_CLK_DIV_EXTERNAL, | ||
103 | }; | ||
104 | |||
105 | static struct s3c_sdhci_platdata smdkc210_hsmmc2_pdata __initdata = { | ||
106 | .cd_type = S3C_SDHCI_CD_GPIO, | ||
107 | .ext_cd_gpio = EXYNOS4_GPK2(2), | ||
108 | .ext_cd_gpio_invert = 1, | ||
109 | .clk_type = S3C_SDHCI_CLK_DIV_EXTERNAL, | ||
110 | #ifdef CONFIG_EXYNOS4_SDHCI_CH2_8BIT | ||
111 | .max_width = 8, | ||
112 | .host_caps = MMC_CAP_8_BIT_DATA, | ||
113 | #endif | ||
114 | }; | ||
115 | |||
116 | static struct s3c_sdhci_platdata smdkc210_hsmmc3_pdata __initdata = { | ||
117 | .cd_type = S3C_SDHCI_CD_GPIO, | ||
118 | .ext_cd_gpio = EXYNOS4_GPK2(2), | ||
119 | .ext_cd_gpio_invert = 1, | ||
120 | .clk_type = S3C_SDHCI_CLK_DIV_EXTERNAL, | ||
121 | }; | ||
122 | |||
123 | static void lcd_lte480wv_set_power(struct plat_lcd_data *pd, | ||
124 | unsigned int power) | ||
125 | { | ||
126 | if (power) { | ||
127 | #if !defined(CONFIG_BACKLIGHT_PWM) | ||
128 | gpio_request_one(EXYNOS4_GPD0(1), GPIOF_OUT_INIT_HIGH, "GPD0"); | ||
129 | gpio_free(EXYNOS4_GPD0(1)); | ||
130 | #endif | ||
131 | /* fire nRESET on power up */ | ||
132 | gpio_request(EXYNOS4_GPX0(6), "GPX0"); | ||
133 | |||
134 | gpio_direction_output(EXYNOS4_GPX0(6), 1); | ||
135 | mdelay(100); | ||
136 | |||
137 | gpio_set_value(EXYNOS4_GPX0(6), 0); | ||
138 | mdelay(10); | ||
139 | |||
140 | gpio_set_value(EXYNOS4_GPX0(6), 1); | ||
141 | mdelay(10); | ||
142 | |||
143 | gpio_free(EXYNOS4_GPX0(6)); | ||
144 | } else { | ||
145 | #if !defined(CONFIG_BACKLIGHT_PWM) | ||
146 | gpio_request_one(EXYNOS4_GPD0(1), GPIOF_OUT_INIT_LOW, "GPD0"); | ||
147 | gpio_free(EXYNOS4_GPD0(1)); | ||
148 | #endif | ||
149 | } | ||
150 | } | ||
151 | |||
152 | static struct plat_lcd_data smdkc210_lcd_lte480wv_data = { | ||
153 | .set_power = lcd_lte480wv_set_power, | ||
154 | }; | ||
155 | |||
156 | static struct platform_device smdkc210_lcd_lte480wv = { | ||
157 | .name = "platform-lcd", | ||
158 | .dev.parent = &s5p_device_fimd0.dev, | ||
159 | .dev.platform_data = &smdkc210_lcd_lte480wv_data, | ||
160 | }; | ||
161 | |||
162 | static struct s3c_fb_pd_win smdkc210_fb_win0 = { | ||
163 | .win_mode = { | ||
164 | .left_margin = 13, | ||
165 | .right_margin = 8, | ||
166 | .upper_margin = 7, | ||
167 | .lower_margin = 5, | ||
168 | .hsync_len = 3, | ||
169 | .vsync_len = 1, | ||
170 | .xres = 800, | ||
171 | .yres = 480, | ||
172 | }, | ||
173 | .max_bpp = 32, | ||
174 | .default_bpp = 24, | ||
175 | }; | ||
176 | |||
177 | static struct s3c_fb_platdata smdkc210_lcd0_pdata __initdata = { | ||
178 | .win[0] = &smdkc210_fb_win0, | ||
179 | .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, | ||
180 | .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, | ||
181 | .setup_gpio = exynos4_fimd0_gpio_setup_24bpp, | ||
182 | }; | ||
183 | |||
184 | static struct resource smdkc210_smsc911x_resources[] = { | ||
185 | [0] = { | ||
186 | .start = EXYNOS4_PA_SROM_BANK(1), | ||
187 | .end = EXYNOS4_PA_SROM_BANK(1) + SZ_64K - 1, | ||
188 | .flags = IORESOURCE_MEM, | ||
189 | }, | ||
190 | [1] = { | ||
191 | .start = IRQ_EINT(5), | ||
192 | .end = IRQ_EINT(5), | ||
193 | .flags = IORESOURCE_IRQ | IRQF_TRIGGER_LOW, | ||
194 | }, | ||
195 | }; | ||
196 | |||
197 | static struct smsc911x_platform_config smsc9215_config = { | ||
198 | .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, | ||
199 | .irq_type = SMSC911X_IRQ_TYPE_PUSH_PULL, | ||
200 | .flags = SMSC911X_USE_16BIT | SMSC911X_FORCE_INTERNAL_PHY, | ||
201 | .phy_interface = PHY_INTERFACE_MODE_MII, | ||
202 | .mac = {0x00, 0x80, 0x00, 0x23, 0x45, 0x67}, | ||
203 | }; | ||
204 | |||
205 | static struct platform_device smdkc210_smsc911x = { | ||
206 | .name = "smsc911x", | ||
207 | .id = -1, | ||
208 | .num_resources = ARRAY_SIZE(smdkc210_smsc911x_resources), | ||
209 | .resource = smdkc210_smsc911x_resources, | ||
210 | .dev = { | ||
211 | .platform_data = &smsc9215_config, | ||
212 | }, | ||
213 | }; | ||
214 | |||
215 | static struct i2c_board_info i2c_devs1[] __initdata = { | ||
216 | {I2C_BOARD_INFO("wm8994", 0x1a),}, | ||
217 | }; | ||
218 | |||
219 | static struct platform_device *smdkc210_devices[] __initdata = { | ||
220 | &s3c_device_hsmmc0, | ||
221 | &s3c_device_hsmmc1, | ||
222 | &s3c_device_hsmmc2, | ||
223 | &s3c_device_hsmmc3, | ||
224 | &s3c_device_i2c1, | ||
225 | &s3c_device_rtc, | ||
226 | &s3c_device_wdt, | ||
227 | &exynos4_device_ac97, | ||
228 | &exynos4_device_i2s0, | ||
229 | &exynos4_device_pd[PD_MFC], | ||
230 | &exynos4_device_pd[PD_G3D], | ||
231 | &exynos4_device_pd[PD_LCD0], | ||
232 | &exynos4_device_pd[PD_LCD1], | ||
233 | &exynos4_device_pd[PD_CAM], | ||
234 | &exynos4_device_pd[PD_TV], | ||
235 | &exynos4_device_pd[PD_GPS], | ||
236 | &exynos4_device_sysmmu, | ||
237 | &samsung_asoc_dma, | ||
238 | &s5p_device_fimd0, | ||
239 | &smdkc210_lcd_lte480wv, | ||
240 | &smdkc210_smsc911x, | ||
241 | }; | ||
242 | |||
243 | static void __init smdkc210_smsc911x_init(void) | ||
244 | { | ||
245 | u32 cs1; | ||
246 | |||
247 | /* configure nCS1 width to 16 bits */ | ||
248 | cs1 = __raw_readl(S5P_SROM_BW) & | ||
249 | ~(S5P_SROM_BW__CS_MASK << S5P_SROM_BW__NCS1__SHIFT); | ||
250 | cs1 |= ((1 << S5P_SROM_BW__DATAWIDTH__SHIFT) | | ||
251 | (1 << S5P_SROM_BW__WAITENABLE__SHIFT) | | ||
252 | (1 << S5P_SROM_BW__BYTEENABLE__SHIFT)) << | ||
253 | S5P_SROM_BW__NCS1__SHIFT; | ||
254 | __raw_writel(cs1, S5P_SROM_BW); | ||
255 | |||
256 | /* set timing for nCS1 suitable for ethernet chip */ | ||
257 | __raw_writel((0x1 << S5P_SROM_BCX__PMC__SHIFT) | | ||
258 | (0x9 << S5P_SROM_BCX__TACP__SHIFT) | | ||
259 | (0xc << S5P_SROM_BCX__TCAH__SHIFT) | | ||
260 | (0x1 << S5P_SROM_BCX__TCOH__SHIFT) | | ||
261 | (0x6 << S5P_SROM_BCX__TACC__SHIFT) | | ||
262 | (0x1 << S5P_SROM_BCX__TCOS__SHIFT) | | ||
263 | (0x1 << S5P_SROM_BCX__TACS__SHIFT), S5P_SROM_BC1); | ||
264 | } | ||
265 | |||
266 | /* LCD Backlight data */ | ||
267 | static struct samsung_bl_gpio_info smdkc210_bl_gpio_info = { | ||
268 | .no = EXYNOS4_GPD0(1), | ||
269 | .func = S3C_GPIO_SFN(2), | ||
270 | }; | ||
271 | |||
272 | static struct platform_pwm_backlight_data smdkc210_bl_data = { | ||
273 | .pwm_id = 1, | ||
274 | .pwm_period_ns = 1000, | ||
275 | }; | ||
276 | |||
277 | static void __init smdkc210_map_io(void) | ||
278 | { | ||
279 | s5p_init_io(NULL, 0, S5P_VA_CHIPID); | ||
280 | s3c24xx_init_clocks(24000000); | ||
281 | s3c24xx_init_uarts(smdkc210_uartcfgs, ARRAY_SIZE(smdkc210_uartcfgs)); | ||
282 | } | ||
283 | |||
284 | static void __init smdkc210_machine_init(void) | ||
285 | { | ||
286 | s3c_i2c1_set_platdata(NULL); | ||
287 | i2c_register_board_info(1, i2c_devs1, ARRAY_SIZE(i2c_devs1)); | ||
288 | |||
289 | smdkc210_smsc911x_init(); | ||
290 | |||
291 | s3c_sdhci0_set_platdata(&smdkc210_hsmmc0_pdata); | ||
292 | s3c_sdhci1_set_platdata(&smdkc210_hsmmc1_pdata); | ||
293 | s3c_sdhci2_set_platdata(&smdkc210_hsmmc2_pdata); | ||
294 | s3c_sdhci3_set_platdata(&smdkc210_hsmmc3_pdata); | ||
295 | |||
296 | samsung_bl_set(&smdkc210_bl_gpio_info, &smdkc210_bl_data); | ||
297 | s5p_fimd0_set_platdata(&smdkc210_lcd0_pdata); | ||
298 | |||
299 | platform_add_devices(smdkc210_devices, ARRAY_SIZE(smdkc210_devices)); | ||
300 | } | ||
301 | |||
302 | MACHINE_START(SMDKC210, "SMDKC210") | ||
303 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | ||
304 | .boot_params = S5P_PA_SDRAM + 0x100, | ||
305 | .init_irq = exynos4_init_irq, | ||
306 | .map_io = smdkc210_map_io, | ||
307 | .init_machine = smdkc210_machine_init, | ||
308 | .timer = &exynos4_timer, | ||
309 | MACHINE_END | ||
diff --git a/arch/arm/mach-exynos4/mach-smdkv310.c b/arch/arm/mach-exynos4/mach-smdkv310.c index ea4149556860..2c1a076c6a73 100644 --- a/arch/arm/mach-exynos4/mach-smdkv310.c +++ b/arch/arm/mach-exynos4/mach-smdkv310.c | |||
@@ -9,7 +9,9 @@ | |||
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include <linux/serial_core.h> | 11 | #include <linux/serial_core.h> |
12 | #include <linux/delay.h> | ||
12 | #include <linux/gpio.h> | 13 | #include <linux/gpio.h> |
14 | #include <linux/lcd.h> | ||
13 | #include <linux/mmc/host.h> | 15 | #include <linux/mmc/host.h> |
14 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
15 | #include <linux/smsc911x.h> | 17 | #include <linux/smsc911x.h> |
@@ -21,11 +23,14 @@ | |||
21 | #include <asm/mach/arch.h> | 23 | #include <asm/mach/arch.h> |
22 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
23 | 25 | ||
26 | #include <video/platform_lcd.h> | ||
24 | #include <plat/regs-serial.h> | 27 | #include <plat/regs-serial.h> |
25 | #include <plat/regs-srom.h> | 28 | #include <plat/regs-srom.h> |
29 | #include <plat/regs-fb-v4.h> | ||
26 | #include <plat/exynos4.h> | 30 | #include <plat/exynos4.h> |
27 | #include <plat/cpu.h> | 31 | #include <plat/cpu.h> |
28 | #include <plat/devs.h> | 32 | #include <plat/devs.h> |
33 | #include <plat/fb.h> | ||
29 | #include <plat/keypad.h> | 34 | #include <plat/keypad.h> |
30 | #include <plat/sdhci.h> | 35 | #include <plat/sdhci.h> |
31 | #include <plat/iic.h> | 36 | #include <plat/iic.h> |
@@ -112,6 +117,67 @@ static struct s3c_sdhci_platdata smdkv310_hsmmc3_pdata __initdata = { | |||
112 | .clk_type = S3C_SDHCI_CLK_DIV_EXTERNAL, | 117 | .clk_type = S3C_SDHCI_CLK_DIV_EXTERNAL, |
113 | }; | 118 | }; |
114 | 119 | ||
120 | static void lcd_lte480wv_set_power(struct plat_lcd_data *pd, | ||
121 | unsigned int power) | ||
122 | { | ||
123 | if (power) { | ||
124 | #if !defined(CONFIG_BACKLIGHT_PWM) | ||
125 | gpio_request_one(EXYNOS4_GPD0(1), GPIOF_OUT_INIT_HIGH, "GPD0"); | ||
126 | gpio_free(EXYNOS4_GPD0(1)); | ||
127 | #endif | ||
128 | /* fire nRESET on power up */ | ||
129 | gpio_request(EXYNOS4_GPX0(6), "GPX0"); | ||
130 | |||
131 | gpio_direction_output(EXYNOS4_GPX0(6), 1); | ||
132 | mdelay(100); | ||
133 | |||
134 | gpio_set_value(EXYNOS4_GPX0(6), 0); | ||
135 | mdelay(10); | ||
136 | |||
137 | gpio_set_value(EXYNOS4_GPX0(6), 1); | ||
138 | mdelay(10); | ||
139 | |||
140 | gpio_free(EXYNOS4_GPX0(6)); | ||
141 | } else { | ||
142 | #if !defined(CONFIG_BACKLIGHT_PWM) | ||
143 | gpio_request_one(EXYNOS4_GPD0(1), GPIOF_OUT_INIT_LOW, "GPD0"); | ||
144 | gpio_free(EXYNOS4_GPD0(1)); | ||
145 | #endif | ||
146 | } | ||
147 | } | ||
148 | |||
149 | static struct plat_lcd_data smdkv310_lcd_lte480wv_data = { | ||
150 | .set_power = lcd_lte480wv_set_power, | ||
151 | }; | ||
152 | |||
153 | static struct platform_device smdkv310_lcd_lte480wv = { | ||
154 | .name = "platform-lcd", | ||
155 | .dev.parent = &s5p_device_fimd0.dev, | ||
156 | .dev.platform_data = &smdkv310_lcd_lte480wv_data, | ||
157 | }; | ||
158 | |||
159 | static struct s3c_fb_pd_win smdkv310_fb_win0 = { | ||
160 | .win_mode = { | ||
161 | .left_margin = 13, | ||
162 | .right_margin = 8, | ||
163 | .upper_margin = 7, | ||
164 | .lower_margin = 5, | ||
165 | .hsync_len = 3, | ||
166 | .vsync_len = 1, | ||
167 | .xres = 800, | ||
168 | .yres = 480, | ||
169 | }, | ||
170 | .max_bpp = 32, | ||
171 | .default_bpp = 24, | ||
172 | }; | ||
173 | |||
174 | static struct s3c_fb_platdata smdkv310_lcd0_pdata __initdata = { | ||
175 | .win[0] = &smdkv310_fb_win0, | ||
176 | .vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB, | ||
177 | .vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC, | ||
178 | .setup_gpio = exynos4_fimd0_gpio_setup_24bpp, | ||
179 | }; | ||
180 | |||
115 | static struct resource smdkv310_smsc911x_resources[] = { | 181 | static struct resource smdkv310_smsc911x_resources[] = { |
116 | [0] = { | 182 | [0] = { |
117 | .start = EXYNOS4_PA_SROM_BANK(1), | 183 | .start = EXYNOS4_PA_SROM_BANK(1), |
@@ -188,6 +254,8 @@ static struct platform_device *smdkv310_devices[] __initdata = { | |||
188 | &exynos4_device_sysmmu, | 254 | &exynos4_device_sysmmu, |
189 | &samsung_asoc_dma, | 255 | &samsung_asoc_dma, |
190 | &samsung_asoc_idma, | 256 | &samsung_asoc_idma, |
257 | &s5p_device_fimd0, | ||
258 | &smdkv310_lcd_lte480wv, | ||
191 | &smdkv310_smsc911x, | 259 | &smdkv310_smsc911x, |
192 | &exynos4_device_ahci, | 260 | &exynos4_device_ahci, |
193 | }; | 261 | }; |
@@ -248,6 +316,7 @@ static void __init smdkv310_machine_init(void) | |||
248 | samsung_keypad_set_platdata(&smdkv310_keypad_data); | 316 | samsung_keypad_set_platdata(&smdkv310_keypad_data); |
249 | 317 | ||
250 | samsung_bl_set(&smdkv310_bl_gpio_info, &smdkv310_bl_data); | 318 | samsung_bl_set(&smdkv310_bl_gpio_info, &smdkv310_bl_data); |
319 | s5p_fimd0_set_platdata(&smdkv310_lcd0_pdata); | ||
251 | 320 | ||
252 | platform_add_devices(smdkv310_devices, ARRAY_SIZE(smdkv310_devices)); | 321 | platform_add_devices(smdkv310_devices, ARRAY_SIZE(smdkv310_devices)); |
253 | } | 322 | } |
@@ -255,7 +324,16 @@ static void __init smdkv310_machine_init(void) | |||
255 | MACHINE_START(SMDKV310, "SMDKV310") | 324 | MACHINE_START(SMDKV310, "SMDKV310") |
256 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | 325 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ |
257 | /* Maintainer: Changhwan Youn <chaos.youn@samsung.com> */ | 326 | /* Maintainer: Changhwan Youn <chaos.youn@samsung.com> */ |
258 | .boot_params = S5P_PA_SDRAM + 0x100, | 327 | .atag_offset = 0x100, |
328 | .init_irq = exynos4_init_irq, | ||
329 | .map_io = smdkv310_map_io, | ||
330 | .init_machine = smdkv310_machine_init, | ||
331 | .timer = &exynos4_timer, | ||
332 | MACHINE_END | ||
333 | |||
334 | MACHINE_START(SMDKC210, "SMDKC210") | ||
335 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | ||
336 | .atag_offset = 0x100, | ||
259 | .init_irq = exynos4_init_irq, | 337 | .init_irq = exynos4_init_irq, |
260 | .map_io = smdkv310_map_io, | 338 | .map_io = smdkv310_map_io, |
261 | .init_machine = smdkv310_machine_init, | 339 | .init_machine = smdkv310_machine_init, |
diff --git a/arch/arm/mach-exynos4/mach-universal_c210.c b/arch/arm/mach-exynos4/mach-universal_c210.c index b3b5d8911004..2aac6f755c8e 100644 --- a/arch/arm/mach-exynos4/mach-universal_c210.c +++ b/arch/arm/mach-exynos4/mach-universal_c210.c | |||
@@ -762,7 +762,7 @@ static void __init universal_machine_init(void) | |||
762 | 762 | ||
763 | MACHINE_START(UNIVERSAL_C210, "UNIVERSAL_C210") | 763 | MACHINE_START(UNIVERSAL_C210, "UNIVERSAL_C210") |
764 | /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */ | 764 | /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */ |
765 | .boot_params = S5P_PA_SDRAM + 0x100, | 765 | .atag_offset = 0x100, |
766 | .init_irq = exynos4_init_irq, | 766 | .init_irq = exynos4_init_irq, |
767 | .map_io = universal_map_io, | 767 | .map_io = universal_map_io, |
768 | .init_machine = universal_machine_init, | 768 | .init_machine = universal_machine_init, |
diff --git a/arch/arm/mach-footbridge/cats-hw.c b/arch/arm/mach-footbridge/cats-hw.c index 5b1a8db779be..a3da5d1106c2 100644 --- a/arch/arm/mach-footbridge/cats-hw.c +++ b/arch/arm/mach-footbridge/cats-hw.c | |||
@@ -86,7 +86,7 @@ fixup_cats(struct machine_desc *desc, struct tag *tags, | |||
86 | 86 | ||
87 | MACHINE_START(CATS, "Chalice-CATS") | 87 | MACHINE_START(CATS, "Chalice-CATS") |
88 | /* Maintainer: Philip Blundell */ | 88 | /* Maintainer: Philip Blundell */ |
89 | .boot_params = 0x00000100, | 89 | .atag_offset = 0x100, |
90 | .soft_reboot = 1, | 90 | .soft_reboot = 1, |
91 | .fixup = fixup_cats, | 91 | .fixup = fixup_cats, |
92 | .map_io = footbridge_map_io, | 92 | .map_io = footbridge_map_io, |
diff --git a/arch/arm/mach-footbridge/ebsa285.c b/arch/arm/mach-footbridge/ebsa285.c index 2ef69ff44ba8..012210cf7d16 100644 --- a/arch/arm/mach-footbridge/ebsa285.c +++ b/arch/arm/mach-footbridge/ebsa285.c | |||
@@ -15,7 +15,7 @@ | |||
15 | 15 | ||
16 | MACHINE_START(EBSA285, "EBSA285") | 16 | MACHINE_START(EBSA285, "EBSA285") |
17 | /* Maintainer: Russell King */ | 17 | /* Maintainer: Russell King */ |
18 | .boot_params = 0x00000100, | 18 | .atag_offset = 0x100, |
19 | .video_start = 0x000a0000, | 19 | .video_start = 0x000a0000, |
20 | .video_end = 0x000bffff, | 20 | .video_end = 0x000bffff, |
21 | .map_io = footbridge_map_io, | 21 | .map_io = footbridge_map_io, |
diff --git a/arch/arm/mach-footbridge/netwinder-hw.c b/arch/arm/mach-footbridge/netwinder-hw.c index 06e514f372d0..d8c1c922e24c 100644 --- a/arch/arm/mach-footbridge/netwinder-hw.c +++ b/arch/arm/mach-footbridge/netwinder-hw.c | |||
@@ -648,7 +648,7 @@ fixup_netwinder(struct machine_desc *desc, struct tag *tags, | |||
648 | 648 | ||
649 | MACHINE_START(NETWINDER, "Rebel-NetWinder") | 649 | MACHINE_START(NETWINDER, "Rebel-NetWinder") |
650 | /* Maintainer: Russell King/Rebel.com */ | 650 | /* Maintainer: Russell King/Rebel.com */ |
651 | .boot_params = 0x00000100, | 651 | .atag_offset = 0x100, |
652 | .video_start = 0x000a0000, | 652 | .video_start = 0x000a0000, |
653 | .video_end = 0x000bffff, | 653 | .video_end = 0x000bffff, |
654 | .reserve_lp0 = 1, | 654 | .reserve_lp0 = 1, |
diff --git a/arch/arm/mach-footbridge/personal.c b/arch/arm/mach-footbridge/personal.c index 3285e91ca8c1..f41dba39b327 100644 --- a/arch/arm/mach-footbridge/personal.c +++ b/arch/arm/mach-footbridge/personal.c | |||
@@ -15,7 +15,7 @@ | |||
15 | 15 | ||
16 | MACHINE_START(PERSONAL_SERVER, "Compaq-PersonalServer") | 16 | MACHINE_START(PERSONAL_SERVER, "Compaq-PersonalServer") |
17 | /* Maintainer: Jamey Hicks / George France */ | 17 | /* Maintainer: Jamey Hicks / George France */ |
18 | .boot_params = 0x00000100, | 18 | .atag_offset = 0x100, |
19 | .map_io = footbridge_map_io, | 19 | .map_io = footbridge_map_io, |
20 | .init_irq = footbridge_init_irq, | 20 | .init_irq = footbridge_init_irq, |
21 | .timer = &footbridge_timer, | 21 | .timer = &footbridge_timer, |
diff --git a/arch/arm/mach-gemini/board-nas4220b.c b/arch/arm/mach-gemini/board-nas4220b.c index 0cf7a07c3f3f..5927d3c253aa 100644 --- a/arch/arm/mach-gemini/board-nas4220b.c +++ b/arch/arm/mach-gemini/board-nas4220b.c | |||
@@ -102,7 +102,7 @@ static void __init ib4220b_init(void) | |||
102 | } | 102 | } |
103 | 103 | ||
104 | MACHINE_START(NAS4220B, "Raidsonic NAS IB-4220-B") | 104 | MACHINE_START(NAS4220B, "Raidsonic NAS IB-4220-B") |
105 | .boot_params = 0x100, | 105 | .atag_offset = 0x100, |
106 | .map_io = gemini_map_io, | 106 | .map_io = gemini_map_io, |
107 | .init_irq = gemini_init_irq, | 107 | .init_irq = gemini_init_irq, |
108 | .timer = &ib4220b_timer, | 108 | .timer = &ib4220b_timer, |
diff --git a/arch/arm/mach-gemini/board-rut1xx.c b/arch/arm/mach-gemini/board-rut1xx.c index 4fa09af99495..cd7437a1cea0 100644 --- a/arch/arm/mach-gemini/board-rut1xx.c +++ b/arch/arm/mach-gemini/board-rut1xx.c | |||
@@ -86,7 +86,7 @@ static void __init rut1xx_init(void) | |||
86 | } | 86 | } |
87 | 87 | ||
88 | MACHINE_START(RUT100, "Teltonika RUT100") | 88 | MACHINE_START(RUT100, "Teltonika RUT100") |
89 | .boot_params = 0x100, | 89 | .atag_offset = 0x100, |
90 | .map_io = gemini_map_io, | 90 | .map_io = gemini_map_io, |
91 | .init_irq = gemini_init_irq, | 91 | .init_irq = gemini_init_irq, |
92 | .timer = &rut1xx_timer, | 92 | .timer = &rut1xx_timer, |
diff --git a/arch/arm/mach-gemini/board-wbd111.c b/arch/arm/mach-gemini/board-wbd111.c index 88cc422ee444..a367880368f1 100644 --- a/arch/arm/mach-gemini/board-wbd111.c +++ b/arch/arm/mach-gemini/board-wbd111.c | |||
@@ -129,7 +129,7 @@ static void __init wbd111_init(void) | |||
129 | } | 129 | } |
130 | 130 | ||
131 | MACHINE_START(WBD111, "Wiliboard WBD-111") | 131 | MACHINE_START(WBD111, "Wiliboard WBD-111") |
132 | .boot_params = 0x100, | 132 | .atag_offset = 0x100, |
133 | .map_io = gemini_map_io, | 133 | .map_io = gemini_map_io, |
134 | .init_irq = gemini_init_irq, | 134 | .init_irq = gemini_init_irq, |
135 | .timer = &wbd111_timer, | 135 | .timer = &wbd111_timer, |
diff --git a/arch/arm/mach-gemini/board-wbd222.c b/arch/arm/mach-gemini/board-wbd222.c index 3a220347bc88..f382811c1319 100644 --- a/arch/arm/mach-gemini/board-wbd222.c +++ b/arch/arm/mach-gemini/board-wbd222.c | |||
@@ -129,7 +129,7 @@ static void __init wbd222_init(void) | |||
129 | } | 129 | } |
130 | 130 | ||
131 | MACHINE_START(WBD222, "Wiliboard WBD-222") | 131 | MACHINE_START(WBD222, "Wiliboard WBD-222") |
132 | .boot_params = 0x100, | 132 | .atag_offset = 0x100, |
133 | .map_io = gemini_map_io, | 133 | .map_io = gemini_map_io, |
134 | .init_irq = gemini_init_irq, | 134 | .init_irq = gemini_init_irq, |
135 | .timer = &wbd222_timer, | 135 | .timer = &wbd222_timer, |
diff --git a/arch/arm/mach-h720x/h7201-eval.c b/arch/arm/mach-h720x/h7201-eval.c index 65f1bea958e5..9886f19805f4 100644 --- a/arch/arm/mach-h720x/h7201-eval.c +++ b/arch/arm/mach-h720x/h7201-eval.c | |||
@@ -29,7 +29,7 @@ | |||
29 | 29 | ||
30 | MACHINE_START(H7201, "Hynix GMS30C7201") | 30 | MACHINE_START(H7201, "Hynix GMS30C7201") |
31 | /* Maintainer: Robert Schwebel, Pengutronix */ | 31 | /* Maintainer: Robert Schwebel, Pengutronix */ |
32 | .boot_params = 0xc0001000, | 32 | .atag_offset = 0x1000, |
33 | .map_io = h720x_map_io, | 33 | .map_io = h720x_map_io, |
34 | .init_irq = h720x_init_irq, | 34 | .init_irq = h720x_init_irq, |
35 | .timer = &h7201_timer, | 35 | .timer = &h7201_timer, |
diff --git a/arch/arm/mach-h720x/h7202-eval.c b/arch/arm/mach-h720x/h7202-eval.c index 884584a09752..284a134819e1 100644 --- a/arch/arm/mach-h720x/h7202-eval.c +++ b/arch/arm/mach-h720x/h7202-eval.c | |||
@@ -71,7 +71,7 @@ static void __init init_eval_h7202(void) | |||
71 | 71 | ||
72 | MACHINE_START(H7202, "Hynix HMS30C7202") | 72 | MACHINE_START(H7202, "Hynix HMS30C7202") |
73 | /* Maintainer: Robert Schwebel, Pengutronix */ | 73 | /* Maintainer: Robert Schwebel, Pengutronix */ |
74 | .boot_params = 0x40000100, | 74 | .atag_offset = 0x100, |
75 | .map_io = h720x_map_io, | 75 | .map_io = h720x_map_io, |
76 | .init_irq = h7202_init_irq, | 76 | .init_irq = h7202_init_irq, |
77 | .timer = &h7202_timer, | 77 | .timer = &h7202_timer, |
diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile index e9eb36dad888..6cc821384ccd 100644 --- a/arch/arm/mach-imx/Makefile +++ b/arch/arm/mach-imx/Makefile | |||
@@ -1,16 +1,15 @@ | |||
1 | obj-$(CONFIG_IMX_HAVE_DMA_V1) += dma-v1.o | 1 | obj-$(CONFIG_IMX_HAVE_DMA_V1) += dma-v1.o |
2 | 2 | ||
3 | obj-$(CONFIG_ARCH_MX1) += clock-imx1.o mm-imx1.o | 3 | obj-$(CONFIG_SOC_IMX1) += clock-imx1.o mm-imx1.o |
4 | obj-$(CONFIG_MACH_MX21) += clock-imx21.o mm-imx21.o | 4 | obj-$(CONFIG_SOC_IMX21) += clock-imx21.o mm-imx21.o |
5 | 5 | ||
6 | obj-$(CONFIG_ARCH_MX25) += clock-imx25.o mm-imx25.o ehci-imx25.o | 6 | obj-$(CONFIG_SOC_IMX25) += clock-imx25.o mm-imx25.o ehci-imx25.o |
7 | 7 | ||
8 | obj-$(CONFIG_MACH_MX27) += cpu-imx27.o pm-imx27.o | 8 | obj-$(CONFIG_SOC_IMX27) += cpu-imx27.o pm-imx27.o |
9 | obj-$(CONFIG_MACH_MX27) += clock-imx27.o mm-imx27.o ehci-imx27.o | 9 | obj-$(CONFIG_SOC_IMX27) += clock-imx27.o mm-imx27.o ehci-imx27.o |
10 | 10 | ||
11 | obj-$(CONFIG_SOC_IMX31) += mm-imx31.o cpu-imx31.o clock-imx31.o iomux-imx31.o ehci-imx31.o | 11 | obj-$(CONFIG_SOC_IMX31) += mm-imx3.o cpu-imx31.o clock-imx31.o iomux-imx31.o ehci-imx31.o |
12 | obj-$(CONFIG_SOC_IMX35) += mm-imx35.o cpu-imx35.o clock-imx35.o ehci-imx35.o | 12 | obj-$(CONFIG_SOC_IMX35) += mm-imx3.o cpu-imx35.o clock-imx35.o ehci-imx35.o |
13 | obj-$(CONFIG_CACHE_L2X0) += cache-l2x0.o | ||
14 | 13 | ||
15 | # Support for CMOS sensor interface | 14 | # Support for CMOS sensor interface |
16 | obj-$(CONFIG_MX1_VIDEO) += mx1-camera-fiq.o mx1-camera-fiq-ksym.o | 15 | obj-$(CONFIG_MX1_VIDEO) += mx1-camera-fiq.o mx1-camera-fiq-ksym.o |
diff --git a/arch/arm/mach-imx/cache-l2x0.c b/arch/arm/mach-imx/cache-l2x0.c deleted file mode 100644 index 69d1322add3c..000000000000 --- a/arch/arm/mach-imx/cache-l2x0.c +++ /dev/null | |||
@@ -1,56 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009-2010 Pengutronix | ||
3 | * Sascha Hauer <s.hauer@pengutronix.de> | ||
4 | * Juergen Beisert <j.beisert@pengutronix.de> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify it under | ||
7 | * the terms of the GNU General Public License version 2 as published by the | ||
8 | * Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | #include <linux/init.h> | ||
12 | #include <linux/err.h> | ||
13 | #include <linux/kernel.h> | ||
14 | |||
15 | #include <asm/hardware/cache-l2x0.h> | ||
16 | |||
17 | #include <mach/hardware.h> | ||
18 | |||
19 | static int mxc_init_l2x0(void) | ||
20 | { | ||
21 | void __iomem *l2x0_base; | ||
22 | void __iomem *clkctl_base; | ||
23 | |||
24 | if (!cpu_is_mx31() && !cpu_is_mx35()) | ||
25 | return 0; | ||
26 | |||
27 | /* | ||
28 | * First of all, we must repair broken chip settings. There are some | ||
29 | * i.MX35 CPUs in the wild, comming with bogus L2 cache settings. These | ||
30 | * misconfigured CPUs will run amok immediately when the L2 cache gets enabled. | ||
31 | * Workaraound is to setup the correct register setting prior enabling the | ||
32 | * L2 cache. This should not hurt already working CPUs, as they are using the | ||
33 | * same value. | ||
34 | */ | ||
35 | #define L2_MEM_VAL 0x10 | ||
36 | |||
37 | clkctl_base = ioremap(MX35_CLKCTL_BASE_ADDR, 4096); | ||
38 | if (clkctl_base != NULL) { | ||
39 | writel(0x00000515, clkctl_base + L2_MEM_VAL); | ||
40 | iounmap(clkctl_base); | ||
41 | } else { | ||
42 | pr_err("L2 cache: Cannot fix timing. Trying to continue without\n"); | ||
43 | } | ||
44 | |||
45 | l2x0_base = ioremap(MX3x_L2CC_BASE_ADDR, 4096); | ||
46 | if (IS_ERR(l2x0_base)) { | ||
47 | printk(KERN_ERR "remapping L2 cache area failed with %ld\n", | ||
48 | PTR_ERR(l2x0_base)); | ||
49 | return 0; | ||
50 | } | ||
51 | |||
52 | l2x0_init(l2x0_base, 0x00030024, 0x00000000); | ||
53 | |||
54 | return 0; | ||
55 | } | ||
56 | arch_initcall(mxc_init_l2x0); | ||
diff --git a/arch/arm/mach-imx/mach-armadillo5x0.c b/arch/arm/mach-imx/mach-armadillo5x0.c index ede2710f8b76..fa2b97df5846 100644 --- a/arch/arm/mach-imx/mach-armadillo5x0.c +++ b/arch/arm/mach-imx/mach-armadillo5x0.c | |||
@@ -314,25 +314,19 @@ static struct mtd_partition armadillo5x0_nor_flash_partitions[] = { | |||
314 | }, | 314 | }, |
315 | }; | 315 | }; |
316 | 316 | ||
317 | static struct physmap_flash_data armadillo5x0_nor_flash_pdata = { | 317 | static const struct physmap_flash_data |
318 | armadillo5x0_nor_flash_pdata __initconst = { | ||
318 | .width = 2, | 319 | .width = 2, |
319 | .parts = armadillo5x0_nor_flash_partitions, | 320 | .parts = armadillo5x0_nor_flash_partitions, |
320 | .nr_parts = ARRAY_SIZE(armadillo5x0_nor_flash_partitions), | 321 | .nr_parts = ARRAY_SIZE(armadillo5x0_nor_flash_partitions), |
321 | }; | 322 | }; |
322 | 323 | ||
323 | static struct resource armadillo5x0_nor_flash_resource = { | 324 | static const struct resource armadillo5x0_nor_flash_resource __initconst = { |
324 | .flags = IORESOURCE_MEM, | 325 | .flags = IORESOURCE_MEM, |
325 | .start = MX31_CS0_BASE_ADDR, | 326 | .start = MX31_CS0_BASE_ADDR, |
326 | .end = MX31_CS0_BASE_ADDR + SZ_64M - 1, | 327 | .end = MX31_CS0_BASE_ADDR + SZ_64M - 1, |
327 | }; | 328 | }; |
328 | 329 | ||
329 | static struct platform_device armadillo5x0_nor_flash = { | ||
330 | .name = "physmap-flash", | ||
331 | .id = -1, | ||
332 | .num_resources = 1, | ||
333 | .resource = &armadillo5x0_nor_flash_resource, | ||
334 | }; | ||
335 | |||
336 | /* | 330 | /* |
337 | * FB support | 331 | * FB support |
338 | */ | 332 | */ |
@@ -514,8 +508,10 @@ static void __init armadillo5x0_init(void) | |||
514 | imx31_add_mx3_sdc_fb(&mx3fb_pdata); | 508 | imx31_add_mx3_sdc_fb(&mx3fb_pdata); |
515 | 509 | ||
516 | /* Register NOR Flash */ | 510 | /* Register NOR Flash */ |
517 | mxc_register_device(&armadillo5x0_nor_flash, | 511 | platform_device_register_resndata(NULL, "physmap-flash", -1, |
518 | &armadillo5x0_nor_flash_pdata); | 512 | &armadillo5x0_nor_flash_resource, 1, |
513 | &armadillo5x0_nor_flash_pdata, | ||
514 | sizeof(armadillo5x0_nor_flash_pdata)); | ||
519 | 515 | ||
520 | /* Register NAND Flash */ | 516 | /* Register NAND Flash */ |
521 | imx31_add_mxc_nand(&armadillo5x0_nand_board_info); | 517 | imx31_add_mxc_nand(&armadillo5x0_nand_board_info); |
@@ -558,7 +554,7 @@ static struct sys_timer armadillo5x0_timer = { | |||
558 | 554 | ||
559 | MACHINE_START(ARMADILLO5X0, "Armadillo-500") | 555 | MACHINE_START(ARMADILLO5X0, "Armadillo-500") |
560 | /* Maintainer: Alberto Panizzo */ | 556 | /* Maintainer: Alberto Panizzo */ |
561 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 557 | .atag_offset = 0x100, |
562 | .map_io = mx31_map_io, | 558 | .map_io = mx31_map_io, |
563 | .init_early = imx31_init_early, | 559 | .init_early = imx31_init_early, |
564 | .init_irq = mx31_init_irq, | 560 | .init_irq = mx31_init_irq, |
diff --git a/arch/arm/mach-imx/mach-cpuimx27.c b/arch/arm/mach-imx/mach-cpuimx27.c index f851fe903687..b1ec2cf53bb0 100644 --- a/arch/arm/mach-imx/mach-cpuimx27.c +++ b/arch/arm/mach-imx/mach-cpuimx27.c | |||
@@ -311,7 +311,7 @@ static struct sys_timer eukrea_cpuimx27_timer = { | |||
311 | }; | 311 | }; |
312 | 312 | ||
313 | MACHINE_START(EUKREA_CPUIMX27, "EUKREA CPUIMX27") | 313 | MACHINE_START(EUKREA_CPUIMX27, "EUKREA CPUIMX27") |
314 | .boot_params = MX27_PHYS_OFFSET + 0x100, | 314 | .atag_offset = 0x100, |
315 | .map_io = mx27_map_io, | 315 | .map_io = mx27_map_io, |
316 | .init_early = imx27_init_early, | 316 | .init_early = imx27_init_early, |
317 | .init_irq = mx27_init_irq, | 317 | .init_irq = mx27_init_irq, |
diff --git a/arch/arm/mach-imx/mach-cpuimx35.c b/arch/arm/mach-imx/mach-cpuimx35.c index 4bd083ba9af2..ea6c9c3468a6 100644 --- a/arch/arm/mach-imx/mach-cpuimx35.c +++ b/arch/arm/mach-imx/mach-cpuimx35.c | |||
@@ -66,7 +66,7 @@ static struct i2c_board_info eukrea_cpuimx35_i2c_devices[] = { | |||
66 | I2C_BOARD_INFO("tsc2007", 0x48), | 66 | I2C_BOARD_INFO("tsc2007", 0x48), |
67 | .type = "tsc2007", | 67 | .type = "tsc2007", |
68 | .platform_data = &tsc2007_info, | 68 | .platform_data = &tsc2007_info, |
69 | .irq = gpio_to_irq(TSC2007_IRQGPIO), | 69 | .irq = IMX_GPIO_TO_IRQ(TSC2007_IRQGPIO), |
70 | }, | 70 | }, |
71 | }; | 71 | }; |
72 | 72 | ||
@@ -194,7 +194,7 @@ struct sys_timer eukrea_cpuimx35_timer = { | |||
194 | 194 | ||
195 | MACHINE_START(EUKREA_CPUIMX35SD, "Eukrea CPUIMX35") | 195 | MACHINE_START(EUKREA_CPUIMX35SD, "Eukrea CPUIMX35") |
196 | /* Maintainer: Eukrea Electromatique */ | 196 | /* Maintainer: Eukrea Electromatique */ |
197 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 197 | .atag_offset = 0x100, |
198 | .map_io = mx35_map_io, | 198 | .map_io = mx35_map_io, |
199 | .init_early = imx35_init_early, | 199 | .init_early = imx35_init_early, |
200 | .init_irq = mx35_init_irq, | 200 | .init_irq = mx35_init_irq, |
diff --git a/arch/arm/mach-imx/mach-eukrea_cpuimx25.c b/arch/arm/mach-imx/mach-eukrea_cpuimx25.c index 2442d5da883d..9163318e95a2 100644 --- a/arch/arm/mach-imx/mach-eukrea_cpuimx25.c +++ b/arch/arm/mach-imx/mach-eukrea_cpuimx25.c | |||
@@ -163,7 +163,7 @@ static struct sys_timer eukrea_cpuimx25_timer = { | |||
163 | 163 | ||
164 | MACHINE_START(EUKREA_CPUIMX25SD, "Eukrea CPUIMX25") | 164 | MACHINE_START(EUKREA_CPUIMX25SD, "Eukrea CPUIMX25") |
165 | /* Maintainer: Eukrea Electromatique */ | 165 | /* Maintainer: Eukrea Electromatique */ |
166 | .boot_params = MX25_PHYS_OFFSET + 0x100, | 166 | .atag_offset = 0x100, |
167 | .map_io = mx25_map_io, | 167 | .map_io = mx25_map_io, |
168 | .init_early = imx25_init_early, | 168 | .init_early = imx25_init_early, |
169 | .init_irq = mx25_init_irq, | 169 | .init_irq = mx25_init_irq, |
diff --git a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c index 6778f8193bc6..22306ce28658 100644 --- a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c +++ b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c | |||
@@ -275,7 +275,7 @@ static struct sys_timer visstrim_m10_timer = { | |||
275 | }; | 275 | }; |
276 | 276 | ||
277 | MACHINE_START(IMX27_VISSTRIM_M10, "Vista Silicon Visstrim_M10") | 277 | MACHINE_START(IMX27_VISSTRIM_M10, "Vista Silicon Visstrim_M10") |
278 | .boot_params = MX27_PHYS_OFFSET + 0x100, | 278 | .atag_offset = 0x100, |
279 | .map_io = mx27_map_io, | 279 | .map_io = mx27_map_io, |
280 | .init_early = imx27_init_early, | 280 | .init_early = imx27_init_early, |
281 | .init_irq = mx27_init_irq, | 281 | .init_irq = mx27_init_irq, |
diff --git a/arch/arm/mach-imx/mach-imx27ipcam.c b/arch/arm/mach-imx/mach-imx27ipcam.c index 272f793e9247..8da48b33fc53 100644 --- a/arch/arm/mach-imx/mach-imx27ipcam.c +++ b/arch/arm/mach-imx/mach-imx27ipcam.c | |||
@@ -71,7 +71,7 @@ static struct sys_timer mx27ipcam_timer = { | |||
71 | 71 | ||
72 | MACHINE_START(IMX27IPCAM, "Freescale IMX27IPCAM") | 72 | MACHINE_START(IMX27IPCAM, "Freescale IMX27IPCAM") |
73 | /* maintainer: Freescale Semiconductor, Inc. */ | 73 | /* maintainer: Freescale Semiconductor, Inc. */ |
74 | .boot_params = MX27_PHYS_OFFSET + 0x100, | 74 | .atag_offset = 0x100, |
75 | .map_io = mx27_map_io, | 75 | .map_io = mx27_map_io, |
76 | .init_early = imx27_init_early, | 76 | .init_early = imx27_init_early, |
77 | .init_irq = mx27_init_irq, | 77 | .init_irq = mx27_init_irq, |
diff --git a/arch/arm/mach-imx/mach-imx27lite.c b/arch/arm/mach-imx/mach-imx27lite.c index d81a769fe895..21a14a20e2c3 100644 --- a/arch/arm/mach-imx/mach-imx27lite.c +++ b/arch/arm/mach-imx/mach-imx27lite.c | |||
@@ -77,7 +77,7 @@ static struct sys_timer mx27lite_timer = { | |||
77 | }; | 77 | }; |
78 | 78 | ||
79 | MACHINE_START(IMX27LITE, "LogicPD i.MX27LITE") | 79 | MACHINE_START(IMX27LITE, "LogicPD i.MX27LITE") |
80 | .boot_params = MX27_PHYS_OFFSET + 0x100, | 80 | .atag_offset = 0x100, |
81 | .map_io = mx27_map_io, | 81 | .map_io = mx27_map_io, |
82 | .init_early = imx27_init_early, | 82 | .init_early = imx27_init_early, |
83 | .init_irq = mx27_init_irq, | 83 | .init_irq = mx27_init_irq, |
diff --git a/arch/arm/mach-imx/mach-kzm_arm11_01.c b/arch/arm/mach-imx/mach-kzm_arm11_01.c index e472a1d88058..7c20e9e58006 100644 --- a/arch/arm/mach-imx/mach-kzm_arm11_01.c +++ b/arch/arm/mach-imx/mach-kzm_arm11_01.c | |||
@@ -271,7 +271,7 @@ static struct sys_timer kzm_timer = { | |||
271 | }; | 271 | }; |
272 | 272 | ||
273 | MACHINE_START(KZM_ARM11_01, "Kyoto Microcomputer Co., Ltd. KZM-ARM11-01") | 273 | MACHINE_START(KZM_ARM11_01, "Kyoto Microcomputer Co., Ltd. KZM-ARM11-01") |
274 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 274 | .atag_offset = 0x100, |
275 | .map_io = kzm_map_io, | 275 | .map_io = kzm_map_io, |
276 | .init_early = imx31_init_early, | 276 | .init_early = imx31_init_early, |
277 | .init_irq = mx31_init_irq, | 277 | .init_irq = mx31_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mx1ads.c b/arch/arm/mach-imx/mach-mx1ads.c index 5cd8bee46960..b4a5e0382634 100644 --- a/arch/arm/mach-imx/mach-mx1ads.c +++ b/arch/arm/mach-imx/mach-mx1ads.c | |||
@@ -68,23 +68,16 @@ static const struct imxuart_platform_data uart1_pdata __initconst = { | |||
68 | * Physmap flash | 68 | * Physmap flash |
69 | */ | 69 | */ |
70 | 70 | ||
71 | static struct physmap_flash_data mx1ads_flash_data = { | 71 | static const struct physmap_flash_data mx1ads_flash_data __initconst = { |
72 | .width = 4, /* bankwidth in bytes */ | 72 | .width = 4, /* bankwidth in bytes */ |
73 | }; | 73 | }; |
74 | 74 | ||
75 | static struct resource flash_resource = { | 75 | static const struct resource flash_resource __initconst = { |
76 | .start = MX1_CS0_PHYS, | 76 | .start = MX1_CS0_PHYS, |
77 | .end = MX1_CS0_PHYS + SZ_32M - 1, | 77 | .end = MX1_CS0_PHYS + SZ_32M - 1, |
78 | .flags = IORESOURCE_MEM, | 78 | .flags = IORESOURCE_MEM, |
79 | }; | 79 | }; |
80 | 80 | ||
81 | static struct platform_device flash_device = { | ||
82 | .name = "physmap-flash", | ||
83 | .id = 0, | ||
84 | .resource = &flash_resource, | ||
85 | .num_resources = 1, | ||
86 | }; | ||
87 | |||
88 | /* | 81 | /* |
89 | * I2C | 82 | * I2C |
90 | */ | 83 | */ |
@@ -125,7 +118,9 @@ static void __init mx1ads_init(void) | |||
125 | imx1_add_imx_uart1(&uart1_pdata); | 118 | imx1_add_imx_uart1(&uart1_pdata); |
126 | 119 | ||
127 | /* Physmap flash */ | 120 | /* Physmap flash */ |
128 | mxc_register_device(&flash_device, &mx1ads_flash_data); | 121 | platform_device_register_resndata(NULL, "physmap-flash", 0, |
122 | &flash_resource, 1, | ||
123 | &mx1ads_flash_data, sizeof(mx1ads_flash_data)); | ||
129 | 124 | ||
130 | /* I2C */ | 125 | /* I2C */ |
131 | i2c_register_board_info(0, mx1ads_i2c_devices, | 126 | i2c_register_board_info(0, mx1ads_i2c_devices, |
@@ -145,7 +140,7 @@ struct sys_timer mx1ads_timer = { | |||
145 | 140 | ||
146 | MACHINE_START(MX1ADS, "Freescale MX1ADS") | 141 | MACHINE_START(MX1ADS, "Freescale MX1ADS") |
147 | /* Maintainer: Sascha Hauer, Pengutronix */ | 142 | /* Maintainer: Sascha Hauer, Pengutronix */ |
148 | .boot_params = MX1_PHYS_OFFSET + 0x100, | 143 | .atag_offset = 0x100, |
149 | .map_io = mx1_map_io, | 144 | .map_io = mx1_map_io, |
150 | .init_early = imx1_init_early, | 145 | .init_early = imx1_init_early, |
151 | .init_irq = mx1_init_irq, | 146 | .init_irq = mx1_init_irq, |
@@ -154,7 +149,7 @@ MACHINE_START(MX1ADS, "Freescale MX1ADS") | |||
154 | MACHINE_END | 149 | MACHINE_END |
155 | 150 | ||
156 | MACHINE_START(MXLADS, "Freescale MXLADS") | 151 | MACHINE_START(MXLADS, "Freescale MXLADS") |
157 | .boot_params = MX1_PHYS_OFFSET + 0x100, | 152 | .atag_offset = 0x100, |
158 | .map_io = mx1_map_io, | 153 | .map_io = mx1_map_io, |
159 | .init_early = imx1_init_early, | 154 | .init_early = imx1_init_early, |
160 | .init_irq = mx1_init_irq, | 155 | .init_irq = mx1_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mx21ads.c b/arch/arm/mach-imx/mach-mx21ads.c index d389ecf9b5a8..e56828da26b2 100644 --- a/arch/arm/mach-imx/mach-mx21ads.c +++ b/arch/arm/mach-imx/mach-mx21ads.c | |||
@@ -305,7 +305,7 @@ static struct sys_timer mx21ads_timer = { | |||
305 | 305 | ||
306 | MACHINE_START(MX21ADS, "Freescale i.MX21ADS") | 306 | MACHINE_START(MX21ADS, "Freescale i.MX21ADS") |
307 | /* maintainer: Freescale Semiconductor, Inc. */ | 307 | /* maintainer: Freescale Semiconductor, Inc. */ |
308 | .boot_params = MX21_PHYS_OFFSET + 0x100, | 308 | .atag_offset = 0x100, |
309 | .map_io = mx21ads_map_io, | 309 | .map_io = mx21ads_map_io, |
310 | .init_early = imx21_init_early, | 310 | .init_early = imx21_init_early, |
311 | .init_irq = mx21_init_irq, | 311 | .init_irq = mx21_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mx25_3ds.c b/arch/arm/mach-imx/mach-mx25_3ds.c index 7f66a91df361..dd25ee82e70a 100644 --- a/arch/arm/mach-imx/mach-mx25_3ds.c +++ b/arch/arm/mach-imx/mach-mx25_3ds.c | |||
@@ -253,7 +253,7 @@ static struct sys_timer mx25pdk_timer = { | |||
253 | 253 | ||
254 | MACHINE_START(MX25_3DS, "Freescale MX25PDK (3DS)") | 254 | MACHINE_START(MX25_3DS, "Freescale MX25PDK (3DS)") |
255 | /* Maintainer: Freescale Semiconductor, Inc. */ | 255 | /* Maintainer: Freescale Semiconductor, Inc. */ |
256 | .boot_params = MX25_PHYS_OFFSET + 0x100, | 256 | .atag_offset = 0x100, |
257 | .map_io = mx25_map_io, | 257 | .map_io = mx25_map_io, |
258 | .init_early = imx25_init_early, | 258 | .init_early = imx25_init_early, |
259 | .init_irq = mx25_init_irq, | 259 | .init_irq = mx25_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mx27_3ds.c b/arch/arm/mach-imx/mach-mx27_3ds.c index 6fa6934ab150..bcf480b8a9f8 100644 --- a/arch/arm/mach-imx/mach-mx27_3ds.c +++ b/arch/arm/mach-imx/mach-mx27_3ds.c | |||
@@ -359,7 +359,7 @@ static struct spi_board_info mx27_3ds_spi_devs[] __initdata = { | |||
359 | .bus_num = 1, | 359 | .bus_num = 1, |
360 | .chip_select = 0, /* SS0 */ | 360 | .chip_select = 0, /* SS0 */ |
361 | .platform_data = &mc13783_pdata, | 361 | .platform_data = &mc13783_pdata, |
362 | .irq = gpio_to_irq(PMIC_INT), | 362 | .irq = IMX_GPIO_TO_IRQ(PMIC_INT), |
363 | .mode = SPI_CS_HIGH, | 363 | .mode = SPI_CS_HIGH, |
364 | }, { | 364 | }, { |
365 | .modalias = "l4f00242t03", | 365 | .modalias = "l4f00242t03", |
@@ -421,7 +421,7 @@ static struct sys_timer mx27pdk_timer = { | |||
421 | 421 | ||
422 | MACHINE_START(MX27_3DS, "Freescale MX27PDK") | 422 | MACHINE_START(MX27_3DS, "Freescale MX27PDK") |
423 | /* maintainer: Freescale Semiconductor, Inc. */ | 423 | /* maintainer: Freescale Semiconductor, Inc. */ |
424 | .boot_params = MX27_PHYS_OFFSET + 0x100, | 424 | .atag_offset = 0x100, |
425 | .map_io = mx27_map_io, | 425 | .map_io = mx27_map_io, |
426 | .init_early = imx27_init_early, | 426 | .init_early = imx27_init_early, |
427 | .init_irq = mx27_init_irq, | 427 | .init_irq = mx27_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mx27ads.c b/arch/arm/mach-imx/mach-mx27ads.c index fc26ed71b9ed..efe6109099fd 100644 --- a/arch/arm/mach-imx/mach-mx27ads.c +++ b/arch/arm/mach-imx/mach-mx27ads.c | |||
@@ -345,7 +345,7 @@ static void __init mx27ads_map_io(void) | |||
345 | 345 | ||
346 | MACHINE_START(MX27ADS, "Freescale i.MX27ADS") | 346 | MACHINE_START(MX27ADS, "Freescale i.MX27ADS") |
347 | /* maintainer: Freescale Semiconductor, Inc. */ | 347 | /* maintainer: Freescale Semiconductor, Inc. */ |
348 | .boot_params = MX27_PHYS_OFFSET + 0x100, | 348 | .atag_offset = 0x100, |
349 | .map_io = mx27ads_map_io, | 349 | .map_io = mx27ads_map_io, |
350 | .init_early = imx27_init_early, | 350 | .init_early = imx27_init_early, |
351 | .init_irq = mx27_init_irq, | 351 | .init_irq = mx27_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mx31_3ds.c b/arch/arm/mach-imx/mach-mx31_3ds.c index c20be7530927..589066fb3316 100644 --- a/arch/arm/mach-imx/mach-mx31_3ds.c +++ b/arch/arm/mach-imx/mach-mx31_3ds.c | |||
@@ -764,7 +764,7 @@ static void __init mx31_3ds_reserve(void) | |||
764 | 764 | ||
765 | MACHINE_START(MX31_3DS, "Freescale MX31PDK (3DS)") | 765 | MACHINE_START(MX31_3DS, "Freescale MX31PDK (3DS)") |
766 | /* Maintainer: Freescale Semiconductor, Inc. */ | 766 | /* Maintainer: Freescale Semiconductor, Inc. */ |
767 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 767 | .atag_offset = 0x100, |
768 | .map_io = mx31_map_io, | 768 | .map_io = mx31_map_io, |
769 | .init_early = imx31_init_early, | 769 | .init_early = imx31_init_early, |
770 | .init_irq = mx31_init_irq, | 770 | .init_irq = mx31_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mx31ads.c b/arch/arm/mach-imx/mach-mx31ads.c index 29ca8907a780..910c4561d35f 100644 --- a/arch/arm/mach-imx/mach-mx31ads.c +++ b/arch/arm/mach-imx/mach-mx31ads.c | |||
@@ -535,7 +535,7 @@ static struct sys_timer mx31ads_timer = { | |||
535 | 535 | ||
536 | MACHINE_START(MX31ADS, "Freescale MX31ADS") | 536 | MACHINE_START(MX31ADS, "Freescale MX31ADS") |
537 | /* Maintainer: Freescale Semiconductor, Inc. */ | 537 | /* Maintainer: Freescale Semiconductor, Inc. */ |
538 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 538 | .atag_offset = 0x100, |
539 | .map_io = mx31ads_map_io, | 539 | .map_io = mx31ads_map_io, |
540 | .init_early = imx31_init_early, | 540 | .init_early = imx31_init_early, |
541 | .init_irq = mx31ads_init_irq, | 541 | .init_irq = mx31ads_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mx31lilly.c b/arch/arm/mach-imx/mach-mx31lilly.c index 126913ad106a..e92eaf91a7be 100644 --- a/arch/arm/mach-imx/mach-mx31lilly.c +++ b/arch/arm/mach-imx/mach-mx31lilly.c | |||
@@ -295,7 +295,7 @@ static struct sys_timer mx31lilly_timer = { | |||
295 | }; | 295 | }; |
296 | 296 | ||
297 | MACHINE_START(LILLY1131, "INCO startec LILLY-1131") | 297 | MACHINE_START(LILLY1131, "INCO startec LILLY-1131") |
298 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 298 | .atag_offset = 0x100, |
299 | .map_io = mx31_map_io, | 299 | .map_io = mx31_map_io, |
300 | .init_early = imx31_init_early, | 300 | .init_early = imx31_init_early, |
301 | .init_irq = mx31_init_irq, | 301 | .init_irq = mx31_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mx31lite.c b/arch/arm/mach-imx/mach-mx31lite.c index 4b47fd9fdd89..5242cb78b563 100644 --- a/arch/arm/mach-imx/mach-mx31lite.c +++ b/arch/arm/mach-imx/mach-mx31lite.c | |||
@@ -280,7 +280,7 @@ struct sys_timer mx31lite_timer = { | |||
280 | 280 | ||
281 | MACHINE_START(MX31LITE, "LogicPD i.MX31 SOM") | 281 | MACHINE_START(MX31LITE, "LogicPD i.MX31 SOM") |
282 | /* Maintainer: Freescale Semiconductor, Inc. */ | 282 | /* Maintainer: Freescale Semiconductor, Inc. */ |
283 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 283 | .atag_offset = 0x100, |
284 | .map_io = mx31lite_map_io, | 284 | .map_io = mx31lite_map_io, |
285 | .init_early = imx31_init_early, | 285 | .init_early = imx31_init_early, |
286 | .init_irq = mx31_init_irq, | 286 | .init_irq = mx31_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mx31moboard.c b/arch/arm/mach-imx/mach-mx31moboard.c index b358383120e7..1d01ef28f25d 100644 --- a/arch/arm/mach-imx/mach-mx31moboard.c +++ b/arch/arm/mach-imx/mach-mx31moboard.c | |||
@@ -567,7 +567,7 @@ static void __init mx31moboard_reserve(void) | |||
567 | 567 | ||
568 | MACHINE_START(MX31MOBOARD, "EPFL Mobots mx31moboard") | 568 | MACHINE_START(MX31MOBOARD, "EPFL Mobots mx31moboard") |
569 | /* Maintainer: Valentin Longchamp, EPFL Mobots group */ | 569 | /* Maintainer: Valentin Longchamp, EPFL Mobots group */ |
570 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 570 | .atag_offset = 0x100, |
571 | .reserve = mx31moboard_reserve, | 571 | .reserve = mx31moboard_reserve, |
572 | .map_io = mx31_map_io, | 572 | .map_io = mx31_map_io, |
573 | .init_early = imx31_init_early, | 573 | .init_early = imx31_init_early, |
diff --git a/arch/arm/mach-imx/mach-mx35_3ds.c b/arch/arm/mach-imx/mach-mx35_3ds.c index b3b9bd8ac2a3..f2a873dc08ce 100644 --- a/arch/arm/mach-imx/mach-mx35_3ds.c +++ b/arch/arm/mach-imx/mach-mx35_3ds.c | |||
@@ -217,7 +217,7 @@ struct sys_timer mx35pdk_timer = { | |||
217 | 217 | ||
218 | MACHINE_START(MX35_3DS, "Freescale MX35PDK") | 218 | MACHINE_START(MX35_3DS, "Freescale MX35PDK") |
219 | /* Maintainer: Freescale Semiconductor, Inc */ | 219 | /* Maintainer: Freescale Semiconductor, Inc */ |
220 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 220 | .atag_offset = 0x100, |
221 | .map_io = mx35_map_io, | 221 | .map_io = mx35_map_io, |
222 | .init_early = imx35_init_early, | 222 | .init_early = imx35_init_early, |
223 | .init_irq = mx35_init_irq, | 223 | .init_irq = mx35_init_irq, |
diff --git a/arch/arm/mach-imx/mach-mxt_td60.c b/arch/arm/mach-imx/mach-mxt_td60.c index c85876fed663..5ec3989704fd 100644 --- a/arch/arm/mach-imx/mach-mxt_td60.c +++ b/arch/arm/mach-imx/mach-mxt_td60.c | |||
@@ -267,7 +267,7 @@ static struct sys_timer mxt_td60_timer = { | |||
267 | 267 | ||
268 | MACHINE_START(MXT_TD60, "Maxtrack i-MXT TD60") | 268 | MACHINE_START(MXT_TD60, "Maxtrack i-MXT TD60") |
269 | /* maintainer: Maxtrack Industrial */ | 269 | /* maintainer: Maxtrack Industrial */ |
270 | .boot_params = MX27_PHYS_OFFSET + 0x100, | 270 | .atag_offset = 0x100, |
271 | .map_io = mx27_map_io, | 271 | .map_io = mx27_map_io, |
272 | .init_early = imx27_init_early, | 272 | .init_early = imx27_init_early, |
273 | .init_irq = mx27_init_irq, | 273 | .init_irq = mx27_init_irq, |
diff --git a/arch/arm/mach-imx/mach-pca100.c b/arch/arm/mach-imx/mach-pca100.c index 71083aa16038..0f6bd1199038 100644 --- a/arch/arm/mach-imx/mach-pca100.c +++ b/arch/arm/mach-imx/mach-pca100.c | |||
@@ -435,7 +435,7 @@ static struct sys_timer pca100_timer = { | |||
435 | }; | 435 | }; |
436 | 436 | ||
437 | MACHINE_START(PCA100, "phyCARD-i.MX27") | 437 | MACHINE_START(PCA100, "phyCARD-i.MX27") |
438 | .boot_params = MX27_PHYS_OFFSET + 0x100, | 438 | .atag_offset = 0x100, |
439 | .map_io = mx27_map_io, | 439 | .map_io = mx27_map_io, |
440 | .init_early = imx27_init_early, | 440 | .init_early = imx27_init_early, |
441 | .init_irq = mx27_init_irq, | 441 | .init_irq = mx27_init_irq, |
diff --git a/arch/arm/mach-imx/mach-pcm037.c b/arch/arm/mach-imx/mach-pcm037.c index f45b7cd72c8a..186d4eb90796 100644 --- a/arch/arm/mach-imx/mach-pcm037.c +++ b/arch/arm/mach-imx/mach-pcm037.c | |||
@@ -688,7 +688,7 @@ static void __init pcm037_reserve(void) | |||
688 | 688 | ||
689 | MACHINE_START(PCM037, "Phytec Phycore pcm037") | 689 | MACHINE_START(PCM037, "Phytec Phycore pcm037") |
690 | /* Maintainer: Pengutronix */ | 690 | /* Maintainer: Pengutronix */ |
691 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 691 | .atag_offset = 0x100, |
692 | .reserve = pcm037_reserve, | 692 | .reserve = pcm037_reserve, |
693 | .map_io = mx31_map_io, | 693 | .map_io = mx31_map_io, |
694 | .init_early = imx31_init_early, | 694 | .init_early = imx31_init_early, |
diff --git a/arch/arm/mach-imx/mach-pcm038.c b/arch/arm/mach-imx/mach-pcm038.c index 2d6a64bbac44..091bcf87e1a0 100644 --- a/arch/arm/mach-imx/mach-pcm038.c +++ b/arch/arm/mach-imx/mach-pcm038.c | |||
@@ -349,7 +349,7 @@ static struct sys_timer pcm038_timer = { | |||
349 | }; | 349 | }; |
350 | 350 | ||
351 | MACHINE_START(PCM038, "phyCORE-i.MX27") | 351 | MACHINE_START(PCM038, "phyCORE-i.MX27") |
352 | .boot_params = MX27_PHYS_OFFSET + 0x100, | 352 | .atag_offset = 0x100, |
353 | .map_io = mx27_map_io, | 353 | .map_io = mx27_map_io, |
354 | .init_early = imx27_init_early, | 354 | .init_early = imx27_init_early, |
355 | .init_irq = mx27_init_irq, | 355 | .init_irq = mx27_init_irq, |
diff --git a/arch/arm/mach-imx/mach-pcm043.c b/arch/arm/mach-imx/mach-pcm043.c index 660ec3e80cf8..0a4d31de7738 100644 --- a/arch/arm/mach-imx/mach-pcm043.c +++ b/arch/arm/mach-imx/mach-pcm043.c | |||
@@ -418,7 +418,7 @@ struct sys_timer pcm043_timer = { | |||
418 | 418 | ||
419 | MACHINE_START(PCM043, "Phytec Phycore pcm043") | 419 | MACHINE_START(PCM043, "Phytec Phycore pcm043") |
420 | /* Maintainer: Pengutronix */ | 420 | /* Maintainer: Pengutronix */ |
421 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 421 | .atag_offset = 0x100, |
422 | .map_io = mx35_map_io, | 422 | .map_io = mx35_map_io, |
423 | .init_early = imx35_init_early, | 423 | .init_early = imx35_init_early, |
424 | .init_irq = mx35_init_irq, | 424 | .init_irq = mx35_init_irq, |
diff --git a/arch/arm/mach-imx/mach-qong.c b/arch/arm/mach-imx/mach-qong.c index 3626f486498a..9e11359c324c 100644 --- a/arch/arm/mach-imx/mach-qong.c +++ b/arch/arm/mach-imx/mach-qong.c | |||
@@ -262,7 +262,7 @@ static struct sys_timer qong_timer = { | |||
262 | 262 | ||
263 | MACHINE_START(QONG, "Dave/DENX QongEVB-LITE") | 263 | MACHINE_START(QONG, "Dave/DENX QongEVB-LITE") |
264 | /* Maintainer: DENX Software Engineering GmbH */ | 264 | /* Maintainer: DENX Software Engineering GmbH */ |
265 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 265 | .atag_offset = 0x100, |
266 | .map_io = mx31_map_io, | 266 | .map_io = mx31_map_io, |
267 | .init_early = imx31_init_early, | 267 | .init_early = imx31_init_early, |
268 | .init_irq = mx31_init_irq, | 268 | .init_irq = mx31_init_irq, |
diff --git a/arch/arm/mach-imx/mach-scb9328.c b/arch/arm/mach-imx/mach-scb9328.c index db2d60470e15..85d32845ee1e 100644 --- a/arch/arm/mach-imx/mach-scb9328.c +++ b/arch/arm/mach-imx/mach-scb9328.c | |||
@@ -137,7 +137,7 @@ static struct sys_timer scb9328_timer = { | |||
137 | 137 | ||
138 | MACHINE_START(SCB9328, "Synertronixx scb9328") | 138 | MACHINE_START(SCB9328, "Synertronixx scb9328") |
139 | /* Sascha Hauer */ | 139 | /* Sascha Hauer */ |
140 | .boot_params = 0x08000100, | 140 | .atag_offset = 100, |
141 | .map_io = mx1_map_io, | 141 | .map_io = mx1_map_io, |
142 | .init_early = imx1_init_early, | 142 | .init_early = imx1_init_early, |
143 | .init_irq = mx1_init_irq, | 143 | .init_irq = mx1_init_irq, |
diff --git a/arch/arm/mach-imx/mach-vpr200.c b/arch/arm/mach-imx/mach-vpr200.c index 7d8e012a6335..5250283479e7 100644 --- a/arch/arm/mach-imx/mach-vpr200.c +++ b/arch/arm/mach-imx/mach-vpr200.c | |||
@@ -162,7 +162,7 @@ static struct i2c_board_info vpr200_i2c_devices[] = { | |||
162 | }, { | 162 | }, { |
163 | I2C_BOARD_INFO("mc13892", 0x08), | 163 | I2C_BOARD_INFO("mc13892", 0x08), |
164 | .platform_data = &vpr200_pmic, | 164 | .platform_data = &vpr200_pmic, |
165 | .irq = gpio_to_irq(GPIO_PMIC_INT), | 165 | .irq = IMX_GPIO_TO_IRQ(GPIO_PMIC_INT), |
166 | } | 166 | } |
167 | }; | 167 | }; |
168 | 168 | ||
diff --git a/arch/arm/mach-imx/mm-imx3.c b/arch/arm/mach-imx/mm-imx3.c new file mode 100644 index 000000000000..9f0e82ec3398 --- /dev/null +++ b/arch/arm/mach-imx/mm-imx3.c | |||
@@ -0,0 +1,256 @@ | |||
1 | /* | ||
2 | * Copyright (C) 1999,2000 Arm Limited | ||
3 | * Copyright (C) 2000 Deep Blue Solutions Ltd | ||
4 | * Copyright (C) 2002 Shane Nay (shane@minirl.com) | ||
5 | * Copyright 2005-2007 Freescale Semiconductor, Inc. All Rights Reserved. | ||
6 | * - add MX31 specific definitions | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License as published by | ||
10 | * the Free Software Foundation; either version 2 of the License, or | ||
11 | * (at your option) any later version. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, | ||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | * GNU General Public License for more details. | ||
17 | */ | ||
18 | |||
19 | #include <linux/mm.h> | ||
20 | #include <linux/init.h> | ||
21 | #include <linux/err.h> | ||
22 | |||
23 | #include <asm/pgtable.h> | ||
24 | #include <asm/hardware/cache-l2x0.h> | ||
25 | #include <asm/mach/map.h> | ||
26 | |||
27 | #include <mach/common.h> | ||
28 | #include <mach/devices-common.h> | ||
29 | #include <mach/hardware.h> | ||
30 | #include <mach/iomux-v3.h> | ||
31 | #include <mach/irqs.h> | ||
32 | |||
33 | static void imx3_idle(void) | ||
34 | { | ||
35 | unsigned long reg = 0; | ||
36 | __asm__ __volatile__( | ||
37 | /* disable I and D cache */ | ||
38 | "mrc p15, 0, %0, c1, c0, 0\n" | ||
39 | "bic %0, %0, #0x00001000\n" | ||
40 | "bic %0, %0, #0x00000004\n" | ||
41 | "mcr p15, 0, %0, c1, c0, 0\n" | ||
42 | /* invalidate I cache */ | ||
43 | "mov %0, #0\n" | ||
44 | "mcr p15, 0, %0, c7, c5, 0\n" | ||
45 | /* clear and invalidate D cache */ | ||
46 | "mov %0, #0\n" | ||
47 | "mcr p15, 0, %0, c7, c14, 0\n" | ||
48 | /* WFI */ | ||
49 | "mov %0, #0\n" | ||
50 | "mcr p15, 0, %0, c7, c0, 4\n" | ||
51 | "nop\n" "nop\n" "nop\n" "nop\n" | ||
52 | "nop\n" "nop\n" "nop\n" | ||
53 | /* enable I and D cache */ | ||
54 | "mrc p15, 0, %0, c1, c0, 0\n" | ||
55 | "orr %0, %0, #0x00001000\n" | ||
56 | "orr %0, %0, #0x00000004\n" | ||
57 | "mcr p15, 0, %0, c1, c0, 0\n" | ||
58 | : "=r" (reg)); | ||
59 | } | ||
60 | |||
61 | static void __iomem *imx3_ioremap(unsigned long phys_addr, size_t size, | ||
62 | unsigned int mtype) | ||
63 | { | ||
64 | if (mtype == MT_DEVICE) { | ||
65 | /* | ||
66 | * Access all peripherals below 0x80000000 as nonshared device | ||
67 | * on mx3, but leave l2cc alone. Otherwise cache corruptions | ||
68 | * can occur. | ||
69 | */ | ||
70 | if (phys_addr < 0x80000000 && | ||
71 | !addr_in_module(phys_addr, MX3x_L2CC)) | ||
72 | mtype = MT_DEVICE_NONSHARED; | ||
73 | } | ||
74 | |||
75 | return __arm_ioremap(phys_addr, size, mtype); | ||
76 | } | ||
77 | |||
78 | void imx3_init_l2x0(void) | ||
79 | { | ||
80 | void __iomem *l2x0_base; | ||
81 | void __iomem *clkctl_base; | ||
82 | |||
83 | /* | ||
84 | * First of all, we must repair broken chip settings. There are some | ||
85 | * i.MX35 CPUs in the wild, comming with bogus L2 cache settings. These | ||
86 | * misconfigured CPUs will run amok immediately when the L2 cache gets enabled. | ||
87 | * Workaraound is to setup the correct register setting prior enabling the | ||
88 | * L2 cache. This should not hurt already working CPUs, as they are using the | ||
89 | * same value. | ||
90 | */ | ||
91 | #define L2_MEM_VAL 0x10 | ||
92 | |||
93 | clkctl_base = ioremap(MX35_CLKCTL_BASE_ADDR, 4096); | ||
94 | if (clkctl_base != NULL) { | ||
95 | writel(0x00000515, clkctl_base + L2_MEM_VAL); | ||
96 | iounmap(clkctl_base); | ||
97 | } else { | ||
98 | pr_err("L2 cache: Cannot fix timing. Trying to continue without\n"); | ||
99 | } | ||
100 | |||
101 | l2x0_base = ioremap(MX3x_L2CC_BASE_ADDR, 4096); | ||
102 | if (IS_ERR(l2x0_base)) { | ||
103 | printk(KERN_ERR "remapping L2 cache area failed with %ld\n", | ||
104 | PTR_ERR(l2x0_base)); | ||
105 | return; | ||
106 | } | ||
107 | |||
108 | l2x0_init(l2x0_base, 0x00030024, 0x00000000); | ||
109 | } | ||
110 | |||
111 | static struct map_desc mx31_io_desc[] __initdata = { | ||
112 | imx_map_entry(MX31, X_MEMC, MT_DEVICE), | ||
113 | imx_map_entry(MX31, AVIC, MT_DEVICE_NONSHARED), | ||
114 | imx_map_entry(MX31, AIPS1, MT_DEVICE_NONSHARED), | ||
115 | imx_map_entry(MX31, AIPS2, MT_DEVICE_NONSHARED), | ||
116 | imx_map_entry(MX31, SPBA0, MT_DEVICE_NONSHARED), | ||
117 | }; | ||
118 | |||
119 | /* | ||
120 | * This function initializes the memory map. It is called during the | ||
121 | * system startup to create static physical to virtual memory mappings | ||
122 | * for the IO modules. | ||
123 | */ | ||
124 | void __init mx31_map_io(void) | ||
125 | { | ||
126 | iotable_init(mx31_io_desc, ARRAY_SIZE(mx31_io_desc)); | ||
127 | } | ||
128 | |||
129 | static struct map_desc mx35_io_desc[] __initdata = { | ||
130 | imx_map_entry(MX35, X_MEMC, MT_DEVICE), | ||
131 | imx_map_entry(MX35, AVIC, MT_DEVICE_NONSHARED), | ||
132 | imx_map_entry(MX35, AIPS1, MT_DEVICE_NONSHARED), | ||
133 | imx_map_entry(MX35, AIPS2, MT_DEVICE_NONSHARED), | ||
134 | imx_map_entry(MX35, SPBA0, MT_DEVICE_NONSHARED), | ||
135 | }; | ||
136 | |||
137 | void __init mx35_map_io(void) | ||
138 | { | ||
139 | iotable_init(mx35_io_desc, ARRAY_SIZE(mx35_io_desc)); | ||
140 | } | ||
141 | |||
142 | void __init imx31_init_early(void) | ||
143 | { | ||
144 | mxc_set_cpu_type(MXC_CPU_MX31); | ||
145 | mxc_arch_reset_init(MX31_IO_ADDRESS(MX31_WDOG_BASE_ADDR)); | ||
146 | imx_idle = imx3_idle; | ||
147 | imx_ioremap = imx3_ioremap; | ||
148 | } | ||
149 | |||
150 | void __init imx35_init_early(void) | ||
151 | { | ||
152 | mxc_set_cpu_type(MXC_CPU_MX35); | ||
153 | mxc_iomux_v3_init(MX35_IO_ADDRESS(MX35_IOMUXC_BASE_ADDR)); | ||
154 | mxc_arch_reset_init(MX35_IO_ADDRESS(MX35_WDOG_BASE_ADDR)); | ||
155 | imx_idle = imx3_idle; | ||
156 | imx_ioremap = imx3_ioremap; | ||
157 | } | ||
158 | |||
159 | void __init mx31_init_irq(void) | ||
160 | { | ||
161 | mxc_init_irq(MX31_IO_ADDRESS(MX31_AVIC_BASE_ADDR)); | ||
162 | } | ||
163 | |||
164 | void __init mx35_init_irq(void) | ||
165 | { | ||
166 | mxc_init_irq(MX35_IO_ADDRESS(MX35_AVIC_BASE_ADDR)); | ||
167 | } | ||
168 | |||
169 | static struct sdma_script_start_addrs imx31_to1_sdma_script __initdata = { | ||
170 | .per_2_per_addr = 1677, | ||
171 | }; | ||
172 | |||
173 | static struct sdma_script_start_addrs imx31_to2_sdma_script __initdata = { | ||
174 | .ap_2_ap_addr = 423, | ||
175 | .ap_2_bp_addr = 829, | ||
176 | .bp_2_ap_addr = 1029, | ||
177 | }; | ||
178 | |||
179 | static struct sdma_platform_data imx31_sdma_pdata __initdata = { | ||
180 | .fw_name = "sdma-imx31-to2.bin", | ||
181 | .script_addrs = &imx31_to2_sdma_script, | ||
182 | }; | ||
183 | |||
184 | void __init imx31_soc_init(void) | ||
185 | { | ||
186 | int to_version = mx31_revision() >> 4; | ||
187 | |||
188 | imx3_init_l2x0(); | ||
189 | |||
190 | mxc_register_gpio("imx31-gpio", 0, MX31_GPIO1_BASE_ADDR, SZ_16K, MX31_INT_GPIO1, 0); | ||
191 | mxc_register_gpio("imx31-gpio", 1, MX31_GPIO2_BASE_ADDR, SZ_16K, MX31_INT_GPIO2, 0); | ||
192 | mxc_register_gpio("imx31-gpio", 2, MX31_GPIO3_BASE_ADDR, SZ_16K, MX31_INT_GPIO3, 0); | ||
193 | |||
194 | if (to_version == 1) { | ||
195 | strncpy(imx31_sdma_pdata.fw_name, "sdma-imx31-to1.bin", | ||
196 | strlen(imx31_sdma_pdata.fw_name)); | ||
197 | imx31_sdma_pdata.script_addrs = &imx31_to1_sdma_script; | ||
198 | } | ||
199 | |||
200 | imx_add_imx_sdma("imx31-sdma", MX31_SDMA_BASE_ADDR, MX31_INT_SDMA, &imx31_sdma_pdata); | ||
201 | } | ||
202 | |||
203 | static struct sdma_script_start_addrs imx35_to1_sdma_script __initdata = { | ||
204 | .ap_2_ap_addr = 642, | ||
205 | .uart_2_mcu_addr = 817, | ||
206 | .mcu_2_app_addr = 747, | ||
207 | .uartsh_2_mcu_addr = 1183, | ||
208 | .per_2_shp_addr = 1033, | ||
209 | .mcu_2_shp_addr = 961, | ||
210 | .ata_2_mcu_addr = 1333, | ||
211 | .mcu_2_ata_addr = 1252, | ||
212 | .app_2_mcu_addr = 683, | ||
213 | .shp_2_per_addr = 1111, | ||
214 | .shp_2_mcu_addr = 892, | ||
215 | }; | ||
216 | |||
217 | static struct sdma_script_start_addrs imx35_to2_sdma_script __initdata = { | ||
218 | .ap_2_ap_addr = 729, | ||
219 | .uart_2_mcu_addr = 904, | ||
220 | .per_2_app_addr = 1597, | ||
221 | .mcu_2_app_addr = 834, | ||
222 | .uartsh_2_mcu_addr = 1270, | ||
223 | .per_2_shp_addr = 1120, | ||
224 | .mcu_2_shp_addr = 1048, | ||
225 | .ata_2_mcu_addr = 1429, | ||
226 | .mcu_2_ata_addr = 1339, | ||
227 | .app_2_per_addr = 1531, | ||
228 | .app_2_mcu_addr = 770, | ||
229 | .shp_2_per_addr = 1198, | ||
230 | .shp_2_mcu_addr = 979, | ||
231 | }; | ||
232 | |||
233 | static struct sdma_platform_data imx35_sdma_pdata __initdata = { | ||
234 | .fw_name = "sdma-imx35-to2.bin", | ||
235 | .script_addrs = &imx35_to2_sdma_script, | ||
236 | }; | ||
237 | |||
238 | void __init imx35_soc_init(void) | ||
239 | { | ||
240 | int to_version = mx35_revision() >> 4; | ||
241 | |||
242 | imx3_init_l2x0(); | ||
243 | |||
244 | /* i.mx35 has the i.mx31 type gpio */ | ||
245 | mxc_register_gpio("imx31-gpio", 0, MX35_GPIO1_BASE_ADDR, SZ_16K, MX35_INT_GPIO1, 0); | ||
246 | mxc_register_gpio("imx31-gpio", 1, MX35_GPIO2_BASE_ADDR, SZ_16K, MX35_INT_GPIO2, 0); | ||
247 | mxc_register_gpio("imx31-gpio", 2, MX35_GPIO3_BASE_ADDR, SZ_16K, MX35_INT_GPIO3, 0); | ||
248 | |||
249 | if (to_version == 1) { | ||
250 | strncpy(imx35_sdma_pdata.fw_name, "sdma-imx35-to1.bin", | ||
251 | strlen(imx35_sdma_pdata.fw_name)); | ||
252 | imx35_sdma_pdata.script_addrs = &imx35_to1_sdma_script; | ||
253 | } | ||
254 | |||
255 | imx_add_imx_sdma("imx35-sdma", MX35_SDMA_BASE_ADDR, MX35_INT_SDMA, &imx35_sdma_pdata); | ||
256 | } | ||
diff --git a/arch/arm/mach-imx/mm-imx31.c b/arch/arm/mach-imx/mm-imx31.c deleted file mode 100644 index b7c55e7db000..000000000000 --- a/arch/arm/mach-imx/mm-imx31.c +++ /dev/null | |||
@@ -1,91 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 1999,2000 Arm Limited | ||
3 | * Copyright (C) 2000 Deep Blue Solutions Ltd | ||
4 | * Copyright (C) 2002 Shane Nay (shane@minirl.com) | ||
5 | * Copyright 2005-2007 Freescale Semiconductor, Inc. All Rights Reserved. | ||
6 | * - add MX31 specific definitions | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License as published by | ||
10 | * the Free Software Foundation; either version 2 of the License, or | ||
11 | * (at your option) any later version. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, | ||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | * GNU General Public License for more details. | ||
17 | */ | ||
18 | |||
19 | #include <linux/mm.h> | ||
20 | #include <linux/init.h> | ||
21 | #include <linux/err.h> | ||
22 | |||
23 | #include <asm/pgtable.h> | ||
24 | #include <asm/mach/map.h> | ||
25 | |||
26 | #include <mach/common.h> | ||
27 | #include <mach/devices-common.h> | ||
28 | #include <mach/hardware.h> | ||
29 | #include <mach/iomux-v3.h> | ||
30 | #include <mach/irqs.h> | ||
31 | |||
32 | static struct map_desc mx31_io_desc[] __initdata = { | ||
33 | imx_map_entry(MX31, X_MEMC, MT_DEVICE), | ||
34 | imx_map_entry(MX31, AVIC, MT_DEVICE_NONSHARED), | ||
35 | imx_map_entry(MX31, AIPS1, MT_DEVICE_NONSHARED), | ||
36 | imx_map_entry(MX31, AIPS2, MT_DEVICE_NONSHARED), | ||
37 | imx_map_entry(MX31, SPBA0, MT_DEVICE_NONSHARED), | ||
38 | }; | ||
39 | |||
40 | /* | ||
41 | * This function initializes the memory map. It is called during the | ||
42 | * system startup to create static physical to virtual memory mappings | ||
43 | * for the IO modules. | ||
44 | */ | ||
45 | void __init mx31_map_io(void) | ||
46 | { | ||
47 | iotable_init(mx31_io_desc, ARRAY_SIZE(mx31_io_desc)); | ||
48 | } | ||
49 | |||
50 | void __init imx31_init_early(void) | ||
51 | { | ||
52 | mxc_set_cpu_type(MXC_CPU_MX31); | ||
53 | mxc_arch_reset_init(MX31_IO_ADDRESS(MX31_WDOG_BASE_ADDR)); | ||
54 | } | ||
55 | |||
56 | void __init mx31_init_irq(void) | ||
57 | { | ||
58 | mxc_init_irq(MX31_IO_ADDRESS(MX31_AVIC_BASE_ADDR)); | ||
59 | } | ||
60 | |||
61 | static struct sdma_script_start_addrs imx31_to1_sdma_script __initdata = { | ||
62 | .per_2_per_addr = 1677, | ||
63 | }; | ||
64 | |||
65 | static struct sdma_script_start_addrs imx31_to2_sdma_script __initdata = { | ||
66 | .ap_2_ap_addr = 423, | ||
67 | .ap_2_bp_addr = 829, | ||
68 | .bp_2_ap_addr = 1029, | ||
69 | }; | ||
70 | |||
71 | static struct sdma_platform_data imx31_sdma_pdata __initdata = { | ||
72 | .fw_name = "sdma-imx31-to2.bin", | ||
73 | .script_addrs = &imx31_to2_sdma_script, | ||
74 | }; | ||
75 | |||
76 | void __init imx31_soc_init(void) | ||
77 | { | ||
78 | int to_version = mx31_revision() >> 4; | ||
79 | |||
80 | mxc_register_gpio("imx31-gpio", 0, MX31_GPIO1_BASE_ADDR, SZ_16K, MX31_INT_GPIO1, 0); | ||
81 | mxc_register_gpio("imx31-gpio", 1, MX31_GPIO2_BASE_ADDR, SZ_16K, MX31_INT_GPIO2, 0); | ||
82 | mxc_register_gpio("imx31-gpio", 2, MX31_GPIO3_BASE_ADDR, SZ_16K, MX31_INT_GPIO3, 0); | ||
83 | |||
84 | if (to_version == 1) { | ||
85 | strncpy(imx31_sdma_pdata.fw_name, "sdma-imx31-to1.bin", | ||
86 | strlen(imx31_sdma_pdata.fw_name)); | ||
87 | imx31_sdma_pdata.script_addrs = &imx31_to1_sdma_script; | ||
88 | } | ||
89 | |||
90 | imx_add_imx_sdma("imx31-sdma", MX31_SDMA_BASE_ADDR, MX31_INT_SDMA, &imx31_sdma_pdata); | ||
91 | } | ||
diff --git a/arch/arm/mach-imx/mm-imx35.c b/arch/arm/mach-imx/mm-imx35.c deleted file mode 100644 index f49bac7a1ede..000000000000 --- a/arch/arm/mach-imx/mm-imx35.c +++ /dev/null | |||
@@ -1,109 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 1999,2000 Arm Limited | ||
3 | * Copyright (C) 2000 Deep Blue Solutions Ltd | ||
4 | * Copyright (C) 2002 Shane Nay (shane@minirl.com) | ||
5 | * Copyright 2005-2007 Freescale Semiconductor, Inc. All Rights Reserved. | ||
6 | * - add MX31 specific definitions | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License as published by | ||
10 | * the Free Software Foundation; either version 2 of the License, or | ||
11 | * (at your option) any later version. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, | ||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | * GNU General Public License for more details. | ||
17 | */ | ||
18 | |||
19 | #include <linux/mm.h> | ||
20 | #include <linux/init.h> | ||
21 | #include <linux/err.h> | ||
22 | |||
23 | #include <asm/pgtable.h> | ||
24 | #include <asm/mach/map.h> | ||
25 | #include <asm/hardware/cache-l2x0.h> | ||
26 | |||
27 | #include <mach/common.h> | ||
28 | #include <mach/devices-common.h> | ||
29 | #include <mach/hardware.h> | ||
30 | #include <mach/iomux-v3.h> | ||
31 | #include <mach/irqs.h> | ||
32 | |||
33 | static struct map_desc mx35_io_desc[] __initdata = { | ||
34 | imx_map_entry(MX35, X_MEMC, MT_DEVICE), | ||
35 | imx_map_entry(MX35, AVIC, MT_DEVICE_NONSHARED), | ||
36 | imx_map_entry(MX35, AIPS1, MT_DEVICE_NONSHARED), | ||
37 | imx_map_entry(MX35, AIPS2, MT_DEVICE_NONSHARED), | ||
38 | imx_map_entry(MX35, SPBA0, MT_DEVICE_NONSHARED), | ||
39 | }; | ||
40 | |||
41 | void __init mx35_map_io(void) | ||
42 | { | ||
43 | iotable_init(mx35_io_desc, ARRAY_SIZE(mx35_io_desc)); | ||
44 | } | ||
45 | |||
46 | void __init imx35_init_early(void) | ||
47 | { | ||
48 | mxc_set_cpu_type(MXC_CPU_MX35); | ||
49 | mxc_iomux_v3_init(MX35_IO_ADDRESS(MX35_IOMUXC_BASE_ADDR)); | ||
50 | mxc_arch_reset_init(MX35_IO_ADDRESS(MX35_WDOG_BASE_ADDR)); | ||
51 | } | ||
52 | |||
53 | void __init mx35_init_irq(void) | ||
54 | { | ||
55 | mxc_init_irq(MX35_IO_ADDRESS(MX35_AVIC_BASE_ADDR)); | ||
56 | } | ||
57 | |||
58 | static struct sdma_script_start_addrs imx35_to1_sdma_script __initdata = { | ||
59 | .ap_2_ap_addr = 642, | ||
60 | .uart_2_mcu_addr = 817, | ||
61 | .mcu_2_app_addr = 747, | ||
62 | .uartsh_2_mcu_addr = 1183, | ||
63 | .per_2_shp_addr = 1033, | ||
64 | .mcu_2_shp_addr = 961, | ||
65 | .ata_2_mcu_addr = 1333, | ||
66 | .mcu_2_ata_addr = 1252, | ||
67 | .app_2_mcu_addr = 683, | ||
68 | .shp_2_per_addr = 1111, | ||
69 | .shp_2_mcu_addr = 892, | ||
70 | }; | ||
71 | |||
72 | static struct sdma_script_start_addrs imx35_to2_sdma_script __initdata = { | ||
73 | .ap_2_ap_addr = 729, | ||
74 | .uart_2_mcu_addr = 904, | ||
75 | .per_2_app_addr = 1597, | ||
76 | .mcu_2_app_addr = 834, | ||
77 | .uartsh_2_mcu_addr = 1270, | ||
78 | .per_2_shp_addr = 1120, | ||
79 | .mcu_2_shp_addr = 1048, | ||
80 | .ata_2_mcu_addr = 1429, | ||
81 | .mcu_2_ata_addr = 1339, | ||
82 | .app_2_per_addr = 1531, | ||
83 | .app_2_mcu_addr = 770, | ||
84 | .shp_2_per_addr = 1198, | ||
85 | .shp_2_mcu_addr = 979, | ||
86 | }; | ||
87 | |||
88 | static struct sdma_platform_data imx35_sdma_pdata __initdata = { | ||
89 | .fw_name = "sdma-imx35-to2.bin", | ||
90 | .script_addrs = &imx35_to2_sdma_script, | ||
91 | }; | ||
92 | |||
93 | void __init imx35_soc_init(void) | ||
94 | { | ||
95 | int to_version = mx35_revision() >> 4; | ||
96 | |||
97 | /* i.mx35 has the i.mx31 type gpio */ | ||
98 | mxc_register_gpio("imx31-gpio", 0, MX35_GPIO1_BASE_ADDR, SZ_16K, MX35_INT_GPIO1, 0); | ||
99 | mxc_register_gpio("imx31-gpio", 1, MX35_GPIO2_BASE_ADDR, SZ_16K, MX35_INT_GPIO2, 0); | ||
100 | mxc_register_gpio("imx31-gpio", 2, MX35_GPIO3_BASE_ADDR, SZ_16K, MX35_INT_GPIO3, 0); | ||
101 | |||
102 | if (to_version == 1) { | ||
103 | strncpy(imx35_sdma_pdata.fw_name, "sdma-imx35-to1.bin", | ||
104 | strlen(imx35_sdma_pdata.fw_name)); | ||
105 | imx35_sdma_pdata.script_addrs = &imx35_to1_sdma_script; | ||
106 | } | ||
107 | |||
108 | imx_add_imx_sdma("imx35-sdma", MX35_SDMA_BASE_ADDR, MX35_INT_SDMA, &imx35_sdma_pdata); | ||
109 | } | ||
diff --git a/arch/arm/mach-imx/pm-imx27.c b/arch/arm/mach-imx/pm-imx27.c index acf17691d2cc..e455d2f855bf 100644 --- a/arch/arm/mach-imx/pm-imx27.c +++ b/arch/arm/mach-imx/pm-imx27.c | |||
@@ -11,7 +11,7 @@ | |||
11 | #include <linux/suspend.h> | 11 | #include <linux/suspend.h> |
12 | #include <linux/io.h> | 12 | #include <linux/io.h> |
13 | #include <mach/system.h> | 13 | #include <mach/system.h> |
14 | #include <mach/mx27.h> | 14 | #include <mach/hardware.h> |
15 | 15 | ||
16 | static int mx27_suspend_enter(suspend_state_t state) | 16 | static int mx27_suspend_enter(suspend_state_t state) |
17 | { | 17 | { |
diff --git a/arch/arm/mach-integrator/integrator_ap.c b/arch/arm/mach-integrator/integrator_ap.c index 8cdc730dcb3a..a20fb3f2bc45 100644 --- a/arch/arm/mach-integrator/integrator_ap.c +++ b/arch/arm/mach-integrator/integrator_ap.c | |||
@@ -459,7 +459,7 @@ static struct sys_timer ap_timer = { | |||
459 | 459 | ||
460 | MACHINE_START(INTEGRATOR, "ARM-Integrator") | 460 | MACHINE_START(INTEGRATOR, "ARM-Integrator") |
461 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ | 461 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ |
462 | .boot_params = 0x00000100, | 462 | .atag_offset = 0x100, |
463 | .reserve = integrator_reserve, | 463 | .reserve = integrator_reserve, |
464 | .map_io = ap_map_io, | 464 | .map_io = ap_map_io, |
465 | .init_early = integrator_init_early, | 465 | .init_early = integrator_init_early, |
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c index 4eb03ab5cb46..5de49c33e4d4 100644 --- a/arch/arm/mach-integrator/integrator_cp.c +++ b/arch/arm/mach-integrator/integrator_cp.c | |||
@@ -492,7 +492,7 @@ static struct sys_timer cp_timer = { | |||
492 | 492 | ||
493 | MACHINE_START(CINTEGRATOR, "ARM-IntegratorCP") | 493 | MACHINE_START(CINTEGRATOR, "ARM-IntegratorCP") |
494 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ | 494 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ |
495 | .boot_params = 0x00000100, | 495 | .atag_offset = 0x100, |
496 | .reserve = integrator_reserve, | 496 | .reserve = integrator_reserve, |
497 | .map_io = intcp_map_io, | 497 | .map_io = intcp_map_io, |
498 | .init_early = intcp_init_early, | 498 | .init_early = intcp_init_early, |
diff --git a/arch/arm/mach-iop13xx/iq81340mc.c b/arch/arm/mach-iop13xx/iq81340mc.c index 23dfaffc586c..4cf2cc477eae 100644 --- a/arch/arm/mach-iop13xx/iq81340mc.c +++ b/arch/arm/mach-iop13xx/iq81340mc.c | |||
@@ -91,7 +91,7 @@ static struct sys_timer iq81340mc_timer = { | |||
91 | 91 | ||
92 | MACHINE_START(IQ81340MC, "Intel IQ81340MC") | 92 | MACHINE_START(IQ81340MC, "Intel IQ81340MC") |
93 | /* Maintainer: Dan Williams <dan.j.williams@intel.com> */ | 93 | /* Maintainer: Dan Williams <dan.j.williams@intel.com> */ |
94 | .boot_params = 0x00000100, | 94 | .atag_offset = 0x100, |
95 | .map_io = iop13xx_map_io, | 95 | .map_io = iop13xx_map_io, |
96 | .init_irq = iop13xx_init_irq, | 96 | .init_irq = iop13xx_init_irq, |
97 | .timer = &iq81340mc_timer, | 97 | .timer = &iq81340mc_timer, |
diff --git a/arch/arm/mach-iop13xx/iq81340sc.c b/arch/arm/mach-iop13xx/iq81340sc.c index df3492a9c280..cd9e27499a1e 100644 --- a/arch/arm/mach-iop13xx/iq81340sc.c +++ b/arch/arm/mach-iop13xx/iq81340sc.c | |||
@@ -93,7 +93,7 @@ static struct sys_timer iq81340sc_timer = { | |||
93 | 93 | ||
94 | MACHINE_START(IQ81340SC, "Intel IQ81340SC") | 94 | MACHINE_START(IQ81340SC, "Intel IQ81340SC") |
95 | /* Maintainer: Dan Williams <dan.j.williams@intel.com> */ | 95 | /* Maintainer: Dan Williams <dan.j.williams@intel.com> */ |
96 | .boot_params = 0x00000100, | 96 | .atag_offset = 0x100, |
97 | .map_io = iop13xx_map_io, | 97 | .map_io = iop13xx_map_io, |
98 | .init_irq = iop13xx_init_irq, | 98 | .init_irq = iop13xx_init_irq, |
99 | .timer = &iq81340sc_timer, | 99 | .timer = &iq81340sc_timer, |
diff --git a/arch/arm/mach-iop32x/em7210.c b/arch/arm/mach-iop32x/em7210.c index 6cbffbfc2bba..4325055d4e19 100644 --- a/arch/arm/mach-iop32x/em7210.c +++ b/arch/arm/mach-iop32x/em7210.c | |||
@@ -203,7 +203,7 @@ static void __init em7210_init_machine(void) | |||
203 | } | 203 | } |
204 | 204 | ||
205 | MACHINE_START(EM7210, "Lanner EM7210") | 205 | MACHINE_START(EM7210, "Lanner EM7210") |
206 | .boot_params = 0xa0000100, | 206 | .atag_offset = 0x100, |
207 | .map_io = em7210_map_io, | 207 | .map_io = em7210_map_io, |
208 | .init_irq = iop32x_init_irq, | 208 | .init_irq = iop32x_init_irq, |
209 | .timer = &em7210_timer, | 209 | .timer = &em7210_timer, |
diff --git a/arch/arm/mach-iop32x/glantank.c b/arch/arm/mach-iop32x/glantank.c index ceef5d4dce1a..0edc88020577 100644 --- a/arch/arm/mach-iop32x/glantank.c +++ b/arch/arm/mach-iop32x/glantank.c | |||
@@ -207,7 +207,7 @@ static void __init glantank_init_machine(void) | |||
207 | 207 | ||
208 | MACHINE_START(GLANTANK, "GLAN Tank") | 208 | MACHINE_START(GLANTANK, "GLAN Tank") |
209 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 209 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
210 | .boot_params = 0xa0000100, | 210 | .atag_offset = 0x100, |
211 | .map_io = glantank_map_io, | 211 | .map_io = glantank_map_io, |
212 | .init_irq = iop32x_init_irq, | 212 | .init_irq = iop32x_init_irq, |
213 | .timer = &glantank_timer, | 213 | .timer = &glantank_timer, |
diff --git a/arch/arm/mach-iop32x/iq31244.c b/arch/arm/mach-iop32x/iq31244.c index 3a62514dae7c..9e7aaccfeba0 100644 --- a/arch/arm/mach-iop32x/iq31244.c +++ b/arch/arm/mach-iop32x/iq31244.c | |||
@@ -313,7 +313,7 @@ __setup("force_ep80219", force_ep80219_setup); | |||
313 | 313 | ||
314 | MACHINE_START(IQ31244, "Intel IQ31244") | 314 | MACHINE_START(IQ31244, "Intel IQ31244") |
315 | /* Maintainer: Intel Corp. */ | 315 | /* Maintainer: Intel Corp. */ |
316 | .boot_params = 0xa0000100, | 316 | .atag_offset = 0x100, |
317 | .map_io = iq31244_map_io, | 317 | .map_io = iq31244_map_io, |
318 | .init_irq = iop32x_init_irq, | 318 | .init_irq = iop32x_init_irq, |
319 | .timer = &iq31244_timer, | 319 | .timer = &iq31244_timer, |
@@ -327,7 +327,7 @@ MACHINE_END | |||
327 | */ | 327 | */ |
328 | MACHINE_START(EP80219, "Intel EP80219") | 328 | MACHINE_START(EP80219, "Intel EP80219") |
329 | /* Maintainer: Intel Corp. */ | 329 | /* Maintainer: Intel Corp. */ |
330 | .boot_params = 0xa0000100, | 330 | .atag_offset = 0x100, |
331 | .map_io = iq31244_map_io, | 331 | .map_io = iq31244_map_io, |
332 | .init_irq = iop32x_init_irq, | 332 | .init_irq = iop32x_init_irq, |
333 | .timer = &iq31244_timer, | 333 | .timer = &iq31244_timer, |
diff --git a/arch/arm/mach-iop32x/iq80321.c b/arch/arm/mach-iop32x/iq80321.c index 35b7e6914d3b..53ea86f649dd 100644 --- a/arch/arm/mach-iop32x/iq80321.c +++ b/arch/arm/mach-iop32x/iq80321.c | |||
@@ -186,7 +186,7 @@ static void __init iq80321_init_machine(void) | |||
186 | 186 | ||
187 | MACHINE_START(IQ80321, "Intel IQ80321") | 187 | MACHINE_START(IQ80321, "Intel IQ80321") |
188 | /* Maintainer: Intel Corp. */ | 188 | /* Maintainer: Intel Corp. */ |
189 | .boot_params = 0xa0000100, | 189 | .atag_offset = 0x100, |
190 | .map_io = iq80321_map_io, | 190 | .map_io = iq80321_map_io, |
191 | .init_irq = iop32x_init_irq, | 191 | .init_irq = iop32x_init_irq, |
192 | .timer = &iq80321_timer, | 192 | .timer = &iq80321_timer, |
diff --git a/arch/arm/mach-iop32x/n2100.c b/arch/arm/mach-iop32x/n2100.c index 1a374eab6007..d7269279968c 100644 --- a/arch/arm/mach-iop32x/n2100.c +++ b/arch/arm/mach-iop32x/n2100.c | |||
@@ -327,7 +327,7 @@ static void __init n2100_init_machine(void) | |||
327 | 327 | ||
328 | MACHINE_START(N2100, "Thecus N2100") | 328 | MACHINE_START(N2100, "Thecus N2100") |
329 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 329 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
330 | .boot_params = 0xa0000100, | 330 | .atag_offset = 0x100, |
331 | .map_io = n2100_map_io, | 331 | .map_io = n2100_map_io, |
332 | .init_irq = iop32x_init_irq, | 332 | .init_irq = iop32x_init_irq, |
333 | .timer = &n2100_timer, | 333 | .timer = &n2100_timer, |
diff --git a/arch/arm/mach-iop33x/iq80331.c b/arch/arm/mach-iop33x/iq80331.c index 637c0272d5e0..9e14ccc56f8e 100644 --- a/arch/arm/mach-iop33x/iq80331.c +++ b/arch/arm/mach-iop33x/iq80331.c | |||
@@ -141,7 +141,7 @@ static void __init iq80331_init_machine(void) | |||
141 | 141 | ||
142 | MACHINE_START(IQ80331, "Intel IQ80331") | 142 | MACHINE_START(IQ80331, "Intel IQ80331") |
143 | /* Maintainer: Intel Corp. */ | 143 | /* Maintainer: Intel Corp. */ |
144 | .boot_params = 0x00000100, | 144 | .atag_offset = 0x100, |
145 | .map_io = iop3xx_map_io, | 145 | .map_io = iop3xx_map_io, |
146 | .init_irq = iop33x_init_irq, | 146 | .init_irq = iop33x_init_irq, |
147 | .timer = &iq80331_timer, | 147 | .timer = &iq80331_timer, |
diff --git a/arch/arm/mach-iop33x/iq80332.c b/arch/arm/mach-iop33x/iq80332.c index 90a0436d7255..09c899a2523f 100644 --- a/arch/arm/mach-iop33x/iq80332.c +++ b/arch/arm/mach-iop33x/iq80332.c | |||
@@ -141,7 +141,7 @@ static void __init iq80332_init_machine(void) | |||
141 | 141 | ||
142 | MACHINE_START(IQ80332, "Intel IQ80332") | 142 | MACHINE_START(IQ80332, "Intel IQ80332") |
143 | /* Maintainer: Intel Corp. */ | 143 | /* Maintainer: Intel Corp. */ |
144 | .boot_params = 0x00000100, | 144 | .atag_offset = 0x100, |
145 | .map_io = iop3xx_map_io, | 145 | .map_io = iop3xx_map_io, |
146 | .init_irq = iop33x_init_irq, | 146 | .init_irq = iop33x_init_irq, |
147 | .timer = &iq80332_timer, | 147 | .timer = &iq80332_timer, |
diff --git a/arch/arm/mach-ixp2000/enp2611.c b/arch/arm/mach-ixp2000/enp2611.c index 62c60ade5274..af9994537e01 100644 --- a/arch/arm/mach-ixp2000/enp2611.c +++ b/arch/arm/mach-ixp2000/enp2611.c | |||
@@ -254,7 +254,7 @@ static void __init enp2611_init_machine(void) | |||
254 | 254 | ||
255 | MACHINE_START(ENP2611, "Radisys ENP-2611 PCI network processor board") | 255 | MACHINE_START(ENP2611, "Radisys ENP-2611 PCI network processor board") |
256 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ | 256 | /* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */ |
257 | .boot_params = 0x00000100, | 257 | .atag_offset = 0x100, |
258 | .map_io = enp2611_map_io, | 258 | .map_io = enp2611_map_io, |
259 | .init_irq = ixp2000_init_irq, | 259 | .init_irq = ixp2000_init_irq, |
260 | .timer = &enp2611_timer, | 260 | .timer = &enp2611_timer, |
diff --git a/arch/arm/mach-ixp2000/ixdp2400.c b/arch/arm/mach-ixp2000/ixdp2400.c index 5bad1a8419b7..f7dfd9700141 100644 --- a/arch/arm/mach-ixp2000/ixdp2400.c +++ b/arch/arm/mach-ixp2000/ixdp2400.c | |||
@@ -171,7 +171,7 @@ void __init ixdp2400_init_irq(void) | |||
171 | 171 | ||
172 | MACHINE_START(IXDP2400, "Intel IXDP2400 Development Platform") | 172 | MACHINE_START(IXDP2400, "Intel IXDP2400 Development Platform") |
173 | /* Maintainer: MontaVista Software, Inc. */ | 173 | /* Maintainer: MontaVista Software, Inc. */ |
174 | .boot_params = 0x00000100, | 174 | .atag_offset = 0x100, |
175 | .map_io = ixdp2x00_map_io, | 175 | .map_io = ixdp2x00_map_io, |
176 | .init_irq = ixdp2400_init_irq, | 176 | .init_irq = ixdp2400_init_irq, |
177 | .timer = &ixdp2400_timer, | 177 | .timer = &ixdp2400_timer, |
diff --git a/arch/arm/mach-ixp2000/ixdp2800.c b/arch/arm/mach-ixp2000/ixdp2800.c index 3d3cef876467..d33bcac1ec92 100644 --- a/arch/arm/mach-ixp2000/ixdp2800.c +++ b/arch/arm/mach-ixp2000/ixdp2800.c | |||
@@ -286,7 +286,7 @@ void __init ixdp2800_init_irq(void) | |||
286 | 286 | ||
287 | MACHINE_START(IXDP2800, "Intel IXDP2800 Development Platform") | 287 | MACHINE_START(IXDP2800, "Intel IXDP2800 Development Platform") |
288 | /* Maintainer: MontaVista Software, Inc. */ | 288 | /* Maintainer: MontaVista Software, Inc. */ |
289 | .boot_params = 0x00000100, | 289 | .atag_offset = 0x100, |
290 | .map_io = ixdp2x00_map_io, | 290 | .map_io = ixdp2x00_map_io, |
291 | .init_irq = ixdp2800_init_irq, | 291 | .init_irq = ixdp2800_init_irq, |
292 | .timer = &ixdp2800_timer, | 292 | .timer = &ixdp2800_timer, |
diff --git a/arch/arm/mach-ixp2000/ixdp2x01.c b/arch/arm/mach-ixp2000/ixdp2x01.c index be2a254f1374..61a28676b5be 100644 --- a/arch/arm/mach-ixp2000/ixdp2x01.c +++ b/arch/arm/mach-ixp2000/ixdp2x01.c | |||
@@ -417,7 +417,7 @@ static void __init ixdp2x01_init_machine(void) | |||
417 | #ifdef CONFIG_ARCH_IXDP2401 | 417 | #ifdef CONFIG_ARCH_IXDP2401 |
418 | MACHINE_START(IXDP2401, "Intel IXDP2401 Development Platform") | 418 | MACHINE_START(IXDP2401, "Intel IXDP2401 Development Platform") |
419 | /* Maintainer: MontaVista Software, Inc. */ | 419 | /* Maintainer: MontaVista Software, Inc. */ |
420 | .boot_params = 0x00000100, | 420 | .atag_offset = 0x100, |
421 | .map_io = ixdp2x01_map_io, | 421 | .map_io = ixdp2x01_map_io, |
422 | .init_irq = ixdp2x01_init_irq, | 422 | .init_irq = ixdp2x01_init_irq, |
423 | .timer = &ixdp2x01_timer, | 423 | .timer = &ixdp2x01_timer, |
@@ -428,7 +428,7 @@ MACHINE_END | |||
428 | #ifdef CONFIG_ARCH_IXDP2801 | 428 | #ifdef CONFIG_ARCH_IXDP2801 |
429 | MACHINE_START(IXDP2801, "Intel IXDP2801 Development Platform") | 429 | MACHINE_START(IXDP2801, "Intel IXDP2801 Development Platform") |
430 | /* Maintainer: MontaVista Software, Inc. */ | 430 | /* Maintainer: MontaVista Software, Inc. */ |
431 | .boot_params = 0x00000100, | 431 | .atag_offset = 0x100, |
432 | .map_io = ixdp2x01_map_io, | 432 | .map_io = ixdp2x01_map_io, |
433 | .init_irq = ixdp2x01_init_irq, | 433 | .init_irq = ixdp2x01_init_irq, |
434 | .timer = &ixdp2x01_timer, | 434 | .timer = &ixdp2x01_timer, |
@@ -441,7 +441,7 @@ MACHINE_END | |||
441 | */ | 441 | */ |
442 | MACHINE_START(IXDP28X5, "Intel IXDP2805/2855 Development Platform") | 442 | MACHINE_START(IXDP28X5, "Intel IXDP2805/2855 Development Platform") |
443 | /* Maintainer: MontaVista Software, Inc. */ | 443 | /* Maintainer: MontaVista Software, Inc. */ |
444 | .boot_params = 0x00000100, | 444 | .atag_offset = 0x100, |
445 | .map_io = ixdp2x01_map_io, | 445 | .map_io = ixdp2x01_map_io, |
446 | .init_irq = ixdp2x01_init_irq, | 446 | .init_irq = ixdp2x01_init_irq, |
447 | .timer = &ixdp2x01_timer, | 447 | .timer = &ixdp2x01_timer, |
diff --git a/arch/arm/mach-ixp23xx/espresso.c b/arch/arm/mach-ixp23xx/espresso.c index e25e5fe183ba..30dd31652e9d 100644 --- a/arch/arm/mach-ixp23xx/espresso.c +++ b/arch/arm/mach-ixp23xx/espresso.c | |||
@@ -88,6 +88,6 @@ MACHINE_START(ESPRESSO, "IP Fabrics Double Espresso") | |||
88 | .map_io = ixp23xx_map_io, | 88 | .map_io = ixp23xx_map_io, |
89 | .init_irq = ixp23xx_init_irq, | 89 | .init_irq = ixp23xx_init_irq, |
90 | .timer = &ixp23xx_timer, | 90 | .timer = &ixp23xx_timer, |
91 | .boot_params = 0x00000100, | 91 | .atag_offset = 0x100, |
92 | .init_machine = espresso_init, | 92 | .init_machine = espresso_init, |
93 | MACHINE_END | 93 | MACHINE_END |
diff --git a/arch/arm/mach-ixp23xx/ixdp2351.c b/arch/arm/mach-ixp23xx/ixdp2351.c index ec028e35f401..b3a57e0f3419 100644 --- a/arch/arm/mach-ixp23xx/ixdp2351.c +++ b/arch/arm/mach-ixp23xx/ixdp2351.c | |||
@@ -331,6 +331,6 @@ MACHINE_START(IXDP2351, "Intel IXDP2351 Development Platform") | |||
331 | .map_io = ixdp2351_map_io, | 331 | .map_io = ixdp2351_map_io, |
332 | .init_irq = ixdp2351_init_irq, | 332 | .init_irq = ixdp2351_init_irq, |
333 | .timer = &ixp23xx_timer, | 333 | .timer = &ixp23xx_timer, |
334 | .boot_params = 0x00000100, | 334 | .atag_offset = 0x100, |
335 | .init_machine = ixdp2351_init, | 335 | .init_machine = ixdp2351_init, |
336 | MACHINE_END | 336 | MACHINE_END |
diff --git a/arch/arm/mach-ixp23xx/roadrunner.c b/arch/arm/mach-ixp23xx/roadrunner.c index 844551d2368b..8f4dcbba9025 100644 --- a/arch/arm/mach-ixp23xx/roadrunner.c +++ b/arch/arm/mach-ixp23xx/roadrunner.c | |||
@@ -175,6 +175,6 @@ MACHINE_START(ROADRUNNER, "ADI Engineering RoadRunner Development Platform") | |||
175 | .map_io = ixp23xx_map_io, | 175 | .map_io = ixp23xx_map_io, |
176 | .init_irq = ixp23xx_init_irq, | 176 | .init_irq = ixp23xx_init_irq, |
177 | .timer = &ixp23xx_timer, | 177 | .timer = &ixp23xx_timer, |
178 | .boot_params = 0x00000100, | 178 | .atag_offset = 0x100, |
179 | .init_machine = roadrunner_init, | 179 | .init_machine = roadrunner_init, |
180 | MACHINE_END | 180 | MACHINE_END |
diff --git a/arch/arm/mach-ixp4xx/avila-setup.c b/arch/arm/mach-ixp4xx/avila-setup.c index ee19c1d383aa..37609a22c450 100644 --- a/arch/arm/mach-ixp4xx/avila-setup.c +++ b/arch/arm/mach-ixp4xx/avila-setup.c | |||
@@ -167,7 +167,7 @@ MACHINE_START(AVILA, "Gateworks Avila Network Platform") | |||
167 | .map_io = ixp4xx_map_io, | 167 | .map_io = ixp4xx_map_io, |
168 | .init_irq = ixp4xx_init_irq, | 168 | .init_irq = ixp4xx_init_irq, |
169 | .timer = &ixp4xx_timer, | 169 | .timer = &ixp4xx_timer, |
170 | .boot_params = 0x0100, | 170 | .atag_offset = 0x100, |
171 | .init_machine = avila_init, | 171 | .init_machine = avila_init, |
172 | #if defined(CONFIG_PCI) | 172 | #if defined(CONFIG_PCI) |
173 | .dma_zone_size = SZ_64M, | 173 | .dma_zone_size = SZ_64M, |
@@ -185,7 +185,7 @@ MACHINE_START(LOFT, "Giant Shoulder Inc Loft board") | |||
185 | .map_io = ixp4xx_map_io, | 185 | .map_io = ixp4xx_map_io, |
186 | .init_irq = ixp4xx_init_irq, | 186 | .init_irq = ixp4xx_init_irq, |
187 | .timer = &ixp4xx_timer, | 187 | .timer = &ixp4xx_timer, |
188 | .boot_params = 0x0100, | 188 | .atag_offset = 0x100, |
189 | .init_machine = avila_init, | 189 | .init_machine = avila_init, |
190 | #if defined(CONFIG_PCI) | 190 | #if defined(CONFIG_PCI) |
191 | .dma_zone_size = SZ_64M, | 191 | .dma_zone_size = SZ_64M, |
diff --git a/arch/arm/mach-ixp4xx/coyote-setup.c b/arch/arm/mach-ixp4xx/coyote-setup.c index e24564b5d935..81dfec31842b 100644 --- a/arch/arm/mach-ixp4xx/coyote-setup.c +++ b/arch/arm/mach-ixp4xx/coyote-setup.c | |||
@@ -112,7 +112,7 @@ MACHINE_START(ADI_COYOTE, "ADI Engineering Coyote") | |||
112 | .map_io = ixp4xx_map_io, | 112 | .map_io = ixp4xx_map_io, |
113 | .init_irq = ixp4xx_init_irq, | 113 | .init_irq = ixp4xx_init_irq, |
114 | .timer = &ixp4xx_timer, | 114 | .timer = &ixp4xx_timer, |
115 | .boot_params = 0x0100, | 115 | .atag_offset = 0x100, |
116 | .init_machine = coyote_init, | 116 | .init_machine = coyote_init, |
117 | #if defined(CONFIG_PCI) | 117 | #if defined(CONFIG_PCI) |
118 | .dma_zone_size = SZ_64M, | 118 | .dma_zone_size = SZ_64M, |
@@ -130,7 +130,7 @@ MACHINE_START(IXDPG425, "Intel IXDPG425") | |||
130 | .map_io = ixp4xx_map_io, | 130 | .map_io = ixp4xx_map_io, |
131 | .init_irq = ixp4xx_init_irq, | 131 | .init_irq = ixp4xx_init_irq, |
132 | .timer = &ixp4xx_timer, | 132 | .timer = &ixp4xx_timer, |
133 | .boot_params = 0x0100, | 133 | .atag_offset = 0x100, |
134 | .init_machine = coyote_init, | 134 | .init_machine = coyote_init, |
135 | MACHINE_END | 135 | MACHINE_END |
136 | #endif | 136 | #endif |
diff --git a/arch/arm/mach-ixp4xx/dsmg600-setup.c b/arch/arm/mach-ixp4xx/dsmg600-setup.c index 03e54515e8b3..71607a7ecc7e 100644 --- a/arch/arm/mach-ixp4xx/dsmg600-setup.c +++ b/arch/arm/mach-ixp4xx/dsmg600-setup.c | |||
@@ -279,7 +279,7 @@ static void __init dsmg600_init(void) | |||
279 | 279 | ||
280 | MACHINE_START(DSMG600, "D-Link DSM-G600 RevA") | 280 | MACHINE_START(DSMG600, "D-Link DSM-G600 RevA") |
281 | /* Maintainer: www.nslu2-linux.org */ | 281 | /* Maintainer: www.nslu2-linux.org */ |
282 | .boot_params = 0x00000100, | 282 | .atag_offset = 0x100, |
283 | .map_io = ixp4xx_map_io, | 283 | .map_io = ixp4xx_map_io, |
284 | .init_irq = ixp4xx_init_irq, | 284 | .init_irq = ixp4xx_init_irq, |
285 | .timer = &dsmg600_timer, | 285 | .timer = &dsmg600_timer, |
diff --git a/arch/arm/mach-ixp4xx/fsg-setup.c b/arch/arm/mach-ixp4xx/fsg-setup.c index 23a8b3614568..a9540cd90375 100644 --- a/arch/arm/mach-ixp4xx/fsg-setup.c +++ b/arch/arm/mach-ixp4xx/fsg-setup.c | |||
@@ -273,7 +273,7 @@ MACHINE_START(FSG, "Freecom FSG-3") | |||
273 | .map_io = ixp4xx_map_io, | 273 | .map_io = ixp4xx_map_io, |
274 | .init_irq = ixp4xx_init_irq, | 274 | .init_irq = ixp4xx_init_irq, |
275 | .timer = &ixp4xx_timer, | 275 | .timer = &ixp4xx_timer, |
276 | .boot_params = 0x0100, | 276 | .atag_offset = 0x100, |
277 | .init_machine = fsg_init, | 277 | .init_machine = fsg_init, |
278 | #if defined(CONFIG_PCI) | 278 | #if defined(CONFIG_PCI) |
279 | .dma_zone_size = SZ_64M, | 279 | .dma_zone_size = SZ_64M, |
diff --git a/arch/arm/mach-ixp4xx/gateway7001-setup.c b/arch/arm/mach-ixp4xx/gateway7001-setup.c index d4f851bdd9a4..d69d1b053bb7 100644 --- a/arch/arm/mach-ixp4xx/gateway7001-setup.c +++ b/arch/arm/mach-ixp4xx/gateway7001-setup.c | |||
@@ -99,7 +99,7 @@ MACHINE_START(GATEWAY7001, "Gateway 7001 AP") | |||
99 | .map_io = ixp4xx_map_io, | 99 | .map_io = ixp4xx_map_io, |
100 | .init_irq = ixp4xx_init_irq, | 100 | .init_irq = ixp4xx_init_irq, |
101 | .timer = &ixp4xx_timer, | 101 | .timer = &ixp4xx_timer, |
102 | .boot_params = 0x0100, | 102 | .atag_offset = 0x100, |
103 | .init_machine = gateway7001_init, | 103 | .init_machine = gateway7001_init, |
104 | #if defined(CONFIG_PCI) | 104 | #if defined(CONFIG_PCI) |
105 | .dma_zone_size = SZ_64M, | 105 | .dma_zone_size = SZ_64M, |
diff --git a/arch/arm/mach-ixp4xx/goramo_mlr.c b/arch/arm/mach-ixp4xx/goramo_mlr.c index 7548d9a2efe2..bf6678d1a929 100644 --- a/arch/arm/mach-ixp4xx/goramo_mlr.c +++ b/arch/arm/mach-ixp4xx/goramo_mlr.c | |||
@@ -499,7 +499,7 @@ MACHINE_START(GORAMO_MLR, "MultiLink") | |||
499 | .map_io = ixp4xx_map_io, | 499 | .map_io = ixp4xx_map_io, |
500 | .init_irq = ixp4xx_init_irq, | 500 | .init_irq = ixp4xx_init_irq, |
501 | .timer = &ixp4xx_timer, | 501 | .timer = &ixp4xx_timer, |
502 | .boot_params = 0x0100, | 502 | .atag_offset = 0x100, |
503 | .init_machine = gmlr_init, | 503 | .init_machine = gmlr_init, |
504 | #if defined(CONFIG_PCI) | 504 | #if defined(CONFIG_PCI) |
505 | .dma_zone_size = SZ_64M, | 505 | .dma_zone_size = SZ_64M, |
diff --git a/arch/arm/mach-ixp4xx/gtwx5715-setup.c b/arch/arm/mach-ixp4xx/gtwx5715-setup.c index 3790dffd3c30..aa029fc19140 100644 --- a/arch/arm/mach-ixp4xx/gtwx5715-setup.c +++ b/arch/arm/mach-ixp4xx/gtwx5715-setup.c | |||
@@ -167,7 +167,7 @@ MACHINE_START(GTWX5715, "Gemtek GTWX5715 (Linksys WRV54G)") | |||
167 | .map_io = ixp4xx_map_io, | 167 | .map_io = ixp4xx_map_io, |
168 | .init_irq = ixp4xx_init_irq, | 168 | .init_irq = ixp4xx_init_irq, |
169 | .timer = &ixp4xx_timer, | 169 | .timer = &ixp4xx_timer, |
170 | .boot_params = 0x0100, | 170 | .atag_offset = 0x100, |
171 | .init_machine = gtwx5715_init, | 171 | .init_machine = gtwx5715_init, |
172 | #if defined(CONFIG_PCI) | 172 | #if defined(CONFIG_PCI) |
173 | .dma_zone_size = SZ_64M, | 173 | .dma_zone_size = SZ_64M, |
diff --git a/arch/arm/mach-ixp4xx/ixdp425-setup.c b/arch/arm/mach-ixp4xx/ixdp425-setup.c index 6a2927956bf6..f235f829dfa6 100644 --- a/arch/arm/mach-ixp4xx/ixdp425-setup.c +++ b/arch/arm/mach-ixp4xx/ixdp425-setup.c | |||
@@ -256,7 +256,7 @@ MACHINE_START(IXDP425, "Intel IXDP425 Development Platform") | |||
256 | .map_io = ixp4xx_map_io, | 256 | .map_io = ixp4xx_map_io, |
257 | .init_irq = ixp4xx_init_irq, | 257 | .init_irq = ixp4xx_init_irq, |
258 | .timer = &ixp4xx_timer, | 258 | .timer = &ixp4xx_timer, |
259 | .boot_params = 0x0100, | 259 | .atag_offset = 0x100, |
260 | .init_machine = ixdp425_init, | 260 | .init_machine = ixdp425_init, |
261 | #if defined(CONFIG_PCI) | 261 | #if defined(CONFIG_PCI) |
262 | .dma_zone_size = SZ_64M, | 262 | .dma_zone_size = SZ_64M, |
@@ -270,7 +270,7 @@ MACHINE_START(IXDP465, "Intel IXDP465 Development Platform") | |||
270 | .map_io = ixp4xx_map_io, | 270 | .map_io = ixp4xx_map_io, |
271 | .init_irq = ixp4xx_init_irq, | 271 | .init_irq = ixp4xx_init_irq, |
272 | .timer = &ixp4xx_timer, | 272 | .timer = &ixp4xx_timer, |
273 | .boot_params = 0x0100, | 273 | .atag_offset = 0x100, |
274 | .init_machine = ixdp425_init, | 274 | .init_machine = ixdp425_init, |
275 | #if defined(CONFIG_PCI) | 275 | #if defined(CONFIG_PCI) |
276 | .dma_zone_size = SZ_64M, | 276 | .dma_zone_size = SZ_64M, |
@@ -284,7 +284,7 @@ MACHINE_START(IXCDP1100, "Intel IXCDP1100 Development Platform") | |||
284 | .map_io = ixp4xx_map_io, | 284 | .map_io = ixp4xx_map_io, |
285 | .init_irq = ixp4xx_init_irq, | 285 | .init_irq = ixp4xx_init_irq, |
286 | .timer = &ixp4xx_timer, | 286 | .timer = &ixp4xx_timer, |
287 | .boot_params = 0x0100, | 287 | .atag_offset = 0x100, |
288 | .init_machine = ixdp425_init, | 288 | .init_machine = ixdp425_init, |
289 | #if defined(CONFIG_PCI) | 289 | #if defined(CONFIG_PCI) |
290 | .dma_zone_size = SZ_64M, | 290 | .dma_zone_size = SZ_64M, |
@@ -298,7 +298,7 @@ MACHINE_START(KIXRP435, "Intel KIXRP435 Reference Platform") | |||
298 | .map_io = ixp4xx_map_io, | 298 | .map_io = ixp4xx_map_io, |
299 | .init_irq = ixp4xx_init_irq, | 299 | .init_irq = ixp4xx_init_irq, |
300 | .timer = &ixp4xx_timer, | 300 | .timer = &ixp4xx_timer, |
301 | .boot_params = 0x0100, | 301 | .atag_offset = 0x100, |
302 | .init_machine = ixdp425_init, | 302 | .init_machine = ixdp425_init, |
303 | #if defined(CONFIG_PCI) | 303 | #if defined(CONFIG_PCI) |
304 | .dma_zone_size = SZ_64M, | 304 | .dma_zone_size = SZ_64M, |
diff --git a/arch/arm/mach-ixp4xx/nas100d-setup.c b/arch/arm/mach-ixp4xx/nas100d-setup.c index afb51879d9a4..9f4669260d4c 100644 --- a/arch/arm/mach-ixp4xx/nas100d-setup.c +++ b/arch/arm/mach-ixp4xx/nas100d-setup.c | |||
@@ -314,7 +314,7 @@ static void __init nas100d_init(void) | |||
314 | 314 | ||
315 | MACHINE_START(NAS100D, "Iomega NAS 100d") | 315 | MACHINE_START(NAS100D, "Iomega NAS 100d") |
316 | /* Maintainer: www.nslu2-linux.org */ | 316 | /* Maintainer: www.nslu2-linux.org */ |
317 | .boot_params = 0x00000100, | 317 | .atag_offset = 0x100, |
318 | .map_io = ixp4xx_map_io, | 318 | .map_io = ixp4xx_map_io, |
319 | .init_irq = ixp4xx_init_irq, | 319 | .init_irq = ixp4xx_init_irq, |
320 | .timer = &ixp4xx_timer, | 320 | .timer = &ixp4xx_timer, |
diff --git a/arch/arm/mach-ixp4xx/nslu2-setup.c b/arch/arm/mach-ixp4xx/nslu2-setup.c index 69e40f2cf092..3676fbf6ef9c 100644 --- a/arch/arm/mach-ixp4xx/nslu2-setup.c +++ b/arch/arm/mach-ixp4xx/nslu2-setup.c | |||
@@ -300,7 +300,7 @@ static void __init nslu2_init(void) | |||
300 | 300 | ||
301 | MACHINE_START(NSLU2, "Linksys NSLU2") | 301 | MACHINE_START(NSLU2, "Linksys NSLU2") |
302 | /* Maintainer: www.nslu2-linux.org */ | 302 | /* Maintainer: www.nslu2-linux.org */ |
303 | .boot_params = 0x00000100, | 303 | .atag_offset = 0x100, |
304 | .map_io = ixp4xx_map_io, | 304 | .map_io = ixp4xx_map_io, |
305 | .init_irq = ixp4xx_init_irq, | 305 | .init_irq = ixp4xx_init_irq, |
306 | .timer = &nslu2_timer, | 306 | .timer = &nslu2_timer, |
diff --git a/arch/arm/mach-ixp4xx/vulcan-setup.c b/arch/arm/mach-ixp4xx/vulcan-setup.c index 045336c833af..27e469ef4523 100644 --- a/arch/arm/mach-ixp4xx/vulcan-setup.c +++ b/arch/arm/mach-ixp4xx/vulcan-setup.c | |||
@@ -239,7 +239,7 @@ MACHINE_START(ARCOM_VULCAN, "Arcom/Eurotech Vulcan") | |||
239 | .map_io = ixp4xx_map_io, | 239 | .map_io = ixp4xx_map_io, |
240 | .init_irq = ixp4xx_init_irq, | 240 | .init_irq = ixp4xx_init_irq, |
241 | .timer = &ixp4xx_timer, | 241 | .timer = &ixp4xx_timer, |
242 | .boot_params = 0x0100, | 242 | .atag_offset = 0x100, |
243 | .init_machine = vulcan_init, | 243 | .init_machine = vulcan_init, |
244 | #if defined(CONFIG_PCI) | 244 | #if defined(CONFIG_PCI) |
245 | .dma_zone_size = SZ_64M, | 245 | .dma_zone_size = SZ_64M, |
diff --git a/arch/arm/mach-ixp4xx/wg302v2-setup.c b/arch/arm/mach-ixp4xx/wg302v2-setup.c index 40b9fad800b8..b14144b967a7 100644 --- a/arch/arm/mach-ixp4xx/wg302v2-setup.c +++ b/arch/arm/mach-ixp4xx/wg302v2-setup.c | |||
@@ -100,7 +100,7 @@ MACHINE_START(WG302V2, "Netgear WG302 v2 / WAG302 v2") | |||
100 | .map_io = ixp4xx_map_io, | 100 | .map_io = ixp4xx_map_io, |
101 | .init_irq = ixp4xx_init_irq, | 101 | .init_irq = ixp4xx_init_irq, |
102 | .timer = &ixp4xx_timer, | 102 | .timer = &ixp4xx_timer, |
103 | .boot_params = 0x0100, | 103 | .atag_offset = 0x100, |
104 | .init_machine = wg302v2_init, | 104 | .init_machine = wg302v2_init, |
105 | #if defined(CONFIG_PCI) | 105 | #if defined(CONFIG_PCI) |
106 | .dma_zone_size = SZ_64M, | 106 | .dma_zone_size = SZ_64M, |
diff --git a/arch/arm/mach-kirkwood/d2net_v2-setup.c b/arch/arm/mach-kirkwood/d2net_v2-setup.c index 043cfd5e140b..f457e07a65f0 100644 --- a/arch/arm/mach-kirkwood/d2net_v2-setup.c +++ b/arch/arm/mach-kirkwood/d2net_v2-setup.c | |||
@@ -221,7 +221,7 @@ static void __init d2net_v2_init(void) | |||
221 | } | 221 | } |
222 | 222 | ||
223 | MACHINE_START(D2NET_V2, "LaCie d2 Network v2") | 223 | MACHINE_START(D2NET_V2, "LaCie d2 Network v2") |
224 | .boot_params = 0x00000100, | 224 | .atag_offset = 0x100, |
225 | .init_machine = d2net_v2_init, | 225 | .init_machine = d2net_v2_init, |
226 | .map_io = kirkwood_map_io, | 226 | .map_io = kirkwood_map_io, |
227 | .init_early = kirkwood_init_early, | 227 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/db88f6281-bp-setup.c b/arch/arm/mach-kirkwood/db88f6281-bp-setup.c index bff04e04d679..ff4c21c1f923 100644 --- a/arch/arm/mach-kirkwood/db88f6281-bp-setup.c +++ b/arch/arm/mach-kirkwood/db88f6281-bp-setup.c | |||
@@ -97,7 +97,7 @@ subsys_initcall(db88f6281_pci_init); | |||
97 | 97 | ||
98 | MACHINE_START(DB88F6281_BP, "Marvell DB-88F6281-BP Development Board") | 98 | MACHINE_START(DB88F6281_BP, "Marvell DB-88F6281-BP Development Board") |
99 | /* Maintainer: Saeed Bishara <saeed@marvell.com> */ | 99 | /* Maintainer: Saeed Bishara <saeed@marvell.com> */ |
100 | .boot_params = 0x00000100, | 100 | .atag_offset = 0x100, |
101 | .init_machine = db88f6281_init, | 101 | .init_machine = db88f6281_init, |
102 | .map_io = kirkwood_map_io, | 102 | .map_io = kirkwood_map_io, |
103 | .init_early = kirkwood_init_early, | 103 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/dockstar-setup.c b/arch/arm/mach-kirkwood/dockstar-setup.c index f14dfb8508c5..e4d199b2b1e8 100644 --- a/arch/arm/mach-kirkwood/dockstar-setup.c +++ b/arch/arm/mach-kirkwood/dockstar-setup.c | |||
@@ -102,7 +102,7 @@ static void __init dockstar_init(void) | |||
102 | } | 102 | } |
103 | 103 | ||
104 | MACHINE_START(DOCKSTAR, "Seagate FreeAgent DockStar") | 104 | MACHINE_START(DOCKSTAR, "Seagate FreeAgent DockStar") |
105 | .boot_params = 0x00000100, | 105 | .atag_offset = 0x100, |
106 | .init_machine = dockstar_init, | 106 | .init_machine = dockstar_init, |
107 | .map_io = kirkwood_map_io, | 107 | .map_io = kirkwood_map_io, |
108 | .init_early = kirkwood_init_early, | 108 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/guruplug-setup.c b/arch/arm/mach-kirkwood/guruplug-setup.c index 41d1b40696a3..6c40f784b516 100644 --- a/arch/arm/mach-kirkwood/guruplug-setup.c +++ b/arch/arm/mach-kirkwood/guruplug-setup.c | |||
@@ -121,7 +121,7 @@ static void __init guruplug_init(void) | |||
121 | 121 | ||
122 | MACHINE_START(GURUPLUG, "Marvell GuruPlug Reference Board") | 122 | MACHINE_START(GURUPLUG, "Marvell GuruPlug Reference Board") |
123 | /* Maintainer: Siddarth Gore <gores@marvell.com> */ | 123 | /* Maintainer: Siddarth Gore <gores@marvell.com> */ |
124 | .boot_params = 0x00000100, | 124 | .atag_offset = 0x100, |
125 | .init_machine = guruplug_init, | 125 | .init_machine = guruplug_init, |
126 | .map_io = kirkwood_map_io, | 126 | .map_io = kirkwood_map_io, |
127 | .init_early = kirkwood_init_early, | 127 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/mv88f6281gtw_ge-setup.c b/arch/arm/mach-kirkwood/mv88f6281gtw_ge-setup.c index 00cca22eca6f..9a1e917352f7 100644 --- a/arch/arm/mach-kirkwood/mv88f6281gtw_ge-setup.c +++ b/arch/arm/mach-kirkwood/mv88f6281gtw_ge-setup.c | |||
@@ -163,7 +163,7 @@ subsys_initcall(mv88f6281gtw_ge_pci_init); | |||
163 | 163 | ||
164 | MACHINE_START(MV88F6281GTW_GE, "Marvell 88F6281 GTW GE Board") | 164 | MACHINE_START(MV88F6281GTW_GE, "Marvell 88F6281 GTW GE Board") |
165 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ | 165 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ |
166 | .boot_params = 0x00000100, | 166 | .atag_offset = 0x100, |
167 | .init_machine = mv88f6281gtw_ge_init, | 167 | .init_machine = mv88f6281gtw_ge_init, |
168 | .map_io = kirkwood_map_io, | 168 | .map_io = kirkwood_map_io, |
169 | .init_early = kirkwood_init_early, | 169 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/netspace_v2-setup.c b/arch/arm/mach-kirkwood/netspace_v2-setup.c index 7cdab5776452..8849bcc7328e 100644 --- a/arch/arm/mach-kirkwood/netspace_v2-setup.c +++ b/arch/arm/mach-kirkwood/netspace_v2-setup.c | |||
@@ -258,7 +258,7 @@ static void __init netspace_v2_init(void) | |||
258 | 258 | ||
259 | #ifdef CONFIG_MACH_NETSPACE_V2 | 259 | #ifdef CONFIG_MACH_NETSPACE_V2 |
260 | MACHINE_START(NETSPACE_V2, "LaCie Network Space v2") | 260 | MACHINE_START(NETSPACE_V2, "LaCie Network Space v2") |
261 | .boot_params = 0x00000100, | 261 | .atag_offset = 0x100, |
262 | .init_machine = netspace_v2_init, | 262 | .init_machine = netspace_v2_init, |
263 | .map_io = kirkwood_map_io, | 263 | .map_io = kirkwood_map_io, |
264 | .init_early = kirkwood_init_early, | 264 | .init_early = kirkwood_init_early, |
@@ -269,7 +269,7 @@ MACHINE_END | |||
269 | 269 | ||
270 | #ifdef CONFIG_MACH_INETSPACE_V2 | 270 | #ifdef CONFIG_MACH_INETSPACE_V2 |
271 | MACHINE_START(INETSPACE_V2, "LaCie Internet Space v2") | 271 | MACHINE_START(INETSPACE_V2, "LaCie Internet Space v2") |
272 | .boot_params = 0x00000100, | 272 | .atag_offset = 0x100, |
273 | .init_machine = netspace_v2_init, | 273 | .init_machine = netspace_v2_init, |
274 | .map_io = kirkwood_map_io, | 274 | .map_io = kirkwood_map_io, |
275 | .init_early = kirkwood_init_early, | 275 | .init_early = kirkwood_init_early, |
@@ -280,7 +280,7 @@ MACHINE_END | |||
280 | 280 | ||
281 | #ifdef CONFIG_MACH_NETSPACE_MAX_V2 | 281 | #ifdef CONFIG_MACH_NETSPACE_MAX_V2 |
282 | MACHINE_START(NETSPACE_MAX_V2, "LaCie Network Space Max v2") | 282 | MACHINE_START(NETSPACE_MAX_V2, "LaCie Network Space Max v2") |
283 | .boot_params = 0x00000100, | 283 | .atag_offset = 0x100, |
284 | .init_machine = netspace_v2_init, | 284 | .init_machine = netspace_v2_init, |
285 | .map_io = kirkwood_map_io, | 285 | .map_io = kirkwood_map_io, |
286 | .init_early = kirkwood_init_early, | 286 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/netxbig_v2-setup.c b/arch/arm/mach-kirkwood/netxbig_v2-setup.c index 6be627deb0fc..1ba12c4dff8f 100644 --- a/arch/arm/mach-kirkwood/netxbig_v2-setup.c +++ b/arch/arm/mach-kirkwood/netxbig_v2-setup.c | |||
@@ -399,7 +399,7 @@ static void __init netxbig_v2_init(void) | |||
399 | 399 | ||
400 | #ifdef CONFIG_MACH_NET2BIG_V2 | 400 | #ifdef CONFIG_MACH_NET2BIG_V2 |
401 | MACHINE_START(NET2BIG_V2, "LaCie 2Big Network v2") | 401 | MACHINE_START(NET2BIG_V2, "LaCie 2Big Network v2") |
402 | .boot_params = 0x00000100, | 402 | .atag_offset = 0x100, |
403 | .init_machine = netxbig_v2_init, | 403 | .init_machine = netxbig_v2_init, |
404 | .map_io = kirkwood_map_io, | 404 | .map_io = kirkwood_map_io, |
405 | .init_early = kirkwood_init_early, | 405 | .init_early = kirkwood_init_early, |
@@ -410,7 +410,7 @@ MACHINE_END | |||
410 | 410 | ||
411 | #ifdef CONFIG_MACH_NET5BIG_V2 | 411 | #ifdef CONFIG_MACH_NET5BIG_V2 |
412 | MACHINE_START(NET5BIG_V2, "LaCie 5Big Network v2") | 412 | MACHINE_START(NET5BIG_V2, "LaCie 5Big Network v2") |
413 | .boot_params = 0x00000100, | 413 | .atag_offset = 0x100, |
414 | .init_machine = netxbig_v2_init, | 414 | .init_machine = netxbig_v2_init, |
415 | .map_io = kirkwood_map_io, | 415 | .map_io = kirkwood_map_io, |
416 | .init_early = kirkwood_init_early, | 416 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/openrd-setup.c b/arch/arm/mach-kirkwood/openrd-setup.c index f69beeff4450..5660ca6c3d88 100644 --- a/arch/arm/mach-kirkwood/openrd-setup.c +++ b/arch/arm/mach-kirkwood/openrd-setup.c | |||
@@ -214,7 +214,7 @@ subsys_initcall(openrd_pci_init); | |||
214 | #ifdef CONFIG_MACH_OPENRD_BASE | 214 | #ifdef CONFIG_MACH_OPENRD_BASE |
215 | MACHINE_START(OPENRD_BASE, "Marvell OpenRD Base Board") | 215 | MACHINE_START(OPENRD_BASE, "Marvell OpenRD Base Board") |
216 | /* Maintainer: Dhaval Vasa <dhaval.vasa@einfochips.com> */ | 216 | /* Maintainer: Dhaval Vasa <dhaval.vasa@einfochips.com> */ |
217 | .boot_params = 0x00000100, | 217 | .atag_offset = 0x100, |
218 | .init_machine = openrd_init, | 218 | .init_machine = openrd_init, |
219 | .map_io = kirkwood_map_io, | 219 | .map_io = kirkwood_map_io, |
220 | .init_early = kirkwood_init_early, | 220 | .init_early = kirkwood_init_early, |
@@ -226,7 +226,7 @@ MACHINE_END | |||
226 | #ifdef CONFIG_MACH_OPENRD_CLIENT | 226 | #ifdef CONFIG_MACH_OPENRD_CLIENT |
227 | MACHINE_START(OPENRD_CLIENT, "Marvell OpenRD Client Board") | 227 | MACHINE_START(OPENRD_CLIENT, "Marvell OpenRD Client Board") |
228 | /* Maintainer: Dhaval Vasa <dhaval.vasa@einfochips.com> */ | 228 | /* Maintainer: Dhaval Vasa <dhaval.vasa@einfochips.com> */ |
229 | .boot_params = 0x00000100, | 229 | .atag_offset = 0x100, |
230 | .init_machine = openrd_init, | 230 | .init_machine = openrd_init, |
231 | .map_io = kirkwood_map_io, | 231 | .map_io = kirkwood_map_io, |
232 | .init_early = kirkwood_init_early, | 232 | .init_early = kirkwood_init_early, |
@@ -238,7 +238,7 @@ MACHINE_END | |||
238 | #ifdef CONFIG_MACH_OPENRD_ULTIMATE | 238 | #ifdef CONFIG_MACH_OPENRD_ULTIMATE |
239 | MACHINE_START(OPENRD_ULTIMATE, "Marvell OpenRD Ultimate Board") | 239 | MACHINE_START(OPENRD_ULTIMATE, "Marvell OpenRD Ultimate Board") |
240 | /* Maintainer: Dhaval Vasa <dhaval.vasa@einfochips.com> */ | 240 | /* Maintainer: Dhaval Vasa <dhaval.vasa@einfochips.com> */ |
241 | .boot_params = 0x00000100, | 241 | .atag_offset = 0x100, |
242 | .init_machine = openrd_init, | 242 | .init_machine = openrd_init, |
243 | .map_io = kirkwood_map_io, | 243 | .map_io = kirkwood_map_io, |
244 | .init_early = kirkwood_init_early, | 244 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c b/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c index 75c6601b8d87..6663869773ab 100644 --- a/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c +++ b/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c | |||
@@ -79,7 +79,7 @@ subsys_initcall(rd88f6192_pci_init); | |||
79 | 79 | ||
80 | MACHINE_START(RD88F6192_NAS, "Marvell RD-88F6192-NAS Development Board") | 80 | MACHINE_START(RD88F6192_NAS, "Marvell RD-88F6192-NAS Development Board") |
81 | /* Maintainer: Saeed Bishara <saeed@marvell.com> */ | 81 | /* Maintainer: Saeed Bishara <saeed@marvell.com> */ |
82 | .boot_params = 0x00000100, | 82 | .atag_offset = 0x100, |
83 | .init_machine = rd88f6192_init, | 83 | .init_machine = rd88f6192_init, |
84 | .map_io = kirkwood_map_io, | 84 | .map_io = kirkwood_map_io, |
85 | .init_early = kirkwood_init_early, | 85 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/rd88f6281-setup.c b/arch/arm/mach-kirkwood/rd88f6281-setup.c index 0f75494d5902..66b3c05e37a6 100644 --- a/arch/arm/mach-kirkwood/rd88f6281-setup.c +++ b/arch/arm/mach-kirkwood/rd88f6281-setup.c | |||
@@ -115,7 +115,7 @@ subsys_initcall(rd88f6281_pci_init); | |||
115 | 115 | ||
116 | MACHINE_START(RD88F6281, "Marvell RD-88F6281 Reference Board") | 116 | MACHINE_START(RD88F6281, "Marvell RD-88F6281 Reference Board") |
117 | /* Maintainer: Saeed Bishara <saeed@marvell.com> */ | 117 | /* Maintainer: Saeed Bishara <saeed@marvell.com> */ |
118 | .boot_params = 0x00000100, | 118 | .atag_offset = 0x100, |
119 | .init_machine = rd88f6281_init, | 119 | .init_machine = rd88f6281_init, |
120 | .map_io = kirkwood_map_io, | 120 | .map_io = kirkwood_map_io, |
121 | .init_early = kirkwood_init_early, | 121 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/sheevaplug-setup.c b/arch/arm/mach-kirkwood/sheevaplug-setup.c index 17de0bf53c08..8b102d62e82c 100644 --- a/arch/arm/mach-kirkwood/sheevaplug-setup.c +++ b/arch/arm/mach-kirkwood/sheevaplug-setup.c | |||
@@ -138,7 +138,7 @@ static void __init sheevaplug_init(void) | |||
138 | #ifdef CONFIG_MACH_SHEEVAPLUG | 138 | #ifdef CONFIG_MACH_SHEEVAPLUG |
139 | MACHINE_START(SHEEVAPLUG, "Marvell SheevaPlug Reference Board") | 139 | MACHINE_START(SHEEVAPLUG, "Marvell SheevaPlug Reference Board") |
140 | /* Maintainer: shadi Ammouri <shadi@marvell.com> */ | 140 | /* Maintainer: shadi Ammouri <shadi@marvell.com> */ |
141 | .boot_params = 0x00000100, | 141 | .atag_offset = 0x100, |
142 | .init_machine = sheevaplug_init, | 142 | .init_machine = sheevaplug_init, |
143 | .map_io = kirkwood_map_io, | 143 | .map_io = kirkwood_map_io, |
144 | .init_early = kirkwood_init_early, | 144 | .init_early = kirkwood_init_early, |
@@ -149,7 +149,7 @@ MACHINE_END | |||
149 | 149 | ||
150 | #ifdef CONFIG_MACH_ESATA_SHEEVAPLUG | 150 | #ifdef CONFIG_MACH_ESATA_SHEEVAPLUG |
151 | MACHINE_START(ESATA_SHEEVAPLUG, "Marvell eSATA SheevaPlug Reference Board") | 151 | MACHINE_START(ESATA_SHEEVAPLUG, "Marvell eSATA SheevaPlug Reference Board") |
152 | .boot_params = 0x00000100, | 152 | .atag_offset = 0x100, |
153 | .init_machine = sheevaplug_init, | 153 | .init_machine = sheevaplug_init, |
154 | .map_io = kirkwood_map_io, | 154 | .map_io = kirkwood_map_io, |
155 | .init_early = kirkwood_init_early, | 155 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/t5325-setup.c b/arch/arm/mach-kirkwood/t5325-setup.c index e6b9b1b22a35..ea104fb5ec3d 100644 --- a/arch/arm/mach-kirkwood/t5325-setup.c +++ b/arch/arm/mach-kirkwood/t5325-setup.c | |||
@@ -201,7 +201,7 @@ subsys_initcall(hp_t5325_pci_init); | |||
201 | 201 | ||
202 | MACHINE_START(T5325, "HP t5325 Thin Client") | 202 | MACHINE_START(T5325, "HP t5325 Thin Client") |
203 | /* Maintainer: Martin Michlmayr <tbm@cyrius.com> */ | 203 | /* Maintainer: Martin Michlmayr <tbm@cyrius.com> */ |
204 | .boot_params = 0x00000100, | 204 | .atag_offset = 0x100, |
205 | .init_machine = hp_t5325_init, | 205 | .init_machine = hp_t5325_init, |
206 | .map_io = kirkwood_map_io, | 206 | .map_io = kirkwood_map_io, |
207 | .init_early = kirkwood_init_early, | 207 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/ts219-setup.c b/arch/arm/mach-kirkwood/ts219-setup.c index 68f32f2bf552..262c034836d4 100644 --- a/arch/arm/mach-kirkwood/ts219-setup.c +++ b/arch/arm/mach-kirkwood/ts219-setup.c | |||
@@ -132,7 +132,7 @@ subsys_initcall(ts219_pci_init); | |||
132 | 132 | ||
133 | MACHINE_START(TS219, "QNAP TS-119/TS-219") | 133 | MACHINE_START(TS219, "QNAP TS-119/TS-219") |
134 | /* Maintainer: Martin Michlmayr <tbm@cyrius.com> */ | 134 | /* Maintainer: Martin Michlmayr <tbm@cyrius.com> */ |
135 | .boot_params = 0x00000100, | 135 | .atag_offset = 0x100, |
136 | .init_machine = qnap_ts219_init, | 136 | .init_machine = qnap_ts219_init, |
137 | .map_io = kirkwood_map_io, | 137 | .map_io = kirkwood_map_io, |
138 | .init_early = kirkwood_init_early, | 138 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-kirkwood/ts41x-setup.c b/arch/arm/mach-kirkwood/ts41x-setup.c index d5d009970705..b68f5b4a9ec8 100644 --- a/arch/arm/mach-kirkwood/ts41x-setup.c +++ b/arch/arm/mach-kirkwood/ts41x-setup.c | |||
@@ -176,7 +176,7 @@ subsys_initcall(ts41x_pci_init); | |||
176 | 176 | ||
177 | MACHINE_START(TS41X, "QNAP TS-41x") | 177 | MACHINE_START(TS41X, "QNAP TS-41x") |
178 | /* Maintainer: Martin Michlmayr <tbm@cyrius.com> */ | 178 | /* Maintainer: Martin Michlmayr <tbm@cyrius.com> */ |
179 | .boot_params = 0x00000100, | 179 | .atag_offset = 0x100, |
180 | .init_machine = qnap_ts41x_init, | 180 | .init_machine = qnap_ts41x_init, |
181 | .map_io = kirkwood_map_io, | 181 | .map_io = kirkwood_map_io, |
182 | .init_early = kirkwood_init_early, | 182 | .init_early = kirkwood_init_early, |
diff --git a/arch/arm/mach-ks8695/board-acs5k.c b/arch/arm/mach-ks8695/board-acs5k.c index 3ca4f8e6f54f..a5fcc7c7fe18 100644 --- a/arch/arm/mach-ks8695/board-acs5k.c +++ b/arch/arm/mach-ks8695/board-acs5k.c | |||
@@ -223,7 +223,7 @@ static void __init acs5k_init(void) | |||
223 | 223 | ||
224 | MACHINE_START(ACS5K, "Brivo Systems LLC ACS-5000 Master board") | 224 | MACHINE_START(ACS5K, "Brivo Systems LLC ACS-5000 Master board") |
225 | /* Maintainer: Simtec Electronics. */ | 225 | /* Maintainer: Simtec Electronics. */ |
226 | .boot_params = KS8695_SDRAM_PA + 0x100, | 226 | .atag_offset = 0x100, |
227 | .map_io = ks8695_map_io, | 227 | .map_io = ks8695_map_io, |
228 | .init_irq = ks8695_init_irq, | 228 | .init_irq = ks8695_init_irq, |
229 | .init_machine = acs5k_init, | 229 | .init_machine = acs5k_init, |
diff --git a/arch/arm/mach-ks8695/board-dsm320.c b/arch/arm/mach-ks8695/board-dsm320.c index 1338cb3e9827..fb91a716a7db 100644 --- a/arch/arm/mach-ks8695/board-dsm320.c +++ b/arch/arm/mach-ks8695/board-dsm320.c | |||
@@ -121,7 +121,7 @@ static void __init dsm320_init(void) | |||
121 | 121 | ||
122 | MACHINE_START(DSM320, "D-Link DSM-320 Wireless Media Player") | 122 | MACHINE_START(DSM320, "D-Link DSM-320 Wireless Media Player") |
123 | /* Maintainer: Simtec Electronics. */ | 123 | /* Maintainer: Simtec Electronics. */ |
124 | .boot_params = KS8695_SDRAM_PA + 0x100, | 124 | .atag_offset = 0x100, |
125 | .map_io = ks8695_map_io, | 125 | .map_io = ks8695_map_io, |
126 | .init_irq = ks8695_init_irq, | 126 | .init_irq = ks8695_init_irq, |
127 | .init_machine = dsm320_init, | 127 | .init_machine = dsm320_init, |
diff --git a/arch/arm/mach-ks8695/board-micrel.c b/arch/arm/mach-ks8695/board-micrel.c index e2e3cba8dcdb..8f67a750b6c7 100644 --- a/arch/arm/mach-ks8695/board-micrel.c +++ b/arch/arm/mach-ks8695/board-micrel.c | |||
@@ -53,7 +53,7 @@ static void __init micrel_init(void) | |||
53 | 53 | ||
54 | MACHINE_START(KS8695, "KS8695 Centaur Development Board") | 54 | MACHINE_START(KS8695, "KS8695 Centaur Development Board") |
55 | /* Maintainer: Micrel Semiconductor Inc. */ | 55 | /* Maintainer: Micrel Semiconductor Inc. */ |
56 | .boot_params = KS8695_SDRAM_PA + 0x100, | 56 | .atag_offset = 0x100, |
57 | .map_io = ks8695_map_io, | 57 | .map_io = ks8695_map_io, |
58 | .init_irq = ks8695_init_irq, | 58 | .init_irq = ks8695_init_irq, |
59 | .init_machine = micrel_init, | 59 | .init_machine = micrel_init, |
diff --git a/arch/arm/mach-lpc32xx/phy3250.c b/arch/arm/mach-lpc32xx/phy3250.c index 7993b096778e..9b621e14d16a 100644 --- a/arch/arm/mach-lpc32xx/phy3250.c +++ b/arch/arm/mach-lpc32xx/phy3250.c | |||
@@ -382,7 +382,7 @@ arch_initcall(lpc32xx_display_uid); | |||
382 | 382 | ||
383 | MACHINE_START(PHY3250, "Phytec 3250 board with the LPC3250 Microcontroller") | 383 | MACHINE_START(PHY3250, "Phytec 3250 board with the LPC3250 Microcontroller") |
384 | /* Maintainer: Kevin Wells, NXP Semiconductors */ | 384 | /* Maintainer: Kevin Wells, NXP Semiconductors */ |
385 | .boot_params = 0x80000100, | 385 | .atag_offset = 0x100, |
386 | .map_io = lpc32xx_map_io, | 386 | .map_io = lpc32xx_map_io, |
387 | .init_irq = lpc32xx_init_irq, | 387 | .init_irq = lpc32xx_init_irq, |
388 | .timer = &lpc32xx_timer, | 388 | .timer = &lpc32xx_timer, |
diff --git a/arch/arm/mach-msm/board-halibut.c b/arch/arm/mach-msm/board-halibut.c index 18a3c97bc863..16c86f8b4f3f 100644 --- a/arch/arm/mach-msm/board-halibut.c +++ b/arch/arm/mach-msm/board-halibut.c | |||
@@ -93,7 +93,7 @@ static void __init halibut_map_io(void) | |||
93 | } | 93 | } |
94 | 94 | ||
95 | MACHINE_START(HALIBUT, "Halibut Board (QCT SURF7200A)") | 95 | MACHINE_START(HALIBUT, "Halibut Board (QCT SURF7200A)") |
96 | .boot_params = 0x10000100, | 96 | .atag_offset = 0x100, |
97 | .fixup = halibut_fixup, | 97 | .fixup = halibut_fixup, |
98 | .map_io = halibut_map_io, | 98 | .map_io = halibut_map_io, |
99 | .init_irq = halibut_init_irq, | 99 | .init_irq = halibut_init_irq, |
diff --git a/arch/arm/mach-msm/board-mahimahi.c b/arch/arm/mach-msm/board-mahimahi.c index 7a9a03eb189c..8a1672ee4e4a 100644 --- a/arch/arm/mach-msm/board-mahimahi.c +++ b/arch/arm/mach-msm/board-mahimahi.c | |||
@@ -74,7 +74,7 @@ static void __init mahimahi_map_io(void) | |||
74 | extern struct sys_timer msm_timer; | 74 | extern struct sys_timer msm_timer; |
75 | 75 | ||
76 | MACHINE_START(MAHIMAHI, "mahimahi") | 76 | MACHINE_START(MAHIMAHI, "mahimahi") |
77 | .boot_params = 0x20000100, | 77 | .atag_offset = 0x100, |
78 | .fixup = mahimahi_fixup, | 78 | .fixup = mahimahi_fixup, |
79 | .map_io = mahimahi_map_io, | 79 | .map_io = mahimahi_map_io, |
80 | .init_irq = msm_init_irq, | 80 | .init_irq = msm_init_irq, |
diff --git a/arch/arm/mach-msm/board-msm7x27.c b/arch/arm/mach-msm/board-msm7x27.c index c03f269e2e4b..a80765533f13 100644 --- a/arch/arm/mach-msm/board-msm7x27.c +++ b/arch/arm/mach-msm/board-msm7x27.c | |||
@@ -130,7 +130,7 @@ static void __init msm7x2x_map_io(void) | |||
130 | } | 130 | } |
131 | 131 | ||
132 | MACHINE_START(MSM7X27_SURF, "QCT MSM7x27 SURF") | 132 | MACHINE_START(MSM7X27_SURF, "QCT MSM7x27 SURF") |
133 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 133 | .atag_offset = 0x100, |
134 | .map_io = msm7x2x_map_io, | 134 | .map_io = msm7x2x_map_io, |
135 | .init_irq = msm7x2x_init_irq, | 135 | .init_irq = msm7x2x_init_irq, |
136 | .init_machine = msm7x2x_init, | 136 | .init_machine = msm7x2x_init, |
@@ -138,7 +138,7 @@ MACHINE_START(MSM7X27_SURF, "QCT MSM7x27 SURF") | |||
138 | MACHINE_END | 138 | MACHINE_END |
139 | 139 | ||
140 | MACHINE_START(MSM7X27_FFA, "QCT MSM7x27 FFA") | 140 | MACHINE_START(MSM7X27_FFA, "QCT MSM7x27 FFA") |
141 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 141 | .atag_offset = 0x100, |
142 | .map_io = msm7x2x_map_io, | 142 | .map_io = msm7x2x_map_io, |
143 | .init_irq = msm7x2x_init_irq, | 143 | .init_irq = msm7x2x_init_irq, |
144 | .init_machine = msm7x2x_init, | 144 | .init_machine = msm7x2x_init, |
@@ -146,7 +146,7 @@ MACHINE_START(MSM7X27_FFA, "QCT MSM7x27 FFA") | |||
146 | MACHINE_END | 146 | MACHINE_END |
147 | 147 | ||
148 | MACHINE_START(MSM7X25_SURF, "QCT MSM7x25 SURF") | 148 | MACHINE_START(MSM7X25_SURF, "QCT MSM7x25 SURF") |
149 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 149 | .atag_offset = 0x100, |
150 | .map_io = msm7x2x_map_io, | 150 | .map_io = msm7x2x_map_io, |
151 | .init_irq = msm7x2x_init_irq, | 151 | .init_irq = msm7x2x_init_irq, |
152 | .init_machine = msm7x2x_init, | 152 | .init_machine = msm7x2x_init, |
@@ -154,7 +154,7 @@ MACHINE_START(MSM7X25_SURF, "QCT MSM7x25 SURF") | |||
154 | MACHINE_END | 154 | MACHINE_END |
155 | 155 | ||
156 | MACHINE_START(MSM7X25_FFA, "QCT MSM7x25 FFA") | 156 | MACHINE_START(MSM7X25_FFA, "QCT MSM7x25 FFA") |
157 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 157 | .atag_offset = 0x100, |
158 | .map_io = msm7x2x_map_io, | 158 | .map_io = msm7x2x_map_io, |
159 | .init_irq = msm7x2x_init_irq, | 159 | .init_irq = msm7x2x_init_irq, |
160 | .init_machine = msm7x2x_init, | 160 | .init_machine = msm7x2x_init, |
diff --git a/arch/arm/mach-msm/board-msm7x30.c b/arch/arm/mach-msm/board-msm7x30.c index b7a84966b711..5a2ab6855183 100644 --- a/arch/arm/mach-msm/board-msm7x30.c +++ b/arch/arm/mach-msm/board-msm7x30.c | |||
@@ -106,7 +106,7 @@ static void __init msm7x30_map_io(void) | |||
106 | } | 106 | } |
107 | 107 | ||
108 | MACHINE_START(MSM7X30_SURF, "QCT MSM7X30 SURF") | 108 | MACHINE_START(MSM7X30_SURF, "QCT MSM7X30 SURF") |
109 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 109 | .atag_offset = 0x100, |
110 | .map_io = msm7x30_map_io, | 110 | .map_io = msm7x30_map_io, |
111 | .init_irq = msm7x30_init_irq, | 111 | .init_irq = msm7x30_init_irq, |
112 | .init_machine = msm7x30_init, | 112 | .init_machine = msm7x30_init, |
@@ -114,7 +114,7 @@ MACHINE_START(MSM7X30_SURF, "QCT MSM7X30 SURF") | |||
114 | MACHINE_END | 114 | MACHINE_END |
115 | 115 | ||
116 | MACHINE_START(MSM7X30_FFA, "QCT MSM7X30 FFA") | 116 | MACHINE_START(MSM7X30_FFA, "QCT MSM7X30 FFA") |
117 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 117 | .atag_offset = 0x100, |
118 | .map_io = msm7x30_map_io, | 118 | .map_io = msm7x30_map_io, |
119 | .init_irq = msm7x30_init_irq, | 119 | .init_irq = msm7x30_init_irq, |
120 | .init_machine = msm7x30_init, | 120 | .init_machine = msm7x30_init, |
@@ -122,7 +122,7 @@ MACHINE_START(MSM7X30_FFA, "QCT MSM7X30 FFA") | |||
122 | MACHINE_END | 122 | MACHINE_END |
123 | 123 | ||
124 | MACHINE_START(MSM7X30_FLUID, "QCT MSM7X30 FLUID") | 124 | MACHINE_START(MSM7X30_FLUID, "QCT MSM7X30 FLUID") |
125 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 125 | .atag_offset = 0x100, |
126 | .map_io = msm7x30_map_io, | 126 | .map_io = msm7x30_map_io, |
127 | .init_irq = msm7x30_init_irq, | 127 | .init_irq = msm7x30_init_irq, |
128 | .init_machine = msm7x30_init, | 128 | .init_machine = msm7x30_init, |
diff --git a/arch/arm/mach-msm/board-qsd8x50.c b/arch/arm/mach-msm/board-qsd8x50.c index 6a96911b0ad5..51109b1f4342 100644 --- a/arch/arm/mach-msm/board-qsd8x50.c +++ b/arch/arm/mach-msm/board-qsd8x50.c | |||
@@ -193,7 +193,7 @@ static void __init qsd8x50_init(void) | |||
193 | } | 193 | } |
194 | 194 | ||
195 | MACHINE_START(QSD8X50_SURF, "QCT QSD8X50 SURF") | 195 | MACHINE_START(QSD8X50_SURF, "QCT QSD8X50 SURF") |
196 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 196 | .atag_offset = 0x100, |
197 | .map_io = qsd8x50_map_io, | 197 | .map_io = qsd8x50_map_io, |
198 | .init_irq = qsd8x50_init_irq, | 198 | .init_irq = qsd8x50_init_irq, |
199 | .init_machine = qsd8x50_init, | 199 | .init_machine = qsd8x50_init, |
@@ -201,7 +201,7 @@ MACHINE_START(QSD8X50_SURF, "QCT QSD8X50 SURF") | |||
201 | MACHINE_END | 201 | MACHINE_END |
202 | 202 | ||
203 | MACHINE_START(QSD8X50A_ST1_5, "QCT QSD8X50A ST1.5") | 203 | MACHINE_START(QSD8X50A_ST1_5, "QCT QSD8X50A ST1.5") |
204 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 204 | .atag_offset = 0x100, |
205 | .map_io = qsd8x50_map_io, | 205 | .map_io = qsd8x50_map_io, |
206 | .init_irq = qsd8x50_init_irq, | 206 | .init_irq = qsd8x50_init_irq, |
207 | .init_machine = qsd8x50_init, | 207 | .init_machine = qsd8x50_init, |
diff --git a/arch/arm/mach-msm/board-sapphire.c b/arch/arm/mach-msm/board-sapphire.c index 68f930f07d77..dc0bcb5a6b9a 100644 --- a/arch/arm/mach-msm/board-sapphire.c +++ b/arch/arm/mach-msm/board-sapphire.c | |||
@@ -105,7 +105,7 @@ static void __init sapphire_map_io(void) | |||
105 | 105 | ||
106 | MACHINE_START(SAPPHIRE, "sapphire") | 106 | MACHINE_START(SAPPHIRE, "sapphire") |
107 | /* Maintainer: Brian Swetland <swetland@google.com> */ | 107 | /* Maintainer: Brian Swetland <swetland@google.com> */ |
108 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 108 | .atag_offset = 0x100, |
109 | .fixup = sapphire_fixup, | 109 | .fixup = sapphire_fixup, |
110 | .map_io = sapphire_map_io, | 110 | .map_io = sapphire_map_io, |
111 | .init_irq = sapphire_init_irq, | 111 | .init_irq = sapphire_init_irq, |
diff --git a/arch/arm/mach-msm/board-trout.c b/arch/arm/mach-msm/board-trout.c index 814386772c66..22d5694f5fea 100644 --- a/arch/arm/mach-msm/board-trout.c +++ b/arch/arm/mach-msm/board-trout.c | |||
@@ -93,7 +93,7 @@ static void __init trout_map_io(void) | |||
93 | } | 93 | } |
94 | 94 | ||
95 | MACHINE_START(TROUT, "HTC Dream") | 95 | MACHINE_START(TROUT, "HTC Dream") |
96 | .boot_params = 0x10000100, | 96 | .atag_offset = 0x100, |
97 | .fixup = trout_fixup, | 97 | .fixup = trout_fixup, |
98 | .map_io = trout_map_io, | 98 | .map_io = trout_map_io, |
99 | .init_irq = trout_init_irq, | 99 | .init_irq = trout_init_irq, |
diff --git a/arch/arm/mach-mv78xx0/buffalo-wxl-setup.c b/arch/arm/mach-mv78xx0/buffalo-wxl-setup.c index 20f3f125ed2b..0e94268d6e6f 100644 --- a/arch/arm/mach-mv78xx0/buffalo-wxl-setup.c +++ b/arch/arm/mach-mv78xx0/buffalo-wxl-setup.c | |||
@@ -145,7 +145,7 @@ subsys_initcall(wxl_pci_init); | |||
145 | 145 | ||
146 | MACHINE_START(TERASTATION_WXL, "Buffalo Nas WXL") | 146 | MACHINE_START(TERASTATION_WXL, "Buffalo Nas WXL") |
147 | /* Maintainer: Sebastien Requiem <sebastien@requiem.fr> */ | 147 | /* Maintainer: Sebastien Requiem <sebastien@requiem.fr> */ |
148 | .boot_params = 0x00000100, | 148 | .atag_offset = 0x100, |
149 | .init_machine = wxl_init, | 149 | .init_machine = wxl_init, |
150 | .map_io = mv78xx0_map_io, | 150 | .map_io = mv78xx0_map_io, |
151 | .init_early = mv78xx0_init_early, | 151 | .init_early = mv78xx0_init_early, |
diff --git a/arch/arm/mach-mv78xx0/db78x00-bp-setup.c b/arch/arm/mach-mv78xx0/db78x00-bp-setup.c index df5aebe5b0fa..50b85ae2da52 100644 --- a/arch/arm/mach-mv78xx0/db78x00-bp-setup.c +++ b/arch/arm/mach-mv78xx0/db78x00-bp-setup.c | |||
@@ -93,7 +93,7 @@ subsys_initcall(db78x00_pci_init); | |||
93 | 93 | ||
94 | MACHINE_START(DB78X00_BP, "Marvell DB-78x00-BP Development Board") | 94 | MACHINE_START(DB78X00_BP, "Marvell DB-78x00-BP Development Board") |
95 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ | 95 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ |
96 | .boot_params = 0x00000100, | 96 | .atag_offset = 0x100, |
97 | .init_machine = db78x00_init, | 97 | .init_machine = db78x00_init, |
98 | .map_io = mv78xx0_map_io, | 98 | .map_io = mv78xx0_map_io, |
99 | .init_early = mv78xx0_init_early, | 99 | .init_early = mv78xx0_init_early, |
diff --git a/arch/arm/mach-mv78xx0/rd78x00-masa-setup.c b/arch/arm/mach-mv78xx0/rd78x00-masa-setup.c index d927f14c6810..e85222e53578 100644 --- a/arch/arm/mach-mv78xx0/rd78x00-masa-setup.c +++ b/arch/arm/mach-mv78xx0/rd78x00-masa-setup.c | |||
@@ -78,7 +78,7 @@ subsys_initcall(rd78x00_pci_init); | |||
78 | 78 | ||
79 | MACHINE_START(RD78X00_MASA, "Marvell RD-78x00-MASA Development Board") | 79 | MACHINE_START(RD78X00_MASA, "Marvell RD-78x00-MASA Development Board") |
80 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ | 80 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ |
81 | .boot_params = 0x00000100, | 81 | .atag_offset = 0x100, |
82 | .init_machine = rd78x00_masa_init, | 82 | .init_machine = rd78x00_masa_init, |
83 | .map_io = mv78xx0_map_io, | 83 | .map_io = mv78xx0_map_io, |
84 | .init_early = mv78xx0_init_early, | 84 | .init_early = mv78xx0_init_early, |
diff --git a/arch/arm/mach-mx5/Kconfig b/arch/arm/mach-mx5/Kconfig index b4e7c58bbb38..b4f5ab669e48 100644 --- a/arch/arm/mach-mx5/Kconfig +++ b/arch/arm/mach-mx5/Kconfig | |||
@@ -52,7 +52,6 @@ config MACH_MX50_RDP | |||
52 | select IMX_HAVE_PLATFORM_IMX_UART | 52 | select IMX_HAVE_PLATFORM_IMX_UART |
53 | select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX | 53 | select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX |
54 | select IMX_HAVE_PLATFORM_SPI_IMX | 54 | select IMX_HAVE_PLATFORM_SPI_IMX |
55 | select IMX_HAVE_PLATFORM_FEC | ||
56 | help | 55 | help |
57 | Include support for MX50 reference design platform (RDP) board. This | 56 | Include support for MX50 reference design platform (RDP) board. This |
58 | includes specific configurations for the board and its peripherals. | 57 | includes specific configurations for the board and its peripherals. |
@@ -65,9 +64,11 @@ comment "i.MX51 machines:" | |||
65 | config MACH_MX51_BABBAGE | 64 | config MACH_MX51_BABBAGE |
66 | bool "Support MX51 BABBAGE platforms" | 65 | bool "Support MX51 BABBAGE platforms" |
67 | select SOC_IMX51 | 66 | select SOC_IMX51 |
67 | select IMX_HAVE_PLATFORM_FSL_USB2_UDC | ||
68 | select IMX_HAVE_PLATFORM_IMX2_WDT | 68 | select IMX_HAVE_PLATFORM_IMX2_WDT |
69 | select IMX_HAVE_PLATFORM_IMX_I2C | 69 | select IMX_HAVE_PLATFORM_IMX_I2C |
70 | select IMX_HAVE_PLATFORM_IMX_UART | 70 | select IMX_HAVE_PLATFORM_IMX_UART |
71 | select IMX_HAVE_PLATFORM_MXC_EHCI | ||
71 | select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX | 72 | select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX |
72 | select IMX_HAVE_PLATFORM_SPI_IMX | 73 | select IMX_HAVE_PLATFORM_SPI_IMX |
73 | help | 74 | help |
@@ -91,8 +92,10 @@ config MACH_MX51_3DS | |||
91 | config MACH_EUKREA_CPUIMX51 | 92 | config MACH_EUKREA_CPUIMX51 |
92 | bool "Support Eukrea CPUIMX51 module" | 93 | bool "Support Eukrea CPUIMX51 module" |
93 | select SOC_IMX51 | 94 | select SOC_IMX51 |
95 | select IMX_HAVE_PLATFORM_FSL_USB2_UDC | ||
94 | select IMX_HAVE_PLATFORM_IMX_I2C | 96 | select IMX_HAVE_PLATFORM_IMX_I2C |
95 | select IMX_HAVE_PLATFORM_IMX_UART | 97 | select IMX_HAVE_PLATFORM_IMX_UART |
98 | select IMX_HAVE_PLATFORM_MXC_EHCI | ||
96 | select IMX_HAVE_PLATFORM_MXC_NAND | 99 | select IMX_HAVE_PLATFORM_MXC_NAND |
97 | select IMX_HAVE_PLATFORM_SPI_IMX | 100 | select IMX_HAVE_PLATFORM_SPI_IMX |
98 | help | 101 | help |
@@ -119,10 +122,12 @@ endchoice | |||
119 | config MACH_EUKREA_CPUIMX51SD | 122 | config MACH_EUKREA_CPUIMX51SD |
120 | bool "Support Eukrea CPUIMX51SD module" | 123 | bool "Support Eukrea CPUIMX51SD module" |
121 | select SOC_IMX51 | 124 | select SOC_IMX51 |
125 | select IMX_HAVE_PLATFORM_FSL_USB2_UDC | ||
122 | select IMX_HAVE_PLATFORM_IMX_I2C | 126 | select IMX_HAVE_PLATFORM_IMX_I2C |
123 | select IMX_HAVE_PLATFORM_SPI_IMX | ||
124 | select IMX_HAVE_PLATFORM_IMX_UART | 127 | select IMX_HAVE_PLATFORM_IMX_UART |
128 | select IMX_HAVE_PLATFORM_MXC_EHCI | ||
125 | select IMX_HAVE_PLATFORM_MXC_NAND | 129 | select IMX_HAVE_PLATFORM_MXC_NAND |
130 | select IMX_HAVE_PLATFORM_SPI_IMX | ||
126 | help | 131 | help |
127 | Include support for Eukrea CPUIMX51SD platform. This includes | 132 | Include support for Eukrea CPUIMX51SD platform. This includes |
128 | specific configurations for the module and its peripherals. | 133 | specific configurations for the module and its peripherals. |
@@ -147,6 +152,7 @@ config MX51_EFIKA_COMMON | |||
147 | bool | 152 | bool |
148 | select SOC_IMX51 | 153 | select SOC_IMX51 |
149 | select IMX_HAVE_PLATFORM_IMX_UART | 154 | select IMX_HAVE_PLATFORM_IMX_UART |
155 | select IMX_HAVE_PLATFORM_MXC_EHCI | ||
150 | select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX | 156 | select IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX |
151 | select IMX_HAVE_PLATFORM_SPI_IMX | 157 | select IMX_HAVE_PLATFORM_SPI_IMX |
152 | select MXC_ULPI if USB_ULPI | 158 | select MXC_ULPI if USB_ULPI |
diff --git a/arch/arm/mach-mx5/Makefile b/arch/arm/mach-mx5/Makefile index 383e7cd3fbcb..9565304b7282 100644 --- a/arch/arm/mach-mx5/Makefile +++ b/arch/arm/mach-mx5/Makefile | |||
@@ -3,8 +3,7 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | # Object file lists. | 5 | # Object file lists. |
6 | obj-y := cpu.o mm.o clock-mx51-mx53.o devices.o ehci.o system.o | 6 | obj-y := cpu.o mm.o clock-mx51-mx53.o ehci.o system.o |
7 | obj-$(CONFIG_SOC_IMX50) += mm-mx50.o | ||
8 | 7 | ||
9 | obj-$(CONFIG_PM) += pm-imx5.o | 8 | obj-$(CONFIG_PM) += pm-imx5.o |
10 | obj-$(CONFIG_CPU_FREQ_IMX) += cpu_op-mx51.o | 9 | obj-$(CONFIG_CPU_FREQ_IMX) += cpu_op-mx51.o |
diff --git a/arch/arm/mach-mx5/board-cpuimx51.c b/arch/arm/mach-mx5/board-cpuimx51.c index 68934ea8725a..190a6e73ec7b 100644 --- a/arch/arm/mach-mx5/board-cpuimx51.c +++ b/arch/arm/mach-mx5/board-cpuimx51.c | |||
@@ -22,21 +22,18 @@ | |||
22 | #include <linux/delay.h> | 22 | #include <linux/delay.h> |
23 | #include <linux/io.h> | 23 | #include <linux/io.h> |
24 | #include <linux/interrupt.h> | 24 | #include <linux/interrupt.h> |
25 | #include <linux/irq.h> | ||
26 | 25 | ||
27 | #include <mach/eukrea-baseboards.h> | 26 | #include <mach/eukrea-baseboards.h> |
28 | #include <mach/common.h> | 27 | #include <mach/common.h> |
29 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
30 | #include <mach/iomux-mx51.h> | 29 | #include <mach/iomux-mx51.h> |
31 | 30 | ||
32 | #include <asm/irq.h> | ||
33 | #include <asm/setup.h> | 31 | #include <asm/setup.h> |
34 | #include <asm/mach-types.h> | 32 | #include <asm/mach-types.h> |
35 | #include <asm/mach/arch.h> | 33 | #include <asm/mach/arch.h> |
36 | #include <asm/mach/time.h> | 34 | #include <asm/mach/time.h> |
37 | 35 | ||
38 | #include "devices-imx51.h" | 36 | #include "devices-imx51.h" |
39 | #include "devices.h" | ||
40 | 37 | ||
41 | #define CPUIMX51_USBH1_STP IMX_GPIO_NR(1, 27) | 38 | #define CPUIMX51_USBH1_STP IMX_GPIO_NR(1, 27) |
42 | #define CPUIMX51_QUARTA_GPIO IMX_GPIO_NR(3, 28) | 39 | #define CPUIMX51_QUARTA_GPIO IMX_GPIO_NR(3, 28) |
@@ -57,7 +54,7 @@ | |||
57 | static struct plat_serial8250_port serial_platform_data[] = { | 54 | static struct plat_serial8250_port serial_platform_data[] = { |
58 | { | 55 | { |
59 | .mapbase = (unsigned long)(MX51_CS1_BASE_ADDR + 0x400000), | 56 | .mapbase = (unsigned long)(MX51_CS1_BASE_ADDR + 0x400000), |
60 | .irq = gpio_to_irq(CPUIMX51_QUARTA_GPIO), | 57 | .irq = IMX_GPIO_TO_IRQ(CPUIMX51_QUARTA_GPIO), |
61 | .irqflags = IRQF_TRIGGER_HIGH, | 58 | .irqflags = IRQF_TRIGGER_HIGH, |
62 | .uartclk = CPUIMX51_QUART_XTAL, | 59 | .uartclk = CPUIMX51_QUART_XTAL, |
63 | .regshift = CPUIMX51_QUART_REGSHIFT, | 60 | .regshift = CPUIMX51_QUART_REGSHIFT, |
@@ -65,7 +62,7 @@ static struct plat_serial8250_port serial_platform_data[] = { | |||
65 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_IOREMAP, | 62 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_IOREMAP, |
66 | }, { | 63 | }, { |
67 | .mapbase = (unsigned long)(MX51_CS1_BASE_ADDR + 0x800000), | 64 | .mapbase = (unsigned long)(MX51_CS1_BASE_ADDR + 0x800000), |
68 | .irq = gpio_to_irq(CPUIMX51_QUARTB_GPIO), | 65 | .irq = IMX_GPIO_TO_IRQ(CPUIMX51_QUARTB_GPIO), |
69 | .irqflags = IRQF_TRIGGER_HIGH, | 66 | .irqflags = IRQF_TRIGGER_HIGH, |
70 | .uartclk = CPUIMX51_QUART_XTAL, | 67 | .uartclk = CPUIMX51_QUART_XTAL, |
71 | .regshift = CPUIMX51_QUART_REGSHIFT, | 68 | .regshift = CPUIMX51_QUART_REGSHIFT, |
@@ -73,7 +70,7 @@ static struct plat_serial8250_port serial_platform_data[] = { | |||
73 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_IOREMAP, | 70 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_IOREMAP, |
74 | }, { | 71 | }, { |
75 | .mapbase = (unsigned long)(MX51_CS1_BASE_ADDR + 0x1000000), | 72 | .mapbase = (unsigned long)(MX51_CS1_BASE_ADDR + 0x1000000), |
76 | .irq = gpio_to_irq(CPUIMX51_QUARTC_GPIO), | 73 | .irq = IMX_GPIO_TO_IRQ(CPUIMX51_QUARTC_GPIO), |
77 | .irqflags = IRQF_TRIGGER_HIGH, | 74 | .irqflags = IRQF_TRIGGER_HIGH, |
78 | .uartclk = CPUIMX51_QUART_XTAL, | 75 | .uartclk = CPUIMX51_QUART_XTAL, |
79 | .regshift = CPUIMX51_QUART_REGSHIFT, | 76 | .regshift = CPUIMX51_QUART_REGSHIFT, |
@@ -81,7 +78,7 @@ static struct plat_serial8250_port serial_platform_data[] = { | |||
81 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_IOREMAP, | 78 | .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST | UPF_IOREMAP, |
82 | }, { | 79 | }, { |
83 | .mapbase = (unsigned long)(MX51_CS1_BASE_ADDR + 0x2000000), | 80 | .mapbase = (unsigned long)(MX51_CS1_BASE_ADDR + 0x2000000), |
84 | .irq = gpio_to_irq(CPUIMX51_QUARTD_GPIO), | 81 | .irq = IMX_GPIO_TO_IRQ(CPUIMX51_QUARTD_GPIO), |
85 | .irqflags = IRQF_TRIGGER_HIGH, | 82 | .irqflags = IRQF_TRIGGER_HIGH, |
86 | .uartclk = CPUIMX51_QUART_XTAL, | 83 | .uartclk = CPUIMX51_QUART_XTAL, |
87 | .regshift = CPUIMX51_QUART_REGSHIFT, | 84 | .regshift = CPUIMX51_QUART_REGSHIFT, |
@@ -167,7 +164,7 @@ static int initialize_otg_port(struct platform_device *pdev) | |||
167 | void __iomem *usb_base; | 164 | void __iomem *usb_base; |
168 | void __iomem *usbother_base; | 165 | void __iomem *usbother_base; |
169 | 166 | ||
170 | usb_base = ioremap(MX51_OTG_BASE_ADDR, SZ_4K); | 167 | usb_base = ioremap(MX51_USB_OTG_BASE_ADDR, SZ_4K); |
171 | if (!usb_base) | 168 | if (!usb_base) |
172 | return -ENOMEM; | 169 | return -ENOMEM; |
173 | usbother_base = usb_base + MX5_USBOTHER_REGS_OFFSET; | 170 | usbother_base = usb_base + MX5_USBOTHER_REGS_OFFSET; |
@@ -190,7 +187,7 @@ static int initialize_usbh1_port(struct platform_device *pdev) | |||
190 | void __iomem *usb_base; | 187 | void __iomem *usb_base; |
191 | void __iomem *usbother_base; | 188 | void __iomem *usbother_base; |
192 | 189 | ||
193 | usb_base = ioremap(MX51_OTG_BASE_ADDR, SZ_4K); | 190 | usb_base = ioremap(MX51_USB_OTG_BASE_ADDR, SZ_4K); |
194 | if (!usb_base) | 191 | if (!usb_base) |
195 | return -ENOMEM; | 192 | return -ENOMEM; |
196 | usbother_base = usb_base + MX5_USBOTHER_REGS_OFFSET; | 193 | usbother_base = usb_base + MX5_USBOTHER_REGS_OFFSET; |
@@ -206,17 +203,17 @@ static int initialize_usbh1_port(struct platform_device *pdev) | |||
206 | MXC_EHCI_ITC_NO_THRESHOLD); | 203 | MXC_EHCI_ITC_NO_THRESHOLD); |
207 | } | 204 | } |
208 | 205 | ||
209 | static struct mxc_usbh_platform_data dr_utmi_config = { | 206 | static const struct mxc_usbh_platform_data dr_utmi_config __initconst = { |
210 | .init = initialize_otg_port, | 207 | .init = initialize_otg_port, |
211 | .portsc = MXC_EHCI_UTMI_16BIT, | 208 | .portsc = MXC_EHCI_UTMI_16BIT, |
212 | }; | 209 | }; |
213 | 210 | ||
214 | static struct fsl_usb2_platform_data usb_pdata = { | 211 | static const struct fsl_usb2_platform_data usb_pdata __initconst = { |
215 | .operating_mode = FSL_USB2_DR_DEVICE, | 212 | .operating_mode = FSL_USB2_DR_DEVICE, |
216 | .phy_mode = FSL_USB2_PHY_UTMI_WIDE, | 213 | .phy_mode = FSL_USB2_PHY_UTMI_WIDE, |
217 | }; | 214 | }; |
218 | 215 | ||
219 | static struct mxc_usbh_platform_data usbh1_config = { | 216 | static const struct mxc_usbh_platform_data usbh1_config __initconst = { |
220 | .init = initialize_usbh1_port, | 217 | .init = initialize_usbh1_port, |
221 | .portsc = MXC_EHCI_MODE_ULPI, | 218 | .portsc = MXC_EHCI_MODE_ULPI, |
222 | }; | 219 | }; |
@@ -270,12 +267,12 @@ static void __init eukrea_cpuimx51_init(void) | |||
270 | ARRAY_SIZE(eukrea_cpuimx51_i2c_devices)); | 267 | ARRAY_SIZE(eukrea_cpuimx51_i2c_devices)); |
271 | 268 | ||
272 | if (otg_mode_host) | 269 | if (otg_mode_host) |
273 | mxc_register_device(&mxc_usbdr_host_device, &dr_utmi_config); | 270 | imx51_add_mxc_ehci_otg(&dr_utmi_config); |
274 | else { | 271 | else { |
275 | initialize_otg_port(NULL); | 272 | initialize_otg_port(NULL); |
276 | mxc_register_device(&mxc_usbdr_udc_device, &usb_pdata); | 273 | imx51_add_fsl_usb2_udc(&usb_pdata); |
277 | } | 274 | } |
278 | mxc_register_device(&mxc_usbh1_device, &usbh1_config); | 275 | imx51_add_mxc_ehci_hs(1, &usbh1_config); |
279 | 276 | ||
280 | #ifdef CONFIG_MACH_EUKREA_MBIMX51_BASEBOARD | 277 | #ifdef CONFIG_MACH_EUKREA_MBIMX51_BASEBOARD |
281 | eukrea_mbimx51_baseboard_init(); | 278 | eukrea_mbimx51_baseboard_init(); |
@@ -293,7 +290,7 @@ static struct sys_timer mxc_timer = { | |||
293 | 290 | ||
294 | MACHINE_START(EUKREA_CPUIMX51, "Eukrea CPUIMX51 Module") | 291 | MACHINE_START(EUKREA_CPUIMX51, "Eukrea CPUIMX51 Module") |
295 | /* Maintainer: Eric Bénard <eric@eukrea.com> */ | 292 | /* Maintainer: Eric Bénard <eric@eukrea.com> */ |
296 | .boot_params = MX51_PHYS_OFFSET + 0x100, | 293 | .atag_offset = 0x100, |
297 | .map_io = mx51_map_io, | 294 | .map_io = mx51_map_io, |
298 | .init_early = imx51_init_early, | 295 | .init_early = imx51_init_early, |
299 | .init_irq = mx51_init_irq, | 296 | .init_irq = mx51_init_irq, |
diff --git a/arch/arm/mach-mx5/board-cpuimx51sd.c b/arch/arm/mach-mx5/board-cpuimx51sd.c index ff096d587299..72410d201f88 100644 --- a/arch/arm/mach-mx5/board-cpuimx51sd.c +++ b/arch/arm/mach-mx5/board-cpuimx51sd.c | |||
@@ -22,7 +22,6 @@ | |||
22 | #include <linux/delay.h> | 22 | #include <linux/delay.h> |
23 | #include <linux/io.h> | 23 | #include <linux/io.h> |
24 | #include <linux/interrupt.h> | 24 | #include <linux/interrupt.h> |
25 | #include <linux/irq.h> | ||
26 | #include <linux/i2c-gpio.h> | 25 | #include <linux/i2c-gpio.h> |
27 | #include <linux/spi/spi.h> | 26 | #include <linux/spi/spi.h> |
28 | #include <linux/can/platform/mcp251x.h> | 27 | #include <linux/can/platform/mcp251x.h> |
@@ -32,14 +31,12 @@ | |||
32 | #include <mach/hardware.h> | 31 | #include <mach/hardware.h> |
33 | #include <mach/iomux-mx51.h> | 32 | #include <mach/iomux-mx51.h> |
34 | 33 | ||
35 | #include <asm/irq.h> | ||
36 | #include <asm/setup.h> | 34 | #include <asm/setup.h> |
37 | #include <asm/mach-types.h> | 35 | #include <asm/mach-types.h> |
38 | #include <asm/mach/arch.h> | 36 | #include <asm/mach/arch.h> |
39 | #include <asm/mach/time.h> | 37 | #include <asm/mach/time.h> |
40 | 38 | ||
41 | #include "devices-imx51.h" | 39 | #include "devices-imx51.h" |
42 | #include "devices.h" | ||
43 | #include "cpu_op-mx51.h" | 40 | #include "cpu_op-mx51.h" |
44 | 41 | ||
45 | #define USBH1_RST IMX_GPIO_NR(2, 28) | 42 | #define USBH1_RST IMX_GPIO_NR(2, 28) |
@@ -108,7 +105,7 @@ static iomux_v3_cfg_t eukrea_cpuimx51sd_pads[] = { | |||
108 | 105 | ||
109 | /* Touchscreen */ | 106 | /* Touchscreen */ |
110 | /* IRQ */ | 107 | /* IRQ */ |
111 | _MX51_PAD_GPIO_NAND__GPIO_NAND | MUX_PAD_CTRL(PAD_CTL_PUS_22K_UP | | 108 | NEW_PAD_CTRL(MX51_PAD_GPIO_NAND__GPIO_NAND, PAD_CTL_PUS_22K_UP | |
112 | PAD_CTL_PKE | PAD_CTL_SRE_FAST | | 109 | PAD_CTL_PKE | PAD_CTL_SRE_FAST | |
113 | PAD_CTL_DSE_HIGH | PAD_CTL_PUE | PAD_CTL_HYS), | 110 | PAD_CTL_DSE_HIGH | PAD_CTL_PUE | PAD_CTL_HYS), |
114 | }; | 111 | }; |
@@ -129,7 +126,7 @@ static struct i2c_board_info eukrea_cpuimx51sd_i2c_devices[] = { | |||
129 | I2C_BOARD_INFO("tsc2007", 0x49), | 126 | I2C_BOARD_INFO("tsc2007", 0x49), |
130 | .type = "tsc2007", | 127 | .type = "tsc2007", |
131 | .platform_data = &tsc2007_info, | 128 | .platform_data = &tsc2007_info, |
132 | .irq = gpio_to_irq(TSC2007_IRQGPIO), | 129 | .irq = IMX_GPIO_TO_IRQ(TSC2007_IRQGPIO), |
133 | }, | 130 | }, |
134 | }; | 131 | }; |
135 | 132 | ||
@@ -149,7 +146,7 @@ static int initialize_otg_port(struct platform_device *pdev) | |||
149 | void __iomem *usb_base; | 146 | void __iomem *usb_base; |
150 | void __iomem *usbother_base; | 147 | void __iomem *usbother_base; |
151 | 148 | ||
152 | usb_base = ioremap(MX51_OTG_BASE_ADDR, SZ_4K); | 149 | usb_base = ioremap(MX51_USB_OTG_BASE_ADDR, SZ_4K); |
153 | if (!usb_base) | 150 | if (!usb_base) |
154 | return -ENOMEM; | 151 | return -ENOMEM; |
155 | usbother_base = usb_base + MX5_USBOTHER_REGS_OFFSET; | 152 | usbother_base = usb_base + MX5_USBOTHER_REGS_OFFSET; |
@@ -172,7 +169,7 @@ static int initialize_usbh1_port(struct platform_device *pdev) | |||
172 | void __iomem *usb_base; | 169 | void __iomem *usb_base; |
173 | void __iomem *usbother_base; | 170 | void __iomem *usbother_base; |
174 | 171 | ||
175 | usb_base = ioremap(MX51_OTG_BASE_ADDR, SZ_4K); | 172 | usb_base = ioremap(MX51_USB_OTG_BASE_ADDR, SZ_4K); |
176 | if (!usb_base) | 173 | if (!usb_base) |
177 | return -ENOMEM; | 174 | return -ENOMEM; |
178 | usbother_base = usb_base + MX5_USBOTHER_REGS_OFFSET; | 175 | usbother_base = usb_base + MX5_USBOTHER_REGS_OFFSET; |
@@ -189,17 +186,17 @@ static int initialize_usbh1_port(struct platform_device *pdev) | |||
189 | MXC_EHCI_ITC_NO_THRESHOLD); | 186 | MXC_EHCI_ITC_NO_THRESHOLD); |
190 | } | 187 | } |
191 | 188 | ||
192 | static struct mxc_usbh_platform_data dr_utmi_config = { | 189 | static const struct mxc_usbh_platform_data dr_utmi_config __initconst = { |
193 | .init = initialize_otg_port, | 190 | .init = initialize_otg_port, |
194 | .portsc = MXC_EHCI_UTMI_16BIT, | 191 | .portsc = MXC_EHCI_UTMI_16BIT, |
195 | }; | 192 | }; |
196 | 193 | ||
197 | static struct fsl_usb2_platform_data usb_pdata = { | 194 | static const struct fsl_usb2_platform_data usb_pdata __initconst = { |
198 | .operating_mode = FSL_USB2_DR_DEVICE, | 195 | .operating_mode = FSL_USB2_DR_DEVICE, |
199 | .phy_mode = FSL_USB2_PHY_UTMI_WIDE, | 196 | .phy_mode = FSL_USB2_PHY_UTMI_WIDE, |
200 | }; | 197 | }; |
201 | 198 | ||
202 | static struct mxc_usbh_platform_data usbh1_config = { | 199 | static const struct mxc_usbh_platform_data usbh1_config __initconst = { |
203 | .init = initialize_usbh1_port, | 200 | .init = initialize_usbh1_port, |
204 | .portsc = MXC_EHCI_MODE_ULPI, | 201 | .portsc = MXC_EHCI_MODE_ULPI, |
205 | }; | 202 | }; |
@@ -245,7 +242,7 @@ static struct spi_board_info cpuimx51sd_spi_device[] = { | |||
245 | .mode = SPI_MODE_0, | 242 | .mode = SPI_MODE_0, |
246 | .chip_select = 0, | 243 | .chip_select = 0, |
247 | .platform_data = &mcp251x_info, | 244 | .platform_data = &mcp251x_info, |
248 | .irq = gpio_to_irq(CAN_IRQGPIO) | 245 | .irq = IMX_GPIO_TO_IRQ(CAN_IRQGPIO) |
249 | }, | 246 | }, |
250 | }; | 247 | }; |
251 | 248 | ||
@@ -303,17 +300,17 @@ static void __init eukrea_cpuimx51sd_init(void) | |||
303 | platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); | 300 | platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); |
304 | 301 | ||
305 | if (otg_mode_host) | 302 | if (otg_mode_host) |
306 | mxc_register_device(&mxc_usbdr_host_device, &dr_utmi_config); | 303 | imx51_add_mxc_ehci_otg(&dr_utmi_config); |
307 | else { | 304 | else { |
308 | initialize_otg_port(NULL); | 305 | initialize_otg_port(NULL); |
309 | mxc_register_device(&mxc_usbdr_udc_device, &usb_pdata); | 306 | imx51_add_fsl_usb2_udc(&usb_pdata); |
310 | } | 307 | } |
311 | 308 | ||
312 | gpio_request(USBH1_RST, "usb_rst"); | 309 | gpio_request(USBH1_RST, "usb_rst"); |
313 | gpio_direction_output(USBH1_RST, 0); | 310 | gpio_direction_output(USBH1_RST, 0); |
314 | msleep(20); | 311 | msleep(20); |
315 | gpio_set_value(USBH1_RST, 1); | 312 | gpio_set_value(USBH1_RST, 1); |
316 | mxc_register_device(&mxc_usbh1_device, &usbh1_config); | 313 | imx51_add_mxc_ehci_hs(1, &usbh1_config); |
317 | 314 | ||
318 | #ifdef CONFIG_MACH_EUKREA_MBIMXSD51_BASEBOARD | 315 | #ifdef CONFIG_MACH_EUKREA_MBIMXSD51_BASEBOARD |
319 | eukrea_mbimxsd51_baseboard_init(); | 316 | eukrea_mbimxsd51_baseboard_init(); |
@@ -331,7 +328,7 @@ static struct sys_timer mxc_timer = { | |||
331 | 328 | ||
332 | MACHINE_START(EUKREA_CPUIMX51SD, "Eukrea CPUIMX51SD") | 329 | MACHINE_START(EUKREA_CPUIMX51SD, "Eukrea CPUIMX51SD") |
333 | /* Maintainer: Eric Bénard <eric@eukrea.com> */ | 330 | /* Maintainer: Eric Bénard <eric@eukrea.com> */ |
334 | .boot_params = MX51_PHYS_OFFSET + 0x100, | 331 | .atag_offset = 0x100, |
335 | .map_io = mx51_map_io, | 332 | .map_io = mx51_map_io, |
336 | .init_early = imx51_init_early, | 333 | .init_early = imx51_init_early, |
337 | .init_irq = mx51_init_irq, | 334 | .init_irq = mx51_init_irq, |
diff --git a/arch/arm/mach-mx5/board-mx51_3ds.c b/arch/arm/mach-mx5/board-mx51_3ds.c index 07a38154da21..f988be7324fb 100644 --- a/arch/arm/mach-mx5/board-mx51_3ds.c +++ b/arch/arm/mach-mx5/board-mx51_3ds.c | |||
@@ -25,7 +25,6 @@ | |||
25 | #include <mach/3ds_debugboard.h> | 25 | #include <mach/3ds_debugboard.h> |
26 | 26 | ||
27 | #include "devices-imx51.h" | 27 | #include "devices-imx51.h" |
28 | #include "devices.h" | ||
29 | 28 | ||
30 | #define EXPIO_PARENT_INT gpio_to_irq(IMX_GPIO_NR(1, 6)) | 29 | #define EXPIO_PARENT_INT gpio_to_irq(IMX_GPIO_NR(1, 6)) |
31 | #define MX51_3DS_ECSPI2_CS (GPIO_PORTC + 28) | 30 | #define MX51_3DS_ECSPI2_CS (GPIO_PORTC + 28) |
@@ -169,7 +168,7 @@ static struct sys_timer mx51_3ds_timer = { | |||
169 | 168 | ||
170 | MACHINE_START(MX51_3DS, "Freescale MX51 3-Stack Board") | 169 | MACHINE_START(MX51_3DS, "Freescale MX51 3-Stack Board") |
171 | /* Maintainer: Freescale Semiconductor, Inc. */ | 170 | /* Maintainer: Freescale Semiconductor, Inc. */ |
172 | .boot_params = MX51_PHYS_OFFSET + 0x100, | 171 | .atag_offset = 0x100, |
173 | .map_io = mx51_map_io, | 172 | .map_io = mx51_map_io, |
174 | .init_early = imx51_init_early, | 173 | .init_early = imx51_init_early, |
175 | .init_irq = mx51_init_irq, | 174 | .init_irq = mx51_init_irq, |
diff --git a/arch/arm/mach-mx5/board-mx51_babbage.c b/arch/arm/mach-mx5/board-mx51_babbage.c index 11b0ff67f89d..622b2de7d0e8 100644 --- a/arch/arm/mach-mx5/board-mx51_babbage.c +++ b/arch/arm/mach-mx5/board-mx51_babbage.c | |||
@@ -24,14 +24,12 @@ | |||
24 | #include <mach/hardware.h> | 24 | #include <mach/hardware.h> |
25 | #include <mach/iomux-mx51.h> | 25 | #include <mach/iomux-mx51.h> |
26 | 26 | ||
27 | #include <asm/irq.h> | ||
28 | #include <asm/setup.h> | 27 | #include <asm/setup.h> |
29 | #include <asm/mach-types.h> | 28 | #include <asm/mach-types.h> |
30 | #include <asm/mach/arch.h> | 29 | #include <asm/mach/arch.h> |
31 | #include <asm/mach/time.h> | 30 | #include <asm/mach/time.h> |
32 | 31 | ||
33 | #include "devices-imx51.h" | 32 | #include "devices-imx51.h" |
34 | #include "devices.h" | ||
35 | #include "cpu_op-mx51.h" | 33 | #include "cpu_op-mx51.h" |
36 | 34 | ||
37 | #define BABBAGE_USB_HUB_RESET IMX_GPIO_NR(1, 7) | 35 | #define BABBAGE_USB_HUB_RESET IMX_GPIO_NR(1, 7) |
@@ -176,7 +174,7 @@ static const struct imxi2c_platform_data babbage_i2c_data __initconst = { | |||
176 | .bitrate = 100000, | 174 | .bitrate = 100000, |
177 | }; | 175 | }; |
178 | 176 | ||
179 | static struct imxi2c_platform_data babbage_hsi2c_data = { | 177 | static const struct imxi2c_platform_data babbage_hsi2c_data __initconst = { |
180 | .bitrate = 400000, | 178 | .bitrate = 400000, |
181 | }; | 179 | }; |
182 | 180 | ||
@@ -249,7 +247,7 @@ static int initialize_otg_port(struct platform_device *pdev) | |||
249 | void __iomem *usb_base; | 247 | void __iomem *usb_base; |
250 | void __iomem *usbother_base; | 248 | void __iomem *usbother_base; |
251 | 249 | ||
252 | usb_base = ioremap(MX51_OTG_BASE_ADDR, SZ_4K); | 250 | usb_base = ioremap(MX51_USB_OTG_BASE_ADDR, SZ_4K); |
253 | if (!usb_base) | 251 | if (!usb_base) |
254 | return -ENOMEM; | 252 | return -ENOMEM; |
255 | usbother_base = usb_base + MX5_USBOTHER_REGS_OFFSET; | 253 | usbother_base = usb_base + MX5_USBOTHER_REGS_OFFSET; |
@@ -272,7 +270,7 @@ static int initialize_usbh1_port(struct platform_device *pdev) | |||
272 | void __iomem *usb_base; | 270 | void __iomem *usb_base; |
273 | void __iomem *usbother_base; | 271 | void __iomem *usbother_base; |
274 | 272 | ||
275 | usb_base = ioremap(MX51_OTG_BASE_ADDR, SZ_4K); | 273 | usb_base = ioremap(MX51_USB_OTG_BASE_ADDR, SZ_4K); |
276 | if (!usb_base) | 274 | if (!usb_base) |
277 | return -ENOMEM; | 275 | return -ENOMEM; |
278 | usbother_base = usb_base + MX5_USBOTHER_REGS_OFFSET; | 276 | usbother_base = usb_base + MX5_USBOTHER_REGS_OFFSET; |
@@ -288,17 +286,17 @@ static int initialize_usbh1_port(struct platform_device *pdev) | |||
288 | MXC_EHCI_ITC_NO_THRESHOLD); | 286 | MXC_EHCI_ITC_NO_THRESHOLD); |
289 | } | 287 | } |
290 | 288 | ||
291 | static struct mxc_usbh_platform_data dr_utmi_config = { | 289 | static const struct mxc_usbh_platform_data dr_utmi_config __initconst = { |
292 | .init = initialize_otg_port, | 290 | .init = initialize_otg_port, |
293 | .portsc = MXC_EHCI_UTMI_16BIT, | 291 | .portsc = MXC_EHCI_UTMI_16BIT, |
294 | }; | 292 | }; |
295 | 293 | ||
296 | static struct fsl_usb2_platform_data usb_pdata = { | 294 | static const struct fsl_usb2_platform_data usb_pdata __initconst = { |
297 | .operating_mode = FSL_USB2_DR_DEVICE, | 295 | .operating_mode = FSL_USB2_DR_DEVICE, |
298 | .phy_mode = FSL_USB2_PHY_UTMI_WIDE, | 296 | .phy_mode = FSL_USB2_PHY_UTMI_WIDE, |
299 | }; | 297 | }; |
300 | 298 | ||
301 | static struct mxc_usbh_platform_data usbh1_config = { | 299 | static const struct mxc_usbh_platform_data usbh1_config __initconst = { |
302 | .init = initialize_usbh1_port, | 300 | .init = initialize_usbh1_port, |
303 | .portsc = MXC_EHCI_MODE_ULPI, | 301 | .portsc = MXC_EHCI_MODE_ULPI, |
304 | }; | 302 | }; |
@@ -357,8 +355,8 @@ static const struct esdhc_platform_data mx51_babbage_sd2_data __initconst = { | |||
357 | static void __init mx51_babbage_init(void) | 355 | static void __init mx51_babbage_init(void) |
358 | { | 356 | { |
359 | iomux_v3_cfg_t usbh1stp = MX51_PAD_USBH1_STP__USBH1_STP; | 357 | iomux_v3_cfg_t usbh1stp = MX51_PAD_USBH1_STP__USBH1_STP; |
360 | iomux_v3_cfg_t power_key = _MX51_PAD_EIM_A27__GPIO2_21 | | 358 | iomux_v3_cfg_t power_key = NEW_PAD_CTRL(MX51_PAD_EIM_A27__GPIO2_21, |
361 | MUX_PAD_CTRL(PAD_CTL_SRE_FAST | PAD_CTL_DSE_HIGH | PAD_CTL_PUS_100K_UP); | 359 | PAD_CTL_SRE_FAST | PAD_CTL_DSE_HIGH | PAD_CTL_PUS_100K_UP); |
362 | 360 | ||
363 | imx51_soc_init(); | 361 | imx51_soc_init(); |
364 | 362 | ||
@@ -381,17 +379,17 @@ static void __init mx51_babbage_init(void) | |||
381 | 379 | ||
382 | imx51_add_imx_i2c(0, &babbage_i2c_data); | 380 | imx51_add_imx_i2c(0, &babbage_i2c_data); |
383 | imx51_add_imx_i2c(1, &babbage_i2c_data); | 381 | imx51_add_imx_i2c(1, &babbage_i2c_data); |
384 | mxc_register_device(&mxc_hsi2c_device, &babbage_hsi2c_data); | 382 | imx51_add_hsi2c(&babbage_hsi2c_data); |
385 | 383 | ||
386 | if (otg_mode_host) | 384 | if (otg_mode_host) |
387 | mxc_register_device(&mxc_usbdr_host_device, &dr_utmi_config); | 385 | imx51_add_mxc_ehci_otg(&dr_utmi_config); |
388 | else { | 386 | else { |
389 | initialize_otg_port(NULL); | 387 | initialize_otg_port(NULL); |
390 | mxc_register_device(&mxc_usbdr_udc_device, &usb_pdata); | 388 | imx51_add_fsl_usb2_udc(&usb_pdata); |
391 | } | 389 | } |
392 | 390 | ||
393 | gpio_usbh1_active(); | 391 | gpio_usbh1_active(); |
394 | mxc_register_device(&mxc_usbh1_device, &usbh1_config); | 392 | imx51_add_mxc_ehci_hs(1, &usbh1_config); |
395 | /* setback USBH1_STP to be function */ | 393 | /* setback USBH1_STP to be function */ |
396 | mxc_iomux_v3_setup_pad(usbh1stp); | 394 | mxc_iomux_v3_setup_pad(usbh1stp); |
397 | babbage_usbhub_reset(); | 395 | babbage_usbhub_reset(); |
@@ -416,7 +414,7 @@ static struct sys_timer mx51_babbage_timer = { | |||
416 | 414 | ||
417 | MACHINE_START(MX51_BABBAGE, "Freescale MX51 Babbage Board") | 415 | MACHINE_START(MX51_BABBAGE, "Freescale MX51 Babbage Board") |
418 | /* Maintainer: Amit Kucheria <amit.kucheria@canonical.com> */ | 416 | /* Maintainer: Amit Kucheria <amit.kucheria@canonical.com> */ |
419 | .boot_params = MX51_PHYS_OFFSET + 0x100, | 417 | .atag_offset = 0x100, |
420 | .map_io = mx51_map_io, | 418 | .map_io = mx51_map_io, |
421 | .init_early = imx51_init_early, | 419 | .init_early = imx51_init_early, |
422 | .init_irq = mx51_init_irq, | 420 | .init_irq = mx51_init_irq, |
diff --git a/arch/arm/mach-mx5/board-mx51_efikamx.c b/arch/arm/mach-mx5/board-mx51_efikamx.c index 551daf85ff8c..d231b3e1e522 100644 --- a/arch/arm/mach-mx5/board-mx51_efikamx.c +++ b/arch/arm/mach-mx5/board-mx51_efikamx.c | |||
@@ -32,14 +32,12 @@ | |||
32 | #include <mach/hardware.h> | 32 | #include <mach/hardware.h> |
33 | #include <mach/iomux-mx51.h> | 33 | #include <mach/iomux-mx51.h> |
34 | 34 | ||
35 | #include <asm/irq.h> | ||
36 | #include <asm/setup.h> | 35 | #include <asm/setup.h> |
37 | #include <asm/mach-types.h> | 36 | #include <asm/mach-types.h> |
38 | #include <asm/mach/arch.h> | 37 | #include <asm/mach/arch.h> |
39 | #include <asm/mach/time.h> | 38 | #include <asm/mach/time.h> |
40 | 39 | ||
41 | #include "devices-imx51.h" | 40 | #include "devices-imx51.h" |
42 | #include "devices.h" | ||
43 | #include "efika.h" | 41 | #include "efika.h" |
44 | 42 | ||
45 | #define EFIKAMX_PCBID0 IMX_GPIO_NR(3, 16) | 43 | #define EFIKAMX_PCBID0 IMX_GPIO_NR(3, 16) |
@@ -280,7 +278,7 @@ static struct sys_timer mx51_efikamx_timer = { | |||
280 | 278 | ||
281 | MACHINE_START(MX51_EFIKAMX, "Genesi EfikaMX nettop") | 279 | MACHINE_START(MX51_EFIKAMX, "Genesi EfikaMX nettop") |
282 | /* Maintainer: Amit Kucheria <amit.kucheria@linaro.org> */ | 280 | /* Maintainer: Amit Kucheria <amit.kucheria@linaro.org> */ |
283 | .boot_params = MX51_PHYS_OFFSET + 0x100, | 281 | .atag_offset = 0x100, |
284 | .map_io = mx51_map_io, | 282 | .map_io = mx51_map_io, |
285 | .init_early = imx51_init_early, | 283 | .init_early = imx51_init_early, |
286 | .init_irq = mx51_init_irq, | 284 | .init_irq = mx51_init_irq, |
diff --git a/arch/arm/mach-mx5/board-mx51_efikasb.c b/arch/arm/mach-mx5/board-mx51_efikasb.c index 8a9bca22beb5..d4e98f0e33f5 100644 --- a/arch/arm/mach-mx5/board-mx51_efikasb.c +++ b/arch/arm/mach-mx5/board-mx51_efikasb.c | |||
@@ -35,14 +35,12 @@ | |||
35 | #include <mach/hardware.h> | 35 | #include <mach/hardware.h> |
36 | #include <mach/iomux-mx51.h> | 36 | #include <mach/iomux-mx51.h> |
37 | 37 | ||
38 | #include <asm/irq.h> | ||
39 | #include <asm/setup.h> | 38 | #include <asm/setup.h> |
40 | #include <asm/mach-types.h> | 39 | #include <asm/mach-types.h> |
41 | #include <asm/mach/arch.h> | 40 | #include <asm/mach/arch.h> |
42 | #include <asm/mach/time.h> | 41 | #include <asm/mach/time.h> |
43 | 42 | ||
44 | #include "devices-imx51.h" | 43 | #include "devices-imx51.h" |
45 | #include "devices.h" | ||
46 | #include "efika.h" | 44 | #include "efika.h" |
47 | 45 | ||
48 | #define EFIKASB_USBH2_STP IMX_GPIO_NR(2, 20) | 46 | #define EFIKASB_USBH2_STP IMX_GPIO_NR(2, 20) |
@@ -119,7 +117,7 @@ static int initialize_usbh2_port(struct platform_device *pdev) | |||
119 | return mx51_initialize_usb_hw(pdev->id, MXC_EHCI_ITC_NO_THRESHOLD); | 117 | return mx51_initialize_usb_hw(pdev->id, MXC_EHCI_ITC_NO_THRESHOLD); |
120 | } | 118 | } |
121 | 119 | ||
122 | static struct mxc_usbh_platform_data usbh2_config = { | 120 | static struct mxc_usbh_platform_data usbh2_config __initdata = { |
123 | .init = initialize_usbh2_port, | 121 | .init = initialize_usbh2_port, |
124 | .portsc = MXC_EHCI_MODE_ULPI, | 122 | .portsc = MXC_EHCI_MODE_ULPI, |
125 | }; | 123 | }; |
@@ -129,7 +127,7 @@ static void __init mx51_efikasb_usb(void) | |||
129 | usbh2_config.otg = imx_otg_ulpi_create(ULPI_OTG_DRVVBUS | | 127 | usbh2_config.otg = imx_otg_ulpi_create(ULPI_OTG_DRVVBUS | |
130 | ULPI_OTG_DRVVBUS_EXT | ULPI_OTG_EXTVBUSIND); | 128 | ULPI_OTG_DRVVBUS_EXT | ULPI_OTG_EXTVBUSIND); |
131 | if (usbh2_config.otg) | 129 | if (usbh2_config.otg) |
132 | mxc_register_device(&mxc_usbh2_device, &usbh2_config); | 130 | imx51_add_mxc_ehci_hs(2, &usbh2_config); |
133 | } | 131 | } |
134 | 132 | ||
135 | static const struct gpio_led mx51_efikasb_leds[] __initconst = { | 133 | static const struct gpio_led mx51_efikasb_leds[] __initconst = { |
@@ -266,7 +264,7 @@ static struct sys_timer mx51_efikasb_timer = { | |||
266 | }; | 264 | }; |
267 | 265 | ||
268 | MACHINE_START(MX51_EFIKASB, "Genesi Efika Smartbook") | 266 | MACHINE_START(MX51_EFIKASB, "Genesi Efika Smartbook") |
269 | .boot_params = MX51_PHYS_OFFSET + 0x100, | 267 | .atag_offset = 0x100, |
270 | .map_io = mx51_map_io, | 268 | .map_io = mx51_map_io, |
271 | .init_early = imx51_init_early, | 269 | .init_early = imx51_init_early, |
272 | .init_irq = mx51_init_irq, | 270 | .init_irq = mx51_init_irq, |
diff --git a/arch/arm/mach-mx5/board-mx53_ard.c b/arch/arm/mach-mx5/board-mx53_ard.c index 76a67c4a2a0b..ddc3015102d5 100644 --- a/arch/arm/mach-mx5/board-mx53_ard.c +++ b/arch/arm/mach-mx5/board-mx53_ard.c | |||
@@ -134,8 +134,8 @@ static struct resource ard_smsc911x_resources[] = { | |||
134 | .flags = IORESOURCE_MEM, | 134 | .flags = IORESOURCE_MEM, |
135 | }, | 135 | }, |
136 | { | 136 | { |
137 | .start = gpio_to_irq(ARD_ETHERNET_INT_B), | 137 | .start = IMX_GPIO_TO_IRQ(ARD_ETHERNET_INT_B), |
138 | .end = gpio_to_irq(ARD_ETHERNET_INT_B), | 138 | .end = IMX_GPIO_TO_IRQ(ARD_ETHERNET_INT_B), |
139 | .flags = IORESOURCE_IRQ, | 139 | .flags = IORESOURCE_IRQ, |
140 | }, | 140 | }, |
141 | }; | 141 | }; |
diff --git a/arch/arm/mach-mx5/clock-mx51-mx53.c b/arch/arm/mach-mx5/clock-mx51-mx53.c index f7bf996f463b..a3db3557b7c9 100644 --- a/arch/arm/mach-mx5/clock-mx51-mx53.c +++ b/arch/arm/mach-mx5/clock-mx51-mx53.c | |||
@@ -1568,7 +1568,7 @@ int __init mx51_clocks_init(unsigned long ckil, unsigned long osc, | |||
1568 | 1568 | ||
1569 | /* System timer */ | 1569 | /* System timer */ |
1570 | mxc_timer_init(&gpt_clk, MX51_IO_ADDRESS(MX51_GPT1_BASE_ADDR), | 1570 | mxc_timer_init(&gpt_clk, MX51_IO_ADDRESS(MX51_GPT1_BASE_ADDR), |
1571 | MX51_MXC_INT_GPT); | 1571 | MX51_INT_GPT); |
1572 | return 0; | 1572 | return 0; |
1573 | } | 1573 | } |
1574 | 1574 | ||
diff --git a/arch/arm/mach-mx5/devices-imx51.h b/arch/arm/mach-mx5/devices-imx51.h index e11bc0e0ec49..f311c9616bb1 100644 --- a/arch/arm/mach-mx5/devices-imx51.h +++ b/arch/arm/mach-mx5/devices-imx51.h | |||
@@ -13,9 +13,15 @@ extern const struct imx_fec_data imx51_fec_data; | |||
13 | #define imx51_add_fec(pdata) \ | 13 | #define imx51_add_fec(pdata) \ |
14 | imx_add_fec(&imx51_fec_data, pdata) | 14 | imx_add_fec(&imx51_fec_data, pdata) |
15 | 15 | ||
16 | extern const struct imx_fsl_usb2_udc_data imx51_fsl_usb2_udc_data; | ||
17 | #define imx51_add_fsl_usb2_udc(pdata) \ | ||
18 | imx_add_fsl_usb2_udc(&imx51_fsl_usb2_udc_data, pdata) | ||
19 | |||
16 | extern const struct imx_imx_i2c_data imx51_imx_i2c_data[]; | 20 | extern const struct imx_imx_i2c_data imx51_imx_i2c_data[]; |
17 | #define imx51_add_imx_i2c(id, pdata) \ | 21 | #define imx51_add_imx_i2c(id, pdata) \ |
18 | imx_add_imx_i2c(&imx51_imx_i2c_data[id], pdata) | 22 | imx_add_imx_i2c(&imx51_imx_i2c_data[id], pdata) |
23 | #define imx51_add_hsi2c(pdata) \ | ||
24 | imx51_add_imx_i2c(2, pdata) | ||
19 | 25 | ||
20 | extern const struct imx_imx_ssi_data imx51_imx_ssi_data[]; | 26 | extern const struct imx_imx_ssi_data imx51_imx_ssi_data[]; |
21 | #define imx51_add_imx_ssi(id, pdata) \ | 27 | #define imx51_add_imx_ssi(id, pdata) \ |
@@ -25,6 +31,13 @@ extern const struct imx_imx_uart_1irq_data imx51_imx_uart_data[]; | |||
25 | #define imx51_add_imx_uart(id, pdata) \ | 31 | #define imx51_add_imx_uart(id, pdata) \ |
26 | imx_add_imx_uart_1irq(&imx51_imx_uart_data[id], pdata) | 32 | imx_add_imx_uart_1irq(&imx51_imx_uart_data[id], pdata) |
27 | 33 | ||
34 | extern const struct imx_mxc_ehci_data imx51_mxc_ehci_otg_data; | ||
35 | #define imx51_add_mxc_ehci_otg(pdata) \ | ||
36 | imx_add_mxc_ehci(&imx51_mxc_ehci_otg_data, pdata) | ||
37 | extern const struct imx_mxc_ehci_data imx51_mxc_ehci_hs_data[]; | ||
38 | #define imx51_add_mxc_ehci_hs(id, pdata) \ | ||
39 | imx_add_mxc_ehci(&imx51_mxc_ehci_hs_data[id - 1], pdata) | ||
40 | |||
28 | extern const struct imx_mxc_nand_data imx51_mxc_nand_data; | 41 | extern const struct imx_mxc_nand_data imx51_mxc_nand_data; |
29 | #define imx51_add_mxc_nand(pdata) \ | 42 | #define imx51_add_mxc_nand(pdata) \ |
30 | imx_add_mxc_nand(&imx51_mxc_nand_data, pdata) | 43 | imx_add_mxc_nand(&imx51_mxc_nand_data, pdata) |
diff --git a/arch/arm/mach-mx5/devices.c b/arch/arm/mach-mx5/devices.c deleted file mode 100644 index 371ca8c8414c..000000000000 --- a/arch/arm/mach-mx5/devices.c +++ /dev/null | |||
@@ -1,120 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright 2009 Amit Kucheria <amit.kucheria@canonical.com> | ||
3 | * Copyright (C) 2010 Freescale Semiconductor, Inc. | ||
4 | * | ||
5 | * The code contained herein is licensed under the GNU General Public | ||
6 | * License. You may obtain a copy of the GNU General Public License | ||
7 | * Version 2 or later at the following locations: | ||
8 | * | ||
9 | * http://www.opensource.org/licenses/gpl-license.html | ||
10 | * http://www.gnu.org/copyleft/gpl.html | ||
11 | */ | ||
12 | |||
13 | #include <linux/platform_device.h> | ||
14 | #include <linux/dma-mapping.h> | ||
15 | #include <mach/hardware.h> | ||
16 | #include <mach/imx-uart.h> | ||
17 | #include <mach/irqs.h> | ||
18 | |||
19 | static struct resource mxc_hsi2c_resources[] = { | ||
20 | { | ||
21 | .start = MX51_HSI2C_DMA_BASE_ADDR, | ||
22 | .end = MX51_HSI2C_DMA_BASE_ADDR + SZ_16K - 1, | ||
23 | .flags = IORESOURCE_MEM, | ||
24 | }, | ||
25 | { | ||
26 | .start = MX51_MXC_INT_HS_I2C, | ||
27 | .end = MX51_MXC_INT_HS_I2C, | ||
28 | .flags = IORESOURCE_IRQ, | ||
29 | }, | ||
30 | }; | ||
31 | |||
32 | struct platform_device mxc_hsi2c_device = { | ||
33 | .name = "imx-i2c", | ||
34 | .id = 2, | ||
35 | .num_resources = ARRAY_SIZE(mxc_hsi2c_resources), | ||
36 | .resource = mxc_hsi2c_resources | ||
37 | }; | ||
38 | |||
39 | static u64 usb_dma_mask = DMA_BIT_MASK(32); | ||
40 | |||
41 | static struct resource usbotg_resources[] = { | ||
42 | { | ||
43 | .start = MX51_OTG_BASE_ADDR, | ||
44 | .end = MX51_OTG_BASE_ADDR + 0x1ff, | ||
45 | .flags = IORESOURCE_MEM, | ||
46 | }, | ||
47 | { | ||
48 | .start = MX51_MXC_INT_USB_OTG, | ||
49 | .flags = IORESOURCE_IRQ, | ||
50 | }, | ||
51 | }; | ||
52 | |||
53 | /* OTG gadget device */ | ||
54 | struct platform_device mxc_usbdr_udc_device = { | ||
55 | .name = "fsl-usb2-udc", | ||
56 | .id = -1, | ||
57 | .num_resources = ARRAY_SIZE(usbotg_resources), | ||
58 | .resource = usbotg_resources, | ||
59 | .dev = { | ||
60 | .dma_mask = &usb_dma_mask, | ||
61 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
62 | }, | ||
63 | }; | ||
64 | |||
65 | struct platform_device mxc_usbdr_host_device = { | ||
66 | .name = "mxc-ehci", | ||
67 | .id = 0, | ||
68 | .num_resources = ARRAY_SIZE(usbotg_resources), | ||
69 | .resource = usbotg_resources, | ||
70 | .dev = { | ||
71 | .dma_mask = &usb_dma_mask, | ||
72 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
73 | }, | ||
74 | }; | ||
75 | |||
76 | static struct resource usbh1_resources[] = { | ||
77 | { | ||
78 | .start = MX51_OTG_BASE_ADDR + 0x200, | ||
79 | .end = MX51_OTG_BASE_ADDR + 0x200 + 0x1ff, | ||
80 | .flags = IORESOURCE_MEM, | ||
81 | }, | ||
82 | { | ||
83 | .start = MX51_MXC_INT_USB_H1, | ||
84 | .flags = IORESOURCE_IRQ, | ||
85 | }, | ||
86 | }; | ||
87 | |||
88 | struct platform_device mxc_usbh1_device = { | ||
89 | .name = "mxc-ehci", | ||
90 | .id = 1, | ||
91 | .num_resources = ARRAY_SIZE(usbh1_resources), | ||
92 | .resource = usbh1_resources, | ||
93 | .dev = { | ||
94 | .dma_mask = &usb_dma_mask, | ||
95 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
96 | }, | ||
97 | }; | ||
98 | |||
99 | static struct resource usbh2_resources[] = { | ||
100 | { | ||
101 | .start = MX51_OTG_BASE_ADDR + 0x400, | ||
102 | .end = MX51_OTG_BASE_ADDR + 0x400 + 0x1ff, | ||
103 | .flags = IORESOURCE_MEM, | ||
104 | }, | ||
105 | { | ||
106 | .start = MX51_MXC_INT_USB_H2, | ||
107 | .flags = IORESOURCE_IRQ, | ||
108 | }, | ||
109 | }; | ||
110 | |||
111 | struct platform_device mxc_usbh2_device = { | ||
112 | .name = "mxc-ehci", | ||
113 | .id = 2, | ||
114 | .num_resources = ARRAY_SIZE(usbh2_resources), | ||
115 | .resource = usbh2_resources, | ||
116 | .dev = { | ||
117 | .dma_mask = &usb_dma_mask, | ||
118 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
119 | }, | ||
120 | }; | ||
diff --git a/arch/arm/mach-mx5/devices.h b/arch/arm/mach-mx5/devices.h deleted file mode 100644 index 55a5129bc29f..000000000000 --- a/arch/arm/mach-mx5/devices.h +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | extern struct platform_device mxc_usbdr_host_device; | ||
2 | extern struct platform_device mxc_usbh1_device; | ||
3 | extern struct platform_device mxc_usbh2_device; | ||
4 | extern struct platform_device mxc_usbdr_udc_device; | ||
5 | extern struct platform_device mxc_hsi2c_device; | ||
diff --git a/arch/arm/mach-mx5/ehci.c b/arch/arm/mach-mx5/ehci.c index 7ce12c804a32..c17fa131728b 100644 --- a/arch/arm/mach-mx5/ehci.c +++ b/arch/arm/mach-mx5/ehci.c | |||
@@ -52,7 +52,7 @@ int mx51_initialize_usb_hw(int port, unsigned int flags) | |||
52 | void __iomem *usbother_base; | 52 | void __iomem *usbother_base; |
53 | int ret = 0; | 53 | int ret = 0; |
54 | 54 | ||
55 | usb_base = ioremap(MX51_OTG_BASE_ADDR, SZ_4K); | 55 | usb_base = ioremap(MX51_USB_OTG_BASE_ADDR, SZ_4K); |
56 | if (!usb_base) { | 56 | if (!usb_base) { |
57 | printk(KERN_ERR "%s(): ioremap failed\n", __func__); | 57 | printk(KERN_ERR "%s(): ioremap failed\n", __func__); |
58 | return -ENOMEM; | 58 | return -ENOMEM; |
diff --git a/arch/arm/mach-mx5/eukrea_mbimx51-baseboard.c b/arch/arm/mach-mx5/eukrea_mbimx51-baseboard.c index bbf4564bd050..a6a3ab8f1b1c 100644 --- a/arch/arm/mach-mx5/eukrea_mbimx51-baseboard.c +++ b/arch/arm/mach-mx5/eukrea_mbimx51-baseboard.c | |||
@@ -28,7 +28,6 @@ | |||
28 | #include <asm/mach/arch.h> | 28 | #include <asm/mach/arch.h> |
29 | 29 | ||
30 | #include "devices-imx51.h" | 30 | #include "devices-imx51.h" |
31 | #include "devices.h" | ||
32 | 31 | ||
33 | #define MBIMX51_TSC2007_GPIO IMX_GPIO_NR(3, 30) | 32 | #define MBIMX51_TSC2007_GPIO IMX_GPIO_NR(3, 30) |
34 | #define MBIMX51_LED0 IMX_GPIO_NR(3, 5) | 33 | #define MBIMX51_LED0 IMX_GPIO_NR(3, 5) |
@@ -160,7 +159,7 @@ struct tsc2007_platform_data tsc2007_data = { | |||
160 | static struct i2c_board_info mbimx51_i2c_devices[] = { | 159 | static struct i2c_board_info mbimx51_i2c_devices[] = { |
161 | { | 160 | { |
162 | I2C_BOARD_INFO("tsc2007", 0x49), | 161 | I2C_BOARD_INFO("tsc2007", 0x49), |
163 | .irq = gpio_to_irq(MBIMX51_TSC2007_GPIO), | 162 | .irq = IMX_GPIO_TO_IRQ(MBIMX51_TSC2007_GPIO), |
164 | .platform_data = &tsc2007_data, | 163 | .platform_data = &tsc2007_data, |
165 | }, { | 164 | }, { |
166 | I2C_BOARD_INFO("tlv320aic23", 0x1a), | 165 | I2C_BOARD_INFO("tlv320aic23", 0x1a), |
diff --git a/arch/arm/mach-mx5/eukrea_mbimxsd-baseboard.c b/arch/arm/mach-mx5/eukrea_mbimxsd-baseboard.c index 261923997643..d817fc80b986 100644 --- a/arch/arm/mach-mx5/eukrea_mbimxsd-baseboard.c +++ b/arch/arm/mach-mx5/eukrea_mbimxsd-baseboard.c | |||
@@ -24,7 +24,6 @@ | |||
24 | 24 | ||
25 | #include <linux/gpio.h> | 25 | #include <linux/gpio.h> |
26 | #include <linux/interrupt.h> | 26 | #include <linux/interrupt.h> |
27 | #include <linux/irq.h> | ||
28 | #include <linux/leds.h> | 27 | #include <linux/leds.h> |
29 | #include <linux/platform_device.h> | 28 | #include <linux/platform_device.h> |
30 | #include <linux/input.h> | 29 | #include <linux/input.h> |
@@ -41,13 +40,12 @@ | |||
41 | #include <mach/audmux.h> | 40 | #include <mach/audmux.h> |
42 | 41 | ||
43 | #include "devices-imx51.h" | 42 | #include "devices-imx51.h" |
44 | #include "devices.h" | ||
45 | 43 | ||
46 | static iomux_v3_cfg_t eukrea_mbimxsd_pads[] = { | 44 | static iomux_v3_cfg_t eukrea_mbimxsd_pads[] = { |
47 | /* LED */ | 45 | /* LED */ |
48 | MX51_PAD_NANDF_D10__GPIO3_30, | 46 | MX51_PAD_NANDF_D10__GPIO3_30, |
49 | /* SWITCH */ | 47 | /* SWITCH */ |
50 | _MX51_PAD_NANDF_D9__GPIO3_31 | MUX_PAD_CTRL(PAD_CTL_PUS_22K_UP | | 48 | NEW_PAD_CTRL(MX51_PAD_NANDF_D9__GPIO3_31, PAD_CTL_PUS_22K_UP | |
51 | PAD_CTL_PKE | PAD_CTL_SRE_FAST | | 49 | PAD_CTL_PKE | PAD_CTL_SRE_FAST | |
52 | PAD_CTL_DSE_HIGH | PAD_CTL_PUE | PAD_CTL_HYS), | 50 | PAD_CTL_DSE_HIGH | PAD_CTL_PUE | PAD_CTL_HYS), |
53 | /* UART2 */ | 51 | /* UART2 */ |
@@ -66,7 +64,7 @@ static iomux_v3_cfg_t eukrea_mbimxsd_pads[] = { | |||
66 | MX51_PAD_SD1_DATA2__SD1_DATA2, | 64 | MX51_PAD_SD1_DATA2__SD1_DATA2, |
67 | MX51_PAD_SD1_DATA3__SD1_DATA3, | 65 | MX51_PAD_SD1_DATA3__SD1_DATA3, |
68 | /* SD1 CD */ | 66 | /* SD1 CD */ |
69 | _MX51_PAD_GPIO1_0__SD1_CD | MUX_PAD_CTRL(PAD_CTL_PUS_22K_UP | | 67 | NEW_PAD_CTRL(MX51_PAD_GPIO1_0__SD1_CD, PAD_CTL_PUS_22K_UP | |
70 | PAD_CTL_PKE | PAD_CTL_SRE_FAST | | 68 | PAD_CTL_PKE | PAD_CTL_SRE_FAST | |
71 | PAD_CTL_DSE_HIGH | PAD_CTL_PUE | PAD_CTL_HYS), | 69 | PAD_CTL_DSE_HIGH | PAD_CTL_PUE | PAD_CTL_HYS), |
72 | }; | 70 | }; |
diff --git a/arch/arm/mach-mx5/mm-mx50.c b/arch/arm/mach-mx5/mm-mx50.c deleted file mode 100644 index 77e374c726fa..000000000000 --- a/arch/arm/mach-mx5/mm-mx50.c +++ /dev/null | |||
@@ -1,72 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Freescale Semiconductor, Inc. All Rights Reserved. | ||
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 as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | |||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | |||
14 | * You should have received a copy of the GNU General Public License along | ||
15 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
16 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | ||
17 | * | ||
18 | * Create static mapping between physical to virtual memory. | ||
19 | */ | ||
20 | |||
21 | #include <linux/mm.h> | ||
22 | #include <linux/init.h> | ||
23 | |||
24 | #include <asm/mach/map.h> | ||
25 | |||
26 | #include <mach/hardware.h> | ||
27 | #include <mach/common.h> | ||
28 | #include <mach/iomux-v3.h> | ||
29 | #include <mach/irqs.h> | ||
30 | |||
31 | /* | ||
32 | * Define the MX50 memory map. | ||
33 | */ | ||
34 | static struct map_desc mx50_io_desc[] __initdata = { | ||
35 | imx_map_entry(MX50, TZIC, MT_DEVICE), | ||
36 | imx_map_entry(MX50, SPBA0, MT_DEVICE), | ||
37 | imx_map_entry(MX50, AIPS1, MT_DEVICE), | ||
38 | imx_map_entry(MX50, AIPS2, MT_DEVICE), | ||
39 | }; | ||
40 | |||
41 | /* | ||
42 | * This function initializes the memory map. It is called during the | ||
43 | * system startup to create static physical to virtual memory mappings | ||
44 | * for the IO modules. | ||
45 | */ | ||
46 | void __init mx50_map_io(void) | ||
47 | { | ||
48 | iotable_init(mx50_io_desc, ARRAY_SIZE(mx50_io_desc)); | ||
49 | } | ||
50 | |||
51 | void __init imx50_init_early(void) | ||
52 | { | ||
53 | mxc_set_cpu_type(MXC_CPU_MX50); | ||
54 | mxc_iomux_v3_init(MX50_IO_ADDRESS(MX50_IOMUXC_BASE_ADDR)); | ||
55 | mxc_arch_reset_init(MX50_IO_ADDRESS(MX50_WDOG_BASE_ADDR)); | ||
56 | } | ||
57 | |||
58 | void __init mx50_init_irq(void) | ||
59 | { | ||
60 | tzic_init_irq(MX50_IO_ADDRESS(MX50_TZIC_BASE_ADDR)); | ||
61 | } | ||
62 | |||
63 | void __init imx50_soc_init(void) | ||
64 | { | ||
65 | /* i.mx50 has the i.mx31 type gpio */ | ||
66 | mxc_register_gpio("imx31-gpio", 0, MX50_GPIO1_BASE_ADDR, SZ_16K, MX50_INT_GPIO1_LOW, MX50_INT_GPIO1_HIGH); | ||
67 | mxc_register_gpio("imx31-gpio", 1, MX50_GPIO2_BASE_ADDR, SZ_16K, MX50_INT_GPIO2_LOW, MX50_INT_GPIO2_HIGH); | ||
68 | mxc_register_gpio("imx31-gpio", 2, MX50_GPIO3_BASE_ADDR, SZ_16K, MX50_INT_GPIO3_LOW, MX50_INT_GPIO3_HIGH); | ||
69 | mxc_register_gpio("imx31-gpio", 3, MX50_GPIO4_BASE_ADDR, SZ_16K, MX50_INT_GPIO4_LOW, MX50_INT_GPIO4_HIGH); | ||
70 | mxc_register_gpio("imx31-gpio", 4, MX50_GPIO5_BASE_ADDR, SZ_16K, MX50_INT_GPIO5_LOW, MX50_INT_GPIO5_HIGH); | ||
71 | mxc_register_gpio("imx31-gpio", 5, MX50_GPIO6_BASE_ADDR, SZ_16K, MX50_INT_GPIO6_LOW, MX50_INT_GPIO6_HIGH); | ||
72 | } | ||
diff --git a/arch/arm/mach-mx5/mm.c b/arch/arm/mach-mx5/mm.c index baea6e5cddd9..26eacc9d0d90 100644 --- a/arch/arm/mach-mx5/mm.c +++ b/arch/arm/mach-mx5/mm.c | |||
@@ -21,12 +21,27 @@ | |||
21 | #include <mach/devices-common.h> | 21 | #include <mach/devices-common.h> |
22 | #include <mach/iomux-v3.h> | 22 | #include <mach/iomux-v3.h> |
23 | 23 | ||
24 | static void imx5_idle(void) | ||
25 | { | ||
26 | mx5_cpu_lp_set(WAIT_UNCLOCKED_POWER_OFF); | ||
27 | } | ||
28 | |||
29 | /* | ||
30 | * Define the MX50 memory map. | ||
31 | */ | ||
32 | static struct map_desc mx50_io_desc[] __initdata = { | ||
33 | imx_map_entry(MX50, TZIC, MT_DEVICE), | ||
34 | imx_map_entry(MX50, SPBA0, MT_DEVICE), | ||
35 | imx_map_entry(MX50, AIPS1, MT_DEVICE), | ||
36 | imx_map_entry(MX50, AIPS2, MT_DEVICE), | ||
37 | }; | ||
38 | |||
24 | /* | 39 | /* |
25 | * Define the MX51 memory map. | 40 | * Define the MX51 memory map. |
26 | */ | 41 | */ |
27 | static struct map_desc mx51_io_desc[] __initdata = { | 42 | static struct map_desc mx51_io_desc[] __initdata = { |
43 | imx_map_entry(MX51, TZIC, MT_DEVICE), | ||
28 | imx_map_entry(MX51, IRAM, MT_DEVICE), | 44 | imx_map_entry(MX51, IRAM, MT_DEVICE), |
29 | imx_map_entry(MX51, DEBUG, MT_DEVICE), | ||
30 | imx_map_entry(MX51, AIPS1, MT_DEVICE), | 45 | imx_map_entry(MX51, AIPS1, MT_DEVICE), |
31 | imx_map_entry(MX51, SPBA0, MT_DEVICE), | 46 | imx_map_entry(MX51, SPBA0, MT_DEVICE), |
32 | imx_map_entry(MX51, AIPS2, MT_DEVICE), | 47 | imx_map_entry(MX51, AIPS2, MT_DEVICE), |
@@ -36,6 +51,7 @@ static struct map_desc mx51_io_desc[] __initdata = { | |||
36 | * Define the MX53 memory map. | 51 | * Define the MX53 memory map. |
37 | */ | 52 | */ |
38 | static struct map_desc mx53_io_desc[] __initdata = { | 53 | static struct map_desc mx53_io_desc[] __initdata = { |
54 | imx_map_entry(MX53, TZIC, MT_DEVICE), | ||
39 | imx_map_entry(MX53, AIPS1, MT_DEVICE), | 55 | imx_map_entry(MX53, AIPS1, MT_DEVICE), |
40 | imx_map_entry(MX53, SPBA0, MT_DEVICE), | 56 | imx_map_entry(MX53, SPBA0, MT_DEVICE), |
41 | imx_map_entry(MX53, AIPS2, MT_DEVICE), | 57 | imx_map_entry(MX53, AIPS2, MT_DEVICE), |
@@ -46,21 +62,34 @@ static struct map_desc mx53_io_desc[] __initdata = { | |||
46 | * system startup to create static physical to virtual memory mappings | 62 | * system startup to create static physical to virtual memory mappings |
47 | * for the IO modules. | 63 | * for the IO modules. |
48 | */ | 64 | */ |
65 | void __init mx50_map_io(void) | ||
66 | { | ||
67 | iotable_init(mx50_io_desc, ARRAY_SIZE(mx50_io_desc)); | ||
68 | } | ||
69 | |||
49 | void __init mx51_map_io(void) | 70 | void __init mx51_map_io(void) |
50 | { | 71 | { |
51 | iotable_init(mx51_io_desc, ARRAY_SIZE(mx51_io_desc)); | 72 | iotable_init(mx51_io_desc, ARRAY_SIZE(mx51_io_desc)); |
52 | } | 73 | } |
53 | 74 | ||
75 | void __init mx53_map_io(void) | ||
76 | { | ||
77 | iotable_init(mx53_io_desc, ARRAY_SIZE(mx53_io_desc)); | ||
78 | } | ||
79 | |||
80 | void __init imx50_init_early(void) | ||
81 | { | ||
82 | mxc_set_cpu_type(MXC_CPU_MX50); | ||
83 | mxc_iomux_v3_init(MX50_IO_ADDRESS(MX50_IOMUXC_BASE_ADDR)); | ||
84 | mxc_arch_reset_init(MX50_IO_ADDRESS(MX50_WDOG_BASE_ADDR)); | ||
85 | } | ||
86 | |||
54 | void __init imx51_init_early(void) | 87 | void __init imx51_init_early(void) |
55 | { | 88 | { |
56 | mxc_set_cpu_type(MXC_CPU_MX51); | 89 | mxc_set_cpu_type(MXC_CPU_MX51); |
57 | mxc_iomux_v3_init(MX51_IO_ADDRESS(MX51_IOMUXC_BASE_ADDR)); | 90 | mxc_iomux_v3_init(MX51_IO_ADDRESS(MX51_IOMUXC_BASE_ADDR)); |
58 | mxc_arch_reset_init(MX51_IO_ADDRESS(MX51_WDOG1_BASE_ADDR)); | 91 | mxc_arch_reset_init(MX51_IO_ADDRESS(MX51_WDOG1_BASE_ADDR)); |
59 | } | 92 | imx_idle = imx5_idle; |
60 | |||
61 | void __init mx53_map_io(void) | ||
62 | { | ||
63 | iotable_init(mx53_io_desc, ARRAY_SIZE(mx53_io_desc)); | ||
64 | } | 93 | } |
65 | 94 | ||
66 | void __init imx53_init_early(void) | 95 | void __init imx53_init_early(void) |
@@ -70,35 +99,19 @@ void __init imx53_init_early(void) | |||
70 | mxc_arch_reset_init(MX53_IO_ADDRESS(MX53_WDOG1_BASE_ADDR)); | 99 | mxc_arch_reset_init(MX53_IO_ADDRESS(MX53_WDOG1_BASE_ADDR)); |
71 | } | 100 | } |
72 | 101 | ||
73 | void __init mx51_init_irq(void) | 102 | void __init mx50_init_irq(void) |
74 | { | 103 | { |
75 | unsigned long tzic_addr; | 104 | tzic_init_irq(MX50_IO_ADDRESS(MX50_TZIC_BASE_ADDR)); |
76 | void __iomem *tzic_virt; | 105 | } |
77 | |||
78 | if (mx51_revision() < IMX_CHIP_REVISION_2_0) | ||
79 | tzic_addr = MX51_TZIC_BASE_ADDR_TO1; | ||
80 | else | ||
81 | tzic_addr = MX51_TZIC_BASE_ADDR; | ||
82 | |||
83 | tzic_virt = ioremap(tzic_addr, SZ_16K); | ||
84 | if (!tzic_virt) | ||
85 | panic("unable to map TZIC interrupt controller\n"); | ||
86 | 106 | ||
87 | tzic_init_irq(tzic_virt); | 107 | void __init mx51_init_irq(void) |
108 | { | ||
109 | tzic_init_irq(MX51_IO_ADDRESS(MX51_TZIC_BASE_ADDR)); | ||
88 | } | 110 | } |
89 | 111 | ||
90 | void __init mx53_init_irq(void) | 112 | void __init mx53_init_irq(void) |
91 | { | 113 | { |
92 | unsigned long tzic_addr; | 114 | tzic_init_irq(MX53_IO_ADDRESS(MX53_TZIC_BASE_ADDR)); |
93 | void __iomem *tzic_virt; | ||
94 | |||
95 | tzic_addr = MX53_TZIC_BASE_ADDR; | ||
96 | |||
97 | tzic_virt = ioremap(tzic_addr, SZ_16K); | ||
98 | if (!tzic_virt) | ||
99 | panic("unable to map TZIC interrupt controller\n"); | ||
100 | |||
101 | tzic_init_irq(tzic_virt); | ||
102 | } | 115 | } |
103 | 116 | ||
104 | static struct sdma_script_start_addrs imx51_sdma_script __initdata = { | 117 | static struct sdma_script_start_addrs imx51_sdma_script __initdata = { |
@@ -138,13 +151,24 @@ static struct sdma_platform_data imx53_sdma_pdata __initdata = { | |||
138 | .script_addrs = &imx53_sdma_script, | 151 | .script_addrs = &imx53_sdma_script, |
139 | }; | 152 | }; |
140 | 153 | ||
154 | void __init imx50_soc_init(void) | ||
155 | { | ||
156 | /* i.mx50 has the i.mx31 type gpio */ | ||
157 | mxc_register_gpio("imx31-gpio", 0, MX50_GPIO1_BASE_ADDR, SZ_16K, MX50_INT_GPIO1_LOW, MX50_INT_GPIO1_HIGH); | ||
158 | mxc_register_gpio("imx31-gpio", 1, MX50_GPIO2_BASE_ADDR, SZ_16K, MX50_INT_GPIO2_LOW, MX50_INT_GPIO2_HIGH); | ||
159 | mxc_register_gpio("imx31-gpio", 2, MX50_GPIO3_BASE_ADDR, SZ_16K, MX50_INT_GPIO3_LOW, MX50_INT_GPIO3_HIGH); | ||
160 | mxc_register_gpio("imx31-gpio", 3, MX50_GPIO4_BASE_ADDR, SZ_16K, MX50_INT_GPIO4_LOW, MX50_INT_GPIO4_HIGH); | ||
161 | mxc_register_gpio("imx31-gpio", 4, MX50_GPIO5_BASE_ADDR, SZ_16K, MX50_INT_GPIO5_LOW, MX50_INT_GPIO5_HIGH); | ||
162 | mxc_register_gpio("imx31-gpio", 5, MX50_GPIO6_BASE_ADDR, SZ_16K, MX50_INT_GPIO6_LOW, MX50_INT_GPIO6_HIGH); | ||
163 | } | ||
164 | |||
141 | void __init imx51_soc_init(void) | 165 | void __init imx51_soc_init(void) |
142 | { | 166 | { |
143 | /* i.mx51 has the i.mx31 type gpio */ | 167 | /* i.mx51 has the i.mx31 type gpio */ |
144 | mxc_register_gpio("imx31-gpio", 0, MX51_GPIO1_BASE_ADDR, SZ_16K, MX51_MXC_INT_GPIO1_LOW, MX51_MXC_INT_GPIO1_HIGH); | 168 | mxc_register_gpio("imx31-gpio", 0, MX51_GPIO1_BASE_ADDR, SZ_16K, MX51_INT_GPIO1_LOW, MX51_INT_GPIO1_HIGH); |
145 | mxc_register_gpio("imx31-gpio", 1, MX51_GPIO2_BASE_ADDR, SZ_16K, MX51_MXC_INT_GPIO2_LOW, MX51_MXC_INT_GPIO2_HIGH); | 169 | mxc_register_gpio("imx31-gpio", 1, MX51_GPIO2_BASE_ADDR, SZ_16K, MX51_INT_GPIO2_LOW, MX51_INT_GPIO2_HIGH); |
146 | mxc_register_gpio("imx31-gpio", 2, MX51_GPIO3_BASE_ADDR, SZ_16K, MX51_MXC_INT_GPIO3_LOW, MX51_MXC_INT_GPIO3_HIGH); | 170 | mxc_register_gpio("imx31-gpio", 2, MX51_GPIO3_BASE_ADDR, SZ_16K, MX51_INT_GPIO3_LOW, MX51_INT_GPIO3_HIGH); |
147 | mxc_register_gpio("imx31-gpio", 3, MX51_GPIO4_BASE_ADDR, SZ_16K, MX51_MXC_INT_GPIO4_LOW, MX51_MXC_INT_GPIO4_HIGH); | 171 | mxc_register_gpio("imx31-gpio", 3, MX51_GPIO4_BASE_ADDR, SZ_16K, MX51_INT_GPIO4_LOW, MX51_INT_GPIO4_HIGH); |
148 | 172 | ||
149 | /* i.mx51 has the i.mx35 type sdma */ | 173 | /* i.mx51 has the i.mx35 type sdma */ |
150 | imx_add_imx_sdma("imx35-sdma", MX51_SDMA_BASE_ADDR, MX51_INT_SDMA, &imx51_sdma_pdata); | 174 | imx_add_imx_sdma("imx35-sdma", MX51_SDMA_BASE_ADDR, MX51_INT_SDMA, &imx51_sdma_pdata); |
diff --git a/arch/arm/mach-mx5/mx51_efika.c b/arch/arm/mach-mx5/mx51_efika.c index c9209454807a..d5bf95825533 100644 --- a/arch/arm/mach-mx5/mx51_efika.c +++ b/arch/arm/mach-mx5/mx51_efika.c | |||
@@ -34,14 +34,12 @@ | |||
34 | #include <linux/usb/ulpi.h> | 34 | #include <linux/usb/ulpi.h> |
35 | #include <mach/ulpi.h> | 35 | #include <mach/ulpi.h> |
36 | 36 | ||
37 | #include <asm/irq.h> | ||
38 | #include <asm/setup.h> | 37 | #include <asm/setup.h> |
39 | #include <asm/mach-types.h> | 38 | #include <asm/mach-types.h> |
40 | #include <asm/mach/arch.h> | 39 | #include <asm/mach/arch.h> |
41 | #include <asm/mach/time.h> | 40 | #include <asm/mach/time.h> |
42 | 41 | ||
43 | #include "devices-imx51.h" | 42 | #include "devices-imx51.h" |
44 | #include "devices.h" | ||
45 | #include "efika.h" | 43 | #include "efika.h" |
46 | #include "cpu_op-mx51.h" | 44 | #include "cpu_op-mx51.h" |
47 | 45 | ||
@@ -133,7 +131,7 @@ static int initialize_otg_port(struct platform_device *pdev) | |||
133 | u32 v; | 131 | u32 v; |
134 | void __iomem *usb_base; | 132 | void __iomem *usb_base; |
135 | void __iomem *usbother_base; | 133 | void __iomem *usbother_base; |
136 | usb_base = ioremap(MX51_OTG_BASE_ADDR, SZ_4K); | 134 | usb_base = ioremap(MX51_USB_OTG_BASE_ADDR, SZ_4K); |
137 | if (!usb_base) | 135 | if (!usb_base) |
138 | return -ENOMEM; | 136 | return -ENOMEM; |
139 | usbother_base = (void __iomem *)(usb_base + MX5_USBOTHER_REGS_OFFSET); | 137 | usbother_base = (void __iomem *)(usb_base + MX5_USBOTHER_REGS_OFFSET); |
@@ -150,7 +148,7 @@ static int initialize_otg_port(struct platform_device *pdev) | |||
150 | return mx51_initialize_usb_hw(pdev->id, MXC_EHCI_INTERNAL_PHY); | 148 | return mx51_initialize_usb_hw(pdev->id, MXC_EHCI_INTERNAL_PHY); |
151 | } | 149 | } |
152 | 150 | ||
153 | static struct mxc_usbh_platform_data dr_utmi_config = { | 151 | static const struct mxc_usbh_platform_data dr_utmi_config __initconst = { |
154 | .init = initialize_otg_port, | 152 | .init = initialize_otg_port, |
155 | .portsc = MXC_EHCI_UTMI_16BIT, | 153 | .portsc = MXC_EHCI_UTMI_16BIT, |
156 | }; | 154 | }; |
@@ -170,7 +168,7 @@ static int initialize_usbh1_port(struct platform_device *pdev) | |||
170 | gpio_set_value(EFIKAMX_USBH1_STP, 1); | 168 | gpio_set_value(EFIKAMX_USBH1_STP, 1); |
171 | msleep(1); | 169 | msleep(1); |
172 | 170 | ||
173 | usb_base = ioremap(MX51_OTG_BASE_ADDR, SZ_4K); | 171 | usb_base = ioremap(MX51_USB_OTG_BASE_ADDR, SZ_4K); |
174 | socregs_base = (void __iomem *)(usb_base + MX5_USBOTHER_REGS_OFFSET); | 172 | socregs_base = (void __iomem *)(usb_base + MX5_USBOTHER_REGS_OFFSET); |
175 | 173 | ||
176 | /* The clock for the USBH1 ULPI port will come externally */ | 174 | /* The clock for the USBH1 ULPI port will come externally */ |
@@ -189,7 +187,7 @@ static int initialize_usbh1_port(struct platform_device *pdev) | |||
189 | return mx51_initialize_usb_hw(pdev->id, MXC_EHCI_ITC_NO_THRESHOLD); | 187 | return mx51_initialize_usb_hw(pdev->id, MXC_EHCI_ITC_NO_THRESHOLD); |
190 | } | 188 | } |
191 | 189 | ||
192 | static struct mxc_usbh_platform_data usbh1_config = { | 190 | static struct mxc_usbh_platform_data usbh1_config __initdata = { |
193 | .init = initialize_usbh1_port, | 191 | .init = initialize_usbh1_port, |
194 | .portsc = MXC_EHCI_MODE_ULPI, | 192 | .portsc = MXC_EHCI_MODE_ULPI, |
195 | }; | 193 | }; |
@@ -217,9 +215,9 @@ static void __init mx51_efika_usb(void) | |||
217 | usbh1_config.otg = imx_otg_ulpi_create(ULPI_OTG_DRVVBUS | | 215 | usbh1_config.otg = imx_otg_ulpi_create(ULPI_OTG_DRVVBUS | |
218 | ULPI_OTG_DRVVBUS_EXT | ULPI_OTG_EXTVBUSIND); | 216 | ULPI_OTG_DRVVBUS_EXT | ULPI_OTG_EXTVBUSIND); |
219 | 217 | ||
220 | mxc_register_device(&mxc_usbdr_host_device, &dr_utmi_config); | 218 | imx51_add_mxc_ehci_otg(&dr_utmi_config); |
221 | if (usbh1_config.otg) | 219 | if (usbh1_config.otg) |
222 | mxc_register_device(&mxc_usbh1_device, &usbh1_config); | 220 | imx51_add_mxc_ehci_hs(1, &usbh1_config); |
223 | } | 221 | } |
224 | 222 | ||
225 | static struct mtd_partition mx51_efika_spi_nor_partitions[] = { | 223 | static struct mtd_partition mx51_efika_spi_nor_partitions[] = { |
@@ -589,7 +587,7 @@ static struct spi_board_info mx51_efika_spi_board_info[] __initdata = { | |||
589 | .bus_num = 0, | 587 | .bus_num = 0, |
590 | .chip_select = 0, | 588 | .chip_select = 0, |
591 | .platform_data = &mx51_efika_mc13892_data, | 589 | .platform_data = &mx51_efika_mc13892_data, |
592 | .irq = gpio_to_irq(EFIKAMX_PMIC), | 590 | .irq = IMX_GPIO_TO_IRQ(EFIKAMX_PMIC), |
593 | }, | 591 | }, |
594 | }; | 592 | }; |
595 | 593 | ||
@@ -631,4 +629,3 @@ void __init efika_board_common_init(void) | |||
631 | get_cpu_op = mx51_get_cpu_op; | 629 | get_cpu_op = mx51_get_cpu_op; |
632 | #endif | 630 | #endif |
633 | } | 631 | } |
634 | |||
diff --git a/arch/arm/mach-mx5/pm-imx5.c b/arch/arm/mach-mx5/pm-imx5.c index e4529af0da72..0624fb8edffb 100644 --- a/arch/arm/mach-mx5/pm-imx5.c +++ b/arch/arm/mach-mx5/pm-imx5.c | |||
@@ -14,7 +14,8 @@ | |||
14 | #include <linux/err.h> | 14 | #include <linux/err.h> |
15 | #include <asm/cacheflush.h> | 15 | #include <asm/cacheflush.h> |
16 | #include <asm/tlbflush.h> | 16 | #include <asm/tlbflush.h> |
17 | #include <mach/system.h> | 17 | #include <mach/common.h> |
18 | #include <mach/hardware.h> | ||
18 | #include "crm_regs.h" | 19 | #include "crm_regs.h" |
19 | 20 | ||
20 | static struct clk *gpc_dvfs_clk; | 21 | static struct clk *gpc_dvfs_clk; |
diff --git a/arch/arm/mach-mx5/system.c b/arch/arm/mach-mx5/system.c index 76ae8dc33e00..144ebebc4a61 100644 --- a/arch/arm/mach-mx5/system.c +++ b/arch/arm/mach-mx5/system.c | |||
@@ -13,6 +13,7 @@ | |||
13 | #include <linux/platform_device.h> | 13 | #include <linux/platform_device.h> |
14 | #include <linux/io.h> | 14 | #include <linux/io.h> |
15 | #include <mach/hardware.h> | 15 | #include <mach/hardware.h> |
16 | #include <mach/common.h> | ||
16 | #include "crm_regs.h" | 17 | #include "crm_regs.h" |
17 | 18 | ||
18 | /* set cpu low power mode before WFI instruction. This function is called | 19 | /* set cpu low power mode before WFI instruction. This function is called |
diff --git a/arch/arm/mach-mxs/Makefile b/arch/arm/mach-mxs/Makefile index 6c38262a3aaa..ea8dcb7742bc 100644 --- a/arch/arm/mach-mxs/Makefile +++ b/arch/arm/mach-mxs/Makefile | |||
@@ -1,11 +1,11 @@ | |||
1 | # Common support | 1 | # Common support |
2 | obj-y := clock.o devices.o icoll.o iomux.o system.o timer.o | 2 | obj-y := clock.o devices.o icoll.o iomux.o system.o timer.o mm.o |
3 | 3 | ||
4 | obj-$(CONFIG_MXS_OCOTP) += ocotp.o | 4 | obj-$(CONFIG_MXS_OCOTP) += ocotp.o |
5 | obj-$(CONFIG_PM) += pm.o | 5 | obj-$(CONFIG_PM) += pm.o |
6 | 6 | ||
7 | obj-$(CONFIG_SOC_IMX23) += clock-mx23.o mm-mx23.o | 7 | obj-$(CONFIG_SOC_IMX23) += clock-mx23.o |
8 | obj-$(CONFIG_SOC_IMX28) += clock-mx28.o mm-mx28.o | 8 | obj-$(CONFIG_SOC_IMX28) += clock-mx28.o |
9 | 9 | ||
10 | obj-$(CONFIG_MACH_STMP378X_DEVB) += mach-stmp378x_devb.o | 10 | obj-$(CONFIG_MACH_STMP378X_DEVB) += mach-stmp378x_devb.o |
11 | obj-$(CONFIG_MACH_MX23EVK) += mach-mx23evk.o | 11 | obj-$(CONFIG_MACH_MX23EVK) += mach-mx23evk.o |
diff --git a/arch/arm/mach-mxs/include/mach/gpio.h b/arch/arm/mach-mxs/include/mach/gpio.h index 828ccccb6aad..56025aa0a639 100644 --- a/arch/arm/mach-mxs/include/mach/gpio.h +++ b/arch/arm/mach-mxs/include/mach/gpio.h | |||
@@ -22,14 +22,10 @@ | |||
22 | 22 | ||
23 | #include <asm-generic/gpio.h> | 23 | #include <asm-generic/gpio.h> |
24 | 24 | ||
25 | #define MXS_GPIO_NR(bank, nr) ((bank) * 32 + (nr)) | ||
26 | |||
27 | /* use gpiolib dispatchers */ | 25 | /* use gpiolib dispatchers */ |
28 | #define gpio_get_value __gpio_get_value | 26 | #define gpio_get_value __gpio_get_value |
29 | #define gpio_set_value __gpio_set_value | 27 | #define gpio_set_value __gpio_set_value |
30 | #define gpio_cansleep __gpio_cansleep | 28 | #define gpio_cansleep __gpio_cansleep |
31 | #define gpio_to_irq __gpio_to_irq | 29 | #define gpio_to_irq __gpio_to_irq |
32 | 30 | ||
33 | #define irq_to_gpio(irq) ((irq) - MXS_GPIO_IRQ_START) | ||
34 | |||
35 | #endif /* __MACH_MXS_GPIO_H__ */ | 31 | #endif /* __MACH_MXS_GPIO_H__ */ |
diff --git a/arch/arm/mach-mxs/include/mach/mxs.h b/arch/arm/mach-mxs/include/mach/mxs.h index 35a89dd27242..5aa5f754c846 100644 --- a/arch/arm/mach-mxs/include/mach/mxs.h +++ b/arch/arm/mach-mxs/include/mach/mxs.h | |||
@@ -86,6 +86,8 @@ | |||
86 | .type = _type, \ | 86 | .type = _type, \ |
87 | } | 87 | } |
88 | 88 | ||
89 | #define MXS_GPIO_NR(bank, nr) ((bank) * 32 + (nr)) | ||
90 | |||
89 | #define MXS_SET_ADDR 0x4 | 91 | #define MXS_SET_ADDR 0x4 |
90 | #define MXS_CLR_ADDR 0x8 | 92 | #define MXS_CLR_ADDR 0x8 |
91 | #define MXS_TOG_ADDR 0xc | 93 | #define MXS_TOG_ADDR 0xc |
diff --git a/arch/arm/mach-mxs/mach-mx23evk.c b/arch/arm/mach-mxs/mach-mx23evk.c index 3c2de33803ab..99b01e988c8d 100644 --- a/arch/arm/mach-mxs/mach-mx23evk.c +++ b/arch/arm/mach-mxs/mach-mx23evk.c | |||
@@ -15,7 +15,6 @@ | |||
15 | #include <linux/delay.h> | 15 | #include <linux/delay.h> |
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <linux/gpio.h> | 17 | #include <linux/gpio.h> |
18 | #include <linux/irq.h> | ||
19 | 18 | ||
20 | #include <asm/mach-types.h> | 19 | #include <asm/mach-types.h> |
21 | #include <asm/mach/arch.h> | 20 | #include <asm/mach/arch.h> |
diff --git a/arch/arm/mach-mxs/mach-mx28evk.c b/arch/arm/mach-mxs/mach-mx28evk.c index eaaf6ff28990..8b3aa7afdae0 100644 --- a/arch/arm/mach-mxs/mach-mx28evk.c +++ b/arch/arm/mach-mxs/mach-mx28evk.c | |||
@@ -16,7 +16,6 @@ | |||
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <linux/gpio.h> | 17 | #include <linux/gpio.h> |
18 | #include <linux/leds.h> | 18 | #include <linux/leds.h> |
19 | #include <linux/irq.h> | ||
20 | #include <linux/clk.h> | 19 | #include <linux/clk.h> |
21 | 20 | ||
22 | #include <asm/mach-types.h> | 21 | #include <asm/mach-types.h> |
@@ -352,6 +351,11 @@ static struct mxs_mmc_platform_data mx28evk_mmc_pdata[] __initdata = { | |||
352 | }, | 351 | }, |
353 | }; | 352 | }; |
354 | 353 | ||
354 | static struct gpio mx28evk_lcd_gpios[] = { | ||
355 | { MX28EVK_LCD_ENABLE, GPIOF_OUT_INIT_HIGH, "lcd-enable" }, | ||
356 | { MX28EVK_BL_ENABLE, GPIOF_OUT_INIT_HIGH, "bl-enable" }, | ||
357 | }; | ||
358 | |||
355 | static void __init mx28evk_init(void) | 359 | static void __init mx28evk_init(void) |
356 | { | 360 | { |
357 | int ret; | 361 | int ret; |
@@ -378,19 +382,12 @@ static void __init mx28evk_init(void) | |||
378 | mx28_add_flexcan(1, &mx28evk_flexcan_pdata[1]); | 382 | mx28_add_flexcan(1, &mx28evk_flexcan_pdata[1]); |
379 | } | 383 | } |
380 | 384 | ||
381 | ret = gpio_request_one(MX28EVK_LCD_ENABLE, GPIOF_DIR_OUT, "lcd-enable"); | 385 | ret = gpio_request_array(mx28evk_lcd_gpios, |
386 | ARRAY_SIZE(mx28evk_lcd_gpios)); | ||
382 | if (ret) | 387 | if (ret) |
383 | pr_warn("failed to request gpio lcd-enable: %d\n", ret); | 388 | pr_warn("failed to request gpio pins for lcd: %d\n", ret); |
384 | else | 389 | else |
385 | gpio_set_value(MX28EVK_LCD_ENABLE, 1); | 390 | mx28_add_mxsfb(&mx28evk_mxsfb_pdata); |
386 | |||
387 | ret = gpio_request_one(MX28EVK_BL_ENABLE, GPIOF_DIR_OUT, "bl-enable"); | ||
388 | if (ret) | ||
389 | pr_warn("failed to request gpio bl-enable: %d\n", ret); | ||
390 | else | ||
391 | gpio_set_value(MX28EVK_BL_ENABLE, 1); | ||
392 | |||
393 | mx28_add_mxsfb(&mx28evk_mxsfb_pdata); | ||
394 | 391 | ||
395 | /* power on mmc slot by writing 0 to the gpio */ | 392 | /* power on mmc slot by writing 0 to the gpio */ |
396 | ret = gpio_request_one(MX28EVK_MMC0_SLOT_POWER, GPIOF_OUT_INIT_LOW, | 393 | ret = gpio_request_one(MX28EVK_MMC0_SLOT_POWER, GPIOF_OUT_INIT_LOW, |
@@ -403,7 +400,8 @@ static void __init mx28evk_init(void) | |||
403 | "mmc1-slot-power"); | 400 | "mmc1-slot-power"); |
404 | if (ret) | 401 | if (ret) |
405 | pr_warn("failed to request gpio mmc1-slot-power: %d\n", ret); | 402 | pr_warn("failed to request gpio mmc1-slot-power: %d\n", ret); |
406 | mx28_add_mxs_mmc(1, &mx28evk_mmc_pdata[1]); | 403 | else |
404 | mx28_add_mxs_mmc(1, &mx28evk_mmc_pdata[1]); | ||
407 | 405 | ||
408 | gpio_led_register_device(0, &mx28evk_led_data); | 406 | gpio_led_register_device(0, &mx28evk_led_data); |
409 | } | 407 | } |
diff --git a/arch/arm/mach-mxs/mach-stmp378x_devb.c b/arch/arm/mach-mxs/mach-stmp378x_devb.c index 7f38d82b69af..3fe5dd532145 100644 --- a/arch/arm/mach-mxs/mach-stmp378x_devb.c +++ b/arch/arm/mach-mxs/mach-stmp378x_devb.c | |||
@@ -19,7 +19,6 @@ | |||
19 | 19 | ||
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | #include <linux/gpio.h> | 21 | #include <linux/gpio.h> |
22 | #include <linux/irq.h> | ||
23 | #include <linux/spi/spi.h> | 22 | #include <linux/spi/spi.h> |
24 | 23 | ||
25 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
diff --git a/arch/arm/mach-mxs/mm-mx23.c b/arch/arm/mach-mxs/mm-mx23.c deleted file mode 100644 index 1b2345ac1a87..000000000000 --- a/arch/arm/mach-mxs/mm-mx23.c +++ /dev/null | |||
@@ -1,44 +0,0 @@ | |||
1 | /* | ||
2 | * Copyright 2008-2010 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * | ||
4 | * The code contained herein is licensed under the GNU General Public | ||
5 | * License. You may obtain a copy of the GNU General Public License | ||
6 | * Version 2 or later at the following locations: | ||
7 | * | ||
8 | * http://www.opensource.org/licenses/gpl-license.html | ||
9 | * http://www.gnu.org/copyleft/gpl.html | ||
10 | * | ||
11 | * Create static mapping between physical to virtual memory. | ||
12 | */ | ||
13 | |||
14 | #include <linux/mm.h> | ||
15 | #include <linux/init.h> | ||
16 | |||
17 | #include <asm/mach/map.h> | ||
18 | |||
19 | #include <mach/mx23.h> | ||
20 | #include <mach/common.h> | ||
21 | #include <mach/iomux.h> | ||
22 | |||
23 | /* | ||
24 | * Define the MX23 memory map. | ||
25 | */ | ||
26 | static struct map_desc mx23_io_desc[] __initdata = { | ||
27 | mxs_map_entry(MX23, OCRAM, MT_DEVICE), | ||
28 | mxs_map_entry(MX23, IO, MT_DEVICE), | ||
29 | }; | ||
30 | |||
31 | /* | ||
32 | * This function initializes the memory map. It is called during the | ||
33 | * system startup to create static physical to virtual memory mappings | ||
34 | * for the IO modules. | ||
35 | */ | ||
36 | void __init mx23_map_io(void) | ||
37 | { | ||
38 | iotable_init(mx23_io_desc, ARRAY_SIZE(mx23_io_desc)); | ||
39 | } | ||
40 | |||
41 | void __init mx23_init_irq(void) | ||
42 | { | ||
43 | icoll_init_irq(); | ||
44 | } | ||
diff --git a/arch/arm/mach-mxs/mm-mx28.c b/arch/arm/mach-mxs/mm.c index b6e18ddb92c0..50af5ceebf6d 100644 --- a/arch/arm/mach-mxs/mm-mx28.c +++ b/arch/arm/mach-mxs/mm.c | |||
@@ -16,11 +16,20 @@ | |||
16 | 16 | ||
17 | #include <asm/mach/map.h> | 17 | #include <asm/mach/map.h> |
18 | 18 | ||
19 | #include <mach/mx23.h> | ||
19 | #include <mach/mx28.h> | 20 | #include <mach/mx28.h> |
20 | #include <mach/common.h> | 21 | #include <mach/common.h> |
21 | #include <mach/iomux.h> | 22 | #include <mach/iomux.h> |
22 | 23 | ||
23 | /* | 24 | /* |
25 | * Define the MX23 memory map. | ||
26 | */ | ||
27 | static struct map_desc mx23_io_desc[] __initdata = { | ||
28 | mxs_map_entry(MX23, OCRAM, MT_DEVICE), | ||
29 | mxs_map_entry(MX23, IO, MT_DEVICE), | ||
30 | }; | ||
31 | |||
32 | /* | ||
24 | * Define the MX28 memory map. | 33 | * Define the MX28 memory map. |
25 | */ | 34 | */ |
26 | static struct map_desc mx28_io_desc[] __initdata = { | 35 | static struct map_desc mx28_io_desc[] __initdata = { |
@@ -33,6 +42,16 @@ static struct map_desc mx28_io_desc[] __initdata = { | |||
33 | * system startup to create static physical to virtual memory mappings | 42 | * system startup to create static physical to virtual memory mappings |
34 | * for the IO modules. | 43 | * for the IO modules. |
35 | */ | 44 | */ |
45 | void __init mx23_map_io(void) | ||
46 | { | ||
47 | iotable_init(mx23_io_desc, ARRAY_SIZE(mx23_io_desc)); | ||
48 | } | ||
49 | |||
50 | void __init mx23_init_irq(void) | ||
51 | { | ||
52 | icoll_init_irq(); | ||
53 | } | ||
54 | |||
36 | void __init mx28_map_io(void) | 55 | void __init mx28_map_io(void) |
37 | { | 56 | { |
38 | iotable_init(mx28_io_desc, ARRAY_SIZE(mx28_io_desc)); | 57 | iotable_init(mx28_io_desc, ARRAY_SIZE(mx28_io_desc)); |
diff --git a/arch/arm/mach-netx/nxdb500.c b/arch/arm/mach-netx/nxdb500.c index ca8b203a3c99..90903dd44cbc 100644 --- a/arch/arm/mach-netx/nxdb500.c +++ b/arch/arm/mach-netx/nxdb500.c | |||
@@ -200,7 +200,7 @@ static void __init nxdb500_init(void) | |||
200 | } | 200 | } |
201 | 201 | ||
202 | MACHINE_START(NXDB500, "Hilscher nxdb500") | 202 | MACHINE_START(NXDB500, "Hilscher nxdb500") |
203 | .boot_params = 0x80000100, | 203 | .atag_offset = 0x100, |
204 | .map_io = netx_map_io, | 204 | .map_io = netx_map_io, |
205 | .init_irq = netx_init_irq, | 205 | .init_irq = netx_init_irq, |
206 | .timer = &netx_timer, | 206 | .timer = &netx_timer, |
diff --git a/arch/arm/mach-netx/nxdkn.c b/arch/arm/mach-netx/nxdkn.c index d775cbe07278..c63384aba500 100644 --- a/arch/arm/mach-netx/nxdkn.c +++ b/arch/arm/mach-netx/nxdkn.c | |||
@@ -93,7 +93,7 @@ static void __init nxdkn_init(void) | |||
93 | } | 93 | } |
94 | 94 | ||
95 | MACHINE_START(NXDKN, "Hilscher nxdkn") | 95 | MACHINE_START(NXDKN, "Hilscher nxdkn") |
96 | .boot_params = 0x80000100, | 96 | .atag_offset = 0x100, |
97 | .map_io = netx_map_io, | 97 | .map_io = netx_map_io, |
98 | .init_irq = netx_init_irq, | 98 | .init_irq = netx_init_irq, |
99 | .timer = &netx_timer, | 99 | .timer = &netx_timer, |
diff --git a/arch/arm/mach-netx/nxeb500hmi.c b/arch/arm/mach-netx/nxeb500hmi.c index de369cd1dcbe..8f548ec83ad2 100644 --- a/arch/arm/mach-netx/nxeb500hmi.c +++ b/arch/arm/mach-netx/nxeb500hmi.c | |||
@@ -177,7 +177,7 @@ static void __init nxeb500hmi_init(void) | |||
177 | } | 177 | } |
178 | 178 | ||
179 | MACHINE_START(NXEB500HMI, "Hilscher nxeb500hmi") | 179 | MACHINE_START(NXEB500HMI, "Hilscher nxeb500hmi") |
180 | .boot_params = 0x80000100, | 180 | .atag_offset = 0x100, |
181 | .map_io = netx_map_io, | 181 | .map_io = netx_map_io, |
182 | .init_irq = netx_init_irq, | 182 | .init_irq = netx_init_irq, |
183 | .timer = &netx_timer, | 183 | .timer = &netx_timer, |
diff --git a/arch/arm/mach-nomadik/board-nhk8815.c b/arch/arm/mach-nomadik/board-nhk8815.c index 139930350d93..398a75f62bee 100644 --- a/arch/arm/mach-nomadik/board-nhk8815.c +++ b/arch/arm/mach-nomadik/board-nhk8815.c | |||
@@ -276,7 +276,7 @@ static void __init nhk8815_platform_init(void) | |||
276 | 276 | ||
277 | MACHINE_START(NOMADIK, "NHK8815") | 277 | MACHINE_START(NOMADIK, "NHK8815") |
278 | /* Maintainer: ST MicroElectronics */ | 278 | /* Maintainer: ST MicroElectronics */ |
279 | .boot_params = 0x100, | 279 | .atag_offset = 0x100, |
280 | .map_io = cpu8815_map_io, | 280 | .map_io = cpu8815_map_io, |
281 | .init_irq = cpu8815_init_irq, | 281 | .init_irq = cpu8815_init_irq, |
282 | .timer = &nomadik_timer, | 282 | .timer = &nomadik_timer, |
diff --git a/arch/arm/mach-nuc93x/mach-nuc932evb.c b/arch/arm/mach-nuc93x/mach-nuc932evb.c index d70257042480..1f741b1c1604 100644 --- a/arch/arm/mach-nuc93x/mach-nuc932evb.c +++ b/arch/arm/mach-nuc93x/mach-nuc932evb.c | |||
@@ -35,7 +35,6 @@ static void __init nuc932evb_init(void) | |||
35 | 35 | ||
36 | MACHINE_START(NUC932EVB, "NUC932EVB") | 36 | MACHINE_START(NUC932EVB, "NUC932EVB") |
37 | /* Maintainer: Wan ZongShun */ | 37 | /* Maintainer: Wan ZongShun */ |
38 | .boot_params = 0, | ||
39 | .map_io = nuc932evb_map_io, | 38 | .map_io = nuc932evb_map_io, |
40 | .init_irq = nuc93x_init_irq, | 39 | .init_irq = nuc93x_init_irq, |
41 | .init_machine = nuc932evb_init, | 40 | .init_machine = nuc932evb_init, |
diff --git a/arch/arm/mach-omap1/board-ams-delta.c b/arch/arm/mach-omap1/board-ams-delta.c index 312ea6b0409d..eb36b25450a0 100644 --- a/arch/arm/mach-omap1/board-ams-delta.c +++ b/arch/arm/mach-omap1/board-ams-delta.c | |||
@@ -386,7 +386,7 @@ static void __init ams_delta_map_io(void) | |||
386 | 386 | ||
387 | MACHINE_START(AMS_DELTA, "Amstrad E3 (Delta)") | 387 | MACHINE_START(AMS_DELTA, "Amstrad E3 (Delta)") |
388 | /* Maintainer: Jonathan McDowell <noodles@earth.li> */ | 388 | /* Maintainer: Jonathan McDowell <noodles@earth.li> */ |
389 | .boot_params = 0x10000100, | 389 | .atag_offset = 0x100, |
390 | .map_io = ams_delta_map_io, | 390 | .map_io = ams_delta_map_io, |
391 | .reserve = omap_reserve, | 391 | .reserve = omap_reserve, |
392 | .init_irq = ams_delta_init_irq, | 392 | .init_irq = ams_delta_init_irq, |
diff --git a/arch/arm/mach-omap1/board-fsample.c b/arch/arm/mach-omap1/board-fsample.c index a6b1bea50371..999789c4811d 100644 --- a/arch/arm/mach-omap1/board-fsample.c +++ b/arch/arm/mach-omap1/board-fsample.c | |||
@@ -389,7 +389,7 @@ static void __init omap_fsample_map_io(void) | |||
389 | 389 | ||
390 | MACHINE_START(OMAP_FSAMPLE, "OMAP730 F-Sample") | 390 | MACHINE_START(OMAP_FSAMPLE, "OMAP730 F-Sample") |
391 | /* Maintainer: Brian Swetland <swetland@google.com> */ | 391 | /* Maintainer: Brian Swetland <swetland@google.com> */ |
392 | .boot_params = 0x10000100, | 392 | .atag_offset = 0x100, |
393 | .map_io = omap_fsample_map_io, | 393 | .map_io = omap_fsample_map_io, |
394 | .reserve = omap_reserve, | 394 | .reserve = omap_reserve, |
395 | .init_irq = omap_fsample_init_irq, | 395 | .init_irq = omap_fsample_init_irq, |
diff --git a/arch/arm/mach-omap1/board-generic.c b/arch/arm/mach-omap1/board-generic.c index 04fc356c40fa..23cc9e4ad50d 100644 --- a/arch/arm/mach-omap1/board-generic.c +++ b/arch/arm/mach-omap1/board-generic.c | |||
@@ -94,7 +94,7 @@ static void __init omap_generic_map_io(void) | |||
94 | 94 | ||
95 | MACHINE_START(OMAP_GENERIC, "Generic OMAP1510/1610/1710") | 95 | MACHINE_START(OMAP_GENERIC, "Generic OMAP1510/1610/1710") |
96 | /* Maintainer: Tony Lindgren <tony@atomide.com> */ | 96 | /* Maintainer: Tony Lindgren <tony@atomide.com> */ |
97 | .boot_params = 0x10000100, | 97 | .atag_offset = 0x100, |
98 | .map_io = omap_generic_map_io, | 98 | .map_io = omap_generic_map_io, |
99 | .reserve = omap_reserve, | 99 | .reserve = omap_reserve, |
100 | .init_irq = omap_generic_init_irq, | 100 | .init_irq = omap_generic_init_irq, |
diff --git a/arch/arm/mach-omap1/board-h2.c b/arch/arm/mach-omap1/board-h2.c index cb7fb1aa3dca..6c70c28d055c 100644 --- a/arch/arm/mach-omap1/board-h2.c +++ b/arch/arm/mach-omap1/board-h2.c | |||
@@ -461,7 +461,7 @@ static void __init h2_map_io(void) | |||
461 | 461 | ||
462 | MACHINE_START(OMAP_H2, "TI-H2") | 462 | MACHINE_START(OMAP_H2, "TI-H2") |
463 | /* Maintainer: Imre Deak <imre.deak@nokia.com> */ | 463 | /* Maintainer: Imre Deak <imre.deak@nokia.com> */ |
464 | .boot_params = 0x10000100, | 464 | .atag_offset = 0x100, |
465 | .map_io = h2_map_io, | 465 | .map_io = h2_map_io, |
466 | .reserve = omap_reserve, | 466 | .reserve = omap_reserve, |
467 | .init_irq = h2_init_irq, | 467 | .init_irq = h2_init_irq, |
diff --git a/arch/arm/mach-omap1/board-h3.c b/arch/arm/mach-omap1/board-h3.c index 31f34875ffad..8e2b64a46929 100644 --- a/arch/arm/mach-omap1/board-h3.c +++ b/arch/arm/mach-omap1/board-h3.c | |||
@@ -449,7 +449,7 @@ static void __init h3_map_io(void) | |||
449 | 449 | ||
450 | MACHINE_START(OMAP_H3, "TI OMAP1710 H3 board") | 450 | MACHINE_START(OMAP_H3, "TI OMAP1710 H3 board") |
451 | /* Maintainer: Texas Instruments, Inc. */ | 451 | /* Maintainer: Texas Instruments, Inc. */ |
452 | .boot_params = 0x10000100, | 452 | .atag_offset = 0x100, |
453 | .map_io = h3_map_io, | 453 | .map_io = h3_map_io, |
454 | .reserve = omap_reserve, | 454 | .reserve = omap_reserve, |
455 | .init_irq = h3_init_irq, | 455 | .init_irq = h3_init_irq, |
diff --git a/arch/arm/mach-omap1/board-htcherald.c b/arch/arm/mach-omap1/board-htcherald.c index 36e06ea7ec65..e81ead1c89ea 100644 --- a/arch/arm/mach-omap1/board-htcherald.c +++ b/arch/arm/mach-omap1/board-htcherald.c | |||
@@ -611,7 +611,7 @@ static void __init htcherald_init_irq(void) | |||
611 | MACHINE_START(HERALD, "HTC Herald") | 611 | MACHINE_START(HERALD, "HTC Herald") |
612 | /* Maintainer: Cory Maccarrone <darkstar6262@gmail.com> */ | 612 | /* Maintainer: Cory Maccarrone <darkstar6262@gmail.com> */ |
613 | /* Maintainer: wing-linux.sourceforge.net */ | 613 | /* Maintainer: wing-linux.sourceforge.net */ |
614 | .boot_params = 0x10000100, | 614 | .atag_offset = 0x100, |
615 | .map_io = htcherald_map_io, | 615 | .map_io = htcherald_map_io, |
616 | .reserve = omap_reserve, | 616 | .reserve = omap_reserve, |
617 | .init_irq = htcherald_init_irq, | 617 | .init_irq = htcherald_init_irq, |
diff --git a/arch/arm/mach-omap1/board-innovator.c b/arch/arm/mach-omap1/board-innovator.c index 0b1ba462d388..8b034594fbc7 100644 --- a/arch/arm/mach-omap1/board-innovator.c +++ b/arch/arm/mach-omap1/board-innovator.c | |||
@@ -459,7 +459,7 @@ static void __init innovator_map_io(void) | |||
459 | 459 | ||
460 | MACHINE_START(OMAP_INNOVATOR, "TI-Innovator") | 460 | MACHINE_START(OMAP_INNOVATOR, "TI-Innovator") |
461 | /* Maintainer: MontaVista Software, Inc. */ | 461 | /* Maintainer: MontaVista Software, Inc. */ |
462 | .boot_params = 0x10000100, | 462 | .atag_offset = 0x100, |
463 | .map_io = innovator_map_io, | 463 | .map_io = innovator_map_io, |
464 | .reserve = omap_reserve, | 464 | .reserve = omap_reserve, |
465 | .init_irq = innovator_init_irq, | 465 | .init_irq = innovator_init_irq, |
diff --git a/arch/arm/mach-omap1/board-nokia770.c b/arch/arm/mach-omap1/board-nokia770.c index 5469ce247ffe..6825635ac681 100644 --- a/arch/arm/mach-omap1/board-nokia770.c +++ b/arch/arm/mach-omap1/board-nokia770.c | |||
@@ -264,7 +264,7 @@ static void __init omap_nokia770_map_io(void) | |||
264 | } | 264 | } |
265 | 265 | ||
266 | MACHINE_START(NOKIA770, "Nokia 770") | 266 | MACHINE_START(NOKIA770, "Nokia 770") |
267 | .boot_params = 0x10000100, | 267 | .atag_offset = 0x100, |
268 | .map_io = omap_nokia770_map_io, | 268 | .map_io = omap_nokia770_map_io, |
269 | .reserve = omap_reserve, | 269 | .reserve = omap_reserve, |
270 | .init_irq = omap_nokia770_init_irq, | 270 | .init_irq = omap_nokia770_init_irq, |
diff --git a/arch/arm/mach-omap1/board-osk.c b/arch/arm/mach-omap1/board-osk.c index b08a21380772..44b8e9362bf4 100644 --- a/arch/arm/mach-omap1/board-osk.c +++ b/arch/arm/mach-omap1/board-osk.c | |||
@@ -583,7 +583,7 @@ static void __init osk_map_io(void) | |||
583 | 583 | ||
584 | MACHINE_START(OMAP_OSK, "TI-OSK") | 584 | MACHINE_START(OMAP_OSK, "TI-OSK") |
585 | /* Maintainer: Dirk Behme <dirk.behme@de.bosch.com> */ | 585 | /* Maintainer: Dirk Behme <dirk.behme@de.bosch.com> */ |
586 | .boot_params = 0x10000100, | 586 | .atag_offset = 0x100, |
587 | .map_io = osk_map_io, | 587 | .map_io = osk_map_io, |
588 | .reserve = omap_reserve, | 588 | .reserve = omap_reserve, |
589 | .init_irq = osk_init_irq, | 589 | .init_irq = osk_init_irq, |
diff --git a/arch/arm/mach-omap1/board-palmte.c b/arch/arm/mach-omap1/board-palmte.c index 459cb6bfed55..3d8cd90b1dbb 100644 --- a/arch/arm/mach-omap1/board-palmte.c +++ b/arch/arm/mach-omap1/board-palmte.c | |||
@@ -275,7 +275,7 @@ static void __init omap_palmte_map_io(void) | |||
275 | } | 275 | } |
276 | 276 | ||
277 | MACHINE_START(OMAP_PALMTE, "OMAP310 based Palm Tungsten E") | 277 | MACHINE_START(OMAP_PALMTE, "OMAP310 based Palm Tungsten E") |
278 | .boot_params = 0x10000100, | 278 | .atag_offset = 0x100, |
279 | .map_io = omap_palmte_map_io, | 279 | .map_io = omap_palmte_map_io, |
280 | .reserve = omap_reserve, | 280 | .reserve = omap_reserve, |
281 | .init_irq = omap_palmte_init_irq, | 281 | .init_irq = omap_palmte_init_irq, |
diff --git a/arch/arm/mach-omap1/board-palmtt.c b/arch/arm/mach-omap1/board-palmtt.c index b214f45f646c..d0eefe81cd1b 100644 --- a/arch/arm/mach-omap1/board-palmtt.c +++ b/arch/arm/mach-omap1/board-palmtt.c | |||
@@ -321,7 +321,7 @@ static void __init omap_palmtt_map_io(void) | |||
321 | } | 321 | } |
322 | 322 | ||
323 | MACHINE_START(OMAP_PALMTT, "OMAP1510 based Palm Tungsten|T") | 323 | MACHINE_START(OMAP_PALMTT, "OMAP1510 based Palm Tungsten|T") |
324 | .boot_params = 0x10000100, | 324 | .atag_offset = 0x100, |
325 | .map_io = omap_palmtt_map_io, | 325 | .map_io = omap_palmtt_map_io, |
326 | .reserve = omap_reserve, | 326 | .reserve = omap_reserve, |
327 | .init_irq = omap_palmtt_init_irq, | 327 | .init_irq = omap_palmtt_init_irq, |
diff --git a/arch/arm/mach-omap1/board-palmz71.c b/arch/arm/mach-omap1/board-palmz71.c index 9b0ea48d35fd..98e79bc09213 100644 --- a/arch/arm/mach-omap1/board-palmz71.c +++ b/arch/arm/mach-omap1/board-palmz71.c | |||
@@ -341,7 +341,7 @@ omap_palmz71_map_io(void) | |||
341 | } | 341 | } |
342 | 342 | ||
343 | MACHINE_START(OMAP_PALMZ71, "OMAP310 based Palm Zire71") | 343 | MACHINE_START(OMAP_PALMZ71, "OMAP310 based Palm Zire71") |
344 | .boot_params = 0x10000100, | 344 | .atag_offset = 0x100, |
345 | .map_io = omap_palmz71_map_io, | 345 | .map_io = omap_palmz71_map_io, |
346 | .reserve = omap_reserve, | 346 | .reserve = omap_reserve, |
347 | .init_irq = omap_palmz71_init_irq, | 347 | .init_irq = omap_palmz71_init_irq, |
diff --git a/arch/arm/mach-omap1/board-perseus2.c b/arch/arm/mach-omap1/board-perseus2.c index 67acd4142639..ad3a1567604e 100644 --- a/arch/arm/mach-omap1/board-perseus2.c +++ b/arch/arm/mach-omap1/board-perseus2.c | |||
@@ -350,7 +350,7 @@ static void __init omap_perseus2_map_io(void) | |||
350 | 350 | ||
351 | MACHINE_START(OMAP_PERSEUS2, "OMAP730 Perseus2") | 351 | MACHINE_START(OMAP_PERSEUS2, "OMAP730 Perseus2") |
352 | /* Maintainer: Kevin Hilman <kjh@hilman.org> */ | 352 | /* Maintainer: Kevin Hilman <kjh@hilman.org> */ |
353 | .boot_params = 0x10000100, | 353 | .atag_offset = 0x100, |
354 | .map_io = omap_perseus2_map_io, | 354 | .map_io = omap_perseus2_map_io, |
355 | .reserve = omap_reserve, | 355 | .reserve = omap_reserve, |
356 | .init_irq = omap_perseus2_init_irq, | 356 | .init_irq = omap_perseus2_init_irq, |
diff --git a/arch/arm/mach-omap1/board-sx1.c b/arch/arm/mach-omap1/board-sx1.c index 9c3b7c52d9cf..602b55c39d3d 100644 --- a/arch/arm/mach-omap1/board-sx1.c +++ b/arch/arm/mach-omap1/board-sx1.c | |||
@@ -421,7 +421,7 @@ static void __init omap_sx1_map_io(void) | |||
421 | } | 421 | } |
422 | 422 | ||
423 | MACHINE_START(SX1, "OMAP310 based Siemens SX1") | 423 | MACHINE_START(SX1, "OMAP310 based Siemens SX1") |
424 | .boot_params = 0x10000100, | 424 | .atag_offset = 0x100, |
425 | .map_io = omap_sx1_map_io, | 425 | .map_io = omap_sx1_map_io, |
426 | .reserve = omap_reserve, | 426 | .reserve = omap_reserve, |
427 | .init_irq = omap_sx1_init_irq, | 427 | .init_irq = omap_sx1_init_irq, |
diff --git a/arch/arm/mach-omap1/board-voiceblue.c b/arch/arm/mach-omap1/board-voiceblue.c index 036edc0ee9b6..80165154617a 100644 --- a/arch/arm/mach-omap1/board-voiceblue.c +++ b/arch/arm/mach-omap1/board-voiceblue.c | |||
@@ -301,7 +301,7 @@ static void __init voiceblue_init(void) | |||
301 | 301 | ||
302 | MACHINE_START(VOICEBLUE, "VoiceBlue OMAP5910") | 302 | MACHINE_START(VOICEBLUE, "VoiceBlue OMAP5910") |
303 | /* Maintainer: Ladislav Michl <michl@2n.cz> */ | 303 | /* Maintainer: Ladislav Michl <michl@2n.cz> */ |
304 | .boot_params = 0x10000100, | 304 | .atag_offset = 0x100, |
305 | .map_io = voiceblue_map_io, | 305 | .map_io = voiceblue_map_io, |
306 | .reserve = omap_reserve, | 306 | .reserve = omap_reserve, |
307 | .init_irq = voiceblue_init_irq, | 307 | .init_irq = voiceblue_init_irq, |
diff --git a/arch/arm/mach-omap1/io.c b/arch/arm/mach-omap1/io.c index 870886a29594..1cfa1b6bb62b 100644 --- a/arch/arm/mach-omap1/io.c +++ b/arch/arm/mach-omap1/io.c | |||
@@ -121,6 +121,7 @@ void __init omap1_map_common_io(void) | |||
121 | #endif | 121 | #endif |
122 | 122 | ||
123 | omap_sram_init(); | 123 | omap_sram_init(); |
124 | omap_init_consistent_dma_size(); | ||
124 | } | 125 | } |
125 | 126 | ||
126 | /* | 127 | /* |
diff --git a/arch/arm/mach-omap1/mcbsp.c b/arch/arm/mach-omap1/mcbsp.c index ab7395d84bc8..91f9abbd3250 100644 --- a/arch/arm/mach-omap1/mcbsp.c +++ b/arch/arm/mach-omap1/mcbsp.c | |||
@@ -31,6 +31,7 @@ | |||
31 | static int dsp_use; | 31 | static int dsp_use; |
32 | static struct clk *api_clk; | 32 | static struct clk *api_clk; |
33 | static struct clk *dsp_clk; | 33 | static struct clk *dsp_clk; |
34 | static struct platform_device **omap_mcbsp_devices; | ||
34 | 35 | ||
35 | static void omap1_mcbsp_request(unsigned int id) | 36 | static void omap1_mcbsp_request(unsigned int id) |
36 | { | 37 | { |
@@ -78,6 +79,17 @@ static struct omap_mcbsp_ops omap1_mcbsp_ops = { | |||
78 | .free = omap1_mcbsp_free, | 79 | .free = omap1_mcbsp_free, |
79 | }; | 80 | }; |
80 | 81 | ||
82 | #define OMAP7XX_MCBSP1_BASE 0xfffb1000 | ||
83 | #define OMAP7XX_MCBSP2_BASE 0xfffb1800 | ||
84 | |||
85 | #define OMAP1510_MCBSP1_BASE 0xe1011800 | ||
86 | #define OMAP1510_MCBSP2_BASE 0xfffb1000 | ||
87 | #define OMAP1510_MCBSP3_BASE 0xe1017000 | ||
88 | |||
89 | #define OMAP1610_MCBSP1_BASE 0xe1011800 | ||
90 | #define OMAP1610_MCBSP2_BASE 0xfffb1000 | ||
91 | #define OMAP1610_MCBSP3_BASE 0xe1017000 | ||
92 | |||
81 | #if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) | 93 | #if defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP850) |
82 | struct resource omap7xx_mcbsp_res[][6] = { | 94 | struct resource omap7xx_mcbsp_res[][6] = { |
83 | { | 95 | { |
@@ -369,6 +381,39 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = { | |||
369 | #define OMAP16XX_MCBSP_COUNT 0 | 381 | #define OMAP16XX_MCBSP_COUNT 0 |
370 | #endif | 382 | #endif |
371 | 383 | ||
384 | static void omap_mcbsp_register_board_cfg(struct resource *res, int res_count, | ||
385 | struct omap_mcbsp_platform_data *config, int size) | ||
386 | { | ||
387 | int i; | ||
388 | |||
389 | omap_mcbsp_devices = kzalloc(size * sizeof(struct platform_device *), | ||
390 | GFP_KERNEL); | ||
391 | if (!omap_mcbsp_devices) { | ||
392 | printk(KERN_ERR "Could not register McBSP devices\n"); | ||
393 | return; | ||
394 | } | ||
395 | |||
396 | for (i = 0; i < size; i++) { | ||
397 | struct platform_device *new_mcbsp; | ||
398 | int ret; | ||
399 | |||
400 | new_mcbsp = platform_device_alloc("omap-mcbsp", i + 1); | ||
401 | if (!new_mcbsp) | ||
402 | continue; | ||
403 | platform_device_add_resources(new_mcbsp, &res[i * res_count], | ||
404 | res_count); | ||
405 | config[i].reg_size = 2; | ||
406 | config[i].reg_step = 2; | ||
407 | new_mcbsp->dev.platform_data = &config[i]; | ||
408 | ret = platform_device_add(new_mcbsp); | ||
409 | if (ret) { | ||
410 | platform_device_put(new_mcbsp); | ||
411 | continue; | ||
412 | } | ||
413 | omap_mcbsp_devices[i] = new_mcbsp; | ||
414 | } | ||
415 | } | ||
416 | |||
372 | static int __init omap1_mcbsp_init(void) | 417 | static int __init omap1_mcbsp_init(void) |
373 | { | 418 | { |
374 | if (!cpu_class_is_omap1()) | 419 | if (!cpu_class_is_omap1()) |
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index f34336560437..cd45c045ab8c 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile | |||
@@ -116,9 +116,12 @@ obj-$(CONFIG_ARCH_OMAP4) += $(powerdomain-common) \ | |||
116 | obj-$(CONFIG_ARCH_OMAP2) += clockdomain.o \ | 116 | obj-$(CONFIG_ARCH_OMAP2) += clockdomain.o \ |
117 | clockdomain2xxx_3xxx.o \ | 117 | clockdomain2xxx_3xxx.o \ |
118 | clockdomains2xxx_3xxx_data.o | 118 | clockdomains2xxx_3xxx_data.o |
119 | obj-$(CONFIG_SOC_OMAP2420) += clockdomains2420_data.o | ||
120 | obj-$(CONFIG_SOC_OMAP2430) += clockdomains2430_data.o | ||
119 | obj-$(CONFIG_ARCH_OMAP3) += clockdomain.o \ | 121 | obj-$(CONFIG_ARCH_OMAP3) += clockdomain.o \ |
120 | clockdomain2xxx_3xxx.o \ | 122 | clockdomain2xxx_3xxx.o \ |
121 | clockdomains2xxx_3xxx_data.o | 123 | clockdomains2xxx_3xxx_data.o \ |
124 | clockdomains3xxx_data.o | ||
122 | obj-$(CONFIG_ARCH_OMAP4) += clockdomain.o \ | 125 | obj-$(CONFIG_ARCH_OMAP4) += clockdomain.o \ |
123 | clockdomain44xx.o \ | 126 | clockdomain44xx.o \ |
124 | clockdomains44xx_data.o | 127 | clockdomains44xx_data.o |
@@ -185,78 +188,66 @@ endif | |||
185 | # Specific board support | 188 | # Specific board support |
186 | obj-$(CONFIG_MACH_OMAP_GENERIC) += board-generic.o | 189 | obj-$(CONFIG_MACH_OMAP_GENERIC) += board-generic.o |
187 | obj-$(CONFIG_MACH_OMAP_H4) += board-h4.o | 190 | obj-$(CONFIG_MACH_OMAP_H4) += board-h4.o |
188 | obj-$(CONFIG_MACH_OMAP_2430SDP) += board-2430sdp.o \ | 191 | obj-$(CONFIG_MACH_OMAP_2430SDP) += board-2430sdp.o |
189 | hsmmc.o | ||
190 | obj-$(CONFIG_MACH_OMAP_APOLLON) += board-apollon.o | 192 | obj-$(CONFIG_MACH_OMAP_APOLLON) += board-apollon.o |
191 | obj-$(CONFIG_MACH_OMAP3_BEAGLE) += board-omap3beagle.o \ | 193 | obj-$(CONFIG_MACH_OMAP3_BEAGLE) += board-omap3beagle.o |
192 | hsmmc.o | 194 | obj-$(CONFIG_MACH_DEVKIT8000) += board-devkit8000.o |
193 | obj-$(CONFIG_MACH_DEVKIT8000) += board-devkit8000.o \ | 195 | obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o |
194 | hsmmc.o | 196 | obj-$(CONFIG_MACH_OMAP3530_LV_SOM) += board-omap3logic.o |
195 | obj-$(CONFIG_MACH_OMAP_LDP) += board-ldp.o \ | 197 | obj-$(CONFIG_MACH_OMAP3_TORPEDO) += board-omap3logic.o |
196 | board-flash.o \ | 198 | obj-$(CONFIG_MACH_ENCORE) += board-omap3encore.o |
197 | hsmmc.o | 199 | obj-$(CONFIG_MACH_OVERO) += board-overo.o |
198 | obj-$(CONFIG_MACH_OMAP3530_LV_SOM) += board-omap3logic.o \ | 200 | obj-$(CONFIG_MACH_OMAP3EVM) += board-omap3evm.o |
199 | hsmmc.o | 201 | obj-$(CONFIG_MACH_OMAP3_PANDORA) += board-omap3pandora.o |
200 | obj-$(CONFIG_MACH_OMAP3_TORPEDO) += board-omap3logic.o \ | 202 | obj-$(CONFIG_MACH_OMAP_3430SDP) += board-3430sdp.o |
201 | hsmmc.o | ||
202 | obj-$(CONFIG_MACH_OVERO) += board-overo.o \ | ||
203 | hsmmc.o | ||
204 | obj-$(CONFIG_MACH_OMAP3EVM) += board-omap3evm.o \ | ||
205 | hsmmc.o | ||
206 | obj-$(CONFIG_MACH_OMAP3_PANDORA) += board-omap3pandora.o \ | ||
207 | hsmmc.o | ||
208 | obj-$(CONFIG_MACH_OMAP_3430SDP) += board-3430sdp.o \ | ||
209 | hsmmc.o \ | ||
210 | board-flash.o | ||
211 | obj-$(CONFIG_MACH_NOKIA_N8X0) += board-n8x0.o | 203 | obj-$(CONFIG_MACH_NOKIA_N8X0) += board-n8x0.o |
212 | obj-$(CONFIG_MACH_NOKIA_RM680) += board-rm680.o \ | 204 | obj-$(CONFIG_MACH_NOKIA_RM680) += board-rm680.o \ |
213 | sdram-nokia.o \ | 205 | sdram-nokia.o |
214 | hsmmc.o | ||
215 | obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51.o \ | 206 | obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51.o \ |
216 | sdram-nokia.o \ | 207 | sdram-nokia.o \ |
217 | board-rx51-peripherals.o \ | 208 | board-rx51-peripherals.o \ |
218 | board-rx51-video.o \ | 209 | board-rx51-video.o |
219 | hsmmc.o | ||
220 | obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom.o \ | 210 | obj-$(CONFIG_MACH_OMAP_ZOOM2) += board-zoom.o \ |
221 | board-zoom-peripherals.o \ | 211 | board-zoom-peripherals.o \ |
222 | board-zoom-display.o \ | 212 | board-zoom-display.o \ |
223 | board-flash.o \ | ||
224 | hsmmc.o \ | ||
225 | board-zoom-debugboard.o | 213 | board-zoom-debugboard.o |
226 | obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom.o \ | 214 | obj-$(CONFIG_MACH_OMAP_ZOOM3) += board-zoom.o \ |
227 | board-zoom-peripherals.o \ | 215 | board-zoom-peripherals.o \ |
228 | board-zoom-display.o \ | 216 | board-zoom-display.o \ |
229 | board-flash.o \ | ||
230 | hsmmc.o \ | ||
231 | board-zoom-debugboard.o | 217 | board-zoom-debugboard.o |
232 | obj-$(CONFIG_MACH_OMAP_3630SDP) += board-3630sdp.o \ | 218 | obj-$(CONFIG_MACH_OMAP_3630SDP) += board-3630sdp.o \ |
233 | board-zoom-peripherals.o \ | 219 | board-zoom-peripherals.o \ |
234 | board-zoom-display.o \ | 220 | board-zoom-display.o |
235 | board-flash.o \ | 221 | obj-$(CONFIG_MACH_CM_T35) += board-cm-t35.o |
236 | hsmmc.o | ||
237 | obj-$(CONFIG_MACH_CM_T35) += board-cm-t35.o \ | ||
238 | hsmmc.o | ||
239 | obj-$(CONFIG_MACH_CM_T3517) += board-cm-t3517.o | 222 | obj-$(CONFIG_MACH_CM_T3517) += board-cm-t3517.o |
240 | obj-$(CONFIG_MACH_IGEP0020) += board-igep0020.o \ | 223 | obj-$(CONFIG_MACH_IGEP0020) += board-igep0020.o |
241 | hsmmc.o | 224 | obj-$(CONFIG_MACH_OMAP3_TOUCHBOOK) += board-omap3touchbook.o |
242 | obj-$(CONFIG_MACH_OMAP3_TOUCHBOOK) += board-omap3touchbook.o \ | ||
243 | hsmmc.o | ||
244 | obj-$(CONFIG_MACH_OMAP_4430SDP) += board-4430sdp.o \ | 225 | obj-$(CONFIG_MACH_OMAP_4430SDP) += board-4430sdp.o \ |
245 | hsmmc.o \ | ||
246 | omap_phy_internal.o | 226 | omap_phy_internal.o |
247 | obj-$(CONFIG_MACH_OMAP4_PANDA) += board-omap4panda.o \ | 227 | obj-$(CONFIG_MACH_OMAP4_PANDA) += board-omap4panda.o \ |
248 | hsmmc.o \ | 228 | omap_phy_internal.o |
229 | |||
230 | obj-$(CONFIG_MACH_PCM049) += board-omap4pcm049.o \ | ||
249 | omap_phy_internal.o | 231 | omap_phy_internal.o |
250 | 232 | ||
251 | obj-$(CONFIG_MACH_OMAP3517EVM) += board-am3517evm.o \ | 233 | obj-$(CONFIG_MACH_OMAP3517EVM) += board-am3517evm.o \ |
252 | omap_phy_internal.o \ | 234 | omap_phy_internal.o |
253 | 235 | ||
254 | obj-$(CONFIG_MACH_CRANEBOARD) += board-am3517crane.o | 236 | obj-$(CONFIG_MACH_CRANEBOARD) += board-am3517crane.o |
255 | 237 | ||
256 | obj-$(CONFIG_MACH_SBC3530) += board-omap3stalker.o \ | 238 | obj-$(CONFIG_MACH_SBC3530) += board-omap3stalker.o |
257 | hsmmc.o | ||
258 | obj-$(CONFIG_MACH_TI8168EVM) += board-ti8168evm.o | 239 | obj-$(CONFIG_MACH_TI8168EVM) += board-ti8168evm.o |
240 | |||
259 | # Platform specific device init code | 241 | # Platform specific device init code |
242 | |||
243 | omap-flash-$(CONFIG_MTD_NAND_OMAP2) := board-flash.o | ||
244 | omap-flash-$(CONFIG_MTD_ONENAND_OMAP2) := board-flash.o | ||
245 | obj-y += $(omap-flash-y) $(omap-flash-m) | ||
246 | |||
247 | omap-hsmmc-$(CONFIG_MMC_OMAP_HS) := hsmmc.o | ||
248 | obj-y += $(omap-hsmmc-m) $(omap-hsmmc-y) | ||
249 | |||
250 | |||
260 | usbfs-$(CONFIG_ARCH_OMAP_OTG) := usb-fs.o | 251 | usbfs-$(CONFIG_ARCH_OMAP_OTG) := usb-fs.o |
261 | obj-y += $(usbfs-m) $(usbfs-y) | 252 | obj-y += $(usbfs-m) $(usbfs-y) |
262 | obj-y += usb-musb.o | 253 | obj-y += usb-musb.o |
diff --git a/arch/arm/mach-omap2/board-2430sdp.c b/arch/arm/mach-omap2/board-2430sdp.c index 2028464cf5b9..bb5452eb842d 100644 --- a/arch/arm/mach-omap2/board-2430sdp.c +++ b/arch/arm/mach-omap2/board-2430sdp.c | |||
@@ -141,12 +141,6 @@ static struct omap_board_config_kernel sdp2430_config[] __initdata = { | |||
141 | {OMAP_TAG_LCD, &sdp2430_lcd_config}, | 141 | {OMAP_TAG_LCD, &sdp2430_lcd_config}, |
142 | }; | 142 | }; |
143 | 143 | ||
144 | static void __init omap_2430sdp_init_early(void) | ||
145 | { | ||
146 | omap2_init_common_infrastructure(); | ||
147 | omap2_init_common_devices(NULL, NULL); | ||
148 | } | ||
149 | |||
150 | static struct regulator_consumer_supply sdp2430_vmmc1_supplies[] = { | 144 | static struct regulator_consumer_supply sdp2430_vmmc1_supplies[] = { |
151 | REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"), | 145 | REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"), |
152 | }; | 146 | }; |
@@ -235,6 +229,7 @@ static void __init omap_2430sdp_init(void) | |||
235 | 229 | ||
236 | platform_add_devices(sdp2430_devices, ARRAY_SIZE(sdp2430_devices)); | 230 | platform_add_devices(sdp2430_devices, ARRAY_SIZE(sdp2430_devices)); |
237 | omap_serial_init(); | 231 | omap_serial_init(); |
232 | omap_sdrc_init(NULL, NULL); | ||
238 | omap2_hsmmc_init(mmc); | 233 | omap2_hsmmc_init(mmc); |
239 | omap2_usbfs_init(&sdp2430_usb_config); | 234 | omap2_usbfs_init(&sdp2430_usb_config); |
240 | 235 | ||
@@ -248,18 +243,12 @@ static void __init omap_2430sdp_init(void) | |||
248 | "Secondary LCD backlight"); | 243 | "Secondary LCD backlight"); |
249 | } | 244 | } |
250 | 245 | ||
251 | static void __init omap_2430sdp_map_io(void) | ||
252 | { | ||
253 | omap2_set_globals_243x(); | ||
254 | omap243x_map_common_io(); | ||
255 | } | ||
256 | |||
257 | MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board") | 246 | MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board") |
258 | /* Maintainer: Syed Khasim - Texas Instruments Inc */ | 247 | /* Maintainer: Syed Khasim - Texas Instruments Inc */ |
259 | .boot_params = 0x80000100, | 248 | .atag_offset = 0x100, |
260 | .reserve = omap_reserve, | 249 | .reserve = omap_reserve, |
261 | .map_io = omap_2430sdp_map_io, | 250 | .map_io = omap243x_map_io, |
262 | .init_early = omap_2430sdp_init_early, | 251 | .init_early = omap2430_init_early, |
263 | .init_irq = omap2_init_irq, | 252 | .init_irq = omap2_init_irq, |
264 | .init_machine = omap_2430sdp_init, | 253 | .init_machine = omap_2430sdp_init, |
265 | .timer = &omap2_timer, | 254 | .timer = &omap2_timer, |
diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c index bd600cfb7f80..5b5999caf71d 100644 --- a/arch/arm/mach-omap2/board-3430sdp.c +++ b/arch/arm/mach-omap2/board-3430sdp.c | |||
@@ -225,12 +225,6 @@ static struct omap_dss_board_info sdp3430_dss_data = { | |||
225 | static struct omap_board_config_kernel sdp3430_config[] __initdata = { | 225 | static struct omap_board_config_kernel sdp3430_config[] __initdata = { |
226 | }; | 226 | }; |
227 | 227 | ||
228 | static void __init omap_3430sdp_init_early(void) | ||
229 | { | ||
230 | omap2_init_common_infrastructure(); | ||
231 | omap2_init_common_devices(hyb18m512160af6_sdrc_params, NULL); | ||
232 | } | ||
233 | |||
234 | static struct omap2_hsmmc_info mmc[] = { | 228 | static struct omap2_hsmmc_info mmc[] = { |
235 | { | 229 | { |
236 | .mmc = 1, | 230 | .mmc = 1, |
@@ -719,6 +713,7 @@ static void __init omap_3430sdp_init(void) | |||
719 | gpio_pendown = SDP3430_TS_GPIO_IRQ_SDPV1; | 713 | gpio_pendown = SDP3430_TS_GPIO_IRQ_SDPV1; |
720 | omap_ads7846_init(1, gpio_pendown, 310, NULL); | 714 | omap_ads7846_init(1, gpio_pendown, 310, NULL); |
721 | board_serial_init(); | 715 | board_serial_init(); |
716 | omap_sdrc_init(hyb18m512160af6_sdrc_params, NULL); | ||
722 | usb_musb_init(NULL); | 717 | usb_musb_init(NULL); |
723 | board_smc91x_init(); | 718 | board_smc91x_init(); |
724 | board_flash_init(sdp_flash_partitions, chip_sel_3430, 0); | 719 | board_flash_init(sdp_flash_partitions, chip_sel_3430, 0); |
@@ -729,10 +724,10 @@ static void __init omap_3430sdp_init(void) | |||
729 | 724 | ||
730 | MACHINE_START(OMAP_3430SDP, "OMAP3430 3430SDP board") | 725 | MACHINE_START(OMAP_3430SDP, "OMAP3430 3430SDP board") |
731 | /* Maintainer: Syed Khasim - Texas Instruments Inc */ | 726 | /* Maintainer: Syed Khasim - Texas Instruments Inc */ |
732 | .boot_params = 0x80000100, | 727 | .atag_offset = 0x100, |
733 | .reserve = omap_reserve, | 728 | .reserve = omap_reserve, |
734 | .map_io = omap3_map_io, | 729 | .map_io = omap3_map_io, |
735 | .init_early = omap_3430sdp_init_early, | 730 | .init_early = omap3430_init_early, |
736 | .init_irq = omap3_init_irq, | 731 | .init_irq = omap3_init_irq, |
737 | .init_machine = omap_3430sdp_init, | 732 | .init_machine = omap_3430sdp_init, |
738 | .timer = &omap3_timer, | 733 | .timer = &omap3_timer, |
diff --git a/arch/arm/mach-omap2/board-3630sdp.c b/arch/arm/mach-omap2/board-3630sdp.c index e4f37b57a0c4..f552305162fc 100644 --- a/arch/arm/mach-omap2/board-3630sdp.c +++ b/arch/arm/mach-omap2/board-3630sdp.c | |||
@@ -70,13 +70,6 @@ static const struct usbhs_omap_board_data usbhs_bdata __initconst = { | |||
70 | static struct omap_board_config_kernel sdp_config[] __initdata = { | 70 | static struct omap_board_config_kernel sdp_config[] __initdata = { |
71 | }; | 71 | }; |
72 | 72 | ||
73 | static void __init omap_sdp_init_early(void) | ||
74 | { | ||
75 | omap2_init_common_infrastructure(); | ||
76 | omap2_init_common_devices(h8mbx00u0mer0em_sdrc_params, | ||
77 | h8mbx00u0mer0em_sdrc_params); | ||
78 | } | ||
79 | |||
80 | #ifdef CONFIG_OMAP_MUX | 73 | #ifdef CONFIG_OMAP_MUX |
81 | static struct omap_board_mux board_mux[] __initdata = { | 74 | static struct omap_board_mux board_mux[] __initdata = { |
82 | { .reg_offset = OMAP_MUX_TERMINATOR }, | 75 | { .reg_offset = OMAP_MUX_TERMINATOR }, |
@@ -207,6 +200,8 @@ static void __init omap_sdp_init(void) | |||
207 | omap_board_config = sdp_config; | 200 | omap_board_config = sdp_config; |
208 | omap_board_config_size = ARRAY_SIZE(sdp_config); | 201 | omap_board_config_size = ARRAY_SIZE(sdp_config); |
209 | zoom_peripherals_init(); | 202 | zoom_peripherals_init(); |
203 | omap_sdrc_init(h8mbx00u0mer0em_sdrc_params, | ||
204 | h8mbx00u0mer0em_sdrc_params); | ||
210 | zoom_display_init(); | 205 | zoom_display_init(); |
211 | board_smc91x_init(); | 206 | board_smc91x_init(); |
212 | board_flash_init(sdp_flash_partitions, chip_sel_sdp, NAND_BUSWIDTH_16); | 207 | board_flash_init(sdp_flash_partitions, chip_sel_sdp, NAND_BUSWIDTH_16); |
@@ -215,10 +210,10 @@ static void __init omap_sdp_init(void) | |||
215 | } | 210 | } |
216 | 211 | ||
217 | MACHINE_START(OMAP_3630SDP, "OMAP 3630SDP board") | 212 | MACHINE_START(OMAP_3630SDP, "OMAP 3630SDP board") |
218 | .boot_params = 0x80000100, | 213 | .atag_offset = 0x100, |
219 | .reserve = omap_reserve, | 214 | .reserve = omap_reserve, |
220 | .map_io = omap3_map_io, | 215 | .map_io = omap3_map_io, |
221 | .init_early = omap_sdp_init_early, | 216 | .init_early = omap3630_init_early, |
222 | .init_irq = omap3_init_irq, | 217 | .init_irq = omap3_init_irq, |
223 | .init_machine = omap_sdp_init, | 218 | .init_machine = omap_sdp_init, |
224 | .timer = &omap3_timer, | 219 | .timer = &omap3_timer, |
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c index c7cef44c75d4..6a4fbb2b4aaa 100644 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c | |||
@@ -389,12 +389,6 @@ static struct omap_board_config_kernel sdp4430_config[] __initdata = { | |||
389 | { OMAP_TAG_LCD, &sdp4430_lcd_config }, | 389 | { OMAP_TAG_LCD, &sdp4430_lcd_config }, |
390 | }; | 390 | }; |
391 | 391 | ||
392 | static void __init omap_4430sdp_init_early(void) | ||
393 | { | ||
394 | omap2_init_common_infrastructure(); | ||
395 | omap2_init_common_devices(NULL, NULL); | ||
396 | } | ||
397 | |||
398 | static struct omap_musb_board_data musb_board_data = { | 392 | static struct omap_musb_board_data musb_board_data = { |
399 | .interface_type = MUSB_INTERFACE_UTMI, | 393 | .interface_type = MUSB_INTERFACE_UTMI, |
400 | .mode = MUSB_OTG, | 394 | .mode = MUSB_OTG, |
@@ -809,6 +803,7 @@ static void __init omap_4430sdp_init(void) | |||
809 | omap_sfh7741prox_init(); | 803 | omap_sfh7741prox_init(); |
810 | platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices)); | 804 | platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices)); |
811 | board_serial_init(); | 805 | board_serial_init(); |
806 | omap_sdrc_init(NULL, NULL); | ||
812 | omap4_sdp4430_wifi_init(); | 807 | omap4_sdp4430_wifi_init(); |
813 | omap4_twl6030_hsmmc_init(mmc); | 808 | omap4_twl6030_hsmmc_init(mmc); |
814 | 809 | ||
@@ -830,18 +825,12 @@ static void __init omap_4430sdp_init(void) | |||
830 | omap_4430sdp_display_init(); | 825 | omap_4430sdp_display_init(); |
831 | } | 826 | } |
832 | 827 | ||
833 | static void __init omap_4430sdp_map_io(void) | ||
834 | { | ||
835 | omap2_set_globals_443x(); | ||
836 | omap44xx_map_common_io(); | ||
837 | } | ||
838 | |||
839 | MACHINE_START(OMAP_4430SDP, "OMAP4430 4430SDP board") | 828 | MACHINE_START(OMAP_4430SDP, "OMAP4430 4430SDP board") |
840 | /* Maintainer: Santosh Shilimkar - Texas Instruments Inc */ | 829 | /* Maintainer: Santosh Shilimkar - Texas Instruments Inc */ |
841 | .boot_params = 0x80000100, | 830 | .atag_offset = 0x100, |
842 | .reserve = omap_reserve, | 831 | .reserve = omap_reserve, |
843 | .map_io = omap_4430sdp_map_io, | 832 | .map_io = omap4_map_io, |
844 | .init_early = omap_4430sdp_init_early, | 833 | .init_early = omap4430_init_early, |
845 | .init_irq = gic_init_irq, | 834 | .init_irq = gic_init_irq, |
846 | .init_machine = omap_4430sdp_init, | 835 | .init_machine = omap_4430sdp_init, |
847 | .timer = &omap4_timer, | 836 | .timer = &omap4_timer, |
diff --git a/arch/arm/mach-omap2/board-am3517crane.c b/arch/arm/mach-omap2/board-am3517crane.c index 933e9353cb37..7834536ab416 100644 --- a/arch/arm/mach-omap2/board-am3517crane.c +++ b/arch/arm/mach-omap2/board-am3517crane.c | |||
@@ -47,12 +47,6 @@ static struct omap_board_mux board_mux[] __initdata = { | |||
47 | }; | 47 | }; |
48 | #endif | 48 | #endif |
49 | 49 | ||
50 | static void __init am3517_crane_init_early(void) | ||
51 | { | ||
52 | omap2_init_common_infrastructure(); | ||
53 | omap2_init_common_devices(NULL, NULL); | ||
54 | } | ||
55 | |||
56 | static struct usbhs_omap_board_data usbhs_bdata __initdata = { | 50 | static struct usbhs_omap_board_data usbhs_bdata __initdata = { |
57 | .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY, | 51 | .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY, |
58 | .port_mode[1] = OMAP_USBHS_PORT_MODE_UNUSED, | 52 | .port_mode[1] = OMAP_USBHS_PORT_MODE_UNUSED, |
@@ -70,6 +64,7 @@ static void __init am3517_crane_init(void) | |||
70 | 64 | ||
71 | omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); | 65 | omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); |
72 | omap_serial_init(); | 66 | omap_serial_init(); |
67 | omap_sdrc_init(NULL, NULL); | ||
73 | 68 | ||
74 | omap_board_config = am3517_crane_config; | 69 | omap_board_config = am3517_crane_config; |
75 | omap_board_config_size = ARRAY_SIZE(am3517_crane_config); | 70 | omap_board_config_size = ARRAY_SIZE(am3517_crane_config); |
@@ -98,10 +93,10 @@ static void __init am3517_crane_init(void) | |||
98 | } | 93 | } |
99 | 94 | ||
100 | MACHINE_START(CRANEBOARD, "AM3517/05 CRANEBOARD") | 95 | MACHINE_START(CRANEBOARD, "AM3517/05 CRANEBOARD") |
101 | .boot_params = 0x80000100, | 96 | .atag_offset = 0x100, |
102 | .reserve = omap_reserve, | 97 | .reserve = omap_reserve, |
103 | .map_io = omap3_map_io, | 98 | .map_io = omap3_map_io, |
104 | .init_early = am3517_crane_init_early, | 99 | .init_early = am35xx_init_early, |
105 | .init_irq = omap3_init_irq, | 100 | .init_irq = omap3_init_irq, |
106 | .init_machine = am3517_crane_init, | 101 | .init_machine = am3517_crane_init, |
107 | .timer = &omap3_timer, | 102 | .timer = &omap3_timer, |
diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c index f3006c304150..65a5912278ac 100644 --- a/arch/arm/mach-omap2/board-am3517evm.c +++ b/arch/arm/mach-omap2/board-am3517evm.c | |||
@@ -362,11 +362,6 @@ static struct omap_dss_board_info am3517_evm_dss_data = { | |||
362 | /* | 362 | /* |
363 | * Board initialization | 363 | * Board initialization |
364 | */ | 364 | */ |
365 | static void __init am3517_evm_init_early(void) | ||
366 | { | ||
367 | omap2_init_common_infrastructure(); | ||
368 | omap2_init_common_devices(NULL, NULL); | ||
369 | } | ||
370 | 365 | ||
371 | static struct omap_musb_board_data musb_board_data = { | 366 | static struct omap_musb_board_data musb_board_data = { |
372 | .interface_type = MUSB_INTERFACE_ULPI, | 367 | .interface_type = MUSB_INTERFACE_ULPI, |
@@ -469,6 +464,7 @@ static void __init am3517_evm_init(void) | |||
469 | am3517_evm_i2c_init(); | 464 | am3517_evm_i2c_init(); |
470 | omap_display_init(&am3517_evm_dss_data); | 465 | omap_display_init(&am3517_evm_dss_data); |
471 | omap_serial_init(); | 466 | omap_serial_init(); |
467 | omap_sdrc_init(NULL, NULL); | ||
472 | 468 | ||
473 | /* Configure GPIO for EHCI port */ | 469 | /* Configure GPIO for EHCI port */ |
474 | omap_mux_init_gpio(57, OMAP_PIN_OUTPUT); | 470 | omap_mux_init_gpio(57, OMAP_PIN_OUTPUT); |
@@ -490,10 +486,10 @@ static void __init am3517_evm_init(void) | |||
490 | } | 486 | } |
491 | 487 | ||
492 | MACHINE_START(OMAP3517EVM, "OMAP3517/AM3517 EVM") | 488 | MACHINE_START(OMAP3517EVM, "OMAP3517/AM3517 EVM") |
493 | .boot_params = 0x80000100, | 489 | .atag_offset = 0x100, |
494 | .reserve = omap_reserve, | 490 | .reserve = omap_reserve, |
495 | .map_io = omap3_map_io, | 491 | .map_io = omap3_map_io, |
496 | .init_early = am3517_evm_init_early, | 492 | .init_early = am35xx_init_early, |
497 | .init_irq = omap3_init_irq, | 493 | .init_irq = omap3_init_irq, |
498 | .init_machine = am3517_evm_init, | 494 | .init_machine = am3517_evm_init, |
499 | .timer = &omap3_timer, | 495 | .timer = &omap3_timer, |
diff --git a/arch/arm/mach-omap2/board-apollon.c b/arch/arm/mach-omap2/board-apollon.c index 70211703ff9f..29c409b68b52 100644 --- a/arch/arm/mach-omap2/board-apollon.c +++ b/arch/arm/mach-omap2/board-apollon.c | |||
@@ -273,12 +273,6 @@ static struct omap_board_config_kernel apollon_config[] __initdata = { | |||
273 | { OMAP_TAG_LCD, &apollon_lcd_config }, | 273 | { OMAP_TAG_LCD, &apollon_lcd_config }, |
274 | }; | 274 | }; |
275 | 275 | ||
276 | static void __init omap_apollon_init_early(void) | ||
277 | { | ||
278 | omap2_init_common_infrastructure(); | ||
279 | omap2_init_common_devices(NULL, NULL); | ||
280 | } | ||
281 | |||
282 | static struct gpio apollon_gpio_leds[] __initdata = { | 276 | static struct gpio apollon_gpio_leds[] __initdata = { |
283 | { LED0_GPIO13, GPIOF_OUT_INIT_LOW, "LED0" }, /* LED0 - AA10 */ | 277 | { LED0_GPIO13, GPIOF_OUT_INIT_LOW, "LED0" }, /* LED0 - AA10 */ |
284 | { LED1_GPIO14, GPIOF_OUT_INIT_LOW, "LED1" }, /* LED1 - AA6 */ | 278 | { LED1_GPIO14, GPIOF_OUT_INIT_LOW, "LED1" }, /* LED1 - AA6 */ |
@@ -340,20 +334,15 @@ static void __init omap_apollon_init(void) | |||
340 | */ | 334 | */ |
341 | platform_add_devices(apollon_devices, ARRAY_SIZE(apollon_devices)); | 335 | platform_add_devices(apollon_devices, ARRAY_SIZE(apollon_devices)); |
342 | omap_serial_init(); | 336 | omap_serial_init(); |
343 | } | 337 | omap_sdrc_init(NULL, NULL); |
344 | |||
345 | static void __init omap_apollon_map_io(void) | ||
346 | { | ||
347 | omap2_set_globals_242x(); | ||
348 | omap242x_map_common_io(); | ||
349 | } | 338 | } |
350 | 339 | ||
351 | MACHINE_START(OMAP_APOLLON, "OMAP24xx Apollon") | 340 | MACHINE_START(OMAP_APOLLON, "OMAP24xx Apollon") |
352 | /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */ | 341 | /* Maintainer: Kyungmin Park <kyungmin.park@samsung.com> */ |
353 | .boot_params = 0x80000100, | 342 | .atag_offset = 0x100, |
354 | .reserve = omap_reserve, | 343 | .reserve = omap_reserve, |
355 | .map_io = omap_apollon_map_io, | 344 | .map_io = omap242x_map_io, |
356 | .init_early = omap_apollon_init_early, | 345 | .init_early = omap2420_init_early, |
357 | .init_irq = omap2_init_irq, | 346 | .init_irq = omap2_init_irq, |
358 | .init_machine = omap_apollon_init, | 347 | .init_machine = omap_apollon_init, |
359 | .timer = &omap2_timer, | 348 | .timer = &omap2_timer, |
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c index 3af8aab435b5..5665e688bd26 100644 --- a/arch/arm/mach-omap2/board-cm-t35.c +++ b/arch/arm/mach-omap2/board-cm-t35.c | |||
@@ -471,13 +471,6 @@ static void __init cm_t35_init_i2c(void) | |||
471 | omap3_pmic_init("tps65930", &cm_t35_twldata); | 471 | omap3_pmic_init("tps65930", &cm_t35_twldata); |
472 | } | 472 | } |
473 | 473 | ||
474 | static void __init cm_t35_init_early(void) | ||
475 | { | ||
476 | omap2_init_common_infrastructure(); | ||
477 | omap2_init_common_devices(mt46h32m32lf6_sdrc_params, | ||
478 | mt46h32m32lf6_sdrc_params); | ||
479 | } | ||
480 | |||
481 | #ifdef CONFIG_OMAP_MUX | 474 | #ifdef CONFIG_OMAP_MUX |
482 | static struct omap_board_mux board_mux[] __initdata = { | 475 | static struct omap_board_mux board_mux[] __initdata = { |
483 | /* nCS and IRQ for CM-T35 ethernet */ | 476 | /* nCS and IRQ for CM-T35 ethernet */ |
@@ -610,6 +603,8 @@ static void __init cm_t3x_common_init(void) | |||
610 | omap_board_config_size = ARRAY_SIZE(cm_t35_config); | 603 | omap_board_config_size = ARRAY_SIZE(cm_t35_config); |
611 | omap3_mux_init(board_mux, OMAP_PACKAGE_CUS); | 604 | omap3_mux_init(board_mux, OMAP_PACKAGE_CUS); |
612 | omap_serial_init(); | 605 | omap_serial_init(); |
606 | omap_sdrc_init(mt46h32m32lf6_sdrc_params, | ||
607 | mt46h32m32lf6_sdrc_params); | ||
613 | cm_t35_init_i2c(); | 608 | cm_t35_init_i2c(); |
614 | omap_ads7846_init(1, CM_T35_GPIO_PENDOWN, 0, NULL); | 609 | omap_ads7846_init(1, CM_T35_GPIO_PENDOWN, 0, NULL); |
615 | cm_t35_init_ethernet(); | 610 | cm_t35_init_ethernet(); |
@@ -634,20 +629,20 @@ static void __init cm_t3730_init(void) | |||
634 | } | 629 | } |
635 | 630 | ||
636 | MACHINE_START(CM_T35, "Compulab CM-T35") | 631 | MACHINE_START(CM_T35, "Compulab CM-T35") |
637 | .boot_params = 0x80000100, | 632 | .atag_offset = 0x100, |
638 | .reserve = omap_reserve, | 633 | .reserve = omap_reserve, |
639 | .map_io = omap3_map_io, | 634 | .map_io = omap3_map_io, |
640 | .init_early = cm_t35_init_early, | 635 | .init_early = omap35xx_init_early, |
641 | .init_irq = omap3_init_irq, | 636 | .init_irq = omap3_init_irq, |
642 | .init_machine = cm_t35_init, | 637 | .init_machine = cm_t35_init, |
643 | .timer = &omap3_timer, | 638 | .timer = &omap3_timer, |
644 | MACHINE_END | 639 | MACHINE_END |
645 | 640 | ||
646 | MACHINE_START(CM_T3730, "Compulab CM-T3730") | 641 | MACHINE_START(CM_T3730, "Compulab CM-T3730") |
647 | .boot_params = 0x80000100, | 642 | .atag_offset = 0x100, |
648 | .reserve = omap_reserve, | 643 | .reserve = omap_reserve, |
649 | .map_io = omap3_map_io, | 644 | .map_io = omap3_map_io, |
650 | .init_early = cm_t35_init_early, | 645 | .init_early = omap3630_init_early, |
651 | .init_irq = omap3_init_irq, | 646 | .init_irq = omap3_init_irq, |
652 | .init_machine = cm_t3730_init, | 647 | .init_machine = cm_t3730_init, |
653 | .timer = &omap3_timer, | 648 | .timer = &omap3_timer, |
diff --git a/arch/arm/mach-omap2/board-cm-t3517.c b/arch/arm/mach-omap2/board-cm-t3517.c index 05c72f4c1b57..3f4dc6626845 100644 --- a/arch/arm/mach-omap2/board-cm-t3517.c +++ b/arch/arm/mach-omap2/board-cm-t3517.c | |||
@@ -251,12 +251,6 @@ static inline void cm_t3517_init_nand(void) {} | |||
251 | static struct omap_board_config_kernel cm_t3517_config[] __initdata = { | 251 | static struct omap_board_config_kernel cm_t3517_config[] __initdata = { |
252 | }; | 252 | }; |
253 | 253 | ||
254 | static void __init cm_t3517_init_early(void) | ||
255 | { | ||
256 | omap2_init_common_infrastructure(); | ||
257 | omap2_init_common_devices(NULL, NULL); | ||
258 | } | ||
259 | |||
260 | #ifdef CONFIG_OMAP_MUX | 254 | #ifdef CONFIG_OMAP_MUX |
261 | static struct omap_board_mux board_mux[] __initdata = { | 255 | static struct omap_board_mux board_mux[] __initdata = { |
262 | /* GPIO186 - Green LED */ | 256 | /* GPIO186 - Green LED */ |
@@ -289,6 +283,7 @@ static void __init cm_t3517_init(void) | |||
289 | { | 283 | { |
290 | omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); | 284 | omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); |
291 | omap_serial_init(); | 285 | omap_serial_init(); |
286 | omap_sdrc_init(NULL, NULL); | ||
292 | omap_board_config = cm_t3517_config; | 287 | omap_board_config = cm_t3517_config; |
293 | omap_board_config_size = ARRAY_SIZE(cm_t3517_config); | 288 | omap_board_config_size = ARRAY_SIZE(cm_t3517_config); |
294 | cm_t3517_init_leds(); | 289 | cm_t3517_init_leds(); |
@@ -299,10 +294,10 @@ static void __init cm_t3517_init(void) | |||
299 | } | 294 | } |
300 | 295 | ||
301 | MACHINE_START(CM_T3517, "Compulab CM-T3517") | 296 | MACHINE_START(CM_T3517, "Compulab CM-T3517") |
302 | .boot_params = 0x80000100, | 297 | .atag_offset = 0x100, |
303 | .reserve = omap_reserve, | 298 | .reserve = omap_reserve, |
304 | .map_io = omap3_map_io, | 299 | .map_io = omap3_map_io, |
305 | .init_early = cm_t3517_init_early, | 300 | .init_early = am35xx_init_early, |
306 | .init_irq = omap3_init_irq, | 301 | .init_irq = omap3_init_irq, |
307 | .init_machine = cm_t3517_init, | 302 | .init_machine = cm_t3517_init, |
308 | .timer = &omap3_timer, | 303 | .timer = &omap3_timer, |
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c index b6002ec31c6a..556df32d88ea 100644 --- a/arch/arm/mach-omap2/board-devkit8000.c +++ b/arch/arm/mach-omap2/board-devkit8000.c | |||
@@ -397,19 +397,6 @@ static struct platform_device keys_gpio = { | |||
397 | }, | 397 | }, |
398 | }; | 398 | }; |
399 | 399 | ||
400 | |||
401 | static void __init devkit8000_init_early(void) | ||
402 | { | ||
403 | omap2_init_common_infrastructure(); | ||
404 | omap2_init_common_devices(mt46h32m32lf6_sdrc_params, | ||
405 | mt46h32m32lf6_sdrc_params); | ||
406 | } | ||
407 | |||
408 | static void __init devkit8000_init_irq(void) | ||
409 | { | ||
410 | omap3_init_irq(); | ||
411 | } | ||
412 | |||
413 | #define OMAP_DM9000_BASE 0x2c000000 | 400 | #define OMAP_DM9000_BASE 0x2c000000 |
414 | 401 | ||
415 | static struct resource omap_dm9000_resources[] = { | 402 | static struct resource omap_dm9000_resources[] = { |
@@ -645,6 +632,8 @@ static void __init devkit8000_init(void) | |||
645 | { | 632 | { |
646 | omap3_mux_init(board_mux, OMAP_PACKAGE_CUS); | 633 | omap3_mux_init(board_mux, OMAP_PACKAGE_CUS); |
647 | omap_serial_init(); | 634 | omap_serial_init(); |
635 | omap_sdrc_init(mt46h32m32lf6_sdrc_params, | ||
636 | mt46h32m32lf6_sdrc_params); | ||
648 | 637 | ||
649 | omap_dm9000_init(); | 638 | omap_dm9000_init(); |
650 | 639 | ||
@@ -667,11 +656,11 @@ static void __init devkit8000_init(void) | |||
667 | } | 656 | } |
668 | 657 | ||
669 | MACHINE_START(DEVKIT8000, "OMAP3 Devkit8000") | 658 | MACHINE_START(DEVKIT8000, "OMAP3 Devkit8000") |
670 | .boot_params = 0x80000100, | 659 | .atag_offset = 0x100, |
671 | .reserve = omap_reserve, | 660 | .reserve = omap_reserve, |
672 | .map_io = omap3_map_io, | 661 | .map_io = omap3_map_io, |
673 | .init_early = devkit8000_init_early, | 662 | .init_early = omap35xx_init_early, |
674 | .init_irq = devkit8000_init_irq, | 663 | .init_irq = omap3_init_irq, |
675 | .init_machine = devkit8000_init, | 664 | .init_machine = devkit8000_init, |
676 | .timer = &omap3_secure_timer, | 665 | .timer = &omap3_secure_timer, |
677 | MACHINE_END | 666 | MACHINE_END |
diff --git a/arch/arm/mach-omap2/board-flash.c b/arch/arm/mach-omap2/board-flash.c index aa1b0cbe19d2..30a6f527510c 100644 --- a/arch/arm/mach-omap2/board-flash.c +++ b/arch/arm/mach-omap2/board-flash.c | |||
@@ -148,11 +148,6 @@ __init board_nand_init(struct mtd_partition *nand_parts, | |||
148 | board_nand_data.gpmc_irq = OMAP_GPMC_IRQ_BASE + cs; | 148 | board_nand_data.gpmc_irq = OMAP_GPMC_IRQ_BASE + cs; |
149 | gpmc_nand_init(&board_nand_data); | 149 | gpmc_nand_init(&board_nand_data); |
150 | } | 150 | } |
151 | #else | ||
152 | void | ||
153 | __init board_nand_init(struct mtd_partition *nand_parts, u8 nr_parts, u8 cs, int nand_type) | ||
154 | { | ||
155 | } | ||
156 | #endif /* CONFIG_MTD_NAND_OMAP2 || CONFIG_MTD_NAND_OMAP2_MODULE */ | 151 | #endif /* CONFIG_MTD_NAND_OMAP2 || CONFIG_MTD_NAND_OMAP2_MODULE */ |
157 | 152 | ||
158 | /** | 153 | /** |
diff --git a/arch/arm/mach-omap2/board-flash.h b/arch/arm/mach-omap2/board-flash.h index c240a3f8d163..d25503a98417 100644 --- a/arch/arm/mach-omap2/board-flash.h +++ b/arch/arm/mach-omap2/board-flash.h | |||
@@ -24,7 +24,26 @@ struct flash_partitions { | |||
24 | int nr_parts; | 24 | int nr_parts; |
25 | }; | 25 | }; |
26 | 26 | ||
27 | #if defined(CONFIG_MTD_NAND_OMAP2) || \ | ||
28 | defined(CONFIG_MTD_NAND_OMAP2_MODULE) || \ | ||
29 | defined(CONFIG_MTD_ONENAND_OMAP2) || \ | ||
30 | defined(CONFIG_MTD_ONENAND_OMAP2_MODULE) | ||
27 | extern void board_flash_init(struct flash_partitions [], | 31 | extern void board_flash_init(struct flash_partitions [], |
28 | char chip_sel[][GPMC_CS_NUM], int nand_type); | 32 | char chip_sel[][GPMC_CS_NUM], int nand_type); |
33 | #else | ||
34 | static inline void board_flash_init(struct flash_partitions part[], | ||
35 | char chip_sel[][GPMC_CS_NUM], int nand_type) | ||
36 | { | ||
37 | } | ||
38 | #endif | ||
39 | |||
40 | #if defined(CONFIG_MTD_NAND_OMAP2) || \ | ||
41 | defined(CONFIG_MTD_NAND_OMAP2_MODULE) | ||
29 | extern void board_nand_init(struct mtd_partition *nand_parts, | 42 | extern void board_nand_init(struct mtd_partition *nand_parts, |
30 | u8 nr_parts, u8 cs, int nand_type); | 43 | u8 nr_parts, u8 cs, int nand_type); |
44 | #else | ||
45 | static inline void board_nand_init(struct mtd_partition *nand_parts, | ||
46 | u8 nr_parts, u8 cs, int nand_type) | ||
47 | { | ||
48 | } | ||
49 | #endif | ||
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index 54db41a84a9b..e8d45d3bd3e0 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c | |||
@@ -36,12 +36,12 @@ static struct omap_board_config_kernel generic_config[] = { | |||
36 | static void __init omap_generic_init_early(void) | 36 | static void __init omap_generic_init_early(void) |
37 | { | 37 | { |
38 | omap2_init_common_infrastructure(); | 38 | omap2_init_common_infrastructure(); |
39 | omap2_init_common_devices(NULL, NULL); | ||
40 | } | 39 | } |
41 | 40 | ||
42 | static void __init omap_generic_init(void) | 41 | static void __init omap_generic_init(void) |
43 | { | 42 | { |
44 | omap_serial_init(); | 43 | omap_serial_init(); |
44 | omap_sdrc_init(NULL, NULL); | ||
45 | omap_board_config = generic_config; | 45 | omap_board_config = generic_config; |
46 | omap_board_config_size = ARRAY_SIZE(generic_config); | 46 | omap_board_config_size = ARRAY_SIZE(generic_config); |
47 | } | 47 | } |
@@ -66,7 +66,7 @@ static void __init omap_generic_map_io(void) | |||
66 | /* XXX This machine entry name should be updated */ | 66 | /* XXX This machine entry name should be updated */ |
67 | MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx") | 67 | MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx") |
68 | /* Maintainer: Paul Mundt <paul.mundt@nokia.com> */ | 68 | /* Maintainer: Paul Mundt <paul.mundt@nokia.com> */ |
69 | .boot_params = 0x80000100, | 69 | .atag_offset = 0x100, |
70 | .reserve = omap_reserve, | 70 | .reserve = omap_reserve, |
71 | .map_io = omap_generic_map_io, | 71 | .map_io = omap_generic_map_io, |
72 | .init_early = omap_generic_init_early, | 72 | .init_early = omap_generic_init_early, |
diff --git a/arch/arm/mach-omap2/board-h4.c b/arch/arm/mach-omap2/board-h4.c index 45de2b319ec9..fe75c195f69f 100644 --- a/arch/arm/mach-omap2/board-h4.c +++ b/arch/arm/mach-omap2/board-h4.c | |||
@@ -290,17 +290,6 @@ static struct omap_board_config_kernel h4_config[] __initdata = { | |||
290 | { OMAP_TAG_LCD, &h4_lcd_config }, | 290 | { OMAP_TAG_LCD, &h4_lcd_config }, |
291 | }; | 291 | }; |
292 | 292 | ||
293 | static void __init omap_h4_init_early(void) | ||
294 | { | ||
295 | omap2_init_common_infrastructure(); | ||
296 | omap2_init_common_devices(NULL, NULL); | ||
297 | } | ||
298 | |||
299 | static void __init omap_h4_init_irq(void) | ||
300 | { | ||
301 | omap2_init_irq(); | ||
302 | } | ||
303 | |||
304 | static struct at24_platform_data m24c01 = { | 293 | static struct at24_platform_data m24c01 = { |
305 | .byte_len = SZ_1K / 8, | 294 | .byte_len = SZ_1K / 8, |
306 | .page_size = 16, | 295 | .page_size = 16, |
@@ -371,22 +360,17 @@ static void __init omap_h4_init(void) | |||
371 | platform_add_devices(h4_devices, ARRAY_SIZE(h4_devices)); | 360 | platform_add_devices(h4_devices, ARRAY_SIZE(h4_devices)); |
372 | omap2_usbfs_init(&h4_usb_config); | 361 | omap2_usbfs_init(&h4_usb_config); |
373 | omap_serial_init(); | 362 | omap_serial_init(); |
363 | omap_sdrc_init(NULL, NULL); | ||
374 | h4_init_flash(); | 364 | h4_init_flash(); |
375 | } | 365 | } |
376 | 366 | ||
377 | static void __init omap_h4_map_io(void) | ||
378 | { | ||
379 | omap2_set_globals_242x(); | ||
380 | omap242x_map_common_io(); | ||
381 | } | ||
382 | |||
383 | MACHINE_START(OMAP_H4, "OMAP2420 H4 board") | 367 | MACHINE_START(OMAP_H4, "OMAP2420 H4 board") |
384 | /* Maintainer: Paul Mundt <paul.mundt@nokia.com> */ | 368 | /* Maintainer: Paul Mundt <paul.mundt@nokia.com> */ |
385 | .boot_params = 0x80000100, | 369 | .atag_offset = 0x100, |
386 | .reserve = omap_reserve, | 370 | .reserve = omap_reserve, |
387 | .map_io = omap_h4_map_io, | 371 | .map_io = omap242x_map_io, |
388 | .init_early = omap_h4_init_early, | 372 | .init_early = omap2420_init_early, |
389 | .init_irq = omap_h4_init_irq, | 373 | .init_irq = omap2_init_irq, |
390 | .init_machine = omap_h4_init, | 374 | .init_machine = omap_h4_init, |
391 | .timer = &omap2_timer, | 375 | .timer = &omap2_timer, |
392 | MACHINE_END | 376 | MACHINE_END |
diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c index 35be778caf1b..e20cad6a0835 100644 --- a/arch/arm/mach-omap2/board-igep0020.c +++ b/arch/arm/mach-omap2/board-igep0020.c | |||
@@ -491,13 +491,6 @@ static struct platform_device *igep_devices[] __initdata = { | |||
491 | &igep_vwlan_device, | 491 | &igep_vwlan_device, |
492 | }; | 492 | }; |
493 | 493 | ||
494 | static void __init igep_init_early(void) | ||
495 | { | ||
496 | omap2_init_common_infrastructure(); | ||
497 | omap2_init_common_devices(m65kxxxxam_sdrc_params, | ||
498 | m65kxxxxam_sdrc_params); | ||
499 | } | ||
500 | |||
501 | static int igep2_keymap[] = { | 494 | static int igep2_keymap[] = { |
502 | KEY(0, 0, KEY_LEFT), | 495 | KEY(0, 0, KEY_LEFT), |
503 | KEY(0, 1, KEY_RIGHT), | 496 | KEY(0, 1, KEY_RIGHT), |
@@ -650,6 +643,8 @@ static void __init igep_init(void) | |||
650 | igep_i2c_init(); | 643 | igep_i2c_init(); |
651 | platform_add_devices(igep_devices, ARRAY_SIZE(igep_devices)); | 644 | platform_add_devices(igep_devices, ARRAY_SIZE(igep_devices)); |
652 | omap_serial_init(); | 645 | omap_serial_init(); |
646 | omap_sdrc_init(m65kxxxxam_sdrc_params, | ||
647 | m65kxxxxam_sdrc_params); | ||
653 | usb_musb_init(NULL); | 648 | usb_musb_init(NULL); |
654 | 649 | ||
655 | igep_flash_init(); | 650 | igep_flash_init(); |
@@ -672,20 +667,20 @@ static void __init igep_init(void) | |||
672 | } | 667 | } |
673 | 668 | ||
674 | MACHINE_START(IGEP0020, "IGEP v2 board") | 669 | MACHINE_START(IGEP0020, "IGEP v2 board") |
675 | .boot_params = 0x80000100, | 670 | .atag_offset = 0x100, |
676 | .reserve = omap_reserve, | 671 | .reserve = omap_reserve, |
677 | .map_io = omap3_map_io, | 672 | .map_io = omap3_map_io, |
678 | .init_early = igep_init_early, | 673 | .init_early = omap35xx_init_early, |
679 | .init_irq = omap3_init_irq, | 674 | .init_irq = omap3_init_irq, |
680 | .init_machine = igep_init, | 675 | .init_machine = igep_init, |
681 | .timer = &omap3_timer, | 676 | .timer = &omap3_timer, |
682 | MACHINE_END | 677 | MACHINE_END |
683 | 678 | ||
684 | MACHINE_START(IGEP0030, "IGEP OMAP3 module") | 679 | MACHINE_START(IGEP0030, "IGEP OMAP3 module") |
685 | .boot_params = 0x80000100, | 680 | .atag_offset = 0x100, |
686 | .reserve = omap_reserve, | 681 | .reserve = omap_reserve, |
687 | .map_io = omap3_map_io, | 682 | .map_io = omap3_map_io, |
688 | .init_early = igep_init_early, | 683 | .init_early = omap35xx_init_early, |
689 | .init_irq = omap3_init_irq, | 684 | .init_irq = omap3_init_irq, |
690 | .init_machine = igep_init, | 685 | .init_machine = igep_init, |
691 | .timer = &omap3_timer, | 686 | .timer = &omap3_timer, |
diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c index 218764c9377e..0fa28be2cfda 100644 --- a/arch/arm/mach-omap2/board-ldp.c +++ b/arch/arm/mach-omap2/board-ldp.c | |||
@@ -193,12 +193,6 @@ static struct omap_board_config_kernel ldp_config[] __initdata = { | |||
193 | { OMAP_TAG_LCD, &ldp_lcd_config }, | 193 | { OMAP_TAG_LCD, &ldp_lcd_config }, |
194 | }; | 194 | }; |
195 | 195 | ||
196 | static void __init omap_ldp_init_early(void) | ||
197 | { | ||
198 | omap2_init_common_infrastructure(); | ||
199 | omap2_init_common_devices(NULL, NULL); | ||
200 | } | ||
201 | |||
202 | static struct twl4030_gpio_platform_data ldp_gpio_data = { | 196 | static struct twl4030_gpio_platform_data ldp_gpio_data = { |
203 | .gpio_base = OMAP_MAX_GPIO_LINES, | 197 | .gpio_base = OMAP_MAX_GPIO_LINES, |
204 | .irq_base = TWL4030_GPIO_IRQ_BASE, | 198 | .irq_base = TWL4030_GPIO_IRQ_BASE, |
@@ -325,6 +319,7 @@ static void __init omap_ldp_init(void) | |||
325 | platform_add_devices(ldp_devices, ARRAY_SIZE(ldp_devices)); | 319 | platform_add_devices(ldp_devices, ARRAY_SIZE(ldp_devices)); |
326 | omap_ads7846_init(1, 54, 310, NULL); | 320 | omap_ads7846_init(1, 54, 310, NULL); |
327 | omap_serial_init(); | 321 | omap_serial_init(); |
322 | omap_sdrc_init(NULL, NULL); | ||
328 | usb_musb_init(NULL); | 323 | usb_musb_init(NULL); |
329 | board_nand_init(ldp_nand_partitions, | 324 | board_nand_init(ldp_nand_partitions, |
330 | ARRAY_SIZE(ldp_nand_partitions), ZOOM_NAND_CS, 0); | 325 | ARRAY_SIZE(ldp_nand_partitions), ZOOM_NAND_CS, 0); |
@@ -333,10 +328,10 @@ static void __init omap_ldp_init(void) | |||
333 | } | 328 | } |
334 | 329 | ||
335 | MACHINE_START(OMAP_LDP, "OMAP LDP board") | 330 | MACHINE_START(OMAP_LDP, "OMAP LDP board") |
336 | .boot_params = 0x80000100, | 331 | .atag_offset = 0x100, |
337 | .reserve = omap_reserve, | 332 | .reserve = omap_reserve, |
338 | .map_io = omap3_map_io, | 333 | .map_io = omap3_map_io, |
339 | .init_early = omap_ldp_init_early, | 334 | .init_early = omap3430_init_early, |
340 | .init_irq = omap3_init_irq, | 335 | .init_irq = omap3_init_irq, |
341 | .init_machine = omap_ldp_init, | 336 | .init_machine = omap_ldp_init, |
342 | .timer = &omap3_timer, | 337 | .timer = &omap3_timer, |
diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c index e11f0c5d608a..e9d5f4a3d064 100644 --- a/arch/arm/mach-omap2/board-n8x0.c +++ b/arch/arm/mach-omap2/board-n8x0.c | |||
@@ -616,18 +616,6 @@ static struct i2c_board_info n810_i2c_board_info_2[] __initdata = { | |||
616 | }, | 616 | }, |
617 | }; | 617 | }; |
618 | 618 | ||
619 | static void __init n8x0_map_io(void) | ||
620 | { | ||
621 | omap2_set_globals_242x(); | ||
622 | omap242x_map_common_io(); | ||
623 | } | ||
624 | |||
625 | static void __init n8x0_init_early(void) | ||
626 | { | ||
627 | omap2_init_common_infrastructure(); | ||
628 | omap2_init_common_devices(NULL, NULL); | ||
629 | } | ||
630 | |||
631 | #ifdef CONFIG_OMAP_MUX | 619 | #ifdef CONFIG_OMAP_MUX |
632 | static struct omap_board_mux board_mux[] __initdata = { | 620 | static struct omap_board_mux board_mux[] __initdata = { |
633 | /* I2S codec port pins for McBSP block */ | 621 | /* I2S codec port pins for McBSP block */ |
@@ -689,36 +677,37 @@ static void __init n8x0_init_machine(void) | |||
689 | i2c_register_board_info(2, n810_i2c_board_info_2, | 677 | i2c_register_board_info(2, n810_i2c_board_info_2, |
690 | ARRAY_SIZE(n810_i2c_board_info_2)); | 678 | ARRAY_SIZE(n810_i2c_board_info_2)); |
691 | board_serial_init(); | 679 | board_serial_init(); |
680 | omap_sdrc_init(NULL, NULL); | ||
692 | gpmc_onenand_init(board_onenand_data); | 681 | gpmc_onenand_init(board_onenand_data); |
693 | n8x0_mmc_init(); | 682 | n8x0_mmc_init(); |
694 | n8x0_usb_init(); | 683 | n8x0_usb_init(); |
695 | } | 684 | } |
696 | 685 | ||
697 | MACHINE_START(NOKIA_N800, "Nokia N800") | 686 | MACHINE_START(NOKIA_N800, "Nokia N800") |
698 | .boot_params = 0x80000100, | 687 | .atag_offset = 0x100, |
699 | .reserve = omap_reserve, | 688 | .reserve = omap_reserve, |
700 | .map_io = n8x0_map_io, | 689 | .map_io = omap242x_map_io, |
701 | .init_early = n8x0_init_early, | 690 | .init_early = omap2420_init_early, |
702 | .init_irq = omap2_init_irq, | 691 | .init_irq = omap2_init_irq, |
703 | .init_machine = n8x0_init_machine, | 692 | .init_machine = n8x0_init_machine, |
704 | .timer = &omap2_timer, | 693 | .timer = &omap2_timer, |
705 | MACHINE_END | 694 | MACHINE_END |
706 | 695 | ||
707 | MACHINE_START(NOKIA_N810, "Nokia N810") | 696 | MACHINE_START(NOKIA_N810, "Nokia N810") |
708 | .boot_params = 0x80000100, | 697 | .atag_offset = 0x100, |
709 | .reserve = omap_reserve, | 698 | .reserve = omap_reserve, |
710 | .map_io = n8x0_map_io, | 699 | .map_io = omap242x_map_io, |
711 | .init_early = n8x0_init_early, | 700 | .init_early = omap2420_init_early, |
712 | .init_irq = omap2_init_irq, | 701 | .init_irq = omap2_init_irq, |
713 | .init_machine = n8x0_init_machine, | 702 | .init_machine = n8x0_init_machine, |
714 | .timer = &omap2_timer, | 703 | .timer = &omap2_timer, |
715 | MACHINE_END | 704 | MACHINE_END |
716 | 705 | ||
717 | MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX") | 706 | MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX") |
718 | .boot_params = 0x80000100, | 707 | .atag_offset = 0x100, |
719 | .reserve = omap_reserve, | 708 | .reserve = omap_reserve, |
720 | .map_io = n8x0_map_io, | 709 | .map_io = omap242x_map_io, |
721 | .init_early = n8x0_init_early, | 710 | .init_early = omap2420_init_early, |
722 | .init_irq = omap2_init_irq, | 711 | .init_irq = omap2_init_irq, |
723 | .init_machine = n8x0_init_machine, | 712 | .init_machine = n8x0_init_machine, |
724 | .timer = &omap2_timer, | 713 | .timer = &omap2_timer, |
diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c index 3ae16b4e3f52..3826493d1b2b 100644 --- a/arch/arm/mach-omap2/board-omap3beagle.c +++ b/arch/arm/mach-omap2/board-omap3beagle.c | |||
@@ -447,13 +447,6 @@ static struct platform_device keys_gpio = { | |||
447 | static void __init omap3_beagle_init_early(void) | 447 | static void __init omap3_beagle_init_early(void) |
448 | { | 448 | { |
449 | omap2_init_common_infrastructure(); | 449 | omap2_init_common_infrastructure(); |
450 | omap2_init_common_devices(mt46h32m32lf6_sdrc_params, | ||
451 | mt46h32m32lf6_sdrc_params); | ||
452 | } | ||
453 | |||
454 | static void __init omap3_beagle_init_irq(void) | ||
455 | { | ||
456 | omap3_init_irq(); | ||
457 | } | 450 | } |
458 | 451 | ||
459 | static struct platform_device *omap3_beagle_devices[] __initdata = { | 452 | static struct platform_device *omap3_beagle_devices[] __initdata = { |
@@ -534,6 +527,8 @@ static void __init omap3_beagle_init(void) | |||
534 | ARRAY_SIZE(omap3_beagle_devices)); | 527 | ARRAY_SIZE(omap3_beagle_devices)); |
535 | omap_display_init(&beagle_dss_data); | 528 | omap_display_init(&beagle_dss_data); |
536 | omap_serial_init(); | 529 | omap_serial_init(); |
530 | omap_sdrc_init(mt46h32m32lf6_sdrc_params, | ||
531 | mt46h32m32lf6_sdrc_params); | ||
537 | 532 | ||
538 | omap_mux_init_gpio(170, OMAP_PIN_INPUT); | 533 | omap_mux_init_gpio(170, OMAP_PIN_INPUT); |
539 | /* REVISIT leave DVI powered down until it's needed ... */ | 534 | /* REVISIT leave DVI powered down until it's needed ... */ |
@@ -557,11 +552,11 @@ static void __init omap3_beagle_init(void) | |||
557 | 552 | ||
558 | MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board") | 553 | MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board") |
559 | /* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */ | 554 | /* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */ |
560 | .boot_params = 0x80000100, | 555 | .atag_offset = 0x100, |
561 | .reserve = omap_reserve, | 556 | .reserve = omap_reserve, |
562 | .map_io = omap3_map_io, | 557 | .map_io = omap3_map_io, |
563 | .init_early = omap3_beagle_init_early, | 558 | .init_early = omap3_beagle_init_early, |
564 | .init_irq = omap3_beagle_init_irq, | 559 | .init_irq = omap3_init_irq, |
565 | .init_machine = omap3_beagle_init, | 560 | .init_machine = omap3_beagle_init, |
566 | .timer = &omap3_secure_timer, | 561 | .timer = &omap3_secure_timer, |
567 | MACHINE_END | 562 | MACHINE_END |
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c index c452b3f3331a..aa6a9351ce48 100644 --- a/arch/arm/mach-omap2/board-omap3evm.c +++ b/arch/arm/mach-omap2/board-omap3evm.c | |||
@@ -520,12 +520,6 @@ static int __init omap3_evm_i2c_init(void) | |||
520 | static struct omap_board_config_kernel omap3_evm_config[] __initdata = { | 520 | static struct omap_board_config_kernel omap3_evm_config[] __initdata = { |
521 | }; | 521 | }; |
522 | 522 | ||
523 | static void __init omap3_evm_init_early(void) | ||
524 | { | ||
525 | omap2_init_common_infrastructure(); | ||
526 | omap2_init_common_devices(mt46h32m32lf6_sdrc_params, NULL); | ||
527 | } | ||
528 | |||
529 | static struct usbhs_omap_board_data usbhs_bdata __initdata = { | 523 | static struct usbhs_omap_board_data usbhs_bdata __initdata = { |
530 | 524 | ||
531 | .port_mode[0] = OMAP_USBHS_PORT_MODE_UNUSED, | 525 | .port_mode[0] = OMAP_USBHS_PORT_MODE_UNUSED, |
@@ -640,6 +634,7 @@ static void __init omap3_evm_init(void) | |||
640 | omap_display_init(&omap3_evm_dss_data); | 634 | omap_display_init(&omap3_evm_dss_data); |
641 | 635 | ||
642 | omap_serial_init(); | 636 | omap_serial_init(); |
637 | omap_sdrc_init(mt46h32m32lf6_sdrc_params, NULL); | ||
643 | 638 | ||
644 | /* OMAP3EVM uses ISP1504 phy and so register nop transceiver */ | 639 | /* OMAP3EVM uses ISP1504 phy and so register nop transceiver */ |
645 | usb_nop_xceiv_register(); | 640 | usb_nop_xceiv_register(); |
@@ -681,10 +676,10 @@ static void __init omap3_evm_init(void) | |||
681 | 676 | ||
682 | MACHINE_START(OMAP3EVM, "OMAP3 EVM") | 677 | MACHINE_START(OMAP3EVM, "OMAP3 EVM") |
683 | /* Maintainer: Syed Mohammed Khasim - Texas Instruments */ | 678 | /* Maintainer: Syed Mohammed Khasim - Texas Instruments */ |
684 | .boot_params = 0x80000100, | 679 | .atag_offset = 0x100, |
685 | .reserve = omap_reserve, | 680 | .reserve = omap_reserve, |
686 | .map_io = omap3_map_io, | 681 | .map_io = omap3_map_io, |
687 | .init_early = omap3_evm_init_early, | 682 | .init_early = omap35xx_init_early, |
688 | .init_irq = omap3_init_irq, | 683 | .init_irq = omap3_init_irq, |
689 | .init_machine = omap3_evm_init, | 684 | .init_machine = omap3_evm_init, |
690 | .timer = &omap3_timer, | 685 | .timer = &omap3_timer, |
diff --git a/arch/arm/mach-omap2/board-omap3logic.c b/arch/arm/mach-omap2/board-omap3logic.c index 703aeb5b8fd4..7c0f193f246d 100644 --- a/arch/arm/mach-omap2/board-omap3logic.c +++ b/arch/arm/mach-omap2/board-omap3logic.c | |||
@@ -182,12 +182,6 @@ static inline void __init board_smsc911x_init(void) | |||
182 | gpmc_smsc911x_init(&board_smsc911x_data); | 182 | gpmc_smsc911x_init(&board_smsc911x_data); |
183 | } | 183 | } |
184 | 184 | ||
185 | static void __init omap3logic_init_early(void) | ||
186 | { | ||
187 | omap2_init_common_infrastructure(); | ||
188 | omap2_init_common_devices(NULL, NULL); | ||
189 | } | ||
190 | |||
191 | #ifdef CONFIG_OMAP_MUX | 185 | #ifdef CONFIG_OMAP_MUX |
192 | static struct omap_board_mux board_mux[] __initdata = { | 186 | static struct omap_board_mux board_mux[] __initdata = { |
193 | { .reg_offset = OMAP_MUX_TERMINATOR }, | 187 | { .reg_offset = OMAP_MUX_TERMINATOR }, |
@@ -200,6 +194,7 @@ static void __init omap3logic_init(void) | |||
200 | omap3torpedo_fix_pbias_voltage(); | 194 | omap3torpedo_fix_pbias_voltage(); |
201 | omap3logic_i2c_init(); | 195 | omap3logic_i2c_init(); |
202 | omap_serial_init(); | 196 | omap_serial_init(); |
197 | omap_sdrc_init(NULL, NULL); | ||
203 | board_mmc_init(); | 198 | board_mmc_init(); |
204 | board_smsc911x_init(); | 199 | board_smsc911x_init(); |
205 | 200 | ||
@@ -209,18 +204,18 @@ static void __init omap3logic_init(void) | |||
209 | } | 204 | } |
210 | 205 | ||
211 | MACHINE_START(OMAP3_TORPEDO, "Logic OMAP3 Torpedo board") | 206 | MACHINE_START(OMAP3_TORPEDO, "Logic OMAP3 Torpedo board") |
212 | .boot_params = 0x80000100, | 207 | .atag_offset = 0x100, |
213 | .map_io = omap3_map_io, | 208 | .map_io = omap3_map_io, |
214 | .init_early = omap3logic_init_early, | 209 | .init_early = omap35xx_init_early, |
215 | .init_irq = omap3_init_irq, | 210 | .init_irq = omap3_init_irq, |
216 | .init_machine = omap3logic_init, | 211 | .init_machine = omap3logic_init, |
217 | .timer = &omap3_timer, | 212 | .timer = &omap3_timer, |
218 | MACHINE_END | 213 | MACHINE_END |
219 | 214 | ||
220 | MACHINE_START(OMAP3530_LV_SOM, "OMAP Logic 3530 LV SOM board") | 215 | MACHINE_START(OMAP3530_LV_SOM, "OMAP Logic 3530 LV SOM board") |
221 | .boot_params = 0x80000100, | 216 | .atag_offset = 0x100, |
222 | .map_io = omap3_map_io, | 217 | .map_io = omap3_map_io, |
223 | .init_early = omap3logic_init_early, | 218 | .init_early = omap35xx_init_early, |
224 | .init_irq = omap3_init_irq, | 219 | .init_irq = omap3_init_irq, |
225 | .init_machine = omap3logic_init, | 220 | .init_machine = omap3logic_init, |
226 | .timer = &omap3_timer, | 221 | .timer = &omap3_timer, |
diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c index 080d7bd6795e..fed2f7dfdf8b 100644 --- a/arch/arm/mach-omap2/board-omap3pandora.c +++ b/arch/arm/mach-omap2/board-omap3pandora.c | |||
@@ -525,13 +525,6 @@ static struct spi_board_info omap3pandora_spi_board_info[] __initdata = { | |||
525 | } | 525 | } |
526 | }; | 526 | }; |
527 | 527 | ||
528 | static void __init omap3pandora_init_early(void) | ||
529 | { | ||
530 | omap2_init_common_infrastructure(); | ||
531 | omap2_init_common_devices(mt46h32m32lf6_sdrc_params, | ||
532 | mt46h32m32lf6_sdrc_params); | ||
533 | } | ||
534 | |||
535 | static void __init pandora_wl1251_init(void) | 528 | static void __init pandora_wl1251_init(void) |
536 | { | 529 | { |
537 | struct wl12xx_platform_data pandora_wl1251_pdata; | 530 | struct wl12xx_platform_data pandora_wl1251_pdata; |
@@ -593,6 +586,8 @@ static void __init omap3pandora_init(void) | |||
593 | ARRAY_SIZE(omap3pandora_devices)); | 586 | ARRAY_SIZE(omap3pandora_devices)); |
594 | omap_display_init(&pandora_dss_data); | 587 | omap_display_init(&pandora_dss_data); |
595 | omap_serial_init(); | 588 | omap_serial_init(); |
589 | omap_sdrc_init(mt46h32m32lf6_sdrc_params, | ||
590 | mt46h32m32lf6_sdrc_params); | ||
596 | spi_register_board_info(omap3pandora_spi_board_info, | 591 | spi_register_board_info(omap3pandora_spi_board_info, |
597 | ARRAY_SIZE(omap3pandora_spi_board_info)); | 592 | ARRAY_SIZE(omap3pandora_spi_board_info)); |
598 | omap_ads7846_init(1, OMAP3_PANDORA_TS_GPIO, 0, NULL); | 593 | omap_ads7846_init(1, OMAP3_PANDORA_TS_GPIO, 0, NULL); |
@@ -606,10 +601,10 @@ static void __init omap3pandora_init(void) | |||
606 | } | 601 | } |
607 | 602 | ||
608 | MACHINE_START(OMAP3_PANDORA, "Pandora Handheld Console") | 603 | MACHINE_START(OMAP3_PANDORA, "Pandora Handheld Console") |
609 | .boot_params = 0x80000100, | 604 | .atag_offset = 0x100, |
610 | .reserve = omap_reserve, | 605 | .reserve = omap_reserve, |
611 | .map_io = omap3_map_io, | 606 | .map_io = omap3_map_io, |
612 | .init_early = omap3pandora_init_early, | 607 | .init_early = omap35xx_init_early, |
613 | .init_irq = omap3_init_irq, | 608 | .init_irq = omap3_init_irq, |
614 | .init_machine = omap3pandora_init, | 609 | .init_machine = omap3pandora_init, |
615 | .timer = &omap3_timer, | 610 | .timer = &omap3_timer, |
diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c index 8e104980ea26..170e1ebd6e62 100644 --- a/arch/arm/mach-omap2/board-omap3stalker.c +++ b/arch/arm/mach-omap2/board-omap3stalker.c | |||
@@ -428,17 +428,6 @@ static int __init omap3_stalker_i2c_init(void) | |||
428 | static struct omap_board_config_kernel omap3_stalker_config[] __initdata = { | 428 | static struct omap_board_config_kernel omap3_stalker_config[] __initdata = { |
429 | }; | 429 | }; |
430 | 430 | ||
431 | static void __init omap3_stalker_init_early(void) | ||
432 | { | ||
433 | omap2_init_common_infrastructure(); | ||
434 | omap2_init_common_devices(mt46h32m32lf6_sdrc_params, NULL); | ||
435 | } | ||
436 | |||
437 | static void __init omap3_stalker_init_irq(void) | ||
438 | { | ||
439 | omap3_init_irq(); | ||
440 | } | ||
441 | |||
442 | static struct platform_device *omap3_stalker_devices[] __initdata = { | 431 | static struct platform_device *omap3_stalker_devices[] __initdata = { |
443 | &keys_gpio, | 432 | &keys_gpio, |
444 | }; | 433 | }; |
@@ -478,6 +467,7 @@ static void __init omap3_stalker_init(void) | |||
478 | omap_display_init(&omap3_stalker_dss_data); | 467 | omap_display_init(&omap3_stalker_dss_data); |
479 | 468 | ||
480 | omap_serial_init(); | 469 | omap_serial_init(); |
470 | omap_sdrc_init(mt46h32m32lf6_sdrc_params, NULL); | ||
481 | usb_musb_init(NULL); | 471 | usb_musb_init(NULL); |
482 | usbhs_init(&usbhs_bdata); | 472 | usbhs_init(&usbhs_bdata); |
483 | omap_ads7846_init(1, OMAP3_STALKER_TS_GPIO, 310, NULL); | 473 | omap_ads7846_init(1, OMAP3_STALKER_TS_GPIO, 310, NULL); |
@@ -494,10 +484,10 @@ static void __init omap3_stalker_init(void) | |||
494 | 484 | ||
495 | MACHINE_START(SBC3530, "OMAP3 STALKER") | 485 | MACHINE_START(SBC3530, "OMAP3 STALKER") |
496 | /* Maintainer: Jason Lam -lzg@ema-tech.com */ | 486 | /* Maintainer: Jason Lam -lzg@ema-tech.com */ |
497 | .boot_params = 0x80000100, | 487 | .atag_offset = 0x100, |
498 | .map_io = omap3_map_io, | 488 | .map_io = omap3_map_io, |
499 | .init_early = omap3_stalker_init_early, | 489 | .init_early = omap35xx_init_early, |
500 | .init_irq = omap3_stalker_init_irq, | 490 | .init_irq = omap3_init_irq, |
501 | .init_machine = omap3_stalker_init, | 491 | .init_machine = omap3_stalker_init, |
502 | .timer = &omap3_secure_timer, | 492 | .timer = &omap3_secure_timer, |
503 | MACHINE_END | 493 | MACHINE_END |
diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c b/arch/arm/mach-omap2/board-omap3touchbook.c index 852ea0464057..c2d5348f5422 100644 --- a/arch/arm/mach-omap2/board-omap3touchbook.c +++ b/arch/arm/mach-omap2/board-omap3touchbook.c | |||
@@ -326,18 +326,6 @@ static struct omap_board_mux board_mux[] __initdata = { | |||
326 | }; | 326 | }; |
327 | #endif | 327 | #endif |
328 | 328 | ||
329 | static void __init omap3_touchbook_init_early(void) | ||
330 | { | ||
331 | omap2_init_common_infrastructure(); | ||
332 | omap2_init_common_devices(mt46h32m32lf6_sdrc_params, | ||
333 | mt46h32m32lf6_sdrc_params); | ||
334 | } | ||
335 | |||
336 | static void __init omap3_touchbook_init_irq(void) | ||
337 | { | ||
338 | omap3_init_irq(); | ||
339 | } | ||
340 | |||
341 | static struct platform_device *omap3_touchbook_devices[] __initdata = { | 329 | static struct platform_device *omap3_touchbook_devices[] __initdata = { |
342 | &omap3_touchbook_lcd_device, | 330 | &omap3_touchbook_lcd_device, |
343 | &leds_gpio, | 331 | &leds_gpio, |
@@ -385,6 +373,8 @@ static void __init omap3_touchbook_init(void) | |||
385 | platform_add_devices(omap3_touchbook_devices, | 373 | platform_add_devices(omap3_touchbook_devices, |
386 | ARRAY_SIZE(omap3_touchbook_devices)); | 374 | ARRAY_SIZE(omap3_touchbook_devices)); |
387 | omap_serial_init(); | 375 | omap_serial_init(); |
376 | omap_sdrc_init(mt46h32m32lf6_sdrc_params, | ||
377 | mt46h32m32lf6_sdrc_params); | ||
388 | 378 | ||
389 | omap_mux_init_gpio(170, OMAP_PIN_INPUT); | 379 | omap_mux_init_gpio(170, OMAP_PIN_INPUT); |
390 | /* REVISIT leave DVI powered down until it's needed ... */ | 380 | /* REVISIT leave DVI powered down until it's needed ... */ |
@@ -404,11 +394,11 @@ static void __init omap3_touchbook_init(void) | |||
404 | 394 | ||
405 | MACHINE_START(TOUCHBOOK, "OMAP3 touchbook Board") | 395 | MACHINE_START(TOUCHBOOK, "OMAP3 touchbook Board") |
406 | /* Maintainer: Gregoire Gentil - http://www.alwaysinnovating.com */ | 396 | /* Maintainer: Gregoire Gentil - http://www.alwaysinnovating.com */ |
407 | .boot_params = 0x80000100, | 397 | .atag_offset = 0x100, |
408 | .reserve = omap_reserve, | 398 | .reserve = omap_reserve, |
409 | .map_io = omap3_map_io, | 399 | .map_io = omap3_map_io, |
410 | .init_early = omap3_touchbook_init_early, | 400 | .init_early = omap3430_init_early, |
411 | .init_irq = omap3_touchbook_init_irq, | 401 | .init_irq = omap3_init_irq, |
412 | .init_machine = omap3_touchbook_init, | 402 | .init_machine = omap3_touchbook_init, |
413 | .timer = &omap3_secure_timer, | 403 | .timer = &omap3_secure_timer, |
414 | MACHINE_END | 404 | MACHINE_END |
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c index 9aaa96057666..2141894eb9f3 100644 --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c | |||
@@ -95,12 +95,6 @@ static struct platform_device *panda_devices[] __initdata = { | |||
95 | &wl1271_device, | 95 | &wl1271_device, |
96 | }; | 96 | }; |
97 | 97 | ||
98 | static void __init omap4_panda_init_early(void) | ||
99 | { | ||
100 | omap2_init_common_infrastructure(); | ||
101 | omap2_init_common_devices(NULL, NULL); | ||
102 | } | ||
103 | |||
104 | static const struct usbhs_omap_board_data usbhs_bdata __initconst = { | 98 | static const struct usbhs_omap_board_data usbhs_bdata __initconst = { |
105 | .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY, | 99 | .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY, |
106 | .port_mode[1] = OMAP_USBHS_PORT_MODE_UNUSED, | 100 | .port_mode[1] = OMAP_USBHS_PORT_MODE_UNUSED, |
@@ -569,24 +563,19 @@ static void __init omap4_panda_init(void) | |||
569 | platform_add_devices(panda_devices, ARRAY_SIZE(panda_devices)); | 563 | platform_add_devices(panda_devices, ARRAY_SIZE(panda_devices)); |
570 | platform_device_register(&omap_vwlan_device); | 564 | platform_device_register(&omap_vwlan_device); |
571 | board_serial_init(); | 565 | board_serial_init(); |
566 | omap_sdrc_init(NULL, NULL); | ||
572 | omap4_twl6030_hsmmc_init(mmc); | 567 | omap4_twl6030_hsmmc_init(mmc); |
573 | omap4_ehci_init(); | 568 | omap4_ehci_init(); |
574 | usb_musb_init(&musb_board_data); | 569 | usb_musb_init(&musb_board_data); |
575 | omap4_panda_display_init(); | 570 | omap4_panda_display_init(); |
576 | } | 571 | } |
577 | 572 | ||
578 | static void __init omap4_panda_map_io(void) | ||
579 | { | ||
580 | omap2_set_globals_443x(); | ||
581 | omap44xx_map_common_io(); | ||
582 | } | ||
583 | |||
584 | MACHINE_START(OMAP4_PANDA, "OMAP4 Panda board") | 573 | MACHINE_START(OMAP4_PANDA, "OMAP4 Panda board") |
585 | /* Maintainer: David Anders - Texas Instruments Inc */ | 574 | /* Maintainer: David Anders - Texas Instruments Inc */ |
586 | .boot_params = 0x80000100, | 575 | .atag_offset = 0x100, |
587 | .reserve = omap_reserve, | 576 | .reserve = omap_reserve, |
588 | .map_io = omap4_panda_map_io, | 577 | .map_io = omap4_map_io, |
589 | .init_early = omap4_panda_init_early, | 578 | .init_early = omap4430_init_early, |
590 | .init_irq = gic_init_irq, | 579 | .init_irq = gic_init_irq, |
591 | .init_machine = omap4_panda_init, | 580 | .init_machine = omap4_panda_init, |
592 | .timer = &omap4_timer, | 581 | .timer = &omap4_timer, |
diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c index f949a9954d76..9f13dc22df77 100644 --- a/arch/arm/mach-omap2/board-overo.c +++ b/arch/arm/mach-omap2/board-overo.c | |||
@@ -478,13 +478,6 @@ static int __init overo_spi_init(void) | |||
478 | return 0; | 478 | return 0; |
479 | } | 479 | } |
480 | 480 | ||
481 | static void __init overo_init_early(void) | ||
482 | { | ||
483 | omap2_init_common_infrastructure(); | ||
484 | omap2_init_common_devices(mt46h32m32lf6_sdrc_params, | ||
485 | mt46h32m32lf6_sdrc_params); | ||
486 | } | ||
487 | |||
488 | static const struct usbhs_omap_board_data usbhs_bdata __initconst = { | 481 | static const struct usbhs_omap_board_data usbhs_bdata __initconst = { |
489 | .port_mode[0] = OMAP_USBHS_PORT_MODE_UNUSED, | 482 | .port_mode[0] = OMAP_USBHS_PORT_MODE_UNUSED, |
490 | .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY, | 483 | .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY, |
@@ -514,6 +507,8 @@ static void __init overo_init(void) | |||
514 | overo_i2c_init(); | 507 | overo_i2c_init(); |
515 | omap_display_init(&overo_dss_data); | 508 | omap_display_init(&overo_dss_data); |
516 | omap_serial_init(); | 509 | omap_serial_init(); |
510 | omap_sdrc_init(mt46h32m32lf6_sdrc_params, | ||
511 | mt46h32m32lf6_sdrc_params); | ||
517 | omap_nand_flash_init(0, overo_nand_partitions, | 512 | omap_nand_flash_init(0, overo_nand_partitions, |
518 | ARRAY_SIZE(overo_nand_partitions)); | 513 | ARRAY_SIZE(overo_nand_partitions)); |
519 | usb_musb_init(NULL); | 514 | usb_musb_init(NULL); |
@@ -561,10 +556,10 @@ static void __init overo_init(void) | |||
561 | } | 556 | } |
562 | 557 | ||
563 | MACHINE_START(OVERO, "Gumstix Overo") | 558 | MACHINE_START(OVERO, "Gumstix Overo") |
564 | .boot_params = 0x80000100, | 559 | .atag_offset = 0x100, |
565 | .reserve = omap_reserve, | 560 | .reserve = omap_reserve, |
566 | .map_io = omap3_map_io, | 561 | .map_io = omap3_map_io, |
567 | .init_early = overo_init_early, | 562 | .init_early = omap35xx_init_early, |
568 | .init_irq = omap3_init_irq, | 563 | .init_irq = omap3_init_irq, |
569 | .init_machine = overo_init, | 564 | .init_machine = overo_init, |
570 | .timer = &omap3_timer, | 565 | .timer = &omap3_timer, |
diff --git a/arch/arm/mach-omap2/board-rm680.c b/arch/arm/mach-omap2/board-rm680.c index 7dfed24ee12e..616fb39763b0 100644 --- a/arch/arm/mach-omap2/board-rm680.c +++ b/arch/arm/mach-omap2/board-rm680.c | |||
@@ -123,15 +123,6 @@ static void __init rm680_peripherals_init(void) | |||
123 | omap2_hsmmc_init(mmc); | 123 | omap2_hsmmc_init(mmc); |
124 | } | 124 | } |
125 | 125 | ||
126 | static void __init rm680_init_early(void) | ||
127 | { | ||
128 | struct omap_sdrc_params *sdrc_params; | ||
129 | |||
130 | omap2_init_common_infrastructure(); | ||
131 | sdrc_params = nokia_get_sdram_timings(); | ||
132 | omap2_init_common_devices(sdrc_params, sdrc_params); | ||
133 | } | ||
134 | |||
135 | #ifdef CONFIG_OMAP_MUX | 126 | #ifdef CONFIG_OMAP_MUX |
136 | static struct omap_board_mux board_mux[] __initdata = { | 127 | static struct omap_board_mux board_mux[] __initdata = { |
137 | { .reg_offset = OMAP_MUX_TERMINATOR }, | 128 | { .reg_offset = OMAP_MUX_TERMINATOR }, |
@@ -140,23 +131,23 @@ static struct omap_board_mux board_mux[] __initdata = { | |||
140 | 131 | ||
141 | static void __init rm680_init(void) | 132 | static void __init rm680_init(void) |
142 | { | 133 | { |
134 | struct omap_sdrc_params *sdrc_params; | ||
135 | |||
143 | omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); | 136 | omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); |
144 | omap_serial_init(); | 137 | omap_serial_init(); |
138 | |||
139 | sdrc_params = nokia_get_sdram_timings(); | ||
140 | omap_sdrc_init(sdrc_params, sdrc_params); | ||
141 | |||
145 | usb_musb_init(NULL); | 142 | usb_musb_init(NULL); |
146 | rm680_peripherals_init(); | 143 | rm680_peripherals_init(); |
147 | } | 144 | } |
148 | 145 | ||
149 | static void __init rm680_map_io(void) | ||
150 | { | ||
151 | omap2_set_globals_3xxx(); | ||
152 | omap34xx_map_common_io(); | ||
153 | } | ||
154 | |||
155 | MACHINE_START(NOKIA_RM680, "Nokia RM-680 board") | 146 | MACHINE_START(NOKIA_RM680, "Nokia RM-680 board") |
156 | .boot_params = 0x80000100, | 147 | .atag_offset = 0x100, |
157 | .reserve = omap_reserve, | 148 | .reserve = omap_reserve, |
158 | .map_io = rm680_map_io, | 149 | .map_io = omap3_map_io, |
159 | .init_early = rm680_init_early, | 150 | .init_early = omap3630_init_early, |
160 | .init_irq = omap3_init_irq, | 151 | .init_irq = omap3_init_irq, |
161 | .init_machine = rm680_init, | 152 | .init_machine = rm680_init, |
162 | .timer = &omap3_timer, | 153 | .timer = &omap3_timer, |
diff --git a/arch/arm/mach-omap2/board-rx51.c b/arch/arm/mach-omap2/board-rx51.c index 5ea142f9bc97..74c8aadc0a19 100644 --- a/arch/arm/mach-omap2/board-rx51.c +++ b/arch/arm/mach-omap2/board-rx51.c | |||
@@ -102,15 +102,6 @@ static struct omap_board_config_kernel rx51_config[] = { | |||
102 | { OMAP_TAG_LCD, &rx51_lcd_config }, | 102 | { OMAP_TAG_LCD, &rx51_lcd_config }, |
103 | }; | 103 | }; |
104 | 104 | ||
105 | static void __init rx51_init_early(void) | ||
106 | { | ||
107 | struct omap_sdrc_params *sdrc_params; | ||
108 | |||
109 | omap2_init_common_infrastructure(); | ||
110 | sdrc_params = nokia_get_sdram_timings(); | ||
111 | omap2_init_common_devices(sdrc_params, sdrc_params); | ||
112 | } | ||
113 | |||
114 | extern void __init rx51_peripherals_init(void); | 105 | extern void __init rx51_peripherals_init(void); |
115 | 106 | ||
116 | #ifdef CONFIG_OMAP_MUX | 107 | #ifdef CONFIG_OMAP_MUX |
@@ -127,11 +118,17 @@ static struct omap_musb_board_data musb_board_data = { | |||
127 | 118 | ||
128 | static void __init rx51_init(void) | 119 | static void __init rx51_init(void) |
129 | { | 120 | { |
121 | struct omap_sdrc_params *sdrc_params; | ||
122 | |||
130 | omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); | 123 | omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); |
131 | omap_board_config = rx51_config; | 124 | omap_board_config = rx51_config; |
132 | omap_board_config_size = ARRAY_SIZE(rx51_config); | 125 | omap_board_config_size = ARRAY_SIZE(rx51_config); |
133 | omap3_pm_init_cpuidle(rx51_cpuidle_params); | 126 | omap3_pm_init_cpuidle(rx51_cpuidle_params); |
134 | omap_serial_init(); | 127 | omap_serial_init(); |
128 | |||
129 | sdrc_params = nokia_get_sdram_timings(); | ||
130 | omap_sdrc_init(sdrc_params, sdrc_params); | ||
131 | |||
135 | usb_musb_init(&musb_board_data); | 132 | usb_musb_init(&musb_board_data); |
136 | rx51_peripherals_init(); | 133 | rx51_peripherals_init(); |
137 | 134 | ||
@@ -142,12 +139,6 @@ static void __init rx51_init(void) | |||
142 | platform_device_register(&leds_gpio); | 139 | platform_device_register(&leds_gpio); |
143 | } | 140 | } |
144 | 141 | ||
145 | static void __init rx51_map_io(void) | ||
146 | { | ||
147 | omap2_set_globals_3xxx(); | ||
148 | omap34xx_map_common_io(); | ||
149 | } | ||
150 | |||
151 | static void __init rx51_reserve(void) | 142 | static void __init rx51_reserve(void) |
152 | { | 143 | { |
153 | rx51_video_mem_init(); | 144 | rx51_video_mem_init(); |
@@ -156,10 +147,10 @@ static void __init rx51_reserve(void) | |||
156 | 147 | ||
157 | MACHINE_START(NOKIA_RX51, "Nokia RX-51 board") | 148 | MACHINE_START(NOKIA_RX51, "Nokia RX-51 board") |
158 | /* Maintainer: Lauri Leukkunen <lauri.leukkunen@nokia.com> */ | 149 | /* Maintainer: Lauri Leukkunen <lauri.leukkunen@nokia.com> */ |
159 | .boot_params = 0x80000100, | 150 | .atag_offset = 0x100, |
160 | .reserve = rx51_reserve, | 151 | .reserve = rx51_reserve, |
161 | .map_io = rx51_map_io, | 152 | .map_io = omap3_map_io, |
162 | .init_early = rx51_init_early, | 153 | .init_early = omap3430_init_early, |
163 | .init_irq = omap3_init_irq, | 154 | .init_irq = omap3_init_irq, |
164 | .init_machine = rx51_init, | 155 | .init_machine = rx51_init, |
165 | .timer = &omap3_timer, | 156 | .timer = &omap3_timer, |
diff --git a/arch/arm/mach-omap2/board-ti8168evm.c b/arch/arm/mach-omap2/board-ti8168evm.c index a85d5b0b11da..e26c79cb6ce9 100644 --- a/arch/arm/mach-omap2/board-ti8168evm.c +++ b/arch/arm/mach-omap2/board-ti8168evm.c | |||
@@ -27,15 +27,10 @@ | |||
27 | static struct omap_board_config_kernel ti8168_evm_config[] __initdata = { | 27 | static struct omap_board_config_kernel ti8168_evm_config[] __initdata = { |
28 | }; | 28 | }; |
29 | 29 | ||
30 | static void __init ti8168_init_early(void) | ||
31 | { | ||
32 | omap2_init_common_infrastructure(); | ||
33 | omap2_init_common_devices(NULL, NULL); | ||
34 | } | ||
35 | |||
36 | static void __init ti8168_evm_init(void) | 30 | static void __init ti8168_evm_init(void) |
37 | { | 31 | { |
38 | omap_serial_init(); | 32 | omap_serial_init(); |
33 | omap_sdrc_init(NULL, NULL); | ||
39 | omap_board_config = ti8168_evm_config; | 34 | omap_board_config = ti8168_evm_config; |
40 | omap_board_config_size = ARRAY_SIZE(ti8168_evm_config); | 35 | omap_board_config_size = ARRAY_SIZE(ti8168_evm_config); |
41 | } | 36 | } |
@@ -48,9 +43,9 @@ static void __init ti8168_evm_map_io(void) | |||
48 | 43 | ||
49 | MACHINE_START(TI8168EVM, "ti8168evm") | 44 | MACHINE_START(TI8168EVM, "ti8168evm") |
50 | /* Maintainer: Texas Instruments */ | 45 | /* Maintainer: Texas Instruments */ |
51 | .boot_params = 0x80000100, | 46 | .atag_offset = 0x100, |
52 | .map_io = ti8168_evm_map_io, | 47 | .map_io = ti8168_evm_map_io, |
53 | .init_early = ti8168_init_early, | 48 | .init_early = ti816x_init_early, |
54 | .init_irq = ti816x_init_irq, | 49 | .init_irq = ti816x_init_irq, |
55 | .timer = &omap3_timer, | 50 | .timer = &omap3_timer, |
56 | .init_machine = ti8168_evm_init, | 51 | .init_machine = ti8168_evm_init, |
diff --git a/arch/arm/mach-omap2/board-zoom.c b/arch/arm/mach-omap2/board-zoom.c index 8a98c3c303fc..be6684dc4f55 100644 --- a/arch/arm/mach-omap2/board-zoom.c +++ b/arch/arm/mach-omap2/board-zoom.c | |||
@@ -34,17 +34,6 @@ | |||
34 | 34 | ||
35 | #define ZOOM3_EHCI_RESET_GPIO 64 | 35 | #define ZOOM3_EHCI_RESET_GPIO 64 |
36 | 36 | ||
37 | static void __init omap_zoom_init_early(void) | ||
38 | { | ||
39 | omap2_init_common_infrastructure(); | ||
40 | if (machine_is_omap_zoom2()) | ||
41 | omap2_init_common_devices(mt46h32m32lf6_sdrc_params, | ||
42 | mt46h32m32lf6_sdrc_params); | ||
43 | else if (machine_is_omap_zoom3()) | ||
44 | omap2_init_common_devices(h8mbx00u0mer0em_sdrc_params, | ||
45 | h8mbx00u0mer0em_sdrc_params); | ||
46 | } | ||
47 | |||
48 | #ifdef CONFIG_OMAP_MUX | 37 | #ifdef CONFIG_OMAP_MUX |
49 | static struct omap_board_mux board_mux[] __initdata = { | 38 | static struct omap_board_mux board_mux[] __initdata = { |
50 | /* WLAN IRQ - GPIO 162 */ | 39 | /* WLAN IRQ - GPIO 162 */ |
@@ -129,24 +118,32 @@ static void __init omap_zoom_init(void) | |||
129 | ZOOM_NAND_CS, NAND_BUSWIDTH_16); | 118 | ZOOM_NAND_CS, NAND_BUSWIDTH_16); |
130 | zoom_debugboard_init(); | 119 | zoom_debugboard_init(); |
131 | zoom_peripherals_init(); | 120 | zoom_peripherals_init(); |
121 | |||
122 | if (machine_is_omap_zoom2()) | ||
123 | omap_sdrc_init(mt46h32m32lf6_sdrc_params, | ||
124 | mt46h32m32lf6_sdrc_params); | ||
125 | else if (machine_is_omap_zoom3()) | ||
126 | omap_sdrc_init(h8mbx00u0mer0em_sdrc_params, | ||
127 | h8mbx00u0mer0em_sdrc_params); | ||
128 | |||
132 | zoom_display_init(); | 129 | zoom_display_init(); |
133 | } | 130 | } |
134 | 131 | ||
135 | MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board") | 132 | MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board") |
136 | .boot_params = 0x80000100, | 133 | .atag_offset = 0x100, |
137 | .reserve = omap_reserve, | 134 | .reserve = omap_reserve, |
138 | .map_io = omap3_map_io, | 135 | .map_io = omap3_map_io, |
139 | .init_early = omap_zoom_init_early, | 136 | .init_early = omap3430_init_early, |
140 | .init_irq = omap3_init_irq, | 137 | .init_irq = omap3_init_irq, |
141 | .init_machine = omap_zoom_init, | 138 | .init_machine = omap_zoom_init, |
142 | .timer = &omap3_timer, | 139 | .timer = &omap3_timer, |
143 | MACHINE_END | 140 | MACHINE_END |
144 | 141 | ||
145 | MACHINE_START(OMAP_ZOOM3, "OMAP Zoom3 board") | 142 | MACHINE_START(OMAP_ZOOM3, "OMAP Zoom3 board") |
146 | .boot_params = 0x80000100, | 143 | .atag_offset = 0x100, |
147 | .reserve = omap_reserve, | 144 | .reserve = omap_reserve, |
148 | .map_io = omap3_map_io, | 145 | .map_io = omap3_map_io, |
149 | .init_early = omap_zoom_init_early, | 146 | .init_early = omap3630_init_early, |
150 | .init_irq = omap3_init_irq, | 147 | .init_irq = omap3_init_irq, |
151 | .init_machine = omap_zoom_init, | 148 | .init_machine = omap_zoom_init, |
152 | .timer = &omap3_timer, | 149 | .timer = &omap3_timer, |
diff --git a/arch/arm/mach-omap2/clock3xxx_data.c b/arch/arm/mach-omap2/clock3xxx_data.c index b9b844683147..dadb8c6c0115 100644 --- a/arch/arm/mach-omap2/clock3xxx_data.c +++ b/arch/arm/mach-omap2/clock3xxx_data.c | |||
@@ -3472,7 +3472,16 @@ int __init omap3xxx_clk_init(void) | |||
3472 | struct omap_clk *c; | 3472 | struct omap_clk *c; |
3473 | u32 cpu_clkflg = 0; | 3473 | u32 cpu_clkflg = 0; |
3474 | 3474 | ||
3475 | if (cpu_is_omap3517()) { | 3475 | /* |
3476 | * 3505 must be tested before 3517, since 3517 returns true | ||
3477 | * for both AM3517 chips and AM3517 family chips, which | ||
3478 | * includes 3505. Unfortunately there's no obvious family | ||
3479 | * test for 3517/3505 :-( | ||
3480 | */ | ||
3481 | if (cpu_is_omap3505()) { | ||
3482 | cpu_mask = RATE_IN_34XX; | ||
3483 | cpu_clkflg = CK_3505; | ||
3484 | } else if (cpu_is_omap3517()) { | ||
3476 | cpu_mask = RATE_IN_34XX; | 3485 | cpu_mask = RATE_IN_34XX; |
3477 | cpu_clkflg = CK_3517; | 3486 | cpu_clkflg = CK_3517; |
3478 | } else if (cpu_is_omap3505()) { | 3487 | } else if (cpu_is_omap3505()) { |
diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-omap2/clockdomain.c index 8f0890685d7b..8480ee4344ea 100644 --- a/arch/arm/mach-omap2/clockdomain.c +++ b/arch/arm/mach-omap2/clockdomain.c | |||
@@ -73,9 +73,6 @@ static int _clkdm_register(struct clockdomain *clkdm) | |||
73 | if (!clkdm || !clkdm->name) | 73 | if (!clkdm || !clkdm->name) |
74 | return -EINVAL; | 74 | return -EINVAL; |
75 | 75 | ||
76 | if (!omap_chip_is(clkdm->omap_chip)) | ||
77 | return -EINVAL; | ||
78 | |||
79 | pwrdm = pwrdm_lookup(clkdm->pwrdm.name); | 76 | pwrdm = pwrdm_lookup(clkdm->pwrdm.name); |
80 | if (!pwrdm) { | 77 | if (!pwrdm) { |
81 | pr_err("clockdomain: %s: powerdomain %s does not exist\n", | 78 | pr_err("clockdomain: %s: powerdomain %s does not exist\n", |
@@ -105,13 +102,10 @@ static struct clkdm_dep *_clkdm_deps_lookup(struct clockdomain *clkdm, | |||
105 | { | 102 | { |
106 | struct clkdm_dep *cd; | 103 | struct clkdm_dep *cd; |
107 | 104 | ||
108 | if (!clkdm || !deps || !omap_chip_is(clkdm->omap_chip)) | 105 | if (!clkdm || !deps) |
109 | return ERR_PTR(-EINVAL); | 106 | return ERR_PTR(-EINVAL); |
110 | 107 | ||
111 | for (cd = deps; cd->clkdm_name; cd++) { | 108 | for (cd = deps; cd->clkdm_name; cd++) { |
112 | if (!omap_chip_is(cd->omap_chip)) | ||
113 | continue; | ||
114 | |||
115 | if (!cd->clkdm && cd->clkdm_name) | 109 | if (!cd->clkdm && cd->clkdm_name) |
116 | cd->clkdm = _clkdm_lookup(cd->clkdm_name); | 110 | cd->clkdm = _clkdm_lookup(cd->clkdm_name); |
117 | 111 | ||
@@ -148,9 +142,6 @@ static void _autodep_lookup(struct clkdm_autodep *autodep) | |||
148 | if (!autodep) | 142 | if (!autodep) |
149 | return; | 143 | return; |
150 | 144 | ||
151 | if (!omap_chip_is(autodep->omap_chip)) | ||
152 | return; | ||
153 | |||
154 | clkdm = clkdm_lookup(autodep->clkdm.name); | 145 | clkdm = clkdm_lookup(autodep->clkdm.name); |
155 | if (!clkdm) { | 146 | if (!clkdm) { |
156 | pr_err("clockdomain: autodeps: clockdomain %s does not exist\n", | 147 | pr_err("clockdomain: autodeps: clockdomain %s does not exist\n", |
@@ -182,9 +173,6 @@ void _clkdm_add_autodeps(struct clockdomain *clkdm) | |||
182 | if (IS_ERR(autodep->clkdm.ptr)) | 173 | if (IS_ERR(autodep->clkdm.ptr)) |
183 | continue; | 174 | continue; |
184 | 175 | ||
185 | if (!omap_chip_is(autodep->omap_chip)) | ||
186 | continue; | ||
187 | |||
188 | pr_debug("clockdomain: adding %s sleepdep/wkdep for " | 176 | pr_debug("clockdomain: adding %s sleepdep/wkdep for " |
189 | "clkdm %s\n", autodep->clkdm.ptr->name, | 177 | "clkdm %s\n", autodep->clkdm.ptr->name, |
190 | clkdm->name); | 178 | clkdm->name); |
@@ -216,9 +204,6 @@ void _clkdm_del_autodeps(struct clockdomain *clkdm) | |||
216 | if (IS_ERR(autodep->clkdm.ptr)) | 204 | if (IS_ERR(autodep->clkdm.ptr)) |
217 | continue; | 205 | continue; |
218 | 206 | ||
219 | if (!omap_chip_is(autodep->omap_chip)) | ||
220 | continue; | ||
221 | |||
222 | pr_debug("clockdomain: removing %s sleepdep/wkdep for " | 207 | pr_debug("clockdomain: removing %s sleepdep/wkdep for " |
223 | "clkdm %s\n", autodep->clkdm.ptr->name, | 208 | "clkdm %s\n", autodep->clkdm.ptr->name, |
224 | clkdm->name); | 209 | clkdm->name); |
@@ -243,8 +228,6 @@ static void _resolve_clkdm_deps(struct clockdomain *clkdm, | |||
243 | struct clkdm_dep *cd; | 228 | struct clkdm_dep *cd; |
244 | 229 | ||
245 | for (cd = clkdm_deps; cd && cd->clkdm_name; cd++) { | 230 | for (cd = clkdm_deps; cd && cd->clkdm_name; cd++) { |
246 | if (!omap_chip_is(cd->omap_chip)) | ||
247 | continue; | ||
248 | if (cd->clkdm) | 231 | if (cd->clkdm) |
249 | continue; | 232 | continue; |
250 | cd->clkdm = _clkdm_lookup(cd->clkdm_name); | 233 | cd->clkdm = _clkdm_lookup(cd->clkdm_name); |
@@ -257,43 +240,113 @@ static void _resolve_clkdm_deps(struct clockdomain *clkdm, | |||
257 | /* Public functions */ | 240 | /* Public functions */ |
258 | 241 | ||
259 | /** | 242 | /** |
260 | * clkdm_init - set up the clockdomain layer | 243 | * clkdm_register_platform_funcs - register clockdomain implementation fns |
261 | * @clkdms: optional pointer to an array of clockdomains to register | 244 | * @co: func pointers for arch specific implementations |
262 | * @init_autodeps: optional pointer to an array of autodeps to register | 245 | * |
263 | * @custom_funcs: func pointers for arch specific implementations | 246 | * Register the list of function pointers used to implement the |
264 | * | 247 | * clockdomain functions on different OMAP SoCs. Should be called |
265 | * Set up internal state. If a pointer to an array of clockdomains | 248 | * before any other clkdm_register*() function. Returns -EINVAL if |
266 | * @clkdms was supplied, loop through the list of clockdomains, | 249 | * @co is null, -EEXIST if platform functions have already been |
267 | * register all that are available on the current platform. Similarly, | 250 | * registered, or 0 upon success. |
268 | * if a pointer to an array of clockdomain autodependencies | 251 | */ |
269 | * @init_autodeps was provided, register those. No return value. | 252 | int clkdm_register_platform_funcs(struct clkdm_ops *co) |
253 | { | ||
254 | if (!co) | ||
255 | return -EINVAL; | ||
256 | |||
257 | if (arch_clkdm) | ||
258 | return -EEXIST; | ||
259 | |||
260 | arch_clkdm = co; | ||
261 | |||
262 | return 0; | ||
263 | }; | ||
264 | |||
265 | /** | ||
266 | * clkdm_register_clkdms - register SoC clockdomains | ||
267 | * @cs: pointer to an array of struct clockdomain to register | ||
268 | * | ||
269 | * Register the clockdomains available on a particular OMAP SoC. Must | ||
270 | * be called after clkdm_register_platform_funcs(). May be called | ||
271 | * multiple times. Returns -EACCES if called before | ||
272 | * clkdm_register_platform_funcs(); -EINVAL if the argument @cs is | ||
273 | * null; or 0 upon success. | ||
270 | */ | 274 | */ |
271 | void clkdm_init(struct clockdomain **clkdms, | 275 | int clkdm_register_clkdms(struct clockdomain **cs) |
272 | struct clkdm_autodep *init_autodeps, | ||
273 | struct clkdm_ops *custom_funcs) | ||
274 | { | 276 | { |
275 | struct clockdomain **c = NULL; | 277 | struct clockdomain **c = NULL; |
276 | struct clockdomain *clkdm; | ||
277 | struct clkdm_autodep *autodep = NULL; | ||
278 | 278 | ||
279 | if (!custom_funcs) | 279 | if (!arch_clkdm) |
280 | WARN(1, "No custom clkdm functions registered\n"); | 280 | return -EACCES; |
281 | else | 281 | |
282 | arch_clkdm = custom_funcs; | 282 | if (!cs) |
283 | return -EINVAL; | ||
284 | |||
285 | for (c = cs; *c; c++) | ||
286 | _clkdm_register(*c); | ||
287 | |||
288 | return 0; | ||
289 | } | ||
290 | |||
291 | /** | ||
292 | * clkdm_register_autodeps - register autodeps (if required) | ||
293 | * @ia: pointer to a static array of struct clkdm_autodep to register | ||
294 | * | ||
295 | * Register clockdomain "automatic dependencies." These are | ||
296 | * clockdomain wakeup and sleep dependencies that are automatically | ||
297 | * added whenever the first clock inside a clockdomain is enabled, and | ||
298 | * removed whenever the last clock inside a clockdomain is disabled. | ||
299 | * These are currently only used on OMAP3 devices, and are deprecated, | ||
300 | * since they waste energy. However, until the OMAP2/3 IP block | ||
301 | * enable/disable sequence can be converted to match the OMAP4 | ||
302 | * sequence, they are needed. | ||
303 | * | ||
304 | * Must be called only after all of the SoC clockdomains are | ||
305 | * registered, since the function will resolve autodep clockdomain | ||
306 | * names into clockdomain pointers. | ||
307 | * | ||
308 | * The struct clkdm_autodep @ia array must be static, as this function | ||
309 | * does not copy the array elements. | ||
310 | * | ||
311 | * Returns -EACCES if called before any clockdomains have been | ||
312 | * registered, -EINVAL if called with a null @ia argument, -EEXIST if | ||
313 | * autodeps have already been registered, or 0 upon success. | ||
314 | */ | ||
315 | int clkdm_register_autodeps(struct clkdm_autodep *ia) | ||
316 | { | ||
317 | struct clkdm_autodep *a = NULL; | ||
283 | 318 | ||
284 | if (clkdms) | 319 | if (list_empty(&clkdm_list)) |
285 | for (c = clkdms; *c; c++) | 320 | return -EACCES; |
286 | _clkdm_register(*c); | 321 | |
322 | if (!ia) | ||
323 | return -EINVAL; | ||
287 | 324 | ||
288 | autodeps = init_autodeps; | ||
289 | if (autodeps) | 325 | if (autodeps) |
290 | for (autodep = autodeps; autodep->clkdm.ptr; autodep++) | 326 | return -EEXIST; |
291 | _autodep_lookup(autodep); | 327 | |
328 | autodeps = ia; | ||
329 | for (a = autodeps; a->clkdm.ptr; a++) | ||
330 | _autodep_lookup(a); | ||
331 | |||
332 | return 0; | ||
333 | } | ||
334 | |||
335 | /** | ||
336 | * clkdm_complete_init - set up the clockdomain layer | ||
337 | * | ||
338 | * Put all clockdomains into software-supervised mode; PM code should | ||
339 | * later enable hardware-supervised mode as appropriate. Must be | ||
340 | * called after clkdm_register_clkdms(). Returns -EACCES if called | ||
341 | * before clkdm_register_clkdms(), or 0 upon success. | ||
342 | */ | ||
343 | int clkdm_complete_init(void) | ||
344 | { | ||
345 | struct clockdomain *clkdm; | ||
346 | |||
347 | if (list_empty(&clkdm_list)) | ||
348 | return -EACCES; | ||
292 | 349 | ||
293 | /* | ||
294 | * Put all clockdomains into software-supervised mode; PM code | ||
295 | * should later enable hardware-supervised mode as appropriate | ||
296 | */ | ||
297 | list_for_each_entry(clkdm, &clkdm_list, node) { | 350 | list_for_each_entry(clkdm, &clkdm_list, node) { |
298 | if (clkdm->flags & CLKDM_CAN_FORCE_WAKEUP) | 351 | if (clkdm->flags & CLKDM_CAN_FORCE_WAKEUP) |
299 | clkdm_wakeup(clkdm); | 352 | clkdm_wakeup(clkdm); |
@@ -306,6 +359,8 @@ void clkdm_init(struct clockdomain **clkdms, | |||
306 | _resolve_clkdm_deps(clkdm, clkdm->sleepdep_srcs); | 359 | _resolve_clkdm_deps(clkdm, clkdm->sleepdep_srcs); |
307 | clkdm_clear_all_sleepdeps(clkdm); | 360 | clkdm_clear_all_sleepdeps(clkdm); |
308 | } | 361 | } |
362 | |||
363 | return 0; | ||
309 | } | 364 | } |
310 | 365 | ||
311 | /** | 366 | /** |
diff --git a/arch/arm/mach-omap2/clockdomain.h b/arch/arm/mach-omap2/clockdomain.h index 1e50c88b8a07..f7b58609bad8 100644 --- a/arch/arm/mach-omap2/clockdomain.h +++ b/arch/arm/mach-omap2/clockdomain.h | |||
@@ -45,7 +45,6 @@ | |||
45 | /** | 45 | /** |
46 | * struct clkdm_autodep - clkdm deps to add when entering/exiting hwsup mode | 46 | * struct clkdm_autodep - clkdm deps to add when entering/exiting hwsup mode |
47 | * @clkdm: clockdomain to add wkdep+sleepdep on - set name member only | 47 | * @clkdm: clockdomain to add wkdep+sleepdep on - set name member only |
48 | * @omap_chip: OMAP chip types that this autodep is valid on | ||
49 | * | 48 | * |
50 | * A clockdomain that should have wkdeps and sleepdeps added when a | 49 | * A clockdomain that should have wkdeps and sleepdeps added when a |
51 | * clockdomain should stay active in hwsup mode; and conversely, | 50 | * clockdomain should stay active in hwsup mode; and conversely, |
@@ -60,14 +59,12 @@ struct clkdm_autodep { | |||
60 | const char *name; | 59 | const char *name; |
61 | struct clockdomain *ptr; | 60 | struct clockdomain *ptr; |
62 | } clkdm; | 61 | } clkdm; |
63 | const struct omap_chip_id omap_chip; | ||
64 | }; | 62 | }; |
65 | 63 | ||
66 | /** | 64 | /** |
67 | * struct clkdm_dep - encode dependencies between clockdomains | 65 | * struct clkdm_dep - encode dependencies between clockdomains |
68 | * @clkdm_name: clockdomain name | 66 | * @clkdm_name: clockdomain name |
69 | * @clkdm: pointer to the struct clockdomain of @clkdm_name | 67 | * @clkdm: pointer to the struct clockdomain of @clkdm_name |
70 | * @omap_chip: OMAP chip types that this dependency is valid on | ||
71 | * @wkdep_usecount: Number of wakeup dependencies causing this clkdm to wake | 68 | * @wkdep_usecount: Number of wakeup dependencies causing this clkdm to wake |
72 | * @sleepdep_usecount: Number of sleep deps that could prevent clkdm from idle | 69 | * @sleepdep_usecount: Number of sleep deps that could prevent clkdm from idle |
73 | * | 70 | * |
@@ -81,7 +78,6 @@ struct clkdm_dep { | |||
81 | struct clockdomain *clkdm; | 78 | struct clockdomain *clkdm; |
82 | atomic_t wkdep_usecount; | 79 | atomic_t wkdep_usecount; |
83 | atomic_t sleepdep_usecount; | 80 | atomic_t sleepdep_usecount; |
84 | const struct omap_chip_id omap_chip; | ||
85 | }; | 81 | }; |
86 | 82 | ||
87 | /* Possible flags for struct clockdomain._flags */ | 83 | /* Possible flags for struct clockdomain._flags */ |
@@ -101,7 +97,6 @@ struct clkdm_dep { | |||
101 | * @clkdm_offs: (OMAP4 only) CM clockdomain register offset | 97 | * @clkdm_offs: (OMAP4 only) CM clockdomain register offset |
102 | * @wkdep_srcs: Clockdomains that can be told to wake this powerdomain up | 98 | * @wkdep_srcs: Clockdomains that can be told to wake this powerdomain up |
103 | * @sleepdep_srcs: Clockdomains that can be told to keep this clkdm from inact | 99 | * @sleepdep_srcs: Clockdomains that can be told to keep this clkdm from inact |
104 | * @omap_chip: OMAP chip types that this clockdomain is valid on | ||
105 | * @usecount: Usecount tracking | 100 | * @usecount: Usecount tracking |
106 | * @node: list_head to link all clockdomains together | 101 | * @node: list_head to link all clockdomains together |
107 | * | 102 | * |
@@ -126,7 +121,6 @@ struct clockdomain { | |||
126 | const u16 clkdm_offs; | 121 | const u16 clkdm_offs; |
127 | struct clkdm_dep *wkdep_srcs; | 122 | struct clkdm_dep *wkdep_srcs; |
128 | struct clkdm_dep *sleepdep_srcs; | 123 | struct clkdm_dep *sleepdep_srcs; |
129 | const struct omap_chip_id omap_chip; | ||
130 | atomic_t usecount; | 124 | atomic_t usecount; |
131 | struct list_head node; | 125 | struct list_head node; |
132 | spinlock_t lock; | 126 | spinlock_t lock; |
@@ -166,8 +160,11 @@ struct clkdm_ops { | |||
166 | int (*clkdm_clk_disable)(struct clockdomain *clkdm); | 160 | int (*clkdm_clk_disable)(struct clockdomain *clkdm); |
167 | }; | 161 | }; |
168 | 162 | ||
169 | void clkdm_init(struct clockdomain **clkdms, struct clkdm_autodep *autodeps, | 163 | int clkdm_register_platform_funcs(struct clkdm_ops *co); |
170 | struct clkdm_ops *custom_funcs); | 164 | int clkdm_register_autodeps(struct clkdm_autodep *ia); |
165 | int clkdm_register_clkdms(struct clockdomain **c); | ||
166 | int clkdm_complete_init(void); | ||
167 | |||
171 | struct clockdomain *clkdm_lookup(const char *name); | 168 | struct clockdomain *clkdm_lookup(const char *name); |
172 | 169 | ||
173 | int clkdm_for_each(int (*fn)(struct clockdomain *clkdm, void *user), | 170 | int clkdm_for_each(int (*fn)(struct clockdomain *clkdm, void *user), |
@@ -195,7 +192,8 @@ int clkdm_clk_disable(struct clockdomain *clkdm, struct clk *clk); | |||
195 | int clkdm_hwmod_enable(struct clockdomain *clkdm, struct omap_hwmod *oh); | 192 | int clkdm_hwmod_enable(struct clockdomain *clkdm, struct omap_hwmod *oh); |
196 | int clkdm_hwmod_disable(struct clockdomain *clkdm, struct omap_hwmod *oh); | 193 | int clkdm_hwmod_disable(struct clockdomain *clkdm, struct omap_hwmod *oh); |
197 | 194 | ||
198 | extern void __init omap2xxx_clockdomains_init(void); | 195 | extern void __init omap242x_clockdomains_init(void); |
196 | extern void __init omap243x_clockdomains_init(void); | ||
199 | extern void __init omap3xxx_clockdomains_init(void); | 197 | extern void __init omap3xxx_clockdomains_init(void); |
200 | extern void __init omap44xx_clockdomains_init(void); | 198 | extern void __init omap44xx_clockdomains_init(void); |
201 | extern void _clkdm_add_autodeps(struct clockdomain *clkdm); | 199 | extern void _clkdm_add_autodeps(struct clockdomain *clkdm); |
@@ -205,4 +203,10 @@ extern struct clkdm_ops omap2_clkdm_operations; | |||
205 | extern struct clkdm_ops omap3_clkdm_operations; | 203 | extern struct clkdm_ops omap3_clkdm_operations; |
206 | extern struct clkdm_ops omap4_clkdm_operations; | 204 | extern struct clkdm_ops omap4_clkdm_operations; |
207 | 205 | ||
206 | extern struct clkdm_dep gfx_24xx_wkdeps[]; | ||
207 | extern struct clkdm_dep dsp_24xx_wkdeps[]; | ||
208 | extern struct clockdomain wkup_common_clkdm; | ||
209 | extern struct clockdomain prm_common_clkdm; | ||
210 | extern struct clockdomain cm_common_clkdm; | ||
211 | |||
208 | #endif | 212 | #endif |
diff --git a/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c b/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c index f740edb111f4..a0d68dbecfa3 100644 --- a/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c +++ b/arch/arm/mach-omap2/clockdomain2xxx_3xxx.c | |||
@@ -52,8 +52,6 @@ static int omap2_clkdm_clear_all_wkdeps(struct clockdomain *clkdm) | |||
52 | u32 mask = 0; | 52 | u32 mask = 0; |
53 | 53 | ||
54 | for (cd = clkdm->wkdep_srcs; cd && cd->clkdm_name; cd++) { | 54 | for (cd = clkdm->wkdep_srcs; cd && cd->clkdm_name; cd++) { |
55 | if (!omap_chip_is(cd->omap_chip)) | ||
56 | continue; | ||
57 | if (!cd->clkdm) | 55 | if (!cd->clkdm) |
58 | continue; /* only happens if data is erroneous */ | 56 | continue; /* only happens if data is erroneous */ |
59 | 57 | ||
@@ -98,8 +96,6 @@ static int omap3_clkdm_clear_all_sleepdeps(struct clockdomain *clkdm) | |||
98 | u32 mask = 0; | 96 | u32 mask = 0; |
99 | 97 | ||
100 | for (cd = clkdm->sleepdep_srcs; cd && cd->clkdm_name; cd++) { | 98 | for (cd = clkdm->sleepdep_srcs; cd && cd->clkdm_name; cd++) { |
101 | if (!omap_chip_is(cd->omap_chip)) | ||
102 | continue; | ||
103 | if (!cd->clkdm) | 99 | if (!cd->clkdm) |
104 | continue; /* only happens if data is erroneous */ | 100 | continue; /* only happens if data is erroneous */ |
105 | 101 | ||
diff --git a/arch/arm/mach-omap2/clockdomain44xx.c b/arch/arm/mach-omap2/clockdomain44xx.c index b43706aa08bd..935c7f03dab9 100644 --- a/arch/arm/mach-omap2/clockdomain44xx.c +++ b/arch/arm/mach-omap2/clockdomain44xx.c | |||
@@ -52,8 +52,6 @@ static int omap4_clkdm_clear_all_wkup_sleep_deps(struct clockdomain *clkdm) | |||
52 | u32 mask = 0; | 52 | u32 mask = 0; |
53 | 53 | ||
54 | for (cd = clkdm->wkdep_srcs; cd && cd->clkdm_name; cd++) { | 54 | for (cd = clkdm->wkdep_srcs; cd && cd->clkdm_name; cd++) { |
55 | if (!omap_chip_is(cd->omap_chip)) | ||
56 | continue; | ||
57 | if (!cd->clkdm) | 55 | if (!cd->clkdm) |
58 | continue; /* only happens if data is erroneous */ | 56 | continue; /* only happens if data is erroneous */ |
59 | 57 | ||
diff --git a/arch/arm/mach-omap2/clockdomains2420_data.c b/arch/arm/mach-omap2/clockdomains2420_data.c new file mode 100644 index 000000000000..0ab8e46d5b2b --- /dev/null +++ b/arch/arm/mach-omap2/clockdomains2420_data.c | |||
@@ -0,0 +1,154 @@ | |||
1 | /* | ||
2 | * OMAP2420 clockdomains | ||
3 | * | ||
4 | * Copyright (C) 2008-2011 Texas Instruments, Inc. | ||
5 | * Copyright (C) 2008-2010 Nokia Corporation | ||
6 | * | ||
7 | * Paul Walmsley, Jouni Högander | ||
8 | * | ||
9 | * This file contains clockdomains and clockdomain wakeup dependencies | ||
10 | * for OMAP2420 chips. Some notes: | ||
11 | * | ||
12 | * A useful validation rule for struct clockdomain: Any clockdomain | ||
13 | * referenced by a wkdep_srcs must have a dep_bit assigned. So | ||
14 | * wkdep_srcs are really just software-controllable dependencies. | ||
15 | * Non-software-controllable dependencies do exist, but they are not | ||
16 | * encoded below (yet). | ||
17 | * | ||
18 | * 24xx does not support programmable sleep dependencies (SLEEPDEP) | ||
19 | * | ||
20 | * The overly-specific dep_bit names are due to a bit name collision | ||
21 | * with CM_FCLKEN_{DSP,IVA2}. The DSP/IVA2 PM_WKDEP and CM_SLEEPDEP shift | ||
22 | * value are the same for all powerdomains: 2 | ||
23 | * | ||
24 | * XXX should dep_bit be a mask, so we can test to see if it is 0 as a | ||
25 | * sanity check? | ||
26 | * XXX encode hardware fixed wakeup dependencies -- esp. for 3430 CORE | ||
27 | */ | ||
28 | |||
29 | /* | ||
30 | * To-Do List | ||
31 | * -> Port the Sleep/Wakeup dependencies for the domains | ||
32 | * from the Power domain framework | ||
33 | */ | ||
34 | |||
35 | #include <linux/kernel.h> | ||
36 | #include <linux/io.h> | ||
37 | |||
38 | #include "clockdomain.h" | ||
39 | #include "prm2xxx_3xxx.h" | ||
40 | #include "cm2xxx_3xxx.h" | ||
41 | #include "cm-regbits-24xx.h" | ||
42 | #include "prm-regbits-24xx.h" | ||
43 | |||
44 | /* | ||
45 | * Clockdomain dependencies for wkdeps | ||
46 | * | ||
47 | * XXX Hardware dependencies (e.g., dependencies that cannot be | ||
48 | * changed in software) are not included here yet, but should be. | ||
49 | */ | ||
50 | |||
51 | /* Wakeup dependency source arrays */ | ||
52 | |||
53 | /* 2420-specific possible wakeup dependencies */ | ||
54 | |||
55 | /* 2420 PM_WKDEP_MPU: CORE, DSP, WKUP */ | ||
56 | static struct clkdm_dep mpu_2420_wkdeps[] = { | ||
57 | { .clkdm_name = "core_l3_clkdm" }, | ||
58 | { .clkdm_name = "core_l4_clkdm" }, | ||
59 | { .clkdm_name = "dsp_clkdm" }, | ||
60 | { .clkdm_name = "wkup_clkdm" }, | ||
61 | { NULL }, | ||
62 | }; | ||
63 | |||
64 | /* 2420 PM_WKDEP_CORE: DSP, GFX, MPU, WKUP */ | ||
65 | static struct clkdm_dep core_2420_wkdeps[] = { | ||
66 | { .clkdm_name = "dsp_clkdm" }, | ||
67 | { .clkdm_name = "gfx_clkdm" }, | ||
68 | { .clkdm_name = "mpu_clkdm" }, | ||
69 | { .clkdm_name = "wkup_clkdm" }, | ||
70 | { NULL }, | ||
71 | }; | ||
72 | |||
73 | /* | ||
74 | * 2420-only clockdomains | ||
75 | */ | ||
76 | |||
77 | static struct clockdomain mpu_2420_clkdm = { | ||
78 | .name = "mpu_clkdm", | ||
79 | .pwrdm = { .name = "mpu_pwrdm" }, | ||
80 | .flags = CLKDM_CAN_HWSUP, | ||
81 | .wkdep_srcs = mpu_2420_wkdeps, | ||
82 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_MPU_MASK, | ||
83 | }; | ||
84 | |||
85 | static struct clockdomain iva1_2420_clkdm = { | ||
86 | .name = "iva1_clkdm", | ||
87 | .pwrdm = { .name = "dsp_pwrdm" }, | ||
88 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
89 | .dep_bit = OMAP24XX_PM_WKDEP_MPU_EN_DSP_SHIFT, | ||
90 | .wkdep_srcs = dsp_24xx_wkdeps, | ||
91 | .clktrctrl_mask = OMAP2420_AUTOSTATE_IVA_MASK, | ||
92 | }; | ||
93 | |||
94 | static struct clockdomain dsp_2420_clkdm = { | ||
95 | .name = "dsp_clkdm", | ||
96 | .pwrdm = { .name = "dsp_pwrdm" }, | ||
97 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
98 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_DSP_MASK, | ||
99 | }; | ||
100 | |||
101 | static struct clockdomain gfx_2420_clkdm = { | ||
102 | .name = "gfx_clkdm", | ||
103 | .pwrdm = { .name = "gfx_pwrdm" }, | ||
104 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
105 | .wkdep_srcs = gfx_24xx_wkdeps, | ||
106 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_GFX_MASK, | ||
107 | }; | ||
108 | |||
109 | static struct clockdomain core_l3_2420_clkdm = { | ||
110 | .name = "core_l3_clkdm", | ||
111 | .pwrdm = { .name = "core_pwrdm" }, | ||
112 | .flags = CLKDM_CAN_HWSUP, | ||
113 | .wkdep_srcs = core_2420_wkdeps, | ||
114 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_L3_MASK, | ||
115 | }; | ||
116 | |||
117 | static struct clockdomain core_l4_2420_clkdm = { | ||
118 | .name = "core_l4_clkdm", | ||
119 | .pwrdm = { .name = "core_pwrdm" }, | ||
120 | .flags = CLKDM_CAN_HWSUP, | ||
121 | .wkdep_srcs = core_2420_wkdeps, | ||
122 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_L4_MASK, | ||
123 | }; | ||
124 | |||
125 | static struct clockdomain dss_2420_clkdm = { | ||
126 | .name = "dss_clkdm", | ||
127 | .pwrdm = { .name = "core_pwrdm" }, | ||
128 | .flags = CLKDM_CAN_HWSUP, | ||
129 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_DSS_MASK, | ||
130 | }; | ||
131 | |||
132 | static struct clockdomain *clockdomains_omap242x[] __initdata = { | ||
133 | &wkup_common_clkdm, | ||
134 | &cm_common_clkdm, | ||
135 | &prm_common_clkdm, | ||
136 | &mpu_2420_clkdm, | ||
137 | &iva1_2420_clkdm, | ||
138 | &dsp_2420_clkdm, | ||
139 | &gfx_2420_clkdm, | ||
140 | &core_l3_2420_clkdm, | ||
141 | &core_l4_2420_clkdm, | ||
142 | &dss_2420_clkdm, | ||
143 | NULL, | ||
144 | }; | ||
145 | |||
146 | void __init omap242x_clockdomains_init(void) | ||
147 | { | ||
148 | if (!cpu_is_omap242x()) | ||
149 | return; | ||
150 | |||
151 | clkdm_register_platform_funcs(&omap2_clkdm_operations); | ||
152 | clkdm_register_clkdms(clockdomains_omap242x); | ||
153 | clkdm_complete_init(); | ||
154 | } | ||
diff --git a/arch/arm/mach-omap2/clockdomains2430_data.c b/arch/arm/mach-omap2/clockdomains2430_data.c new file mode 100644 index 000000000000..3645ed044890 --- /dev/null +++ b/arch/arm/mach-omap2/clockdomains2430_data.c | |||
@@ -0,0 +1,181 @@ | |||
1 | /* | ||
2 | * OMAP2xxx clockdomains | ||
3 | * | ||
4 | * Copyright (C) 2008-2009 Texas Instruments, Inc. | ||
5 | * Copyright (C) 2008-2010 Nokia Corporation | ||
6 | * | ||
7 | * Paul Walmsley, Jouni Högander | ||
8 | * | ||
9 | * This file contains clockdomains and clockdomain wakeup dependencies | ||
10 | * for OMAP2xxx chips. Some notes: | ||
11 | * | ||
12 | * A useful validation rule for struct clockdomain: Any clockdomain | ||
13 | * referenced by a wkdep_srcs must have a dep_bit assigned. So | ||
14 | * wkdep_srcs are really just software-controllable dependencies. | ||
15 | * Non-software-controllable dependencies do exist, but they are not | ||
16 | * encoded below (yet). | ||
17 | * | ||
18 | * 24xx does not support programmable sleep dependencies (SLEEPDEP) | ||
19 | * | ||
20 | * The overly-specific dep_bit names are due to a bit name collision | ||
21 | * with CM_FCLKEN_{DSP,IVA2}. The DSP/IVA2 PM_WKDEP and CM_SLEEPDEP shift | ||
22 | * value are the same for all powerdomains: 2 | ||
23 | * | ||
24 | * XXX should dep_bit be a mask, so we can test to see if it is 0 as a | ||
25 | * sanity check? | ||
26 | * XXX encode hardware fixed wakeup dependencies -- esp. for 3430 CORE | ||
27 | */ | ||
28 | |||
29 | /* | ||
30 | * To-Do List | ||
31 | * -> Port the Sleep/Wakeup dependencies for the domains | ||
32 | * from the Power domain framework | ||
33 | */ | ||
34 | |||
35 | #include <linux/kernel.h> | ||
36 | #include <linux/io.h> | ||
37 | |||
38 | #include "clockdomain.h" | ||
39 | #include "prm2xxx_3xxx.h" | ||
40 | #include "cm2xxx_3xxx.h" | ||
41 | #include "cm-regbits-24xx.h" | ||
42 | #include "prm-regbits-24xx.h" | ||
43 | |||
44 | /* | ||
45 | * Clockdomain dependencies for wkdeps | ||
46 | * | ||
47 | * XXX Hardware dependencies (e.g., dependencies that cannot be | ||
48 | * changed in software) are not included here yet, but should be. | ||
49 | */ | ||
50 | |||
51 | /* Wakeup dependency source arrays */ | ||
52 | |||
53 | /* 2430-specific possible wakeup dependencies */ | ||
54 | |||
55 | /* 2430 PM_WKDEP_CORE: DSP, GFX, MPU, WKUP, MDM */ | ||
56 | static struct clkdm_dep core_2430_wkdeps[] = { | ||
57 | { .clkdm_name = "dsp_clkdm" }, | ||
58 | { .clkdm_name = "gfx_clkdm" }, | ||
59 | { .clkdm_name = "mpu_clkdm" }, | ||
60 | { .clkdm_name = "wkup_clkdm" }, | ||
61 | { .clkdm_name = "mdm_clkdm" }, | ||
62 | { NULL }, | ||
63 | }; | ||
64 | |||
65 | /* 2430 PM_WKDEP_MPU: CORE, DSP, WKUP, MDM */ | ||
66 | static struct clkdm_dep mpu_2430_wkdeps[] = { | ||
67 | { .clkdm_name = "core_l3_clkdm" }, | ||
68 | { .clkdm_name = "core_l4_clkdm" }, | ||
69 | { .clkdm_name = "dsp_clkdm" }, | ||
70 | { .clkdm_name = "wkup_clkdm" }, | ||
71 | { .clkdm_name = "mdm_clkdm" }, | ||
72 | { NULL }, | ||
73 | }; | ||
74 | |||
75 | /* 2430 PM_WKDEP_MDM: CORE, MPU, WKUP */ | ||
76 | static struct clkdm_dep mdm_2430_wkdeps[] = { | ||
77 | { .clkdm_name = "core_l3_clkdm" }, | ||
78 | { .clkdm_name = "core_l4_clkdm" }, | ||
79 | { .clkdm_name = "mpu_clkdm" }, | ||
80 | { .clkdm_name = "wkup_clkdm" }, | ||
81 | { NULL }, | ||
82 | }; | ||
83 | |||
84 | /* | ||
85 | * 2430-only clockdomains | ||
86 | */ | ||
87 | |||
88 | static struct clockdomain mpu_2430_clkdm = { | ||
89 | .name = "mpu_clkdm", | ||
90 | .pwrdm = { .name = "mpu_pwrdm" }, | ||
91 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
92 | .wkdep_srcs = mpu_2430_wkdeps, | ||
93 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_MPU_MASK, | ||
94 | }; | ||
95 | |||
96 | /* Another case of bit name collisions between several registers: EN_MDM */ | ||
97 | static struct clockdomain mdm_clkdm = { | ||
98 | .name = "mdm_clkdm", | ||
99 | .pwrdm = { .name = "mdm_pwrdm" }, | ||
100 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
101 | .dep_bit = OMAP2430_PM_WKDEP_MPU_EN_MDM_SHIFT, | ||
102 | .wkdep_srcs = mdm_2430_wkdeps, | ||
103 | .clktrctrl_mask = OMAP2430_AUTOSTATE_MDM_MASK, | ||
104 | }; | ||
105 | |||
106 | static struct clockdomain dsp_2430_clkdm = { | ||
107 | .name = "dsp_clkdm", | ||
108 | .pwrdm = { .name = "dsp_pwrdm" }, | ||
109 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
110 | .dep_bit = OMAP24XX_PM_WKDEP_MPU_EN_DSP_SHIFT, | ||
111 | .wkdep_srcs = dsp_24xx_wkdeps, | ||
112 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_DSP_MASK, | ||
113 | }; | ||
114 | |||
115 | static struct clockdomain gfx_2430_clkdm = { | ||
116 | .name = "gfx_clkdm", | ||
117 | .pwrdm = { .name = "gfx_pwrdm" }, | ||
118 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
119 | .wkdep_srcs = gfx_24xx_wkdeps, | ||
120 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_GFX_MASK, | ||
121 | }; | ||
122 | |||
123 | /* | ||
124 | * XXX add usecounting for clkdm dependencies, otherwise the presence | ||
125 | * of a single dep bit for core_l3_24xx_clkdm and core_l4_24xx_clkdm | ||
126 | * could cause trouble | ||
127 | */ | ||
128 | static struct clockdomain core_l3_2430_clkdm = { | ||
129 | .name = "core_l3_clkdm", | ||
130 | .pwrdm = { .name = "core_pwrdm" }, | ||
131 | .flags = CLKDM_CAN_HWSUP, | ||
132 | .dep_bit = OMAP24XX_EN_CORE_SHIFT, | ||
133 | .wkdep_srcs = core_2430_wkdeps, | ||
134 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_L3_MASK, | ||
135 | }; | ||
136 | |||
137 | /* | ||
138 | * XXX add usecounting for clkdm dependencies, otherwise the presence | ||
139 | * of a single dep bit for core_l3_24xx_clkdm and core_l4_24xx_clkdm | ||
140 | * could cause trouble | ||
141 | */ | ||
142 | static struct clockdomain core_l4_2430_clkdm = { | ||
143 | .name = "core_l4_clkdm", | ||
144 | .pwrdm = { .name = "core_pwrdm" }, | ||
145 | .flags = CLKDM_CAN_HWSUP, | ||
146 | .dep_bit = OMAP24XX_EN_CORE_SHIFT, | ||
147 | .wkdep_srcs = core_2430_wkdeps, | ||
148 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_L4_MASK, | ||
149 | }; | ||
150 | |||
151 | static struct clockdomain dss_2430_clkdm = { | ||
152 | .name = "dss_clkdm", | ||
153 | .pwrdm = { .name = "core_pwrdm" }, | ||
154 | .flags = CLKDM_CAN_HWSUP, | ||
155 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_DSS_MASK, | ||
156 | }; | ||
157 | |||
158 | static struct clockdomain *clockdomains_omap243x[] __initdata = { | ||
159 | &wkup_common_clkdm, | ||
160 | &cm_common_clkdm, | ||
161 | &prm_common_clkdm, | ||
162 | &mpu_2430_clkdm, | ||
163 | &mdm_clkdm, | ||
164 | &dsp_2430_clkdm, | ||
165 | &gfx_2430_clkdm, | ||
166 | &core_l3_2430_clkdm, | ||
167 | &core_l4_2430_clkdm, | ||
168 | &dss_2430_clkdm, | ||
169 | NULL, | ||
170 | }; | ||
171 | |||
172 | void __init omap243x_clockdomains_init(void) | ||
173 | { | ||
174 | if (!cpu_is_omap243x()) | ||
175 | return; | ||
176 | |||
177 | clkdm_register_platform_funcs(&omap2_clkdm_operations); | ||
178 | clkdm_register_clkdms(clockdomains_omap243x); | ||
179 | clkdm_complete_init(); | ||
180 | } | ||
181 | |||
diff --git a/arch/arm/mach-omap2/clockdomains2xxx_3xxx_data.c b/arch/arm/mach-omap2/clockdomains2xxx_3xxx_data.c index 13bde95b6790..0a6a04897d89 100644 --- a/arch/arm/mach-omap2/clockdomains2xxx_3xxx_data.c +++ b/arch/arm/mach-omap2/clockdomains2xxx_3xxx_data.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * OMAP2/3 clockdomains | 2 | * OMAP2/3 clockdomain common data |
3 | * | 3 | * |
4 | * Copyright (C) 2008-2009 Texas Instruments, Inc. | 4 | * Copyright (C) 2008-2011 Texas Instruments, Inc. |
5 | * Copyright (C) 2008-2010 Nokia Corporation | 5 | * Copyright (C) 2008-2010 Nokia Corporation |
6 | * | 6 | * |
7 | * Paul Walmsley, Jouni Högander | 7 | * Paul Walmsley, Jouni Högander |
@@ -51,374 +51,28 @@ | |||
51 | * changed in software) are not included here yet, but should be. | 51 | * changed in software) are not included here yet, but should be. |
52 | */ | 52 | */ |
53 | 53 | ||
54 | /* OMAP2/3-common wakeup dependencies */ | ||
55 | |||
56 | /* | ||
57 | * 2420/2430 PM_WKDEP_GFX: CORE, MPU, WKUP | ||
58 | * 3430ES1 PM_WKDEP_GFX: adds IVA2, removes CORE | ||
59 | * 3430ES2 PM_WKDEP_SGX: adds IVA2, removes CORE | ||
60 | * These can share data since they will never be present simultaneously | ||
61 | * on the same device. | ||
62 | */ | ||
63 | static struct clkdm_dep gfx_sgx_wkdeps[] = { | ||
64 | { | ||
65 | .clkdm_name = "core_l3_clkdm", | ||
66 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX) | ||
67 | }, | ||
68 | { | ||
69 | .clkdm_name = "core_l4_clkdm", | ||
70 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX) | ||
71 | }, | ||
72 | { | ||
73 | .clkdm_name = "iva2_clkdm", | ||
74 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
75 | }, | ||
76 | { | ||
77 | .clkdm_name = "mpu_clkdm", | ||
78 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX | | ||
79 | CHIP_IS_OMAP3430) | ||
80 | }, | ||
81 | { | ||
82 | .clkdm_name = "wkup_clkdm", | ||
83 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX | | ||
84 | CHIP_IS_OMAP3430) | ||
85 | }, | ||
86 | { NULL }, | ||
87 | }; | ||
88 | |||
89 | |||
90 | /* 24XX-specific possible dependencies */ | ||
91 | |||
92 | #ifdef CONFIG_ARCH_OMAP2 | ||
93 | |||
94 | /* Wakeup dependency source arrays */ | 54 | /* Wakeup dependency source arrays */ |
95 | 55 | ||
96 | /* 2420/2430 PM_WKDEP_DSP: CORE, MPU, WKUP */ | 56 | /* 2xxx-specific possible dependencies */ |
97 | static struct clkdm_dep dsp_24xx_wkdeps[] = { | ||
98 | { | ||
99 | .clkdm_name = "core_l3_clkdm", | ||
100 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX) | ||
101 | }, | ||
102 | { | ||
103 | .clkdm_name = "core_l4_clkdm", | ||
104 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX) | ||
105 | }, | ||
106 | { | ||
107 | .clkdm_name = "mpu_clkdm", | ||
108 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX) | ||
109 | }, | ||
110 | { | ||
111 | .clkdm_name = "wkup_clkdm", | ||
112 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX) | ||
113 | }, | ||
114 | { NULL }, | ||
115 | }; | ||
116 | |||
117 | /* | ||
118 | * 2420 PM_WKDEP_MPU: CORE, DSP, WKUP | ||
119 | * 2430 adds MDM | ||
120 | */ | ||
121 | static struct clkdm_dep mpu_24xx_wkdeps[] = { | ||
122 | { | ||
123 | .clkdm_name = "core_l3_clkdm", | ||
124 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX) | ||
125 | }, | ||
126 | { | ||
127 | .clkdm_name = "core_l4_clkdm", | ||
128 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX) | ||
129 | }, | ||
130 | { | ||
131 | .clkdm_name = "dsp_clkdm", | ||
132 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX) | ||
133 | }, | ||
134 | { | ||
135 | .clkdm_name = "wkup_clkdm", | ||
136 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX) | ||
137 | }, | ||
138 | { | ||
139 | .clkdm_name = "mdm_clkdm", | ||
140 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) | ||
141 | }, | ||
142 | { NULL }, | ||
143 | }; | ||
144 | |||
145 | /* | ||
146 | * 2420 PM_WKDEP_CORE: DSP, GFX, MPU, WKUP | ||
147 | * 2430 adds MDM | ||
148 | */ | ||
149 | static struct clkdm_dep core_24xx_wkdeps[] = { | ||
150 | { | ||
151 | .clkdm_name = "dsp_clkdm", | ||
152 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX) | ||
153 | }, | ||
154 | { | ||
155 | .clkdm_name = "gfx_clkdm", | ||
156 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX) | ||
157 | }, | ||
158 | { | ||
159 | .clkdm_name = "mpu_clkdm", | ||
160 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX) | ||
161 | }, | ||
162 | { | ||
163 | .clkdm_name = "wkup_clkdm", | ||
164 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX) | ||
165 | }, | ||
166 | { | ||
167 | .clkdm_name = "mdm_clkdm", | ||
168 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) | ||
169 | }, | ||
170 | { NULL }, | ||
171 | }; | ||
172 | |||
173 | #endif /* CONFIG_ARCH_OMAP2 */ | ||
174 | |||
175 | /* 2430-specific possible wakeup dependencies */ | ||
176 | 57 | ||
177 | #ifdef CONFIG_SOC_OMAP2430 | 58 | /* 2xxx PM_WKDEP_GFX: CORE, MPU, WKUP */ |
178 | 59 | struct clkdm_dep gfx_24xx_wkdeps[] = { | |
179 | /* 2430 PM_WKDEP_MDM: CORE, MPU, WKUP */ | 60 | { .clkdm_name = "core_l3_clkdm" }, |
180 | static struct clkdm_dep mdm_2430_wkdeps[] = { | 61 | { .clkdm_name = "core_l4_clkdm" }, |
181 | { | 62 | { .clkdm_name = "mpu_clkdm" }, |
182 | .clkdm_name = "core_l3_clkdm", | 63 | { .clkdm_name = "wkup_clkdm" }, |
183 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX) | ||
184 | }, | ||
185 | { | ||
186 | .clkdm_name = "core_l4_clkdm", | ||
187 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX) | ||
188 | }, | ||
189 | { | ||
190 | .clkdm_name = "mpu_clkdm", | ||
191 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX) | ||
192 | }, | ||
193 | { | ||
194 | .clkdm_name = "wkup_clkdm", | ||
195 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX) | ||
196 | }, | ||
197 | { NULL }, | ||
198 | }; | ||
199 | |||
200 | #endif /* CONFIG_SOC_OMAP2430 */ | ||
201 | |||
202 | |||
203 | /* OMAP3-specific possible dependencies */ | ||
204 | |||
205 | #ifdef CONFIG_ARCH_OMAP3 | ||
206 | |||
207 | /* 3430: PM_WKDEP_PER: CORE, IVA2, MPU, WKUP */ | ||
208 | static struct clkdm_dep per_wkdeps[] = { | ||
209 | { | ||
210 | .clkdm_name = "core_l3_clkdm", | ||
211 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
212 | }, | ||
213 | { | ||
214 | .clkdm_name = "core_l4_clkdm", | ||
215 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
216 | }, | ||
217 | { | ||
218 | .clkdm_name = "iva2_clkdm", | ||
219 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
220 | }, | ||
221 | { | ||
222 | .clkdm_name = "mpu_clkdm", | ||
223 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
224 | }, | ||
225 | { | ||
226 | .clkdm_name = "wkup_clkdm", | ||
227 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
228 | }, | ||
229 | { NULL }, | ||
230 | }; | ||
231 | |||
232 | /* 3430ES2: PM_WKDEP_USBHOST: CORE, IVA2, MPU, WKUP */ | ||
233 | static struct clkdm_dep usbhost_wkdeps[] = { | ||
234 | { | ||
235 | .clkdm_name = "core_l3_clkdm", | ||
236 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
237 | }, | ||
238 | { | ||
239 | .clkdm_name = "core_l4_clkdm", | ||
240 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
241 | }, | ||
242 | { | ||
243 | .clkdm_name = "iva2_clkdm", | ||
244 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
245 | }, | ||
246 | { | ||
247 | .clkdm_name = "mpu_clkdm", | ||
248 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
249 | }, | ||
250 | { | ||
251 | .clkdm_name = "wkup_clkdm", | ||
252 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
253 | }, | ||
254 | { NULL }, | 64 | { NULL }, |
255 | }; | 65 | }; |
256 | 66 | ||
257 | /* 3430 PM_WKDEP_MPU: CORE, IVA2, DSS, PER */ | 67 | /* 2xxx PM_WKDEP_DSP: CORE, MPU, WKUP */ |
258 | static struct clkdm_dep mpu_3xxx_wkdeps[] = { | 68 | struct clkdm_dep dsp_24xx_wkdeps[] = { |
259 | { | 69 | { .clkdm_name = "core_l3_clkdm" }, |
260 | .clkdm_name = "core_l3_clkdm", | 70 | { .clkdm_name = "core_l4_clkdm" }, |
261 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | 71 | { .clkdm_name = "mpu_clkdm" }, |
262 | }, | 72 | { .clkdm_name = "wkup_clkdm" }, |
263 | { | ||
264 | .clkdm_name = "core_l4_clkdm", | ||
265 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
266 | }, | ||
267 | { | ||
268 | .clkdm_name = "iva2_clkdm", | ||
269 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
270 | }, | ||
271 | { | ||
272 | .clkdm_name = "dss_clkdm", | ||
273 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
274 | }, | ||
275 | { | ||
276 | .clkdm_name = "per_clkdm", | ||
277 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
278 | }, | ||
279 | { NULL }, | 73 | { NULL }, |
280 | }; | 74 | }; |
281 | 75 | ||
282 | /* 3430 PM_WKDEP_IVA2: CORE, MPU, WKUP, DSS, PER */ | ||
283 | static struct clkdm_dep iva2_wkdeps[] = { | ||
284 | { | ||
285 | .clkdm_name = "core_l3_clkdm", | ||
286 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
287 | }, | ||
288 | { | ||
289 | .clkdm_name = "core_l4_clkdm", | ||
290 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
291 | }, | ||
292 | { | ||
293 | .clkdm_name = "mpu_clkdm", | ||
294 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
295 | }, | ||
296 | { | ||
297 | .clkdm_name = "wkup_clkdm", | ||
298 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
299 | }, | ||
300 | { | ||
301 | .clkdm_name = "dss_clkdm", | ||
302 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
303 | }, | ||
304 | { | ||
305 | .clkdm_name = "per_clkdm", | ||
306 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
307 | }, | ||
308 | { NULL }, | ||
309 | }; | ||
310 | |||
311 | |||
312 | /* 3430 PM_WKDEP_CAM: IVA2, MPU, WKUP */ | ||
313 | static struct clkdm_dep cam_wkdeps[] = { | ||
314 | { | ||
315 | .clkdm_name = "iva2_clkdm", | ||
316 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
317 | }, | ||
318 | { | ||
319 | .clkdm_name = "mpu_clkdm", | ||
320 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
321 | }, | ||
322 | { | ||
323 | .clkdm_name = "wkup_clkdm", | ||
324 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
325 | }, | ||
326 | { NULL }, | ||
327 | }; | ||
328 | |||
329 | /* 3430 PM_WKDEP_DSS: IVA2, MPU, WKUP */ | ||
330 | static struct clkdm_dep dss_wkdeps[] = { | ||
331 | { | ||
332 | .clkdm_name = "iva2_clkdm", | ||
333 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
334 | }, | ||
335 | { | ||
336 | .clkdm_name = "mpu_clkdm", | ||
337 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
338 | }, | ||
339 | { | ||
340 | .clkdm_name = "wkup_clkdm", | ||
341 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
342 | }, | ||
343 | { NULL }, | ||
344 | }; | ||
345 | |||
346 | /* 3430: PM_WKDEP_NEON: MPU */ | ||
347 | static struct clkdm_dep neon_wkdeps[] = { | ||
348 | { | ||
349 | .clkdm_name = "mpu_clkdm", | ||
350 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
351 | }, | ||
352 | { NULL }, | ||
353 | }; | ||
354 | |||
355 | |||
356 | /* Sleep dependency source arrays for OMAP3-specific clkdms */ | ||
357 | |||
358 | /* 3430: CM_SLEEPDEP_DSS: MPU, IVA */ | ||
359 | static struct clkdm_dep dss_sleepdeps[] = { | ||
360 | { | ||
361 | .clkdm_name = "mpu_clkdm", | ||
362 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
363 | }, | ||
364 | { | ||
365 | .clkdm_name = "iva2_clkdm", | ||
366 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
367 | }, | ||
368 | { NULL }, | ||
369 | }; | ||
370 | |||
371 | /* 3430: CM_SLEEPDEP_PER: MPU, IVA */ | ||
372 | static struct clkdm_dep per_sleepdeps[] = { | ||
373 | { | ||
374 | .clkdm_name = "mpu_clkdm", | ||
375 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
376 | }, | ||
377 | { | ||
378 | .clkdm_name = "iva2_clkdm", | ||
379 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
380 | }, | ||
381 | { NULL }, | ||
382 | }; | ||
383 | |||
384 | /* 3430ES2: CM_SLEEPDEP_USBHOST: MPU, IVA */ | ||
385 | static struct clkdm_dep usbhost_sleepdeps[] = { | ||
386 | { | ||
387 | .clkdm_name = "mpu_clkdm", | ||
388 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
389 | }, | ||
390 | { | ||
391 | .clkdm_name = "iva2_clkdm", | ||
392 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
393 | }, | ||
394 | { NULL }, | ||
395 | }; | ||
396 | |||
397 | /* 3430: CM_SLEEPDEP_CAM: MPU */ | ||
398 | static struct clkdm_dep cam_sleepdeps[] = { | ||
399 | { | ||
400 | .clkdm_name = "mpu_clkdm", | ||
401 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
402 | }, | ||
403 | { NULL }, | ||
404 | }; | ||
405 | |||
406 | /* | ||
407 | * 3430ES1: CM_SLEEPDEP_GFX: MPU | ||
408 | * 3430ES2: CM_SLEEPDEP_SGX: MPU | ||
409 | * These can share data since they will never be present simultaneously | ||
410 | * on the same device. | ||
411 | */ | ||
412 | static struct clkdm_dep gfx_sgx_sleepdeps[] = { | ||
413 | { | ||
414 | .clkdm_name = "mpu_clkdm", | ||
415 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
416 | }, | ||
417 | { NULL }, | ||
418 | }; | ||
419 | |||
420 | #endif /* CONFIG_ARCH_OMAP3 */ | ||
421 | |||
422 | 76 | ||
423 | /* | 77 | /* |
424 | * OMAP2/3-common clockdomains | 78 | * OMAP2/3-common clockdomains |
@@ -430,439 +84,18 @@ static struct clkdm_dep gfx_sgx_sleepdeps[] = { | |||
430 | */ | 84 | */ |
431 | 85 | ||
432 | /* This is an implicit clockdomain - it is never defined as such in TRM */ | 86 | /* This is an implicit clockdomain - it is never defined as such in TRM */ |
433 | static struct clockdomain wkup_clkdm = { | 87 | struct clockdomain wkup_common_clkdm = { |
434 | .name = "wkup_clkdm", | 88 | .name = "wkup_clkdm", |
435 | .pwrdm = { .name = "wkup_pwrdm" }, | 89 | .pwrdm = { .name = "wkup_pwrdm" }, |
436 | .dep_bit = OMAP_EN_WKUP_SHIFT, | 90 | .dep_bit = OMAP_EN_WKUP_SHIFT, |
437 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX | CHIP_IS_OMAP3430), | ||
438 | }; | 91 | }; |
439 | 92 | ||
440 | static struct clockdomain prm_clkdm = { | 93 | struct clockdomain prm_common_clkdm = { |
441 | .name = "prm_clkdm", | 94 | .name = "prm_clkdm", |
442 | .pwrdm = { .name = "wkup_pwrdm" }, | 95 | .pwrdm = { .name = "wkup_pwrdm" }, |
443 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX | CHIP_IS_OMAP3430), | ||
444 | }; | 96 | }; |
445 | 97 | ||
446 | static struct clockdomain cm_clkdm = { | 98 | struct clockdomain cm_common_clkdm = { |
447 | .name = "cm_clkdm", | 99 | .name = "cm_clkdm", |
448 | .pwrdm = { .name = "core_pwrdm" }, | 100 | .pwrdm = { .name = "core_pwrdm" }, |
449 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX | CHIP_IS_OMAP3430), | ||
450 | }; | 101 | }; |
451 | |||
452 | /* | ||
453 | * 2420-only clockdomains | ||
454 | */ | ||
455 | |||
456 | #if defined(CONFIG_SOC_OMAP2420) | ||
457 | |||
458 | static struct clockdomain mpu_2420_clkdm = { | ||
459 | .name = "mpu_clkdm", | ||
460 | .pwrdm = { .name = "mpu_pwrdm" }, | ||
461 | .flags = CLKDM_CAN_HWSUP, | ||
462 | .wkdep_srcs = mpu_24xx_wkdeps, | ||
463 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_MPU_MASK, | ||
464 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
465 | }; | ||
466 | |||
467 | static struct clockdomain iva1_2420_clkdm = { | ||
468 | .name = "iva1_clkdm", | ||
469 | .pwrdm = { .name = "dsp_pwrdm" }, | ||
470 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
471 | .dep_bit = OMAP24XX_PM_WKDEP_MPU_EN_DSP_SHIFT, | ||
472 | .wkdep_srcs = dsp_24xx_wkdeps, | ||
473 | .clktrctrl_mask = OMAP2420_AUTOSTATE_IVA_MASK, | ||
474 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
475 | }; | ||
476 | |||
477 | static struct clockdomain dsp_2420_clkdm = { | ||
478 | .name = "dsp_clkdm", | ||
479 | .pwrdm = { .name = "dsp_pwrdm" }, | ||
480 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
481 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_DSP_MASK, | ||
482 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
483 | }; | ||
484 | |||
485 | static struct clockdomain gfx_2420_clkdm = { | ||
486 | .name = "gfx_clkdm", | ||
487 | .pwrdm = { .name = "gfx_pwrdm" }, | ||
488 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
489 | .wkdep_srcs = gfx_sgx_wkdeps, | ||
490 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_GFX_MASK, | ||
491 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
492 | }; | ||
493 | |||
494 | static struct clockdomain core_l3_2420_clkdm = { | ||
495 | .name = "core_l3_clkdm", | ||
496 | .pwrdm = { .name = "core_pwrdm" }, | ||
497 | .flags = CLKDM_CAN_HWSUP, | ||
498 | .wkdep_srcs = core_24xx_wkdeps, | ||
499 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_L3_MASK, | ||
500 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
501 | }; | ||
502 | |||
503 | static struct clockdomain core_l4_2420_clkdm = { | ||
504 | .name = "core_l4_clkdm", | ||
505 | .pwrdm = { .name = "core_pwrdm" }, | ||
506 | .flags = CLKDM_CAN_HWSUP, | ||
507 | .wkdep_srcs = core_24xx_wkdeps, | ||
508 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_L4_MASK, | ||
509 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
510 | }; | ||
511 | |||
512 | static struct clockdomain dss_2420_clkdm = { | ||
513 | .name = "dss_clkdm", | ||
514 | .pwrdm = { .name = "core_pwrdm" }, | ||
515 | .flags = CLKDM_CAN_HWSUP, | ||
516 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_DSS_MASK, | ||
517 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
518 | }; | ||
519 | |||
520 | #endif /* CONFIG_SOC_OMAP2420 */ | ||
521 | |||
522 | |||
523 | /* | ||
524 | * 2430-only clockdomains | ||
525 | */ | ||
526 | |||
527 | #if defined(CONFIG_SOC_OMAP2430) | ||
528 | |||
529 | static struct clockdomain mpu_2430_clkdm = { | ||
530 | .name = "mpu_clkdm", | ||
531 | .pwrdm = { .name = "mpu_pwrdm" }, | ||
532 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
533 | .wkdep_srcs = mpu_24xx_wkdeps, | ||
534 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_MPU_MASK, | ||
535 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
536 | }; | ||
537 | |||
538 | /* Another case of bit name collisions between several registers: EN_MDM */ | ||
539 | static struct clockdomain mdm_clkdm = { | ||
540 | .name = "mdm_clkdm", | ||
541 | .pwrdm = { .name = "mdm_pwrdm" }, | ||
542 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
543 | .dep_bit = OMAP2430_PM_WKDEP_MPU_EN_MDM_SHIFT, | ||
544 | .wkdep_srcs = mdm_2430_wkdeps, | ||
545 | .clktrctrl_mask = OMAP2430_AUTOSTATE_MDM_MASK, | ||
546 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
547 | }; | ||
548 | |||
549 | static struct clockdomain dsp_2430_clkdm = { | ||
550 | .name = "dsp_clkdm", | ||
551 | .pwrdm = { .name = "dsp_pwrdm" }, | ||
552 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
553 | .dep_bit = OMAP24XX_PM_WKDEP_MPU_EN_DSP_SHIFT, | ||
554 | .wkdep_srcs = dsp_24xx_wkdeps, | ||
555 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_DSP_MASK, | ||
556 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
557 | }; | ||
558 | |||
559 | static struct clockdomain gfx_2430_clkdm = { | ||
560 | .name = "gfx_clkdm", | ||
561 | .pwrdm = { .name = "gfx_pwrdm" }, | ||
562 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
563 | .wkdep_srcs = gfx_sgx_wkdeps, | ||
564 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_GFX_MASK, | ||
565 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
566 | }; | ||
567 | |||
568 | /* | ||
569 | * XXX add usecounting for clkdm dependencies, otherwise the presence | ||
570 | * of a single dep bit for core_l3_24xx_clkdm and core_l4_24xx_clkdm | ||
571 | * could cause trouble | ||
572 | */ | ||
573 | static struct clockdomain core_l3_2430_clkdm = { | ||
574 | .name = "core_l3_clkdm", | ||
575 | .pwrdm = { .name = "core_pwrdm" }, | ||
576 | .flags = CLKDM_CAN_HWSUP, | ||
577 | .dep_bit = OMAP24XX_EN_CORE_SHIFT, | ||
578 | .wkdep_srcs = core_24xx_wkdeps, | ||
579 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_L3_MASK, | ||
580 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
581 | }; | ||
582 | |||
583 | /* | ||
584 | * XXX add usecounting for clkdm dependencies, otherwise the presence | ||
585 | * of a single dep bit for core_l3_24xx_clkdm and core_l4_24xx_clkdm | ||
586 | * could cause trouble | ||
587 | */ | ||
588 | static struct clockdomain core_l4_2430_clkdm = { | ||
589 | .name = "core_l4_clkdm", | ||
590 | .pwrdm = { .name = "core_pwrdm" }, | ||
591 | .flags = CLKDM_CAN_HWSUP, | ||
592 | .dep_bit = OMAP24XX_EN_CORE_SHIFT, | ||
593 | .wkdep_srcs = core_24xx_wkdeps, | ||
594 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_L4_MASK, | ||
595 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
596 | }; | ||
597 | |||
598 | static struct clockdomain dss_2430_clkdm = { | ||
599 | .name = "dss_clkdm", | ||
600 | .pwrdm = { .name = "core_pwrdm" }, | ||
601 | .flags = CLKDM_CAN_HWSUP, | ||
602 | .clktrctrl_mask = OMAP24XX_AUTOSTATE_DSS_MASK, | ||
603 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
604 | }; | ||
605 | |||
606 | #endif /* CONFIG_SOC_OMAP2430 */ | ||
607 | |||
608 | |||
609 | /* | ||
610 | * OMAP3 clockdomains | ||
611 | */ | ||
612 | |||
613 | #if defined(CONFIG_ARCH_OMAP3) | ||
614 | |||
615 | static struct clockdomain mpu_3xxx_clkdm = { | ||
616 | .name = "mpu_clkdm", | ||
617 | .pwrdm = { .name = "mpu_pwrdm" }, | ||
618 | .flags = CLKDM_CAN_HWSUP | CLKDM_CAN_FORCE_WAKEUP, | ||
619 | .dep_bit = OMAP3430_EN_MPU_SHIFT, | ||
620 | .wkdep_srcs = mpu_3xxx_wkdeps, | ||
621 | .clktrctrl_mask = OMAP3430_CLKTRCTRL_MPU_MASK, | ||
622 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
623 | }; | ||
624 | |||
625 | static struct clockdomain neon_clkdm = { | ||
626 | .name = "neon_clkdm", | ||
627 | .pwrdm = { .name = "neon_pwrdm" }, | ||
628 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
629 | .wkdep_srcs = neon_wkdeps, | ||
630 | .clktrctrl_mask = OMAP3430_CLKTRCTRL_NEON_MASK, | ||
631 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
632 | }; | ||
633 | |||
634 | static struct clockdomain iva2_clkdm = { | ||
635 | .name = "iva2_clkdm", | ||
636 | .pwrdm = { .name = "iva2_pwrdm" }, | ||
637 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
638 | .dep_bit = OMAP3430_PM_WKDEP_MPU_EN_IVA2_SHIFT, | ||
639 | .wkdep_srcs = iva2_wkdeps, | ||
640 | .clktrctrl_mask = OMAP3430_CLKTRCTRL_IVA2_MASK, | ||
641 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
642 | }; | ||
643 | |||
644 | static struct clockdomain gfx_3430es1_clkdm = { | ||
645 | .name = "gfx_clkdm", | ||
646 | .pwrdm = { .name = "gfx_pwrdm" }, | ||
647 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
648 | .wkdep_srcs = gfx_sgx_wkdeps, | ||
649 | .sleepdep_srcs = gfx_sgx_sleepdeps, | ||
650 | .clktrctrl_mask = OMAP3430ES1_CLKTRCTRL_GFX_MASK, | ||
651 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES1), | ||
652 | }; | ||
653 | |||
654 | static struct clockdomain sgx_clkdm = { | ||
655 | .name = "sgx_clkdm", | ||
656 | .pwrdm = { .name = "sgx_pwrdm" }, | ||
657 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
658 | .wkdep_srcs = gfx_sgx_wkdeps, | ||
659 | .sleepdep_srcs = gfx_sgx_sleepdeps, | ||
660 | .clktrctrl_mask = OMAP3430ES2_CLKTRCTRL_SGX_MASK, | ||
661 | .omap_chip = OMAP_CHIP_INIT(CHIP_GE_OMAP3430ES2), | ||
662 | }; | ||
663 | |||
664 | /* | ||
665 | * The die-to-die clockdomain was documented in the 34xx ES1 TRM, but | ||
666 | * then that information was removed from the 34xx ES2+ TRM. It is | ||
667 | * unclear whether the core is still there, but the clockdomain logic | ||
668 | * is there, and must be programmed to an appropriate state if the | ||
669 | * CORE clockdomain is to become inactive. | ||
670 | */ | ||
671 | static struct clockdomain d2d_clkdm = { | ||
672 | .name = "d2d_clkdm", | ||
673 | .pwrdm = { .name = "core_pwrdm" }, | ||
674 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
675 | .clktrctrl_mask = OMAP3430ES1_CLKTRCTRL_D2D_MASK, | ||
676 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
677 | }; | ||
678 | |||
679 | /* | ||
680 | * XXX add usecounting for clkdm dependencies, otherwise the presence | ||
681 | * of a single dep bit for core_l3_3xxx_clkdm and core_l4_3xxx_clkdm | ||
682 | * could cause trouble | ||
683 | */ | ||
684 | static struct clockdomain core_l3_3xxx_clkdm = { | ||
685 | .name = "core_l3_clkdm", | ||
686 | .pwrdm = { .name = "core_pwrdm" }, | ||
687 | .flags = CLKDM_CAN_HWSUP, | ||
688 | .dep_bit = OMAP3430_EN_CORE_SHIFT, | ||
689 | .clktrctrl_mask = OMAP3430_CLKTRCTRL_L3_MASK, | ||
690 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
691 | }; | ||
692 | |||
693 | /* | ||
694 | * XXX add usecounting for clkdm dependencies, otherwise the presence | ||
695 | * of a single dep bit for core_l3_3xxx_clkdm and core_l4_3xxx_clkdm | ||
696 | * could cause trouble | ||
697 | */ | ||
698 | static struct clockdomain core_l4_3xxx_clkdm = { | ||
699 | .name = "core_l4_clkdm", | ||
700 | .pwrdm = { .name = "core_pwrdm" }, | ||
701 | .flags = CLKDM_CAN_HWSUP, | ||
702 | .dep_bit = OMAP3430_EN_CORE_SHIFT, | ||
703 | .clktrctrl_mask = OMAP3430_CLKTRCTRL_L4_MASK, | ||
704 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
705 | }; | ||
706 | |||
707 | /* Another case of bit name collisions between several registers: EN_DSS */ | ||
708 | static struct clockdomain dss_3xxx_clkdm = { | ||
709 | .name = "dss_clkdm", | ||
710 | .pwrdm = { .name = "dss_pwrdm" }, | ||
711 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
712 | .dep_bit = OMAP3430_PM_WKDEP_MPU_EN_DSS_SHIFT, | ||
713 | .wkdep_srcs = dss_wkdeps, | ||
714 | .sleepdep_srcs = dss_sleepdeps, | ||
715 | .clktrctrl_mask = OMAP3430_CLKTRCTRL_DSS_MASK, | ||
716 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
717 | }; | ||
718 | |||
719 | static struct clockdomain cam_clkdm = { | ||
720 | .name = "cam_clkdm", | ||
721 | .pwrdm = { .name = "cam_pwrdm" }, | ||
722 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
723 | .wkdep_srcs = cam_wkdeps, | ||
724 | .sleepdep_srcs = cam_sleepdeps, | ||
725 | .clktrctrl_mask = OMAP3430_CLKTRCTRL_CAM_MASK, | ||
726 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
727 | }; | ||
728 | |||
729 | static struct clockdomain usbhost_clkdm = { | ||
730 | .name = "usbhost_clkdm", | ||
731 | .pwrdm = { .name = "usbhost_pwrdm" }, | ||
732 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
733 | .wkdep_srcs = usbhost_wkdeps, | ||
734 | .sleepdep_srcs = usbhost_sleepdeps, | ||
735 | .clktrctrl_mask = OMAP3430ES2_CLKTRCTRL_USBHOST_MASK, | ||
736 | .omap_chip = OMAP_CHIP_INIT(CHIP_GE_OMAP3430ES2), | ||
737 | }; | ||
738 | |||
739 | static struct clockdomain per_clkdm = { | ||
740 | .name = "per_clkdm", | ||
741 | .pwrdm = { .name = "per_pwrdm" }, | ||
742 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
743 | .dep_bit = OMAP3430_EN_PER_SHIFT, | ||
744 | .wkdep_srcs = per_wkdeps, | ||
745 | .sleepdep_srcs = per_sleepdeps, | ||
746 | .clktrctrl_mask = OMAP3430_CLKTRCTRL_PER_MASK, | ||
747 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
748 | }; | ||
749 | |||
750 | /* | ||
751 | * Disable hw supervised mode for emu_clkdm, because emu_pwrdm is | ||
752 | * switched of even if sdti is in use | ||
753 | */ | ||
754 | static struct clockdomain emu_clkdm = { | ||
755 | .name = "emu_clkdm", | ||
756 | .pwrdm = { .name = "emu_pwrdm" }, | ||
757 | .flags = /* CLKDM_CAN_ENABLE_AUTO | */CLKDM_CAN_SWSUP, | ||
758 | .clktrctrl_mask = OMAP3430_CLKTRCTRL_EMU_MASK, | ||
759 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
760 | }; | ||
761 | |||
762 | static struct clockdomain dpll1_clkdm = { | ||
763 | .name = "dpll1_clkdm", | ||
764 | .pwrdm = { .name = "dpll1_pwrdm" }, | ||
765 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
766 | }; | ||
767 | |||
768 | static struct clockdomain dpll2_clkdm = { | ||
769 | .name = "dpll2_clkdm", | ||
770 | .pwrdm = { .name = "dpll2_pwrdm" }, | ||
771 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
772 | }; | ||
773 | |||
774 | static struct clockdomain dpll3_clkdm = { | ||
775 | .name = "dpll3_clkdm", | ||
776 | .pwrdm = { .name = "dpll3_pwrdm" }, | ||
777 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
778 | }; | ||
779 | |||
780 | static struct clockdomain dpll4_clkdm = { | ||
781 | .name = "dpll4_clkdm", | ||
782 | .pwrdm = { .name = "dpll4_pwrdm" }, | ||
783 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
784 | }; | ||
785 | |||
786 | static struct clockdomain dpll5_clkdm = { | ||
787 | .name = "dpll5_clkdm", | ||
788 | .pwrdm = { .name = "dpll5_pwrdm" }, | ||
789 | .omap_chip = OMAP_CHIP_INIT(CHIP_GE_OMAP3430ES2), | ||
790 | }; | ||
791 | |||
792 | #endif /* CONFIG_ARCH_OMAP3 */ | ||
793 | |||
794 | /* | ||
795 | * Clockdomain hwsup dependencies (OMAP3 only) | ||
796 | */ | ||
797 | |||
798 | static struct clkdm_autodep clkdm_autodeps[] = { | ||
799 | { | ||
800 | .clkdm = { .name = "mpu_clkdm" }, | ||
801 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
802 | }, | ||
803 | { | ||
804 | .clkdm = { .name = "iva2_clkdm" }, | ||
805 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
806 | }, | ||
807 | { | ||
808 | .clkdm = { .name = NULL }, | ||
809 | } | ||
810 | }; | ||
811 | |||
812 | static struct clockdomain *clockdomains_omap2[] __initdata = { | ||
813 | &wkup_clkdm, | ||
814 | &cm_clkdm, | ||
815 | &prm_clkdm, | ||
816 | |||
817 | #ifdef CONFIG_SOC_OMAP2420 | ||
818 | &mpu_2420_clkdm, | ||
819 | &iva1_2420_clkdm, | ||
820 | &dsp_2420_clkdm, | ||
821 | &gfx_2420_clkdm, | ||
822 | &core_l3_2420_clkdm, | ||
823 | &core_l4_2420_clkdm, | ||
824 | &dss_2420_clkdm, | ||
825 | #endif | ||
826 | |||
827 | #ifdef CONFIG_SOC_OMAP2430 | ||
828 | &mpu_2430_clkdm, | ||
829 | &mdm_clkdm, | ||
830 | &dsp_2430_clkdm, | ||
831 | &gfx_2430_clkdm, | ||
832 | &core_l3_2430_clkdm, | ||
833 | &core_l4_2430_clkdm, | ||
834 | &dss_2430_clkdm, | ||
835 | #endif | ||
836 | |||
837 | #ifdef CONFIG_ARCH_OMAP3 | ||
838 | &mpu_3xxx_clkdm, | ||
839 | &neon_clkdm, | ||
840 | &iva2_clkdm, | ||
841 | &gfx_3430es1_clkdm, | ||
842 | &sgx_clkdm, | ||
843 | &d2d_clkdm, | ||
844 | &core_l3_3xxx_clkdm, | ||
845 | &core_l4_3xxx_clkdm, | ||
846 | &dss_3xxx_clkdm, | ||
847 | &cam_clkdm, | ||
848 | &usbhost_clkdm, | ||
849 | &per_clkdm, | ||
850 | &emu_clkdm, | ||
851 | &dpll1_clkdm, | ||
852 | &dpll2_clkdm, | ||
853 | &dpll3_clkdm, | ||
854 | &dpll4_clkdm, | ||
855 | &dpll5_clkdm, | ||
856 | #endif | ||
857 | NULL, | ||
858 | }; | ||
859 | |||
860 | void __init omap2xxx_clockdomains_init(void) | ||
861 | { | ||
862 | clkdm_init(clockdomains_omap2, clkdm_autodeps, &omap2_clkdm_operations); | ||
863 | } | ||
864 | |||
865 | void __init omap3xxx_clockdomains_init(void) | ||
866 | { | ||
867 | clkdm_init(clockdomains_omap2, clkdm_autodeps, &omap3_clkdm_operations); | ||
868 | } | ||
diff --git a/arch/arm/mach-omap2/clockdomains3xxx_data.c b/arch/arm/mach-omap2/clockdomains3xxx_data.c new file mode 100644 index 000000000000..b84e138d99c8 --- /dev/null +++ b/arch/arm/mach-omap2/clockdomains3xxx_data.c | |||
@@ -0,0 +1,398 @@ | |||
1 | /* | ||
2 | * OMAP3xxx clockdomains | ||
3 | * | ||
4 | * Copyright (C) 2008-2011 Texas Instruments, Inc. | ||
5 | * Copyright (C) 2008-2010 Nokia Corporation | ||
6 | * | ||
7 | * Paul Walmsley, Jouni Högander | ||
8 | * | ||
9 | * This file contains clockdomains and clockdomain wakeup/sleep | ||
10 | * dependencies for the OMAP3xxx chips. Some notes: | ||
11 | * | ||
12 | * A useful validation rule for struct clockdomain: Any clockdomain | ||
13 | * referenced by a wkdep_srcs or sleepdep_srcs array must have a | ||
14 | * dep_bit assigned. So wkdep_srcs/sleepdep_srcs are really just | ||
15 | * software-controllable dependencies. Non-software-controllable | ||
16 | * dependencies do exist, but they are not encoded below (yet). | ||
17 | * | ||
18 | * The overly-specific dep_bit names are due to a bit name collision | ||
19 | * with CM_FCLKEN_{DSP,IVA2}. The DSP/IVA2 PM_WKDEP and CM_SLEEPDEP shift | ||
20 | * value are the same for all powerdomains: 2 | ||
21 | * | ||
22 | * XXX should dep_bit be a mask, so we can test to see if it is 0 as a | ||
23 | * sanity check? | ||
24 | * XXX encode hardware fixed wakeup dependencies -- esp. for 3430 CORE | ||
25 | */ | ||
26 | |||
27 | /* | ||
28 | * To-Do List | ||
29 | * -> Port the Sleep/Wakeup dependencies for the domains | ||
30 | * from the Power domain framework | ||
31 | */ | ||
32 | |||
33 | #include <linux/kernel.h> | ||
34 | #include <linux/io.h> | ||
35 | |||
36 | #include "clockdomain.h" | ||
37 | #include "prm2xxx_3xxx.h" | ||
38 | #include "cm2xxx_3xxx.h" | ||
39 | #include "cm-regbits-34xx.h" | ||
40 | #include "prm-regbits-34xx.h" | ||
41 | |||
42 | /* | ||
43 | * Clockdomain dependencies for wkdeps/sleepdeps | ||
44 | * | ||
45 | * XXX Hardware dependencies (e.g., dependencies that cannot be | ||
46 | * changed in software) are not included here yet, but should be. | ||
47 | */ | ||
48 | |||
49 | /* OMAP3-specific possible dependencies */ | ||
50 | |||
51 | /* | ||
52 | * 3430ES1 PM_WKDEP_GFX: adds IVA2, removes CORE | ||
53 | * 3430ES2 PM_WKDEP_SGX: adds IVA2, removes CORE | ||
54 | */ | ||
55 | static struct clkdm_dep gfx_sgx_3xxx_wkdeps[] = { | ||
56 | { .clkdm_name = "iva2_clkdm", }, | ||
57 | { .clkdm_name = "mpu_clkdm", }, | ||
58 | { .clkdm_name = "wkup_clkdm", }, | ||
59 | { NULL }, | ||
60 | }; | ||
61 | |||
62 | /* 3430: PM_WKDEP_PER: CORE, IVA2, MPU, WKUP */ | ||
63 | static struct clkdm_dep per_wkdeps[] = { | ||
64 | { .clkdm_name = "core_l3_clkdm" }, | ||
65 | { .clkdm_name = "core_l4_clkdm" }, | ||
66 | { .clkdm_name = "iva2_clkdm" }, | ||
67 | { .clkdm_name = "mpu_clkdm" }, | ||
68 | { .clkdm_name = "wkup_clkdm" }, | ||
69 | { NULL }, | ||
70 | }; | ||
71 | |||
72 | /* 3430ES2: PM_WKDEP_USBHOST: CORE, IVA2, MPU, WKUP */ | ||
73 | static struct clkdm_dep usbhost_wkdeps[] = { | ||
74 | { .clkdm_name = "core_l3_clkdm" }, | ||
75 | { .clkdm_name = "core_l4_clkdm" }, | ||
76 | { .clkdm_name = "iva2_clkdm" }, | ||
77 | { .clkdm_name = "mpu_clkdm" }, | ||
78 | { .clkdm_name = "wkup_clkdm" }, | ||
79 | { NULL }, | ||
80 | }; | ||
81 | |||
82 | /* 3430 PM_WKDEP_MPU: CORE, IVA2, DSS, PER */ | ||
83 | static struct clkdm_dep mpu_3xxx_wkdeps[] = { | ||
84 | { .clkdm_name = "core_l3_clkdm" }, | ||
85 | { .clkdm_name = "core_l4_clkdm" }, | ||
86 | { .clkdm_name = "iva2_clkdm" }, | ||
87 | { .clkdm_name = "dss_clkdm" }, | ||
88 | { .clkdm_name = "per_clkdm" }, | ||
89 | { NULL }, | ||
90 | }; | ||
91 | |||
92 | /* 3430 PM_WKDEP_IVA2: CORE, MPU, WKUP, DSS, PER */ | ||
93 | static struct clkdm_dep iva2_wkdeps[] = { | ||
94 | { .clkdm_name = "core_l3_clkdm" }, | ||
95 | { .clkdm_name = "core_l4_clkdm" }, | ||
96 | { .clkdm_name = "mpu_clkdm" }, | ||
97 | { .clkdm_name = "wkup_clkdm" }, | ||
98 | { .clkdm_name = "dss_clkdm" }, | ||
99 | { .clkdm_name = "per_clkdm" }, | ||
100 | { NULL }, | ||
101 | }; | ||
102 | |||
103 | /* 3430 PM_WKDEP_CAM: IVA2, MPU, WKUP */ | ||
104 | static struct clkdm_dep cam_wkdeps[] = { | ||
105 | { .clkdm_name = "iva2_clkdm" }, | ||
106 | { .clkdm_name = "mpu_clkdm" }, | ||
107 | { .clkdm_name = "wkup_clkdm" }, | ||
108 | { NULL }, | ||
109 | }; | ||
110 | |||
111 | /* 3430 PM_WKDEP_DSS: IVA2, MPU, WKUP */ | ||
112 | static struct clkdm_dep dss_wkdeps[] = { | ||
113 | { .clkdm_name = "iva2_clkdm" }, | ||
114 | { .clkdm_name = "mpu_clkdm" }, | ||
115 | { .clkdm_name = "wkup_clkdm" }, | ||
116 | { NULL }, | ||
117 | }; | ||
118 | |||
119 | /* 3430: PM_WKDEP_NEON: MPU */ | ||
120 | static struct clkdm_dep neon_wkdeps[] = { | ||
121 | { .clkdm_name = "mpu_clkdm" }, | ||
122 | { NULL }, | ||
123 | }; | ||
124 | |||
125 | /* Sleep dependency source arrays for OMAP3-specific clkdms */ | ||
126 | |||
127 | /* 3430: CM_SLEEPDEP_DSS: MPU, IVA */ | ||
128 | static struct clkdm_dep dss_sleepdeps[] = { | ||
129 | { .clkdm_name = "mpu_clkdm" }, | ||
130 | { .clkdm_name = "iva2_clkdm" }, | ||
131 | { NULL }, | ||
132 | }; | ||
133 | |||
134 | /* 3430: CM_SLEEPDEP_PER: MPU, IVA */ | ||
135 | static struct clkdm_dep per_sleepdeps[] = { | ||
136 | { .clkdm_name = "mpu_clkdm" }, | ||
137 | { .clkdm_name = "iva2_clkdm" }, | ||
138 | { NULL }, | ||
139 | }; | ||
140 | |||
141 | /* 3430ES2: CM_SLEEPDEP_USBHOST: MPU, IVA */ | ||
142 | static struct clkdm_dep usbhost_sleepdeps[] = { | ||
143 | { .clkdm_name = "mpu_clkdm" }, | ||
144 | { .clkdm_name = "iva2_clkdm" }, | ||
145 | { NULL }, | ||
146 | }; | ||
147 | |||
148 | /* 3430: CM_SLEEPDEP_CAM: MPU */ | ||
149 | static struct clkdm_dep cam_sleepdeps[] = { | ||
150 | { .clkdm_name = "mpu_clkdm" }, | ||
151 | { NULL }, | ||
152 | }; | ||
153 | |||
154 | /* | ||
155 | * 3430ES1: CM_SLEEPDEP_GFX: MPU | ||
156 | * 3430ES2: CM_SLEEPDEP_SGX: MPU | ||
157 | * These can share data since they will never be present simultaneously | ||
158 | * on the same device. | ||
159 | */ | ||
160 | static struct clkdm_dep gfx_sgx_sleepdeps[] = { | ||
161 | { .clkdm_name = "mpu_clkdm" }, | ||
162 | { NULL }, | ||
163 | }; | ||
164 | |||
165 | /* | ||
166 | * OMAP3 clockdomains | ||
167 | */ | ||
168 | |||
169 | static struct clockdomain mpu_3xxx_clkdm = { | ||
170 | .name = "mpu_clkdm", | ||
171 | .pwrdm = { .name = "mpu_pwrdm" }, | ||
172 | .flags = CLKDM_CAN_HWSUP | CLKDM_CAN_FORCE_WAKEUP, | ||
173 | .dep_bit = OMAP3430_EN_MPU_SHIFT, | ||
174 | .wkdep_srcs = mpu_3xxx_wkdeps, | ||
175 | .clktrctrl_mask = OMAP3430_CLKTRCTRL_MPU_MASK, | ||
176 | }; | ||
177 | |||
178 | static struct clockdomain neon_clkdm = { | ||
179 | .name = "neon_clkdm", | ||
180 | .pwrdm = { .name = "neon_pwrdm" }, | ||
181 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
182 | .wkdep_srcs = neon_wkdeps, | ||
183 | .clktrctrl_mask = OMAP3430_CLKTRCTRL_NEON_MASK, | ||
184 | }; | ||
185 | |||
186 | static struct clockdomain iva2_clkdm = { | ||
187 | .name = "iva2_clkdm", | ||
188 | .pwrdm = { .name = "iva2_pwrdm" }, | ||
189 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
190 | .dep_bit = OMAP3430_PM_WKDEP_MPU_EN_IVA2_SHIFT, | ||
191 | .wkdep_srcs = iva2_wkdeps, | ||
192 | .clktrctrl_mask = OMAP3430_CLKTRCTRL_IVA2_MASK, | ||
193 | }; | ||
194 | |||
195 | static struct clockdomain gfx_3430es1_clkdm = { | ||
196 | .name = "gfx_clkdm", | ||
197 | .pwrdm = { .name = "gfx_pwrdm" }, | ||
198 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
199 | .wkdep_srcs = gfx_sgx_3xxx_wkdeps, | ||
200 | .sleepdep_srcs = gfx_sgx_sleepdeps, | ||
201 | .clktrctrl_mask = OMAP3430ES1_CLKTRCTRL_GFX_MASK, | ||
202 | }; | ||
203 | |||
204 | static struct clockdomain sgx_clkdm = { | ||
205 | .name = "sgx_clkdm", | ||
206 | .pwrdm = { .name = "sgx_pwrdm" }, | ||
207 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
208 | .wkdep_srcs = gfx_sgx_3xxx_wkdeps, | ||
209 | .sleepdep_srcs = gfx_sgx_sleepdeps, | ||
210 | .clktrctrl_mask = OMAP3430ES2_CLKTRCTRL_SGX_MASK, | ||
211 | }; | ||
212 | |||
213 | /* | ||
214 | * The die-to-die clockdomain was documented in the 34xx ES1 TRM, but | ||
215 | * then that information was removed from the 34xx ES2+ TRM. It is | ||
216 | * unclear whether the core is still there, but the clockdomain logic | ||
217 | * is there, and must be programmed to an appropriate state if the | ||
218 | * CORE clockdomain is to become inactive. | ||
219 | */ | ||
220 | static struct clockdomain d2d_clkdm = { | ||
221 | .name = "d2d_clkdm", | ||
222 | .pwrdm = { .name = "core_pwrdm" }, | ||
223 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
224 | .clktrctrl_mask = OMAP3430ES1_CLKTRCTRL_D2D_MASK, | ||
225 | }; | ||
226 | |||
227 | /* | ||
228 | * XXX add usecounting for clkdm dependencies, otherwise the presence | ||
229 | * of a single dep bit for core_l3_3xxx_clkdm and core_l4_3xxx_clkdm | ||
230 | * could cause trouble | ||
231 | */ | ||
232 | static struct clockdomain core_l3_3xxx_clkdm = { | ||
233 | .name = "core_l3_clkdm", | ||
234 | .pwrdm = { .name = "core_pwrdm" }, | ||
235 | .flags = CLKDM_CAN_HWSUP, | ||
236 | .dep_bit = OMAP3430_EN_CORE_SHIFT, | ||
237 | .clktrctrl_mask = OMAP3430_CLKTRCTRL_L3_MASK, | ||
238 | }; | ||
239 | |||
240 | /* | ||
241 | * XXX add usecounting for clkdm dependencies, otherwise the presence | ||
242 | * of a single dep bit for core_l3_3xxx_clkdm and core_l4_3xxx_clkdm | ||
243 | * could cause trouble | ||
244 | */ | ||
245 | static struct clockdomain core_l4_3xxx_clkdm = { | ||
246 | .name = "core_l4_clkdm", | ||
247 | .pwrdm = { .name = "core_pwrdm" }, | ||
248 | .flags = CLKDM_CAN_HWSUP, | ||
249 | .dep_bit = OMAP3430_EN_CORE_SHIFT, | ||
250 | .clktrctrl_mask = OMAP3430_CLKTRCTRL_L4_MASK, | ||
251 | }; | ||
252 | |||
253 | /* Another case of bit name collisions between several registers: EN_DSS */ | ||
254 | static struct clockdomain dss_3xxx_clkdm = { | ||
255 | .name = "dss_clkdm", | ||
256 | .pwrdm = { .name = "dss_pwrdm" }, | ||
257 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
258 | .dep_bit = OMAP3430_PM_WKDEP_MPU_EN_DSS_SHIFT, | ||
259 | .wkdep_srcs = dss_wkdeps, | ||
260 | .sleepdep_srcs = dss_sleepdeps, | ||
261 | .clktrctrl_mask = OMAP3430_CLKTRCTRL_DSS_MASK, | ||
262 | }; | ||
263 | |||
264 | static struct clockdomain cam_clkdm = { | ||
265 | .name = "cam_clkdm", | ||
266 | .pwrdm = { .name = "cam_pwrdm" }, | ||
267 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
268 | .wkdep_srcs = cam_wkdeps, | ||
269 | .sleepdep_srcs = cam_sleepdeps, | ||
270 | .clktrctrl_mask = OMAP3430_CLKTRCTRL_CAM_MASK, | ||
271 | }; | ||
272 | |||
273 | static struct clockdomain usbhost_clkdm = { | ||
274 | .name = "usbhost_clkdm", | ||
275 | .pwrdm = { .name = "usbhost_pwrdm" }, | ||
276 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
277 | .wkdep_srcs = usbhost_wkdeps, | ||
278 | .sleepdep_srcs = usbhost_sleepdeps, | ||
279 | .clktrctrl_mask = OMAP3430ES2_CLKTRCTRL_USBHOST_MASK, | ||
280 | }; | ||
281 | |||
282 | static struct clockdomain per_clkdm = { | ||
283 | .name = "per_clkdm", | ||
284 | .pwrdm = { .name = "per_pwrdm" }, | ||
285 | .flags = CLKDM_CAN_HWSUP_SWSUP, | ||
286 | .dep_bit = OMAP3430_EN_PER_SHIFT, | ||
287 | .wkdep_srcs = per_wkdeps, | ||
288 | .sleepdep_srcs = per_sleepdeps, | ||
289 | .clktrctrl_mask = OMAP3430_CLKTRCTRL_PER_MASK, | ||
290 | }; | ||
291 | |||
292 | /* | ||
293 | * Disable hw supervised mode for emu_clkdm, because emu_pwrdm is | ||
294 | * switched of even if sdti is in use | ||
295 | */ | ||
296 | static struct clockdomain emu_clkdm = { | ||
297 | .name = "emu_clkdm", | ||
298 | .pwrdm = { .name = "emu_pwrdm" }, | ||
299 | .flags = /* CLKDM_CAN_ENABLE_AUTO | */CLKDM_CAN_SWSUP, | ||
300 | .clktrctrl_mask = OMAP3430_CLKTRCTRL_EMU_MASK, | ||
301 | }; | ||
302 | |||
303 | static struct clockdomain dpll1_clkdm = { | ||
304 | .name = "dpll1_clkdm", | ||
305 | .pwrdm = { .name = "dpll1_pwrdm" }, | ||
306 | }; | ||
307 | |||
308 | static struct clockdomain dpll2_clkdm = { | ||
309 | .name = "dpll2_clkdm", | ||
310 | .pwrdm = { .name = "dpll2_pwrdm" }, | ||
311 | }; | ||
312 | |||
313 | static struct clockdomain dpll3_clkdm = { | ||
314 | .name = "dpll3_clkdm", | ||
315 | .pwrdm = { .name = "dpll3_pwrdm" }, | ||
316 | }; | ||
317 | |||
318 | static struct clockdomain dpll4_clkdm = { | ||
319 | .name = "dpll4_clkdm", | ||
320 | .pwrdm = { .name = "dpll4_pwrdm" }, | ||
321 | }; | ||
322 | |||
323 | static struct clockdomain dpll5_clkdm = { | ||
324 | .name = "dpll5_clkdm", | ||
325 | .pwrdm = { .name = "dpll5_pwrdm" }, | ||
326 | }; | ||
327 | |||
328 | /* | ||
329 | * Clockdomain hwsup dependencies | ||
330 | */ | ||
331 | |||
332 | static struct clkdm_autodep clkdm_autodeps[] = { | ||
333 | { | ||
334 | .clkdm = { .name = "mpu_clkdm" }, | ||
335 | }, | ||
336 | { | ||
337 | .clkdm = { .name = "iva2_clkdm" }, | ||
338 | }, | ||
339 | { | ||
340 | .clkdm = { .name = NULL }, | ||
341 | } | ||
342 | }; | ||
343 | |||
344 | /* | ||
345 | * | ||
346 | */ | ||
347 | |||
348 | static struct clockdomain *clockdomains_omap3430_common[] __initdata = { | ||
349 | &wkup_common_clkdm, | ||
350 | &cm_common_clkdm, | ||
351 | &prm_common_clkdm, | ||
352 | &mpu_3xxx_clkdm, | ||
353 | &neon_clkdm, | ||
354 | &iva2_clkdm, | ||
355 | &d2d_clkdm, | ||
356 | &core_l3_3xxx_clkdm, | ||
357 | &core_l4_3xxx_clkdm, | ||
358 | &dss_3xxx_clkdm, | ||
359 | &cam_clkdm, | ||
360 | &per_clkdm, | ||
361 | &emu_clkdm, | ||
362 | &dpll1_clkdm, | ||
363 | &dpll2_clkdm, | ||
364 | &dpll3_clkdm, | ||
365 | &dpll4_clkdm, | ||
366 | NULL | ||
367 | }; | ||
368 | |||
369 | static struct clockdomain *clockdomains_omap3430es1[] __initdata = { | ||
370 | &gfx_3430es1_clkdm, | ||
371 | NULL, | ||
372 | }; | ||
373 | |||
374 | static struct clockdomain *clockdomains_omap3430es2plus[] __initdata = { | ||
375 | &sgx_clkdm, | ||
376 | &dpll5_clkdm, | ||
377 | &usbhost_clkdm, | ||
378 | NULL, | ||
379 | }; | ||
380 | |||
381 | void __init omap3xxx_clockdomains_init(void) | ||
382 | { | ||
383 | struct clockdomain **sc; | ||
384 | |||
385 | if (!cpu_is_omap34xx()) | ||
386 | return; | ||
387 | |||
388 | clkdm_register_platform_funcs(&omap3_clkdm_operations); | ||
389 | clkdm_register_clkdms(clockdomains_omap3430_common); | ||
390 | |||
391 | sc = (omap_rev() == OMAP3430_REV_ES1_0) ? clockdomains_omap3430es1 : | ||
392 | clockdomains_omap3430es2plus; | ||
393 | |||
394 | clkdm_register_clkdms(sc); | ||
395 | |||
396 | clkdm_register_autodeps(clkdm_autodeps); | ||
397 | clkdm_complete_init(); | ||
398 | } | ||
diff --git a/arch/arm/mach-omap2/clockdomains44xx_data.c b/arch/arm/mach-omap2/clockdomains44xx_data.c index dccc651fa0d0..9299ac291d28 100644 --- a/arch/arm/mach-omap2/clockdomains44xx_data.c +++ b/arch/arm/mach-omap2/clockdomains44xx_data.c | |||
@@ -34,350 +34,122 @@ | |||
34 | /* Static Dependencies for OMAP4 Clock Domains */ | 34 | /* Static Dependencies for OMAP4 Clock Domains */ |
35 | 35 | ||
36 | static struct clkdm_dep d2d_wkup_sleep_deps[] = { | 36 | static struct clkdm_dep d2d_wkup_sleep_deps[] = { |
37 | { | 37 | { .clkdm_name = "abe_clkdm" }, |
38 | .clkdm_name = "abe_clkdm", | 38 | { .clkdm_name = "ivahd_clkdm" }, |
39 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | 39 | { .clkdm_name = "l3_1_clkdm" }, |
40 | }, | 40 | { .clkdm_name = "l3_2_clkdm" }, |
41 | { | 41 | { .clkdm_name = "l3_emif_clkdm" }, |
42 | .clkdm_name = "ivahd_clkdm", | 42 | { .clkdm_name = "l3_init_clkdm" }, |
43 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | 43 | { .clkdm_name = "l4_cfg_clkdm" }, |
44 | }, | 44 | { .clkdm_name = "l4_per_clkdm" }, |
45 | { | ||
46 | .clkdm_name = "l3_1_clkdm", | ||
47 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
48 | }, | ||
49 | { | ||
50 | .clkdm_name = "l3_2_clkdm", | ||
51 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
52 | }, | ||
53 | { | ||
54 | .clkdm_name = "l3_emif_clkdm", | ||
55 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
56 | }, | ||
57 | { | ||
58 | .clkdm_name = "l3_init_clkdm", | ||
59 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
60 | }, | ||
61 | { | ||
62 | .clkdm_name = "l4_cfg_clkdm", | ||
63 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
64 | }, | ||
65 | { | ||
66 | .clkdm_name = "l4_per_clkdm", | ||
67 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
68 | }, | ||
69 | { NULL }, | 45 | { NULL }, |
70 | }; | 46 | }; |
71 | 47 | ||
72 | static struct clkdm_dep ducati_wkup_sleep_deps[] = { | 48 | static struct clkdm_dep ducati_wkup_sleep_deps[] = { |
73 | { | 49 | { .clkdm_name = "abe_clkdm" }, |
74 | .clkdm_name = "abe_clkdm", | 50 | { .clkdm_name = "ivahd_clkdm" }, |
75 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | 51 | { .clkdm_name = "l3_1_clkdm" }, |
76 | }, | 52 | { .clkdm_name = "l3_2_clkdm" }, |
77 | { | 53 | { .clkdm_name = "l3_dss_clkdm" }, |
78 | .clkdm_name = "ivahd_clkdm", | 54 | { .clkdm_name = "l3_emif_clkdm" }, |
79 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | 55 | { .clkdm_name = "l3_gfx_clkdm" }, |
80 | }, | 56 | { .clkdm_name = "l3_init_clkdm" }, |
81 | { | 57 | { .clkdm_name = "l4_cfg_clkdm" }, |
82 | .clkdm_name = "l3_1_clkdm", | 58 | { .clkdm_name = "l4_per_clkdm" }, |
83 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | 59 | { .clkdm_name = "l4_secure_clkdm" }, |
84 | }, | 60 | { .clkdm_name = "l4_wkup_clkdm" }, |
85 | { | 61 | { .clkdm_name = "tesla_clkdm" }, |
86 | .clkdm_name = "l3_2_clkdm", | ||
87 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
88 | }, | ||
89 | { | ||
90 | .clkdm_name = "l3_dss_clkdm", | ||
91 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
92 | }, | ||
93 | { | ||
94 | .clkdm_name = "l3_emif_clkdm", | ||
95 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
96 | }, | ||
97 | { | ||
98 | .clkdm_name = "l3_gfx_clkdm", | ||
99 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
100 | }, | ||
101 | { | ||
102 | .clkdm_name = "l3_init_clkdm", | ||
103 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
104 | }, | ||
105 | { | ||
106 | .clkdm_name = "l4_cfg_clkdm", | ||
107 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
108 | }, | ||
109 | { | ||
110 | .clkdm_name = "l4_per_clkdm", | ||
111 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
112 | }, | ||
113 | { | ||
114 | .clkdm_name = "l4_secure_clkdm", | ||
115 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
116 | }, | ||
117 | { | ||
118 | .clkdm_name = "l4_wkup_clkdm", | ||
119 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
120 | }, | ||
121 | { | ||
122 | .clkdm_name = "tesla_clkdm", | ||
123 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
124 | }, | ||
125 | { NULL }, | 62 | { NULL }, |
126 | }; | 63 | }; |
127 | 64 | ||
128 | static struct clkdm_dep iss_wkup_sleep_deps[] = { | 65 | static struct clkdm_dep iss_wkup_sleep_deps[] = { |
129 | { | 66 | { .clkdm_name = "ivahd_clkdm" }, |
130 | .clkdm_name = "ivahd_clkdm", | 67 | { .clkdm_name = "l3_1_clkdm" }, |
131 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | 68 | { .clkdm_name = "l3_emif_clkdm" }, |
132 | }, | ||
133 | { | ||
134 | .clkdm_name = "l3_1_clkdm", | ||
135 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
136 | }, | ||
137 | { | ||
138 | .clkdm_name = "l3_emif_clkdm", | ||
139 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
140 | }, | ||
141 | { NULL }, | 69 | { NULL }, |
142 | }; | 70 | }; |
143 | 71 | ||
144 | static struct clkdm_dep ivahd_wkup_sleep_deps[] = { | 72 | static struct clkdm_dep ivahd_wkup_sleep_deps[] = { |
145 | { | 73 | { .clkdm_name = "l3_1_clkdm" }, |
146 | .clkdm_name = "l3_1_clkdm", | 74 | { .clkdm_name = "l3_emif_clkdm" }, |
147 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
148 | }, | ||
149 | { | ||
150 | .clkdm_name = "l3_emif_clkdm", | ||
151 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
152 | }, | ||
153 | { NULL }, | 75 | { NULL }, |
154 | }; | 76 | }; |
155 | 77 | ||
156 | static struct clkdm_dep l3_dma_wkup_sleep_deps[] = { | 78 | static struct clkdm_dep l3_dma_wkup_sleep_deps[] = { |
157 | { | 79 | { .clkdm_name = "abe_clkdm" }, |
158 | .clkdm_name = "abe_clkdm", | 80 | { .clkdm_name = "ducati_clkdm" }, |
159 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | 81 | { .clkdm_name = "ivahd_clkdm" }, |
160 | }, | 82 | { .clkdm_name = "l3_1_clkdm" }, |
161 | { | 83 | { .clkdm_name = "l3_dss_clkdm" }, |
162 | .clkdm_name = "ducati_clkdm", | 84 | { .clkdm_name = "l3_emif_clkdm" }, |
163 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | 85 | { .clkdm_name = "l3_init_clkdm" }, |
164 | }, | 86 | { .clkdm_name = "l4_cfg_clkdm" }, |
165 | { | 87 | { .clkdm_name = "l4_per_clkdm" }, |
166 | .clkdm_name = "ivahd_clkdm", | 88 | { .clkdm_name = "l4_secure_clkdm" }, |
167 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | 89 | { .clkdm_name = "l4_wkup_clkdm" }, |
168 | }, | ||
169 | { | ||
170 | .clkdm_name = "l3_1_clkdm", | ||
171 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
172 | }, | ||
173 | { | ||
174 | .clkdm_name = "l3_dss_clkdm", | ||
175 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
176 | }, | ||
177 | { | ||
178 | .clkdm_name = "l3_emif_clkdm", | ||
179 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
180 | }, | ||
181 | { | ||
182 | .clkdm_name = "l3_init_clkdm", | ||
183 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
184 | }, | ||
185 | { | ||
186 | .clkdm_name = "l4_cfg_clkdm", | ||
187 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
188 | }, | ||
189 | { | ||
190 | .clkdm_name = "l4_per_clkdm", | ||
191 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
192 | }, | ||
193 | { | ||
194 | .clkdm_name = "l4_secure_clkdm", | ||
195 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
196 | }, | ||
197 | { | ||
198 | .clkdm_name = "l4_wkup_clkdm", | ||
199 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
200 | }, | ||
201 | { NULL }, | 90 | { NULL }, |
202 | }; | 91 | }; |
203 | 92 | ||
204 | static struct clkdm_dep l3_dss_wkup_sleep_deps[] = { | 93 | static struct clkdm_dep l3_dss_wkup_sleep_deps[] = { |
205 | { | 94 | { .clkdm_name = "ivahd_clkdm" }, |
206 | .clkdm_name = "ivahd_clkdm", | 95 | { .clkdm_name = "l3_2_clkdm" }, |
207 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | 96 | { .clkdm_name = "l3_emif_clkdm" }, |
208 | }, | ||
209 | { | ||
210 | .clkdm_name = "l3_2_clkdm", | ||
211 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
212 | }, | ||
213 | { | ||
214 | .clkdm_name = "l3_emif_clkdm", | ||
215 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
216 | }, | ||
217 | { NULL }, | 97 | { NULL }, |
218 | }; | 98 | }; |
219 | 99 | ||
220 | static struct clkdm_dep l3_gfx_wkup_sleep_deps[] = { | 100 | static struct clkdm_dep l3_gfx_wkup_sleep_deps[] = { |
221 | { | 101 | { .clkdm_name = "ivahd_clkdm" }, |
222 | .clkdm_name = "ivahd_clkdm", | 102 | { .clkdm_name = "l3_1_clkdm" }, |
223 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | 103 | { .clkdm_name = "l3_emif_clkdm" }, |
224 | }, | ||
225 | { | ||
226 | .clkdm_name = "l3_1_clkdm", | ||
227 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
228 | }, | ||
229 | { | ||
230 | .clkdm_name = "l3_emif_clkdm", | ||
231 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
232 | }, | ||
233 | { NULL }, | 104 | { NULL }, |
234 | }; | 105 | }; |
235 | 106 | ||
236 | static struct clkdm_dep l3_init_wkup_sleep_deps[] = { | 107 | static struct clkdm_dep l3_init_wkup_sleep_deps[] = { |
237 | { | 108 | { .clkdm_name = "abe_clkdm" }, |
238 | .clkdm_name = "abe_clkdm", | 109 | { .clkdm_name = "ivahd_clkdm" }, |
239 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | 110 | { .clkdm_name = "l3_emif_clkdm" }, |
240 | }, | 111 | { .clkdm_name = "l4_cfg_clkdm" }, |
241 | { | 112 | { .clkdm_name = "l4_per_clkdm" }, |
242 | .clkdm_name = "ivahd_clkdm", | 113 | { .clkdm_name = "l4_secure_clkdm" }, |
243 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | 114 | { .clkdm_name = "l4_wkup_clkdm" }, |
244 | }, | ||
245 | { | ||
246 | .clkdm_name = "l3_emif_clkdm", | ||
247 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
248 | }, | ||
249 | { | ||
250 | .clkdm_name = "l4_cfg_clkdm", | ||
251 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
252 | }, | ||
253 | { | ||
254 | .clkdm_name = "l4_per_clkdm", | ||
255 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
256 | }, | ||
257 | { | ||
258 | .clkdm_name = "l4_secure_clkdm", | ||
259 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
260 | }, | ||
261 | { | ||
262 | .clkdm_name = "l4_wkup_clkdm", | ||
263 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
264 | }, | ||
265 | { NULL }, | 115 | { NULL }, |
266 | }; | 116 | }; |
267 | 117 | ||
268 | static struct clkdm_dep l4_secure_wkup_sleep_deps[] = { | 118 | static struct clkdm_dep l4_secure_wkup_sleep_deps[] = { |
269 | { | 119 | { .clkdm_name = "l3_1_clkdm" }, |
270 | .clkdm_name = "l3_1_clkdm", | 120 | { .clkdm_name = "l3_emif_clkdm" }, |
271 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | 121 | { .clkdm_name = "l4_per_clkdm" }, |
272 | }, | ||
273 | { | ||
274 | .clkdm_name = "l3_emif_clkdm", | ||
275 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
276 | }, | ||
277 | { | ||
278 | .clkdm_name = "l4_per_clkdm", | ||
279 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
280 | }, | ||
281 | { NULL }, | 122 | { NULL }, |
282 | }; | 123 | }; |
283 | 124 | ||
284 | static struct clkdm_dep mpu_wkup_sleep_deps[] = { | 125 | static struct clkdm_dep mpu_wkup_sleep_deps[] = { |
285 | { | 126 | { .clkdm_name = "abe_clkdm" }, |
286 | .clkdm_name = "abe_clkdm", | 127 | { .clkdm_name = "ducati_clkdm" }, |
287 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | 128 | { .clkdm_name = "ivahd_clkdm" }, |
288 | }, | 129 | { .clkdm_name = "l3_1_clkdm" }, |
289 | { | 130 | { .clkdm_name = "l3_2_clkdm" }, |
290 | .clkdm_name = "ducati_clkdm", | 131 | { .clkdm_name = "l3_dss_clkdm" }, |
291 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | 132 | { .clkdm_name = "l3_emif_clkdm" }, |
292 | }, | 133 | { .clkdm_name = "l3_gfx_clkdm" }, |
293 | { | 134 | { .clkdm_name = "l3_init_clkdm" }, |
294 | .clkdm_name = "ivahd_clkdm", | 135 | { .clkdm_name = "l4_cfg_clkdm" }, |
295 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | 136 | { .clkdm_name = "l4_per_clkdm" }, |
296 | }, | 137 | { .clkdm_name = "l4_secure_clkdm" }, |
297 | { | 138 | { .clkdm_name = "l4_wkup_clkdm" }, |
298 | .clkdm_name = "l3_1_clkdm", | 139 | { .clkdm_name = "tesla_clkdm" }, |
299 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
300 | }, | ||
301 | { | ||
302 | .clkdm_name = "l3_2_clkdm", | ||
303 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
304 | }, | ||
305 | { | ||
306 | .clkdm_name = "l3_dss_clkdm", | ||
307 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
308 | }, | ||
309 | { | ||
310 | .clkdm_name = "l3_emif_clkdm", | ||
311 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
312 | }, | ||
313 | { | ||
314 | .clkdm_name = "l3_gfx_clkdm", | ||
315 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
316 | }, | ||
317 | { | ||
318 | .clkdm_name = "l3_init_clkdm", | ||
319 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
320 | }, | ||
321 | { | ||
322 | .clkdm_name = "l4_cfg_clkdm", | ||
323 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
324 | }, | ||
325 | { | ||
326 | .clkdm_name = "l4_per_clkdm", | ||
327 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
328 | }, | ||
329 | { | ||
330 | .clkdm_name = "l4_secure_clkdm", | ||
331 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
332 | }, | ||
333 | { | ||
334 | .clkdm_name = "l4_wkup_clkdm", | ||
335 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
336 | }, | ||
337 | { | ||
338 | .clkdm_name = "tesla_clkdm", | ||
339 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
340 | }, | ||
341 | { NULL }, | 140 | { NULL }, |
342 | }; | 141 | }; |
343 | 142 | ||
344 | static struct clkdm_dep tesla_wkup_sleep_deps[] = { | 143 | static struct clkdm_dep tesla_wkup_sleep_deps[] = { |
345 | { | 144 | { .clkdm_name = "abe_clkdm" }, |
346 | .clkdm_name = "abe_clkdm", | 145 | { .clkdm_name = "ivahd_clkdm" }, |
347 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | 146 | { .clkdm_name = "l3_1_clkdm" }, |
348 | }, | 147 | { .clkdm_name = "l3_2_clkdm" }, |
349 | { | 148 | { .clkdm_name = "l3_emif_clkdm" }, |
350 | .clkdm_name = "ivahd_clkdm", | 149 | { .clkdm_name = "l3_init_clkdm" }, |
351 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | 150 | { .clkdm_name = "l4_cfg_clkdm" }, |
352 | }, | 151 | { .clkdm_name = "l4_per_clkdm" }, |
353 | { | 152 | { .clkdm_name = "l4_wkup_clkdm" }, |
354 | .clkdm_name = "l3_1_clkdm", | ||
355 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
356 | }, | ||
357 | { | ||
358 | .clkdm_name = "l3_2_clkdm", | ||
359 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
360 | }, | ||
361 | { | ||
362 | .clkdm_name = "l3_emif_clkdm", | ||
363 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
364 | }, | ||
365 | { | ||
366 | .clkdm_name = "l3_init_clkdm", | ||
367 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
368 | }, | ||
369 | { | ||
370 | .clkdm_name = "l4_cfg_clkdm", | ||
371 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
372 | }, | ||
373 | { | ||
374 | .clkdm_name = "l4_per_clkdm", | ||
375 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
376 | }, | ||
377 | { | ||
378 | .clkdm_name = "l4_wkup_clkdm", | ||
379 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430) | ||
380 | }, | ||
381 | { NULL }, | 153 | { NULL }, |
382 | }; | 154 | }; |
383 | 155 | ||
@@ -388,7 +160,6 @@ static struct clockdomain l4_cefuse_44xx_clkdm = { | |||
388 | .cm_inst = OMAP4430_CM2_CEFUSE_INST, | 160 | .cm_inst = OMAP4430_CM2_CEFUSE_INST, |
389 | .clkdm_offs = OMAP4430_CM2_CEFUSE_CEFUSE_CDOFFS, | 161 | .clkdm_offs = OMAP4430_CM2_CEFUSE_CEFUSE_CDOFFS, |
390 | .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, | 162 | .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, |
391 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
392 | }; | 163 | }; |
393 | 164 | ||
394 | static struct clockdomain l4_cfg_44xx_clkdm = { | 165 | static struct clockdomain l4_cfg_44xx_clkdm = { |
@@ -399,7 +170,6 @@ static struct clockdomain l4_cfg_44xx_clkdm = { | |||
399 | .clkdm_offs = OMAP4430_CM2_CORE_L4CFG_CDOFFS, | 170 | .clkdm_offs = OMAP4430_CM2_CORE_L4CFG_CDOFFS, |
400 | .dep_bit = OMAP4430_L4CFG_STATDEP_SHIFT, | 171 | .dep_bit = OMAP4430_L4CFG_STATDEP_SHIFT, |
401 | .flags = CLKDM_CAN_HWSUP, | 172 | .flags = CLKDM_CAN_HWSUP, |
402 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
403 | }; | 173 | }; |
404 | 174 | ||
405 | static struct clockdomain tesla_44xx_clkdm = { | 175 | static struct clockdomain tesla_44xx_clkdm = { |
@@ -412,7 +182,6 @@ static struct clockdomain tesla_44xx_clkdm = { | |||
412 | .wkdep_srcs = tesla_wkup_sleep_deps, | 182 | .wkdep_srcs = tesla_wkup_sleep_deps, |
413 | .sleepdep_srcs = tesla_wkup_sleep_deps, | 183 | .sleepdep_srcs = tesla_wkup_sleep_deps, |
414 | .flags = CLKDM_CAN_HWSUP_SWSUP, | 184 | .flags = CLKDM_CAN_HWSUP_SWSUP, |
415 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
416 | }; | 185 | }; |
417 | 186 | ||
418 | static struct clockdomain l3_gfx_44xx_clkdm = { | 187 | static struct clockdomain l3_gfx_44xx_clkdm = { |
@@ -425,7 +194,6 @@ static struct clockdomain l3_gfx_44xx_clkdm = { | |||
425 | .wkdep_srcs = l3_gfx_wkup_sleep_deps, | 194 | .wkdep_srcs = l3_gfx_wkup_sleep_deps, |
426 | .sleepdep_srcs = l3_gfx_wkup_sleep_deps, | 195 | .sleepdep_srcs = l3_gfx_wkup_sleep_deps, |
427 | .flags = CLKDM_CAN_HWSUP_SWSUP, | 196 | .flags = CLKDM_CAN_HWSUP_SWSUP, |
428 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
429 | }; | 197 | }; |
430 | 198 | ||
431 | static struct clockdomain ivahd_44xx_clkdm = { | 199 | static struct clockdomain ivahd_44xx_clkdm = { |
@@ -438,7 +206,6 @@ static struct clockdomain ivahd_44xx_clkdm = { | |||
438 | .wkdep_srcs = ivahd_wkup_sleep_deps, | 206 | .wkdep_srcs = ivahd_wkup_sleep_deps, |
439 | .sleepdep_srcs = ivahd_wkup_sleep_deps, | 207 | .sleepdep_srcs = ivahd_wkup_sleep_deps, |
440 | .flags = CLKDM_CAN_HWSUP_SWSUP, | 208 | .flags = CLKDM_CAN_HWSUP_SWSUP, |
441 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
442 | }; | 209 | }; |
443 | 210 | ||
444 | static struct clockdomain l4_secure_44xx_clkdm = { | 211 | static struct clockdomain l4_secure_44xx_clkdm = { |
@@ -451,7 +218,6 @@ static struct clockdomain l4_secure_44xx_clkdm = { | |||
451 | .wkdep_srcs = l4_secure_wkup_sleep_deps, | 218 | .wkdep_srcs = l4_secure_wkup_sleep_deps, |
452 | .sleepdep_srcs = l4_secure_wkup_sleep_deps, | 219 | .sleepdep_srcs = l4_secure_wkup_sleep_deps, |
453 | .flags = CLKDM_CAN_HWSUP_SWSUP, | 220 | .flags = CLKDM_CAN_HWSUP_SWSUP, |
454 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
455 | }; | 221 | }; |
456 | 222 | ||
457 | static struct clockdomain l4_per_44xx_clkdm = { | 223 | static struct clockdomain l4_per_44xx_clkdm = { |
@@ -462,7 +228,6 @@ static struct clockdomain l4_per_44xx_clkdm = { | |||
462 | .clkdm_offs = OMAP4430_CM2_L4PER_L4PER_CDOFFS, | 228 | .clkdm_offs = OMAP4430_CM2_L4PER_L4PER_CDOFFS, |
463 | .dep_bit = OMAP4430_L4PER_STATDEP_SHIFT, | 229 | .dep_bit = OMAP4430_L4PER_STATDEP_SHIFT, |
464 | .flags = CLKDM_CAN_HWSUP_SWSUP, | 230 | .flags = CLKDM_CAN_HWSUP_SWSUP, |
465 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
466 | }; | 231 | }; |
467 | 232 | ||
468 | static struct clockdomain abe_44xx_clkdm = { | 233 | static struct clockdomain abe_44xx_clkdm = { |
@@ -473,7 +238,6 @@ static struct clockdomain abe_44xx_clkdm = { | |||
473 | .clkdm_offs = OMAP4430_CM1_ABE_ABE_CDOFFS, | 238 | .clkdm_offs = OMAP4430_CM1_ABE_ABE_CDOFFS, |
474 | .dep_bit = OMAP4430_ABE_STATDEP_SHIFT, | 239 | .dep_bit = OMAP4430_ABE_STATDEP_SHIFT, |
475 | .flags = CLKDM_CAN_HWSUP_SWSUP, | 240 | .flags = CLKDM_CAN_HWSUP_SWSUP, |
476 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
477 | }; | 241 | }; |
478 | 242 | ||
479 | static struct clockdomain l3_instr_44xx_clkdm = { | 243 | static struct clockdomain l3_instr_44xx_clkdm = { |
@@ -482,7 +246,6 @@ static struct clockdomain l3_instr_44xx_clkdm = { | |||
482 | .prcm_partition = OMAP4430_CM2_PARTITION, | 246 | .prcm_partition = OMAP4430_CM2_PARTITION, |
483 | .cm_inst = OMAP4430_CM2_CORE_INST, | 247 | .cm_inst = OMAP4430_CM2_CORE_INST, |
484 | .clkdm_offs = OMAP4430_CM2_CORE_L3INSTR_CDOFFS, | 248 | .clkdm_offs = OMAP4430_CM2_CORE_L3INSTR_CDOFFS, |
485 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
486 | }; | 249 | }; |
487 | 250 | ||
488 | static struct clockdomain l3_init_44xx_clkdm = { | 251 | static struct clockdomain l3_init_44xx_clkdm = { |
@@ -495,7 +258,6 @@ static struct clockdomain l3_init_44xx_clkdm = { | |||
495 | .wkdep_srcs = l3_init_wkup_sleep_deps, | 258 | .wkdep_srcs = l3_init_wkup_sleep_deps, |
496 | .sleepdep_srcs = l3_init_wkup_sleep_deps, | 259 | .sleepdep_srcs = l3_init_wkup_sleep_deps, |
497 | .flags = CLKDM_CAN_HWSUP_SWSUP, | 260 | .flags = CLKDM_CAN_HWSUP_SWSUP, |
498 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
499 | }; | 261 | }; |
500 | 262 | ||
501 | static struct clockdomain d2d_44xx_clkdm = { | 263 | static struct clockdomain d2d_44xx_clkdm = { |
@@ -507,7 +269,6 @@ static struct clockdomain d2d_44xx_clkdm = { | |||
507 | .wkdep_srcs = d2d_wkup_sleep_deps, | 269 | .wkdep_srcs = d2d_wkup_sleep_deps, |
508 | .sleepdep_srcs = d2d_wkup_sleep_deps, | 270 | .sleepdep_srcs = d2d_wkup_sleep_deps, |
509 | .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, | 271 | .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, |
510 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
511 | }; | 272 | }; |
512 | 273 | ||
513 | static struct clockdomain mpu0_44xx_clkdm = { | 274 | static struct clockdomain mpu0_44xx_clkdm = { |
@@ -517,7 +278,6 @@ static struct clockdomain mpu0_44xx_clkdm = { | |||
517 | .cm_inst = OMAP4430_PRCM_MPU_CPU0_INST, | 278 | .cm_inst = OMAP4430_PRCM_MPU_CPU0_INST, |
518 | .clkdm_offs = OMAP4430_PRCM_MPU_CPU0_CPU0_CDOFFS, | 279 | .clkdm_offs = OMAP4430_PRCM_MPU_CPU0_CPU0_CDOFFS, |
519 | .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, | 280 | .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, |
520 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
521 | }; | 281 | }; |
522 | 282 | ||
523 | static struct clockdomain mpu1_44xx_clkdm = { | 283 | static struct clockdomain mpu1_44xx_clkdm = { |
@@ -527,7 +287,6 @@ static struct clockdomain mpu1_44xx_clkdm = { | |||
527 | .cm_inst = OMAP4430_PRCM_MPU_CPU1_INST, | 287 | .cm_inst = OMAP4430_PRCM_MPU_CPU1_INST, |
528 | .clkdm_offs = OMAP4430_PRCM_MPU_CPU1_CPU1_CDOFFS, | 288 | .clkdm_offs = OMAP4430_PRCM_MPU_CPU1_CPU1_CDOFFS, |
529 | .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, | 289 | .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, |
530 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
531 | }; | 290 | }; |
532 | 291 | ||
533 | static struct clockdomain l3_emif_44xx_clkdm = { | 292 | static struct clockdomain l3_emif_44xx_clkdm = { |
@@ -538,7 +297,6 @@ static struct clockdomain l3_emif_44xx_clkdm = { | |||
538 | .clkdm_offs = OMAP4430_CM2_CORE_MEMIF_CDOFFS, | 297 | .clkdm_offs = OMAP4430_CM2_CORE_MEMIF_CDOFFS, |
539 | .dep_bit = OMAP4430_MEMIF_STATDEP_SHIFT, | 298 | .dep_bit = OMAP4430_MEMIF_STATDEP_SHIFT, |
540 | .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, | 299 | .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, |
541 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
542 | }; | 300 | }; |
543 | 301 | ||
544 | static struct clockdomain l4_ao_44xx_clkdm = { | 302 | static struct clockdomain l4_ao_44xx_clkdm = { |
@@ -548,7 +306,6 @@ static struct clockdomain l4_ao_44xx_clkdm = { | |||
548 | .cm_inst = OMAP4430_CM2_ALWAYS_ON_INST, | 306 | .cm_inst = OMAP4430_CM2_ALWAYS_ON_INST, |
549 | .clkdm_offs = OMAP4430_CM2_ALWAYS_ON_ALWON_CDOFFS, | 307 | .clkdm_offs = OMAP4430_CM2_ALWAYS_ON_ALWON_CDOFFS, |
550 | .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, | 308 | .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, |
551 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
552 | }; | 309 | }; |
553 | 310 | ||
554 | static struct clockdomain ducati_44xx_clkdm = { | 311 | static struct clockdomain ducati_44xx_clkdm = { |
@@ -561,7 +318,6 @@ static struct clockdomain ducati_44xx_clkdm = { | |||
561 | .wkdep_srcs = ducati_wkup_sleep_deps, | 318 | .wkdep_srcs = ducati_wkup_sleep_deps, |
562 | .sleepdep_srcs = ducati_wkup_sleep_deps, | 319 | .sleepdep_srcs = ducati_wkup_sleep_deps, |
563 | .flags = CLKDM_CAN_HWSUP_SWSUP, | 320 | .flags = CLKDM_CAN_HWSUP_SWSUP, |
564 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
565 | }; | 321 | }; |
566 | 322 | ||
567 | static struct clockdomain mpu_44xx_clkdm = { | 323 | static struct clockdomain mpu_44xx_clkdm = { |
@@ -573,7 +329,6 @@ static struct clockdomain mpu_44xx_clkdm = { | |||
573 | .wkdep_srcs = mpu_wkup_sleep_deps, | 329 | .wkdep_srcs = mpu_wkup_sleep_deps, |
574 | .sleepdep_srcs = mpu_wkup_sleep_deps, | 330 | .sleepdep_srcs = mpu_wkup_sleep_deps, |
575 | .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, | 331 | .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, |
576 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
577 | }; | 332 | }; |
578 | 333 | ||
579 | static struct clockdomain l3_2_44xx_clkdm = { | 334 | static struct clockdomain l3_2_44xx_clkdm = { |
@@ -584,7 +339,6 @@ static struct clockdomain l3_2_44xx_clkdm = { | |||
584 | .clkdm_offs = OMAP4430_CM2_CORE_L3_2_CDOFFS, | 339 | .clkdm_offs = OMAP4430_CM2_CORE_L3_2_CDOFFS, |
585 | .dep_bit = OMAP4430_L3_2_STATDEP_SHIFT, | 340 | .dep_bit = OMAP4430_L3_2_STATDEP_SHIFT, |
586 | .flags = CLKDM_CAN_HWSUP, | 341 | .flags = CLKDM_CAN_HWSUP, |
587 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
588 | }; | 342 | }; |
589 | 343 | ||
590 | static struct clockdomain l3_1_44xx_clkdm = { | 344 | static struct clockdomain l3_1_44xx_clkdm = { |
@@ -595,7 +349,6 @@ static struct clockdomain l3_1_44xx_clkdm = { | |||
595 | .clkdm_offs = OMAP4430_CM2_CORE_L3_1_CDOFFS, | 349 | .clkdm_offs = OMAP4430_CM2_CORE_L3_1_CDOFFS, |
596 | .dep_bit = OMAP4430_L3_1_STATDEP_SHIFT, | 350 | .dep_bit = OMAP4430_L3_1_STATDEP_SHIFT, |
597 | .flags = CLKDM_CAN_HWSUP, | 351 | .flags = CLKDM_CAN_HWSUP, |
598 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
599 | }; | 352 | }; |
600 | 353 | ||
601 | static struct clockdomain iss_44xx_clkdm = { | 354 | static struct clockdomain iss_44xx_clkdm = { |
@@ -607,7 +360,6 @@ static struct clockdomain iss_44xx_clkdm = { | |||
607 | .wkdep_srcs = iss_wkup_sleep_deps, | 360 | .wkdep_srcs = iss_wkup_sleep_deps, |
608 | .sleepdep_srcs = iss_wkup_sleep_deps, | 361 | .sleepdep_srcs = iss_wkup_sleep_deps, |
609 | .flags = CLKDM_CAN_HWSUP_SWSUP, | 362 | .flags = CLKDM_CAN_HWSUP_SWSUP, |
610 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
611 | }; | 363 | }; |
612 | 364 | ||
613 | static struct clockdomain l3_dss_44xx_clkdm = { | 365 | static struct clockdomain l3_dss_44xx_clkdm = { |
@@ -620,7 +372,6 @@ static struct clockdomain l3_dss_44xx_clkdm = { | |||
620 | .wkdep_srcs = l3_dss_wkup_sleep_deps, | 372 | .wkdep_srcs = l3_dss_wkup_sleep_deps, |
621 | .sleepdep_srcs = l3_dss_wkup_sleep_deps, | 373 | .sleepdep_srcs = l3_dss_wkup_sleep_deps, |
622 | .flags = CLKDM_CAN_HWSUP_SWSUP, | 374 | .flags = CLKDM_CAN_HWSUP_SWSUP, |
623 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
624 | }; | 375 | }; |
625 | 376 | ||
626 | static struct clockdomain l4_wkup_44xx_clkdm = { | 377 | static struct clockdomain l4_wkup_44xx_clkdm = { |
@@ -631,7 +382,6 @@ static struct clockdomain l4_wkup_44xx_clkdm = { | |||
631 | .clkdm_offs = OMAP4430_PRM_WKUP_CM_WKUP_CDOFFS, | 382 | .clkdm_offs = OMAP4430_PRM_WKUP_CM_WKUP_CDOFFS, |
632 | .dep_bit = OMAP4430_L4WKUP_STATDEP_SHIFT, | 383 | .dep_bit = OMAP4430_L4WKUP_STATDEP_SHIFT, |
633 | .flags = CLKDM_CAN_HWSUP, | 384 | .flags = CLKDM_CAN_HWSUP, |
634 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
635 | }; | 385 | }; |
636 | 386 | ||
637 | static struct clockdomain emu_sys_44xx_clkdm = { | 387 | static struct clockdomain emu_sys_44xx_clkdm = { |
@@ -641,7 +391,6 @@ static struct clockdomain emu_sys_44xx_clkdm = { | |||
641 | .cm_inst = OMAP4430_PRM_EMU_CM_INST, | 391 | .cm_inst = OMAP4430_PRM_EMU_CM_INST, |
642 | .clkdm_offs = OMAP4430_PRM_EMU_CM_EMU_CDOFFS, | 392 | .clkdm_offs = OMAP4430_PRM_EMU_CM_EMU_CDOFFS, |
643 | .flags = CLKDM_CAN_HWSUP, | 393 | .flags = CLKDM_CAN_HWSUP, |
644 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
645 | }; | 394 | }; |
646 | 395 | ||
647 | static struct clockdomain l3_dma_44xx_clkdm = { | 396 | static struct clockdomain l3_dma_44xx_clkdm = { |
@@ -653,7 +402,6 @@ static struct clockdomain l3_dma_44xx_clkdm = { | |||
653 | .wkdep_srcs = l3_dma_wkup_sleep_deps, | 402 | .wkdep_srcs = l3_dma_wkup_sleep_deps, |
654 | .sleepdep_srcs = l3_dma_wkup_sleep_deps, | 403 | .sleepdep_srcs = l3_dma_wkup_sleep_deps, |
655 | .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, | 404 | .flags = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP, |
656 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
657 | }; | 405 | }; |
658 | 406 | ||
659 | /* As clockdomains are added or removed above, this list must also be changed */ | 407 | /* As clockdomains are added or removed above, this list must also be changed */ |
@@ -685,7 +433,10 @@ static struct clockdomain *clockdomains_omap44xx[] __initdata = { | |||
685 | NULL | 433 | NULL |
686 | }; | 434 | }; |
687 | 435 | ||
436 | |||
688 | void __init omap44xx_clockdomains_init(void) | 437 | void __init omap44xx_clockdomains_init(void) |
689 | { | 438 | { |
690 | clkdm_init(clockdomains_omap44xx, NULL, &omap4_clkdm_operations); | 439 | clkdm_register_platform_funcs(&omap4_clkdm_operations); |
440 | clkdm_register_clkdms(clockdomains_omap44xx); | ||
441 | clkdm_complete_init(); | ||
691 | } | 442 | } |
diff --git a/arch/arm/mach-omap2/common.c b/arch/arm/mach-omap2/common.c index 3f20cbb9967b..de61f15c48e2 100644 --- a/arch/arm/mach-omap2/common.c +++ b/arch/arm/mach-omap2/common.c | |||
@@ -56,6 +56,12 @@ void __init omap2_set_globals_242x(void) | |||
56 | { | 56 | { |
57 | __omap2_set_globals(&omap242x_globals); | 57 | __omap2_set_globals(&omap242x_globals); |
58 | } | 58 | } |
59 | |||
60 | void __init omap242x_map_io(void) | ||
61 | { | ||
62 | omap2_set_globals_242x(); | ||
63 | omap242x_map_common_io(); | ||
64 | } | ||
59 | #endif | 65 | #endif |
60 | 66 | ||
61 | #if defined(CONFIG_SOC_OMAP2430) | 67 | #if defined(CONFIG_SOC_OMAP2430) |
@@ -74,6 +80,12 @@ void __init omap2_set_globals_243x(void) | |||
74 | { | 80 | { |
75 | __omap2_set_globals(&omap243x_globals); | 81 | __omap2_set_globals(&omap243x_globals); |
76 | } | 82 | } |
83 | |||
84 | void __init omap243x_map_io(void) | ||
85 | { | ||
86 | omap2_set_globals_243x(); | ||
87 | omap243x_map_common_io(); | ||
88 | } | ||
77 | #endif | 89 | #endif |
78 | 90 | ||
79 | #if defined(CONFIG_ARCH_OMAP3) | 91 | #if defined(CONFIG_ARCH_OMAP3) |
@@ -138,5 +150,11 @@ void __init omap2_set_globals_443x(void) | |||
138 | omap2_set_globals_control(&omap4_globals); | 150 | omap2_set_globals_control(&omap4_globals); |
139 | omap2_set_globals_prcm(&omap4_globals); | 151 | omap2_set_globals_prcm(&omap4_globals); |
140 | } | 152 | } |
153 | |||
154 | void __init omap4_map_io(void) | ||
155 | { | ||
156 | omap2_set_globals_443x(); | ||
157 | omap44xx_map_common_io(); | ||
158 | } | ||
141 | #endif | 159 | #endif |
142 | 160 | ||
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c index 1077ad663f93..10adf66be7ba 100644 --- a/arch/arm/mach-omap2/devices.c +++ b/arch/arm/mach-omap2/devices.c | |||
@@ -44,7 +44,7 @@ static int __init omap3_l3_init(void) | |||
44 | { | 44 | { |
45 | int l; | 45 | int l; |
46 | struct omap_hwmod *oh; | 46 | struct omap_hwmod *oh; |
47 | struct omap_device *od; | 47 | struct platform_device *pdev; |
48 | char oh_name[L3_MODULES_MAX_LEN]; | 48 | char oh_name[L3_MODULES_MAX_LEN]; |
49 | 49 | ||
50 | /* | 50 | /* |
@@ -61,12 +61,12 @@ static int __init omap3_l3_init(void) | |||
61 | if (!oh) | 61 | if (!oh) |
62 | pr_err("could not look up %s\n", oh_name); | 62 | pr_err("could not look up %s\n", oh_name); |
63 | 63 | ||
64 | od = omap_device_build("omap_l3_smx", 0, oh, NULL, 0, | 64 | pdev = omap_device_build("omap_l3_smx", 0, oh, NULL, 0, |
65 | NULL, 0, 0); | 65 | NULL, 0, 0); |
66 | 66 | ||
67 | WARN(IS_ERR(od), "could not build omap_device for %s\n", oh_name); | 67 | WARN(IS_ERR(pdev), "could not build omap_device for %s\n", oh_name); |
68 | 68 | ||
69 | return IS_ERR(od) ? PTR_ERR(od) : 0; | 69 | return IS_ERR(pdev) ? PTR_ERR(pdev) : 0; |
70 | } | 70 | } |
71 | postcore_initcall(omap3_l3_init); | 71 | postcore_initcall(omap3_l3_init); |
72 | 72 | ||
@@ -74,7 +74,7 @@ static int __init omap4_l3_init(void) | |||
74 | { | 74 | { |
75 | int l, i; | 75 | int l, i; |
76 | struct omap_hwmod *oh[3]; | 76 | struct omap_hwmod *oh[3]; |
77 | struct omap_device *od; | 77 | struct platform_device *pdev; |
78 | char oh_name[L3_MODULES_MAX_LEN]; | 78 | char oh_name[L3_MODULES_MAX_LEN]; |
79 | 79 | ||
80 | /* | 80 | /* |
@@ -92,12 +92,12 @@ static int __init omap4_l3_init(void) | |||
92 | pr_err("could not look up %s\n", oh_name); | 92 | pr_err("could not look up %s\n", oh_name); |
93 | } | 93 | } |
94 | 94 | ||
95 | od = omap_device_build_ss("omap_l3_noc", 0, oh, 3, NULL, | 95 | pdev = omap_device_build_ss("omap_l3_noc", 0, oh, 3, NULL, |
96 | 0, NULL, 0, 0); | 96 | 0, NULL, 0, 0); |
97 | 97 | ||
98 | WARN(IS_ERR(od), "could not build omap_device for %s\n", oh_name); | 98 | WARN(IS_ERR(pdev), "could not build omap_device for %s\n", oh_name); |
99 | 99 | ||
100 | return IS_ERR(od) ? PTR_ERR(od) : 0; | 100 | return IS_ERR(pdev) ? PTR_ERR(pdev) : 0; |
101 | } | 101 | } |
102 | postcore_initcall(omap4_l3_init); | 102 | postcore_initcall(omap4_l3_init); |
103 | 103 | ||
@@ -232,7 +232,7 @@ struct omap_device_pm_latency omap_keyboard_latency[] = { | |||
232 | int __init omap4_keyboard_init(struct omap4_keypad_platform_data | 232 | int __init omap4_keyboard_init(struct omap4_keypad_platform_data |
233 | *sdp4430_keypad_data, struct omap_board_data *bdata) | 233 | *sdp4430_keypad_data, struct omap_board_data *bdata) |
234 | { | 234 | { |
235 | struct omap_device *od; | 235 | struct platform_device *pdev; |
236 | struct omap_hwmod *oh; | 236 | struct omap_hwmod *oh; |
237 | struct omap4_keypad_platform_data *keypad_data; | 237 | struct omap4_keypad_platform_data *keypad_data; |
238 | unsigned int id = -1; | 238 | unsigned int id = -1; |
@@ -247,15 +247,15 @@ int __init omap4_keyboard_init(struct omap4_keypad_platform_data | |||
247 | 247 | ||
248 | keypad_data = sdp4430_keypad_data; | 248 | keypad_data = sdp4430_keypad_data; |
249 | 249 | ||
250 | od = omap_device_build(name, id, oh, keypad_data, | 250 | pdev = omap_device_build(name, id, oh, keypad_data, |
251 | sizeof(struct omap4_keypad_platform_data), | 251 | sizeof(struct omap4_keypad_platform_data), |
252 | omap_keyboard_latency, | 252 | omap_keyboard_latency, |
253 | ARRAY_SIZE(omap_keyboard_latency), 0); | 253 | ARRAY_SIZE(omap_keyboard_latency), 0); |
254 | 254 | ||
255 | if (IS_ERR(od)) { | 255 | if (IS_ERR(pdev)) { |
256 | WARN(1, "Can't build omap_device for %s:%s.\n", | 256 | WARN(1, "Can't build omap_device for %s:%s.\n", |
257 | name, oh->name); | 257 | name, oh->name); |
258 | return PTR_ERR(od); | 258 | return PTR_ERR(pdev); |
259 | } | 259 | } |
260 | oh->mux = omap_hwmod_mux_init(bdata->pads, bdata->pads_cnt); | 260 | oh->mux = omap_hwmod_mux_init(bdata->pads, bdata->pads_cnt); |
261 | 261 | ||
@@ -274,7 +274,7 @@ static struct omap_device_pm_latency mbox_latencies[] = { | |||
274 | static inline void omap_init_mbox(void) | 274 | static inline void omap_init_mbox(void) |
275 | { | 275 | { |
276 | struct omap_hwmod *oh; | 276 | struct omap_hwmod *oh; |
277 | struct omap_device *od; | 277 | struct platform_device *pdev; |
278 | 278 | ||
279 | oh = omap_hwmod_lookup("mailbox"); | 279 | oh = omap_hwmod_lookup("mailbox"); |
280 | if (!oh) { | 280 | if (!oh) { |
@@ -282,10 +282,10 @@ static inline void omap_init_mbox(void) | |||
282 | return; | 282 | return; |
283 | } | 283 | } |
284 | 284 | ||
285 | od = omap_device_build("omap-mailbox", -1, oh, NULL, 0, | 285 | pdev = omap_device_build("omap-mailbox", -1, oh, NULL, 0, |
286 | mbox_latencies, ARRAY_SIZE(mbox_latencies), 0); | 286 | mbox_latencies, ARRAY_SIZE(mbox_latencies), 0); |
287 | WARN(IS_ERR(od), "%s: could not build device, err %ld\n", | 287 | WARN(IS_ERR(pdev), "%s: could not build device, err %ld\n", |
288 | __func__, PTR_ERR(od)); | 288 | __func__, PTR_ERR(pdev)); |
289 | } | 289 | } |
290 | #else | 290 | #else |
291 | static inline void omap_init_mbox(void) { } | 291 | static inline void omap_init_mbox(void) { } |
@@ -344,7 +344,7 @@ struct omap_device_pm_latency omap_mcspi_latency[] = { | |||
344 | 344 | ||
345 | static int omap_mcspi_init(struct omap_hwmod *oh, void *unused) | 345 | static int omap_mcspi_init(struct omap_hwmod *oh, void *unused) |
346 | { | 346 | { |
347 | struct omap_device *od; | 347 | struct platform_device *pdev; |
348 | char *name = "omap2_mcspi"; | 348 | char *name = "omap2_mcspi"; |
349 | struct omap2_mcspi_platform_config *pdata; | 349 | struct omap2_mcspi_platform_config *pdata; |
350 | static int spi_num; | 350 | static int spi_num; |
@@ -371,10 +371,10 @@ static int omap_mcspi_init(struct omap_hwmod *oh, void *unused) | |||
371 | } | 371 | } |
372 | 372 | ||
373 | spi_num++; | 373 | spi_num++; |
374 | od = omap_device_build(name, spi_num, oh, pdata, | 374 | pdev = omap_device_build(name, spi_num, oh, pdata, |
375 | sizeof(*pdata), omap_mcspi_latency, | 375 | sizeof(*pdata), omap_mcspi_latency, |
376 | ARRAY_SIZE(omap_mcspi_latency), 0); | 376 | ARRAY_SIZE(omap_mcspi_latency), 0); |
377 | WARN(IS_ERR(od), "Can't build omap_device for %s:%s\n", | 377 | WARN(IS_ERR(pdev), "Can't build omap_device for %s:%s\n", |
378 | name, oh->name); | 378 | name, oh->name); |
379 | kfree(pdata); | 379 | kfree(pdata); |
380 | return 0; | 380 | return 0; |
@@ -709,7 +709,7 @@ static struct omap_device_pm_latency omap_wdt_latency[] = { | |||
709 | static int __init omap_init_wdt(void) | 709 | static int __init omap_init_wdt(void) |
710 | { | 710 | { |
711 | int id = -1; | 711 | int id = -1; |
712 | struct omap_device *od; | 712 | struct platform_device *pdev; |
713 | struct omap_hwmod *oh; | 713 | struct omap_hwmod *oh; |
714 | char *oh_name = "wd_timer2"; | 714 | char *oh_name = "wd_timer2"; |
715 | char *dev_name = "omap_wdt"; | 715 | char *dev_name = "omap_wdt"; |
@@ -723,10 +723,10 @@ static int __init omap_init_wdt(void) | |||
723 | return -EINVAL; | 723 | return -EINVAL; |
724 | } | 724 | } |
725 | 725 | ||
726 | od = omap_device_build(dev_name, id, oh, NULL, 0, | 726 | pdev = omap_device_build(dev_name, id, oh, NULL, 0, |
727 | omap_wdt_latency, | 727 | omap_wdt_latency, |
728 | ARRAY_SIZE(omap_wdt_latency), 0); | 728 | ARRAY_SIZE(omap_wdt_latency), 0); |
729 | WARN(IS_ERR(od), "Can't build omap_device for %s:%s.\n", | 729 | WARN(IS_ERR(pdev), "Can't build omap_device for %s:%s.\n", |
730 | dev_name, oh->name); | 730 | dev_name, oh->name); |
731 | return 0; | 731 | return 0; |
732 | } | 732 | } |
diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c index a5b7a236aa5b..18693f6de041 100644 --- a/arch/arm/mach-omap2/display.c +++ b/arch/arm/mach-omap2/display.c | |||
@@ -78,7 +78,7 @@ int __init omap_display_init(struct omap_dss_board_info *board_data) | |||
78 | { | 78 | { |
79 | int r = 0; | 79 | int r = 0; |
80 | struct omap_hwmod *oh; | 80 | struct omap_hwmod *oh; |
81 | struct omap_device *od; | 81 | struct platform_device *pdev; |
82 | int i, oh_count; | 82 | int i, oh_count; |
83 | struct omap_display_platform_data pdata; | 83 | struct omap_display_platform_data pdata; |
84 | const struct omap_dss_hwmod_data *curr_dss_hwmod; | 84 | const struct omap_dss_hwmod_data *curr_dss_hwmod; |
@@ -108,13 +108,13 @@ int __init omap_display_init(struct omap_dss_board_info *board_data) | |||
108 | return -ENODEV; | 108 | return -ENODEV; |
109 | } | 109 | } |
110 | 110 | ||
111 | od = omap_device_build(curr_dss_hwmod[i].dev_name, | 111 | pdev = omap_device_build(curr_dss_hwmod[i].dev_name, |
112 | curr_dss_hwmod[i].id, oh, &pdata, | 112 | curr_dss_hwmod[i].id, oh, &pdata, |
113 | sizeof(struct omap_display_platform_data), | 113 | sizeof(struct omap_display_platform_data), |
114 | omap_dss_latency, | 114 | omap_dss_latency, |
115 | ARRAY_SIZE(omap_dss_latency), 0); | 115 | ARRAY_SIZE(omap_dss_latency), 0); |
116 | 116 | ||
117 | if (WARN((IS_ERR(od)), "Could not build omap_device for %s\n", | 117 | if (WARN((IS_ERR(pdev)), "Could not build omap_device for %s\n", |
118 | curr_dss_hwmod[i].oh_name)) | 118 | curr_dss_hwmod[i].oh_name)) |
119 | return -ENODEV; | 119 | return -ENODEV; |
120 | } | 120 | } |
diff --git a/arch/arm/mach-omap2/dma.c b/arch/arm/mach-omap2/dma.c index c9ff0e79703d..ae8cb3fb1830 100644 --- a/arch/arm/mach-omap2/dma.c +++ b/arch/arm/mach-omap2/dma.c | |||
@@ -228,7 +228,7 @@ static u32 configure_dma_errata(void) | |||
228 | /* One time initializations */ | 228 | /* One time initializations */ |
229 | static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) | 229 | static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) |
230 | { | 230 | { |
231 | struct omap_device *od; | 231 | struct platform_device *pdev; |
232 | struct omap_system_dma_plat_info *p; | 232 | struct omap_system_dma_plat_info *p; |
233 | struct resource *mem; | 233 | struct resource *mem; |
234 | char *name = "omap_dma_system"; | 234 | char *name = "omap_dma_system"; |
@@ -258,23 +258,23 @@ static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) | |||
258 | 258 | ||
259 | p->errata = configure_dma_errata(); | 259 | p->errata = configure_dma_errata(); |
260 | 260 | ||
261 | od = omap_device_build(name, 0, oh, p, sizeof(*p), | 261 | pdev = omap_device_build(name, 0, oh, p, sizeof(*p), |
262 | omap2_dma_latency, ARRAY_SIZE(omap2_dma_latency), 0); | 262 | omap2_dma_latency, ARRAY_SIZE(omap2_dma_latency), 0); |
263 | kfree(p); | 263 | kfree(p); |
264 | if (IS_ERR(od)) { | 264 | if (IS_ERR(pdev)) { |
265 | pr_err("%s: Can't build omap_device for %s:%s.\n", | 265 | pr_err("%s: Can't build omap_device for %s:%s.\n", |
266 | __func__, name, oh->name); | 266 | __func__, name, oh->name); |
267 | return PTR_ERR(od); | 267 | return PTR_ERR(pdev); |
268 | } | 268 | } |
269 | 269 | ||
270 | mem = platform_get_resource(&od->pdev, IORESOURCE_MEM, 0); | 270 | mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
271 | if (!mem) { | 271 | if (!mem) { |
272 | dev_err(&od->pdev.dev, "%s: no mem resource\n", __func__); | 272 | dev_err(&pdev->dev, "%s: no mem resource\n", __func__); |
273 | return -EINVAL; | 273 | return -EINVAL; |
274 | } | 274 | } |
275 | dma_base = ioremap(mem->start, resource_size(mem)); | 275 | dma_base = ioremap(mem->start, resource_size(mem)); |
276 | if (!dma_base) { | 276 | if (!dma_base) { |
277 | dev_err(&od->pdev.dev, "%s: ioremap fail\n", __func__); | 277 | dev_err(&pdev->dev, "%s: ioremap fail\n", __func__); |
278 | return -ENOMEM; | 278 | return -ENOMEM; |
279 | } | 279 | } |
280 | 280 | ||
@@ -283,7 +283,7 @@ static int __init omap2_system_dma_init_dev(struct omap_hwmod *oh, void *unused) | |||
283 | (d->lch_count), GFP_KERNEL); | 283 | (d->lch_count), GFP_KERNEL); |
284 | 284 | ||
285 | if (!d->chan) { | 285 | if (!d->chan) { |
286 | dev_err(&od->pdev.dev, "%s: kzalloc fail\n", __func__); | 286 | dev_err(&pdev->dev, "%s: kzalloc fail\n", __func__); |
287 | return -ENOMEM; | 287 | return -ENOMEM; |
288 | } | 288 | } |
289 | return 0; | 289 | return 0; |
diff --git a/arch/arm/mach-omap2/gpio.c b/arch/arm/mach-omap2/gpio.c index 2765cdc3152d..652ccc574196 100644 --- a/arch/arm/mach-omap2/gpio.c +++ b/arch/arm/mach-omap2/gpio.c | |||
@@ -34,7 +34,7 @@ static struct omap_device_pm_latency omap_gpio_latency[] = { | |||
34 | 34 | ||
35 | static int omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused) | 35 | static int omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused) |
36 | { | 36 | { |
37 | struct omap_device *od; | 37 | struct platform_device *pdev; |
38 | struct omap_gpio_platform_data *pdata; | 38 | struct omap_gpio_platform_data *pdata; |
39 | struct omap_gpio_dev_attr *dev_attr; | 39 | struct omap_gpio_dev_attr *dev_attr; |
40 | char *name = "omap_gpio"; | 40 | char *name = "omap_gpio"; |
@@ -107,19 +107,19 @@ static int omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused) | |||
107 | return -EINVAL; | 107 | return -EINVAL; |
108 | } | 108 | } |
109 | 109 | ||
110 | od = omap_device_build(name, id - 1, oh, pdata, | 110 | pdev = omap_device_build(name, id - 1, oh, pdata, |
111 | sizeof(*pdata), omap_gpio_latency, | 111 | sizeof(*pdata), omap_gpio_latency, |
112 | ARRAY_SIZE(omap_gpio_latency), | 112 | ARRAY_SIZE(omap_gpio_latency), |
113 | false); | 113 | false); |
114 | kfree(pdata); | 114 | kfree(pdata); |
115 | 115 | ||
116 | if (IS_ERR(od)) { | 116 | if (IS_ERR(pdev)) { |
117 | WARN(1, "Can't build omap_device for %s:%s.\n", | 117 | WARN(1, "Can't build omap_device for %s:%s.\n", |
118 | name, oh->name); | 118 | name, oh->name); |
119 | return PTR_ERR(od); | 119 | return PTR_ERR(pdev); |
120 | } | 120 | } |
121 | 121 | ||
122 | omap_device_disable_idle_on_suspend(od); | 122 | omap_device_disable_idle_on_suspend(pdev); |
123 | 123 | ||
124 | gpio_bank_count++; | 124 | gpio_bank_count++; |
125 | return 0; | 125 | return 0; |
diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c index a9b45c76e1d3..cc8791952a05 100644 --- a/arch/arm/mach-omap2/hsmmc.c +++ b/arch/arm/mach-omap2/hsmmc.c | |||
@@ -430,7 +430,7 @@ static struct omap_device_pm_latency omap_hsmmc_latency[] = { | |||
430 | void __init omap_init_hsmmc(struct omap2_hsmmc_info *hsmmcinfo, int ctrl_nr) | 430 | void __init omap_init_hsmmc(struct omap2_hsmmc_info *hsmmcinfo, int ctrl_nr) |
431 | { | 431 | { |
432 | struct omap_hwmod *oh; | 432 | struct omap_hwmod *oh; |
433 | struct omap_device *od; | 433 | struct platform_device *pdev; |
434 | struct omap_device_pm_latency *ohl; | 434 | struct omap_device_pm_latency *ohl; |
435 | char oh_name[MAX_OMAP_MMC_HWMOD_NAME_LEN]; | 435 | char oh_name[MAX_OMAP_MMC_HWMOD_NAME_LEN]; |
436 | struct omap_mmc_platform_data *mmc_data; | 436 | struct omap_mmc_platform_data *mmc_data; |
@@ -471,9 +471,9 @@ void __init omap_init_hsmmc(struct omap2_hsmmc_info *hsmmcinfo, int ctrl_nr) | |||
471 | mmc_data->controller_flags = mmc_dev_attr->flags; | 471 | mmc_data->controller_flags = mmc_dev_attr->flags; |
472 | } | 472 | } |
473 | 473 | ||
474 | od = omap_device_build(name, ctrl_nr - 1, oh, mmc_data, | 474 | pdev = omap_device_build(name, ctrl_nr - 1, oh, mmc_data, |
475 | sizeof(struct omap_mmc_platform_data), ohl, ohl_cnt, false); | 475 | sizeof(struct omap_mmc_platform_data), ohl, ohl_cnt, false); |
476 | if (IS_ERR(od)) { | 476 | if (IS_ERR(pdev)) { |
477 | WARN(1, "Can't build omap_device for %s:%s.\n", name, oh->name); | 477 | WARN(1, "Can't build omap_device for %s:%s.\n", name, oh->name); |
478 | kfree(mmc_data->slots[0].name); | 478 | kfree(mmc_data->slots[0].name); |
479 | goto done; | 479 | goto done; |
@@ -482,7 +482,7 @@ void __init omap_init_hsmmc(struct omap2_hsmmc_info *hsmmcinfo, int ctrl_nr) | |||
482 | * return device handle to board setup code | 482 | * return device handle to board setup code |
483 | * required to populate for regulator framework structure | 483 | * required to populate for regulator framework structure |
484 | */ | 484 | */ |
485 | hsmmcinfo->dev = &od->pdev.dev; | 485 | hsmmcinfo->dev = &pdev->dev; |
486 | 486 | ||
487 | done: | 487 | done: |
488 | kfree(mmc_data); | 488 | kfree(mmc_data); |
diff --git a/arch/arm/mach-omap2/hwspinlock.c b/arch/arm/mach-omap2/hwspinlock.c index 06d4a80660a5..0b3ae9d9c3b3 100644 --- a/arch/arm/mach-omap2/hwspinlock.c +++ b/arch/arm/mach-omap2/hwspinlock.c | |||
@@ -35,7 +35,7 @@ int __init hwspinlocks_init(void) | |||
35 | { | 35 | { |
36 | int retval = 0; | 36 | int retval = 0; |
37 | struct omap_hwmod *oh; | 37 | struct omap_hwmod *oh; |
38 | struct omap_device *od; | 38 | struct platform_device *pdev; |
39 | const char *oh_name = "spinlock"; | 39 | const char *oh_name = "spinlock"; |
40 | const char *dev_name = "omap_hwspinlock"; | 40 | const char *dev_name = "omap_hwspinlock"; |
41 | 41 | ||
@@ -48,13 +48,13 @@ int __init hwspinlocks_init(void) | |||
48 | if (oh == NULL) | 48 | if (oh == NULL) |
49 | return -EINVAL; | 49 | return -EINVAL; |
50 | 50 | ||
51 | od = omap_device_build(dev_name, 0, oh, NULL, 0, | 51 | pdev = omap_device_build(dev_name, 0, oh, NULL, 0, |
52 | omap_spinlock_latency, | 52 | omap_spinlock_latency, |
53 | ARRAY_SIZE(omap_spinlock_latency), false); | 53 | ARRAY_SIZE(omap_spinlock_latency), false); |
54 | if (IS_ERR(od)) { | 54 | if (IS_ERR(pdev)) { |
55 | pr_err("Can't build omap_device for %s:%s\n", dev_name, | 55 | pr_err("Can't build omap_device for %s:%s\n", dev_name, |
56 | oh_name); | 56 | oh_name); |
57 | retval = PTR_ERR(od); | 57 | retval = PTR_ERR(pdev); |
58 | } | 58 | } |
59 | 59 | ||
60 | return retval; | 60 | return retval; |
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index 37efb8696927..d27daf921c7e 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c | |||
@@ -28,7 +28,6 @@ | |||
28 | 28 | ||
29 | #include "control.h" | 29 | #include "control.h" |
30 | 30 | ||
31 | static struct omap_chip_id omap_chip; | ||
32 | static unsigned int omap_revision; | 31 | static unsigned int omap_revision; |
33 | 32 | ||
34 | u32 omap_features; | 33 | u32 omap_features; |
@@ -39,19 +38,6 @@ unsigned int omap_rev(void) | |||
39 | } | 38 | } |
40 | EXPORT_SYMBOL(omap_rev); | 39 | EXPORT_SYMBOL(omap_rev); |
41 | 40 | ||
42 | /** | ||
43 | * omap_chip_is - test whether currently running OMAP matches a chip type | ||
44 | * @oc: omap_chip_t to test against | ||
45 | * | ||
46 | * Test whether the currently-running OMAP chip matches the supplied | ||
47 | * chip type 'oc'. Returns 1 upon a match; 0 upon failure. | ||
48 | */ | ||
49 | int omap_chip_is(struct omap_chip_id oci) | ||
50 | { | ||
51 | return (oci.oc & omap_chip.oc) ? 1 : 0; | ||
52 | } | ||
53 | EXPORT_SYMBOL(omap_chip_is); | ||
54 | |||
55 | int omap_type(void) | 41 | int omap_type(void) |
56 | { | 42 | { |
57 | u32 val = 0; | 43 | u32 val = 0; |
@@ -242,14 +228,12 @@ static void __init ti816x_check_features(void) | |||
242 | omap_features = OMAP3_HAS_NEON; | 228 | omap_features = OMAP3_HAS_NEON; |
243 | } | 229 | } |
244 | 230 | ||
245 | static void __init omap3_check_revision(void) | 231 | static void __init omap3_check_revision(const char **cpu_rev) |
246 | { | 232 | { |
247 | u32 cpuid, idcode; | 233 | u32 cpuid, idcode; |
248 | u16 hawkeye; | 234 | u16 hawkeye; |
249 | u8 rev; | 235 | u8 rev; |
250 | 236 | ||
251 | omap_chip.oc = CHIP_IS_OMAP3430; | ||
252 | |||
253 | /* | 237 | /* |
254 | * We cannot access revision registers on ES1.0. | 238 | * We cannot access revision registers on ES1.0. |
255 | * If the processor type is Cortex-A8 and the revision is 0x0 | 239 | * If the processor type is Cortex-A8 and the revision is 0x0 |
@@ -258,7 +242,7 @@ static void __init omap3_check_revision(void) | |||
258 | cpuid = read_cpuid(CPUID_ID); | 242 | cpuid = read_cpuid(CPUID_ID); |
259 | if ((((cpuid >> 4) & 0xfff) == 0xc08) && ((cpuid & 0xf) == 0x0)) { | 243 | if ((((cpuid >> 4) & 0xfff) == 0xc08) && ((cpuid & 0xf) == 0x0)) { |
260 | omap_revision = OMAP3430_REV_ES1_0; | 244 | omap_revision = OMAP3430_REV_ES1_0; |
261 | omap_chip.oc |= CHIP_IS_OMAP3430ES1; | 245 | *cpu_rev = "1.0"; |
262 | return; | 246 | return; |
263 | } | 247 | } |
264 | 248 | ||
@@ -279,77 +263,85 @@ static void __init omap3_check_revision(void) | |||
279 | case 0: /* Take care of early samples */ | 263 | case 0: /* Take care of early samples */ |
280 | case 1: | 264 | case 1: |
281 | omap_revision = OMAP3430_REV_ES2_0; | 265 | omap_revision = OMAP3430_REV_ES2_0; |
282 | omap_chip.oc |= CHIP_IS_OMAP3430ES2; | 266 | *cpu_rev = "2.0"; |
283 | break; | 267 | break; |
284 | case 2: | 268 | case 2: |
285 | omap_revision = OMAP3430_REV_ES2_1; | 269 | omap_revision = OMAP3430_REV_ES2_1; |
286 | omap_chip.oc |= CHIP_IS_OMAP3430ES2; | 270 | *cpu_rev = "2.1"; |
287 | break; | 271 | break; |
288 | case 3: | 272 | case 3: |
289 | omap_revision = OMAP3430_REV_ES3_0; | 273 | omap_revision = OMAP3430_REV_ES3_0; |
290 | omap_chip.oc |= CHIP_IS_OMAP3430ES3_0; | 274 | *cpu_rev = "3.0"; |
291 | break; | 275 | break; |
292 | case 4: | 276 | case 4: |
293 | omap_revision = OMAP3430_REV_ES3_1; | 277 | omap_revision = OMAP3430_REV_ES3_1; |
294 | omap_chip.oc |= CHIP_IS_OMAP3430ES3_1; | 278 | *cpu_rev = "3.1"; |
295 | break; | 279 | break; |
296 | case 7: | 280 | case 7: |
297 | /* FALLTHROUGH */ | 281 | /* FALLTHROUGH */ |
298 | default: | 282 | default: |
299 | /* Use the latest known revision as default */ | 283 | /* Use the latest known revision as default */ |
300 | omap_revision = OMAP3430_REV_ES3_1_2; | 284 | omap_revision = OMAP3430_REV_ES3_1_2; |
301 | 285 | *cpu_rev = "3.1.2"; | |
302 | /* REVISIT: Add CHIP_IS_OMAP3430ES3_1_2? */ | ||
303 | omap_chip.oc |= CHIP_IS_OMAP3430ES3_1; | ||
304 | } | 286 | } |
305 | break; | 287 | break; |
306 | case 0xb868: | 288 | case 0xb868: |
307 | /* Handle OMAP35xx/AM35xx devices | 289 | /* |
290 | * Handle OMAP/AM 3505/3517 devices | ||
308 | * | 291 | * |
309 | * Set the device to be OMAP3505 here. Actual device | 292 | * Set the device to be OMAP3517 here. Actual device |
310 | * is identified later based on the features. | 293 | * is identified later based on the features. |
311 | * | ||
312 | * REVISIT: AM3505/AM3517 should have their own CHIP_IS | ||
313 | */ | 294 | */ |
314 | omap_revision = OMAP3505_REV(rev); | 295 | switch (rev) { |
315 | omap_chip.oc |= CHIP_IS_OMAP3430ES3_1; | 296 | case 0: |
297 | omap_revision = OMAP3517_REV_ES1_0; | ||
298 | *cpu_rev = "1.0"; | ||
299 | break; | ||
300 | case 1: | ||
301 | /* FALLTHROUGH */ | ||
302 | default: | ||
303 | omap_revision = OMAP3517_REV_ES1_1; | ||
304 | *cpu_rev = "1.1"; | ||
305 | } | ||
316 | break; | 306 | break; |
317 | case 0xb891: | 307 | case 0xb891: |
318 | /* Handle 36xx devices */ | 308 | /* Handle 36xx devices */ |
319 | omap_chip.oc |= CHIP_IS_OMAP3630ES1; | ||
320 | 309 | ||
321 | switch(rev) { | 310 | switch(rev) { |
322 | case 0: /* Take care of early samples */ | 311 | case 0: /* Take care of early samples */ |
323 | omap_revision = OMAP3630_REV_ES1_0; | 312 | omap_revision = OMAP3630_REV_ES1_0; |
313 | *cpu_rev = "1.0"; | ||
324 | break; | 314 | break; |
325 | case 1: | 315 | case 1: |
326 | omap_revision = OMAP3630_REV_ES1_1; | 316 | omap_revision = OMAP3630_REV_ES1_1; |
327 | omap_chip.oc |= CHIP_IS_OMAP3630ES1_1; | 317 | *cpu_rev = "1.1"; |
328 | break; | 318 | break; |
329 | case 2: | 319 | case 2: |
320 | /* FALLTHROUGH */ | ||
330 | default: | 321 | default: |
331 | omap_revision = OMAP3630_REV_ES1_2; | 322 | omap_revision = OMAP3630_REV_ES1_2; |
332 | omap_chip.oc |= CHIP_IS_OMAP3630ES1_2; | 323 | *cpu_rev = "1.2"; |
333 | } | 324 | } |
334 | break; | 325 | break; |
335 | case 0xb81e: | 326 | case 0xb81e: |
336 | omap_chip.oc = CHIP_IS_TI816X; | ||
337 | |||
338 | switch (rev) { | 327 | switch (rev) { |
339 | case 0: | 328 | case 0: |
340 | omap_revision = TI8168_REV_ES1_0; | 329 | omap_revision = TI8168_REV_ES1_0; |
330 | *cpu_rev = "1.0"; | ||
341 | break; | 331 | break; |
342 | case 1: | 332 | case 1: |
333 | /* FALLTHROUGH */ | ||
334 | default: | ||
343 | omap_revision = TI8168_REV_ES1_1; | 335 | omap_revision = TI8168_REV_ES1_1; |
336 | *cpu_rev = "1.1"; | ||
344 | break; | 337 | break; |
345 | default: | ||
346 | omap_revision = TI8168_REV_ES1_1; | ||
347 | } | 338 | } |
348 | break; | 339 | break; |
349 | default: | 340 | default: |
350 | /* Unknown default to latest silicon rev as default*/ | 341 | /* Unknown default to latest silicon rev as default */ |
351 | omap_revision = OMAP3630_REV_ES1_2; | 342 | omap_revision = OMAP3630_REV_ES1_2; |
352 | omap_chip.oc |= CHIP_IS_OMAP3630ES1_2; | 343 | *cpu_rev = "1.2"; |
344 | pr_warn("Warning: unknown chip type; assuming OMAP3630ES1.2\n"); | ||
353 | } | 345 | } |
354 | } | 346 | } |
355 | 347 | ||
@@ -382,24 +374,20 @@ static void __init omap4_check_revision(void) | |||
382 | switch (rev) { | 374 | switch (rev) { |
383 | case 0: | 375 | case 0: |
384 | omap_revision = OMAP4430_REV_ES1_0; | 376 | omap_revision = OMAP4430_REV_ES1_0; |
385 | omap_chip.oc |= CHIP_IS_OMAP4430ES1; | ||
386 | break; | 377 | break; |
387 | case 1: | 378 | case 1: |
388 | default: | 379 | default: |
389 | omap_revision = OMAP4430_REV_ES2_0; | 380 | omap_revision = OMAP4430_REV_ES2_0; |
390 | omap_chip.oc |= CHIP_IS_OMAP4430ES2; | ||
391 | } | 381 | } |
392 | break; | 382 | break; |
393 | case 0xb95c: | 383 | case 0xb95c: |
394 | switch (rev) { | 384 | switch (rev) { |
395 | case 3: | 385 | case 3: |
396 | omap_revision = OMAP4430_REV_ES2_1; | 386 | omap_revision = OMAP4430_REV_ES2_1; |
397 | omap_chip.oc |= CHIP_IS_OMAP4430ES2_1; | ||
398 | break; | 387 | break; |
399 | case 4: | 388 | case 4: |
400 | default: | 389 | default: |
401 | omap_revision = OMAP4430_REV_ES2_2; | 390 | omap_revision = OMAP4430_REV_ES2_2; |
402 | omap_chip.oc |= CHIP_IS_OMAP4430ES2_2; | ||
403 | } | 391 | } |
404 | break; | 392 | break; |
405 | case 0xb94e: | 393 | case 0xb94e: |
@@ -407,14 +395,12 @@ static void __init omap4_check_revision(void) | |||
407 | case 0: | 395 | case 0: |
408 | default: | 396 | default: |
409 | omap_revision = OMAP4460_REV_ES1_0; | 397 | omap_revision = OMAP4460_REV_ES1_0; |
410 | omap_chip.oc |= CHIP_IS_OMAP4460ES1_0; | ||
411 | break; | 398 | break; |
412 | } | 399 | } |
413 | break; | 400 | break; |
414 | default: | 401 | default: |
415 | /* Unknown default to latest silicon rev as default */ | 402 | /* Unknown default to latest silicon rev as default */ |
416 | omap_revision = OMAP4430_REV_ES2_2; | 403 | omap_revision = OMAP4430_REV_ES2_2; |
417 | omap_chip.oc |= CHIP_IS_OMAP4430ES2_2; | ||
418 | } | 404 | } |
419 | 405 | ||
420 | pr_info("OMAP%04x ES%d.%d\n", omap_rev() >> 16, | 406 | pr_info("OMAP%04x ES%d.%d\n", omap_rev() >> 16, |
@@ -425,94 +411,33 @@ static void __init omap4_check_revision(void) | |||
425 | if (omap3_has_ ##feat()) \ | 411 | if (omap3_has_ ##feat()) \ |
426 | printk(#feat" "); | 412 | printk(#feat" "); |
427 | 413 | ||
428 | static void __init omap3_cpuinfo(void) | 414 | static void __init omap3_cpuinfo(const char *cpu_rev) |
429 | { | 415 | { |
430 | u8 rev = GET_OMAP_REVISION(); | 416 | const char *cpu_name; |
431 | char cpu_name[16], cpu_rev[16]; | ||
432 | 417 | ||
433 | /* OMAP3430 and OMAP3530 are assumed to be same. | 418 | /* |
419 | * OMAP3430 and OMAP3530 are assumed to be same. | ||
434 | * | 420 | * |
435 | * OMAP3525, OMAP3515 and OMAP3503 can be detected only based | 421 | * OMAP3525, OMAP3515 and OMAP3503 can be detected only based |
436 | * on available features. Upon detection, update the CPU id | 422 | * on available features. Upon detection, update the CPU id |
437 | * and CPU class bits. | 423 | * and CPU class bits. |
438 | */ | 424 | */ |
439 | if (cpu_is_omap3630()) { | 425 | if (cpu_is_omap3630()) { |
440 | strcpy(cpu_name, "OMAP3630"); | 426 | cpu_name = "OMAP3630"; |
441 | } else if (cpu_is_omap3505()) { | 427 | } else if (cpu_is_omap3517()) { |
442 | /* | 428 | /* AM35xx devices */ |
443 | * AM35xx devices | 429 | cpu_name = (omap3_has_sgx()) ? "AM3517" : "AM3505"; |
444 | */ | ||
445 | if (omap3_has_sgx()) { | ||
446 | omap_revision = OMAP3517_REV(rev); | ||
447 | strcpy(cpu_name, "AM3517"); | ||
448 | } else { | ||
449 | /* Already set in omap3_check_revision() */ | ||
450 | strcpy(cpu_name, "AM3505"); | ||
451 | } | ||
452 | } else if (cpu_is_ti816x()) { | 430 | } else if (cpu_is_ti816x()) { |
453 | strcpy(cpu_name, "TI816X"); | 431 | cpu_name = "TI816X"; |
454 | } else if (omap3_has_iva() && omap3_has_sgx()) { | 432 | } else if (omap3_has_iva() && omap3_has_sgx()) { |
455 | /* OMAP3430, OMAP3525, OMAP3515, OMAP3503 devices */ | 433 | /* OMAP3430, OMAP3525, OMAP3515, OMAP3503 devices */ |
456 | strcpy(cpu_name, "OMAP3430/3530"); | 434 | cpu_name = "OMAP3430/3530"; |
457 | } else if (omap3_has_iva()) { | 435 | } else if (omap3_has_iva()) { |
458 | omap_revision = OMAP3525_REV(rev); | 436 | cpu_name = "OMAP3525"; |
459 | strcpy(cpu_name, "OMAP3525"); | ||
460 | } else if (omap3_has_sgx()) { | 437 | } else if (omap3_has_sgx()) { |
461 | omap_revision = OMAP3515_REV(rev); | 438 | cpu_name = "OMAP3515"; |
462 | strcpy(cpu_name, "OMAP3515"); | ||
463 | } else { | 439 | } else { |
464 | omap_revision = OMAP3503_REV(rev); | 440 | cpu_name = "OMAP3503"; |
465 | strcpy(cpu_name, "OMAP3503"); | ||
466 | } | ||
467 | |||
468 | if (cpu_is_omap3630() || cpu_is_ti816x()) { | ||
469 | switch (rev) { | ||
470 | case OMAP_REVBITS_00: | ||
471 | strcpy(cpu_rev, "1.0"); | ||
472 | break; | ||
473 | case OMAP_REVBITS_01: | ||
474 | strcpy(cpu_rev, "1.1"); | ||
475 | break; | ||
476 | case OMAP_REVBITS_02: | ||
477 | /* FALLTHROUGH */ | ||
478 | default: | ||
479 | /* Use the latest known revision as default */ | ||
480 | strcpy(cpu_rev, "1.2"); | ||
481 | } | ||
482 | } else if (cpu_is_omap3505() || cpu_is_omap3517()) { | ||
483 | switch (rev) { | ||
484 | case OMAP_REVBITS_00: | ||
485 | strcpy(cpu_rev, "1.0"); | ||
486 | break; | ||
487 | case OMAP_REVBITS_01: | ||
488 | /* FALLTHROUGH */ | ||
489 | default: | ||
490 | /* Use the latest known revision as default */ | ||
491 | strcpy(cpu_rev, "1.1"); | ||
492 | } | ||
493 | } else { | ||
494 | switch (rev) { | ||
495 | case OMAP_REVBITS_00: | ||
496 | strcpy(cpu_rev, "1.0"); | ||
497 | break; | ||
498 | case OMAP_REVBITS_01: | ||
499 | strcpy(cpu_rev, "2.0"); | ||
500 | break; | ||
501 | case OMAP_REVBITS_02: | ||
502 | strcpy(cpu_rev, "2.1"); | ||
503 | break; | ||
504 | case OMAP_REVBITS_03: | ||
505 | strcpy(cpu_rev, "3.0"); | ||
506 | break; | ||
507 | case OMAP_REVBITS_04: | ||
508 | strcpy(cpu_rev, "3.1"); | ||
509 | break; | ||
510 | case OMAP_REVBITS_05: | ||
511 | /* FALLTHROUGH */ | ||
512 | default: | ||
513 | /* Use the latest known revision as default */ | ||
514 | strcpy(cpu_rev, "3.1.2"); | ||
515 | } | ||
516 | } | 441 | } |
517 | 442 | ||
518 | /* Print verbose information */ | 443 | /* Print verbose information */ |
@@ -533,6 +458,8 @@ static void __init omap3_cpuinfo(void) | |||
533 | */ | 458 | */ |
534 | void __init omap2_check_revision(void) | 459 | void __init omap2_check_revision(void) |
535 | { | 460 | { |
461 | const char *cpu_rev; | ||
462 | |||
536 | /* | 463 | /* |
537 | * At this point we have an idea about the processor revision set | 464 | * At this point we have an idea about the processor revision set |
538 | * earlier with omap2_set_globals_tap(). | 465 | * earlier with omap2_set_globals_tap(). |
@@ -540,7 +467,7 @@ void __init omap2_check_revision(void) | |||
540 | if (cpu_is_omap24xx()) { | 467 | if (cpu_is_omap24xx()) { |
541 | omap24xx_check_revision(); | 468 | omap24xx_check_revision(); |
542 | } else if (cpu_is_omap34xx()) { | 469 | } else if (cpu_is_omap34xx()) { |
543 | omap3_check_revision(); | 470 | omap3_check_revision(&cpu_rev); |
544 | 471 | ||
545 | /* TI816X doesn't have feature register */ | 472 | /* TI816X doesn't have feature register */ |
546 | if (!cpu_is_ti816x()) | 473 | if (!cpu_is_ti816x()) |
@@ -548,7 +475,7 @@ void __init omap2_check_revision(void) | |||
548 | else | 475 | else |
549 | ti816x_check_features(); | 476 | ti816x_check_features(); |
550 | 477 | ||
551 | omap3_cpuinfo(); | 478 | omap3_cpuinfo(cpu_rev); |
552 | return; | 479 | return; |
553 | } else if (cpu_is_omap44xx()) { | 480 | } else if (cpu_is_omap44xx()) { |
554 | omap4_check_revision(); | 481 | omap4_check_revision(); |
@@ -557,22 +484,6 @@ void __init omap2_check_revision(void) | |||
557 | } else { | 484 | } else { |
558 | pr_err("OMAP revision unknown, please fix!\n"); | 485 | pr_err("OMAP revision unknown, please fix!\n"); |
559 | } | 486 | } |
560 | |||
561 | /* | ||
562 | * OK, now we know the exact revision. Initialize omap_chip bits | ||
563 | * for powerdowmain and clockdomain code. | ||
564 | */ | ||
565 | if (cpu_is_omap243x()) { | ||
566 | /* Currently only supports 2430ES2.1 and 2430-all */ | ||
567 | omap_chip.oc |= CHIP_IS_OMAP2430; | ||
568 | return; | ||
569 | } else if (cpu_is_omap242x()) { | ||
570 | /* Currently only supports 2420ES2.1.1 and 2420-all */ | ||
571 | omap_chip.oc |= CHIP_IS_OMAP2420; | ||
572 | return; | ||
573 | } | ||
574 | |||
575 | pr_err("Uninitialized omap_chip, please fix!\n"); | ||
576 | } | 487 | } |
577 | 488 | ||
578 | /* | 489 | /* |
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index 2ce1ce6fb4db..c14308caf9d3 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c | |||
@@ -16,7 +16,6 @@ | |||
16 | * it under the terms of the GNU General Public License version 2 as | 16 | * it under the terms of the GNU General Public License version 2 as |
17 | * published by the Free Software Foundation. | 17 | * published by the Free Software Foundation. |
18 | */ | 18 | */ |
19 | |||
20 | #include <linux/module.h> | 19 | #include <linux/module.h> |
21 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
22 | #include <linux/init.h> | 21 | #include <linux/init.h> |
@@ -250,6 +249,7 @@ static void __init _omap2_map_common_io(void) | |||
250 | 249 | ||
251 | omap2_check_revision(); | 250 | omap2_check_revision(); |
252 | omap_sram_init(); | 251 | omap_sram_init(); |
252 | omap_init_consistent_dma_size(); | ||
253 | } | 253 | } |
254 | 254 | ||
255 | #ifdef CONFIG_SOC_OMAP2420 | 255 | #ifdef CONFIG_SOC_OMAP2420 |
@@ -341,12 +341,12 @@ void __init omap2_init_common_infrastructure(void) | |||
341 | u8 postsetup_state; | 341 | u8 postsetup_state; |
342 | 342 | ||
343 | if (cpu_is_omap242x()) { | 343 | if (cpu_is_omap242x()) { |
344 | omap2xxx_powerdomains_init(); | 344 | omap242x_powerdomains_init(); |
345 | omap2xxx_clockdomains_init(); | 345 | omap242x_clockdomains_init(); |
346 | omap2420_hwmod_init(); | 346 | omap2420_hwmod_init(); |
347 | } else if (cpu_is_omap243x()) { | 347 | } else if (cpu_is_omap243x()) { |
348 | omap2xxx_powerdomains_init(); | 348 | omap243x_powerdomains_init(); |
349 | omap2xxx_clockdomains_init(); | 349 | omap243x_clockdomains_init(); |
350 | omap2430_hwmod_init(); | 350 | omap2430_hwmod_init(); |
351 | } else if (cpu_is_omap34xx()) { | 351 | } else if (cpu_is_omap34xx()) { |
352 | omap3xxx_powerdomains_init(); | 352 | omap3xxx_powerdomains_init(); |
@@ -376,7 +376,7 @@ void __init omap2_init_common_infrastructure(void) | |||
376 | * omap_hwmod_late_init(), so boards that desire full watchdog | 376 | * omap_hwmod_late_init(), so boards that desire full watchdog |
377 | * coverage of kernel initialization can reprogram the | 377 | * coverage of kernel initialization can reprogram the |
378 | * postsetup_state between the calls to | 378 | * postsetup_state between the calls to |
379 | * omap2_init_common_infra() and omap2_init_common_devices(). | 379 | * omap2_init_common_infra() and omap_sdrc_init(). |
380 | * | 380 | * |
381 | * XXX ideally we could detect whether the MPU WDT was currently | 381 | * XXX ideally we could detect whether the MPU WDT was currently |
382 | * enabled here and make this conditional | 382 | * enabled here and make this conditional |
@@ -400,7 +400,47 @@ void __init omap2_init_common_infrastructure(void) | |||
400 | pr_err("Could not init clock framework - unknown SoC\n"); | 400 | pr_err("Could not init clock framework - unknown SoC\n"); |
401 | } | 401 | } |
402 | 402 | ||
403 | void __init omap2_init_common_devices(struct omap_sdrc_params *sdrc_cs0, | 403 | void __init omap2420_init_early(void) |
404 | { | ||
405 | omap2_init_common_infrastructure(); | ||
406 | } | ||
407 | |||
408 | void __init omap2430_init_early(void) | ||
409 | { | ||
410 | omap2_init_common_infrastructure(); | ||
411 | } | ||
412 | |||
413 | void __init omap3430_init_early(void) | ||
414 | { | ||
415 | omap2_init_common_infrastructure(); | ||
416 | } | ||
417 | |||
418 | void __init omap35xx_init_early(void) | ||
419 | { | ||
420 | omap2_init_common_infrastructure(); | ||
421 | } | ||
422 | |||
423 | void __init omap3630_init_early(void) | ||
424 | { | ||
425 | omap2_init_common_infrastructure(); | ||
426 | } | ||
427 | |||
428 | void __init am35xx_init_early(void) | ||
429 | { | ||
430 | omap2_init_common_infrastructure(); | ||
431 | } | ||
432 | |||
433 | void __init ti816x_init_early(void) | ||
434 | { | ||
435 | omap2_init_common_infrastructure(); | ||
436 | } | ||
437 | |||
438 | void __init omap4430_init_early(void) | ||
439 | { | ||
440 | omap2_init_common_infrastructure(); | ||
441 | } | ||
442 | |||
443 | void __init omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0, | ||
404 | struct omap_sdrc_params *sdrc_cs1) | 444 | struct omap_sdrc_params *sdrc_cs1) |
405 | { | 445 | { |
406 | if (cpu_is_omap24xx() || omap3_has_sdrc()) { | 446 | if (cpu_is_omap24xx() || omap3_has_sdrc()) { |
diff --git a/arch/arm/mach-omap2/mcbsp.c b/arch/arm/mach-omap2/mcbsp.c index 4a6ef6ab8458..5063f253c4b9 100644 --- a/arch/arm/mach-omap2/mcbsp.c +++ b/arch/arm/mach-omap2/mcbsp.c | |||
@@ -27,66 +27,69 @@ | |||
27 | 27 | ||
28 | #include "control.h" | 28 | #include "control.h" |
29 | 29 | ||
30 | /* McBSP internal signal muxing functions */ | 30 | /* |
31 | * FIXME: Find a mechanism to enable/disable runtime the McBSP ICLK autoidle. | ||
32 | * Sidetone needs non-gated ICLK and sidetone autoidle is broken. | ||
33 | */ | ||
34 | #include "cm2xxx_3xxx.h" | ||
35 | #include "cm-regbits-34xx.h" | ||
31 | 36 | ||
32 | void omap2_mcbsp1_mux_clkr_src(u8 mux) | 37 | /* McBSP internal signal muxing function */ |
38 | static int omap2_mcbsp1_mux_rx_clk(struct device *dev, const char *signal, | ||
39 | const char *src) | ||
33 | { | 40 | { |
34 | u32 v; | 41 | u32 v; |
35 | 42 | ||
36 | v = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0); | 43 | v = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0); |
37 | if (mux == CLKR_SRC_CLKR) | ||
38 | v &= ~OMAP2_MCBSP1_CLKR_MASK; | ||
39 | else if (mux == CLKR_SRC_CLKX) | ||
40 | v |= OMAP2_MCBSP1_CLKR_MASK; | ||
41 | omap_ctrl_writel(v, OMAP2_CONTROL_DEVCONF0); | ||
42 | } | ||
43 | EXPORT_SYMBOL(omap2_mcbsp1_mux_clkr_src); | ||
44 | 44 | ||
45 | void omap2_mcbsp1_mux_fsr_src(u8 mux) | 45 | if (!strcmp(signal, "clkr")) { |
46 | { | 46 | if (!strcmp(src, "clkr")) |
47 | u32 v; | 47 | v &= ~OMAP2_MCBSP1_CLKR_MASK; |
48 | else if (!strcmp(src, "clkx")) | ||
49 | v |= OMAP2_MCBSP1_CLKR_MASK; | ||
50 | else | ||
51 | return -EINVAL; | ||
52 | } else if (!strcmp(signal, "fsr")) { | ||
53 | if (!strcmp(src, "fsr")) | ||
54 | v &= ~OMAP2_MCBSP1_FSR_MASK; | ||
55 | else if (!strcmp(src, "fsx")) | ||
56 | v |= OMAP2_MCBSP1_FSR_MASK; | ||
57 | else | ||
58 | return -EINVAL; | ||
59 | } else { | ||
60 | return -EINVAL; | ||
61 | } | ||
48 | 62 | ||
49 | v = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0); | ||
50 | if (mux == FSR_SRC_FSR) | ||
51 | v &= ~OMAP2_MCBSP1_FSR_MASK; | ||
52 | else if (mux == FSR_SRC_FSX) | ||
53 | v |= OMAP2_MCBSP1_FSR_MASK; | ||
54 | omap_ctrl_writel(v, OMAP2_CONTROL_DEVCONF0); | 63 | omap_ctrl_writel(v, OMAP2_CONTROL_DEVCONF0); |
64 | |||
65 | return 0; | ||
55 | } | 66 | } |
56 | EXPORT_SYMBOL(omap2_mcbsp1_mux_fsr_src); | ||
57 | 67 | ||
58 | /* McBSP CLKS source switching function */ | 68 | /* McBSP CLKS source switching function */ |
59 | 69 | static int omap2_mcbsp_set_clk_src(struct device *dev, struct clk *clk, | |
60 | int omap2_mcbsp_set_clks_src(u8 id, u8 fck_src_id) | 70 | const char *src) |
61 | { | 71 | { |
62 | struct omap_mcbsp *mcbsp; | ||
63 | struct clk *fck_src; | 72 | struct clk *fck_src; |
64 | char *fck_src_name; | 73 | char *fck_src_name; |
65 | int r; | 74 | int r; |
66 | 75 | ||
67 | if (!omap_mcbsp_check_valid_id(id)) { | 76 | if (!strcmp(src, "clks_ext")) |
68 | pr_err("%s: Invalid id (%d)\n", __func__, id + 1); | ||
69 | return -EINVAL; | ||
70 | } | ||
71 | mcbsp = id_to_mcbsp_ptr(id); | ||
72 | |||
73 | if (fck_src_id == MCBSP_CLKS_PAD_SRC) | ||
74 | fck_src_name = "pad_fck"; | 77 | fck_src_name = "pad_fck"; |
75 | else if (fck_src_id == MCBSP_CLKS_PRCM_SRC) | 78 | else if (!strcmp(src, "clks_fclk")) |
76 | fck_src_name = "prcm_fck"; | 79 | fck_src_name = "prcm_fck"; |
77 | else | 80 | else |
78 | return -EINVAL; | 81 | return -EINVAL; |
79 | 82 | ||
80 | fck_src = clk_get(mcbsp->dev, fck_src_name); | 83 | fck_src = clk_get(dev, fck_src_name); |
81 | if (IS_ERR_OR_NULL(fck_src)) { | 84 | if (IS_ERR_OR_NULL(fck_src)) { |
82 | pr_err("omap-mcbsp: %s: could not clk_get() %s\n", "clks", | 85 | pr_err("omap-mcbsp: %s: could not clk_get() %s\n", "clks", |
83 | fck_src_name); | 86 | fck_src_name); |
84 | return -EINVAL; | 87 | return -EINVAL; |
85 | } | 88 | } |
86 | 89 | ||
87 | pm_runtime_put_sync(mcbsp->dev); | 90 | pm_runtime_put_sync(dev); |
88 | 91 | ||
89 | r = clk_set_parent(mcbsp->fclk, fck_src); | 92 | r = clk_set_parent(clk, fck_src); |
90 | if (IS_ERR_VALUE(r)) { | 93 | if (IS_ERR_VALUE(r)) { |
91 | pr_err("omap-mcbsp: %s: could not clk_set_parent() to %s\n", | 94 | pr_err("omap-mcbsp: %s: could not clk_set_parent() to %s\n", |
92 | "clks", fck_src_name); | 95 | "clks", fck_src_name); |
@@ -94,13 +97,30 @@ int omap2_mcbsp_set_clks_src(u8 id, u8 fck_src_id) | |||
94 | return -EINVAL; | 97 | return -EINVAL; |
95 | } | 98 | } |
96 | 99 | ||
97 | pm_runtime_get_sync(mcbsp->dev); | 100 | pm_runtime_get_sync(dev); |
98 | 101 | ||
99 | clk_put(fck_src); | 102 | clk_put(fck_src); |
100 | 103 | ||
101 | return 0; | 104 | return 0; |
102 | } | 105 | } |
103 | EXPORT_SYMBOL(omap2_mcbsp_set_clks_src); | 106 | |
107 | static int omap3_enable_st_clock(unsigned int id, bool enable) | ||
108 | { | ||
109 | unsigned int w; | ||
110 | |||
111 | /* | ||
112 | * Sidetone uses McBSP ICLK - which must not idle when sidetones | ||
113 | * are enabled or sidetones start sounding ugly. | ||
114 | */ | ||
115 | w = omap2_cm_read_mod_reg(OMAP3430_PER_MOD, CM_AUTOIDLE); | ||
116 | if (enable) | ||
117 | w &= ~(1 << (id - 2)); | ||
118 | else | ||
119 | w |= 1 << (id - 2); | ||
120 | omap2_cm_write_mod_reg(w, OMAP3430_PER_MOD, CM_AUTOIDLE); | ||
121 | |||
122 | return 0; | ||
123 | } | ||
104 | 124 | ||
105 | struct omap_device_pm_latency omap2_mcbsp_latency[] = { | 125 | struct omap_device_pm_latency omap2_mcbsp_latency[] = { |
106 | { | 126 | { |
@@ -116,7 +136,7 @@ static int omap_init_mcbsp(struct omap_hwmod *oh, void *unused) | |||
116 | char *name = "omap-mcbsp"; | 136 | char *name = "omap-mcbsp"; |
117 | struct omap_hwmod *oh_device[2]; | 137 | struct omap_hwmod *oh_device[2]; |
118 | struct omap_mcbsp_platform_data *pdata = NULL; | 138 | struct omap_mcbsp_platform_data *pdata = NULL; |
119 | struct omap_device *od; | 139 | struct platform_device *pdev; |
120 | 140 | ||
121 | sscanf(oh->name, "mcbsp%d", &id); | 141 | sscanf(oh->name, "mcbsp%d", &id); |
122 | 142 | ||
@@ -126,7 +146,13 @@ static int omap_init_mcbsp(struct omap_hwmod *oh, void *unused) | |||
126 | return -ENOMEM; | 146 | return -ENOMEM; |
127 | } | 147 | } |
128 | 148 | ||
129 | pdata->mcbsp_config_type = oh->class->rev; | 149 | pdata->reg_step = 4; |
150 | if (oh->class->rev < MCBSP_CONFIG_TYPE2) { | ||
151 | pdata->reg_size = 2; | ||
152 | } else { | ||
153 | pdata->reg_size = 4; | ||
154 | pdata->has_ccr = true; | ||
155 | } | ||
130 | 156 | ||
131 | if (oh->class->rev == MCBSP_CONFIG_TYPE3) { | 157 | if (oh->class->rev == MCBSP_CONFIG_TYPE3) { |
132 | if (id == 2) | 158 | if (id == 2) |
@@ -137,22 +163,29 @@ static int omap_init_mcbsp(struct omap_hwmod *oh, void *unused) | |||
137 | pdata->buffer_size = 0x80; | 163 | pdata->buffer_size = 0x80; |
138 | } | 164 | } |
139 | 165 | ||
166 | if (oh->class->rev >= MCBSP_CONFIG_TYPE3) | ||
167 | pdata->has_wakeup = true; | ||
168 | |||
140 | oh_device[0] = oh; | 169 | oh_device[0] = oh; |
141 | 170 | ||
142 | if (oh->dev_attr) { | 171 | if (oh->dev_attr) { |
143 | oh_device[1] = omap_hwmod_lookup(( | 172 | oh_device[1] = omap_hwmod_lookup(( |
144 | (struct omap_mcbsp_dev_attr *)(oh->dev_attr))->sidetone); | 173 | (struct omap_mcbsp_dev_attr *)(oh->dev_attr))->sidetone); |
174 | pdata->enable_st_clock = omap3_enable_st_clock; | ||
145 | count++; | 175 | count++; |
146 | } | 176 | } |
147 | od = omap_device_build_ss(name, id, oh_device, count, pdata, | 177 | pdev = omap_device_build_ss(name, id, oh_device, count, pdata, |
148 | sizeof(*pdata), omap2_mcbsp_latency, | 178 | sizeof(*pdata), omap2_mcbsp_latency, |
149 | ARRAY_SIZE(omap2_mcbsp_latency), false); | 179 | ARRAY_SIZE(omap2_mcbsp_latency), false); |
150 | kfree(pdata); | 180 | kfree(pdata); |
151 | if (IS_ERR(od)) { | 181 | if (IS_ERR(pdev)) { |
152 | pr_err("%s: Can't build omap_device for %s:%s.\n", __func__, | 182 | pr_err("%s: Can't build omap_device for %s:%s.\n", __func__, |
153 | name, oh->name); | 183 | name, oh->name); |
154 | return PTR_ERR(od); | 184 | return PTR_ERR(pdev); |
155 | } | 185 | } |
186 | pdata->set_clk_src = omap2_mcbsp_set_clk_src; | ||
187 | if (id == 1) | ||
188 | pdata->mux_signal = omap2_mcbsp1_mux_rx_clk; | ||
156 | omap_mcbsp_count++; | 189 | omap_mcbsp_count++; |
157 | return 0; | 190 | return 0; |
158 | } | 191 | } |
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index 84cc0bdda3ae..d71380705080 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c | |||
@@ -1954,9 +1954,6 @@ int __init omap_hwmod_register(struct omap_hwmod **ohs) | |||
1954 | 1954 | ||
1955 | i = 0; | 1955 | i = 0; |
1956 | do { | 1956 | do { |
1957 | if (!omap_chip_is(ohs[i]->omap_chip)) | ||
1958 | continue; | ||
1959 | |||
1960 | r = _register(ohs[i]); | 1957 | r = _register(ohs[i]); |
1961 | WARN(r, "omap_hwmod: %s: _register returned %d\n", ohs[i]->name, | 1958 | WARN(r, "omap_hwmod: %s: _register returned %d\n", ohs[i]->name, |
1962 | r); | 1959 | r); |
diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c b/arch/arm/mach-omap2/omap_hwmod_2420_data.c index a015c69068f6..b6ea69a5c2f8 100644 --- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c | |||
@@ -100,7 +100,6 @@ static struct omap_hwmod omap2420_l3_main_hwmod = { | |||
100 | .masters_cnt = ARRAY_SIZE(omap2420_l3_main_masters), | 100 | .masters_cnt = ARRAY_SIZE(omap2420_l3_main_masters), |
101 | .slaves = omap2420_l3_main_slaves, | 101 | .slaves = omap2420_l3_main_slaves, |
102 | .slaves_cnt = ARRAY_SIZE(omap2420_l3_main_slaves), | 102 | .slaves_cnt = ARRAY_SIZE(omap2420_l3_main_slaves), |
103 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
104 | .flags = HWMOD_NO_IDLEST, | 103 | .flags = HWMOD_NO_IDLEST, |
105 | }; | 104 | }; |
106 | 105 | ||
@@ -206,7 +205,6 @@ static struct omap_hwmod omap2420_l4_core_hwmod = { | |||
206 | .masters_cnt = ARRAY_SIZE(omap2420_l4_core_masters), | 205 | .masters_cnt = ARRAY_SIZE(omap2420_l4_core_masters), |
207 | .slaves = omap2420_l4_core_slaves, | 206 | .slaves = omap2420_l4_core_slaves, |
208 | .slaves_cnt = ARRAY_SIZE(omap2420_l4_core_slaves), | 207 | .slaves_cnt = ARRAY_SIZE(omap2420_l4_core_slaves), |
209 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
210 | .flags = HWMOD_NO_IDLEST, | 208 | .flags = HWMOD_NO_IDLEST, |
211 | }; | 209 | }; |
212 | 210 | ||
@@ -227,7 +225,6 @@ static struct omap_hwmod omap2420_l4_wkup_hwmod = { | |||
227 | .masters_cnt = ARRAY_SIZE(omap2420_l4_wkup_masters), | 225 | .masters_cnt = ARRAY_SIZE(omap2420_l4_wkup_masters), |
228 | .slaves = omap2420_l4_wkup_slaves, | 226 | .slaves = omap2420_l4_wkup_slaves, |
229 | .slaves_cnt = ARRAY_SIZE(omap2420_l4_wkup_slaves), | 227 | .slaves_cnt = ARRAY_SIZE(omap2420_l4_wkup_slaves), |
230 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
231 | .flags = HWMOD_NO_IDLEST, | 228 | .flags = HWMOD_NO_IDLEST, |
232 | }; | 229 | }; |
233 | 230 | ||
@@ -243,7 +240,6 @@ static struct omap_hwmod omap2420_mpu_hwmod = { | |||
243 | .main_clk = "mpu_ck", | 240 | .main_clk = "mpu_ck", |
244 | .masters = omap2420_mpu_masters, | 241 | .masters = omap2420_mpu_masters, |
245 | .masters_cnt = ARRAY_SIZE(omap2420_mpu_masters), | 242 | .masters_cnt = ARRAY_SIZE(omap2420_mpu_masters), |
246 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
247 | }; | 243 | }; |
248 | 244 | ||
249 | /* | 245 | /* |
@@ -271,7 +267,6 @@ static struct omap_hwmod omap2420_iva_hwmod = { | |||
271 | .class = &iva_hwmod_class, | 267 | .class = &iva_hwmod_class, |
272 | .masters = omap2420_iva_masters, | 268 | .masters = omap2420_iva_masters, |
273 | .masters_cnt = ARRAY_SIZE(omap2420_iva_masters), | 269 | .masters_cnt = ARRAY_SIZE(omap2420_iva_masters), |
274 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) | ||
275 | }; | 270 | }; |
276 | 271 | ||
277 | /* timer1 */ | 272 | /* timer1 */ |
@@ -317,7 +312,6 @@ static struct omap_hwmod omap2420_timer1_hwmod = { | |||
317 | .slaves = omap2420_timer1_slaves, | 312 | .slaves = omap2420_timer1_slaves, |
318 | .slaves_cnt = ARRAY_SIZE(omap2420_timer1_slaves), | 313 | .slaves_cnt = ARRAY_SIZE(omap2420_timer1_slaves), |
319 | .class = &omap2xxx_timer_hwmod_class, | 314 | .class = &omap2xxx_timer_hwmod_class, |
320 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) | ||
321 | }; | 315 | }; |
322 | 316 | ||
323 | /* timer2 */ | 317 | /* timer2 */ |
@@ -354,7 +348,6 @@ static struct omap_hwmod omap2420_timer2_hwmod = { | |||
354 | .slaves = omap2420_timer2_slaves, | 348 | .slaves = omap2420_timer2_slaves, |
355 | .slaves_cnt = ARRAY_SIZE(omap2420_timer2_slaves), | 349 | .slaves_cnt = ARRAY_SIZE(omap2420_timer2_slaves), |
356 | .class = &omap2xxx_timer_hwmod_class, | 350 | .class = &omap2xxx_timer_hwmod_class, |
357 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) | ||
358 | }; | 351 | }; |
359 | 352 | ||
360 | /* timer3 */ | 353 | /* timer3 */ |
@@ -391,7 +384,6 @@ static struct omap_hwmod omap2420_timer3_hwmod = { | |||
391 | .slaves = omap2420_timer3_slaves, | 384 | .slaves = omap2420_timer3_slaves, |
392 | .slaves_cnt = ARRAY_SIZE(omap2420_timer3_slaves), | 385 | .slaves_cnt = ARRAY_SIZE(omap2420_timer3_slaves), |
393 | .class = &omap2xxx_timer_hwmod_class, | 386 | .class = &omap2xxx_timer_hwmod_class, |
394 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) | ||
395 | }; | 387 | }; |
396 | 388 | ||
397 | /* timer4 */ | 389 | /* timer4 */ |
@@ -428,7 +420,6 @@ static struct omap_hwmod omap2420_timer4_hwmod = { | |||
428 | .slaves = omap2420_timer4_slaves, | 420 | .slaves = omap2420_timer4_slaves, |
429 | .slaves_cnt = ARRAY_SIZE(omap2420_timer4_slaves), | 421 | .slaves_cnt = ARRAY_SIZE(omap2420_timer4_slaves), |
430 | .class = &omap2xxx_timer_hwmod_class, | 422 | .class = &omap2xxx_timer_hwmod_class, |
431 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) | ||
432 | }; | 423 | }; |
433 | 424 | ||
434 | /* timer5 */ | 425 | /* timer5 */ |
@@ -465,7 +456,6 @@ static struct omap_hwmod omap2420_timer5_hwmod = { | |||
465 | .slaves = omap2420_timer5_slaves, | 456 | .slaves = omap2420_timer5_slaves, |
466 | .slaves_cnt = ARRAY_SIZE(omap2420_timer5_slaves), | 457 | .slaves_cnt = ARRAY_SIZE(omap2420_timer5_slaves), |
467 | .class = &omap2xxx_timer_hwmod_class, | 458 | .class = &omap2xxx_timer_hwmod_class, |
468 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) | ||
469 | }; | 459 | }; |
470 | 460 | ||
471 | 461 | ||
@@ -503,7 +493,6 @@ static struct omap_hwmod omap2420_timer6_hwmod = { | |||
503 | .slaves = omap2420_timer6_slaves, | 493 | .slaves = omap2420_timer6_slaves, |
504 | .slaves_cnt = ARRAY_SIZE(omap2420_timer6_slaves), | 494 | .slaves_cnt = ARRAY_SIZE(omap2420_timer6_slaves), |
505 | .class = &omap2xxx_timer_hwmod_class, | 495 | .class = &omap2xxx_timer_hwmod_class, |
506 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) | ||
507 | }; | 496 | }; |
508 | 497 | ||
509 | /* timer7 */ | 498 | /* timer7 */ |
@@ -540,7 +529,6 @@ static struct omap_hwmod omap2420_timer7_hwmod = { | |||
540 | .slaves = omap2420_timer7_slaves, | 529 | .slaves = omap2420_timer7_slaves, |
541 | .slaves_cnt = ARRAY_SIZE(omap2420_timer7_slaves), | 530 | .slaves_cnt = ARRAY_SIZE(omap2420_timer7_slaves), |
542 | .class = &omap2xxx_timer_hwmod_class, | 531 | .class = &omap2xxx_timer_hwmod_class, |
543 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) | ||
544 | }; | 532 | }; |
545 | 533 | ||
546 | /* timer8 */ | 534 | /* timer8 */ |
@@ -577,7 +565,6 @@ static struct omap_hwmod omap2420_timer8_hwmod = { | |||
577 | .slaves = omap2420_timer8_slaves, | 565 | .slaves = omap2420_timer8_slaves, |
578 | .slaves_cnt = ARRAY_SIZE(omap2420_timer8_slaves), | 566 | .slaves_cnt = ARRAY_SIZE(omap2420_timer8_slaves), |
579 | .class = &omap2xxx_timer_hwmod_class, | 567 | .class = &omap2xxx_timer_hwmod_class, |
580 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) | ||
581 | }; | 568 | }; |
582 | 569 | ||
583 | /* timer9 */ | 570 | /* timer9 */ |
@@ -614,7 +601,6 @@ static struct omap_hwmod omap2420_timer9_hwmod = { | |||
614 | .slaves = omap2420_timer9_slaves, | 601 | .slaves = omap2420_timer9_slaves, |
615 | .slaves_cnt = ARRAY_SIZE(omap2420_timer9_slaves), | 602 | .slaves_cnt = ARRAY_SIZE(omap2420_timer9_slaves), |
616 | .class = &omap2xxx_timer_hwmod_class, | 603 | .class = &omap2xxx_timer_hwmod_class, |
617 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) | ||
618 | }; | 604 | }; |
619 | 605 | ||
620 | /* timer10 */ | 606 | /* timer10 */ |
@@ -651,7 +637,6 @@ static struct omap_hwmod omap2420_timer10_hwmod = { | |||
651 | .slaves = omap2420_timer10_slaves, | 637 | .slaves = omap2420_timer10_slaves, |
652 | .slaves_cnt = ARRAY_SIZE(omap2420_timer10_slaves), | 638 | .slaves_cnt = ARRAY_SIZE(omap2420_timer10_slaves), |
653 | .class = &omap2xxx_timer_hwmod_class, | 639 | .class = &omap2xxx_timer_hwmod_class, |
654 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) | ||
655 | }; | 640 | }; |
656 | 641 | ||
657 | /* timer11 */ | 642 | /* timer11 */ |
@@ -688,7 +673,6 @@ static struct omap_hwmod omap2420_timer11_hwmod = { | |||
688 | .slaves = omap2420_timer11_slaves, | 673 | .slaves = omap2420_timer11_slaves, |
689 | .slaves_cnt = ARRAY_SIZE(omap2420_timer11_slaves), | 674 | .slaves_cnt = ARRAY_SIZE(omap2420_timer11_slaves), |
690 | .class = &omap2xxx_timer_hwmod_class, | 675 | .class = &omap2xxx_timer_hwmod_class, |
691 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) | ||
692 | }; | 676 | }; |
693 | 677 | ||
694 | /* timer12 */ | 678 | /* timer12 */ |
@@ -725,7 +709,6 @@ static struct omap_hwmod omap2420_timer12_hwmod = { | |||
725 | .slaves = omap2420_timer12_slaves, | 709 | .slaves = omap2420_timer12_slaves, |
726 | .slaves_cnt = ARRAY_SIZE(omap2420_timer12_slaves), | 710 | .slaves_cnt = ARRAY_SIZE(omap2420_timer12_slaves), |
727 | .class = &omap2xxx_timer_hwmod_class, | 711 | .class = &omap2xxx_timer_hwmod_class, |
728 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420) | ||
729 | }; | 712 | }; |
730 | 713 | ||
731 | /* l4_wkup -> wd_timer2 */ | 714 | /* l4_wkup -> wd_timer2 */ |
@@ -766,7 +749,6 @@ static struct omap_hwmod omap2420_wd_timer2_hwmod = { | |||
766 | }, | 749 | }, |
767 | .slaves = omap2420_wd_timer2_slaves, | 750 | .slaves = omap2420_wd_timer2_slaves, |
768 | .slaves_cnt = ARRAY_SIZE(omap2420_wd_timer2_slaves), | 751 | .slaves_cnt = ARRAY_SIZE(omap2420_wd_timer2_slaves), |
769 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
770 | }; | 752 | }; |
771 | 753 | ||
772 | /* UART1 */ | 754 | /* UART1 */ |
@@ -792,7 +774,6 @@ static struct omap_hwmod omap2420_uart1_hwmod = { | |||
792 | .slaves = omap2420_uart1_slaves, | 774 | .slaves = omap2420_uart1_slaves, |
793 | .slaves_cnt = ARRAY_SIZE(omap2420_uart1_slaves), | 775 | .slaves_cnt = ARRAY_SIZE(omap2420_uart1_slaves), |
794 | .class = &omap2_uart_class, | 776 | .class = &omap2_uart_class, |
795 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
796 | }; | 777 | }; |
797 | 778 | ||
798 | /* UART2 */ | 779 | /* UART2 */ |
@@ -818,7 +799,6 @@ static struct omap_hwmod omap2420_uart2_hwmod = { | |||
818 | .slaves = omap2420_uart2_slaves, | 799 | .slaves = omap2420_uart2_slaves, |
819 | .slaves_cnt = ARRAY_SIZE(omap2420_uart2_slaves), | 800 | .slaves_cnt = ARRAY_SIZE(omap2420_uart2_slaves), |
820 | .class = &omap2_uart_class, | 801 | .class = &omap2_uart_class, |
821 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
822 | }; | 802 | }; |
823 | 803 | ||
824 | /* UART3 */ | 804 | /* UART3 */ |
@@ -844,7 +824,6 @@ static struct omap_hwmod omap2420_uart3_hwmod = { | |||
844 | .slaves = omap2420_uart3_slaves, | 824 | .slaves = omap2420_uart3_slaves, |
845 | .slaves_cnt = ARRAY_SIZE(omap2420_uart3_slaves), | 825 | .slaves_cnt = ARRAY_SIZE(omap2420_uart3_slaves), |
846 | .class = &omap2_uart_class, | 826 | .class = &omap2_uart_class, |
847 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
848 | }; | 827 | }; |
849 | 828 | ||
850 | /* dss */ | 829 | /* dss */ |
@@ -898,7 +877,6 @@ static struct omap_hwmod omap2420_dss_core_hwmod = { | |||
898 | .slaves_cnt = ARRAY_SIZE(omap2420_dss_slaves), | 877 | .slaves_cnt = ARRAY_SIZE(omap2420_dss_slaves), |
899 | .masters = omap2420_dss_masters, | 878 | .masters = omap2420_dss_masters, |
900 | .masters_cnt = ARRAY_SIZE(omap2420_dss_masters), | 879 | .masters_cnt = ARRAY_SIZE(omap2420_dss_masters), |
901 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
902 | .flags = HWMOD_NO_IDLEST, | 880 | .flags = HWMOD_NO_IDLEST, |
903 | }; | 881 | }; |
904 | 882 | ||
@@ -938,7 +916,6 @@ static struct omap_hwmod omap2420_dss_dispc_hwmod = { | |||
938 | }, | 916 | }, |
939 | .slaves = omap2420_dss_dispc_slaves, | 917 | .slaves = omap2420_dss_dispc_slaves, |
940 | .slaves_cnt = ARRAY_SIZE(omap2420_dss_dispc_slaves), | 918 | .slaves_cnt = ARRAY_SIZE(omap2420_dss_dispc_slaves), |
941 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
942 | .flags = HWMOD_NO_IDLEST, | 919 | .flags = HWMOD_NO_IDLEST, |
943 | }; | 920 | }; |
944 | 921 | ||
@@ -975,7 +952,6 @@ static struct omap_hwmod omap2420_dss_rfbi_hwmod = { | |||
975 | }, | 952 | }, |
976 | .slaves = omap2420_dss_rfbi_slaves, | 953 | .slaves = omap2420_dss_rfbi_slaves, |
977 | .slaves_cnt = ARRAY_SIZE(omap2420_dss_rfbi_slaves), | 954 | .slaves_cnt = ARRAY_SIZE(omap2420_dss_rfbi_slaves), |
978 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
979 | .flags = HWMOD_NO_IDLEST, | 955 | .flags = HWMOD_NO_IDLEST, |
980 | }; | 956 | }; |
981 | 957 | ||
@@ -1013,7 +989,6 @@ static struct omap_hwmod omap2420_dss_venc_hwmod = { | |||
1013 | }, | 989 | }, |
1014 | .slaves = omap2420_dss_venc_slaves, | 990 | .slaves = omap2420_dss_venc_slaves, |
1015 | .slaves_cnt = ARRAY_SIZE(omap2420_dss_venc_slaves), | 991 | .slaves_cnt = ARRAY_SIZE(omap2420_dss_venc_slaves), |
1016 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
1017 | .flags = HWMOD_NO_IDLEST, | 992 | .flags = HWMOD_NO_IDLEST, |
1018 | }; | 993 | }; |
1019 | 994 | ||
@@ -1064,7 +1039,6 @@ static struct omap_hwmod omap2420_i2c1_hwmod = { | |||
1064 | .slaves_cnt = ARRAY_SIZE(omap2420_i2c1_slaves), | 1039 | .slaves_cnt = ARRAY_SIZE(omap2420_i2c1_slaves), |
1065 | .class = &i2c_class, | 1040 | .class = &i2c_class, |
1066 | .dev_attr = &i2c_dev_attr, | 1041 | .dev_attr = &i2c_dev_attr, |
1067 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
1068 | .flags = HWMOD_16BIT_REG, | 1042 | .flags = HWMOD_16BIT_REG, |
1069 | }; | 1043 | }; |
1070 | 1044 | ||
@@ -1092,7 +1066,6 @@ static struct omap_hwmod omap2420_i2c2_hwmod = { | |||
1092 | .slaves_cnt = ARRAY_SIZE(omap2420_i2c2_slaves), | 1066 | .slaves_cnt = ARRAY_SIZE(omap2420_i2c2_slaves), |
1093 | .class = &i2c_class, | 1067 | .class = &i2c_class, |
1094 | .dev_attr = &i2c_dev_attr, | 1068 | .dev_attr = &i2c_dev_attr, |
1095 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
1096 | .flags = HWMOD_16BIT_REG, | 1069 | .flags = HWMOD_16BIT_REG, |
1097 | }; | 1070 | }; |
1098 | 1071 | ||
@@ -1197,7 +1170,6 @@ static struct omap_hwmod omap2420_gpio1_hwmod = { | |||
1197 | .slaves_cnt = ARRAY_SIZE(omap2420_gpio1_slaves), | 1170 | .slaves_cnt = ARRAY_SIZE(omap2420_gpio1_slaves), |
1198 | .class = &omap2xxx_gpio_hwmod_class, | 1171 | .class = &omap2xxx_gpio_hwmod_class, |
1199 | .dev_attr = &gpio_dev_attr, | 1172 | .dev_attr = &gpio_dev_attr, |
1200 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
1201 | }; | 1173 | }; |
1202 | 1174 | ||
1203 | /* gpio2 */ | 1175 | /* gpio2 */ |
@@ -1223,7 +1195,6 @@ static struct omap_hwmod omap2420_gpio2_hwmod = { | |||
1223 | .slaves_cnt = ARRAY_SIZE(omap2420_gpio2_slaves), | 1195 | .slaves_cnt = ARRAY_SIZE(omap2420_gpio2_slaves), |
1224 | .class = &omap2xxx_gpio_hwmod_class, | 1196 | .class = &omap2xxx_gpio_hwmod_class, |
1225 | .dev_attr = &gpio_dev_attr, | 1197 | .dev_attr = &gpio_dev_attr, |
1226 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
1227 | }; | 1198 | }; |
1228 | 1199 | ||
1229 | /* gpio3 */ | 1200 | /* gpio3 */ |
@@ -1249,7 +1220,6 @@ static struct omap_hwmod omap2420_gpio3_hwmod = { | |||
1249 | .slaves_cnt = ARRAY_SIZE(omap2420_gpio3_slaves), | 1220 | .slaves_cnt = ARRAY_SIZE(omap2420_gpio3_slaves), |
1250 | .class = &omap2xxx_gpio_hwmod_class, | 1221 | .class = &omap2xxx_gpio_hwmod_class, |
1251 | .dev_attr = &gpio_dev_attr, | 1222 | .dev_attr = &gpio_dev_attr, |
1252 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
1253 | }; | 1223 | }; |
1254 | 1224 | ||
1255 | /* gpio4 */ | 1225 | /* gpio4 */ |
@@ -1275,7 +1245,6 @@ static struct omap_hwmod omap2420_gpio4_hwmod = { | |||
1275 | .slaves_cnt = ARRAY_SIZE(omap2420_gpio4_slaves), | 1245 | .slaves_cnt = ARRAY_SIZE(omap2420_gpio4_slaves), |
1276 | .class = &omap2xxx_gpio_hwmod_class, | 1246 | .class = &omap2xxx_gpio_hwmod_class, |
1277 | .dev_attr = &gpio_dev_attr, | 1247 | .dev_attr = &gpio_dev_attr, |
1278 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
1279 | }; | 1248 | }; |
1280 | 1249 | ||
1281 | /* dma attributes */ | 1250 | /* dma attributes */ |
@@ -1322,7 +1291,6 @@ static struct omap_hwmod omap2420_dma_system_hwmod = { | |||
1322 | .masters = omap2420_dma_system_masters, | 1291 | .masters = omap2420_dma_system_masters, |
1323 | .masters_cnt = ARRAY_SIZE(omap2420_dma_system_masters), | 1292 | .masters_cnt = ARRAY_SIZE(omap2420_dma_system_masters), |
1324 | .dev_attr = &dma_dev_attr, | 1293 | .dev_attr = &dma_dev_attr, |
1325 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
1326 | .flags = HWMOD_NO_IDLEST, | 1294 | .flags = HWMOD_NO_IDLEST, |
1327 | }; | 1295 | }; |
1328 | 1296 | ||
@@ -1363,7 +1331,6 @@ static struct omap_hwmod omap2420_mailbox_hwmod = { | |||
1363 | }, | 1331 | }, |
1364 | .slaves = omap2420_mailbox_slaves, | 1332 | .slaves = omap2420_mailbox_slaves, |
1365 | .slaves_cnt = ARRAY_SIZE(omap2420_mailbox_slaves), | 1333 | .slaves_cnt = ARRAY_SIZE(omap2420_mailbox_slaves), |
1366 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
1367 | }; | 1334 | }; |
1368 | 1335 | ||
1369 | /* mcspi1 */ | 1336 | /* mcspi1 */ |
@@ -1393,7 +1360,6 @@ static struct omap_hwmod omap2420_mcspi1_hwmod = { | |||
1393 | .slaves_cnt = ARRAY_SIZE(omap2420_mcspi1_slaves), | 1360 | .slaves_cnt = ARRAY_SIZE(omap2420_mcspi1_slaves), |
1394 | .class = &omap2xxx_mcspi_class, | 1361 | .class = &omap2xxx_mcspi_class, |
1395 | .dev_attr = &omap_mcspi1_dev_attr, | 1362 | .dev_attr = &omap_mcspi1_dev_attr, |
1396 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
1397 | }; | 1363 | }; |
1398 | 1364 | ||
1399 | /* mcspi2 */ | 1365 | /* mcspi2 */ |
@@ -1423,7 +1389,6 @@ static struct omap_hwmod omap2420_mcspi2_hwmod = { | |||
1423 | .slaves_cnt = ARRAY_SIZE(omap2420_mcspi2_slaves), | 1389 | .slaves_cnt = ARRAY_SIZE(omap2420_mcspi2_slaves), |
1424 | .class = &omap2xxx_mcspi_class, | 1390 | .class = &omap2xxx_mcspi_class, |
1425 | .dev_attr = &omap_mcspi2_dev_attr, | 1391 | .dev_attr = &omap_mcspi2_dev_attr, |
1426 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
1427 | }; | 1392 | }; |
1428 | 1393 | ||
1429 | /* | 1394 | /* |
@@ -1473,7 +1438,6 @@ static struct omap_hwmod omap2420_mcbsp1_hwmod = { | |||
1473 | }, | 1438 | }, |
1474 | .slaves = omap2420_mcbsp1_slaves, | 1439 | .slaves = omap2420_mcbsp1_slaves, |
1475 | .slaves_cnt = ARRAY_SIZE(omap2420_mcbsp1_slaves), | 1440 | .slaves_cnt = ARRAY_SIZE(omap2420_mcbsp1_slaves), |
1476 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
1477 | }; | 1441 | }; |
1478 | 1442 | ||
1479 | /* mcbsp2 */ | 1443 | /* mcbsp2 */ |
@@ -1514,7 +1478,6 @@ static struct omap_hwmod omap2420_mcbsp2_hwmod = { | |||
1514 | }, | 1478 | }, |
1515 | .slaves = omap2420_mcbsp2_slaves, | 1479 | .slaves = omap2420_mcbsp2_slaves, |
1516 | .slaves_cnt = ARRAY_SIZE(omap2420_mcbsp2_slaves), | 1480 | .slaves_cnt = ARRAY_SIZE(omap2420_mcbsp2_slaves), |
1517 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), | ||
1518 | }; | 1481 | }; |
1519 | 1482 | ||
1520 | static __initdata struct omap_hwmod *omap2420_hwmods[] = { | 1483 | static __initdata struct omap_hwmod *omap2420_hwmods[] = { |
diff --git a/arch/arm/mach-omap2/omap_hwmod_2430_data.c b/arch/arm/mach-omap2/omap_hwmod_2430_data.c index 408193d8e044..56de8d616313 100644 --- a/arch/arm/mach-omap2/omap_hwmod_2430_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_2430_data.c | |||
@@ -110,7 +110,6 @@ static struct omap_hwmod omap2430_l3_main_hwmod = { | |||
110 | .masters_cnt = ARRAY_SIZE(omap2430_l3_main_masters), | 110 | .masters_cnt = ARRAY_SIZE(omap2430_l3_main_masters), |
111 | .slaves = omap2430_l3_main_slaves, | 111 | .slaves = omap2430_l3_main_slaves, |
112 | .slaves_cnt = ARRAY_SIZE(omap2430_l3_main_slaves), | 112 | .slaves_cnt = ARRAY_SIZE(omap2430_l3_main_slaves), |
113 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
114 | .flags = HWMOD_NO_IDLEST, | 113 | .flags = HWMOD_NO_IDLEST, |
115 | }; | 114 | }; |
116 | 115 | ||
@@ -250,7 +249,6 @@ static struct omap_hwmod omap2430_l4_core_hwmod = { | |||
250 | .masters_cnt = ARRAY_SIZE(omap2430_l4_core_masters), | 249 | .masters_cnt = ARRAY_SIZE(omap2430_l4_core_masters), |
251 | .slaves = omap2430_l4_core_slaves, | 250 | .slaves = omap2430_l4_core_slaves, |
252 | .slaves_cnt = ARRAY_SIZE(omap2430_l4_core_slaves), | 251 | .slaves_cnt = ARRAY_SIZE(omap2430_l4_core_slaves), |
253 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
254 | .flags = HWMOD_NO_IDLEST, | 252 | .flags = HWMOD_NO_IDLEST, |
255 | }; | 253 | }; |
256 | 254 | ||
@@ -301,7 +299,6 @@ static struct omap_hwmod omap2430_l4_wkup_hwmod = { | |||
301 | .masters_cnt = ARRAY_SIZE(omap2430_l4_wkup_masters), | 299 | .masters_cnt = ARRAY_SIZE(omap2430_l4_wkup_masters), |
302 | .slaves = omap2430_l4_wkup_slaves, | 300 | .slaves = omap2430_l4_wkup_slaves, |
303 | .slaves_cnt = ARRAY_SIZE(omap2430_l4_wkup_slaves), | 301 | .slaves_cnt = ARRAY_SIZE(omap2430_l4_wkup_slaves), |
304 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
305 | .flags = HWMOD_NO_IDLEST, | 302 | .flags = HWMOD_NO_IDLEST, |
306 | }; | 303 | }; |
307 | 304 | ||
@@ -317,7 +314,6 @@ static struct omap_hwmod omap2430_mpu_hwmod = { | |||
317 | .main_clk = "mpu_ck", | 314 | .main_clk = "mpu_ck", |
318 | .masters = omap2430_mpu_masters, | 315 | .masters = omap2430_mpu_masters, |
319 | .masters_cnt = ARRAY_SIZE(omap2430_mpu_masters), | 316 | .masters_cnt = ARRAY_SIZE(omap2430_mpu_masters), |
320 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
321 | }; | 317 | }; |
322 | 318 | ||
323 | /* | 319 | /* |
@@ -345,7 +341,6 @@ static struct omap_hwmod omap2430_iva_hwmod = { | |||
345 | .class = &iva_hwmod_class, | 341 | .class = &iva_hwmod_class, |
346 | .masters = omap2430_iva_masters, | 342 | .masters = omap2430_iva_masters, |
347 | .masters_cnt = ARRAY_SIZE(omap2430_iva_masters), | 343 | .masters_cnt = ARRAY_SIZE(omap2430_iva_masters), |
348 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) | ||
349 | }; | 344 | }; |
350 | 345 | ||
351 | /* timer1 */ | 346 | /* timer1 */ |
@@ -391,7 +386,6 @@ static struct omap_hwmod omap2430_timer1_hwmod = { | |||
391 | .slaves = omap2430_timer1_slaves, | 386 | .slaves = omap2430_timer1_slaves, |
392 | .slaves_cnt = ARRAY_SIZE(omap2430_timer1_slaves), | 387 | .slaves_cnt = ARRAY_SIZE(omap2430_timer1_slaves), |
393 | .class = &omap2xxx_timer_hwmod_class, | 388 | .class = &omap2xxx_timer_hwmod_class, |
394 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) | ||
395 | }; | 389 | }; |
396 | 390 | ||
397 | /* timer2 */ | 391 | /* timer2 */ |
@@ -428,7 +422,6 @@ static struct omap_hwmod omap2430_timer2_hwmod = { | |||
428 | .slaves = omap2430_timer2_slaves, | 422 | .slaves = omap2430_timer2_slaves, |
429 | .slaves_cnt = ARRAY_SIZE(omap2430_timer2_slaves), | 423 | .slaves_cnt = ARRAY_SIZE(omap2430_timer2_slaves), |
430 | .class = &omap2xxx_timer_hwmod_class, | 424 | .class = &omap2xxx_timer_hwmod_class, |
431 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) | ||
432 | }; | 425 | }; |
433 | 426 | ||
434 | /* timer3 */ | 427 | /* timer3 */ |
@@ -465,7 +458,6 @@ static struct omap_hwmod omap2430_timer3_hwmod = { | |||
465 | .slaves = omap2430_timer3_slaves, | 458 | .slaves = omap2430_timer3_slaves, |
466 | .slaves_cnt = ARRAY_SIZE(omap2430_timer3_slaves), | 459 | .slaves_cnt = ARRAY_SIZE(omap2430_timer3_slaves), |
467 | .class = &omap2xxx_timer_hwmod_class, | 460 | .class = &omap2xxx_timer_hwmod_class, |
468 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) | ||
469 | }; | 461 | }; |
470 | 462 | ||
471 | /* timer4 */ | 463 | /* timer4 */ |
@@ -502,7 +494,6 @@ static struct omap_hwmod omap2430_timer4_hwmod = { | |||
502 | .slaves = omap2430_timer4_slaves, | 494 | .slaves = omap2430_timer4_slaves, |
503 | .slaves_cnt = ARRAY_SIZE(omap2430_timer4_slaves), | 495 | .slaves_cnt = ARRAY_SIZE(omap2430_timer4_slaves), |
504 | .class = &omap2xxx_timer_hwmod_class, | 496 | .class = &omap2xxx_timer_hwmod_class, |
505 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) | ||
506 | }; | 497 | }; |
507 | 498 | ||
508 | /* timer5 */ | 499 | /* timer5 */ |
@@ -539,7 +530,6 @@ static struct omap_hwmod omap2430_timer5_hwmod = { | |||
539 | .slaves = omap2430_timer5_slaves, | 530 | .slaves = omap2430_timer5_slaves, |
540 | .slaves_cnt = ARRAY_SIZE(omap2430_timer5_slaves), | 531 | .slaves_cnt = ARRAY_SIZE(omap2430_timer5_slaves), |
541 | .class = &omap2xxx_timer_hwmod_class, | 532 | .class = &omap2xxx_timer_hwmod_class, |
542 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) | ||
543 | }; | 533 | }; |
544 | 534 | ||
545 | /* timer6 */ | 535 | /* timer6 */ |
@@ -576,7 +566,6 @@ static struct omap_hwmod omap2430_timer6_hwmod = { | |||
576 | .slaves = omap2430_timer6_slaves, | 566 | .slaves = omap2430_timer6_slaves, |
577 | .slaves_cnt = ARRAY_SIZE(omap2430_timer6_slaves), | 567 | .slaves_cnt = ARRAY_SIZE(omap2430_timer6_slaves), |
578 | .class = &omap2xxx_timer_hwmod_class, | 568 | .class = &omap2xxx_timer_hwmod_class, |
579 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) | ||
580 | }; | 569 | }; |
581 | 570 | ||
582 | /* timer7 */ | 571 | /* timer7 */ |
@@ -613,7 +602,6 @@ static struct omap_hwmod omap2430_timer7_hwmod = { | |||
613 | .slaves = omap2430_timer7_slaves, | 602 | .slaves = omap2430_timer7_slaves, |
614 | .slaves_cnt = ARRAY_SIZE(omap2430_timer7_slaves), | 603 | .slaves_cnt = ARRAY_SIZE(omap2430_timer7_slaves), |
615 | .class = &omap2xxx_timer_hwmod_class, | 604 | .class = &omap2xxx_timer_hwmod_class, |
616 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) | ||
617 | }; | 605 | }; |
618 | 606 | ||
619 | /* timer8 */ | 607 | /* timer8 */ |
@@ -650,7 +638,6 @@ static struct omap_hwmod omap2430_timer8_hwmod = { | |||
650 | .slaves = omap2430_timer8_slaves, | 638 | .slaves = omap2430_timer8_slaves, |
651 | .slaves_cnt = ARRAY_SIZE(omap2430_timer8_slaves), | 639 | .slaves_cnt = ARRAY_SIZE(omap2430_timer8_slaves), |
652 | .class = &omap2xxx_timer_hwmod_class, | 640 | .class = &omap2xxx_timer_hwmod_class, |
653 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) | ||
654 | }; | 641 | }; |
655 | 642 | ||
656 | /* timer9 */ | 643 | /* timer9 */ |
@@ -687,7 +674,6 @@ static struct omap_hwmod omap2430_timer9_hwmod = { | |||
687 | .slaves = omap2430_timer9_slaves, | 674 | .slaves = omap2430_timer9_slaves, |
688 | .slaves_cnt = ARRAY_SIZE(omap2430_timer9_slaves), | 675 | .slaves_cnt = ARRAY_SIZE(omap2430_timer9_slaves), |
689 | .class = &omap2xxx_timer_hwmod_class, | 676 | .class = &omap2xxx_timer_hwmod_class, |
690 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) | ||
691 | }; | 677 | }; |
692 | 678 | ||
693 | /* timer10 */ | 679 | /* timer10 */ |
@@ -724,7 +710,6 @@ static struct omap_hwmod omap2430_timer10_hwmod = { | |||
724 | .slaves = omap2430_timer10_slaves, | 710 | .slaves = omap2430_timer10_slaves, |
725 | .slaves_cnt = ARRAY_SIZE(omap2430_timer10_slaves), | 711 | .slaves_cnt = ARRAY_SIZE(omap2430_timer10_slaves), |
726 | .class = &omap2xxx_timer_hwmod_class, | 712 | .class = &omap2xxx_timer_hwmod_class, |
727 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) | ||
728 | }; | 713 | }; |
729 | 714 | ||
730 | /* timer11 */ | 715 | /* timer11 */ |
@@ -761,7 +746,6 @@ static struct omap_hwmod omap2430_timer11_hwmod = { | |||
761 | .slaves = omap2430_timer11_slaves, | 746 | .slaves = omap2430_timer11_slaves, |
762 | .slaves_cnt = ARRAY_SIZE(omap2430_timer11_slaves), | 747 | .slaves_cnt = ARRAY_SIZE(omap2430_timer11_slaves), |
763 | .class = &omap2xxx_timer_hwmod_class, | 748 | .class = &omap2xxx_timer_hwmod_class, |
764 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) | ||
765 | }; | 749 | }; |
766 | 750 | ||
767 | /* timer12 */ | 751 | /* timer12 */ |
@@ -798,7 +782,6 @@ static struct omap_hwmod omap2430_timer12_hwmod = { | |||
798 | .slaves = omap2430_timer12_slaves, | 782 | .slaves = omap2430_timer12_slaves, |
799 | .slaves_cnt = ARRAY_SIZE(omap2430_timer12_slaves), | 783 | .slaves_cnt = ARRAY_SIZE(omap2430_timer12_slaves), |
800 | .class = &omap2xxx_timer_hwmod_class, | 784 | .class = &omap2xxx_timer_hwmod_class, |
801 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) | ||
802 | }; | 785 | }; |
803 | 786 | ||
804 | /* l4_wkup -> wd_timer2 */ | 787 | /* l4_wkup -> wd_timer2 */ |
@@ -839,7 +822,6 @@ static struct omap_hwmod omap2430_wd_timer2_hwmod = { | |||
839 | }, | 822 | }, |
840 | .slaves = omap2430_wd_timer2_slaves, | 823 | .slaves = omap2430_wd_timer2_slaves, |
841 | .slaves_cnt = ARRAY_SIZE(omap2430_wd_timer2_slaves), | 824 | .slaves_cnt = ARRAY_SIZE(omap2430_wd_timer2_slaves), |
842 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
843 | }; | 825 | }; |
844 | 826 | ||
845 | /* UART1 */ | 827 | /* UART1 */ |
@@ -865,7 +847,6 @@ static struct omap_hwmod omap2430_uart1_hwmod = { | |||
865 | .slaves = omap2430_uart1_slaves, | 847 | .slaves = omap2430_uart1_slaves, |
866 | .slaves_cnt = ARRAY_SIZE(omap2430_uart1_slaves), | 848 | .slaves_cnt = ARRAY_SIZE(omap2430_uart1_slaves), |
867 | .class = &omap2_uart_class, | 849 | .class = &omap2_uart_class, |
868 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
869 | }; | 850 | }; |
870 | 851 | ||
871 | /* UART2 */ | 852 | /* UART2 */ |
@@ -891,7 +872,6 @@ static struct omap_hwmod omap2430_uart2_hwmod = { | |||
891 | .slaves = omap2430_uart2_slaves, | 872 | .slaves = omap2430_uart2_slaves, |
892 | .slaves_cnt = ARRAY_SIZE(omap2430_uart2_slaves), | 873 | .slaves_cnt = ARRAY_SIZE(omap2430_uart2_slaves), |
893 | .class = &omap2_uart_class, | 874 | .class = &omap2_uart_class, |
894 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
895 | }; | 875 | }; |
896 | 876 | ||
897 | /* UART3 */ | 877 | /* UART3 */ |
@@ -917,7 +897,6 @@ static struct omap_hwmod omap2430_uart3_hwmod = { | |||
917 | .slaves = omap2430_uart3_slaves, | 897 | .slaves = omap2430_uart3_slaves, |
918 | .slaves_cnt = ARRAY_SIZE(omap2430_uart3_slaves), | 898 | .slaves_cnt = ARRAY_SIZE(omap2430_uart3_slaves), |
919 | .class = &omap2_uart_class, | 899 | .class = &omap2_uart_class, |
920 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
921 | }; | 900 | }; |
922 | 901 | ||
923 | /* dss */ | 902 | /* dss */ |
@@ -965,7 +944,6 @@ static struct omap_hwmod omap2430_dss_core_hwmod = { | |||
965 | .slaves_cnt = ARRAY_SIZE(omap2430_dss_slaves), | 944 | .slaves_cnt = ARRAY_SIZE(omap2430_dss_slaves), |
966 | .masters = omap2430_dss_masters, | 945 | .masters = omap2430_dss_masters, |
967 | .masters_cnt = ARRAY_SIZE(omap2430_dss_masters), | 946 | .masters_cnt = ARRAY_SIZE(omap2430_dss_masters), |
968 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
969 | .flags = HWMOD_NO_IDLEST, | 947 | .flags = HWMOD_NO_IDLEST, |
970 | }; | 948 | }; |
971 | 949 | ||
@@ -999,7 +977,6 @@ static struct omap_hwmod omap2430_dss_dispc_hwmod = { | |||
999 | }, | 977 | }, |
1000 | .slaves = omap2430_dss_dispc_slaves, | 978 | .slaves = omap2430_dss_dispc_slaves, |
1001 | .slaves_cnt = ARRAY_SIZE(omap2430_dss_dispc_slaves), | 979 | .slaves_cnt = ARRAY_SIZE(omap2430_dss_dispc_slaves), |
1002 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
1003 | .flags = HWMOD_NO_IDLEST, | 980 | .flags = HWMOD_NO_IDLEST, |
1004 | }; | 981 | }; |
1005 | 982 | ||
@@ -1030,7 +1007,6 @@ static struct omap_hwmod omap2430_dss_rfbi_hwmod = { | |||
1030 | }, | 1007 | }, |
1031 | .slaves = omap2430_dss_rfbi_slaves, | 1008 | .slaves = omap2430_dss_rfbi_slaves, |
1032 | .slaves_cnt = ARRAY_SIZE(omap2430_dss_rfbi_slaves), | 1009 | .slaves_cnt = ARRAY_SIZE(omap2430_dss_rfbi_slaves), |
1033 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
1034 | .flags = HWMOD_NO_IDLEST, | 1010 | .flags = HWMOD_NO_IDLEST, |
1035 | }; | 1011 | }; |
1036 | 1012 | ||
@@ -1062,7 +1038,6 @@ static struct omap_hwmod omap2430_dss_venc_hwmod = { | |||
1062 | }, | 1038 | }, |
1063 | .slaves = omap2430_dss_venc_slaves, | 1039 | .slaves = omap2430_dss_venc_slaves, |
1064 | .slaves_cnt = ARRAY_SIZE(omap2430_dss_venc_slaves), | 1040 | .slaves_cnt = ARRAY_SIZE(omap2430_dss_venc_slaves), |
1065 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
1066 | .flags = HWMOD_NO_IDLEST, | 1041 | .flags = HWMOD_NO_IDLEST, |
1067 | }; | 1042 | }; |
1068 | 1043 | ||
@@ -1123,7 +1098,6 @@ static struct omap_hwmod omap2430_i2c1_hwmod = { | |||
1123 | .slaves_cnt = ARRAY_SIZE(omap2430_i2c1_slaves), | 1098 | .slaves_cnt = ARRAY_SIZE(omap2430_i2c1_slaves), |
1124 | .class = &i2c_class, | 1099 | .class = &i2c_class, |
1125 | .dev_attr = &i2c_dev_attr, | 1100 | .dev_attr = &i2c_dev_attr, |
1126 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
1127 | }; | 1101 | }; |
1128 | 1102 | ||
1129 | /* I2C2 */ | 1103 | /* I2C2 */ |
@@ -1151,7 +1125,6 @@ static struct omap_hwmod omap2430_i2c2_hwmod = { | |||
1151 | .slaves_cnt = ARRAY_SIZE(omap2430_i2c2_slaves), | 1125 | .slaves_cnt = ARRAY_SIZE(omap2430_i2c2_slaves), |
1152 | .class = &i2c_class, | 1126 | .class = &i2c_class, |
1153 | .dev_attr = &i2c_dev_attr, | 1127 | .dev_attr = &i2c_dev_attr, |
1154 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
1155 | }; | 1128 | }; |
1156 | 1129 | ||
1157 | /* l4_wkup -> gpio1 */ | 1130 | /* l4_wkup -> gpio1 */ |
@@ -1273,7 +1246,6 @@ static struct omap_hwmod omap2430_gpio1_hwmod = { | |||
1273 | .slaves_cnt = ARRAY_SIZE(omap2430_gpio1_slaves), | 1246 | .slaves_cnt = ARRAY_SIZE(omap2430_gpio1_slaves), |
1274 | .class = &omap2xxx_gpio_hwmod_class, | 1247 | .class = &omap2xxx_gpio_hwmod_class, |
1275 | .dev_attr = &gpio_dev_attr, | 1248 | .dev_attr = &gpio_dev_attr, |
1276 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
1277 | }; | 1249 | }; |
1278 | 1250 | ||
1279 | /* gpio2 */ | 1251 | /* gpio2 */ |
@@ -1299,7 +1271,6 @@ static struct omap_hwmod omap2430_gpio2_hwmod = { | |||
1299 | .slaves_cnt = ARRAY_SIZE(omap2430_gpio2_slaves), | 1271 | .slaves_cnt = ARRAY_SIZE(omap2430_gpio2_slaves), |
1300 | .class = &omap2xxx_gpio_hwmod_class, | 1272 | .class = &omap2xxx_gpio_hwmod_class, |
1301 | .dev_attr = &gpio_dev_attr, | 1273 | .dev_attr = &gpio_dev_attr, |
1302 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
1303 | }; | 1274 | }; |
1304 | 1275 | ||
1305 | /* gpio3 */ | 1276 | /* gpio3 */ |
@@ -1325,7 +1296,6 @@ static struct omap_hwmod omap2430_gpio3_hwmod = { | |||
1325 | .slaves_cnt = ARRAY_SIZE(omap2430_gpio3_slaves), | 1296 | .slaves_cnt = ARRAY_SIZE(omap2430_gpio3_slaves), |
1326 | .class = &omap2xxx_gpio_hwmod_class, | 1297 | .class = &omap2xxx_gpio_hwmod_class, |
1327 | .dev_attr = &gpio_dev_attr, | 1298 | .dev_attr = &gpio_dev_attr, |
1328 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
1329 | }; | 1299 | }; |
1330 | 1300 | ||
1331 | /* gpio4 */ | 1301 | /* gpio4 */ |
@@ -1351,7 +1321,6 @@ static struct omap_hwmod omap2430_gpio4_hwmod = { | |||
1351 | .slaves_cnt = ARRAY_SIZE(omap2430_gpio4_slaves), | 1321 | .slaves_cnt = ARRAY_SIZE(omap2430_gpio4_slaves), |
1352 | .class = &omap2xxx_gpio_hwmod_class, | 1322 | .class = &omap2xxx_gpio_hwmod_class, |
1353 | .dev_attr = &gpio_dev_attr, | 1323 | .dev_attr = &gpio_dev_attr, |
1354 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
1355 | }; | 1324 | }; |
1356 | 1325 | ||
1357 | /* gpio5 */ | 1326 | /* gpio5 */ |
@@ -1382,7 +1351,6 @@ static struct omap_hwmod omap2430_gpio5_hwmod = { | |||
1382 | .slaves_cnt = ARRAY_SIZE(omap2430_gpio5_slaves), | 1351 | .slaves_cnt = ARRAY_SIZE(omap2430_gpio5_slaves), |
1383 | .class = &omap2xxx_gpio_hwmod_class, | 1352 | .class = &omap2xxx_gpio_hwmod_class, |
1384 | .dev_attr = &gpio_dev_attr, | 1353 | .dev_attr = &gpio_dev_attr, |
1385 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
1386 | }; | 1354 | }; |
1387 | 1355 | ||
1388 | /* dma attributes */ | 1356 | /* dma attributes */ |
@@ -1429,7 +1397,6 @@ static struct omap_hwmod omap2430_dma_system_hwmod = { | |||
1429 | .masters = omap2430_dma_system_masters, | 1397 | .masters = omap2430_dma_system_masters, |
1430 | .masters_cnt = ARRAY_SIZE(omap2430_dma_system_masters), | 1398 | .masters_cnt = ARRAY_SIZE(omap2430_dma_system_masters), |
1431 | .dev_attr = &dma_dev_attr, | 1399 | .dev_attr = &dma_dev_attr, |
1432 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
1433 | .flags = HWMOD_NO_IDLEST, | 1400 | .flags = HWMOD_NO_IDLEST, |
1434 | }; | 1401 | }; |
1435 | 1402 | ||
@@ -1469,7 +1436,6 @@ static struct omap_hwmod omap2430_mailbox_hwmod = { | |||
1469 | }, | 1436 | }, |
1470 | .slaves = omap2430_mailbox_slaves, | 1437 | .slaves = omap2430_mailbox_slaves, |
1471 | .slaves_cnt = ARRAY_SIZE(omap2430_mailbox_slaves), | 1438 | .slaves_cnt = ARRAY_SIZE(omap2430_mailbox_slaves), |
1472 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
1473 | }; | 1439 | }; |
1474 | 1440 | ||
1475 | /* mcspi1 */ | 1441 | /* mcspi1 */ |
@@ -1499,7 +1465,6 @@ static struct omap_hwmod omap2430_mcspi1_hwmod = { | |||
1499 | .slaves_cnt = ARRAY_SIZE(omap2430_mcspi1_slaves), | 1465 | .slaves_cnt = ARRAY_SIZE(omap2430_mcspi1_slaves), |
1500 | .class = &omap2xxx_mcspi_class, | 1466 | .class = &omap2xxx_mcspi_class, |
1501 | .dev_attr = &omap_mcspi1_dev_attr, | 1467 | .dev_attr = &omap_mcspi1_dev_attr, |
1502 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
1503 | }; | 1468 | }; |
1504 | 1469 | ||
1505 | /* mcspi2 */ | 1470 | /* mcspi2 */ |
@@ -1529,7 +1494,6 @@ static struct omap_hwmod omap2430_mcspi2_hwmod = { | |||
1529 | .slaves_cnt = ARRAY_SIZE(omap2430_mcspi2_slaves), | 1494 | .slaves_cnt = ARRAY_SIZE(omap2430_mcspi2_slaves), |
1530 | .class = &omap2xxx_mcspi_class, | 1495 | .class = &omap2xxx_mcspi_class, |
1531 | .dev_attr = &omap_mcspi2_dev_attr, | 1496 | .dev_attr = &omap_mcspi2_dev_attr, |
1532 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
1533 | }; | 1497 | }; |
1534 | 1498 | ||
1535 | /* mcspi3 */ | 1499 | /* mcspi3 */ |
@@ -1572,7 +1536,6 @@ static struct omap_hwmod omap2430_mcspi3_hwmod = { | |||
1572 | .slaves_cnt = ARRAY_SIZE(omap2430_mcspi3_slaves), | 1536 | .slaves_cnt = ARRAY_SIZE(omap2430_mcspi3_slaves), |
1573 | .class = &omap2xxx_mcspi_class, | 1537 | .class = &omap2xxx_mcspi_class, |
1574 | .dev_attr = &omap_mcspi3_dev_attr, | 1538 | .dev_attr = &omap_mcspi3_dev_attr, |
1575 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
1576 | }; | 1539 | }; |
1577 | 1540 | ||
1578 | /* | 1541 | /* |
@@ -1628,7 +1591,6 @@ static struct omap_hwmod omap2430_usbhsotg_hwmod = { | |||
1628 | */ | 1591 | */ |
1629 | .flags = HWMOD_NO_OCP_AUTOIDLE | HWMOD_SWSUP_SIDLE | 1592 | .flags = HWMOD_NO_OCP_AUTOIDLE | HWMOD_SWSUP_SIDLE |
1630 | | HWMOD_SWSUP_MSTANDBY, | 1593 | | HWMOD_SWSUP_MSTANDBY, |
1631 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430) | ||
1632 | }; | 1594 | }; |
1633 | 1595 | ||
1634 | /* | 1596 | /* |
@@ -1689,7 +1651,6 @@ static struct omap_hwmod omap2430_mcbsp1_hwmod = { | |||
1689 | }, | 1651 | }, |
1690 | .slaves = omap2430_mcbsp1_slaves, | 1652 | .slaves = omap2430_mcbsp1_slaves, |
1691 | .slaves_cnt = ARRAY_SIZE(omap2430_mcbsp1_slaves), | 1653 | .slaves_cnt = ARRAY_SIZE(omap2430_mcbsp1_slaves), |
1692 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
1693 | }; | 1654 | }; |
1694 | 1655 | ||
1695 | /* mcbsp2 */ | 1656 | /* mcbsp2 */ |
@@ -1731,7 +1692,6 @@ static struct omap_hwmod omap2430_mcbsp2_hwmod = { | |||
1731 | }, | 1692 | }, |
1732 | .slaves = omap2430_mcbsp2_slaves, | 1693 | .slaves = omap2430_mcbsp2_slaves, |
1733 | .slaves_cnt = ARRAY_SIZE(omap2430_mcbsp2_slaves), | 1694 | .slaves_cnt = ARRAY_SIZE(omap2430_mcbsp2_slaves), |
1734 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
1735 | }; | 1695 | }; |
1736 | 1696 | ||
1737 | /* mcbsp3 */ | 1697 | /* mcbsp3 */ |
@@ -1783,7 +1743,6 @@ static struct omap_hwmod omap2430_mcbsp3_hwmod = { | |||
1783 | }, | 1743 | }, |
1784 | .slaves = omap2430_mcbsp3_slaves, | 1744 | .slaves = omap2430_mcbsp3_slaves, |
1785 | .slaves_cnt = ARRAY_SIZE(omap2430_mcbsp3_slaves), | 1745 | .slaves_cnt = ARRAY_SIZE(omap2430_mcbsp3_slaves), |
1786 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
1787 | }; | 1746 | }; |
1788 | 1747 | ||
1789 | /* mcbsp4 */ | 1748 | /* mcbsp4 */ |
@@ -1841,7 +1800,6 @@ static struct omap_hwmod omap2430_mcbsp4_hwmod = { | |||
1841 | }, | 1800 | }, |
1842 | .slaves = omap2430_mcbsp4_slaves, | 1801 | .slaves = omap2430_mcbsp4_slaves, |
1843 | .slaves_cnt = ARRAY_SIZE(omap2430_mcbsp4_slaves), | 1802 | .slaves_cnt = ARRAY_SIZE(omap2430_mcbsp4_slaves), |
1844 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
1845 | }; | 1803 | }; |
1846 | 1804 | ||
1847 | /* mcbsp5 */ | 1805 | /* mcbsp5 */ |
@@ -1899,7 +1857,6 @@ static struct omap_hwmod omap2430_mcbsp5_hwmod = { | |||
1899 | }, | 1857 | }, |
1900 | .slaves = omap2430_mcbsp5_slaves, | 1858 | .slaves = omap2430_mcbsp5_slaves, |
1901 | .slaves_cnt = ARRAY_SIZE(omap2430_mcbsp5_slaves), | 1859 | .slaves_cnt = ARRAY_SIZE(omap2430_mcbsp5_slaves), |
1902 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
1903 | }; | 1860 | }; |
1904 | 1861 | ||
1905 | /* MMC/SD/SDIO common */ | 1862 | /* MMC/SD/SDIO common */ |
@@ -1966,7 +1923,6 @@ static struct omap_hwmod omap2430_mmc1_hwmod = { | |||
1966 | .slaves = omap2430_mmc1_slaves, | 1923 | .slaves = omap2430_mmc1_slaves, |
1967 | .slaves_cnt = ARRAY_SIZE(omap2430_mmc1_slaves), | 1924 | .slaves_cnt = ARRAY_SIZE(omap2430_mmc1_slaves), |
1968 | .class = &omap2430_mmc_class, | 1925 | .class = &omap2430_mmc_class, |
1969 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
1970 | }; | 1926 | }; |
1971 | 1927 | ||
1972 | /* MMC/SD/SDIO2 */ | 1928 | /* MMC/SD/SDIO2 */ |
@@ -2010,7 +1966,6 @@ static struct omap_hwmod omap2430_mmc2_hwmod = { | |||
2010 | .slaves = omap2430_mmc2_slaves, | 1966 | .slaves = omap2430_mmc2_slaves, |
2011 | .slaves_cnt = ARRAY_SIZE(omap2430_mmc2_slaves), | 1967 | .slaves_cnt = ARRAY_SIZE(omap2430_mmc2_slaves), |
2012 | .class = &omap2430_mmc_class, | 1968 | .class = &omap2430_mmc_class, |
2013 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
2014 | }; | 1969 | }; |
2015 | 1970 | ||
2016 | static __initdata struct omap_hwmod *omap2430_hwmods[] = { | 1971 | static __initdata struct omap_hwmod *omap2430_hwmods[] = { |
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c index 25bf43b5a4ec..ab35acbc2d1d 100644 --- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | |||
@@ -156,7 +156,6 @@ static struct omap_hwmod omap3xxx_l3_main_hwmod = { | |||
156 | .masters_cnt = ARRAY_SIZE(omap3xxx_l3_main_masters), | 156 | .masters_cnt = ARRAY_SIZE(omap3xxx_l3_main_masters), |
157 | .slaves = omap3xxx_l3_main_slaves, | 157 | .slaves = omap3xxx_l3_main_slaves, |
158 | .slaves_cnt = ARRAY_SIZE(omap3xxx_l3_main_slaves), | 158 | .slaves_cnt = ARRAY_SIZE(omap3xxx_l3_main_slaves), |
159 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
160 | .flags = HWMOD_NO_IDLEST, | 159 | .flags = HWMOD_NO_IDLEST, |
161 | }; | 160 | }; |
162 | 161 | ||
@@ -459,7 +458,6 @@ static struct omap_hwmod omap3xxx_l4_core_hwmod = { | |||
459 | .class = &l4_hwmod_class, | 458 | .class = &l4_hwmod_class, |
460 | .slaves = omap3xxx_l4_core_slaves, | 459 | .slaves = omap3xxx_l4_core_slaves, |
461 | .slaves_cnt = ARRAY_SIZE(omap3xxx_l4_core_slaves), | 460 | .slaves_cnt = ARRAY_SIZE(omap3xxx_l4_core_slaves), |
462 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
463 | .flags = HWMOD_NO_IDLEST, | 461 | .flags = HWMOD_NO_IDLEST, |
464 | }; | 462 | }; |
465 | 463 | ||
@@ -474,7 +472,6 @@ static struct omap_hwmod omap3xxx_l4_per_hwmod = { | |||
474 | .class = &l4_hwmod_class, | 472 | .class = &l4_hwmod_class, |
475 | .slaves = omap3xxx_l4_per_slaves, | 473 | .slaves = omap3xxx_l4_per_slaves, |
476 | .slaves_cnt = ARRAY_SIZE(omap3xxx_l4_per_slaves), | 474 | .slaves_cnt = ARRAY_SIZE(omap3xxx_l4_per_slaves), |
477 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
478 | .flags = HWMOD_NO_IDLEST, | 475 | .flags = HWMOD_NO_IDLEST, |
479 | }; | 476 | }; |
480 | 477 | ||
@@ -489,7 +486,6 @@ static struct omap_hwmod omap3xxx_l4_wkup_hwmod = { | |||
489 | .class = &l4_hwmod_class, | 486 | .class = &l4_hwmod_class, |
490 | .slaves = omap3xxx_l4_wkup_slaves, | 487 | .slaves = omap3xxx_l4_wkup_slaves, |
491 | .slaves_cnt = ARRAY_SIZE(omap3xxx_l4_wkup_slaves), | 488 | .slaves_cnt = ARRAY_SIZE(omap3xxx_l4_wkup_slaves), |
492 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
493 | .flags = HWMOD_NO_IDLEST, | 489 | .flags = HWMOD_NO_IDLEST, |
494 | }; | 490 | }; |
495 | 491 | ||
@@ -505,7 +501,6 @@ static struct omap_hwmod omap3xxx_mpu_hwmod = { | |||
505 | .main_clk = "arm_fck", | 501 | .main_clk = "arm_fck", |
506 | .masters = omap3xxx_mpu_masters, | 502 | .masters = omap3xxx_mpu_masters, |
507 | .masters_cnt = ARRAY_SIZE(omap3xxx_mpu_masters), | 503 | .masters_cnt = ARRAY_SIZE(omap3xxx_mpu_masters), |
508 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
509 | }; | 504 | }; |
510 | 505 | ||
511 | /* | 506 | /* |
@@ -533,7 +528,6 @@ static struct omap_hwmod omap3xxx_iva_hwmod = { | |||
533 | .class = &iva_hwmod_class, | 528 | .class = &iva_hwmod_class, |
534 | .masters = omap3xxx_iva_masters, | 529 | .masters = omap3xxx_iva_masters, |
535 | .masters_cnt = ARRAY_SIZE(omap3xxx_iva_masters), | 530 | .masters_cnt = ARRAY_SIZE(omap3xxx_iva_masters), |
536 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
537 | }; | 531 | }; |
538 | 532 | ||
539 | /* timer class */ | 533 | /* timer class */ |
@@ -613,7 +607,6 @@ static struct omap_hwmod omap3xxx_timer1_hwmod = { | |||
613 | .slaves = omap3xxx_timer1_slaves, | 607 | .slaves = omap3xxx_timer1_slaves, |
614 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer1_slaves), | 608 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer1_slaves), |
615 | .class = &omap3xxx_timer_1ms_hwmod_class, | 609 | .class = &omap3xxx_timer_1ms_hwmod_class, |
616 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
617 | }; | 610 | }; |
618 | 611 | ||
619 | /* timer2 */ | 612 | /* timer2 */ |
@@ -659,7 +652,6 @@ static struct omap_hwmod omap3xxx_timer2_hwmod = { | |||
659 | .slaves = omap3xxx_timer2_slaves, | 652 | .slaves = omap3xxx_timer2_slaves, |
660 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer2_slaves), | 653 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer2_slaves), |
661 | .class = &omap3xxx_timer_1ms_hwmod_class, | 654 | .class = &omap3xxx_timer_1ms_hwmod_class, |
662 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
663 | }; | 655 | }; |
664 | 656 | ||
665 | /* timer3 */ | 657 | /* timer3 */ |
@@ -705,7 +697,6 @@ static struct omap_hwmod omap3xxx_timer3_hwmod = { | |||
705 | .slaves = omap3xxx_timer3_slaves, | 697 | .slaves = omap3xxx_timer3_slaves, |
706 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer3_slaves), | 698 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer3_slaves), |
707 | .class = &omap3xxx_timer_hwmod_class, | 699 | .class = &omap3xxx_timer_hwmod_class, |
708 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
709 | }; | 700 | }; |
710 | 701 | ||
711 | /* timer4 */ | 702 | /* timer4 */ |
@@ -751,7 +742,6 @@ static struct omap_hwmod omap3xxx_timer4_hwmod = { | |||
751 | .slaves = omap3xxx_timer4_slaves, | 742 | .slaves = omap3xxx_timer4_slaves, |
752 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer4_slaves), | 743 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer4_slaves), |
753 | .class = &omap3xxx_timer_hwmod_class, | 744 | .class = &omap3xxx_timer_hwmod_class, |
754 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
755 | }; | 745 | }; |
756 | 746 | ||
757 | /* timer5 */ | 747 | /* timer5 */ |
@@ -797,7 +787,6 @@ static struct omap_hwmod omap3xxx_timer5_hwmod = { | |||
797 | .slaves = omap3xxx_timer5_slaves, | 787 | .slaves = omap3xxx_timer5_slaves, |
798 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer5_slaves), | 788 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer5_slaves), |
799 | .class = &omap3xxx_timer_hwmod_class, | 789 | .class = &omap3xxx_timer_hwmod_class, |
800 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
801 | }; | 790 | }; |
802 | 791 | ||
803 | /* timer6 */ | 792 | /* timer6 */ |
@@ -843,7 +832,6 @@ static struct omap_hwmod omap3xxx_timer6_hwmod = { | |||
843 | .slaves = omap3xxx_timer6_slaves, | 832 | .slaves = omap3xxx_timer6_slaves, |
844 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer6_slaves), | 833 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer6_slaves), |
845 | .class = &omap3xxx_timer_hwmod_class, | 834 | .class = &omap3xxx_timer_hwmod_class, |
846 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
847 | }; | 835 | }; |
848 | 836 | ||
849 | /* timer7 */ | 837 | /* timer7 */ |
@@ -889,7 +877,6 @@ static struct omap_hwmod omap3xxx_timer7_hwmod = { | |||
889 | .slaves = omap3xxx_timer7_slaves, | 877 | .slaves = omap3xxx_timer7_slaves, |
890 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer7_slaves), | 878 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer7_slaves), |
891 | .class = &omap3xxx_timer_hwmod_class, | 879 | .class = &omap3xxx_timer_hwmod_class, |
892 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
893 | }; | 880 | }; |
894 | 881 | ||
895 | /* timer8 */ | 882 | /* timer8 */ |
@@ -935,7 +922,6 @@ static struct omap_hwmod omap3xxx_timer8_hwmod = { | |||
935 | .slaves = omap3xxx_timer8_slaves, | 922 | .slaves = omap3xxx_timer8_slaves, |
936 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer8_slaves), | 923 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer8_slaves), |
937 | .class = &omap3xxx_timer_hwmod_class, | 924 | .class = &omap3xxx_timer_hwmod_class, |
938 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
939 | }; | 925 | }; |
940 | 926 | ||
941 | /* timer9 */ | 927 | /* timer9 */ |
@@ -981,7 +967,6 @@ static struct omap_hwmod omap3xxx_timer9_hwmod = { | |||
981 | .slaves = omap3xxx_timer9_slaves, | 967 | .slaves = omap3xxx_timer9_slaves, |
982 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer9_slaves), | 968 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer9_slaves), |
983 | .class = &omap3xxx_timer_hwmod_class, | 969 | .class = &omap3xxx_timer_hwmod_class, |
984 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
985 | }; | 970 | }; |
986 | 971 | ||
987 | /* timer10 */ | 972 | /* timer10 */ |
@@ -1018,7 +1003,6 @@ static struct omap_hwmod omap3xxx_timer10_hwmod = { | |||
1018 | .slaves = omap3xxx_timer10_slaves, | 1003 | .slaves = omap3xxx_timer10_slaves, |
1019 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer10_slaves), | 1004 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer10_slaves), |
1020 | .class = &omap3xxx_timer_1ms_hwmod_class, | 1005 | .class = &omap3xxx_timer_1ms_hwmod_class, |
1021 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
1022 | }; | 1006 | }; |
1023 | 1007 | ||
1024 | /* timer11 */ | 1008 | /* timer11 */ |
@@ -1055,7 +1039,6 @@ static struct omap_hwmod omap3xxx_timer11_hwmod = { | |||
1055 | .slaves = omap3xxx_timer11_slaves, | 1039 | .slaves = omap3xxx_timer11_slaves, |
1056 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer11_slaves), | 1040 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer11_slaves), |
1057 | .class = &omap3xxx_timer_hwmod_class, | 1041 | .class = &omap3xxx_timer_hwmod_class, |
1058 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
1059 | }; | 1042 | }; |
1060 | 1043 | ||
1061 | /* timer12*/ | 1044 | /* timer12*/ |
@@ -1105,7 +1088,6 @@ static struct omap_hwmod omap3xxx_timer12_hwmod = { | |||
1105 | .slaves = omap3xxx_timer12_slaves, | 1088 | .slaves = omap3xxx_timer12_slaves, |
1106 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer12_slaves), | 1089 | .slaves_cnt = ARRAY_SIZE(omap3xxx_timer12_slaves), |
1107 | .class = &omap3xxx_timer_hwmod_class, | 1090 | .class = &omap3xxx_timer_hwmod_class, |
1108 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
1109 | }; | 1091 | }; |
1110 | 1092 | ||
1111 | /* l4_wkup -> wd_timer2 */ | 1093 | /* l4_wkup -> wd_timer2 */ |
@@ -1182,7 +1164,6 @@ static struct omap_hwmod omap3xxx_wd_timer2_hwmod = { | |||
1182 | }, | 1164 | }, |
1183 | .slaves = omap3xxx_wd_timer2_slaves, | 1165 | .slaves = omap3xxx_wd_timer2_slaves, |
1184 | .slaves_cnt = ARRAY_SIZE(omap3xxx_wd_timer2_slaves), | 1166 | .slaves_cnt = ARRAY_SIZE(omap3xxx_wd_timer2_slaves), |
1185 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
1186 | /* | 1167 | /* |
1187 | * XXX: Use software supervised mode, HW supervised smartidle seems to | 1168 | * XXX: Use software supervised mode, HW supervised smartidle seems to |
1188 | * block CORE power domain idle transitions. Maybe a HW bug in wdt2? | 1169 | * block CORE power domain idle transitions. Maybe a HW bug in wdt2? |
@@ -1213,7 +1194,6 @@ static struct omap_hwmod omap3xxx_uart1_hwmod = { | |||
1213 | .slaves = omap3xxx_uart1_slaves, | 1194 | .slaves = omap3xxx_uart1_slaves, |
1214 | .slaves_cnt = ARRAY_SIZE(omap3xxx_uart1_slaves), | 1195 | .slaves_cnt = ARRAY_SIZE(omap3xxx_uart1_slaves), |
1215 | .class = &omap2_uart_class, | 1196 | .class = &omap2_uart_class, |
1216 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
1217 | }; | 1197 | }; |
1218 | 1198 | ||
1219 | /* UART2 */ | 1199 | /* UART2 */ |
@@ -1239,7 +1219,6 @@ static struct omap_hwmod omap3xxx_uart2_hwmod = { | |||
1239 | .slaves = omap3xxx_uart2_slaves, | 1219 | .slaves = omap3xxx_uart2_slaves, |
1240 | .slaves_cnt = ARRAY_SIZE(omap3xxx_uart2_slaves), | 1220 | .slaves_cnt = ARRAY_SIZE(omap3xxx_uart2_slaves), |
1241 | .class = &omap2_uart_class, | 1221 | .class = &omap2_uart_class, |
1242 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
1243 | }; | 1222 | }; |
1244 | 1223 | ||
1245 | /* UART3 */ | 1224 | /* UART3 */ |
@@ -1265,7 +1244,6 @@ static struct omap_hwmod omap3xxx_uart3_hwmod = { | |||
1265 | .slaves = omap3xxx_uart3_slaves, | 1244 | .slaves = omap3xxx_uart3_slaves, |
1266 | .slaves_cnt = ARRAY_SIZE(omap3xxx_uart3_slaves), | 1245 | .slaves_cnt = ARRAY_SIZE(omap3xxx_uart3_slaves), |
1267 | .class = &omap2_uart_class, | 1246 | .class = &omap2_uart_class, |
1268 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
1269 | }; | 1247 | }; |
1270 | 1248 | ||
1271 | /* UART4 */ | 1249 | /* UART4 */ |
@@ -1302,7 +1280,6 @@ static struct omap_hwmod omap3xxx_uart4_hwmod = { | |||
1302 | .slaves = omap3xxx_uart4_slaves, | 1280 | .slaves = omap3xxx_uart4_slaves, |
1303 | .slaves_cnt = ARRAY_SIZE(omap3xxx_uart4_slaves), | 1281 | .slaves_cnt = ARRAY_SIZE(omap3xxx_uart4_slaves), |
1304 | .class = &omap2_uart_class, | 1282 | .class = &omap2_uart_class, |
1305 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3630ES1), | ||
1306 | }; | 1283 | }; |
1307 | 1284 | ||
1308 | static struct omap_hwmod_class i2c_class = { | 1285 | static struct omap_hwmod_class i2c_class = { |
@@ -1390,7 +1367,6 @@ static struct omap_hwmod omap3430es1_dss_core_hwmod = { | |||
1390 | .slaves_cnt = ARRAY_SIZE(omap3430es1_dss_slaves), | 1367 | .slaves_cnt = ARRAY_SIZE(omap3430es1_dss_slaves), |
1391 | .masters = omap3xxx_dss_masters, | 1368 | .masters = omap3xxx_dss_masters, |
1392 | .masters_cnt = ARRAY_SIZE(omap3xxx_dss_masters), | 1369 | .masters_cnt = ARRAY_SIZE(omap3xxx_dss_masters), |
1393 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES1), | ||
1394 | .flags = HWMOD_NO_IDLEST, | 1370 | .flags = HWMOD_NO_IDLEST, |
1395 | }; | 1371 | }; |
1396 | 1372 | ||
@@ -1415,8 +1391,6 @@ static struct omap_hwmod omap3xxx_dss_core_hwmod = { | |||
1415 | .slaves_cnt = ARRAY_SIZE(omap3xxx_dss_slaves), | 1391 | .slaves_cnt = ARRAY_SIZE(omap3xxx_dss_slaves), |
1416 | .masters = omap3xxx_dss_masters, | 1392 | .masters = omap3xxx_dss_masters, |
1417 | .masters_cnt = ARRAY_SIZE(omap3xxx_dss_masters), | 1393 | .masters_cnt = ARRAY_SIZE(omap3xxx_dss_masters), |
1418 | .omap_chip = OMAP_CHIP_INIT(CHIP_GE_OMAP3430ES2 | | ||
1419 | CHIP_IS_OMAP3630ES1 | CHIP_GE_OMAP3630ES1_1), | ||
1420 | }; | 1394 | }; |
1421 | 1395 | ||
1422 | /* l4_core -> dss_dispc */ | 1396 | /* l4_core -> dss_dispc */ |
@@ -1454,9 +1428,6 @@ static struct omap_hwmod omap3xxx_dss_dispc_hwmod = { | |||
1454 | }, | 1428 | }, |
1455 | .slaves = omap3xxx_dss_dispc_slaves, | 1429 | .slaves = omap3xxx_dss_dispc_slaves, |
1456 | .slaves_cnt = ARRAY_SIZE(omap3xxx_dss_dispc_slaves), | 1430 | .slaves_cnt = ARRAY_SIZE(omap3xxx_dss_dispc_slaves), |
1457 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES1 | | ||
1458 | CHIP_GE_OMAP3430ES2 | CHIP_IS_OMAP3630ES1 | | ||
1459 | CHIP_GE_OMAP3630ES1_1), | ||
1460 | .flags = HWMOD_NO_IDLEST, | 1431 | .flags = HWMOD_NO_IDLEST, |
1461 | }; | 1432 | }; |
1462 | 1433 | ||
@@ -1518,9 +1489,6 @@ static struct omap_hwmod omap3xxx_dss_dsi1_hwmod = { | |||
1518 | }, | 1489 | }, |
1519 | .slaves = omap3xxx_dss_dsi1_slaves, | 1490 | .slaves = omap3xxx_dss_dsi1_slaves, |
1520 | .slaves_cnt = ARRAY_SIZE(omap3xxx_dss_dsi1_slaves), | 1491 | .slaves_cnt = ARRAY_SIZE(omap3xxx_dss_dsi1_slaves), |
1521 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES1 | | ||
1522 | CHIP_GE_OMAP3430ES2 | CHIP_IS_OMAP3630ES1 | | ||
1523 | CHIP_GE_OMAP3630ES1_1), | ||
1524 | .flags = HWMOD_NO_IDLEST, | 1492 | .flags = HWMOD_NO_IDLEST, |
1525 | }; | 1493 | }; |
1526 | 1494 | ||
@@ -1558,9 +1526,6 @@ static struct omap_hwmod omap3xxx_dss_rfbi_hwmod = { | |||
1558 | }, | 1526 | }, |
1559 | .slaves = omap3xxx_dss_rfbi_slaves, | 1527 | .slaves = omap3xxx_dss_rfbi_slaves, |
1560 | .slaves_cnt = ARRAY_SIZE(omap3xxx_dss_rfbi_slaves), | 1528 | .slaves_cnt = ARRAY_SIZE(omap3xxx_dss_rfbi_slaves), |
1561 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES1 | | ||
1562 | CHIP_GE_OMAP3430ES2 | CHIP_IS_OMAP3630ES1 | | ||
1563 | CHIP_GE_OMAP3630ES1_1), | ||
1564 | .flags = HWMOD_NO_IDLEST, | 1529 | .flags = HWMOD_NO_IDLEST, |
1565 | }; | 1530 | }; |
1566 | 1531 | ||
@@ -1599,9 +1564,6 @@ static struct omap_hwmod omap3xxx_dss_venc_hwmod = { | |||
1599 | }, | 1564 | }, |
1600 | .slaves = omap3xxx_dss_venc_slaves, | 1565 | .slaves = omap3xxx_dss_venc_slaves, |
1601 | .slaves_cnt = ARRAY_SIZE(omap3xxx_dss_venc_slaves), | 1566 | .slaves_cnt = ARRAY_SIZE(omap3xxx_dss_venc_slaves), |
1602 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES1 | | ||
1603 | CHIP_GE_OMAP3430ES2 | CHIP_IS_OMAP3630ES1 | | ||
1604 | CHIP_GE_OMAP3630ES1_1), | ||
1605 | .flags = HWMOD_NO_IDLEST, | 1567 | .flags = HWMOD_NO_IDLEST, |
1606 | }; | 1568 | }; |
1607 | 1569 | ||
@@ -1637,7 +1599,6 @@ static struct omap_hwmod omap3xxx_i2c1_hwmod = { | |||
1637 | .slaves_cnt = ARRAY_SIZE(omap3xxx_i2c1_slaves), | 1599 | .slaves_cnt = ARRAY_SIZE(omap3xxx_i2c1_slaves), |
1638 | .class = &i2c_class, | 1600 | .class = &i2c_class, |
1639 | .dev_attr = &i2c1_dev_attr, | 1601 | .dev_attr = &i2c1_dev_attr, |
1640 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
1641 | }; | 1602 | }; |
1642 | 1603 | ||
1643 | /* I2C2 */ | 1604 | /* I2C2 */ |
@@ -1672,7 +1633,6 @@ static struct omap_hwmod omap3xxx_i2c2_hwmod = { | |||
1672 | .slaves_cnt = ARRAY_SIZE(omap3xxx_i2c2_slaves), | 1633 | .slaves_cnt = ARRAY_SIZE(omap3xxx_i2c2_slaves), |
1673 | .class = &i2c_class, | 1634 | .class = &i2c_class, |
1674 | .dev_attr = &i2c2_dev_attr, | 1635 | .dev_attr = &i2c2_dev_attr, |
1675 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
1676 | }; | 1636 | }; |
1677 | 1637 | ||
1678 | /* I2C3 */ | 1638 | /* I2C3 */ |
@@ -1718,7 +1678,6 @@ static struct omap_hwmod omap3xxx_i2c3_hwmod = { | |||
1718 | .slaves_cnt = ARRAY_SIZE(omap3xxx_i2c3_slaves), | 1678 | .slaves_cnt = ARRAY_SIZE(omap3xxx_i2c3_slaves), |
1719 | .class = &i2c_class, | 1679 | .class = &i2c_class, |
1720 | .dev_attr = &i2c3_dev_attr, | 1680 | .dev_attr = &i2c3_dev_attr, |
1721 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
1722 | }; | 1681 | }; |
1723 | 1682 | ||
1724 | /* l4_wkup -> gpio1 */ | 1683 | /* l4_wkup -> gpio1 */ |
@@ -1880,7 +1839,6 @@ static struct omap_hwmod omap3xxx_gpio1_hwmod = { | |||
1880 | .slaves_cnt = ARRAY_SIZE(omap3xxx_gpio1_slaves), | 1839 | .slaves_cnt = ARRAY_SIZE(omap3xxx_gpio1_slaves), |
1881 | .class = &omap3xxx_gpio_hwmod_class, | 1840 | .class = &omap3xxx_gpio_hwmod_class, |
1882 | .dev_attr = &gpio_dev_attr, | 1841 | .dev_attr = &gpio_dev_attr, |
1883 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
1884 | }; | 1842 | }; |
1885 | 1843 | ||
1886 | /* gpio2 */ | 1844 | /* gpio2 */ |
@@ -1912,7 +1870,6 @@ static struct omap_hwmod omap3xxx_gpio2_hwmod = { | |||
1912 | .slaves_cnt = ARRAY_SIZE(omap3xxx_gpio2_slaves), | 1870 | .slaves_cnt = ARRAY_SIZE(omap3xxx_gpio2_slaves), |
1913 | .class = &omap3xxx_gpio_hwmod_class, | 1871 | .class = &omap3xxx_gpio_hwmod_class, |
1914 | .dev_attr = &gpio_dev_attr, | 1872 | .dev_attr = &gpio_dev_attr, |
1915 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
1916 | }; | 1873 | }; |
1917 | 1874 | ||
1918 | /* gpio3 */ | 1875 | /* gpio3 */ |
@@ -1944,7 +1901,6 @@ static struct omap_hwmod omap3xxx_gpio3_hwmod = { | |||
1944 | .slaves_cnt = ARRAY_SIZE(omap3xxx_gpio3_slaves), | 1901 | .slaves_cnt = ARRAY_SIZE(omap3xxx_gpio3_slaves), |
1945 | .class = &omap3xxx_gpio_hwmod_class, | 1902 | .class = &omap3xxx_gpio_hwmod_class, |
1946 | .dev_attr = &gpio_dev_attr, | 1903 | .dev_attr = &gpio_dev_attr, |
1947 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
1948 | }; | 1904 | }; |
1949 | 1905 | ||
1950 | /* gpio4 */ | 1906 | /* gpio4 */ |
@@ -1976,7 +1932,6 @@ static struct omap_hwmod omap3xxx_gpio4_hwmod = { | |||
1976 | .slaves_cnt = ARRAY_SIZE(omap3xxx_gpio4_slaves), | 1932 | .slaves_cnt = ARRAY_SIZE(omap3xxx_gpio4_slaves), |
1977 | .class = &omap3xxx_gpio_hwmod_class, | 1933 | .class = &omap3xxx_gpio_hwmod_class, |
1978 | .dev_attr = &gpio_dev_attr, | 1934 | .dev_attr = &gpio_dev_attr, |
1979 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
1980 | }; | 1935 | }; |
1981 | 1936 | ||
1982 | /* gpio5 */ | 1937 | /* gpio5 */ |
@@ -2013,7 +1968,6 @@ static struct omap_hwmod omap3xxx_gpio5_hwmod = { | |||
2013 | .slaves_cnt = ARRAY_SIZE(omap3xxx_gpio5_slaves), | 1968 | .slaves_cnt = ARRAY_SIZE(omap3xxx_gpio5_slaves), |
2014 | .class = &omap3xxx_gpio_hwmod_class, | 1969 | .class = &omap3xxx_gpio_hwmod_class, |
2015 | .dev_attr = &gpio_dev_attr, | 1970 | .dev_attr = &gpio_dev_attr, |
2016 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
2017 | }; | 1971 | }; |
2018 | 1972 | ||
2019 | /* gpio6 */ | 1973 | /* gpio6 */ |
@@ -2050,7 +2004,6 @@ static struct omap_hwmod omap3xxx_gpio6_hwmod = { | |||
2050 | .slaves_cnt = ARRAY_SIZE(omap3xxx_gpio6_slaves), | 2004 | .slaves_cnt = ARRAY_SIZE(omap3xxx_gpio6_slaves), |
2051 | .class = &omap3xxx_gpio_hwmod_class, | 2005 | .class = &omap3xxx_gpio_hwmod_class, |
2052 | .dev_attr = &gpio_dev_attr, | 2006 | .dev_attr = &gpio_dev_attr, |
2053 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
2054 | }; | 2007 | }; |
2055 | 2008 | ||
2056 | /* dma_system -> L3 */ | 2009 | /* dma_system -> L3 */ |
@@ -2134,7 +2087,6 @@ static struct omap_hwmod omap3xxx_dma_system_hwmod = { | |||
2134 | .masters = omap3xxx_dma_system_masters, | 2087 | .masters = omap3xxx_dma_system_masters, |
2135 | .masters_cnt = ARRAY_SIZE(omap3xxx_dma_system_masters), | 2088 | .masters_cnt = ARRAY_SIZE(omap3xxx_dma_system_masters), |
2136 | .dev_attr = &dma_dev_attr, | 2089 | .dev_attr = &dma_dev_attr, |
2137 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
2138 | .flags = HWMOD_NO_IDLEST, | 2090 | .flags = HWMOD_NO_IDLEST, |
2139 | }; | 2091 | }; |
2140 | 2092 | ||
@@ -2207,7 +2159,6 @@ static struct omap_hwmod omap3xxx_mcbsp1_hwmod = { | |||
2207 | }, | 2159 | }, |
2208 | .slaves = omap3xxx_mcbsp1_slaves, | 2160 | .slaves = omap3xxx_mcbsp1_slaves, |
2209 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mcbsp1_slaves), | 2161 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mcbsp1_slaves), |
2210 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
2211 | }; | 2162 | }; |
2212 | 2163 | ||
2213 | /* mcbsp2 */ | 2164 | /* mcbsp2 */ |
@@ -2264,7 +2215,6 @@ static struct omap_hwmod omap3xxx_mcbsp2_hwmod = { | |||
2264 | .slaves = omap3xxx_mcbsp2_slaves, | 2215 | .slaves = omap3xxx_mcbsp2_slaves, |
2265 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mcbsp2_slaves), | 2216 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mcbsp2_slaves), |
2266 | .dev_attr = &omap34xx_mcbsp2_dev_attr, | 2217 | .dev_attr = &omap34xx_mcbsp2_dev_attr, |
2267 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
2268 | }; | 2218 | }; |
2269 | 2219 | ||
2270 | /* mcbsp3 */ | 2220 | /* mcbsp3 */ |
@@ -2321,7 +2271,6 @@ static struct omap_hwmod omap3xxx_mcbsp3_hwmod = { | |||
2321 | .slaves = omap3xxx_mcbsp3_slaves, | 2271 | .slaves = omap3xxx_mcbsp3_slaves, |
2322 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mcbsp3_slaves), | 2272 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mcbsp3_slaves), |
2323 | .dev_attr = &omap34xx_mcbsp3_dev_attr, | 2273 | .dev_attr = &omap34xx_mcbsp3_dev_attr, |
2324 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
2325 | }; | 2274 | }; |
2326 | 2275 | ||
2327 | /* mcbsp4 */ | 2276 | /* mcbsp4 */ |
@@ -2379,7 +2328,6 @@ static struct omap_hwmod omap3xxx_mcbsp4_hwmod = { | |||
2379 | }, | 2328 | }, |
2380 | .slaves = omap3xxx_mcbsp4_slaves, | 2329 | .slaves = omap3xxx_mcbsp4_slaves, |
2381 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mcbsp4_slaves), | 2330 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mcbsp4_slaves), |
2382 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
2383 | }; | 2331 | }; |
2384 | 2332 | ||
2385 | /* mcbsp5 */ | 2333 | /* mcbsp5 */ |
@@ -2437,7 +2385,6 @@ static struct omap_hwmod omap3xxx_mcbsp5_hwmod = { | |||
2437 | }, | 2385 | }, |
2438 | .slaves = omap3xxx_mcbsp5_slaves, | 2386 | .slaves = omap3xxx_mcbsp5_slaves, |
2439 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mcbsp5_slaves), | 2387 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mcbsp5_slaves), |
2440 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
2441 | }; | 2388 | }; |
2442 | /* 'mcbsp sidetone' class */ | 2389 | /* 'mcbsp sidetone' class */ |
2443 | 2390 | ||
@@ -2498,7 +2445,6 @@ static struct omap_hwmod omap3xxx_mcbsp2_sidetone_hwmod = { | |||
2498 | }, | 2445 | }, |
2499 | .slaves = omap3xxx_mcbsp2_sidetone_slaves, | 2446 | .slaves = omap3xxx_mcbsp2_sidetone_slaves, |
2500 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mcbsp2_sidetone_slaves), | 2447 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mcbsp2_sidetone_slaves), |
2501 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
2502 | }; | 2448 | }; |
2503 | 2449 | ||
2504 | /* mcbsp3_sidetone */ | 2450 | /* mcbsp3_sidetone */ |
@@ -2547,7 +2493,6 @@ static struct omap_hwmod omap3xxx_mcbsp3_sidetone_hwmod = { | |||
2547 | }, | 2493 | }, |
2548 | .slaves = omap3xxx_mcbsp3_sidetone_slaves, | 2494 | .slaves = omap3xxx_mcbsp3_sidetone_slaves, |
2549 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mcbsp3_sidetone_slaves), | 2495 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mcbsp3_sidetone_slaves), |
2550 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
2551 | }; | 2496 | }; |
2552 | 2497 | ||
2553 | 2498 | ||
@@ -2609,9 +2554,6 @@ static struct omap_hwmod omap34xx_sr1_hwmod = { | |||
2609 | }, | 2554 | }, |
2610 | .slaves = omap3_sr1_slaves, | 2555 | .slaves = omap3_sr1_slaves, |
2611 | .slaves_cnt = ARRAY_SIZE(omap3_sr1_slaves), | 2556 | .slaves_cnt = ARRAY_SIZE(omap3_sr1_slaves), |
2612 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES2 | | ||
2613 | CHIP_IS_OMAP3430ES3_0 | | ||
2614 | CHIP_IS_OMAP3430ES3_1), | ||
2615 | .flags = HWMOD_SET_DEFAULT_CLOCKACT, | 2557 | .flags = HWMOD_SET_DEFAULT_CLOCKACT, |
2616 | }; | 2558 | }; |
2617 | 2559 | ||
@@ -2631,7 +2573,6 @@ static struct omap_hwmod omap36xx_sr1_hwmod = { | |||
2631 | }, | 2573 | }, |
2632 | .slaves = omap3_sr1_slaves, | 2574 | .slaves = omap3_sr1_slaves, |
2633 | .slaves_cnt = ARRAY_SIZE(omap3_sr1_slaves), | 2575 | .slaves_cnt = ARRAY_SIZE(omap3_sr1_slaves), |
2634 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3630ES1), | ||
2635 | }; | 2576 | }; |
2636 | 2577 | ||
2637 | /* SR2 */ | 2578 | /* SR2 */ |
@@ -2655,9 +2596,6 @@ static struct omap_hwmod omap34xx_sr2_hwmod = { | |||
2655 | }, | 2596 | }, |
2656 | .slaves = omap3_sr2_slaves, | 2597 | .slaves = omap3_sr2_slaves, |
2657 | .slaves_cnt = ARRAY_SIZE(omap3_sr2_slaves), | 2598 | .slaves_cnt = ARRAY_SIZE(omap3_sr2_slaves), |
2658 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES2 | | ||
2659 | CHIP_IS_OMAP3430ES3_0 | | ||
2660 | CHIP_IS_OMAP3430ES3_1), | ||
2661 | .flags = HWMOD_SET_DEFAULT_CLOCKACT, | 2599 | .flags = HWMOD_SET_DEFAULT_CLOCKACT, |
2662 | }; | 2600 | }; |
2663 | 2601 | ||
@@ -2677,7 +2615,6 @@ static struct omap_hwmod omap36xx_sr2_hwmod = { | |||
2677 | }, | 2615 | }, |
2678 | .slaves = omap3_sr2_slaves, | 2616 | .slaves = omap3_sr2_slaves, |
2679 | .slaves_cnt = ARRAY_SIZE(omap3_sr2_slaves), | 2617 | .slaves_cnt = ARRAY_SIZE(omap3_sr2_slaves), |
2680 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3630ES1), | ||
2681 | }; | 2618 | }; |
2682 | 2619 | ||
2683 | /* | 2620 | /* |
@@ -2745,7 +2682,6 @@ static struct omap_hwmod omap3xxx_mailbox_hwmod = { | |||
2745 | }, | 2682 | }, |
2746 | .slaves = omap3xxx_mailbox_slaves, | 2683 | .slaves = omap3xxx_mailbox_slaves, |
2747 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mailbox_slaves), | 2684 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mailbox_slaves), |
2748 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
2749 | }; | 2685 | }; |
2750 | 2686 | ||
2751 | /* l4 core -> mcspi1 interface */ | 2687 | /* l4 core -> mcspi1 interface */ |
@@ -2843,7 +2779,6 @@ static struct omap_hwmod omap34xx_mcspi1 = { | |||
2843 | .slaves_cnt = ARRAY_SIZE(omap34xx_mcspi1_slaves), | 2779 | .slaves_cnt = ARRAY_SIZE(omap34xx_mcspi1_slaves), |
2844 | .class = &omap34xx_mcspi_class, | 2780 | .class = &omap34xx_mcspi_class, |
2845 | .dev_attr = &omap_mcspi1_dev_attr, | 2781 | .dev_attr = &omap_mcspi1_dev_attr, |
2846 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
2847 | }; | 2782 | }; |
2848 | 2783 | ||
2849 | /* mcspi2 */ | 2784 | /* mcspi2 */ |
@@ -2873,7 +2808,6 @@ static struct omap_hwmod omap34xx_mcspi2 = { | |||
2873 | .slaves_cnt = ARRAY_SIZE(omap34xx_mcspi2_slaves), | 2808 | .slaves_cnt = ARRAY_SIZE(omap34xx_mcspi2_slaves), |
2874 | .class = &omap34xx_mcspi_class, | 2809 | .class = &omap34xx_mcspi_class, |
2875 | .dev_attr = &omap_mcspi2_dev_attr, | 2810 | .dev_attr = &omap_mcspi2_dev_attr, |
2876 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
2877 | }; | 2811 | }; |
2878 | 2812 | ||
2879 | /* mcspi3 */ | 2813 | /* mcspi3 */ |
@@ -2916,7 +2850,6 @@ static struct omap_hwmod omap34xx_mcspi3 = { | |||
2916 | .slaves_cnt = ARRAY_SIZE(omap34xx_mcspi3_slaves), | 2850 | .slaves_cnt = ARRAY_SIZE(omap34xx_mcspi3_slaves), |
2917 | .class = &omap34xx_mcspi_class, | 2851 | .class = &omap34xx_mcspi_class, |
2918 | .dev_attr = &omap_mcspi3_dev_attr, | 2852 | .dev_attr = &omap_mcspi3_dev_attr, |
2919 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
2920 | }; | 2853 | }; |
2921 | 2854 | ||
2922 | /* SPI4 */ | 2855 | /* SPI4 */ |
@@ -2957,7 +2890,6 @@ static struct omap_hwmod omap34xx_mcspi4 = { | |||
2957 | .slaves_cnt = ARRAY_SIZE(omap34xx_mcspi4_slaves), | 2890 | .slaves_cnt = ARRAY_SIZE(omap34xx_mcspi4_slaves), |
2958 | .class = &omap34xx_mcspi_class, | 2891 | .class = &omap34xx_mcspi_class, |
2959 | .dev_attr = &omap_mcspi4_dev_attr, | 2892 | .dev_attr = &omap_mcspi4_dev_attr, |
2960 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
2961 | }; | 2893 | }; |
2962 | 2894 | ||
2963 | /* | 2895 | /* |
@@ -3014,7 +2946,6 @@ static struct omap_hwmod omap3xxx_usbhsotg_hwmod = { | |||
3014 | */ | 2946 | */ |
3015 | .flags = HWMOD_NO_OCP_AUTOIDLE | HWMOD_SWSUP_SIDLE | 2947 | .flags = HWMOD_NO_OCP_AUTOIDLE | HWMOD_SWSUP_SIDLE |
3016 | | HWMOD_SWSUP_MSTANDBY, | 2948 | | HWMOD_SWSUP_MSTANDBY, |
3017 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430) | ||
3018 | }; | 2949 | }; |
3019 | 2950 | ||
3020 | /* usb_otg_hs */ | 2951 | /* usb_otg_hs */ |
@@ -3042,7 +2973,6 @@ static struct omap_hwmod am35xx_usbhsotg_hwmod = { | |||
3042 | .slaves = am35xx_usbhsotg_slaves, | 2973 | .slaves = am35xx_usbhsotg_slaves, |
3043 | .slaves_cnt = ARRAY_SIZE(am35xx_usbhsotg_slaves), | 2974 | .slaves_cnt = ARRAY_SIZE(am35xx_usbhsotg_slaves), |
3044 | .class = &am35xx_usbotg_class, | 2975 | .class = &am35xx_usbotg_class, |
3045 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES3_1) | ||
3046 | }; | 2976 | }; |
3047 | 2977 | ||
3048 | /* MMC/SD/SDIO common */ | 2978 | /* MMC/SD/SDIO common */ |
@@ -3108,7 +3038,6 @@ static struct omap_hwmod omap3xxx_mmc1_hwmod = { | |||
3108 | .slaves = omap3xxx_mmc1_slaves, | 3038 | .slaves = omap3xxx_mmc1_slaves, |
3109 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mmc1_slaves), | 3039 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mmc1_slaves), |
3110 | .class = &omap34xx_mmc_class, | 3040 | .class = &omap34xx_mmc_class, |
3111 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
3112 | }; | 3041 | }; |
3113 | 3042 | ||
3114 | /* MMC/SD/SDIO2 */ | 3043 | /* MMC/SD/SDIO2 */ |
@@ -3151,7 +3080,6 @@ static struct omap_hwmod omap3xxx_mmc2_hwmod = { | |||
3151 | .slaves = omap3xxx_mmc2_slaves, | 3080 | .slaves = omap3xxx_mmc2_slaves, |
3152 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mmc2_slaves), | 3081 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mmc2_slaves), |
3153 | .class = &omap34xx_mmc_class, | 3082 | .class = &omap34xx_mmc_class, |
3154 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
3155 | }; | 3083 | }; |
3156 | 3084 | ||
3157 | /* MMC/SD/SDIO3 */ | 3085 | /* MMC/SD/SDIO3 */ |
@@ -3193,7 +3121,6 @@ static struct omap_hwmod omap3xxx_mmc3_hwmod = { | |||
3193 | .slaves = omap3xxx_mmc3_slaves, | 3121 | .slaves = omap3xxx_mmc3_slaves, |
3194 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mmc3_slaves), | 3122 | .slaves_cnt = ARRAY_SIZE(omap3xxx_mmc3_slaves), |
3195 | .class = &omap34xx_mmc_class, | 3123 | .class = &omap34xx_mmc_class, |
3196 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
3197 | }; | 3124 | }; |
3198 | 3125 | ||
3199 | static __initdata struct omap_hwmod *omap3xxx_hwmods[] = { | 3126 | static __initdata struct omap_hwmod *omap3xxx_hwmods[] = { |
@@ -3224,10 +3151,7 @@ static __initdata struct omap_hwmod *omap3xxx_hwmods[] = { | |||
3224 | &omap3xxx_uart1_hwmod, | 3151 | &omap3xxx_uart1_hwmod, |
3225 | &omap3xxx_uart2_hwmod, | 3152 | &omap3xxx_uart2_hwmod, |
3226 | &omap3xxx_uart3_hwmod, | 3153 | &omap3xxx_uart3_hwmod, |
3227 | &omap3xxx_uart4_hwmod, | ||
3228 | /* dss class */ | 3154 | /* dss class */ |
3229 | &omap3430es1_dss_core_hwmod, | ||
3230 | &omap3xxx_dss_core_hwmod, | ||
3231 | &omap3xxx_dss_dispc_hwmod, | 3155 | &omap3xxx_dss_dispc_hwmod, |
3232 | &omap3xxx_dss_dsi1_hwmod, | 3156 | &omap3xxx_dss_dsi1_hwmod, |
3233 | &omap3xxx_dss_rfbi_hwmod, | 3157 | &omap3xxx_dss_rfbi_hwmod, |
@@ -3239,9 +3163,6 @@ static __initdata struct omap_hwmod *omap3xxx_hwmods[] = { | |||
3239 | &omap3xxx_i2c3_hwmod, | 3163 | &omap3xxx_i2c3_hwmod, |
3240 | &omap34xx_sr1_hwmod, | 3164 | &omap34xx_sr1_hwmod, |
3241 | &omap34xx_sr2_hwmod, | 3165 | &omap34xx_sr2_hwmod, |
3242 | &omap36xx_sr1_hwmod, | ||
3243 | &omap36xx_sr2_hwmod, | ||
3244 | |||
3245 | 3166 | ||
3246 | /* gpio class */ | 3167 | /* gpio class */ |
3247 | &omap3xxx_gpio1_hwmod, | 3168 | &omap3xxx_gpio1_hwmod, |
@@ -3272,16 +3193,96 @@ static __initdata struct omap_hwmod *omap3xxx_hwmods[] = { | |||
3272 | &omap34xx_mcspi3, | 3193 | &omap34xx_mcspi3, |
3273 | &omap34xx_mcspi4, | 3194 | &omap34xx_mcspi4, |
3274 | 3195 | ||
3275 | /* usbotg class */ | 3196 | NULL, |
3197 | }; | ||
3198 | |||
3199 | /* 3430ES1-only hwmods */ | ||
3200 | static __initdata struct omap_hwmod *omap3430es1_hwmods[] = { | ||
3201 | &omap3430es1_dss_core_hwmod, | ||
3202 | NULL | ||
3203 | }; | ||
3204 | |||
3205 | /* 3430ES2+-only hwmods */ | ||
3206 | static __initdata struct omap_hwmod *omap3430es2plus_hwmods[] = { | ||
3207 | &omap3xxx_dss_core_hwmod, | ||
3276 | &omap3xxx_usbhsotg_hwmod, | 3208 | &omap3xxx_usbhsotg_hwmod, |
3209 | NULL | ||
3210 | }; | ||
3277 | 3211 | ||
3278 | /* usbotg for am35x */ | 3212 | /* 34xx-only hwmods (all ES revisions) */ |
3279 | &am35xx_usbhsotg_hwmod, | 3213 | static __initdata struct omap_hwmod *omap34xx_hwmods[] = { |
3214 | &omap34xx_sr1_hwmod, | ||
3215 | &omap34xx_sr2_hwmod, | ||
3216 | NULL | ||
3217 | }; | ||
3280 | 3218 | ||
3281 | NULL, | 3219 | /* 36xx-only hwmods (all ES revisions) */ |
3220 | static __initdata struct omap_hwmod *omap36xx_hwmods[] = { | ||
3221 | &omap3xxx_uart4_hwmod, | ||
3222 | &omap3xxx_dss_core_hwmod, | ||
3223 | &omap36xx_sr1_hwmod, | ||
3224 | &omap36xx_sr2_hwmod, | ||
3225 | &omap3xxx_usbhsotg_hwmod, | ||
3226 | NULL | ||
3227 | }; | ||
3228 | |||
3229 | static __initdata struct omap_hwmod *am35xx_hwmods[] = { | ||
3230 | &omap3xxx_dss_core_hwmod, /* XXX ??? */ | ||
3231 | &am35xx_usbhsotg_hwmod, | ||
3232 | NULL | ||
3282 | }; | 3233 | }; |
3283 | 3234 | ||
3284 | int __init omap3xxx_hwmod_init(void) | 3235 | int __init omap3xxx_hwmod_init(void) |
3285 | { | 3236 | { |
3286 | return omap_hwmod_register(omap3xxx_hwmods); | 3237 | int r; |
3238 | struct omap_hwmod **h = NULL; | ||
3239 | unsigned int rev; | ||
3240 | |||
3241 | /* Register hwmods common to all OMAP3 */ | ||
3242 | r = omap_hwmod_register(omap3xxx_hwmods); | ||
3243 | if (!r) | ||
3244 | return r; | ||
3245 | |||
3246 | rev = omap_rev(); | ||
3247 | |||
3248 | /* | ||
3249 | * Register hwmods common to individual OMAP3 families, all | ||
3250 | * silicon revisions (e.g., 34xx, or AM3505/3517, or 36xx) | ||
3251 | * All possible revisions should be included in this conditional. | ||
3252 | */ | ||
3253 | if (rev == OMAP3430_REV_ES1_0 || rev == OMAP3430_REV_ES2_0 || | ||
3254 | rev == OMAP3430_REV_ES2_1 || rev == OMAP3430_REV_ES3_0 || | ||
3255 | rev == OMAP3430_REV_ES3_1 || rev == OMAP3430_REV_ES3_1_2) { | ||
3256 | h = omap34xx_hwmods; | ||
3257 | } else if (rev == OMAP3517_REV_ES1_0 || rev == OMAP3517_REV_ES1_1) { | ||
3258 | h = am35xx_hwmods; | ||
3259 | } else if (rev == OMAP3630_REV_ES1_0 || rev == OMAP3630_REV_ES1_1 || | ||
3260 | rev == OMAP3630_REV_ES1_2) { | ||
3261 | h = omap36xx_hwmods; | ||
3262 | } else { | ||
3263 | WARN(1, "OMAP3 hwmod family init: unknown chip type\n"); | ||
3264 | return -EINVAL; | ||
3265 | }; | ||
3266 | |||
3267 | r = omap_hwmod_register(h); | ||
3268 | if (!r) | ||
3269 | return r; | ||
3270 | |||
3271 | /* | ||
3272 | * Register hwmods specific to certain ES levels of a | ||
3273 | * particular family of silicon (e.g., 34xx ES1.0) | ||
3274 | */ | ||
3275 | h = NULL; | ||
3276 | if (rev == OMAP3430_REV_ES1_0) { | ||
3277 | h = omap3430es1_hwmods; | ||
3278 | } else if (rev == OMAP3430_REV_ES2_0 || rev == OMAP3430_REV_ES2_1 || | ||
3279 | rev == OMAP3430_REV_ES3_0 || rev == OMAP3430_REV_ES3_1 || | ||
3280 | rev == OMAP3430_REV_ES3_1_2) { | ||
3281 | h = omap3430es2plus_hwmods; | ||
3282 | }; | ||
3283 | |||
3284 | if (h) | ||
3285 | r = omap_hwmod_register(h); | ||
3286 | |||
3287 | return r; | ||
3287 | } | 3288 | } |
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c index 6201422c0606..caaf40911dd4 100644 --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c | |||
@@ -133,7 +133,6 @@ static struct omap_hwmod omap44xx_dmm_hwmod = { | |||
133 | .slaves = omap44xx_dmm_slaves, | 133 | .slaves = omap44xx_dmm_slaves, |
134 | .slaves_cnt = ARRAY_SIZE(omap44xx_dmm_slaves), | 134 | .slaves_cnt = ARRAY_SIZE(omap44xx_dmm_slaves), |
135 | .mpu_irqs = omap44xx_dmm_irqs, | 135 | .mpu_irqs = omap44xx_dmm_irqs, |
136 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
137 | }; | 136 | }; |
138 | 137 | ||
139 | /* | 138 | /* |
@@ -189,7 +188,6 @@ static struct omap_hwmod omap44xx_emif_fw_hwmod = { | |||
189 | }, | 188 | }, |
190 | .slaves = omap44xx_emif_fw_slaves, | 189 | .slaves = omap44xx_emif_fw_slaves, |
191 | .slaves_cnt = ARRAY_SIZE(omap44xx_emif_fw_slaves), | 190 | .slaves_cnt = ARRAY_SIZE(omap44xx_emif_fw_slaves), |
192 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
193 | }; | 191 | }; |
194 | 192 | ||
195 | /* | 193 | /* |
@@ -236,7 +234,6 @@ static struct omap_hwmod omap44xx_l3_instr_hwmod = { | |||
236 | }, | 234 | }, |
237 | .slaves = omap44xx_l3_instr_slaves, | 235 | .slaves = omap44xx_l3_instr_slaves, |
238 | .slaves_cnt = ARRAY_SIZE(omap44xx_l3_instr_slaves), | 236 | .slaves_cnt = ARRAY_SIZE(omap44xx_l3_instr_slaves), |
239 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
240 | }; | 237 | }; |
241 | 238 | ||
242 | /* l3_main_1 */ | 239 | /* l3_main_1 */ |
@@ -336,7 +333,6 @@ static struct omap_hwmod omap44xx_l3_main_1_hwmod = { | |||
336 | }, | 333 | }, |
337 | .slaves = omap44xx_l3_main_1_slaves, | 334 | .slaves = omap44xx_l3_main_1_slaves, |
338 | .slaves_cnt = ARRAY_SIZE(omap44xx_l3_main_1_slaves), | 335 | .slaves_cnt = ARRAY_SIZE(omap44xx_l3_main_1_slaves), |
339 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
340 | }; | 336 | }; |
341 | 337 | ||
342 | /* l3_main_2 */ | 338 | /* l3_main_2 */ |
@@ -438,7 +434,6 @@ static struct omap_hwmod omap44xx_l3_main_2_hwmod = { | |||
438 | }, | 434 | }, |
439 | .slaves = omap44xx_l3_main_2_slaves, | 435 | .slaves = omap44xx_l3_main_2_slaves, |
440 | .slaves_cnt = ARRAY_SIZE(omap44xx_l3_main_2_slaves), | 436 | .slaves_cnt = ARRAY_SIZE(omap44xx_l3_main_2_slaves), |
441 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
442 | }; | 437 | }; |
443 | 438 | ||
444 | /* l3_main_3 */ | 439 | /* l3_main_3 */ |
@@ -496,7 +491,6 @@ static struct omap_hwmod omap44xx_l3_main_3_hwmod = { | |||
496 | }, | 491 | }, |
497 | .slaves = omap44xx_l3_main_3_slaves, | 492 | .slaves = omap44xx_l3_main_3_slaves, |
498 | .slaves_cnt = ARRAY_SIZE(omap44xx_l3_main_3_slaves), | 493 | .slaves_cnt = ARRAY_SIZE(omap44xx_l3_main_3_slaves), |
499 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
500 | }; | 494 | }; |
501 | 495 | ||
502 | /* | 496 | /* |
@@ -559,7 +553,6 @@ static struct omap_hwmod omap44xx_l4_abe_hwmod = { | |||
559 | }, | 553 | }, |
560 | .slaves = omap44xx_l4_abe_slaves, | 554 | .slaves = omap44xx_l4_abe_slaves, |
561 | .slaves_cnt = ARRAY_SIZE(omap44xx_l4_abe_slaves), | 555 | .slaves_cnt = ARRAY_SIZE(omap44xx_l4_abe_slaves), |
562 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
563 | }; | 556 | }; |
564 | 557 | ||
565 | /* l4_cfg */ | 558 | /* l4_cfg */ |
@@ -588,7 +581,6 @@ static struct omap_hwmod omap44xx_l4_cfg_hwmod = { | |||
588 | }, | 581 | }, |
589 | .slaves = omap44xx_l4_cfg_slaves, | 582 | .slaves = omap44xx_l4_cfg_slaves, |
590 | .slaves_cnt = ARRAY_SIZE(omap44xx_l4_cfg_slaves), | 583 | .slaves_cnt = ARRAY_SIZE(omap44xx_l4_cfg_slaves), |
591 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
592 | }; | 584 | }; |
593 | 585 | ||
594 | /* l4_per */ | 586 | /* l4_per */ |
@@ -617,7 +609,6 @@ static struct omap_hwmod omap44xx_l4_per_hwmod = { | |||
617 | }, | 609 | }, |
618 | .slaves = omap44xx_l4_per_slaves, | 610 | .slaves = omap44xx_l4_per_slaves, |
619 | .slaves_cnt = ARRAY_SIZE(omap44xx_l4_per_slaves), | 611 | .slaves_cnt = ARRAY_SIZE(omap44xx_l4_per_slaves), |
620 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
621 | }; | 612 | }; |
622 | 613 | ||
623 | /* l4_wkup */ | 614 | /* l4_wkup */ |
@@ -646,7 +637,6 @@ static struct omap_hwmod omap44xx_l4_wkup_hwmod = { | |||
646 | }, | 637 | }, |
647 | .slaves = omap44xx_l4_wkup_slaves, | 638 | .slaves = omap44xx_l4_wkup_slaves, |
648 | .slaves_cnt = ARRAY_SIZE(omap44xx_l4_wkup_slaves), | 639 | .slaves_cnt = ARRAY_SIZE(omap44xx_l4_wkup_slaves), |
649 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
650 | }; | 640 | }; |
651 | 641 | ||
652 | /* | 642 | /* |
@@ -677,7 +667,6 @@ static struct omap_hwmod omap44xx_mpu_private_hwmod = { | |||
677 | .clkdm_name = "mpuss_clkdm", | 667 | .clkdm_name = "mpuss_clkdm", |
678 | .slaves = omap44xx_mpu_private_slaves, | 668 | .slaves = omap44xx_mpu_private_slaves, |
679 | .slaves_cnt = ARRAY_SIZE(omap44xx_mpu_private_slaves), | 669 | .slaves_cnt = ARRAY_SIZE(omap44xx_mpu_private_slaves), |
680 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
681 | }; | 670 | }; |
682 | 671 | ||
683 | /* | 672 | /* |
@@ -828,7 +817,6 @@ static struct omap_hwmod omap44xx_aess_hwmod = { | |||
828 | .slaves_cnt = ARRAY_SIZE(omap44xx_aess_slaves), | 817 | .slaves_cnt = ARRAY_SIZE(omap44xx_aess_slaves), |
829 | .masters = omap44xx_aess_masters, | 818 | .masters = omap44xx_aess_masters, |
830 | .masters_cnt = ARRAY_SIZE(omap44xx_aess_masters), | 819 | .masters_cnt = ARRAY_SIZE(omap44xx_aess_masters), |
831 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
832 | }; | 820 | }; |
833 | 821 | ||
834 | /* | 822 | /* |
@@ -856,7 +844,6 @@ static struct omap_hwmod omap44xx_bandgap_hwmod = { | |||
856 | }, | 844 | }, |
857 | .opt_clks = bandgap_opt_clks, | 845 | .opt_clks = bandgap_opt_clks, |
858 | .opt_clks_cnt = ARRAY_SIZE(bandgap_opt_clks), | 846 | .opt_clks_cnt = ARRAY_SIZE(bandgap_opt_clks), |
859 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
860 | }; | 847 | }; |
861 | 848 | ||
862 | /* | 849 | /* |
@@ -917,7 +904,6 @@ static struct omap_hwmod omap44xx_counter_32k_hwmod = { | |||
917 | }, | 904 | }, |
918 | .slaves = omap44xx_counter_32k_slaves, | 905 | .slaves = omap44xx_counter_32k_slaves, |
919 | .slaves_cnt = ARRAY_SIZE(omap44xx_counter_32k_slaves), | 906 | .slaves_cnt = ARRAY_SIZE(omap44xx_counter_32k_slaves), |
920 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
921 | }; | 907 | }; |
922 | 908 | ||
923 | /* | 909 | /* |
@@ -1005,7 +991,6 @@ static struct omap_hwmod omap44xx_dma_system_hwmod = { | |||
1005 | .slaves_cnt = ARRAY_SIZE(omap44xx_dma_system_slaves), | 991 | .slaves_cnt = ARRAY_SIZE(omap44xx_dma_system_slaves), |
1006 | .masters = omap44xx_dma_system_masters, | 992 | .masters = omap44xx_dma_system_masters, |
1007 | .masters_cnt = ARRAY_SIZE(omap44xx_dma_system_masters), | 993 | .masters_cnt = ARRAY_SIZE(omap44xx_dma_system_masters), |
1008 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
1009 | }; | 994 | }; |
1010 | 995 | ||
1011 | /* | 996 | /* |
@@ -1098,7 +1083,6 @@ static struct omap_hwmod omap44xx_dmic_hwmod = { | |||
1098 | }, | 1083 | }, |
1099 | .slaves = omap44xx_dmic_slaves, | 1084 | .slaves = omap44xx_dmic_slaves, |
1100 | .slaves_cnt = ARRAY_SIZE(omap44xx_dmic_slaves), | 1085 | .slaves_cnt = ARRAY_SIZE(omap44xx_dmic_slaves), |
1101 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
1102 | }; | 1086 | }; |
1103 | 1087 | ||
1104 | /* | 1088 | /* |
@@ -1164,7 +1148,6 @@ static struct omap_hwmod omap44xx_dsp_c0_hwmod = { | |||
1164 | .rstctrl_offs = OMAP4_RM_TESLA_RSTCTRL_OFFSET, | 1148 | .rstctrl_offs = OMAP4_RM_TESLA_RSTCTRL_OFFSET, |
1165 | }, | 1149 | }, |
1166 | }, | 1150 | }, |
1167 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
1168 | }; | 1151 | }; |
1169 | 1152 | ||
1170 | static struct omap_hwmod omap44xx_dsp_hwmod = { | 1153 | static struct omap_hwmod omap44xx_dsp_hwmod = { |
@@ -1187,7 +1170,6 @@ static struct omap_hwmod omap44xx_dsp_hwmod = { | |||
1187 | .slaves_cnt = ARRAY_SIZE(omap44xx_dsp_slaves), | 1170 | .slaves_cnt = ARRAY_SIZE(omap44xx_dsp_slaves), |
1188 | .masters = omap44xx_dsp_masters, | 1171 | .masters = omap44xx_dsp_masters, |
1189 | .masters_cnt = ARRAY_SIZE(omap44xx_dsp_masters), | 1172 | .masters_cnt = ARRAY_SIZE(omap44xx_dsp_masters), |
1190 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
1191 | }; | 1173 | }; |
1192 | 1174 | ||
1193 | /* | 1175 | /* |
@@ -1278,7 +1260,6 @@ static struct omap_hwmod omap44xx_dss_hwmod = { | |||
1278 | .slaves_cnt = ARRAY_SIZE(omap44xx_dss_slaves), | 1260 | .slaves_cnt = ARRAY_SIZE(omap44xx_dss_slaves), |
1279 | .masters = omap44xx_dss_masters, | 1261 | .masters = omap44xx_dss_masters, |
1280 | .masters_cnt = ARRAY_SIZE(omap44xx_dss_masters), | 1262 | .masters_cnt = ARRAY_SIZE(omap44xx_dss_masters), |
1281 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
1282 | }; | 1263 | }; |
1283 | 1264 | ||
1284 | /* | 1265 | /* |
@@ -1381,7 +1362,6 @@ static struct omap_hwmod omap44xx_dss_dispc_hwmod = { | |||
1381 | .opt_clks_cnt = ARRAY_SIZE(dss_dispc_opt_clks), | 1362 | .opt_clks_cnt = ARRAY_SIZE(dss_dispc_opt_clks), |
1382 | .slaves = omap44xx_dss_dispc_slaves, | 1363 | .slaves = omap44xx_dss_dispc_slaves, |
1383 | .slaves_cnt = ARRAY_SIZE(omap44xx_dss_dispc_slaves), | 1364 | .slaves_cnt = ARRAY_SIZE(omap44xx_dss_dispc_slaves), |
1384 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
1385 | }; | 1365 | }; |
1386 | 1366 | ||
1387 | /* | 1367 | /* |
@@ -1480,7 +1460,6 @@ static struct omap_hwmod omap44xx_dss_dsi1_hwmod = { | |||
1480 | .opt_clks_cnt = ARRAY_SIZE(dss_dsi1_opt_clks), | 1460 | .opt_clks_cnt = ARRAY_SIZE(dss_dsi1_opt_clks), |
1481 | .slaves = omap44xx_dss_dsi1_slaves, | 1461 | .slaves = omap44xx_dss_dsi1_slaves, |
1482 | .slaves_cnt = ARRAY_SIZE(omap44xx_dss_dsi1_slaves), | 1462 | .slaves_cnt = ARRAY_SIZE(omap44xx_dss_dsi1_slaves), |
1483 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
1484 | }; | 1463 | }; |
1485 | 1464 | ||
1486 | /* dss_dsi2 */ | 1465 | /* dss_dsi2 */ |
@@ -1558,7 +1537,6 @@ static struct omap_hwmod omap44xx_dss_dsi2_hwmod = { | |||
1558 | .opt_clks_cnt = ARRAY_SIZE(dss_dsi2_opt_clks), | 1537 | .opt_clks_cnt = ARRAY_SIZE(dss_dsi2_opt_clks), |
1559 | .slaves = omap44xx_dss_dsi2_slaves, | 1538 | .slaves = omap44xx_dss_dsi2_slaves, |
1560 | .slaves_cnt = ARRAY_SIZE(omap44xx_dss_dsi2_slaves), | 1539 | .slaves_cnt = ARRAY_SIZE(omap44xx_dss_dsi2_slaves), |
1561 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
1562 | }; | 1540 | }; |
1563 | 1541 | ||
1564 | /* | 1542 | /* |
@@ -1656,7 +1634,6 @@ static struct omap_hwmod omap44xx_dss_hdmi_hwmod = { | |||
1656 | .opt_clks_cnt = ARRAY_SIZE(dss_hdmi_opt_clks), | 1634 | .opt_clks_cnt = ARRAY_SIZE(dss_hdmi_opt_clks), |
1657 | .slaves = omap44xx_dss_hdmi_slaves, | 1635 | .slaves = omap44xx_dss_hdmi_slaves, |
1658 | .slaves_cnt = ARRAY_SIZE(omap44xx_dss_hdmi_slaves), | 1636 | .slaves_cnt = ARRAY_SIZE(omap44xx_dss_hdmi_slaves), |
1659 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
1660 | }; | 1637 | }; |
1661 | 1638 | ||
1662 | /* | 1639 | /* |
@@ -1748,7 +1725,6 @@ static struct omap_hwmod omap44xx_dss_rfbi_hwmod = { | |||
1748 | .opt_clks_cnt = ARRAY_SIZE(dss_rfbi_opt_clks), | 1725 | .opt_clks_cnt = ARRAY_SIZE(dss_rfbi_opt_clks), |
1749 | .slaves = omap44xx_dss_rfbi_slaves, | 1726 | .slaves = omap44xx_dss_rfbi_slaves, |
1750 | .slaves_cnt = ARRAY_SIZE(omap44xx_dss_rfbi_slaves), | 1727 | .slaves_cnt = ARRAY_SIZE(omap44xx_dss_rfbi_slaves), |
1751 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
1752 | }; | 1728 | }; |
1753 | 1729 | ||
1754 | /* | 1730 | /* |
@@ -1817,7 +1793,6 @@ static struct omap_hwmod omap44xx_dss_venc_hwmod = { | |||
1817 | }, | 1793 | }, |
1818 | .slaves = omap44xx_dss_venc_slaves, | 1794 | .slaves = omap44xx_dss_venc_slaves, |
1819 | .slaves_cnt = ARRAY_SIZE(omap44xx_dss_venc_slaves), | 1795 | .slaves_cnt = ARRAY_SIZE(omap44xx_dss_venc_slaves), |
1820 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
1821 | }; | 1796 | }; |
1822 | 1797 | ||
1823 | /* | 1798 | /* |
@@ -1901,7 +1876,6 @@ static struct omap_hwmod omap44xx_gpio1_hwmod = { | |||
1901 | .dev_attr = &gpio_dev_attr, | 1876 | .dev_attr = &gpio_dev_attr, |
1902 | .slaves = omap44xx_gpio1_slaves, | 1877 | .slaves = omap44xx_gpio1_slaves, |
1903 | .slaves_cnt = ARRAY_SIZE(omap44xx_gpio1_slaves), | 1878 | .slaves_cnt = ARRAY_SIZE(omap44xx_gpio1_slaves), |
1904 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
1905 | }; | 1879 | }; |
1906 | 1880 | ||
1907 | /* gpio2 */ | 1881 | /* gpio2 */ |
@@ -1957,7 +1931,6 @@ static struct omap_hwmod omap44xx_gpio2_hwmod = { | |||
1957 | .dev_attr = &gpio_dev_attr, | 1931 | .dev_attr = &gpio_dev_attr, |
1958 | .slaves = omap44xx_gpio2_slaves, | 1932 | .slaves = omap44xx_gpio2_slaves, |
1959 | .slaves_cnt = ARRAY_SIZE(omap44xx_gpio2_slaves), | 1933 | .slaves_cnt = ARRAY_SIZE(omap44xx_gpio2_slaves), |
1960 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
1961 | }; | 1934 | }; |
1962 | 1935 | ||
1963 | /* gpio3 */ | 1936 | /* gpio3 */ |
@@ -2013,7 +1986,6 @@ static struct omap_hwmod omap44xx_gpio3_hwmod = { | |||
2013 | .dev_attr = &gpio_dev_attr, | 1986 | .dev_attr = &gpio_dev_attr, |
2014 | .slaves = omap44xx_gpio3_slaves, | 1987 | .slaves = omap44xx_gpio3_slaves, |
2015 | .slaves_cnt = ARRAY_SIZE(omap44xx_gpio3_slaves), | 1988 | .slaves_cnt = ARRAY_SIZE(omap44xx_gpio3_slaves), |
2016 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
2017 | }; | 1989 | }; |
2018 | 1990 | ||
2019 | /* gpio4 */ | 1991 | /* gpio4 */ |
@@ -2069,7 +2041,6 @@ static struct omap_hwmod omap44xx_gpio4_hwmod = { | |||
2069 | .dev_attr = &gpio_dev_attr, | 2041 | .dev_attr = &gpio_dev_attr, |
2070 | .slaves = omap44xx_gpio4_slaves, | 2042 | .slaves = omap44xx_gpio4_slaves, |
2071 | .slaves_cnt = ARRAY_SIZE(omap44xx_gpio4_slaves), | 2043 | .slaves_cnt = ARRAY_SIZE(omap44xx_gpio4_slaves), |
2072 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
2073 | }; | 2044 | }; |
2074 | 2045 | ||
2075 | /* gpio5 */ | 2046 | /* gpio5 */ |
@@ -2125,7 +2096,6 @@ static struct omap_hwmod omap44xx_gpio5_hwmod = { | |||
2125 | .dev_attr = &gpio_dev_attr, | 2096 | .dev_attr = &gpio_dev_attr, |
2126 | .slaves = omap44xx_gpio5_slaves, | 2097 | .slaves = omap44xx_gpio5_slaves, |
2127 | .slaves_cnt = ARRAY_SIZE(omap44xx_gpio5_slaves), | 2098 | .slaves_cnt = ARRAY_SIZE(omap44xx_gpio5_slaves), |
2128 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
2129 | }; | 2099 | }; |
2130 | 2100 | ||
2131 | /* gpio6 */ | 2101 | /* gpio6 */ |
@@ -2181,7 +2151,6 @@ static struct omap_hwmod omap44xx_gpio6_hwmod = { | |||
2181 | .dev_attr = &gpio_dev_attr, | 2151 | .dev_attr = &gpio_dev_attr, |
2182 | .slaves = omap44xx_gpio6_slaves, | 2152 | .slaves = omap44xx_gpio6_slaves, |
2183 | .slaves_cnt = ARRAY_SIZE(omap44xx_gpio6_slaves), | 2153 | .slaves_cnt = ARRAY_SIZE(omap44xx_gpio6_slaves), |
2184 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
2185 | }; | 2154 | }; |
2186 | 2155 | ||
2187 | /* | 2156 | /* |
@@ -2261,7 +2230,6 @@ static struct omap_hwmod omap44xx_hsi_hwmod = { | |||
2261 | .slaves_cnt = ARRAY_SIZE(omap44xx_hsi_slaves), | 2230 | .slaves_cnt = ARRAY_SIZE(omap44xx_hsi_slaves), |
2262 | .masters = omap44xx_hsi_masters, | 2231 | .masters = omap44xx_hsi_masters, |
2263 | .masters_cnt = ARRAY_SIZE(omap44xx_hsi_masters), | 2232 | .masters_cnt = ARRAY_SIZE(omap44xx_hsi_masters), |
2264 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
2265 | }; | 2233 | }; |
2266 | 2234 | ||
2267 | /* | 2235 | /* |
@@ -2345,7 +2313,6 @@ static struct omap_hwmod omap44xx_i2c1_hwmod = { | |||
2345 | .slaves = omap44xx_i2c1_slaves, | 2313 | .slaves = omap44xx_i2c1_slaves, |
2346 | .slaves_cnt = ARRAY_SIZE(omap44xx_i2c1_slaves), | 2314 | .slaves_cnt = ARRAY_SIZE(omap44xx_i2c1_slaves), |
2347 | .dev_attr = &i2c_dev_attr, | 2315 | .dev_attr = &i2c_dev_attr, |
2348 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
2349 | }; | 2316 | }; |
2350 | 2317 | ||
2351 | /* i2c2 */ | 2318 | /* i2c2 */ |
@@ -2402,7 +2369,6 @@ static struct omap_hwmod omap44xx_i2c2_hwmod = { | |||
2402 | .slaves = omap44xx_i2c2_slaves, | 2369 | .slaves = omap44xx_i2c2_slaves, |
2403 | .slaves_cnt = ARRAY_SIZE(omap44xx_i2c2_slaves), | 2370 | .slaves_cnt = ARRAY_SIZE(omap44xx_i2c2_slaves), |
2404 | .dev_attr = &i2c_dev_attr, | 2371 | .dev_attr = &i2c_dev_attr, |
2405 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
2406 | }; | 2372 | }; |
2407 | 2373 | ||
2408 | /* i2c3 */ | 2374 | /* i2c3 */ |
@@ -2459,7 +2425,6 @@ static struct omap_hwmod omap44xx_i2c3_hwmod = { | |||
2459 | .slaves = omap44xx_i2c3_slaves, | 2425 | .slaves = omap44xx_i2c3_slaves, |
2460 | .slaves_cnt = ARRAY_SIZE(omap44xx_i2c3_slaves), | 2426 | .slaves_cnt = ARRAY_SIZE(omap44xx_i2c3_slaves), |
2461 | .dev_attr = &i2c_dev_attr, | 2427 | .dev_attr = &i2c_dev_attr, |
2462 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
2463 | }; | 2428 | }; |
2464 | 2429 | ||
2465 | /* i2c4 */ | 2430 | /* i2c4 */ |
@@ -2516,7 +2481,6 @@ static struct omap_hwmod omap44xx_i2c4_hwmod = { | |||
2516 | .slaves = omap44xx_i2c4_slaves, | 2481 | .slaves = omap44xx_i2c4_slaves, |
2517 | .slaves_cnt = ARRAY_SIZE(omap44xx_i2c4_slaves), | 2482 | .slaves_cnt = ARRAY_SIZE(omap44xx_i2c4_slaves), |
2518 | .dev_attr = &i2c_dev_attr, | 2483 | .dev_attr = &i2c_dev_attr, |
2519 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
2520 | }; | 2484 | }; |
2521 | 2485 | ||
2522 | /* | 2486 | /* |
@@ -2577,7 +2541,6 @@ static struct omap_hwmod omap44xx_ipu_c0_hwmod = { | |||
2577 | .rstctrl_offs = OMAP4_RM_DUCATI_RSTCTRL_OFFSET, | 2541 | .rstctrl_offs = OMAP4_RM_DUCATI_RSTCTRL_OFFSET, |
2578 | }, | 2542 | }, |
2579 | }, | 2543 | }, |
2580 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
2581 | }; | 2544 | }; |
2582 | 2545 | ||
2583 | /* Pseudo hwmod for reset control purpose only */ | 2546 | /* Pseudo hwmod for reset control purpose only */ |
@@ -2593,7 +2556,6 @@ static struct omap_hwmod omap44xx_ipu_c1_hwmod = { | |||
2593 | .rstctrl_offs = OMAP4_RM_DUCATI_RSTCTRL_OFFSET, | 2556 | .rstctrl_offs = OMAP4_RM_DUCATI_RSTCTRL_OFFSET, |
2594 | }, | 2557 | }, |
2595 | }, | 2558 | }, |
2596 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
2597 | }; | 2559 | }; |
2598 | 2560 | ||
2599 | static struct omap_hwmod omap44xx_ipu_hwmod = { | 2561 | static struct omap_hwmod omap44xx_ipu_hwmod = { |
@@ -2616,7 +2578,6 @@ static struct omap_hwmod omap44xx_ipu_hwmod = { | |||
2616 | .slaves_cnt = ARRAY_SIZE(omap44xx_ipu_slaves), | 2578 | .slaves_cnt = ARRAY_SIZE(omap44xx_ipu_slaves), |
2617 | .masters = omap44xx_ipu_masters, | 2579 | .masters = omap44xx_ipu_masters, |
2618 | .masters_cnt = ARRAY_SIZE(omap44xx_ipu_masters), | 2580 | .masters_cnt = ARRAY_SIZE(omap44xx_ipu_masters), |
2619 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
2620 | }; | 2581 | }; |
2621 | 2582 | ||
2622 | /* | 2583 | /* |
@@ -2706,7 +2667,6 @@ static struct omap_hwmod omap44xx_iss_hwmod = { | |||
2706 | .slaves_cnt = ARRAY_SIZE(omap44xx_iss_slaves), | 2667 | .slaves_cnt = ARRAY_SIZE(omap44xx_iss_slaves), |
2707 | .masters = omap44xx_iss_masters, | 2668 | .masters = omap44xx_iss_masters, |
2708 | .masters_cnt = ARRAY_SIZE(omap44xx_iss_masters), | 2669 | .masters_cnt = ARRAY_SIZE(omap44xx_iss_masters), |
2709 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
2710 | }; | 2670 | }; |
2711 | 2671 | ||
2712 | /* | 2672 | /* |
@@ -2781,7 +2741,6 @@ static struct omap_hwmod omap44xx_iva_seq0_hwmod = { | |||
2781 | .rstctrl_offs = OMAP4_RM_IVAHD_RSTCTRL_OFFSET, | 2741 | .rstctrl_offs = OMAP4_RM_IVAHD_RSTCTRL_OFFSET, |
2782 | }, | 2742 | }, |
2783 | }, | 2743 | }, |
2784 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
2785 | }; | 2744 | }; |
2786 | 2745 | ||
2787 | /* Pseudo hwmod for reset control purpose only */ | 2746 | /* Pseudo hwmod for reset control purpose only */ |
@@ -2797,7 +2756,6 @@ static struct omap_hwmod omap44xx_iva_seq1_hwmod = { | |||
2797 | .rstctrl_offs = OMAP4_RM_IVAHD_RSTCTRL_OFFSET, | 2756 | .rstctrl_offs = OMAP4_RM_IVAHD_RSTCTRL_OFFSET, |
2798 | }, | 2757 | }, |
2799 | }, | 2758 | }, |
2800 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
2801 | }; | 2759 | }; |
2802 | 2760 | ||
2803 | static struct omap_hwmod omap44xx_iva_hwmod = { | 2761 | static struct omap_hwmod omap44xx_iva_hwmod = { |
@@ -2820,7 +2778,6 @@ static struct omap_hwmod omap44xx_iva_hwmod = { | |||
2820 | .slaves_cnt = ARRAY_SIZE(omap44xx_iva_slaves), | 2778 | .slaves_cnt = ARRAY_SIZE(omap44xx_iva_slaves), |
2821 | .masters = omap44xx_iva_masters, | 2779 | .masters = omap44xx_iva_masters, |
2822 | .masters_cnt = ARRAY_SIZE(omap44xx_iva_masters), | 2780 | .masters_cnt = ARRAY_SIZE(omap44xx_iva_masters), |
2823 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
2824 | }; | 2781 | }; |
2825 | 2782 | ||
2826 | /* | 2783 | /* |
@@ -2890,7 +2847,6 @@ static struct omap_hwmod omap44xx_kbd_hwmod = { | |||
2890 | }, | 2847 | }, |
2891 | .slaves = omap44xx_kbd_slaves, | 2848 | .slaves = omap44xx_kbd_slaves, |
2892 | .slaves_cnt = ARRAY_SIZE(omap44xx_kbd_slaves), | 2849 | .slaves_cnt = ARRAY_SIZE(omap44xx_kbd_slaves), |
2893 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
2894 | }; | 2850 | }; |
2895 | 2851 | ||
2896 | /* | 2852 | /* |
@@ -2956,7 +2912,6 @@ static struct omap_hwmod omap44xx_mailbox_hwmod = { | |||
2956 | }, | 2912 | }, |
2957 | .slaves = omap44xx_mailbox_slaves, | 2913 | .slaves = omap44xx_mailbox_slaves, |
2958 | .slaves_cnt = ARRAY_SIZE(omap44xx_mailbox_slaves), | 2914 | .slaves_cnt = ARRAY_SIZE(omap44xx_mailbox_slaves), |
2959 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
2960 | }; | 2915 | }; |
2961 | 2916 | ||
2962 | /* | 2917 | /* |
@@ -3051,7 +3006,6 @@ static struct omap_hwmod omap44xx_mcbsp1_hwmod = { | |||
3051 | }, | 3006 | }, |
3052 | .slaves = omap44xx_mcbsp1_slaves, | 3007 | .slaves = omap44xx_mcbsp1_slaves, |
3053 | .slaves_cnt = ARRAY_SIZE(omap44xx_mcbsp1_slaves), | 3008 | .slaves_cnt = ARRAY_SIZE(omap44xx_mcbsp1_slaves), |
3054 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
3055 | }; | 3009 | }; |
3056 | 3010 | ||
3057 | /* mcbsp2 */ | 3011 | /* mcbsp2 */ |
@@ -3127,7 +3081,6 @@ static struct omap_hwmod omap44xx_mcbsp2_hwmod = { | |||
3127 | }, | 3081 | }, |
3128 | .slaves = omap44xx_mcbsp2_slaves, | 3082 | .slaves = omap44xx_mcbsp2_slaves, |
3129 | .slaves_cnt = ARRAY_SIZE(omap44xx_mcbsp2_slaves), | 3083 | .slaves_cnt = ARRAY_SIZE(omap44xx_mcbsp2_slaves), |
3130 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
3131 | }; | 3084 | }; |
3132 | 3085 | ||
3133 | /* mcbsp3 */ | 3086 | /* mcbsp3 */ |
@@ -3203,7 +3156,6 @@ static struct omap_hwmod omap44xx_mcbsp3_hwmod = { | |||
3203 | }, | 3156 | }, |
3204 | .slaves = omap44xx_mcbsp3_slaves, | 3157 | .slaves = omap44xx_mcbsp3_slaves, |
3205 | .slaves_cnt = ARRAY_SIZE(omap44xx_mcbsp3_slaves), | 3158 | .slaves_cnt = ARRAY_SIZE(omap44xx_mcbsp3_slaves), |
3206 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
3207 | }; | 3159 | }; |
3208 | 3160 | ||
3209 | /* mcbsp4 */ | 3161 | /* mcbsp4 */ |
@@ -3258,7 +3210,6 @@ static struct omap_hwmod omap44xx_mcbsp4_hwmod = { | |||
3258 | }, | 3210 | }, |
3259 | .slaves = omap44xx_mcbsp4_slaves, | 3211 | .slaves = omap44xx_mcbsp4_slaves, |
3260 | .slaves_cnt = ARRAY_SIZE(omap44xx_mcbsp4_slaves), | 3212 | .slaves_cnt = ARRAY_SIZE(omap44xx_mcbsp4_slaves), |
3261 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
3262 | }; | 3213 | }; |
3263 | 3214 | ||
3264 | /* | 3215 | /* |
@@ -3353,7 +3304,6 @@ static struct omap_hwmod omap44xx_mcpdm_hwmod = { | |||
3353 | }, | 3304 | }, |
3354 | .slaves = omap44xx_mcpdm_slaves, | 3305 | .slaves = omap44xx_mcpdm_slaves, |
3355 | .slaves_cnt = ARRAY_SIZE(omap44xx_mcpdm_slaves), | 3306 | .slaves_cnt = ARRAY_SIZE(omap44xx_mcpdm_slaves), |
3356 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
3357 | }; | 3307 | }; |
3358 | 3308 | ||
3359 | /* | 3309 | /* |
@@ -3442,7 +3392,6 @@ static struct omap_hwmod omap44xx_mcspi1_hwmod = { | |||
3442 | .dev_attr = &mcspi1_dev_attr, | 3392 | .dev_attr = &mcspi1_dev_attr, |
3443 | .slaves = omap44xx_mcspi1_slaves, | 3393 | .slaves = omap44xx_mcspi1_slaves, |
3444 | .slaves_cnt = ARRAY_SIZE(omap44xx_mcspi1_slaves), | 3394 | .slaves_cnt = ARRAY_SIZE(omap44xx_mcspi1_slaves), |
3445 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
3446 | }; | 3395 | }; |
3447 | 3396 | ||
3448 | /* mcspi2 */ | 3397 | /* mcspi2 */ |
@@ -3505,7 +3454,6 @@ static struct omap_hwmod omap44xx_mcspi2_hwmod = { | |||
3505 | .dev_attr = &mcspi2_dev_attr, | 3454 | .dev_attr = &mcspi2_dev_attr, |
3506 | .slaves = omap44xx_mcspi2_slaves, | 3455 | .slaves = omap44xx_mcspi2_slaves, |
3507 | .slaves_cnt = ARRAY_SIZE(omap44xx_mcspi2_slaves), | 3456 | .slaves_cnt = ARRAY_SIZE(omap44xx_mcspi2_slaves), |
3508 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
3509 | }; | 3457 | }; |
3510 | 3458 | ||
3511 | /* mcspi3 */ | 3459 | /* mcspi3 */ |
@@ -3568,7 +3516,6 @@ static struct omap_hwmod omap44xx_mcspi3_hwmod = { | |||
3568 | .dev_attr = &mcspi3_dev_attr, | 3516 | .dev_attr = &mcspi3_dev_attr, |
3569 | .slaves = omap44xx_mcspi3_slaves, | 3517 | .slaves = omap44xx_mcspi3_slaves, |
3570 | .slaves_cnt = ARRAY_SIZE(omap44xx_mcspi3_slaves), | 3518 | .slaves_cnt = ARRAY_SIZE(omap44xx_mcspi3_slaves), |
3571 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
3572 | }; | 3519 | }; |
3573 | 3520 | ||
3574 | /* mcspi4 */ | 3521 | /* mcspi4 */ |
@@ -3629,7 +3576,6 @@ static struct omap_hwmod omap44xx_mcspi4_hwmod = { | |||
3629 | .dev_attr = &mcspi4_dev_attr, | 3576 | .dev_attr = &mcspi4_dev_attr, |
3630 | .slaves = omap44xx_mcspi4_slaves, | 3577 | .slaves = omap44xx_mcspi4_slaves, |
3631 | .slaves_cnt = ARRAY_SIZE(omap44xx_mcspi4_slaves), | 3578 | .slaves_cnt = ARRAY_SIZE(omap44xx_mcspi4_slaves), |
3632 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
3633 | }; | 3579 | }; |
3634 | 3580 | ||
3635 | /* | 3581 | /* |
@@ -3718,7 +3664,6 @@ static struct omap_hwmod omap44xx_mmc1_hwmod = { | |||
3718 | .slaves_cnt = ARRAY_SIZE(omap44xx_mmc1_slaves), | 3664 | .slaves_cnt = ARRAY_SIZE(omap44xx_mmc1_slaves), |
3719 | .masters = omap44xx_mmc1_masters, | 3665 | .masters = omap44xx_mmc1_masters, |
3720 | .masters_cnt = ARRAY_SIZE(omap44xx_mmc1_masters), | 3666 | .masters_cnt = ARRAY_SIZE(omap44xx_mmc1_masters), |
3721 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
3722 | }; | 3667 | }; |
3723 | 3668 | ||
3724 | /* mmc2 */ | 3669 | /* mmc2 */ |
@@ -3779,7 +3724,6 @@ static struct omap_hwmod omap44xx_mmc2_hwmod = { | |||
3779 | .slaves_cnt = ARRAY_SIZE(omap44xx_mmc2_slaves), | 3724 | .slaves_cnt = ARRAY_SIZE(omap44xx_mmc2_slaves), |
3780 | .masters = omap44xx_mmc2_masters, | 3725 | .masters = omap44xx_mmc2_masters, |
3781 | .masters_cnt = ARRAY_SIZE(omap44xx_mmc2_masters), | 3726 | .masters_cnt = ARRAY_SIZE(omap44xx_mmc2_masters), |
3782 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
3783 | }; | 3727 | }; |
3784 | 3728 | ||
3785 | /* mmc3 */ | 3729 | /* mmc3 */ |
@@ -3834,7 +3778,6 @@ static struct omap_hwmod omap44xx_mmc3_hwmod = { | |||
3834 | }, | 3778 | }, |
3835 | .slaves = omap44xx_mmc3_slaves, | 3779 | .slaves = omap44xx_mmc3_slaves, |
3836 | .slaves_cnt = ARRAY_SIZE(omap44xx_mmc3_slaves), | 3780 | .slaves_cnt = ARRAY_SIZE(omap44xx_mmc3_slaves), |
3837 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
3838 | }; | 3781 | }; |
3839 | 3782 | ||
3840 | /* mmc4 */ | 3783 | /* mmc4 */ |
@@ -3890,7 +3833,6 @@ static struct omap_hwmod omap44xx_mmc4_hwmod = { | |||
3890 | }, | 3833 | }, |
3891 | .slaves = omap44xx_mmc4_slaves, | 3834 | .slaves = omap44xx_mmc4_slaves, |
3892 | .slaves_cnt = ARRAY_SIZE(omap44xx_mmc4_slaves), | 3835 | .slaves_cnt = ARRAY_SIZE(omap44xx_mmc4_slaves), |
3893 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
3894 | }; | 3836 | }; |
3895 | 3837 | ||
3896 | /* mmc5 */ | 3838 | /* mmc5 */ |
@@ -3945,7 +3887,6 @@ static struct omap_hwmod omap44xx_mmc5_hwmod = { | |||
3945 | }, | 3887 | }, |
3946 | .slaves = omap44xx_mmc5_slaves, | 3888 | .slaves = omap44xx_mmc5_slaves, |
3947 | .slaves_cnt = ARRAY_SIZE(omap44xx_mmc5_slaves), | 3889 | .slaves_cnt = ARRAY_SIZE(omap44xx_mmc5_slaves), |
3948 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
3949 | }; | 3890 | }; |
3950 | 3891 | ||
3951 | /* | 3892 | /* |
@@ -3987,7 +3928,6 @@ static struct omap_hwmod omap44xx_mpu_hwmod = { | |||
3987 | }, | 3928 | }, |
3988 | .masters = omap44xx_mpu_masters, | 3929 | .masters = omap44xx_mpu_masters, |
3989 | .masters_cnt = ARRAY_SIZE(omap44xx_mpu_masters), | 3930 | .masters_cnt = ARRAY_SIZE(omap44xx_mpu_masters), |
3990 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
3991 | }; | 3931 | }; |
3992 | 3932 | ||
3993 | /* | 3933 | /* |
@@ -4063,7 +4003,6 @@ static struct omap_hwmod omap44xx_smartreflex_core_hwmod = { | |||
4063 | }, | 4003 | }, |
4064 | .slaves = omap44xx_smartreflex_core_slaves, | 4004 | .slaves = omap44xx_smartreflex_core_slaves, |
4065 | .slaves_cnt = ARRAY_SIZE(omap44xx_smartreflex_core_slaves), | 4005 | .slaves_cnt = ARRAY_SIZE(omap44xx_smartreflex_core_slaves), |
4066 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
4067 | }; | 4006 | }; |
4068 | 4007 | ||
4069 | /* smartreflex_iva */ | 4008 | /* smartreflex_iva */ |
@@ -4112,7 +4051,6 @@ static struct omap_hwmod omap44xx_smartreflex_iva_hwmod = { | |||
4112 | }, | 4051 | }, |
4113 | .slaves = omap44xx_smartreflex_iva_slaves, | 4052 | .slaves = omap44xx_smartreflex_iva_slaves, |
4114 | .slaves_cnt = ARRAY_SIZE(omap44xx_smartreflex_iva_slaves), | 4053 | .slaves_cnt = ARRAY_SIZE(omap44xx_smartreflex_iva_slaves), |
4115 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
4116 | }; | 4054 | }; |
4117 | 4055 | ||
4118 | /* smartreflex_mpu */ | 4056 | /* smartreflex_mpu */ |
@@ -4161,7 +4099,6 @@ static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod = { | |||
4161 | }, | 4099 | }, |
4162 | .slaves = omap44xx_smartreflex_mpu_slaves, | 4100 | .slaves = omap44xx_smartreflex_mpu_slaves, |
4163 | .slaves_cnt = ARRAY_SIZE(omap44xx_smartreflex_mpu_slaves), | 4101 | .slaves_cnt = ARRAY_SIZE(omap44xx_smartreflex_mpu_slaves), |
4164 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
4165 | }; | 4102 | }; |
4166 | 4103 | ||
4167 | /* | 4104 | /* |
@@ -4224,7 +4161,6 @@ static struct omap_hwmod omap44xx_spinlock_hwmod = { | |||
4224 | }, | 4161 | }, |
4225 | .slaves = omap44xx_spinlock_slaves, | 4162 | .slaves = omap44xx_spinlock_slaves, |
4226 | .slaves_cnt = ARRAY_SIZE(omap44xx_spinlock_slaves), | 4163 | .slaves_cnt = ARRAY_SIZE(omap44xx_spinlock_slaves), |
4227 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
4228 | }; | 4164 | }; |
4229 | 4165 | ||
4230 | /* | 4166 | /* |
@@ -4310,7 +4246,6 @@ static struct omap_hwmod omap44xx_timer1_hwmod = { | |||
4310 | }, | 4246 | }, |
4311 | .slaves = omap44xx_timer1_slaves, | 4247 | .slaves = omap44xx_timer1_slaves, |
4312 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer1_slaves), | 4248 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer1_slaves), |
4313 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
4314 | }; | 4249 | }; |
4315 | 4250 | ||
4316 | /* timer2 */ | 4251 | /* timer2 */ |
@@ -4358,7 +4293,6 @@ static struct omap_hwmod omap44xx_timer2_hwmod = { | |||
4358 | }, | 4293 | }, |
4359 | .slaves = omap44xx_timer2_slaves, | 4294 | .slaves = omap44xx_timer2_slaves, |
4360 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer2_slaves), | 4295 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer2_slaves), |
4361 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
4362 | }; | 4296 | }; |
4363 | 4297 | ||
4364 | /* timer3 */ | 4298 | /* timer3 */ |
@@ -4406,7 +4340,6 @@ static struct omap_hwmod omap44xx_timer3_hwmod = { | |||
4406 | }, | 4340 | }, |
4407 | .slaves = omap44xx_timer3_slaves, | 4341 | .slaves = omap44xx_timer3_slaves, |
4408 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer3_slaves), | 4342 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer3_slaves), |
4409 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
4410 | }; | 4343 | }; |
4411 | 4344 | ||
4412 | /* timer4 */ | 4345 | /* timer4 */ |
@@ -4454,7 +4387,6 @@ static struct omap_hwmod omap44xx_timer4_hwmod = { | |||
4454 | }, | 4387 | }, |
4455 | .slaves = omap44xx_timer4_slaves, | 4388 | .slaves = omap44xx_timer4_slaves, |
4456 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer4_slaves), | 4389 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer4_slaves), |
4457 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
4458 | }; | 4390 | }; |
4459 | 4391 | ||
4460 | /* timer5 */ | 4392 | /* timer5 */ |
@@ -4521,7 +4453,6 @@ static struct omap_hwmod omap44xx_timer5_hwmod = { | |||
4521 | }, | 4453 | }, |
4522 | .slaves = omap44xx_timer5_slaves, | 4454 | .slaves = omap44xx_timer5_slaves, |
4523 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer5_slaves), | 4455 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer5_slaves), |
4524 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
4525 | }; | 4456 | }; |
4526 | 4457 | ||
4527 | /* timer6 */ | 4458 | /* timer6 */ |
@@ -4589,7 +4520,6 @@ static struct omap_hwmod omap44xx_timer6_hwmod = { | |||
4589 | }, | 4520 | }, |
4590 | .slaves = omap44xx_timer6_slaves, | 4521 | .slaves = omap44xx_timer6_slaves, |
4591 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer6_slaves), | 4522 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer6_slaves), |
4592 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
4593 | }; | 4523 | }; |
4594 | 4524 | ||
4595 | /* timer7 */ | 4525 | /* timer7 */ |
@@ -4656,7 +4586,6 @@ static struct omap_hwmod omap44xx_timer7_hwmod = { | |||
4656 | }, | 4586 | }, |
4657 | .slaves = omap44xx_timer7_slaves, | 4587 | .slaves = omap44xx_timer7_slaves, |
4658 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer7_slaves), | 4588 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer7_slaves), |
4659 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
4660 | }; | 4589 | }; |
4661 | 4590 | ||
4662 | /* timer8 */ | 4591 | /* timer8 */ |
@@ -4723,7 +4652,6 @@ static struct omap_hwmod omap44xx_timer8_hwmod = { | |||
4723 | }, | 4652 | }, |
4724 | .slaves = omap44xx_timer8_slaves, | 4653 | .slaves = omap44xx_timer8_slaves, |
4725 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer8_slaves), | 4654 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer8_slaves), |
4726 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
4727 | }; | 4655 | }; |
4728 | 4656 | ||
4729 | /* timer9 */ | 4657 | /* timer9 */ |
@@ -4771,7 +4699,6 @@ static struct omap_hwmod omap44xx_timer9_hwmod = { | |||
4771 | }, | 4699 | }, |
4772 | .slaves = omap44xx_timer9_slaves, | 4700 | .slaves = omap44xx_timer9_slaves, |
4773 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer9_slaves), | 4701 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer9_slaves), |
4774 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
4775 | }; | 4702 | }; |
4776 | 4703 | ||
4777 | /* timer10 */ | 4704 | /* timer10 */ |
@@ -4819,7 +4746,6 @@ static struct omap_hwmod omap44xx_timer10_hwmod = { | |||
4819 | }, | 4746 | }, |
4820 | .slaves = omap44xx_timer10_slaves, | 4747 | .slaves = omap44xx_timer10_slaves, |
4821 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer10_slaves), | 4748 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer10_slaves), |
4822 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
4823 | }; | 4749 | }; |
4824 | 4750 | ||
4825 | /* timer11 */ | 4751 | /* timer11 */ |
@@ -4867,7 +4793,6 @@ static struct omap_hwmod omap44xx_timer11_hwmod = { | |||
4867 | }, | 4793 | }, |
4868 | .slaves = omap44xx_timer11_slaves, | 4794 | .slaves = omap44xx_timer11_slaves, |
4869 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer11_slaves), | 4795 | .slaves_cnt = ARRAY_SIZE(omap44xx_timer11_slaves), |
4870 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
4871 | }; | 4796 | }; |
4872 | 4797 | ||
4873 | /* | 4798 | /* |
@@ -4944,7 +4869,6 @@ static struct omap_hwmod omap44xx_uart1_hwmod = { | |||
4944 | }, | 4869 | }, |
4945 | .slaves = omap44xx_uart1_slaves, | 4870 | .slaves = omap44xx_uart1_slaves, |
4946 | .slaves_cnt = ARRAY_SIZE(omap44xx_uart1_slaves), | 4871 | .slaves_cnt = ARRAY_SIZE(omap44xx_uart1_slaves), |
4947 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
4948 | }; | 4872 | }; |
4949 | 4873 | ||
4950 | /* uart2 */ | 4874 | /* uart2 */ |
@@ -4999,7 +4923,6 @@ static struct omap_hwmod omap44xx_uart2_hwmod = { | |||
4999 | }, | 4923 | }, |
5000 | .slaves = omap44xx_uart2_slaves, | 4924 | .slaves = omap44xx_uart2_slaves, |
5001 | .slaves_cnt = ARRAY_SIZE(omap44xx_uart2_slaves), | 4925 | .slaves_cnt = ARRAY_SIZE(omap44xx_uart2_slaves), |
5002 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
5003 | }; | 4926 | }; |
5004 | 4927 | ||
5005 | /* uart3 */ | 4928 | /* uart3 */ |
@@ -5055,7 +4978,6 @@ static struct omap_hwmod omap44xx_uart3_hwmod = { | |||
5055 | }, | 4978 | }, |
5056 | .slaves = omap44xx_uart3_slaves, | 4979 | .slaves = omap44xx_uart3_slaves, |
5057 | .slaves_cnt = ARRAY_SIZE(omap44xx_uart3_slaves), | 4980 | .slaves_cnt = ARRAY_SIZE(omap44xx_uart3_slaves), |
5058 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
5059 | }; | 4981 | }; |
5060 | 4982 | ||
5061 | /* uart4 */ | 4983 | /* uart4 */ |
@@ -5110,7 +5032,6 @@ static struct omap_hwmod omap44xx_uart4_hwmod = { | |||
5110 | }, | 5032 | }, |
5111 | .slaves = omap44xx_uart4_slaves, | 5033 | .slaves = omap44xx_uart4_slaves, |
5112 | .slaves_cnt = ARRAY_SIZE(omap44xx_uart4_slaves), | 5034 | .slaves_cnt = ARRAY_SIZE(omap44xx_uart4_slaves), |
5113 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
5114 | }; | 5035 | }; |
5115 | 5036 | ||
5116 | /* | 5037 | /* |
@@ -5195,7 +5116,6 @@ static struct omap_hwmod omap44xx_usb_otg_hs_hwmod = { | |||
5195 | .slaves_cnt = ARRAY_SIZE(omap44xx_usb_otg_hs_slaves), | 5116 | .slaves_cnt = ARRAY_SIZE(omap44xx_usb_otg_hs_slaves), |
5196 | .masters = omap44xx_usb_otg_hs_masters, | 5117 | .masters = omap44xx_usb_otg_hs_masters, |
5197 | .masters_cnt = ARRAY_SIZE(omap44xx_usb_otg_hs_masters), | 5118 | .masters_cnt = ARRAY_SIZE(omap44xx_usb_otg_hs_masters), |
5198 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
5199 | }; | 5119 | }; |
5200 | 5120 | ||
5201 | /* | 5121 | /* |
@@ -5266,7 +5186,6 @@ static struct omap_hwmod omap44xx_wd_timer2_hwmod = { | |||
5266 | }, | 5186 | }, |
5267 | .slaves = omap44xx_wd_timer2_slaves, | 5187 | .slaves = omap44xx_wd_timer2_slaves, |
5268 | .slaves_cnt = ARRAY_SIZE(omap44xx_wd_timer2_slaves), | 5188 | .slaves_cnt = ARRAY_SIZE(omap44xx_wd_timer2_slaves), |
5269 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
5270 | }; | 5189 | }; |
5271 | 5190 | ||
5272 | /* wd_timer3 */ | 5191 | /* wd_timer3 */ |
@@ -5333,7 +5252,6 @@ static struct omap_hwmod omap44xx_wd_timer3_hwmod = { | |||
5333 | }, | 5252 | }, |
5334 | .slaves = omap44xx_wd_timer3_slaves, | 5253 | .slaves = omap44xx_wd_timer3_slaves, |
5335 | .slaves_cnt = ARRAY_SIZE(omap44xx_wd_timer3_slaves), | 5254 | .slaves_cnt = ARRAY_SIZE(omap44xx_wd_timer3_slaves), |
5336 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
5337 | }; | 5255 | }; |
5338 | 5256 | ||
5339 | static __initdata struct omap_hwmod *omap44xx_hwmods[] = { | 5257 | static __initdata struct omap_hwmod *omap44xx_hwmods[] = { |
diff --git a/arch/arm/mach-omap2/opp.c b/arch/arm/mach-omap2/opp.c index ab8b35b780b5..9262a6b47702 100644 --- a/arch/arm/mach-omap2/opp.c +++ b/arch/arm/mach-omap2/opp.c | |||
@@ -69,7 +69,7 @@ int __init omap_init_opp_table(struct omap_opp_def *opp_def, | |||
69 | opp_def->hwmod_name, i); | 69 | opp_def->hwmod_name, i); |
70 | return -EINVAL; | 70 | return -EINVAL; |
71 | } | 71 | } |
72 | dev = &oh->od->pdev.dev; | 72 | dev = &oh->od->pdev->dev; |
73 | 73 | ||
74 | r = opp_add(dev, opp_def->freq, opp_def->u_volt); | 74 | r = opp_add(dev, opp_def->freq, opp_def->u_volt); |
75 | if (r) { | 75 | if (r) { |
diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c index 472bf22d5e84..25b8c7f43852 100644 --- a/arch/arm/mach-omap2/pm.c +++ b/arch/arm/mach-omap2/pm.c | |||
@@ -60,19 +60,19 @@ EXPORT_SYMBOL(omap4_get_dsp_device); | |||
60 | static int _init_omap_device(char *name, struct device **new_dev) | 60 | static int _init_omap_device(char *name, struct device **new_dev) |
61 | { | 61 | { |
62 | struct omap_hwmod *oh; | 62 | struct omap_hwmod *oh; |
63 | struct omap_device *od; | 63 | struct platform_device *pdev; |
64 | 64 | ||
65 | oh = omap_hwmod_lookup(name); | 65 | oh = omap_hwmod_lookup(name); |
66 | if (WARN(!oh, "%s: could not find omap_hwmod for %s\n", | 66 | if (WARN(!oh, "%s: could not find omap_hwmod for %s\n", |
67 | __func__, name)) | 67 | __func__, name)) |
68 | return -ENODEV; | 68 | return -ENODEV; |
69 | 69 | ||
70 | od = omap_device_build(oh->name, 0, oh, NULL, 0, pm_lats, 0, false); | 70 | pdev = omap_device_build(oh->name, 0, oh, NULL, 0, pm_lats, 0, false); |
71 | if (WARN(IS_ERR(od), "%s: could not build omap_device for %s\n", | 71 | if (WARN(IS_ERR(pdev), "%s: could not build omap_device for %s\n", |
72 | __func__, name)) | 72 | __func__, name)) |
73 | return -ENODEV; | 73 | return -ENODEV; |
74 | 74 | ||
75 | *new_dev = &od->pdev.dev; | 75 | *new_dev = &pdev->dev; |
76 | 76 | ||
77 | return 0; | 77 | return 0; |
78 | } | 78 | } |
@@ -136,8 +136,8 @@ int omap_set_pwrdm_state(struct powerdomain *pwrdm, u32 state) | |||
136 | 136 | ||
137 | ret = pwrdm_set_next_pwrst(pwrdm, state); | 137 | ret = pwrdm_set_next_pwrst(pwrdm, state); |
138 | if (ret) { | 138 | if (ret) { |
139 | printk(KERN_ERR "Unable to set state of powerdomain: %s\n", | 139 | pr_err("%s: unable to set state of powerdomain: %s\n", |
140 | pwrdm->name); | 140 | __func__, pwrdm->name); |
141 | goto err; | 141 | goto err; |
142 | } | 142 | } |
143 | 143 | ||
@@ -161,11 +161,11 @@ err: | |||
161 | } | 161 | } |
162 | 162 | ||
163 | /* | 163 | /* |
164 | * This API is to be called during init to put the various voltage | 164 | * This API is to be called during init to set the various voltage |
165 | * domains to the voltage as per the opp table. Typically we boot up | 165 | * domains to the voltage as per the opp table. Typically we boot up |
166 | * at the nominal voltage. So this function finds out the rate of | 166 | * at the nominal voltage. So this function finds out the rate of |
167 | * the clock associated with the voltage domain, finds out the correct | 167 | * the clock associated with the voltage domain, finds out the correct |
168 | * opp entry and puts the voltage domain to the voltage specifies | 168 | * opp entry and sets the voltage domain to the voltage specified |
169 | * in the opp entry | 169 | * in the opp entry |
170 | */ | 170 | */ |
171 | static int __init omap2_set_init_voltage(char *vdd_name, char *clk_name, | 171 | static int __init omap2_set_init_voltage(char *vdd_name, char *clk_name, |
@@ -177,21 +177,20 @@ static int __init omap2_set_init_voltage(char *vdd_name, char *clk_name, | |||
177 | unsigned long freq, bootup_volt; | 177 | unsigned long freq, bootup_volt; |
178 | 178 | ||
179 | if (!vdd_name || !clk_name || !dev) { | 179 | if (!vdd_name || !clk_name || !dev) { |
180 | printk(KERN_ERR "%s: Invalid parameters!\n", __func__); | 180 | pr_err("%s: invalid parameters\n", __func__); |
181 | goto exit; | 181 | goto exit; |
182 | } | 182 | } |
183 | 183 | ||
184 | voltdm = omap_voltage_domain_lookup(vdd_name); | 184 | voltdm = omap_voltage_domain_lookup(vdd_name); |
185 | if (IS_ERR(voltdm)) { | 185 | if (IS_ERR(voltdm)) { |
186 | printk(KERN_ERR "%s: Unable to get vdd pointer for vdd_%s\n", | 186 | pr_err("%s: unable to get vdd pointer for vdd_%s\n", |
187 | __func__, vdd_name); | 187 | __func__, vdd_name); |
188 | goto exit; | 188 | goto exit; |
189 | } | 189 | } |
190 | 190 | ||
191 | clk = clk_get(NULL, clk_name); | 191 | clk = clk_get(NULL, clk_name); |
192 | if (IS_ERR(clk)) { | 192 | if (IS_ERR(clk)) { |
193 | printk(KERN_ERR "%s: unable to get clk %s\n", | 193 | pr_err("%s: unable to get clk %s\n", __func__, clk_name); |
194 | __func__, clk_name); | ||
195 | goto exit; | 194 | goto exit; |
196 | } | 195 | } |
197 | 196 | ||
@@ -200,14 +199,14 @@ static int __init omap2_set_init_voltage(char *vdd_name, char *clk_name, | |||
200 | 199 | ||
201 | opp = opp_find_freq_ceil(dev, &freq); | 200 | opp = opp_find_freq_ceil(dev, &freq); |
202 | if (IS_ERR(opp)) { | 201 | if (IS_ERR(opp)) { |
203 | printk(KERN_ERR "%s: unable to find boot up OPP for vdd_%s\n", | 202 | pr_err("%s: unable to find boot up OPP for vdd_%s\n", |
204 | __func__, vdd_name); | 203 | __func__, vdd_name); |
205 | goto exit; | 204 | goto exit; |
206 | } | 205 | } |
207 | 206 | ||
208 | bootup_volt = opp_get_voltage(opp); | 207 | bootup_volt = opp_get_voltage(opp); |
209 | if (!bootup_volt) { | 208 | if (!bootup_volt) { |
210 | printk(KERN_ERR "%s: unable to find voltage corresponding" | 209 | pr_err("%s: unable to find voltage corresponding " |
211 | "to the bootup OPP for vdd_%s\n", __func__, vdd_name); | 210 | "to the bootup OPP for vdd_%s\n", __func__, vdd_name); |
212 | goto exit; | 211 | goto exit; |
213 | } | 212 | } |
@@ -216,8 +215,7 @@ static int __init omap2_set_init_voltage(char *vdd_name, char *clk_name, | |||
216 | return 0; | 215 | return 0; |
217 | 216 | ||
218 | exit: | 217 | exit: |
219 | printk(KERN_ERR "%s: Unable to put vdd_%s to its init voltage\n\n", | 218 | pr_err("%s: unable to set vdd_%s\n", __func__, vdd_name); |
220 | __func__, vdd_name); | ||
221 | return -EINVAL; | 219 | return -EINVAL; |
222 | } | 220 | } |
223 | 221 | ||
diff --git a/arch/arm/mach-omap2/pm24xx.c b/arch/arm/mach-omap2/pm24xx.c index bf089e743ed9..cf0c216132ab 100644 --- a/arch/arm/mach-omap2/pm24xx.c +++ b/arch/arm/mach-omap2/pm24xx.c | |||
@@ -53,8 +53,6 @@ | |||
53 | #include "powerdomain.h" | 53 | #include "powerdomain.h" |
54 | #include "clockdomain.h" | 54 | #include "clockdomain.h" |
55 | 55 | ||
56 | static int omap2_pm_debug; | ||
57 | |||
58 | #ifdef CONFIG_SUSPEND | 56 | #ifdef CONFIG_SUSPEND |
59 | static suspend_state_t suspend_state = PM_SUSPEND_ON; | 57 | static suspend_state_t suspend_state = PM_SUSPEND_ON; |
60 | static inline bool is_suspending(void) | 58 | static inline bool is_suspending(void) |
@@ -96,7 +94,6 @@ static int omap2_fclks_active(void) | |||
96 | static void omap2_enter_full_retention(void) | 94 | static void omap2_enter_full_retention(void) |
97 | { | 95 | { |
98 | u32 l; | 96 | u32 l; |
99 | struct timespec ts_preidle, ts_postidle, ts_idle; | ||
100 | 97 | ||
101 | /* There is 1 reference hold for all children of the oscillator | 98 | /* There is 1 reference hold for all children of the oscillator |
102 | * clock, the following will remove it. If no one else uses the | 99 | * clock, the following will remove it. If no one else uses the |
@@ -124,10 +121,6 @@ static void omap2_enter_full_retention(void) | |||
124 | 121 | ||
125 | omap2_gpio_prepare_for_idle(0); | 122 | omap2_gpio_prepare_for_idle(0); |
126 | 123 | ||
127 | if (omap2_pm_debug) { | ||
128 | getnstimeofday(&ts_preidle); | ||
129 | } | ||
130 | |||
131 | /* One last check for pending IRQs to avoid extra latency due | 124 | /* One last check for pending IRQs to avoid extra latency due |
132 | * to sleeping unnecessarily. */ | 125 | * to sleeping unnecessarily. */ |
133 | if (omap_irq_pending()) | 126 | if (omap_irq_pending()) |
@@ -155,13 +148,6 @@ static void omap2_enter_full_retention(void) | |||
155 | console_unlock(); | 148 | console_unlock(); |
156 | 149 | ||
157 | no_sleep: | 150 | no_sleep: |
158 | if (omap2_pm_debug) { | ||
159 | unsigned long long tmp; | ||
160 | |||
161 | getnstimeofday(&ts_postidle); | ||
162 | ts_idle = timespec_sub(ts_postidle, ts_preidle); | ||
163 | tmp = timespec_to_ns(&ts_idle) * NSEC_PER_USEC; | ||
164 | } | ||
165 | omap2_gpio_resume_after_idle(); | 151 | omap2_gpio_resume_after_idle(); |
166 | 152 | ||
167 | clk_enable(osc_ck); | 153 | clk_enable(osc_ck); |
@@ -219,7 +205,6 @@ static int omap2_allow_mpu_retention(void) | |||
219 | static void omap2_enter_mpu_retention(void) | 205 | static void omap2_enter_mpu_retention(void) |
220 | { | 206 | { |
221 | int only_idle = 0; | 207 | int only_idle = 0; |
222 | struct timespec ts_preidle, ts_postidle, ts_idle; | ||
223 | 208 | ||
224 | /* Putting MPU into the WFI state while a transfer is active | 209 | /* Putting MPU into the WFI state while a transfer is active |
225 | * seems to cause the I2C block to timeout. Why? Good question. */ | 210 | * seems to cause the I2C block to timeout. Why? Good question. */ |
@@ -246,19 +231,7 @@ static void omap2_enter_mpu_retention(void) | |||
246 | only_idle = 1; | 231 | only_idle = 1; |
247 | } | 232 | } |
248 | 233 | ||
249 | if (omap2_pm_debug) { | ||
250 | getnstimeofday(&ts_preidle); | ||
251 | } | ||
252 | |||
253 | omap2_sram_idle(); | 234 | omap2_sram_idle(); |
254 | |||
255 | if (omap2_pm_debug) { | ||
256 | unsigned long long tmp; | ||
257 | |||
258 | getnstimeofday(&ts_postidle); | ||
259 | ts_idle = timespec_sub(ts_postidle, ts_preidle); | ||
260 | tmp = timespec_to_ns(&ts_idle) * NSEC_PER_USEC; | ||
261 | } | ||
262 | } | 235 | } |
263 | 236 | ||
264 | static int omap2_can_sleep(void) | 237 | static int omap2_can_sleep(void) |
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index 7255d9bce868..c8cbd00a41af 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c | |||
@@ -55,7 +55,7 @@ | |||
55 | static suspend_state_t suspend_state = PM_SUSPEND_ON; | 55 | static suspend_state_t suspend_state = PM_SUSPEND_ON; |
56 | static inline bool is_suspending(void) | 56 | static inline bool is_suspending(void) |
57 | { | 57 | { |
58 | return (suspend_state != PM_SUSPEND_ON); | 58 | return (suspend_state != PM_SUSPEND_ON) && console_suspend_enabled; |
59 | } | 59 | } |
60 | #else | 60 | #else |
61 | static inline bool is_suspending(void) | 61 | static inline bool is_suspending(void) |
diff --git a/arch/arm/mach-omap2/powerdomain-common.c b/arch/arm/mach-omap2/powerdomain-common.c index 171fccd208c7..f97afff68d6d 100644 --- a/arch/arm/mach-omap2/powerdomain-common.c +++ b/arch/arm/mach-omap2/powerdomain-common.c | |||
@@ -1,9 +1,8 @@ | |||
1 | /* | 1 | /* |
2 | * linux/arch/arm/mach-omap2/powerdomain-common.c | 2 | * Common powerdomain framework functions |
3 | * Contains common powerdomain framework functions | ||
4 | * | 3 | * |
5 | * Copyright (C) 2010 Texas Instruments, Inc. | 4 | * Copyright (C) 2010-2011 Texas Instruments, Inc. |
6 | * Copyright (C) 2010 Nokia Corporation | 5 | * Copyright (C) 2010 Nokia Corporation |
7 | * | 6 | * |
8 | * Derived from mach-omap2/powerdomain.c written by Paul Walmsley | 7 | * Derived from mach-omap2/powerdomain.c written by Paul Walmsley |
9 | * | 8 | * |
diff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-omap2/powerdomain.c index ef71fdd40fc4..896cb4c5eb1a 100644 --- a/arch/arm/mach-omap2/powerdomain.c +++ b/arch/arm/mach-omap2/powerdomain.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * OMAP powerdomain control | 2 | * OMAP powerdomain control |
3 | * | 3 | * |
4 | * Copyright (C) 2007-2008 Texas Instruments, Inc. | 4 | * Copyright (C) 2007-2008, 2011 Texas Instruments, Inc. |
5 | * Copyright (C) 2007-2011 Nokia Corporation | 5 | * Copyright (C) 2007-2011 Nokia Corporation |
6 | * | 6 | * |
7 | * Written by Paul Walmsley | 7 | * Written by Paul Walmsley |
@@ -81,9 +81,6 @@ static int _pwrdm_register(struct powerdomain *pwrdm) | |||
81 | if (!pwrdm || !pwrdm->name) | 81 | if (!pwrdm || !pwrdm->name) |
82 | return -EINVAL; | 82 | return -EINVAL; |
83 | 83 | ||
84 | if (!omap_chip_is(pwrdm->omap_chip)) | ||
85 | return -EINVAL; | ||
86 | |||
87 | if (cpu_is_omap44xx() && | 84 | if (cpu_is_omap44xx() && |
88 | pwrdm->prcm_partition == OMAP4430_INVALID_PRCM_PARTITION) { | 85 | pwrdm->prcm_partition == OMAP4430_INVALID_PRCM_PARTITION) { |
89 | pr_err("powerdomain: %s: missing OMAP4 PRCM partition ID\n", | 86 | pr_err("powerdomain: %s: missing OMAP4 PRCM partition ID\n", |
@@ -194,36 +191,76 @@ static int _pwrdm_post_transition_cb(struct powerdomain *pwrdm, void *unused) | |||
194 | /* Public functions */ | 191 | /* Public functions */ |
195 | 192 | ||
196 | /** | 193 | /** |
197 | * pwrdm_init - set up the powerdomain layer | 194 | * pwrdm_register_platform_funcs - register powerdomain implementation fns |
198 | * @pwrdms: array of struct powerdomain pointers to register | 195 | * @po: func pointers for arch specific implementations |
199 | * @custom_funcs: func pointers for arch specific implementations | 196 | * |
197 | * Register the list of function pointers used to implement the | ||
198 | * powerdomain functions on different OMAP SoCs. Should be called | ||
199 | * before any other pwrdm_register*() function. Returns -EINVAL if | ||
200 | * @po is null, -EEXIST if platform functions have already been | ||
201 | * registered, or 0 upon success. | ||
202 | */ | ||
203 | int pwrdm_register_platform_funcs(struct pwrdm_ops *po) | ||
204 | { | ||
205 | if (!po) | ||
206 | return -EINVAL; | ||
207 | |||
208 | if (arch_pwrdm) | ||
209 | return -EEXIST; | ||
210 | |||
211 | arch_pwrdm = po; | ||
212 | |||
213 | return 0; | ||
214 | } | ||
215 | |||
216 | /** | ||
217 | * pwrdm_register_pwrdms - register SoC powerdomains | ||
218 | * @ps: pointer to an array of struct powerdomain to register | ||
200 | * | 219 | * |
201 | * Loop through the array of powerdomains @pwrdms, registering all | 220 | * Register the powerdomains available on a particular OMAP SoC. Must |
202 | * that are available on the current CPU. Also, program all | 221 | * be called after pwrdm_register_platform_funcs(). May be called |
203 | * powerdomain target state as ON; this is to prevent domains from | 222 | * multiple times. Returns -EACCES if called before |
204 | * hitting low power states (if bootloader has target states set to | 223 | * pwrdm_register_platform_funcs(); -EINVAL if the argument @ps is |
205 | * something other than ON) and potentially even losing context while | 224 | * null; or 0 upon success. |
206 | * PM is not fully initialized. The PM late init code can then program | ||
207 | * the desired target state for all the power domains. No return | ||
208 | * value. | ||
209 | */ | 225 | */ |
210 | void pwrdm_init(struct powerdomain **pwrdms, struct pwrdm_ops *custom_funcs) | 226 | int pwrdm_register_pwrdms(struct powerdomain **ps) |
211 | { | 227 | { |
212 | struct powerdomain **p = NULL; | 228 | struct powerdomain **p = NULL; |
213 | struct powerdomain *temp_p; | ||
214 | 229 | ||
215 | if (!custom_funcs) | 230 | if (!arch_pwrdm) |
216 | WARN(1, "powerdomain: No custom pwrdm functions registered\n"); | 231 | return -EEXIST; |
217 | else | ||
218 | arch_pwrdm = custom_funcs; | ||
219 | 232 | ||
220 | if (pwrdms) { | 233 | if (!ps) |
221 | for (p = pwrdms; *p; p++) | 234 | return -EINVAL; |
222 | _pwrdm_register(*p); | 235 | |
223 | } | 236 | for (p = ps; *p; p++) |
237 | _pwrdm_register(*p); | ||
238 | |||
239 | return 0; | ||
240 | } | ||
241 | |||
242 | /** | ||
243 | * pwrdm_complete_init - set up the powerdomain layer | ||
244 | * | ||
245 | * Do whatever is necessary to initialize registered powerdomains and | ||
246 | * powerdomain code. Currently, this programs the next power state | ||
247 | * for each powerdomain to ON. This prevents powerdomains from | ||
248 | * unexpectedly losing context or entering high wakeup latency modes | ||
249 | * with non-power-management-enabled kernels. Must be called after | ||
250 | * pwrdm_register_pwrdms(). Returns -EACCES if called before | ||
251 | * pwrdm_register_pwrdms(), or 0 upon success. | ||
252 | */ | ||
253 | int pwrdm_complete_init(void) | ||
254 | { | ||
255 | struct powerdomain *temp_p; | ||
256 | |||
257 | if (list_empty(&pwrdm_list)) | ||
258 | return -EACCES; | ||
224 | 259 | ||
225 | list_for_each_entry(temp_p, &pwrdm_list, node) | 260 | list_for_each_entry(temp_p, &pwrdm_list, node) |
226 | pwrdm_set_next_pwrst(temp_p, PWRDM_POWER_ON); | 261 | pwrdm_set_next_pwrst(temp_p, PWRDM_POWER_ON); |
262 | |||
263 | return 0; | ||
227 | } | 264 | } |
228 | 265 | ||
229 | /** | 266 | /** |
diff --git a/arch/arm/mach-omap2/powerdomain.h b/arch/arm/mach-omap2/powerdomain.h index d23d979b9c34..8febd84e5e31 100644 --- a/arch/arm/mach-omap2/powerdomain.h +++ b/arch/arm/mach-omap2/powerdomain.h | |||
@@ -78,7 +78,6 @@ struct powerdomain; | |||
78 | /** | 78 | /** |
79 | * struct powerdomain - OMAP powerdomain | 79 | * struct powerdomain - OMAP powerdomain |
80 | * @name: Powerdomain name | 80 | * @name: Powerdomain name |
81 | * @omap_chip: represents the OMAP chip types containing this pwrdm | ||
82 | * @prcm_offs: the address offset from CM_BASE/PRM_BASE | 81 | * @prcm_offs: the address offset from CM_BASE/PRM_BASE |
83 | * @prcm_partition: (OMAP4 only) the PRCM partition ID containing @prcm_offs | 82 | * @prcm_partition: (OMAP4 only) the PRCM partition ID containing @prcm_offs |
84 | * @pwrsts: Possible powerdomain power states | 83 | * @pwrsts: Possible powerdomain power states |
@@ -98,7 +97,6 @@ struct powerdomain; | |||
98 | */ | 97 | */ |
99 | struct powerdomain { | 98 | struct powerdomain { |
100 | const char *name; | 99 | const char *name; |
101 | const struct omap_chip_id omap_chip; | ||
102 | const s16 prcm_offs; | 100 | const s16 prcm_offs; |
103 | const u8 pwrsts; | 101 | const u8 pwrsts; |
104 | const u8 pwrsts_logic_ret; | 102 | const u8 pwrsts_logic_ret; |
@@ -162,7 +160,9 @@ struct pwrdm_ops { | |||
162 | int (*pwrdm_wait_transition)(struct powerdomain *pwrdm); | 160 | int (*pwrdm_wait_transition)(struct powerdomain *pwrdm); |
163 | }; | 161 | }; |
164 | 162 | ||
165 | void pwrdm_init(struct powerdomain **pwrdm_list, struct pwrdm_ops *custom_funcs); | 163 | int pwrdm_register_platform_funcs(struct pwrdm_ops *custom_funcs); |
164 | int pwrdm_register_pwrdms(struct powerdomain **pwrdm_list); | ||
165 | int pwrdm_complete_init(void); | ||
166 | 166 | ||
167 | struct powerdomain *pwrdm_lookup(const char *name); | 167 | struct powerdomain *pwrdm_lookup(const char *name); |
168 | 168 | ||
@@ -210,7 +210,8 @@ int pwrdm_set_lowpwrstchange(struct powerdomain *pwrdm); | |||
210 | u32 pwrdm_get_context_loss_count(struct powerdomain *pwrdm); | 210 | u32 pwrdm_get_context_loss_count(struct powerdomain *pwrdm); |
211 | bool pwrdm_can_ever_lose_context(struct powerdomain *pwrdm); | 211 | bool pwrdm_can_ever_lose_context(struct powerdomain *pwrdm); |
212 | 212 | ||
213 | extern void omap2xxx_powerdomains_init(void); | 213 | extern void omap242x_powerdomains_init(void); |
214 | extern void omap243x_powerdomains_init(void); | ||
214 | extern void omap3xxx_powerdomains_init(void); | 215 | extern void omap3xxx_powerdomains_init(void); |
215 | extern void omap44xx_powerdomains_init(void); | 216 | extern void omap44xx_powerdomains_init(void); |
216 | 217 | ||
diff --git a/arch/arm/mach-omap2/powerdomains2xxx_3xxx_data.c b/arch/arm/mach-omap2/powerdomains2xxx_3xxx_data.c index 4210c3399769..bf30483d5cb0 100644 --- a/arch/arm/mach-omap2/powerdomains2xxx_3xxx_data.c +++ b/arch/arm/mach-omap2/powerdomains2xxx_3xxx_data.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * OMAP2/3 common powerdomain definitions | 2 | * OMAP2/3 common powerdomain definitions |
3 | * | 3 | * |
4 | * Copyright (C) 2007-2008 Texas Instruments, Inc. | 4 | * Copyright (C) 2007-2008, 2011 Texas Instruments, Inc. |
5 | * Copyright (C) 2007-2011 Nokia Corporation | 5 | * Copyright (C) 2007-2011 Nokia Corporation |
6 | * | 6 | * |
7 | * Paul Walmsley, Jouni Högander | 7 | * Paul Walmsley, Jouni Högander |
@@ -12,20 +12,6 @@ | |||
12 | */ | 12 | */ |
13 | 13 | ||
14 | /* | 14 | /* |
15 | * To Do List | ||
16 | * -> Move the Sleep/Wakeup dependencies from Power Domain framework to | ||
17 | * Clock Domain Framework | ||
18 | */ | ||
19 | |||
20 | /* | ||
21 | * This file contains all of the powerdomains that have some element | ||
22 | * of software control for the OMAP24xx and OMAP34xx chips. | ||
23 | * | ||
24 | * This is not an exhaustive listing of powerdomains on the chips; only | ||
25 | * powerdomains that can be controlled in software. | ||
26 | */ | ||
27 | |||
28 | /* | ||
29 | * The names for the DSP/IVA2 powerdomains are confusing. | 15 | * The names for the DSP/IVA2 powerdomains are confusing. |
30 | * | 16 | * |
31 | * Most OMAP chips have an on-board DSP. | 17 | * Most OMAP chips have an on-board DSP. |
@@ -59,8 +45,6 @@ | |||
59 | struct powerdomain gfx_omap2_pwrdm = { | 45 | struct powerdomain gfx_omap2_pwrdm = { |
60 | .name = "gfx_pwrdm", | 46 | .name = "gfx_pwrdm", |
61 | .prcm_offs = GFX_MOD, | 47 | .prcm_offs = GFX_MOD, |
62 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX | | ||
63 | CHIP_IS_OMAP3430ES1), | ||
64 | .pwrsts = PWRSTS_OFF_RET_ON, | 48 | .pwrsts = PWRSTS_OFF_RET_ON, |
65 | .pwrsts_logic_ret = PWRSTS_RET, | 49 | .pwrsts_logic_ret = PWRSTS_RET, |
66 | .banks = 1, | 50 | .banks = 1, |
@@ -75,6 +59,5 @@ struct powerdomain gfx_omap2_pwrdm = { | |||
75 | struct powerdomain wkup_omap2_pwrdm = { | 59 | struct powerdomain wkup_omap2_pwrdm = { |
76 | .name = "wkup_pwrdm", | 60 | .name = "wkup_pwrdm", |
77 | .prcm_offs = WKUP_MOD, | 61 | .prcm_offs = WKUP_MOD, |
78 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX | CHIP_IS_OMAP3430), | ||
79 | .pwrsts = PWRSTS_ON, | 62 | .pwrsts = PWRSTS_ON, |
80 | }; | 63 | }; |
diff --git a/arch/arm/mach-omap2/powerdomains2xxx_data.c b/arch/arm/mach-omap2/powerdomains2xxx_data.c index cc389fb2005d..bb4394e3b621 100644 --- a/arch/arm/mach-omap2/powerdomains2xxx_data.c +++ b/arch/arm/mach-omap2/powerdomains2xxx_data.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * OMAP2XXX powerdomain definitions | 2 | * OMAP2XXX powerdomain definitions |
3 | * | 3 | * |
4 | * Copyright (C) 2007-2008 Texas Instruments, Inc. | 4 | * Copyright (C) 2007-2008, 2011 Texas Instruments, Inc. |
5 | * Copyright (C) 2007-2011 Nokia Corporation | 5 | * Copyright (C) 2007-2011 Nokia Corporation |
6 | * | 6 | * |
7 | * Paul Walmsley, Jouni Högander | 7 | * Paul Walmsley, Jouni Högander |
@@ -28,7 +28,6 @@ | |||
28 | static struct powerdomain dsp_pwrdm = { | 28 | static struct powerdomain dsp_pwrdm = { |
29 | .name = "dsp_pwrdm", | 29 | .name = "dsp_pwrdm", |
30 | .prcm_offs = OMAP24XX_DSP_MOD, | 30 | .prcm_offs = OMAP24XX_DSP_MOD, |
31 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX), | ||
32 | .pwrsts = PWRSTS_OFF_RET_ON, | 31 | .pwrsts = PWRSTS_OFF_RET_ON, |
33 | .pwrsts_logic_ret = PWRSTS_RET, | 32 | .pwrsts_logic_ret = PWRSTS_RET, |
34 | .banks = 1, | 33 | .banks = 1, |
@@ -43,7 +42,6 @@ static struct powerdomain dsp_pwrdm = { | |||
43 | static struct powerdomain mpu_24xx_pwrdm = { | 42 | static struct powerdomain mpu_24xx_pwrdm = { |
44 | .name = "mpu_pwrdm", | 43 | .name = "mpu_pwrdm", |
45 | .prcm_offs = MPU_MOD, | 44 | .prcm_offs = MPU_MOD, |
46 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX), | ||
47 | .pwrsts = PWRSTS_OFF_RET_ON, | 45 | .pwrsts = PWRSTS_OFF_RET_ON, |
48 | .pwrsts_logic_ret = PWRSTS_OFF_RET, | 46 | .pwrsts_logic_ret = PWRSTS_OFF_RET, |
49 | .banks = 1, | 47 | .banks = 1, |
@@ -58,7 +56,6 @@ static struct powerdomain mpu_24xx_pwrdm = { | |||
58 | static struct powerdomain core_24xx_pwrdm = { | 56 | static struct powerdomain core_24xx_pwrdm = { |
59 | .name = "core_pwrdm", | 57 | .name = "core_pwrdm", |
60 | .prcm_offs = CORE_MOD, | 58 | .prcm_offs = CORE_MOD, |
61 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX), | ||
62 | .pwrsts = PWRSTS_OFF_RET_ON, | 59 | .pwrsts = PWRSTS_OFF_RET_ON, |
63 | .banks = 3, | 60 | .banks = 3, |
64 | .pwrsts_mem_ret = { | 61 | .pwrsts_mem_ret = { |
@@ -78,14 +75,11 @@ static struct powerdomain core_24xx_pwrdm = { | |||
78 | * 2430-specific powerdomains | 75 | * 2430-specific powerdomains |
79 | */ | 76 | */ |
80 | 77 | ||
81 | #ifdef CONFIG_SOC_OMAP2430 | ||
82 | |||
83 | /* XXX 2430 KILLDOMAINWKUP bit? No current users apparently */ | 78 | /* XXX 2430 KILLDOMAINWKUP bit? No current users apparently */ |
84 | 79 | ||
85 | static struct powerdomain mdm_pwrdm = { | 80 | static struct powerdomain mdm_pwrdm = { |
86 | .name = "mdm_pwrdm", | 81 | .name = "mdm_pwrdm", |
87 | .prcm_offs = OMAP2430_MDM_MOD, | 82 | .prcm_offs = OMAP2430_MDM_MOD, |
88 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2430), | ||
89 | .pwrsts = PWRSTS_OFF_RET_ON, | 83 | .pwrsts = PWRSTS_OFF_RET_ON, |
90 | .pwrsts_logic_ret = PWRSTS_RET, | 84 | .pwrsts_logic_ret = PWRSTS_RET, |
91 | .banks = 1, | 85 | .banks = 1, |
@@ -97,27 +91,41 @@ static struct powerdomain mdm_pwrdm = { | |||
97 | }, | 91 | }, |
98 | }; | 92 | }; |
99 | 93 | ||
100 | #endif /* CONFIG_SOC_OMAP2430 */ | 94 | /* |
101 | 95 | * | |
102 | /* As powerdomains are added or removed above, this list must also be changed */ | 96 | */ |
103 | static struct powerdomain *powerdomains_omap2xxx[] __initdata = { | ||
104 | 97 | ||
98 | static struct powerdomain *powerdomains_omap24xx[] __initdata = { | ||
105 | &wkup_omap2_pwrdm, | 99 | &wkup_omap2_pwrdm, |
106 | &gfx_omap2_pwrdm, | 100 | &gfx_omap2_pwrdm, |
107 | |||
108 | #ifdef CONFIG_ARCH_OMAP2 | ||
109 | &dsp_pwrdm, | 101 | &dsp_pwrdm, |
110 | &mpu_24xx_pwrdm, | 102 | &mpu_24xx_pwrdm, |
111 | &core_24xx_pwrdm, | 103 | &core_24xx_pwrdm, |
112 | #endif | 104 | NULL |
105 | }; | ||
113 | 106 | ||
114 | #ifdef CONFIG_SOC_OMAP2430 | 107 | static struct powerdomain *powerdomains_omap2430[] __initdata = { |
115 | &mdm_pwrdm, | 108 | &mdm_pwrdm, |
116 | #endif | ||
117 | NULL | 109 | NULL |
118 | }; | 110 | }; |
119 | 111 | ||
120 | void __init omap2xxx_powerdomains_init(void) | 112 | void __init omap242x_powerdomains_init(void) |
113 | { | ||
114 | if (!cpu_is_omap2420()) | ||
115 | return; | ||
116 | |||
117 | pwrdm_register_platform_funcs(&omap2_pwrdm_operations); | ||
118 | pwrdm_register_pwrdms(powerdomains_omap24xx); | ||
119 | pwrdm_complete_init(); | ||
120 | } | ||
121 | |||
122 | void __init omap243x_powerdomains_init(void) | ||
121 | { | 123 | { |
122 | pwrdm_init(powerdomains_omap2xxx, &omap2_pwrdm_operations); | 124 | if (!cpu_is_omap2430()) |
125 | return; | ||
126 | |||
127 | pwrdm_register_platform_funcs(&omap2_pwrdm_operations); | ||
128 | pwrdm_register_pwrdms(powerdomains_omap24xx); | ||
129 | pwrdm_register_pwrdms(powerdomains_omap2430); | ||
130 | pwrdm_complete_init(); | ||
123 | } | 131 | } |
diff --git a/arch/arm/mach-omap2/powerdomains3xxx_data.c b/arch/arm/mach-omap2/powerdomains3xxx_data.c index 469a920a74dc..e4f3a7d6ecfc 100644 --- a/arch/arm/mach-omap2/powerdomains3xxx_data.c +++ b/arch/arm/mach-omap2/powerdomains3xxx_data.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * OMAP3 powerdomain definitions | 2 | * OMAP3 powerdomain definitions |
3 | * | 3 | * |
4 | * Copyright (C) 2007-2008 Texas Instruments, Inc. | 4 | * Copyright (C) 2007-2008, 2011 Texas Instruments, Inc. |
5 | * Copyright (C) 2007-2011 Nokia Corporation | 5 | * Copyright (C) 2007-2011 Nokia Corporation |
6 | * | 6 | * |
7 | * Paul Walmsley, Jouni Högander | 7 | * Paul Walmsley, Jouni Högander |
@@ -14,6 +14,8 @@ | |||
14 | #include <linux/kernel.h> | 14 | #include <linux/kernel.h> |
15 | #include <linux/init.h> | 15 | #include <linux/init.h> |
16 | 16 | ||
17 | #include <plat/cpu.h> | ||
18 | |||
17 | #include "powerdomain.h" | 19 | #include "powerdomain.h" |
18 | #include "powerdomains2xxx_3xxx_data.h" | 20 | #include "powerdomains2xxx_3xxx_data.h" |
19 | 21 | ||
@@ -27,8 +29,6 @@ | |||
27 | * 34XX-specific powerdomains, dependencies | 29 | * 34XX-specific powerdomains, dependencies |
28 | */ | 30 | */ |
29 | 31 | ||
30 | #ifdef CONFIG_ARCH_OMAP3 | ||
31 | |||
32 | /* | 32 | /* |
33 | * Powerdomains | 33 | * Powerdomains |
34 | */ | 34 | */ |
@@ -36,7 +36,6 @@ | |||
36 | static struct powerdomain iva2_pwrdm = { | 36 | static struct powerdomain iva2_pwrdm = { |
37 | .name = "iva2_pwrdm", | 37 | .name = "iva2_pwrdm", |
38 | .prcm_offs = OMAP3430_IVA2_MOD, | 38 | .prcm_offs = OMAP3430_IVA2_MOD, |
39 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
40 | .pwrsts = PWRSTS_OFF_RET_ON, | 39 | .pwrsts = PWRSTS_OFF_RET_ON, |
41 | .pwrsts_logic_ret = PWRSTS_OFF_RET, | 40 | .pwrsts_logic_ret = PWRSTS_OFF_RET, |
42 | .banks = 4, | 41 | .banks = 4, |
@@ -57,7 +56,6 @@ static struct powerdomain iva2_pwrdm = { | |||
57 | static struct powerdomain mpu_3xxx_pwrdm = { | 56 | static struct powerdomain mpu_3xxx_pwrdm = { |
58 | .name = "mpu_pwrdm", | 57 | .name = "mpu_pwrdm", |
59 | .prcm_offs = MPU_MOD, | 58 | .prcm_offs = MPU_MOD, |
60 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
61 | .pwrsts = PWRSTS_OFF_RET_ON, | 59 | .pwrsts = PWRSTS_OFF_RET_ON, |
62 | .pwrsts_logic_ret = PWRSTS_OFF_RET, | 60 | .pwrsts_logic_ret = PWRSTS_OFF_RET, |
63 | .flags = PWRDM_HAS_MPU_QUIRK, | 61 | .flags = PWRDM_HAS_MPU_QUIRK, |
@@ -83,10 +81,6 @@ static struct powerdomain mpu_3xxx_pwrdm = { | |||
83 | static struct powerdomain core_3xxx_pre_es3_1_pwrdm = { | 81 | static struct powerdomain core_3xxx_pre_es3_1_pwrdm = { |
84 | .name = "core_pwrdm", | 82 | .name = "core_pwrdm", |
85 | .prcm_offs = CORE_MOD, | 83 | .prcm_offs = CORE_MOD, |
86 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES1 | | ||
87 | CHIP_IS_OMAP3430ES2 | | ||
88 | CHIP_IS_OMAP3430ES3_0 | | ||
89 | CHIP_IS_OMAP3630ES1), | ||
90 | .pwrsts = PWRSTS_OFF_RET_ON, | 84 | .pwrsts = PWRSTS_OFF_RET_ON, |
91 | .pwrsts_logic_ret = PWRSTS_OFF_RET, | 85 | .pwrsts_logic_ret = PWRSTS_OFF_RET, |
92 | .banks = 2, | 86 | .banks = 2, |
@@ -103,8 +97,6 @@ static struct powerdomain core_3xxx_pre_es3_1_pwrdm = { | |||
103 | static struct powerdomain core_3xxx_es3_1_pwrdm = { | 97 | static struct powerdomain core_3xxx_es3_1_pwrdm = { |
104 | .name = "core_pwrdm", | 98 | .name = "core_pwrdm", |
105 | .prcm_offs = CORE_MOD, | 99 | .prcm_offs = CORE_MOD, |
106 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES3_1 | | ||
107 | CHIP_GE_OMAP3630ES1_1), | ||
108 | .pwrsts = PWRSTS_OFF_RET_ON, | 100 | .pwrsts = PWRSTS_OFF_RET_ON, |
109 | .pwrsts_logic_ret = PWRSTS_OFF_RET, | 101 | .pwrsts_logic_ret = PWRSTS_OFF_RET, |
110 | /* | 102 | /* |
@@ -125,7 +117,6 @@ static struct powerdomain core_3xxx_es3_1_pwrdm = { | |||
125 | 117 | ||
126 | static struct powerdomain dss_pwrdm = { | 118 | static struct powerdomain dss_pwrdm = { |
127 | .name = "dss_pwrdm", | 119 | .name = "dss_pwrdm", |
128 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
129 | .prcm_offs = OMAP3430_DSS_MOD, | 120 | .prcm_offs = OMAP3430_DSS_MOD, |
130 | .pwrsts = PWRSTS_OFF_RET_ON, | 121 | .pwrsts = PWRSTS_OFF_RET_ON, |
131 | .pwrsts_logic_ret = PWRSTS_RET, | 122 | .pwrsts_logic_ret = PWRSTS_RET, |
@@ -146,7 +137,6 @@ static struct powerdomain dss_pwrdm = { | |||
146 | static struct powerdomain sgx_pwrdm = { | 137 | static struct powerdomain sgx_pwrdm = { |
147 | .name = "sgx_pwrdm", | 138 | .name = "sgx_pwrdm", |
148 | .prcm_offs = OMAP3430ES2_SGX_MOD, | 139 | .prcm_offs = OMAP3430ES2_SGX_MOD, |
149 | .omap_chip = OMAP_CHIP_INIT(CHIP_GE_OMAP3430ES2), | ||
150 | /* XXX This is accurate for 3430 SGX, but what about GFX? */ | 140 | /* XXX This is accurate for 3430 SGX, but what about GFX? */ |
151 | .pwrsts = PWRSTS_OFF_ON, | 141 | .pwrsts = PWRSTS_OFF_ON, |
152 | .pwrsts_logic_ret = PWRSTS_RET, | 142 | .pwrsts_logic_ret = PWRSTS_RET, |
@@ -161,7 +151,6 @@ static struct powerdomain sgx_pwrdm = { | |||
161 | 151 | ||
162 | static struct powerdomain cam_pwrdm = { | 152 | static struct powerdomain cam_pwrdm = { |
163 | .name = "cam_pwrdm", | 153 | .name = "cam_pwrdm", |
164 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
165 | .prcm_offs = OMAP3430_CAM_MOD, | 154 | .prcm_offs = OMAP3430_CAM_MOD, |
166 | .pwrsts = PWRSTS_OFF_RET_ON, | 155 | .pwrsts = PWRSTS_OFF_RET_ON, |
167 | .pwrsts_logic_ret = PWRSTS_RET, | 156 | .pwrsts_logic_ret = PWRSTS_RET, |
@@ -177,7 +166,6 @@ static struct powerdomain cam_pwrdm = { | |||
177 | static struct powerdomain per_pwrdm = { | 166 | static struct powerdomain per_pwrdm = { |
178 | .name = "per_pwrdm", | 167 | .name = "per_pwrdm", |
179 | .prcm_offs = OMAP3430_PER_MOD, | 168 | .prcm_offs = OMAP3430_PER_MOD, |
180 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
181 | .pwrsts = PWRSTS_OFF_RET_ON, | 169 | .pwrsts = PWRSTS_OFF_RET_ON, |
182 | .pwrsts_logic_ret = PWRSTS_OFF_RET, | 170 | .pwrsts_logic_ret = PWRSTS_OFF_RET, |
183 | .banks = 1, | 171 | .banks = 1, |
@@ -192,13 +180,11 @@ static struct powerdomain per_pwrdm = { | |||
192 | static struct powerdomain emu_pwrdm = { | 180 | static struct powerdomain emu_pwrdm = { |
193 | .name = "emu_pwrdm", | 181 | .name = "emu_pwrdm", |
194 | .prcm_offs = OMAP3430_EMU_MOD, | 182 | .prcm_offs = OMAP3430_EMU_MOD, |
195 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
196 | }; | 183 | }; |
197 | 184 | ||
198 | static struct powerdomain neon_pwrdm = { | 185 | static struct powerdomain neon_pwrdm = { |
199 | .name = "neon_pwrdm", | 186 | .name = "neon_pwrdm", |
200 | .prcm_offs = OMAP3430_NEON_MOD, | 187 | .prcm_offs = OMAP3430_NEON_MOD, |
201 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
202 | .pwrsts = PWRSTS_OFF_RET_ON, | 188 | .pwrsts = PWRSTS_OFF_RET_ON, |
203 | .pwrsts_logic_ret = PWRSTS_RET, | 189 | .pwrsts_logic_ret = PWRSTS_RET, |
204 | }; | 190 | }; |
@@ -206,7 +192,6 @@ static struct powerdomain neon_pwrdm = { | |||
206 | static struct powerdomain usbhost_pwrdm = { | 192 | static struct powerdomain usbhost_pwrdm = { |
207 | .name = "usbhost_pwrdm", | 193 | .name = "usbhost_pwrdm", |
208 | .prcm_offs = OMAP3430ES2_USBHOST_MOD, | 194 | .prcm_offs = OMAP3430ES2_USBHOST_MOD, |
209 | .omap_chip = OMAP_CHIP_INIT(CHIP_GE_OMAP3430ES2), | ||
210 | .pwrsts = PWRSTS_OFF_RET_ON, | 195 | .pwrsts = PWRSTS_OFF_RET_ON, |
211 | .pwrsts_logic_ret = PWRSTS_RET, | 196 | .pwrsts_logic_ret = PWRSTS_RET, |
212 | /* | 197 | /* |
@@ -228,60 +213,92 @@ static struct powerdomain usbhost_pwrdm = { | |||
228 | static struct powerdomain dpll1_pwrdm = { | 213 | static struct powerdomain dpll1_pwrdm = { |
229 | .name = "dpll1_pwrdm", | 214 | .name = "dpll1_pwrdm", |
230 | .prcm_offs = MPU_MOD, | 215 | .prcm_offs = MPU_MOD, |
231 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
232 | }; | 216 | }; |
233 | 217 | ||
234 | static struct powerdomain dpll2_pwrdm = { | 218 | static struct powerdomain dpll2_pwrdm = { |
235 | .name = "dpll2_pwrdm", | 219 | .name = "dpll2_pwrdm", |
236 | .prcm_offs = OMAP3430_IVA2_MOD, | 220 | .prcm_offs = OMAP3430_IVA2_MOD, |
237 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
238 | }; | 221 | }; |
239 | 222 | ||
240 | static struct powerdomain dpll3_pwrdm = { | 223 | static struct powerdomain dpll3_pwrdm = { |
241 | .name = "dpll3_pwrdm", | 224 | .name = "dpll3_pwrdm", |
242 | .prcm_offs = PLL_MOD, | 225 | .prcm_offs = PLL_MOD, |
243 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
244 | }; | 226 | }; |
245 | 227 | ||
246 | static struct powerdomain dpll4_pwrdm = { | 228 | static struct powerdomain dpll4_pwrdm = { |
247 | .name = "dpll4_pwrdm", | 229 | .name = "dpll4_pwrdm", |
248 | .prcm_offs = PLL_MOD, | 230 | .prcm_offs = PLL_MOD, |
249 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
250 | }; | 231 | }; |
251 | 232 | ||
252 | static struct powerdomain dpll5_pwrdm = { | 233 | static struct powerdomain dpll5_pwrdm = { |
253 | .name = "dpll5_pwrdm", | 234 | .name = "dpll5_pwrdm", |
254 | .prcm_offs = PLL_MOD, | 235 | .prcm_offs = PLL_MOD, |
255 | .omap_chip = OMAP_CHIP_INIT(CHIP_GE_OMAP3430ES2), | ||
256 | }; | 236 | }; |
257 | 237 | ||
258 | /* As powerdomains are added or removed above, this list must also be changed */ | 238 | /* As powerdomains are added or removed above, this list must also be changed */ |
259 | static struct powerdomain *powerdomains_omap3xxx[] __initdata = { | 239 | static struct powerdomain *powerdomains_omap3430_common[] __initdata = { |
260 | |||
261 | &wkup_omap2_pwrdm, | 240 | &wkup_omap2_pwrdm, |
262 | &gfx_omap2_pwrdm, | ||
263 | &iva2_pwrdm, | 241 | &iva2_pwrdm, |
264 | &mpu_3xxx_pwrdm, | 242 | &mpu_3xxx_pwrdm, |
265 | &neon_pwrdm, | 243 | &neon_pwrdm, |
266 | &core_3xxx_pre_es3_1_pwrdm, | ||
267 | &core_3xxx_es3_1_pwrdm, | ||
268 | &cam_pwrdm, | 244 | &cam_pwrdm, |
269 | &dss_pwrdm, | 245 | &dss_pwrdm, |
270 | &per_pwrdm, | 246 | &per_pwrdm, |
271 | &emu_pwrdm, | 247 | &emu_pwrdm, |
272 | &sgx_pwrdm, | ||
273 | &usbhost_pwrdm, | ||
274 | &dpll1_pwrdm, | 248 | &dpll1_pwrdm, |
275 | &dpll2_pwrdm, | 249 | &dpll2_pwrdm, |
276 | &dpll3_pwrdm, | 250 | &dpll3_pwrdm, |
277 | &dpll4_pwrdm, | 251 | &dpll4_pwrdm, |
252 | NULL | ||
253 | }; | ||
254 | |||
255 | static struct powerdomain *powerdomains_omap3430es1[] __initdata = { | ||
256 | &gfx_omap2_pwrdm, | ||
257 | &core_3xxx_pre_es3_1_pwrdm, | ||
258 | NULL | ||
259 | }; | ||
260 | |||
261 | /* also includes 3630ES1.0 */ | ||
262 | static struct powerdomain *powerdomains_omap3430es2_es3_0[] __initdata = { | ||
263 | &core_3xxx_pre_es3_1_pwrdm, | ||
264 | &sgx_pwrdm, | ||
265 | &usbhost_pwrdm, | ||
278 | &dpll5_pwrdm, | 266 | &dpll5_pwrdm, |
279 | #endif | ||
280 | NULL | 267 | NULL |
281 | }; | 268 | }; |
282 | 269 | ||
270 | /* also includes 3630ES1.1+ */ | ||
271 | static struct powerdomain *powerdomains_omap3430es3_1plus[] __initdata = { | ||
272 | &core_3xxx_es3_1_pwrdm, | ||
273 | &sgx_pwrdm, | ||
274 | &usbhost_pwrdm, | ||
275 | &dpll5_pwrdm, | ||
276 | NULL | ||
277 | }; | ||
283 | 278 | ||
284 | void __init omap3xxx_powerdomains_init(void) | 279 | void __init omap3xxx_powerdomains_init(void) |
285 | { | 280 | { |
286 | pwrdm_init(powerdomains_omap3xxx, &omap3_pwrdm_operations); | 281 | unsigned int rev; |
282 | |||
283 | if (!cpu_is_omap34xx()) | ||
284 | return; | ||
285 | |||
286 | pwrdm_register_platform_funcs(&omap3_pwrdm_operations); | ||
287 | pwrdm_register_pwrdms(powerdomains_omap3430_common); | ||
288 | |||
289 | rev = omap_rev(); | ||
290 | |||
291 | if (rev == OMAP3430_REV_ES1_0) | ||
292 | pwrdm_register_pwrdms(powerdomains_omap3430es1); | ||
293 | else if (rev == OMAP3430_REV_ES2_0 || rev == OMAP3430_REV_ES2_1 || | ||
294 | rev == OMAP3430_REV_ES3_0 || rev == OMAP3630_REV_ES1_0) | ||
295 | pwrdm_register_pwrdms(powerdomains_omap3430es2_es3_0); | ||
296 | else if (rev == OMAP3430_REV_ES3_1 || rev == OMAP3430_REV_ES3_1_2 || | ||
297 | rev == OMAP3517_REV_ES1_0 || rev == OMAP3517_REV_ES1_1 || | ||
298 | rev == OMAP3630_REV_ES1_1 || rev == OMAP3630_REV_ES1_2) | ||
299 | pwrdm_register_pwrdms(powerdomains_omap3430es3_1plus); | ||
300 | else | ||
301 | WARN(1, "OMAP3 powerdomain init: unknown chip type\n"); | ||
302 | |||
303 | pwrdm_complete_init(); | ||
287 | } | 304 | } |
diff --git a/arch/arm/mach-omap2/powerdomains44xx_data.c b/arch/arm/mach-omap2/powerdomains44xx_data.c index 247e79495115..cbce0c9069cd 100644 --- a/arch/arm/mach-omap2/powerdomains44xx_data.c +++ b/arch/arm/mach-omap2/powerdomains44xx_data.c | |||
@@ -35,7 +35,6 @@ static struct powerdomain core_44xx_pwrdm = { | |||
35 | .name = "core_pwrdm", | 35 | .name = "core_pwrdm", |
36 | .prcm_offs = OMAP4430_PRM_CORE_INST, | 36 | .prcm_offs = OMAP4430_PRM_CORE_INST, |
37 | .prcm_partition = OMAP4430_PRM_PARTITION, | 37 | .prcm_partition = OMAP4430_PRM_PARTITION, |
38 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
39 | .pwrsts = PWRSTS_RET_ON, | 38 | .pwrsts = PWRSTS_RET_ON, |
40 | .pwrsts_logic_ret = PWRSTS_OFF_RET, | 39 | .pwrsts_logic_ret = PWRSTS_OFF_RET, |
41 | .banks = 5, | 40 | .banks = 5, |
@@ -61,7 +60,6 @@ static struct powerdomain gfx_44xx_pwrdm = { | |||
61 | .name = "gfx_pwrdm", | 60 | .name = "gfx_pwrdm", |
62 | .prcm_offs = OMAP4430_PRM_GFX_INST, | 61 | .prcm_offs = OMAP4430_PRM_GFX_INST, |
63 | .prcm_partition = OMAP4430_PRM_PARTITION, | 62 | .prcm_partition = OMAP4430_PRM_PARTITION, |
64 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
65 | .pwrsts = PWRSTS_OFF_ON, | 63 | .pwrsts = PWRSTS_OFF_ON, |
66 | .banks = 1, | 64 | .banks = 1, |
67 | .pwrsts_mem_ret = { | 65 | .pwrsts_mem_ret = { |
@@ -78,7 +76,6 @@ static struct powerdomain abe_44xx_pwrdm = { | |||
78 | .name = "abe_pwrdm", | 76 | .name = "abe_pwrdm", |
79 | .prcm_offs = OMAP4430_PRM_ABE_INST, | 77 | .prcm_offs = OMAP4430_PRM_ABE_INST, |
80 | .prcm_partition = OMAP4430_PRM_PARTITION, | 78 | .prcm_partition = OMAP4430_PRM_PARTITION, |
81 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
82 | .pwrsts = PWRSTS_OFF_RET_ON, | 79 | .pwrsts = PWRSTS_OFF_RET_ON, |
83 | .pwrsts_logic_ret = PWRSTS_OFF, | 80 | .pwrsts_logic_ret = PWRSTS_OFF, |
84 | .banks = 2, | 81 | .banks = 2, |
@@ -98,7 +95,6 @@ static struct powerdomain dss_44xx_pwrdm = { | |||
98 | .name = "dss_pwrdm", | 95 | .name = "dss_pwrdm", |
99 | .prcm_offs = OMAP4430_PRM_DSS_INST, | 96 | .prcm_offs = OMAP4430_PRM_DSS_INST, |
100 | .prcm_partition = OMAP4430_PRM_PARTITION, | 97 | .prcm_partition = OMAP4430_PRM_PARTITION, |
101 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
102 | .pwrsts = PWRSTS_OFF_RET_ON, | 98 | .pwrsts = PWRSTS_OFF_RET_ON, |
103 | .pwrsts_logic_ret = PWRSTS_OFF, | 99 | .pwrsts_logic_ret = PWRSTS_OFF, |
104 | .banks = 1, | 100 | .banks = 1, |
@@ -116,7 +112,6 @@ static struct powerdomain tesla_44xx_pwrdm = { | |||
116 | .name = "tesla_pwrdm", | 112 | .name = "tesla_pwrdm", |
117 | .prcm_offs = OMAP4430_PRM_TESLA_INST, | 113 | .prcm_offs = OMAP4430_PRM_TESLA_INST, |
118 | .prcm_partition = OMAP4430_PRM_PARTITION, | 114 | .prcm_partition = OMAP4430_PRM_PARTITION, |
119 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
120 | .pwrsts = PWRSTS_OFF_RET_ON, | 115 | .pwrsts = PWRSTS_OFF_RET_ON, |
121 | .pwrsts_logic_ret = PWRSTS_OFF_RET, | 116 | .pwrsts_logic_ret = PWRSTS_OFF_RET, |
122 | .banks = 3, | 117 | .banks = 3, |
@@ -138,7 +133,6 @@ static struct powerdomain wkup_44xx_pwrdm = { | |||
138 | .name = "wkup_pwrdm", | 133 | .name = "wkup_pwrdm", |
139 | .prcm_offs = OMAP4430_PRM_WKUP_INST, | 134 | .prcm_offs = OMAP4430_PRM_WKUP_INST, |
140 | .prcm_partition = OMAP4430_PRM_PARTITION, | 135 | .prcm_partition = OMAP4430_PRM_PARTITION, |
141 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
142 | .pwrsts = PWRSTS_ON, | 136 | .pwrsts = PWRSTS_ON, |
143 | .banks = 1, | 137 | .banks = 1, |
144 | .pwrsts_mem_ret = { | 138 | .pwrsts_mem_ret = { |
@@ -154,7 +148,6 @@ static struct powerdomain cpu0_44xx_pwrdm = { | |||
154 | .name = "cpu0_pwrdm", | 148 | .name = "cpu0_pwrdm", |
155 | .prcm_offs = OMAP4430_PRCM_MPU_CPU0_INST, | 149 | .prcm_offs = OMAP4430_PRCM_MPU_CPU0_INST, |
156 | .prcm_partition = OMAP4430_PRCM_MPU_PARTITION, | 150 | .prcm_partition = OMAP4430_PRCM_MPU_PARTITION, |
157 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
158 | .pwrsts = PWRSTS_OFF_RET_ON, | 151 | .pwrsts = PWRSTS_OFF_RET_ON, |
159 | .pwrsts_logic_ret = PWRSTS_OFF_RET, | 152 | .pwrsts_logic_ret = PWRSTS_OFF_RET, |
160 | .banks = 1, | 153 | .banks = 1, |
@@ -171,7 +164,6 @@ static struct powerdomain cpu1_44xx_pwrdm = { | |||
171 | .name = "cpu1_pwrdm", | 164 | .name = "cpu1_pwrdm", |
172 | .prcm_offs = OMAP4430_PRCM_MPU_CPU1_INST, | 165 | .prcm_offs = OMAP4430_PRCM_MPU_CPU1_INST, |
173 | .prcm_partition = OMAP4430_PRCM_MPU_PARTITION, | 166 | .prcm_partition = OMAP4430_PRCM_MPU_PARTITION, |
174 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
175 | .pwrsts = PWRSTS_OFF_RET_ON, | 167 | .pwrsts = PWRSTS_OFF_RET_ON, |
176 | .pwrsts_logic_ret = PWRSTS_OFF_RET, | 168 | .pwrsts_logic_ret = PWRSTS_OFF_RET, |
177 | .banks = 1, | 169 | .banks = 1, |
@@ -188,7 +180,6 @@ static struct powerdomain emu_44xx_pwrdm = { | |||
188 | .name = "emu_pwrdm", | 180 | .name = "emu_pwrdm", |
189 | .prcm_offs = OMAP4430_PRM_EMU_INST, | 181 | .prcm_offs = OMAP4430_PRM_EMU_INST, |
190 | .prcm_partition = OMAP4430_PRM_PARTITION, | 182 | .prcm_partition = OMAP4430_PRM_PARTITION, |
191 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
192 | .pwrsts = PWRSTS_OFF_ON, | 183 | .pwrsts = PWRSTS_OFF_ON, |
193 | .banks = 1, | 184 | .banks = 1, |
194 | .pwrsts_mem_ret = { | 185 | .pwrsts_mem_ret = { |
@@ -204,7 +195,6 @@ static struct powerdomain mpu_44xx_pwrdm = { | |||
204 | .name = "mpu_pwrdm", | 195 | .name = "mpu_pwrdm", |
205 | .prcm_offs = OMAP4430_PRM_MPU_INST, | 196 | .prcm_offs = OMAP4430_PRM_MPU_INST, |
206 | .prcm_partition = OMAP4430_PRM_PARTITION, | 197 | .prcm_partition = OMAP4430_PRM_PARTITION, |
207 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
208 | .pwrsts = PWRSTS_RET_ON, | 198 | .pwrsts = PWRSTS_RET_ON, |
209 | .pwrsts_logic_ret = PWRSTS_OFF_RET, | 199 | .pwrsts_logic_ret = PWRSTS_OFF_RET, |
210 | .banks = 3, | 200 | .banks = 3, |
@@ -225,7 +215,6 @@ static struct powerdomain ivahd_44xx_pwrdm = { | |||
225 | .name = "ivahd_pwrdm", | 215 | .name = "ivahd_pwrdm", |
226 | .prcm_offs = OMAP4430_PRM_IVAHD_INST, | 216 | .prcm_offs = OMAP4430_PRM_IVAHD_INST, |
227 | .prcm_partition = OMAP4430_PRM_PARTITION, | 217 | .prcm_partition = OMAP4430_PRM_PARTITION, |
228 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
229 | .pwrsts = PWRSTS_OFF_RET_ON, | 218 | .pwrsts = PWRSTS_OFF_RET_ON, |
230 | .pwrsts_logic_ret = PWRSTS_OFF, | 219 | .pwrsts_logic_ret = PWRSTS_OFF, |
231 | .banks = 4, | 220 | .banks = 4, |
@@ -249,7 +238,6 @@ static struct powerdomain cam_44xx_pwrdm = { | |||
249 | .name = "cam_pwrdm", | 238 | .name = "cam_pwrdm", |
250 | .prcm_offs = OMAP4430_PRM_CAM_INST, | 239 | .prcm_offs = OMAP4430_PRM_CAM_INST, |
251 | .prcm_partition = OMAP4430_PRM_PARTITION, | 240 | .prcm_partition = OMAP4430_PRM_PARTITION, |
252 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
253 | .pwrsts = PWRSTS_OFF_ON, | 241 | .pwrsts = PWRSTS_OFF_ON, |
254 | .banks = 1, | 242 | .banks = 1, |
255 | .pwrsts_mem_ret = { | 243 | .pwrsts_mem_ret = { |
@@ -266,7 +254,6 @@ static struct powerdomain l3init_44xx_pwrdm = { | |||
266 | .name = "l3init_pwrdm", | 254 | .name = "l3init_pwrdm", |
267 | .prcm_offs = OMAP4430_PRM_L3INIT_INST, | 255 | .prcm_offs = OMAP4430_PRM_L3INIT_INST, |
268 | .prcm_partition = OMAP4430_PRM_PARTITION, | 256 | .prcm_partition = OMAP4430_PRM_PARTITION, |
269 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
270 | .pwrsts = PWRSTS_RET_ON, | 257 | .pwrsts = PWRSTS_RET_ON, |
271 | .pwrsts_logic_ret = PWRSTS_OFF_RET, | 258 | .pwrsts_logic_ret = PWRSTS_OFF_RET, |
272 | .banks = 1, | 259 | .banks = 1, |
@@ -284,7 +271,6 @@ static struct powerdomain l4per_44xx_pwrdm = { | |||
284 | .name = "l4per_pwrdm", | 271 | .name = "l4per_pwrdm", |
285 | .prcm_offs = OMAP4430_PRM_L4PER_INST, | 272 | .prcm_offs = OMAP4430_PRM_L4PER_INST, |
286 | .prcm_partition = OMAP4430_PRM_PARTITION, | 273 | .prcm_partition = OMAP4430_PRM_PARTITION, |
287 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
288 | .pwrsts = PWRSTS_RET_ON, | 274 | .pwrsts = PWRSTS_RET_ON, |
289 | .pwrsts_logic_ret = PWRSTS_OFF_RET, | 275 | .pwrsts_logic_ret = PWRSTS_OFF_RET, |
290 | .banks = 2, | 276 | .banks = 2, |
@@ -307,7 +293,6 @@ static struct powerdomain always_on_core_44xx_pwrdm = { | |||
307 | .name = "always_on_core_pwrdm", | 293 | .name = "always_on_core_pwrdm", |
308 | .prcm_offs = OMAP4430_PRM_ALWAYS_ON_INST, | 294 | .prcm_offs = OMAP4430_PRM_ALWAYS_ON_INST, |
309 | .prcm_partition = OMAP4430_PRM_PARTITION, | 295 | .prcm_partition = OMAP4430_PRM_PARTITION, |
310 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
311 | .pwrsts = PWRSTS_ON, | 296 | .pwrsts = PWRSTS_ON, |
312 | }; | 297 | }; |
313 | 298 | ||
@@ -316,7 +301,6 @@ static struct powerdomain cefuse_44xx_pwrdm = { | |||
316 | .name = "cefuse_pwrdm", | 301 | .name = "cefuse_pwrdm", |
317 | .prcm_offs = OMAP4430_PRM_CEFUSE_INST, | 302 | .prcm_offs = OMAP4430_PRM_CEFUSE_INST, |
318 | .prcm_partition = OMAP4430_PRM_PARTITION, | 303 | .prcm_partition = OMAP4430_PRM_PARTITION, |
319 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP4430), | ||
320 | .pwrsts = PWRSTS_OFF_ON, | 304 | .pwrsts = PWRSTS_OFF_ON, |
321 | .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, | 305 | .flags = PWRDM_HAS_LOWPOWERSTATECHANGE, |
322 | }; | 306 | }; |
@@ -352,5 +336,7 @@ static struct powerdomain *powerdomains_omap44xx[] __initdata = { | |||
352 | 336 | ||
353 | void __init omap44xx_powerdomains_init(void) | 337 | void __init omap44xx_powerdomains_init(void) |
354 | { | 338 | { |
355 | pwrdm_init(powerdomains_omap44xx, &omap4_pwrdm_operations); | 339 | pwrdm_register_platform_funcs(&omap4_pwrdm_operations); |
340 | pwrdm_register_pwrdms(powerdomains_omap44xx); | ||
341 | pwrdm_complete_init(); | ||
356 | } | 342 | } |
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index 466fc722fa0f..3d1c1d393f8f 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c | |||
@@ -711,7 +711,7 @@ void __init omap_serial_init_port(struct omap_board_data *bdata) | |||
711 | { | 711 | { |
712 | struct omap_uart_state *uart; | 712 | struct omap_uart_state *uart; |
713 | struct omap_hwmod *oh; | 713 | struct omap_hwmod *oh; |
714 | struct omap_device *od; | 714 | struct platform_device *pdev; |
715 | void *pdata = NULL; | 715 | void *pdata = NULL; |
716 | u32 pdata_size = 0; | 716 | u32 pdata_size = 0; |
717 | char *name; | 717 | char *name; |
@@ -799,20 +799,20 @@ void __init omap_serial_init_port(struct omap_board_data *bdata) | |||
799 | if (WARN_ON(!oh)) | 799 | if (WARN_ON(!oh)) |
800 | return; | 800 | return; |
801 | 801 | ||
802 | od = omap_device_build(name, uart->num, oh, pdata, pdata_size, | 802 | pdev = omap_device_build(name, uart->num, oh, pdata, pdata_size, |
803 | omap_uart_latency, | 803 | omap_uart_latency, |
804 | ARRAY_SIZE(omap_uart_latency), false); | 804 | ARRAY_SIZE(omap_uart_latency), false); |
805 | WARN(IS_ERR(od), "Could not build omap_device for %s: %s.\n", | 805 | WARN(IS_ERR(pdev), "Could not build omap_device for %s: %s.\n", |
806 | name, oh->name); | 806 | name, oh->name); |
807 | 807 | ||
808 | omap_device_disable_idle_on_suspend(od); | 808 | omap_device_disable_idle_on_suspend(pdev); |
809 | oh->mux = omap_hwmod_mux_init(bdata->pads, bdata->pads_cnt); | 809 | oh->mux = omap_hwmod_mux_init(bdata->pads, bdata->pads_cnt); |
810 | 810 | ||
811 | uart->irq = oh->mpu_irqs[0].irq; | 811 | uart->irq = oh->mpu_irqs[0].irq; |
812 | uart->regshift = 2; | 812 | uart->regshift = 2; |
813 | uart->mapbase = oh->slaves[0]->addr->pa_start; | 813 | uart->mapbase = oh->slaves[0]->addr->pa_start; |
814 | uart->membase = omap_hwmod_get_mpu_rt_va(oh); | 814 | uart->membase = omap_hwmod_get_mpu_rt_va(oh); |
815 | uart->pdev = &od->pdev; | 815 | uart->pdev = pdev; |
816 | 816 | ||
817 | oh->dev_attr = uart; | 817 | oh->dev_attr = uart; |
818 | 818 | ||
@@ -846,8 +846,8 @@ void __init omap_serial_init_port(struct omap_board_data *bdata) | |||
846 | 846 | ||
847 | if ((cpu_is_omap34xx() && uart->padconf) || | 847 | if ((cpu_is_omap34xx() && uart->padconf) || |
848 | (uart->wk_en && uart->wk_mask)) { | 848 | (uart->wk_en && uart->wk_mask)) { |
849 | device_init_wakeup(&od->pdev.dev, true); | 849 | device_init_wakeup(&pdev->dev, true); |
850 | DEV_CREATE_FILE(&od->pdev.dev, &dev_attr_sleep_timeout); | 850 | DEV_CREATE_FILE(&pdev->dev, &dev_attr_sleep_timeout); |
851 | } | 851 | } |
852 | 852 | ||
853 | /* Enable the MDR1 errata for OMAP3 */ | 853 | /* Enable the MDR1 errata for OMAP3 */ |
diff --git a/arch/arm/mach-omap2/sr_device.c b/arch/arm/mach-omap2/sr_device.c index 10d3c5ee8018..624264d8e1a5 100644 --- a/arch/arm/mach-omap2/sr_device.c +++ b/arch/arm/mach-omap2/sr_device.c | |||
@@ -80,7 +80,7 @@ static void __init sr_set_nvalues(struct omap_volt_data *volt_data, | |||
80 | static int sr_dev_init(struct omap_hwmod *oh, void *user) | 80 | static int sr_dev_init(struct omap_hwmod *oh, void *user) |
81 | { | 81 | { |
82 | struct omap_sr_data *sr_data; | 82 | struct omap_sr_data *sr_data; |
83 | struct omap_device *od; | 83 | struct platform_device *pdev; |
84 | struct omap_volt_data *volt_data; | 84 | struct omap_volt_data *volt_data; |
85 | char *name = "smartreflex"; | 85 | char *name = "smartreflex"; |
86 | static int i; | 86 | static int i; |
@@ -120,10 +120,10 @@ static int sr_dev_init(struct omap_hwmod *oh, void *user) | |||
120 | 120 | ||
121 | sr_data->enable_on_init = sr_enable_on_init; | 121 | sr_data->enable_on_init = sr_enable_on_init; |
122 | 122 | ||
123 | od = omap_device_build(name, i, oh, sr_data, sizeof(*sr_data), | 123 | pdev = omap_device_build(name, i, oh, sr_data, sizeof(*sr_data), |
124 | omap_sr_latency, | 124 | omap_sr_latency, |
125 | ARRAY_SIZE(omap_sr_latency), 0); | 125 | ARRAY_SIZE(omap_sr_latency), 0); |
126 | if (IS_ERR(od)) | 126 | if (IS_ERR(pdev)) |
127 | pr_warning("%s: Could not build omap_device for %s: %s.\n\n", | 127 | pr_warning("%s: Could not build omap_device for %s: %s.\n\n", |
128 | __func__, name, oh->name); | 128 | __func__, name, oh->name); |
129 | exit: | 129 | exit: |
diff --git a/arch/arm/mach-orion5x/d2net-setup.c b/arch/arm/mach-orion5x/d2net-setup.c index 19cf5bf99f1b..8c8300951f46 100644 --- a/arch/arm/mach-orion5x/d2net-setup.c +++ b/arch/arm/mach-orion5x/d2net-setup.c | |||
@@ -336,7 +336,7 @@ static void __init d2net_init(void) | |||
336 | 336 | ||
337 | #ifdef CONFIG_MACH_D2NET | 337 | #ifdef CONFIG_MACH_D2NET |
338 | MACHINE_START(D2NET, "LaCie d2 Network") | 338 | MACHINE_START(D2NET, "LaCie d2 Network") |
339 | .boot_params = 0x00000100, | 339 | .atag_offset = 0x100, |
340 | .init_machine = d2net_init, | 340 | .init_machine = d2net_init, |
341 | .map_io = orion5x_map_io, | 341 | .map_io = orion5x_map_io, |
342 | .init_early = orion5x_init_early, | 342 | .init_early = orion5x_init_early, |
@@ -348,7 +348,7 @@ MACHINE_END | |||
348 | 348 | ||
349 | #ifdef CONFIG_MACH_BIGDISK | 349 | #ifdef CONFIG_MACH_BIGDISK |
350 | MACHINE_START(BIGDISK, "LaCie Big Disk Network") | 350 | MACHINE_START(BIGDISK, "LaCie Big Disk Network") |
351 | .boot_params = 0x00000100, | 351 | .atag_offset = 0x100, |
352 | .init_machine = d2net_init, | 352 | .init_machine = d2net_init, |
353 | .map_io = orion5x_map_io, | 353 | .map_io = orion5x_map_io, |
354 | .init_early = orion5x_init_early, | 354 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/db88f5281-setup.c b/arch/arm/mach-orion5x/db88f5281-setup.c index a3e3e9e5e328..88432aba972c 100644 --- a/arch/arm/mach-orion5x/db88f5281-setup.c +++ b/arch/arm/mach-orion5x/db88f5281-setup.c | |||
@@ -359,7 +359,7 @@ static void __init db88f5281_init(void) | |||
359 | 359 | ||
360 | MACHINE_START(DB88F5281, "Marvell Orion-2 Development Board") | 360 | MACHINE_START(DB88F5281, "Marvell Orion-2 Development Board") |
361 | /* Maintainer: Tzachi Perelstein <tzachi@marvell.com> */ | 361 | /* Maintainer: Tzachi Perelstein <tzachi@marvell.com> */ |
362 | .boot_params = 0x00000100, | 362 | .atag_offset = 0x100, |
363 | .init_machine = db88f5281_init, | 363 | .init_machine = db88f5281_init, |
364 | .map_io = orion5x_map_io, | 364 | .map_io = orion5x_map_io, |
365 | .init_early = orion5x_init_early, | 365 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/dns323-setup.c b/arch/arm/mach-orion5x/dns323-setup.c index c105556a0ee1..9e5c1663fc4f 100644 --- a/arch/arm/mach-orion5x/dns323-setup.c +++ b/arch/arm/mach-orion5x/dns323-setup.c | |||
@@ -730,7 +730,7 @@ static void __init dns323_init(void) | |||
730 | /* Warning: D-Link uses a wrong mach-type (=526) in their bootloader */ | 730 | /* Warning: D-Link uses a wrong mach-type (=526) in their bootloader */ |
731 | MACHINE_START(DNS323, "D-Link DNS-323") | 731 | MACHINE_START(DNS323, "D-Link DNS-323") |
732 | /* Maintainer: Herbert Valerio Riedel <hvr@gnu.org> */ | 732 | /* Maintainer: Herbert Valerio Riedel <hvr@gnu.org> */ |
733 | .boot_params = 0x00000100, | 733 | .atag_offset = 0x100, |
734 | .init_machine = dns323_init, | 734 | .init_machine = dns323_init, |
735 | .map_io = orion5x_map_io, | 735 | .map_io = orion5x_map_io, |
736 | .init_early = orion5x_init_early, | 736 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/edmini_v2-setup.c b/arch/arm/mach-orion5x/edmini_v2-setup.c index b67cff0d4cfe..70a4e9265f06 100644 --- a/arch/arm/mach-orion5x/edmini_v2-setup.c +++ b/arch/arm/mach-orion5x/edmini_v2-setup.c | |||
@@ -251,7 +251,7 @@ static void __init edmini_v2_init(void) | |||
251 | /* Warning: LaCie use a wrong mach-type (0x20e=526) in their bootloader. */ | 251 | /* Warning: LaCie use a wrong mach-type (0x20e=526) in their bootloader. */ |
252 | MACHINE_START(EDMINI_V2, "LaCie Ethernet Disk mini V2") | 252 | MACHINE_START(EDMINI_V2, "LaCie Ethernet Disk mini V2") |
253 | /* Maintainer: Christopher Moore <moore@free.fr> */ | 253 | /* Maintainer: Christopher Moore <moore@free.fr> */ |
254 | .boot_params = 0x00000100, | 254 | .atag_offset = 0x100, |
255 | .init_machine = edmini_v2_init, | 255 | .init_machine = edmini_v2_init, |
256 | .map_io = orion5x_map_io, | 256 | .map_io = orion5x_map_io, |
257 | .init_early = orion5x_init_early, | 257 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/kurobox_pro-setup.c b/arch/arm/mach-orion5x/kurobox_pro-setup.c index 00381249d766..9115511dc035 100644 --- a/arch/arm/mach-orion5x/kurobox_pro-setup.c +++ b/arch/arm/mach-orion5x/kurobox_pro-setup.c | |||
@@ -380,7 +380,7 @@ static void __init kurobox_pro_init(void) | |||
380 | #ifdef CONFIG_MACH_KUROBOX_PRO | 380 | #ifdef CONFIG_MACH_KUROBOX_PRO |
381 | MACHINE_START(KUROBOX_PRO, "Buffalo/Revogear Kurobox Pro") | 381 | MACHINE_START(KUROBOX_PRO, "Buffalo/Revogear Kurobox Pro") |
382 | /* Maintainer: Ronen Shitrit <rshitrit@marvell.com> */ | 382 | /* Maintainer: Ronen Shitrit <rshitrit@marvell.com> */ |
383 | .boot_params = 0x00000100, | 383 | .atag_offset = 0x100, |
384 | .init_machine = kurobox_pro_init, | 384 | .init_machine = kurobox_pro_init, |
385 | .map_io = orion5x_map_io, | 385 | .map_io = orion5x_map_io, |
386 | .init_early = orion5x_init_early, | 386 | .init_early = orion5x_init_early, |
@@ -393,7 +393,7 @@ MACHINE_END | |||
393 | #ifdef CONFIG_MACH_LINKSTATION_PRO | 393 | #ifdef CONFIG_MACH_LINKSTATION_PRO |
394 | MACHINE_START(LINKSTATION_PRO, "Buffalo Linkstation Pro/Live") | 394 | MACHINE_START(LINKSTATION_PRO, "Buffalo Linkstation Pro/Live") |
395 | /* Maintainer: Byron Bradley <byron.bbradley@gmail.com> */ | 395 | /* Maintainer: Byron Bradley <byron.bbradley@gmail.com> */ |
396 | .boot_params = 0x00000100, | 396 | .atag_offset = 0x100, |
397 | .init_machine = kurobox_pro_init, | 397 | .init_machine = kurobox_pro_init, |
398 | .map_io = orion5x_map_io, | 398 | .map_io = orion5x_map_io, |
399 | .init_early = orion5x_init_early, | 399 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/ls-chl-setup.c b/arch/arm/mach-orion5x/ls-chl-setup.c index 5065803ca82a..9503fff404e3 100644 --- a/arch/arm/mach-orion5x/ls-chl-setup.c +++ b/arch/arm/mach-orion5x/ls-chl-setup.c | |||
@@ -318,7 +318,7 @@ static void __init lschl_init(void) | |||
318 | 318 | ||
319 | MACHINE_START(LINKSTATION_LSCHL, "Buffalo Linkstation LiveV3 (LS-CHL)") | 319 | MACHINE_START(LINKSTATION_LSCHL, "Buffalo Linkstation LiveV3 (LS-CHL)") |
320 | /* Maintainer: Ash Hughes <ashley.hughes@blueyonder.co.uk> */ | 320 | /* Maintainer: Ash Hughes <ashley.hughes@blueyonder.co.uk> */ |
321 | .boot_params = 0x00000100, | 321 | .atag_offset = 0x100, |
322 | .init_machine = lschl_init, | 322 | .init_machine = lschl_init, |
323 | .map_io = orion5x_map_io, | 323 | .map_io = orion5x_map_io, |
324 | .init_early = orion5x_init_early, | 324 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/ls_hgl-setup.c b/arch/arm/mach-orion5x/ls_hgl-setup.c index 8503d0a42d41..ed6d772f4a24 100644 --- a/arch/arm/mach-orion5x/ls_hgl-setup.c +++ b/arch/arm/mach-orion5x/ls_hgl-setup.c | |||
@@ -265,7 +265,7 @@ static void __init ls_hgl_init(void) | |||
265 | 265 | ||
266 | MACHINE_START(LINKSTATION_LS_HGL, "Buffalo Linkstation LS-HGL") | 266 | MACHINE_START(LINKSTATION_LS_HGL, "Buffalo Linkstation LS-HGL") |
267 | /* Maintainer: Zhu Qingsen <zhuqs@cn.fujistu.com> */ | 267 | /* Maintainer: Zhu Qingsen <zhuqs@cn.fujistu.com> */ |
268 | .boot_params = 0x00000100, | 268 | .atag_offset = 0x100, |
269 | .init_machine = ls_hgl_init, | 269 | .init_machine = ls_hgl_init, |
270 | .map_io = orion5x_map_io, | 270 | .map_io = orion5x_map_io, |
271 | .init_early = orion5x_init_early, | 271 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/lsmini-setup.c b/arch/arm/mach-orion5x/lsmini-setup.c index 9c82723c05c0..743f7f1db181 100644 --- a/arch/arm/mach-orion5x/lsmini-setup.c +++ b/arch/arm/mach-orion5x/lsmini-setup.c | |||
@@ -267,7 +267,7 @@ static void __init lsmini_init(void) | |||
267 | #ifdef CONFIG_MACH_LINKSTATION_MINI | 267 | #ifdef CONFIG_MACH_LINKSTATION_MINI |
268 | MACHINE_START(LINKSTATION_MINI, "Buffalo Linkstation Mini") | 268 | MACHINE_START(LINKSTATION_MINI, "Buffalo Linkstation Mini") |
269 | /* Maintainer: Alexey Kopytko <alexey@kopytko.ru> */ | 269 | /* Maintainer: Alexey Kopytko <alexey@kopytko.ru> */ |
270 | .boot_params = 0x00000100, | 270 | .atag_offset = 0x100, |
271 | .init_machine = lsmini_init, | 271 | .init_machine = lsmini_init, |
272 | .map_io = orion5x_map_io, | 272 | .map_io = orion5x_map_io, |
273 | .init_early = orion5x_init_early, | 273 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/mss2-setup.c b/arch/arm/mach-orion5x/mss2-setup.c index ef3bb8e9a4c2..6020e26b1c71 100644 --- a/arch/arm/mach-orion5x/mss2-setup.c +++ b/arch/arm/mach-orion5x/mss2-setup.c | |||
@@ -261,7 +261,7 @@ static void __init mss2_init(void) | |||
261 | 261 | ||
262 | MACHINE_START(MSS2, "Maxtor Shared Storage II") | 262 | MACHINE_START(MSS2, "Maxtor Shared Storage II") |
263 | /* Maintainer: Sylver Bruneau <sylver.bruneau@googlemail.com> */ | 263 | /* Maintainer: Sylver Bruneau <sylver.bruneau@googlemail.com> */ |
264 | .boot_params = 0x00000100, | 264 | .atag_offset = 0x100, |
265 | .init_machine = mss2_init, | 265 | .init_machine = mss2_init, |
266 | .map_io = orion5x_map_io, | 266 | .map_io = orion5x_map_io, |
267 | .init_early = orion5x_init_early, | 267 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/mv2120-setup.c b/arch/arm/mach-orion5x/mv2120-setup.c index 63ff10c3c464..b3356ada64b9 100644 --- a/arch/arm/mach-orion5x/mv2120-setup.c +++ b/arch/arm/mach-orion5x/mv2120-setup.c | |||
@@ -229,7 +229,7 @@ static void __init mv2120_init(void) | |||
229 | /* Warning: HP uses a wrong mach-type (=526) in their bootloader */ | 229 | /* Warning: HP uses a wrong mach-type (=526) in their bootloader */ |
230 | MACHINE_START(MV2120, "HP Media Vault mv2120") | 230 | MACHINE_START(MV2120, "HP Media Vault mv2120") |
231 | /* Maintainer: Martin Michlmayr <tbm@cyrius.com> */ | 231 | /* Maintainer: Martin Michlmayr <tbm@cyrius.com> */ |
232 | .boot_params = 0x00000100, | 232 | .atag_offset = 0x100, |
233 | .init_machine = mv2120_init, | 233 | .init_machine = mv2120_init, |
234 | .map_io = orion5x_map_io, | 234 | .map_io = orion5x_map_io, |
235 | .init_early = orion5x_init_early, | 235 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/net2big-setup.c b/arch/arm/mach-orion5x/net2big-setup.c index e43b39cc7fe9..6197c79a2ecb 100644 --- a/arch/arm/mach-orion5x/net2big-setup.c +++ b/arch/arm/mach-orion5x/net2big-setup.c | |||
@@ -419,7 +419,7 @@ static void __init net2big_init(void) | |||
419 | 419 | ||
420 | /* Warning: LaCie use a wrong mach-type (0x20e=526) in their bootloader. */ | 420 | /* Warning: LaCie use a wrong mach-type (0x20e=526) in their bootloader. */ |
421 | MACHINE_START(NET2BIG, "LaCie 2Big Network") | 421 | MACHINE_START(NET2BIG, "LaCie 2Big Network") |
422 | .boot_params = 0x00000100, | 422 | .atag_offset = 0x100, |
423 | .init_machine = net2big_init, | 423 | .init_machine = net2big_init, |
424 | .map_io = orion5x_map_io, | 424 | .map_io = orion5x_map_io, |
425 | .init_early = orion5x_init_early, | 425 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c b/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c index 291d22bf44c9..8c876664f494 100644 --- a/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c +++ b/arch/arm/mach-orion5x/rd88f5181l-fxo-setup.c | |||
@@ -169,7 +169,7 @@ subsys_initcall(rd88f5181l_fxo_pci_init); | |||
169 | 169 | ||
170 | MACHINE_START(RD88F5181L_FXO, "Marvell Orion-VoIP FXO Reference Design") | 170 | MACHINE_START(RD88F5181L_FXO, "Marvell Orion-VoIP FXO Reference Design") |
171 | /* Maintainer: Nicolas Pitre <nico@marvell.com> */ | 171 | /* Maintainer: Nicolas Pitre <nico@marvell.com> */ |
172 | .boot_params = 0x00000100, | 172 | .atag_offset = 0x100, |
173 | .init_machine = rd88f5181l_fxo_init, | 173 | .init_machine = rd88f5181l_fxo_init, |
174 | .map_io = orion5x_map_io, | 174 | .map_io = orion5x_map_io, |
175 | .init_early = orion5x_init_early, | 175 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c b/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c index 3f02362e1632..994644f59d8d 100644 --- a/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c +++ b/arch/arm/mach-orion5x/rd88f5181l-ge-setup.c | |||
@@ -181,7 +181,7 @@ subsys_initcall(rd88f5181l_ge_pci_init); | |||
181 | 181 | ||
182 | MACHINE_START(RD88F5181L_GE, "Marvell Orion-VoIP GE Reference Design") | 182 | MACHINE_START(RD88F5181L_GE, "Marvell Orion-VoIP GE Reference Design") |
183 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ | 183 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ |
184 | .boot_params = 0x00000100, | 184 | .atag_offset = 0x100, |
185 | .init_machine = rd88f5181l_ge_init, | 185 | .init_machine = rd88f5181l_ge_init, |
186 | .map_io = orion5x_map_io, | 186 | .map_io = orion5x_map_io, |
187 | .init_early = orion5x_init_early, | 187 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/rd88f5182-setup.c b/arch/arm/mach-orion5x/rd88f5182-setup.c index 27fd38e658bd..1903d25ecae9 100644 --- a/arch/arm/mach-orion5x/rd88f5182-setup.c +++ b/arch/arm/mach-orion5x/rd88f5182-setup.c | |||
@@ -306,7 +306,7 @@ static void __init rd88f5182_init(void) | |||
306 | 306 | ||
307 | MACHINE_START(RD88F5182, "Marvell Orion-NAS Reference Design") | 307 | MACHINE_START(RD88F5182, "Marvell Orion-NAS Reference Design") |
308 | /* Maintainer: Ronen Shitrit <rshitrit@marvell.com> */ | 308 | /* Maintainer: Ronen Shitrit <rshitrit@marvell.com> */ |
309 | .boot_params = 0x00000100, | 309 | .atag_offset = 0x100, |
310 | .init_machine = rd88f5182_init, | 310 | .init_machine = rd88f5182_init, |
311 | .map_io = orion5x_map_io, | 311 | .map_io = orion5x_map_io, |
312 | .init_early = orion5x_init_early, | 312 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c b/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c index ad2eba9286ad..e06fdae77f0a 100644 --- a/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c +++ b/arch/arm/mach-orion5x/rd88f6183ap-ge-setup.c | |||
@@ -122,7 +122,7 @@ subsys_initcall(rd88f6183ap_ge_pci_init); | |||
122 | 122 | ||
123 | MACHINE_START(RD88F6183AP_GE, "Marvell Orion-1-90 AP GE Reference Design") | 123 | MACHINE_START(RD88F6183AP_GE, "Marvell Orion-1-90 AP GE Reference Design") |
124 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ | 124 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ |
125 | .boot_params = 0x00000100, | 125 | .atag_offset = 0x100, |
126 | .init_machine = rd88f6183ap_ge_init, | 126 | .init_machine = rd88f6183ap_ge_init, |
127 | .map_io = orion5x_map_io, | 127 | .map_io = orion5x_map_io, |
128 | .init_early = orion5x_init_early, | 128 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/terastation_pro2-setup.c b/arch/arm/mach-orion5x/terastation_pro2-setup.c index a34e4fac72b0..306183273eb9 100644 --- a/arch/arm/mach-orion5x/terastation_pro2-setup.c +++ b/arch/arm/mach-orion5x/terastation_pro2-setup.c | |||
@@ -358,7 +358,7 @@ static void __init tsp2_init(void) | |||
358 | 358 | ||
359 | MACHINE_START(TERASTATION_PRO2, "Buffalo Terastation Pro II/Live") | 359 | MACHINE_START(TERASTATION_PRO2, "Buffalo Terastation Pro II/Live") |
360 | /* Maintainer: Sylver Bruneau <sylver.bruneau@googlemail.com> */ | 360 | /* Maintainer: Sylver Bruneau <sylver.bruneau@googlemail.com> */ |
361 | .boot_params = 0x00000100, | 361 | .atag_offset = 0x100, |
362 | .init_machine = tsp2_init, | 362 | .init_machine = tsp2_init, |
363 | .map_io = orion5x_map_io, | 363 | .map_io = orion5x_map_io, |
364 | .init_early = orion5x_init_early, | 364 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/ts209-setup.c b/arch/arm/mach-orion5x/ts209-setup.c index c9831614e355..3dbcd5ed77ef 100644 --- a/arch/arm/mach-orion5x/ts209-setup.c +++ b/arch/arm/mach-orion5x/ts209-setup.c | |||
@@ -323,7 +323,7 @@ static void __init qnap_ts209_init(void) | |||
323 | 323 | ||
324 | MACHINE_START(TS209, "QNAP TS-109/TS-209") | 324 | MACHINE_START(TS209, "QNAP TS-109/TS-209") |
325 | /* Maintainer: Byron Bradley <byron.bbradley@gmail.com> */ | 325 | /* Maintainer: Byron Bradley <byron.bbradley@gmail.com> */ |
326 | .boot_params = 0x00000100, | 326 | .atag_offset = 0x100, |
327 | .init_machine = qnap_ts209_init, | 327 | .init_machine = qnap_ts209_init, |
328 | .map_io = orion5x_map_io, | 328 | .map_io = orion5x_map_io, |
329 | .init_early = orion5x_init_early, | 329 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/ts409-setup.c b/arch/arm/mach-orion5x/ts409-setup.c index cc33b2222bad..23c9e2e5e550 100644 --- a/arch/arm/mach-orion5x/ts409-setup.c +++ b/arch/arm/mach-orion5x/ts409-setup.c | |||
@@ -312,7 +312,7 @@ static void __init qnap_ts409_init(void) | |||
312 | 312 | ||
313 | MACHINE_START(TS409, "QNAP TS-409") | 313 | MACHINE_START(TS409, "QNAP TS-409") |
314 | /* Maintainer: Sylver Bruneau <sylver.bruneau@gmail.com> */ | 314 | /* Maintainer: Sylver Bruneau <sylver.bruneau@gmail.com> */ |
315 | .boot_params = 0x00000100, | 315 | .atag_offset = 0x100, |
316 | .init_machine = qnap_ts409_init, | 316 | .init_machine = qnap_ts409_init, |
317 | .map_io = orion5x_map_io, | 317 | .map_io = orion5x_map_io, |
318 | .init_early = orion5x_init_early, | 318 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/ts78xx-setup.c b/arch/arm/mach-orion5x/ts78xx-setup.c index 6b7b54116f30..6c75cd35c4c8 100644 --- a/arch/arm/mach-orion5x/ts78xx-setup.c +++ b/arch/arm/mach-orion5x/ts78xx-setup.c | |||
@@ -621,7 +621,7 @@ static void __init ts78xx_init(void) | |||
621 | 621 | ||
622 | MACHINE_START(TS78XX, "Technologic Systems TS-78xx SBC") | 622 | MACHINE_START(TS78XX, "Technologic Systems TS-78xx SBC") |
623 | /* Maintainer: Alexander Clouter <alex@digriz.org.uk> */ | 623 | /* Maintainer: Alexander Clouter <alex@digriz.org.uk> */ |
624 | .boot_params = 0x00000100, | 624 | .atag_offset = 0x100, |
625 | .init_machine = ts78xx_init, | 625 | .init_machine = ts78xx_init, |
626 | .map_io = ts78xx_map_io, | 626 | .map_io = ts78xx_map_io, |
627 | .init_early = orion5x_init_early, | 627 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/wnr854t-setup.c b/arch/arm/mach-orion5x/wnr854t-setup.c index 2653595f901c..1c63a76f3ca3 100644 --- a/arch/arm/mach-orion5x/wnr854t-setup.c +++ b/arch/arm/mach-orion5x/wnr854t-setup.c | |||
@@ -173,7 +173,7 @@ subsys_initcall(wnr854t_pci_init); | |||
173 | 173 | ||
174 | MACHINE_START(WNR854T, "Netgear WNR854T") | 174 | MACHINE_START(WNR854T, "Netgear WNR854T") |
175 | /* Maintainer: Imre Kaloz <kaloz@openwrt.org> */ | 175 | /* Maintainer: Imre Kaloz <kaloz@openwrt.org> */ |
176 | .boot_params = 0x00000100, | 176 | .atag_offset = 0x100, |
177 | .init_machine = wnr854t_init, | 177 | .init_machine = wnr854t_init, |
178 | .map_io = orion5x_map_io, | 178 | .map_io = orion5x_map_io, |
179 | .init_early = orion5x_init_early, | 179 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-orion5x/wrt350n-v2-setup.c b/arch/arm/mach-orion5x/wrt350n-v2-setup.c index 251ef1543e53..4fd9f18c9d5d 100644 --- a/arch/arm/mach-orion5x/wrt350n-v2-setup.c +++ b/arch/arm/mach-orion5x/wrt350n-v2-setup.c | |||
@@ -261,7 +261,7 @@ subsys_initcall(wrt350n_v2_pci_init); | |||
261 | 261 | ||
262 | MACHINE_START(WRT350N_V2, "Linksys WRT350N v2") | 262 | MACHINE_START(WRT350N_V2, "Linksys WRT350N v2") |
263 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ | 263 | /* Maintainer: Lennert Buytenhek <buytenh@marvell.com> */ |
264 | .boot_params = 0x00000100, | 264 | .atag_offset = 0x100, |
265 | .init_machine = wrt350n_v2_init, | 265 | .init_machine = wrt350n_v2_init, |
266 | .map_io = orion5x_map_io, | 266 | .map_io = orion5x_map_io, |
267 | .init_early = orion5x_init_early, | 267 | .init_early = orion5x_init_early, |
diff --git a/arch/arm/mach-pnx4008/core.c b/arch/arm/mach-pnx4008/core.c index 63399755f199..cdb95e726f5c 100644 --- a/arch/arm/mach-pnx4008/core.c +++ b/arch/arm/mach-pnx4008/core.c | |||
@@ -264,7 +264,7 @@ extern struct sys_timer pnx4008_timer; | |||
264 | 264 | ||
265 | MACHINE_START(PNX4008, "Philips PNX4008") | 265 | MACHINE_START(PNX4008, "Philips PNX4008") |
266 | /* Maintainer: MontaVista Software Inc. */ | 266 | /* Maintainer: MontaVista Software Inc. */ |
267 | .boot_params = 0x80000100, | 267 | .atag_offset = 0x100, |
268 | .map_io = pnx4008_map_io, | 268 | .map_io = pnx4008_map_io, |
269 | .init_irq = pnx4008_init_irq, | 269 | .init_irq = pnx4008_init_irq, |
270 | .init_machine = pnx4008_init, | 270 | .init_machine = pnx4008_init, |
diff --git a/arch/arm/mach-prima2/clock.c b/arch/arm/mach-prima2/clock.c index 615a4e75ceab..aebad7e565cf 100644 --- a/arch/arm/mach-prima2/clock.c +++ b/arch/arm/mach-prima2/clock.c | |||
@@ -350,10 +350,10 @@ static struct clk_lookup onchip_clks[] = { | |||
350 | .clk = &clk_mem, | 350 | .clk = &clk_mem, |
351 | }, { | 351 | }, { |
352 | .dev_id = "sys", | 352 | .dev_id = "sys", |
353 | .clk = &clk_sys, | 353 | .clk = &clk_sys, |
354 | }, { | 354 | }, { |
355 | .dev_id = "io", | 355 | .dev_id = "io", |
356 | .clk = &clk_io, | 356 | .clk = &clk_io, |
357 | }, | 357 | }, |
358 | }; | 358 | }; |
359 | 359 | ||
diff --git a/arch/arm/mach-prima2/prima2.c b/arch/arm/mach-prima2/prima2.c index f57124bdd143..a3918d9994af 100644 --- a/arch/arm/mach-prima2/prima2.c +++ b/arch/arm/mach-prima2/prima2.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Defines machines for CSR SiRFprimaII | 2 | * Defines machines for CSR SiRFprimaII |
3 | * | 3 | * |
4 | * Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company. | 4 | * Copyright (c) 2011 Cambridge Silicon Radio Limited, a CSR plc group company. |
5 | * | 5 | * |
@@ -31,7 +31,7 @@ static const char *prima2cb_dt_match[] __initdata = { | |||
31 | 31 | ||
32 | MACHINE_START(PRIMA2_EVB, "prima2cb") | 32 | MACHINE_START(PRIMA2_EVB, "prima2cb") |
33 | /* Maintainer: Barry Song <baohua.song@csr.com> */ | 33 | /* Maintainer: Barry Song <baohua.song@csr.com> */ |
34 | .boot_params = 0x00000100, | 34 | .atag_offset = 0x100, |
35 | .init_early = sirfsoc_of_clk_init, | 35 | .init_early = sirfsoc_of_clk_init, |
36 | .map_io = sirfsoc_map_lluart, | 36 | .map_io = sirfsoc_map_lluart, |
37 | .init_irq = sirfsoc_of_irq_init, | 37 | .init_irq = sirfsoc_of_irq_init, |
diff --git a/arch/arm/mach-prima2/timer.c b/arch/arm/mach-prima2/timer.c index ed7ec48d11da..26ab6fee5619 100644 --- a/arch/arm/mach-prima2/timer.c +++ b/arch/arm/mach-prima2/timer.c | |||
@@ -133,14 +133,14 @@ static struct irqaction sirfsoc_timer_irq = { | |||
133 | /* Overwrite weak default sched_clock with more precise one */ | 133 | /* Overwrite weak default sched_clock with more precise one */ |
134 | unsigned long long notrace sched_clock(void) | 134 | unsigned long long notrace sched_clock(void) |
135 | { | 135 | { |
136 | static int is_mapped = 0; | 136 | static int is_mapped; |
137 | 137 | ||
138 | /* | 138 | /* |
139 | * sched_clock is called earlier than .init of sys_timer | 139 | * sched_clock is called earlier than .init of sys_timer |
140 | * if we map timer memory in .init of sys_timer, system | 140 | * if we map timer memory in .init of sys_timer, system |
141 | * will panic due to illegal memory access | 141 | * will panic due to illegal memory access |
142 | */ | 142 | */ |
143 | if(!is_mapped) { | 143 | if (!is_mapped) { |
144 | sirfsoc_of_timer_map(); | 144 | sirfsoc_of_timer_map(); |
145 | is_mapped = 1; | 145 | is_mapped = 1; |
146 | } | 146 | } |
diff --git a/arch/arm/mach-pxa/balloon3.c b/arch/arm/mach-pxa/balloon3.c index ef3e8b1e06c1..7765d677adbb 100644 --- a/arch/arm/mach-pxa/balloon3.c +++ b/arch/arm/mach-pxa/balloon3.c | |||
@@ -828,5 +828,5 @@ MACHINE_START(BALLOON3, "Balloon3") | |||
828 | .handle_irq = pxa27x_handle_irq, | 828 | .handle_irq = pxa27x_handle_irq, |
829 | .timer = &pxa_timer, | 829 | .timer = &pxa_timer, |
830 | .init_machine = balloon3_init, | 830 | .init_machine = balloon3_init, |
831 | .boot_params = PLAT_PHYS_OFFSET + 0x100, | 831 | .atag_offset = 0x100, |
832 | MACHINE_END | 832 | MACHINE_END |
diff --git a/arch/arm/mach-pxa/capc7117.c b/arch/arm/mach-pxa/capc7117.c index 648b0ab2bf77..4efc16d39c79 100644 --- a/arch/arm/mach-pxa/capc7117.c +++ b/arch/arm/mach-pxa/capc7117.c | |||
@@ -148,7 +148,7 @@ static void __init capc7117_init(void) | |||
148 | 148 | ||
149 | MACHINE_START(CAPC7117, | 149 | MACHINE_START(CAPC7117, |
150 | "Embedian CAPC-7117 evaluation kit based on the MXM-8x10 CoM") | 150 | "Embedian CAPC-7117 evaluation kit based on the MXM-8x10 CoM") |
151 | .boot_params = 0xa0000100, | 151 | .atag_offset = 0x100, |
152 | .map_io = pxa3xx_map_io, | 152 | .map_io = pxa3xx_map_io, |
153 | .init_irq = pxa3xx_init_irq, | 153 | .init_irq = pxa3xx_init_irq, |
154 | .handle_irq = pxa3xx_handle_irq, | 154 | .handle_irq = pxa3xx_handle_irq, |
diff --git a/arch/arm/mach-pxa/cm-x2xx.c b/arch/arm/mach-pxa/cm-x2xx.c index 13cf518bbbf8..349896c53abd 100644 --- a/arch/arm/mach-pxa/cm-x2xx.c +++ b/arch/arm/mach-pxa/cm-x2xx.c | |||
@@ -513,7 +513,7 @@ static void __init cmx2xx_map_io(void) | |||
513 | #endif | 513 | #endif |
514 | 514 | ||
515 | MACHINE_START(ARMCORE, "Compulab CM-X2XX") | 515 | MACHINE_START(ARMCORE, "Compulab CM-X2XX") |
516 | .boot_params = 0xa0000100, | 516 | .atag_offset = 0x100, |
517 | .map_io = cmx2xx_map_io, | 517 | .map_io = cmx2xx_map_io, |
518 | .nr_irqs = CMX2XX_NR_IRQS, | 518 | .nr_irqs = CMX2XX_NR_IRQS, |
519 | .init_irq = cmx2xx_init_irq, | 519 | .init_irq = cmx2xx_init_irq, |
diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c index b6a51340270b..9ac0225cd51b 100644 --- a/arch/arm/mach-pxa/cm-x300.c +++ b/arch/arm/mach-pxa/cm-x300.c | |||
@@ -852,7 +852,7 @@ static void __init cm_x300_fixup(struct machine_desc *mdesc, struct tag *tags, | |||
852 | } | 852 | } |
853 | 853 | ||
854 | MACHINE_START(CM_X300, "CM-X300 module") | 854 | MACHINE_START(CM_X300, "CM-X300 module") |
855 | .boot_params = 0xa0000100, | 855 | .atag_offset = 0x100, |
856 | .map_io = pxa3xx_map_io, | 856 | .map_io = pxa3xx_map_io, |
857 | .init_irq = pxa3xx_init_irq, | 857 | .init_irq = pxa3xx_init_irq, |
858 | .handle_irq = pxa3xx_handle_irq, | 858 | .handle_irq = pxa3xx_handle_irq, |
diff --git a/arch/arm/mach-pxa/colibri-pxa270.c b/arch/arm/mach-pxa/colibri-pxa270.c index 870920934ecf..7db66465716f 100644 --- a/arch/arm/mach-pxa/colibri-pxa270.c +++ b/arch/arm/mach-pxa/colibri-pxa270.c | |||
@@ -306,7 +306,7 @@ static void __init colibri_pxa270_income_init(void) | |||
306 | } | 306 | } |
307 | 307 | ||
308 | MACHINE_START(COLIBRI, "Toradex Colibri PXA270") | 308 | MACHINE_START(COLIBRI, "Toradex Colibri PXA270") |
309 | .boot_params = COLIBRI_SDRAM_BASE + 0x100, | 309 | .atag_offset = 0x100, |
310 | .init_machine = colibri_pxa270_init, | 310 | .init_machine = colibri_pxa270_init, |
311 | .map_io = pxa27x_map_io, | 311 | .map_io = pxa27x_map_io, |
312 | .init_irq = pxa27x_init_irq, | 312 | .init_irq = pxa27x_init_irq, |
@@ -315,7 +315,7 @@ MACHINE_START(COLIBRI, "Toradex Colibri PXA270") | |||
315 | MACHINE_END | 315 | MACHINE_END |
316 | 316 | ||
317 | MACHINE_START(INCOME, "Income s.r.o. SH-Dmaster PXA270 SBC") | 317 | MACHINE_START(INCOME, "Income s.r.o. SH-Dmaster PXA270 SBC") |
318 | .boot_params = 0xa0000100, | 318 | .atag_offset = 0x100, |
319 | .init_machine = colibri_pxa270_income_init, | 319 | .init_machine = colibri_pxa270_income_init, |
320 | .map_io = pxa27x_map_io, | 320 | .map_io = pxa27x_map_io, |
321 | .init_irq = pxa27x_init_irq, | 321 | .init_irq = pxa27x_init_irq, |
diff --git a/arch/arm/mach-pxa/colibri-pxa300.c b/arch/arm/mach-pxa/colibri-pxa300.c index 60a6781e7a8e..c825e8bf2db1 100644 --- a/arch/arm/mach-pxa/colibri-pxa300.c +++ b/arch/arm/mach-pxa/colibri-pxa300.c | |||
@@ -183,7 +183,7 @@ void __init colibri_pxa300_init(void) | |||
183 | } | 183 | } |
184 | 184 | ||
185 | MACHINE_START(COLIBRI300, "Toradex Colibri PXA300") | 185 | MACHINE_START(COLIBRI300, "Toradex Colibri PXA300") |
186 | .boot_params = COLIBRI_SDRAM_BASE + 0x100, | 186 | .atag_offset = 0x100, |
187 | .init_machine = colibri_pxa300_init, | 187 | .init_machine = colibri_pxa300_init, |
188 | .map_io = pxa3xx_map_io, | 188 | .map_io = pxa3xx_map_io, |
189 | .init_irq = pxa3xx_init_irq, | 189 | .init_irq = pxa3xx_init_irq, |
diff --git a/arch/arm/mach-pxa/colibri-pxa320.c b/arch/arm/mach-pxa/colibri-pxa320.c index d2c6631915d4..692e1ffc5586 100644 --- a/arch/arm/mach-pxa/colibri-pxa320.c +++ b/arch/arm/mach-pxa/colibri-pxa320.c | |||
@@ -253,7 +253,7 @@ void __init colibri_pxa320_init(void) | |||
253 | } | 253 | } |
254 | 254 | ||
255 | MACHINE_START(COLIBRI320, "Toradex Colibri PXA320") | 255 | MACHINE_START(COLIBRI320, "Toradex Colibri PXA320") |
256 | .boot_params = COLIBRI_SDRAM_BASE + 0x100, | 256 | .atag_offset = 0x100, |
257 | .init_machine = colibri_pxa320_init, | 257 | .init_machine = colibri_pxa320_init, |
258 | .map_io = pxa3xx_map_io, | 258 | .map_io = pxa3xx_map_io, |
259 | .init_irq = pxa3xx_init_irq, | 259 | .init_irq = pxa3xx_init_irq, |
diff --git a/arch/arm/mach-pxa/csb726.c b/arch/arm/mach-pxa/csb726.c index fe812eafb1f1..5e2cf39e9e4c 100644 --- a/arch/arm/mach-pxa/csb726.c +++ b/arch/arm/mach-pxa/csb726.c | |||
@@ -272,7 +272,7 @@ static void __init csb726_init(void) | |||
272 | } | 272 | } |
273 | 273 | ||
274 | MACHINE_START(CSB726, "Cogent CSB726") | 274 | MACHINE_START(CSB726, "Cogent CSB726") |
275 | .boot_params = 0xa0000100, | 275 | .atag_offset = 0x100, |
276 | .map_io = pxa27x_map_io, | 276 | .map_io = pxa27x_map_io, |
277 | .init_irq = pxa27x_init_irq, | 277 | .init_irq = pxa27x_init_irq, |
278 | .handle_irq = pxa27x_handle_irq, | 278 | .handle_irq = pxa27x_handle_irq, |
diff --git a/arch/arm/mach-pxa/em-x270.c b/arch/arm/mach-pxa/em-x270.c index 2e37ea52b372..94acc0b01dd6 100644 --- a/arch/arm/mach-pxa/em-x270.c +++ b/arch/arm/mach-pxa/em-x270.c | |||
@@ -1299,7 +1299,7 @@ static void __init em_x270_init(void) | |||
1299 | } | 1299 | } |
1300 | 1300 | ||
1301 | MACHINE_START(EM_X270, "Compulab EM-X270") | 1301 | MACHINE_START(EM_X270, "Compulab EM-X270") |
1302 | .boot_params = 0xa0000100, | 1302 | .atag_offset = 0x100, |
1303 | .map_io = pxa27x_map_io, | 1303 | .map_io = pxa27x_map_io, |
1304 | .init_irq = pxa27x_init_irq, | 1304 | .init_irq = pxa27x_init_irq, |
1305 | .handle_irq = pxa27x_handle_irq, | 1305 | .handle_irq = pxa27x_handle_irq, |
@@ -1308,7 +1308,7 @@ MACHINE_START(EM_X270, "Compulab EM-X270") | |||
1308 | MACHINE_END | 1308 | MACHINE_END |
1309 | 1309 | ||
1310 | MACHINE_START(EXEDA, "Compulab eXeda") | 1310 | MACHINE_START(EXEDA, "Compulab eXeda") |
1311 | .boot_params = 0xa0000100, | 1311 | .atag_offset = 0x100, |
1312 | .map_io = pxa27x_map_io, | 1312 | .map_io = pxa27x_map_io, |
1313 | .init_irq = pxa27x_init_irq, | 1313 | .init_irq = pxa27x_init_irq, |
1314 | .handle_irq = pxa27x_handle_irq, | 1314 | .handle_irq = pxa27x_handle_irq, |
diff --git a/arch/arm/mach-pxa/eseries.c b/arch/arm/mach-pxa/eseries.c index b4599ec9d619..e823c54057f3 100644 --- a/arch/arm/mach-pxa/eseries.c +++ b/arch/arm/mach-pxa/eseries.c | |||
@@ -189,7 +189,7 @@ static void __init e330_init(void) | |||
189 | 189 | ||
190 | MACHINE_START(E330, "Toshiba e330") | 190 | MACHINE_START(E330, "Toshiba e330") |
191 | /* Maintainer: Ian Molton (spyro@f2s.com) */ | 191 | /* Maintainer: Ian Molton (spyro@f2s.com) */ |
192 | .boot_params = 0xa0000100, | 192 | .atag_offset = 0x100, |
193 | .map_io = pxa25x_map_io, | 193 | .map_io = pxa25x_map_io, |
194 | .nr_irqs = ESERIES_NR_IRQS, | 194 | .nr_irqs = ESERIES_NR_IRQS, |
195 | .init_irq = pxa25x_init_irq, | 195 | .init_irq = pxa25x_init_irq, |
@@ -239,7 +239,7 @@ static void __init e350_init(void) | |||
239 | 239 | ||
240 | MACHINE_START(E350, "Toshiba e350") | 240 | MACHINE_START(E350, "Toshiba e350") |
241 | /* Maintainer: Ian Molton (spyro@f2s.com) */ | 241 | /* Maintainer: Ian Molton (spyro@f2s.com) */ |
242 | .boot_params = 0xa0000100, | 242 | .atag_offset = 0x100, |
243 | .map_io = pxa25x_map_io, | 243 | .map_io = pxa25x_map_io, |
244 | .nr_irqs = ESERIES_NR_IRQS, | 244 | .nr_irqs = ESERIES_NR_IRQS, |
245 | .init_irq = pxa25x_init_irq, | 245 | .init_irq = pxa25x_init_irq, |
@@ -362,7 +362,7 @@ static void __init e400_init(void) | |||
362 | 362 | ||
363 | MACHINE_START(E400, "Toshiba e400") | 363 | MACHINE_START(E400, "Toshiba e400") |
364 | /* Maintainer: Ian Molton (spyro@f2s.com) */ | 364 | /* Maintainer: Ian Molton (spyro@f2s.com) */ |
365 | .boot_params = 0xa0000100, | 365 | .atag_offset = 0x100, |
366 | .map_io = pxa25x_map_io, | 366 | .map_io = pxa25x_map_io, |
367 | .nr_irqs = ESERIES_NR_IRQS, | 367 | .nr_irqs = ESERIES_NR_IRQS, |
368 | .init_irq = pxa25x_init_irq, | 368 | .init_irq = pxa25x_init_irq, |
@@ -551,7 +551,7 @@ static void __init e740_init(void) | |||
551 | 551 | ||
552 | MACHINE_START(E740, "Toshiba e740") | 552 | MACHINE_START(E740, "Toshiba e740") |
553 | /* Maintainer: Ian Molton (spyro@f2s.com) */ | 553 | /* Maintainer: Ian Molton (spyro@f2s.com) */ |
554 | .boot_params = 0xa0000100, | 554 | .atag_offset = 0x100, |
555 | .map_io = pxa25x_map_io, | 555 | .map_io = pxa25x_map_io, |
556 | .nr_irqs = ESERIES_NR_IRQS, | 556 | .nr_irqs = ESERIES_NR_IRQS, |
557 | .init_irq = pxa25x_init_irq, | 557 | .init_irq = pxa25x_init_irq, |
@@ -743,7 +743,7 @@ static void __init e750_init(void) | |||
743 | 743 | ||
744 | MACHINE_START(E750, "Toshiba e750") | 744 | MACHINE_START(E750, "Toshiba e750") |
745 | /* Maintainer: Ian Molton (spyro@f2s.com) */ | 745 | /* Maintainer: Ian Molton (spyro@f2s.com) */ |
746 | .boot_params = 0xa0000100, | 746 | .atag_offset = 0x100, |
747 | .map_io = pxa25x_map_io, | 747 | .map_io = pxa25x_map_io, |
748 | .nr_irqs = ESERIES_NR_IRQS, | 748 | .nr_irqs = ESERIES_NR_IRQS, |
749 | .init_irq = pxa25x_init_irq, | 749 | .init_irq = pxa25x_init_irq, |
@@ -948,7 +948,7 @@ static void __init e800_init(void) | |||
948 | 948 | ||
949 | MACHINE_START(E800, "Toshiba e800") | 949 | MACHINE_START(E800, "Toshiba e800") |
950 | /* Maintainer: Ian Molton (spyro@f2s.com) */ | 950 | /* Maintainer: Ian Molton (spyro@f2s.com) */ |
951 | .boot_params = 0xa0000100, | 951 | .atag_offset = 0x100, |
952 | .map_io = pxa25x_map_io, | 952 | .map_io = pxa25x_map_io, |
953 | .nr_irqs = ESERIES_NR_IRQS, | 953 | .nr_irqs = ESERIES_NR_IRQS, |
954 | .init_irq = pxa25x_init_irq, | 954 | .init_irq = pxa25x_init_irq, |
diff --git a/arch/arm/mach-pxa/ezx.c b/arch/arm/mach-pxa/ezx.c index b73eadb9f5dc..8308eee5a924 100644 --- a/arch/arm/mach-pxa/ezx.c +++ b/arch/arm/mach-pxa/ezx.c | |||
@@ -797,7 +797,7 @@ static void __init a780_init(void) | |||
797 | } | 797 | } |
798 | 798 | ||
799 | MACHINE_START(EZX_A780, "Motorola EZX A780") | 799 | MACHINE_START(EZX_A780, "Motorola EZX A780") |
800 | .boot_params = 0xa0000100, | 800 | .atag_offset = 0x100, |
801 | .map_io = pxa27x_map_io, | 801 | .map_io = pxa27x_map_io, |
802 | .nr_irqs = EZX_NR_IRQS, | 802 | .nr_irqs = EZX_NR_IRQS, |
803 | .init_irq = pxa27x_init_irq, | 803 | .init_irq = pxa27x_init_irq, |
@@ -863,7 +863,7 @@ static void __init e680_init(void) | |||
863 | } | 863 | } |
864 | 864 | ||
865 | MACHINE_START(EZX_E680, "Motorola EZX E680") | 865 | MACHINE_START(EZX_E680, "Motorola EZX E680") |
866 | .boot_params = 0xa0000100, | 866 | .atag_offset = 0x100, |
867 | .map_io = pxa27x_map_io, | 867 | .map_io = pxa27x_map_io, |
868 | .nr_irqs = EZX_NR_IRQS, | 868 | .nr_irqs = EZX_NR_IRQS, |
869 | .init_irq = pxa27x_init_irq, | 869 | .init_irq = pxa27x_init_irq, |
@@ -929,7 +929,7 @@ static void __init a1200_init(void) | |||
929 | } | 929 | } |
930 | 930 | ||
931 | MACHINE_START(EZX_A1200, "Motorola EZX A1200") | 931 | MACHINE_START(EZX_A1200, "Motorola EZX A1200") |
932 | .boot_params = 0xa0000100, | 932 | .atag_offset = 0x100, |
933 | .map_io = pxa27x_map_io, | 933 | .map_io = pxa27x_map_io, |
934 | .nr_irqs = EZX_NR_IRQS, | 934 | .nr_irqs = EZX_NR_IRQS, |
935 | .init_irq = pxa27x_init_irq, | 935 | .init_irq = pxa27x_init_irq, |
@@ -1120,7 +1120,7 @@ static void __init a910_init(void) | |||
1120 | } | 1120 | } |
1121 | 1121 | ||
1122 | MACHINE_START(EZX_A910, "Motorola EZX A910") | 1122 | MACHINE_START(EZX_A910, "Motorola EZX A910") |
1123 | .boot_params = 0xa0000100, | 1123 | .atag_offset = 0x100, |
1124 | .map_io = pxa27x_map_io, | 1124 | .map_io = pxa27x_map_io, |
1125 | .nr_irqs = EZX_NR_IRQS, | 1125 | .nr_irqs = EZX_NR_IRQS, |
1126 | .init_irq = pxa27x_init_irq, | 1126 | .init_irq = pxa27x_init_irq, |
@@ -1186,7 +1186,7 @@ static void __init e6_init(void) | |||
1186 | } | 1186 | } |
1187 | 1187 | ||
1188 | MACHINE_START(EZX_E6, "Motorola EZX E6") | 1188 | MACHINE_START(EZX_E6, "Motorola EZX E6") |
1189 | .boot_params = 0xa0000100, | 1189 | .atag_offset = 0x100, |
1190 | .map_io = pxa27x_map_io, | 1190 | .map_io = pxa27x_map_io, |
1191 | .nr_irqs = EZX_NR_IRQS, | 1191 | .nr_irqs = EZX_NR_IRQS, |
1192 | .init_irq = pxa27x_init_irq, | 1192 | .init_irq = pxa27x_init_irq, |
@@ -1226,7 +1226,7 @@ static void __init e2_init(void) | |||
1226 | } | 1226 | } |
1227 | 1227 | ||
1228 | MACHINE_START(EZX_E2, "Motorola EZX E2") | 1228 | MACHINE_START(EZX_E2, "Motorola EZX E2") |
1229 | .boot_params = 0xa0000100, | 1229 | .atag_offset = 0x100, |
1230 | .map_io = pxa27x_map_io, | 1230 | .map_io = pxa27x_map_io, |
1231 | .nr_irqs = EZX_NR_IRQS, | 1231 | .nr_irqs = EZX_NR_IRQS, |
1232 | .init_irq = pxa27x_init_irq, | 1232 | .init_irq = pxa27x_init_irq, |
diff --git a/arch/arm/mach-pxa/gumstix.c b/arch/arm/mach-pxa/gumstix.c index deaa111c91f9..9c8208ca0415 100644 --- a/arch/arm/mach-pxa/gumstix.c +++ b/arch/arm/mach-pxa/gumstix.c | |||
@@ -233,7 +233,7 @@ static void __init gumstix_init(void) | |||
233 | } | 233 | } |
234 | 234 | ||
235 | MACHINE_START(GUMSTIX, "Gumstix") | 235 | MACHINE_START(GUMSTIX, "Gumstix") |
236 | .boot_params = 0xa0000100, /* match u-boot bi_boot_params */ | 236 | .atag_offset = 0x100, /* match u-boot bi_boot_params */ |
237 | .map_io = pxa25x_map_io, | 237 | .map_io = pxa25x_map_io, |
238 | .init_irq = pxa25x_init_irq, | 238 | .init_irq = pxa25x_init_irq, |
239 | .handle_irq = pxa25x_handle_irq, | 239 | .handle_irq = pxa25x_handle_irq, |
diff --git a/arch/arm/mach-pxa/h5000.c b/arch/arm/mach-pxa/h5000.c index 0a235128914d..4b5e110640b1 100644 --- a/arch/arm/mach-pxa/h5000.c +++ b/arch/arm/mach-pxa/h5000.c | |||
@@ -203,7 +203,7 @@ static void __init h5000_init(void) | |||
203 | } | 203 | } |
204 | 204 | ||
205 | MACHINE_START(H5400, "HP iPAQ H5000") | 205 | MACHINE_START(H5400, "HP iPAQ H5000") |
206 | .boot_params = 0xa0000100, | 206 | .atag_offset = 0x100, |
207 | .map_io = pxa25x_map_io, | 207 | .map_io = pxa25x_map_io, |
208 | .init_irq = pxa25x_init_irq, | 208 | .init_irq = pxa25x_init_irq, |
209 | .handle_irq = pxa25x_handle_irq, | 209 | .handle_irq = pxa25x_handle_irq, |
diff --git a/arch/arm/mach-pxa/himalaya.c b/arch/arm/mach-pxa/himalaya.c index a997d0ab2872..f2c324570844 100644 --- a/arch/arm/mach-pxa/himalaya.c +++ b/arch/arm/mach-pxa/himalaya.c | |||
@@ -158,7 +158,7 @@ static void __init himalaya_init(void) | |||
158 | 158 | ||
159 | 159 | ||
160 | MACHINE_START(HIMALAYA, "HTC Himalaya") | 160 | MACHINE_START(HIMALAYA, "HTC Himalaya") |
161 | .boot_params = 0xa0000100, | 161 | .atag_offset = 0x100, |
162 | .map_io = pxa25x_map_io, | 162 | .map_io = pxa25x_map_io, |
163 | .init_irq = pxa25x_init_irq, | 163 | .init_irq = pxa25x_init_irq, |
164 | .handle_irq = pxa25x_handle_irq, | 164 | .handle_irq = pxa25x_handle_irq, |
diff --git a/arch/arm/mach-pxa/hx4700.c b/arch/arm/mach-pxa/hx4700.c index c748a473a2ff..6f6368ece9bd 100644 --- a/arch/arm/mach-pxa/hx4700.c +++ b/arch/arm/mach-pxa/hx4700.c | |||
@@ -838,7 +838,7 @@ static void __init hx4700_init(void) | |||
838 | } | 838 | } |
839 | 839 | ||
840 | MACHINE_START(H4700, "HP iPAQ HX4700") | 840 | MACHINE_START(H4700, "HP iPAQ HX4700") |
841 | .boot_params = 0xa0000100, | 841 | .atag_offset = 0x100, |
842 | .map_io = pxa27x_map_io, | 842 | .map_io = pxa27x_map_io, |
843 | .nr_irqs = HX4700_NR_IRQS, | 843 | .nr_irqs = HX4700_NR_IRQS, |
844 | .init_irq = pxa27x_init_irq, | 844 | .init_irq = pxa27x_init_irq, |
diff --git a/arch/arm/mach-pxa/icontrol.c b/arch/arm/mach-pxa/icontrol.c index d427429f1f34..f78d5db758da 100644 --- a/arch/arm/mach-pxa/icontrol.c +++ b/arch/arm/mach-pxa/icontrol.c | |||
@@ -191,7 +191,7 @@ static void __init icontrol_init(void) | |||
191 | } | 191 | } |
192 | 192 | ||
193 | MACHINE_START(ICONTROL, "iControl/SafeTcam boards using Embedian MXM-8x10 CoM") | 193 | MACHINE_START(ICONTROL, "iControl/SafeTcam boards using Embedian MXM-8x10 CoM") |
194 | .boot_params = 0xa0000100, | 194 | .atag_offset = 0x100, |
195 | .map_io = pxa3xx_map_io, | 195 | .map_io = pxa3xx_map_io, |
196 | .init_irq = pxa3xx_init_irq, | 196 | .init_irq = pxa3xx_init_irq, |
197 | .handle_irq = pxa3xx_handle_irq, | 197 | .handle_irq = pxa3xx_handle_irq, |
diff --git a/arch/arm/mach-pxa/littleton.c b/arch/arm/mach-pxa/littleton.c index 8f97e15e86e5..0037e57e0cec 100644 --- a/arch/arm/mach-pxa/littleton.c +++ b/arch/arm/mach-pxa/littleton.c | |||
@@ -437,7 +437,7 @@ static void __init littleton_init(void) | |||
437 | } | 437 | } |
438 | 438 | ||
439 | MACHINE_START(LITTLETON, "Marvell Form Factor Development Platform (aka Littleton)") | 439 | MACHINE_START(LITTLETON, "Marvell Form Factor Development Platform (aka Littleton)") |
440 | .boot_params = 0xa0000100, | 440 | .atag_offset = 0x100, |
441 | .map_io = pxa3xx_map_io, | 441 | .map_io = pxa3xx_map_io, |
442 | .nr_irqs = LITTLETON_NR_IRQS, | 442 | .nr_irqs = LITTLETON_NR_IRQS, |
443 | .init_irq = pxa3xx_init_irq, | 443 | .init_irq = pxa3xx_init_irq, |
diff --git a/arch/arm/mach-pxa/lpd270.c b/arch/arm/mach-pxa/lpd270.c index c171d6ebee49..16df0fc0879a 100644 --- a/arch/arm/mach-pxa/lpd270.c +++ b/arch/arm/mach-pxa/lpd270.c | |||
@@ -499,7 +499,7 @@ static void __init lpd270_map_io(void) | |||
499 | 499 | ||
500 | MACHINE_START(LOGICPD_PXA270, "LogicPD PXA270 Card Engine") | 500 | MACHINE_START(LOGICPD_PXA270, "LogicPD PXA270 Card Engine") |
501 | /* Maintainer: Peter Barada */ | 501 | /* Maintainer: Peter Barada */ |
502 | .boot_params = 0xa0000100, | 502 | .atag_offset = 0x100, |
503 | .map_io = lpd270_map_io, | 503 | .map_io = lpd270_map_io, |
504 | .nr_irqs = LPD270_NR_IRQS, | 504 | .nr_irqs = LPD270_NR_IRQS, |
505 | .init_irq = lpd270_init_irq, | 505 | .init_irq = lpd270_init_irq, |
diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.c index 5fe5bcd7c0a1..4b796c37af3e 100644 --- a/arch/arm/mach-pxa/magician.c +++ b/arch/arm/mach-pxa/magician.c | |||
@@ -753,7 +753,7 @@ static void __init magician_init(void) | |||
753 | 753 | ||
754 | 754 | ||
755 | MACHINE_START(MAGICIAN, "HTC Magician") | 755 | MACHINE_START(MAGICIAN, "HTC Magician") |
756 | .boot_params = 0xa0000100, | 756 | .atag_offset = 0x100, |
757 | .map_io = pxa27x_map_io, | 757 | .map_io = pxa27x_map_io, |
758 | .nr_irqs = MAGICIAN_NR_IRQS, | 758 | .nr_irqs = MAGICIAN_NR_IRQS, |
759 | .init_irq = pxa27x_init_irq, | 759 | .init_irq = pxa27x_init_irq, |
diff --git a/arch/arm/mach-pxa/mainstone.c b/arch/arm/mach-pxa/mainstone.c index 4622eb78ef25..cc6e14f6d114 100644 --- a/arch/arm/mach-pxa/mainstone.c +++ b/arch/arm/mach-pxa/mainstone.c | |||
@@ -616,7 +616,7 @@ static void __init mainstone_map_io(void) | |||
616 | 616 | ||
617 | MACHINE_START(MAINSTONE, "Intel HCDDBBVA0 Development Platform (aka Mainstone)") | 617 | MACHINE_START(MAINSTONE, "Intel HCDDBBVA0 Development Platform (aka Mainstone)") |
618 | /* Maintainer: MontaVista Software Inc. */ | 618 | /* Maintainer: MontaVista Software Inc. */ |
619 | .boot_params = 0xa0000100, /* BLOB boot parameter setting */ | 619 | .atag_offset = 0x100, /* BLOB boot parameter setting */ |
620 | .map_io = mainstone_map_io, | 620 | .map_io = mainstone_map_io, |
621 | .nr_irqs = MAINSTONE_NR_IRQS, | 621 | .nr_irqs = MAINSTONE_NR_IRQS, |
622 | .init_irq = mainstone_init_irq, | 622 | .init_irq = mainstone_init_irq, |
diff --git a/arch/arm/mach-pxa/mioa701.c b/arch/arm/mach-pxa/mioa701.c index 64810f908e5b..b938fc2c316a 100644 --- a/arch/arm/mach-pxa/mioa701.c +++ b/arch/arm/mach-pxa/mioa701.c | |||
@@ -751,7 +751,7 @@ static void mioa701_machine_exit(void) | |||
751 | } | 751 | } |
752 | 752 | ||
753 | MACHINE_START(MIOA701, "MIO A701") | 753 | MACHINE_START(MIOA701, "MIO A701") |
754 | .boot_params = 0xa0000100, | 754 | .atag_offset = 0x100, |
755 | .map_io = &pxa27x_map_io, | 755 | .map_io = &pxa27x_map_io, |
756 | .init_irq = &pxa27x_init_irq, | 756 | .init_irq = &pxa27x_init_irq, |
757 | .handle_irq = &pxa27x_handle_irq, | 757 | .handle_irq = &pxa27x_handle_irq, |
diff --git a/arch/arm/mach-pxa/mp900.c b/arch/arm/mach-pxa/mp900.c index fb408861dbcf..4af5d513c380 100644 --- a/arch/arm/mach-pxa/mp900.c +++ b/arch/arm/mach-pxa/mp900.c | |||
@@ -92,7 +92,7 @@ static void __init mp900c_init(void) | |||
92 | 92 | ||
93 | /* Maintainer - Michael Petchkovsky <mkpetch@internode.on.net> */ | 93 | /* Maintainer - Michael Petchkovsky <mkpetch@internode.on.net> */ |
94 | MACHINE_START(NEC_MP900, "MobilePro900/C") | 94 | MACHINE_START(NEC_MP900, "MobilePro900/C") |
95 | .boot_params = 0xa0220100, | 95 | .atag_offset = 0x220100, |
96 | .timer = &pxa_timer, | 96 | .timer = &pxa_timer, |
97 | .map_io = pxa25x_map_io, | 97 | .map_io = pxa25x_map_io, |
98 | .init_irq = pxa25x_init_irq, | 98 | .init_irq = pxa25x_init_irq, |
diff --git a/arch/arm/mach-pxa/palmld.c b/arch/arm/mach-pxa/palmld.c index 6b77365ed938..3d4a2819cae1 100644 --- a/arch/arm/mach-pxa/palmld.c +++ b/arch/arm/mach-pxa/palmld.c | |||
@@ -342,7 +342,7 @@ static void __init palmld_init(void) | |||
342 | } | 342 | } |
343 | 343 | ||
344 | MACHINE_START(PALMLD, "Palm LifeDrive") | 344 | MACHINE_START(PALMLD, "Palm LifeDrive") |
345 | .boot_params = 0xa0000100, | 345 | .atag_offset = 0x100, |
346 | .map_io = palmld_map_io, | 346 | .map_io = palmld_map_io, |
347 | .init_irq = pxa27x_init_irq, | 347 | .init_irq = pxa27x_init_irq, |
348 | .handle_irq = pxa27x_handle_irq, | 348 | .handle_irq = pxa27x_handle_irq, |
diff --git a/arch/arm/mach-pxa/palmt5.c b/arch/arm/mach-pxa/palmt5.c index 9bd3e47486fb..99d6bcf1f974 100644 --- a/arch/arm/mach-pxa/palmt5.c +++ b/arch/arm/mach-pxa/palmt5.c | |||
@@ -202,7 +202,7 @@ static void __init palmt5_init(void) | |||
202 | } | 202 | } |
203 | 203 | ||
204 | MACHINE_START(PALMT5, "Palm Tungsten|T5") | 204 | MACHINE_START(PALMT5, "Palm Tungsten|T5") |
205 | .boot_params = 0xa0000100, | 205 | .atag_offset = 0x100, |
206 | .map_io = pxa27x_map_io, | 206 | .map_io = pxa27x_map_io, |
207 | .reserve = palmt5_reserve, | 207 | .reserve = palmt5_reserve, |
208 | .init_irq = pxa27x_init_irq, | 208 | .init_irq = pxa27x_init_irq, |
diff --git a/arch/arm/mach-pxa/palmtc.c b/arch/arm/mach-pxa/palmtc.c index 6ad4a6c7bc96..6ec7caefb37c 100644 --- a/arch/arm/mach-pxa/palmtc.c +++ b/arch/arm/mach-pxa/palmtc.c | |||
@@ -537,7 +537,7 @@ static void __init palmtc_init(void) | |||
537 | }; | 537 | }; |
538 | 538 | ||
539 | MACHINE_START(PALMTC, "Palm Tungsten|C") | 539 | MACHINE_START(PALMTC, "Palm Tungsten|C") |
540 | .boot_params = 0xa0000100, | 540 | .atag_offset = 0x100, |
541 | .map_io = pxa25x_map_io, | 541 | .map_io = pxa25x_map_io, |
542 | .init_irq = pxa25x_init_irq, | 542 | .init_irq = pxa25x_init_irq, |
543 | .handle_irq = pxa25x_handle_irq, | 543 | .handle_irq = pxa25x_handle_irq, |
diff --git a/arch/arm/mach-pxa/palmte2.c b/arch/arm/mach-pxa/palmte2.c index 664232f3e62c..9376da06404c 100644 --- a/arch/arm/mach-pxa/palmte2.c +++ b/arch/arm/mach-pxa/palmte2.c | |||
@@ -356,7 +356,7 @@ static void __init palmte2_init(void) | |||
356 | } | 356 | } |
357 | 357 | ||
358 | MACHINE_START(PALMTE2, "Palm Tungsten|E2") | 358 | MACHINE_START(PALMTE2, "Palm Tungsten|E2") |
359 | .boot_params = 0xa0000100, | 359 | .atag_offset = 0x100, |
360 | .map_io = pxa25x_map_io, | 360 | .map_io = pxa25x_map_io, |
361 | .init_irq = pxa25x_init_irq, | 361 | .init_irq = pxa25x_init_irq, |
362 | .handle_irq = pxa25x_handle_irq, | 362 | .handle_irq = pxa25x_handle_irq, |
diff --git a/arch/arm/mach-pxa/palmtreo.c b/arch/arm/mach-pxa/palmtreo.c index bb27d4b688d8..7346fbfa8101 100644 --- a/arch/arm/mach-pxa/palmtreo.c +++ b/arch/arm/mach-pxa/palmtreo.c | |||
@@ -440,7 +440,7 @@ static void __init centro_init(void) | |||
440 | } | 440 | } |
441 | 441 | ||
442 | MACHINE_START(TREO680, "Palm Treo 680") | 442 | MACHINE_START(TREO680, "Palm Treo 680") |
443 | .boot_params = 0xa0000100, | 443 | .atag_offset = 0x100, |
444 | .map_io = pxa27x_map_io, | 444 | .map_io = pxa27x_map_io, |
445 | .reserve = treo_reserve, | 445 | .reserve = treo_reserve, |
446 | .init_irq = pxa27x_init_irq, | 446 | .init_irq = pxa27x_init_irq, |
@@ -450,7 +450,7 @@ MACHINE_START(TREO680, "Palm Treo 680") | |||
450 | MACHINE_END | 450 | MACHINE_END |
451 | 451 | ||
452 | MACHINE_START(CENTRO, "Palm Centro 685") | 452 | MACHINE_START(CENTRO, "Palm Centro 685") |
453 | .boot_params = 0xa0000100, | 453 | .atag_offset = 0x100, |
454 | .map_io = pxa27x_map_io, | 454 | .map_io = pxa27x_map_io, |
455 | .reserve = treo_reserve, | 455 | .reserve = treo_reserve, |
456 | .init_irq = pxa27x_init_irq, | 456 | .init_irq = pxa27x_init_irq, |
diff --git a/arch/arm/mach-pxa/palmtx.c b/arch/arm/mach-pxa/palmtx.c index fc4285589c1f..2b9e76fc2c90 100644 --- a/arch/arm/mach-pxa/palmtx.c +++ b/arch/arm/mach-pxa/palmtx.c | |||
@@ -364,7 +364,7 @@ static void __init palmtx_init(void) | |||
364 | } | 364 | } |
365 | 365 | ||
366 | MACHINE_START(PALMTX, "Palm T|X") | 366 | MACHINE_START(PALMTX, "Palm T|X") |
367 | .boot_params = 0xa0000100, | 367 | .atag_offset = 0x100, |
368 | .map_io = palmtx_map_io, | 368 | .map_io = palmtx_map_io, |
369 | .init_irq = pxa27x_init_irq, | 369 | .init_irq = pxa27x_init_irq, |
370 | .handle_irq = pxa27x_handle_irq, | 370 | .handle_irq = pxa27x_handle_irq, |
diff --git a/arch/arm/mach-pxa/palmz72.c b/arch/arm/mach-pxa/palmz72.c index e61c1cc05519..68e18baf8e07 100644 --- a/arch/arm/mach-pxa/palmz72.c +++ b/arch/arm/mach-pxa/palmz72.c | |||
@@ -399,7 +399,7 @@ static void __init palmz72_init(void) | |||
399 | } | 399 | } |
400 | 400 | ||
401 | MACHINE_START(PALMZ72, "Palm Zire72") | 401 | MACHINE_START(PALMZ72, "Palm Zire72") |
402 | .boot_params = 0xa0000100, | 402 | .atag_offset = 0x100, |
403 | .map_io = pxa27x_map_io, | 403 | .map_io = pxa27x_map_io, |
404 | .init_irq = pxa27x_init_irq, | 404 | .init_irq = pxa27x_init_irq, |
405 | .handle_irq = pxa27x_handle_irq, | 405 | .handle_irq = pxa27x_handle_irq, |
diff --git a/arch/arm/mach-pxa/pcm027.c b/arch/arm/mach-pxa/pcm027.c index ffa65dfb8c6f..0b825a353537 100644 --- a/arch/arm/mach-pxa/pcm027.c +++ b/arch/arm/mach-pxa/pcm027.c | |||
@@ -258,7 +258,7 @@ static void __init pcm027_map_io(void) | |||
258 | 258 | ||
259 | MACHINE_START(PCM027, "Phytec Messtechnik GmbH phyCORE-PXA270") | 259 | MACHINE_START(PCM027, "Phytec Messtechnik GmbH phyCORE-PXA270") |
260 | /* Maintainer: Pengutronix */ | 260 | /* Maintainer: Pengutronix */ |
261 | .boot_params = 0xa0000100, | 261 | .atag_offset = 0x100, |
262 | .map_io = pcm027_map_io, | 262 | .map_io = pcm027_map_io, |
263 | .nr_irqs = PCM027_NR_IRQS, | 263 | .nr_irqs = PCM027_NR_IRQS, |
264 | .init_irq = pxa27x_init_irq, | 264 | .init_irq = pxa27x_init_irq, |
diff --git a/arch/arm/mach-pxa/raumfeld.c b/arch/arm/mach-pxa/raumfeld.c index bbcd90562ebe..6810cddec927 100644 --- a/arch/arm/mach-pxa/raumfeld.c +++ b/arch/arm/mach-pxa/raumfeld.c | |||
@@ -1086,7 +1086,7 @@ static void __init raumfeld_speaker_init(void) | |||
1086 | 1086 | ||
1087 | #ifdef CONFIG_MACH_RAUMFELD_RC | 1087 | #ifdef CONFIG_MACH_RAUMFELD_RC |
1088 | MACHINE_START(RAUMFELD_RC, "Raumfeld Controller") | 1088 | MACHINE_START(RAUMFELD_RC, "Raumfeld Controller") |
1089 | .boot_params = RAUMFELD_SDRAM_BASE + 0x100, | 1089 | .atag_offset = 0x100, |
1090 | .init_machine = raumfeld_controller_init, | 1090 | .init_machine = raumfeld_controller_init, |
1091 | .map_io = pxa3xx_map_io, | 1091 | .map_io = pxa3xx_map_io, |
1092 | .init_irq = pxa3xx_init_irq, | 1092 | .init_irq = pxa3xx_init_irq, |
@@ -1097,7 +1097,7 @@ MACHINE_END | |||
1097 | 1097 | ||
1098 | #ifdef CONFIG_MACH_RAUMFELD_CONNECTOR | 1098 | #ifdef CONFIG_MACH_RAUMFELD_CONNECTOR |
1099 | MACHINE_START(RAUMFELD_CONNECTOR, "Raumfeld Connector") | 1099 | MACHINE_START(RAUMFELD_CONNECTOR, "Raumfeld Connector") |
1100 | .boot_params = RAUMFELD_SDRAM_BASE + 0x100, | 1100 | .atag_offset = 0x100, |
1101 | .init_machine = raumfeld_connector_init, | 1101 | .init_machine = raumfeld_connector_init, |
1102 | .map_io = pxa3xx_map_io, | 1102 | .map_io = pxa3xx_map_io, |
1103 | .init_irq = pxa3xx_init_irq, | 1103 | .init_irq = pxa3xx_init_irq, |
@@ -1108,7 +1108,7 @@ MACHINE_END | |||
1108 | 1108 | ||
1109 | #ifdef CONFIG_MACH_RAUMFELD_SPEAKER | 1109 | #ifdef CONFIG_MACH_RAUMFELD_SPEAKER |
1110 | MACHINE_START(RAUMFELD_SPEAKER, "Raumfeld Speaker") | 1110 | MACHINE_START(RAUMFELD_SPEAKER, "Raumfeld Speaker") |
1111 | .boot_params = RAUMFELD_SDRAM_BASE + 0x100, | 1111 | .atag_offset = 0x100, |
1112 | .init_machine = raumfeld_speaker_init, | 1112 | .init_machine = raumfeld_speaker_init, |
1113 | .map_io = pxa3xx_map_io, | 1113 | .map_io = pxa3xx_map_io, |
1114 | .init_irq = pxa3xx_init_irq, | 1114 | .init_irq = pxa3xx_init_irq, |
diff --git a/arch/arm/mach-pxa/saar.c b/arch/arm/mach-pxa/saar.c index df4356e8acae..602d70b50f81 100644 --- a/arch/arm/mach-pxa/saar.c +++ b/arch/arm/mach-pxa/saar.c | |||
@@ -596,7 +596,7 @@ static void __init saar_init(void) | |||
596 | 596 | ||
597 | MACHINE_START(SAAR, "PXA930 Handheld Platform (aka SAAR)") | 597 | MACHINE_START(SAAR, "PXA930 Handheld Platform (aka SAAR)") |
598 | /* Maintainer: Eric Miao <eric.miao@marvell.com> */ | 598 | /* Maintainer: Eric Miao <eric.miao@marvell.com> */ |
599 | .boot_params = 0xa0000100, | 599 | .atag_offset = 0x100, |
600 | .map_io = pxa3xx_map_io, | 600 | .map_io = pxa3xx_map_io, |
601 | .init_irq = pxa3xx_init_irq, | 601 | .init_irq = pxa3xx_init_irq, |
602 | .handle_irq = pxa3xx_handle_irq, | 602 | .handle_irq = pxa3xx_handle_irq, |
diff --git a/arch/arm/mach-pxa/saarb.c b/arch/arm/mach-pxa/saarb.c index ebd6379c4969..5ce340320ab9 100644 --- a/arch/arm/mach-pxa/saarb.c +++ b/arch/arm/mach-pxa/saarb.c | |||
@@ -103,7 +103,7 @@ static void __init saarb_init(void) | |||
103 | } | 103 | } |
104 | 104 | ||
105 | MACHINE_START(SAARB, "PXA955 Handheld Platform (aka SAARB)") | 105 | MACHINE_START(SAARB, "PXA955 Handheld Platform (aka SAARB)") |
106 | .boot_params = 0xa0000100, | 106 | .atag_offset = 0x100, |
107 | .map_io = pxa3xx_map_io, | 107 | .map_io = pxa3xx_map_io, |
108 | .nr_irqs = SAARB_NR_IRQS, | 108 | .nr_irqs = SAARB_NR_IRQS, |
109 | .init_irq = pxa95x_init_irq, | 109 | .init_irq = pxa95x_init_irq, |
diff --git a/arch/arm/mach-pxa/stargate2.c b/arch/arm/mach-pxa/stargate2.c index 3f8d0af9e2f7..4c9a48bef569 100644 --- a/arch/arm/mach-pxa/stargate2.c +++ b/arch/arm/mach-pxa/stargate2.c | |||
@@ -1004,7 +1004,7 @@ MACHINE_START(INTELMOTE2, "IMOTE 2") | |||
1004 | .handle_irq = pxa27x_handle_irq, | 1004 | .handle_irq = pxa27x_handle_irq, |
1005 | .timer = &pxa_timer, | 1005 | .timer = &pxa_timer, |
1006 | .init_machine = imote2_init, | 1006 | .init_machine = imote2_init, |
1007 | .boot_params = 0xA0000100, | 1007 | .atag_offset = 0x100, |
1008 | MACHINE_END | 1008 | MACHINE_END |
1009 | #endif | 1009 | #endif |
1010 | 1010 | ||
@@ -1016,6 +1016,6 @@ MACHINE_START(STARGATE2, "Stargate 2") | |||
1016 | .handle_irq = pxa27x_handle_irq, | 1016 | .handle_irq = pxa27x_handle_irq, |
1017 | .timer = &pxa_timer, | 1017 | .timer = &pxa_timer, |
1018 | .init_machine = stargate2_init, | 1018 | .init_machine = stargate2_init, |
1019 | .boot_params = 0xA0000100, | 1019 | .atag_offset = 0x100, |
1020 | MACHINE_END | 1020 | MACHINE_END |
1021 | #endif | 1021 | #endif |
diff --git a/arch/arm/mach-pxa/tavorevb.c b/arch/arm/mach-pxa/tavorevb.c index 32fb58e01b10..ad47bb98f30d 100644 --- a/arch/arm/mach-pxa/tavorevb.c +++ b/arch/arm/mach-pxa/tavorevb.c | |||
@@ -489,7 +489,7 @@ static void __init tavorevb_init(void) | |||
489 | 489 | ||
490 | MACHINE_START(TAVOREVB, "PXA930 Evaluation Board (aka TavorEVB)") | 490 | MACHINE_START(TAVOREVB, "PXA930 Evaluation Board (aka TavorEVB)") |
491 | /* Maintainer: Eric Miao <eric.miao@marvell.com> */ | 491 | /* Maintainer: Eric Miao <eric.miao@marvell.com> */ |
492 | .boot_params = 0xa0000100, | 492 | .atag_offset = 0x100, |
493 | .map_io = pxa3xx_map_io, | 493 | .map_io = pxa3xx_map_io, |
494 | .init_irq = pxa3xx_init_irq, | 494 | .init_irq = pxa3xx_init_irq, |
495 | .handle_irq = pxa3xx_handle_irq, | 495 | .handle_irq = pxa3xx_handle_irq, |
diff --git a/arch/arm/mach-pxa/tavorevb3.c b/arch/arm/mach-pxa/tavorevb3.c index fd5a8eae0a87..fd569167302a 100644 --- a/arch/arm/mach-pxa/tavorevb3.c +++ b/arch/arm/mach-pxa/tavorevb3.c | |||
@@ -125,7 +125,7 @@ static void __init evb3_init(void) | |||
125 | } | 125 | } |
126 | 126 | ||
127 | MACHINE_START(TAVOREVB3, "PXA950 Evaluation Board (aka TavorEVB3)") | 127 | MACHINE_START(TAVOREVB3, "PXA950 Evaluation Board (aka TavorEVB3)") |
128 | .boot_params = 0xa0000100, | 128 | .atag_offset = 0x100, |
129 | .map_io = pxa3xx_map_io, | 129 | .map_io = pxa3xx_map_io, |
130 | .nr_irqs = TAVOREVB3_NR_IRQS, | 130 | .nr_irqs = TAVOREVB3_NR_IRQS, |
131 | .init_irq = pxa3xx_init_irq, | 131 | .init_irq = pxa3xx_init_irq, |
diff --git a/arch/arm/mach-pxa/trizeps4.c b/arch/arm/mach-pxa/trizeps4.c index c0417508f39d..35bbf13724b9 100644 --- a/arch/arm/mach-pxa/trizeps4.c +++ b/arch/arm/mach-pxa/trizeps4.c | |||
@@ -554,7 +554,7 @@ static void __init trizeps4_map_io(void) | |||
554 | 554 | ||
555 | MACHINE_START(TRIZEPS4, "Keith und Koep Trizeps IV module") | 555 | MACHINE_START(TRIZEPS4, "Keith und Koep Trizeps IV module") |
556 | /* MAINTAINER("Jürgen Schindele") */ | 556 | /* MAINTAINER("Jürgen Schindele") */ |
557 | .boot_params = TRIZEPS4_SDRAM_BASE + 0x100, | 557 | .atag_offset = 0x100, |
558 | .init_machine = trizeps4_init, | 558 | .init_machine = trizeps4_init, |
559 | .map_io = trizeps4_map_io, | 559 | .map_io = trizeps4_map_io, |
560 | .init_irq = pxa27x_init_irq, | 560 | .init_irq = pxa27x_init_irq, |
@@ -564,7 +564,7 @@ MACHINE_END | |||
564 | 564 | ||
565 | MACHINE_START(TRIZEPS4WL, "Keith und Koep Trizeps IV-WL module") | 565 | MACHINE_START(TRIZEPS4WL, "Keith und Koep Trizeps IV-WL module") |
566 | /* MAINTAINER("Jürgen Schindele") */ | 566 | /* MAINTAINER("Jürgen Schindele") */ |
567 | .boot_params = TRIZEPS4_SDRAM_BASE + 0x100, | 567 | .atag_offset = 0x100, |
568 | .init_machine = trizeps4_init, | 568 | .init_machine = trizeps4_init, |
569 | .map_io = trizeps4_map_io, | 569 | .map_io = trizeps4_map_io, |
570 | .init_irq = pxa27x_init_irq, | 570 | .init_irq = pxa27x_init_irq, |
diff --git a/arch/arm/mach-pxa/viper.c b/arch/arm/mach-pxa/viper.c index d4a3dc74e84a..242ddae332d3 100644 --- a/arch/arm/mach-pxa/viper.c +++ b/arch/arm/mach-pxa/viper.c | |||
@@ -992,7 +992,7 @@ static void __init viper_map_io(void) | |||
992 | 992 | ||
993 | MACHINE_START(VIPER, "Arcom/Eurotech VIPER SBC") | 993 | MACHINE_START(VIPER, "Arcom/Eurotech VIPER SBC") |
994 | /* Maintainer: Marc Zyngier <maz@misterjones.org> */ | 994 | /* Maintainer: Marc Zyngier <maz@misterjones.org> */ |
995 | .boot_params = 0xa0000100, | 995 | .atag_offset = 0x100, |
996 | .map_io = viper_map_io, | 996 | .map_io = viper_map_io, |
997 | .init_irq = viper_init_irq, | 997 | .init_irq = viper_init_irq, |
998 | .handle_irq = pxa25x_handle_irq, | 998 | .handle_irq = pxa25x_handle_irq, |
diff --git a/arch/arm/mach-pxa/vpac270.c b/arch/arm/mach-pxa/vpac270.c index 5f8490ab07cb..a7539a6ed1ff 100644 --- a/arch/arm/mach-pxa/vpac270.c +++ b/arch/arm/mach-pxa/vpac270.c | |||
@@ -716,7 +716,7 @@ static void __init vpac270_init(void) | |||
716 | } | 716 | } |
717 | 717 | ||
718 | MACHINE_START(VPAC270, "Voipac PXA270") | 718 | MACHINE_START(VPAC270, "Voipac PXA270") |
719 | .boot_params = 0xa0000100, | 719 | .atag_offset = 0x100, |
720 | .map_io = pxa27x_map_io, | 720 | .map_io = pxa27x_map_io, |
721 | .init_irq = pxa27x_init_irq, | 721 | .init_irq = pxa27x_init_irq, |
722 | .handle_irq = pxa27x_handle_irq, | 722 | .handle_irq = pxa27x_handle_irq, |
diff --git a/arch/arm/mach-pxa/xcep.c b/arch/arm/mach-pxa/xcep.c index acc600f5e72f..54930cccbe54 100644 --- a/arch/arm/mach-pxa/xcep.c +++ b/arch/arm/mach-pxa/xcep.c | |||
@@ -180,7 +180,7 @@ static void __init xcep_init(void) | |||
180 | } | 180 | } |
181 | 181 | ||
182 | MACHINE_START(XCEP, "Iskratel XCEP") | 182 | MACHINE_START(XCEP, "Iskratel XCEP") |
183 | .boot_params = 0xa0000100, | 183 | .atag_offset = 0x100, |
184 | .init_machine = xcep_init, | 184 | .init_machine = xcep_init, |
185 | .map_io = pxa25x_map_io, | 185 | .map_io = pxa25x_map_io, |
186 | .init_irq = pxa25x_init_irq, | 186 | .init_irq = pxa25x_init_irq, |
diff --git a/arch/arm/mach-pxa/z2.c b/arch/arm/mach-pxa/z2.c index 6c9275a20c91..65fed3753fa2 100644 --- a/arch/arm/mach-pxa/z2.c +++ b/arch/arm/mach-pxa/z2.c | |||
@@ -718,7 +718,7 @@ static void __init z2_init(void) | |||
718 | } | 718 | } |
719 | 719 | ||
720 | MACHINE_START(ZIPIT2, "Zipit Z2") | 720 | MACHINE_START(ZIPIT2, "Zipit Z2") |
721 | .boot_params = 0xa0000100, | 721 | .atag_offset = 0x100, |
722 | .map_io = pxa27x_map_io, | 722 | .map_io = pxa27x_map_io, |
723 | .init_irq = pxa27x_init_irq, | 723 | .init_irq = pxa27x_init_irq, |
724 | .handle_irq = pxa27x_handle_irq, | 724 | .handle_irq = pxa27x_handle_irq, |
diff --git a/arch/arm/mach-pxa/zeus.c b/arch/arm/mach-pxa/zeus.c index 99c49bcd9f70..c424e7d85ce3 100644 --- a/arch/arm/mach-pxa/zeus.c +++ b/arch/arm/mach-pxa/zeus.c | |||
@@ -904,7 +904,7 @@ static void __init zeus_map_io(void) | |||
904 | 904 | ||
905 | MACHINE_START(ARCOM_ZEUS, "Arcom/Eurotech ZEUS") | 905 | MACHINE_START(ARCOM_ZEUS, "Arcom/Eurotech ZEUS") |
906 | /* Maintainer: Marc Zyngier <maz@misterjones.org> */ | 906 | /* Maintainer: Marc Zyngier <maz@misterjones.org> */ |
907 | .boot_params = 0xa0000100, | 907 | .atag_offset = 0x100, |
908 | .map_io = zeus_map_io, | 908 | .map_io = zeus_map_io, |
909 | .nr_irqs = ZEUS_NR_IRQS, | 909 | .nr_irqs = ZEUS_NR_IRQS, |
910 | .init_irq = zeus_init_irq, | 910 | .init_irq = zeus_init_irq, |
diff --git a/arch/arm/mach-pxa/zylonite.c b/arch/arm/mach-pxa/zylonite.c index 15ec66b3471a..31d496891891 100644 --- a/arch/arm/mach-pxa/zylonite.c +++ b/arch/arm/mach-pxa/zylonite.c | |||
@@ -422,7 +422,7 @@ static void __init zylonite_init(void) | |||
422 | } | 422 | } |
423 | 423 | ||
424 | MACHINE_START(ZYLONITE, "PXA3xx Platform Development Kit (aka Zylonite)") | 424 | MACHINE_START(ZYLONITE, "PXA3xx Platform Development Kit (aka Zylonite)") |
425 | .boot_params = 0xa0000100, | 425 | .atag_offset = 0x100, |
426 | .map_io = pxa3xx_map_io, | 426 | .map_io = pxa3xx_map_io, |
427 | .nr_irqs = ZYLONITE_NR_IRQS, | 427 | .nr_irqs = ZYLONITE_NR_IRQS, |
428 | .init_irq = pxa3xx_init_irq, | 428 | .init_irq = pxa3xx_init_irq, |
diff --git a/arch/arm/mach-realview/realview_eb.c b/arch/arm/mach-realview/realview_eb.c index 7a4e3b18cb3e..026c66ad7ec2 100644 --- a/arch/arm/mach-realview/realview_eb.c +++ b/arch/arm/mach-realview/realview_eb.c | |||
@@ -463,7 +463,7 @@ static void __init realview_eb_init(void) | |||
463 | 463 | ||
464 | MACHINE_START(REALVIEW_EB, "ARM-RealView EB") | 464 | MACHINE_START(REALVIEW_EB, "ARM-RealView EB") |
465 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ | 465 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ |
466 | .boot_params = PLAT_PHYS_OFFSET + 0x00000100, | 466 | .atag_offset = 0x100, |
467 | .fixup = realview_fixup, | 467 | .fixup = realview_fixup, |
468 | .map_io = realview_eb_map_io, | 468 | .map_io = realview_eb_map_io, |
469 | .init_early = realview_init_early, | 469 | .init_early = realview_init_early, |
diff --git a/arch/arm/mach-realview/realview_pb1176.c b/arch/arm/mach-realview/realview_pb1176.c index ad5671acb66a..7263dea77779 100644 --- a/arch/arm/mach-realview/realview_pb1176.c +++ b/arch/arm/mach-realview/realview_pb1176.c | |||
@@ -358,7 +358,7 @@ static void __init realview_pb1176_init(void) | |||
358 | 358 | ||
359 | MACHINE_START(REALVIEW_PB1176, "ARM-RealView PB1176") | 359 | MACHINE_START(REALVIEW_PB1176, "ARM-RealView PB1176") |
360 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ | 360 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ |
361 | .boot_params = PLAT_PHYS_OFFSET + 0x00000100, | 361 | .atag_offset = 0x100, |
362 | .fixup = realview_pb1176_fixup, | 362 | .fixup = realview_pb1176_fixup, |
363 | .map_io = realview_pb1176_map_io, | 363 | .map_io = realview_pb1176_map_io, |
364 | .init_early = realview_init_early, | 364 | .init_early = realview_init_early, |
diff --git a/arch/arm/mach-realview/realview_pb11mp.c b/arch/arm/mach-realview/realview_pb11mp.c index b43644b3685e..671ad6d6ff00 100644 --- a/arch/arm/mach-realview/realview_pb11mp.c +++ b/arch/arm/mach-realview/realview_pb11mp.c | |||
@@ -360,7 +360,7 @@ static void __init realview_pb11mp_init(void) | |||
360 | 360 | ||
361 | MACHINE_START(REALVIEW_PB11MP, "ARM-RealView PB11MPCore") | 361 | MACHINE_START(REALVIEW_PB11MP, "ARM-RealView PB11MPCore") |
362 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ | 362 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ |
363 | .boot_params = PLAT_PHYS_OFFSET + 0x00000100, | 363 | .atag_offset = 0x100, |
364 | .fixup = realview_fixup, | 364 | .fixup = realview_fixup, |
365 | .map_io = realview_pb11mp_map_io, | 365 | .map_io = realview_pb11mp_map_io, |
366 | .init_early = realview_init_early, | 366 | .init_early = realview_init_early, |
diff --git a/arch/arm/mach-realview/realview_pba8.c b/arch/arm/mach-realview/realview_pba8.c index 763e8f38c15d..cbf22df4ad5b 100644 --- a/arch/arm/mach-realview/realview_pba8.c +++ b/arch/arm/mach-realview/realview_pba8.c | |||
@@ -310,7 +310,7 @@ static void __init realview_pba8_init(void) | |||
310 | 310 | ||
311 | MACHINE_START(REALVIEW_PBA8, "ARM-RealView PB-A8") | 311 | MACHINE_START(REALVIEW_PBA8, "ARM-RealView PB-A8") |
312 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ | 312 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ |
313 | .boot_params = PLAT_PHYS_OFFSET + 0x00000100, | 313 | .atag_offset = 0x100, |
314 | .fixup = realview_fixup, | 314 | .fixup = realview_fixup, |
315 | .map_io = realview_pba8_map_io, | 315 | .map_io = realview_pba8_map_io, |
316 | .init_early = realview_init_early, | 316 | .init_early = realview_init_early, |
diff --git a/arch/arm/mach-realview/realview_pbx.c b/arch/arm/mach-realview/realview_pbx.c index 363b0ab56150..8ec7e52618b4 100644 --- a/arch/arm/mach-realview/realview_pbx.c +++ b/arch/arm/mach-realview/realview_pbx.c | |||
@@ -393,7 +393,7 @@ static void __init realview_pbx_init(void) | |||
393 | 393 | ||
394 | MACHINE_START(REALVIEW_PBX, "ARM-RealView PBX") | 394 | MACHINE_START(REALVIEW_PBX, "ARM-RealView PBX") |
395 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ | 395 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ |
396 | .boot_params = PLAT_PHYS_OFFSET + 0x00000100, | 396 | .atag_offset = 0x100, |
397 | .fixup = realview_pbx_fixup, | 397 | .fixup = realview_pbx_fixup, |
398 | .map_io = realview_pbx_map_io, | 398 | .map_io = realview_pbx_map_io, |
399 | .init_early = realview_init_early, | 399 | .init_early = realview_init_early, |
diff --git a/arch/arm/mach-rpc/riscpc.c b/arch/arm/mach-rpc/riscpc.c index 580b3c73d2c7..a9241eb87724 100644 --- a/arch/arm/mach-rpc/riscpc.c +++ b/arch/arm/mach-rpc/riscpc.c | |||
@@ -218,7 +218,7 @@ extern struct sys_timer ioc_timer; | |||
218 | 218 | ||
219 | MACHINE_START(RISCPC, "Acorn-RiscPC") | 219 | MACHINE_START(RISCPC, "Acorn-RiscPC") |
220 | /* Maintainer: Russell King */ | 220 | /* Maintainer: Russell King */ |
221 | .boot_params = 0x10000100, | 221 | .atag_offset = 0x100, |
222 | .reserve_lp0 = 1, | 222 | .reserve_lp0 = 1, |
223 | .reserve_lp1 = 1, | 223 | .reserve_lp1 = 1, |
224 | .map_io = rpc_map_io, | 224 | .map_io = rpc_map_io, |
diff --git a/arch/arm/mach-s3c2410/Kconfig b/arch/arm/mach-s3c2410/Kconfig index 7245a55795dc..3700cf32af0f 100644 --- a/arch/arm/mach-s3c2410/Kconfig +++ b/arch/arm/mach-s3c2410/Kconfig | |||
@@ -8,7 +8,6 @@ config CPU_S3C2410 | |||
8 | select CPU_ARM920T | 8 | select CPU_ARM920T |
9 | select S3C_GPIO_PULL_UP | 9 | select S3C_GPIO_PULL_UP |
10 | select S3C2410_CLOCK | 10 | select S3C2410_CLOCK |
11 | select S3C2410_GPIO | ||
12 | select CPU_LLSERIAL_S3C2410 | 11 | select CPU_LLSERIAL_S3C2410 |
13 | select S3C2410_PM if PM | 12 | select S3C2410_PM if PM |
14 | select S3C2410_CPUFREQ if CPU_FREQ_S3C24XX | 13 | select S3C2410_CPUFREQ if CPU_FREQ_S3C24XX |
@@ -28,11 +27,6 @@ config S3C2410_PM | |||
28 | help | 27 | help |
29 | Power Management code common to S3C2410 and better | 28 | Power Management code common to S3C2410 and better |
30 | 29 | ||
31 | config S3C2410_GPIO | ||
32 | bool | ||
33 | help | ||
34 | GPIO code for S3C2410 and similar processors | ||
35 | |||
36 | config SIMTEC_NOR | 30 | config SIMTEC_NOR |
37 | bool | 31 | bool |
38 | help | 32 | help |
diff --git a/arch/arm/mach-s3c2410/Makefile b/arch/arm/mach-s3c2410/Makefile index 81695353d8f4..782fd81144e9 100644 --- a/arch/arm/mach-s3c2410/Makefile +++ b/arch/arm/mach-s3c2410/Makefile | |||
@@ -13,7 +13,6 @@ obj-$(CONFIG_CPU_S3C2410) += s3c2410.o | |||
13 | obj-$(CONFIG_CPU_S3C2410_DMA) += dma.o | 13 | obj-$(CONFIG_CPU_S3C2410_DMA) += dma.o |
14 | obj-$(CONFIG_CPU_S3C2410_DMA) += dma.o | 14 | obj-$(CONFIG_CPU_S3C2410_DMA) += dma.o |
15 | obj-$(CONFIG_S3C2410_PM) += pm.o sleep.o | 15 | obj-$(CONFIG_S3C2410_PM) += pm.o sleep.o |
16 | obj-$(CONFIG_S3C2410_GPIO) += gpio.o | ||
17 | obj-$(CONFIG_S3C2410_CPUFREQ) += cpu-freq.o | 16 | obj-$(CONFIG_S3C2410_CPUFREQ) += cpu-freq.o |
18 | obj-$(CONFIG_S3C2410_PLLTABLE) += pll.o | 17 | obj-$(CONFIG_S3C2410_PLLTABLE) += pll.o |
19 | 18 | ||
diff --git a/arch/arm/mach-s3c2410/dma.c b/arch/arm/mach-s3c2410/dma.c index 0d8e043804c2..dbe43df8cfec 100644 --- a/arch/arm/mach-s3c2410/dma.c +++ b/arch/arm/mach-s3c2410/dma.c | |||
@@ -47,38 +47,26 @@ static struct s3c24xx_dma_map __initdata s3c2410_dma_mappings[] = { | |||
47 | .channels[0] = S3C2410_DCON_CH0_SDI | DMA_CH_VALID, | 47 | .channels[0] = S3C2410_DCON_CH0_SDI | DMA_CH_VALID, |
48 | .channels[2] = S3C2410_DCON_CH2_SDI | DMA_CH_VALID, | 48 | .channels[2] = S3C2410_DCON_CH2_SDI | DMA_CH_VALID, |
49 | .channels[3] = S3C2410_DCON_CH3_SDI | DMA_CH_VALID, | 49 | .channels[3] = S3C2410_DCON_CH3_SDI | DMA_CH_VALID, |
50 | .hw_addr.to = S3C2410_PA_IIS + S3C2410_IISFIFO, | ||
51 | .hw_addr.from = S3C2410_PA_IIS + S3C2410_IISFIFO, | ||
52 | }, | 50 | }, |
53 | [DMACH_SPI0] = { | 51 | [DMACH_SPI0] = { |
54 | .name = "spi0", | 52 | .name = "spi0", |
55 | .channels[1] = S3C2410_DCON_CH1_SPI | DMA_CH_VALID, | 53 | .channels[1] = S3C2410_DCON_CH1_SPI | DMA_CH_VALID, |
56 | .hw_addr.to = S3C2410_PA_SPI + S3C2410_SPTDAT, | ||
57 | .hw_addr.from = S3C2410_PA_SPI + S3C2410_SPRDAT, | ||
58 | }, | 54 | }, |
59 | [DMACH_SPI1] = { | 55 | [DMACH_SPI1] = { |
60 | .name = "spi1", | 56 | .name = "spi1", |
61 | .channels[3] = S3C2410_DCON_CH3_SPI | DMA_CH_VALID, | 57 | .channels[3] = S3C2410_DCON_CH3_SPI | DMA_CH_VALID, |
62 | .hw_addr.to = S3C2410_PA_SPI + 0x20 + S3C2410_SPTDAT, | ||
63 | .hw_addr.from = S3C2410_PA_SPI + 0x20 + S3C2410_SPRDAT, | ||
64 | }, | 58 | }, |
65 | [DMACH_UART0] = { | 59 | [DMACH_UART0] = { |
66 | .name = "uart0", | 60 | .name = "uart0", |
67 | .channels[0] = S3C2410_DCON_CH0_UART0 | DMA_CH_VALID, | 61 | .channels[0] = S3C2410_DCON_CH0_UART0 | DMA_CH_VALID, |
68 | .hw_addr.to = S3C2410_PA_UART0 + S3C2410_UTXH, | ||
69 | .hw_addr.from = S3C2410_PA_UART0 + S3C2410_URXH, | ||
70 | }, | 62 | }, |
71 | [DMACH_UART1] = { | 63 | [DMACH_UART1] = { |
72 | .name = "uart1", | 64 | .name = "uart1", |
73 | .channels[1] = S3C2410_DCON_CH1_UART1 | DMA_CH_VALID, | 65 | .channels[1] = S3C2410_DCON_CH1_UART1 | DMA_CH_VALID, |
74 | .hw_addr.to = S3C2410_PA_UART1 + S3C2410_UTXH, | ||
75 | .hw_addr.from = S3C2410_PA_UART1 + S3C2410_URXH, | ||
76 | }, | 66 | }, |
77 | [DMACH_UART2] = { | 67 | [DMACH_UART2] = { |
78 | .name = "uart2", | 68 | .name = "uart2", |
79 | .channels[3] = S3C2410_DCON_CH3_UART2 | DMA_CH_VALID, | 69 | .channels[3] = S3C2410_DCON_CH3_UART2 | DMA_CH_VALID, |
80 | .hw_addr.to = S3C2410_PA_UART2 + S3C2410_UTXH, | ||
81 | .hw_addr.from = S3C2410_PA_UART2 + S3C2410_URXH, | ||
82 | }, | 70 | }, |
83 | [DMACH_TIMER] = { | 71 | [DMACH_TIMER] = { |
84 | .name = "timer", | 72 | .name = "timer", |
@@ -90,12 +78,10 @@ static struct s3c24xx_dma_map __initdata s3c2410_dma_mappings[] = { | |||
90 | .name = "i2s-sdi", | 78 | .name = "i2s-sdi", |
91 | .channels[1] = S3C2410_DCON_CH1_I2SSDI | DMA_CH_VALID, | 79 | .channels[1] = S3C2410_DCON_CH1_I2SSDI | DMA_CH_VALID, |
92 | .channels[2] = S3C2410_DCON_CH2_I2SSDI | DMA_CH_VALID, | 80 | .channels[2] = S3C2410_DCON_CH2_I2SSDI | DMA_CH_VALID, |
93 | .hw_addr.from = S3C2410_PA_IIS + S3C2410_IISFIFO, | ||
94 | }, | 81 | }, |
95 | [DMACH_I2S_OUT] = { | 82 | [DMACH_I2S_OUT] = { |
96 | .name = "i2s-sdo", | 83 | .name = "i2s-sdo", |
97 | .channels[2] = S3C2410_DCON_CH2_I2SSDO | DMA_CH_VALID, | 84 | .channels[2] = S3C2410_DCON_CH2_I2SSDO | DMA_CH_VALID, |
98 | .hw_addr.to = S3C2410_PA_IIS + S3C2410_IISFIFO, | ||
99 | }, | 85 | }, |
100 | [DMACH_USB_EP1] = { | 86 | [DMACH_USB_EP1] = { |
101 | .name = "usb-ep1", | 87 | .name = "usb-ep1", |
diff --git a/arch/arm/mach-s3c2410/gpio.c b/arch/arm/mach-s3c2410/gpio.c deleted file mode 100644 index 9664e011dae2..000000000000 --- a/arch/arm/mach-s3c2410/gpio.c +++ /dev/null | |||
@@ -1,72 +0,0 @@ | |||
1 | /* linux/arch/arm/mach-s3c2410/gpio.c | ||
2 | * | ||
3 | * Copyright (c) 2004-2006 Simtec Electronics | ||
4 | * Ben Dooks <ben@simtec.co.uk> | ||
5 | * | ||
6 | * S3C2410 GPIO support | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License as published by | ||
10 | * the Free Software Foundation; either version 2 of the License, or | ||
11 | * (at your option) any later version. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, | ||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | * GNU General Public License for more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU General Public License | ||
19 | * along with this program; if not, write to the Free Software | ||
20 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
21 | */ | ||
22 | |||
23 | #include <linux/kernel.h> | ||
24 | #include <linux/init.h> | ||
25 | #include <linux/module.h> | ||
26 | #include <linux/interrupt.h> | ||
27 | #include <linux/ioport.h> | ||
28 | #include <linux/io.h> | ||
29 | |||
30 | #include <mach/hardware.h> | ||
31 | #include <mach/gpio-fns.h> | ||
32 | #include <asm/irq.h> | ||
33 | |||
34 | #include <mach/regs-gpio.h> | ||
35 | |||
36 | int s3c2410_gpio_irqfilter(unsigned int pin, unsigned int on, | ||
37 | unsigned int config) | ||
38 | { | ||
39 | void __iomem *reg = S3C24XX_EINFLT0; | ||
40 | unsigned long flags; | ||
41 | unsigned long val; | ||
42 | |||
43 | if (pin < S3C2410_GPG(8) || pin > S3C2410_GPG(15)) | ||
44 | return -EINVAL; | ||
45 | |||
46 | config &= 0xff; | ||
47 | |||
48 | pin -= S3C2410_GPG(8); | ||
49 | reg += pin & ~3; | ||
50 | |||
51 | local_irq_save(flags); | ||
52 | |||
53 | /* update filter width and clock source */ | ||
54 | |||
55 | val = __raw_readl(reg); | ||
56 | val &= ~(0xff << ((pin & 3) * 8)); | ||
57 | val |= config << ((pin & 3) * 8); | ||
58 | __raw_writel(val, reg); | ||
59 | |||
60 | /* update filter enable */ | ||
61 | |||
62 | val = __raw_readl(S3C24XX_EXTINT2); | ||
63 | val &= ~(1 << ((pin * 4) + 3)); | ||
64 | val |= on << ((pin * 4) + 3); | ||
65 | __raw_writel(val, S3C24XX_EXTINT2); | ||
66 | |||
67 | local_irq_restore(flags); | ||
68 | |||
69 | return 0; | ||
70 | } | ||
71 | |||
72 | EXPORT_SYMBOL(s3c2410_gpio_irqfilter); | ||
diff --git a/arch/arm/mach-s3c2410/include/mach/map.h b/arch/arm/mach-s3c2410/include/mach/map.h index 425552d84b60..4cf495f813a7 100644 --- a/arch/arm/mach-s3c2410/include/mach/map.h +++ b/arch/arm/mach-s3c2410/include/mach/map.h | |||
@@ -14,9 +14,53 @@ | |||
14 | #define __ASM_ARCH_MAP_H | 14 | #define __ASM_ARCH_MAP_H |
15 | 15 | ||
16 | #include <plat/map-base.h> | 16 | #include <plat/map-base.h> |
17 | #include <plat/map.h> | ||
18 | 17 | ||
19 | #define S3C2410_ADDR(x) S3C_ADDR(x) | 18 | /* |
19 | * S3C2410 UART offset is 0x4000 but the other SoCs are 0x400. | ||
20 | * So need to define it, and here is to avoid redefinition warning. | ||
21 | */ | ||
22 | #define S3C_UART_OFFSET (0x4000) | ||
23 | |||
24 | #include <plat/map-s3c.h> | ||
25 | |||
26 | /* | ||
27 | * interrupt controller is the first thing we put in, to make | ||
28 | * the assembly code for the irq detection easier | ||
29 | */ | ||
30 | #define S3C2410_PA_IRQ (0x4A000000) | ||
31 | #define S3C24XX_SZ_IRQ SZ_1M | ||
32 | |||
33 | /* memory controller registers */ | ||
34 | #define S3C2410_PA_MEMCTRL (0x48000000) | ||
35 | #define S3C24XX_SZ_MEMCTRL SZ_1M | ||
36 | |||
37 | /* UARTs */ | ||
38 | #define S3C_VA_UARTx(uart) (S3C_VA_UART + ((uart * S3C_UART_OFFSET))) | ||
39 | |||
40 | /* Timers */ | ||
41 | #define S3C2410_PA_TIMER (0x51000000) | ||
42 | #define S3C24XX_SZ_TIMER SZ_1M | ||
43 | |||
44 | /* Clock and Power management */ | ||
45 | #define S3C24XX_SZ_CLKPWR SZ_1M | ||
46 | |||
47 | /* USB Device port */ | ||
48 | #define S3C2410_PA_USBDEV (0x52000000) | ||
49 | #define S3C24XX_SZ_USBDEV SZ_1M | ||
50 | |||
51 | /* Watchdog */ | ||
52 | #define S3C2410_PA_WATCHDOG (0x53000000) | ||
53 | #define S3C24XX_SZ_WATCHDOG SZ_1M | ||
54 | |||
55 | /* Standard size definitions for peripheral blocks. */ | ||
56 | |||
57 | #define S3C24XX_SZ_UART SZ_1M | ||
58 | #define S3C24XX_SZ_IIS SZ_1M | ||
59 | #define S3C24XX_SZ_ADC SZ_1M | ||
60 | #define S3C24XX_SZ_SPI SZ_1M | ||
61 | #define S3C24XX_SZ_SDI SZ_1M | ||
62 | #define S3C24XX_SZ_NAND SZ_1M | ||
63 | #define S3C24XX_SZ_GPIO SZ_1M | ||
20 | 64 | ||
21 | /* USB host controller */ | 65 | /* USB host controller */ |
22 | #define S3C2410_PA_USBHOST (0x49000000) | 66 | #define S3C2410_PA_USBHOST (0x49000000) |
@@ -75,10 +119,8 @@ | |||
75 | 119 | ||
76 | /* S3C2412 memory and IO controls */ | 120 | /* S3C2412 memory and IO controls */ |
77 | #define S3C2412_PA_SSMC (0x4F000000) | 121 | #define S3C2412_PA_SSMC (0x4F000000) |
78 | #define S3C2412_VA_SSMC S3C_ADDR_CPU(0x00000000) | ||
79 | 122 | ||
80 | #define S3C2412_PA_EBI (0x48800000) | 123 | #define S3C2412_PA_EBI (0x48800000) |
81 | #define S3C2412_VA_EBI S3C_ADDR_CPU(0x00010000) | ||
82 | 124 | ||
83 | /* physical addresses of all the chip-select areas */ | 125 | /* physical addresses of all the chip-select areas */ |
84 | 126 | ||
@@ -100,12 +142,10 @@ | |||
100 | #define S3C24XX_PA_DMA S3C2410_PA_DMA | 142 | #define S3C24XX_PA_DMA S3C2410_PA_DMA |
101 | #define S3C24XX_PA_CLKPWR S3C2410_PA_CLKPWR | 143 | #define S3C24XX_PA_CLKPWR S3C2410_PA_CLKPWR |
102 | #define S3C24XX_PA_LCD S3C2410_PA_LCD | 144 | #define S3C24XX_PA_LCD S3C2410_PA_LCD |
103 | #define S3C24XX_PA_UART S3C2410_PA_UART | ||
104 | #define S3C24XX_PA_TIMER S3C2410_PA_TIMER | 145 | #define S3C24XX_PA_TIMER S3C2410_PA_TIMER |
105 | #define S3C24XX_PA_USBDEV S3C2410_PA_USBDEV | 146 | #define S3C24XX_PA_USBDEV S3C2410_PA_USBDEV |
106 | #define S3C24XX_PA_WATCHDOG S3C2410_PA_WATCHDOG | 147 | #define S3C24XX_PA_WATCHDOG S3C2410_PA_WATCHDOG |
107 | #define S3C24XX_PA_IIS S3C2410_PA_IIS | 148 | #define S3C24XX_PA_IIS S3C2410_PA_IIS |
108 | #define S3C24XX_PA_GPIO S3C2410_PA_GPIO | ||
109 | #define S3C24XX_PA_RTC S3C2410_PA_RTC | 149 | #define S3C24XX_PA_RTC S3C2410_PA_RTC |
110 | #define S3C24XX_PA_ADC S3C2410_PA_ADC | 150 | #define S3C24XX_PA_ADC S3C2410_PA_ADC |
111 | #define S3C24XX_PA_SPI S3C2410_PA_SPI | 151 | #define S3C24XX_PA_SPI S3C2410_PA_SPI |
diff --git a/arch/arm/mach-s3c2410/mach-amlm5900.c b/arch/arm/mach-s3c2410/mach-amlm5900.c index dabc141243f3..79838942b0ac 100644 --- a/arch/arm/mach-s3c2410/mach-amlm5900.c +++ b/arch/arm/mach-s3c2410/mach-amlm5900.c | |||
@@ -236,7 +236,7 @@ static void __init amlm5900_init(void) | |||
236 | } | 236 | } |
237 | 237 | ||
238 | MACHINE_START(AML_M5900, "AML_M5900") | 238 | MACHINE_START(AML_M5900, "AML_M5900") |
239 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 239 | .atag_offset = 0x100, |
240 | .map_io = amlm5900_map_io, | 240 | .map_io = amlm5900_map_io, |
241 | .init_irq = s3c24xx_init_irq, | 241 | .init_irq = s3c24xx_init_irq, |
242 | .init_machine = amlm5900_init, | 242 | .init_machine = amlm5900_init, |
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c index 1e2d536adda9..a20ae1ad4062 100644 --- a/arch/arm/mach-s3c2410/mach-bast.c +++ b/arch/arm/mach-s3c2410/mach-bast.c | |||
@@ -657,7 +657,7 @@ static void __init bast_init(void) | |||
657 | 657 | ||
658 | MACHINE_START(BAST, "Simtec-BAST") | 658 | MACHINE_START(BAST, "Simtec-BAST") |
659 | /* Maintainer: Ben Dooks <ben@simtec.co.uk> */ | 659 | /* Maintainer: Ben Dooks <ben@simtec.co.uk> */ |
660 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 660 | .atag_offset = 0x100, |
661 | .map_io = bast_map_io, | 661 | .map_io = bast_map_io, |
662 | .init_irq = s3c24xx_init_irq, | 662 | .init_irq = s3c24xx_init_irq, |
663 | .init_machine = bast_init, | 663 | .init_machine = bast_init, |
diff --git a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c index 2a2fa0620133..556c535829f0 100644 --- a/arch/arm/mach-s3c2410/mach-h1940.c +++ b/arch/arm/mach-s3c2410/mach-h1940.c | |||
@@ -744,7 +744,7 @@ static void __init h1940_init(void) | |||
744 | 744 | ||
745 | MACHINE_START(H1940, "IPAQ-H1940") | 745 | MACHINE_START(H1940, "IPAQ-H1940") |
746 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ | 746 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ |
747 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 747 | .atag_offset = 0x100, |
748 | .map_io = h1940_map_io, | 748 | .map_io = h1940_map_io, |
749 | .reserve = h1940_reserve, | 749 | .reserve = h1940_reserve, |
750 | .init_irq = h1940_init_irq, | 750 | .init_irq = h1940_init_irq, |
diff --git a/arch/arm/mach-s3c2410/mach-n30.c b/arch/arm/mach-s3c2410/mach-n30.c index 079dcaa602d3..1dc3e3234417 100644 --- a/arch/arm/mach-s3c2410/mach-n30.c +++ b/arch/arm/mach-s3c2410/mach-n30.c | |||
@@ -586,7 +586,7 @@ MACHINE_START(N30, "Acer-N30") | |||
586 | /* Maintainer: Christer Weinigel <christer@weinigel.se>, | 586 | /* Maintainer: Christer Weinigel <christer@weinigel.se>, |
587 | Ben Dooks <ben-linux@fluff.org> | 587 | Ben Dooks <ben-linux@fluff.org> |
588 | */ | 588 | */ |
589 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 589 | .atag_offset = 0x100, |
590 | .timer = &s3c24xx_timer, | 590 | .timer = &s3c24xx_timer, |
591 | .init_machine = n30_init, | 591 | .init_machine = n30_init, |
592 | .init_irq = s3c24xx_init_irq, | 592 | .init_irq = s3c24xx_init_irq, |
@@ -596,7 +596,7 @@ MACHINE_END | |||
596 | MACHINE_START(N35, "Acer-N35") | 596 | MACHINE_START(N35, "Acer-N35") |
597 | /* Maintainer: Christer Weinigel <christer@weinigel.se> | 597 | /* Maintainer: Christer Weinigel <christer@weinigel.se> |
598 | */ | 598 | */ |
599 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 599 | .atag_offset = 0x100, |
600 | .timer = &s3c24xx_timer, | 600 | .timer = &s3c24xx_timer, |
601 | .init_machine = n30_init, | 601 | .init_machine = n30_init, |
602 | .init_irq = s3c24xx_init_irq, | 602 | .init_irq = s3c24xx_init_irq, |
diff --git a/arch/arm/mach-s3c2410/mach-otom.c b/arch/arm/mach-s3c2410/mach-otom.c index 0aa16cd5acbc..f03f3fd9cec9 100644 --- a/arch/arm/mach-s3c2410/mach-otom.c +++ b/arch/arm/mach-s3c2410/mach-otom.c | |||
@@ -116,7 +116,7 @@ static void __init otom11_init(void) | |||
116 | 116 | ||
117 | MACHINE_START(OTOM, "Nex Vision - Otom 1.1") | 117 | MACHINE_START(OTOM, "Nex Vision - Otom 1.1") |
118 | /* Maintainer: Guillaume GOURAT <guillaume.gourat@nexvision.tv> */ | 118 | /* Maintainer: Guillaume GOURAT <guillaume.gourat@nexvision.tv> */ |
119 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 119 | .atag_offset = 0x100, |
120 | .map_io = otom11_map_io, | 120 | .map_io = otom11_map_io, |
121 | .init_machine = otom11_init, | 121 | .init_machine = otom11_init, |
122 | .init_irq = s3c24xx_init_irq, | 122 | .init_irq = s3c24xx_init_irq, |
diff --git a/arch/arm/mach-s3c2410/mach-qt2410.c b/arch/arm/mach-s3c2410/mach-qt2410.c index f44f77531b1e..367d376deb96 100644 --- a/arch/arm/mach-s3c2410/mach-qt2410.c +++ b/arch/arm/mach-s3c2410/mach-qt2410.c | |||
@@ -344,7 +344,7 @@ static void __init qt2410_machine_init(void) | |||
344 | } | 344 | } |
345 | 345 | ||
346 | MACHINE_START(QT2410, "QT2410") | 346 | MACHINE_START(QT2410, "QT2410") |
347 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 347 | .atag_offset = 0x100, |
348 | .map_io = qt2410_map_io, | 348 | .map_io = qt2410_map_io, |
349 | .init_irq = s3c24xx_init_irq, | 349 | .init_irq = s3c24xx_init_irq, |
350 | .init_machine = qt2410_machine_init, | 350 | .init_machine = qt2410_machine_init, |
diff --git a/arch/arm/mach-s3c2410/mach-smdk2410.c b/arch/arm/mach-s3c2410/mach-smdk2410.c index e17f03387aba..99c9dfdb71c7 100644 --- a/arch/arm/mach-s3c2410/mach-smdk2410.c +++ b/arch/arm/mach-s3c2410/mach-smdk2410.c | |||
@@ -111,7 +111,7 @@ static void __init smdk2410_init(void) | |||
111 | MACHINE_START(SMDK2410, "SMDK2410") /* @TODO: request a new identifier and switch | 111 | MACHINE_START(SMDK2410, "SMDK2410") /* @TODO: request a new identifier and switch |
112 | * to SMDK2410 */ | 112 | * to SMDK2410 */ |
113 | /* Maintainer: Jonas Dietsche */ | 113 | /* Maintainer: Jonas Dietsche */ |
114 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 114 | .atag_offset = 0x100, |
115 | .map_io = smdk2410_map_io, | 115 | .map_io = smdk2410_map_io, |
116 | .init_irq = s3c24xx_init_irq, | 116 | .init_irq = s3c24xx_init_irq, |
117 | .init_machine = smdk2410_init, | 117 | .init_machine = smdk2410_init, |
diff --git a/arch/arm/mach-s3c2410/mach-tct_hammer.c b/arch/arm/mach-s3c2410/mach-tct_hammer.c index 43c2b831b9e8..e0d0b6fb2800 100644 --- a/arch/arm/mach-s3c2410/mach-tct_hammer.c +++ b/arch/arm/mach-s3c2410/mach-tct_hammer.c | |||
@@ -146,7 +146,7 @@ static void __init tct_hammer_init(void) | |||
146 | } | 146 | } |
147 | 147 | ||
148 | MACHINE_START(TCT_HAMMER, "TCT_HAMMER") | 148 | MACHINE_START(TCT_HAMMER, "TCT_HAMMER") |
149 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 149 | .atag_offset = 0x100, |
150 | .map_io = tct_hammer_map_io, | 150 | .map_io = tct_hammer_map_io, |
151 | .init_irq = s3c24xx_init_irq, | 151 | .init_irq = s3c24xx_init_irq, |
152 | .init_machine = tct_hammer_init, | 152 | .init_machine = tct_hammer_init, |
diff --git a/arch/arm/mach-s3c2410/mach-vr1000.c b/arch/arm/mach-s3c2410/mach-vr1000.c index 6ccce5a761b4..df47e8e90065 100644 --- a/arch/arm/mach-s3c2410/mach-vr1000.c +++ b/arch/arm/mach-s3c2410/mach-vr1000.c | |||
@@ -400,7 +400,7 @@ static void __init vr1000_init(void) | |||
400 | 400 | ||
401 | MACHINE_START(VR1000, "Thorcom-VR1000") | 401 | MACHINE_START(VR1000, "Thorcom-VR1000") |
402 | /* Maintainer: Ben Dooks <ben@simtec.co.uk> */ | 402 | /* Maintainer: Ben Dooks <ben@simtec.co.uk> */ |
403 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 403 | .atag_offset = 0x100, |
404 | .map_io = vr1000_map_io, | 404 | .map_io = vr1000_map_io, |
405 | .init_machine = vr1000_init, | 405 | .init_machine = vr1000_init, |
406 | .init_irq = s3c24xx_init_irq, | 406 | .init_irq = s3c24xx_init_irq, |
diff --git a/arch/arm/mach-s3c2412/Kconfig b/arch/arm/mach-s3c2412/Kconfig index c2cf4e569989..b8b9029e9f2d 100644 --- a/arch/arm/mach-s3c2412/Kconfig +++ b/arch/arm/mach-s3c2412/Kconfig | |||
@@ -9,7 +9,6 @@ config CPU_S3C2412 | |||
9 | select CPU_LLSERIAL_S3C2440 | 9 | select CPU_LLSERIAL_S3C2440 |
10 | select S3C2412_PM if PM | 10 | select S3C2412_PM if PM |
11 | select S3C2412_DMA if S3C2410_DMA | 11 | select S3C2412_DMA if S3C2410_DMA |
12 | select S3C2410_GPIO | ||
13 | help | 12 | help |
14 | Support for the S3C2412 and S3C2413 SoCs from the S3C24XX line | 13 | Support for the S3C2412 and S3C2413 SoCs from the S3C24XX line |
15 | 14 | ||
diff --git a/arch/arm/mach-s3c2412/Makefile b/arch/arm/mach-s3c2412/Makefile index 6c48a91ea39e..7e4d95fa8a97 100644 --- a/arch/arm/mach-s3c2412/Makefile +++ b/arch/arm/mach-s3c2412/Makefile | |||
@@ -12,7 +12,6 @@ obj- := | |||
12 | obj-$(CONFIG_CPU_S3C2412) += s3c2412.o | 12 | obj-$(CONFIG_CPU_S3C2412) += s3c2412.o |
13 | obj-$(CONFIG_CPU_S3C2412) += irq.o | 13 | obj-$(CONFIG_CPU_S3C2412) += irq.o |
14 | obj-$(CONFIG_CPU_S3C2412) += clock.o | 14 | obj-$(CONFIG_CPU_S3C2412) += clock.o |
15 | obj-$(CONFIG_CPU_S3C2412) += gpio.o | ||
16 | obj-$(CONFIG_S3C2412_DMA) += dma.o | 15 | obj-$(CONFIG_S3C2412_DMA) += dma.o |
17 | obj-$(CONFIG_S3C2412_PM) += pm.o | 16 | obj-$(CONFIG_S3C2412_PM) += pm.o |
18 | obj-$(CONFIG_S3C2412_PM_SLEEP) += sleep.o | 17 | obj-$(CONFIG_S3C2412_PM_SLEEP) += sleep.o |
diff --git a/arch/arm/mach-s3c2412/dma.c b/arch/arm/mach-s3c2412/dma.c index 7abecfca0b7e..c61e3261615d 100644 --- a/arch/arm/mach-s3c2412/dma.c +++ b/arch/arm/mach-s3c2412/dma.c | |||
@@ -50,64 +50,46 @@ static struct s3c24xx_dma_map __initdata s3c2412_dma_mappings[] = { | |||
50 | .name = "sdi", | 50 | .name = "sdi", |
51 | .channels = MAP(S3C2412_DMAREQSEL_SDI), | 51 | .channels = MAP(S3C2412_DMAREQSEL_SDI), |
52 | .channels_rx = MAP(S3C2412_DMAREQSEL_SDI), | 52 | .channels_rx = MAP(S3C2412_DMAREQSEL_SDI), |
53 | .hw_addr.to = S3C2410_PA_SDI + S3C2410_SDIDATA, | ||
54 | .hw_addr.from = S3C2410_PA_SDI + S3C2410_SDIDATA, | ||
55 | }, | 53 | }, |
56 | [DMACH_SPI0] = { | 54 | [DMACH_SPI0] = { |
57 | .name = "spi0", | 55 | .name = "spi0", |
58 | .channels = MAP(S3C2412_DMAREQSEL_SPI0TX), | 56 | .channels = MAP(S3C2412_DMAREQSEL_SPI0TX), |
59 | .channels_rx = MAP(S3C2412_DMAREQSEL_SPI0RX), | 57 | .channels_rx = MAP(S3C2412_DMAREQSEL_SPI0RX), |
60 | .hw_addr.to = S3C2410_PA_SPI + S3C2410_SPTDAT, | ||
61 | .hw_addr.from = S3C2410_PA_SPI + S3C2410_SPRDAT, | ||
62 | }, | 58 | }, |
63 | [DMACH_SPI1] = { | 59 | [DMACH_SPI1] = { |
64 | .name = "spi1", | 60 | .name = "spi1", |
65 | .channels = MAP(S3C2412_DMAREQSEL_SPI1TX), | 61 | .channels = MAP(S3C2412_DMAREQSEL_SPI1TX), |
66 | .channels_rx = MAP(S3C2412_DMAREQSEL_SPI1RX), | 62 | .channels_rx = MAP(S3C2412_DMAREQSEL_SPI1RX), |
67 | .hw_addr.to = S3C2410_PA_SPI + S3C2412_SPI1 + S3C2410_SPTDAT, | ||
68 | .hw_addr.from = S3C2410_PA_SPI + S3C2412_SPI1 + S3C2410_SPRDAT, | ||
69 | }, | 63 | }, |
70 | [DMACH_UART0] = { | 64 | [DMACH_UART0] = { |
71 | .name = "uart0", | 65 | .name = "uart0", |
72 | .channels = MAP(S3C2412_DMAREQSEL_UART0_0), | 66 | .channels = MAP(S3C2412_DMAREQSEL_UART0_0), |
73 | .channels_rx = MAP(S3C2412_DMAREQSEL_UART0_0), | 67 | .channels_rx = MAP(S3C2412_DMAREQSEL_UART0_0), |
74 | .hw_addr.to = S3C2410_PA_UART0 + S3C2410_UTXH, | ||
75 | .hw_addr.from = S3C2410_PA_UART0 + S3C2410_URXH, | ||
76 | }, | 68 | }, |
77 | [DMACH_UART1] = { | 69 | [DMACH_UART1] = { |
78 | .name = "uart1", | 70 | .name = "uart1", |
79 | .channels = MAP(S3C2412_DMAREQSEL_UART1_0), | 71 | .channels = MAP(S3C2412_DMAREQSEL_UART1_0), |
80 | .channels_rx = MAP(S3C2412_DMAREQSEL_UART1_0), | 72 | .channels_rx = MAP(S3C2412_DMAREQSEL_UART1_0), |
81 | .hw_addr.to = S3C2410_PA_UART1 + S3C2410_UTXH, | ||
82 | .hw_addr.from = S3C2410_PA_UART1 + S3C2410_URXH, | ||
83 | }, | 73 | }, |
84 | [DMACH_UART2] = { | 74 | [DMACH_UART2] = { |
85 | .name = "uart2", | 75 | .name = "uart2", |
86 | .channels = MAP(S3C2412_DMAREQSEL_UART2_0), | 76 | .channels = MAP(S3C2412_DMAREQSEL_UART2_0), |
87 | .channels_rx = MAP(S3C2412_DMAREQSEL_UART2_0), | 77 | .channels_rx = MAP(S3C2412_DMAREQSEL_UART2_0), |
88 | .hw_addr.to = S3C2410_PA_UART2 + S3C2410_UTXH, | ||
89 | .hw_addr.from = S3C2410_PA_UART2 + S3C2410_URXH, | ||
90 | }, | 78 | }, |
91 | [DMACH_UART0_SRC2] = { | 79 | [DMACH_UART0_SRC2] = { |
92 | .name = "uart0", | 80 | .name = "uart0", |
93 | .channels = MAP(S3C2412_DMAREQSEL_UART0_1), | 81 | .channels = MAP(S3C2412_DMAREQSEL_UART0_1), |
94 | .channels_rx = MAP(S3C2412_DMAREQSEL_UART0_1), | 82 | .channels_rx = MAP(S3C2412_DMAREQSEL_UART0_1), |
95 | .hw_addr.to = S3C2410_PA_UART0 + S3C2410_UTXH, | ||
96 | .hw_addr.from = S3C2410_PA_UART0 + S3C2410_URXH, | ||
97 | }, | 83 | }, |
98 | [DMACH_UART1_SRC2] = { | 84 | [DMACH_UART1_SRC2] = { |
99 | .name = "uart1", | 85 | .name = "uart1", |
100 | .channels = MAP(S3C2412_DMAREQSEL_UART1_1), | 86 | .channels = MAP(S3C2412_DMAREQSEL_UART1_1), |
101 | .channels_rx = MAP(S3C2412_DMAREQSEL_UART1_1), | 87 | .channels_rx = MAP(S3C2412_DMAREQSEL_UART1_1), |
102 | .hw_addr.to = S3C2410_PA_UART1 + S3C2410_UTXH, | ||
103 | .hw_addr.from = S3C2410_PA_UART1 + S3C2410_URXH, | ||
104 | }, | 88 | }, |
105 | [DMACH_UART2_SRC2] = { | 89 | [DMACH_UART2_SRC2] = { |
106 | .name = "uart2", | 90 | .name = "uart2", |
107 | .channels = MAP(S3C2412_DMAREQSEL_UART2_1), | 91 | .channels = MAP(S3C2412_DMAREQSEL_UART2_1), |
108 | .channels_rx = MAP(S3C2412_DMAREQSEL_UART2_1), | 92 | .channels_rx = MAP(S3C2412_DMAREQSEL_UART2_1), |
109 | .hw_addr.to = S3C2410_PA_UART2 + S3C2410_UTXH, | ||
110 | .hw_addr.from = S3C2410_PA_UART2 + S3C2410_URXH, | ||
111 | }, | 93 | }, |
112 | [DMACH_TIMER] = { | 94 | [DMACH_TIMER] = { |
113 | .name = "timer", | 95 | .name = "timer", |
diff --git a/arch/arm/mach-s3c2412/gpio.c b/arch/arm/mach-s3c2412/gpio.c deleted file mode 100644 index 3404a876b33e..000000000000 --- a/arch/arm/mach-s3c2412/gpio.c +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
1 | /* linux/arch/arm/mach-s3c2412/gpio.c | ||
2 | * | ||
3 | * Copyright (c) 2007 Simtec Electronics | ||
4 | * Ben Dooks <ben@simtec.co.uk> | ||
5 | * | ||
6 | * http://armlinux.simtec.co.uk/. | ||
7 | * | ||
8 | * S3C2412/S3C2413 specific GPIO support | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or modify | ||
11 | * it under the terms of the GNU General Public License version 2 as | ||
12 | * published by the Free Software Foundation. | ||
13 | */ | ||
14 | |||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/types.h> | ||
17 | #include <linux/module.h> | ||
18 | #include <linux/interrupt.h> | ||
19 | #include <linux/gpio.h> | ||
20 | |||
21 | #include <asm/mach/arch.h> | ||
22 | #include <asm/mach/map.h> | ||
23 | |||
24 | #include <mach/regs-gpio.h> | ||
25 | #include <mach/hardware.h> | ||
26 | |||
27 | #include <plat/gpio-core.h> | ||
28 | |||
29 | int s3c2412_gpio_set_sleepcfg(unsigned int pin, unsigned int state) | ||
30 | { | ||
31 | struct s3c_gpio_chip *chip = s3c_gpiolib_getchip(pin); | ||
32 | unsigned long offs = pin - chip->chip.base; | ||
33 | unsigned long flags; | ||
34 | unsigned long slpcon; | ||
35 | |||
36 | offs *= 2; | ||
37 | |||
38 | if (pin < S3C2410_GPB(0)) | ||
39 | return -EINVAL; | ||
40 | |||
41 | if (pin >= S3C2410_GPF(0) && | ||
42 | pin <= S3C2410_GPG(16)) | ||
43 | return -EINVAL; | ||
44 | |||
45 | if (pin > S3C2410_GPH(16)) | ||
46 | return -EINVAL; | ||
47 | |||
48 | local_irq_save(flags); | ||
49 | |||
50 | slpcon = __raw_readl(chip->base + 0x0C); | ||
51 | |||
52 | slpcon &= ~(3 << offs); | ||
53 | slpcon |= state << offs; | ||
54 | |||
55 | __raw_writel(slpcon, chip->base + 0x0C); | ||
56 | |||
57 | local_irq_restore(flags); | ||
58 | |||
59 | return 0; | ||
60 | } | ||
61 | |||
62 | EXPORT_SYMBOL(s3c2412_gpio_set_sleepcfg); | ||
diff --git a/arch/arm/mach-s3c2412/mach-jive.c b/arch/arm/mach-s3c2412/mach-jive.c index 5eeb47580b0c..286ef1738c61 100644 --- a/arch/arm/mach-s3c2412/mach-jive.c +++ b/arch/arm/mach-s3c2412/mach-jive.c | |||
@@ -655,7 +655,7 @@ static void __init jive_machine_init(void) | |||
655 | 655 | ||
656 | MACHINE_START(JIVE, "JIVE") | 656 | MACHINE_START(JIVE, "JIVE") |
657 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ | 657 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ |
658 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 658 | .atag_offset = 0x100, |
659 | 659 | ||
660 | .init_irq = s3c24xx_init_irq, | 660 | .init_irq = s3c24xx_init_irq, |
661 | .map_io = jive_map_io, | 661 | .map_io = jive_map_io, |
diff --git a/arch/arm/mach-s3c2412/mach-smdk2413.c b/arch/arm/mach-s3c2412/mach-smdk2413.c index 834cfb61bcfe..d6325ede9f29 100644 --- a/arch/arm/mach-s3c2412/mach-smdk2413.c +++ b/arch/arm/mach-s3c2412/mach-smdk2413.c | |||
@@ -128,7 +128,7 @@ static void __init smdk2413_machine_init(void) | |||
128 | 128 | ||
129 | MACHINE_START(S3C2413, "S3C2413") | 129 | MACHINE_START(S3C2413, "S3C2413") |
130 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ | 130 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ |
131 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 131 | .atag_offset = 0x100, |
132 | 132 | ||
133 | .fixup = smdk2413_fixup, | 133 | .fixup = smdk2413_fixup, |
134 | .init_irq = s3c24xx_init_irq, | 134 | .init_irq = s3c24xx_init_irq, |
@@ -139,7 +139,7 @@ MACHINE_END | |||
139 | 139 | ||
140 | MACHINE_START(SMDK2412, "SMDK2412") | 140 | MACHINE_START(SMDK2412, "SMDK2412") |
141 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ | 141 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ |
142 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 142 | .atag_offset = 0x100, |
143 | 143 | ||
144 | .fixup = smdk2413_fixup, | 144 | .fixup = smdk2413_fixup, |
145 | .init_irq = s3c24xx_init_irq, | 145 | .init_irq = s3c24xx_init_irq, |
@@ -150,7 +150,7 @@ MACHINE_END | |||
150 | 150 | ||
151 | MACHINE_START(SMDK2413, "SMDK2413") | 151 | MACHINE_START(SMDK2413, "SMDK2413") |
152 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ | 152 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ |
153 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 153 | .atag_offset = 0x100, |
154 | 154 | ||
155 | .fixup = smdk2413_fixup, | 155 | .fixup = smdk2413_fixup, |
156 | .init_irq = s3c24xx_init_irq, | 156 | .init_irq = s3c24xx_init_irq, |
diff --git a/arch/arm/mach-s3c2412/mach-vstms.c b/arch/arm/mach-s3c2412/mach-vstms.c index 83544ebe20ac..5955c15018b4 100644 --- a/arch/arm/mach-s3c2412/mach-vstms.c +++ b/arch/arm/mach-s3c2412/mach-vstms.c | |||
@@ -156,7 +156,7 @@ static void __init vstms_init(void) | |||
156 | } | 156 | } |
157 | 157 | ||
158 | MACHINE_START(VSTMS, "VSTMS") | 158 | MACHINE_START(VSTMS, "VSTMS") |
159 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 159 | .atag_offset = 0x100, |
160 | 160 | ||
161 | .fixup = vstms_fixup, | 161 | .fixup = vstms_fixup, |
162 | .init_irq = s3c24xx_init_irq, | 162 | .init_irq = s3c24xx_init_irq, |
diff --git a/arch/arm/mach-s3c2416/mach-smdk2416.c b/arch/arm/mach-s3c2416/mach-smdk2416.c index ac27ebb31c9b..a9eee531ca76 100644 --- a/arch/arm/mach-s3c2416/mach-smdk2416.c +++ b/arch/arm/mach-s3c2416/mach-smdk2416.c | |||
@@ -245,7 +245,7 @@ static void __init smdk2416_machine_init(void) | |||
245 | 245 | ||
246 | MACHINE_START(SMDK2416, "SMDK2416") | 246 | MACHINE_START(SMDK2416, "SMDK2416") |
247 | /* Maintainer: Yauhen Kharuzhy <jekhor@gmail.com> */ | 247 | /* Maintainer: Yauhen Kharuzhy <jekhor@gmail.com> */ |
248 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 248 | .atag_offset = 0x100, |
249 | 249 | ||
250 | .init_irq = s3c24xx_init_irq, | 250 | .init_irq = s3c24xx_init_irq, |
251 | .map_io = smdk2416_map_io, | 251 | .map_io = smdk2416_map_io, |
diff --git a/arch/arm/mach-s3c2440/Kconfig b/arch/arm/mach-s3c2440/Kconfig index 50825a3f91cc..c461fb8e15c0 100644 --- a/arch/arm/mach-s3c2440/Kconfig +++ b/arch/arm/mach-s3c2440/Kconfig | |||
@@ -8,7 +8,6 @@ config CPU_S3C2440 | |||
8 | select S3C_GPIO_PULL_UP | 8 | select S3C_GPIO_PULL_UP |
9 | select S3C2410_CLOCK | 9 | select S3C2410_CLOCK |
10 | select S3C2410_PM if PM | 10 | select S3C2410_PM if PM |
11 | select S3C2410_GPIO | ||
12 | select S3C2440_DMA if S3C2410_DMA | 11 | select S3C2440_DMA if S3C2410_DMA |
13 | select CPU_S3C244X | 12 | select CPU_S3C244X |
14 | select CPU_LLSERIAL_S3C2440 | 13 | select CPU_LLSERIAL_S3C2440 |
@@ -20,7 +19,6 @@ config CPU_S3C2442 | |||
20 | select CPU_ARM920T | 19 | select CPU_ARM920T |
21 | select S3C_GPIO_PULL_DOWN | 20 | select S3C_GPIO_PULL_DOWN |
22 | select S3C2410_CLOCK | 21 | select S3C2410_CLOCK |
23 | select S3C2410_GPIO | ||
24 | select S3C2410_PM if PM | 22 | select S3C2410_PM if PM |
25 | select CPU_S3C244X | 23 | select CPU_S3C244X |
26 | select CPU_LLSERIAL_S3C2440 | 24 | select CPU_LLSERIAL_S3C2440 |
diff --git a/arch/arm/mach-s3c2440/dma.c b/arch/arm/mach-s3c2440/dma.c index 3b0529f54e9c..0e73f8f9d132 100644 --- a/arch/arm/mach-s3c2440/dma.c +++ b/arch/arm/mach-s3c2440/dma.c | |||
@@ -48,38 +48,26 @@ static struct s3c24xx_dma_map __initdata s3c2440_dma_mappings[] = { | |||
48 | .channels[1] = S3C2440_DCON_CH1_SDI | DMA_CH_VALID, | 48 | .channels[1] = S3C2440_DCON_CH1_SDI | DMA_CH_VALID, |
49 | .channels[2] = S3C2410_DCON_CH2_SDI | DMA_CH_VALID, | 49 | .channels[2] = S3C2410_DCON_CH2_SDI | DMA_CH_VALID, |
50 | .channels[3] = S3C2410_DCON_CH3_SDI | DMA_CH_VALID, | 50 | .channels[3] = S3C2410_DCON_CH3_SDI | DMA_CH_VALID, |
51 | .hw_addr.to = S3C2410_PA_IIS + S3C2410_IISFIFO, | ||
52 | .hw_addr.from = S3C2410_PA_IIS + S3C2410_IISFIFO, | ||
53 | }, | 51 | }, |
54 | [DMACH_SPI0] = { | 52 | [DMACH_SPI0] = { |
55 | .name = "spi0", | 53 | .name = "spi0", |
56 | .channels[1] = S3C2410_DCON_CH1_SPI | DMA_CH_VALID, | 54 | .channels[1] = S3C2410_DCON_CH1_SPI | DMA_CH_VALID, |
57 | .hw_addr.to = S3C2410_PA_SPI + S3C2410_SPTDAT, | ||
58 | .hw_addr.from = S3C2410_PA_SPI + S3C2410_SPRDAT, | ||
59 | }, | 55 | }, |
60 | [DMACH_SPI1] = { | 56 | [DMACH_SPI1] = { |
61 | .name = "spi1", | 57 | .name = "spi1", |
62 | .channels[3] = S3C2410_DCON_CH3_SPI | DMA_CH_VALID, | 58 | .channels[3] = S3C2410_DCON_CH3_SPI | DMA_CH_VALID, |
63 | .hw_addr.to = S3C2410_PA_SPI + 0x20 + S3C2410_SPTDAT, | ||
64 | .hw_addr.from = S3C2410_PA_SPI + 0x20 + S3C2410_SPRDAT, | ||
65 | }, | 59 | }, |
66 | [DMACH_UART0] = { | 60 | [DMACH_UART0] = { |
67 | .name = "uart0", | 61 | .name = "uart0", |
68 | .channels[0] = S3C2410_DCON_CH0_UART0 | DMA_CH_VALID, | 62 | .channels[0] = S3C2410_DCON_CH0_UART0 | DMA_CH_VALID, |
69 | .hw_addr.to = S3C2410_PA_UART0 + S3C2410_UTXH, | ||
70 | .hw_addr.from = S3C2410_PA_UART0 + S3C2410_URXH, | ||
71 | }, | 63 | }, |
72 | [DMACH_UART1] = { | 64 | [DMACH_UART1] = { |
73 | .name = "uart1", | 65 | .name = "uart1", |
74 | .channels[1] = S3C2410_DCON_CH1_UART1 | DMA_CH_VALID, | 66 | .channels[1] = S3C2410_DCON_CH1_UART1 | DMA_CH_VALID, |
75 | .hw_addr.to = S3C2410_PA_UART1 + S3C2410_UTXH, | ||
76 | .hw_addr.from = S3C2410_PA_UART1 + S3C2410_URXH, | ||
77 | }, | 67 | }, |
78 | [DMACH_UART2] = { | 68 | [DMACH_UART2] = { |
79 | .name = "uart2", | 69 | .name = "uart2", |
80 | .channels[3] = S3C2410_DCON_CH3_UART2 | DMA_CH_VALID, | 70 | .channels[3] = S3C2410_DCON_CH3_UART2 | DMA_CH_VALID, |
81 | .hw_addr.to = S3C2410_PA_UART2 + S3C2410_UTXH, | ||
82 | .hw_addr.from = S3C2410_PA_UART2 + S3C2410_URXH, | ||
83 | }, | 71 | }, |
84 | [DMACH_TIMER] = { | 72 | [DMACH_TIMER] = { |
85 | .name = "timer", | 73 | .name = "timer", |
@@ -91,31 +79,26 @@ static struct s3c24xx_dma_map __initdata s3c2440_dma_mappings[] = { | |||
91 | .name = "i2s-sdi", | 79 | .name = "i2s-sdi", |
92 | .channels[1] = S3C2410_DCON_CH1_I2SSDI | DMA_CH_VALID, | 80 | .channels[1] = S3C2410_DCON_CH1_I2SSDI | DMA_CH_VALID, |
93 | .channels[2] = S3C2410_DCON_CH2_I2SSDI | DMA_CH_VALID, | 81 | .channels[2] = S3C2410_DCON_CH2_I2SSDI | DMA_CH_VALID, |
94 | .hw_addr.from = S3C2410_PA_IIS + S3C2410_IISFIFO, | ||
95 | }, | 82 | }, |
96 | [DMACH_I2S_OUT] = { | 83 | [DMACH_I2S_OUT] = { |
97 | .name = "i2s-sdo", | 84 | .name = "i2s-sdo", |
98 | .channels[0] = S3C2440_DCON_CH0_I2SSDO | DMA_CH_VALID, | 85 | .channels[0] = S3C2440_DCON_CH0_I2SSDO | DMA_CH_VALID, |
99 | .channels[2] = S3C2410_DCON_CH2_I2SSDO | DMA_CH_VALID, | 86 | .channels[2] = S3C2410_DCON_CH2_I2SSDO | DMA_CH_VALID, |
100 | .hw_addr.to = S3C2410_PA_IIS + S3C2410_IISFIFO, | ||
101 | }, | 87 | }, |
102 | [DMACH_PCM_IN] = { | 88 | [DMACH_PCM_IN] = { |
103 | .name = "pcm-in", | 89 | .name = "pcm-in", |
104 | .channels[0] = S3C2440_DCON_CH0_PCMIN | DMA_CH_VALID, | 90 | .channels[0] = S3C2440_DCON_CH0_PCMIN | DMA_CH_VALID, |
105 | .channels[2] = S3C2440_DCON_CH2_PCMIN | DMA_CH_VALID, | 91 | .channels[2] = S3C2440_DCON_CH2_PCMIN | DMA_CH_VALID, |
106 | .hw_addr.from = S3C2440_PA_AC97 + S3C_AC97_PCM_DATA, | ||
107 | }, | 92 | }, |
108 | [DMACH_PCM_OUT] = { | 93 | [DMACH_PCM_OUT] = { |
109 | .name = "pcm-out", | 94 | .name = "pcm-out", |
110 | .channels[1] = S3C2440_DCON_CH1_PCMOUT | DMA_CH_VALID, | 95 | .channels[1] = S3C2440_DCON_CH1_PCMOUT | DMA_CH_VALID, |
111 | .channels[3] = S3C2440_DCON_CH3_PCMOUT | DMA_CH_VALID, | 96 | .channels[3] = S3C2440_DCON_CH3_PCMOUT | DMA_CH_VALID, |
112 | .hw_addr.to = S3C2440_PA_AC97 + S3C_AC97_PCM_DATA, | ||
113 | }, | 97 | }, |
114 | [DMACH_MIC_IN] = { | 98 | [DMACH_MIC_IN] = { |
115 | .name = "mic-in", | 99 | .name = "mic-in", |
116 | .channels[2] = S3C2440_DCON_CH2_MICIN | DMA_CH_VALID, | 100 | .channels[2] = S3C2440_DCON_CH2_MICIN | DMA_CH_VALID, |
117 | .channels[3] = S3C2440_DCON_CH3_MICIN | DMA_CH_VALID, | 101 | .channels[3] = S3C2440_DCON_CH3_MICIN | DMA_CH_VALID, |
118 | .hw_addr.from = S3C2440_PA_AC97 + S3C_AC97_MIC_DATA, | ||
119 | }, | 102 | }, |
120 | [DMACH_USB_EP1] = { | 103 | [DMACH_USB_EP1] = { |
121 | .name = "usb-ep1", | 104 | .name = "usb-ep1", |
diff --git a/arch/arm/mach-s3c2440/mach-anubis.c b/arch/arm/mach-s3c2440/mach-anubis.c index d7086788b1ff..74f92fc3fd04 100644 --- a/arch/arm/mach-s3c2440/mach-anubis.c +++ b/arch/arm/mach-s3c2440/mach-anubis.c | |||
@@ -498,7 +498,7 @@ static void __init anubis_init(void) | |||
498 | 498 | ||
499 | MACHINE_START(ANUBIS, "Simtec-Anubis") | 499 | MACHINE_START(ANUBIS, "Simtec-Anubis") |
500 | /* Maintainer: Ben Dooks <ben@simtec.co.uk> */ | 500 | /* Maintainer: Ben Dooks <ben@simtec.co.uk> */ |
501 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 501 | .atag_offset = 0x100, |
502 | .map_io = anubis_map_io, | 502 | .map_io = anubis_map_io, |
503 | .init_machine = anubis_init, | 503 | .init_machine = anubis_init, |
504 | .init_irq = s3c24xx_init_irq, | 504 | .init_irq = s3c24xx_init_irq, |
diff --git a/arch/arm/mach-s3c2440/mach-at2440evb.c b/arch/arm/mach-s3c2440/mach-at2440evb.c index 6c98b789b8c6..38887ee0c784 100644 --- a/arch/arm/mach-s3c2440/mach-at2440evb.c +++ b/arch/arm/mach-s3c2440/mach-at2440evb.c | |||
@@ -233,7 +233,7 @@ static void __init at2440evb_init(void) | |||
233 | 233 | ||
234 | 234 | ||
235 | MACHINE_START(AT2440EVB, "AT2440EVB") | 235 | MACHINE_START(AT2440EVB, "AT2440EVB") |
236 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 236 | .atag_offset = 0x100, |
237 | .map_io = at2440evb_map_io, | 237 | .map_io = at2440evb_map_io, |
238 | .init_machine = at2440evb_init, | 238 | .init_machine = at2440evb_init, |
239 | .init_irq = s3c24xx_init_irq, | 239 | .init_irq = s3c24xx_init_irq, |
diff --git a/arch/arm/mach-s3c2440/mach-gta02.c b/arch/arm/mach-s3c2440/mach-gta02.c index c10ddf4ed7f1..de1e0ff46cec 100644 --- a/arch/arm/mach-s3c2440/mach-gta02.c +++ b/arch/arm/mach-s3c2440/mach-gta02.c | |||
@@ -595,7 +595,7 @@ static void __init gta02_machine_init(void) | |||
595 | 595 | ||
596 | MACHINE_START(NEO1973_GTA02, "GTA02") | 596 | MACHINE_START(NEO1973_GTA02, "GTA02") |
597 | /* Maintainer: Nelson Castillo <arhuaco@freaks-unidos.net> */ | 597 | /* Maintainer: Nelson Castillo <arhuaco@freaks-unidos.net> */ |
598 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 598 | .atag_offset = 0x100, |
599 | .map_io = gta02_map_io, | 599 | .map_io = gta02_map_io, |
600 | .init_irq = s3c24xx_init_irq, | 600 | .init_irq = s3c24xx_init_irq, |
601 | .init_machine = gta02_machine_init, | 601 | .init_machine = gta02_machine_init, |
diff --git a/arch/arm/mach-s3c2440/mach-mini2440.c b/arch/arm/mach-s3c2440/mach-mini2440.c index fc2dc0b3d4fe..91fe0b4c95f1 100644 --- a/arch/arm/mach-s3c2440/mach-mini2440.c +++ b/arch/arm/mach-s3c2440/mach-mini2440.c | |||
@@ -676,7 +676,7 @@ static void __init mini2440_init(void) | |||
676 | 676 | ||
677 | MACHINE_START(MINI2440, "MINI2440") | 677 | MACHINE_START(MINI2440, "MINI2440") |
678 | /* Maintainer: Michel Pollet <buserror@gmail.com> */ | 678 | /* Maintainer: Michel Pollet <buserror@gmail.com> */ |
679 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 679 | .atag_offset = 0x100, |
680 | .map_io = mini2440_map_io, | 680 | .map_io = mini2440_map_io, |
681 | .init_machine = mini2440_init, | 681 | .init_machine = mini2440_init, |
682 | .init_irq = s3c24xx_init_irq, | 682 | .init_irq = s3c24xx_init_irq, |
diff --git a/arch/arm/mach-s3c2440/mach-nexcoder.c b/arch/arm/mach-s3c2440/mach-nexcoder.c index 37dd306fb7dc..61c0bf148165 100644 --- a/arch/arm/mach-s3c2440/mach-nexcoder.c +++ b/arch/arm/mach-s3c2440/mach-nexcoder.c | |||
@@ -151,7 +151,7 @@ static void __init nexcoder_init(void) | |||
151 | 151 | ||
152 | MACHINE_START(NEXCODER_2440, "NexVision - Nexcoder 2440") | 152 | MACHINE_START(NEXCODER_2440, "NexVision - Nexcoder 2440") |
153 | /* Maintainer: Guillaume GOURAT <guillaume.gourat@nexvision.tv> */ | 153 | /* Maintainer: Guillaume GOURAT <guillaume.gourat@nexvision.tv> */ |
154 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 154 | .atag_offset = 0x100, |
155 | .map_io = nexcoder_map_io, | 155 | .map_io = nexcoder_map_io, |
156 | .init_machine = nexcoder_init, | 156 | .init_machine = nexcoder_init, |
157 | .init_irq = s3c24xx_init_irq, | 157 | .init_irq = s3c24xx_init_irq, |
diff --git a/arch/arm/mach-s3c2440/mach-osiris.c b/arch/arm/mach-s3c2440/mach-osiris.c index d88536393310..dc142ebf8cba 100644 --- a/arch/arm/mach-s3c2440/mach-osiris.c +++ b/arch/arm/mach-s3c2440/mach-osiris.c | |||
@@ -447,7 +447,7 @@ static void __init osiris_init(void) | |||
447 | 447 | ||
448 | MACHINE_START(OSIRIS, "Simtec-OSIRIS") | 448 | MACHINE_START(OSIRIS, "Simtec-OSIRIS") |
449 | /* Maintainer: Ben Dooks <ben@simtec.co.uk> */ | 449 | /* Maintainer: Ben Dooks <ben@simtec.co.uk> */ |
450 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 450 | .atag_offset = 0x100, |
451 | .map_io = osiris_map_io, | 451 | .map_io = osiris_map_io, |
452 | .init_irq = s3c24xx_init_irq, | 452 | .init_irq = s3c24xx_init_irq, |
453 | .init_machine = osiris_init, | 453 | .init_machine = osiris_init, |
diff --git a/arch/arm/mach-s3c2440/mach-rx1950.c b/arch/arm/mach-s3c2440/mach-rx1950.c index 27ea95096fe1..684dbb3567f5 100644 --- a/arch/arm/mach-s3c2440/mach-rx1950.c +++ b/arch/arm/mach-s3c2440/mach-rx1950.c | |||
@@ -825,7 +825,7 @@ static void __init rx1950_reserve(void) | |||
825 | 825 | ||
826 | MACHINE_START(RX1950, "HP iPAQ RX1950") | 826 | MACHINE_START(RX1950, "HP iPAQ RX1950") |
827 | /* Maintainers: Vasily Khoruzhick */ | 827 | /* Maintainers: Vasily Khoruzhick */ |
828 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 828 | .atag_offset = 0x100, |
829 | .map_io = rx1950_map_io, | 829 | .map_io = rx1950_map_io, |
830 | .reserve = rx1950_reserve, | 830 | .reserve = rx1950_reserve, |
831 | .init_irq = s3c24xx_init_irq, | 831 | .init_irq = s3c24xx_init_irq, |
diff --git a/arch/arm/mach-s3c2440/mach-rx3715.c b/arch/arm/mach-s3c2440/mach-rx3715.c index 1472b1a5b2fb..e19499c2f909 100644 --- a/arch/arm/mach-s3c2440/mach-rx3715.c +++ b/arch/arm/mach-s3c2440/mach-rx3715.c | |||
@@ -218,7 +218,7 @@ static void __init rx3715_init_machine(void) | |||
218 | 218 | ||
219 | MACHINE_START(RX3715, "IPAQ-RX3715") | 219 | MACHINE_START(RX3715, "IPAQ-RX3715") |
220 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ | 220 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ |
221 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 221 | .atag_offset = 0x100, |
222 | .map_io = rx3715_map_io, | 222 | .map_io = rx3715_map_io, |
223 | .reserve = rx3715_reserve, | 223 | .reserve = rx3715_reserve, |
224 | .init_irq = rx3715_init_irq, | 224 | .init_irq = rx3715_init_irq, |
diff --git a/arch/arm/mach-s3c2440/mach-smdk2440.c b/arch/arm/mach-s3c2440/mach-smdk2440.c index eedfe0f11643..36eeb4197a84 100644 --- a/arch/arm/mach-s3c2440/mach-smdk2440.c +++ b/arch/arm/mach-s3c2440/mach-smdk2440.c | |||
@@ -175,7 +175,7 @@ static void __init smdk2440_machine_init(void) | |||
175 | 175 | ||
176 | MACHINE_START(S3C2440, "SMDK2440") | 176 | MACHINE_START(S3C2440, "SMDK2440") |
177 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ | 177 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ |
178 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 178 | .atag_offset = 0x100, |
179 | 179 | ||
180 | .init_irq = s3c24xx_init_irq, | 180 | .init_irq = s3c24xx_init_irq, |
181 | .map_io = smdk2440_map_io, | 181 | .map_io = smdk2440_map_io, |
diff --git a/arch/arm/mach-s3c2443/dma.c b/arch/arm/mach-s3c2443/dma.c index 3f658685ec16..fe52151d2e84 100644 --- a/arch/arm/mach-s3c2443/dma.c +++ b/arch/arm/mach-s3c2443/dma.c | |||
@@ -54,68 +54,46 @@ static struct s3c24xx_dma_map __initdata s3c2443_dma_mappings[] = { | |||
54 | [DMACH_SDI] = { | 54 | [DMACH_SDI] = { |
55 | .name = "sdi", | 55 | .name = "sdi", |
56 | .channels = MAP(S3C2443_DMAREQSEL_SDI), | 56 | .channels = MAP(S3C2443_DMAREQSEL_SDI), |
57 | .hw_addr.to = S3C2410_PA_IIS + S3C2410_IISFIFO, | ||
58 | .hw_addr.from = S3C2410_PA_IIS + S3C2410_IISFIFO, | ||
59 | }, | 57 | }, |
60 | [DMACH_SPI0] = { | 58 | [DMACH_SPI0] = { |
61 | .name = "spi0", | 59 | .name = "spi0", |
62 | .channels = MAP(S3C2443_DMAREQSEL_SPI0TX), | 60 | .channels = MAP(S3C2443_DMAREQSEL_SPI0TX), |
63 | .hw_addr.to = S3C2410_PA_SPI + S3C2410_SPTDAT, | ||
64 | .hw_addr.from = S3C2410_PA_SPI + S3C2410_SPRDAT, | ||
65 | }, | 61 | }, |
66 | [DMACH_SPI1] = { | 62 | [DMACH_SPI1] = { |
67 | .name = "spi1", | 63 | .name = "spi1", |
68 | .channels = MAP(S3C2443_DMAREQSEL_SPI1TX), | 64 | .channels = MAP(S3C2443_DMAREQSEL_SPI1TX), |
69 | .hw_addr.to = S3C2410_PA_SPI + 0x20 + S3C2410_SPTDAT, | ||
70 | .hw_addr.from = S3C2410_PA_SPI + 0x20 + S3C2410_SPRDAT, | ||
71 | }, | 65 | }, |
72 | [DMACH_UART0] = { | 66 | [DMACH_UART0] = { |
73 | .name = "uart0", | 67 | .name = "uart0", |
74 | .channels = MAP(S3C2443_DMAREQSEL_UART0_0), | 68 | .channels = MAP(S3C2443_DMAREQSEL_UART0_0), |
75 | .hw_addr.to = S3C2410_PA_UART0 + S3C2410_UTXH, | ||
76 | .hw_addr.from = S3C2410_PA_UART0 + S3C2410_URXH, | ||
77 | }, | 69 | }, |
78 | [DMACH_UART1] = { | 70 | [DMACH_UART1] = { |
79 | .name = "uart1", | 71 | .name = "uart1", |
80 | .channels = MAP(S3C2443_DMAREQSEL_UART1_0), | 72 | .channels = MAP(S3C2443_DMAREQSEL_UART1_0), |
81 | .hw_addr.to = S3C2410_PA_UART1 + S3C2410_UTXH, | ||
82 | .hw_addr.from = S3C2410_PA_UART1 + S3C2410_URXH, | ||
83 | }, | 73 | }, |
84 | [DMACH_UART2] = { | 74 | [DMACH_UART2] = { |
85 | .name = "uart2", | 75 | .name = "uart2", |
86 | .channels = MAP(S3C2443_DMAREQSEL_UART2_0), | 76 | .channels = MAP(S3C2443_DMAREQSEL_UART2_0), |
87 | .hw_addr.to = S3C2410_PA_UART2 + S3C2410_UTXH, | ||
88 | .hw_addr.from = S3C2410_PA_UART2 + S3C2410_URXH, | ||
89 | }, | 77 | }, |
90 | [DMACH_UART3] = { | 78 | [DMACH_UART3] = { |
91 | .name = "uart3", | 79 | .name = "uart3", |
92 | .channels = MAP(S3C2443_DMAREQSEL_UART3_0), | 80 | .channels = MAP(S3C2443_DMAREQSEL_UART3_0), |
93 | .hw_addr.to = S3C2443_PA_UART3 + S3C2410_UTXH, | ||
94 | .hw_addr.from = S3C2443_PA_UART3 + S3C2410_URXH, | ||
95 | }, | 81 | }, |
96 | [DMACH_UART0_SRC2] = { | 82 | [DMACH_UART0_SRC2] = { |
97 | .name = "uart0", | 83 | .name = "uart0", |
98 | .channels = MAP(S3C2443_DMAREQSEL_UART0_1), | 84 | .channels = MAP(S3C2443_DMAREQSEL_UART0_1), |
99 | .hw_addr.to = S3C2410_PA_UART0 + S3C2410_UTXH, | ||
100 | .hw_addr.from = S3C2410_PA_UART0 + S3C2410_URXH, | ||
101 | }, | 85 | }, |
102 | [DMACH_UART1_SRC2] = { | 86 | [DMACH_UART1_SRC2] = { |
103 | .name = "uart1", | 87 | .name = "uart1", |
104 | .channels = MAP(S3C2443_DMAREQSEL_UART1_1), | 88 | .channels = MAP(S3C2443_DMAREQSEL_UART1_1), |
105 | .hw_addr.to = S3C2410_PA_UART1 + S3C2410_UTXH, | ||
106 | .hw_addr.from = S3C2410_PA_UART1 + S3C2410_URXH, | ||
107 | }, | 89 | }, |
108 | [DMACH_UART2_SRC2] = { | 90 | [DMACH_UART2_SRC2] = { |
109 | .name = "uart2", | 91 | .name = "uart2", |
110 | .channels = MAP(S3C2443_DMAREQSEL_UART2_1), | 92 | .channels = MAP(S3C2443_DMAREQSEL_UART2_1), |
111 | .hw_addr.to = S3C2410_PA_UART2 + S3C2410_UTXH, | ||
112 | .hw_addr.from = S3C2410_PA_UART2 + S3C2410_URXH, | ||
113 | }, | 93 | }, |
114 | [DMACH_UART3_SRC2] = { | 94 | [DMACH_UART3_SRC2] = { |
115 | .name = "uart3", | 95 | .name = "uart3", |
116 | .channels = MAP(S3C2443_DMAREQSEL_UART3_1), | 96 | .channels = MAP(S3C2443_DMAREQSEL_UART3_1), |
117 | .hw_addr.to = S3C2443_PA_UART3 + S3C2410_UTXH, | ||
118 | .hw_addr.from = S3C2443_PA_UART3 + S3C2410_URXH, | ||
119 | }, | 97 | }, |
120 | [DMACH_TIMER] = { | 98 | [DMACH_TIMER] = { |
121 | .name = "timer", | 99 | .name = "timer", |
@@ -124,27 +102,22 @@ static struct s3c24xx_dma_map __initdata s3c2443_dma_mappings[] = { | |||
124 | [DMACH_I2S_IN] = { | 102 | [DMACH_I2S_IN] = { |
125 | .name = "i2s-sdi", | 103 | .name = "i2s-sdi", |
126 | .channels = MAP(S3C2443_DMAREQSEL_I2SRX), | 104 | .channels = MAP(S3C2443_DMAREQSEL_I2SRX), |
127 | .hw_addr.from = S3C2410_PA_IIS + S3C2410_IISFIFO, | ||
128 | }, | 105 | }, |
129 | [DMACH_I2S_OUT] = { | 106 | [DMACH_I2S_OUT] = { |
130 | .name = "i2s-sdo", | 107 | .name = "i2s-sdo", |
131 | .channels = MAP(S3C2443_DMAREQSEL_I2STX), | 108 | .channels = MAP(S3C2443_DMAREQSEL_I2STX), |
132 | .hw_addr.to = S3C2410_PA_IIS + S3C2410_IISFIFO, | ||
133 | }, | 109 | }, |
134 | [DMACH_PCM_IN] = { | 110 | [DMACH_PCM_IN] = { |
135 | .name = "pcm-in", | 111 | .name = "pcm-in", |
136 | .channels = MAP(S3C2443_DMAREQSEL_PCMIN), | 112 | .channels = MAP(S3C2443_DMAREQSEL_PCMIN), |
137 | .hw_addr.from = S3C2440_PA_AC97 + S3C_AC97_PCM_DATA, | ||
138 | }, | 113 | }, |
139 | [DMACH_PCM_OUT] = { | 114 | [DMACH_PCM_OUT] = { |
140 | .name = "pcm-out", | 115 | .name = "pcm-out", |
141 | .channels = MAP(S3C2443_DMAREQSEL_PCMOUT), | 116 | .channels = MAP(S3C2443_DMAREQSEL_PCMOUT), |
142 | .hw_addr.to = S3C2440_PA_AC97 + S3C_AC97_PCM_DATA, | ||
143 | }, | 117 | }, |
144 | [DMACH_MIC_IN] = { | 118 | [DMACH_MIC_IN] = { |
145 | .name = "mic-in", | 119 | .name = "mic-in", |
146 | .channels = MAP(S3C2443_DMAREQSEL_MICIN), | 120 | .channels = MAP(S3C2443_DMAREQSEL_MICIN), |
147 | .hw_addr.from = S3C2440_PA_AC97 + S3C_AC97_MIC_DATA, | ||
148 | }, | 121 | }, |
149 | }; | 122 | }; |
150 | 123 | ||
diff --git a/arch/arm/mach-s3c2443/mach-smdk2443.c b/arch/arm/mach-s3c2443/mach-smdk2443.c index 514275e43ca0..bec107e00441 100644 --- a/arch/arm/mach-s3c2443/mach-smdk2443.c +++ b/arch/arm/mach-s3c2443/mach-smdk2443.c | |||
@@ -139,7 +139,7 @@ static void __init smdk2443_machine_init(void) | |||
139 | 139 | ||
140 | MACHINE_START(SMDK2443, "SMDK2443") | 140 | MACHINE_START(SMDK2443, "SMDK2443") |
141 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ | 141 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ |
142 | .boot_params = S3C2410_SDRAM_PA + 0x100, | 142 | .atag_offset = 0x100, |
143 | 143 | ||
144 | .init_irq = s3c24xx_init_irq, | 144 | .init_irq = s3c24xx_init_irq, |
145 | .map_io = smdk2443_map_io, | 145 | .map_io = smdk2443_map_io, |
diff --git a/arch/arm/mach-s3c64xx/cpu.c b/arch/arm/mach-s3c64xx/cpu.c index 374e45e566b8..8dc05763a7eb 100644 --- a/arch/arm/mach-s3c64xx/cpu.c +++ b/arch/arm/mach-s3c64xx/cpu.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/serial_core.h> | 20 | #include <linux/serial_core.h> |
21 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
22 | #include <linux/io.h> | 22 | #include <linux/io.h> |
23 | #include <linux/dma-mapping.h> | ||
23 | 24 | ||
24 | #include <mach/hardware.h> | 25 | #include <mach/hardware.h> |
25 | #include <mach/map.h> | 26 | #include <mach/map.h> |
@@ -145,6 +146,7 @@ void __init s3c64xx_init_io(struct map_desc *mach_desc, int size) | |||
145 | /* initialise the io descriptors we need for initialisation */ | 146 | /* initialise the io descriptors we need for initialisation */ |
146 | iotable_init(s3c_iodesc, ARRAY_SIZE(s3c_iodesc)); | 147 | iotable_init(s3c_iodesc, ARRAY_SIZE(s3c_iodesc)); |
147 | iotable_init(mach_desc, size); | 148 | iotable_init(mach_desc, size); |
149 | init_consistent_dma_size(SZ_8M); | ||
148 | 150 | ||
149 | idcode = __raw_readl(S3C_VA_SYS + 0x118); | 151 | idcode = __raw_readl(S3C_VA_SYS + 0x118); |
150 | if (!idcode) { | 152 | if (!idcode) { |
diff --git a/arch/arm/mach-s3c64xx/include/mach/map.h b/arch/arm/mach-s3c64xx/include/mach/map.h index a1f13f02c841..23a1d71e4d53 100644 --- a/arch/arm/mach-s3c64xx/include/mach/map.h +++ b/arch/arm/mach-s3c64xx/include/mach/map.h | |||
@@ -16,6 +16,7 @@ | |||
16 | #define __ASM_ARCH_MAP_H __FILE__ | 16 | #define __ASM_ARCH_MAP_H __FILE__ |
17 | 17 | ||
18 | #include <plat/map-base.h> | 18 | #include <plat/map-base.h> |
19 | #include <plat/map-s3c.h> | ||
19 | 20 | ||
20 | /* | 21 | /* |
21 | * Post-mux Chip Select Regions Xm0CSn_ | 22 | * Post-mux Chip Select Regions Xm0CSn_ |
@@ -83,7 +84,6 @@ | |||
83 | #define S3C64XX_PA_IIC1 (0x7F00F000) | 84 | #define S3C64XX_PA_IIC1 (0x7F00F000) |
84 | 85 | ||
85 | #define S3C64XX_PA_GPIO (0x7F008000) | 86 | #define S3C64XX_PA_GPIO (0x7F008000) |
86 | #define S3C64XX_VA_GPIO S3C_ADDR_CPU(0x00000000) | ||
87 | #define S3C64XX_SZ_GPIO SZ_4K | 87 | #define S3C64XX_SZ_GPIO SZ_4K |
88 | 88 | ||
89 | #define S3C64XX_PA_SDRAM (0x50000000) | 89 | #define S3C64XX_PA_SDRAM (0x50000000) |
@@ -94,16 +94,10 @@ | |||
94 | #define S3C64XX_PA_VIC1 (0x71300000) | 94 | #define S3C64XX_PA_VIC1 (0x71300000) |
95 | 95 | ||
96 | #define S3C64XX_PA_MODEM (0x74108000) | 96 | #define S3C64XX_PA_MODEM (0x74108000) |
97 | #define S3C64XX_VA_MODEM S3C_ADDR_CPU(0x00100000) | ||
98 | 97 | ||
99 | #define S3C64XX_PA_USBHOST (0x74300000) | 98 | #define S3C64XX_PA_USBHOST (0x74300000) |
100 | 99 | ||
101 | #define S3C64XX_PA_USB_HSPHY (0x7C100000) | 100 | #define S3C64XX_PA_USB_HSPHY (0x7C100000) |
102 | #define S3C64XX_VA_USB_HSPHY S3C_ADDR_CPU(0x00200000) | ||
103 | |||
104 | /* place VICs close together */ | ||
105 | #define VA_VIC0 (S3C_VA_IRQ + 0x00) | ||
106 | #define VA_VIC1 (S3C_VA_IRQ + 0x10000) | ||
107 | 101 | ||
108 | /* compatibiltiy defines. */ | 102 | /* compatibiltiy defines. */ |
109 | #define S3C_PA_TIMER S3C64XX_PA_TIMER | 103 | #define S3C_PA_TIMER S3C64XX_PA_TIMER |
@@ -119,7 +113,6 @@ | |||
119 | #define S3C_PA_FB S3C64XX_PA_FB | 113 | #define S3C_PA_FB S3C64XX_PA_FB |
120 | #define S3C_PA_USBHOST S3C64XX_PA_USBHOST | 114 | #define S3C_PA_USBHOST S3C64XX_PA_USBHOST |
121 | #define S3C_PA_USB_HSOTG S3C64XX_PA_USB_HSOTG | 115 | #define S3C_PA_USB_HSOTG S3C64XX_PA_USB_HSOTG |
122 | #define S3C_VA_USB_HSPHY S3C64XX_VA_USB_HSPHY | ||
123 | #define S3C_PA_RTC S3C64XX_PA_RTC | 116 | #define S3C_PA_RTC S3C64XX_PA_RTC |
124 | #define S3C_PA_WDT S3C64XX_PA_WATCHDOG | 117 | #define S3C_PA_WDT S3C64XX_PA_WATCHDOG |
125 | 118 | ||
diff --git a/arch/arm/mach-s3c64xx/include/mach/memory.h b/arch/arm/mach-s3c64xx/include/mach/memory.h index 4760cdae1eb6..b704669f95ff 100644 --- a/arch/arm/mach-s3c64xx/include/mach/memory.h +++ b/arch/arm/mach-s3c64xx/include/mach/memory.h | |||
@@ -15,6 +15,4 @@ | |||
15 | 15 | ||
16 | #define PLAT_PHYS_OFFSET UL(0x50000000) | 16 | #define PLAT_PHYS_OFFSET UL(0x50000000) |
17 | 17 | ||
18 | #define CONSISTENT_DMA_SIZE SZ_8M | ||
19 | |||
20 | #endif | 18 | #endif |
diff --git a/arch/arm/mach-s3c64xx/mach-anw6410.c b/arch/arm/mach-s3c64xx/mach-anw6410.c index cb8864327ac4..d164a282bfb4 100644 --- a/arch/arm/mach-s3c64xx/mach-anw6410.c +++ b/arch/arm/mach-s3c64xx/mach-anw6410.c | |||
@@ -233,7 +233,7 @@ static void __init anw6410_machine_init(void) | |||
233 | 233 | ||
234 | MACHINE_START(ANW6410, "A&W6410") | 234 | MACHINE_START(ANW6410, "A&W6410") |
235 | /* Maintainer: Kwangwoo Lee <kwangwoo.lee@gmail.com> */ | 235 | /* Maintainer: Kwangwoo Lee <kwangwoo.lee@gmail.com> */ |
236 | .boot_params = S3C64XX_PA_SDRAM + 0x100, | 236 | .atag_offset = 0x100, |
237 | 237 | ||
238 | .init_irq = s3c6410_init_irq, | 238 | .init_irq = s3c6410_init_irq, |
239 | .map_io = anw6410_map_io, | 239 | .map_io = anw6410_map_io, |
diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c b/arch/arm/mach-s3c64xx/mach-crag6410.c index af0c2fe1ea37..806580388f30 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410.c | |||
@@ -329,9 +329,6 @@ static struct platform_device *crag6410_devices[] __initdata = { | |||
329 | &s3c_device_fb, | 329 | &s3c_device_fb, |
330 | &s3c_device_ohci, | 330 | &s3c_device_ohci, |
331 | &s3c_device_usb_hsotg, | 331 | &s3c_device_usb_hsotg, |
332 | &s3c_device_adc, | ||
333 | &s3c_device_rtc, | ||
334 | &s3c_device_ts, | ||
335 | &s3c_device_timer[0], | 332 | &s3c_device_timer[0], |
336 | &s3c64xx_device_iis0, | 333 | &s3c64xx_device_iis0, |
337 | &s3c64xx_device_iis1, | 334 | &s3c64xx_device_iis1, |
@@ -766,7 +763,7 @@ static void __init crag6410_machine_init(void) | |||
766 | 763 | ||
767 | MACHINE_START(WLF_CRAGG_6410, "Wolfson Cragganmore 6410") | 764 | MACHINE_START(WLF_CRAGG_6410, "Wolfson Cragganmore 6410") |
768 | /* Maintainer: Mark Brown <broonie@opensource.wolfsonmicro.com> */ | 765 | /* Maintainer: Mark Brown <broonie@opensource.wolfsonmicro.com> */ |
769 | .boot_params = S3C64XX_PA_SDRAM + 0x100, | 766 | .atag_offset = 0x100, |
770 | .init_irq = s3c6410_init_irq, | 767 | .init_irq = s3c6410_init_irq, |
771 | .map_io = crag6410_map_io, | 768 | .map_io = crag6410_map_io, |
772 | .init_machine = crag6410_machine_init, | 769 | .init_machine = crag6410_machine_init, |
diff --git a/arch/arm/mach-s3c64xx/mach-hmt.c b/arch/arm/mach-s3c64xx/mach-hmt.c index b3d93cc8dde0..19a0887e1c1e 100644 --- a/arch/arm/mach-s3c64xx/mach-hmt.c +++ b/arch/arm/mach-s3c64xx/mach-hmt.c | |||
@@ -265,7 +265,7 @@ static void __init hmt_machine_init(void) | |||
265 | 265 | ||
266 | MACHINE_START(HMT, "Airgoo-HMT") | 266 | MACHINE_START(HMT, "Airgoo-HMT") |
267 | /* Maintainer: Peter Korsgaard <jacmet@sunsite.dk> */ | 267 | /* Maintainer: Peter Korsgaard <jacmet@sunsite.dk> */ |
268 | .boot_params = S3C64XX_PA_SDRAM + 0x100, | 268 | .atag_offset = 0x100, |
269 | .init_irq = s3c6410_init_irq, | 269 | .init_irq = s3c6410_init_irq, |
270 | .map_io = hmt_map_io, | 270 | .map_io = hmt_map_io, |
271 | .init_machine = hmt_machine_init, | 271 | .init_machine = hmt_machine_init, |
diff --git a/arch/arm/mach-s3c64xx/mach-mini6410.c b/arch/arm/mach-s3c64xx/mach-mini6410.c index 527f49bd1b57..fb8969aa412e 100644 --- a/arch/arm/mach-s3c64xx/mach-mini6410.c +++ b/arch/arm/mach-s3c64xx/mach-mini6410.c | |||
@@ -205,12 +205,6 @@ static struct platform_device mini6410_lcd_powerdev = { | |||
205 | .dev.platform_data = &mini6410_lcd_power_data, | 205 | .dev.platform_data = &mini6410_lcd_power_data, |
206 | }; | 206 | }; |
207 | 207 | ||
208 | static struct s3c2410_ts_mach_info s3c_ts_platform __initdata = { | ||
209 | .delay = 10000, | ||
210 | .presc = 49, | ||
211 | .oversampling_shift = 2, | ||
212 | }; | ||
213 | |||
214 | static struct platform_device *mini6410_devices[] __initdata = { | 208 | static struct platform_device *mini6410_devices[] __initdata = { |
215 | &mini6410_device_eth, | 209 | &mini6410_device_eth, |
216 | &s3c_device_hsmmc0, | 210 | &s3c_device_hsmmc0, |
@@ -319,7 +313,7 @@ static void __init mini6410_machine_init(void) | |||
319 | 313 | ||
320 | s3c_nand_set_platdata(&mini6410_nand_info); | 314 | s3c_nand_set_platdata(&mini6410_nand_info); |
321 | s3c_fb_set_platdata(&mini6410_lcd_pdata); | 315 | s3c_fb_set_platdata(&mini6410_lcd_pdata); |
322 | s3c24xx_ts_set_platdata(&s3c_ts_platform); | 316 | s3c24xx_ts_set_platdata(NULL); |
323 | 317 | ||
324 | /* configure nCS1 width to 16 bits */ | 318 | /* configure nCS1 width to 16 bits */ |
325 | 319 | ||
@@ -349,7 +343,7 @@ static void __init mini6410_machine_init(void) | |||
349 | 343 | ||
350 | MACHINE_START(MINI6410, "MINI6410") | 344 | MACHINE_START(MINI6410, "MINI6410") |
351 | /* Maintainer: Darius Augulis <augulis.darius@gmail.com> */ | 345 | /* Maintainer: Darius Augulis <augulis.darius@gmail.com> */ |
352 | .boot_params = S3C64XX_PA_SDRAM + 0x100, | 346 | .atag_offset = 0x100, |
353 | .init_irq = s3c6410_init_irq, | 347 | .init_irq = s3c6410_init_irq, |
354 | .map_io = mini6410_map_io, | 348 | .map_io = mini6410_map_io, |
355 | .init_machine = mini6410_machine_init, | 349 | .init_machine = mini6410_machine_init, |
diff --git a/arch/arm/mach-s3c64xx/mach-ncp.c b/arch/arm/mach-s3c64xx/mach-ncp.c index 01c6857c5b63..c30f2e5e0d85 100644 --- a/arch/arm/mach-s3c64xx/mach-ncp.c +++ b/arch/arm/mach-s3c64xx/mach-ncp.c | |||
@@ -97,7 +97,7 @@ static void __init ncp_machine_init(void) | |||
97 | 97 | ||
98 | MACHINE_START(NCP, "NCP") | 98 | MACHINE_START(NCP, "NCP") |
99 | /* Maintainer: Samsung Electronics */ | 99 | /* Maintainer: Samsung Electronics */ |
100 | .boot_params = S3C64XX_PA_SDRAM + 0x100, | 100 | .atag_offset = 0x100, |
101 | .init_irq = s3c6410_init_irq, | 101 | .init_irq = s3c6410_init_irq, |
102 | .map_io = ncp_map_io, | 102 | .map_io = ncp_map_io, |
103 | .init_machine = ncp_machine_init, | 103 | .init_machine = ncp_machine_init, |
diff --git a/arch/arm/mach-s3c64xx/mach-real6410.c b/arch/arm/mach-s3c64xx/mach-real6410.c index 95b04b1729e3..93170d4834e7 100644 --- a/arch/arm/mach-s3c64xx/mach-real6410.c +++ b/arch/arm/mach-s3c64xx/mach-real6410.c | |||
@@ -198,12 +198,6 @@ static struct platform_device *real6410_devices[] __initdata = { | |||
198 | &s3c_device_ohci, | 198 | &s3c_device_ohci, |
199 | }; | 199 | }; |
200 | 200 | ||
201 | static struct s3c2410_ts_mach_info s3c_ts_platform __initdata = { | ||
202 | .delay = 10000, | ||
203 | .presc = 49, | ||
204 | .oversampling_shift = 2, | ||
205 | }; | ||
206 | |||
207 | static void __init real6410_map_io(void) | 201 | static void __init real6410_map_io(void) |
208 | { | 202 | { |
209 | u32 tmp; | 203 | u32 tmp; |
@@ -300,7 +294,7 @@ static void __init real6410_machine_init(void) | |||
300 | 294 | ||
301 | s3c_fb_set_platdata(&real6410_lcd_pdata); | 295 | s3c_fb_set_platdata(&real6410_lcd_pdata); |
302 | s3c_nand_set_platdata(&real6410_nand_info); | 296 | s3c_nand_set_platdata(&real6410_nand_info); |
303 | s3c24xx_ts_set_platdata(&s3c_ts_platform); | 297 | s3c24xx_ts_set_platdata(NULL); |
304 | 298 | ||
305 | /* configure nCS1 width to 16 bits */ | 299 | /* configure nCS1 width to 16 bits */ |
306 | 300 | ||
@@ -329,7 +323,7 @@ static void __init real6410_machine_init(void) | |||
329 | 323 | ||
330 | MACHINE_START(REAL6410, "REAL6410") | 324 | MACHINE_START(REAL6410, "REAL6410") |
331 | /* Maintainer: Darius Augulis <augulis.darius@gmail.com> */ | 325 | /* Maintainer: Darius Augulis <augulis.darius@gmail.com> */ |
332 | .boot_params = S3C64XX_PA_SDRAM + 0x100, | 326 | .atag_offset = 0x100, |
333 | 327 | ||
334 | .init_irq = s3c6410_init_irq, | 328 | .init_irq = s3c6410_init_irq, |
335 | .map_io = real6410_map_io, | 329 | .map_io = real6410_map_io, |
diff --git a/arch/arm/mach-s3c64xx/mach-smartq5.c b/arch/arm/mach-s3c64xx/mach-smartq5.c index 342e8dfddf8b..cbb57ded3d95 100644 --- a/arch/arm/mach-s3c64xx/mach-smartq5.c +++ b/arch/arm/mach-s3c64xx/mach-smartq5.c | |||
@@ -146,7 +146,7 @@ static void __init smartq5_machine_init(void) | |||
146 | 146 | ||
147 | MACHINE_START(SMARTQ5, "SmartQ 5") | 147 | MACHINE_START(SMARTQ5, "SmartQ 5") |
148 | /* Maintainer: Maurus Cuelenaere <mcuelenaere AT gmail DOT com> */ | 148 | /* Maintainer: Maurus Cuelenaere <mcuelenaere AT gmail DOT com> */ |
149 | .boot_params = S3C64XX_PA_SDRAM + 0x100, | 149 | .atag_offset = 0x100, |
150 | .init_irq = s3c6410_init_irq, | 150 | .init_irq = s3c6410_init_irq, |
151 | .map_io = smartq_map_io, | 151 | .map_io = smartq_map_io, |
152 | .init_machine = smartq5_machine_init, | 152 | .init_machine = smartq5_machine_init, |
diff --git a/arch/arm/mach-s3c64xx/mach-smartq7.c b/arch/arm/mach-s3c64xx/mach-smartq7.c index 57963977da8e..04f914b85fdf 100644 --- a/arch/arm/mach-s3c64xx/mach-smartq7.c +++ b/arch/arm/mach-s3c64xx/mach-smartq7.c | |||
@@ -162,7 +162,7 @@ static void __init smartq7_machine_init(void) | |||
162 | 162 | ||
163 | MACHINE_START(SMARTQ7, "SmartQ 7") | 163 | MACHINE_START(SMARTQ7, "SmartQ 7") |
164 | /* Maintainer: Maurus Cuelenaere <mcuelenaere AT gmail DOT com> */ | 164 | /* Maintainer: Maurus Cuelenaere <mcuelenaere AT gmail DOT com> */ |
165 | .boot_params = S3C64XX_PA_SDRAM + 0x100, | 165 | .atag_offset = 0x100, |
166 | .init_irq = s3c6410_init_irq, | 166 | .init_irq = s3c6410_init_irq, |
167 | .map_io = smartq_map_io, | 167 | .map_io = smartq_map_io, |
168 | .init_machine = smartq7_machine_init, | 168 | .init_machine = smartq7_machine_init, |
diff --git a/arch/arm/mach-s3c64xx/mach-smdk6400.c b/arch/arm/mach-s3c64xx/mach-smdk6400.c index 3cca642f1e6d..6fd5e95f8f75 100644 --- a/arch/arm/mach-s3c64xx/mach-smdk6400.c +++ b/arch/arm/mach-s3c64xx/mach-smdk6400.c | |||
@@ -85,7 +85,7 @@ static void __init smdk6400_machine_init(void) | |||
85 | 85 | ||
86 | MACHINE_START(SMDK6400, "SMDK6400") | 86 | MACHINE_START(SMDK6400, "SMDK6400") |
87 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ | 87 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ |
88 | .boot_params = S3C64XX_PA_SDRAM + 0x100, | 88 | .atag_offset = 0x100, |
89 | 89 | ||
90 | .init_irq = s3c6400_init_irq, | 90 | .init_irq = s3c6400_init_irq, |
91 | .map_io = smdk6400_map_io, | 91 | .map_io = smdk6400_map_io, |
diff --git a/arch/arm/mach-s3c64xx/mach-smdk6410.c b/arch/arm/mach-s3c64xx/mach-smdk6410.c index a9f3183e0290..5f147c33edad 100644 --- a/arch/arm/mach-s3c64xx/mach-smdk6410.c +++ b/arch/arm/mach-s3c64xx/mach-smdk6410.c | |||
@@ -619,12 +619,6 @@ static struct i2c_board_info i2c_devs1[] __initdata = { | |||
619 | { I2C_BOARD_INFO("24c128", 0x57), }, /* Samsung S524AD0XD1 */ | 619 | { I2C_BOARD_INFO("24c128", 0x57), }, /* Samsung S524AD0XD1 */ |
620 | }; | 620 | }; |
621 | 621 | ||
622 | static struct s3c2410_ts_mach_info s3c_ts_platform __initdata = { | ||
623 | .delay = 10000, | ||
624 | .presc = 49, | ||
625 | .oversampling_shift = 2, | ||
626 | }; | ||
627 | |||
628 | /* LCD Backlight data */ | 622 | /* LCD Backlight data */ |
629 | static struct samsung_bl_gpio_info smdk6410_bl_gpio_info = { | 623 | static struct samsung_bl_gpio_info smdk6410_bl_gpio_info = { |
630 | .no = S3C64XX_GPF(15), | 624 | .no = S3C64XX_GPF(15), |
@@ -666,7 +660,7 @@ static void __init smdk6410_machine_init(void) | |||
666 | 660 | ||
667 | samsung_keypad_set_platdata(&smdk6410_keypad_data); | 661 | samsung_keypad_set_platdata(&smdk6410_keypad_data); |
668 | 662 | ||
669 | s3c24xx_ts_set_platdata(&s3c_ts_platform); | 663 | s3c24xx_ts_set_platdata(NULL); |
670 | 664 | ||
671 | /* configure nCS1 width to 16 bits */ | 665 | /* configure nCS1 width to 16 bits */ |
672 | 666 | ||
@@ -703,7 +697,7 @@ static void __init smdk6410_machine_init(void) | |||
703 | 697 | ||
704 | MACHINE_START(SMDK6410, "SMDK6410") | 698 | MACHINE_START(SMDK6410, "SMDK6410") |
705 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ | 699 | /* Maintainer: Ben Dooks <ben-linux@fluff.org> */ |
706 | .boot_params = S3C64XX_PA_SDRAM + 0x100, | 700 | .atag_offset = 0x100, |
707 | 701 | ||
708 | .init_irq = s3c6410_init_irq, | 702 | .init_irq = s3c6410_init_irq, |
709 | .map_io = smdk6410_map_io, | 703 | .map_io = smdk6410_map_io, |
diff --git a/arch/arm/mach-s5p64x0/cpu.c b/arch/arm/mach-s5p64x0/cpu.c index a5c00952ea35..8a938542c54d 100644 --- a/arch/arm/mach-s5p64x0/cpu.c +++ b/arch/arm/mach-s5p64x0/cpu.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/serial_core.h> | 20 | #include <linux/serial_core.h> |
21 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
22 | #include <linux/sched.h> | 22 | #include <linux/sched.h> |
23 | #include <linux/dma-mapping.h> | ||
23 | 24 | ||
24 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
25 | #include <asm/mach/map.h> | 26 | #include <asm/mach/map.h> |
@@ -111,6 +112,7 @@ void __init s5p6440_map_io(void) | |||
111 | 112 | ||
112 | iotable_init(s5p64x0_iodesc, ARRAY_SIZE(s5p64x0_iodesc)); | 113 | iotable_init(s5p64x0_iodesc, ARRAY_SIZE(s5p64x0_iodesc)); |
113 | iotable_init(s5p6440_iodesc, ARRAY_SIZE(s5p6440_iodesc)); | 114 | iotable_init(s5p6440_iodesc, ARRAY_SIZE(s5p6440_iodesc)); |
115 | init_consistent_dma_size(SZ_8M); | ||
114 | } | 116 | } |
115 | 117 | ||
116 | void __init s5p6450_map_io(void) | 118 | void __init s5p6450_map_io(void) |
@@ -120,6 +122,7 @@ void __init s5p6450_map_io(void) | |||
120 | 122 | ||
121 | iotable_init(s5p64x0_iodesc, ARRAY_SIZE(s5p64x0_iodesc)); | 123 | iotable_init(s5p64x0_iodesc, ARRAY_SIZE(s5p64x0_iodesc)); |
122 | iotable_init(s5p6450_iodesc, ARRAY_SIZE(s5p6450_iodesc)); | 124 | iotable_init(s5p6450_iodesc, ARRAY_SIZE(s5p6450_iodesc)); |
125 | init_consistent_dma_size(SZ_8M); | ||
123 | } | 126 | } |
124 | 127 | ||
125 | /* | 128 | /* |
diff --git a/arch/arm/mach-s5p64x0/include/mach/memory.h b/arch/arm/mach-s5p64x0/include/mach/memory.h index 365a6eb4b88f..b14cbc3f521b 100644 --- a/arch/arm/mach-s5p64x0/include/mach/memory.h +++ b/arch/arm/mach-s5p64x0/include/mach/memory.h | |||
@@ -14,6 +14,5 @@ | |||
14 | #define __ASM_ARCH_MEMORY_H __FILE__ | 14 | #define __ASM_ARCH_MEMORY_H __FILE__ |
15 | 15 | ||
16 | #define PLAT_PHYS_OFFSET UL(0x20000000) | 16 | #define PLAT_PHYS_OFFSET UL(0x20000000) |
17 | #define CONSISTENT_DMA_SIZE SZ_8M | ||
18 | 17 | ||
19 | #endif /* __ASM_ARCH_MEMORY_H */ | 18 | #endif /* __ASM_ARCH_MEMORY_H */ |
diff --git a/arch/arm/mach-s5p64x0/mach-smdk6440.c b/arch/arm/mach-s5p64x0/mach-smdk6440.c index 346f8dfa6f35..88857f5a49f7 100644 --- a/arch/arm/mach-s5p64x0/mach-smdk6440.c +++ b/arch/arm/mach-s5p64x0/mach-smdk6440.c | |||
@@ -129,12 +129,6 @@ static struct i2c_board_info smdk6440_i2c_devs1[] __initdata = { | |||
129 | /* To be populated */ | 129 | /* To be populated */ |
130 | }; | 130 | }; |
131 | 131 | ||
132 | static struct s3c2410_ts_mach_info s3c_ts_platform __initdata = { | ||
133 | .delay = 10000, | ||
134 | .presc = 49, | ||
135 | .oversampling_shift = 2, | ||
136 | }; | ||
137 | |||
138 | /* LCD Backlight data */ | 132 | /* LCD Backlight data */ |
139 | static struct samsung_bl_gpio_info smdk6440_bl_gpio_info = { | 133 | static struct samsung_bl_gpio_info smdk6440_bl_gpio_info = { |
140 | .no = S5P6440_GPF(15), | 134 | .no = S5P6440_GPF(15), |
@@ -155,7 +149,7 @@ static void __init smdk6440_map_io(void) | |||
155 | 149 | ||
156 | static void __init smdk6440_machine_init(void) | 150 | static void __init smdk6440_machine_init(void) |
157 | { | 151 | { |
158 | s3c24xx_ts_set_platdata(&s3c_ts_platform); | 152 | s3c24xx_ts_set_platdata(NULL); |
159 | 153 | ||
160 | s3c_i2c0_set_platdata(&s5p6440_i2c0_data); | 154 | s3c_i2c0_set_platdata(&s5p6440_i2c0_data); |
161 | s3c_i2c1_set_platdata(&s5p6440_i2c1_data); | 155 | s3c_i2c1_set_platdata(&s5p6440_i2c1_data); |
@@ -171,7 +165,7 @@ static void __init smdk6440_machine_init(void) | |||
171 | 165 | ||
172 | MACHINE_START(SMDK6440, "SMDK6440") | 166 | MACHINE_START(SMDK6440, "SMDK6440") |
173 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | 167 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ |
174 | .boot_params = S5P64X0_PA_SDRAM + 0x100, | 168 | .atag_offset = 0x100, |
175 | 169 | ||
176 | .init_irq = s5p6440_init_irq, | 170 | .init_irq = s5p6440_init_irq, |
177 | .map_io = smdk6440_map_io, | 171 | .map_io = smdk6440_map_io, |
diff --git a/arch/arm/mach-s5p64x0/mach-smdk6450.c b/arch/arm/mach-s5p64x0/mach-smdk6450.c index 33f2adf8f3fe..e1b277b94610 100644 --- a/arch/arm/mach-s5p64x0/mach-smdk6450.c +++ b/arch/arm/mach-s5p64x0/mach-smdk6450.c | |||
@@ -148,12 +148,6 @@ static struct i2c_board_info smdk6450_i2c_devs1[] __initdata = { | |||
148 | { I2C_BOARD_INFO("24c128", 0x57), },/* Samsung S524AD0XD1 EEPROM */ | 148 | { I2C_BOARD_INFO("24c128", 0x57), },/* Samsung S524AD0XD1 EEPROM */ |
149 | }; | 149 | }; |
150 | 150 | ||
151 | static struct s3c2410_ts_mach_info s3c_ts_platform __initdata = { | ||
152 | .delay = 10000, | ||
153 | .presc = 49, | ||
154 | .oversampling_shift = 2, | ||
155 | }; | ||
156 | |||
157 | /* LCD Backlight data */ | 151 | /* LCD Backlight data */ |
158 | static struct samsung_bl_gpio_info smdk6450_bl_gpio_info = { | 152 | static struct samsung_bl_gpio_info smdk6450_bl_gpio_info = { |
159 | .no = S5P6450_GPF(15), | 153 | .no = S5P6450_GPF(15), |
@@ -174,7 +168,7 @@ static void __init smdk6450_map_io(void) | |||
174 | 168 | ||
175 | static void __init smdk6450_machine_init(void) | 169 | static void __init smdk6450_machine_init(void) |
176 | { | 170 | { |
177 | s3c24xx_ts_set_platdata(&s3c_ts_platform); | 171 | s3c24xx_ts_set_platdata(NULL); |
178 | 172 | ||
179 | s3c_i2c0_set_platdata(&s5p6450_i2c0_data); | 173 | s3c_i2c0_set_platdata(&s5p6450_i2c0_data); |
180 | s3c_i2c1_set_platdata(&s5p6450_i2c1_data); | 174 | s3c_i2c1_set_platdata(&s5p6450_i2c1_data); |
@@ -190,7 +184,7 @@ static void __init smdk6450_machine_init(void) | |||
190 | 184 | ||
191 | MACHINE_START(SMDK6450, "SMDK6450") | 185 | MACHINE_START(SMDK6450, "SMDK6450") |
192 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | 186 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ |
193 | .boot_params = S5P64X0_PA_SDRAM + 0x100, | 187 | .atag_offset = 0x100, |
194 | 188 | ||
195 | .init_irq = s5p6450_init_irq, | 189 | .init_irq = s5p6450_init_irq, |
196 | .map_io = smdk6450_map_io, | 190 | .map_io = smdk6450_map_io, |
diff --git a/arch/arm/mach-s5pc100/mach-smdkc100.c b/arch/arm/mach-s5pc100/mach-smdkc100.c index 227d8908aab6..26f5c91c9427 100644 --- a/arch/arm/mach-s5pc100/mach-smdkc100.c +++ b/arch/arm/mach-s5pc100/mach-smdkc100.c | |||
@@ -203,12 +203,6 @@ static struct platform_device *smdkc100_devices[] __initdata = { | |||
203 | &s5pc100_device_spdif, | 203 | &s5pc100_device_spdif, |
204 | }; | 204 | }; |
205 | 205 | ||
206 | static struct s3c2410_ts_mach_info s3c_ts_platform __initdata = { | ||
207 | .delay = 10000, | ||
208 | .presc = 49, | ||
209 | .oversampling_shift = 2, | ||
210 | }; | ||
211 | |||
212 | /* LCD Backlight data */ | 206 | /* LCD Backlight data */ |
213 | static struct samsung_bl_gpio_info smdkc100_bl_gpio_info = { | 207 | static struct samsung_bl_gpio_info smdkc100_bl_gpio_info = { |
214 | .no = S5PC100_GPD(0), | 208 | .no = S5PC100_GPD(0), |
@@ -228,7 +222,7 @@ static void __init smdkc100_map_io(void) | |||
228 | 222 | ||
229 | static void __init smdkc100_machine_init(void) | 223 | static void __init smdkc100_machine_init(void) |
230 | { | 224 | { |
231 | s3c24xx_ts_set_platdata(&s3c_ts_platform); | 225 | s3c24xx_ts_set_platdata(NULL); |
232 | 226 | ||
233 | /* I2C */ | 227 | /* I2C */ |
234 | s3c_i2c0_set_platdata(NULL); | 228 | s3c_i2c0_set_platdata(NULL); |
@@ -254,7 +248,7 @@ static void __init smdkc100_machine_init(void) | |||
254 | 248 | ||
255 | MACHINE_START(SMDKC100, "SMDKC100") | 249 | MACHINE_START(SMDKC100, "SMDKC100") |
256 | /* Maintainer: Byungho Min <bhmin@samsung.com> */ | 250 | /* Maintainer: Byungho Min <bhmin@samsung.com> */ |
257 | .boot_params = S5P_PA_SDRAM + 0x100, | 251 | .atag_offset = 0x100, |
258 | .init_irq = s5pc100_init_irq, | 252 | .init_irq = s5pc100_init_irq, |
259 | .map_io = smdkc100_map_io, | 253 | .map_io = smdkc100_map_io, |
260 | .init_machine = smdkc100_machine_init, | 254 | .init_machine = smdkc100_machine_init, |
diff --git a/arch/arm/mach-s5pv210/Kconfig b/arch/arm/mach-s5pv210/Kconfig index 69dd87cd8e22..aaeb44a73716 100644 --- a/arch/arm/mach-s5pv210/Kconfig +++ b/arch/arm/mach-s5pv210/Kconfig | |||
@@ -14,7 +14,6 @@ config CPU_S5PV210 | |||
14 | select S3C_PL330_DMA | 14 | select S3C_PL330_DMA |
15 | select S5P_EXT_INT | 15 | select S5P_EXT_INT |
16 | select S5P_HRT | 16 | select S5P_HRT |
17 | select S5PV210_PM if PM | ||
18 | help | 17 | help |
19 | Enable S5PV210 CPU support | 18 | Enable S5PV210 CPU support |
20 | 19 | ||
@@ -169,9 +168,4 @@ config MACH_TORBRECK | |||
169 | 168 | ||
170 | endmenu | 169 | endmenu |
171 | 170 | ||
172 | config S5PV210_PM | ||
173 | bool | ||
174 | help | ||
175 | Power Management code common to S5PV210 | ||
176 | |||
177 | endif | 171 | endif |
diff --git a/arch/arm/mach-s5pv210/Makefile b/arch/arm/mach-s5pv210/Makefile index 599a3c0e8f6c..ef7e4668d670 100644 --- a/arch/arm/mach-s5pv210/Makefile +++ b/arch/arm/mach-s5pv210/Makefile | |||
@@ -14,7 +14,7 @@ obj- := | |||
14 | 14 | ||
15 | obj-$(CONFIG_CPU_S5PV210) += cpu.o init.o clock.o dma.o | 15 | obj-$(CONFIG_CPU_S5PV210) += cpu.o init.o clock.o dma.o |
16 | obj-$(CONFIG_CPU_S5PV210) += setup-i2c0.o | 16 | obj-$(CONFIG_CPU_S5PV210) += setup-i2c0.o |
17 | obj-$(CONFIG_S5PV210_PM) += pm.o sleep.o | 17 | obj-$(CONFIG_PM) += pm.o sleep.o |
18 | 18 | ||
19 | # machine support | 19 | # machine support |
20 | 20 | ||
diff --git a/arch/arm/mach-s5pv210/cpu.c b/arch/arm/mach-s5pv210/cpu.c index 79907ec78d43..91145720822c 100644 --- a/arch/arm/mach-s5pv210/cpu.c +++ b/arch/arm/mach-s5pv210/cpu.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/sysdev.h> | 20 | #include <linux/sysdev.h> |
21 | #include <linux/platform_device.h> | 21 | #include <linux/platform_device.h> |
22 | #include <linux/sched.h> | 22 | #include <linux/sched.h> |
23 | #include <linux/dma-mapping.h> | ||
23 | 24 | ||
24 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
25 | #include <asm/mach/map.h> | 26 | #include <asm/mach/map.h> |
@@ -119,6 +120,7 @@ static void s5pv210_sw_reset(void) | |||
119 | void __init s5pv210_map_io(void) | 120 | void __init s5pv210_map_io(void) |
120 | { | 121 | { |
121 | iotable_init(s5pv210_iodesc, ARRAY_SIZE(s5pv210_iodesc)); | 122 | iotable_init(s5pv210_iodesc, ARRAY_SIZE(s5pv210_iodesc)); |
123 | init_consistent_dma_size(14 << 20); | ||
122 | 124 | ||
123 | /* initialise device information early */ | 125 | /* initialise device information early */ |
124 | s5pv210_default_sdhci0(); | 126 | s5pv210_default_sdhci0(); |
diff --git a/arch/arm/mach-s5pv210/include/mach/memory.h b/arch/arm/mach-s5pv210/include/mach/memory.h index 7b5fcf0da0c4..2d3cfa221d5f 100644 --- a/arch/arm/mach-s5pv210/include/mach/memory.h +++ b/arch/arm/mach-s5pv210/include/mach/memory.h | |||
@@ -14,7 +14,6 @@ | |||
14 | #define __ASM_ARCH_MEMORY_H | 14 | #define __ASM_ARCH_MEMORY_H |
15 | 15 | ||
16 | #define PLAT_PHYS_OFFSET UL(0x20000000) | 16 | #define PLAT_PHYS_OFFSET UL(0x20000000) |
17 | #define CONSISTENT_DMA_SIZE (SZ_8M + SZ_4M + SZ_2M) | ||
18 | 17 | ||
19 | /* | 18 | /* |
20 | * Sparsemem support | 19 | * Sparsemem support |
diff --git a/arch/arm/mach-s5pv210/mach-aquila.c b/arch/arm/mach-s5pv210/mach-aquila.c index 509627f25111..5811a96125f0 100644 --- a/arch/arm/mach-s5pv210/mach-aquila.c +++ b/arch/arm/mach-s5pv210/mach-aquila.c | |||
@@ -678,7 +678,7 @@ MACHINE_START(AQUILA, "Aquila") | |||
678 | /* Maintainers: | 678 | /* Maintainers: |
679 | Marek Szyprowski <m.szyprowski@samsung.com> | 679 | Marek Szyprowski <m.szyprowski@samsung.com> |
680 | Kyungmin Park <kyungmin.park@samsung.com> */ | 680 | Kyungmin Park <kyungmin.park@samsung.com> */ |
681 | .boot_params = S5P_PA_SDRAM + 0x100, | 681 | .atag_offset = 0x100, |
682 | .init_irq = s5pv210_init_irq, | 682 | .init_irq = s5pv210_init_irq, |
683 | .map_io = aquila_map_io, | 683 | .map_io = aquila_map_io, |
684 | .init_machine = aquila_machine_init, | 684 | .init_machine = aquila_machine_init, |
diff --git a/arch/arm/mach-s5pv210/mach-goni.c b/arch/arm/mach-s5pv210/mach-goni.c index 85c2d51a0956..061cc7e4f48c 100644 --- a/arch/arm/mach-s5pv210/mach-goni.c +++ b/arch/arm/mach-s5pv210/mach-goni.c | |||
@@ -897,7 +897,7 @@ static void __init goni_machine_init(void) | |||
897 | 897 | ||
898 | MACHINE_START(GONI, "GONI") | 898 | MACHINE_START(GONI, "GONI") |
899 | /* Maintainers: Kyungmin Park <kyungmin.park@samsung.com> */ | 899 | /* Maintainers: Kyungmin Park <kyungmin.park@samsung.com> */ |
900 | .boot_params = S5P_PA_SDRAM + 0x100, | 900 | .atag_offset = 0x100, |
901 | .init_irq = s5pv210_init_irq, | 901 | .init_irq = s5pv210_init_irq, |
902 | .map_io = goni_map_io, | 902 | .map_io = goni_map_io, |
903 | .init_machine = goni_machine_init, | 903 | .init_machine = goni_machine_init, |
diff --git a/arch/arm/mach-s5pv210/mach-smdkc110.c b/arch/arm/mach-s5pv210/mach-smdkc110.c index 6c412c8ceccc..f7266bb0cac8 100644 --- a/arch/arm/mach-s5pv210/mach-smdkc110.c +++ b/arch/arm/mach-s5pv210/mach-smdkc110.c | |||
@@ -136,7 +136,7 @@ static void __init smdkc110_machine_init(void) | |||
136 | 136 | ||
137 | MACHINE_START(SMDKC110, "SMDKC110") | 137 | MACHINE_START(SMDKC110, "SMDKC110") |
138 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | 138 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ |
139 | .boot_params = S5P_PA_SDRAM + 0x100, | 139 | .atag_offset = 0x100, |
140 | .init_irq = s5pv210_init_irq, | 140 | .init_irq = s5pv210_init_irq, |
141 | .map_io = smdkc110_map_io, | 141 | .map_io = smdkc110_map_io, |
142 | .init_machine = smdkc110_machine_init, | 142 | .init_machine = smdkc110_machine_init, |
diff --git a/arch/arm/mach-s5pv210/mach-smdkv210.c b/arch/arm/mach-s5pv210/mach-smdkv210.c index 5e011fc6720d..a9106c392398 100644 --- a/arch/arm/mach-s5pv210/mach-smdkv210.c +++ b/arch/arm/mach-s5pv210/mach-smdkv210.c | |||
@@ -265,12 +265,6 @@ static struct i2c_board_info smdkv210_i2c_devs2[] __initdata = { | |||
265 | /* To Be Updated */ | 265 | /* To Be Updated */ |
266 | }; | 266 | }; |
267 | 267 | ||
268 | static struct s3c2410_ts_mach_info s3c_ts_platform __initdata = { | ||
269 | .delay = 10000, | ||
270 | .presc = 49, | ||
271 | .oversampling_shift = 2, | ||
272 | }; | ||
273 | |||
274 | /* LCD Backlight data */ | 268 | /* LCD Backlight data */ |
275 | static struct samsung_bl_gpio_info smdkv210_bl_gpio_info = { | 269 | static struct samsung_bl_gpio_info smdkv210_bl_gpio_info = { |
276 | .no = S5PV210_GPD0(3), | 270 | .no = S5PV210_GPD0(3), |
@@ -296,7 +290,7 @@ static void __init smdkv210_machine_init(void) | |||
296 | smdkv210_dm9000_init(); | 290 | smdkv210_dm9000_init(); |
297 | 291 | ||
298 | samsung_keypad_set_platdata(&smdkv210_keypad_data); | 292 | samsung_keypad_set_platdata(&smdkv210_keypad_data); |
299 | s3c24xx_ts_set_platdata(&s3c_ts_platform); | 293 | s3c24xx_ts_set_platdata(NULL); |
300 | 294 | ||
301 | s3c_i2c0_set_platdata(NULL); | 295 | s3c_i2c0_set_platdata(NULL); |
302 | s3c_i2c1_set_platdata(NULL); | 296 | s3c_i2c1_set_platdata(NULL); |
@@ -319,7 +313,7 @@ static void __init smdkv210_machine_init(void) | |||
319 | 313 | ||
320 | MACHINE_START(SMDKV210, "SMDKV210") | 314 | MACHINE_START(SMDKV210, "SMDKV210") |
321 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ | 315 | /* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */ |
322 | .boot_params = S5P_PA_SDRAM + 0x100, | 316 | .atag_offset = 0x100, |
323 | .init_irq = s5pv210_init_irq, | 317 | .init_irq = s5pv210_init_irq, |
324 | .map_io = smdkv210_map_io, | 318 | .map_io = smdkv210_map_io, |
325 | .init_machine = smdkv210_machine_init, | 319 | .init_machine = smdkv210_machine_init, |
diff --git a/arch/arm/mach-s5pv210/mach-torbreck.c b/arch/arm/mach-s5pv210/mach-torbreck.c index 925fc0dc6252..97cc066c5369 100644 --- a/arch/arm/mach-s5pv210/mach-torbreck.c +++ b/arch/arm/mach-s5pv210/mach-torbreck.c | |||
@@ -125,7 +125,7 @@ static void __init torbreck_machine_init(void) | |||
125 | 125 | ||
126 | MACHINE_START(TORBRECK, "TORBRECK") | 126 | MACHINE_START(TORBRECK, "TORBRECK") |
127 | /* Maintainer: Hyunchul Ko <ghcstop@gmail.com> */ | 127 | /* Maintainer: Hyunchul Ko <ghcstop@gmail.com> */ |
128 | .boot_params = S5P_PA_SDRAM + 0x100, | 128 | .atag_offset = 0x100, |
129 | .init_irq = s5pv210_init_irq, | 129 | .init_irq = s5pv210_init_irq, |
130 | .map_io = torbreck_map_io, | 130 | .map_io = torbreck_map_io, |
131 | .init_machine = torbreck_machine_init, | 131 | .init_machine = torbreck_machine_init, |
diff --git a/arch/arm/mach-sa1100/assabet.c b/arch/arm/mach-sa1100/assabet.c index 26257df19b63..d40da5f1f37b 100644 --- a/arch/arm/mach-sa1100/assabet.c +++ b/arch/arm/mach-sa1100/assabet.c | |||
@@ -447,7 +447,7 @@ static void __init assabet_map_io(void) | |||
447 | 447 | ||
448 | 448 | ||
449 | MACHINE_START(ASSABET, "Intel-Assabet") | 449 | MACHINE_START(ASSABET, "Intel-Assabet") |
450 | .boot_params = 0xc0000100, | 450 | .atag_offset = 0x100, |
451 | .fixup = fixup_assabet, | 451 | .fixup = fixup_assabet, |
452 | .map_io = assabet_map_io, | 452 | .map_io = assabet_map_io, |
453 | .init_irq = sa1100_init_irq, | 453 | .init_irq = sa1100_init_irq, |
diff --git a/arch/arm/mach-sa1100/badge4.c b/arch/arm/mach-sa1100/badge4.c index b4311b0a4395..bda83e1ab078 100644 --- a/arch/arm/mach-sa1100/badge4.c +++ b/arch/arm/mach-sa1100/badge4.c | |||
@@ -302,7 +302,7 @@ static void __init badge4_map_io(void) | |||
302 | } | 302 | } |
303 | 303 | ||
304 | MACHINE_START(BADGE4, "Hewlett-Packard Laboratories BadgePAD 4") | 304 | MACHINE_START(BADGE4, "Hewlett-Packard Laboratories BadgePAD 4") |
305 | .boot_params = 0xc0000100, | 305 | .atag_offset = 0x100, |
306 | .map_io = badge4_map_io, | 306 | .map_io = badge4_map_io, |
307 | .init_irq = sa1100_init_irq, | 307 | .init_irq = sa1100_init_irq, |
308 | .timer = &sa1100_timer, | 308 | .timer = &sa1100_timer, |
diff --git a/arch/arm/mach-sa1100/h3100.c b/arch/arm/mach-sa1100/h3100.c index 03d7376cf8a0..b30733a2b82e 100644 --- a/arch/arm/mach-sa1100/h3100.c +++ b/arch/arm/mach-sa1100/h3100.c | |||
@@ -84,7 +84,7 @@ static void __init h3100_mach_init(void) | |||
84 | } | 84 | } |
85 | 85 | ||
86 | MACHINE_START(H3100, "Compaq iPAQ H3100") | 86 | MACHINE_START(H3100, "Compaq iPAQ H3100") |
87 | .boot_params = 0xc0000100, | 87 | .atag_offset = 0x100, |
88 | .map_io = h3100_map_io, | 88 | .map_io = h3100_map_io, |
89 | .init_irq = sa1100_init_irq, | 89 | .init_irq = sa1100_init_irq, |
90 | .timer = &sa1100_timer, | 90 | .timer = &sa1100_timer, |
diff --git a/arch/arm/mach-sa1100/h3600.c b/arch/arm/mach-sa1100/h3600.c index 965f64a836f8..6fd324d92389 100644 --- a/arch/arm/mach-sa1100/h3600.c +++ b/arch/arm/mach-sa1100/h3600.c | |||
@@ -125,7 +125,7 @@ static void __init h3600_mach_init(void) | |||
125 | } | 125 | } |
126 | 126 | ||
127 | MACHINE_START(H3600, "Compaq iPAQ H3600") | 127 | MACHINE_START(H3600, "Compaq iPAQ H3600") |
128 | .boot_params = 0xc0000100, | 128 | .atag_offset = 0x100, |
129 | .map_io = h3600_map_io, | 129 | .map_io = h3600_map_io, |
130 | .init_irq = sa1100_init_irq, | 130 | .init_irq = sa1100_init_irq, |
131 | .timer = &sa1100_timer, | 131 | .timer = &sa1100_timer, |
diff --git a/arch/arm/mach-sa1100/hackkit.c b/arch/arm/mach-sa1100/hackkit.c index db5e434a17db..30f4a551b8e5 100644 --- a/arch/arm/mach-sa1100/hackkit.c +++ b/arch/arm/mach-sa1100/hackkit.c | |||
@@ -195,7 +195,7 @@ static void __init hackkit_init(void) | |||
195 | */ | 195 | */ |
196 | 196 | ||
197 | MACHINE_START(HACKKIT, "HackKit Cpu Board") | 197 | MACHINE_START(HACKKIT, "HackKit Cpu Board") |
198 | .boot_params = 0xc0000100, | 198 | .atag_offset = 0x100, |
199 | .map_io = hackkit_map_io, | 199 | .map_io = hackkit_map_io, |
200 | .init_irq = sa1100_init_irq, | 200 | .init_irq = sa1100_init_irq, |
201 | .timer = &sa1100_timer, | 201 | .timer = &sa1100_timer, |
diff --git a/arch/arm/mach-sa1100/jornada720.c b/arch/arm/mach-sa1100/jornada720.c index 176c066aec7e..0bb520d48ed0 100644 --- a/arch/arm/mach-sa1100/jornada720.c +++ b/arch/arm/mach-sa1100/jornada720.c | |||
@@ -364,7 +364,7 @@ static void __init jornada720_mach_init(void) | |||
364 | 364 | ||
365 | MACHINE_START(JORNADA720, "HP Jornada 720") | 365 | MACHINE_START(JORNADA720, "HP Jornada 720") |
366 | /* Maintainer: Kristoffer Ericson <Kristoffer.Ericson@gmail.com> */ | 366 | /* Maintainer: Kristoffer Ericson <Kristoffer.Ericson@gmail.com> */ |
367 | .boot_params = 0xc0000100, | 367 | .atag_offset = 0x100, |
368 | .map_io = jornada720_map_io, | 368 | .map_io = jornada720_map_io, |
369 | .init_irq = sa1100_init_irq, | 369 | .init_irq = sa1100_init_irq, |
370 | .timer = &sa1100_timer, | 370 | .timer = &sa1100_timer, |
diff --git a/arch/arm/mach-sa1100/lart.c b/arch/arm/mach-sa1100/lart.c index 7b9556b59057..5bc59d0947ba 100644 --- a/arch/arm/mach-sa1100/lart.c +++ b/arch/arm/mach-sa1100/lart.c | |||
@@ -61,7 +61,7 @@ static void __init lart_map_io(void) | |||
61 | } | 61 | } |
62 | 62 | ||
63 | MACHINE_START(LART, "LART") | 63 | MACHINE_START(LART, "LART") |
64 | .boot_params = 0xc0000100, | 64 | .atag_offset = 0x100, |
65 | .map_io = lart_map_io, | 65 | .map_io = lart_map_io, |
66 | .init_irq = sa1100_init_irq, | 66 | .init_irq = sa1100_init_irq, |
67 | .init_machine = lart_init, | 67 | .init_machine = lart_init, |
diff --git a/arch/arm/mach-sa1100/nanoengine.c b/arch/arm/mach-sa1100/nanoengine.c index 72087f0658b7..032f3881d145 100644 --- a/arch/arm/mach-sa1100/nanoengine.c +++ b/arch/arm/mach-sa1100/nanoengine.c | |||
@@ -111,7 +111,7 @@ static void __init nanoengine_init(void) | |||
111 | } | 111 | } |
112 | 112 | ||
113 | MACHINE_START(NANOENGINE, "BSE nanoEngine") | 113 | MACHINE_START(NANOENGINE, "BSE nanoEngine") |
114 | .boot_params = 0xc0000000, | 114 | .atag_offset = 0x100, |
115 | .map_io = nanoengine_map_io, | 115 | .map_io = nanoengine_map_io, |
116 | .init_irq = sa1100_init_irq, | 116 | .init_irq = sa1100_init_irq, |
117 | .timer = &sa1100_timer, | 117 | .timer = &sa1100_timer, |
diff --git a/arch/arm/mach-sa1100/shannon.c b/arch/arm/mach-sa1100/shannon.c index 7917b2405579..1cccbf5b9e9a 100644 --- a/arch/arm/mach-sa1100/shannon.c +++ b/arch/arm/mach-sa1100/shannon.c | |||
@@ -82,7 +82,7 @@ static void __init shannon_map_io(void) | |||
82 | } | 82 | } |
83 | 83 | ||
84 | MACHINE_START(SHANNON, "Shannon (AKA: Tuxscreen)") | 84 | MACHINE_START(SHANNON, "Shannon (AKA: Tuxscreen)") |
85 | .boot_params = 0xc0000100, | 85 | .atag_offset = 0x100, |
86 | .map_io = shannon_map_io, | 86 | .map_io = shannon_map_io, |
87 | .init_irq = sa1100_init_irq, | 87 | .init_irq = sa1100_init_irq, |
88 | .timer = &sa1100_timer, | 88 | .timer = &sa1100_timer, |
diff --git a/arch/arm/mach-sa1100/simpad.c b/arch/arm/mach-sa1100/simpad.c index cfb76077bd25..a1c2427655da 100644 --- a/arch/arm/mach-sa1100/simpad.c +++ b/arch/arm/mach-sa1100/simpad.c | |||
@@ -229,7 +229,7 @@ arch_initcall(simpad_init); | |||
229 | 229 | ||
230 | MACHINE_START(SIMPAD, "Simpad") | 230 | MACHINE_START(SIMPAD, "Simpad") |
231 | /* Maintainer: Holger Freyther */ | 231 | /* Maintainer: Holger Freyther */ |
232 | .boot_params = 0xc0000100, | 232 | .atag_offset = 0x100, |
233 | .map_io = simpad_map_io, | 233 | .map_io = simpad_map_io, |
234 | .init_irq = sa1100_init_irq, | 234 | .init_irq = sa1100_init_irq, |
235 | .timer = &sa1100_timer, | 235 | .timer = &sa1100_timer, |
diff --git a/arch/arm/mach-shark/core.c b/arch/arm/mach-shark/core.c index ac2873c8014b..feda3ca7fc95 100644 --- a/arch/arm/mach-shark/core.c +++ b/arch/arm/mach-shark/core.c | |||
@@ -152,7 +152,7 @@ static struct sys_timer shark_timer = { | |||
152 | 152 | ||
153 | MACHINE_START(SHARK, "Shark") | 153 | MACHINE_START(SHARK, "Shark") |
154 | /* Maintainer: Alexander Schulz */ | 154 | /* Maintainer: Alexander Schulz */ |
155 | .boot_params = 0x08003000, | 155 | .atag_offset = 0x3000, |
156 | .map_io = shark_map_io, | 156 | .map_io = shark_map_io, |
157 | .init_irq = shark_init_irq, | 157 | .init_irq = shark_init_irq, |
158 | .timer = &shark_timer, | 158 | .timer = &shark_timer, |
diff --git a/arch/arm/mach-shmobile/board-ag5evm.c b/arch/arm/mach-shmobile/board-ag5evm.c index cdfdd624d21d..5fde49da399a 100644 --- a/arch/arm/mach-shmobile/board-ag5evm.c +++ b/arch/arm/mach-shmobile/board-ag5evm.c | |||
@@ -37,6 +37,7 @@ | |||
37 | #include <linux/mmc/sh_mobile_sdhi.h> | 37 | #include <linux/mmc/sh_mobile_sdhi.h> |
38 | #include <linux/mfd/tmio.h> | 38 | #include <linux/mfd/tmio.h> |
39 | #include <linux/sh_clk.h> | 39 | #include <linux/sh_clk.h> |
40 | #include <linux/dma-mapping.h> | ||
40 | #include <video/sh_mobile_lcdc.h> | 41 | #include <video/sh_mobile_lcdc.h> |
41 | #include <video/sh_mipi_dsi.h> | 42 | #include <video/sh_mipi_dsi.h> |
42 | #include <sound/sh_fsi.h> | 43 | #include <sound/sh_fsi.h> |
@@ -447,6 +448,8 @@ static struct map_desc ag5evm_io_desc[] __initdata = { | |||
447 | static void __init ag5evm_map_io(void) | 448 | static void __init ag5evm_map_io(void) |
448 | { | 449 | { |
449 | iotable_init(ag5evm_io_desc, ARRAY_SIZE(ag5evm_io_desc)); | 450 | iotable_init(ag5evm_io_desc, ARRAY_SIZE(ag5evm_io_desc)); |
451 | /* DMA memory at 0xf6000000 - 0xffdfffff */ | ||
452 | init_consistent_dma_size(158 << 20); | ||
450 | 453 | ||
451 | /* setup early devices and console here as well */ | 454 | /* setup early devices and console here as well */ |
452 | sh73a0_add_early_devices(); | 455 | sh73a0_add_early_devices(); |
diff --git a/arch/arm/mach-shmobile/board-ap4evb.c b/arch/arm/mach-shmobile/board-ap4evb.c index 523f608eb8cf..b622d8d3ab72 100644 --- a/arch/arm/mach-shmobile/board-ap4evb.c +++ b/arch/arm/mach-shmobile/board-ap4evb.c | |||
@@ -42,6 +42,7 @@ | |||
42 | #include <linux/leds.h> | 42 | #include <linux/leds.h> |
43 | #include <linux/input/sh_keysc.h> | 43 | #include <linux/input/sh_keysc.h> |
44 | #include <linux/usb/r8a66597.h> | 44 | #include <linux/usb/r8a66597.h> |
45 | #include <linux/dma-mapping.h> | ||
45 | 46 | ||
46 | #include <media/sh_mobile_ceu.h> | 47 | #include <media/sh_mobile_ceu.h> |
47 | #include <media/sh_mobile_csi2.h> | 48 | #include <media/sh_mobile_csi2.h> |
@@ -1170,6 +1171,8 @@ static struct map_desc ap4evb_io_desc[] __initdata = { | |||
1170 | static void __init ap4evb_map_io(void) | 1171 | static void __init ap4evb_map_io(void) |
1171 | { | 1172 | { |
1172 | iotable_init(ap4evb_io_desc, ARRAY_SIZE(ap4evb_io_desc)); | 1173 | iotable_init(ap4evb_io_desc, ARRAY_SIZE(ap4evb_io_desc)); |
1174 | /* DMA memory at 0xf6000000 - 0xffdfffff */ | ||
1175 | init_consistent_dma_size(158 << 20); | ||
1173 | 1176 | ||
1174 | /* setup early devices and console here as well */ | 1177 | /* setup early devices and console here as well */ |
1175 | sh7372_add_early_devices(); | 1178 | sh7372_add_early_devices(); |
diff --git a/arch/arm/mach-shmobile/board-g3evm.c b/arch/arm/mach-shmobile/board-g3evm.c index ef4613b993a2..8b620bf06221 100644 --- a/arch/arm/mach-shmobile/board-g3evm.c +++ b/arch/arm/mach-shmobile/board-g3evm.c | |||
@@ -32,6 +32,7 @@ | |||
32 | #include <linux/gpio.h> | 32 | #include <linux/gpio.h> |
33 | #include <linux/input.h> | 33 | #include <linux/input.h> |
34 | #include <linux/input/sh_keysc.h> | 34 | #include <linux/input/sh_keysc.h> |
35 | #include <linux/dma-mapping.h> | ||
35 | #include <mach/sh7367.h> | 36 | #include <mach/sh7367.h> |
36 | #include <mach/common.h> | 37 | #include <mach/common.h> |
37 | #include <asm/mach-types.h> | 38 | #include <asm/mach-types.h> |
@@ -260,6 +261,8 @@ static struct map_desc g3evm_io_desc[] __initdata = { | |||
260 | static void __init g3evm_map_io(void) | 261 | static void __init g3evm_map_io(void) |
261 | { | 262 | { |
262 | iotable_init(g3evm_io_desc, ARRAY_SIZE(g3evm_io_desc)); | 263 | iotable_init(g3evm_io_desc, ARRAY_SIZE(g3evm_io_desc)); |
264 | /* DMA memory at 0xf6000000 - 0xffdfffff */ | ||
265 | init_consistent_dma_size(158 << 20); | ||
263 | 266 | ||
264 | /* setup early devices and console here as well */ | 267 | /* setup early devices and console here as well */ |
265 | sh7367_add_early_devices(); | 268 | sh7367_add_early_devices(); |
diff --git a/arch/arm/mach-shmobile/board-g4evm.c b/arch/arm/mach-shmobile/board-g4evm.c index 8e3c5559f27f..7719ddc5f591 100644 --- a/arch/arm/mach-shmobile/board-g4evm.c +++ b/arch/arm/mach-shmobile/board-g4evm.c | |||
@@ -33,6 +33,7 @@ | |||
33 | #include <linux/mmc/host.h> | 33 | #include <linux/mmc/host.h> |
34 | #include <linux/mmc/sh_mobile_sdhi.h> | 34 | #include <linux/mmc/sh_mobile_sdhi.h> |
35 | #include <linux/gpio.h> | 35 | #include <linux/gpio.h> |
36 | #include <linux/dma-mapping.h> | ||
36 | #include <mach/sh7377.h> | 37 | #include <mach/sh7377.h> |
37 | #include <mach/common.h> | 38 | #include <mach/common.h> |
38 | #include <asm/mach-types.h> | 39 | #include <asm/mach-types.h> |
@@ -274,6 +275,8 @@ static struct map_desc g4evm_io_desc[] __initdata = { | |||
274 | static void __init g4evm_map_io(void) | 275 | static void __init g4evm_map_io(void) |
275 | { | 276 | { |
276 | iotable_init(g4evm_io_desc, ARRAY_SIZE(g4evm_io_desc)); | 277 | iotable_init(g4evm_io_desc, ARRAY_SIZE(g4evm_io_desc)); |
278 | /* DMA memory at 0xf6000000 - 0xffdfffff */ | ||
279 | init_consistent_dma_size(158 << 20); | ||
277 | 280 | ||
278 | /* setup early devices and console here as well */ | 281 | /* setup early devices and console here as well */ |
279 | sh7377_add_early_devices(); | 282 | sh7377_add_early_devices(); |
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index 17c19dc25604..de2253d7f157 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c | |||
@@ -45,6 +45,7 @@ | |||
45 | #include <linux/tca6416_keypad.h> | 45 | #include <linux/tca6416_keypad.h> |
46 | #include <linux/usb/r8a66597.h> | 46 | #include <linux/usb/r8a66597.h> |
47 | #include <linux/usb/renesas_usbhs.h> | 47 | #include <linux/usb/renesas_usbhs.h> |
48 | #include <linux/dma-mapping.h> | ||
48 | 49 | ||
49 | #include <video/sh_mobile_hdmi.h> | 50 | #include <video/sh_mobile_hdmi.h> |
50 | #include <video/sh_mobile_lcdc.h> | 51 | #include <video/sh_mobile_lcdc.h> |
@@ -1381,6 +1382,8 @@ static struct map_desc mackerel_io_desc[] __initdata = { | |||
1381 | static void __init mackerel_map_io(void) | 1382 | static void __init mackerel_map_io(void) |
1382 | { | 1383 | { |
1383 | iotable_init(mackerel_io_desc, ARRAY_SIZE(mackerel_io_desc)); | 1384 | iotable_init(mackerel_io_desc, ARRAY_SIZE(mackerel_io_desc)); |
1385 | /* DMA memory at 0xf6000000 - 0xffdfffff */ | ||
1386 | init_consistent_dma_size(158 << 20); | ||
1384 | 1387 | ||
1385 | /* setup early devices and console here as well */ | 1388 | /* setup early devices and console here as well */ |
1386 | sh7372_add_early_devices(); | 1389 | sh7372_add_early_devices(); |
diff --git a/arch/arm/mach-shmobile/include/mach/memory.h b/arch/arm/mach-shmobile/include/mach/memory.h index ad00c3c258f4..0ffbe8155c76 100644 --- a/arch/arm/mach-shmobile/include/mach/memory.h +++ b/arch/arm/mach-shmobile/include/mach/memory.h | |||
@@ -4,7 +4,4 @@ | |||
4 | #define PLAT_PHYS_OFFSET UL(CONFIG_MEMORY_START) | 4 | #define PLAT_PHYS_OFFSET UL(CONFIG_MEMORY_START) |
5 | #define MEM_SIZE UL(CONFIG_MEMORY_SIZE) | 5 | #define MEM_SIZE UL(CONFIG_MEMORY_SIZE) |
6 | 6 | ||
7 | /* DMA memory at 0xf6000000 - 0xffdfffff */ | ||
8 | #define CONSISTENT_DMA_SIZE (158 << 20) | ||
9 | |||
10 | #endif /* __ASM_MACH_MEMORY_H */ | 7 | #endif /* __ASM_MACH_MEMORY_H */ |
diff --git a/arch/arm/mach-spear3xx/spear300_evb.c b/arch/arm/mach-spear3xx/spear300_evb.c index 69006f694220..a5ff98eed1db 100644 --- a/arch/arm/mach-spear3xx/spear300_evb.c +++ b/arch/arm/mach-spear3xx/spear300_evb.c | |||
@@ -64,7 +64,7 @@ static void __init spear300_evb_init(void) | |||
64 | } | 64 | } |
65 | 65 | ||
66 | MACHINE_START(SPEAR300, "ST-SPEAR300-EVB") | 66 | MACHINE_START(SPEAR300, "ST-SPEAR300-EVB") |
67 | .boot_params = 0x00000100, | 67 | .atag_offset = 0x100, |
68 | .map_io = spear3xx_map_io, | 68 | .map_io = spear3xx_map_io, |
69 | .init_irq = spear3xx_init_irq, | 69 | .init_irq = spear3xx_init_irq, |
70 | .timer = &spear3xx_timer, | 70 | .timer = &spear3xx_timer, |
diff --git a/arch/arm/mach-spear3xx/spear310_evb.c b/arch/arm/mach-spear3xx/spear310_evb.c index c8684ce1f9b3..45d180d59362 100644 --- a/arch/arm/mach-spear3xx/spear310_evb.c +++ b/arch/arm/mach-spear3xx/spear310_evb.c | |||
@@ -70,7 +70,7 @@ static void __init spear310_evb_init(void) | |||
70 | } | 70 | } |
71 | 71 | ||
72 | MACHINE_START(SPEAR310, "ST-SPEAR310-EVB") | 72 | MACHINE_START(SPEAR310, "ST-SPEAR310-EVB") |
73 | .boot_params = 0x00000100, | 73 | .atag_offset = 0x100, |
74 | .map_io = spear3xx_map_io, | 74 | .map_io = spear3xx_map_io, |
75 | .init_irq = spear3xx_init_irq, | 75 | .init_irq = spear3xx_init_irq, |
76 | .timer = &spear3xx_timer, | 76 | .timer = &spear3xx_timer, |
diff --git a/arch/arm/mach-spear3xx/spear320_evb.c b/arch/arm/mach-spear3xx/spear320_evb.c index a12b353940d6..22879848d73a 100644 --- a/arch/arm/mach-spear3xx/spear320_evb.c +++ b/arch/arm/mach-spear3xx/spear320_evb.c | |||
@@ -68,7 +68,7 @@ static void __init spear320_evb_init(void) | |||
68 | } | 68 | } |
69 | 69 | ||
70 | MACHINE_START(SPEAR320, "ST-SPEAR320-EVB") | 70 | MACHINE_START(SPEAR320, "ST-SPEAR320-EVB") |
71 | .boot_params = 0x00000100, | 71 | .atag_offset = 0x100, |
72 | .map_io = spear3xx_map_io, | 72 | .map_io = spear3xx_map_io, |
73 | .init_irq = spear3xx_init_irq, | 73 | .init_irq = spear3xx_init_irq, |
74 | .timer = &spear3xx_timer, | 74 | .timer = &spear3xx_timer, |
diff --git a/arch/arm/mach-spear6xx/spear600_evb.c b/arch/arm/mach-spear6xx/spear600_evb.c index f19cefe91a2b..8238fe38e713 100644 --- a/arch/arm/mach-spear6xx/spear600_evb.c +++ b/arch/arm/mach-spear6xx/spear600_evb.c | |||
@@ -43,7 +43,7 @@ static void __init spear600_evb_init(void) | |||
43 | } | 43 | } |
44 | 44 | ||
45 | MACHINE_START(SPEAR600, "ST-SPEAR600-EVB") | 45 | MACHINE_START(SPEAR600, "ST-SPEAR600-EVB") |
46 | .boot_params = 0x00000100, | 46 | .atag_offset = 0x100, |
47 | .map_io = spear6xx_map_io, | 47 | .map_io = spear6xx_map_io, |
48 | .init_irq = spear6xx_init_irq, | 48 | .init_irq = spear6xx_init_irq, |
49 | .timer = &spear6xx_timer, | 49 | .timer = &spear6xx_timer, |
diff --git a/arch/arm/mach-tcc8k/board-tcc8000-sdk.c b/arch/arm/mach-tcc8k/board-tcc8000-sdk.c index 4cb3c2dd905c..777a5bb9eed2 100644 --- a/arch/arm/mach-tcc8k/board-tcc8000-sdk.c +++ b/arch/arm/mach-tcc8k/board-tcc8000-sdk.c | |||
@@ -73,7 +73,7 @@ static void __init tcc8k_map_io(void) | |||
73 | } | 73 | } |
74 | 74 | ||
75 | MACHINE_START(TCC8000_SDK, "Telechips TCC8000-SDK Demo Board") | 75 | MACHINE_START(TCC8000_SDK, "Telechips TCC8000-SDK Demo Board") |
76 | .boot_params = PLAT_PHYS_OFFSET + 0x00000100, | 76 | .atag_offset = 0x100, |
77 | .map_io = tcc8k_map_io, | 77 | .map_io = tcc8k_map_io, |
78 | .init_irq = tcc8k_init_irq, | 78 | .init_irq = tcc8k_init_irq, |
79 | .init_machine = tcc8k_init, | 79 | .init_machine = tcc8k_init, |
diff --git a/arch/arm/mach-tegra/board-harmony.c b/arch/arm/mach-tegra/board-harmony.c index 846cd7d69e3e..a4d1980e697a 100644 --- a/arch/arm/mach-tegra/board-harmony.c +++ b/arch/arm/mach-tegra/board-harmony.c | |||
@@ -179,7 +179,7 @@ static void __init tegra_harmony_init(void) | |||
179 | } | 179 | } |
180 | 180 | ||
181 | MACHINE_START(HARMONY, "harmony") | 181 | MACHINE_START(HARMONY, "harmony") |
182 | .boot_params = 0x00000100, | 182 | .atag_offset = 0x100, |
183 | .fixup = tegra_harmony_fixup, | 183 | .fixup = tegra_harmony_fixup, |
184 | .map_io = tegra_map_common_io, | 184 | .map_io = tegra_map_common_io, |
185 | .init_early = tegra_init_early, | 185 | .init_early = tegra_init_early, |
diff --git a/arch/arm/mach-tegra/board-paz00.c b/arch/arm/mach-tegra/board-paz00.c index ea2f79c9879b..3197c4cbaa71 100644 --- a/arch/arm/mach-tegra/board-paz00.c +++ b/arch/arm/mach-tegra/board-paz00.c | |||
@@ -127,7 +127,7 @@ static void __init tegra_paz00_init(void) | |||
127 | } | 127 | } |
128 | 128 | ||
129 | MACHINE_START(PAZ00, "Toshiba AC100 / Dynabook AZ") | 129 | MACHINE_START(PAZ00, "Toshiba AC100 / Dynabook AZ") |
130 | .boot_params = 0x00000100, | 130 | .atag_offset = 0x100, |
131 | .fixup = tegra_paz00_fixup, | 131 | .fixup = tegra_paz00_fixup, |
132 | .map_io = tegra_map_common_io, | 132 | .map_io = tegra_map_common_io, |
133 | .init_early = tegra_init_early, | 133 | .init_early = tegra_init_early, |
diff --git a/arch/arm/mach-tegra/board-seaboard.c b/arch/arm/mach-tegra/board-seaboard.c index 56cbabf6aa68..9e98ac706f40 100644 --- a/arch/arm/mach-tegra/board-seaboard.c +++ b/arch/arm/mach-tegra/board-seaboard.c | |||
@@ -201,7 +201,7 @@ static void __init tegra_wario_init(void) | |||
201 | 201 | ||
202 | 202 | ||
203 | MACHINE_START(SEABOARD, "seaboard") | 203 | MACHINE_START(SEABOARD, "seaboard") |
204 | .boot_params = 0x00000100, | 204 | .atag_offset = 0x100, |
205 | .map_io = tegra_map_common_io, | 205 | .map_io = tegra_map_common_io, |
206 | .init_early = tegra_init_early, | 206 | .init_early = tegra_init_early, |
207 | .init_irq = tegra_init_irq, | 207 | .init_irq = tegra_init_irq, |
@@ -210,7 +210,7 @@ MACHINE_START(SEABOARD, "seaboard") | |||
210 | MACHINE_END | 210 | MACHINE_END |
211 | 211 | ||
212 | MACHINE_START(KAEN, "kaen") | 212 | MACHINE_START(KAEN, "kaen") |
213 | .boot_params = 0x00000100, | 213 | .atag_offset = 0x100, |
214 | .map_io = tegra_map_common_io, | 214 | .map_io = tegra_map_common_io, |
215 | .init_early = tegra_init_early, | 215 | .init_early = tegra_init_early, |
216 | .init_irq = tegra_init_irq, | 216 | .init_irq = tegra_init_irq, |
@@ -219,7 +219,7 @@ MACHINE_START(KAEN, "kaen") | |||
219 | MACHINE_END | 219 | MACHINE_END |
220 | 220 | ||
221 | MACHINE_START(WARIO, "wario") | 221 | MACHINE_START(WARIO, "wario") |
222 | .boot_params = 0x00000100, | 222 | .atag_offset = 0x100, |
223 | .map_io = tegra_map_common_io, | 223 | .map_io = tegra_map_common_io, |
224 | .init_early = tegra_init_early, | 224 | .init_early = tegra_init_early, |
225 | .init_irq = tegra_init_irq, | 225 | .init_irq = tegra_init_irq, |
diff --git a/arch/arm/mach-tegra/board-trimslice.c b/arch/arm/mach-tegra/board-trimslice.c index 89a6d2adc1de..8489aa8f5154 100644 --- a/arch/arm/mach-tegra/board-trimslice.c +++ b/arch/arm/mach-tegra/board-trimslice.c | |||
@@ -171,7 +171,7 @@ static void __init tegra_trimslice_init(void) | |||
171 | } | 171 | } |
172 | 172 | ||
173 | MACHINE_START(TRIMSLICE, "trimslice") | 173 | MACHINE_START(TRIMSLICE, "trimslice") |
174 | .boot_params = 0x00000100, | 174 | .atag_offset = 0x100, |
175 | .fixup = tegra_trimslice_fixup, | 175 | .fixup = tegra_trimslice_fixup, |
176 | .map_io = tegra_map_common_io, | 176 | .map_io = tegra_map_common_io, |
177 | .init_early = tegra_init_early, | 177 | .init_early = tegra_init_early, |
diff --git a/arch/arm/mach-u300/Kconfig b/arch/arm/mach-u300/Kconfig index 32a7b0f7e9f7..966a5a06a58c 100644 --- a/arch/arm/mach-u300/Kconfig +++ b/arch/arm/mach-u300/Kconfig | |||
@@ -48,39 +48,12 @@ config MACH_U300_BS365 | |||
48 | 48 | ||
49 | endchoice | 49 | endchoice |
50 | 50 | ||
51 | choice | ||
52 | prompt "Memory configuration" | ||
53 | default MACH_U300_SINGLE_RAM | ||
54 | ---help--- | ||
55 | You have to config the kernel according to the physical memory | ||
56 | configuration. | ||
57 | |||
58 | config MACH_U300_SINGLE_RAM | ||
59 | bool "Single RAM" | ||
60 | help | ||
61 | Select this if you want support for Single RAM phones. | ||
62 | |||
63 | config MACH_U300_DUAL_RAM | ||
64 | bool "Dual RAM" | ||
65 | help | ||
66 | Select this if you want support for Dual RAM phones. | ||
67 | This is two RAM memories on different EMIFs. | ||
68 | endchoice | ||
69 | |||
70 | config U300_DEBUG | 51 | config U300_DEBUG |
71 | bool "Debug support for U300" | 52 | bool "Debug support for U300" |
72 | depends on PM | 53 | depends on PM |
73 | help | 54 | help |
74 | Debug support for U300 in sysfs, procfs etc. | 55 | Debug support for U300 in sysfs, procfs etc. |
75 | 56 | ||
76 | config MACH_U300_SEMI_IS_SHARED | ||
77 | bool "The SEMI is used by both the access and application side" | ||
78 | depends on MACH_U300 | ||
79 | help | ||
80 | This makes it possible to use the SEMI (Shared External | ||
81 | Memory Interface) from both from access and application | ||
82 | side. | ||
83 | |||
84 | config MACH_U300_SPIDUMMY | 57 | config MACH_U300_SPIDUMMY |
85 | bool "SSP/SPI dummy chip" | 58 | bool "SSP/SPI dummy chip" |
86 | select SPI | 59 | select SPI |
@@ -93,25 +66,6 @@ config MACH_U300_SPIDUMMY | |||
93 | you don't need it. Selecting this will activate the | 66 | you don't need it. Selecting this will activate the |
94 | SPI framework and ARM PL022 support. | 67 | SPI framework and ARM PL022 support. |
95 | 68 | ||
96 | comment "All the settings below must match the bootloader's settings" | ||
97 | |||
98 | config MACH_U300_ACCESS_MEM_SIZE | ||
99 | int "Access CPU memory allocation" | ||
100 | range 7 25 | ||
101 | depends on MACH_U300_SINGLE_RAM | ||
102 | default 13 | ||
103 | help | ||
104 | How much memory in MiB that the Access side CPU has allocated | ||
105 | |||
106 | config MACH_U300_2MB_ALIGNMENT_FIX | ||
107 | bool "2MiB alignment fix" | ||
108 | depends on MACH_U300_SINGLE_RAM | ||
109 | default y | ||
110 | help | ||
111 | If yes and the Access side CPU has allocated an odd size in | ||
112 | MiB, this fix gives you one MiB extra that would otherwise be | ||
113 | lost due to Linux 2 MiB alignment policy. | ||
114 | |||
115 | endmenu | 69 | endmenu |
116 | 70 | ||
117 | endif | 71 | endif |
diff --git a/arch/arm/mach-u300/Makefile.boot b/arch/arm/mach-u300/Makefile.boot index 6fbfc6ea2d35..a06bb0deadfe 100644 --- a/arch/arm/mach-u300/Makefile.boot +++ b/arch/arm/mach-u300/Makefile.boot | |||
@@ -1,15 +1,4 @@ | |||
1 | # Note: the following conditions must always be true: | 1 | zreladdr-y := 0x48008000 |
2 | # ZRELADDR == virt_to_phys(TEXTADDR) | 2 | params_phys-y := 0x48000100 |
3 | # PARAMS_PHYS must be within 4MB of ZRELADDR | ||
4 | # INITRD_PHYS must be in RAM | ||
5 | |||
6 | ifdef CONFIG_MACH_U300_SINGLE_RAM | ||
7 | zreladdr-y := 0x28E08000 | ||
8 | params_phys-y := 0x28E00100 | ||
9 | else | ||
10 | zreladdr-y := 0x48008000 | ||
11 | params_phys-y := 0x48000100 | ||
12 | endif | ||
13 | |||
14 | # This isn't used. | 3 | # This isn't used. |
15 | #initrd_phys-y := 0x29800000 | 4 | #initrd_phys-y := 0x48800000 |
diff --git a/arch/arm/mach-u300/core.c b/arch/arm/mach-u300/core.c index 399c89f14dfb..724037e2de3d 100644 --- a/arch/arm/mach-u300/core.c +++ b/arch/arm/mach-u300/core.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <linux/err.h> | 25 | #include <linux/err.h> |
26 | #include <linux/mtd/nand.h> | 26 | #include <linux/mtd/nand.h> |
27 | #include <linux/mtd/fsmc.h> | 27 | #include <linux/mtd/fsmc.h> |
28 | #include <linux/dma-mapping.h> | ||
28 | 29 | ||
29 | #include <asm/types.h> | 30 | #include <asm/types.h> |
30 | #include <asm/setup.h> | 31 | #include <asm/setup.h> |
@@ -68,30 +69,13 @@ static struct map_desc u300_io_desc[] __initdata = { | |||
68 | .length = SZ_32K, | 69 | .length = SZ_32K, |
69 | .type = MT_DEVICE, | 70 | .type = MT_DEVICE, |
70 | }, | 71 | }, |
71 | { | ||
72 | .virtual = 0xffff2000, /* TCM memory */ | ||
73 | .pfn = __phys_to_pfn(0xffff2000), | ||
74 | .length = SZ_16K, | ||
75 | .type = MT_DEVICE, | ||
76 | }, | ||
77 | |||
78 | /* | ||
79 | * This overlaps with the IRQ vectors etc at 0xffff0000, so these | ||
80 | * may have to be moved to 0x00000000 in order to use the ROM. | ||
81 | */ | ||
82 | /* | ||
83 | { | ||
84 | .virtual = U300_BOOTROM_VIRT_BASE, | ||
85 | .pfn = __phys_to_pfn(U300_BOOTROM_PHYS_BASE), | ||
86 | .length = SZ_64K, | ||
87 | .type = MT_ROM, | ||
88 | }, | ||
89 | */ | ||
90 | }; | 72 | }; |
91 | 73 | ||
92 | void __init u300_map_io(void) | 74 | void __init u300_map_io(void) |
93 | { | 75 | { |
94 | iotable_init(u300_io_desc, ARRAY_SIZE(u300_io_desc)); | 76 | iotable_init(u300_io_desc, ARRAY_SIZE(u300_io_desc)); |
77 | /* We enable a real big DMA buffer if need be. */ | ||
78 | init_consistent_dma_size(SZ_4M); | ||
95 | } | 79 | } |
96 | 80 | ||
97 | /* | 81 | /* |
@@ -361,51 +345,6 @@ static struct resource wdog_resources[] = { | |||
361 | } | 345 | } |
362 | }; | 346 | }; |
363 | 347 | ||
364 | /* TODO: These should be protected by suitable #ifdef's */ | ||
365 | static struct resource ave_resources[] = { | ||
366 | { | ||
367 | .name = "AVE3e I/O Area", | ||
368 | .start = U300_VIDEOENC_BASE, | ||
369 | .end = U300_VIDEOENC_BASE + SZ_512K - 1, | ||
370 | .flags = IORESOURCE_MEM, | ||
371 | }, | ||
372 | { | ||
373 | .name = "AVE3e IRQ0", | ||
374 | .start = IRQ_U300_VIDEO_ENC_0, | ||
375 | .end = IRQ_U300_VIDEO_ENC_0, | ||
376 | .flags = IORESOURCE_IRQ, | ||
377 | }, | ||
378 | { | ||
379 | .name = "AVE3e IRQ1", | ||
380 | .start = IRQ_U300_VIDEO_ENC_1, | ||
381 | .end = IRQ_U300_VIDEO_ENC_1, | ||
382 | .flags = IORESOURCE_IRQ, | ||
383 | }, | ||
384 | { | ||
385 | .name = "AVE3e Physmem Area", | ||
386 | .start = 0, /* 0 will be remapped to reserved memory */ | ||
387 | .end = SZ_1M - 1, | ||
388 | .flags = IORESOURCE_MEM, | ||
389 | }, | ||
390 | /* | ||
391 | * The AVE3e requires two regions of 256MB that it considers | ||
392 | * "invisible". The hardware will not be able to access these | ||
393 | * addresses, so they should never point to system RAM. | ||
394 | */ | ||
395 | { | ||
396 | .name = "AVE3e Reserved 0", | ||
397 | .start = 0xd0000000, | ||
398 | .end = 0xd0000000 + SZ_256M - 1, | ||
399 | .flags = IORESOURCE_MEM, | ||
400 | }, | ||
401 | { | ||
402 | .name = "AVE3e Reserved 1", | ||
403 | .start = 0xe0000000, | ||
404 | .end = 0xe0000000 + SZ_256M - 1, | ||
405 | .flags = IORESOURCE_MEM, | ||
406 | }, | ||
407 | }; | ||
408 | |||
409 | static struct resource dma_resource[] = { | 348 | static struct resource dma_resource[] = { |
410 | { | 349 | { |
411 | .start = U300_DMAC_BASE, | 350 | .start = U300_DMAC_BASE, |
@@ -1612,13 +1551,6 @@ static struct platform_device nand_device = { | |||
1612 | }, | 1551 | }, |
1613 | }; | 1552 | }; |
1614 | 1553 | ||
1615 | static struct platform_device ave_device = { | ||
1616 | .name = "video_enc", | ||
1617 | .id = -1, | ||
1618 | .num_resources = ARRAY_SIZE(ave_resources), | ||
1619 | .resource = ave_resources, | ||
1620 | }; | ||
1621 | |||
1622 | static struct platform_device dma_device = { | 1554 | static struct platform_device dma_device = { |
1623 | .name = "coh901318", | 1555 | .name = "coh901318", |
1624 | .id = -1, | 1556 | .id = -1, |
@@ -1643,10 +1575,8 @@ static struct platform_device *platform_devs[] __initdata = { | |||
1643 | &gpio_device, | 1575 | &gpio_device, |
1644 | &nand_device, | 1576 | &nand_device, |
1645 | &wdog_device, | 1577 | &wdog_device, |
1646 | &ave_device | ||
1647 | }; | 1578 | }; |
1648 | 1579 | ||
1649 | |||
1650 | /* | 1580 | /* |
1651 | * Interrupts: the U300 platforms have two pl190 ARM PrimeCells connected | 1581 | * Interrupts: the U300 platforms have two pl190 ARM PrimeCells connected |
1652 | * together so some interrupts are connected to the first one and some | 1582 | * together so some interrupts are connected to the first one and some |
@@ -1837,17 +1767,10 @@ void __init u300_init_devices(void) | |||
1837 | /* Register subdevices on the SPI bus */ | 1767 | /* Register subdevices on the SPI bus */ |
1838 | u300_spi_register_board_devices(); | 1768 | u300_spi_register_board_devices(); |
1839 | 1769 | ||
1840 | #ifndef CONFIG_MACH_U300_SEMI_IS_SHARED | 1770 | /* Enable SEMI self refresh */ |
1841 | /* | ||
1842 | * Enable SEMI self refresh. Self-refresh of the SDRAM is entered when | ||
1843 | * both subsystems are requesting this mode. | ||
1844 | * If we not share the Acc SDRAM, this is never the case. Therefore | ||
1845 | * enable it here from the App side. | ||
1846 | */ | ||
1847 | val = readw(U300_SYSCON_VBASE + U300_SYSCON_SMCR) | | 1771 | val = readw(U300_SYSCON_VBASE + U300_SYSCON_SMCR) | |
1848 | U300_SYSCON_SMCR_SEMI_SREFREQ_ENABLE; | 1772 | U300_SYSCON_SMCR_SEMI_SREFREQ_ENABLE; |
1849 | writew(val, U300_SYSCON_VBASE + U300_SYSCON_SMCR); | 1773 | writew(val, U300_SYSCON_VBASE + U300_SYSCON_SMCR); |
1850 | #endif /* CONFIG_MACH_U300_SEMI_IS_SHARED */ | ||
1851 | } | 1774 | } |
1852 | 1775 | ||
1853 | static int core_module_init(void) | 1776 | static int core_module_init(void) |
diff --git a/arch/arm/mach-u300/include/mach/memory.h b/arch/arm/mach-u300/include/mach/memory.h index 888e2e351ee1..c808f347a081 100644 --- a/arch/arm/mach-u300/include/mach/memory.h +++ b/arch/arm/mach-u300/include/mach/memory.h | |||
@@ -13,30 +13,7 @@ | |||
13 | #ifndef __MACH_MEMORY_H | 13 | #ifndef __MACH_MEMORY_H |
14 | #define __MACH_MEMORY_H | 14 | #define __MACH_MEMORY_H |
15 | 15 | ||
16 | #ifdef CONFIG_MACH_U300_DUAL_RAM | 16 | #define PLAT_PHYS_OFFSET UL(0x48000000) |
17 | 17 | #define BOOT_PARAMS_OFFSET 0x100 | |
18 | #define PLAT_PHYS_OFFSET UL(0x48000000) | ||
19 | #define BOOT_PARAMS_OFFSET (PHYS_OFFSET + 0x100) | ||
20 | |||
21 | #else | ||
22 | |||
23 | #ifdef CONFIG_MACH_U300_2MB_ALIGNMENT_FIX | ||
24 | #define PLAT_PHYS_OFFSET (0x28000000 + \ | ||
25 | (CONFIG_MACH_U300_ACCESS_MEM_SIZE - \ | ||
26 | (CONFIG_MACH_U300_ACCESS_MEM_SIZE & 1))*1024*1024) | ||
27 | #else | ||
28 | #define PLAT_PHYS_OFFSET (0x28000000 + \ | ||
29 | (CONFIG_MACH_U300_ACCESS_MEM_SIZE + \ | ||
30 | (CONFIG_MACH_U300_ACCESS_MEM_SIZE & 1))*1024*1024) | ||
31 | #endif | ||
32 | #define BOOT_PARAMS_OFFSET (0x28000000 + \ | ||
33 | (CONFIG_MACH_U300_ACCESS_MEM_SIZE + \ | ||
34 | (CONFIG_MACH_U300_ACCESS_MEM_SIZE & 1))*1024*1024 + 0x100) | ||
35 | #endif | ||
36 | |||
37 | /* | ||
38 | * We enable a real big DMA buffer if need be. | ||
39 | */ | ||
40 | #define CONSISTENT_DMA_SIZE SZ_4M | ||
41 | 18 | ||
42 | #endif | 19 | #endif |
diff --git a/arch/arm/mach-u300/u300.c b/arch/arm/mach-u300/u300.c index 48b3b7f39966..89422ee7f3a8 100644 --- a/arch/arm/mach-u300/u300.c +++ b/arch/arm/mach-u300/u300.c | |||
@@ -23,21 +23,6 @@ | |||
23 | #include <asm/mach/arch.h> | 23 | #include <asm/mach/arch.h> |
24 | #include <asm/memory.h> | 24 | #include <asm/memory.h> |
25 | 25 | ||
26 | static void __init u300_reserve(void) | ||
27 | { | ||
28 | /* | ||
29 | * U300 - This platform family can share physical memory | ||
30 | * between two ARM cpus, one running Linux and the other | ||
31 | * running another OS. | ||
32 | */ | ||
33 | #ifdef CONFIG_MACH_U300_SINGLE_RAM | ||
34 | #if ((CONFIG_MACH_U300_ACCESS_MEM_SIZE & 1) == 1) && \ | ||
35 | CONFIG_MACH_U300_2MB_ALIGNMENT_FIX | ||
36 | memblock_reserve(PHYS_OFFSET, 0x00100000); | ||
37 | #endif | ||
38 | #endif | ||
39 | } | ||
40 | |||
41 | static void __init u300_init_machine(void) | 26 | static void __init u300_init_machine(void) |
42 | { | 27 | { |
43 | u300_init_devices(); | 28 | u300_init_devices(); |
@@ -61,9 +46,8 @@ static void __init u300_init_machine(void) | |||
61 | 46 | ||
62 | MACHINE_START(U300, MACH_U300_STRING) | 47 | MACHINE_START(U300, MACH_U300_STRING) |
63 | /* Maintainer: Linus Walleij <linus.walleij@stericsson.com> */ | 48 | /* Maintainer: Linus Walleij <linus.walleij@stericsson.com> */ |
64 | .boot_params = BOOT_PARAMS_OFFSET, | 49 | .atag_offset = BOOT_PARAMS_OFFSET, |
65 | .map_io = u300_map_io, | 50 | .map_io = u300_map_io, |
66 | .reserve = u300_reserve, | ||
67 | .init_irq = u300_init_irq, | 51 | .init_irq = u300_init_irq, |
68 | .timer = &u300_timer, | 52 | .timer = &u300_timer, |
69 | .init_machine = u300_init_machine, | 53 | .init_machine = u300_init_machine, |
diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig index 4210cb434dbc..a3e0c8692f0d 100644 --- a/arch/arm/mach-ux500/Kconfig +++ b/arch/arm/mach-ux500/Kconfig | |||
@@ -6,6 +6,7 @@ config UX500_SOC_COMMON | |||
6 | select ARM_GIC | 6 | select ARM_GIC |
7 | select HAS_MTU | 7 | select HAS_MTU |
8 | select ARM_ERRATA_753970 | 8 | select ARM_ERRATA_753970 |
9 | select ARM_ERRATA_754322 | ||
9 | 10 | ||
10 | menu "Ux500 SoC" | 11 | menu "Ux500 SoC" |
11 | 12 | ||
diff --git a/arch/arm/mach-ux500/Makefile b/arch/arm/mach-ux500/Makefile index 1694916e6822..9fd00a6d4248 100644 --- a/arch/arm/mach-ux500/Makefile +++ b/arch/arm/mach-ux500/Makefile | |||
@@ -4,6 +4,7 @@ | |||
4 | 4 | ||
5 | obj-y := clock.o cpu.o devices.o devices-common.o \ | 5 | obj-y := clock.o cpu.o devices.o devices-common.o \ |
6 | id.o usb.o | 6 | id.o usb.o |
7 | obj-$(CONFIG_CACHE_L2X0) += cache-l2x0.o | ||
7 | obj-$(CONFIG_UX500_SOC_DB5500) += cpu-db5500.o dma-db5500.o | 8 | obj-$(CONFIG_UX500_SOC_DB5500) += cpu-db5500.o dma-db5500.o |
8 | obj-$(CONFIG_UX500_SOC_DB8500) += cpu-db8500.o devices-db8500.o | 9 | obj-$(CONFIG_UX500_SOC_DB8500) += cpu-db8500.o devices-db8500.o |
9 | obj-$(CONFIG_MACH_U8500) += board-mop500.o board-mop500-sdi.o \ | 10 | obj-$(CONFIG_MACH_U8500) += board-mop500.o board-mop500-sdi.o \ |
diff --git a/arch/arm/mach-ux500/board-mop500-pins.c b/arch/arm/mach-ux500/board-mop500-pins.c index f26fd76f72b4..4108c7bf324e 100644 --- a/arch/arm/mach-ux500/board-mop500-pins.c +++ b/arch/arm/mach-ux500/board-mop500-pins.c | |||
@@ -153,7 +153,7 @@ static pin_cfg_t mop500_pins_default[] = { | |||
153 | GPIO7_U1_RTSn | PIN_OUTPUT_HIGH, | 153 | GPIO7_U1_RTSn | PIN_OUTPUT_HIGH, |
154 | }; | 154 | }; |
155 | 155 | ||
156 | static pin_cfg_t mop500_pins_hrefv60[] = { | 156 | static pin_cfg_t hrefv60_pins[] = { |
157 | /* WLAN */ | 157 | /* WLAN */ |
158 | GPIO4_GPIO | PIN_INPUT_PULLUP,/* WLAN_IRQ */ | 158 | GPIO4_GPIO | PIN_INPUT_PULLUP,/* WLAN_IRQ */ |
159 | GPIO85_GPIO | PIN_OUTPUT_LOW,/* WLAN_ENA */ | 159 | GPIO85_GPIO | PIN_OUTPUT_LOW,/* WLAN_ENA */ |
@@ -279,14 +279,26 @@ static pin_cfg_t snowball_pins[] = { | |||
279 | void __init mop500_pins_init(void) | 279 | void __init mop500_pins_init(void) |
280 | { | 280 | { |
281 | nmk_config_pins(mop500_pins_common, | 281 | nmk_config_pins(mop500_pins_common, |
282 | ARRAY_SIZE(mop500_pins_common)); | 282 | ARRAY_SIZE(mop500_pins_common)); |
283 | if (machine_is_hrefv60()) | 283 | |
284 | nmk_config_pins(mop500_pins_hrefv60, | 284 | nmk_config_pins(mop500_pins_default, |
285 | ARRAY_SIZE(mop500_pins_hrefv60)); | 285 | ARRAY_SIZE(mop500_pins_default)); |
286 | else if (machine_is_snowball()) | 286 | } |
287 | nmk_config_pins(snowball_pins, | 287 | |
288 | ARRAY_SIZE(snowball_pins)); | 288 | void __init snowball_pins_init(void) |
289 | else | 289 | { |
290 | nmk_config_pins(mop500_pins_default, | 290 | nmk_config_pins(mop500_pins_common, |
291 | ARRAY_SIZE(mop500_pins_default)); | 291 | ARRAY_SIZE(mop500_pins_common)); |
292 | |||
293 | nmk_config_pins(snowball_pins, | ||
294 | ARRAY_SIZE(snowball_pins)); | ||
295 | } | ||
296 | |||
297 | void __init hrefv60_pins_init(void) | ||
298 | { | ||
299 | nmk_config_pins(mop500_pins_common, | ||
300 | ARRAY_SIZE(mop500_pins_common)); | ||
301 | |||
302 | nmk_config_pins(hrefv60_pins, | ||
303 | ARRAY_SIZE(hrefv60_pins)); | ||
292 | } | 304 | } |
diff --git a/arch/arm/mach-ux500/board-mop500-sdi.c b/arch/arm/mach-ux500/board-mop500-sdi.c index d0cb9e5eb87c..6826faeecc68 100644 --- a/arch/arm/mach-ux500/board-mop500-sdi.c +++ b/arch/arm/mach-ux500/board-mop500-sdi.c | |||
@@ -216,30 +216,48 @@ void __init mop500_sdi_init(void) | |||
216 | /* PoP:ed eMMC on top of DB8500 v1.0 has problems with high speed */ | 216 | /* PoP:ed eMMC on top of DB8500 v1.0 has problems with high speed */ |
217 | if (!cpu_is_u8500v10()) | 217 | if (!cpu_is_u8500v10()) |
218 | mop500_sdi2_data.capabilities |= MMC_CAP_MMC_HIGHSPEED; | 218 | mop500_sdi2_data.capabilities |= MMC_CAP_MMC_HIGHSPEED; |
219 | /* sdi2 on snowball is in ATL_B mode for FSMC (LAN) */ | 219 | |
220 | if (!machine_is_snowball()) | 220 | db8500_add_sdi2(&mop500_sdi2_data, periphid); |
221 | db8500_add_sdi2(&mop500_sdi2_data, periphid); | ||
222 | 221 | ||
223 | /* On-board eMMC */ | 222 | /* On-board eMMC */ |
224 | db8500_add_sdi4(&mop500_sdi4_data, periphid); | 223 | db8500_add_sdi4(&mop500_sdi4_data, periphid); |
225 | 224 | ||
226 | if (machine_is_hrefv60() || machine_is_snowball()) { | ||
227 | if (machine_is_hrefv60()) { | ||
228 | mop500_sdi0_data.gpio_cd = HREFV60_SDMMC_CD_GPIO; | ||
229 | sdi0_en = HREFV60_SDMMC_EN_GPIO; | ||
230 | sdi0_vsel = HREFV60_SDMMC_1V8_3V_GPIO; | ||
231 | } else if (machine_is_snowball()) { | ||
232 | mop500_sdi0_data.gpio_cd = SNOWBALL_SDMMC_CD_GPIO; | ||
233 | mop500_sdi0_data.cd_invert = true; | ||
234 | sdi0_en = SNOWBALL_SDMMC_EN_GPIO; | ||
235 | sdi0_vsel = SNOWBALL_SDMMC_1V8_3V_GPIO; | ||
236 | } | ||
237 | sdi0_configure(); | ||
238 | } | ||
239 | |||
240 | /* | 225 | /* |
241 | * On boards with the TC35892 GPIO expander, sdi0 will finally | 226 | * On boards with the TC35892 GPIO expander, sdi0 will finally |
242 | * be added when the TC35892 initializes and calls | 227 | * be added when the TC35892 initializes and calls |
243 | * mop500_sdi_tc35892_init() above. | 228 | * mop500_sdi_tc35892_init() above. |
244 | */ | 229 | */ |
245 | } | 230 | } |
231 | |||
232 | void __init snowball_sdi_init(void) | ||
233 | { | ||
234 | u32 periphid = 0x10480180; | ||
235 | |||
236 | mop500_sdi2_data.capabilities |= MMC_CAP_MMC_HIGHSPEED; | ||
237 | |||
238 | /* On-board eMMC */ | ||
239 | db8500_add_sdi4(&mop500_sdi4_data, periphid); | ||
240 | |||
241 | mop500_sdi0_data.gpio_cd = SNOWBALL_SDMMC_CD_GPIO; | ||
242 | mop500_sdi0_data.cd_invert = true; | ||
243 | sdi0_en = SNOWBALL_SDMMC_EN_GPIO; | ||
244 | sdi0_vsel = SNOWBALL_SDMMC_1V8_3V_GPIO; | ||
245 | sdi0_configure(); | ||
246 | } | ||
247 | |||
248 | void __init hrefv60_sdi_init(void) | ||
249 | { | ||
250 | u32 periphid = 0x10480180; | ||
251 | |||
252 | mop500_sdi2_data.capabilities |= MMC_CAP_MMC_HIGHSPEED; | ||
253 | |||
254 | db8500_add_sdi2(&mop500_sdi2_data, periphid); | ||
255 | |||
256 | /* On-board eMMC */ | ||
257 | db8500_add_sdi4(&mop500_sdi4_data, periphid); | ||
258 | |||
259 | mop500_sdi0_data.gpio_cd = HREFV60_SDMMC_CD_GPIO; | ||
260 | sdi0_en = HREFV60_SDMMC_EN_GPIO; | ||
261 | sdi0_vsel = HREFV60_SDMMC_1V8_3V_GPIO; | ||
262 | sdi0_configure(); | ||
263 | } | ||
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c index cd54abaccd96..4810968b672c 100644 --- a/arch/arm/mach-ux500/board-mop500.c +++ b/arch/arm/mach-ux500/board-mop500.c | |||
@@ -603,28 +603,72 @@ static void __init mop500_init_machine(void) | |||
603 | { | 603 | { |
604 | int i2c0_devs; | 604 | int i2c0_devs; |
605 | 605 | ||
606 | mop500_gpio_keys[0].gpio = GPIO_PROX_SENSOR; | ||
607 | |||
608 | u8500_init_devices(); | ||
609 | |||
610 | mop500_pins_init(); | ||
611 | |||
612 | platform_add_devices(mop500_platform_devs, | ||
613 | ARRAY_SIZE(mop500_platform_devs)); | ||
614 | |||
615 | mop500_i2c_init(); | ||
616 | mop500_sdi_init(); | ||
617 | mop500_spi_init(); | ||
618 | mop500_uart_init(); | ||
619 | |||
620 | i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices); | ||
621 | |||
622 | i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs); | ||
623 | i2c_register_board_info(2, mop500_i2c2_devices, | ||
624 | ARRAY_SIZE(mop500_i2c2_devices)); | ||
625 | |||
626 | /* This board has full regulator constraints */ | ||
627 | regulator_has_full_constraints(); | ||
628 | } | ||
629 | |||
630 | static void __init snowball_init_machine(void) | ||
631 | { | ||
632 | int i2c0_devs; | ||
633 | |||
634 | u8500_init_devices(); | ||
635 | |||
636 | snowball_pins_init(); | ||
637 | |||
638 | platform_add_devices(snowball_platform_devs, | ||
639 | ARRAY_SIZE(snowball_platform_devs)); | ||
640 | |||
641 | mop500_i2c_init(); | ||
642 | snowball_sdi_init(); | ||
643 | mop500_spi_init(); | ||
644 | mop500_uart_init(); | ||
645 | |||
646 | i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices); | ||
647 | i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs); | ||
648 | i2c_register_board_info(2, mop500_i2c2_devices, | ||
649 | ARRAY_SIZE(mop500_i2c2_devices)); | ||
650 | |||
651 | /* This board has full regulator constraints */ | ||
652 | regulator_has_full_constraints(); | ||
653 | } | ||
654 | |||
655 | static void __init hrefv60_init_machine(void) | ||
656 | { | ||
657 | int i2c0_devs; | ||
658 | |||
606 | /* | 659 | /* |
607 | * The HREFv60 board removed a GPIO expander and routed | 660 | * The HREFv60 board removed a GPIO expander and routed |
608 | * all these GPIO pins to the internal GPIO controller | 661 | * all these GPIO pins to the internal GPIO controller |
609 | * instead. | 662 | * instead. |
610 | */ | 663 | */ |
611 | if (!machine_is_snowball()) { | 664 | mop500_gpio_keys[0].gpio = HREFV60_PROX_SENSE_GPIO; |
612 | if (machine_is_hrefv60()) | ||
613 | mop500_gpio_keys[0].gpio = HREFV60_PROX_SENSE_GPIO; | ||
614 | else | ||
615 | mop500_gpio_keys[0].gpio = GPIO_PROX_SENSOR; | ||
616 | } | ||
617 | 665 | ||
618 | u8500_init_devices(); | 666 | u8500_init_devices(); |
619 | 667 | ||
620 | mop500_pins_init(); | 668 | hrefv60_pins_init(); |
621 | 669 | ||
622 | if (machine_is_snowball()) | 670 | platform_add_devices(mop500_platform_devs, |
623 | platform_add_devices(snowball_platform_devs, | 671 | ARRAY_SIZE(mop500_platform_devs)); |
624 | ARRAY_SIZE(snowball_platform_devs)); | ||
625 | else | ||
626 | platform_add_devices(mop500_platform_devs, | ||
627 | ARRAY_SIZE(mop500_platform_devs)); | ||
628 | 672 | ||
629 | mop500_i2c_init(); | 673 | mop500_i2c_init(); |
630 | mop500_sdi_init(); | 674 | mop500_sdi_init(); |
@@ -632,8 +676,8 @@ static void __init mop500_init_machine(void) | |||
632 | mop500_uart_init(); | 676 | mop500_uart_init(); |
633 | 677 | ||
634 | i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices); | 678 | i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices); |
635 | if (machine_is_hrefv60()) | 679 | |
636 | i2c0_devs -= NUM_PRE_V60_I2C0_DEVICES; | 680 | i2c0_devs -= NUM_PRE_V60_I2C0_DEVICES; |
637 | 681 | ||
638 | i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs); | 682 | i2c_register_board_info(0, mop500_i2c0_devices, i2c0_devs); |
639 | i2c_register_board_info(2, mop500_i2c2_devices, | 683 | i2c_register_board_info(2, mop500_i2c2_devices, |
@@ -645,7 +689,7 @@ static void __init mop500_init_machine(void) | |||
645 | 689 | ||
646 | MACHINE_START(U8500, "ST-Ericsson MOP500 platform") | 690 | MACHINE_START(U8500, "ST-Ericsson MOP500 platform") |
647 | /* Maintainer: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com> */ | 691 | /* Maintainer: Srinidhi Kasagar <srinidhi.kasagar@stericsson.com> */ |
648 | .boot_params = 0x100, | 692 | .atag_offset = 0x100, |
649 | .map_io = u8500_map_io, | 693 | .map_io = u8500_map_io, |
650 | .init_irq = ux500_init_irq, | 694 | .init_irq = ux500_init_irq, |
651 | /* we re-use nomadik timer here */ | 695 | /* we re-use nomadik timer here */ |
@@ -654,18 +698,18 @@ MACHINE_START(U8500, "ST-Ericsson MOP500 platform") | |||
654 | MACHINE_END | 698 | MACHINE_END |
655 | 699 | ||
656 | MACHINE_START(HREFV60, "ST-Ericsson U8500 Platform HREFv60+") | 700 | MACHINE_START(HREFV60, "ST-Ericsson U8500 Platform HREFv60+") |
657 | .boot_params = 0x100, | 701 | .atag_offset = 0x100, |
658 | .map_io = u8500_map_io, | 702 | .map_io = u8500_map_io, |
659 | .init_irq = ux500_init_irq, | 703 | .init_irq = ux500_init_irq, |
660 | .timer = &ux500_timer, | 704 | .timer = &ux500_timer, |
661 | .init_machine = mop500_init_machine, | 705 | .init_machine = hrefv60_init_machine, |
662 | MACHINE_END | 706 | MACHINE_END |
663 | 707 | ||
664 | MACHINE_START(SNOWBALL, "Calao Systems Snowball platform") | 708 | MACHINE_START(SNOWBALL, "Calao Systems Snowball platform") |
665 | .boot_params = 0x100, | 709 | .atag_offset = 0x100, |
666 | .map_io = u8500_map_io, | 710 | .map_io = u8500_map_io, |
667 | .init_irq = ux500_init_irq, | 711 | .init_irq = ux500_init_irq, |
668 | /* we re-use nomadik timer here */ | 712 | /* we re-use nomadik timer here */ |
669 | .timer = &ux500_timer, | 713 | .timer = &ux500_timer, |
670 | .init_machine = mop500_init_machine, | 714 | .init_machine = snowball_init_machine, |
671 | MACHINE_END | 715 | MACHINE_END |
diff --git a/arch/arm/mach-ux500/board-mop500.h b/arch/arm/mach-ux500/board-mop500.h index ee77a8970c33..de18a2a23e6e 100644 --- a/arch/arm/mach-ux500/board-mop500.h +++ b/arch/arm/mach-ux500/board-mop500.h | |||
@@ -40,10 +40,13 @@ | |||
40 | struct i2c_board_info; | 40 | struct i2c_board_info; |
41 | 41 | ||
42 | extern void mop500_sdi_init(void); | 42 | extern void mop500_sdi_init(void); |
43 | extern void snowball_sdi_init(void); | ||
43 | extern void mop500_sdi_tc35892_init(void); | 44 | extern void mop500_sdi_tc35892_init(void); |
44 | void __init mop500_u8500uib_init(void); | 45 | void __init mop500_u8500uib_init(void); |
45 | void __init mop500_stuib_init(void); | 46 | void __init mop500_stuib_init(void); |
46 | void __init mop500_pins_init(void); | 47 | void __init mop500_pins_init(void); |
48 | void __init hrefv60_pins_init(void); | ||
49 | void __init snowball_pins_init(void); | ||
47 | 50 | ||
48 | void mop500_uib_i2c_add(int busnum, struct i2c_board_info *info, | 51 | void mop500_uib_i2c_add(int busnum, struct i2c_board_info *info, |
49 | unsigned n); | 52 | unsigned n); |
diff --git a/arch/arm/mach-ux500/board-u5500.c b/arch/arm/mach-ux500/board-u5500.c index e58f0f562426..166d47a5f4f3 100644 --- a/arch/arm/mach-ux500/board-u5500.c +++ b/arch/arm/mach-ux500/board-u5500.c | |||
@@ -118,7 +118,7 @@ static void __init u5500_init_machine(void) | |||
118 | } | 118 | } |
119 | 119 | ||
120 | MACHINE_START(U5500, "ST-Ericsson U5500 Platform") | 120 | MACHINE_START(U5500, "ST-Ericsson U5500 Platform") |
121 | .boot_params = 0x00000100, | 121 | .atag_offset = 0x100, |
122 | .map_io = u5500_map_io, | 122 | .map_io = u5500_map_io, |
123 | .init_irq = ux500_init_irq, | 123 | .init_irq = ux500_init_irq, |
124 | .timer = &ux500_timer, | 124 | .timer = &ux500_timer, |
diff --git a/arch/arm/mach-ux500/cache-l2x0.c b/arch/arm/mach-ux500/cache-l2x0.c new file mode 100644 index 000000000000..122ddde00ba7 --- /dev/null +++ b/arch/arm/mach-ux500/cache-l2x0.c | |||
@@ -0,0 +1,95 @@ | |||
1 | /* | ||
2 | * Copyright (C) ST-Ericsson SA 2011 | ||
3 | * | ||
4 | * License terms: GNU General Public License (GPL) version 2 | ||
5 | */ | ||
6 | |||
7 | #include <linux/io.h> | ||
8 | #include <asm/cacheflush.h> | ||
9 | #include <asm/hardware/cache-l2x0.h> | ||
10 | #include <mach/hardware.h> | ||
11 | #include <mach/id.h> | ||
12 | |||
13 | static void __iomem *l2x0_base; | ||
14 | |||
15 | static inline void ux500_cache_wait(void __iomem *reg, unsigned long mask) | ||
16 | { | ||
17 | /* wait for the operation to complete */ | ||
18 | while (readl_relaxed(reg) & mask) | ||
19 | cpu_relax(); | ||
20 | } | ||
21 | |||
22 | static inline void ux500_cache_sync(void) | ||
23 | { | ||
24 | writel_relaxed(0, l2x0_base + L2X0_CACHE_SYNC); | ||
25 | ux500_cache_wait(l2x0_base + L2X0_CACHE_SYNC, 1); | ||
26 | } | ||
27 | |||
28 | /* | ||
29 | * The L2 cache cannot be turned off in the non-secure world. | ||
30 | * Dummy until a secure service is in place. | ||
31 | */ | ||
32 | static void ux500_l2x0_disable(void) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | /* | ||
37 | * This is only called when doing a kexec, just after turning off the L2 | ||
38 | * and L1 cache, and it is surrounded by a spinlock in the generic version. | ||
39 | * However, we're not really turning off the L2 cache right now and the | ||
40 | * PL310 does not support exclusive accesses (used to implement the spinlock). | ||
41 | * So, the invalidation needs to be done without the spinlock. | ||
42 | */ | ||
43 | static void ux500_l2x0_inv_all(void) | ||
44 | { | ||
45 | uint32_t l2x0_way_mask = (1<<16) - 1; /* Bitmask of active ways */ | ||
46 | |||
47 | /* invalidate all ways */ | ||
48 | writel_relaxed(l2x0_way_mask, l2x0_base + L2X0_INV_WAY); | ||
49 | ux500_cache_wait(l2x0_base + L2X0_INV_WAY, l2x0_way_mask); | ||
50 | ux500_cache_sync(); | ||
51 | } | ||
52 | |||
53 | static int __init ux500_l2x0_unlock(void) | ||
54 | { | ||
55 | int i; | ||
56 | |||
57 | /* | ||
58 | * Unlock Data and Instruction Lock if locked. Ux500 U-Boot versions | ||
59 | * apparently locks both caches before jumping to the kernel. The | ||
60 | * l2x0 core will not touch the unlock registers if the l2x0 is | ||
61 | * already enabled, so we do it right here instead. The PL310 has | ||
62 | * 8 sets of registers, one per possible CPU. | ||
63 | */ | ||
64 | for (i = 0; i < 8; i++) { | ||
65 | writel_relaxed(0x0, l2x0_base + L2X0_LOCKDOWN_WAY_D_BASE + | ||
66 | i * L2X0_LOCKDOWN_STRIDE); | ||
67 | writel_relaxed(0x0, l2x0_base + L2X0_LOCKDOWN_WAY_I_BASE + | ||
68 | i * L2X0_LOCKDOWN_STRIDE); | ||
69 | } | ||
70 | return 0; | ||
71 | } | ||
72 | |||
73 | static int __init ux500_l2x0_init(void) | ||
74 | { | ||
75 | if (cpu_is_u5500()) | ||
76 | l2x0_base = __io_address(U5500_L2CC_BASE); | ||
77 | else if (cpu_is_u8500()) | ||
78 | l2x0_base = __io_address(U8500_L2CC_BASE); | ||
79 | else | ||
80 | ux500_unknown_soc(); | ||
81 | |||
82 | /* Unlock before init */ | ||
83 | ux500_l2x0_unlock(); | ||
84 | |||
85 | /* 64KB way size, 8 way associativity, force WA */ | ||
86 | l2x0_init(l2x0_base, 0x3e060000, 0xc0000fff); | ||
87 | |||
88 | /* Override invalidate function */ | ||
89 | outer_cache.disable = ux500_l2x0_disable; | ||
90 | outer_cache.inv_all = ux500_l2x0_inv_all; | ||
91 | |||
92 | return 0; | ||
93 | } | ||
94 | |||
95 | early_initcall(ux500_l2x0_init); | ||
diff --git a/arch/arm/mach-ux500/cpu.c b/arch/arm/mach-ux500/cpu.c index 1da23bb87c16..252e8b3c5706 100644 --- a/arch/arm/mach-ux500/cpu.c +++ b/arch/arm/mach-ux500/cpu.c | |||
@@ -11,8 +11,6 @@ | |||
11 | #include <linux/mfd/db8500-prcmu.h> | 11 | #include <linux/mfd/db8500-prcmu.h> |
12 | #include <linux/mfd/db5500-prcmu.h> | 12 | #include <linux/mfd/db5500-prcmu.h> |
13 | 13 | ||
14 | #include <asm/cacheflush.h> | ||
15 | #include <asm/hardware/cache-l2x0.h> | ||
16 | #include <asm/hardware/gic.h> | 14 | #include <asm/hardware/gic.h> |
17 | #include <asm/mach/map.h> | 15 | #include <asm/mach/map.h> |
18 | #include <asm/localtimer.h> | 16 | #include <asm/localtimer.h> |
@@ -26,10 +24,6 @@ | |||
26 | 24 | ||
27 | void __iomem *_PRCMU_BASE; | 25 | void __iomem *_PRCMU_BASE; |
28 | 26 | ||
29 | #ifdef CONFIG_CACHE_L2X0 | ||
30 | static void __iomem *l2x0_base; | ||
31 | #endif | ||
32 | |||
33 | void __init ux500_init_irq(void) | 27 | void __init ux500_init_irq(void) |
34 | { | 28 | { |
35 | void __iomem *dist_base; | 29 | void __iomem *dist_base; |
@@ -57,69 +51,6 @@ void __init ux500_init_irq(void) | |||
57 | clk_init(); | 51 | clk_init(); |
58 | } | 52 | } |
59 | 53 | ||
60 | #ifdef CONFIG_CACHE_L2X0 | ||
61 | static inline void ux500_cache_wait(void __iomem *reg, unsigned long mask) | ||
62 | { | ||
63 | /* wait for the operation to complete */ | ||
64 | while (readl_relaxed(reg) & mask) | ||
65 | ; | ||
66 | } | ||
67 | |||
68 | static inline void ux500_cache_sync(void) | ||
69 | { | ||
70 | void __iomem *base = l2x0_base; | ||
71 | |||
72 | writel_relaxed(0, base + L2X0_CACHE_SYNC); | ||
73 | ux500_cache_wait(base + L2X0_CACHE_SYNC, 1); | ||
74 | } | ||
75 | |||
76 | /* | ||
77 | * The L2 cache cannot be turned off in the non-secure world. | ||
78 | * Dummy until a secure service is in place. | ||
79 | */ | ||
80 | static void ux500_l2x0_disable(void) | ||
81 | { | ||
82 | } | ||
83 | |||
84 | /* | ||
85 | * This is only called when doing a kexec, just after turning off the L2 | ||
86 | * and L1 cache, and it is surrounded by a spinlock in the generic version. | ||
87 | * However, we're not really turning off the L2 cache right now and the | ||
88 | * PL310 does not support exclusive accesses (used to implement the spinlock). | ||
89 | * So, the invalidation needs to be done without the spinlock. | ||
90 | */ | ||
91 | static void ux500_l2x0_inv_all(void) | ||
92 | { | ||
93 | void __iomem *base = l2x0_base; | ||
94 | uint32_t l2x0_way_mask = (1<<16) - 1; /* Bitmask of active ways */ | ||
95 | |||
96 | /* invalidate all ways */ | ||
97 | writel_relaxed(l2x0_way_mask, base + L2X0_INV_WAY); | ||
98 | ux500_cache_wait(base + L2X0_INV_WAY, l2x0_way_mask); | ||
99 | ux500_cache_sync(); | ||
100 | } | ||
101 | |||
102 | static int ux500_l2x0_init(void) | ||
103 | { | ||
104 | if (cpu_is_u5500()) | ||
105 | l2x0_base = __io_address(U5500_L2CC_BASE); | ||
106 | else if (cpu_is_u8500()) | ||
107 | l2x0_base = __io_address(U8500_L2CC_BASE); | ||
108 | else | ||
109 | ux500_unknown_soc(); | ||
110 | |||
111 | /* 64KB way size, 8 way associativity, force WA */ | ||
112 | l2x0_init(l2x0_base, 0x3e060000, 0xc0000fff); | ||
113 | |||
114 | /* Override invalidate function */ | ||
115 | outer_cache.disable = ux500_l2x0_disable; | ||
116 | outer_cache.inv_all = ux500_l2x0_inv_all; | ||
117 | |||
118 | return 0; | ||
119 | } | ||
120 | early_initcall(ux500_l2x0_init); | ||
121 | #endif | ||
122 | |||
123 | static void __init ux500_timer_init(void) | 54 | static void __init ux500_timer_init(void) |
124 | { | 55 | { |
125 | #ifdef CONFIG_LOCAL_TIMERS | 56 | #ifdef CONFIG_LOCAL_TIMERS |
diff --git a/arch/arm/mach-ux500/include/mach/uncompress.h b/arch/arm/mach-ux500/include/mach/uncompress.h index 7dd08074c37b..6fb3c4b0105d 100644 --- a/arch/arm/mach-ux500/include/mach/uncompress.h +++ b/arch/arm/mach-ux500/include/mach/uncompress.h | |||
@@ -51,15 +51,9 @@ static void flush(void) | |||
51 | static inline void arch_decomp_setup(void) | 51 | static inline void arch_decomp_setup(void) |
52 | { | 52 | { |
53 | /* Check in run time if we run on an U8500 or U5500 */ | 53 | /* Check in run time if we run on an U8500 or U5500 */ |
54 | if (machine_is_u8500() || | 54 | if (machine_is_u5500()) |
55 | machine_is_svp8500v1() || | ||
56 | machine_is_svp8500v2() || | ||
57 | machine_is_hrefv60() || | ||
58 | machine_is_snowball()) | ||
59 | ux500_uart_base = U8500_UART2_BASE; | ||
60 | else if (machine_is_u5500()) | ||
61 | ux500_uart_base = U5500_UART0_BASE; | 55 | ux500_uart_base = U5500_UART0_BASE; |
62 | else /* not much can be done to help here */ | 56 | else |
63 | ux500_uart_base = U8500_UART2_BASE; | 57 | ux500_uart_base = U8500_UART2_BASE; |
64 | } | 58 | } |
65 | 59 | ||
diff --git a/arch/arm/mach-ux500/pins-db8500.h b/arch/arm/mach-ux500/pins-db8500.h index f923764ee16c..8b1d1a7a679e 100644 --- a/arch/arm/mach-ux500/pins-db8500.h +++ b/arch/arm/mach-ux500/pins-db8500.h | |||
@@ -35,40 +35,40 @@ | |||
35 | 35 | ||
36 | #define GPIO4_GPIO PIN_CFG(4, GPIO) | 36 | #define GPIO4_GPIO PIN_CFG(4, GPIO) |
37 | #define GPIO4_U1_RXD PIN_CFG(4, ALT_A) | 37 | #define GPIO4_U1_RXD PIN_CFG(4, ALT_A) |
38 | #define GPIO4_I2C4_SCL PIN_CFG_PULL(4, ALT_B, UP) | 38 | #define GPIO4_I2C4_SCL PIN_CFG_INPUT(4, ALT_B, PULLUP) |
39 | #define GPIO4_IP_TRSTn PIN_CFG(4, ALT_C) | 39 | #define GPIO4_IP_TRSTn PIN_CFG(4, ALT_C) |
40 | 40 | ||
41 | #define GPIO5_GPIO PIN_CFG(5, GPIO) | 41 | #define GPIO5_GPIO PIN_CFG(5, GPIO) |
42 | #define GPIO5_U1_TXD PIN_CFG(5, ALT_A) | 42 | #define GPIO5_U1_TXD PIN_CFG(5, ALT_A) |
43 | #define GPIO5_I2C4_SDA PIN_CFG_PULL(5, ALT_B, UP) | 43 | #define GPIO5_I2C4_SDA PIN_CFG_INPUT(5, ALT_B, PULLUP) |
44 | #define GPIO5_IP_GPIO6 PIN_CFG(5, ALT_C) | 44 | #define GPIO5_IP_GPIO6 PIN_CFG(5, ALT_C) |
45 | 45 | ||
46 | #define GPIO6_GPIO PIN_CFG(6, GPIO) | 46 | #define GPIO6_GPIO PIN_CFG(6, GPIO) |
47 | #define GPIO6_U1_CTSn PIN_CFG(6, ALT_A) | 47 | #define GPIO6_U1_CTSn PIN_CFG(6, ALT_A) |
48 | #define GPIO6_I2C1_SCL PIN_CFG_PULL(6, ALT_B, UP) | 48 | #define GPIO6_I2C1_SCL PIN_CFG_INPUT(6, ALT_B, PULLUP) |
49 | #define GPIO6_IP_GPIO0 PIN_CFG(6, ALT_C) | 49 | #define GPIO6_IP_GPIO0 PIN_CFG(6, ALT_C) |
50 | 50 | ||
51 | #define GPIO7_GPIO PIN_CFG(7, GPIO) | 51 | #define GPIO7_GPIO PIN_CFG(7, GPIO) |
52 | #define GPIO7_U1_RTSn PIN_CFG(7, ALT_A) | 52 | #define GPIO7_U1_RTSn PIN_CFG(7, ALT_A) |
53 | #define GPIO7_I2C1_SDA PIN_CFG_PULL(7, ALT_B, UP) | 53 | #define GPIO7_I2C1_SDA PIN_CFG_INPUT(7, ALT_B, PULLUP) |
54 | #define GPIO7_IP_GPIO1 PIN_CFG(7, ALT_C) | 54 | #define GPIO7_IP_GPIO1 PIN_CFG(7, ALT_C) |
55 | 55 | ||
56 | #define GPIO8_GPIO PIN_CFG(8, GPIO) | 56 | #define GPIO8_GPIO PIN_CFG(8, GPIO) |
57 | #define GPIO8_IPI2C_SDA PIN_CFG_PULL(8, ALT_A, UP) | 57 | #define GPIO8_IPI2C_SDA PIN_CFG_INPUT(8, ALT_A, PULLUP) |
58 | #define GPIO8_I2C2_SDA PIN_CFG_PULL(8, ALT_B, UP) | 58 | #define GPIO8_I2C2_SDA PIN_CFG_INPUT(8, ALT_B, PULLUP) |
59 | 59 | ||
60 | #define GPIO9_GPIO PIN_CFG(9, GPIO) | 60 | #define GPIO9_GPIO PIN_CFG(9, GPIO) |
61 | #define GPIO9_IPI2C_SCL PIN_CFG_PULL(9, ALT_A, UP) | 61 | #define GPIO9_IPI2C_SCL PIN_CFG_INPUT(9, ALT_A, PULLUP) |
62 | #define GPIO9_I2C2_SCL PIN_CFG_PULL(9, ALT_B, UP) | 62 | #define GPIO9_I2C2_SCL PIN_CFG_INPUT(9, ALT_B, PULLUP) |
63 | 63 | ||
64 | #define GPIO10_GPIO PIN_CFG(10, GPIO) | 64 | #define GPIO10_GPIO PIN_CFG(10, GPIO) |
65 | #define GPIO10_IPI2C_SDA PIN_CFG_PULL(10, ALT_A, UP) | 65 | #define GPIO10_IPI2C_SDA PIN_CFG_INPUT(10, ALT_A, PULLUP) |
66 | #define GPIO10_I2C2_SDA PIN_CFG_PULL(10, ALT_B, UP) | 66 | #define GPIO10_I2C2_SDA PIN_CFG_INPUT(10, ALT_B, PULLUP) |
67 | #define GPIO10_IP_GPIO3 PIN_CFG(10, ALT_C) | 67 | #define GPIO10_IP_GPIO3 PIN_CFG(10, ALT_C) |
68 | 68 | ||
69 | #define GPIO11_GPIO PIN_CFG(11, GPIO) | 69 | #define GPIO11_GPIO PIN_CFG(11, GPIO) |
70 | #define GPIO11_IPI2C_SCL PIN_CFG_PULL(11, ALT_A, UP) | 70 | #define GPIO11_IPI2C_SCL PIN_CFG_INPUT(11, ALT_A, PULLUP) |
71 | #define GPIO11_I2C2_SCL PIN_CFG_PULL(11, ALT_B, UP) | 71 | #define GPIO11_I2C2_SCL PIN_CFG_INPUT(11, ALT_B, PULLUP) |
72 | #define GPIO11_IP_GPIO2 PIN_CFG(11, ALT_C) | 72 | #define GPIO11_IP_GPIO2 PIN_CFG(11, ALT_C) |
73 | 73 | ||
74 | #define GPIO12_GPIO PIN_CFG(12, GPIO) | 74 | #define GPIO12_GPIO PIN_CFG(12, GPIO) |
@@ -87,66 +87,66 @@ | |||
87 | 87 | ||
88 | #define GPIO16_GPIO PIN_CFG(16, GPIO) | 88 | #define GPIO16_GPIO PIN_CFG(16, GPIO) |
89 | #define GPIO16_MSP0_RFS PIN_CFG(16, ALT_A) | 89 | #define GPIO16_MSP0_RFS PIN_CFG(16, ALT_A) |
90 | #define GPIO16_I2C1_SCL PIN_CFG_PULL(16, ALT_B, UP) | 90 | #define GPIO16_I2C1_SCL PIN_CFG_INPUT(16, ALT_B, PULLUP) |
91 | #define GPIO16_SLIM0_DAT PIN_CFG(16, ALT_C) | 91 | #define GPIO16_SLIM0_DAT PIN_CFG(16, ALT_C) |
92 | 92 | ||
93 | #define GPIO17_GPIO PIN_CFG(17, GPIO) | 93 | #define GPIO17_GPIO PIN_CFG(17, GPIO) |
94 | #define GPIO17_MSP0_RCK PIN_CFG(17, ALT_A) | 94 | #define GPIO17_MSP0_RCK PIN_CFG(17, ALT_A) |
95 | #define GPIO17_I2C1_SDA PIN_CFG_PULL(17, ALT_B, UP) | 95 | #define GPIO17_I2C1_SDA PIN_CFG_INPUT(17, ALT_B, PULLUP) |
96 | #define GPIO17_SLIM0_CLK PIN_CFG(17, ALT_C) | 96 | #define GPIO17_SLIM0_CLK PIN_CFG(17, ALT_C) |
97 | 97 | ||
98 | #define GPIO18_GPIO PIN_CFG(18, GPIO) | 98 | #define GPIO18_GPIO PIN_CFG(18, GPIO) |
99 | #define GPIO18_MC0_CMDDIR PIN_CFG_PULL(18, ALT_A, UP) | 99 | #define GPIO18_MC0_CMDDIR PIN_CFG_INPUT(18, ALT_A, PULLUP) |
100 | #define GPIO18_U2_RXD PIN_CFG(18, ALT_B) | 100 | #define GPIO18_U2_RXD PIN_CFG(18, ALT_B) |
101 | #define GPIO18_MS_IEP PIN_CFG(18, ALT_C) | 101 | #define GPIO18_MS_IEP PIN_CFG(18, ALT_C) |
102 | 102 | ||
103 | #define GPIO19_GPIO PIN_CFG(19, GPIO) | 103 | #define GPIO19_GPIO PIN_CFG(19, GPIO) |
104 | #define GPIO19_MC0_DAT0DIR PIN_CFG_PULL(19, ALT_A, UP) | 104 | #define GPIO19_MC0_DAT0DIR PIN_CFG_INPUT(19, ALT_A, PULLUP) |
105 | #define GPIO19_U2_TXD PIN_CFG(19, ALT_B) | 105 | #define GPIO19_U2_TXD PIN_CFG(19, ALT_B) |
106 | #define GPIO19_MS_DAT0DIR PIN_CFG(19, ALT_C) | 106 | #define GPIO19_MS_DAT0DIR PIN_CFG(19, ALT_C) |
107 | 107 | ||
108 | #define GPIO20_GPIO PIN_CFG(20, GPIO) | 108 | #define GPIO20_GPIO PIN_CFG(20, GPIO) |
109 | #define GPIO20_MC0_DAT2DIR PIN_CFG_PULL(20, ALT_A, UP) | 109 | #define GPIO20_MC0_DAT2DIR PIN_CFG_INPUT(20, ALT_A, PULLUP) |
110 | #define GPIO20_UARTMOD_TXD PIN_CFG(20, ALT_B) | 110 | #define GPIO20_UARTMOD_TXD PIN_CFG(20, ALT_B) |
111 | #define GPIO20_IP_TRIGOUT PIN_CFG(20, ALT_C) | 111 | #define GPIO20_IP_TRIGOUT PIN_CFG(20, ALT_C) |
112 | 112 | ||
113 | #define GPIO21_GPIO PIN_CFG(21, GPIO) | 113 | #define GPIO21_GPIO PIN_CFG(21, GPIO) |
114 | #define GPIO21_MC0_DAT31DIR PIN_CFG_PULL(21, ALT_A, UP) | 114 | #define GPIO21_MC0_DAT31DIR PIN_CFG_INPUT(21, ALT_A, PULLUP) |
115 | #define GPIO21_MSP0_SCK PIN_CFG(21, ALT_B) | 115 | #define GPIO21_MSP0_SCK PIN_CFG(21, ALT_B) |
116 | #define GPIO21_MS_DAT31DIR PIN_CFG(21, ALT_C) | 116 | #define GPIO21_MS_DAT31DIR PIN_CFG(21, ALT_C) |
117 | 117 | ||
118 | #define GPIO22_GPIO PIN_CFG(22, GPIO) | 118 | #define GPIO22_GPIO PIN_CFG(22, GPIO) |
119 | #define GPIO22_MC0_FBCLK PIN_CFG_PULL(22, ALT_A, UP) | 119 | #define GPIO22_MC0_FBCLK PIN_CFG_INPUT(22, ALT_A, PULLUP) |
120 | #define GPIO22_UARTMOD_RXD PIN_CFG(22, ALT_B) | 120 | #define GPIO22_UARTMOD_RXD PIN_CFG(22, ALT_B) |
121 | #define GPIO22_MS_FBCLK PIN_CFG(22, ALT_C) | 121 | #define GPIO22_MS_FBCLK PIN_CFG(22, ALT_C) |
122 | 122 | ||
123 | #define GPIO23_GPIO PIN_CFG(23, GPIO) | 123 | #define GPIO23_GPIO PIN_CFG(23, GPIO) |
124 | #define GPIO23_MC0_CLK PIN_CFG_PULL(23, ALT_A, UP) | 124 | #define GPIO23_MC0_CLK PIN_CFG_INPUT(23, ALT_A, PULLUP) |
125 | #define GPIO23_STMMOD_CLK PIN_CFG(23, ALT_B) | 125 | #define GPIO23_STMMOD_CLK PIN_CFG(23, ALT_B) |
126 | #define GPIO23_MS_CLK PIN_CFG(23, ALT_C) | 126 | #define GPIO23_MS_CLK PIN_CFG(23, ALT_C) |
127 | 127 | ||
128 | #define GPIO24_GPIO PIN_CFG(24, GPIO) | 128 | #define GPIO24_GPIO PIN_CFG(24, GPIO) |
129 | #define GPIO24_MC0_CMD PIN_CFG_PULL(24, ALT_A, UP) | 129 | #define GPIO24_MC0_CMD PIN_CFG_INPUT(24, ALT_A, PULLUP) |
130 | #define GPIO24_UARTMOD_RXD PIN_CFG(24, ALT_B) | 130 | #define GPIO24_UARTMOD_RXD PIN_CFG(24, ALT_B) |
131 | #define GPIO24_MS_BS PIN_CFG(24, ALT_C) | 131 | #define GPIO24_MS_BS PIN_CFG(24, ALT_C) |
132 | 132 | ||
133 | #define GPIO25_GPIO PIN_CFG(25, GPIO) | 133 | #define GPIO25_GPIO PIN_CFG(25, GPIO) |
134 | #define GPIO25_MC0_DAT0 PIN_CFG_PULL(25, ALT_A, UP) | 134 | #define GPIO25_MC0_DAT0 PIN_CFG_INPUT(25, ALT_A, PULLUP) |
135 | #define GPIO25_STMMOD_DAT0 PIN_CFG(25, ALT_B) | 135 | #define GPIO25_STMMOD_DAT0 PIN_CFG(25, ALT_B) |
136 | #define GPIO25_MS_DAT0 PIN_CFG(25, ALT_C) | 136 | #define GPIO25_MS_DAT0 PIN_CFG(25, ALT_C) |
137 | 137 | ||
138 | #define GPIO26_GPIO PIN_CFG(26, GPIO) | 138 | #define GPIO26_GPIO PIN_CFG(26, GPIO) |
139 | #define GPIO26_MC0_DAT1 PIN_CFG_PULL(26, ALT_A, UP) | 139 | #define GPIO26_MC0_DAT1 PIN_CFG_INPUT(26, ALT_A, PULLUP) |
140 | #define GPIO26_STMMOD_DAT1 PIN_CFG(26, ALT_B) | 140 | #define GPIO26_STMMOD_DAT1 PIN_CFG(26, ALT_B) |
141 | #define GPIO26_MS_DAT1 PIN_CFG(26, ALT_C) | 141 | #define GPIO26_MS_DAT1 PIN_CFG(26, ALT_C) |
142 | 142 | ||
143 | #define GPIO27_GPIO PIN_CFG(27, GPIO) | 143 | #define GPIO27_GPIO PIN_CFG(27, GPIO) |
144 | #define GPIO27_MC0_DAT2 PIN_CFG_PULL(27, ALT_A, UP) | 144 | #define GPIO27_MC0_DAT2 PIN_CFG_INPUT(27, ALT_A, PULLUP) |
145 | #define GPIO27_STMMOD_DAT2 PIN_CFG(27, ALT_B) | 145 | #define GPIO27_STMMOD_DAT2 PIN_CFG(27, ALT_B) |
146 | #define GPIO27_MS_DAT2 PIN_CFG(27, ALT_C) | 146 | #define GPIO27_MS_DAT2 PIN_CFG(27, ALT_C) |
147 | 147 | ||
148 | #define GPIO28_GPIO PIN_CFG(28, GPIO) | 148 | #define GPIO28_GPIO PIN_CFG(28, GPIO) |
149 | #define GPIO28_MC0_DAT3 PIN_CFG_PULL(28, ALT_A, UP) | 149 | #define GPIO28_MC0_DAT3 PIN_CFG_INPUT(28, ALT_A, PULLUP) |
150 | #define GPIO28_STMMOD_DAT3 PIN_CFG(28, ALT_B) | 150 | #define GPIO28_STMMOD_DAT3 PIN_CFG(28, ALT_B) |
151 | #define GPIO28_MS_DAT3 PIN_CFG(28, ALT_C) | 151 | #define GPIO28_MS_DAT3 PIN_CFG(28, ALT_C) |
152 | 152 | ||
@@ -357,48 +357,48 @@ | |||
357 | #define GPIO97_MC5_DAT7 PIN_CFG(97, ALT_C) | 357 | #define GPIO97_MC5_DAT7 PIN_CFG(97, ALT_C) |
358 | 358 | ||
359 | #define GPIO128_GPIO PIN_CFG(128, GPIO) | 359 | #define GPIO128_GPIO PIN_CFG(128, GPIO) |
360 | #define GPIO128_MC2_CLK PIN_CFG_PULL(128, ALT_A, UP) | 360 | #define GPIO128_MC2_CLK PIN_CFG_INPUT(128, ALT_A, PULLUP) |
361 | #define GPIO128_SM_CKO PIN_CFG(128, ALT_B) | 361 | #define GPIO128_SM_CKO PIN_CFG(128, ALT_B) |
362 | 362 | ||
363 | #define GPIO129_GPIO PIN_CFG(129, GPIO) | 363 | #define GPIO129_GPIO PIN_CFG(129, GPIO) |
364 | #define GPIO129_MC2_CMD PIN_CFG_PULL(129, ALT_A, UP) | 364 | #define GPIO129_MC2_CMD PIN_CFG_INPUT(129, ALT_A, PULLUP) |
365 | #define GPIO129_SM_WAIT0n PIN_CFG(129, ALT_B) | 365 | #define GPIO129_SM_WAIT0n PIN_CFG(129, ALT_B) |
366 | 366 | ||
367 | #define GPIO130_GPIO PIN_CFG(130, GPIO) | 367 | #define GPIO130_GPIO PIN_CFG(130, GPIO) |
368 | #define GPIO130_MC2_FBCLK PIN_CFG_PULL(130, ALT_A, UP) | 368 | #define GPIO130_MC2_FBCLK PIN_CFG_INPUT(130, ALT_A, PULLUP) |
369 | #define GPIO130_SM_FBCLK PIN_CFG(130, ALT_B) | 369 | #define GPIO130_SM_FBCLK PIN_CFG(130, ALT_B) |
370 | #define GPIO130_MC2_RSTN PIN_CFG(130, ALT_C) | 370 | #define GPIO130_MC2_RSTN PIN_CFG(130, ALT_C) |
371 | 371 | ||
372 | #define GPIO131_GPIO PIN_CFG(131, GPIO) | 372 | #define GPIO131_GPIO PIN_CFG(131, GPIO) |
373 | #define GPIO131_MC2_DAT0 PIN_CFG_PULL(131, ALT_A, UP) | 373 | #define GPIO131_MC2_DAT0 PIN_CFG_INPUT(131, ALT_A, PULLUP) |
374 | #define GPIO131_SM_ADQ8 PIN_CFG(131, ALT_B) | 374 | #define GPIO131_SM_ADQ8 PIN_CFG(131, ALT_B) |
375 | 375 | ||
376 | #define GPIO132_GPIO PIN_CFG(132, GPIO) | 376 | #define GPIO132_GPIO PIN_CFG(132, GPIO) |
377 | #define GPIO132_MC2_DAT1 PIN_CFG_PULL(132, ALT_A, UP) | 377 | #define GPIO132_MC2_DAT1 PIN_CFG_INPUT(132, ALT_A, PULLUP) |
378 | #define GPIO132_SM_ADQ9 PIN_CFG(132, ALT_B) | 378 | #define GPIO132_SM_ADQ9 PIN_CFG(132, ALT_B) |
379 | 379 | ||
380 | #define GPIO133_GPIO PIN_CFG(133, GPIO) | 380 | #define GPIO133_GPIO PIN_CFG(133, GPIO) |
381 | #define GPIO133_MC2_DAT2 PIN_CFG_PULL(133, ALT_A, UP) | 381 | #define GPIO133_MC2_DAT2 PIN_CFG_INPUT(133, ALT_A, PULLUP) |
382 | #define GPIO133_SM_ADQ10 PIN_CFG(133, ALT_B) | 382 | #define GPIO133_SM_ADQ10 PIN_CFG(133, ALT_B) |
383 | 383 | ||
384 | #define GPIO134_GPIO PIN_CFG(134, GPIO) | 384 | #define GPIO134_GPIO PIN_CFG(134, GPIO) |
385 | #define GPIO134_MC2_DAT3 PIN_CFG_PULL(134, ALT_A, UP) | 385 | #define GPIO134_MC2_DAT3 PIN_CFG_INPUT(134, ALT_A, PULLUP) |
386 | #define GPIO134_SM_ADQ11 PIN_CFG(134, ALT_B) | 386 | #define GPIO134_SM_ADQ11 PIN_CFG(134, ALT_B) |
387 | 387 | ||
388 | #define GPIO135_GPIO PIN_CFG(135, GPIO) | 388 | #define GPIO135_GPIO PIN_CFG(135, GPIO) |
389 | #define GPIO135_MC2_DAT4 PIN_CFG_PULL(135, ALT_A, UP) | 389 | #define GPIO135_MC2_DAT4 PIN_CFG_INPUT(135, ALT_A, PULLUP) |
390 | #define GPIO135_SM_ADQ12 PIN_CFG(135, ALT_B) | 390 | #define GPIO135_SM_ADQ12 PIN_CFG(135, ALT_B) |
391 | 391 | ||
392 | #define GPIO136_GPIO PIN_CFG(136, GPIO) | 392 | #define GPIO136_GPIO PIN_CFG(136, GPIO) |
393 | #define GPIO136_MC2_DAT5 PIN_CFG_PULL(136, ALT_A, UP) | 393 | #define GPIO136_MC2_DAT5 PIN_CFG_INPUT(136, ALT_A, PULLUP) |
394 | #define GPIO136_SM_ADQ13 PIN_CFG(136, ALT_B) | 394 | #define GPIO136_SM_ADQ13 PIN_CFG(136, ALT_B) |
395 | 395 | ||
396 | #define GPIO137_GPIO PIN_CFG(137, GPIO) | 396 | #define GPIO137_GPIO PIN_CFG(137, GPIO) |
397 | #define GPIO137_MC2_DAT6 PIN_CFG_PULL(137, ALT_A, UP) | 397 | #define GPIO137_MC2_DAT6 PIN_CFG_INPUT(137, ALT_A, PULLUP) |
398 | #define GPIO137_SM_ADQ14 PIN_CFG(137, ALT_B) | 398 | #define GPIO137_SM_ADQ14 PIN_CFG(137, ALT_B) |
399 | 399 | ||
400 | #define GPIO138_GPIO PIN_CFG(138, GPIO) | 400 | #define GPIO138_GPIO PIN_CFG(138, GPIO) |
401 | #define GPIO138_MC2_DAT7 PIN_CFG_PULL(138, ALT_A, UP) | 401 | #define GPIO138_MC2_DAT7 PIN_CFG_INPUT(138, ALT_A, PULLUP) |
402 | #define GPIO138_SM_ADQ15 PIN_CFG(138, ALT_B) | 402 | #define GPIO138_SM_ADQ15 PIN_CFG(138, ALT_B) |
403 | 403 | ||
404 | #define GPIO139_GPIO PIN_CFG(139, GPIO) | 404 | #define GPIO139_GPIO PIN_CFG(139, GPIO) |
@@ -434,10 +434,10 @@ | |||
434 | #define GPIO146_SSP0_TXD PIN_CFG(146, ALT_A) | 434 | #define GPIO146_SSP0_TXD PIN_CFG(146, ALT_A) |
435 | 435 | ||
436 | #define GPIO147_GPIO PIN_CFG(147, GPIO) | 436 | #define GPIO147_GPIO PIN_CFG(147, GPIO) |
437 | #define GPIO147_I2C0_SCL PIN_CFG_PULL(147, ALT_A, UP) | 437 | #define GPIO147_I2C0_SCL PIN_CFG_INPUT(147, ALT_A, PULLUP) |
438 | 438 | ||
439 | #define GPIO148_GPIO PIN_CFG(148, GPIO) | 439 | #define GPIO148_GPIO PIN_CFG(148, GPIO) |
440 | #define GPIO148_I2C0_SDA PIN_CFG_PULL(148, ALT_A, UP) | 440 | #define GPIO148_I2C0_SDA PIN_CFG_INPUT(148, ALT_A, PULLUP) |
441 | 441 | ||
442 | #define GPIO149_GPIO PIN_CFG(149, GPIO) | 442 | #define GPIO149_GPIO PIN_CFG(149, GPIO) |
443 | #define GPIO149_IP_GPIO0 PIN_CFG(149, ALT_A) | 443 | #define GPIO149_IP_GPIO0 PIN_CFG(149, ALT_A) |
@@ -459,82 +459,82 @@ | |||
459 | #define GPIO152_KP_O9 PIN_CFG(152, ALT_C) | 459 | #define GPIO152_KP_O9 PIN_CFG(152, ALT_C) |
460 | 460 | ||
461 | #define GPIO153_GPIO PIN_CFG(153, GPIO) | 461 | #define GPIO153_GPIO PIN_CFG(153, GPIO) |
462 | #define GPIO153_KP_I7 PIN_CFG_PULL(153, ALT_A, DOWN) | 462 | #define GPIO153_KP_I7 PIN_CFG_INPUT(153, ALT_A, PULLDOWN) |
463 | #define GPIO153_LCD_D24 PIN_CFG(153, ALT_B) | 463 | #define GPIO153_LCD_D24 PIN_CFG(153, ALT_B) |
464 | #define GPIO153_U2_RXD PIN_CFG(153, ALT_C) | 464 | #define GPIO153_U2_RXD PIN_CFG(153, ALT_C) |
465 | 465 | ||
466 | #define GPIO154_GPIO PIN_CFG(154, GPIO) | 466 | #define GPIO154_GPIO PIN_CFG(154, GPIO) |
467 | #define GPIO154_KP_I6 PIN_CFG_PULL(154, ALT_A, DOWN) | 467 | #define GPIO154_KP_I6 PIN_CFG_INPUT(154, ALT_A, PULLDOWN) |
468 | #define GPIO154_LCD_D25 PIN_CFG(154, ALT_B) | 468 | #define GPIO154_LCD_D25 PIN_CFG(154, ALT_B) |
469 | #define GPIO154_U2_TXD PIN_CFG(154, ALT_C) | 469 | #define GPIO154_U2_TXD PIN_CFG(154, ALT_C) |
470 | 470 | ||
471 | #define GPIO155_GPIO PIN_CFG(155, GPIO) | 471 | #define GPIO155_GPIO PIN_CFG(155, GPIO) |
472 | #define GPIO155_KP_I5 PIN_CFG_PULL(155, ALT_A, DOWN) | 472 | #define GPIO155_KP_I5 PIN_CFG_INPUT(155, ALT_A, PULLDOWN) |
473 | #define GPIO155_LCD_D26 PIN_CFG(155, ALT_B) | 473 | #define GPIO155_LCD_D26 PIN_CFG(155, ALT_B) |
474 | #define GPIO155_STMAPE_CLK PIN_CFG(155, ALT_C) | 474 | #define GPIO155_STMAPE_CLK PIN_CFG(155, ALT_C) |
475 | 475 | ||
476 | #define GPIO156_GPIO PIN_CFG(156, GPIO) | 476 | #define GPIO156_GPIO PIN_CFG(156, GPIO) |
477 | #define GPIO156_KP_I4 PIN_CFG_PULL(156, ALT_A, DOWN) | 477 | #define GPIO156_KP_I4 PIN_CFG_INPUT(156, ALT_A, PULLDOWN) |
478 | #define GPIO156_LCD_D27 PIN_CFG(156, ALT_B) | 478 | #define GPIO156_LCD_D27 PIN_CFG(156, ALT_B) |
479 | #define GPIO156_STMAPE_DAT3 PIN_CFG(156, ALT_C) | 479 | #define GPIO156_STMAPE_DAT3 PIN_CFG(156, ALT_C) |
480 | 480 | ||
481 | #define GPIO157_GPIO PIN_CFG(157, GPIO) | 481 | #define GPIO157_GPIO PIN_CFG(157, GPIO) |
482 | #define GPIO157_KP_O7 PIN_CFG_PULL(157, ALT_A, UP) | 482 | #define GPIO157_KP_O7 PIN_CFG_INPUT(157, ALT_A, PULLUP) |
483 | #define GPIO157_LCD_D28 PIN_CFG(157, ALT_B) | 483 | #define GPIO157_LCD_D28 PIN_CFG(157, ALT_B) |
484 | #define GPIO157_STMAPE_DAT2 PIN_CFG(157, ALT_C) | 484 | #define GPIO157_STMAPE_DAT2 PIN_CFG(157, ALT_C) |
485 | 485 | ||
486 | #define GPIO158_GPIO PIN_CFG(158, GPIO) | 486 | #define GPIO158_GPIO PIN_CFG(158, GPIO) |
487 | #define GPIO158_KP_O6 PIN_CFG_PULL(158, ALT_A, UP) | 487 | #define GPIO158_KP_O6 PIN_CFG_INPUT(158, ALT_A, PULLUP) |
488 | #define GPIO158_LCD_D29 PIN_CFG(158, ALT_B) | 488 | #define GPIO158_LCD_D29 PIN_CFG(158, ALT_B) |
489 | #define GPIO158_STMAPE_DAT1 PIN_CFG(158, ALT_C) | 489 | #define GPIO158_STMAPE_DAT1 PIN_CFG(158, ALT_C) |
490 | 490 | ||
491 | #define GPIO159_GPIO PIN_CFG(159, GPIO) | 491 | #define GPIO159_GPIO PIN_CFG(159, GPIO) |
492 | #define GPIO159_KP_O5 PIN_CFG_PULL(159, ALT_A, UP) | 492 | #define GPIO159_KP_O5 PIN_CFG_INPUT(159, ALT_A, PULLUP) |
493 | #define GPIO159_LCD_D30 PIN_CFG(159, ALT_B) | 493 | #define GPIO159_LCD_D30 PIN_CFG(159, ALT_B) |
494 | #define GPIO159_STMAPE_DAT0 PIN_CFG(159, ALT_C) | 494 | #define GPIO159_STMAPE_DAT0 PIN_CFG(159, ALT_C) |
495 | 495 | ||
496 | #define GPIO160_GPIO PIN_CFG(160, GPIO) | 496 | #define GPIO160_GPIO PIN_CFG(160, GPIO) |
497 | #define GPIO160_KP_O4 PIN_CFG_PULL(160, ALT_A, UP) | 497 | #define GPIO160_KP_O4 PIN_CFG_INPUT(160, ALT_A, PULLUP) |
498 | #define GPIO160_LCD_D31 PIN_CFG(160, ALT_B) | 498 | #define GPIO160_LCD_D31 PIN_CFG(160, ALT_B) |
499 | #define GPIO160_NONE PIN_CFG(160, ALT_C) | 499 | #define GPIO160_NONE PIN_CFG(160, ALT_C) |
500 | 500 | ||
501 | #define GPIO161_GPIO PIN_CFG(161, GPIO) | 501 | #define GPIO161_GPIO PIN_CFG(161, GPIO) |
502 | #define GPIO161_KP_I3 PIN_CFG_PULL(161, ALT_A, DOWN) | 502 | #define GPIO161_KP_I3 PIN_CFG_INPUT(161, ALT_A, PULLDOWN) |
503 | #define GPIO161_LCD_D32 PIN_CFG(161, ALT_B) | 503 | #define GPIO161_LCD_D32 PIN_CFG(161, ALT_B) |
504 | #define GPIO161_UARTMOD_RXD PIN_CFG(161, ALT_C) | 504 | #define GPIO161_UARTMOD_RXD PIN_CFG(161, ALT_C) |
505 | 505 | ||
506 | #define GPIO162_GPIO PIN_CFG(162, GPIO) | 506 | #define GPIO162_GPIO PIN_CFG(162, GPIO) |
507 | #define GPIO162_KP_I2 PIN_CFG_PULL(162, ALT_A, DOWN) | 507 | #define GPIO162_KP_I2 PIN_CFG_INPUT(162, ALT_A, PULLDOWN) |
508 | #define GPIO162_LCD_D33 PIN_CFG(162, ALT_B) | 508 | #define GPIO162_LCD_D33 PIN_CFG(162, ALT_B) |
509 | #define GPIO162_UARTMOD_TXD PIN_CFG(162, ALT_C) | 509 | #define GPIO162_UARTMOD_TXD PIN_CFG(162, ALT_C) |
510 | 510 | ||
511 | #define GPIO163_GPIO PIN_CFG(163, GPIO) | 511 | #define GPIO163_GPIO PIN_CFG(163, GPIO) |
512 | #define GPIO163_KP_I1 PIN_CFG_PULL(163, ALT_A, DOWN) | 512 | #define GPIO163_KP_I1 PIN_CFG_INPUT(163, ALT_A, PULLDOWN) |
513 | #define GPIO163_LCD_D34 PIN_CFG(163, ALT_B) | 513 | #define GPIO163_LCD_D34 PIN_CFG(163, ALT_B) |
514 | #define GPIO163_STMMOD_CLK PIN_CFG(163, ALT_C) | 514 | #define GPIO163_STMMOD_CLK PIN_CFG(163, ALT_C) |
515 | 515 | ||
516 | #define GPIO164_GPIO PIN_CFG(164, GPIO) | 516 | #define GPIO164_GPIO PIN_CFG(164, GPIO) |
517 | #define GPIO164_KP_I0 PIN_CFG_PULL(164, ALT_A, UP) | 517 | #define GPIO164_KP_I0 PIN_CFG_INPUT(164, ALT_A, PULLUP) |
518 | #define GPIO164_LCD_D35 PIN_CFG(164, ALT_B) | 518 | #define GPIO164_LCD_D35 PIN_CFG(164, ALT_B) |
519 | #define GPIO164_STMMOD_DAT3 PIN_CFG(164, ALT_C) | 519 | #define GPIO164_STMMOD_DAT3 PIN_CFG(164, ALT_C) |
520 | 520 | ||
521 | #define GPIO165_GPIO PIN_CFG(165, GPIO) | 521 | #define GPIO165_GPIO PIN_CFG(165, GPIO) |
522 | #define GPIO165_KP_O3 PIN_CFG_PULL(165, ALT_A, UP) | 522 | #define GPIO165_KP_O3 PIN_CFG_INPUT(165, ALT_A, PULLUP) |
523 | #define GPIO165_LCD_D36 PIN_CFG(165, ALT_B) | 523 | #define GPIO165_LCD_D36 PIN_CFG(165, ALT_B) |
524 | #define GPIO165_STMMOD_DAT2 PIN_CFG(165, ALT_C) | 524 | #define GPIO165_STMMOD_DAT2 PIN_CFG(165, ALT_C) |
525 | 525 | ||
526 | #define GPIO166_GPIO PIN_CFG(166, GPIO) | 526 | #define GPIO166_GPIO PIN_CFG(166, GPIO) |
527 | #define GPIO166_KP_O2 PIN_CFG_PULL(166, ALT_A, UP) | 527 | #define GPIO166_KP_O2 PIN_CFG_INPUT(166, ALT_A, PULLUP) |
528 | #define GPIO166_LCD_D37 PIN_CFG(166, ALT_B) | 528 | #define GPIO166_LCD_D37 PIN_CFG(166, ALT_B) |
529 | #define GPIO166_STMMOD_DAT1 PIN_CFG(166, ALT_C) | 529 | #define GPIO166_STMMOD_DAT1 PIN_CFG(166, ALT_C) |
530 | 530 | ||
531 | #define GPIO167_GPIO PIN_CFG(167, GPIO) | 531 | #define GPIO167_GPIO PIN_CFG(167, GPIO) |
532 | #define GPIO167_KP_O1 PIN_CFG_PULL(167, ALT_A, UP) | 532 | #define GPIO167_KP_O1 PIN_CFG_INPUT(167, ALT_A, PULLUP) |
533 | #define GPIO167_LCD_D38 PIN_CFG(167, ALT_B) | 533 | #define GPIO167_LCD_D38 PIN_CFG(167, ALT_B) |
534 | #define GPIO167_STMMOD_DAT0 PIN_CFG(167, ALT_C) | 534 | #define GPIO167_STMMOD_DAT0 PIN_CFG(167, ALT_C) |
535 | 535 | ||
536 | #define GPIO168_GPIO PIN_CFG(168, GPIO) | 536 | #define GPIO168_GPIO PIN_CFG(168, GPIO) |
537 | #define GPIO168_KP_O0 PIN_CFG_PULL(168, ALT_A, UP) | 537 | #define GPIO168_KP_O0 PIN_CFG_INPUT(168, ALT_A, PULLUP) |
538 | #define GPIO168_LCD_D39 PIN_CFG(168, ALT_B) | 538 | #define GPIO168_LCD_D39 PIN_CFG(168, ALT_B) |
539 | #define GPIO168_NONE PIN_CFG(168, ALT_C) | 539 | #define GPIO168_NONE PIN_CFG(168, ALT_C) |
540 | 540 | ||
@@ -569,39 +569,39 @@ | |||
569 | #define GPIO196_MSP2_RXD PIN_CFG(196, ALT_A) | 569 | #define GPIO196_MSP2_RXD PIN_CFG(196, ALT_A) |
570 | 570 | ||
571 | #define GPIO197_GPIO PIN_CFG(197, GPIO) | 571 | #define GPIO197_GPIO PIN_CFG(197, GPIO) |
572 | #define GPIO197_MC4_DAT3 PIN_CFG_PULL(197, ALT_A, UP) | 572 | #define GPIO197_MC4_DAT3 PIN_CFG_INPUT(197, ALT_A, PULLUP) |
573 | 573 | ||
574 | #define GPIO198_GPIO PIN_CFG(198, GPIO) | 574 | #define GPIO198_GPIO PIN_CFG(198, GPIO) |
575 | #define GPIO198_MC4_DAT2 PIN_CFG_PULL(198, ALT_A, UP) | 575 | #define GPIO198_MC4_DAT2 PIN_CFG_INPUT(198, ALT_A, PULLUP) |
576 | 576 | ||
577 | #define GPIO199_GPIO PIN_CFG(199, GPIO) | 577 | #define GPIO199_GPIO PIN_CFG(199, GPIO) |
578 | #define GPIO199_MC4_DAT1 PIN_CFG_PULL(199, ALT_A, UP) | 578 | #define GPIO199_MC4_DAT1 PIN_CFG_INPUT(199, ALT_A, PULLUP) |
579 | 579 | ||
580 | #define GPIO200_GPIO PIN_CFG(200, GPIO) | 580 | #define GPIO200_GPIO PIN_CFG(200, GPIO) |
581 | #define GPIO200_MC4_DAT0 PIN_CFG_PULL(200, ALT_A, UP) | 581 | #define GPIO200_MC4_DAT0 PIN_CFG_INPUT(200, ALT_A, PULLUP) |
582 | 582 | ||
583 | #define GPIO201_GPIO PIN_CFG(201, GPIO) | 583 | #define GPIO201_GPIO PIN_CFG(201, GPIO) |
584 | #define GPIO201_MC4_CMD PIN_CFG_PULL(201, ALT_A, UP) | 584 | #define GPIO201_MC4_CMD PIN_CFG_INPUT(201, ALT_A, PULLUP) |
585 | 585 | ||
586 | #define GPIO202_GPIO PIN_CFG(202, GPIO) | 586 | #define GPIO202_GPIO PIN_CFG(202, GPIO) |
587 | #define GPIO202_MC4_FBCLK PIN_CFG_PULL(202, ALT_A, UP) | 587 | #define GPIO202_MC4_FBCLK PIN_CFG_INPUT(202, ALT_A, PULLUP) |
588 | #define GPIO202_PWL PIN_CFG(202, ALT_B) | 588 | #define GPIO202_PWL PIN_CFG(202, ALT_B) |
589 | #define GPIO202_MC4_RSTN PIN_CFG(202, ALT_C) | 589 | #define GPIO202_MC4_RSTN PIN_CFG(202, ALT_C) |
590 | 590 | ||
591 | #define GPIO203_GPIO PIN_CFG(203, GPIO) | 591 | #define GPIO203_GPIO PIN_CFG(203, GPIO) |
592 | #define GPIO203_MC4_CLK PIN_CFG_PULL(203, ALT_A, UP) | 592 | #define GPIO203_MC4_CLK PIN_CFG_INPUT(203, ALT_A, PULLUP) |
593 | 593 | ||
594 | #define GPIO204_GPIO PIN_CFG(204, GPIO) | 594 | #define GPIO204_GPIO PIN_CFG(204, GPIO) |
595 | #define GPIO204_MC4_DAT7 PIN_CFG_PULL(204, ALT_A, UP) | 595 | #define GPIO204_MC4_DAT7 PIN_CFG_INPUT(204, ALT_A, PULLUP) |
596 | 596 | ||
597 | #define GPIO205_GPIO PIN_CFG(205, GPIO) | 597 | #define GPIO205_GPIO PIN_CFG(205, GPIO) |
598 | #define GPIO205_MC4_DAT6 PIN_CFG_PULL(205, ALT_A, UP) | 598 | #define GPIO205_MC4_DAT6 PIN_CFG_INPUT(205, ALT_A, PULLUP) |
599 | 599 | ||
600 | #define GPIO206_GPIO PIN_CFG(206, GPIO) | 600 | #define GPIO206_GPIO PIN_CFG(206, GPIO) |
601 | #define GPIO206_MC4_DAT5 PIN_CFG_PULL(206, ALT_A, UP) | 601 | #define GPIO206_MC4_DAT5 PIN_CFG_INPUT(206, ALT_A, PULLUP) |
602 | 602 | ||
603 | #define GPIO207_GPIO PIN_CFG(207, GPIO) | 603 | #define GPIO207_GPIO PIN_CFG(207, GPIO) |
604 | #define GPIO207_MC4_DAT4 PIN_CFG_PULL(207, ALT_A, UP) | 604 | #define GPIO207_MC4_DAT4 PIN_CFG_INPUT(207, ALT_A, PULLUP) |
605 | 605 | ||
606 | #define GPIO208_GPIO PIN_CFG(208, GPIO) | 606 | #define GPIO208_GPIO PIN_CFG(208, GPIO) |
607 | #define GPIO208_MC1_CLK PIN_CFG(208, ALT_A) | 607 | #define GPIO208_MC1_CLK PIN_CFG(208, ALT_A) |
@@ -632,21 +632,25 @@ | |||
632 | #define GPIO215_MC1_CMDDIR PIN_CFG(215, ALT_A) | 632 | #define GPIO215_MC1_CMDDIR PIN_CFG(215, ALT_A) |
633 | #define GPIO215_MC3_DAT2DIR PIN_CFG(215, ALT_B) | 633 | #define GPIO215_MC3_DAT2DIR PIN_CFG(215, ALT_B) |
634 | #define GPIO215_CLKOUT1 PIN_CFG(215, ALT_C) | 634 | #define GPIO215_CLKOUT1 PIN_CFG(215, ALT_C) |
635 | #define GPIO215_SPI2_TXD PIN_CFG(215, ALT_C) | ||
635 | 636 | ||
636 | #define GPIO216_GPIO PIN_CFG(216, GPIO) | 637 | #define GPIO216_GPIO PIN_CFG(216, GPIO) |
637 | #define GPIO216_MC1_DAT2DIR PIN_CFG(216, ALT_A) | 638 | #define GPIO216_MC1_DAT2DIR PIN_CFG(216, ALT_A) |
638 | #define GPIO216_MC3_CMDDIR PIN_CFG(216, ALT_B) | 639 | #define GPIO216_MC3_CMDDIR PIN_CFG(216, ALT_B) |
639 | #define GPIO216_I2C3_SDA PIN_CFG_PULL(216, ALT_C, UP) | 640 | #define GPIO216_I2C3_SDA PIN_CFG_INPUT(216, ALT_C, PULLUP) |
641 | #define GPIO216_SPI2_FRM PIN_CFG(216, ALT_C) | ||
640 | 642 | ||
641 | #define GPIO217_GPIO PIN_CFG(217, GPIO) | 643 | #define GPIO217_GPIO PIN_CFG(217, GPIO) |
642 | #define GPIO217_MC1_DAT0DIR PIN_CFG(217, ALT_A) | 644 | #define GPIO217_MC1_DAT0DIR PIN_CFG(217, ALT_A) |
643 | #define GPIO217_MC3_DAT31DIR PIN_CFG(217, ALT_B) | 645 | #define GPIO217_MC3_DAT31DIR PIN_CFG(217, ALT_B) |
644 | #define GPIO217_CLKOUT2 PIN_CFG(217, ALT_C) | 646 | #define GPIO217_CLKOUT2 PIN_CFG(217, ALT_C) |
647 | #define GPIO217_SPI2_CLK PIN_CFG(217, ALT_C) | ||
645 | 648 | ||
646 | #define GPIO218_GPIO PIN_CFG(218, GPIO) | 649 | #define GPIO218_GPIO PIN_CFG(218, GPIO) |
647 | #define GPIO218_MC1_DAT31DIR PIN_CFG(218, ALT_A) | 650 | #define GPIO218_MC1_DAT31DIR PIN_CFG(218, ALT_A) |
648 | #define GPIO218_MC3_DAT0DIR PIN_CFG(218, ALT_B) | 651 | #define GPIO218_MC3_DAT0DIR PIN_CFG(218, ALT_B) |
649 | #define GPIO218_I2C3_SCL PIN_CFG_PULL(218, ALT_C, UP) | 652 | #define GPIO218_I2C3_SCL PIN_CFG_INPUT(218, ALT_C, PULLUP) |
653 | #define GPIO218_SPI2_RXD PIN_CFG(218, ALT_C) | ||
650 | 654 | ||
651 | #define GPIO219_GPIO PIN_CFG(219, GPIO) | 655 | #define GPIO219_GPIO PIN_CFG(219, GPIO) |
652 | #define GPIO219_HSIR_FLA0 PIN_CFG(219, ALT_A) | 656 | #define GPIO219_HSIR_FLA0 PIN_CFG(219, ALT_A) |
@@ -694,12 +698,12 @@ | |||
694 | #define GPIO229_GPIO PIN_CFG(229, GPIO) | 698 | #define GPIO229_GPIO PIN_CFG(229, GPIO) |
695 | #define GPIO229_CLKOUT1 PIN_CFG(229, ALT_A) | 699 | #define GPIO229_CLKOUT1 PIN_CFG(229, ALT_A) |
696 | #define GPIO229_PWL PIN_CFG(229, ALT_B) | 700 | #define GPIO229_PWL PIN_CFG(229, ALT_B) |
697 | #define GPIO229_I2C3_SDA PIN_CFG_PULL(229, ALT_C, UP) | 701 | #define GPIO229_I2C3_SDA PIN_CFG_INPUT(229, ALT_C, PULLUP) |
698 | 702 | ||
699 | #define GPIO230_GPIO PIN_CFG(230, GPIO) | 703 | #define GPIO230_GPIO PIN_CFG(230, GPIO) |
700 | #define GPIO230_CLKOUT2 PIN_CFG(230, ALT_A) | 704 | #define GPIO230_CLKOUT2 PIN_CFG(230, ALT_A) |
701 | #define GPIO230_PWL PIN_CFG(230, ALT_B) | 705 | #define GPIO230_PWL PIN_CFG(230, ALT_B) |
702 | #define GPIO230_I2C3_SCL PIN_CFG_PULL(230, ALT_C, UP) | 706 | #define GPIO230_I2C3_SCL PIN_CFG_INPUT(230, ALT_C, PULLUP) |
703 | 707 | ||
704 | #define GPIO256_GPIO PIN_CFG(256, GPIO) | 708 | #define GPIO256_GPIO PIN_CFG(256, GPIO) |
705 | #define GPIO256_USB_NXT PIN_CFG(256, ALT_A) | 709 | #define GPIO256_USB_NXT PIN_CFG(256, ALT_A) |
diff --git a/arch/arm/mach-versatile/versatile_ab.c b/arch/arm/mach-versatile/versatile_ab.c index f8ae64b3eed0..fda4866703cd 100644 --- a/arch/arm/mach-versatile/versatile_ab.c +++ b/arch/arm/mach-versatile/versatile_ab.c | |||
@@ -35,7 +35,7 @@ | |||
35 | 35 | ||
36 | MACHINE_START(VERSATILE_AB, "ARM-Versatile AB") | 36 | MACHINE_START(VERSATILE_AB, "ARM-Versatile AB") |
37 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ | 37 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ |
38 | .boot_params = 0x00000100, | 38 | .atag_offset = 0x100, |
39 | .map_io = versatile_map_io, | 39 | .map_io = versatile_map_io, |
40 | .init_early = versatile_init_early, | 40 | .init_early = versatile_init_early, |
41 | .init_irq = versatile_init_irq, | 41 | .init_irq = versatile_init_irq, |
diff --git a/arch/arm/mach-versatile/versatile_pb.c b/arch/arm/mach-versatile/versatile_pb.c index 37c23dfeefb7..feaf9cbe60f6 100644 --- a/arch/arm/mach-versatile/versatile_pb.c +++ b/arch/arm/mach-versatile/versatile_pb.c | |||
@@ -103,7 +103,7 @@ static void __init versatile_pb_init(void) | |||
103 | 103 | ||
104 | MACHINE_START(VERSATILE_PB, "ARM-Versatile PB") | 104 | MACHINE_START(VERSATILE_PB, "ARM-Versatile PB") |
105 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ | 105 | /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ |
106 | .boot_params = 0x00000100, | 106 | .atag_offset = 0x100, |
107 | .map_io = versatile_map_io, | 107 | .map_io = versatile_map_io, |
108 | .init_early = versatile_init_early, | 108 | .init_early = versatile_init_early, |
109 | .init_irq = versatile_init_irq, | 109 | .init_irq = versatile_init_irq, |
diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c index d0d267a8d3f9..1fafc3244607 100644 --- a/arch/arm/mach-vexpress/v2m.c +++ b/arch/arm/mach-vexpress/v2m.c | |||
@@ -443,7 +443,7 @@ static void __init v2m_init(void) | |||
443 | } | 443 | } |
444 | 444 | ||
445 | MACHINE_START(VEXPRESS, "ARM-Versatile Express") | 445 | MACHINE_START(VEXPRESS, "ARM-Versatile Express") |
446 | .boot_params = PLAT_PHYS_OFFSET + 0x00000100, | 446 | .atag_offset = 0x100, |
447 | .map_io = v2m_map_io, | 447 | .map_io = v2m_map_io, |
448 | .init_early = v2m_init_early, | 448 | .init_early = v2m_init_early, |
449 | .init_irq = v2m_init_irq, | 449 | .init_irq = v2m_init_irq, |
diff --git a/arch/arm/mach-vt8500/bv07.c b/arch/arm/mach-vt8500/bv07.c index 94a261d86bf0..a464c7584411 100644 --- a/arch/arm/mach-vt8500/bv07.c +++ b/arch/arm/mach-vt8500/bv07.c | |||
@@ -68,7 +68,7 @@ void __init bv07_init(void) | |||
68 | } | 68 | } |
69 | 69 | ||
70 | MACHINE_START(BV07, "Benign BV07 Mini Netbook") | 70 | MACHINE_START(BV07, "Benign BV07 Mini Netbook") |
71 | .boot_params = 0x00000100, | 71 | .atag_offset = 0x100, |
72 | .reserve = vt8500_reserve_mem, | 72 | .reserve = vt8500_reserve_mem, |
73 | .map_io = vt8500_map_io, | 73 | .map_io = vt8500_map_io, |
74 | .init_irq = vt8500_init_irq, | 74 | .init_irq = vt8500_init_irq, |
diff --git a/arch/arm/mach-vt8500/wm8505_7in.c b/arch/arm/mach-vt8500/wm8505_7in.c index e73aadbcafd6..cf910a956080 100644 --- a/arch/arm/mach-vt8500/wm8505_7in.c +++ b/arch/arm/mach-vt8500/wm8505_7in.c | |||
@@ -68,7 +68,7 @@ void __init wm8505_7in_init(void) | |||
68 | } | 68 | } |
69 | 69 | ||
70 | MACHINE_START(WM8505_7IN_NETBOOK, "WM8505 7-inch generic netbook") | 70 | MACHINE_START(WM8505_7IN_NETBOOK, "WM8505 7-inch generic netbook") |
71 | .boot_params = 0x00000100, | 71 | .atag_offset = 0x100, |
72 | .reserve = wm8505_reserve_mem, | 72 | .reserve = wm8505_reserve_mem, |
73 | .map_io = wm8505_map_io, | 73 | .map_io = wm8505_map_io, |
74 | .init_irq = wm8505_init_irq, | 74 | .init_irq = wm8505_init_irq, |
diff --git a/arch/arm/mach-w90x900/mach-nuc910evb.c b/arch/arm/mach-w90x900/mach-nuc910evb.c index 30fccde94fb8..31c109018228 100644 --- a/arch/arm/mach-w90x900/mach-nuc910evb.c +++ b/arch/arm/mach-w90x900/mach-nuc910evb.c | |||
@@ -34,7 +34,6 @@ static void __init nuc910evb_init(void) | |||
34 | 34 | ||
35 | MACHINE_START(W90P910EVB, "W90P910EVB") | 35 | MACHINE_START(W90P910EVB, "W90P910EVB") |
36 | /* Maintainer: Wan ZongShun */ | 36 | /* Maintainer: Wan ZongShun */ |
37 | .boot_params = 0, | ||
38 | .map_io = nuc910evb_map_io, | 37 | .map_io = nuc910evb_map_io, |
39 | .init_irq = nuc900_init_irq, | 38 | .init_irq = nuc900_init_irq, |
40 | .init_machine = nuc910evb_init, | 39 | .init_machine = nuc910evb_init, |
diff --git a/arch/arm/mach-w90x900/mach-nuc950evb.c b/arch/arm/mach-w90x900/mach-nuc950evb.c index 590c99b96dc1..4062e55a57d8 100644 --- a/arch/arm/mach-w90x900/mach-nuc950evb.c +++ b/arch/arm/mach-w90x900/mach-nuc950evb.c | |||
@@ -37,7 +37,6 @@ static void __init nuc950evb_init(void) | |||
37 | 37 | ||
38 | MACHINE_START(W90P950EVB, "W90P950EVB") | 38 | MACHINE_START(W90P950EVB, "W90P950EVB") |
39 | /* Maintainer: Wan ZongShun */ | 39 | /* Maintainer: Wan ZongShun */ |
40 | .boot_params = 0, | ||
41 | .map_io = nuc950evb_map_io, | 40 | .map_io = nuc950evb_map_io, |
42 | .init_irq = nuc900_init_irq, | 41 | .init_irq = nuc900_init_irq, |
43 | .init_machine = nuc950evb_init, | 42 | .init_machine = nuc950evb_init, |
diff --git a/arch/arm/mach-w90x900/mach-nuc960evb.c b/arch/arm/mach-w90x900/mach-nuc960evb.c index e09c645d61b6..0ab9995d5b58 100644 --- a/arch/arm/mach-w90x900/mach-nuc960evb.c +++ b/arch/arm/mach-w90x900/mach-nuc960evb.c | |||
@@ -34,7 +34,6 @@ static void __init nuc960evb_init(void) | |||
34 | 34 | ||
35 | MACHINE_START(W90N960EVB, "W90N960EVB") | 35 | MACHINE_START(W90N960EVB, "W90N960EVB") |
36 | /* Maintainer: Wan ZongShun */ | 36 | /* Maintainer: Wan ZongShun */ |
37 | .boot_params = 0, | ||
38 | .map_io = nuc960evb_map_io, | 37 | .map_io = nuc960evb_map_io, |
39 | .init_irq = nuc900_init_irq, | 38 | .init_irq = nuc900_init_irq, |
40 | .init_machine = nuc960evb_init, | 39 | .init_machine = nuc960evb_init, |
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index c3ff82f92d9c..01f5987eb1ad 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c | |||
@@ -18,12 +18,14 @@ | |||
18 | #include <linux/device.h> | 18 | #include <linux/device.h> |
19 | #include <linux/dma-mapping.h> | 19 | #include <linux/dma-mapping.h> |
20 | #include <linux/highmem.h> | 20 | #include <linux/highmem.h> |
21 | #include <linux/slab.h> | ||
21 | 22 | ||
22 | #include <asm/memory.h> | 23 | #include <asm/memory.h> |
23 | #include <asm/highmem.h> | 24 | #include <asm/highmem.h> |
24 | #include <asm/cacheflush.h> | 25 | #include <asm/cacheflush.h> |
25 | #include <asm/tlbflush.h> | 26 | #include <asm/tlbflush.h> |
26 | #include <asm/sizes.h> | 27 | #include <asm/sizes.h> |
28 | #include <asm/mach/arch.h> | ||
27 | 29 | ||
28 | #include "mm.h" | 30 | #include "mm.h" |
29 | 31 | ||
@@ -117,26 +119,37 @@ static void __dma_free_buffer(struct page *page, size_t size) | |||
117 | } | 119 | } |
118 | 120 | ||
119 | #ifdef CONFIG_MMU | 121 | #ifdef CONFIG_MMU |
120 | /* Sanity check size */ | ||
121 | #if (CONSISTENT_DMA_SIZE % SZ_2M) | ||
122 | #error "CONSISTENT_DMA_SIZE must be multiple of 2MiB" | ||
123 | #endif | ||
124 | 122 | ||
125 | #define CONSISTENT_OFFSET(x) (((unsigned long)(x) - CONSISTENT_BASE) >> PAGE_SHIFT) | 123 | |
126 | #define CONSISTENT_PTE_INDEX(x) (((unsigned long)(x) - CONSISTENT_BASE) >> PGDIR_SHIFT) | 124 | #define CONSISTENT_OFFSET(x) (((unsigned long)(x) - consistent_base) >> PAGE_SHIFT) |
127 | #define NUM_CONSISTENT_PTES (CONSISTENT_DMA_SIZE >> PGDIR_SHIFT) | 125 | #define CONSISTENT_PTE_INDEX(x) (((unsigned long)(x) - consistent_base) >> PGDIR_SHIFT) |
128 | 126 | ||
129 | /* | 127 | /* |
130 | * These are the page tables (2MB each) covering uncached, DMA consistent allocations | 128 | * These are the page tables (2MB each) covering uncached, DMA consistent allocations |
131 | */ | 129 | */ |
132 | static pte_t *consistent_pte[NUM_CONSISTENT_PTES]; | 130 | static pte_t **consistent_pte; |
131 | |||
132 | #define DEFAULT_CONSISTENT_DMA_SIZE SZ_2M | ||
133 | |||
134 | unsigned long consistent_base = CONSISTENT_END - DEFAULT_CONSISTENT_DMA_SIZE; | ||
135 | |||
136 | void __init init_consistent_dma_size(unsigned long size) | ||
137 | { | ||
138 | unsigned long base = CONSISTENT_END - ALIGN(size, SZ_2M); | ||
139 | |||
140 | BUG_ON(consistent_pte); /* Check we're called before DMA region init */ | ||
141 | BUG_ON(base < VMALLOC_END); | ||
142 | |||
143 | /* Grow region to accommodate specified size */ | ||
144 | if (base < consistent_base) | ||
145 | consistent_base = base; | ||
146 | } | ||
133 | 147 | ||
134 | #include "vmregion.h" | 148 | #include "vmregion.h" |
135 | 149 | ||
136 | static struct arm_vmregion_head consistent_head = { | 150 | static struct arm_vmregion_head consistent_head = { |
137 | .vm_lock = __SPIN_LOCK_UNLOCKED(&consistent_head.vm_lock), | 151 | .vm_lock = __SPIN_LOCK_UNLOCKED(&consistent_head.vm_lock), |
138 | .vm_list = LIST_HEAD_INIT(consistent_head.vm_list), | 152 | .vm_list = LIST_HEAD_INIT(consistent_head.vm_list), |
139 | .vm_start = CONSISTENT_BASE, | ||
140 | .vm_end = CONSISTENT_END, | 153 | .vm_end = CONSISTENT_END, |
141 | }; | 154 | }; |
142 | 155 | ||
@@ -155,7 +168,17 @@ static int __init consistent_init(void) | |||
155 | pmd_t *pmd; | 168 | pmd_t *pmd; |
156 | pte_t *pte; | 169 | pte_t *pte; |
157 | int i = 0; | 170 | int i = 0; |
158 | u32 base = CONSISTENT_BASE; | 171 | unsigned long base = consistent_base; |
172 | unsigned long num_ptes = (CONSISTENT_END - base) >> PGDIR_SHIFT; | ||
173 | |||
174 | consistent_pte = kmalloc(num_ptes * sizeof(pte_t), GFP_KERNEL); | ||
175 | if (!consistent_pte) { | ||
176 | pr_err("%s: no memory\n", __func__); | ||
177 | return -ENOMEM; | ||
178 | } | ||
179 | |||
180 | pr_debug("DMA memory: 0x%08lx - 0x%08lx:\n", base, CONSISTENT_END); | ||
181 | consistent_head.vm_start = base; | ||
159 | 182 | ||
160 | do { | 183 | do { |
161 | pgd = pgd_offset(&init_mm, base); | 184 | pgd = pgd_offset(&init_mm, base); |
@@ -198,7 +221,7 @@ __dma_alloc_remap(struct page *page, size_t size, gfp_t gfp, pgprot_t prot) | |||
198 | size_t align; | 221 | size_t align; |
199 | int bit; | 222 | int bit; |
200 | 223 | ||
201 | if (!consistent_pte[0]) { | 224 | if (!consistent_pte) { |
202 | printk(KERN_ERR "%s: not initialised\n", __func__); | 225 | printk(KERN_ERR "%s: not initialised\n", __func__); |
203 | dump_stack(); | 226 | dump_stack(); |
204 | return NULL; | 227 | return NULL; |
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c index cc7e2d8be9aa..34409a08ba0d 100644 --- a/arch/arm/mm/init.c +++ b/arch/arm/mm/init.c | |||
@@ -653,9 +653,6 @@ void __init mem_init(void) | |||
653 | " ITCM : 0x%08lx - 0x%08lx (%4ld kB)\n" | 653 | " ITCM : 0x%08lx - 0x%08lx (%4ld kB)\n" |
654 | #endif | 654 | #endif |
655 | " fixmap : 0x%08lx - 0x%08lx (%4ld kB)\n" | 655 | " fixmap : 0x%08lx - 0x%08lx (%4ld kB)\n" |
656 | #ifdef CONFIG_MMU | ||
657 | " DMA : 0x%08lx - 0x%08lx (%4ld MB)\n" | ||
658 | #endif | ||
659 | " vmalloc : 0x%08lx - 0x%08lx (%4ld MB)\n" | 656 | " vmalloc : 0x%08lx - 0x%08lx (%4ld MB)\n" |
660 | " lowmem : 0x%08lx - 0x%08lx (%4ld MB)\n" | 657 | " lowmem : 0x%08lx - 0x%08lx (%4ld MB)\n" |
661 | #ifdef CONFIG_HIGHMEM | 658 | #ifdef CONFIG_HIGHMEM |
@@ -674,9 +671,6 @@ void __init mem_init(void) | |||
674 | MLK(ITCM_OFFSET, (unsigned long) itcm_end), | 671 | MLK(ITCM_OFFSET, (unsigned long) itcm_end), |
675 | #endif | 672 | #endif |
676 | MLK(FIXADDR_START, FIXADDR_TOP), | 673 | MLK(FIXADDR_START, FIXADDR_TOP), |
677 | #ifdef CONFIG_MMU | ||
678 | MLM(CONSISTENT_BASE, CONSISTENT_END), | ||
679 | #endif | ||
680 | MLM(VMALLOC_START, VMALLOC_END), | 674 | MLM(VMALLOC_START, VMALLOC_END), |
681 | MLM(PAGE_OFFSET, (unsigned long)high_memory), | 675 | MLM(PAGE_OFFSET, (unsigned long)high_memory), |
682 | #ifdef CONFIG_HIGHMEM | 676 | #ifdef CONFIG_HIGHMEM |
@@ -699,9 +693,6 @@ void __init mem_init(void) | |||
699 | * be detected at build time already. | 693 | * be detected at build time already. |
700 | */ | 694 | */ |
701 | #ifdef CONFIG_MMU | 695 | #ifdef CONFIG_MMU |
702 | BUILD_BUG_ON(VMALLOC_END > CONSISTENT_BASE); | ||
703 | BUG_ON(VMALLOC_END > CONSISTENT_BASE); | ||
704 | |||
705 | BUILD_BUG_ON(TASK_SIZE > MODULES_VADDR); | 696 | BUILD_BUG_ON(TASK_SIZE > MODULES_VADDR); |
706 | BUG_ON(TASK_SIZE > MODULES_VADDR); | 697 | BUG_ON(TASK_SIZE > MODULES_VADDR); |
707 | #endif | 698 | #endif |
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index 594d677b92c8..ea9c9f3e48bf 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c | |||
@@ -273,6 +273,14 @@ static struct mem_type mem_types[] = { | |||
273 | .prot_l1 = PMD_TYPE_TABLE, | 273 | .prot_l1 = PMD_TYPE_TABLE, |
274 | .domain = DOMAIN_KERNEL, | 274 | .domain = DOMAIN_KERNEL, |
275 | }, | 275 | }, |
276 | [MT_MEMORY_SO] = { | ||
277 | .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY | | ||
278 | L_PTE_MT_UNCACHED, | ||
279 | .prot_l1 = PMD_TYPE_TABLE, | ||
280 | .prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE | PMD_SECT_S | | ||
281 | PMD_SECT_UNCACHED | PMD_SECT_XN, | ||
282 | .domain = DOMAIN_KERNEL, | ||
283 | }, | ||
276 | }; | 284 | }; |
277 | 285 | ||
278 | const struct mem_type *get_mem_type(unsigned int type) | 286 | const struct mem_type *get_mem_type(unsigned int type) |
diff --git a/arch/arm/mm/proc-arm920.S b/arch/arm/mm/proc-arm920.S index 2e6849b41f66..88fb3d9e0640 100644 --- a/arch/arm/mm/proc-arm920.S +++ b/arch/arm/mm/proc-arm920.S | |||
@@ -379,31 +379,26 @@ ENTRY(cpu_arm920_set_pte_ext) | |||
379 | 379 | ||
380 | /* Suspend/resume support: taken from arch/arm/plat-s3c24xx/sleep.S */ | 380 | /* Suspend/resume support: taken from arch/arm/plat-s3c24xx/sleep.S */ |
381 | .globl cpu_arm920_suspend_size | 381 | .globl cpu_arm920_suspend_size |
382 | .equ cpu_arm920_suspend_size, 4 * 4 | 382 | .equ cpu_arm920_suspend_size, 4 * 3 |
383 | #ifdef CONFIG_PM_SLEEP | 383 | #ifdef CONFIG_PM_SLEEP |
384 | ENTRY(cpu_arm920_do_suspend) | 384 | ENTRY(cpu_arm920_do_suspend) |
385 | stmfd sp!, {r4 - r7, lr} | 385 | stmfd sp!, {r4 - r6, lr} |
386 | mrc p15, 0, r4, c13, c0, 0 @ PID | 386 | mrc p15, 0, r4, c13, c0, 0 @ PID |
387 | mrc p15, 0, r5, c3, c0, 0 @ Domain ID | 387 | mrc p15, 0, r5, c3, c0, 0 @ Domain ID |
388 | mrc p15, 0, r6, c2, c0, 0 @ TTB address | 388 | mrc p15, 0, r6, c1, c0, 0 @ Control register |
389 | mrc p15, 0, r7, c1, c0, 0 @ Control register | 389 | stmia r0, {r4 - r6} |
390 | stmia r0, {r4 - r7} | 390 | ldmfd sp!, {r4 - r6, pc} |
391 | ldmfd sp!, {r4 - r7, pc} | ||
392 | ENDPROC(cpu_arm920_do_suspend) | 391 | ENDPROC(cpu_arm920_do_suspend) |
393 | 392 | ||
394 | ENTRY(cpu_arm920_do_resume) | 393 | ENTRY(cpu_arm920_do_resume) |
395 | mov ip, #0 | 394 | mov ip, #0 |
396 | mcr p15, 0, ip, c8, c7, 0 @ invalidate I+D TLBs | 395 | mcr p15, 0, ip, c8, c7, 0 @ invalidate I+D TLBs |
397 | mcr p15, 0, ip, c7, c7, 0 @ invalidate I+D caches | 396 | mcr p15, 0, ip, c7, c7, 0 @ invalidate I+D caches |
398 | ldmia r0, {r4 - r7} | 397 | ldmia r0, {r4 - r6} |
399 | mcr p15, 0, r4, c13, c0, 0 @ PID | 398 | mcr p15, 0, r4, c13, c0, 0 @ PID |
400 | mcr p15, 0, r5, c3, c0, 0 @ Domain ID | 399 | mcr p15, 0, r5, c3, c0, 0 @ Domain ID |
401 | mcr p15, 0, r6, c2, c0, 0 @ TTB address | 400 | mcr p15, 0, r1, c2, c0, 0 @ TTB address |
402 | mov r0, r7 @ control register | 401 | mov r0, r6 @ control register |
403 | mov r2, r6, lsr #14 @ get TTB0 base | ||
404 | mov r2, r2, lsl #14 | ||
405 | ldr r3, =PMD_TYPE_SECT | PMD_SECT_BUFFERABLE | \ | ||
406 | PMD_SECT_CACHEABLE | PMD_BIT4 | PMD_SECT_AP_WRITE | ||
407 | b cpu_resume_mmu | 402 | b cpu_resume_mmu |
408 | ENDPROC(cpu_arm920_do_resume) | 403 | ENDPROC(cpu_arm920_do_resume) |
409 | #endif | 404 | #endif |
diff --git a/arch/arm/mm/proc-arm926.S b/arch/arm/mm/proc-arm926.S index cd8f79c3a282..9f8fd91f918a 100644 --- a/arch/arm/mm/proc-arm926.S +++ b/arch/arm/mm/proc-arm926.S | |||
@@ -394,31 +394,26 @@ ENTRY(cpu_arm926_set_pte_ext) | |||
394 | 394 | ||
395 | /* Suspend/resume support: taken from arch/arm/plat-s3c24xx/sleep.S */ | 395 | /* Suspend/resume support: taken from arch/arm/plat-s3c24xx/sleep.S */ |
396 | .globl cpu_arm926_suspend_size | 396 | .globl cpu_arm926_suspend_size |
397 | .equ cpu_arm926_suspend_size, 4 * 4 | 397 | .equ cpu_arm926_suspend_size, 4 * 3 |
398 | #ifdef CONFIG_PM_SLEEP | 398 | #ifdef CONFIG_PM_SLEEP |
399 | ENTRY(cpu_arm926_do_suspend) | 399 | ENTRY(cpu_arm926_do_suspend) |
400 | stmfd sp!, {r4 - r7, lr} | 400 | stmfd sp!, {r4 - r6, lr} |
401 | mrc p15, 0, r4, c13, c0, 0 @ PID | 401 | mrc p15, 0, r4, c13, c0, 0 @ PID |
402 | mrc p15, 0, r5, c3, c0, 0 @ Domain ID | 402 | mrc p15, 0, r5, c3, c0, 0 @ Domain ID |
403 | mrc p15, 0, r6, c2, c0, 0 @ TTB address | 403 | mrc p15, 0, r6, c1, c0, 0 @ Control register |
404 | mrc p15, 0, r7, c1, c0, 0 @ Control register | 404 | stmia r0, {r4 - r6} |
405 | stmia r0, {r4 - r7} | 405 | ldmfd sp!, {r4 - r6, pc} |
406 | ldmfd sp!, {r4 - r7, pc} | ||
407 | ENDPROC(cpu_arm926_do_suspend) | 406 | ENDPROC(cpu_arm926_do_suspend) |
408 | 407 | ||
409 | ENTRY(cpu_arm926_do_resume) | 408 | ENTRY(cpu_arm926_do_resume) |
410 | mov ip, #0 | 409 | mov ip, #0 |
411 | mcr p15, 0, ip, c8, c7, 0 @ invalidate I+D TLBs | 410 | mcr p15, 0, ip, c8, c7, 0 @ invalidate I+D TLBs |
412 | mcr p15, 0, ip, c7, c7, 0 @ invalidate I+D caches | 411 | mcr p15, 0, ip, c7, c7, 0 @ invalidate I+D caches |
413 | ldmia r0, {r4 - r7} | 412 | ldmia r0, {r4 - r6} |
414 | mcr p15, 0, r4, c13, c0, 0 @ PID | 413 | mcr p15, 0, r4, c13, c0, 0 @ PID |
415 | mcr p15, 0, r5, c3, c0, 0 @ Domain ID | 414 | mcr p15, 0, r5, c3, c0, 0 @ Domain ID |
416 | mcr p15, 0, r6, c2, c0, 0 @ TTB address | 415 | mcr p15, 0, r1, c2, c0, 0 @ TTB address |
417 | mov r0, r7 @ control register | 416 | mov r0, r6 @ control register |
418 | mov r2, r6, lsr #14 @ get TTB0 base | ||
419 | mov r2, r2, lsl #14 | ||
420 | ldr r3, =PMD_TYPE_SECT | PMD_SECT_BUFFERABLE | \ | ||
421 | PMD_SECT_CACHEABLE | PMD_BIT4 | PMD_SECT_AP_WRITE | ||
422 | b cpu_resume_mmu | 417 | b cpu_resume_mmu |
423 | ENDPROC(cpu_arm926_do_resume) | 418 | ENDPROC(cpu_arm926_do_resume) |
424 | #endif | 419 | #endif |
diff --git a/arch/arm/mm/proc-sa1100.S b/arch/arm/mm/proc-sa1100.S index 69e7f2ef7384..7d91545d089b 100644 --- a/arch/arm/mm/proc-sa1100.S +++ b/arch/arm/mm/proc-sa1100.S | |||
@@ -168,20 +168,19 @@ ENTRY(cpu_sa1100_set_pte_ext) | |||
168 | mov pc, lr | 168 | mov pc, lr |
169 | 169 | ||
170 | .globl cpu_sa1100_suspend_size | 170 | .globl cpu_sa1100_suspend_size |
171 | .equ cpu_sa1100_suspend_size, 4*4 | 171 | .equ cpu_sa1100_suspend_size, 4 * 3 |
172 | #ifdef CONFIG_PM_SLEEP | 172 | #ifdef CONFIG_PM_SLEEP |
173 | ENTRY(cpu_sa1100_do_suspend) | 173 | ENTRY(cpu_sa1100_do_suspend) |
174 | stmfd sp!, {r4 - r7, lr} | 174 | stmfd sp!, {r4 - r6, lr} |
175 | mrc p15, 0, r4, c3, c0, 0 @ domain ID | 175 | mrc p15, 0, r4, c3, c0, 0 @ domain ID |
176 | mrc p15, 0, r5, c2, c0, 0 @ translation table base addr | 176 | mrc p15, 0, r5, c13, c0, 0 @ PID |
177 | mrc p15, 0, r6, c13, c0, 0 @ PID | 177 | mrc p15, 0, r6, c1, c0, 0 @ control reg |
178 | mrc p15, 0, r7, c1, c0, 0 @ control reg | 178 | stmia r0, {r4 - r6} @ store cp regs |
179 | stmia r0, {r4 - r7} @ store cp regs | 179 | ldmfd sp!, {r4 - r6, pc} |
180 | ldmfd sp!, {r4 - r7, pc} | ||
181 | ENDPROC(cpu_sa1100_do_suspend) | 180 | ENDPROC(cpu_sa1100_do_suspend) |
182 | 181 | ||
183 | ENTRY(cpu_sa1100_do_resume) | 182 | ENTRY(cpu_sa1100_do_resume) |
184 | ldmia r0, {r4 - r7} @ load cp regs | 183 | ldmia r0, {r4 - r6} @ load cp regs |
185 | mov ip, #0 | 184 | mov ip, #0 |
186 | mcr p15, 0, ip, c8, c7, 0 @ flush I+D TLBs | 185 | mcr p15, 0, ip, c8, c7, 0 @ flush I+D TLBs |
187 | mcr p15, 0, ip, c7, c7, 0 @ flush I&D cache | 186 | mcr p15, 0, ip, c7, c7, 0 @ flush I&D cache |
@@ -189,13 +188,9 @@ ENTRY(cpu_sa1100_do_resume) | |||
189 | mcr p15, 0, ip, c9, c0, 5 @ allow user space to use RB | 188 | mcr p15, 0, ip, c9, c0, 5 @ allow user space to use RB |
190 | 189 | ||
191 | mcr p15, 0, r4, c3, c0, 0 @ domain ID | 190 | mcr p15, 0, r4, c3, c0, 0 @ domain ID |
192 | mcr p15, 0, r5, c2, c0, 0 @ translation table base addr | 191 | mcr p15, 0, r1, c2, c0, 0 @ translation table base addr |
193 | mcr p15, 0, r6, c13, c0, 0 @ PID | 192 | mcr p15, 0, r5, c13, c0, 0 @ PID |
194 | mov r0, r7 @ control register | 193 | mov r0, r6 @ control register |
195 | mov r2, r5, lsr #14 @ get TTB0 base | ||
196 | mov r2, r2, lsl #14 | ||
197 | ldr r3, =PMD_TYPE_SECT | PMD_SECT_BUFFERABLE | \ | ||
198 | PMD_SECT_CACHEABLE | PMD_SECT_AP_WRITE | ||
199 | b cpu_resume_mmu | 194 | b cpu_resume_mmu |
200 | ENDPROC(cpu_sa1100_do_resume) | 195 | ENDPROC(cpu_sa1100_do_resume) |
201 | #endif | 196 | #endif |
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S index a923aa0fd00d..d061d2fa5506 100644 --- a/arch/arm/mm/proc-v6.S +++ b/arch/arm/mm/proc-v6.S | |||
@@ -128,20 +128,18 @@ ENTRY(cpu_v6_set_pte_ext) | |||
128 | 128 | ||
129 | /* Suspend/resume support: taken from arch/arm/mach-s3c64xx/sleep.S */ | 129 | /* Suspend/resume support: taken from arch/arm/mach-s3c64xx/sleep.S */ |
130 | .globl cpu_v6_suspend_size | 130 | .globl cpu_v6_suspend_size |
131 | .equ cpu_v6_suspend_size, 4 * 8 | 131 | .equ cpu_v6_suspend_size, 4 * 6 |
132 | #ifdef CONFIG_PM_SLEEP | 132 | #ifdef CONFIG_PM_SLEEP |
133 | ENTRY(cpu_v6_do_suspend) | 133 | ENTRY(cpu_v6_do_suspend) |
134 | stmfd sp!, {r4 - r11, lr} | 134 | stmfd sp!, {r4 - r9, lr} |
135 | mrc p15, 0, r4, c13, c0, 0 @ FCSE/PID | 135 | mrc p15, 0, r4, c13, c0, 0 @ FCSE/PID |
136 | mrc p15, 0, r5, c13, c0, 1 @ Context ID | 136 | mrc p15, 0, r5, c3, c0, 0 @ Domain ID |
137 | mrc p15, 0, r6, c3, c0, 0 @ Domain ID | 137 | mrc p15, 0, r6, c2, c0, 1 @ Translation table base 1 |
138 | mrc p15, 0, r7, c2, c0, 0 @ Translation table base 0 | 138 | mrc p15, 0, r7, c1, c0, 1 @ auxiliary control register |
139 | mrc p15, 0, r8, c2, c0, 1 @ Translation table base 1 | 139 | mrc p15, 0, r8, c1, c0, 2 @ co-processor access control |
140 | mrc p15, 0, r9, c1, c0, 1 @ auxiliary control register | 140 | mrc p15, 0, r9, c1, c0, 0 @ control register |
141 | mrc p15, 0, r10, c1, c0, 2 @ co-processor access control | 141 | stmia r0, {r4 - r9} |
142 | mrc p15, 0, r11, c1, c0, 0 @ control register | 142 | ldmfd sp!, {r4- r9, pc} |
143 | stmia r0, {r4 - r11} | ||
144 | ldmfd sp!, {r4- r11, pc} | ||
145 | ENDPROC(cpu_v6_do_suspend) | 143 | ENDPROC(cpu_v6_do_suspend) |
146 | 144 | ||
147 | ENTRY(cpu_v6_do_resume) | 145 | ENTRY(cpu_v6_do_resume) |
@@ -150,25 +148,21 @@ ENTRY(cpu_v6_do_resume) | |||
150 | mcr p15, 0, ip, c7, c5, 0 @ invalidate I cache | 148 | mcr p15, 0, ip, c7, c5, 0 @ invalidate I cache |
151 | mcr p15, 0, ip, c7, c15, 0 @ clean+invalidate cache | 149 | mcr p15, 0, ip, c7, c15, 0 @ clean+invalidate cache |
152 | mcr p15, 0, ip, c7, c10, 4 @ drain write buffer | 150 | mcr p15, 0, ip, c7, c10, 4 @ drain write buffer |
153 | ldmia r0, {r4 - r11} | 151 | mcr p15, 0, ip, c13, c0, 1 @ set reserved context ID |
152 | ldmia r0, {r4 - r9} | ||
154 | mcr p15, 0, r4, c13, c0, 0 @ FCSE/PID | 153 | mcr p15, 0, r4, c13, c0, 0 @ FCSE/PID |
155 | mcr p15, 0, r5, c13, c0, 1 @ Context ID | 154 | mcr p15, 0, r5, c3, c0, 0 @ Domain ID |
156 | mcr p15, 0, r6, c3, c0, 0 @ Domain ID | 155 | ALT_SMP(orr r1, r1, #TTB_FLAGS_SMP) |
157 | mcr p15, 0, r7, c2, c0, 0 @ Translation table base 0 | 156 | ALT_UP(orr r1, r1, #TTB_FLAGS_UP) |
158 | mcr p15, 0, r8, c2, c0, 1 @ Translation table base 1 | 157 | mcr p15, 0, r1, c2, c0, 0 @ Translation table base 0 |
159 | mcr p15, 0, r9, c1, c0, 1 @ auxiliary control register | 158 | mcr p15, 0, r6, c2, c0, 1 @ Translation table base 1 |
160 | mcr p15, 0, r10, c1, c0, 2 @ co-processor access control | 159 | mcr p15, 0, r7, c1, c0, 1 @ auxiliary control register |
160 | mcr p15, 0, r8, c1, c0, 2 @ co-processor access control | ||
161 | mcr p15, 0, ip, c2, c0, 2 @ TTB control register | 161 | mcr p15, 0, ip, c2, c0, 2 @ TTB control register |
162 | mcr p15, 0, ip, c7, c5, 4 @ ISB | 162 | mcr p15, 0, ip, c7, c5, 4 @ ISB |
163 | mov r0, r11 @ control register | 163 | mov r0, r9 @ control register |
164 | mov r2, r7, lsr #14 @ get TTB0 base | ||
165 | mov r2, r2, lsl #14 | ||
166 | ldr r3, cpu_resume_l1_flags | ||
167 | b cpu_resume_mmu | 164 | b cpu_resume_mmu |
168 | ENDPROC(cpu_v6_do_resume) | 165 | ENDPROC(cpu_v6_do_resume) |
169 | cpu_resume_l1_flags: | ||
170 | ALT_SMP(.long PMD_TYPE_SECT | PMD_SECT_AP_WRITE | PMD_FLAGS_SMP) | ||
171 | ALT_UP(.long PMD_TYPE_SECT | PMD_SECT_AP_WRITE | PMD_FLAGS_UP) | ||
172 | #endif | 166 | #endif |
173 | 167 | ||
174 | string cpu_v6_name, "ARMv6-compatible processor" | 168 | string cpu_v6_name, "ARMv6-compatible processor" |
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S index 9049c0764db2..6af366ce0165 100644 --- a/arch/arm/mm/proc-v7.S +++ b/arch/arm/mm/proc-v7.S | |||
@@ -217,56 +217,50 @@ ENDPROC(cpu_v7_set_pte_ext) | |||
217 | 217 | ||
218 | /* Suspend/resume support: derived from arch/arm/mach-s5pv210/sleep.S */ | 218 | /* Suspend/resume support: derived from arch/arm/mach-s5pv210/sleep.S */ |
219 | .globl cpu_v7_suspend_size | 219 | .globl cpu_v7_suspend_size |
220 | .equ cpu_v7_suspend_size, 4 * 9 | 220 | .equ cpu_v7_suspend_size, 4 * 7 |
221 | #ifdef CONFIG_PM_SLEEP | 221 | #ifdef CONFIG_PM_SLEEP |
222 | ENTRY(cpu_v7_do_suspend) | 222 | ENTRY(cpu_v7_do_suspend) |
223 | stmfd sp!, {r4 - r11, lr} | 223 | stmfd sp!, {r4 - r10, lr} |
224 | mrc p15, 0, r4, c13, c0, 0 @ FCSE/PID | 224 | mrc p15, 0, r4, c13, c0, 0 @ FCSE/PID |
225 | mrc p15, 0, r5, c13, c0, 1 @ Context ID | 225 | mrc p15, 0, r5, c13, c0, 3 @ User r/o thread ID |
226 | mrc p15, 0, r6, c13, c0, 3 @ User r/o thread ID | 226 | stmia r0!, {r4 - r5} |
227 | stmia r0!, {r4 - r6} | ||
228 | mrc p15, 0, r6, c3, c0, 0 @ Domain ID | 227 | mrc p15, 0, r6, c3, c0, 0 @ Domain ID |
229 | mrc p15, 0, r7, c2, c0, 0 @ TTB 0 | 228 | mrc p15, 0, r7, c2, c0, 1 @ TTB 1 |
230 | mrc p15, 0, r8, c2, c0, 1 @ TTB 1 | 229 | mrc p15, 0, r8, c1, c0, 0 @ Control register |
231 | mrc p15, 0, r9, c1, c0, 0 @ Control register | 230 | mrc p15, 0, r9, c1, c0, 1 @ Auxiliary control register |
232 | mrc p15, 0, r10, c1, c0, 1 @ Auxiliary control register | 231 | mrc p15, 0, r10, c1, c0, 2 @ Co-processor access control |
233 | mrc p15, 0, r11, c1, c0, 2 @ Co-processor access control | 232 | stmia r0, {r6 - r10} |
234 | stmia r0, {r6 - r11} | 233 | ldmfd sp!, {r4 - r10, pc} |
235 | ldmfd sp!, {r4 - r11, pc} | ||
236 | ENDPROC(cpu_v7_do_suspend) | 234 | ENDPROC(cpu_v7_do_suspend) |
237 | 235 | ||
238 | ENTRY(cpu_v7_do_resume) | 236 | ENTRY(cpu_v7_do_resume) |
239 | mov ip, #0 | 237 | mov ip, #0 |
240 | mcr p15, 0, ip, c8, c7, 0 @ invalidate TLBs | 238 | mcr p15, 0, ip, c8, c7, 0 @ invalidate TLBs |
241 | mcr p15, 0, ip, c7, c5, 0 @ invalidate I cache | 239 | mcr p15, 0, ip, c7, c5, 0 @ invalidate I cache |
242 | ldmia r0!, {r4 - r6} | 240 | mcr p15, 0, ip, c13, c0, 1 @ set reserved context ID |
241 | ldmia r0!, {r4 - r5} | ||
243 | mcr p15, 0, r4, c13, c0, 0 @ FCSE/PID | 242 | mcr p15, 0, r4, c13, c0, 0 @ FCSE/PID |
244 | mcr p15, 0, r5, c13, c0, 1 @ Context ID | 243 | mcr p15, 0, r5, c13, c0, 3 @ User r/o thread ID |
245 | mcr p15, 0, r6, c13, c0, 3 @ User r/o thread ID | 244 | ldmia r0, {r6 - r10} |
246 | ldmia r0, {r6 - r11} | ||
247 | mcr p15, 0, r6, c3, c0, 0 @ Domain ID | 245 | mcr p15, 0, r6, c3, c0, 0 @ Domain ID |
248 | mcr p15, 0, r7, c2, c0, 0 @ TTB 0 | 246 | ALT_SMP(orr r1, r1, #TTB_FLAGS_SMP) |
249 | mcr p15, 0, r8, c2, c0, 1 @ TTB 1 | 247 | ALT_UP(orr r1, r1, #TTB_FLAGS_UP) |
248 | mcr p15, 0, r1, c2, c0, 0 @ TTB 0 | ||
249 | mcr p15, 0, r7, c2, c0, 1 @ TTB 1 | ||
250 | mcr p15, 0, ip, c2, c0, 2 @ TTB control register | 250 | mcr p15, 0, ip, c2, c0, 2 @ TTB control register |
251 | mrc p15, 0, r4, c1, c0, 1 @ Read Auxiliary control register | 251 | mrc p15, 0, r4, c1, c0, 1 @ Read Auxiliary control register |
252 | teq r4, r10 @ Is it already set? | 252 | teq r4, r9 @ Is it already set? |
253 | mcrne p15, 0, r10, c1, c0, 1 @ No, so write it | 253 | mcrne p15, 0, r9, c1, c0, 1 @ No, so write it |
254 | mcr p15, 0, r11, c1, c0, 2 @ Co-processor access control | 254 | mcr p15, 0, r10, c1, c0, 2 @ Co-processor access control |
255 | ldr r4, =PRRR @ PRRR | 255 | ldr r4, =PRRR @ PRRR |
256 | ldr r5, =NMRR @ NMRR | 256 | ldr r5, =NMRR @ NMRR |
257 | mcr p15, 0, r4, c10, c2, 0 @ write PRRR | 257 | mcr p15, 0, r4, c10, c2, 0 @ write PRRR |
258 | mcr p15, 0, r5, c10, c2, 1 @ write NMRR | 258 | mcr p15, 0, r5, c10, c2, 1 @ write NMRR |
259 | isb | 259 | isb |
260 | dsb | 260 | dsb |
261 | mov r0, r9 @ control register | 261 | mov r0, r8 @ control register |
262 | mov r2, r7, lsr #14 @ get TTB0 base | ||
263 | mov r2, r2, lsl #14 | ||
264 | ldr r3, cpu_resume_l1_flags | ||
265 | b cpu_resume_mmu | 262 | b cpu_resume_mmu |
266 | ENDPROC(cpu_v7_do_resume) | 263 | ENDPROC(cpu_v7_do_resume) |
267 | cpu_resume_l1_flags: | ||
268 | ALT_SMP(.long PMD_TYPE_SECT | PMD_SECT_AP_WRITE | PMD_FLAGS_SMP) | ||
269 | ALT_UP(.long PMD_TYPE_SECT | PMD_SECT_AP_WRITE | PMD_FLAGS_UP) | ||
270 | #endif | 264 | #endif |
271 | 265 | ||
272 | __CPUINIT | 266 | __CPUINIT |
diff --git a/arch/arm/mm/proc-xsc3.S b/arch/arm/mm/proc-xsc3.S index 755e1bf22681..abf0507a08ae 100644 --- a/arch/arm/mm/proc-xsc3.S +++ b/arch/arm/mm/proc-xsc3.S | |||
@@ -406,24 +406,23 @@ ENTRY(cpu_xsc3_set_pte_ext) | |||
406 | .align | 406 | .align |
407 | 407 | ||
408 | .globl cpu_xsc3_suspend_size | 408 | .globl cpu_xsc3_suspend_size |
409 | .equ cpu_xsc3_suspend_size, 4 * 7 | 409 | .equ cpu_xsc3_suspend_size, 4 * 6 |
410 | #ifdef CONFIG_PM_SLEEP | 410 | #ifdef CONFIG_PM_SLEEP |
411 | ENTRY(cpu_xsc3_do_suspend) | 411 | ENTRY(cpu_xsc3_do_suspend) |
412 | stmfd sp!, {r4 - r10, lr} | 412 | stmfd sp!, {r4 - r9, lr} |
413 | mrc p14, 0, r4, c6, c0, 0 @ clock configuration, for turbo mode | 413 | mrc p14, 0, r4, c6, c0, 0 @ clock configuration, for turbo mode |
414 | mrc p15, 0, r5, c15, c1, 0 @ CP access reg | 414 | mrc p15, 0, r5, c15, c1, 0 @ CP access reg |
415 | mrc p15, 0, r6, c13, c0, 0 @ PID | 415 | mrc p15, 0, r6, c13, c0, 0 @ PID |
416 | mrc p15, 0, r7, c3, c0, 0 @ domain ID | 416 | mrc p15, 0, r7, c3, c0, 0 @ domain ID |
417 | mrc p15, 0, r8, c2, c0, 0 @ translation table base addr | 417 | mrc p15, 0, r8, c1, c0, 1 @ auxiliary control reg |
418 | mrc p15, 0, r9, c1, c0, 1 @ auxiliary control reg | 418 | mrc p15, 0, r9, c1, c0, 0 @ control reg |
419 | mrc p15, 0, r10, c1, c0, 0 @ control reg | ||
420 | bic r4, r4, #2 @ clear frequency change bit | 419 | bic r4, r4, #2 @ clear frequency change bit |
421 | stmia r0, {r4 - r10} @ store cp regs | 420 | stmia r0, {r4 - r9} @ store cp regs |
422 | ldmia sp!, {r4 - r10, pc} | 421 | ldmia sp!, {r4 - r9, pc} |
423 | ENDPROC(cpu_xsc3_do_suspend) | 422 | ENDPROC(cpu_xsc3_do_suspend) |
424 | 423 | ||
425 | ENTRY(cpu_xsc3_do_resume) | 424 | ENTRY(cpu_xsc3_do_resume) |
426 | ldmia r0, {r4 - r10} @ load cp regs | 425 | ldmia r0, {r4 - r9} @ load cp regs |
427 | mov ip, #0 | 426 | mov ip, #0 |
428 | mcr p15, 0, ip, c7, c7, 0 @ invalidate I & D caches, BTB | 427 | mcr p15, 0, ip, c7, c7, 0 @ invalidate I & D caches, BTB |
429 | mcr p15, 0, ip, c7, c10, 4 @ drain write (&fill) buffer | 428 | mcr p15, 0, ip, c7, c10, 4 @ drain write (&fill) buffer |
@@ -433,15 +432,10 @@ ENTRY(cpu_xsc3_do_resume) | |||
433 | mcr p15, 0, r5, c15, c1, 0 @ CP access reg | 432 | mcr p15, 0, r5, c15, c1, 0 @ CP access reg |
434 | mcr p15, 0, r6, c13, c0, 0 @ PID | 433 | mcr p15, 0, r6, c13, c0, 0 @ PID |
435 | mcr p15, 0, r7, c3, c0, 0 @ domain ID | 434 | mcr p15, 0, r7, c3, c0, 0 @ domain ID |
436 | mcr p15, 0, r8, c2, c0, 0 @ translation table base addr | 435 | orr r1, r1, #0x18 @ cache the page table in L2 |
437 | mcr p15, 0, r9, c1, c0, 1 @ auxiliary control reg | 436 | mcr p15, 0, r1, c2, c0, 0 @ translation table base addr |
438 | 437 | mcr p15, 0, r8, c1, c0, 1 @ auxiliary control reg | |
439 | @ temporarily map resume_turn_on_mmu into the page table, | 438 | mov r0, r9 @ control register |
440 | @ otherwise prefetch abort occurs after MMU is turned on | ||
441 | mov r0, r10 @ control register | ||
442 | mov r2, r8, lsr #14 @ get TTB0 base | ||
443 | mov r2, r2, lsl #14 | ||
444 | ldr r3, =0x542e @ section flags | ||
445 | b cpu_resume_mmu | 439 | b cpu_resume_mmu |
446 | ENDPROC(cpu_xsc3_do_resume) | 440 | ENDPROC(cpu_xsc3_do_resume) |
447 | #endif | 441 | #endif |
diff --git a/arch/arm/mm/proc-xscale.S b/arch/arm/mm/proc-xscale.S index fbc06e55b87a..3277904bebaf 100644 --- a/arch/arm/mm/proc-xscale.S +++ b/arch/arm/mm/proc-xscale.S | |||
@@ -520,24 +520,23 @@ ENTRY(cpu_xscale_set_pte_ext) | |||
520 | .align | 520 | .align |
521 | 521 | ||
522 | .globl cpu_xscale_suspend_size | 522 | .globl cpu_xscale_suspend_size |
523 | .equ cpu_xscale_suspend_size, 4 * 7 | 523 | .equ cpu_xscale_suspend_size, 4 * 6 |
524 | #ifdef CONFIG_PM_SLEEP | 524 | #ifdef CONFIG_PM_SLEEP |
525 | ENTRY(cpu_xscale_do_suspend) | 525 | ENTRY(cpu_xscale_do_suspend) |
526 | stmfd sp!, {r4 - r10, lr} | 526 | stmfd sp!, {r4 - r9, lr} |
527 | mrc p14, 0, r4, c6, c0, 0 @ clock configuration, for turbo mode | 527 | mrc p14, 0, r4, c6, c0, 0 @ clock configuration, for turbo mode |
528 | mrc p15, 0, r5, c15, c1, 0 @ CP access reg | 528 | mrc p15, 0, r5, c15, c1, 0 @ CP access reg |
529 | mrc p15, 0, r6, c13, c0, 0 @ PID | 529 | mrc p15, 0, r6, c13, c0, 0 @ PID |
530 | mrc p15, 0, r7, c3, c0, 0 @ domain ID | 530 | mrc p15, 0, r7, c3, c0, 0 @ domain ID |
531 | mrc p15, 0, r8, c2, c0, 0 @ translation table base addr | 531 | mrc p15, 0, r8, c1, c1, 0 @ auxiliary control reg |
532 | mrc p15, 0, r9, c1, c1, 0 @ auxiliary control reg | 532 | mrc p15, 0, r9, c1, c0, 0 @ control reg |
533 | mrc p15, 0, r10, c1, c0, 0 @ control reg | ||
534 | bic r4, r4, #2 @ clear frequency change bit | 533 | bic r4, r4, #2 @ clear frequency change bit |
535 | stmia r0, {r4 - r10} @ store cp regs | 534 | stmia r0, {r4 - r9} @ store cp regs |
536 | ldmfd sp!, {r4 - r10, pc} | 535 | ldmfd sp!, {r4 - r9, pc} |
537 | ENDPROC(cpu_xscale_do_suspend) | 536 | ENDPROC(cpu_xscale_do_suspend) |
538 | 537 | ||
539 | ENTRY(cpu_xscale_do_resume) | 538 | ENTRY(cpu_xscale_do_resume) |
540 | ldmia r0, {r4 - r10} @ load cp regs | 539 | ldmia r0, {r4 - r9} @ load cp regs |
541 | mov ip, #0 | 540 | mov ip, #0 |
542 | mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs | 541 | mcr p15, 0, ip, c8, c7, 0 @ invalidate I & D TLBs |
543 | mcr p15, 0, ip, c7, c7, 0 @ invalidate I & D caches, BTB | 542 | mcr p15, 0, ip, c7, c7, 0 @ invalidate I & D caches, BTB |
@@ -545,13 +544,9 @@ ENTRY(cpu_xscale_do_resume) | |||
545 | mcr p15, 0, r5, c15, c1, 0 @ CP access reg | 544 | mcr p15, 0, r5, c15, c1, 0 @ CP access reg |
546 | mcr p15, 0, r6, c13, c0, 0 @ PID | 545 | mcr p15, 0, r6, c13, c0, 0 @ PID |
547 | mcr p15, 0, r7, c3, c0, 0 @ domain ID | 546 | mcr p15, 0, r7, c3, c0, 0 @ domain ID |
548 | mcr p15, 0, r8, c2, c0, 0 @ translation table base addr | 547 | mcr p15, 0, r1, c2, c0, 0 @ translation table base addr |
549 | mcr p15, 0, r9, c1, c1, 0 @ auxiliary control reg | 548 | mcr p15, 0, r8, c1, c1, 0 @ auxiliary control reg |
550 | mov r0, r10 @ control register | 549 | mov r0, r9 @ control register |
551 | mov r2, r8, lsr #14 @ get TTB0 base | ||
552 | mov r2, r2, lsl #14 | ||
553 | ldr r3, =PMD_TYPE_SECT | PMD_SECT_BUFFERABLE | \ | ||
554 | PMD_SECT_CACHEABLE | PMD_SECT_AP_WRITE | ||
555 | b cpu_resume_mmu | 550 | b cpu_resume_mmu |
556 | ENDPROC(cpu_xscale_do_resume) | 551 | ENDPROC(cpu_xscale_do_resume) |
557 | #endif | 552 | #endif |
diff --git a/arch/arm/plat-mxc/audmux-v2.c b/arch/arm/plat-mxc/audmux-v2.c index 175e3647bb27..8cced35009bd 100644 --- a/arch/arm/plat-mxc/audmux-v2.c +++ b/arch/arm/plat-mxc/audmux-v2.c | |||
@@ -187,18 +187,11 @@ EXPORT_SYMBOL_GPL(mxc_audmux_v2_configure_port); | |||
187 | static int mxc_audmux_v2_init(void) | 187 | static int mxc_audmux_v2_init(void) |
188 | { | 188 | { |
189 | int ret; | 189 | int ret; |
190 | #if defined(CONFIG_ARCH_MX5) | ||
191 | if (cpu_is_mx51()) { | 190 | if (cpu_is_mx51()) { |
192 | audmux_base = MX51_IO_ADDRESS(MX51_AUDMUX_BASE_ADDR); | 191 | audmux_base = MX51_IO_ADDRESS(MX51_AUDMUX_BASE_ADDR); |
193 | ret = 0; | 192 | } else if (cpu_is_mx31()) { |
194 | return ret; | ||
195 | } | ||
196 | #endif | ||
197 | #if defined(CONFIG_ARCH_MX3) | ||
198 | if (cpu_is_mx31()) | ||
199 | audmux_base = MX31_IO_ADDRESS(MX31_AUDMUX_BASE_ADDR); | 193 | audmux_base = MX31_IO_ADDRESS(MX31_AUDMUX_BASE_ADDR); |
200 | 194 | } else if (cpu_is_mx35()) { | |
201 | else if (cpu_is_mx35()) { | ||
202 | audmux_clk = clk_get(NULL, "audmux"); | 195 | audmux_clk = clk_get(NULL, "audmux"); |
203 | if (IS_ERR(audmux_clk)) { | 196 | if (IS_ERR(audmux_clk)) { |
204 | ret = PTR_ERR(audmux_clk); | 197 | ret = PTR_ERR(audmux_clk); |
@@ -207,10 +200,7 @@ static int mxc_audmux_v2_init(void) | |||
207 | return ret; | 200 | return ret; |
208 | } | 201 | } |
209 | audmux_base = MX35_IO_ADDRESS(MX35_AUDMUX_BASE_ADDR); | 202 | audmux_base = MX35_IO_ADDRESS(MX35_AUDMUX_BASE_ADDR); |
210 | } | 203 | } else if (cpu_is_mx25()) { |
211 | #endif | ||
212 | #if defined(CONFIG_SOC_IMX25) | ||
213 | if (cpu_is_mx25()) { | ||
214 | audmux_clk = clk_get(NULL, "audmux"); | 204 | audmux_clk = clk_get(NULL, "audmux"); |
215 | if (IS_ERR(audmux_clk)) { | 205 | if (IS_ERR(audmux_clk)) { |
216 | ret = PTR_ERR(audmux_clk); | 206 | ret = PTR_ERR(audmux_clk); |
@@ -220,7 +210,7 @@ static int mxc_audmux_v2_init(void) | |||
220 | } | 210 | } |
221 | audmux_base = MX25_IO_ADDRESS(MX25_AUDMUX_BASE_ADDR); | 211 | audmux_base = MX25_IO_ADDRESS(MX25_AUDMUX_BASE_ADDR); |
222 | } | 212 | } |
223 | #endif /* if defined(CONFIG_SOC_IMX25) */ | 213 | |
224 | audmux_debugfs_init(); | 214 | audmux_debugfs_init(); |
225 | 215 | ||
226 | return 0; | 216 | return 0; |
diff --git a/arch/arm/plat-mxc/devices.c b/arch/arm/plat-mxc/devices.c index 0d6ed31bdbf2..5aaa8c5f3420 100644 --- a/arch/arm/plat-mxc/devices.c +++ b/arch/arm/plat-mxc/devices.c | |||
@@ -23,20 +23,6 @@ | |||
23 | #include <linux/platform_device.h> | 23 | #include <linux/platform_device.h> |
24 | #include <mach/common.h> | 24 | #include <mach/common.h> |
25 | 25 | ||
26 | int __init mxc_register_device(struct platform_device *pdev, void *data) | ||
27 | { | ||
28 | int ret; | ||
29 | |||
30 | pdev->dev.platform_data = data; | ||
31 | |||
32 | ret = platform_device_register(pdev); | ||
33 | if (ret) | ||
34 | pr_debug("Unable to register platform device '%s': %d\n", | ||
35 | pdev->name, ret); | ||
36 | |||
37 | return ret; | ||
38 | } | ||
39 | |||
40 | struct platform_device *__init imx_add_platform_device_dmamask( | 26 | struct platform_device *__init imx_add_platform_device_dmamask( |
41 | const char *name, int id, | 27 | const char *name, int id, |
42 | const struct resource *res, unsigned int num_resources, | 28 | const struct resource *res, unsigned int num_resources, |
diff --git a/arch/arm/plat-mxc/devices/Kconfig b/arch/arm/plat-mxc/devices/Kconfig index bd294add932c..39b08957e8ad 100644 --- a/arch/arm/plat-mxc/devices/Kconfig +++ b/arch/arm/plat-mxc/devices/Kconfig | |||
@@ -1,6 +1,6 @@ | |||
1 | config IMX_HAVE_PLATFORM_FEC | 1 | config IMX_HAVE_PLATFORM_FEC |
2 | bool | 2 | bool |
3 | default y if ARCH_MX25 || SOC_IMX27 || SOC_IMX35 || SOC_IMX51 || SOC_IMX53 | 3 | default y if ARCH_MX25 || SOC_IMX27 || SOC_IMX35 || SOC_IMX50 || SOC_IMX51 || SOC_IMX53 |
4 | 4 | ||
5 | config IMX_HAVE_PLATFORM_FLEXCAN | 5 | config IMX_HAVE_PLATFORM_FLEXCAN |
6 | select HAVE_CAN_FLEXCAN if CAN | 6 | select HAVE_CAN_FLEXCAN if CAN |
diff --git a/arch/arm/plat-mxc/devices/platform-fsl-usb2-udc.c b/arch/arm/plat-mxc/devices/platform-fsl-usb2-udc.c index 23ce08e6ffd2..848038f301fd 100644 --- a/arch/arm/plat-mxc/devices/platform-fsl-usb2-udc.c +++ b/arch/arm/plat-mxc/devices/platform-fsl-usb2-udc.c | |||
@@ -36,6 +36,11 @@ const struct imx_fsl_usb2_udc_data imx35_fsl_usb2_udc_data __initconst = | |||
36 | imx_fsl_usb2_udc_data_entry_single(MX35); | 36 | imx_fsl_usb2_udc_data_entry_single(MX35); |
37 | #endif /* ifdef CONFIG_SOC_IMX35 */ | 37 | #endif /* ifdef CONFIG_SOC_IMX35 */ |
38 | 38 | ||
39 | #ifdef CONFIG_SOC_IMX51 | ||
40 | const struct imx_fsl_usb2_udc_data imx51_fsl_usb2_udc_data __initconst = | ||
41 | imx_fsl_usb2_udc_data_entry_single(MX51); | ||
42 | #endif | ||
43 | |||
39 | struct platform_device *__init imx_add_fsl_usb2_udc( | 44 | struct platform_device *__init imx_add_fsl_usb2_udc( |
40 | const struct imx_fsl_usb2_udc_data *data, | 45 | const struct imx_fsl_usb2_udc_data *data, |
41 | const struct fsl_usb2_platform_data *pdata) | 46 | const struct fsl_usb2_platform_data *pdata) |
diff --git a/arch/arm/plat-mxc/devices/platform-imx-i2c.c b/arch/arm/plat-mxc/devices/platform-imx-i2c.c index afe60f7244a8..19ad580c0be3 100644 --- a/arch/arm/plat-mxc/devices/platform-imx-i2c.c +++ b/arch/arm/plat-mxc/devices/platform-imx-i2c.c | |||
@@ -85,6 +85,12 @@ const struct imx_imx_i2c_data imx51_imx_i2c_data[] __initconst = { | |||
85 | imx_imx_i2c_data_entry(MX51, _id, _hwid, SZ_4K) | 85 | imx_imx_i2c_data_entry(MX51, _id, _hwid, SZ_4K) |
86 | imx51_imx_i2c_data_entry(0, 1), | 86 | imx51_imx_i2c_data_entry(0, 1), |
87 | imx51_imx_i2c_data_entry(1, 2), | 87 | imx51_imx_i2c_data_entry(1, 2), |
88 | { | ||
89 | .id = 2, | ||
90 | .iobase = MX51_HSI2C_DMA_BASE_ADDR, | ||
91 | .iosize = SZ_16K, | ||
92 | .irq = MX51_INT_HS_I2C, | ||
93 | }, | ||
88 | }; | 94 | }; |
89 | #endif /* ifdef CONFIG_SOC_IMX51 */ | 95 | #endif /* ifdef CONFIG_SOC_IMX51 */ |
90 | 96 | ||
diff --git a/arch/arm/plat-mxc/devices/platform-mxc-ehci.c b/arch/arm/plat-mxc/devices/platform-mxc-ehci.c index e1763e03e7cb..35851d889aca 100644 --- a/arch/arm/plat-mxc/devices/platform-mxc-ehci.c +++ b/arch/arm/plat-mxc/devices/platform-mxc-ehci.c | |||
@@ -49,6 +49,15 @@ const struct imx_mxc_ehci_data imx35_mxc_ehci_hs_data __initconst = | |||
49 | imx_mxc_ehci_data_entry_single(MX35, 1, HS); | 49 | imx_mxc_ehci_data_entry_single(MX35, 1, HS); |
50 | #endif /* ifdef CONFIG_SOC_IMX35 */ | 50 | #endif /* ifdef CONFIG_SOC_IMX35 */ |
51 | 51 | ||
52 | #ifdef CONFIG_SOC_IMX51 | ||
53 | const struct imx_mxc_ehci_data imx51_mxc_ehci_otg_data __initconst = | ||
54 | imx_mxc_ehci_data_entry_single(MX51, 0, OTG); | ||
55 | const struct imx_mxc_ehci_data imx51_mxc_ehci_hs_data[] __initconst = { | ||
56 | imx_mxc_ehci_data_entry_single(MX51, 1, HS1), | ||
57 | imx_mxc_ehci_data_entry_single(MX51, 2, HS2), | ||
58 | }; | ||
59 | #endif /* ifdef CONFIG_SOC_IMX51 */ | ||
60 | |||
52 | struct platform_device *__init imx_add_mxc_ehci( | 61 | struct platform_device *__init imx_add_mxc_ehci( |
53 | const struct imx_mxc_ehci_data *data, | 62 | const struct imx_mxc_ehci_data *data, |
54 | const struct mxc_usbh_platform_data *pdata) | 63 | const struct mxc_usbh_platform_data *pdata) |
diff --git a/arch/arm/plat-mxc/include/mach/common.h b/arch/arm/plat-mxc/include/mach/common.h index 4e3d97890d69..d7149d1bd32c 100644 --- a/arch/arm/plat-mxc/include/mach/common.h +++ b/arch/arm/plat-mxc/include/mach/common.h | |||
@@ -66,10 +66,20 @@ extern int mx53_clocks_init(unsigned long ckil, unsigned long osc, | |||
66 | unsigned long ckih1, unsigned long ckih2); | 66 | unsigned long ckih1, unsigned long ckih2); |
67 | extern struct platform_device *mxc_register_gpio(char *name, int id, | 67 | extern struct platform_device *mxc_register_gpio(char *name, int id, |
68 | resource_size_t iobase, resource_size_t iosize, int irq, int irq_high); | 68 | resource_size_t iobase, resource_size_t iosize, int irq, int irq_high); |
69 | extern int mxc_register_device(struct platform_device *pdev, void *data); | ||
70 | extern void mxc_set_cpu_type(unsigned int type); | 69 | extern void mxc_set_cpu_type(unsigned int type); |
71 | extern void mxc_arch_reset_init(void __iomem *); | 70 | extern void mxc_arch_reset_init(void __iomem *); |
72 | extern void mx51_efikamx_reset(void); | 71 | extern void mx51_efikamx_reset(void); |
73 | extern int mx53_revision(void); | 72 | extern int mx53_revision(void); |
74 | extern int mx53_display_revision(void); | 73 | extern int mx53_display_revision(void); |
74 | |||
75 | enum mxc_cpu_pwr_mode { | ||
76 | WAIT_CLOCKED, /* wfi only */ | ||
77 | WAIT_UNCLOCKED, /* WAIT */ | ||
78 | WAIT_UNCLOCKED_POWER_OFF, /* WAIT + SRPG */ | ||
79 | STOP_POWER_ON, /* just STOP */ | ||
80 | STOP_POWER_OFF, /* STOP + SRPG */ | ||
81 | }; | ||
82 | |||
83 | extern void mx5_cpu_lp_set(enum mxc_cpu_pwr_mode mode); | ||
84 | extern void (*imx_idle)(void); | ||
75 | #endif | 85 | #endif |
diff --git a/arch/arm/plat-mxc/include/mach/gpio.h b/arch/arm/plat-mxc/include/mach/gpio.h index 31c820c1b796..44af0064ba1a 100644 --- a/arch/arm/plat-mxc/include/mach/gpio.h +++ b/arch/arm/plat-mxc/include/mach/gpio.h | |||
@@ -23,17 +23,10 @@ | |||
23 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
24 | #include <asm-generic/gpio.h> | 24 | #include <asm-generic/gpio.h> |
25 | 25 | ||
26 | |||
27 | /* There's a off-by-one betweem the gpio bank number and the gpiochip */ | ||
28 | /* range e.g. GPIO_1_5 is gpio 5 under linux */ | ||
29 | #define IMX_GPIO_NR(bank, nr) (((bank) - 1) * 32 + (nr)) | ||
30 | |||
31 | /* use gpiolib dispatchers */ | 26 | /* use gpiolib dispatchers */ |
32 | #define gpio_get_value __gpio_get_value | 27 | #define gpio_get_value __gpio_get_value |
33 | #define gpio_set_value __gpio_set_value | 28 | #define gpio_set_value __gpio_set_value |
34 | #define gpio_cansleep __gpio_cansleep | 29 | #define gpio_cansleep __gpio_cansleep |
35 | 30 | #define gpio_to_irq __gpio_to_irq | |
36 | #define gpio_to_irq(gpio) (MXC_GPIO_IRQ_START + (gpio)) | ||
37 | #define irq_to_gpio(irq) ((irq) - MXC_GPIO_IRQ_START) | ||
38 | 31 | ||
39 | #endif | 32 | #endif |
diff --git a/arch/arm/plat-mxc/include/mach/hardware.h b/arch/arm/plat-mxc/include/mach/hardware.h index a8bfd565dcad..eba3118adfbb 100644 --- a/arch/arm/plat-mxc/include/mach/hardware.h +++ b/arch/arm/plat-mxc/include/mach/hardware.h | |||
@@ -81,11 +81,16 @@ | |||
81 | * AIPS1 0x53f00000+0x100000 -> 0xf5700000+0x100000 | 81 | * AIPS1 0x53f00000+0x100000 -> 0xf5700000+0x100000 |
82 | * AIPS2 0x63f00000+0x100000 -> 0xf5300000+0x100000 | 82 | * AIPS2 0x63f00000+0x100000 -> 0xf5300000+0x100000 |
83 | * mx51: | 83 | * mx51: |
84 | * TZIC 0xe0000000+0x004000 -> 0xf5000000+0x004000 | ||
84 | * IRAM 0x1ffe0000+0x020000 -> 0xf4fe0000+0x020000 | 85 | * IRAM 0x1ffe0000+0x020000 -> 0xf4fe0000+0x020000 |
85 | * DEBUG 0x60000000+0x100000 -> 0xf5000000+0x100000 | ||
86 | * SPBA0 0x70000000+0x100000 -> 0xf5400000+0x100000 | 86 | * SPBA0 0x70000000+0x100000 -> 0xf5400000+0x100000 |
87 | * AIPS1 0x73f00000+0x100000 -> 0xf5700000+0x100000 | 87 | * AIPS1 0x73f00000+0x100000 -> 0xf5700000+0x100000 |
88 | * AIPS2 0x83f00000+0x100000 -> 0xf4300000+0x100000 | 88 | * AIPS2 0x83f00000+0x100000 -> 0xf4300000+0x100000 |
89 | * mx53: | ||
90 | * TZIC 0x0fffc000+0x004000 -> 0xf4bfc000+0x004000 | ||
91 | * SPBA0 0x50000000+0x100000 -> 0xf5400000+0x100000 | ||
92 | * AIPS1 0x53f00000+0x100000 -> 0xf5700000+0x100000 | ||
93 | * AIPS2 0x63f00000+0x100000 -> 0xf5300000+0x100000 | ||
89 | */ | 94 | */ |
90 | #define IMX_IO_P2V(x) ( \ | 95 | #define IMX_IO_P2V(x) ( \ |
91 | 0xf4000000 + \ | 96 | 0xf4000000 + \ |
@@ -116,4 +121,10 @@ | |||
116 | .type = _type, \ | 121 | .type = _type, \ |
117 | } | 122 | } |
118 | 123 | ||
124 | /* There's a off-by-one betweem the gpio bank number and the gpiochip */ | ||
125 | /* range e.g. GPIO_1_5 is gpio 5 under linux */ | ||
126 | #define IMX_GPIO_NR(bank, nr) (((bank) - 1) * 32 + (nr)) | ||
127 | |||
128 | #define IMX_GPIO_TO_IRQ(gpio) (MXC_GPIO_IRQ_START + (gpio)) | ||
129 | |||
119 | #endif /* __ASM_ARCH_MXC_HARDWARE_H__ */ | 130 | #endif /* __ASM_ARCH_MXC_HARDWARE_H__ */ |
diff --git a/arch/arm/plat-mxc/include/mach/io.h b/arch/arm/plat-mxc/include/mach/io.h index 4347a87d2bb0..338300b18b00 100644 --- a/arch/arm/plat-mxc/include/mach/io.h +++ b/arch/arm/plat-mxc/include/mach/io.h | |||
@@ -14,32 +14,22 @@ | |||
14 | /* Allow IO space to be anywhere in the memory */ | 14 | /* Allow IO space to be anywhere in the memory */ |
15 | #define IO_SPACE_LIMIT 0xffffffff | 15 | #define IO_SPACE_LIMIT 0xffffffff |
16 | 16 | ||
17 | #if defined(CONFIG_SOC_IMX31) || defined(CONFIG_SOC_IMX35) | ||
18 | #include <mach/hardware.h> | ||
19 | |||
20 | #define __arch_ioremap __imx_ioremap | 17 | #define __arch_ioremap __imx_ioremap |
21 | #define __arch_iounmap __iounmap | 18 | #define __arch_iounmap __iounmap |
22 | 19 | ||
23 | #define addr_in_module(addr, mod) \ | 20 | #define addr_in_module(addr, mod) \ |
24 | ((unsigned long)(addr) - mod ## _BASE_ADDR < mod ## _SIZE) | 21 | ((unsigned long)(addr) - mod ## _BASE_ADDR < mod ## _SIZE) |
25 | 22 | ||
23 | extern void __iomem *(*imx_ioremap)(unsigned long, size_t, unsigned int); | ||
24 | |||
26 | static inline void __iomem * | 25 | static inline void __iomem * |
27 | __imx_ioremap(unsigned long phys_addr, size_t size, unsigned int mtype) | 26 | __imx_ioremap(unsigned long phys_addr, size_t size, unsigned int mtype) |
28 | { | 27 | { |
29 | if (mtype == MT_DEVICE && (cpu_is_mx31() || cpu_is_mx35())) { | 28 | if (imx_ioremap != NULL) |
30 | /* | 29 | return imx_ioremap(phys_addr, size, mtype); |
31 | * Access all peripherals below 0x80000000 as nonshared device | 30 | else |
32 | * on mx3, but leave l2cc alone. Otherwise cache corruptions | 31 | return __arm_ioremap(phys_addr, size, mtype); |
33 | * can occur. | ||
34 | */ | ||
35 | if (phys_addr < 0x80000000 && | ||
36 | !addr_in_module(phys_addr, MX3x_L2CC)) | ||
37 | mtype = MT_DEVICE_NONSHARED; | ||
38 | } | ||
39 | |||
40 | return __arm_ioremap(phys_addr, size, mtype); | ||
41 | } | 32 | } |
42 | #endif | ||
43 | 33 | ||
44 | /* io address mapping macro */ | 34 | /* io address mapping macro */ |
45 | #define __io(a) __typesafe_io(a) | 35 | #define __io(a) __typesafe_io(a) |
diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx51.h b/arch/arm/plat-mxc/include/mach/iomux-mx51.h index df6acc066fb1..c7f5169a6a54 100644 --- a/arch/arm/plat-mxc/include/mach/iomux-mx51.h +++ b/arch/arm/plat-mxc/include/mach/iomux-mx51.h | |||
@@ -14,6 +14,8 @@ | |||
14 | #define __MACH_IOMUX_MX51_H__ | 14 | #define __MACH_IOMUX_MX51_H__ |
15 | 15 | ||
16 | #include <mach/iomux-v3.h> | 16 | #include <mach/iomux-v3.h> |
17 | #define __NA_ 0x000 | ||
18 | |||
17 | 19 | ||
18 | /* Pad control groupings */ | 20 | /* Pad control groupings */ |
19 | #define MX51_UART_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | PAD_CTL_DSE_HIGH | \ | 21 | #define MX51_UART_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | PAD_CTL_DSE_HIGH | \ |
@@ -47,1521 +49,765 @@ | |||
47 | 49 | ||
48 | /* Raw pin modes without pad control */ | 50 | /* Raw pin modes without pad control */ |
49 | /* PAD MUX ALT INPSE PATH PADCTRL */ | 51 | /* PAD MUX ALT INPSE PATH PADCTRL */ |
50 | #define _MX51_PAD_EIM_D16__AUD4_RXFS IOMUX_PAD(0x3f0, 0x5c, 5, 0x0000, 0, 0) | ||
51 | #define _MX51_PAD_EIM_D16__AUD5_TXD IOMUX_PAD(0x3f0, 0x5c, 7, 0x08d8, 0, 0) | ||
52 | #define _MX51_PAD_EIM_D16__EIM_D16 IOMUX_PAD(0x3f0, 0x5c, 0, 0x0000, 0, 0) | ||
53 | #define _MX51_PAD_EIM_D16__GPIO2_0 IOMUX_PAD(0x3f0, 0x5c, 1, 0x0000, 0, 0) | ||
54 | #define _MX51_PAD_EIM_D16__I2C1_SDA IOMUX_PAD(0x3f0, 0x5c, 0x14, 0x09b4, 0, 0) | ||
55 | #define _MX51_PAD_EIM_D16__UART2_CTS IOMUX_PAD(0x3f0, 0x5c, 3, 0x0000, 0, 0) | ||
56 | #define _MX51_PAD_EIM_D16__USBH2_DATA0 IOMUX_PAD(0x3f0, 0x5c, 2, 0x0000, 0, 0) | ||
57 | #define _MX51_PAD_EIM_D17__AUD5_RXD IOMUX_PAD(0x3f4, 0x60, 7, 0x08d4, 0, 0) | ||
58 | #define _MX51_PAD_EIM_D17__EIM_D17 IOMUX_PAD(0x3f4, 0x60, 0, 0x0000, 0, 0) | ||
59 | #define _MX51_PAD_EIM_D17__GPIO2_1 IOMUX_PAD(0x3f4, 0x60, 1, 0x0000, 0, 0) | ||
60 | #define _MX51_PAD_EIM_D17__UART2_RXD IOMUX_PAD(0x3f4, 0x60, 3, 0x09ec, 0, 0) | ||
61 | #define _MX51_PAD_EIM_D17__UART3_CTS IOMUX_PAD(0x3f4, 0x60, 4, 0x0000, 0, 0) | ||
62 | #define _MX51_PAD_EIM_D17__USBH2_DATA1 IOMUX_PAD(0x3f4, 0x60, 2, 0x0000, 0, 0) | ||
63 | #define _MX51_PAD_EIM_D18__AUD5_TXC IOMUX_PAD(0x3f8, 0x64, 7, 0x08e4, 0, 0) | ||
64 | #define _MX51_PAD_EIM_D18__EIM_D18 IOMUX_PAD(0x3f8, 0x64, 0, 0x0000, 0, 0) | ||
65 | #define _MX51_PAD_EIM_D18__GPIO2_2 IOMUX_PAD(0x3f8, 0x64, 1, 0x0000, 0, 0) | ||
66 | #define _MX51_PAD_EIM_D18__UART2_TXD IOMUX_PAD(0x3f8, 0x64, 3, 0x0000, 0, 0) | ||
67 | #define _MX51_PAD_EIM_D18__UART3_RTS IOMUX_PAD(0x3f8, 0x64, 4, 0x09f0, 1, 0) | ||
68 | #define _MX51_PAD_EIM_D18__USBH2_DATA2 IOMUX_PAD(0x3f8, 0x64, 2, 0x0000, 0, 0) | ||
69 | #define _MX51_PAD_EIM_D19__AUD4_RXC IOMUX_PAD(0x3fc, 0x68, 5, 0x0000, 0, 0) | ||
70 | #define _MX51_PAD_EIM_D19__AUD5_TXFS IOMUX_PAD(0x3fc, 0x68, 7, 0x08e8, 0, 0) | ||
71 | #define _MX51_PAD_EIM_D19__EIM_D19 IOMUX_PAD(0x3fc, 0x68, 0, 0x0000, 0, 0) | ||
72 | #define _MX51_PAD_EIM_D19__GPIO2_3 IOMUX_PAD(0x3fc, 0x68, 1, 0x0000, 0, 0) | ||
73 | #define _MX51_PAD_EIM_D19__I2C1_SCL IOMUX_PAD(0x3fc, 0x68, 0x14, 0x09b0, 0, 0) | ||
74 | #define _MX51_PAD_EIM_D19__UART2_RTS IOMUX_PAD(0x3fc, 0x68, 3, 0x09e8, 1, 0) | ||
75 | #define _MX51_PAD_EIM_D19__USBH2_DATA3 IOMUX_PAD(0x3fc, 0x68, 2, 0x0000, 0, 0) | ||
76 | #define _MX51_PAD_EIM_D20__AUD4_TXD IOMUX_PAD(0x400, 0x6c, 5, 0x08c8, 0, 0) | ||
77 | #define _MX51_PAD_EIM_D20__EIM_D20 IOMUX_PAD(0x400, 0x6c, 0, 0x0000, 0, 0) | ||
78 | #define _MX51_PAD_EIM_D20__GPIO2_4 IOMUX_PAD(0x400, 0x6c, 1, 0x0000, 0, 0) | ||
79 | #define _MX51_PAD_EIM_D20__SRTC_ALARM_DEB IOMUX_PAD(0x400, 0x6c, 4, 0x0000, 0, 0) | ||
80 | #define _MX51_PAD_EIM_D20__USBH2_DATA4 IOMUX_PAD(0x400, 0x6c, 2, 0x0000, 0, 0) | ||
81 | #define _MX51_PAD_EIM_D21__AUD4_RXD IOMUX_PAD(0x404, 0x70, 5, 0x08c4, 0, 0) | ||
82 | #define _MX51_PAD_EIM_D21__EIM_D21 IOMUX_PAD(0x404, 0x70, 0, 0x0000, 0, 0) | ||
83 | #define _MX51_PAD_EIM_D21__GPIO2_5 IOMUX_PAD(0x404, 0x70, 1, 0x0000, 0, 0) | ||
84 | #define _MX51_PAD_EIM_D21__SRTC_ALARM_DEB IOMUX_PAD(0x404, 0x70, 3, 0x0000, 0, 0) | ||
85 | #define _MX51_PAD_EIM_D21__USBH2_DATA5 IOMUX_PAD(0x404, 0x70, 2, 0x0000, 0, 0) | ||
86 | #define _MX51_PAD_EIM_D22__AUD4_TXC IOMUX_PAD(0x408, 0x74, 5, 0x08cc, 0, 0) | ||
87 | #define _MX51_PAD_EIM_D22__EIM_D22 IOMUX_PAD(0x408, 0x74, 0, 0x0000, 0, 0) | ||
88 | #define _MX51_PAD_EIM_D22__GPIO2_6 IOMUX_PAD(0x408, 0x74, 1, 0x0000, 0, 0) | ||
89 | #define _MX51_PAD_EIM_D22__USBH2_DATA6 IOMUX_PAD(0x408, 0x74, 2, 0x0000, 0, 0) | ||
90 | #define _MX51_PAD_EIM_D23__AUD4_TXFS IOMUX_PAD(0x40c, 0x78, 5, 0x08d0, 0, 0) | ||
91 | #define _MX51_PAD_EIM_D23__EIM_D23 IOMUX_PAD(0x40c, 0x78, 0, 0x0000, 0, 0) | ||
92 | #define _MX51_PAD_EIM_D23__GPIO2_7 IOMUX_PAD(0x40c, 0x78, 1, 0x0000, 0, 0) | ||
93 | #define _MX51_PAD_EIM_D23__SPDIF_OUT1 IOMUX_PAD(0x40c, 0x78, 4, 0x0000, 0, 0) | ||
94 | #define _MX51_PAD_EIM_D23__USBH2_DATA7 IOMUX_PAD(0x40c, 0x78, 2, 0x0000, 0, 0) | ||
95 | #define _MX51_PAD_EIM_D24__AUD6_RXFS IOMUX_PAD(0x410, 0x7c, 5, 0x08f8, 0, 0) | ||
96 | #define _MX51_PAD_EIM_D24__EIM_D24 IOMUX_PAD(0x410, 0x7c, 0, 0x0000, 0, 0) | ||
97 | #define _MX51_PAD_EIM_D24__GPIO2_8 IOMUX_PAD(0x410, 0x7c, 1, 0x0000, 0, 0) | ||
98 | #define _MX51_PAD_EIM_D24__I2C2_SDA IOMUX_PAD(0x410, 0x7c, 0x14, 0x09bc, 0, 0) | ||
99 | #define _MX51_PAD_EIM_D24__UART3_CTS IOMUX_PAD(0x410, 0x7c, 3, 0x0000, 0, 0) | ||
100 | #define _MX51_PAD_EIM_D24__USBOTG_DATA0 IOMUX_PAD(0x410, 0x7c, 2, 0x0000, 0, 0) | ||
101 | #define _MX51_PAD_EIM_D25__EIM_D25 IOMUX_PAD(0x414, 0x80, 0, 0x0000, 0, 0) | ||
102 | #define _MX51_PAD_EIM_D25__KEY_COL6 IOMUX_PAD(0x414, 0x80, 1, 0x09c8, 0, 0) | ||
103 | #define _MX51_PAD_EIM_D25__UART2_CTS IOMUX_PAD(0x414, 0x80, 4, 0x0000, 0, 0) | ||
104 | #define _MX51_PAD_EIM_D25__UART3_RXD IOMUX_PAD(0x414, 0x80, 3, 0x09f4, 0, 0) | ||
105 | #define _MX51_PAD_EIM_D25__USBOTG_DATA1 IOMUX_PAD(0x414, 0x80, 2, 0x0000, 0, 0) | ||
106 | #define _MX51_PAD_EIM_D26__EIM_D26 IOMUX_PAD(0x418, 0x84, 0, 0x0000, 0, 0) | ||
107 | #define _MX51_PAD_EIM_D26__KEY_COL7 IOMUX_PAD(0x418, 0x84, 1, 0x09cc, 0, 0) | ||
108 | #define _MX51_PAD_EIM_D26__UART2_RTS IOMUX_PAD(0x418, 0x84, 4, 0x09e8, 3, 0) | ||
109 | #define _MX51_PAD_EIM_D26__UART3_TXD IOMUX_PAD(0x418, 0x84, 3, 0x0000, 0, 0) | ||
110 | #define _MX51_PAD_EIM_D26__USBOTG_DATA2 IOMUX_PAD(0x418, 0x84, 2, 0x0000, 0, 0) | ||
111 | #define _MX51_PAD_EIM_D27__AUD6_RXC IOMUX_PAD(0x41c, 0x88, 5, 0x08f4, 0, 0) | ||
112 | #define _MX51_PAD_EIM_D27__EIM_D27 IOMUX_PAD(0x41c, 0x88, 0, 0x0000, 0, 0) | ||
113 | #define _MX51_PAD_EIM_D27__GPIO2_9 IOMUX_PAD(0x41c, 0x88, 1, 0x0000, 0, 0) | ||
114 | #define _MX51_PAD_EIM_D27__I2C2_SCL IOMUX_PAD(0x41c, 0x88, 0x14, 0x09b8, 0, 0) | ||
115 | #define _MX51_PAD_EIM_D27__UART3_RTS IOMUX_PAD(0x41c, 0x88, 3, 0x09f0, 3, 0) | ||
116 | #define _MX51_PAD_EIM_D27__USBOTG_DATA3 IOMUX_PAD(0x41c, 0x88, 2, 0x0000, 0, 0) | ||
117 | #define _MX51_PAD_EIM_D28__AUD6_TXD IOMUX_PAD(0x420, 0x8c, 5, 0x08f0, 0, 0) | ||
118 | #define _MX51_PAD_EIM_D28__EIM_D28 IOMUX_PAD(0x420, 0x8c, 0, 0x0000, 0, 0) | ||
119 | #define _MX51_PAD_EIM_D28__KEY_ROW4 IOMUX_PAD(0x420, 0x8c, 1, 0x09d0, 0, 0) | ||
120 | #define _MX51_PAD_EIM_D28__USBOTG_DATA4 IOMUX_PAD(0x420, 0x8c, 2, 0x0000, 0, 0) | ||
121 | #define _MX51_PAD_EIM_D29__AUD6_RXD IOMUX_PAD(0x424, 0x90, 5, 0x08ec, 0, 0) | ||
122 | #define _MX51_PAD_EIM_D29__EIM_D29 IOMUX_PAD(0x424, 0x90, 0, 0x0000, 0, 0) | ||
123 | #define _MX51_PAD_EIM_D29__KEY_ROW5 IOMUX_PAD(0x424, 0x90, 1, 0x09d4, 0, 0) | ||
124 | #define _MX51_PAD_EIM_D29__USBOTG_DATA5 IOMUX_PAD(0x424, 0x90, 2, 0x0000, 0, 0) | ||
125 | #define _MX51_PAD_EIM_D30__AUD6_TXC IOMUX_PAD(0x428, 0x94, 5, 0x08fc, 0, 0) | ||
126 | #define _MX51_PAD_EIM_D30__EIM_D30 IOMUX_PAD(0x428, 0x94, 0, 0x0000, 0, 0) | ||
127 | #define _MX51_PAD_EIM_D30__KEY_ROW6 IOMUX_PAD(0x428, 0x94, 1, 0x09d8, 0, 0) | ||
128 | #define _MX51_PAD_EIM_D30__USBOTG_DATA6 IOMUX_PAD(0x428, 0x94, 2, 0x0000, 0, 0) | ||
129 | #define _MX51_PAD_EIM_D31__AUD6_TXFS IOMUX_PAD(0x42c, 0x98, 5, 0x0900, 0, 0) | ||
130 | #define _MX51_PAD_EIM_D31__EIM_D31 IOMUX_PAD(0x42c, 0x98, 0, 0x0000, 0, 0) | ||
131 | #define _MX51_PAD_EIM_D31__KEY_ROW7 IOMUX_PAD(0x42c, 0x98, 1, 0x09dc, 0, 0) | ||
132 | #define _MX51_PAD_EIM_D31__USBOTG_DATA7 IOMUX_PAD(0x42c, 0x98, 2, 0x0000, 0, 0) | ||
133 | #define _MX51_PAD_EIM_A16__EIM_A16 IOMUX_PAD(0x430, 0x9c, 0, 0x0000, 0, 0) | ||
134 | #define _MX51_PAD_EIM_A16__GPIO2_10 IOMUX_PAD(0x430, 0x9c, 1, 0x0000, 0, 0) | ||
135 | #define _MX51_PAD_EIM_A16__OSC_FREQ_SEL0 IOMUX_PAD(0x430, 0x9c, 7, 0x0000, 0, 0) | ||
136 | #define _MX51_PAD_EIM_A17__EIM_A17 IOMUX_PAD(0x434, 0xa0, 0, 0x0000, 0, 0) | ||
137 | #define _MX51_PAD_EIM_A17__GPIO2_11 IOMUX_PAD(0x434, 0xa0, 1, 0x0000, 0, 0) | ||
138 | #define _MX51_PAD_EIM_A17__OSC_FREQ_SEL1 IOMUX_PAD(0x434, 0xa0, 7, 0x0000, 0, 0) | ||
139 | #define _MX51_PAD_EIM_A18__BOOT_LPB0 IOMUX_PAD(0x438, 0xa4, 7, 0x0000, 0, 0) | ||
140 | #define _MX51_PAD_EIM_A18__EIM_A18 IOMUX_PAD(0x438, 0xa4, 0, 0x0000, 0, 0) | ||
141 | #define _MX51_PAD_EIM_A18__GPIO2_12 IOMUX_PAD(0x438, 0xa4, 1, 0x0000, 0, 0) | ||
142 | #define _MX51_PAD_EIM_A19__BOOT_LPB1 IOMUX_PAD(0x43c, 0xa8, 7, 0x0000, 0, 0) | ||
143 | #define _MX51_PAD_EIM_A19__EIM_A19 IOMUX_PAD(0x43c, 0xa8, 0, 0x0000, 0, 0) | ||
144 | #define _MX51_PAD_EIM_A19__GPIO2_13 IOMUX_PAD(0x43c, 0xa8, 1, 0x0000, 0, 0) | ||
145 | #define _MX51_PAD_EIM_A20__BOOT_UART_SRC0 IOMUX_PAD(0x440, 0xac, 7, 0x0000, 0, 0) | ||
146 | #define _MX51_PAD_EIM_A20__EIM_A20 IOMUX_PAD(0x440, 0xac, 0, 0x0000, 0, 0) | ||
147 | #define _MX51_PAD_EIM_A20__GPIO2_14 IOMUX_PAD(0x440, 0xac, 1, 0x0000, 0, 0) | ||
148 | #define _MX51_PAD_EIM_A21__BOOT_UART_SRC1 IOMUX_PAD(0x444, 0xb0, 7, 0x0000, 0, 0) | ||
149 | #define _MX51_PAD_EIM_A21__EIM_A21 IOMUX_PAD(0x444, 0xb0, 0, 0x0000, 0, 0) | ||
150 | #define _MX51_PAD_EIM_A21__GPIO2_15 IOMUX_PAD(0x444, 0xb0, 1, 0x0000, 0, 0) | ||
151 | #define _MX51_PAD_EIM_A22__EIM_A22 IOMUX_PAD(0x448, 0xb4, 0, 0x0000, 0, 0) | ||
152 | #define _MX51_PAD_EIM_A22__GPIO2_16 IOMUX_PAD(0x448, 0xb4, 1, 0x0000, 0, 0) | ||
153 | #define _MX51_PAD_EIM_A23__BOOT_HPN_EN IOMUX_PAD(0x44c, 0xb8, 7, 0x0000, 0, 0) | ||
154 | #define _MX51_PAD_EIM_A23__EIM_A23 IOMUX_PAD(0x44c, 0xb8, 0, 0x0000, 0, 0) | ||
155 | #define _MX51_PAD_EIM_A23__GPIO2_17 IOMUX_PAD(0x44c, 0xb8, 1, 0x0000, 0, 0) | ||
156 | #define _MX51_PAD_EIM_A24__EIM_A24 IOMUX_PAD(0x450, 0xbc, 0, 0x0000, 0, 0) | ||
157 | #define _MX51_PAD_EIM_A24__GPIO2_18 IOMUX_PAD(0x450, 0xbc, 1, 0x0000, 0, 0) | ||
158 | #define _MX51_PAD_EIM_A24__USBH2_CLK IOMUX_PAD(0x450, 0xbc, 2, 0x0000, 0, 0) | ||
159 | #define _MX51_PAD_EIM_A25__DISP1_PIN4 IOMUX_PAD(0x454, 0xc0, 6, 0x0000, 0, 0) | ||
160 | #define _MX51_PAD_EIM_A25__EIM_A25 IOMUX_PAD(0x454, 0xc0, 0, 0x0000, 0, 0) | ||
161 | #define _MX51_PAD_EIM_A25__GPIO2_19 IOMUX_PAD(0x454, 0xc0, 1, 0x0000, 0, 0) | ||
162 | #define _MX51_PAD_EIM_A25__USBH2_DIR IOMUX_PAD(0x454, 0xc0, 2, 0x0000, 0, 0) | ||
163 | #define _MX51_PAD_EIM_A26__CSI1_DATA_EN IOMUX_PAD(0x458, 0xc4, 5, 0x09a0, 0, 0) | ||
164 | #define _MX51_PAD_EIM_A26__DISP2_EXT_CLK IOMUX_PAD(0x458, 0xc4, 6, 0x0908, 0, 0) | ||
165 | #define _MX51_PAD_EIM_A26__EIM_A26 IOMUX_PAD(0x458, 0xc4, 0, 0x0000, 0, 0) | ||
166 | #define _MX51_PAD_EIM_A26__GPIO2_20 IOMUX_PAD(0x458, 0xc4, 1, 0x0000, 0, 0) | ||
167 | #define _MX51_PAD_EIM_A26__USBH2_STP IOMUX_PAD(0x458, 0xc4, 2, 0x0000, 0, 0) | ||
168 | #define _MX51_PAD_EIM_A27__CSI2_DATA_EN IOMUX_PAD(0x45c, 0xc8, 5, 0x099c, 0, 0) | ||
169 | #define _MX51_PAD_EIM_A27__DISP1_PIN1 IOMUX_PAD(0x45c, 0xc8, 6, 0x09a4, 0, 0) | ||
170 | #define _MX51_PAD_EIM_A27__EIM_A27 IOMUX_PAD(0x45c, 0xc8, 0, 0x0000, 0, 0) | ||
171 | #define _MX51_PAD_EIM_A27__GPIO2_21 IOMUX_PAD(0x45c, 0xc8, 1, 0x0000, 0, 0) | ||
172 | #define _MX51_PAD_EIM_A27__USBH2_NXT IOMUX_PAD(0x45c, 0xc8, 2, 0x0000, 0, 0) | ||
173 | #define _MX51_PAD_EIM_EB0__EIM_EB0 IOMUX_PAD(0x460, 0xcc, 0, 0x0000, 0, 0) | ||
174 | #define _MX51_PAD_EIM_EB1__EIM_EB1 IOMUX_PAD(0x464, 0xd0, 0, 0x0000, 0, 0) | ||
175 | #define _MX51_PAD_EIM_EB2__AUD5_RXFS IOMUX_PAD(0x468, 0xd4, 6, 0x08e0, 0, 0) | ||
176 | #define _MX51_PAD_EIM_EB2__CSI1_D2 IOMUX_PAD(0x468, 0xd4, 5, 0x0000, 0, 0) | ||
177 | #define _MX51_PAD_EIM_EB2__EIM_EB2 IOMUX_PAD(0x468, 0xd4, 0, 0x0000, 0, 0) | ||
178 | #define _MX51_PAD_EIM_EB2__FEC_MDIO IOMUX_PAD(0x468, 0xd4, 3, 0x0954, 0, 0) | ||
179 | #define _MX51_PAD_EIM_EB2__GPIO2_22 IOMUX_PAD(0x468, 0xd4, 1, 0x0000, 0, 0) | ||
180 | #define _MX51_PAD_EIM_EB2__GPT_CMPOUT1 IOMUX_PAD(0x468, 0xd4, 7, 0x0000, 0, 0) | ||
181 | #define _MX51_PAD_EIM_EB3__AUD5_RXC IOMUX_PAD(0x46c, 0xd8, 6, 0x08dc, 0, 0) | ||
182 | #define _MX51_PAD_EIM_EB3__CSI1_D3 IOMUX_PAD(0x46c, 0xd8, 5, 0x0000, 0, 0) | ||
183 | #define _MX51_PAD_EIM_EB3__EIM_EB3 IOMUX_PAD(0x46c, 0xd8, 0, 0x0000, 0, 0) | ||
184 | #define _MX51_PAD_EIM_EB3__FEC_RDATA1 IOMUX_PAD(0x46c, 0xd8, 3, 0x095c, 0, 0) | ||
185 | #define _MX51_PAD_EIM_EB3__GPIO2_23 IOMUX_PAD(0x46c, 0xd8, 1, 0x0000, 0, 0) | ||
186 | #define _MX51_PAD_EIM_EB3__GPT_CMPOUT2 IOMUX_PAD(0x46c, 0xd8, 7, 0x0000, 0, 0) | ||
187 | #define _MX51_PAD_EIM_OE__EIM_OE IOMUX_PAD(0x470, 0xdc, 0, 0x0000, 0, 0) | ||
188 | #define _MX51_PAD_EIM_OE__GPIO2_24 IOMUX_PAD(0x470, 0xdc, 1, 0x0000, 0, 0) | ||
189 | #define _MX51_PAD_EIM_CS0__EIM_CS0 IOMUX_PAD(0x474, 0xe0, 0, 0x0000, 0, 0) | ||
190 | #define _MX51_PAD_EIM_CS0__GPIO2_25 IOMUX_PAD(0x474, 0xe0, 1, 0x0000, 0, 0) | ||
191 | #define _MX51_PAD_EIM_CS1__EIM_CS1 IOMUX_PAD(0x478, 0xe4, 0, 0x0000, 0, 0) | ||
192 | #define _MX51_PAD_EIM_CS1__GPIO2_26 IOMUX_PAD(0x478, 0xe4, 1, 0x0000, 0, 0) | ||
193 | #define _MX51_PAD_EIM_CS2__AUD5_TXD IOMUX_PAD(0x47c, 0xe8, 6, 0x08d8, 1, 0) | ||
194 | #define _MX51_PAD_EIM_CS2__CSI1_D4 IOMUX_PAD(0x47c, 0xe8, 5, 0x0000, 0, 0) | ||
195 | #define _MX51_PAD_EIM_CS2__EIM_CS2 IOMUX_PAD(0x47c, 0xe8, 0, 0x0000, 0, 0) | ||
196 | #define _MX51_PAD_EIM_CS2__FEC_RDATA2 IOMUX_PAD(0x47c, 0xe8, 3, 0x0960, 0, 0) | ||
197 | #define _MX51_PAD_EIM_CS2__GPIO2_27 IOMUX_PAD(0x47c, 0xe8, 1, 0x0000, 0, 0) | ||
198 | #define _MX51_PAD_EIM_CS2__USBOTG_STP IOMUX_PAD(0x47c, 0xe8, 2, 0x0000, 0, 0) | ||
199 | #define _MX51_PAD_EIM_CS3__AUD5_RXD IOMUX_PAD(0x480, 0xec, 6, 0x08d4, 1, 0) | ||
200 | #define _MX51_PAD_EIM_CS3__CSI1_D5 IOMUX_PAD(0x480, 0xec, 5, 0x0000, 0, 0) | ||
201 | #define _MX51_PAD_EIM_CS3__EIM_CS3 IOMUX_PAD(0x480, 0xec, 0, 0x0000, 0, 0) | ||
202 | #define _MX51_PAD_EIM_CS3__FEC_RDATA3 IOMUX_PAD(0x480, 0xec, 3, 0x0964, 0, 0) | ||
203 | #define _MX51_PAD_EIM_CS3__GPIO2_28 IOMUX_PAD(0x480, 0xec, 1, 0x0000, 0, 0) | ||
204 | #define _MX51_PAD_EIM_CS3__USBOTG_NXT IOMUX_PAD(0x480, 0xec, 2, 0x0000, 0, 0) | ||
205 | #define _MX51_PAD_EIM_CS4__AUD5_TXC IOMUX_PAD(0x484, 0xf0, 6, 0x08e4, 1, 0) | ||
206 | #define _MX51_PAD_EIM_CS4__CSI1_D6 IOMUX_PAD(0x484, 0xf0, 5, 0x0000, 0, 0) | ||
207 | #define _MX51_PAD_EIM_CS4__EIM_CS4 IOMUX_PAD(0x484, 0xf0, 0, 0x0000, 0, 0) | ||
208 | #define _MX51_PAD_EIM_CS4__FEC_RX_ER IOMUX_PAD(0x484, 0xf0, 3, 0x0970, 0, 0) | ||
209 | #define _MX51_PAD_EIM_CS4__GPIO2_29 IOMUX_PAD(0x484, 0xf0, 1, 0x0000, 0, 0) | ||
210 | #define _MX51_PAD_EIM_CS4__USBOTG_CLK IOMUX_PAD(0x484, 0xf0, 2, 0x0000, 0, 0) | ||
211 | #define _MX51_PAD_EIM_CS5__AUD5_TXFS IOMUX_PAD(0x488, 0xf4, 6, 0x08e8, 1, 0) | ||
212 | #define _MX51_PAD_EIM_CS5__CSI1_D7 IOMUX_PAD(0x488, 0xf4, 5, 0x0000, 0, 0) | ||
213 | #define _MX51_PAD_EIM_CS5__DISP1_EXT_CLK IOMUX_PAD(0x488, 0xf4, 4, 0x0904, 0, 0) | ||
214 | #define _MX51_PAD_EIM_CS5__EIM_CS5 IOMUX_PAD(0x488, 0xf4, 0, 0x0000, 0, 0) | ||
215 | #define _MX51_PAD_EIM_CS5__FEC_CRS IOMUX_PAD(0x488, 0xf4, 3, 0x0950, 0, 0) | ||
216 | #define _MX51_PAD_EIM_CS5__GPIO2_30 IOMUX_PAD(0x488, 0xf4, 1, 0x0000, 0, 0) | ||
217 | #define _MX51_PAD_EIM_CS5__USBOTG_DIR IOMUX_PAD(0x488, 0xf4, 2, 0x0000, 0, 0) | ||
218 | #define _MX51_PAD_EIM_DTACK__EIM_DTACK IOMUX_PAD(0x48c, 0xf8, 0, 0x0000, 0, 0) | ||
219 | #define _MX51_PAD_EIM_DTACK__GPIO2_31 IOMUX_PAD(0x48c, 0xf8, 1, 0x0000, 0, 0) | ||
220 | #define _MX51_PAD_EIM_LBA__EIM_LBA IOMUX_PAD(0x494, 0xfc, 0, 0x0000, 0, 0) | ||
221 | #define _MX51_PAD_EIM_LBA__GPIO3_1 IOMUX_PAD(0x494, 0xfc, 1, 0x0978, 0, 0) | ||
222 | #define _MX51_PAD_EIM_CRE__EIM_CRE IOMUX_PAD(0x4a0, 0x100, 0, 0x0000, 0, 0) | ||
223 | #define _MX51_PAD_EIM_CRE__GPIO3_2 IOMUX_PAD(0x4a0, 0x100, 1, 0x097c, 0, 0) | ||
224 | #define _MX51_PAD_DRAM_CS1__DRAM_CS1 IOMUX_PAD(0x4d0, 0x104, 0, 0x0000, 0, 0) | ||
225 | #define _MX51_PAD_NANDF_WE_B__GPIO3_3 IOMUX_PAD(0x4e4, 0x108, 3, 0x0980, 0, 0) | ||
226 | #define _MX51_PAD_NANDF_WE_B__NANDF_WE_B IOMUX_PAD(0x4e4, 0x108, 0, 0x0000, 0, 0) | ||
227 | #define _MX51_PAD_NANDF_WE_B__PATA_DIOW IOMUX_PAD(0x4e4, 0x108, 1, 0x0000, 0, 0) | ||
228 | #define _MX51_PAD_NANDF_WE_B__SD3_DATA0 IOMUX_PAD(0x4e4, 0x108, 2, 0x093c, 0, 0) | ||
229 | #define _MX51_PAD_NANDF_RE_B__GPIO3_4 IOMUX_PAD(0x4e8, 0x10c, 3, 0x0984, 0, 0) | ||
230 | #define _MX51_PAD_NANDF_RE_B__NANDF_RE_B IOMUX_PAD(0x4e8, 0x10c, 0, 0x0000, 0, 0) | ||
231 | #define _MX51_PAD_NANDF_RE_B__PATA_DIOR IOMUX_PAD(0x4e8, 0x10c, 1, 0x0000, 0, 0) | ||
232 | #define _MX51_PAD_NANDF_RE_B__SD3_DATA1 IOMUX_PAD(0x4e8, 0x10c, 2, 0x0940, 0, 0) | ||
233 | #define _MX51_PAD_NANDF_ALE__GPIO3_5 IOMUX_PAD(0x4ec, 0x110, 3, 0x0988, 0, 0) | ||
234 | #define _MX51_PAD_NANDF_ALE__NANDF_ALE IOMUX_PAD(0x4ec, 0x110, 0, 0x0000, 0, 0) | ||
235 | #define _MX51_PAD_NANDF_ALE__PATA_BUFFER_EN IOMUX_PAD(0x4ec, 0x110, 1, 0x0000, 0, 0) | ||
236 | #define _MX51_PAD_NANDF_CLE__GPIO3_6 IOMUX_PAD(0x4f0, 0x114, 3, 0x098c, 0, 0) | ||
237 | #define _MX51_PAD_NANDF_CLE__NANDF_CLE IOMUX_PAD(0x4f0, 0x114, 0, 0x0000, 0, 0) | ||
238 | #define _MX51_PAD_NANDF_CLE__PATA_RESET_B IOMUX_PAD(0x4f0, 0x114, 1, 0x0000, 0, 0) | ||
239 | #define _MX51_PAD_NANDF_WP_B__GPIO3_7 IOMUX_PAD(0x4f4, 0x118, 3, 0x0990, 0, 0) | ||
240 | #define _MX51_PAD_NANDF_WP_B__NANDF_WP_B IOMUX_PAD(0x4f4, 0x118, 0, 0x0000, 0, 0) | ||
241 | #define _MX51_PAD_NANDF_WP_B__PATA_DMACK IOMUX_PAD(0x4f4, 0x118, 1, 0x0000, 0, 0) | ||
242 | #define _MX51_PAD_NANDF_WP_B__SD3_DATA2 IOMUX_PAD(0x4f4, 0x118, 2, 0x0944, 0, 0) | ||
243 | #define _MX51_PAD_NANDF_RB0__ECSPI2_SS1 IOMUX_PAD(0x4f8, 0x11c, 5, 0x0930, 0, 0) | ||
244 | #define _MX51_PAD_NANDF_RB0__GPIO3_8 IOMUX_PAD(0x4f8, 0x11c, 3, 0x0994, 0, 0) | ||
245 | #define _MX51_PAD_NANDF_RB0__NANDF_RB0 IOMUX_PAD(0x4f8, 0x11c, 0, 0x0000, 0, 0) | ||
246 | #define _MX51_PAD_NANDF_RB0__PATA_DMARQ IOMUX_PAD(0x4f8, 0x11c, 1, 0x0000, 0, 0) | ||
247 | #define _MX51_PAD_NANDF_RB0__SD3_DATA3 IOMUX_PAD(0x4f8, 0x11c, 2, 0x0948, 0, 0) | ||
248 | #define _MX51_PAD_NANDF_RB1__CSPI_MOSI IOMUX_PAD(0x4fc, 0x120, 6, 0x091c, 0, 0) | ||
249 | #define _MX51_PAD_NANDF_RB1__ECSPI2_RDY IOMUX_PAD(0x4fc, 0x120, 2, 0x0000, 0, 0) | ||
250 | #define _MX51_PAD_NANDF_RB1__GPIO3_9 IOMUX_PAD(0x4fc, 0x120, 3, 0x0000, 0, 0) | ||
251 | #define _MX51_PAD_NANDF_RB1__NANDF_RB1 IOMUX_PAD(0x4fc, 0x120, 0, 0x0000, 0, 0) | ||
252 | #define _MX51_PAD_NANDF_RB1__PATA_IORDY IOMUX_PAD(0x4fc, 0x120, 1, 0x0000, 0, 0) | ||
253 | #define _MX51_PAD_NANDF_RB1__SD4_CMD IOMUX_PAD(0x4fc, 0x120, 5, 0x0000, 0, 0) | ||
254 | #define _MX51_PAD_NANDF_RB2__DISP2_WAIT IOMUX_PAD(0x500, 0x124, 5, 0x09a8, 0, 0) | ||
255 | #define _MX51_PAD_NANDF_RB2__ECSPI2_SCLK IOMUX_PAD(0x500, 0x124, 2, 0x0000, 0, 0) | ||
256 | #define _MX51_PAD_NANDF_RB2__FEC_COL IOMUX_PAD(0x500, 0x124, 1, 0x094c, 0, 0) | ||
257 | #define _MX51_PAD_NANDF_RB2__GPIO3_10 IOMUX_PAD(0x500, 0x124, 3, 0x0000, 0, 0) | ||
258 | #define _MX51_PAD_NANDF_RB2__NANDF_RB2 IOMUX_PAD(0x500, 0x124, 0, 0x0000, 0, 0) | ||
259 | #define _MX51_PAD_NANDF_RB2__USBH3_H3_DP IOMUX_PAD(0x500, 0x124, 7, 0x0000, 0, 0) | ||
260 | #define _MX51_PAD_NANDF_RB2__USBH3_NXT IOMUX_PAD(0x500, 0x124, 6, 0x0a20, 0, 0) | ||
261 | #define _MX51_PAD_NANDF_RB3__DISP1_WAIT IOMUX_PAD(0x504, 0x128, 5, 0x0000, 0, 0) | ||
262 | #define _MX51_PAD_NANDF_RB3__ECSPI2_MISO IOMUX_PAD(0x504, 0x128, 2, 0x0000, 0, 0) | ||
263 | #define _MX51_PAD_NANDF_RB3__FEC_RX_CLK IOMUX_PAD(0x504, 0x128, 1, 0x0968, 0, 0) | ||
264 | #define _MX51_PAD_NANDF_RB3__GPIO3_11 IOMUX_PAD(0x504, 0x128, 3, 0x0000, 0, 0) | ||
265 | #define _MX51_PAD_NANDF_RB3__NANDF_RB3 IOMUX_PAD(0x504, 0x128, 0, 0x0000, 0, 0) | ||
266 | #define _MX51_PAD_NANDF_RB3__USBH3_CLK IOMUX_PAD(0x504, 0x128, 6, 0x09f8, 0, 0) | ||
267 | #define _MX51_PAD_NANDF_RB3__USBH3_H3_DM IOMUX_PAD(0x504, 0x128, 7, 0x0000, 0, 0) | ||
268 | #define _MX51_PAD_GPIO_NAND__GPIO_NAND IOMUX_PAD(0x514, 0x12c, 0, 0x0998, 0, 0) | ||
269 | #define _MX51_PAD_GPIO_NAND__PATA_INTRQ IOMUX_PAD(0x514, 0x12c, 1, 0x0000, 0, 0) | ||
270 | #define _MX51_PAD_NANDF_CS0__GPIO3_16 IOMUX_PAD(0x518, 0x130, 3, 0x0000, 0, 0) | ||
271 | #define _MX51_PAD_NANDF_CS0__NANDF_CS0 IOMUX_PAD(0x518, 0x130, 0, 0x0000, 0, 0) | ||
272 | #define _MX51_PAD_NANDF_CS1__GPIO3_17 IOMUX_PAD(0x51c, 0x134, 3, 0x0000, 0, 0) | ||
273 | #define _MX51_PAD_NANDF_CS1__NANDF_CS1 IOMUX_PAD(0x51c, 0x134, 0, 0x0000, 0, 0) | ||
274 | #define _MX51_PAD_NANDF_CS2__CSPI_SCLK IOMUX_PAD(0x520, 0x138, 6, 0x0914, 0, 0) | ||
275 | #define _MX51_PAD_NANDF_CS2__FEC_TX_ER IOMUX_PAD(0x520, 0x138, 2, 0x0000, 0, 0) | ||
276 | #define _MX51_PAD_NANDF_CS2__GPIO3_18 IOMUX_PAD(0x520, 0x138, 3, 0x0000, 0, 0) | ||
277 | #define _MX51_PAD_NANDF_CS2__NANDF_CS2 IOMUX_PAD(0x520, 0x138, 0, 0x0000, 0, 0) | ||
278 | #define _MX51_PAD_NANDF_CS2__PATA_CS_0 IOMUX_PAD(0x520, 0x138, 1, 0x0000, 0, 0) | ||
279 | #define _MX51_PAD_NANDF_CS2__SD4_CLK IOMUX_PAD(0x520, 0x138, 5, 0x0000, 0, 0) | ||
280 | #define _MX51_PAD_NANDF_CS2__USBH3_H1_DP IOMUX_PAD(0x520, 0x138, 7, 0x0000, 0, 0) | ||
281 | #define _MX51_PAD_NANDF_CS3__FEC_MDC IOMUX_PAD(0x524, 0x13c, 2, 0x0000, 0, 0) | ||
282 | #define _MX51_PAD_NANDF_CS3__GPIO3_19 IOMUX_PAD(0x524, 0x13c, 3, 0x0000, 0, 0) | ||
283 | #define _MX51_PAD_NANDF_CS3__NANDF_CS3 IOMUX_PAD(0x524, 0x13c, 0, 0x0000, 0, 0) | ||
284 | #define _MX51_PAD_NANDF_CS3__PATA_CS_1 IOMUX_PAD(0x524, 0x13c, 1, 0x0000, 0, 0) | ||
285 | #define _MX51_PAD_NANDF_CS3__SD4_DAT0 IOMUX_PAD(0x524, 0x13c, 5, 0x0000, 0, 0) | ||
286 | #define _MX51_PAD_NANDF_CS3__USBH3_H1_DM IOMUX_PAD(0x524, 0x13c, 7, 0x0000, 0, 0) | ||
287 | #define _MX51_PAD_NANDF_CS4__FEC_TDATA1 IOMUX_PAD(0x528, 0x140, 2, 0x0000, 0, 0) | ||
288 | #define _MX51_PAD_NANDF_CS4__GPIO3_20 IOMUX_PAD(0x528, 0x140, 3, 0x0000, 0, 0) | ||
289 | #define _MX51_PAD_NANDF_CS4__NANDF_CS4 IOMUX_PAD(0x528, 0x140, 0, 0x0000, 0, 0) | ||
290 | #define _MX51_PAD_NANDF_CS4__PATA_DA_0 IOMUX_PAD(0x528, 0x140, 1, 0x0000, 0, 0) | ||
291 | #define _MX51_PAD_NANDF_CS4__SD4_DAT1 IOMUX_PAD(0x528, 0x140, 5, 0x0000, 0, 0) | ||
292 | #define _MX51_PAD_NANDF_CS4__USBH3_STP IOMUX_PAD(0x528, 0x140, 7, 0x0a24, 0, 0) | ||
293 | #define _MX51_PAD_NANDF_CS5__FEC_TDATA2 IOMUX_PAD(0x52c, 0x144, 2, 0x0000, 0, 0) | ||
294 | #define _MX51_PAD_NANDF_CS5__GPIO3_21 IOMUX_PAD(0x52c, 0x144, 3, 0x0000, 0, 0) | ||
295 | #define _MX51_PAD_NANDF_CS5__NANDF_CS5 IOMUX_PAD(0x52c, 0x144, 0, 0x0000, 0, 0) | ||
296 | #define _MX51_PAD_NANDF_CS5__PATA_DA_1 IOMUX_PAD(0x52c, 0x144, 1, 0x0000, 0, 0) | ||
297 | #define _MX51_PAD_NANDF_CS5__SD4_DAT2 IOMUX_PAD(0x52c, 0x144, 5, 0x0000, 0, 0) | ||
298 | #define _MX51_PAD_NANDF_CS5__USBH3_DIR IOMUX_PAD(0x52c, 0x144, 7, 0x0a1c, 0, 0) | ||
299 | #define _MX51_PAD_NANDF_CS6__CSPI_SS3 IOMUX_PAD(0x530, 0x148, 7, 0x0928, 0, 0) | ||
300 | #define _MX51_PAD_NANDF_CS6__FEC_TDATA3 IOMUX_PAD(0x530, 0x148, 2, 0x0000, 0, 0) | ||
301 | #define _MX51_PAD_NANDF_CS6__GPIO3_22 IOMUX_PAD(0x530, 0x148, 3, 0x0000, 0, 0) | ||
302 | #define _MX51_PAD_NANDF_CS6__NANDF_CS6 IOMUX_PAD(0x530, 0x148, 0, 0x0000, 0, 0) | ||
303 | #define _MX51_PAD_NANDF_CS6__PATA_DA_2 IOMUX_PAD(0x530, 0x148, 1, 0x0000, 0, 0) | ||
304 | #define _MX51_PAD_NANDF_CS6__SD4_DAT3 IOMUX_PAD(0x530, 0x148, 5, 0x0000, 0, 0) | ||
305 | #define _MX51_PAD_NANDF_CS7__FEC_TX_EN IOMUX_PAD(0x534, 0x14c, 1, 0x0000, 0, 0) | ||
306 | #define _MX51_PAD_NANDF_CS7__GPIO3_23 IOMUX_PAD(0x534, 0x14c, 3, 0x0000, 0, 0) | ||
307 | #define _MX51_PAD_NANDF_CS7__NANDF_CS7 IOMUX_PAD(0x534, 0x14c, 0, 0x0000, 0, 0) | ||
308 | #define _MX51_PAD_NANDF_CS7__SD3_CLK IOMUX_PAD(0x534, 0x14c, 5, 0x0000, 0, 0) | ||
309 | #define _MX51_PAD_NANDF_RDY_INT__ECSPI2_SS0 IOMUX_PAD(0x538, 0x150, 2, 0x0000, 0, 0) | ||
310 | #define _MX51_PAD_NANDF_RDY_INT__FEC_TX_CLK IOMUX_PAD(0x538, 0x150, 1, 0x0974, 0, 0) | ||
311 | #define _MX51_PAD_NANDF_RDY_INT__GPIO3_24 IOMUX_PAD(0x538, 0x150, 3, 0x0000, 0, 0) | ||
312 | #define _MX51_PAD_NANDF_RDY_INT__NANDF_RDY_INT IOMUX_PAD(0x538, 0x150, 0, 0x0938, 0, 0) | ||
313 | #define _MX51_PAD_NANDF_RDY_INT__SD3_CMD IOMUX_PAD(0x538, 0x150, 5, 0x0000, 0, 0) | ||
314 | #define _MX51_PAD_NANDF_D15__ECSPI2_MOSI IOMUX_PAD(0x53c, 0x154, 2, 0x0000, 0, 0) | ||
315 | #define _MX51_PAD_NANDF_D15__GPIO3_25 IOMUX_PAD(0x53c, 0x154, 3, 0x0000, 0, 0) | ||
316 | #define _MX51_PAD_NANDF_D15__NANDF_D15 IOMUX_PAD(0x53c, 0x154, 0, 0x0000, 0, 0) | ||
317 | #define _MX51_PAD_NANDF_D15__PATA_DATA15 IOMUX_PAD(0x53c, 0x154, 1, 0x0000, 0, 0) | ||
318 | #define _MX51_PAD_NANDF_D15__SD3_DAT7 IOMUX_PAD(0x53c, 0x154, 5, 0x0000, 0, 0) | ||
319 | #define _MX51_PAD_NANDF_D14__ECSPI2_SS3 IOMUX_PAD(0x540, 0x158, 2, 0x0934, 0, 0) | ||
320 | #define _MX51_PAD_NANDF_D14__GPIO3_26 IOMUX_PAD(0x540, 0x158, 3, 0x0000, 0, 0) | ||
321 | #define _MX51_PAD_NANDF_D14__NANDF_D14 IOMUX_PAD(0x540, 0x158, 0, 0x0000, 0, 0) | ||
322 | #define _MX51_PAD_NANDF_D14__PATA_DATA14 IOMUX_PAD(0x540, 0x158, 1, 0x0000, 0, 0) | ||
323 | #define _MX51_PAD_NANDF_D14__SD3_DAT6 IOMUX_PAD(0x540, 0x158, 5, 0x0000, 0, 0) | ||
324 | #define _MX51_PAD_NANDF_D13__ECSPI2_SS2 IOMUX_PAD(0x544, 0x15c, 2, 0x0000, 0, 0) | ||
325 | #define _MX51_PAD_NANDF_D13__GPIO3_27 IOMUX_PAD(0x544, 0x15c, 3, 0x0000, 0, 0) | ||
326 | #define _MX51_PAD_NANDF_D13__NANDF_D13 IOMUX_PAD(0x544, 0x15c, 0, 0x0000, 0, 0) | ||
327 | #define _MX51_PAD_NANDF_D13__PATA_DATA13 IOMUX_PAD(0x544, 0x15c, 1, 0x0000, 0, 0) | ||
328 | #define _MX51_PAD_NANDF_D13__SD3_DAT5 IOMUX_PAD(0x544, 0x15c, 5, 0x0000, 0, 0) | ||
329 | #define _MX51_PAD_NANDF_D12__ECSPI2_SS1 IOMUX_PAD(0x548, 0x160, 2, 0x0930, 1, 0) | ||
330 | #define _MX51_PAD_NANDF_D12__GPIO3_28 IOMUX_PAD(0x548, 0x160, 3, 0x0000, 0, 0) | ||
331 | #define _MX51_PAD_NANDF_D12__NANDF_D12 IOMUX_PAD(0x548, 0x160, 0, 0x0000, 0, 0) | ||
332 | #define _MX51_PAD_NANDF_D12__PATA_DATA12 IOMUX_PAD(0x548, 0x160, 1, 0x0000, 0, 0) | ||
333 | #define _MX51_PAD_NANDF_D12__SD3_DAT4 IOMUX_PAD(0x548, 0x160, 5, 0x0000, 0, 0) | ||
334 | #define _MX51_PAD_NANDF_D11__FEC_RX_DV IOMUX_PAD(0x54c, 0x164, 2, 0x096c, 0, 0) | ||
335 | #define _MX51_PAD_NANDF_D11__GPIO3_29 IOMUX_PAD(0x54c, 0x164, 3, 0x0000, 0, 0) | ||
336 | #define _MX51_PAD_NANDF_D11__NANDF_D11 IOMUX_PAD(0x54c, 0x164, 0, 0x0000, 0, 0) | ||
337 | #define _MX51_PAD_NANDF_D11__PATA_DATA11 IOMUX_PAD(0x54c, 0x164, 1, 0x0000, 0, 0) | ||
338 | #define _MX51_PAD_NANDF_D11__SD3_DATA3 IOMUX_PAD(0x54c, 0x164, 5, 0x0948, 1, 0) | ||
339 | #define _MX51_PAD_NANDF_D10__GPIO3_30 IOMUX_PAD(0x550, 0x168, 3, 0x0000, 0, 0) | ||
340 | #define _MX51_PAD_NANDF_D10__NANDF_D10 IOMUX_PAD(0x550, 0x168, 0, 0x0000, 0, 0) | ||
341 | #define _MX51_PAD_NANDF_D10__PATA_DATA10 IOMUX_PAD(0x550, 0x168, 1, 0x0000, 0, 0) | ||
342 | #define _MX51_PAD_NANDF_D10__SD3_DATA2 IOMUX_PAD(0x550, 0x168, 5, 0x0944, 1, 0) | ||
343 | #define _MX51_PAD_NANDF_D9__FEC_RDATA0 IOMUX_PAD(0x554, 0x16c, 0x12, 0x0958, 0, 0) | ||
344 | #define _MX51_PAD_NANDF_D9__GPIO3_31 IOMUX_PAD(0x554, 0x16c, 3, 0x0000, 0, 0) | ||
345 | #define _MX51_PAD_NANDF_D9__NANDF_D9 IOMUX_PAD(0x554, 0x16c, 0, 0x0000, 0, 0) | ||
346 | #define _MX51_PAD_NANDF_D9__PATA_DATA9 IOMUX_PAD(0x554, 0x16c, 1, 0x0000, 0, 0) | ||
347 | #define _MX51_PAD_NANDF_D9__SD3_DATA1 IOMUX_PAD(0x554, 0x16c, 5, 0x0940, 1, 0) | ||
348 | #define _MX51_PAD_NANDF_D8__FEC_TDATA0 IOMUX_PAD(0x558, 0x170, 2, 0x0000, 0, 0) | ||
349 | #define _MX51_PAD_NANDF_D8__GPIO4_0 IOMUX_PAD(0x558, 0x170, 3, 0x0000, 0, 0) | ||
350 | #define _MX51_PAD_NANDF_D8__NANDF_D8 IOMUX_PAD(0x558, 0x170, 0, 0x0000, 0, 0) | ||
351 | #define _MX51_PAD_NANDF_D8__PATA_DATA8 IOMUX_PAD(0x558, 0x170, 1, 0x0000, 0, 0) | ||
352 | #define _MX51_PAD_NANDF_D8__SD3_DATA0 IOMUX_PAD(0x558, 0x170, 5, 0x093c, 1, 0) | ||
353 | #define _MX51_PAD_NANDF_D7__GPIO4_1 IOMUX_PAD(0x55c, 0x174, 3, 0x0000, 0, 0) | ||
354 | #define _MX51_PAD_NANDF_D7__NANDF_D7 IOMUX_PAD(0x55c, 0x174, 0, 0x0000, 0, 0) | ||
355 | #define _MX51_PAD_NANDF_D7__PATA_DATA7 IOMUX_PAD(0x55c, 0x174, 1, 0x0000, 0, 0) | ||
356 | #define _MX51_PAD_NANDF_D7__USBH3_DATA0 IOMUX_PAD(0x55c, 0x174, 5, 0x09fc, 0, 0) | ||
357 | #define _MX51_PAD_NANDF_D6__GPIO4_2 IOMUX_PAD(0x560, 0x178, 3, 0x0000, 0, 0) | ||
358 | #define _MX51_PAD_NANDF_D6__NANDF_D6 IOMUX_PAD(0x560, 0x178, 0, 0x0000, 0, 0) | ||
359 | #define _MX51_PAD_NANDF_D6__PATA_DATA6 IOMUX_PAD(0x560, 0x178, 1, 0x0000, 0, 0) | ||
360 | #define _MX51_PAD_NANDF_D6__SD4_LCTL IOMUX_PAD(0x560, 0x178, 2, 0x0000, 0, 0) | ||
361 | #define _MX51_PAD_NANDF_D6__USBH3_DATA1 IOMUX_PAD(0x560, 0x178, 5, 0x0a00, 0, 0) | ||
362 | #define _MX51_PAD_NANDF_D5__GPIO4_3 IOMUX_PAD(0x564, 0x17c, 3, 0x0000, 0, 0) | ||
363 | #define _MX51_PAD_NANDF_D5__NANDF_D5 IOMUX_PAD(0x564, 0x17c, 0, 0x0000, 0, 0) | ||
364 | #define _MX51_PAD_NANDF_D5__PATA_DATA5 IOMUX_PAD(0x564, 0x17c, 1, 0x0000, 0, 0) | ||
365 | #define _MX51_PAD_NANDF_D5__SD4_WP IOMUX_PAD(0x564, 0x17c, 2, 0x0000, 0, 0) | ||
366 | #define _MX51_PAD_NANDF_D5__USBH3_DATA2 IOMUX_PAD(0x564, 0x17c, 5, 0x0a04, 0, 0) | ||
367 | #define _MX51_PAD_NANDF_D4__GPIO4_4 IOMUX_PAD(0x568, 0x180, 3, 0x0000, 0, 0) | ||
368 | #define _MX51_PAD_NANDF_D4__NANDF_D4 IOMUX_PAD(0x568, 0x180, 0, 0x0000, 0, 0) | ||
369 | #define _MX51_PAD_NANDF_D4__PATA_DATA4 IOMUX_PAD(0x568, 0x180, 1, 0x0000, 0, 0) | ||
370 | #define _MX51_PAD_NANDF_D4__SD4_CD IOMUX_PAD(0x568, 0x180, 2, 0x0000, 0, 0) | ||
371 | #define _MX51_PAD_NANDF_D4__USBH3_DATA3 IOMUX_PAD(0x568, 0x180, 5, 0x0a08, 0, 0) | ||
372 | #define _MX51_PAD_NANDF_D3__GPIO4_5 IOMUX_PAD(0x56c, 0x184, 3, 0x0000, 0, 0) | ||
373 | #define _MX51_PAD_NANDF_D3__NANDF_D3 IOMUX_PAD(0x56c, 0x184, 0, 0x0000, 0, 0) | ||
374 | #define _MX51_PAD_NANDF_D3__PATA_DATA3 IOMUX_PAD(0x56c, 0x184, 1, 0x0000, 0, 0) | ||
375 | #define _MX51_PAD_NANDF_D3__SD4_DAT4 IOMUX_PAD(0x56c, 0x184, 2, 0x0000, 0, 0) | ||
376 | #define _MX51_PAD_NANDF_D3__USBH3_DATA4 IOMUX_PAD(0x56c, 0x184, 5, 0x0a0c, 0, 0) | ||
377 | #define _MX51_PAD_NANDF_D2__GPIO4_6 IOMUX_PAD(0x570, 0x188, 3, 0x0000, 0, 0) | ||
378 | #define _MX51_PAD_NANDF_D2__NANDF_D2 IOMUX_PAD(0x570, 0x188, 0, 0x0000, 0, 0) | ||
379 | #define _MX51_PAD_NANDF_D2__PATA_DATA2 IOMUX_PAD(0x570, 0x188, 1, 0x0000, 0, 0) | ||
380 | #define _MX51_PAD_NANDF_D2__SD4_DAT5 IOMUX_PAD(0x570, 0x188, 2, 0x0000, 0, 0) | ||
381 | #define _MX51_PAD_NANDF_D2__USBH3_DATA5 IOMUX_PAD(0x570, 0x188, 5, 0x0a10, 0, 0) | ||
382 | #define _MX51_PAD_NANDF_D1__GPIO4_7 IOMUX_PAD(0x574, 0x18c, 3, 0x0000, 0, 0) | ||
383 | #define _MX51_PAD_NANDF_D1__NANDF_D1 IOMUX_PAD(0x574, 0x18c, 0, 0x0000, 0, 0) | ||
384 | #define _MX51_PAD_NANDF_D1__PATA_DATA1 IOMUX_PAD(0x574, 0x18c, 1, 0x0000, 0, 0) | ||
385 | #define _MX51_PAD_NANDF_D1__SD4_DAT6 IOMUX_PAD(0x574, 0x18c, 2, 0x0000, 0, 0) | ||
386 | #define _MX51_PAD_NANDF_D1__USBH3_DATA6 IOMUX_PAD(0x574, 0x18c, 5, 0x0a14, 0, 0) | ||
387 | #define _MX51_PAD_NANDF_D0__GPIO4_8 IOMUX_PAD(0x578, 0x190, 3, 0x0000, 0, 0) | ||
388 | #define _MX51_PAD_NANDF_D0__NANDF_D0 IOMUX_PAD(0x578, 0x190, 0, 0x0000, 0, 0) | ||
389 | #define _MX51_PAD_NANDF_D0__PATA_DATA0 IOMUX_PAD(0x578, 0x190, 1, 0x0000, 0, 0) | ||
390 | #define _MX51_PAD_NANDF_D0__SD4_DAT7 IOMUX_PAD(0x578, 0x190, 2, 0x0000, 0, 0) | ||
391 | #define _MX51_PAD_NANDF_D0__USBH3_DATA7 IOMUX_PAD(0x578, 0x190, 5, 0x0a18, 0, 0) | ||
392 | #define _MX51_PAD_CSI1_D8__CSI1_D8 IOMUX_PAD(0x57c, 0x194, 0, 0x0000, 0, 0) | ||
393 | #define _MX51_PAD_CSI1_D8__GPIO3_12 IOMUX_PAD(0x57c, 0x194, 3, 0x0998, 1, 0) | ||
394 | #define _MX51_PAD_CSI1_D9__CSI1_D9 IOMUX_PAD(0x580, 0x198, 0, 0x0000, 0, 0) | ||
395 | #define _MX51_PAD_CSI1_D9__GPIO3_13 IOMUX_PAD(0x580, 0x198, 3, 0x0000, 0, 0) | ||
396 | #define _MX51_PAD_CSI1_D10__CSI1_D10 IOMUX_PAD(0x584, 0x19c, 0, 0x0000, 0, 0) | ||
397 | #define _MX51_PAD_CSI1_D11__CSI1_D11 IOMUX_PAD(0x588, 0x1a0, 0, 0x0000, 0, 0) | ||
398 | #define _MX51_PAD_CSI1_D12__CSI1_D12 IOMUX_PAD(0x58c, 0x1a4, 0, 0x0000, 0, 0) | ||
399 | #define _MX51_PAD_CSI1_D13__CSI1_D13 IOMUX_PAD(0x590, 0x1a8, 0, 0x0000, 0, 0) | ||
400 | #define _MX51_PAD_CSI1_D14__CSI1_D14 IOMUX_PAD(0x594, 0x1ac, 0, 0x0000, 0, 0) | ||
401 | #define _MX51_PAD_CSI1_D15__CSI1_D15 IOMUX_PAD(0x598, 0x1b0, 0, 0x0000, 0, 0) | ||
402 | #define _MX51_PAD_CSI1_D16__CSI1_D16 IOMUX_PAD(0x59c, 0x1b4, 0, 0x0000, 0, 0) | ||
403 | #define _MX51_PAD_CSI1_D17__CSI1_D17 IOMUX_PAD(0x5a0, 0x1b8, 0, 0x0000, 0, 0) | ||
404 | #define _MX51_PAD_CSI1_D18__CSI1_D18 IOMUX_PAD(0x5a4, 0x1bc, 0, 0x0000, 0, 0) | ||
405 | #define _MX51_PAD_CSI1_D19__CSI1_D19 IOMUX_PAD(0x5a8, 0x1c0, 0, 0x0000, 0, 0) | ||
406 | #define _MX51_PAD_CSI1_VSYNC__CSI1_VSYNC IOMUX_PAD(0x5ac, 0x1c4, 0, 0x0000, 0, 0) | ||
407 | #define _MX51_PAD_CSI1_VSYNC__GPIO3_14 IOMUX_PAD(0x5ac, 0x1c4, 3, 0x0000, 0, 0) | ||
408 | #define _MX51_PAD_CSI1_HSYNC__CSI1_HSYNC IOMUX_PAD(0x5b0, 0x1c8, 0, 0x0000, 0, 0) | ||
409 | #define _MX51_PAD_CSI1_HSYNC__GPIO3_15 IOMUX_PAD(0x5b0, 0x1c8, 3, 0x0000, 0, 0) | ||
410 | #define _MX51_PAD_CSI1_PIXCLK__CSI1_PIXCLK IOMUX_PAD(0x5b4, 0x000, 0, 0x0000, 0, 0) | ||
411 | #define _MX51_PAD_CSI1_MCLK__CSI1_MCLK IOMUX_PAD(0x5b8, 0x000, 0, 0x0000, 0, 0) | ||
412 | #define _MX51_PAD_CSI2_D12__CSI2_D12 IOMUX_PAD(0x5bc, 0x1cc, 0, 0x0000, 0, 0) | ||
413 | #define _MX51_PAD_CSI2_D12__GPIO4_9 IOMUX_PAD(0x5bc, 0x1cc, 3, 0x0000, 0, 0) | ||
414 | #define _MX51_PAD_CSI2_D13__CSI2_D13 IOMUX_PAD(0x5c0, 0x1d0, 0, 0x0000, 0, 0) | ||
415 | #define _MX51_PAD_CSI2_D13__GPIO4_10 IOMUX_PAD(0x5c0, 0x1d0, 3, 0x0000, 0, 0) | ||
416 | #define _MX51_PAD_CSI2_D14__CSI2_D14 IOMUX_PAD(0x5c4, 0x1d4, 0, 0x0000, 0, 0) | ||
417 | #define _MX51_PAD_CSI2_D15__CSI2_D15 IOMUX_PAD(0x5c8, 0x1d8, 0, 0x0000, 0, 0) | ||
418 | #define _MX51_PAD_CSI2_D16__CSI2_D16 IOMUX_PAD(0x5cc, 0x1dc, 0, 0x0000, 0, 0) | ||
419 | #define _MX51_PAD_CSI2_D17__CSI2_D17 IOMUX_PAD(0x5d0, 0x1e0, 0, 0x0000, 0, 0) | ||
420 | #define _MX51_PAD_CSI2_D18__CSI2_D18 IOMUX_PAD(0x5d4, 0x1e4, 0, 0x0000, 0, 0) | ||
421 | #define _MX51_PAD_CSI2_D18__GPIO4_11 IOMUX_PAD(0x5d4, 0x1e4, 3, 0x0000, 0, 0) | ||
422 | #define _MX51_PAD_CSI2_D19__CSI2_D19 IOMUX_PAD(0x5d8, 0x1e8, 0, 0x0000, 0, 0) | ||
423 | #define _MX51_PAD_CSI2_D19__GPIO4_12 IOMUX_PAD(0x5d8, 0x1e8, 3, 0x0000, 0, 0) | ||
424 | #define _MX51_PAD_CSI2_VSYNC__CSI2_VSYNC IOMUX_PAD(0x5dc, 0x1ec, 0, 0x0000, 0, 0) | ||
425 | #define _MX51_PAD_CSI2_VSYNC__GPIO4_13 IOMUX_PAD(0x5dc, 0x1ec, 3, 0x0000, 0, 0) | ||
426 | #define _MX51_PAD_CSI2_HSYNC__CSI2_HSYNC IOMUX_PAD(0x5e0, 0x1f0, 0, 0x0000, 0, 0) | ||
427 | #define _MX51_PAD_CSI2_HSYNC__GPIO4_14 IOMUX_PAD(0x5e0, 0x1f0, 3, 0x0000, 0, 0) | ||
428 | #define _MX51_PAD_CSI2_PIXCLK__CSI2_PIXCLK IOMUX_PAD(0x5e4, 0x1f4, 0, 0x0000, 0, 0) | ||
429 | #define _MX51_PAD_CSI2_PIXCLK__GPIO4_15 IOMUX_PAD(0x5e4, 0x1f4, 3, 0x0000, 0, 0) | ||
430 | #define _MX51_PAD_I2C1_CLK__GPIO4_16 IOMUX_PAD(0x5e8, 0x1f8, 3, 0x0000, 0, 0) | ||
431 | #define _MX51_PAD_I2C1_CLK__I2C1_CLK IOMUX_PAD(0x5e8, 0x1f8, 0x10, 0x0000, 0, 0) | ||
432 | #define _MX51_PAD_I2C1_DAT__GPIO4_17 IOMUX_PAD(0x5ec, 0x1fc, 3, 0x0000, 0, 0) | ||
433 | #define _MX51_PAD_I2C1_DAT__I2C1_DAT IOMUX_PAD(0x5ec, 0x1fc, 0x10, 0x0000, 0, 0) | ||
434 | #define _MX51_PAD_AUD3_BB_TXD__AUD3_TXD IOMUX_PAD(0x5f0, 0x200, 0, 0x0000, 0, 0) | ||
435 | #define _MX51_PAD_AUD3_BB_TXD__GPIO4_18 IOMUX_PAD(0x5f0, 0x200, 3, 0x0000, 0, 0) | ||
436 | #define _MX51_PAD_AUD3_BB_RXD__AUD3_RXD IOMUX_PAD(0x5f4, 0x204, 0, 0x0000, 0, 0) | ||
437 | #define _MX51_PAD_AUD3_BB_RXD__GPIO4_19 IOMUX_PAD(0x5f4, 0x204, 3, 0x0000, 0, 0) | ||
438 | #define _MX51_PAD_AUD3_BB_RXD__UART3_RXD IOMUX_PAD(0x5f4, 0x204, 1, 0x09f4, 2, 0) | ||
439 | #define _MX51_PAD_AUD3_BB_CK__AUD3_TXC IOMUX_PAD(0x5f8, 0x208, 0, 0x0000, 0, 0) | ||
440 | #define _MX51_PAD_AUD3_BB_CK__GPIO4_20 IOMUX_PAD(0x5f8, 0x208, 3, 0x0000, 0, 0) | ||
441 | #define _MX51_PAD_AUD3_BB_FS__AUD3_TXFS IOMUX_PAD(0x5fc, 0x20c, 0, 0x0000, 0, 0) | ||
442 | #define _MX51_PAD_AUD3_BB_FS__GPIO4_21 IOMUX_PAD(0x5fc, 0x20c, 3, 0x0000, 0, 0) | ||
443 | #define _MX51_PAD_AUD3_BB_FS__UART3_TXD IOMUX_PAD(0x5fc, 0x20c, 1, 0x0000, 0, 0) | ||
444 | #define _MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI IOMUX_PAD(0x600, 0x210, 0, 0x0000, 0, 0) | ||
445 | #define _MX51_PAD_CSPI1_MOSI__GPIO4_22 IOMUX_PAD(0x600, 0x210, 3, 0x0000, 0, 0) | ||
446 | #define _MX51_PAD_CSPI1_MOSI__I2C1_SDA IOMUX_PAD(0x600, 0x210, 0x11, 0x09b4, 1, 0) | ||
447 | #define _MX51_PAD_CSPI1_MISO__AUD4_RXD IOMUX_PAD(0x604, 0x214, 1, 0x08c4, 1, 0) | ||
448 | #define _MX51_PAD_CSPI1_MISO__ECSPI1_MISO IOMUX_PAD(0x604, 0x214, 0, 0x0000, 0, 0) | ||
449 | #define _MX51_PAD_CSPI1_MISO__GPIO4_23 IOMUX_PAD(0x604, 0x214, 3, 0x0000, 0, 0) | ||
450 | #define _MX51_PAD_CSPI1_SS0__AUD4_TXC IOMUX_PAD(0x608, 0x218, 1, 0x08cc, 1, 0) | ||
451 | #define _MX51_PAD_CSPI1_SS0__ECSPI1_SS0 IOMUX_PAD(0x608, 0x218, 0, 0x0000, 0, 0) | ||
452 | #define _MX51_PAD_CSPI1_SS0__GPIO4_24 IOMUX_PAD(0x608, 0x218, 3, 0x0000, 0, 0) | ||
453 | #define _MX51_PAD_CSPI1_SS1__AUD4_TXD IOMUX_PAD(0x60c, 0x21c, 1, 0x08c8, 1, 0) | ||
454 | #define _MX51_PAD_CSPI1_SS1__ECSPI1_SS1 IOMUX_PAD(0x60c, 0x21c, 0, 0x0000, 0, 0) | ||
455 | #define _MX51_PAD_CSPI1_SS1__GPIO4_25 IOMUX_PAD(0x60c, 0x21c, 3, 0x0000, 0, 0) | ||
456 | #define _MX51_PAD_CSPI1_RDY__AUD4_TXFS IOMUX_PAD(0x610, 0x220, 1, 0x08d0, 1, 0) | ||
457 | #define _MX51_PAD_CSPI1_RDY__ECSPI1_RDY IOMUX_PAD(0x610, 0x220, 0, 0x0000, 0, 0) | ||
458 | #define _MX51_PAD_CSPI1_RDY__GPIO4_26 IOMUX_PAD(0x610, 0x220, 3, 0x0000, 0, 0) | ||
459 | #define _MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK IOMUX_PAD(0x614, 0x224, 0, 0x0000, 0, 0) | ||
460 | #define _MX51_PAD_CSPI1_SCLK__GPIO4_27 IOMUX_PAD(0x614, 0x224, 3, 0x0000, 0, 0) | ||
461 | #define _MX51_PAD_CSPI1_SCLK__I2C1_SCL IOMUX_PAD(0x614, 0x224, 0x11, 0x09b0, 1, 0) | ||
462 | #define _MX51_PAD_UART1_RXD__GPIO4_28 IOMUX_PAD(0x618, 0x228, 3, 0x0000, 0, 0) | ||
463 | #define _MX51_PAD_UART1_RXD__UART1_RXD IOMUX_PAD(0x618, 0x228, 0, 0x09e4, 0, 0) | ||
464 | #define _MX51_PAD_UART1_TXD__GPIO4_29 IOMUX_PAD(0x61c, 0x22c, 3, 0x0000, 0, 0) | ||
465 | #define _MX51_PAD_UART1_TXD__PWM2_PWMO IOMUX_PAD(0x61c, 0x22c, 1, 0x0000, 0, 0) | ||
466 | #define _MX51_PAD_UART1_TXD__UART1_TXD IOMUX_PAD(0x61c, 0x22c, 0, 0x0000, 0, 0) | ||
467 | #define _MX51_PAD_UART1_RTS__GPIO4_30 IOMUX_PAD(0x620, 0x230, 3, 0x0000, 0, 0) | ||
468 | #define _MX51_PAD_UART1_RTS__UART1_RTS IOMUX_PAD(0x620, 0x230, 0, 0x09e0, 0, 0) | ||
469 | #define _MX51_PAD_UART1_CTS__GPIO4_31 IOMUX_PAD(0x624, 0x234, 3, 0x0000, 0, 0) | ||
470 | #define _MX51_PAD_UART1_CTS__UART1_CTS IOMUX_PAD(0x624, 0x234, 0, 0x0000, 0, 0) | ||
471 | #define _MX51_PAD_UART2_RXD__FIRI_TXD IOMUX_PAD(0x628, 0x238, 1, 0x0000, 0, 0) | ||
472 | #define _MX51_PAD_UART2_RXD__GPIO1_20 IOMUX_PAD(0x628, 0x238, 3, 0x0000, 0, 0) | ||
473 | #define _MX51_PAD_UART2_RXD__UART2_RXD IOMUX_PAD(0x628, 0x238, 0, 0x09ec, 2, 0) | ||
474 | #define _MX51_PAD_UART2_TXD__FIRI_RXD IOMUX_PAD(0x62c, 0x23c, 1, 0x0000, 0, 0) | ||
475 | #define _MX51_PAD_UART2_TXD__GPIO1_21 IOMUX_PAD(0x62c, 0x23c, 3, 0x0000, 0, 0) | ||
476 | #define _MX51_PAD_UART2_TXD__UART2_TXD IOMUX_PAD(0x62c, 0x23c, 0, 0x0000, 0, 0) | ||
477 | #define _MX51_PAD_UART3_RXD__CSI1_D0 IOMUX_PAD(0x630, 0x240, 2, 0x0000, 0, 0) | ||
478 | #define _MX51_PAD_UART3_RXD__GPIO1_22 IOMUX_PAD(0x630, 0x240, 3, 0x0000, 0, 0) | ||
479 | #define _MX51_PAD_UART3_RXD__UART1_DTR IOMUX_PAD(0x630, 0x240, 0, 0x0000, 0, 0) | ||
480 | #define _MX51_PAD_UART3_RXD__UART3_RXD IOMUX_PAD(0x630, 0x240, 1, 0x09f4, 4, 0) | ||
481 | #define _MX51_PAD_UART3_TXD__CSI1_D1 IOMUX_PAD(0x634, 0x244, 2, 0x0000, 0, 0) | ||
482 | #define _MX51_PAD_UART3_TXD__GPIO1_23 IOMUX_PAD(0x634, 0x244, 3, 0x0000, 0, 0) | ||
483 | #define _MX51_PAD_UART3_TXD__UART1_DSR IOMUX_PAD(0x634, 0x244, 0, 0x0000, 0, 0) | ||
484 | #define _MX51_PAD_UART3_TXD__UART3_TXD IOMUX_PAD(0x634, 0x244, 1, 0x0000, 0, 0) | ||
485 | #define _MX51_PAD_OWIRE_LINE__GPIO1_24 IOMUX_PAD(0x638, 0x248, 3, 0x0000, 0, 0) | ||
486 | #define _MX51_PAD_OWIRE_LINE__OWIRE_LINE IOMUX_PAD(0x638, 0x248, 0, 0x0000, 0, 0) | ||
487 | #define _MX51_PAD_OWIRE_LINE__SPDIF_OUT IOMUX_PAD(0x638, 0x248, 6, 0x0000, 0, 0) | ||
488 | #define _MX51_PAD_KEY_ROW0__KEY_ROW0 IOMUX_PAD(0x63c, 0x24c, 0, 0x0000, 0, 0) | ||
489 | #define _MX51_PAD_KEY_ROW1__KEY_ROW1 IOMUX_PAD(0x640, 0x250, 0, 0x0000, 0, 0) | ||
490 | #define _MX51_PAD_KEY_ROW2__KEY_ROW2 IOMUX_PAD(0x644, 0x254, 0, 0x0000, 0, 0) | ||
491 | #define _MX51_PAD_KEY_ROW3__KEY_ROW3 IOMUX_PAD(0x648, 0x258, 0, 0x0000, 0, 0) | ||
492 | #define _MX51_PAD_KEY_COL0__KEY_COL0 IOMUX_PAD(0x64c, 0x25c, 0, 0x0000, 0, 0) | ||
493 | #define _MX51_PAD_KEY_COL0__PLL1_BYP IOMUX_PAD(0x64c, 0x25c, 7, 0x090c, 0, 0) | ||
494 | #define _MX51_PAD_KEY_COL1__KEY_COL1 IOMUX_PAD(0x650, 0x260, 0, 0x0000, 0, 0) | ||
495 | #define _MX51_PAD_KEY_COL1__PLL2_BYP IOMUX_PAD(0x650, 0x260, 7, 0x0910, 0, 0) | ||
496 | #define _MX51_PAD_KEY_COL2__KEY_COL2 IOMUX_PAD(0x654, 0x264, 0, 0x0000, 0, 0) | ||
497 | #define _MX51_PAD_KEY_COL2__PLL3_BYP IOMUX_PAD(0x654, 0x264, 7, 0x0000, 0, 0) | ||
498 | #define _MX51_PAD_KEY_COL3__KEY_COL3 IOMUX_PAD(0x658, 0x268, 0, 0x0000, 0, 0) | ||
499 | #define _MX51_PAD_KEY_COL4__I2C2_SCL IOMUX_PAD(0x65c, 0x26c, 0x13, 0x09b8, 1, 0) | ||
500 | #define _MX51_PAD_KEY_COL4__KEY_COL4 IOMUX_PAD(0x65c, 0x26c, 0, 0x0000, 0, 0) | ||
501 | #define _MX51_PAD_KEY_COL4__SPDIF_OUT1 IOMUX_PAD(0x65c, 0x26c, 6, 0x0000, 0, 0) | ||
502 | #define _MX51_PAD_KEY_COL4__UART1_RI IOMUX_PAD(0x65c, 0x26c, 1, 0x0000, 0, 0) | ||
503 | #define _MX51_PAD_KEY_COL4__UART3_RTS IOMUX_PAD(0x65c, 0x26c, 2, 0x09f0, 4, 0) | ||
504 | #define _MX51_PAD_KEY_COL5__I2C2_SDA IOMUX_PAD(0x660, 0x270, 0x13, 0x09bc, 1, 0) | ||
505 | #define _MX51_PAD_KEY_COL5__KEY_COL5 IOMUX_PAD(0x660, 0x270, 0, 0x0000, 0, 0) | ||
506 | #define _MX51_PAD_KEY_COL5__UART1_DCD IOMUX_PAD(0x660, 0x270, 1, 0x0000, 0, 0) | ||
507 | #define _MX51_PAD_KEY_COL5__UART3_CTS IOMUX_PAD(0x660, 0x270, 2, 0x0000, 0, 0) | ||
508 | #define _MX51_PAD_USBH1_CLK__CSPI_SCLK IOMUX_PAD(0x678, 0x278, 1, 0x0914, 1, 0) | ||
509 | #define _MX51_PAD_USBH1_CLK__GPIO1_25 IOMUX_PAD(0x678, 0x278, 2, 0x0000, 0, 0) | ||
510 | #define _MX51_PAD_USBH1_CLK__I2C2_SCL IOMUX_PAD(0x678, 0x278, 0x15, 0x09b8, 2, 0) | ||
511 | #define _MX51_PAD_USBH1_CLK__USBH1_CLK IOMUX_PAD(0x678, 0x278, 0, 0x0000, 0, 0) | ||
512 | #define _MX51_PAD_USBH1_DIR__CSPI_MOSI IOMUX_PAD(0x67c, 0x27c, 1, 0x091c, 1, 0) | ||
513 | #define _MX51_PAD_USBH1_DIR__GPIO1_26 IOMUX_PAD(0x67c, 0x27c, 2, 0x0000, 0, 0) | ||
514 | #define _MX51_PAD_USBH1_DIR__I2C2_SDA IOMUX_PAD(0x67c, 0x27c, 0x15, 0x09bc, 2, 0) | ||
515 | #define _MX51_PAD_USBH1_DIR__USBH1_DIR IOMUX_PAD(0x67c, 0x27c, 0, 0x0000, 0, 0) | ||
516 | #define _MX51_PAD_USBH1_STP__CSPI_RDY IOMUX_PAD(0x680, 0x280, 1, 0x0000, 0, 0) | ||
517 | #define _MX51_PAD_USBH1_STP__GPIO1_27 IOMUX_PAD(0x680, 0x280, 2, 0x0000, 0, 0) | ||
518 | #define _MX51_PAD_USBH1_STP__UART3_RXD IOMUX_PAD(0x680, 0x280, 5, 0x09f4, 6, 0) | ||
519 | #define _MX51_PAD_USBH1_STP__USBH1_STP IOMUX_PAD(0x680, 0x280, 0, 0x0000, 0, 0) | ||
520 | #define _MX51_PAD_USBH1_NXT__CSPI_MISO IOMUX_PAD(0x684, 0x284, 1, 0x0918, 0, 0) | ||
521 | #define _MX51_PAD_USBH1_NXT__GPIO1_28 IOMUX_PAD(0x684, 0x284, 2, 0x0000, 0, 0) | ||
522 | #define _MX51_PAD_USBH1_NXT__UART3_TXD IOMUX_PAD(0x684, 0x284, 5, 0x0000, 0, 0) | ||
523 | #define _MX51_PAD_USBH1_NXT__USBH1_NXT IOMUX_PAD(0x684, 0x284, 0, 0x0000, 0, 0) | ||
524 | #define _MX51_PAD_USBH1_DATA0__GPIO1_11 IOMUX_PAD(0x688, 0x288, 2, 0x0000, 0, 0) | ||
525 | #define _MX51_PAD_USBH1_DATA0__UART2_CTS IOMUX_PAD(0x688, 0x288, 1, 0x0000, 0, 0) | ||
526 | #define _MX51_PAD_USBH1_DATA0__USBH1_DATA0 IOMUX_PAD(0x688, 0x288, 0, 0x0000, 0, 0) | ||
527 | #define _MX51_PAD_USBH1_DATA1__GPIO1_12 IOMUX_PAD(0x68c, 0x28c, 2, 0x0000, 0, 0) | ||
528 | #define _MX51_PAD_USBH1_DATA1__UART2_RXD IOMUX_PAD(0x68c, 0x28c, 1, 0x09ec, 4, 0) | ||
529 | #define _MX51_PAD_USBH1_DATA1__USBH1_DATA1 IOMUX_PAD(0x68c, 0x28c, 0, 0x0000, 0, 0) | ||
530 | #define _MX51_PAD_USBH1_DATA2__GPIO1_13 IOMUX_PAD(0x690, 0x290, 2, 0x0000, 0, 0) | ||
531 | #define _MX51_PAD_USBH1_DATA2__UART2_TXD IOMUX_PAD(0x690, 0x290, 1, 0x0000, 0, 0) | ||
532 | #define _MX51_PAD_USBH1_DATA2__USBH1_DATA2 IOMUX_PAD(0x690, 0x290, 0, 0x0000, 0, 0) | ||
533 | #define _MX51_PAD_USBH1_DATA3__GPIO1_14 IOMUX_PAD(0x694, 0x294, 2, 0x0000, 0, 0) | ||
534 | #define _MX51_PAD_USBH1_DATA3__UART2_RTS IOMUX_PAD(0x694, 0x294, 1, 0x09e8, 5, 0) | ||
535 | #define _MX51_PAD_USBH1_DATA3__USBH1_DATA3 IOMUX_PAD(0x694, 0x294, 0, 0x0000, 0, 0) | ||
536 | #define _MX51_PAD_USBH1_DATA4__CSPI_SS0 IOMUX_PAD(0x698, 0x298, 1, 0x0000, 0, 0) | ||
537 | #define _MX51_PAD_USBH1_DATA4__GPIO1_15 IOMUX_PAD(0x698, 0x298, 2, 0x0000, 0, 0) | ||
538 | #define _MX51_PAD_USBH1_DATA4__USBH1_DATA4 IOMUX_PAD(0x698, 0x298, 0, 0x0000, 0, 0) | ||
539 | #define _MX51_PAD_USBH1_DATA5__CSPI_SS1 IOMUX_PAD(0x69c, 0x29c, 1, 0x0920, 0, 0) | ||
540 | #define _MX51_PAD_USBH1_DATA5__GPIO1_16 IOMUX_PAD(0x69c, 0x29c, 2, 0x0000, 0, 0) | ||
541 | #define _MX51_PAD_USBH1_DATA5__USBH1_DATA5 IOMUX_PAD(0x69c, 0x29c, 0, 0x0000, 0, 0) | ||
542 | #define _MX51_PAD_USBH1_DATA6__CSPI_SS3 IOMUX_PAD(0x6a0, 0x2a0, 1, 0x0928, 1, 0) | ||
543 | #define _MX51_PAD_USBH1_DATA6__GPIO1_17 IOMUX_PAD(0x6a0, 0x2a0, 2, 0x0000, 0, 0) | ||
544 | #define _MX51_PAD_USBH1_DATA6__USBH1_DATA6 IOMUX_PAD(0x6a0, 0x2a0, 0, 0x0000, 0, 0) | ||
545 | #define _MX51_PAD_USBH1_DATA7__ECSPI1_SS3 IOMUX_PAD(0x6a4, 0x2a4, 1, 0x0000, 0, 0) | ||
546 | #define _MX51_PAD_USBH1_DATA7__ECSPI2_SS3 IOMUX_PAD(0x6a4, 0x2a4, 5, 0x0934, 1, 0) | ||
547 | #define _MX51_PAD_USBH1_DATA7__GPIO1_18 IOMUX_PAD(0x6a4, 0x2a4, 2, 0x0000, 0, 0) | ||
548 | #define _MX51_PAD_USBH1_DATA7__USBH1_DATA7 IOMUX_PAD(0x6a4, 0x2a4, 0, 0x0000, 0, 0) | ||
549 | #define _MX51_PAD_DI1_PIN11__DI1_PIN11 IOMUX_PAD(0x6a8, 0x2a8, 0, 0x0000, 0, 0) | ||
550 | #define _MX51_PAD_DI1_PIN11__ECSPI1_SS2 IOMUX_PAD(0x6a8, 0x2a8, 7, 0x0000, 0, 0) | ||
551 | #define _MX51_PAD_DI1_PIN11__GPIO3_0 IOMUX_PAD(0x6a8, 0x2a8, 4, 0x0000, 0, 0) | ||
552 | #define _MX51_PAD_DI1_PIN12__DI1_PIN12 IOMUX_PAD(0x6ac, 0x2ac, 0, 0x0000, 0, 0) | ||
553 | #define _MX51_PAD_DI1_PIN12__GPIO3_1 IOMUX_PAD(0x6ac, 0x2ac, 4, 0x0978, 1, 0) | ||
554 | #define _MX51_PAD_DI1_PIN13__DI1_PIN13 IOMUX_PAD(0x6b0, 0x2b0, 0, 0x0000, 0, 0) | ||
555 | #define _MX51_PAD_DI1_PIN13__GPIO3_2 IOMUX_PAD(0x6b0, 0x2b0, 4, 0x097c, 1, 0) | ||
556 | #define _MX51_PAD_DI1_D0_CS__DI1_D0_CS IOMUX_PAD(0x6b4, 0x2b4, 0, 0x0000, 0, 0) | ||
557 | #define _MX51_PAD_DI1_D0_CS__GPIO3_3 IOMUX_PAD(0x6b4, 0x2b4, 4, 0x0980, 1, 0) | ||
558 | #define _MX51_PAD_DI1_D1_CS__DI1_D1_CS IOMUX_PAD(0x6b8, 0x2b8, 0, 0x0000, 0, 0) | ||
559 | #define _MX51_PAD_DI1_D1_CS__DISP1_PIN14 IOMUX_PAD(0x6b8, 0x2b8, 2, 0x0000, 0, 0) | ||
560 | #define _MX51_PAD_DI1_D1_CS__DISP1_PIN5 IOMUX_PAD(0x6b8, 0x2b8, 3, 0x0000, 0, 0) | ||
561 | #define _MX51_PAD_DI1_D1_CS__GPIO3_4 IOMUX_PAD(0x6b8, 0x2b8, 4, 0x0984, 1, 0) | ||
562 | #define _MX51_PAD_DISPB2_SER_DIN__DISP1_PIN1 IOMUX_PAD(0x6bc, 0x2bc, 2, 0x09a4, 1, 0) | ||
563 | #define _MX51_PAD_DISPB2_SER_DIN__DISPB2_SER_DIN IOMUX_PAD(0x6bc, 0x2bc, 0, 0x09c4, 0, 0) | ||
564 | #define _MX51_PAD_DISPB2_SER_DIN__GPIO3_5 IOMUX_PAD(0x6bc, 0x2bc, 4, 0x0988, 1, 0) | ||
565 | #define _MX51_PAD_DISPB2_SER_DIO__DISP1_PIN6 IOMUX_PAD(0x6c0, 0x2c0, 3, 0x0000, 0, 0) | ||
566 | #define _MX51_PAD_DISPB2_SER_DIO__DISPB2_SER_DIO IOMUX_PAD(0x6c0, 0x2c0, 0, 0x09c4, 1, 0) | ||
567 | #define _MX51_PAD_DISPB2_SER_DIO__GPIO3_6 IOMUX_PAD(0x6c0, 0x2c0, 4, 0x098c, 1, 0) | ||
568 | #define _MX51_PAD_DISPB2_SER_CLK__DISP1_PIN17 IOMUX_PAD(0x6c4, 0x2c4, 2, 0x0000, 0, 0) | ||
569 | #define _MX51_PAD_DISPB2_SER_CLK__DISP1_PIN7 IOMUX_PAD(0x6c4, 0x2c4, 3, 0x0000, 0, 0) | ||
570 | #define _MX51_PAD_DISPB2_SER_CLK__DISPB2_SER_CLK IOMUX_PAD(0x6c4, 0x2c4, 0, 0x0000, 0, 0) | ||
571 | #define _MX51_PAD_DISPB2_SER_CLK__GPIO3_7 IOMUX_PAD(0x6c4, 0x2c4, 4, 0x0990, 1, 0) | ||
572 | #define _MX51_PAD_DISPB2_SER_RS__DISP1_EXT_CLK IOMUX_PAD(0x6c8, 0x2c8, 2, 0x0000, 0, 0) | ||
573 | #define _MX51_PAD_DISPB2_SER_RS__DISP1_PIN16 IOMUX_PAD(0x6c8, 0x2c8, 2, 0x0000, 0, 0) | ||
574 | #define _MX51_PAD_DISPB2_SER_RS__DISP1_PIN8 IOMUX_PAD(0x6c8, 0x2c8, 3, 0x0000, 0, 0) | ||
575 | #define _MX51_PAD_DISPB2_SER_RS__DISPB2_SER_RS IOMUX_PAD(0x6c8, 0x2c8, 0, 0x0000, 0, 0) | ||
576 | #define _MX51_PAD_DISPB2_SER_RS__DISPB2_SER_RS IOMUX_PAD(0x6c8, 0x2c8, 0, 0x0000, 0, 0) | ||
577 | #define _MX51_PAD_DISPB2_SER_RS__GPIO3_8 IOMUX_PAD(0x6c8, 0x2c8, 4, 0x0994, 1, 0) | ||
578 | #define _MX51_PAD_DISP1_DAT0__DISP1_DAT0 IOMUX_PAD(0x6cc, 0x2cc, 0, 0x0000, 0, 0) | ||
579 | #define _MX51_PAD_DISP1_DAT1__DISP1_DAT1 IOMUX_PAD(0x6d0, 0x2d0, 0, 0x0000, 0, 0) | ||
580 | #define _MX51_PAD_DISP1_DAT2__DISP1_DAT2 IOMUX_PAD(0x6d4, 0x2d4, 0, 0x0000, 0, 0) | ||
581 | #define _MX51_PAD_DISP1_DAT3__DISP1_DAT3 IOMUX_PAD(0x6d8, 0x2d8, 0, 0x0000, 0, 0) | ||
582 | #define _MX51_PAD_DISP1_DAT4__DISP1_DAT4 IOMUX_PAD(0x6dc, 0x2dc, 0, 0x0000, 0, 0) | ||
583 | #define _MX51_PAD_DISP1_DAT5__DISP1_DAT5 IOMUX_PAD(0x6e0, 0x2e0, 0, 0x0000, 0, 0) | ||
584 | #define _MX51_PAD_DISP1_DAT6__BOOT_USB_SRC IOMUX_PAD(0x6e4, 0x2e4, 7, 0x0000, 0, 0) | ||
585 | #define _MX51_PAD_DISP1_DAT6__DISP1_DAT6 IOMUX_PAD(0x6e4, 0x2e4, 0, 0x0000, 0, 0) | ||
586 | #define _MX51_PAD_DISP1_DAT7__BOOT_EEPROM_CFG IOMUX_PAD(0x6e8, 0x2e8, 7, 0x0000, 0, 0) | ||
587 | #define _MX51_PAD_DISP1_DAT7__DISP1_DAT7 IOMUX_PAD(0x6e8, 0x2e8, 0, 0x0000, 0, 0) | ||
588 | #define _MX51_PAD_DISP1_DAT8__BOOT_SRC0 IOMUX_PAD(0x6ec, 0x2ec, 7, 0x0000, 0, 0) | ||
589 | #define _MX51_PAD_DISP1_DAT8__DISP1_DAT8 IOMUX_PAD(0x6ec, 0x2ec, 0, 0x0000, 0, 0) | ||
590 | #define _MX51_PAD_DISP1_DAT9__BOOT_SRC1 IOMUX_PAD(0x6f0, 0x2f0, 7, 0x0000, 0, 0) | ||
591 | #define _MX51_PAD_DISP1_DAT9__DISP1_DAT9 IOMUX_PAD(0x6f0, 0x2f0, 0, 0x0000, 0, 0) | ||
592 | #define _MX51_PAD_DISP1_DAT10__BOOT_SPARE_SIZE IOMUX_PAD(0x6f4, 0x2f4, 7, 0x0000, 0, 0) | ||
593 | #define _MX51_PAD_DISP1_DAT10__DISP1_DAT10 IOMUX_PAD(0x6f4, 0x2f4, 0, 0x0000, 0, 0) | ||
594 | #define _MX51_PAD_DISP1_DAT11__BOOT_LPB_FREQ2 IOMUX_PAD(0x6f8, 0x2f8, 7, 0x0000, 0, 0) | ||
595 | #define _MX51_PAD_DISP1_DAT11__DISP1_DAT11 IOMUX_PAD(0x6f8, 0x2f8, 0, 0x0000, 0, 0) | ||
596 | #define _MX51_PAD_DISP1_DAT12__BOOT_MLC_SEL IOMUX_PAD(0x6fc, 0x2fc, 7, 0x0000, 0, 0) | ||
597 | #define _MX51_PAD_DISP1_DAT12__DISP1_DAT12 IOMUX_PAD(0x6fc, 0x2fc, 0, 0x0000, 0, 0) | ||
598 | #define _MX51_PAD_DISP1_DAT13__BOOT_MEM_CTL0 IOMUX_PAD(0x700, 0x300, 7, 0x0000, 0, 0) | ||
599 | #define _MX51_PAD_DISP1_DAT13__DISP1_DAT13 IOMUX_PAD(0x700, 0x300, 0, 0x0000, 0, 0) | ||
600 | #define _MX51_PAD_DISP1_DAT14__BOOT_MEM_CTL1 IOMUX_PAD(0x704, 0x304, 7, 0x0000, 0, 0) | ||
601 | #define _MX51_PAD_DISP1_DAT14__DISP1_DAT14 IOMUX_PAD(0x704, 0x304, 0, 0x0000, 0, 0) | ||
602 | #define _MX51_PAD_DISP1_DAT15__BOOT_BUS_WIDTH IOMUX_PAD(0x708, 0x308, 7, 0x0000, 0, 0) | ||
603 | #define _MX51_PAD_DISP1_DAT15__DISP1_DAT15 IOMUX_PAD(0x708, 0x308, 0, 0x0000, 0, 0) | ||
604 | #define _MX51_PAD_DISP1_DAT16__BOOT_PAGE_SIZE0 IOMUX_PAD(0x70c, 0x30c, 7, 0x0000, 0, 0) | ||
605 | #define _MX51_PAD_DISP1_DAT16__DISP1_DAT16 IOMUX_PAD(0x70c, 0x30c, 0, 0x0000, 0, 0) | ||
606 | #define _MX51_PAD_DISP1_DAT17__BOOT_PAGE_SIZE1 IOMUX_PAD(0x710, 0x310, 7, 0x0000, 0, 0) | ||
607 | #define _MX51_PAD_DISP1_DAT17__DISP1_DAT17 IOMUX_PAD(0x710, 0x310, 0, 0x0000, 0, 0) | ||
608 | #define _MX51_PAD_DISP1_DAT18__BOOT_WEIM_MUXED0 IOMUX_PAD(0x714, 0x314, 7, 0x0000, 0, 0) | ||
609 | #define _MX51_PAD_DISP1_DAT18__DISP1_DAT18 IOMUX_PAD(0x714, 0x314, 0, 0x0000, 0, 0) | ||
610 | #define _MX51_PAD_DISP1_DAT18__DISP2_PIN11 IOMUX_PAD(0x714, 0x314, 5, 0x0000, 0, 0) | ||
611 | #define _MX51_PAD_DISP1_DAT18__DISP2_PIN5 IOMUX_PAD(0x714, 0x314, 4, 0x0000, 0, 0) | ||
612 | #define _MX51_PAD_DISP1_DAT19__BOOT_WEIM_MUXED1 IOMUX_PAD(0x718, 0x318, 7, 0x0000, 0, 0) | ||
613 | #define _MX51_PAD_DISP1_DAT19__DISP1_DAT19 IOMUX_PAD(0x718, 0x318, 0, 0x0000, 0, 0) | ||
614 | #define _MX51_PAD_DISP1_DAT19__DISP2_PIN12 IOMUX_PAD(0x718, 0x318, 5, 0x0000, 0, 0) | ||
615 | #define _MX51_PAD_DISP1_DAT19__DISP2_PIN6 IOMUX_PAD(0x718, 0x318, 4, 0x0000, 0, 0) | ||
616 | #define _MX51_PAD_DISP1_DAT20__BOOT_MEM_TYPE0 IOMUX_PAD(0x71c, 0x31c, 7, 0x0000, 0, 0) | ||
617 | #define _MX51_PAD_DISP1_DAT20__DISP1_DAT20 IOMUX_PAD(0x71c, 0x31c, 0, 0x0000, 0, 0) | ||
618 | #define _MX51_PAD_DISP1_DAT20__DISP2_PIN13 IOMUX_PAD(0x71c, 0x31c, 5, 0x0000, 0, 0) | ||
619 | #define _MX51_PAD_DISP1_DAT20__DISP2_PIN7 IOMUX_PAD(0x71c, 0x31c, 4, 0x0000, 0, 0) | ||
620 | #define _MX51_PAD_DISP1_DAT21__BOOT_MEM_TYPE1 IOMUX_PAD(0x720, 0x320, 7, 0x0000, 0, 0) | ||
621 | #define _MX51_PAD_DISP1_DAT21__DISP1_DAT21 IOMUX_PAD(0x720, 0x320, 0, 0x0000, 0, 0) | ||
622 | #define _MX51_PAD_DISP1_DAT21__DISP2_PIN14 IOMUX_PAD(0x720, 0x320, 5, 0x0000, 0, 0) | ||
623 | #define _MX51_PAD_DISP1_DAT21__DISP2_PIN8 IOMUX_PAD(0x720, 0x320, 4, 0x0000, 0, 0) | ||
624 | #define _MX51_PAD_DISP1_DAT22__BOOT_LPB_FREQ0 IOMUX_PAD(0x724, 0x324, 7, 0x0000, 0, 0) | ||
625 | #define _MX51_PAD_DISP1_DAT22__DISP1_DAT22 IOMUX_PAD(0x724, 0x324, 0, 0x0000, 0, 0) | ||
626 | #define _MX51_PAD_DISP1_DAT22__DISP2_D0_CS IOMUX_PAD(0x724, 0x324, 6, 0x0000, 0, 0) | ||
627 | #define _MX51_PAD_DISP1_DAT22__DISP2_DAT16 IOMUX_PAD(0x724, 0x324, 5, 0x0000, 0, 0) | ||
628 | #define _MX51_PAD_DISP1_DAT23__BOOT_LPB_FREQ1 IOMUX_PAD(0x728, 0x328, 7, 0x0000, 0, 0) | ||
629 | #define _MX51_PAD_DISP1_DAT23__DISP1_DAT23 IOMUX_PAD(0x728, 0x328, 0, 0x0000, 0, 0) | ||
630 | #define _MX51_PAD_DISP1_DAT23__DISP2_D1_CS IOMUX_PAD(0x728, 0x328, 6, 0x0000, 0, 0) | ||
631 | #define _MX51_PAD_DISP1_DAT23__DISP2_DAT17 IOMUX_PAD(0x728, 0x328, 5, 0x0000, 0, 0) | ||
632 | #define _MX51_PAD_DISP1_DAT23__DISP2_SER_CS IOMUX_PAD(0x728, 0x328, 4, 0x0000, 0, 0) | ||
633 | #define _MX51_PAD_DI1_PIN3__DI1_PIN3 IOMUX_PAD(0x72c, 0x32c, 0, 0x0000, 0, 0) | ||
634 | #define _MX51_PAD_DI1_PIN2__DI1_PIN2 IOMUX_PAD(0x734, 0x330, 0, 0x0000, 0, 0) | ||
635 | #define _MX51_PAD_DI_GP2__DISP1_SER_CLK IOMUX_PAD(0x740, 0x338, 0, 0x0000, 0, 0) | ||
636 | #define _MX51_PAD_DI_GP2__DISP2_WAIT IOMUX_PAD(0x740, 0x338, 2, 0x09a8, 1, 0) | ||
637 | #define _MX51_PAD_DI_GP3__CSI1_DATA_EN IOMUX_PAD(0x744, 0x33c, 3, 0x09a0, 1, 0) | ||
638 | #define _MX51_PAD_DI_GP3__DISP1_SER_DIO IOMUX_PAD(0x744, 0x33c, 0, 0x09c0, 0, 0) | ||
639 | #define _MX51_PAD_DI_GP3__FEC_TX_ER IOMUX_PAD(0x744, 0x33c, 2, 0x0000, 0, 0) | ||
640 | #define _MX51_PAD_DI2_PIN4__CSI2_DATA_EN IOMUX_PAD(0x748, 0x340, 3, 0x099c, 1, 0) | ||
641 | #define _MX51_PAD_DI2_PIN4__DI2_PIN4 IOMUX_PAD(0x748, 0x340, 0, 0x0000, 0, 0) | ||
642 | #define _MX51_PAD_DI2_PIN4__FEC_CRS IOMUX_PAD(0x748, 0x340, 2, 0x0950, 1, 0) | ||
643 | #define _MX51_PAD_DI2_PIN2__DI2_PIN2 IOMUX_PAD(0x74c, 0x344, 0, 0x0000, 0, 0) | ||
644 | #define _MX51_PAD_DI2_PIN2__FEC_MDC IOMUX_PAD(0x74c, 0x344, 2, 0x0000, 0, 0) | ||
645 | #define _MX51_PAD_DI2_PIN3__DI2_PIN3 IOMUX_PAD(0x750, 0x348, 0, 0x0000, 0, 0) | ||
646 | #define _MX51_PAD_DI2_PIN3__FEC_MDIO IOMUX_PAD(0x750, 0x348, 2, 0x0954, 1, 0) | ||
647 | #define _MX51_PAD_DI2_DISP_CLK__DI2_DISP_CLK IOMUX_PAD(0x754, 0x34c, 0, 0x0000, 0, 0) | ||
648 | #define _MX51_PAD_DI2_DISP_CLK__FEC_RDATA1 IOMUX_PAD(0x754, 0x34c, 2, 0x095c, 1, 0) | ||
649 | #define _MX51_PAD_DI_GP4__DI2_PIN15 IOMUX_PAD(0x758, 0x350, 4, 0x0000, 0, 0) | ||
650 | #define _MX51_PAD_DI_GP4__DISP1_SER_DIN IOMUX_PAD(0x758, 0x350, 0, 0x09c0, 1, 0) | ||
651 | #define _MX51_PAD_DI_GP4__DISP2_PIN1 IOMUX_PAD(0x758, 0x350, 3, 0x0000, 0, 0) | ||
652 | #define _MX51_PAD_DI_GP4__FEC_RDATA2 IOMUX_PAD(0x758, 0x350, 2, 0x0960, 1, 0) | ||
653 | #define _MX51_PAD_DISP2_DAT0__DISP2_DAT0 IOMUX_PAD(0x75c, 0x354, 0, 0x0000, 0, 0) | ||
654 | #define _MX51_PAD_DISP2_DAT0__FEC_RDATA3 IOMUX_PAD(0x75c, 0x354, 2, 0x0964, 1, 0) | ||
655 | #define _MX51_PAD_DISP2_DAT0__KEY_COL6 IOMUX_PAD(0x75c, 0x354, 4, 0x09c8, 1, 0) | ||
656 | #define _MX51_PAD_DISP2_DAT0__UART3_RXD IOMUX_PAD(0x75c, 0x354, 5, 0x09f4, 8, 0) | ||
657 | #define _MX51_PAD_DISP2_DAT0__USBH3_CLK IOMUX_PAD(0x75c, 0x354, 3, 0x09f8, 1, 0) | ||
658 | #define _MX51_PAD_DISP2_DAT1__DISP2_DAT1 IOMUX_PAD(0x760, 0x358, 0, 0x0000, 0, 0) | ||
659 | #define _MX51_PAD_DISP2_DAT1__FEC_RX_ER IOMUX_PAD(0x760, 0x358, 2, 0x0970, 1, 0) | ||
660 | #define _MX51_PAD_DISP2_DAT1__KEY_COL7 IOMUX_PAD(0x760, 0x358, 4, 0x09cc, 1, 0) | ||
661 | #define _MX51_PAD_DISP2_DAT1__UART3_TXD IOMUX_PAD(0x760, 0x358, 5, 0x0000, 0, 0) | ||
662 | #define _MX51_PAD_DISP2_DAT1__USBH3_DIR IOMUX_PAD(0x760, 0x358, 3, 0x0a1c, 1, 0) | ||
663 | #define _MX51_PAD_DISP2_DAT2__DISP2_DAT2 IOMUX_PAD(0x764, 0x35c, 0, 0x0000, 0, 0) | ||
664 | #define _MX51_PAD_DISP2_DAT3__DISP2_DAT3 IOMUX_PAD(0x768, 0x360, 0, 0x0000, 0, 0) | ||
665 | #define _MX51_PAD_DISP2_DAT4__DISP2_DAT4 IOMUX_PAD(0x76c, 0x364, 0, 0x0000, 0, 0) | ||
666 | #define _MX51_PAD_DISP2_DAT5__DISP2_DAT5 IOMUX_PAD(0x770, 0x368, 0, 0x0000, 0, 0) | ||
667 | #define _MX51_PAD_DISP2_DAT6__DISP2_DAT6 IOMUX_PAD(0x774, 0x36c, 0, 0x0000, 0, 0) | ||
668 | #define _MX51_PAD_DISP2_DAT6__FEC_TDATA1 IOMUX_PAD(0x774, 0x36c, 2, 0x0000, 0, 0) | ||
669 | #define _MX51_PAD_DISP2_DAT6__GPIO1_19 IOMUX_PAD(0x774, 0x36c, 5, 0x0000, 0, 0) | ||
670 | #define _MX51_PAD_DISP2_DAT6__KEY_ROW4 IOMUX_PAD(0x774, 0x36c, 4, 0x09d0, 1, 0) | ||
671 | #define _MX51_PAD_DISP2_DAT6__USBH3_STP IOMUX_PAD(0x774, 0x36c, 3, 0x0a24, 1, 0) | ||
672 | #define _MX51_PAD_DISP2_DAT7__DISP2_DAT7 IOMUX_PAD(0x778, 0x370, 0, 0x0000, 0, 0) | ||
673 | #define _MX51_PAD_DISP2_DAT7__FEC_TDATA2 IOMUX_PAD(0x778, 0x370, 2, 0x0000, 0, 0) | ||
674 | #define _MX51_PAD_DISP2_DAT7__GPIO1_29 IOMUX_PAD(0x778, 0x370, 5, 0x0000, 0, 0) | ||
675 | #define _MX51_PAD_DISP2_DAT7__KEY_ROW5 IOMUX_PAD(0x778, 0x370, 4, 0x09d4, 1, 0) | ||
676 | #define _MX51_PAD_DISP2_DAT7__USBH3_NXT IOMUX_PAD(0x778, 0x370, 3, 0x0a20, 1, 0) | ||
677 | #define _MX51_PAD_DISP2_DAT8__DISP2_DAT8 IOMUX_PAD(0x77c, 0x374, 0, 0x0000, 0, 0) | ||
678 | #define _MX51_PAD_DISP2_DAT8__FEC_TDATA3 IOMUX_PAD(0x77c, 0x374, 2, 0x0000, 0, 0) | ||
679 | #define _MX51_PAD_DISP2_DAT8__GPIO1_30 IOMUX_PAD(0x77c, 0x374, 5, 0x0000, 0, 0) | ||
680 | #define _MX51_PAD_DISP2_DAT8__KEY_ROW6 IOMUX_PAD(0x77c, 0x374, 4, 0x09d8, 1, 0) | ||
681 | #define _MX51_PAD_DISP2_DAT8__USBH3_DATA0 IOMUX_PAD(0x77c, 0x374, 3, 0x09fc, 1, 0) | ||
682 | #define _MX51_PAD_DISP2_DAT9__AUD6_RXC IOMUX_PAD(0x780, 0x378, 4, 0x08f4, 1, 0) | ||
683 | #define _MX51_PAD_DISP2_DAT9__DISP2_DAT9 IOMUX_PAD(0x780, 0x378, 0, 0x0000, 0, 0) | ||
684 | #define _MX51_PAD_DISP2_DAT9__FEC_TX_EN IOMUX_PAD(0x780, 0x378, 2, 0x0000, 0, 0) | ||
685 | #define _MX51_PAD_DISP2_DAT9__GPIO1_31 IOMUX_PAD(0x780, 0x378, 5, 0x0000, 0, 0) | ||
686 | #define _MX51_PAD_DISP2_DAT9__USBH3_DATA1 IOMUX_PAD(0x780, 0x378, 3, 0x0a00, 1, 0) | ||
687 | #define _MX51_PAD_DISP2_DAT10__DISP2_DAT10 IOMUX_PAD(0x784, 0x37c, 0, 0x0000, 0, 0) | ||
688 | #define _MX51_PAD_DISP2_DAT10__DISP2_SER_CS IOMUX_PAD(0x784, 0x37c, 5, 0x0000, 0, 0) | ||
689 | #define _MX51_PAD_DISP2_DAT10__FEC_COL IOMUX_PAD(0x784, 0x37c, 2, 0x094c, 1, 0) | ||
690 | #define _MX51_PAD_DISP2_DAT10__KEY_ROW7 IOMUX_PAD(0x784, 0x37c, 4, 0x09dc, 1, 0) | ||
691 | #define _MX51_PAD_DISP2_DAT10__USBH3_DATA2 IOMUX_PAD(0x784, 0x37c, 3, 0x0a04, 1, 0) | ||
692 | #define _MX51_PAD_DISP2_DAT11__AUD6_TXD IOMUX_PAD(0x788, 0x380, 4, 0x08f0, 1, 0) | ||
693 | #define _MX51_PAD_DISP2_DAT11__DISP2_DAT11 IOMUX_PAD(0x788, 0x380, 0, 0x0000, 0, 0) | ||
694 | #define _MX51_PAD_DISP2_DAT11__FEC_RX_CLK IOMUX_PAD(0x788, 0x380, 2, 0x0968, 1, 0) | ||
695 | #define _MX51_PAD_DISP2_DAT11__GPIO1_10 IOMUX_PAD(0x788, 0x380, 7, 0x0000, 0, 0) | ||
696 | #define _MX51_PAD_DISP2_DAT11__USBH3_DATA3 IOMUX_PAD(0x788, 0x380, 3, 0x0a08, 1, 0) | ||
697 | #define _MX51_PAD_DISP2_DAT12__AUD6_RXD IOMUX_PAD(0x78c, 0x384, 4, 0x08ec, 1, 0) | ||
698 | #define _MX51_PAD_DISP2_DAT12__DISP2_DAT12 IOMUX_PAD(0x78c, 0x384, 0, 0x0000, 0, 0) | ||
699 | #define _MX51_PAD_DISP2_DAT12__FEC_RX_DV IOMUX_PAD(0x78c, 0x384, 2, 0x096c, 1, 0) | ||
700 | #define _MX51_PAD_DISP2_DAT12__USBH3_DATA4 IOMUX_PAD(0x78c, 0x384, 3, 0x0a0c, 1, 0) | ||
701 | #define _MX51_PAD_DISP2_DAT13__AUD6_TXC IOMUX_PAD(0x790, 0x388, 4, 0x08fc, 1, 0) | ||
702 | #define _MX51_PAD_DISP2_DAT13__DISP2_DAT13 IOMUX_PAD(0x790, 0x388, 0, 0x0000, 0, 0) | ||
703 | #define _MX51_PAD_DISP2_DAT13__FEC_TX_CLK IOMUX_PAD(0x790, 0x388, 2, 0x0974, 1, 0) | ||
704 | #define _MX51_PAD_DISP2_DAT13__USBH3_DATA5 IOMUX_PAD(0x790, 0x388, 3, 0x0a10, 1, 0) | ||
705 | #define _MX51_PAD_DISP2_DAT14__AUD6_TXFS IOMUX_PAD(0x794, 0x38c, 4, 0x0900, 1, 0) | ||
706 | #define _MX51_PAD_DISP2_DAT14__DISP2_DAT14 IOMUX_PAD(0x794, 0x38c, 0, 0x0000, 0, 0) | ||
707 | #define _MX51_PAD_DISP2_DAT14__FEC_RDATA0 IOMUX_PAD(0x794, 0x38c, 2, 0x0958, 1, 0) | ||
708 | #define _MX51_PAD_DISP2_DAT14__USBH3_DATA6 IOMUX_PAD(0x794, 0x38c, 3, 0x0a14, 1, 0) | ||
709 | #define _MX51_PAD_DISP2_DAT15__AUD6_RXFS IOMUX_PAD(0x798, 0x390, 4, 0x08f8, 1, 0) | ||
710 | #define _MX51_PAD_DISP2_DAT15__DISP1_SER_CS IOMUX_PAD(0x798, 0x390, 5, 0x0000, 0, 0) | ||
711 | #define _MX51_PAD_DISP2_DAT15__DISP2_DAT15 IOMUX_PAD(0x798, 0x390, 0, 0x0000, 0, 0) | ||
712 | #define _MX51_PAD_DISP2_DAT15__FEC_TDATA0 IOMUX_PAD(0x798, 0x390, 2, 0x0000, 0, 0) | ||
713 | #define _MX51_PAD_DISP2_DAT15__USBH3_DATA7 IOMUX_PAD(0x798, 0x390, 3, 0x0a18, 1, 0) | ||
714 | #define _MX51_PAD_SD1_CMD__AUD5_RXFS IOMUX_PAD(0x79c, 0x394, 1, 0x08e0, 1, 0) | ||
715 | #define _MX51_PAD_SD1_CMD__CSPI_MOSI IOMUX_PAD(0x79c, 0x394, 2, 0x091c, 2, 0) | ||
716 | #define _MX51_PAD_SD1_CMD__SD1_CMD IOMUX_PAD(0x79c, 0x394, 0x10, 0x0000, 0, 0) | ||
717 | #define _MX51_PAD_SD1_CLK__AUD5_RXC IOMUX_PAD(0x7a0, 0x398, 1, 0x08dc, 1, 0) | ||
718 | #define _MX51_PAD_SD1_CLK__CSPI_SCLK IOMUX_PAD(0x7a0, 0x398, 2, 0x0914, 2, 0) | ||
719 | #define _MX51_PAD_SD1_CLK__SD1_CLK IOMUX_PAD(0x7a0, 0x398, 0x10, 0x0000, 0, 0) | ||
720 | #define _MX51_PAD_SD1_DATA0__AUD5_TXD IOMUX_PAD(0x7a4, 0x39c, 1, 0x08d8, 2, 0) | ||
721 | #define _MX51_PAD_SD1_DATA0__CSPI_MISO IOMUX_PAD(0x7a4, 0x39c, 2, 0x0918, 1, 0) | ||
722 | #define _MX51_PAD_SD1_DATA0__SD1_DATA0 IOMUX_PAD(0x7a4, 0x39c, 0x10, 0x0000, 0, 0) | ||
723 | #define _MX51_PAD_EIM_DA0__EIM_DA0 IOMUX_PAD(0x000, 0x01c, 0, 0x0000, 0, 0) | ||
724 | #define _MX51_PAD_EIM_DA1__EIM_DA1 IOMUX_PAD(0x000, 0x020, 0, 0x0000, 0, 0) | ||
725 | #define _MX51_PAD_EIM_DA2__EIM_DA2 IOMUX_PAD(0x000, 0x024, 0, 0x0000, 0, 0) | ||
726 | #define _MX51_PAD_EIM_DA3__EIM_DA3 IOMUX_PAD(0x000, 0x028, 0, 0x0000, 0, 0) | ||
727 | #define _MX51_PAD_SD1_DATA1__AUD5_RXD IOMUX_PAD(0x7a8, 0x3a0, 1, 0x08d4, 2, 0) | ||
728 | #define _MX51_PAD_SD1_DATA1__SD1_DATA1 IOMUX_PAD(0x7a8, 0x3a0, 0x10, 0x0000, 0, 0) | ||
729 | #define _MX51_PAD_EIM_DA4__EIM_DA4 IOMUX_PAD(0x000, 0x02c, 0, 0x0000, 0, 0) | ||
730 | #define _MX51_PAD_EIM_DA5__EIM_DA5 IOMUX_PAD(0x000, 0x030, 0, 0x0000, 0, 0) | ||
731 | #define _MX51_PAD_EIM_DA6__EIM_DA6 IOMUX_PAD(0x000, 0x034, 0, 0x0000, 0, 0) | ||
732 | #define _MX51_PAD_EIM_DA7__EIM_DA7 IOMUX_PAD(0x000, 0x038, 0, 0x0000, 0, 0) | ||
733 | #define _MX51_PAD_SD1_DATA2__AUD5_TXC IOMUX_PAD(0x7ac, 0x3a4, 1, 0x08e4, 2, 0) | ||
734 | #define _MX51_PAD_SD1_DATA2__SD1_DATA2 IOMUX_PAD(0x7ac, 0x3a4, 0x10, 0x0000, 0, 0) | ||
735 | #define _MX51_PAD_EIM_DA10__EIM_DA10 IOMUX_PAD(0x000, 0x044, 0, 0x0000, 0, 0) | ||
736 | #define _MX51_PAD_EIM_DA11__EIM_DA11 IOMUX_PAD(0x000, 0x048, 0, 0x0000, 0, 0) | ||
737 | #define _MX51_PAD_EIM_DA8__EIM_DA8 IOMUX_PAD(0x000, 0x03c, 0, 0x0000, 0, 0) | ||
738 | #define _MX51_PAD_EIM_DA9__EIM_DA9 IOMUX_PAD(0x000, 0x040, 0, 0x0000, 0, 0) | ||
739 | #define _MX51_PAD_SD1_DATA3__AUD5_TXFS IOMUX_PAD(0x7b0, 0x3a8, 1, 0x08e8, 2, 0) | ||
740 | #define _MX51_PAD_SD1_DATA3__CSPI_SS1 IOMUX_PAD(0x7b0, 0x3a8, 2, 0x0920, 1, 0) | ||
741 | #define _MX51_PAD_SD1_DATA3__SD1_DATA3 IOMUX_PAD(0x7b0, 0x3a8, 0x10, 0x0000, 0, 0) | ||
742 | #define _MX51_PAD_GPIO1_0__CSPI_SS2 IOMUX_PAD(0x7b4, 0x3ac, 2, 0x0924, 0, 0) | ||
743 | #define _MX51_PAD_GPIO1_0__GPIO1_0 IOMUX_PAD(0x7b4, 0x3ac, 1, 0x0000, 0, 0) | ||
744 | #define _MX51_PAD_GPIO1_0__SD1_CD IOMUX_PAD(0x7b4, 0x3ac, 0, 0x0000, 0, 0) | ||
745 | #define _MX51_PAD_GPIO1_1__CSPI_MISO IOMUX_PAD(0x7b8, 0x3b0, 2, 0x0918, 2, 0) | ||
746 | #define _MX51_PAD_GPIO1_1__GPIO1_1 IOMUX_PAD(0x7b8, 0x3b0, 1, 0x0000, 0, 0) | ||
747 | #define _MX51_PAD_GPIO1_1__SD1_WP IOMUX_PAD(0x7b8, 0x3b0, 0, 0x0000, 0, 0) | ||
748 | #define _MX51_PAD_EIM_DA12__EIM_DA12 IOMUX_PAD(0x000, 0x04c, 0, 0x0000, 0, 0) | ||
749 | #define _MX51_PAD_EIM_DA13__EIM_DA13 IOMUX_PAD(0x000, 0x050, 0, 0x0000, 0, 0) | ||
750 | #define _MX51_PAD_EIM_DA14__EIM_DA14 IOMUX_PAD(0x000, 0x054, 0, 0x0000, 0, 0) | ||
751 | #define _MX51_PAD_EIM_DA15__EIM_DA15 IOMUX_PAD(0x000, 0x058, 0, 0x0000, 0, 0) | ||
752 | #define _MX51_PAD_SD2_CMD__CSPI_MOSI IOMUX_PAD(0x000, 0x3b4, 2, 0x091c, 3, 0) | ||
753 | #define _MX51_PAD_SD2_CMD__I2C1_SCL IOMUX_PAD(0x7bc, 0x3b4, 0x11, 0x09b0, 2, 0) | ||
754 | #define _MX51_PAD_SD2_CMD__SD2_CMD IOMUX_PAD(0x7bc, 0x3b4, 0x10, 0x0000, 0, 0) | ||
755 | #define _MX51_PAD_SD2_CLK__CSPI_SCLK IOMUX_PAD(0x7c0, 0x3b8, 2, 0x0914, 3, 0) | ||
756 | #define _MX51_PAD_SD2_CLK__I2C1_SDA IOMUX_PAD(0x7c0, 0x3b8, 0x11, 0x09b4, 2, 0) | ||
757 | #define _MX51_PAD_SD2_CLK__SD2_CLK IOMUX_PAD(0x7c0, 0x3b8, 0x10, 0x0000, 0, 0) | ||
758 | #define _MX51_PAD_SD2_DATA0__CSPI_MISO IOMUX_PAD(0x7c4, 0x3bc, 2, 0x0918, 3, 0) | ||
759 | #define _MX51_PAD_SD2_DATA0__SD1_DAT4 IOMUX_PAD(0x7c4, 0x3bc, 1, 0x0000, 0, 0) | ||
760 | #define _MX51_PAD_SD2_DATA0__SD2_DATA0 IOMUX_PAD(0x7c4, 0x3bc, 0x10, 0x0000, 0, 0) | ||
761 | #define _MX51_PAD_SD2_DATA1__SD1_DAT5 IOMUX_PAD(0x7c8, 0x3c0, 1, 0x0000, 0, 0) | ||
762 | #define _MX51_PAD_SD2_DATA1__SD2_DATA1 IOMUX_PAD(0x7c8, 0x3c0, 0x10, 0x0000, 0, 0) | ||
763 | #define _MX51_PAD_SD2_DATA1__USBH3_H2_DP IOMUX_PAD(0x7c8, 0x3c0, 2, 0x0000, 0, 0) | ||
764 | #define _MX51_PAD_SD2_DATA2__SD1_DAT6 IOMUX_PAD(0x7cc, 0x3c4, 1, 0x0000, 0, 0) | ||
765 | #define _MX51_PAD_SD2_DATA2__SD2_DATA2 IOMUX_PAD(0x7cc, 0x3c4, 0x10, 0x0000, 0, 0) | ||
766 | #define _MX51_PAD_SD2_DATA2__USBH3_H2_DM IOMUX_PAD(0x7cc, 0x3c4, 2, 0x0000, 0, 0) | ||
767 | #define _MX51_PAD_SD2_DATA3__CSPI_SS2 IOMUX_PAD(0x7d0, 0x3c8, 2, 0x0924, 1, 0) | ||
768 | #define _MX51_PAD_SD2_DATA3__SD1_DAT7 IOMUX_PAD(0x7d0, 0x3c8, 1, 0x0000, 0, 0) | ||
769 | #define _MX51_PAD_SD2_DATA3__SD2_DATA3 IOMUX_PAD(0x7d0, 0x3c8, 0x10, 0x0000, 0, 0) | ||
770 | #define _MX51_PAD_GPIO1_2__CCM_OUT_2 IOMUX_PAD(0x7d4, 0x3cc, 5, 0x0000, 0, 0) | ||
771 | #define _MX51_PAD_GPIO1_2__GPIO1_2 IOMUX_PAD(0x7d4, 0x3cc, 0, 0x0000, 0, 0) | ||
772 | #define _MX51_PAD_GPIO1_2__I2C2_SCL IOMUX_PAD(0x7d4, 0x3cc, 0x12, 0x09b8, 3, 0) | ||
773 | #define _MX51_PAD_GPIO1_2__PLL1_BYP IOMUX_PAD(0x7d4, 0x3cc, 7, 0x090c, 1, 0) | ||
774 | #define _MX51_PAD_GPIO1_2__PWM1_PWMO IOMUX_PAD(0x7d4, 0x3cc, 1, 0x0000, 0, 0) | ||
775 | #define _MX51_PAD_GPIO1_3__GPIO1_3 IOMUX_PAD(0x7d8, 0x3d0, 0, 0x0000, 0, 0) | ||
776 | #define _MX51_PAD_GPIO1_3__I2C2_SDA IOMUX_PAD(0x7d8, 0x3d0, 0x12, 0x09bc, 3, 0) | ||
777 | #define _MX51_PAD_GPIO1_3__PLL2_BYP IOMUX_PAD(0x7d8, 0x3d0, 7, 0x0910, 1, 0) | ||
778 | #define _MX51_PAD_GPIO1_3__PWM2_PWMO IOMUX_PAD(0x7d8, 0x3d0, 1, 0x0000, 0, 0) | ||
779 | #define _MX51_PAD_PMIC_INT_REQ__PMIC_INT_REQ IOMUX_PAD(0x7fc, 0x3d4, 0, 0x0000, 0, 0) | ||
780 | #define _MX51_PAD_PMIC_INT_REQ__PMIC_PMU_IRQ_B IOMUX_PAD(0x7fc, 0x3d4, 1, 0x0000, 0, 0) | ||
781 | #define _MX51_PAD_GPIO1_4__DISP2_EXT_CLK IOMUX_PAD(0x804, 0x3d8, 4, 0x0908, 1, 0) | ||
782 | #define _MX51_PAD_GPIO1_4__EIM_RDY IOMUX_PAD(0x804, 0x3d8, 3, 0x0938, 1, 0) | ||
783 | #define _MX51_PAD_GPIO1_4__GPIO1_4 IOMUX_PAD(0x804, 0x3d8, 0, 0x0000, 0, 0) | ||
784 | #define _MX51_PAD_GPIO1_4__WDOG1_WDOG_B IOMUX_PAD(0x804, 0x3d8, 2, 0x0000, 0, 0) | ||
785 | #define _MX51_PAD_GPIO1_5__CSI2_MCLK IOMUX_PAD(0x808, 0x3dc, 6, 0x0000, 0, 0) | ||
786 | #define _MX51_PAD_GPIO1_5__DISP2_PIN16 IOMUX_PAD(0x808, 0x3dc, 3, 0x0000, 0, 0) | ||
787 | #define _MX51_PAD_GPIO1_5__GPIO1_5 IOMUX_PAD(0x808, 0x3dc, 0, 0x0000, 0, 0) | ||
788 | #define _MX51_PAD_GPIO1_5__WDOG2_WDOG_B IOMUX_PAD(0x808, 0x3dc, 2, 0x0000, 0, 0) | ||
789 | #define _MX51_PAD_GPIO1_6__DISP2_PIN17 IOMUX_PAD(0x80c, 0x3e0, 4, 0x0000, 0, 0) | ||
790 | #define _MX51_PAD_GPIO1_6__GPIO1_6 IOMUX_PAD(0x80c, 0x3e0, 0, 0x0000, 0, 0) | ||
791 | #define _MX51_PAD_GPIO1_6__REF_EN_B IOMUX_PAD(0x80c, 0x3e0, 3, 0x0000, 0, 0) | ||
792 | #define _MX51_PAD_GPIO1_7__CCM_OUT_0 IOMUX_PAD(0x810, 0x3e4, 3, 0x0000, 0, 0) | ||
793 | #define _MX51_PAD_GPIO1_7__GPIO1_7 IOMUX_PAD(0x810, 0x3e4, 0, 0x0000, 0, 0) | ||
794 | #define _MX51_PAD_GPIO1_7__SD2_WP IOMUX_PAD(0x810, 0x3e4, 6, 0x0000, 0, 0) | ||
795 | #define _MX51_PAD_GPIO1_7__SPDIF_OUT1 IOMUX_PAD(0x810, 0x3e4, 2, 0x0000, 0, 0) | ||
796 | #define _MX51_PAD_GPIO1_8__CSI2_DATA_EN IOMUX_PAD(0x814, 0x3e8, 2, 0x099c, 2, 0) | ||
797 | #define _MX51_PAD_GPIO1_8__GPIO1_8 IOMUX_PAD(0x814, 0x3e8, 0, 0x0000, 0, 0) | ||
798 | #define _MX51_PAD_GPIO1_8__SD2_CD IOMUX_PAD(0x814, 0x3e8, 6, 0x0000, 0, 0) | ||
799 | #define _MX51_PAD_GPIO1_8__USBH3_PWR IOMUX_PAD(0x814, 0x3e8, 1, 0x0000, 0, 0) | ||
800 | #define _MX51_PAD_GPIO1_9__CCM_OUT_1 IOMUX_PAD(0x818, 0x3ec, 3, 0x0000, 0, 0) | ||
801 | #define _MX51_PAD_GPIO1_9__DISP2_D1_CS IOMUX_PAD(0x818, 0x3ec, 2, 0x0000, 0, 0) | ||
802 | #define _MX51_PAD_GPIO1_9__DISP2_SER_CS IOMUX_PAD(0x818, 0x3ec, 7, 0x0000, 0, 0) | ||
803 | #define _MX51_PAD_GPIO1_9__GPIO1_9 IOMUX_PAD(0x818, 0x3ec, 0, 0x0000, 0, 0) | ||
804 | #define _MX51_PAD_GPIO1_9__SD2_LCTL IOMUX_PAD(0x818, 0x3ec, 6, 0x0000, 0, 0) | ||
805 | #define _MX51_PAD_GPIO1_9__USBH3_OC IOMUX_PAD(0x818, 0x3ec, 1, 0x0000, 0, 0) | ||
806 | 52 | ||
807 | /* The same pins as above but with the default pad control values applied */ | 53 | /* The same pins as above but with the default pad control values applied */ |
808 | #define MX51_PAD_EIM_D16__AUD4_RXFS (_MX51_PAD_EIM_D16__AUD4_RXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 54 | #define MX51_PAD_EIM_D16__AUD4_RXFS IOMUX_PAD(0x3f0, 0x05c, 5, __NA_, 0, NO_PAD_CTRL) |
809 | #define MX51_PAD_EIM_D16__AUD5_TXD (_MX51_PAD_EIM_D16__AUD5_TXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 55 | #define MX51_PAD_EIM_D16__AUD5_TXD IOMUX_PAD(0x3f0, 0x05c, 7, 0x8d8, 0, NO_PAD_CTRL) |
810 | #define MX51_PAD_EIM_D16__EIM_D16 (_MX51_PAD_EIM_D16__EIM_D16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 56 | #define MX51_PAD_EIM_D16__EIM_D16 IOMUX_PAD(0x3f0, 0x05c, 0, __NA_, 0, NO_PAD_CTRL) |
811 | #define MX51_PAD_EIM_D16__GPIO2_0 (_MX51_PAD_EIM_D16__GPIO2_0 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 57 | #define MX51_PAD_EIM_D16__GPIO2_0 IOMUX_PAD(0x3f0, 0x05c, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
812 | #define MX51_PAD_EIM_D16__I2C1_SDA (_MX51_PAD_EIM_D16__I2C1_SDA | MUX_PAD_CTRL(MX51_I2C_PAD_CTRL)) | 58 | #define MX51_PAD_EIM_D16__I2C1_SDA IOMUX_PAD(0x3f0, 0x05c, 0x14, 0x9b4, 0, MX51_I2C_PAD_CTRL) |
813 | #define MX51_PAD_EIM_D16__UART2_CTS (_MX51_PAD_EIM_D16__UART2_CTS | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 59 | #define MX51_PAD_EIM_D16__UART2_CTS IOMUX_PAD(0x3f0, 0x05c, 3, __NA_, 0, MX51_UART_PAD_CTRL) |
814 | #define MX51_PAD_EIM_D16__USBH2_DATA0 (_MX51_PAD_EIM_D16__USBH2_DATA0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 60 | #define MX51_PAD_EIM_D16__USBH2_DATA0 IOMUX_PAD(0x3f0, 0x05c, 2, __NA_, 0, NO_PAD_CTRL) |
815 | #define MX51_PAD_EIM_D17__AUD5_RXD (_MX51_PAD_EIM_D17__AUD5_RXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 61 | #define MX51_PAD_EIM_D17__AUD5_RXD IOMUX_PAD(0x3f4, 0x060, 7, 0x8d4, 0, NO_PAD_CTRL) |
816 | #define MX51_PAD_EIM_D17__EIM_D17 (_MX51_PAD_EIM_D17__EIM_D17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 62 | #define MX51_PAD_EIM_D17__EIM_D17 IOMUX_PAD(0x3f4, 0x060, 0, __NA_, 0, NO_PAD_CTRL) |
817 | #define MX51_PAD_EIM_D17__GPIO2_1 (_MX51_PAD_EIM_D17__GPIO2_1 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 63 | #define MX51_PAD_EIM_D17__GPIO2_1 IOMUX_PAD(0x3f4, 0x060, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
818 | #define MX51_PAD_EIM_D17__UART2_RXD (_MX51_PAD_EIM_D17__UART2_RXD | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 64 | #define MX51_PAD_EIM_D17__UART2_RXD IOMUX_PAD(0x3f4, 0x060, 3, 0x9ec, 0, MX51_UART_PAD_CTRL) |
819 | #define MX51_PAD_EIM_D17__UART3_CTS (_MX51_PAD_EIM_D17__UART3_CTS | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 65 | #define MX51_PAD_EIM_D17__UART3_CTS IOMUX_PAD(0x3f4, 0x060, 4, __NA_, 0, MX51_UART_PAD_CTRL) |
820 | #define MX51_PAD_EIM_D17__USBH2_DATA1 (_MX51_PAD_EIM_D17__USBH2_DATA1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 66 | #define MX51_PAD_EIM_D17__USBH2_DATA1 IOMUX_PAD(0x3f4, 0x060, 2, __NA_, 0, NO_PAD_CTRL) |
821 | #define MX51_PAD_EIM_D18__AUD5_TXC (_MX51_PAD_EIM_D18__AUD5_TXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 67 | #define MX51_PAD_EIM_D18__AUD5_TXC IOMUX_PAD(0x3f8, 0x064, 7, 0x8e4, 0, NO_PAD_CTRL) |
822 | #define MX51_PAD_EIM_D18__EIM_D18 (_MX51_PAD_EIM_D18__EIM_D18 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 68 | #define MX51_PAD_EIM_D18__EIM_D18 IOMUX_PAD(0x3f8, 0x064, 0, __NA_, 0, NO_PAD_CTRL) |
823 | #define MX51_PAD_EIM_D18__GPIO2_2 (_MX51_PAD_EIM_D18__GPIO2_2 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 69 | #define MX51_PAD_EIM_D18__GPIO2_2 IOMUX_PAD(0x3f8, 0x064, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
824 | #define MX51_PAD_EIM_D18__UART2_TXD (_MX51_PAD_EIM_D18__UART2_TXD | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 70 | #define MX51_PAD_EIM_D18__UART2_TXD IOMUX_PAD(0x3f8, 0x064, 3, __NA_, 0, MX51_UART_PAD_CTRL) |
825 | #define MX51_PAD_EIM_D18__UART3_RTS (_MX51_PAD_EIM_D18__UART3_RTS | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 71 | #define MX51_PAD_EIM_D18__UART3_RTS IOMUX_PAD(0x3f8, 0x064, 4, 0x9f0, 1, MX51_UART_PAD_CTRL) |
826 | #define MX51_PAD_EIM_D18__USBH2_DATA2 (_MX51_PAD_EIM_D18__USBH2_DATA2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 72 | #define MX51_PAD_EIM_D18__USBH2_DATA2 IOMUX_PAD(0x3f8, 0x064, 2, __NA_, 0, NO_PAD_CTRL) |
827 | #define MX51_PAD_EIM_D19__AUD4_RXC (_MX51_PAD_EIM_D19__AUD4_RXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 73 | #define MX51_PAD_EIM_D19__AUD4_RXC IOMUX_PAD(0x3fc, 0x068, 5, __NA_, 0, NO_PAD_CTRL) |
828 | #define MX51_PAD_EIM_D19__AUD5_TXFS (_MX51_PAD_EIM_D19__AUD5_TXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 74 | #define MX51_PAD_EIM_D19__AUD5_TXFS IOMUX_PAD(0x3fc, 0x068, 7, 0x8e8, 0, NO_PAD_CTRL) |
829 | #define MX51_PAD_EIM_D19__EIM_D19 (_MX51_PAD_EIM_D19__EIM_D19 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 75 | #define MX51_PAD_EIM_D19__EIM_D19 IOMUX_PAD(0x3fc, 0x068, 0, __NA_, 0, NO_PAD_CTRL) |
830 | #define MX51_PAD_EIM_D19__GPIO2_3 (_MX51_PAD_EIM_D19__GPIO2_3 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 76 | #define MX51_PAD_EIM_D19__GPIO2_3 IOMUX_PAD(0x3fc, 0x068, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
831 | #define MX51_PAD_EIM_D19__I2C1_SCL (_MX51_PAD_EIM_D19__I2C1_SCL | MUX_PAD_CTRL(MX51_I2C_PAD_CTRL)) | 77 | #define MX51_PAD_EIM_D19__I2C1_SCL IOMUX_PAD(0x3fc, 0x068, 0x14, 0x9b0, 0, MX51_I2C_PAD_CTRL) |
832 | #define MX51_PAD_EIM_D19__UART2_RTS (_MX51_PAD_EIM_D19__UART2_RTS | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 78 | #define MX51_PAD_EIM_D19__UART2_RTS IOMUX_PAD(0x3fc, 0x068, 3, 0x9e8, 1, MX51_UART_PAD_CTRL) |
833 | #define MX51_PAD_EIM_D19__USBH2_DATA3 (_MX51_PAD_EIM_D19__USBH2_DATA3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 79 | #define MX51_PAD_EIM_D19__USBH2_DATA3 IOMUX_PAD(0x3fc, 0x068, 2, __NA_, 0, NO_PAD_CTRL) |
834 | #define MX51_PAD_EIM_D20__AUD4_TXD (_MX51_PAD_EIM_D20__AUD4_TXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 80 | #define MX51_PAD_EIM_D20__AUD4_TXD IOMUX_PAD(0x400, 0x06c, 5, 0x8c8, 0, NO_PAD_CTRL) |
835 | #define MX51_PAD_EIM_D20__EIM_D20 (_MX51_PAD_EIM_D20__EIM_D20 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 81 | #define MX51_PAD_EIM_D20__EIM_D20 IOMUX_PAD(0x400, 0x06c, 0, __NA_, 0, NO_PAD_CTRL) |
836 | #define MX51_PAD_EIM_D20__GPIO2_4 (_MX51_PAD_EIM_D20__GPIO2_4 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 82 | #define MX51_PAD_EIM_D20__GPIO2_4 IOMUX_PAD(0x400, 0x06c, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
837 | #define MX51_PAD_EIM_D20__SRTC_ALARM_DEB (_MX51_PAD_EIM_D20__SRTC_ALARM_DEB | MUX_PAD_CTRL(NO_PAD_CTRL)) | 83 | #define MX51_PAD_EIM_D20__SRTC_ALARM_DEB IOMUX_PAD(0x400, 0x06c, 4, __NA_, 0, NO_PAD_CTRL) |
838 | #define MX51_PAD_EIM_D20__USBH2_DATA4 (_MX51_PAD_EIM_D20__USBH2_DATA4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 84 | #define MX51_PAD_EIM_D20__USBH2_DATA4 IOMUX_PAD(0x400, 0x06c, 2, __NA_, 0, NO_PAD_CTRL) |
839 | #define MX51_PAD_EIM_D21__AUD4_RXD (_MX51_PAD_EIM_D21__AUD4_RXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 85 | #define MX51_PAD_EIM_D21__AUD4_RXD IOMUX_PAD(0x404, 0x070, 5, 0x8c4, 0, NO_PAD_CTRL) |
840 | #define MX51_PAD_EIM_D21__EIM_D21 (_MX51_PAD_EIM_D21__EIM_D21 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 86 | #define MX51_PAD_EIM_D21__EIM_D21 IOMUX_PAD(0x404, 0x070, 0, __NA_, 0, NO_PAD_CTRL) |
841 | #define MX51_PAD_EIM_D21__GPIO2_5 (_MX51_PAD_EIM_D21__GPIO2_5 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 87 | #define MX51_PAD_EIM_D21__GPIO2_5 IOMUX_PAD(0x404, 0x070, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
842 | #define MX51_PAD_EIM_D21__SRTC_ALARM_DEB (_MX51_PAD_EIM_D21__SRTC_ALARM_DEB | MUX_PAD_CTRL(NO_PAD_CTRL)) | 88 | #define MX51_PAD_EIM_D21__SRTC_ALARM_DEB IOMUX_PAD(0x404, 0x070, 3, __NA_, 0, NO_PAD_CTRL) |
843 | #define MX51_PAD_EIM_D21__USBH2_DATA5 (_MX51_PAD_EIM_D21__USBH2_DATA5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 89 | #define MX51_PAD_EIM_D21__USBH2_DATA5 IOMUX_PAD(0x404, 0x070, 2, __NA_, 0, NO_PAD_CTRL) |
844 | #define MX51_PAD_EIM_D22__AUD4_TXC (_MX51_PAD_EIM_D22__AUD4_TXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 90 | #define MX51_PAD_EIM_D22__AUD4_TXC IOMUX_PAD(0x408, 0x074, 5, 0x8cc, 0, NO_PAD_CTRL) |
845 | #define MX51_PAD_EIM_D22__EIM_D22 (_MX51_PAD_EIM_D22__EIM_D22 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 91 | #define MX51_PAD_EIM_D22__EIM_D22 IOMUX_PAD(0x408, 0x074, 0, __NA_, 0, NO_PAD_CTRL) |
846 | #define MX51_PAD_EIM_D22__GPIO2_6 (_MX51_PAD_EIM_D22__GPIO2_6 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 92 | #define MX51_PAD_EIM_D22__GPIO2_6 IOMUX_PAD(0x408, 0x074, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
847 | #define MX51_PAD_EIM_D22__USBH2_DATA6 (_MX51_PAD_EIM_D22__USBH2_DATA6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 93 | #define MX51_PAD_EIM_D22__USBH2_DATA6 IOMUX_PAD(0x408, 0x074, 2, __NA_, 0, NO_PAD_CTRL) |
848 | #define MX51_PAD_EIM_D23__AUD4_TXFS (_MX51_PAD_EIM_D23__AUD4_TXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 94 | #define MX51_PAD_EIM_D23__AUD4_TXFS IOMUX_PAD(0x40c, 0x078, 5, 0x8d0, 0, NO_PAD_CTRL) |
849 | #define MX51_PAD_EIM_D23__EIM_D23 (_MX51_PAD_EIM_D23__EIM_D23 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 95 | #define MX51_PAD_EIM_D23__EIM_D23 IOMUX_PAD(0x40c, 0x078, 0, __NA_, 0, NO_PAD_CTRL) |
850 | #define MX51_PAD_EIM_D23__GPIO2_7 (_MX51_PAD_EIM_D23__GPIO2_7 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 96 | #define MX51_PAD_EIM_D23__GPIO2_7 IOMUX_PAD(0x40c, 0x078, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
851 | #define MX51_PAD_EIM_D23__SPDIF_OUT1 (_MX51_PAD_EIM_D23__SPDIF_OUT1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 97 | #define MX51_PAD_EIM_D23__SPDIF_OUT1 IOMUX_PAD(0x40c, 0x078, 4, __NA_, 0, NO_PAD_CTRL) |
852 | #define MX51_PAD_EIM_D23__USBH2_DATA7 (_MX51_PAD_EIM_D23__USBH2_DATA7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 98 | #define MX51_PAD_EIM_D23__USBH2_DATA7 IOMUX_PAD(0x40c, 0x078, 2, __NA_, 0, NO_PAD_CTRL) |
853 | #define MX51_PAD_EIM_D24__AUD6_RXFS (_MX51_PAD_EIM_D24__AUD6_RXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 99 | #define MX51_PAD_EIM_D24__AUD6_RXFS IOMUX_PAD(0x410, 0x07c, 5, 0x8f8, 0, NO_PAD_CTRL) |
854 | #define MX51_PAD_EIM_D24__EIM_D24 (_MX51_PAD_EIM_D24__EIM_D24 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 100 | #define MX51_PAD_EIM_D24__EIM_D24 IOMUX_PAD(0x410, 0x07c, 0, __NA_, 0, NO_PAD_CTRL) |
855 | #define MX51_PAD_EIM_D24__GPIO2_8 (_MX51_PAD_EIM_D24__GPIO2_8 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 101 | #define MX51_PAD_EIM_D24__GPIO2_8 IOMUX_PAD(0x410, 0x07c, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
856 | #define MX51_PAD_EIM_D24__I2C2_SDA (_MX51_PAD_EIM_D24__I2C2_SDA | MUX_PAD_CTRL(MX51_I2C_PAD_CTRL)) | 102 | #define MX51_PAD_EIM_D24__I2C2_SDA IOMUX_PAD(0x410, 0x07c, 0x14, 0x9bc, 0, MX51_I2C_PAD_CTRL) |
857 | #define MX51_PAD_EIM_D24__UART3_CTS (_MX51_PAD_EIM_D24__UART3_CTS | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 103 | #define MX51_PAD_EIM_D24__UART3_CTS IOMUX_PAD(0x410, 0x07c, 3, __NA_, 0, MX51_UART_PAD_CTRL) |
858 | #define MX51_PAD_EIM_D24__USBOTG_DATA0 (_MX51_PAD_EIM_D24__USBOTG_DATA0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 104 | #define MX51_PAD_EIM_D24__USBOTG_DATA0 IOMUX_PAD(0x410, 0x07c, 2, __NA_, 0, NO_PAD_CTRL) |
859 | #define MX51_PAD_EIM_D25__EIM_D25 (_MX51_PAD_EIM_D25__EIM_D25 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 105 | #define MX51_PAD_EIM_D25__EIM_D25 IOMUX_PAD(0x414, 0x080, 0, __NA_, 0, NO_PAD_CTRL) |
860 | #define MX51_PAD_EIM_D25__KEY_COL6 (_MX51_PAD_EIM_D25__KEY_COL6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 106 | #define MX51_PAD_EIM_D25__KEY_COL6 IOMUX_PAD(0x414, 0x080, 1, 0x9c8, 0, NO_PAD_CTRL) |
861 | #define MX51_PAD_EIM_D25__UART2_CTS (_MX51_PAD_EIM_D25__UART2_CTS | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 107 | #define MX51_PAD_EIM_D25__UART2_CTS IOMUX_PAD(0x414, 0x080, 4, __NA_, 0, MX51_UART_PAD_CTRL) |
862 | #define MX51_PAD_EIM_D25__UART3_RXD (_MX51_PAD_EIM_D25__UART3_RXD | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 108 | #define MX51_PAD_EIM_D25__UART3_RXD IOMUX_PAD(0x414, 0x080, 3, 0x9f4, 0, MX51_UART_PAD_CTRL) |
863 | #define MX51_PAD_EIM_D25__USBOTG_DATA1 (_MX51_PAD_EIM_D25__USBOTG_DATA1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 109 | #define MX51_PAD_EIM_D25__USBOTG_DATA1 IOMUX_PAD(0x414, 0x080, 2, __NA_, 0, NO_PAD_CTRL) |
864 | #define MX51_PAD_EIM_D26__EIM_D26 (_MX51_PAD_EIM_D26__EIM_D26 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 110 | #define MX51_PAD_EIM_D26__EIM_D26 IOMUX_PAD(0x418, 0x084, 0, __NA_, 0, NO_PAD_CTRL) |
865 | #define MX51_PAD_EIM_D26__KEY_COL7 (_MX51_PAD_EIM_D26__KEY_COL7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 111 | #define MX51_PAD_EIM_D26__KEY_COL7 IOMUX_PAD(0x418, 0x084, 1, 0x9cc, 0, NO_PAD_CTRL) |
866 | #define MX51_PAD_EIM_D26__UART2_RTS (_MX51_PAD_EIM_D26__UART2_RTS | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 112 | #define MX51_PAD_EIM_D26__UART2_RTS IOMUX_PAD(0x418, 0x084, 4, 0x9e8, 3, MX51_UART_PAD_CTRL) |
867 | #define MX51_PAD_EIM_D26__UART3_TXD (_MX51_PAD_EIM_D26__UART3_TXD | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 113 | #define MX51_PAD_EIM_D26__UART3_TXD IOMUX_PAD(0x418, 0x084, 3, __NA_, 0, MX51_UART_PAD_CTRL) |
868 | #define MX51_PAD_EIM_D26__USBOTG_DATA2 (_MX51_PAD_EIM_D26__USBOTG_DATA2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 114 | #define MX51_PAD_EIM_D26__USBOTG_DATA2 IOMUX_PAD(0x418, 0x084, 2, __NA_, 0, NO_PAD_CTRL) |
869 | #define MX51_PAD_EIM_D27__AUD6_RXC (_MX51_PAD_EIM_D27__AUD6_RXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 115 | #define MX51_PAD_EIM_D27__AUD6_RXC IOMUX_PAD(0x41c, 0x088, 5, 0x8f4, 0, NO_PAD_CTRL) |
870 | #define MX51_PAD_EIM_D27__EIM_D27 (_MX51_PAD_EIM_D27__EIM_D27 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 116 | #define MX51_PAD_EIM_D27__EIM_D27 IOMUX_PAD(0x41c, 0x088, 0, __NA_, 0, NO_PAD_CTRL) |
871 | #define MX51_PAD_EIM_D27__GPIO2_9 (_MX51_PAD_EIM_D27__GPIO2_9 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 117 | #define MX51_PAD_EIM_D27__GPIO2_9 IOMUX_PAD(0x41c, 0x088, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
872 | #define MX51_PAD_EIM_D27__I2C2_SCL (_MX51_PAD_EIM_D27__I2C2_SCL | MUX_PAD_CTRL(MX51_I2C_PAD_CTRL)) | 118 | #define MX51_PAD_EIM_D27__I2C2_SCL IOMUX_PAD(0x41c, 0x088, 0x14, 0x9b8, 0, MX51_I2C_PAD_CTRL) |
873 | #define MX51_PAD_EIM_D27__UART3_RTS (_MX51_PAD_EIM_D27__UART3_RTS | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 119 | #define MX51_PAD_EIM_D27__UART3_RTS IOMUX_PAD(0x41c, 0x088, 3, 0x9f0, 3, MX51_UART_PAD_CTRL) |
874 | #define MX51_PAD_EIM_D27__USBOTG_DATA3 (_MX51_PAD_EIM_D27__USBOTG_DATA3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 120 | #define MX51_PAD_EIM_D27__USBOTG_DATA3 IOMUX_PAD(0x41c, 0x088, 2, __NA_, 0, NO_PAD_CTRL) |
875 | #define MX51_PAD_EIM_D28__AUD6_TXD (_MX51_PAD_EIM_D28__AUD6_TXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 121 | #define MX51_PAD_EIM_D28__AUD6_TXD IOMUX_PAD(0x420, 0x08c, 5, 0x8f0, 0, NO_PAD_CTRL) |
876 | #define MX51_PAD_EIM_D28__EIM_D28 (_MX51_PAD_EIM_D28__EIM_D28 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 122 | #define MX51_PAD_EIM_D28__EIM_D28 IOMUX_PAD(0x420, 0x08c, 0, __NA_, 0, NO_PAD_CTRL) |
877 | #define MX51_PAD_EIM_D28__KEY_ROW4 (_MX51_PAD_EIM_D28__KEY_ROW4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 123 | #define MX51_PAD_EIM_D28__KEY_ROW4 IOMUX_PAD(0x420, 0x08c, 1, 0x9d0, 0, NO_PAD_CTRL) |
878 | #define MX51_PAD_EIM_D28__USBOTG_DATA4 (_MX51_PAD_EIM_D28__USBOTG_DATA4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 124 | #define MX51_PAD_EIM_D28__USBOTG_DATA4 IOMUX_PAD(0x420, 0x08c, 2, __NA_, 0, NO_PAD_CTRL) |
879 | #define MX51_PAD_EIM_D29__AUD6_RXD (_MX51_PAD_EIM_D29__AUD6_RXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 125 | #define MX51_PAD_EIM_D29__AUD6_RXD IOMUX_PAD(0x424, 0x090, 5, 0x8ec, 0, NO_PAD_CTRL) |
880 | #define MX51_PAD_EIM_D29__EIM_D29 (_MX51_PAD_EIM_D29__EIM_D29 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 126 | #define MX51_PAD_EIM_D29__EIM_D29 IOMUX_PAD(0x424, 0x090, 0, __NA_, 0, NO_PAD_CTRL) |
881 | #define MX51_PAD_EIM_D29__KEY_ROW5 (_MX51_PAD_EIM_D29__KEY_ROW5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 127 | #define MX51_PAD_EIM_D29__KEY_ROW5 IOMUX_PAD(0x424, 0x090, 1, 0x9d4, 0, NO_PAD_CTRL) |
882 | #define MX51_PAD_EIM_D29__USBOTG_DATA5 (_MX51_PAD_EIM_D29__USBOTG_DATA5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 128 | #define MX51_PAD_EIM_D29__USBOTG_DATA5 IOMUX_PAD(0x424, 0x090, 2, __NA_, 0, NO_PAD_CTRL) |
883 | #define MX51_PAD_EIM_D30__AUD6_TXC (_MX51_PAD_EIM_D30__AUD6_TXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 129 | #define MX51_PAD_EIM_D30__AUD6_TXC IOMUX_PAD(0x428, 0x094, 5, 0x8fc, 0, NO_PAD_CTRL) |
884 | #define MX51_PAD_EIM_D30__EIM_D30 (_MX51_PAD_EIM_D30__EIM_D30 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 130 | #define MX51_PAD_EIM_D30__EIM_D30 IOMUX_PAD(0x428, 0x094, 0, __NA_, 0, NO_PAD_CTRL) |
885 | #define MX51_PAD_EIM_D30__KEY_ROW6 (_MX51_PAD_EIM_D30__KEY_ROW6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 131 | #define MX51_PAD_EIM_D30__KEY_ROW6 IOMUX_PAD(0x428, 0x094, 1, 0x9d8, 0, NO_PAD_CTRL) |
886 | #define MX51_PAD_EIM_D30__USBOTG_DATA6 (_MX51_PAD_EIM_D30__USBOTG_DATA6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 132 | #define MX51_PAD_EIM_D30__USBOTG_DATA6 IOMUX_PAD(0x428, 0x094, 2, __NA_, 0, NO_PAD_CTRL) |
887 | #define MX51_PAD_EIM_D31__AUD6_TXFS (_MX51_PAD_EIM_D31__AUD6_TXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 133 | #define MX51_PAD_EIM_D31__AUD6_TXFS IOMUX_PAD(0x42c, 0x098, 5, 0x900, 0, NO_PAD_CTRL) |
888 | #define MX51_PAD_EIM_D31__EIM_D31 (_MX51_PAD_EIM_D31__EIM_D31 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 134 | #define MX51_PAD_EIM_D31__EIM_D31 IOMUX_PAD(0x42c, 0x098, 0, __NA_, 0, NO_PAD_CTRL) |
889 | #define MX51_PAD_EIM_D31__KEY_ROW7 (_MX51_PAD_EIM_D31__KEY_ROW7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 135 | #define MX51_PAD_EIM_D31__KEY_ROW7 IOMUX_PAD(0x42c, 0x098, 1, 0x9dc, 0, NO_PAD_CTRL) |
890 | #define MX51_PAD_EIM_D31__USBOTG_DATA7 (_MX51_PAD_EIM_D31__USBOTG_DATA7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 136 | #define MX51_PAD_EIM_D31__USBOTG_DATA7 IOMUX_PAD(0x42c, 0x098, 2, __NA_, 0, NO_PAD_CTRL) |
891 | #define MX51_PAD_EIM_A16__EIM_A16 (_MX51_PAD_EIM_A16__EIM_A16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 137 | #define MX51_PAD_EIM_A16__EIM_A16 IOMUX_PAD(0x430, 0x09c, 0, __NA_, 0, NO_PAD_CTRL) |
892 | #define MX51_PAD_EIM_A16__GPIO2_10 (_MX51_PAD_EIM_A16__GPIO2_10 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 138 | #define MX51_PAD_EIM_A16__GPIO2_10 IOMUX_PAD(0x430, 0x09c, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
893 | #define MX51_PAD_EIM_A16__OSC_FREQ_SEL0 (_MX51_PAD_EIM_A16__OSC_FREQ_SEL0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 139 | #define MX51_PAD_EIM_A16__OSC_FREQ_SEL0 IOMUX_PAD(0x430, 0x09c, 7, __NA_, 0, NO_PAD_CTRL) |
894 | #define MX51_PAD_EIM_A17__EIM_A17 (_MX51_PAD_EIM_A17__EIM_A17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 140 | #define MX51_PAD_EIM_A17__EIM_A17 IOMUX_PAD(0x434, 0x0a0, 0, __NA_, 0, NO_PAD_CTRL) |
895 | #define MX51_PAD_EIM_A17__GPIO2_11 (_MX51_PAD_EIM_A17__GPIO2_11 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 141 | #define MX51_PAD_EIM_A17__GPIO2_11 IOMUX_PAD(0x434, 0x0a0, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
896 | #define MX51_PAD_EIM_A17__OSC_FREQ_SEL1 (_MX51_PAD_EIM_A17__OSC_FREQ_SEL1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 142 | #define MX51_PAD_EIM_A17__OSC_FREQ_SEL1 IOMUX_PAD(0x434, 0x0a0, 7, __NA_, 0, NO_PAD_CTRL) |
897 | #define MX51_PAD_EIM_A18__BOOT_LPB0 (_MX51_PAD_EIM_A18__BOOT_LPB0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 143 | #define MX51_PAD_EIM_A18__BOOT_LPB0 IOMUX_PAD(0x438, 0x0a4, 7, __NA_, 0, NO_PAD_CTRL) |
898 | #define MX51_PAD_EIM_A18__EIM_A18 (_MX51_PAD_EIM_A18__EIM_A18 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 144 | #define MX51_PAD_EIM_A18__EIM_A18 IOMUX_PAD(0x438, 0x0a4, 0, __NA_, 0, NO_PAD_CTRL) |
899 | #define MX51_PAD_EIM_A18__GPIO2_12 (_MX51_PAD_EIM_A18__GPIO2_12 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 145 | #define MX51_PAD_EIM_A18__GPIO2_12 IOMUX_PAD(0x438, 0x0a4, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
900 | #define MX51_PAD_EIM_A19__BOOT_LPB1 (_MX51_PAD_EIM_A19__BOOT_LPB1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 146 | #define MX51_PAD_EIM_A19__BOOT_LPB1 IOMUX_PAD(0x43c, 0x0a8, 7, __NA_, 0, NO_PAD_CTRL) |
901 | #define MX51_PAD_EIM_A19__EIM_A19 (_MX51_PAD_EIM_A19__EIM_A19 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 147 | #define MX51_PAD_EIM_A19__EIM_A19 IOMUX_PAD(0x43c, 0x0a8, 0, __NA_, 0, NO_PAD_CTRL) |
902 | #define MX51_PAD_EIM_A19__GPIO2_13 (_MX51_PAD_EIM_A19__GPIO2_13 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 148 | #define MX51_PAD_EIM_A19__GPIO2_13 IOMUX_PAD(0x43c, 0x0a8, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
903 | #define MX51_PAD_EIM_A20__BOOT_UART_SRC0 (_MX51_PAD_EIM_A20__BOOT_UART_SRC0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 149 | #define MX51_PAD_EIM_A20__BOOT_UART_SRC0 IOMUX_PAD(0x440, 0x0ac, 7, __NA_, 0, NO_PAD_CTRL) |
904 | #define MX51_PAD_EIM_A20__EIM_A20 (_MX51_PAD_EIM_A20__EIM_A20 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 150 | #define MX51_PAD_EIM_A20__EIM_A20 IOMUX_PAD(0x440, 0x0ac, 0, __NA_, 0, NO_PAD_CTRL) |
905 | #define MX51_PAD_EIM_A20__GPIO2_14 (_MX51_PAD_EIM_A20__GPIO2_14 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 151 | #define MX51_PAD_EIM_A20__GPIO2_14 IOMUX_PAD(0x440, 0x0ac, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
906 | #define MX51_PAD_EIM_A21__BOOT_UART_SRC1 (_MX51_PAD_EIM_A21__BOOT_UART_SRC1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 152 | #define MX51_PAD_EIM_A21__BOOT_UART_SRC1 IOMUX_PAD(0x444, 0x0b0, 7, __NA_, 0, NO_PAD_CTRL) |
907 | #define MX51_PAD_EIM_A21__EIM_A21 (_MX51_PAD_EIM_A21__EIM_A21 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 153 | #define MX51_PAD_EIM_A21__EIM_A21 IOMUX_PAD(0x444, 0x0b0, 0, __NA_, 0, NO_PAD_CTRL) |
908 | #define MX51_PAD_EIM_A21__GPIO2_15 (_MX51_PAD_EIM_A21__GPIO2_15 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 154 | #define MX51_PAD_EIM_A21__GPIO2_15 IOMUX_PAD(0x444, 0x0b0, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
909 | #define MX51_PAD_EIM_A22__EIM_A22 (_MX51_PAD_EIM_A22__EIM_A22 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 155 | #define MX51_PAD_EIM_A22__EIM_A22 IOMUX_PAD(0x448, 0x0b4, 0, __NA_, 0, NO_PAD_CTRL) |
910 | #define MX51_PAD_EIM_A22__GPIO2_16 (_MX51_PAD_EIM_A22__GPIO2_16 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 156 | #define MX51_PAD_EIM_A22__GPIO2_16 IOMUX_PAD(0x448, 0x0b4, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
911 | #define MX51_PAD_EIM_A23__BOOT_HPN_EN (_MX51_PAD_EIM_A23__BOOT_HPN_EN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 157 | #define MX51_PAD_EIM_A23__BOOT_HPN_EN IOMUX_PAD(0x44c, 0x0b8, 7, __NA_, 0, NO_PAD_CTRL) |
912 | #define MX51_PAD_EIM_A23__EIM_A23 (_MX51_PAD_EIM_A23__EIM_A23 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 158 | #define MX51_PAD_EIM_A23__EIM_A23 IOMUX_PAD(0x44c, 0x0b8, 0, __NA_, 0, NO_PAD_CTRL) |
913 | #define MX51_PAD_EIM_A23__GPIO2_17 (_MX51_PAD_EIM_A23__GPIO2_17 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 159 | #define MX51_PAD_EIM_A23__GPIO2_17 IOMUX_PAD(0x44c, 0x0b8, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
914 | #define MX51_PAD_EIM_A24__EIM_A24 (_MX51_PAD_EIM_A24__EIM_A24 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 160 | #define MX51_PAD_EIM_A24__EIM_A24 IOMUX_PAD(0x450, 0x0bc, 0, __NA_, 0, NO_PAD_CTRL) |
915 | #define MX51_PAD_EIM_A24__GPIO2_18 (_MX51_PAD_EIM_A24__GPIO2_18 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 161 | #define MX51_PAD_EIM_A24__GPIO2_18 IOMUX_PAD(0x450, 0x0bc, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
916 | #define MX51_PAD_EIM_A24__USBH2_CLK (_MX51_PAD_EIM_A24__USBH2_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 162 | #define MX51_PAD_EIM_A24__USBH2_CLK IOMUX_PAD(0x450, 0x0bc, 2, __NA_, 0, NO_PAD_CTRL) |
917 | #define MX51_PAD_EIM_A25__DISP1_PIN4 (_MX51_PAD_EIM_A25__DISP1_PIN4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 163 | #define MX51_PAD_EIM_A25__DISP1_PIN4 IOMUX_PAD(0x454, 0x0c0, 6, __NA_, 0, NO_PAD_CTRL) |
918 | #define MX51_PAD_EIM_A25__EIM_A25 (_MX51_PAD_EIM_A25__EIM_A25 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 164 | #define MX51_PAD_EIM_A25__EIM_A25 IOMUX_PAD(0x454, 0x0c0, 0, __NA_, 0, NO_PAD_CTRL) |
919 | #define MX51_PAD_EIM_A25__GPIO2_19 (_MX51_PAD_EIM_A25__GPIO2_19 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 165 | #define MX51_PAD_EIM_A25__GPIO2_19 IOMUX_PAD(0x454, 0x0c0, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
920 | #define MX51_PAD_EIM_A25__USBH2_DIR (_MX51_PAD_EIM_A25__USBH2_DIR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 166 | #define MX51_PAD_EIM_A25__USBH2_DIR IOMUX_PAD(0x454, 0x0c0, 2, __NA_, 0, NO_PAD_CTRL) |
921 | #define MX51_PAD_EIM_A26__CSI1_DATA_EN (_MX51_PAD_EIM_A26__CSI1_DATA_EN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 167 | #define MX51_PAD_EIM_A26__CSI1_DATA_EN IOMUX_PAD(0x458, 0x0c4, 5, 0x9a0, 0, NO_PAD_CTRL) |
922 | #define MX51_PAD_EIM_A26__DISP2_EXT_CLK (_MX51_PAD_EIM_A26__DISP2_EXT_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 168 | #define MX51_PAD_EIM_A26__DISP2_EXT_CLK IOMUX_PAD(0x458, 0x0c4, 6, 0x908, 0, NO_PAD_CTRL) |
923 | #define MX51_PAD_EIM_A26__EIM_A26 (_MX51_PAD_EIM_A26__EIM_A26 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 169 | #define MX51_PAD_EIM_A26__EIM_A26 IOMUX_PAD(0x458, 0x0c4, 0, __NA_, 0, NO_PAD_CTRL) |
924 | #define MX51_PAD_EIM_A26__GPIO2_20 (_MX51_PAD_EIM_A26__GPIO2_20 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 170 | #define MX51_PAD_EIM_A26__GPIO2_20 IOMUX_PAD(0x458, 0x0c4, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
925 | #define MX51_PAD_EIM_A26__USBH2_STP (_MX51_PAD_EIM_A26__USBH2_STP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 171 | #define MX51_PAD_EIM_A26__USBH2_STP IOMUX_PAD(0x458, 0x0c4, 2, __NA_, 0, NO_PAD_CTRL) |
926 | #define MX51_PAD_EIM_A27__CSI2_DATA_EN (_MX51_PAD_EIM_A27__CSI2_DATA_EN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 172 | #define MX51_PAD_EIM_A27__CSI2_DATA_EN IOMUX_PAD(0x45c, 0x0c8, 5, 0x99c, 0, NO_PAD_CTRL) |
927 | #define MX51_PAD_EIM_A27__DISP1_PIN1 (_MX51_PAD_EIM_A27__DISP1_PIN1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 173 | #define MX51_PAD_EIM_A27__DISP1_PIN1 IOMUX_PAD(0x45c, 0x0c8, 6, 0x9a4, 0, NO_PAD_CTRL) |
928 | #define MX51_PAD_EIM_A27__EIM_A27 (_MX51_PAD_EIM_A27__EIM_A27 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 174 | #define MX51_PAD_EIM_A27__EIM_A27 IOMUX_PAD(0x45c, 0x0c8, 0, __NA_, 0, NO_PAD_CTRL) |
929 | #define MX51_PAD_EIM_A27__GPIO2_21 (_MX51_PAD_EIM_A27__GPIO2_21 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 175 | #define MX51_PAD_EIM_A27__GPIO2_21 IOMUX_PAD(0x45c, 0x0c8, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
930 | #define MX51_PAD_EIM_A27__USBH2_NXT (_MX51_PAD_EIM_A27__USBH2_NXT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 176 | #define MX51_PAD_EIM_A27__USBH2_NXT IOMUX_PAD(0x45c, 0x0c8, 2, __NA_, 0, NO_PAD_CTRL) |
931 | #define MX51_PAD_EIM_EB0__EIM_EB0 (_MX51_PAD_EIM_EB0__EIM_EB0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 177 | #define MX51_PAD_EIM_EB0__EIM_EB0 IOMUX_PAD(0x460, 0x0cc, 0, __NA_, 0, NO_PAD_CTRL) |
932 | #define MX51_PAD_EIM_EB1__EIM_EB1 (_MX51_PAD_EIM_EB1__EIM_EB1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 178 | #define MX51_PAD_EIM_EB1__EIM_EB1 IOMUX_PAD(0x464, 0x0d0, 0, __NA_, 0, NO_PAD_CTRL) |
933 | #define MX51_PAD_EIM_EB2__AUD5_RXFS (_MX51_PAD_EIM_EB2__AUD5_RXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 179 | #define MX51_PAD_EIM_EB2__AUD5_RXFS IOMUX_PAD(0x468, 0x0d4, 6, 0x8e0, 0, NO_PAD_CTRL) |
934 | #define MX51_PAD_EIM_EB2__CSI1_D2 (_MX51_PAD_EIM_EB2__CSI1_D2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 180 | #define MX51_PAD_EIM_EB2__CSI1_D2 IOMUX_PAD(0x468, 0x0d4, 5, __NA_, 0, NO_PAD_CTRL) |
935 | #define MX51_PAD_EIM_EB2__EIM_EB2 (_MX51_PAD_EIM_EB2__EIM_EB2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 181 | #define MX51_PAD_EIM_EB2__EIM_EB2 IOMUX_PAD(0x468, 0x0d4, 0, __NA_, 0, NO_PAD_CTRL) |
936 | #define MX51_PAD_EIM_EB2__FEC_MDIO (_MX51_PAD_EIM_EB2__FEC_MDIO | \ | 182 | #define MX51_PAD_EIM_EB2__FEC_MDIO (IOMUX_PAD(0x468, 0x0d4, 3, 0x954, 0, 0) | \ |
937 | MUX_PAD_CTRL(PAD_CTL_PUS_22K_UP | PAD_CTL_PKE | PAD_CTL_SRE_FAST | \ | 183 | MUX_PAD_CTRL(PAD_CTL_PUS_22K_UP | PAD_CTL_PKE | PAD_CTL_SRE_FAST | \ |
938 | PAD_CTL_DSE_HIGH | PAD_CTL_PUE | PAD_CTL_HYS)) | 184 | PAD_CTL_DSE_HIGH | PAD_CTL_PUE | PAD_CTL_HYS)) |
939 | #define MX51_PAD_EIM_EB2__GPIO2_22 (_MX51_PAD_EIM_EB2__GPIO2_22 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 185 | #define MX51_PAD_EIM_EB2__GPIO2_22 IOMUX_PAD(0x468, 0x0d4, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
940 | #define MX51_PAD_EIM_EB2__GPT_CMPOUT1 (_MX51_PAD_EIM_EB2__GPT_CMPOUT1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 186 | #define MX51_PAD_EIM_EB2__GPT_CMPOUT1 IOMUX_PAD(0x468, 0x0d4, 7, __NA_, 0, NO_PAD_CTRL) |
941 | #define MX51_PAD_EIM_EB3__AUD5_RXC (_MX51_PAD_EIM_EB3__AUD5_RXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 187 | #define MX51_PAD_EIM_EB3__AUD5_RXC IOMUX_PAD(0x46c, 0x0d8, 6, 0x8dc, 0, NO_PAD_CTRL) |
942 | #define MX51_PAD_EIM_EB3__CSI1_D3 (_MX51_PAD_EIM_EB3__CSI1_D3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 188 | #define MX51_PAD_EIM_EB3__CSI1_D3 IOMUX_PAD(0x46c, 0x0d8, 5, __NA_, 0, NO_PAD_CTRL) |
943 | #define MX51_PAD_EIM_EB3__EIM_EB3 (_MX51_PAD_EIM_EB3__EIM_EB3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 189 | #define MX51_PAD_EIM_EB3__EIM_EB3 IOMUX_PAD(0x46c, 0x0d8, 0, __NA_, 0, NO_PAD_CTRL) |
944 | #define MX51_PAD_EIM_EB3__FEC_RDATA1 (_MX51_PAD_EIM_EB3__FEC_RDATA1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 190 | #define MX51_PAD_EIM_EB3__FEC_RDATA1 IOMUX_PAD(0x46c, 0x0d8, 3, 0x95c, 0, NO_PAD_CTRL) |
945 | #define MX51_PAD_EIM_EB3__GPIO2_23 (_MX51_PAD_EIM_EB3__GPIO2_23 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 191 | #define MX51_PAD_EIM_EB3__GPIO2_23 IOMUX_PAD(0x46c, 0x0d8, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
946 | #define MX51_PAD_EIM_EB3__GPT_CMPOUT2 (_MX51_PAD_EIM_EB3__GPT_CMPOUT2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 192 | #define MX51_PAD_EIM_EB3__GPT_CMPOUT2 IOMUX_PAD(0x46c, 0x0d8, 7, __NA_, 0, NO_PAD_CTRL) |
947 | #define MX51_PAD_EIM_OE__EIM_OE (_MX51_PAD_EIM_OE__EIM_OE | MUX_PAD_CTRL(NO_PAD_CTRL)) | 193 | #define MX51_PAD_EIM_OE__EIM_OE IOMUX_PAD(0x470, 0x0dc, 0, __NA_, 0, NO_PAD_CTRL) |
948 | #define MX51_PAD_EIM_OE__GPIO2_24 (_MX51_PAD_EIM_OE__GPIO2_24 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 194 | #define MX51_PAD_EIM_OE__GPIO2_24 IOMUX_PAD(0x470, 0x0dc, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
949 | #define MX51_PAD_EIM_CS0__EIM_CS0 (_MX51_PAD_EIM_CS0__EIM_CS0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 195 | #define MX51_PAD_EIM_CS0__EIM_CS0 IOMUX_PAD(0x474, 0x0e0, 0, __NA_, 0, NO_PAD_CTRL) |
950 | #define MX51_PAD_EIM_CS0__GPIO2_25 (_MX51_PAD_EIM_CS0__GPIO2_25 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 196 | #define MX51_PAD_EIM_CS0__GPIO2_25 IOMUX_PAD(0x474, 0x0e0, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
951 | #define MX51_PAD_EIM_CS1__EIM_CS1 (_MX51_PAD_EIM_CS1__EIM_CS1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 197 | #define MX51_PAD_EIM_CS1__EIM_CS1 IOMUX_PAD(0x478, 0x0e4, 0, __NA_, 0, NO_PAD_CTRL) |
952 | #define MX51_PAD_EIM_CS1__GPIO2_26 (_MX51_PAD_EIM_CS1__GPIO2_26 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 198 | #define MX51_PAD_EIM_CS1__GPIO2_26 IOMUX_PAD(0x478, 0x0e4, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
953 | #define MX51_PAD_EIM_CS2__AUD5_TXD (_MX51_PAD_EIM_CS2__AUD5_TXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 199 | #define MX51_PAD_EIM_CS2__AUD5_TXD IOMUX_PAD(0x47c, 0x0e8, 6, 0x8d8, 1, NO_PAD_CTRL) |
954 | #define MX51_PAD_EIM_CS2__CSI1_D4 (_MX51_PAD_EIM_CS2__CSI1_D4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 200 | #define MX51_PAD_EIM_CS2__CSI1_D4 IOMUX_PAD(0x47c, 0x0e8, 5, __NA_, 0, NO_PAD_CTRL) |
955 | #define MX51_PAD_EIM_CS2__EIM_CS2 (_MX51_PAD_EIM_CS2__EIM_CS2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 201 | #define MX51_PAD_EIM_CS2__EIM_CS2 IOMUX_PAD(0x47c, 0x0e8, 0, __NA_, 0, NO_PAD_CTRL) |
956 | #define MX51_PAD_EIM_CS2__FEC_RDATA2 (_MX51_PAD_EIM_CS2__FEC_RDATA2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 202 | #define MX51_PAD_EIM_CS2__FEC_RDATA2 IOMUX_PAD(0x47c, 0x0e8, 3, 0x960, 0, NO_PAD_CTRL) |
957 | #define MX51_PAD_EIM_CS2__GPIO2_27 (_MX51_PAD_EIM_CS2__GPIO2_27 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 203 | #define MX51_PAD_EIM_CS2__GPIO2_27 IOMUX_PAD(0x47c, 0x0e8, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
958 | #define MX51_PAD_EIM_CS2__USBOTG_STP (_MX51_PAD_EIM_CS2__USBOTG_STP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 204 | #define MX51_PAD_EIM_CS2__USBOTG_STP IOMUX_PAD(0x47c, 0x0e8, 2, __NA_, 0, NO_PAD_CTRL) |
959 | #define MX51_PAD_EIM_CS3__AUD5_RXD (_MX51_PAD_EIM_CS3__AUD5_RXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 205 | #define MX51_PAD_EIM_CS3__AUD5_RXD IOMUX_PAD(0x480, 0x0ec, 6, 0x8d4, 1, NO_PAD_CTRL) |
960 | #define MX51_PAD_EIM_CS3__CSI1_D5 (_MX51_PAD_EIM_CS3__CSI1_D5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 206 | #define MX51_PAD_EIM_CS3__CSI1_D5 IOMUX_PAD(0x480, 0x0ec, 5, __NA_, 0, NO_PAD_CTRL) |
961 | #define MX51_PAD_EIM_CS3__EIM_CS3 (_MX51_PAD_EIM_CS3__EIM_CS3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 207 | #define MX51_PAD_EIM_CS3__EIM_CS3 IOMUX_PAD(0x480, 0x0ec, 0, __NA_, 0, NO_PAD_CTRL) |
962 | #define MX51_PAD_EIM_CS3__FEC_RDATA3 (_MX51_PAD_EIM_CS3__FEC_RDATA3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 208 | #define MX51_PAD_EIM_CS3__FEC_RDATA3 IOMUX_PAD(0x480, 0x0ec, 3, 0x964, 0, NO_PAD_CTRL) |
963 | #define MX51_PAD_EIM_CS3__GPIO2_28 (_MX51_PAD_EIM_CS3__GPIO2_28 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 209 | #define MX51_PAD_EIM_CS3__GPIO2_28 IOMUX_PAD(0x480, 0x0ec, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
964 | #define MX51_PAD_EIM_CS3__USBOTG_NXT (_MX51_PAD_EIM_CS3__USBOTG_NXT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 210 | #define MX51_PAD_EIM_CS3__USBOTG_NXT IOMUX_PAD(0x480, 0x0ec, 2, __NA_, 0, NO_PAD_CTRL) |
965 | #define MX51_PAD_EIM_CS4__AUD5_TXC (_MX51_PAD_EIM_CS4__AUD5_TXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 211 | #define MX51_PAD_EIM_CS4__AUD5_TXC IOMUX_PAD(0x484, 0x0f0, 6, 0x8e4, 1, NO_PAD_CTRL) |
966 | #define MX51_PAD_EIM_CS4__CSI1_D6 (_MX51_PAD_EIM_CS4__CSI1_D6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 212 | #define MX51_PAD_EIM_CS4__CSI1_D6 IOMUX_PAD(0x484, 0x0f0, 5, __NA_, 0, NO_PAD_CTRL) |
967 | #define MX51_PAD_EIM_CS4__EIM_CS4 (_MX51_PAD_EIM_CS4__EIM_CS4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 213 | #define MX51_PAD_EIM_CS4__EIM_CS4 IOMUX_PAD(0x484, 0x0f0, 0, __NA_, 0, NO_PAD_CTRL) |
968 | #define MX51_PAD_EIM_CS4__FEC_RX_ER (_MX51_PAD_EIM_CS4__FEC_RX_ER | MUX_PAD_CTRL(MX51_PAD_CTRL_2)) | 214 | #define MX51_PAD_EIM_CS4__FEC_RX_ER IOMUX_PAD(0x484, 0x0f0, 3, 0x970, 0, MX51_PAD_CTRL_2) |
969 | #define MX51_PAD_EIM_CS4__GPIO2_29 (_MX51_PAD_EIM_CS4__GPIO2_29 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 215 | #define MX51_PAD_EIM_CS4__GPIO2_29 IOMUX_PAD(0x484, 0x0f0, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
970 | #define MX51_PAD_EIM_CS4__USBOTG_CLK (_MX51_PAD_EIM_CS4__USBOTG_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 216 | #define MX51_PAD_EIM_CS4__USBOTG_CLK IOMUX_PAD(0x484, 0x0f0, 2, __NA_, 0, NO_PAD_CTRL) |
971 | #define MX51_PAD_EIM_CS5__AUD5_TXFS (_MX51_PAD_EIM_CS5__AUD5_TXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 217 | #define MX51_PAD_EIM_CS5__AUD5_TXFS IOMUX_PAD(0x488, 0x0f4, 6, 0x8e8, 1, NO_PAD_CTRL) |
972 | #define MX51_PAD_EIM_CS5__CSI1_D7 (_MX51_PAD_EIM_CS5__CSI1_D7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 218 | #define MX51_PAD_EIM_CS5__CSI1_D7 IOMUX_PAD(0x488, 0x0f4, 5, __NA_, 0, NO_PAD_CTRL) |
973 | #define MX51_PAD_EIM_CS5__DISP1_EXT_CLK (_MX51_PAD_EIM_CS5__DISP1_EXT_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 219 | #define MX51_PAD_EIM_CS5__DISP1_EXT_CLK IOMUX_PAD(0x488, 0x0f4, 4, 0x904, 0, NO_PAD_CTRL) |
974 | #define MX51_PAD_EIM_CS5__EIM_CS5 (_MX51_PAD_EIM_CS5__EIM_CS5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 220 | #define MX51_PAD_EIM_CS5__EIM_CS5 IOMUX_PAD(0x488, 0x0f4, 0, __NA_, 0, NO_PAD_CTRL) |
975 | #define MX51_PAD_EIM_CS5__FEC_CRS (_MX51_PAD_EIM_CS5__FEC_CRS | MUX_PAD_CTRL(MX51_PAD_CTRL_2)) | 221 | #define MX51_PAD_EIM_CS5__FEC_CRS IOMUX_PAD(0x488, 0x0f4, 3, 0x950, 0, MX51_PAD_CTRL_2) |
976 | #define MX51_PAD_EIM_CS5__GPIO2_30 (_MX51_PAD_EIM_CS5__GPIO2_30 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 222 | #define MX51_PAD_EIM_CS5__GPIO2_30 IOMUX_PAD(0x488, 0x0f4, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
977 | #define MX51_PAD_EIM_CS5__USBOTG_DIR (_MX51_PAD_EIM_CS5__USBOTG_DIR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 223 | #define MX51_PAD_EIM_CS5__USBOTG_DIR IOMUX_PAD(0x488, 0x0f4, 2, __NA_, 0, NO_PAD_CTRL) |
978 | #define MX51_PAD_EIM_DTACK__EIM_DTACK (_MX51_PAD_EIM_DTACK__EIM_DTACK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 224 | #define MX51_PAD_EIM_DTACK__EIM_DTACK IOMUX_PAD(0x48c, 0x0f8, 0, __NA_, 0, NO_PAD_CTRL) |
979 | #define MX51_PAD_EIM_DTACK__GPIO2_31 (_MX51_PAD_EIM_DTACK__GPIO2_31 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 225 | #define MX51_PAD_EIM_DTACK__GPIO2_31 IOMUX_PAD(0x48c, 0x0f8, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) |
980 | #define MX51_PAD_EIM_LBA__EIM_LBA (_MX51_PAD_EIM_LBA__EIM_LBA | MUX_PAD_CTRL(NO_PAD_CTRL)) | 226 | #define MX51_PAD_EIM_LBA__EIM_LBA IOMUX_PAD(0x494, 0x0fc, 0, __NA_, 0, NO_PAD_CTRL) |
981 | #define MX51_PAD_EIM_LBA__GPIO3_1 (_MX51_PAD_EIM_LBA__GPIO3_1 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 227 | #define MX51_PAD_EIM_LBA__GPIO3_1 IOMUX_PAD(0x494, 0x0fc, 1, 0x978, 0, MX51_GPIO_PAD_CTRL) |
982 | #define MX51_PAD_EIM_CRE__EIM_CRE (_MX51_PAD_EIM_CRE__EIM_CRE | MUX_PAD_CTRL(NO_PAD_CTRL)) | 228 | #define MX51_PAD_EIM_CRE__EIM_CRE IOMUX_PAD(0x4a0, 0x100, 0, __NA_, 0, NO_PAD_CTRL) |
983 | #define MX51_PAD_EIM_CRE__GPIO3_2 (_MX51_PAD_EIM_CRE__GPIO3_2 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 229 | #define MX51_PAD_EIM_CRE__GPIO3_2 IOMUX_PAD(0x4a0, 0x100, 1, 0x97c, 0, MX51_GPIO_PAD_CTRL) |
984 | #define MX51_PAD_DRAM_CS1__DRAM_CS1 (_MX51_PAD_DRAM_CS1__DRAM_CS1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 230 | #define MX51_PAD_DRAM_CS1__DRAM_CS1 IOMUX_PAD(0x4d0, 0x104, 0, __NA_, 0, NO_PAD_CTRL) |
985 | #define MX51_PAD_NANDF_WE_B__GPIO3_3 (_MX51_PAD_NANDF_WE_B__GPIO3_3 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 231 | #define MX51_PAD_NANDF_WE_B__GPIO3_3 IOMUX_PAD(0x4e4, 0x108, 3, 0x980, 0, MX51_GPIO_PAD_CTRL) |
986 | #define MX51_PAD_NANDF_WE_B__NANDF_WE_B (_MX51_PAD_NANDF_WE_B__NANDF_WE_B | MUX_PAD_CTRL(NO_PAD_CTRL)) | 232 | #define MX51_PAD_NANDF_WE_B__NANDF_WE_B IOMUX_PAD(0x4e4, 0x108, 0, __NA_, 0, NO_PAD_CTRL) |
987 | #define MX51_PAD_NANDF_WE_B__PATA_DIOW (_MX51_PAD_NANDF_WE_B__PATA_DIOW | MUX_PAD_CTRL(NO_PAD_CTRL)) | 233 | #define MX51_PAD_NANDF_WE_B__PATA_DIOW IOMUX_PAD(0x4e4, 0x108, 1, __NA_, 0, NO_PAD_CTRL) |
988 | #define MX51_PAD_NANDF_WE_B__SD3_DATA0 (_MX51_PAD_NANDF_WE_B__SD3_DATA0 | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL)) | 234 | #define MX51_PAD_NANDF_WE_B__SD3_DATA0 IOMUX_PAD(0x4e4, 0x108, 2, 0x93c, 0, MX51_SDHCI_PAD_CTRL) |
989 | #define MX51_PAD_NANDF_RE_B__GPIO3_4 (_MX51_PAD_NANDF_RE_B__GPIO3_4 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 235 | #define MX51_PAD_NANDF_RE_B__GPIO3_4 IOMUX_PAD(0x4e8, 0x10c, 3, 0x984, 0, MX51_GPIO_PAD_CTRL) |
990 | #define MX51_PAD_NANDF_RE_B__NANDF_RE_B (_MX51_PAD_NANDF_RE_B__NANDF_RE_B | MUX_PAD_CTRL(NO_PAD_CTRL)) | 236 | #define MX51_PAD_NANDF_RE_B__NANDF_RE_B IOMUX_PAD(0x4e8, 0x10c, 0, __NA_, 0, NO_PAD_CTRL) |
991 | #define MX51_PAD_NANDF_RE_B__PATA_DIOR (_MX51_PAD_NANDF_RE_B__PATA_DIOR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 237 | #define MX51_PAD_NANDF_RE_B__PATA_DIOR IOMUX_PAD(0x4e8, 0x10c, 1, __NA_, 0, NO_PAD_CTRL) |
992 | #define MX51_PAD_NANDF_RE_B__SD3_DATA1 (_MX51_PAD_NANDF_RE_B__SD3_DATA1 | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL)) | 238 | #define MX51_PAD_NANDF_RE_B__SD3_DATA1 IOMUX_PAD(0x4e8, 0x10c, 2, 0x940, 0, MX51_SDHCI_PAD_CTRL) |
993 | #define MX51_PAD_NANDF_ALE__GPIO3_5 (_MX51_PAD_NANDF_ALE__GPIO3_5 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 239 | #define MX51_PAD_NANDF_ALE__GPIO3_5 IOMUX_PAD(0x4ec, 0x110, 3, 0x988, 0, MX51_GPIO_PAD_CTRL) |
994 | #define MX51_PAD_NANDF_ALE__NANDF_ALE (_MX51_PAD_NANDF_ALE__NANDF_ALE | MUX_PAD_CTRL(NO_PAD_CTRL)) | 240 | #define MX51_PAD_NANDF_ALE__NANDF_ALE IOMUX_PAD(0x4ec, 0x110, 0, __NA_, 0, NO_PAD_CTRL) |
995 | #define MX51_PAD_NANDF_ALE__PATA_BUFFER_EN (_MX51_PAD_NANDF_ALE__PATA_BUFFER_EN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 241 | #define MX51_PAD_NANDF_ALE__PATA_BUFFER_EN IOMUX_PAD(0x4ec, 0x110, 1, __NA_, 0, NO_PAD_CTRL) |
996 | #define MX51_PAD_NANDF_CLE__GPIO3_6 (_MX51_PAD_NANDF_CLE__GPIO3_6 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 242 | #define MX51_PAD_NANDF_CLE__GPIO3_6 IOMUX_PAD(0x4f0, 0x114, 3, 0x98c, 0, MX51_GPIO_PAD_CTRL) |
997 | #define MX51_PAD_NANDF_CLE__NANDF_CLE (_MX51_PAD_NANDF_CLE__NANDF_CLE | MUX_PAD_CTRL(NO_PAD_CTRL)) | 243 | #define MX51_PAD_NANDF_CLE__NANDF_CLE IOMUX_PAD(0x4f0, 0x114, 0, __NA_, 0, NO_PAD_CTRL) |
998 | #define MX51_PAD_NANDF_CLE__PATA_RESET_B (_MX51_PAD_NANDF_CLE__PATA_RESET_B | MUX_PAD_CTRL(NO_PAD_CTRL)) | 244 | #define MX51_PAD_NANDF_CLE__PATA_RESET_B IOMUX_PAD(0x4f0, 0x114, 1, __NA_, 0, NO_PAD_CTRL) |
999 | #define MX51_PAD_NANDF_WP_B__GPIO3_7 (_MX51_PAD_NANDF_WP_B__GPIO3_7 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 245 | #define MX51_PAD_NANDF_WP_B__GPIO3_7 IOMUX_PAD(0x4f4, 0x118, 3, 0x990, 0, MX51_GPIO_PAD_CTRL) |
1000 | #define MX51_PAD_NANDF_WP_B__NANDF_WP_B (_MX51_PAD_NANDF_WP_B__NANDF_WP_B | MUX_PAD_CTRL(NO_PAD_CTRL)) | 246 | #define MX51_PAD_NANDF_WP_B__NANDF_WP_B IOMUX_PAD(0x4f4, 0x118, 0, __NA_, 0, NO_PAD_CTRL) |
1001 | #define MX51_PAD_NANDF_WP_B__PATA_DMACK (_MX51_PAD_NANDF_WP_B__PATA_DMACK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 247 | #define MX51_PAD_NANDF_WP_B__PATA_DMACK IOMUX_PAD(0x4f4, 0x118, 1, __NA_, 0, NO_PAD_CTRL) |
1002 | #define MX51_PAD_NANDF_WP_B__SD3_DATA2 (_MX51_PAD_NANDF_WP_B__SD3_DATA2 | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL)) | 248 | #define MX51_PAD_NANDF_WP_B__SD3_DATA2 IOMUX_PAD(0x4f4, 0x118, 2, 0x944, 0, MX51_SDHCI_PAD_CTRL) |
1003 | #define MX51_PAD_NANDF_RB0__ECSPI2_SS1 (_MX51_PAD_NANDF_RB0__ECSPI2_SS1 | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 249 | #define MX51_PAD_NANDF_RB0__ECSPI2_SS1 IOMUX_PAD(0x4f8, 0x11c, 5, 0x930, 0, MX51_ECSPI_PAD_CTRL) |
1004 | #define MX51_PAD_NANDF_RB0__GPIO3_8 (_MX51_PAD_NANDF_RB0__GPIO3_8 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 250 | #define MX51_PAD_NANDF_RB0__GPIO3_8 IOMUX_PAD(0x4f8, 0x11c, 3, 0x994, 0, MX51_GPIO_PAD_CTRL) |
1005 | #define MX51_PAD_NANDF_RB0__NANDF_RB0 (_MX51_PAD_NANDF_RB0__NANDF_RB0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 251 | #define MX51_PAD_NANDF_RB0__NANDF_RB0 IOMUX_PAD(0x4f8, 0x11c, 0, __NA_, 0, NO_PAD_CTRL) |
1006 | #define MX51_PAD_NANDF_RB0__PATA_DMARQ (_MX51_PAD_NANDF_RB0__PATA_DMARQ | MUX_PAD_CTRL(NO_PAD_CTRL)) | 252 | #define MX51_PAD_NANDF_RB0__PATA_DMARQ IOMUX_PAD(0x4f8, 0x11c, 1, __NA_, 0, NO_PAD_CTRL) |
1007 | #define MX51_PAD_NANDF_RB0__SD3_DATA3 (_MX51_PAD_NANDF_RB0__SD3_DATA3 | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL)) | 253 | #define MX51_PAD_NANDF_RB0__SD3_DATA3 IOMUX_PAD(0x4f8, 0x11c, 2, 0x948, 0, MX51_SDHCI_PAD_CTRL) |
1008 | #define MX51_PAD_NANDF_RB1__CSPI_MOSI (_MX51_PAD_NANDF_RB1__CSPI_MOSI | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 254 | #define MX51_PAD_NANDF_RB1__CSPI_MOSI IOMUX_PAD(0x4fc, 0x120, 6, 0x91c, 0, MX51_ECSPI_PAD_CTRL) |
1009 | #define MX51_PAD_NANDF_RB1__ECSPI2_RDY (_MX51_PAD_NANDF_RB1__ECSPI2_RDY | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 255 | #define MX51_PAD_NANDF_RB1__ECSPI2_RDY IOMUX_PAD(0x4fc, 0x120, 2, __NA_, 0, MX51_ECSPI_PAD_CTRL) |
1010 | #define MX51_PAD_NANDF_RB1__GPIO3_9 (_MX51_PAD_NANDF_RB1__GPIO3_9 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 256 | #define MX51_PAD_NANDF_RB1__GPIO3_9 IOMUX_PAD(0x4fc, 0x120, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1011 | #define MX51_PAD_NANDF_RB1__NANDF_RB1 (_MX51_PAD_NANDF_RB1__NANDF_RB1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 257 | #define MX51_PAD_NANDF_RB1__NANDF_RB1 IOMUX_PAD(0x4fc, 0x120, 0, __NA_, 0, NO_PAD_CTRL) |
1012 | #define MX51_PAD_NANDF_RB1__PATA_IORDY (_MX51_PAD_NANDF_RB1__PATA_IORDY | MUX_PAD_CTRL(NO_PAD_CTRL)) | 258 | #define MX51_PAD_NANDF_RB1__PATA_IORDY IOMUX_PAD(0x4fc, 0x120, 1, __NA_, 0, NO_PAD_CTRL) |
1013 | #define MX51_PAD_NANDF_RB1__SD4_CMD (_MX51_PAD_NANDF_RB1__SD4_CMD | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL)) | 259 | #define MX51_PAD_NANDF_RB1__SD4_CMD IOMUX_PAD(0x4fc, 0x120, 5, __NA_, 0, MX51_SDHCI_PAD_CTRL) |
1014 | #define MX51_PAD_NANDF_RB2__DISP2_WAIT (_MX51_PAD_NANDF_RB2__DISP2_WAIT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 260 | #define MX51_PAD_NANDF_RB2__DISP2_WAIT IOMUX_PAD(0x500, 0x124, 5, 0x9a8, 0, NO_PAD_CTRL) |
1015 | #define MX51_PAD_NANDF_RB2__ECSPI2_SCLK (_MX51_PAD_NANDF_RB2__ECSPI2_SCLK | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 261 | #define MX51_PAD_NANDF_RB2__ECSPI2_SCLK IOMUX_PAD(0x500, 0x124, 2, __NA_, 0, MX51_ECSPI_PAD_CTRL) |
1016 | #define MX51_PAD_NANDF_RB2__FEC_COL (_MX51_PAD_NANDF_RB2__FEC_COL | MUX_PAD_CTRL(MX51_PAD_CTRL_2)) | 262 | #define MX51_PAD_NANDF_RB2__FEC_COL IOMUX_PAD(0x500, 0x124, 1, 0x94c, 0, MX51_PAD_CTRL_2) |
1017 | #define MX51_PAD_NANDF_RB2__GPIO3_10 (_MX51_PAD_NANDF_RB2__GPIO3_10 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 263 | #define MX51_PAD_NANDF_RB2__GPIO3_10 IOMUX_PAD(0x500, 0x124, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1018 | #define MX51_PAD_NANDF_RB2__NANDF_RB2 (_MX51_PAD_NANDF_RB2__NANDF_RB2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 264 | #define MX51_PAD_NANDF_RB2__NANDF_RB2 IOMUX_PAD(0x500, 0x124, 0, __NA_, 0, NO_PAD_CTRL) |
1019 | #define MX51_PAD_NANDF_RB2__USBH3_H3_DP (_MX51_PAD_NANDF_RB2__USBH3_H3_DP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 265 | #define MX51_PAD_NANDF_RB2__USBH3_H3_DP IOMUX_PAD(0x500, 0x124, 7, __NA_, 0, NO_PAD_CTRL) |
1020 | #define MX51_PAD_NANDF_RB2__USBH3_NXT (_MX51_PAD_NANDF_RB2__USBH3_NXT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 266 | #define MX51_PAD_NANDF_RB2__USBH3_NXT IOMUX_PAD(0x500, 0x124, 6, 0xa20, 0, NO_PAD_CTRL) |
1021 | #define MX51_PAD_NANDF_RB3__DISP1_WAIT (_MX51_PAD_NANDF_RB3__DISP1_WAIT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 267 | #define MX51_PAD_NANDF_RB3__DISP1_WAIT IOMUX_PAD(0x504, 0x128, 5, __NA_, 0, NO_PAD_CTRL) |
1022 | #define MX51_PAD_NANDF_RB3__ECSPI2_MISO (_MX51_PAD_NANDF_RB3__ECSPI2_MISO | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 268 | #define MX51_PAD_NANDF_RB3__ECSPI2_MISO IOMUX_PAD(0x504, 0x128, 2, __NA_, 0, MX51_ECSPI_PAD_CTRL) |
1023 | #define MX51_PAD_NANDF_RB3__FEC_RX_CLK (_MX51_PAD_NANDF_RB3__FEC_RX_CLK | MUX_PAD_CTRL(MX51_PAD_CTRL_2)) | 269 | #define MX51_PAD_NANDF_RB3__FEC_RX_CLK IOMUX_PAD(0x504, 0x128, 1, 0x968, 0, MX51_PAD_CTRL_2) |
1024 | #define MX51_PAD_NANDF_RB3__GPIO3_11 (_MX51_PAD_NANDF_RB3__GPIO3_11 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 270 | #define MX51_PAD_NANDF_RB3__GPIO3_11 IOMUX_PAD(0x504, 0x128, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1025 | #define MX51_PAD_NANDF_RB3__NANDF_RB3 (_MX51_PAD_NANDF_RB3__NANDF_RB3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 271 | #define MX51_PAD_NANDF_RB3__NANDF_RB3 IOMUX_PAD(0x504, 0x128, 0, __NA_, 0, NO_PAD_CTRL) |
1026 | #define MX51_PAD_NANDF_RB3__USBH3_CLK (_MX51_PAD_NANDF_RB3__USBH3_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 272 | #define MX51_PAD_NANDF_RB3__USBH3_CLK IOMUX_PAD(0x504, 0x128, 6, 0x9f8, 0, NO_PAD_CTRL) |
1027 | #define MX51_PAD_NANDF_RB3__USBH3_H3_DM (_MX51_PAD_NANDF_RB3__USBH3_H3_DM | MUX_PAD_CTRL(NO_PAD_CTRL)) | 273 | #define MX51_PAD_NANDF_RB3__USBH3_H3_DM IOMUX_PAD(0x504, 0x128, 7, __NA_, 0, NO_PAD_CTRL) |
1028 | #define MX51_PAD_GPIO_NAND__GPIO_NAND (_MX51_PAD_GPIO_NAND__GPIO_NAND | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 274 | #define MX51_PAD_GPIO_NAND__GPIO_NAND IOMUX_PAD(0x514, 0x12c, 0, 0x998, 0, MX51_GPIO_PAD_CTRL) |
1029 | #define MX51_PAD_GPIO_NAND__PATA_INTRQ (_MX51_PAD_GPIO_NAND__PATA_INTRQ | MUX_PAD_CTRL(NO_PAD_CTRL)) | 275 | #define MX51_PAD_GPIO_NAND__PATA_INTRQ IOMUX_PAD(0x514, 0x12c, 1, __NA_, 0, NO_PAD_CTRL) |
1030 | #define MX51_PAD_NANDF_CS0__GPIO3_16 (_MX51_PAD_NANDF_CS0__GPIO3_16 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 276 | #define MX51_PAD_NANDF_CS0__GPIO3_16 IOMUX_PAD(0x518, 0x130, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1031 | #define MX51_PAD_NANDF_CS0__NANDF_CS0 (_MX51_PAD_NANDF_CS0__NANDF_CS0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 277 | #define MX51_PAD_NANDF_CS0__NANDF_CS0 IOMUX_PAD(0x518, 0x130, 0, __NA_, 0, NO_PAD_CTRL) |
1032 | #define MX51_PAD_NANDF_CS1__GPIO3_17 (_MX51_PAD_NANDF_CS1__GPIO3_17 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 278 | #define MX51_PAD_NANDF_CS1__GPIO3_17 IOMUX_PAD(0x51c, 0x134, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1033 | #define MX51_PAD_NANDF_CS1__NANDF_CS1 (_MX51_PAD_NANDF_CS1__NANDF_CS1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 279 | #define MX51_PAD_NANDF_CS1__NANDF_CS1 IOMUX_PAD(0x51c, 0x134, 0, __NA_, 0, NO_PAD_CTRL) |
1034 | #define MX51_PAD_NANDF_CS2__CSPI_SCLK (_MX51_PAD_NANDF_CS2__CSPI_SCLK | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 280 | #define MX51_PAD_NANDF_CS2__CSPI_SCLK IOMUX_PAD(0x520, 0x138, 6, 0x914, 0, MX51_ECSPI_PAD_CTRL) |
1035 | #define MX51_PAD_NANDF_CS2__FEC_TX_ER (_MX51_PAD_NANDF_CS2__FEC_TX_ER | MUX_PAD_CTRL(MX51_PAD_CTRL_5)) | 281 | #define MX51_PAD_NANDF_CS2__FEC_TX_ER IOMUX_PAD(0x520, 0x138, 2, __NA_, 0, MX51_PAD_CTRL_5) |
1036 | #define MX51_PAD_NANDF_CS2__GPIO3_18 (_MX51_PAD_NANDF_CS2__GPIO3_18 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 282 | #define MX51_PAD_NANDF_CS2__GPIO3_18 IOMUX_PAD(0x520, 0x138, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1037 | #define MX51_PAD_NANDF_CS2__NANDF_CS2 (_MX51_PAD_NANDF_CS2__NANDF_CS2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 283 | #define MX51_PAD_NANDF_CS2__NANDF_CS2 IOMUX_PAD(0x520, 0x138, 0, __NA_, 0, NO_PAD_CTRL) |
1038 | #define MX51_PAD_NANDF_CS2__PATA_CS_0 (_MX51_PAD_NANDF_CS2__PATA_CS_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 284 | #define MX51_PAD_NANDF_CS2__PATA_CS_0 IOMUX_PAD(0x520, 0x138, 1, __NA_, 0, NO_PAD_CTRL) |
1039 | #define MX51_PAD_NANDF_CS2__SD4_CLK (_MX51_PAD_NANDF_CS2__SD4_CLK | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL | PAD_CTL_HYS)) | 285 | #define MX51_PAD_NANDF_CS2__SD4_CLK IOMUX_PAD(0x520, 0x138, 5, __NA_, 0, MX51_SDHCI_PAD_CTRL | PAD_CTL_HYS) |
1040 | #define MX51_PAD_NANDF_CS2__USBH3_H1_DP (_MX51_PAD_NANDF_CS2__USBH3_H1_DP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 286 | #define MX51_PAD_NANDF_CS2__USBH3_H1_DP IOMUX_PAD(0x520, 0x138, 7, __NA_, 0, NO_PAD_CTRL) |
1041 | #define MX51_PAD_NANDF_CS3__FEC_MDC (_MX51_PAD_NANDF_CS3__FEC_MDC | MUX_PAD_CTRL(MX51_PAD_CTRL_5)) | 287 | #define MX51_PAD_NANDF_CS3__FEC_MDC IOMUX_PAD(0x524, 0x13c, 2, __NA_, 0, MX51_PAD_CTRL_5) |
1042 | #define MX51_PAD_NANDF_CS3__GPIO3_19 (_MX51_PAD_NANDF_CS3__GPIO3_19 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 288 | #define MX51_PAD_NANDF_CS3__GPIO3_19 IOMUX_PAD(0x524, 0x13c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1043 | #define MX51_PAD_NANDF_CS3__NANDF_CS3 (_MX51_PAD_NANDF_CS3__NANDF_CS3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 289 | #define MX51_PAD_NANDF_CS3__NANDF_CS3 IOMUX_PAD(0x524, 0x13c, 0, __NA_, 0, NO_PAD_CTRL) |
1044 | #define MX51_PAD_NANDF_CS3__PATA_CS_1 (_MX51_PAD_NANDF_CS3__PATA_CS_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 290 | #define MX51_PAD_NANDF_CS3__PATA_CS_1 IOMUX_PAD(0x524, 0x13c, 1, __NA_, 0, NO_PAD_CTRL) |
1045 | #define MX51_PAD_NANDF_CS3__SD4_DAT0 (_MX51_PAD_NANDF_CS3__SD4_DAT0 | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL)) | 291 | #define MX51_PAD_NANDF_CS3__SD4_DAT0 IOMUX_PAD(0x524, 0x13c, 5, __NA_, 0, MX51_SDHCI_PAD_CTRL) |
1046 | #define MX51_PAD_NANDF_CS3__USBH3_H1_DM (_MX51_PAD_NANDF_CS3__USBH3_H1_DM | MUX_PAD_CTRL(NO_PAD_CTRL)) | 292 | #define MX51_PAD_NANDF_CS3__USBH3_H1_DM IOMUX_PAD(0x524, 0x13c, 7, __NA_, 0, NO_PAD_CTRL) |
1047 | #define MX51_PAD_NANDF_CS4__FEC_TDATA1 (_MX51_PAD_NANDF_CS4__FEC_TDATA1 | MUX_PAD_CTRL(MX51_PAD_CTRL_5)) | 293 | #define MX51_PAD_NANDF_CS4__FEC_TDATA1 IOMUX_PAD(0x528, 0x140, 2, __NA_, 0, MX51_PAD_CTRL_5) |
1048 | #define MX51_PAD_NANDF_CS4__GPIO3_20 (_MX51_PAD_NANDF_CS4__GPIO3_20 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 294 | #define MX51_PAD_NANDF_CS4__GPIO3_20 IOMUX_PAD(0x528, 0x140, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1049 | #define MX51_PAD_NANDF_CS4__NANDF_CS4 (_MX51_PAD_NANDF_CS4__NANDF_CS4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 295 | #define MX51_PAD_NANDF_CS4__NANDF_CS4 IOMUX_PAD(0x528, 0x140, 0, __NA_, 0, NO_PAD_CTRL) |
1050 | #define MX51_PAD_NANDF_CS4__PATA_DA_0 (_MX51_PAD_NANDF_CS4__PATA_DA_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 296 | #define MX51_PAD_NANDF_CS4__PATA_DA_0 IOMUX_PAD(0x528, 0x140, 1, __NA_, 0, NO_PAD_CTRL) |
1051 | #define MX51_PAD_NANDF_CS4__SD4_DAT1 (_MX51_PAD_NANDF_CS4__SD4_DAT1 | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL)) | 297 | #define MX51_PAD_NANDF_CS4__SD4_DAT1 IOMUX_PAD(0x528, 0x140, 5, __NA_, 0, MX51_SDHCI_PAD_CTRL) |
1052 | #define MX51_PAD_NANDF_CS4__USBH3_STP (_MX51_PAD_NANDF_CS4__USBH3_STP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 298 | #define MX51_PAD_NANDF_CS4__USBH3_STP IOMUX_PAD(0x528, 0x140, 7, 0xa24, 0, NO_PAD_CTRL) |
1053 | #define MX51_PAD_NANDF_CS5__FEC_TDATA2 (_MX51_PAD_NANDF_CS5__FEC_TDATA2 | MUX_PAD_CTRL(MX51_PAD_CTRL_5)) | 299 | #define MX51_PAD_NANDF_CS5__FEC_TDATA2 IOMUX_PAD(0x52c, 0x144, 2, __NA_, 0, MX51_PAD_CTRL_5) |
1054 | #define MX51_PAD_NANDF_CS5__GPIO3_21 (_MX51_PAD_NANDF_CS5__GPIO3_21 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 300 | #define MX51_PAD_NANDF_CS5__GPIO3_21 IOMUX_PAD(0x52c, 0x144, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1055 | #define MX51_PAD_NANDF_CS5__NANDF_CS5 (_MX51_PAD_NANDF_CS5__NANDF_CS5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 301 | #define MX51_PAD_NANDF_CS5__NANDF_CS5 IOMUX_PAD(0x52c, 0x144, 0, __NA_, 0, NO_PAD_CTRL) |
1056 | #define MX51_PAD_NANDF_CS5__PATA_DA_1 (_MX51_PAD_NANDF_CS5__PATA_DA_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 302 | #define MX51_PAD_NANDF_CS5__PATA_DA_1 IOMUX_PAD(0x52c, 0x144, 1, __NA_, 0, NO_PAD_CTRL) |
1057 | #define MX51_PAD_NANDF_CS5__SD4_DAT2 (_MX51_PAD_NANDF_CS5__SD4_DAT2 | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL)) | 303 | #define MX51_PAD_NANDF_CS5__SD4_DAT2 IOMUX_PAD(0x52c, 0x144, 5, __NA_, 0, MX51_SDHCI_PAD_CTRL) |
1058 | #define MX51_PAD_NANDF_CS5__USBH3_DIR (_MX51_PAD_NANDF_CS5__USBH3_DIR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 304 | #define MX51_PAD_NANDF_CS5__USBH3_DIR IOMUX_PAD(0x52c, 0x144, 7, 0xa1c, 0, NO_PAD_CTRL) |
1059 | #define MX51_PAD_NANDF_CS6__CSPI_SS3 (_MX51_PAD_NANDF_CS6__CSPI_SS3 | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 305 | #define MX51_PAD_NANDF_CS6__CSPI_SS3 IOMUX_PAD(0x530, 0x148, 7, 0x928, 0, MX51_ECSPI_PAD_CTRL) |
1060 | #define MX51_PAD_NANDF_CS6__FEC_TDATA3 (_MX51_PAD_NANDF_CS6__FEC_TDATA3 | MUX_PAD_CTRL(MX51_PAD_CTRL_5)) | 306 | #define MX51_PAD_NANDF_CS6__FEC_TDATA3 IOMUX_PAD(0x530, 0x148, 2, __NA_, 0, MX51_PAD_CTRL_5) |
1061 | #define MX51_PAD_NANDF_CS6__GPIO3_22 (_MX51_PAD_NANDF_CS6__GPIO3_22 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 307 | #define MX51_PAD_NANDF_CS6__GPIO3_22 IOMUX_PAD(0x530, 0x148, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1062 | #define MX51_PAD_NANDF_CS6__NANDF_CS6 (_MX51_PAD_NANDF_CS6__NANDF_CS6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 308 | #define MX51_PAD_NANDF_CS6__NANDF_CS6 IOMUX_PAD(0x530, 0x148, 0, __NA_, 0, NO_PAD_CTRL) |
1063 | #define MX51_PAD_NANDF_CS6__PATA_DA_2 (_MX51_PAD_NANDF_CS6__PATA_DA_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 309 | #define MX51_PAD_NANDF_CS6__PATA_DA_2 IOMUX_PAD(0x530, 0x148, 1, __NA_, 0, NO_PAD_CTRL) |
1064 | #define MX51_PAD_NANDF_CS6__SD4_DAT3 (_MX51_PAD_NANDF_CS6__SD4_DAT3 | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL)) | 310 | #define MX51_PAD_NANDF_CS6__SD4_DAT3 IOMUX_PAD(0x530, 0x148, 5, __NA_, 0, MX51_SDHCI_PAD_CTRL) |
1065 | #define MX51_PAD_NANDF_CS7__FEC_TX_EN (_MX51_PAD_NANDF_CS7__FEC_TX_EN | MUX_PAD_CTRL(MX51_PAD_CTRL_5)) | 311 | #define MX51_PAD_NANDF_CS7__FEC_TX_EN IOMUX_PAD(0x534, 0x14c, 1, __NA_, 0, MX51_PAD_CTRL_5) |
1066 | #define MX51_PAD_NANDF_CS7__GPIO3_23 (_MX51_PAD_NANDF_CS7__GPIO3_23 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 312 | #define MX51_PAD_NANDF_CS7__GPIO3_23 IOMUX_PAD(0x534, 0x14c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1067 | #define MX51_PAD_NANDF_CS7__NANDF_CS7 (_MX51_PAD_NANDF_CS7__NANDF_CS7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 313 | #define MX51_PAD_NANDF_CS7__NANDF_CS7 IOMUX_PAD(0x534, 0x14c, 0, __NA_, 0, NO_PAD_CTRL) |
1068 | #define MX51_PAD_NANDF_CS7__SD3_CLK (_MX51_PAD_NANDF_CS7__SD3_CLK | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL | PAD_CTL_HYS)) | 314 | #define MX51_PAD_NANDF_CS7__SD3_CLK IOMUX_PAD(0x534, 0x14c, 5, __NA_, 0, MX51_SDHCI_PAD_CTRL | PAD_CTL_HYS) |
1069 | #define MX51_PAD_NANDF_RDY_INT__ECSPI2_SS0 (_MX51_PAD_NANDF_RDY_INT__ECSPI2_SS0 | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 315 | #define MX51_PAD_NANDF_RDY_INT__ECSPI2_SS0 IOMUX_PAD(0x538, 0x150, 2, __NA_, 0, MX51_ECSPI_PAD_CTRL) |
1070 | #define MX51_PAD_NANDF_RDY_INT__FEC_TX_CLK (_MX51_PAD_NANDF_RDY_INT__FEC_TX_CLK | MUX_PAD_CTRL(MX51_PAD_CTRL_4)) | 316 | #define MX51_PAD_NANDF_RDY_INT__FEC_TX_CLK IOMUX_PAD(0x538, 0x150, 1, 0x974, 0, MX51_PAD_CTRL_4) |
1071 | #define MX51_PAD_NANDF_RDY_INT__GPIO3_24 (_MX51_PAD_NANDF_RDY_INT__GPIO3_24 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 317 | #define MX51_PAD_NANDF_RDY_INT__GPIO3_24 IOMUX_PAD(0x538, 0x150, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1072 | #define MX51_PAD_NANDF_RDY_INT__NANDF_RDY_INT (_MX51_PAD_NANDF_RDY_INT__NANDF_RDY_INT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 318 | #define MX51_PAD_NANDF_RDY_INT__NANDF_RDY_INT IOMUX_PAD(0x538, 0x150, 0, 0x938, 0, NO_PAD_CTRL) |
1073 | #define MX51_PAD_NANDF_RDY_INT__SD3_CMD (_MX51_PAD_NANDF_RDY_INT__SD3_CMD | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL)) | 319 | #define MX51_PAD_NANDF_RDY_INT__SD3_CMD IOMUX_PAD(0x538, 0x150, 5, __NA_, 0, MX51_SDHCI_PAD_CTRL) |
1074 | #define MX51_PAD_NANDF_D15__ECSPI2_MOSI (_MX51_PAD_NANDF_D15__ECSPI2_MOSI | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 320 | #define MX51_PAD_NANDF_D15__ECSPI2_MOSI IOMUX_PAD(0x53c, 0x154, 2, __NA_, 0, MX51_ECSPI_PAD_CTRL) |
1075 | #define MX51_PAD_NANDF_D15__GPIO3_25 (_MX51_PAD_NANDF_D15__GPIO3_25 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 321 | #define MX51_PAD_NANDF_D15__GPIO3_25 IOMUX_PAD(0x53c, 0x154, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1076 | #define MX51_PAD_NANDF_D15__NANDF_D15 (_MX51_PAD_NANDF_D15__NANDF_D15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 322 | #define MX51_PAD_NANDF_D15__NANDF_D15 IOMUX_PAD(0x53c, 0x154, 0, __NA_, 0, NO_PAD_CTRL) |
1077 | #define MX51_PAD_NANDF_D15__PATA_DATA15 (_MX51_PAD_NANDF_D15__PATA_DATA15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 323 | #define MX51_PAD_NANDF_D15__PATA_DATA15 IOMUX_PAD(0x53c, 0x154, 1, __NA_, 0, NO_PAD_CTRL) |
1078 | #define MX51_PAD_NANDF_D15__SD3_DAT7 (_MX51_PAD_NANDF_D15__SD3_DAT7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 324 | #define MX51_PAD_NANDF_D15__SD3_DAT7 IOMUX_PAD(0x53c, 0x154, 5, __NA_, 0, NO_PAD_CTRL) |
1079 | #define MX51_PAD_NANDF_D14__ECSPI2_SS3 (_MX51_PAD_NANDF_D14__ECSPI2_SS3 | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 325 | #define MX51_PAD_NANDF_D14__ECSPI2_SS3 IOMUX_PAD(0x540, 0x158, 2, 0x934, 0, MX51_ECSPI_PAD_CTRL) |
1080 | #define MX51_PAD_NANDF_D14__GPIO3_26 (_MX51_PAD_NANDF_D14__GPIO3_26 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 326 | #define MX51_PAD_NANDF_D14__GPIO3_26 IOMUX_PAD(0x540, 0x158, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1081 | #define MX51_PAD_NANDF_D14__NANDF_D14 (_MX51_PAD_NANDF_D14__NANDF_D14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 327 | #define MX51_PAD_NANDF_D14__NANDF_D14 IOMUX_PAD(0x540, 0x158, 0, __NA_, 0, NO_PAD_CTRL) |
1082 | #define MX51_PAD_NANDF_D14__PATA_DATA14 (_MX51_PAD_NANDF_D14__PATA_DATA14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 328 | #define MX51_PAD_NANDF_D14__PATA_DATA14 IOMUX_PAD(0x540, 0x158, 1, __NA_, 0, NO_PAD_CTRL) |
1083 | #define MX51_PAD_NANDF_D14__SD3_DAT6 (_MX51_PAD_NANDF_D14__SD3_DAT6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 329 | #define MX51_PAD_NANDF_D14__SD3_DAT6 IOMUX_PAD(0x540, 0x158, 5, __NA_, 0, NO_PAD_CTRL) |
1084 | #define MX51_PAD_NANDF_D13__ECSPI2_SS2 (_MX51_PAD_NANDF_D13__ECSPI2_SS2 | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 330 | #define MX51_PAD_NANDF_D13__ECSPI2_SS2 IOMUX_PAD(0x544, 0x15c, 2, __NA_, 0, MX51_ECSPI_PAD_CTRL) |
1085 | #define MX51_PAD_NANDF_D13__GPIO3_27 (_MX51_PAD_NANDF_D13__GPIO3_27 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 331 | #define MX51_PAD_NANDF_D13__GPIO3_27 IOMUX_PAD(0x544, 0x15c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1086 | #define MX51_PAD_NANDF_D13__NANDF_D13 (_MX51_PAD_NANDF_D13__NANDF_D13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 332 | #define MX51_PAD_NANDF_D13__NANDF_D13 IOMUX_PAD(0x544, 0x15c, 0, __NA_, 0, NO_PAD_CTRL) |
1087 | #define MX51_PAD_NANDF_D13__PATA_DATA13 (_MX51_PAD_NANDF_D13__PATA_DATA13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 333 | #define MX51_PAD_NANDF_D13__PATA_DATA13 IOMUX_PAD(0x544, 0x15c, 1, __NA_, 0, NO_PAD_CTRL) |
1088 | #define MX51_PAD_NANDF_D13__SD3_DAT5 (_MX51_PAD_NANDF_D13__SD3_DAT5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 334 | #define MX51_PAD_NANDF_D13__SD3_DAT5 IOMUX_PAD(0x544, 0x15c, 5, __NA_, 0, NO_PAD_CTRL) |
1089 | #define MX51_PAD_NANDF_D12__ECSPI2_SS1 (_MX51_PAD_NANDF_D12__ECSPI2_SS1 | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 335 | #define MX51_PAD_NANDF_D12__ECSPI2_SS1 IOMUX_PAD(0x548, 0x160, 2, 0x930, 1, MX51_ECSPI_PAD_CTRL) |
1090 | #define MX51_PAD_NANDF_D12__GPIO3_28 (_MX51_PAD_NANDF_D12__GPIO3_28 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 336 | #define MX51_PAD_NANDF_D12__GPIO3_28 IOMUX_PAD(0x548, 0x160, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1091 | #define MX51_PAD_NANDF_D12__NANDF_D12 (_MX51_PAD_NANDF_D12__NANDF_D12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 337 | #define MX51_PAD_NANDF_D12__NANDF_D12 IOMUX_PAD(0x548, 0x160, 0, __NA_, 0, NO_PAD_CTRL) |
1092 | #define MX51_PAD_NANDF_D12__PATA_DATA12 (_MX51_PAD_NANDF_D12__PATA_DATA12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 338 | #define MX51_PAD_NANDF_D12__PATA_DATA12 IOMUX_PAD(0x548, 0x160, 1, __NA_, 0, NO_PAD_CTRL) |
1093 | #define MX51_PAD_NANDF_D12__SD3_DAT4 (_MX51_PAD_NANDF_D12__SD3_DAT4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 339 | #define MX51_PAD_NANDF_D12__SD3_DAT4 IOMUX_PAD(0x548, 0x160, 5, __NA_, 0, NO_PAD_CTRL) |
1094 | #define MX51_PAD_NANDF_D11__FEC_RX_DV (_MX51_PAD_NANDF_D11__FEC_RX_DV | MUX_PAD_CTRL(NO_PAD_CTRL)) | 340 | #define MX51_PAD_NANDF_D11__FEC_RX_DV IOMUX_PAD(0x54c, 0x164, 2, 0x96c, 0, NO_PAD_CTRL) |
1095 | #define MX51_PAD_NANDF_D11__GPIO3_29 (_MX51_PAD_NANDF_D11__GPIO3_29 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 341 | #define MX51_PAD_NANDF_D11__GPIO3_29 IOMUX_PAD(0x54c, 0x164, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1096 | #define MX51_PAD_NANDF_D11__NANDF_D11 (_MX51_PAD_NANDF_D11__NANDF_D11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 342 | #define MX51_PAD_NANDF_D11__NANDF_D11 IOMUX_PAD(0x54c, 0x164, 0, __NA_, 0, NO_PAD_CTRL) |
1097 | #define MX51_PAD_NANDF_D11__PATA_DATA11 (_MX51_PAD_NANDF_D11__PATA_DATA11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 343 | #define MX51_PAD_NANDF_D11__PATA_DATA11 IOMUX_PAD(0x54c, 0x164, 1, __NA_, 0, NO_PAD_CTRL) |
1098 | #define MX51_PAD_NANDF_D11__SD3_DATA3 (_MX51_PAD_NANDF_D11__SD3_DATA3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 344 | #define MX51_PAD_NANDF_D11__SD3_DATA3 IOMUX_PAD(0x54c, 0x164, 5, 0x948, 1, NO_PAD_CTRL) |
1099 | #define MX51_PAD_NANDF_D10__GPIO3_30 (_MX51_PAD_NANDF_D10__GPIO3_30 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 345 | #define MX51_PAD_NANDF_D10__GPIO3_30 IOMUX_PAD(0x550, 0x168, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1100 | #define MX51_PAD_NANDF_D10__NANDF_D10 (_MX51_PAD_NANDF_D10__NANDF_D10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 346 | #define MX51_PAD_NANDF_D10__NANDF_D10 IOMUX_PAD(0x550, 0x168, 0, __NA_, 0, NO_PAD_CTRL) |
1101 | #define MX51_PAD_NANDF_D10__PATA_DATA10 (_MX51_PAD_NANDF_D10__PATA_DATA10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 347 | #define MX51_PAD_NANDF_D10__PATA_DATA10 IOMUX_PAD(0x550, 0x168, 1, __NA_, 0, NO_PAD_CTRL) |
1102 | #define MX51_PAD_NANDF_D10__SD3_DATA2 (_MX51_PAD_NANDF_D10__SD3_DATA2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 348 | #define MX51_PAD_NANDF_D10__SD3_DATA2 IOMUX_PAD(0x550, 0x168, 5, 0x944, 1, NO_PAD_CTRL) |
1103 | #define MX51_PAD_NANDF_D9__FEC_RDATA0 (_MX51_PAD_NANDF_D9__FEC_RDATA0 | MUX_PAD_CTRL(MX51_PAD_CTRL_4)) | 349 | #define MX51_PAD_NANDF_D9__FEC_RDATA0 IOMUX_PAD(0x554, 0x16c, 0x12, 0x958, 0, MX51_PAD_CTRL_4) |
1104 | #define MX51_PAD_NANDF_D9__GPIO3_31 (_MX51_PAD_NANDF_D9__GPIO3_31 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 350 | #define MX51_PAD_NANDF_D9__GPIO3_31 IOMUX_PAD(0x554, 0x16c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1105 | #define MX51_PAD_NANDF_D9__NANDF_D9 (_MX51_PAD_NANDF_D9__NANDF_D9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 351 | #define MX51_PAD_NANDF_D9__NANDF_D9 IOMUX_PAD(0x554, 0x16c, 0, __NA_, 0, NO_PAD_CTRL) |
1106 | #define MX51_PAD_NANDF_D9__PATA_DATA9 (_MX51_PAD_NANDF_D9__PATA_DATA9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 352 | #define MX51_PAD_NANDF_D9__PATA_DATA9 IOMUX_PAD(0x554, 0x16c, 1, __NA_, 0, NO_PAD_CTRL) |
1107 | #define MX51_PAD_NANDF_D9__SD3_DATA1 (_MX51_PAD_NANDF_D9__SD3_DATA1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 353 | #define MX51_PAD_NANDF_D9__SD3_DATA1 IOMUX_PAD(0x554, 0x16c, 5, 0x940, 1, NO_PAD_CTRL) |
1108 | #define MX51_PAD_NANDF_D8__FEC_TDATA0 (_MX51_PAD_NANDF_D8__FEC_TDATA0 | MUX_PAD_CTRL(MX51_PAD_CTRL_5)) | 354 | #define MX51_PAD_NANDF_D8__FEC_TDATA0 IOMUX_PAD(0x558, 0x170, 2, __NA_, 0, MX51_PAD_CTRL_5) |
1109 | #define MX51_PAD_NANDF_D8__GPIO4_0 (_MX51_PAD_NANDF_D8__GPIO4_0 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 355 | #define MX51_PAD_NANDF_D8__GPIO4_0 IOMUX_PAD(0x558, 0x170, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1110 | #define MX51_PAD_NANDF_D8__NANDF_D8 (_MX51_PAD_NANDF_D8__NANDF_D8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 356 | #define MX51_PAD_NANDF_D8__NANDF_D8 IOMUX_PAD(0x558, 0x170, 0, __NA_, 0, NO_PAD_CTRL) |
1111 | #define MX51_PAD_NANDF_D8__PATA_DATA8 (_MX51_PAD_NANDF_D8__PATA_DATA8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 357 | #define MX51_PAD_NANDF_D8__PATA_DATA8 IOMUX_PAD(0x558, 0x170, 1, __NA_, 0, NO_PAD_CTRL) |
1112 | #define MX51_PAD_NANDF_D8__SD3_DATA0 (_MX51_PAD_NANDF_D8__SD3_DATA0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 358 | #define MX51_PAD_NANDF_D8__SD3_DATA0 IOMUX_PAD(0x558, 0x170, 5, 0x93c, 1, NO_PAD_CTRL) |
1113 | #define MX51_PAD_NANDF_D7__GPIO4_1 (_MX51_PAD_NANDF_D7__GPIO4_1 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 359 | #define MX51_PAD_NANDF_D7__GPIO4_1 IOMUX_PAD(0x55c, 0x174, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1114 | #define MX51_PAD_NANDF_D7__NANDF_D7 (_MX51_PAD_NANDF_D7__NANDF_D7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 360 | #define MX51_PAD_NANDF_D7__NANDF_D7 IOMUX_PAD(0x55c, 0x174, 0, __NA_, 0, NO_PAD_CTRL) |
1115 | #define MX51_PAD_NANDF_D7__PATA_DATA7 (_MX51_PAD_NANDF_D7__PATA_DATA7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 361 | #define MX51_PAD_NANDF_D7__PATA_DATA7 IOMUX_PAD(0x55c, 0x174, 1, __NA_, 0, NO_PAD_CTRL) |
1116 | #define MX51_PAD_NANDF_D7__USBH3_DATA0 (_MX51_PAD_NANDF_D7__USBH3_DATA0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 362 | #define MX51_PAD_NANDF_D7__USBH3_DATA0 IOMUX_PAD(0x55c, 0x174, 5, 0x9fc, 0, NO_PAD_CTRL) |
1117 | #define MX51_PAD_NANDF_D6__GPIO4_2 (_MX51_PAD_NANDF_D6__GPIO4_2 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 363 | #define MX51_PAD_NANDF_D6__GPIO4_2 IOMUX_PAD(0x560, 0x178, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1118 | #define MX51_PAD_NANDF_D6__NANDF_D6 (_MX51_PAD_NANDF_D6__NANDF_D6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 364 | #define MX51_PAD_NANDF_D6__NANDF_D6 IOMUX_PAD(0x560, 0x178, 0, __NA_, 0, NO_PAD_CTRL) |
1119 | #define MX51_PAD_NANDF_D6__PATA_DATA6 (_MX51_PAD_NANDF_D6__PATA_DATA6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 365 | #define MX51_PAD_NANDF_D6__PATA_DATA6 IOMUX_PAD(0x560, 0x178, 1, __NA_, 0, NO_PAD_CTRL) |
1120 | #define MX51_PAD_NANDF_D6__SD4_LCTL (_MX51_PAD_NANDF_D6__SD4_LCTL | MUX_PAD_CTRL(NO_PAD_CTRL)) | 366 | #define MX51_PAD_NANDF_D6__SD4_LCTL IOMUX_PAD(0x560, 0x178, 2, __NA_, 0, NO_PAD_CTRL) |
1121 | #define MX51_PAD_NANDF_D6__USBH3_DATA1 (_MX51_PAD_NANDF_D6__USBH3_DATA1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 367 | #define MX51_PAD_NANDF_D6__USBH3_DATA1 IOMUX_PAD(0x560, 0x178, 5, 0xa00, 0, NO_PAD_CTRL) |
1122 | #define MX51_PAD_NANDF_D5__GPIO4_3 (_MX51_PAD_NANDF_D5__GPIO4_3 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 368 | #define MX51_PAD_NANDF_D5__GPIO4_3 IOMUX_PAD(0x564, 0x17c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1123 | #define MX51_PAD_NANDF_D5__NANDF_D5 (_MX51_PAD_NANDF_D5__NANDF_D5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 369 | #define MX51_PAD_NANDF_D5__NANDF_D5 IOMUX_PAD(0x564, 0x17c, 0, __NA_, 0, NO_PAD_CTRL) |
1124 | #define MX51_PAD_NANDF_D5__PATA_DATA5 (_MX51_PAD_NANDF_D5__PATA_DATA5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 370 | #define MX51_PAD_NANDF_D5__PATA_DATA5 IOMUX_PAD(0x564, 0x17c, 1, __NA_, 0, NO_PAD_CTRL) |
1125 | #define MX51_PAD_NANDF_D5__SD4_WP (_MX51_PAD_NANDF_D5__SD4_WP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 371 | #define MX51_PAD_NANDF_D5__SD4_WP IOMUX_PAD(0x564, 0x17c, 2, __NA_, 0, NO_PAD_CTRL) |
1126 | #define MX51_PAD_NANDF_D5__USBH3_DATA2 (_MX51_PAD_NANDF_D5__USBH3_DATA2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 372 | #define MX51_PAD_NANDF_D5__USBH3_DATA2 IOMUX_PAD(0x564, 0x17c, 5, 0xa04, 0, NO_PAD_CTRL) |
1127 | #define MX51_PAD_NANDF_D4__GPIO4_4 (_MX51_PAD_NANDF_D4__GPIO4_4 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 373 | #define MX51_PAD_NANDF_D4__GPIO4_4 IOMUX_PAD(0x568, 0x180, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1128 | #define MX51_PAD_NANDF_D4__NANDF_D4 (_MX51_PAD_NANDF_D4__NANDF_D4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 374 | #define MX51_PAD_NANDF_D4__NANDF_D4 IOMUX_PAD(0x568, 0x180, 0, __NA_, 0, NO_PAD_CTRL) |
1129 | #define MX51_PAD_NANDF_D4__PATA_DATA4 (_MX51_PAD_NANDF_D4__PATA_DATA4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 375 | #define MX51_PAD_NANDF_D4__PATA_DATA4 IOMUX_PAD(0x568, 0x180, 1, __NA_, 0, NO_PAD_CTRL) |
1130 | #define MX51_PAD_NANDF_D4__SD4_CD (_MX51_PAD_NANDF_D4__SD4_CD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 376 | #define MX51_PAD_NANDF_D4__SD4_CD IOMUX_PAD(0x568, 0x180, 2, __NA_, 0, NO_PAD_CTRL) |
1131 | #define MX51_PAD_NANDF_D4__USBH3_DATA3 (_MX51_PAD_NANDF_D4__USBH3_DATA3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 377 | #define MX51_PAD_NANDF_D4__USBH3_DATA3 IOMUX_PAD(0x568, 0x180, 5, 0xa08, 0, NO_PAD_CTRL) |
1132 | #define MX51_PAD_NANDF_D3__GPIO4_5 (_MX51_PAD_NANDF_D3__GPIO4_5 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 378 | #define MX51_PAD_NANDF_D3__GPIO4_5 IOMUX_PAD(0x56c, 0x184, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1133 | #define MX51_PAD_NANDF_D3__NANDF_D3 (_MX51_PAD_NANDF_D3__NANDF_D3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 379 | #define MX51_PAD_NANDF_D3__NANDF_D3 IOMUX_PAD(0x56c, 0x184, 0, __NA_, 0, NO_PAD_CTRL) |
1134 | #define MX51_PAD_NANDF_D3__PATA_DATA3 (_MX51_PAD_NANDF_D3__PATA_DATA3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 380 | #define MX51_PAD_NANDF_D3__PATA_DATA3 IOMUX_PAD(0x56c, 0x184, 1, __NA_, 0, NO_PAD_CTRL) |
1135 | #define MX51_PAD_NANDF_D3__SD4_DAT4 (_MX51_PAD_NANDF_D3__SD4_DAT4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 381 | #define MX51_PAD_NANDF_D3__SD4_DAT4 IOMUX_PAD(0x56c, 0x184, 2, __NA_, 0, NO_PAD_CTRL) |
1136 | #define MX51_PAD_NANDF_D3__USBH3_DATA4 (_MX51_PAD_NANDF_D3__USBH3_DATA4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 382 | #define MX51_PAD_NANDF_D3__USBH3_DATA4 IOMUX_PAD(0x56c, 0x184, 5, 0xa0c, 0, NO_PAD_CTRL) |
1137 | #define MX51_PAD_NANDF_D2__GPIO4_6 (_MX51_PAD_NANDF_D2__GPIO4_6 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 383 | #define MX51_PAD_NANDF_D2__GPIO4_6 IOMUX_PAD(0x570, 0x188, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1138 | #define MX51_PAD_NANDF_D2__NANDF_D2 (_MX51_PAD_NANDF_D2__NANDF_D2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 384 | #define MX51_PAD_NANDF_D2__NANDF_D2 IOMUX_PAD(0x570, 0x188, 0, __NA_, 0, NO_PAD_CTRL) |
1139 | #define MX51_PAD_NANDF_D2__PATA_DATA2 (_MX51_PAD_NANDF_D2__PATA_DATA2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 385 | #define MX51_PAD_NANDF_D2__PATA_DATA2 IOMUX_PAD(0x570, 0x188, 1, __NA_, 0, NO_PAD_CTRL) |
1140 | #define MX51_PAD_NANDF_D2__SD4_DAT5 (_MX51_PAD_NANDF_D2__SD4_DAT5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 386 | #define MX51_PAD_NANDF_D2__SD4_DAT5 IOMUX_PAD(0x570, 0x188, 2, __NA_, 0, NO_PAD_CTRL) |
1141 | #define MX51_PAD_NANDF_D2__USBH3_DATA5 (_MX51_PAD_NANDF_D2__USBH3_DATA5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 387 | #define MX51_PAD_NANDF_D2__USBH3_DATA5 IOMUX_PAD(0x570, 0x188, 5, 0xa10, 0, NO_PAD_CTRL) |
1142 | #define MX51_PAD_NANDF_D1__GPIO4_7 (_MX51_PAD_NANDF_D1__GPIO4_7 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 388 | #define MX51_PAD_NANDF_D1__GPIO4_7 IOMUX_PAD(0x574, 0x18c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1143 | #define MX51_PAD_NANDF_D1__NANDF_D1 (_MX51_PAD_NANDF_D1__NANDF_D1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 389 | #define MX51_PAD_NANDF_D1__NANDF_D1 IOMUX_PAD(0x574, 0x18c, 0, __NA_, 0, NO_PAD_CTRL) |
1144 | #define MX51_PAD_NANDF_D1__PATA_DATA1 (_MX51_PAD_NANDF_D1__PATA_DATA1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 390 | #define MX51_PAD_NANDF_D1__PATA_DATA1 IOMUX_PAD(0x574, 0x18c, 1, __NA_, 0, NO_PAD_CTRL) |
1145 | #define MX51_PAD_NANDF_D1__SD4_DAT6 (_MX51_PAD_NANDF_D1__SD4_DAT6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 391 | #define MX51_PAD_NANDF_D1__SD4_DAT6 IOMUX_PAD(0x574, 0x18c, 2, __NA_, 0, NO_PAD_CTRL) |
1146 | #define MX51_PAD_NANDF_D1__USBH3_DATA6 (_MX51_PAD_NANDF_D1__USBH3_DATA6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 392 | #define MX51_PAD_NANDF_D1__USBH3_DATA6 IOMUX_PAD(0x574, 0x18c, 5, 0xa14, 0, NO_PAD_CTRL) |
1147 | #define MX51_PAD_NANDF_D0__GPIO4_8 (_MX51_PAD_NANDF_D0__GPIO4_8 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 393 | #define MX51_PAD_NANDF_D0__GPIO4_8 IOMUX_PAD(0x578, 0x190, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1148 | #define MX51_PAD_NANDF_D0__NANDF_D0 (_MX51_PAD_NANDF_D0__NANDF_D0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 394 | #define MX51_PAD_NANDF_D0__NANDF_D0 IOMUX_PAD(0x578, 0x190, 0, __NA_, 0, NO_PAD_CTRL) |
1149 | #define MX51_PAD_NANDF_D0__PATA_DATA0 (_MX51_PAD_NANDF_D0__PATA_DATA0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 395 | #define MX51_PAD_NANDF_D0__PATA_DATA0 IOMUX_PAD(0x578, 0x190, 1, __NA_, 0, NO_PAD_CTRL) |
1150 | #define MX51_PAD_NANDF_D0__SD4_DAT7 (_MX51_PAD_NANDF_D0__SD4_DAT7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 396 | #define MX51_PAD_NANDF_D0__SD4_DAT7 IOMUX_PAD(0x578, 0x190, 2, __NA_, 0, NO_PAD_CTRL) |
1151 | #define MX51_PAD_NANDF_D0__USBH3_DATA7 (_MX51_PAD_NANDF_D0__USBH3_DATA7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 397 | #define MX51_PAD_NANDF_D0__USBH3_DATA7 IOMUX_PAD(0x578, 0x190, 5, 0xa18, 0, NO_PAD_CTRL) |
1152 | #define MX51_PAD_CSI1_D8__CSI1_D8 (_MX51_PAD_CSI1_D8__CSI1_D8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 398 | #define MX51_PAD_CSI1_D8__CSI1_D8 IOMUX_PAD(0x57c, 0x194, 0, __NA_, 0, NO_PAD_CTRL) |
1153 | #define MX51_PAD_CSI1_D8__GPIO3_12 (_MX51_PAD_CSI1_D8__GPIO3_12 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 399 | #define MX51_PAD_CSI1_D8__GPIO3_12 IOMUX_PAD(0x57c, 0x194, 3, 0x998, 1, MX51_GPIO_PAD_CTRL) |
1154 | #define MX51_PAD_CSI1_D9__CSI1_D9 (_MX51_PAD_CSI1_D9__CSI1_D9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 400 | #define MX51_PAD_CSI1_D9__CSI1_D9 IOMUX_PAD(0x580, 0x198, 0, __NA_, 0, NO_PAD_CTRL) |
1155 | #define MX51_PAD_CSI1_D9__GPIO3_13 (_MX51_PAD_CSI1_D9__GPIO3_13 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 401 | #define MX51_PAD_CSI1_D9__GPIO3_13 IOMUX_PAD(0x580, 0x198, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1156 | #define MX51_PAD_CSI1_D10__CSI1_D10 (_MX51_PAD_CSI1_D10__CSI1_D10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 402 | #define MX51_PAD_CSI1_D10__CSI1_D10 IOMUX_PAD(0x584, 0x19c, 0, __NA_, 0, NO_PAD_CTRL) |
1157 | #define MX51_PAD_CSI1_D11__CSI1_D11 (_MX51_PAD_CSI1_D11__CSI1_D11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 403 | #define MX51_PAD_CSI1_D11__CSI1_D11 IOMUX_PAD(0x588, 0x1a0, 0, __NA_, 0, NO_PAD_CTRL) |
1158 | #define MX51_PAD_CSI1_D12__CSI1_D12 (_MX51_PAD_CSI1_D12__CSI1_D12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 404 | #define MX51_PAD_CSI1_D12__CSI1_D12 IOMUX_PAD(0x58c, 0x1a4, 0, __NA_, 0, NO_PAD_CTRL) |
1159 | #define MX51_PAD_CSI1_D13__CSI1_D13 (_MX51_PAD_CSI1_D13__CSI1_D13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 405 | #define MX51_PAD_CSI1_D13__CSI1_D13 IOMUX_PAD(0x590, 0x1a8, 0, __NA_, 0, NO_PAD_CTRL) |
1160 | #define MX51_PAD_CSI1_D14__CSI1_D14 (_MX51_PAD_CSI1_D14__CSI1_D14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 406 | #define MX51_PAD_CSI1_D14__CSI1_D14 IOMUX_PAD(0x594, 0x1ac, 0, __NA_, 0, NO_PAD_CTRL) |
1161 | #define MX51_PAD_CSI1_D15__CSI1_D15 (_MX51_PAD_CSI1_D15__CSI1_D15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 407 | #define MX51_PAD_CSI1_D15__CSI1_D15 IOMUX_PAD(0x598, 0x1b0, 0, __NA_, 0, NO_PAD_CTRL) |
1162 | #define MX51_PAD_CSI1_D16__CSI1_D16 (_MX51_PAD_CSI1_D16__CSI1_D16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 408 | #define MX51_PAD_CSI1_D16__CSI1_D16 IOMUX_PAD(0x59c, 0x1b4, 0, __NA_, 0, NO_PAD_CTRL) |
1163 | #define MX51_PAD_CSI1_D17__CSI1_D17 (_MX51_PAD_CSI1_D17__CSI1_D17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 409 | #define MX51_PAD_CSI1_D17__CSI1_D17 IOMUX_PAD(0x5a0, 0x1b8, 0, __NA_, 0, NO_PAD_CTRL) |
1164 | #define MX51_PAD_CSI1_D18__CSI1_D18 (_MX51_PAD_CSI1_D18__CSI1_D18 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 410 | #define MX51_PAD_CSI1_D18__CSI1_D18 IOMUX_PAD(0x5a4, 0x1bc, 0, __NA_, 0, NO_PAD_CTRL) |
1165 | #define MX51_PAD_CSI1_D19__CSI1_D19 (_MX51_PAD_CSI1_D19__CSI1_D19 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 411 | #define MX51_PAD_CSI1_D19__CSI1_D19 IOMUX_PAD(0x5a8, 0x1c0, 0, __NA_, 0, NO_PAD_CTRL) |
1166 | #define MX51_PAD_CSI1_VSYNC__CSI1_VSYNC (_MX51_PAD_CSI1_VSYNC__CSI1_VSYNC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 412 | #define MX51_PAD_CSI1_VSYNC__CSI1_VSYNC IOMUX_PAD(0x5ac, 0x1c4, 0, __NA_, 0, NO_PAD_CTRL) |
1167 | #define MX51_PAD_CSI1_VSYNC__GPIO3_14 (_MX51_PAD_CSI1_VSYNC__GPIO3_14 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 413 | #define MX51_PAD_CSI1_VSYNC__GPIO3_14 IOMUX_PAD(0x5ac, 0x1c4, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1168 | #define MX51_PAD_CSI1_HSYNC__CSI1_HSYNC (_MX51_PAD_CSI1_HSYNC__CSI1_HSYNC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 414 | #define MX51_PAD_CSI1_HSYNC__CSI1_HSYNC IOMUX_PAD(0x5b0, 0x1c8, 0, __NA_, 0, NO_PAD_CTRL) |
1169 | #define MX51_PAD_CSI1_HSYNC__GPIO3_15 (_MX51_PAD_CSI1_HSYNC__GPIO3_15 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 415 | #define MX51_PAD_CSI1_HSYNC__GPIO3_15 IOMUX_PAD(0x5b0, 0x1c8, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1170 | #define MX51_PAD_CSI1_PIXCLK__CSI1_PIXCLK (_MX51_PAD_CSI1_PIXCLK__CSI1_PIXCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 416 | #define MX51_PAD_CSI1_PIXCLK__CSI1_PIXCLK IOMUX_PAD(0x5b4, __NA_, 0, 0x000, 0, NO_PAD_CTRL) |
1171 | #define MX51_PAD_CSI1_MCLK__CSI1_MCLK (_MX51_PAD_CSI1_MCLK__CSI1_MCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 417 | #define MX51_PAD_CSI1_MCLK__CSI1_MCLK IOMUX_PAD(0x5b8, __NA_, 0, 0x000, 0, NO_PAD_CTRL) |
1172 | #define MX51_PAD_CSI2_D12__CSI2_D12 (_MX51_PAD_CSI2_D12__CSI2_D12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 418 | #define MX51_PAD_CSI2_D12__CSI2_D12 IOMUX_PAD(0x5bc, 0x1cc, 0, __NA_, 0, NO_PAD_CTRL) |
1173 | #define MX51_PAD_CSI2_D12__GPIO4_9 (_MX51_PAD_CSI2_D12__GPIO4_9 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 419 | #define MX51_PAD_CSI2_D12__GPIO4_9 IOMUX_PAD(0x5bc, 0x1cc, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1174 | #define MX51_PAD_CSI2_D13__CSI2_D13 (_MX51_PAD_CSI2_D13__CSI2_D13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 420 | #define MX51_PAD_CSI2_D13__CSI2_D13 IOMUX_PAD(0x5c0, 0x1d0, 0, __NA_, 0, NO_PAD_CTRL) |
1175 | #define MX51_PAD_CSI2_D13__GPIO4_10 (_MX51_PAD_CSI2_D13__GPIO4_10 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 421 | #define MX51_PAD_CSI2_D13__GPIO4_10 IOMUX_PAD(0x5c0, 0x1d0, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1176 | #define MX51_PAD_CSI2_D14__CSI2_D14 (_MX51_PAD_CSI2_D14__CSI2_D14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 422 | #define MX51_PAD_CSI2_D14__CSI2_D14 IOMUX_PAD(0x5c4, 0x1d4, 0, __NA_, 0, NO_PAD_CTRL) |
1177 | #define MX51_PAD_CSI2_D15__CSI2_D15 (_MX51_PAD_CSI2_D15__CSI2_D15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 423 | #define MX51_PAD_CSI2_D15__CSI2_D15 IOMUX_PAD(0x5c8, 0x1d8, 0, __NA_, 0, NO_PAD_CTRL) |
1178 | #define MX51_PAD_CSI2_D16__CSI2_D16 (_MX51_PAD_CSI2_D16__CSI2_D16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 424 | #define MX51_PAD_CSI2_D16__CSI2_D16 IOMUX_PAD(0x5cc, 0x1dc, 0, __NA_, 0, NO_PAD_CTRL) |
1179 | #define MX51_PAD_CSI2_D17__CSI2_D17 (_MX51_PAD_CSI2_D17__CSI2_D17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 425 | #define MX51_PAD_CSI2_D17__CSI2_D17 IOMUX_PAD(0x5d0, 0x1e0, 0, __NA_, 0, NO_PAD_CTRL) |
1180 | #define MX51_PAD_CSI2_D18__CSI2_D18 (_MX51_PAD_CSI2_D18__CSI2_D18 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 426 | #define MX51_PAD_CSI2_D18__CSI2_D18 IOMUX_PAD(0x5d4, 0x1e4, 0, __NA_, 0, NO_PAD_CTRL) |
1181 | #define MX51_PAD_CSI2_D18__GPIO4_11 (_MX51_PAD_CSI2_D18__GPIO4_11 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 427 | #define MX51_PAD_CSI2_D18__GPIO4_11 IOMUX_PAD(0x5d4, 0x1e4, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1182 | #define MX51_PAD_CSI2_D19__CSI2_D19 (_MX51_PAD_CSI2_D19__CSI2_D19 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 428 | #define MX51_PAD_CSI2_D19__CSI2_D19 IOMUX_PAD(0x5d8, 0x1e8, 0, __NA_, 0, NO_PAD_CTRL) |
1183 | #define MX51_PAD_CSI2_D19__GPIO4_12 (_MX51_PAD_CSI2_D19__GPIO4_12 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 429 | #define MX51_PAD_CSI2_D19__GPIO4_12 IOMUX_PAD(0x5d8, 0x1e8, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1184 | #define MX51_PAD_CSI2_VSYNC__CSI2_VSYNC (_MX51_PAD_CSI2_VSYNC__CSI2_VSYNC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 430 | #define MX51_PAD_CSI2_VSYNC__CSI2_VSYNC IOMUX_PAD(0x5dc, 0x1ec, 0, __NA_, 0, NO_PAD_CTRL) |
1185 | #define MX51_PAD_CSI2_VSYNC__GPIO4_13 (_MX51_PAD_CSI2_VSYNC__GPIO4_13 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 431 | #define MX51_PAD_CSI2_VSYNC__GPIO4_13 IOMUX_PAD(0x5dc, 0x1ec, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1186 | #define MX51_PAD_CSI2_HSYNC__CSI2_HSYNC (_MX51_PAD_CSI2_HSYNC__CSI2_HSYNC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 432 | #define MX51_PAD_CSI2_HSYNC__CSI2_HSYNC IOMUX_PAD(0x5e0, 0x1f0, 0, __NA_, 0, NO_PAD_CTRL) |
1187 | #define MX51_PAD_CSI2_HSYNC__GPIO4_14 (_MX51_PAD_CSI2_HSYNC__GPIO4_14 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 433 | #define MX51_PAD_CSI2_HSYNC__GPIO4_14 IOMUX_PAD(0x5e0, 0x1f0, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1188 | #define MX51_PAD_CSI2_PIXCLK__CSI2_PIXCLK (_MX51_PAD_CSI2_PIXCLK__CSI2_PIXCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 434 | #define MX51_PAD_CSI2_PIXCLK__CSI2_PIXCLK IOMUX_PAD(0x5e4, 0x1f4, 0, __NA_, 0, NO_PAD_CTRL) |
1189 | #define MX51_PAD_CSI2_PIXCLK__GPIO4_15 (_MX51_PAD_CSI2_PIXCLK__GPIO4_15 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 435 | #define MX51_PAD_CSI2_PIXCLK__GPIO4_15 IOMUX_PAD(0x5e4, 0x1f4, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1190 | #define MX51_PAD_I2C1_CLK__GPIO4_16 (_MX51_PAD_I2C1_CLK__GPIO4_16 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 436 | #define MX51_PAD_I2C1_CLK__GPIO4_16 IOMUX_PAD(0x5e8, 0x1f8, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1191 | #define MX51_PAD_I2C1_CLK__I2C1_CLK (_MX51_PAD_I2C1_CLK__I2C1_CLK | MUX_PAD_CTRL(MX51_I2C_PAD_CTRL)) | 437 | #define MX51_PAD_I2C1_CLK__I2C1_CLK IOMUX_PAD(0x5e8, 0x1f8, 0x10, __NA_, 0, MX51_I2C_PAD_CTRL) |
1192 | #define MX51_PAD_I2C1_DAT__GPIO4_17 (_MX51_PAD_I2C1_DAT__GPIO4_17 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 438 | #define MX51_PAD_I2C1_DAT__GPIO4_17 IOMUX_PAD(0x5ec, 0x1fc, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1193 | #define MX51_PAD_I2C1_DAT__I2C1_DAT (_MX51_PAD_I2C1_DAT__I2C1_DAT | MUX_PAD_CTRL(MX51_I2C_PAD_CTRL)) | 439 | #define MX51_PAD_I2C1_DAT__I2C1_DAT IOMUX_PAD(0x5ec, 0x1fc, 0x10, __NA_, 0, MX51_I2C_PAD_CTRL) |
1194 | #define MX51_PAD_AUD3_BB_TXD__AUD3_TXD (_MX51_PAD_AUD3_BB_TXD__AUD3_TXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 440 | #define MX51_PAD_AUD3_BB_TXD__AUD3_TXD IOMUX_PAD(0x5f0, 0x200, 0, __NA_, 0, NO_PAD_CTRL) |
1195 | #define MX51_PAD_AUD3_BB_TXD__GPIO4_18 (_MX51_PAD_AUD3_BB_TXD__GPIO4_18 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 441 | #define MX51_PAD_AUD3_BB_TXD__GPIO4_18 IOMUX_PAD(0x5f0, 0x200, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1196 | #define MX51_PAD_AUD3_BB_RXD__AUD3_RXD (_MX51_PAD_AUD3_BB_RXD__AUD3_RXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 442 | #define MX51_PAD_AUD3_BB_RXD__AUD3_RXD IOMUX_PAD(0x5f4, 0x204, 0, __NA_, 0, NO_PAD_CTRL) |
1197 | #define MX51_PAD_AUD3_BB_RXD__GPIO4_19 (_MX51_PAD_AUD3_BB_RXD__GPIO4_19 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 443 | #define MX51_PAD_AUD3_BB_RXD__GPIO4_19 IOMUX_PAD(0x5f4, 0x204, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1198 | #define MX51_PAD_AUD3_BB_RXD__UART3_RXD (_MX51_PAD_AUD3_BB_RXD__UART3_RXD | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 444 | #define MX51_PAD_AUD3_BB_RXD__UART3_RXD IOMUX_PAD(0x5f4, 0x204, 1, 0x9f4, 2, MX51_UART_PAD_CTRL) |
1199 | #define MX51_PAD_AUD3_BB_CK__AUD3_TXC (_MX51_PAD_AUD3_BB_CK__AUD3_TXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 445 | #define MX51_PAD_AUD3_BB_CK__AUD3_TXC IOMUX_PAD(0x5f8, 0x208, 0, __NA_, 0, NO_PAD_CTRL) |
1200 | #define MX51_PAD_AUD3_BB_CK__GPIO4_20 (_MX51_PAD_AUD3_BB_CK__GPIO4_20 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 446 | #define MX51_PAD_AUD3_BB_CK__GPIO4_20 IOMUX_PAD(0x5f8, 0x208, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1201 | #define MX51_PAD_AUD3_BB_FS__AUD3_TXFS (_MX51_PAD_AUD3_BB_FS__AUD3_TXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 447 | #define MX51_PAD_AUD3_BB_FS__AUD3_TXFS IOMUX_PAD(0x5fc, 0x20c, 0, __NA_, 0, NO_PAD_CTRL) |
1202 | #define MX51_PAD_AUD3_BB_FS__GPIO4_21 (_MX51_PAD_AUD3_BB_FS__GPIO4_21 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 448 | #define MX51_PAD_AUD3_BB_FS__GPIO4_21 IOMUX_PAD(0x5fc, 0x20c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1203 | #define MX51_PAD_AUD3_BB_FS__UART3_TXD (_MX51_PAD_AUD3_BB_FS__UART3_TXD | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 449 | #define MX51_PAD_AUD3_BB_FS__UART3_TXD IOMUX_PAD(0x5fc, 0x20c, 1, __NA_, 0, MX51_UART_PAD_CTRL) |
1204 | #define MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI (_MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 450 | #define MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI IOMUX_PAD(0x600, 0x210, 0, __NA_, 0, MX51_ECSPI_PAD_CTRL) |
1205 | #define MX51_PAD_CSPI1_MOSI__GPIO4_22 (_MX51_PAD_CSPI1_MOSI__GPIO4_22 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 451 | #define MX51_PAD_CSPI1_MOSI__GPIO4_22 IOMUX_PAD(0x600, 0x210, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1206 | #define MX51_PAD_CSPI1_MOSI__I2C1_SDA (_MX51_PAD_CSPI1_MOSI__I2C1_SDA | MUX_PAD_CTRL(MX51_I2C_PAD_CTRL)) | 452 | #define MX51_PAD_CSPI1_MOSI__I2C1_SDA IOMUX_PAD(0x600, 0x210, 0x11, 0x9b4, 1, MX51_I2C_PAD_CTRL) |
1207 | #define MX51_PAD_CSPI1_MISO__AUD4_RXD (_MX51_PAD_CSPI1_MISO__AUD4_RXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 453 | #define MX51_PAD_CSPI1_MISO__AUD4_RXD IOMUX_PAD(0x604, 0x214, 1, 0x8c4, 1, NO_PAD_CTRL) |
1208 | #define MX51_PAD_CSPI1_MISO__ECSPI1_MISO (_MX51_PAD_CSPI1_MISO__ECSPI1_MISO | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 454 | #define MX51_PAD_CSPI1_MISO__ECSPI1_MISO IOMUX_PAD(0x604, 0x214, 0, __NA_, 0, MX51_ECSPI_PAD_CTRL) |
1209 | #define MX51_PAD_CSPI1_MISO__GPIO4_23 (_MX51_PAD_CSPI1_MISO__GPIO4_23 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 455 | #define MX51_PAD_CSPI1_MISO__GPIO4_23 IOMUX_PAD(0x604, 0x214, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1210 | #define MX51_PAD_CSPI1_SS0__AUD4_TXC (_MX51_PAD_CSPI1_SS0__AUD4_TXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 456 | #define MX51_PAD_CSPI1_SS0__AUD4_TXC IOMUX_PAD(0x608, 0x218, 1, 0x8cc, 1, NO_PAD_CTRL) |
1211 | #define MX51_PAD_CSPI1_SS0__ECSPI1_SS0 (_MX51_PAD_CSPI1_SS0__ECSPI1_SS0 | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 457 | #define MX51_PAD_CSPI1_SS0__ECSPI1_SS0 IOMUX_PAD(0x608, 0x218, 0, __NA_, 0, MX51_ECSPI_PAD_CTRL) |
1212 | #define MX51_PAD_CSPI1_SS0__GPIO4_24 (_MX51_PAD_CSPI1_SS0__GPIO4_24 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 458 | #define MX51_PAD_CSPI1_SS0__GPIO4_24 IOMUX_PAD(0x608, 0x218, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1213 | #define MX51_PAD_CSPI1_SS1__AUD4_TXD (_MX51_PAD_CSPI1_SS1__AUD4_TXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 459 | #define MX51_PAD_CSPI1_SS1__AUD4_TXD IOMUX_PAD(0x60c, 0x21c, 1, 0x8c8, 1, NO_PAD_CTRL) |
1214 | #define MX51_PAD_CSPI1_SS1__ECSPI1_SS1 (_MX51_PAD_CSPI1_SS1__ECSPI1_SS1 | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 460 | #define MX51_PAD_CSPI1_SS1__ECSPI1_SS1 IOMUX_PAD(0x60c, 0x21c, 0, __NA_, 0, MX51_ECSPI_PAD_CTRL) |
1215 | #define MX51_PAD_CSPI1_SS1__GPIO4_25 (_MX51_PAD_CSPI1_SS1__GPIO4_25 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 461 | #define MX51_PAD_CSPI1_SS1__GPIO4_25 IOMUX_PAD(0x60c, 0x21c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1216 | #define MX51_PAD_CSPI1_RDY__AUD4_TXFS (_MX51_PAD_CSPI1_RDY__AUD4_TXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 462 | #define MX51_PAD_CSPI1_RDY__AUD4_TXFS IOMUX_PAD(0x610, 0x220, 1, 0x8d0, 1, NO_PAD_CTRL) |
1217 | #define MX51_PAD_CSPI1_RDY__ECSPI1_RDY (_MX51_PAD_CSPI1_RDY__ECSPI1_RDY | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 463 | #define MX51_PAD_CSPI1_RDY__ECSPI1_RDY IOMUX_PAD(0x610, 0x220, 0, __NA_, 0, MX51_ECSPI_PAD_CTRL) |
1218 | #define MX51_PAD_CSPI1_RDY__GPIO4_26 (_MX51_PAD_CSPI1_RDY__GPIO4_26 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 464 | #define MX51_PAD_CSPI1_RDY__GPIO4_26 IOMUX_PAD(0x610, 0x220, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1219 | #define MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK (_MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 465 | #define MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK IOMUX_PAD(0x614, 0x224, 0, __NA_, 0, MX51_ECSPI_PAD_CTRL) |
1220 | #define MX51_PAD_CSPI1_SCLK__GPIO4_27 (_MX51_PAD_CSPI1_SCLK__GPIO4_27 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 466 | #define MX51_PAD_CSPI1_SCLK__GPIO4_27 IOMUX_PAD(0x614, 0x224, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1221 | #define MX51_PAD_CSPI1_SCLK__I2C1_SCL (_MX51_PAD_CSPI1_SCLK__I2C1_SCL | MUX_PAD_CTRL(MX51_I2C_PAD_CTRL)) | 467 | #define MX51_PAD_CSPI1_SCLK__I2C1_SCL IOMUX_PAD(0x614, 0x224, 0x11, 0x9b0, 1, MX51_I2C_PAD_CTRL) |
1222 | #define MX51_PAD_UART1_RXD__GPIO4_28 (_MX51_PAD_UART1_RXD__GPIO4_28 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 468 | #define MX51_PAD_UART1_RXD__GPIO4_28 IOMUX_PAD(0x618, 0x228, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1223 | #define MX51_PAD_UART1_RXD__UART1_RXD (_MX51_PAD_UART1_RXD__UART1_RXD | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 469 | #define MX51_PAD_UART1_RXD__UART1_RXD IOMUX_PAD(0x618, 0x228, 0, 0x9e4, 0, MX51_UART_PAD_CTRL) |
1224 | #define MX51_PAD_UART1_TXD__GPIO4_29 (_MX51_PAD_UART1_TXD__GPIO4_29 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 470 | #define MX51_PAD_UART1_TXD__GPIO4_29 IOMUX_PAD(0x61c, 0x22c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1225 | #define MX51_PAD_UART1_TXD__PWM2_PWMO (_MX51_PAD_UART1_TXD__PWM2_PWMO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 471 | #define MX51_PAD_UART1_TXD__PWM2_PWMO IOMUX_PAD(0x61c, 0x22c, 1, __NA_, 0, NO_PAD_CTRL) |
1226 | #define MX51_PAD_UART1_TXD__UART1_TXD (_MX51_PAD_UART1_TXD__UART1_TXD | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 472 | #define MX51_PAD_UART1_TXD__UART1_TXD IOMUX_PAD(0x61c, 0x22c, 0, __NA_, 0, MX51_UART_PAD_CTRL) |
1227 | #define MX51_PAD_UART1_RTS__GPIO4_30 (_MX51_PAD_UART1_RTS__GPIO4_30 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 473 | #define MX51_PAD_UART1_RTS__GPIO4_30 IOMUX_PAD(0x620, 0x230, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1228 | #define MX51_PAD_UART1_RTS__UART1_RTS (_MX51_PAD_UART1_RTS__UART1_RTS | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 474 | #define MX51_PAD_UART1_RTS__UART1_RTS IOMUX_PAD(0x620, 0x230, 0, 0x9e0, 0, MX51_UART_PAD_CTRL) |
1229 | #define MX51_PAD_UART1_CTS__GPIO4_31 (_MX51_PAD_UART1_CTS__GPIO4_31 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 475 | #define MX51_PAD_UART1_CTS__GPIO4_31 IOMUX_PAD(0x624, 0x234, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1230 | #define MX51_PAD_UART1_CTS__UART1_CTS (_MX51_PAD_UART1_CTS__UART1_CTS | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 476 | #define MX51_PAD_UART1_CTS__UART1_CTS IOMUX_PAD(0x624, 0x234, 0, __NA_, 0, MX51_UART_PAD_CTRL) |
1231 | #define MX51_PAD_UART2_RXD__FIRI_TXD (_MX51_PAD_UART2_RXD__FIRI_TXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 477 | #define MX51_PAD_UART2_RXD__FIRI_TXD IOMUX_PAD(0x628, 0x238, 1, __NA_, 0, NO_PAD_CTRL) |
1232 | #define MX51_PAD_UART2_RXD__GPIO1_20 (_MX51_PAD_UART2_RXD__GPIO1_20 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 478 | #define MX51_PAD_UART2_RXD__GPIO1_20 IOMUX_PAD(0x628, 0x238, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1233 | #define MX51_PAD_UART2_RXD__UART2_RXD (_MX51_PAD_UART2_RXD__UART2_RXD | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 479 | #define MX51_PAD_UART2_RXD__UART2_RXD IOMUX_PAD(0x628, 0x238, 0, 0x9ec, 2, MX51_UART_PAD_CTRL) |
1234 | #define MX51_PAD_UART2_TXD__FIRI_RXD (_MX51_PAD_UART2_TXD__FIRI_RXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 480 | #define MX51_PAD_UART2_TXD__FIRI_RXD IOMUX_PAD(0x62c, 0x23c, 1, __NA_, 0, NO_PAD_CTRL) |
1235 | #define MX51_PAD_UART2_TXD__GPIO1_21 (_MX51_PAD_UART2_TXD__GPIO1_21 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 481 | #define MX51_PAD_UART2_TXD__GPIO1_21 IOMUX_PAD(0x62c, 0x23c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1236 | #define MX51_PAD_UART2_TXD__UART2_TXD (_MX51_PAD_UART2_TXD__UART2_TXD | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 482 | #define MX51_PAD_UART2_TXD__UART2_TXD IOMUX_PAD(0x62c, 0x23c, 0, __NA_, 0, MX51_UART_PAD_CTRL) |
1237 | #define MX51_PAD_UART3_RXD__CSI1_D0 (_MX51_PAD_UART3_RXD__CSI1_D0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 483 | #define MX51_PAD_UART3_RXD__CSI1_D0 IOMUX_PAD(0x630, 0x240, 2, __NA_, 0, NO_PAD_CTRL) |
1238 | #define MX51_PAD_UART3_RXD__GPIO1_22 (_MX51_PAD_UART3_RXD__GPIO1_22 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 484 | #define MX51_PAD_UART3_RXD__GPIO1_22 IOMUX_PAD(0x630, 0x240, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1239 | #define MX51_PAD_UART3_RXD__UART1_DTR (_MX51_PAD_UART3_RXD__UART1_DTR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 485 | #define MX51_PAD_UART3_RXD__UART1_DTR IOMUX_PAD(0x630, 0x240, 0, __NA_, 0, NO_PAD_CTRL) |
1240 | #define MX51_PAD_UART3_RXD__UART3_RXD (_MX51_PAD_UART3_RXD__UART3_RXD | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 486 | #define MX51_PAD_UART3_RXD__UART3_RXD IOMUX_PAD(0x630, 0x240, 1, 0x9f4, 4, MX51_UART_PAD_CTRL) |
1241 | #define MX51_PAD_UART3_TXD__CSI1_D1 (_MX51_PAD_UART3_TXD__CSI1_D1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 487 | #define MX51_PAD_UART3_TXD__CSI1_D1 IOMUX_PAD(0x634, 0x244, 2, __NA_, 0, NO_PAD_CTRL) |
1242 | #define MX51_PAD_UART3_TXD__GPIO1_23 (_MX51_PAD_UART3_TXD__GPIO1_23 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 488 | #define MX51_PAD_UART3_TXD__GPIO1_23 IOMUX_PAD(0x634, 0x244, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1243 | #define MX51_PAD_UART3_TXD__UART1_DSR (_MX51_PAD_UART3_TXD__UART1_DSR | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 489 | #define MX51_PAD_UART3_TXD__UART1_DSR IOMUX_PAD(0x634, 0x244, 0, __NA_, 0, MX51_UART_PAD_CTRL) |
1244 | #define MX51_PAD_UART3_TXD__UART3_TXD (_MX51_PAD_UART3_TXD__UART3_TXD | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 490 | #define MX51_PAD_UART3_TXD__UART3_TXD IOMUX_PAD(0x634, 0x244, 1, __NA_, 0, MX51_UART_PAD_CTRL) |
1245 | #define MX51_PAD_OWIRE_LINE__GPIO1_24 (_MX51_PAD_OWIRE_LINE__GPIO1_24 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 491 | #define MX51_PAD_OWIRE_LINE__GPIO1_24 IOMUX_PAD(0x638, 0x248, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1246 | #define MX51_PAD_OWIRE_LINE__OWIRE_LINE (_MX51_PAD_OWIRE_LINE__OWIRE_LINE | MUX_PAD_CTRL(NO_PAD_CTRL)) | 492 | #define MX51_PAD_OWIRE_LINE__OWIRE_LINE IOMUX_PAD(0x638, 0x248, 0, __NA_, 0, NO_PAD_CTRL) |
1247 | #define MX51_PAD_OWIRE_LINE__SPDIF_OUT (_MX51_PAD_OWIRE_LINE__SPDIF_OUT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 493 | #define MX51_PAD_OWIRE_LINE__SPDIF_OUT IOMUX_PAD(0x638, 0x248, 6, __NA_, 0, NO_PAD_CTRL) |
1248 | #define MX51_PAD_KEY_ROW0__KEY_ROW0 (_MX51_PAD_KEY_ROW0__KEY_ROW0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 494 | #define MX51_PAD_KEY_ROW0__KEY_ROW0 IOMUX_PAD(0x63c, 0x24c, 0, __NA_, 0, NO_PAD_CTRL) |
1249 | #define MX51_PAD_KEY_ROW1__KEY_ROW1 (_MX51_PAD_KEY_ROW1__KEY_ROW1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 495 | #define MX51_PAD_KEY_ROW1__KEY_ROW1 IOMUX_PAD(0x640, 0x250, 0, __NA_, 0, NO_PAD_CTRL) |
1250 | #define MX51_PAD_KEY_ROW2__KEY_ROW2 (_MX51_PAD_KEY_ROW2__KEY_ROW2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 496 | #define MX51_PAD_KEY_ROW2__KEY_ROW2 IOMUX_PAD(0x644, 0x254, 0, __NA_, 0, NO_PAD_CTRL) |
1251 | #define MX51_PAD_KEY_ROW3__KEY_ROW3 (_MX51_PAD_KEY_ROW3__KEY_ROW3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 497 | #define MX51_PAD_KEY_ROW3__KEY_ROW3 IOMUX_PAD(0x648, 0x258, 0, __NA_, 0, NO_PAD_CTRL) |
1252 | #define MX51_PAD_KEY_COL0__KEY_COL0 (_MX51_PAD_KEY_COL0__KEY_COL0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 498 | #define MX51_PAD_KEY_COL0__KEY_COL0 IOMUX_PAD(0x64c, 0x25c, 0, __NA_, 0, NO_PAD_CTRL) |
1253 | #define MX51_PAD_KEY_COL0__PLL1_BYP (_MX51_PAD_KEY_COL0__PLL1_BYP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 499 | #define MX51_PAD_KEY_COL0__PLL1_BYP IOMUX_PAD(0x64c, 0x25c, 7, 0x90c, 0, NO_PAD_CTRL) |
1254 | #define MX51_PAD_KEY_COL1__KEY_COL1 (_MX51_PAD_KEY_COL1__KEY_COL1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 500 | #define MX51_PAD_KEY_COL1__KEY_COL1 IOMUX_PAD(0x650, 0x260, 0, __NA_, 0, NO_PAD_CTRL) |
1255 | #define MX51_PAD_KEY_COL1__PLL2_BYP (_MX51_PAD_KEY_COL1__PLL2_BYP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 501 | #define MX51_PAD_KEY_COL1__PLL2_BYP IOMUX_PAD(0x650, 0x260, 7, 0x910, 0, NO_PAD_CTRL) |
1256 | #define MX51_PAD_KEY_COL2__KEY_COL2 (_MX51_PAD_KEY_COL2__KEY_COL2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 502 | #define MX51_PAD_KEY_COL2__KEY_COL2 IOMUX_PAD(0x654, 0x264, 0, __NA_, 0, NO_PAD_CTRL) |
1257 | #define MX51_PAD_KEY_COL2__PLL3_BYP (_MX51_PAD_KEY_COL2__PLL3_BYP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 503 | #define MX51_PAD_KEY_COL2__PLL3_BYP IOMUX_PAD(0x654, 0x264, 7, __NA_, 0, NO_PAD_CTRL) |
1258 | #define MX51_PAD_KEY_COL3__KEY_COL3 (_MX51_PAD_KEY_COL3__KEY_COL3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 504 | #define MX51_PAD_KEY_COL3__KEY_COL3 IOMUX_PAD(0x658, 0x268, 0, __NA_, 0, NO_PAD_CTRL) |
1259 | #define MX51_PAD_KEY_COL4__I2C2_SCL (_MX51_PAD_KEY_COL4__I2C2_SCL | MUX_PAD_CTRL(MX51_I2C_PAD_CTRL)) | 505 | #define MX51_PAD_KEY_COL4__I2C2_SCL IOMUX_PAD(0x65c, 0x26c, 0x13, 0x9b8, 1, MX51_I2C_PAD_CTRL) |
1260 | #define MX51_PAD_KEY_COL4__KEY_COL4 (_MX51_PAD_KEY_COL4__KEY_COL4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 506 | #define MX51_PAD_KEY_COL4__KEY_COL4 IOMUX_PAD(0x65c, 0x26c, 0, __NA_, 0, NO_PAD_CTRL) |
1261 | #define MX51_PAD_KEY_COL4__SPDIF_OUT1 (_MX51_PAD_KEY_COL4__SPDIF_OUT1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 507 | #define MX51_PAD_KEY_COL4__SPDIF_OUT1 IOMUX_PAD(0x65c, 0x26c, 6, __NA_, 0, NO_PAD_CTRL) |
1262 | #define MX51_PAD_KEY_COL4__UART1_RI (_MX51_PAD_KEY_COL4__UART1_RI | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 508 | #define MX51_PAD_KEY_COL4__UART1_RI IOMUX_PAD(0x65c, 0x26c, 1, __NA_, 0, MX51_UART_PAD_CTRL) |
1263 | #define MX51_PAD_KEY_COL4__UART3_RTS (_MX51_PAD_KEY_COL4__UART3_RTS | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 509 | #define MX51_PAD_KEY_COL4__UART3_RTS IOMUX_PAD(0x65c, 0x26c, 2, 0x9f0, 4, MX51_UART_PAD_CTRL) |
1264 | #define MX51_PAD_KEY_COL5__I2C2_SDA (_MX51_PAD_KEY_COL5__I2C2_SDA | MUX_PAD_CTRL(MX51_I2C_PAD_CTRL)) | 510 | #define MX51_PAD_KEY_COL5__I2C2_SDA IOMUX_PAD(0x660, 0x270, 0x13, 0x9bc, 1, MX51_I2C_PAD_CTRL) |
1265 | #define MX51_PAD_KEY_COL5__KEY_COL5 (_MX51_PAD_KEY_COL5__KEY_COL5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 511 | #define MX51_PAD_KEY_COL5__KEY_COL5 IOMUX_PAD(0x660, 0x270, 0, __NA_, 0, NO_PAD_CTRL) |
1266 | #define MX51_PAD_KEY_COL5__UART1_DCD (_MX51_PAD_KEY_COL5__UART1_DCD | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 512 | #define MX51_PAD_KEY_COL5__UART1_DCD IOMUX_PAD(0x660, 0x270, 1, __NA_, 0, MX51_UART_PAD_CTRL) |
1267 | #define MX51_PAD_KEY_COL5__UART3_CTS (_MX51_PAD_KEY_COL5__UART3_CTS | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 513 | #define MX51_PAD_KEY_COL5__UART3_CTS IOMUX_PAD(0x660, 0x270, 2, __NA_, 0, MX51_UART_PAD_CTRL) |
1268 | #define MX51_PAD_USBH1_CLK__CSPI_SCLK (_MX51_PAD_USBH1_CLK__CSPI_SCLK | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 514 | #define MX51_PAD_USBH1_CLK__CSPI_SCLK IOMUX_PAD(0x678, 0x278, 1, 0x914, 1, MX51_ECSPI_PAD_CTRL) |
1269 | #define MX51_PAD_USBH1_CLK__GPIO1_25 (_MX51_PAD_USBH1_CLK__GPIO1_25 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 515 | #define MX51_PAD_USBH1_CLK__GPIO1_25 IOMUX_PAD(0x678, 0x278, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1270 | #define MX51_PAD_USBH1_CLK__I2C2_SCL (_MX51_PAD_USBH1_CLK__I2C2_SCL | MUX_PAD_CTRL(MX51_I2C_PAD_CTRL)) | 516 | #define MX51_PAD_USBH1_CLK__I2C2_SCL IOMUX_PAD(0x678, 0x278, 0x15, 0x9b8, 2, MX51_I2C_PAD_CTRL) |
1271 | #define MX51_PAD_USBH1_CLK__USBH1_CLK (_MX51_PAD_USBH1_CLK__USBH1_CLK | MUX_PAD_CTRL(MX51_USBH1_PAD_CTRL)) | 517 | #define MX51_PAD_USBH1_CLK__USBH1_CLK IOMUX_PAD(0x678, 0x278, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) |
1272 | #define MX51_PAD_USBH1_DIR__CSPI_MOSI (_MX51_PAD_USBH1_DIR__CSPI_MOSI | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 518 | #define MX51_PAD_USBH1_DIR__CSPI_MOSI IOMUX_PAD(0x67c, 0x27c, 1, 0x91c, 1, MX51_ECSPI_PAD_CTRL) |
1273 | #define MX51_PAD_USBH1_DIR__GPIO1_26 (_MX51_PAD_USBH1_DIR__GPIO1_26 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 519 | #define MX51_PAD_USBH1_DIR__GPIO1_26 IOMUX_PAD(0x67c, 0x27c, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1274 | #define MX51_PAD_USBH1_DIR__I2C2_SDA (_MX51_PAD_USBH1_DIR__I2C2_SDA | MUX_PAD_CTRL(MX51_I2C_PAD_CTRL)) | 520 | #define MX51_PAD_USBH1_DIR__I2C2_SDA IOMUX_PAD(0x67c, 0x27c, 0x15, 0x9bc, 2, MX51_I2C_PAD_CTRL) |
1275 | #define MX51_PAD_USBH1_DIR__USBH1_DIR (_MX51_PAD_USBH1_DIR__USBH1_DIR | MUX_PAD_CTRL(MX51_USBH1_PAD_CTRL)) | 521 | #define MX51_PAD_USBH1_DIR__USBH1_DIR IOMUX_PAD(0x67c, 0x27c, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) |
1276 | #define MX51_PAD_USBH1_STP__CSPI_RDY (_MX51_PAD_USBH1_STP__CSPI_RDY | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 522 | #define MX51_PAD_USBH1_STP__CSPI_RDY IOMUX_PAD(0x680, 0x280, 1, __NA_, 0, MX51_ECSPI_PAD_CTRL) |
1277 | #define MX51_PAD_USBH1_STP__GPIO1_27 (_MX51_PAD_USBH1_STP__GPIO1_27 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 523 | #define MX51_PAD_USBH1_STP__GPIO1_27 IOMUX_PAD(0x680, 0x280, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1278 | #define MX51_PAD_USBH1_STP__UART3_RXD (_MX51_PAD_USBH1_STP__UART3_RXD | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 524 | #define MX51_PAD_USBH1_STP__UART3_RXD IOMUX_PAD(0x680, 0x280, 5, 0x9f4, 6, MX51_UART_PAD_CTRL) |
1279 | #define MX51_PAD_USBH1_STP__USBH1_STP (_MX51_PAD_USBH1_STP__USBH1_STP | MUX_PAD_CTRL(MX51_USBH1_PAD_CTRL)) | 525 | #define MX51_PAD_USBH1_STP__USBH1_STP IOMUX_PAD(0x680, 0x280, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) |
1280 | #define MX51_PAD_USBH1_NXT__CSPI_MISO (_MX51_PAD_USBH1_NXT__CSPI_MISO | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 526 | #define MX51_PAD_USBH1_NXT__CSPI_MISO IOMUX_PAD(0x684, 0x284, 1, 0x918, 0, MX51_ECSPI_PAD_CTRL) |
1281 | #define MX51_PAD_USBH1_NXT__GPIO1_28 (_MX51_PAD_USBH1_NXT__GPIO1_28 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 527 | #define MX51_PAD_USBH1_NXT__GPIO1_28 IOMUX_PAD(0x684, 0x284, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1282 | #define MX51_PAD_USBH1_NXT__UART3_TXD (_MX51_PAD_USBH1_NXT__UART3_TXD | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 528 | #define MX51_PAD_USBH1_NXT__UART3_TXD IOMUX_PAD(0x684, 0x284, 5, __NA_, 0, MX51_UART_PAD_CTRL) |
1283 | #define MX51_PAD_USBH1_NXT__USBH1_NXT (_MX51_PAD_USBH1_NXT__USBH1_NXT | MUX_PAD_CTRL(MX51_USBH1_PAD_CTRL)) | 529 | #define MX51_PAD_USBH1_NXT__USBH1_NXT IOMUX_PAD(0x684, 0x284, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) |
1284 | #define MX51_PAD_USBH1_DATA0__GPIO1_11 (_MX51_PAD_USBH1_DATA0__GPIO1_11 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 530 | #define MX51_PAD_USBH1_DATA0__GPIO1_11 IOMUX_PAD(0x688, 0x288, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1285 | #define MX51_PAD_USBH1_DATA0__UART2_CTS (_MX51_PAD_USBH1_DATA0__UART2_CTS | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 531 | #define MX51_PAD_USBH1_DATA0__UART2_CTS IOMUX_PAD(0x688, 0x288, 1, __NA_, 0, MX51_UART_PAD_CTRL) |
1286 | #define MX51_PAD_USBH1_DATA0__USBH1_DATA0 (_MX51_PAD_USBH1_DATA0__USBH1_DATA0 | MUX_PAD_CTRL(MX51_USBH1_PAD_CTRL)) | 532 | #define MX51_PAD_USBH1_DATA0__USBH1_DATA0 IOMUX_PAD(0x688, 0x288, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) |
1287 | #define MX51_PAD_USBH1_DATA1__GPIO1_12 (_MX51_PAD_USBH1_DATA1__GPIO1_12 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 533 | #define MX51_PAD_USBH1_DATA1__GPIO1_12 IOMUX_PAD(0x68c, 0x28c, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1288 | #define MX51_PAD_USBH1_DATA1__UART2_RXD (_MX51_PAD_USBH1_DATA1__UART2_RXD | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 534 | #define MX51_PAD_USBH1_DATA1__UART2_RXD IOMUX_PAD(0x68c, 0x28c, 1, 0x9ec, 4, MX51_UART_PAD_CTRL) |
1289 | #define MX51_PAD_USBH1_DATA1__USBH1_DATA1 (_MX51_PAD_USBH1_DATA1__USBH1_DATA1 | MUX_PAD_CTRL(MX51_USBH1_PAD_CTRL)) | 535 | #define MX51_PAD_USBH1_DATA1__USBH1_DATA1 IOMUX_PAD(0x68c, 0x28c, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) |
1290 | #define MX51_PAD_USBH1_DATA2__GPIO1_13 (_MX51_PAD_USBH1_DATA2__GPIO1_13 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 536 | #define MX51_PAD_USBH1_DATA2__GPIO1_13 IOMUX_PAD(0x690, 0x290, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1291 | #define MX51_PAD_USBH1_DATA2__UART2_TXD (_MX51_PAD_USBH1_DATA2__UART2_TXD | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 537 | #define MX51_PAD_USBH1_DATA2__UART2_TXD IOMUX_PAD(0x690, 0x290, 1, __NA_, 0, MX51_UART_PAD_CTRL) |
1292 | #define MX51_PAD_USBH1_DATA2__USBH1_DATA2 (_MX51_PAD_USBH1_DATA2__USBH1_DATA2 | MUX_PAD_CTRL(MX51_USBH1_PAD_CTRL)) | 538 | #define MX51_PAD_USBH1_DATA2__USBH1_DATA2 IOMUX_PAD(0x690, 0x290, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) |
1293 | #define MX51_PAD_USBH1_DATA3__GPIO1_14 (_MX51_PAD_USBH1_DATA3__GPIO1_14 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 539 | #define MX51_PAD_USBH1_DATA3__GPIO1_14 IOMUX_PAD(0x694, 0x294, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1294 | #define MX51_PAD_USBH1_DATA3__UART2_RTS (_MX51_PAD_USBH1_DATA3__UART2_RTS | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 540 | #define MX51_PAD_USBH1_DATA3__UART2_RTS IOMUX_PAD(0x694, 0x294, 1, 0x9e8, 5, MX51_UART_PAD_CTRL) |
1295 | #define MX51_PAD_USBH1_DATA3__USBH1_DATA3 (_MX51_PAD_USBH1_DATA3__USBH1_DATA3 | MUX_PAD_CTRL(MX51_USBH1_PAD_CTRL)) | 541 | #define MX51_PAD_USBH1_DATA3__USBH1_DATA3 IOMUX_PAD(0x694, 0x294, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) |
1296 | #define MX51_PAD_USBH1_DATA4__CSPI_SS0 (_MX51_PAD_USBH1_DATA4__CSPI_SS0 | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 542 | #define MX51_PAD_USBH1_DATA4__CSPI_SS0 IOMUX_PAD(0x698, 0x298, 1, __NA_, 0, MX51_ECSPI_PAD_CTRL) |
1297 | #define MX51_PAD_USBH1_DATA4__GPIO1_15 (_MX51_PAD_USBH1_DATA4__GPIO1_15 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 543 | #define MX51_PAD_USBH1_DATA4__GPIO1_15 IOMUX_PAD(0x698, 0x298, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1298 | #define MX51_PAD_USBH1_DATA4__USBH1_DATA4 (_MX51_PAD_USBH1_DATA4__USBH1_DATA4 | MUX_PAD_CTRL(MX51_USBH1_PAD_CTRL)) | 544 | #define MX51_PAD_USBH1_DATA4__USBH1_DATA4 IOMUX_PAD(0x698, 0x298, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) |
1299 | #define MX51_PAD_USBH1_DATA5__CSPI_SS1 (_MX51_PAD_USBH1_DATA5__CSPI_SS1 | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 545 | #define MX51_PAD_USBH1_DATA5__CSPI_SS1 IOMUX_PAD(0x69c, 0x29c, 1, 0x920, 0, MX51_ECSPI_PAD_CTRL) |
1300 | #define MX51_PAD_USBH1_DATA5__GPIO1_16 (_MX51_PAD_USBH1_DATA5__GPIO1_16 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 546 | #define MX51_PAD_USBH1_DATA5__GPIO1_16 IOMUX_PAD(0x69c, 0x29c, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1301 | #define MX51_PAD_USBH1_DATA5__USBH1_DATA5 (_MX51_PAD_USBH1_DATA5__USBH1_DATA5 | MUX_PAD_CTRL(MX51_USBH1_PAD_CTRL)) | 547 | #define MX51_PAD_USBH1_DATA5__USBH1_DATA5 IOMUX_PAD(0x69c, 0x29c, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) |
1302 | #define MX51_PAD_USBH1_DATA6__CSPI_SS3 (_MX51_PAD_USBH1_DATA6__CSPI_SS3 | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 548 | #define MX51_PAD_USBH1_DATA6__CSPI_SS3 IOMUX_PAD(0x6a0, 0x2a0, 1, 0x928, 1, MX51_ECSPI_PAD_CTRL) |
1303 | #define MX51_PAD_USBH1_DATA6__GPIO1_17 (_MX51_PAD_USBH1_DATA6__GPIO1_17 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 549 | #define MX51_PAD_USBH1_DATA6__GPIO1_17 IOMUX_PAD(0x6a0, 0x2a0, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1304 | #define MX51_PAD_USBH1_DATA6__USBH1_DATA6 (_MX51_PAD_USBH1_DATA6__USBH1_DATA6 | MUX_PAD_CTRL(MX51_USBH1_PAD_CTRL)) | 550 | #define MX51_PAD_USBH1_DATA6__USBH1_DATA6 IOMUX_PAD(0x6a0, 0x2a0, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) |
1305 | #define MX51_PAD_USBH1_DATA7__ECSPI1_SS3 (_MX51_PAD_USBH1_DATA7__ECSPI1_SS3 | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 551 | #define MX51_PAD_USBH1_DATA7__ECSPI1_SS3 IOMUX_PAD(0x6a4, 0x2a4, 1, __NA_, 0, MX51_ECSPI_PAD_CTRL) |
1306 | #define MX51_PAD_USBH1_DATA7__ECSPI2_SS3 (_MX51_PAD_USBH1_DATA7__ECSPI2_SS3 | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 552 | #define MX51_PAD_USBH1_DATA7__ECSPI2_SS3 IOMUX_PAD(0x6a4, 0x2a4, 5, 0x934, 1, MX51_ECSPI_PAD_CTRL) |
1307 | #define MX51_PAD_USBH1_DATA7__GPIO1_18 (_MX51_PAD_USBH1_DATA7__GPIO1_18 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 553 | #define MX51_PAD_USBH1_DATA7__GPIO1_18 IOMUX_PAD(0x6a4, 0x2a4, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1308 | #define MX51_PAD_USBH1_DATA7__USBH1_DATA7 (_MX51_PAD_USBH1_DATA7__USBH1_DATA7 | MUX_PAD_CTRL(MX51_USBH1_PAD_CTRL)) | 554 | #define MX51_PAD_USBH1_DATA7__USBH1_DATA7 IOMUX_PAD(0x6a4, 0x2a4, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) |
1309 | #define MX51_PAD_DI1_PIN11__DI1_PIN11 (_MX51_PAD_DI1_PIN11__DI1_PIN11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 555 | #define MX51_PAD_DI1_PIN11__DI1_PIN11 IOMUX_PAD(0x6a8, 0x2a8, 0, __NA_, 0, NO_PAD_CTRL) |
1310 | #define MX51_PAD_DI1_PIN11__ECSPI1_SS2 (_MX51_PAD_DI1_PIN11__ECSPI1_SS2 | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 556 | #define MX51_PAD_DI1_PIN11__ECSPI1_SS2 IOMUX_PAD(0x6a8, 0x2a8, 7, __NA_, 0, MX51_ECSPI_PAD_CTRL) |
1311 | #define MX51_PAD_DI1_PIN11__GPIO3_0 (_MX51_PAD_DI1_PIN11__GPIO3_0 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 557 | #define MX51_PAD_DI1_PIN11__GPIO3_0 IOMUX_PAD(0x6a8, 0x2a8, 4, __NA_, 0, MX51_GPIO_PAD_CTRL) |
1312 | #define MX51_PAD_DI1_PIN12__DI1_PIN12 (_MX51_PAD_DI1_PIN12__DI1_PIN12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 558 | #define MX51_PAD_DI1_PIN12__DI1_PIN12 IOMUX_PAD(0x6ac, 0x2ac, 0, __NA_, 0, NO_PAD_CTRL) |
1313 | #define MX51_PAD_DI1_PIN12__GPIO3_1 (_MX51_PAD_DI1_PIN12__GPIO3_1 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 559 | #define MX51_PAD_DI1_PIN12__GPIO3_1 IOMUX_PAD(0x6ac, 0x2ac, 4, 0x978, 1, MX51_GPIO_PAD_CTRL) |
1314 | #define MX51_PAD_DI1_PIN13__DI1_PIN13 (_MX51_PAD_DI1_PIN13__DI1_PIN13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 560 | #define MX51_PAD_DI1_PIN13__DI1_PIN13 IOMUX_PAD(0x6b0, 0x2b0, 0, __NA_, 0, NO_PAD_CTRL) |
1315 | #define MX51_PAD_DI1_PIN13__GPIO3_2 (_MX51_PAD_DI1_PIN13__GPIO3_2 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 561 | #define MX51_PAD_DI1_PIN13__GPIO3_2 IOMUX_PAD(0x6b0, 0x2b0, 4, 0x97c, 1, MX51_GPIO_PAD_CTRL) |
1316 | #define MX51_PAD_DI1_D0_CS__DI1_D0_CS (_MX51_PAD_DI1_D0_CS__DI1_D0_CS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 562 | #define MX51_PAD_DI1_D0_CS__DI1_D0_CS IOMUX_PAD(0x6b4, 0x2b4, 0, __NA_, 0, NO_PAD_CTRL) |
1317 | #define MX51_PAD_DI1_D0_CS__GPIO3_3 (_MX51_PAD_DI1_D0_CS__GPIO3_3 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 563 | #define MX51_PAD_DI1_D0_CS__GPIO3_3 IOMUX_PAD(0x6b4, 0x2b4, 4, 0x980, 1, MX51_GPIO_PAD_CTRL) |
1318 | #define MX51_PAD_DI1_D1_CS__DI1_D1_CS (_MX51_PAD_DI1_D1_CS__DI1_D1_CS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 564 | #define MX51_PAD_DI1_D1_CS__DI1_D1_CS IOMUX_PAD(0x6b8, 0x2b8, 0, __NA_, 0, NO_PAD_CTRL) |
1319 | #define MX51_PAD_DI1_D1_CS__DISP1_PIN14 (_MX51_PAD_DI1_D1_CS__DISP1_PIN14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 565 | #define MX51_PAD_DI1_D1_CS__DISP1_PIN14 IOMUX_PAD(0x6b8, 0x2b8, 2, __NA_, 0, NO_PAD_CTRL) |
1320 | #define MX51_PAD_DI1_D1_CS__DISP1_PIN5 (_MX51_PAD_DI1_D1_CS__DISP1_PIN5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 566 | #define MX51_PAD_DI1_D1_CS__DISP1_PIN5 IOMUX_PAD(0x6b8, 0x2b8, 3, __NA_, 0, NO_PAD_CTRL) |
1321 | #define MX51_PAD_DI1_D1_CS__GPIO3_4 (_MX51_PAD_DI1_D1_CS__GPIO3_4 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 567 | #define MX51_PAD_DI1_D1_CS__GPIO3_4 IOMUX_PAD(0x6b8, 0x2b8, 4, 0x984, 1, MX51_GPIO_PAD_CTRL) |
1322 | #define MX51_PAD_DISPB2_SER_DIN__DISP1_PIN1 (_MX51_PAD_DISPB2_SER_DIN__DISP1_PIN1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 568 | #define MX51_PAD_DISPB2_SER_DIN__DISP1_PIN1 IOMUX_PAD(0x6bc, 0x2bc, 2, 0x9a4, 1, NO_PAD_CTRL) |
1323 | #define MX51_PAD_DISPB2_SER_DIN__DISPB2_SER_DIN (_MX51_PAD_DISPB2_SER_DIN__DISPB2_SER_DIN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 569 | #define MX51_PAD_DISPB2_SER_DIN__DISPB2_SER_DIN IOMUX_PAD(0x6bc, 0x2bc, 0, 0x9c4, 0, NO_PAD_CTRL) |
1324 | #define MX51_PAD_DISPB2_SER_DIN__GPIO3_5 (_MX51_PAD_DISPB2_SER_DIN__GPIO3_5 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 570 | #define MX51_PAD_DISPB2_SER_DIN__GPIO3_5 IOMUX_PAD(0x6bc, 0x2bc, 4, 0x988, 1, MX51_GPIO_PAD_CTRL) |
1325 | #define MX51_PAD_DISPB2_SER_DIO__DISP1_PIN6 (_MX51_PAD_DISPB2_SER_DIO__DISP1_PIN6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 571 | #define MX51_PAD_DISPB2_SER_DIO__DISP1_PIN6 IOMUX_PAD(0x6c0, 0x2c0, 3, __NA_, 0, NO_PAD_CTRL) |
1326 | #define MX51_PAD_DISPB2_SER_DIO__DISPB2_SER_DIO (_MX51_PAD_DISPB2_SER_DIO__DISPB2_SER_DIO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 572 | #define MX51_PAD_DISPB2_SER_DIO__DISPB2_SER_DIO IOMUX_PAD(0x6c0, 0x2c0, 0, 0x9c4, 1, NO_PAD_CTRL) |
1327 | #define MX51_PAD_DISPB2_SER_DIO__GPIO3_6 (_MX51_PAD_DISPB2_SER_DIO__GPIO3_6 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 573 | #define MX51_PAD_DISPB2_SER_DIO__GPIO3_6 IOMUX_PAD(0x6c0, 0x2c0, 4, 0x98c, 1, MX51_GPIO_PAD_CTRL) |
1328 | #define MX51_PAD_DISPB2_SER_CLK__DISP1_PIN17 (_MX51_PAD_DISPB2_SER_CLK__DISP1_PIN17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 574 | #define MX51_PAD_DISPB2_SER_CLK__DISP1_PIN17 IOMUX_PAD(0x6c4, 0x2c4, 2, __NA_, 0, NO_PAD_CTRL) |
1329 | #define MX51_PAD_DISPB2_SER_CLK__DISP1_PIN7 (_MX51_PAD_DISPB2_SER_CLK__DISP1_PIN7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 575 | #define MX51_PAD_DISPB2_SER_CLK__DISP1_PIN7 IOMUX_PAD(0x6c4, 0x2c4, 3, __NA_, 0, NO_PAD_CTRL) |
1330 | #define MX51_PAD_DISPB2_SER_CLK__DISPB2_SER_CLK (_MX51_PAD_DISPB2_SER_CLK__DISPB2_SER_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 576 | #define MX51_PAD_DISPB2_SER_CLK__DISPB2_SER_CLK IOMUX_PAD(0x6c4, 0x2c4, 0, __NA_, 0, NO_PAD_CTRL) |
1331 | #define MX51_PAD_DISPB2_SER_CLK__GPIO3_7 (_MX51_PAD_DISPB2_SER_CLK__GPIO3_7 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 577 | #define MX51_PAD_DISPB2_SER_CLK__GPIO3_7 IOMUX_PAD(0x6c4, 0x2c4, 4, 0x990, 1, MX51_GPIO_PAD_CTRL) |
1332 | #define MX51_PAD_DISPB2_SER_RS__DISP1_EXT_CLK (_MX51_PAD_DISPB2_SER_RS__DISP1_EXT_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 578 | #define MX51_PAD_DISPB2_SER_RS__DISP1_EXT_CLK IOMUX_PAD(0x6c8, 0x2c8, 2, __NA_, 0, NO_PAD_CTRL) |
1333 | #define MX51_PAD_DISPB2_SER_RS__DISP1_PIN16 (_MX51_PAD_DISPB2_SER_RS__DISP1_PIN16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 579 | #define MX51_PAD_DISPB2_SER_RS__DISP1_PIN16 IOMUX_PAD(0x6c8, 0x2c8, 2, __NA_, 0, NO_PAD_CTRL) |
1334 | #define MX51_PAD_DISPB2_SER_RS__DISP1_PIN8 (_MX51_PAD_DISPB2_SER_RS__DISP1_PIN8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 580 | #define MX51_PAD_DISPB2_SER_RS__DISP1_PIN8 IOMUX_PAD(0x6c8, 0x2c8, 3, __NA_, 0, NO_PAD_CTRL) |
1335 | #define MX51_PAD_DISPB2_SER_RS__DISPB2_SER_RS (_MX51_PAD_DISPB2_SER_RS__DISPB2_SER_RS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 581 | #define MX51_PAD_DISPB2_SER_RS__DISPB2_SER_RS IOMUX_PAD(0x6c8, 0x2c8, 0, __NA_, 0, NO_PAD_CTRL) |
1336 | #define MX51_PAD_DISPB2_SER_RS__DISPB2_SER_RS (_MX51_PAD_DISPB2_SER_RS__DISPB2_SER_RS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 582 | #define MX51_PAD_DISPB2_SER_RS__DISPB2_SER_RS IOMUX_PAD(0x6c8, 0x2c8, 0, __NA_, 0, NO_PAD_CTRL) |
1337 | #define MX51_PAD_DISPB2_SER_RS__GPIO3_8 (_MX51_PAD_DISPB2_SER_RS__GPIO3_8 | MUX_PAD_CTRL(MX51_GPIO_PAD_CTRL)) | 583 | #define MX51_PAD_DISPB2_SER_RS__GPIO3_8 IOMUX_PAD(0x6c8, 0x2c8, 4, 0x994, 1, MX51_GPIO_PAD_CTRL) |
1338 | #define MX51_PAD_DISP1_DAT0__DISP1_DAT0 (_MX51_PAD_DISP1_DAT0__DISP1_DAT0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 584 | #define MX51_PAD_DISP1_DAT0__DISP1_DAT0 IOMUX_PAD(0x6cc, 0x2cc, 0, __NA_, 0, NO_PAD_CTRL) |
1339 | #define MX51_PAD_DISP1_DAT1__DISP1_DAT1 (_MX51_PAD_DISP1_DAT1__DISP1_DAT1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 585 | #define MX51_PAD_DISP1_DAT1__DISP1_DAT1 IOMUX_PAD(0x6d0, 0x2d0, 0, __NA_, 0, NO_PAD_CTRL) |
1340 | #define MX51_PAD_DISP1_DAT2__DISP1_DAT2 (_MX51_PAD_DISP1_DAT2__DISP1_DAT2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 586 | #define MX51_PAD_DISP1_DAT2__DISP1_DAT2 IOMUX_PAD(0x6d4, 0x2d4, 0, __NA_, 0, NO_PAD_CTRL) |
1341 | #define MX51_PAD_DISP1_DAT3__DISP1_DAT3 (_MX51_PAD_DISP1_DAT3__DISP1_DAT3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 587 | #define MX51_PAD_DISP1_DAT3__DISP1_DAT3 IOMUX_PAD(0x6d8, 0x2d8, 0, __NA_, 0, NO_PAD_CTRL) |
1342 | #define MX51_PAD_DISP1_DAT4__DISP1_DAT4 (_MX51_PAD_DISP1_DAT4__DISP1_DAT4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 588 | #define MX51_PAD_DISP1_DAT4__DISP1_DAT4 IOMUX_PAD(0x6dc, 0x2dc, 0, __NA_, 0, NO_PAD_CTRL) |
1343 | #define MX51_PAD_DISP1_DAT5__DISP1_DAT5 (_MX51_PAD_DISP1_DAT5__DISP1_DAT5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 589 | #define MX51_PAD_DISP1_DAT5__DISP1_DAT5 IOMUX_PAD(0x6e0, 0x2e0, 0, __NA_, 0, NO_PAD_CTRL) |
1344 | #define MX51_PAD_DISP1_DAT6__BOOT_USB_SRC (_MX51_PAD_DISP1_DAT6__BOOT_USB_SRC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 590 | #define MX51_PAD_DISP1_DAT6__BOOT_USB_SRC IOMUX_PAD(0x6e4, 0x2e4, 7, __NA_, 0, NO_PAD_CTRL) |
1345 | #define MX51_PAD_DISP1_DAT6__DISP1_DAT6 (_MX51_PAD_DISP1_DAT6__DISP1_DAT6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 591 | #define MX51_PAD_DISP1_DAT6__DISP1_DAT6 IOMUX_PAD(0x6e4, 0x2e4, 0, __NA_, 0, NO_PAD_CTRL) |
1346 | #define MX51_PAD_DISP1_DAT7__BOOT_EEPROM_CFG (_MX51_PAD_DISP1_DAT7__BOOT_EEPROM_CFG | MUX_PAD_CTRL(NO_PAD_CTRL)) | 592 | #define MX51_PAD_DISP1_DAT7__BOOT_EEPROM_CFG IOMUX_PAD(0x6e8, 0x2e8, 7, __NA_, 0, NO_PAD_CTRL) |
1347 | #define MX51_PAD_DISP1_DAT7__DISP1_DAT7 (_MX51_PAD_DISP1_DAT7__DISP1_DAT7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 593 | #define MX51_PAD_DISP1_DAT7__DISP1_DAT7 IOMUX_PAD(0x6e8, 0x2e8, 0, __NA_, 0, NO_PAD_CTRL) |
1348 | #define MX51_PAD_DISP1_DAT8__BOOT_SRC0 (_MX51_PAD_DISP1_DAT8__BOOT_SRC0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 594 | #define MX51_PAD_DISP1_DAT8__BOOT_SRC0 IOMUX_PAD(0x6ec, 0x2ec, 7, __NA_, 0, NO_PAD_CTRL) |
1349 | #define MX51_PAD_DISP1_DAT8__DISP1_DAT8 (_MX51_PAD_DISP1_DAT8__DISP1_DAT8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 595 | #define MX51_PAD_DISP1_DAT8__DISP1_DAT8 IOMUX_PAD(0x6ec, 0x2ec, 0, __NA_, 0, NO_PAD_CTRL) |
1350 | #define MX51_PAD_DISP1_DAT9__BOOT_SRC1 (_MX51_PAD_DISP1_DAT9__BOOT_SRC1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 596 | #define MX51_PAD_DISP1_DAT9__BOOT_SRC1 IOMUX_PAD(0x6f0, 0x2f0, 7, __NA_, 0, NO_PAD_CTRL) |
1351 | #define MX51_PAD_DISP1_DAT9__DISP1_DAT9 (_MX51_PAD_DISP1_DAT9__DISP1_DAT9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 597 | #define MX51_PAD_DISP1_DAT9__DISP1_DAT9 IOMUX_PAD(0x6f0, 0x2f0, 0, __NA_, 0, NO_PAD_CTRL) |
1352 | #define MX51_PAD_DISP1_DAT10__BOOT_SPARE_SIZE (_MX51_PAD_DISP1_DAT10__BOOT_SPARE_SIZE | MUX_PAD_CTRL(NO_PAD_CTRL)) | 598 | #define MX51_PAD_DISP1_DAT10__BOOT_SPARE_SIZE IOMUX_PAD(0x6f4, 0x2f4, 7, __NA_, 0, NO_PAD_CTRL) |
1353 | #define MX51_PAD_DISP1_DAT10__DISP1_DAT10 (_MX51_PAD_DISP1_DAT10__DISP1_DAT10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 599 | #define MX51_PAD_DISP1_DAT10__DISP1_DAT10 IOMUX_PAD(0x6f4, 0x2f4, 0, __NA_, 0, NO_PAD_CTRL) |
1354 | #define MX51_PAD_DISP1_DAT11__BOOT_LPB_FREQ2 (_MX51_PAD_DISP1_DAT11__BOOT_LPB_FREQ2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 600 | #define MX51_PAD_DISP1_DAT11__BOOT_LPB_FREQ2 IOMUX_PAD(0x6f8, 0x2f8, 7, __NA_, 0, NO_PAD_CTRL) |
1355 | #define MX51_PAD_DISP1_DAT11__DISP1_DAT11 (_MX51_PAD_DISP1_DAT11__DISP1_DAT11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 601 | #define MX51_PAD_DISP1_DAT11__DISP1_DAT11 IOMUX_PAD(0x6f8, 0x2f8, 0, __NA_, 0, NO_PAD_CTRL) |
1356 | #define MX51_PAD_DISP1_DAT12__BOOT_MLC_SEL (_MX51_PAD_DISP1_DAT12__BOOT_MLC_SEL | MUX_PAD_CTRL(NO_PAD_CTRL)) | 602 | #define MX51_PAD_DISP1_DAT12__BOOT_MLC_SEL IOMUX_PAD(0x6fc, 0x2fc, 7, __NA_, 0, NO_PAD_CTRL) |
1357 | #define MX51_PAD_DISP1_DAT12__DISP1_DAT12 (_MX51_PAD_DISP1_DAT12__DISP1_DAT12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 603 | #define MX51_PAD_DISP1_DAT12__DISP1_DAT12 IOMUX_PAD(0x6fc, 0x2fc, 0, __NA_, 0, NO_PAD_CTRL) |
1358 | #define MX51_PAD_DISP1_DAT13__BOOT_MEM_CTL0 (_MX51_PAD_DISP1_DAT13__BOOT_MEM_CTL0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 604 | #define MX51_PAD_DISP1_DAT13__BOOT_MEM_CTL0 IOMUX_PAD(0x700, 0x300, 7, __NA_, 0, NO_PAD_CTRL) |
1359 | #define MX51_PAD_DISP1_DAT13__DISP1_DAT13 (_MX51_PAD_DISP1_DAT13__DISP1_DAT13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 605 | #define MX51_PAD_DISP1_DAT13__DISP1_DAT13 IOMUX_PAD(0x700, 0x300, 0, __NA_, 0, NO_PAD_CTRL) |
1360 | #define MX51_PAD_DISP1_DAT14__BOOT_MEM_CTL1 (_MX51_PAD_DISP1_DAT14__BOOT_MEM_CTL1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 606 | #define MX51_PAD_DISP1_DAT14__BOOT_MEM_CTL1 IOMUX_PAD(0x704, 0x304, 7, __NA_, 0, NO_PAD_CTRL) |
1361 | #define MX51_PAD_DISP1_DAT14__DISP1_DAT14 (_MX51_PAD_DISP1_DAT14__DISP1_DAT14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 607 | #define MX51_PAD_DISP1_DAT14__DISP1_DAT14 IOMUX_PAD(0x704, 0x304, 0, __NA_, 0, NO_PAD_CTRL) |
1362 | #define MX51_PAD_DISP1_DAT15__BOOT_BUS_WIDTH (_MX51_PAD_DISP1_DAT15__BOOT_BUS_WIDTH | MUX_PAD_CTRL(NO_PAD_CTRL)) | 608 | #define MX51_PAD_DISP1_DAT15__BOOT_BUS_WIDTH IOMUX_PAD(0x708, 0x308, 7, __NA_, 0, NO_PAD_CTRL) |
1363 | #define MX51_PAD_DISP1_DAT15__DISP1_DAT15 (_MX51_PAD_DISP1_DAT15__DISP1_DAT15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 609 | #define MX51_PAD_DISP1_DAT15__DISP1_DAT15 IOMUX_PAD(0x708, 0x308, 0, __NA_, 0, NO_PAD_CTRL) |
1364 | #define MX51_PAD_DISP1_DAT16__BOOT_PAGE_SIZE0 (_MX51_PAD_DISP1_DAT16__BOOT_PAGE_SIZE0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 610 | #define MX51_PAD_DISP1_DAT16__BOOT_PAGE_SIZE0 IOMUX_PAD(0x70c, 0x30c, 7, __NA_, 0, NO_PAD_CTRL) |
1365 | #define MX51_PAD_DISP1_DAT16__DISP1_DAT16 (_MX51_PAD_DISP1_DAT16__DISP1_DAT16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 611 | #define MX51_PAD_DISP1_DAT16__DISP1_DAT16 IOMUX_PAD(0x70c, 0x30c, 0, __NA_, 0, NO_PAD_CTRL) |
1366 | #define MX51_PAD_DISP1_DAT17__BOOT_PAGE_SIZE1 (_MX51_PAD_DISP1_DAT17__BOOT_PAGE_SIZE1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 612 | #define MX51_PAD_DISP1_DAT17__BOOT_PAGE_SIZE1 IOMUX_PAD(0x710, 0x310, 7, __NA_, 0, NO_PAD_CTRL) |
1367 | #define MX51_PAD_DISP1_DAT17__DISP1_DAT17 (_MX51_PAD_DISP1_DAT17__DISP1_DAT17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 613 | #define MX51_PAD_DISP1_DAT17__DISP1_DAT17 IOMUX_PAD(0x710, 0x310, 0, __NA_, 0, NO_PAD_CTRL) |
1368 | #define MX51_PAD_DISP1_DAT18__BOOT_WEIM_MUXED0 (_MX51_PAD_DISP1_DAT18__BOOT_WEIM_MUXED0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 614 | #define MX51_PAD_DISP1_DAT18__BOOT_WEIM_MUXED0 IOMUX_PAD(0x714, 0x314, 7, __NA_, 0, NO_PAD_CTRL) |
1369 | #define MX51_PAD_DISP1_DAT18__DISP1_DAT18 (_MX51_PAD_DISP1_DAT18__DISP1_DAT18 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 615 | #define MX51_PAD_DISP1_DAT18__DISP1_DAT18 IOMUX_PAD(0x714, 0x314, 0, __NA_, 0, NO_PAD_CTRL) |
1370 | #define MX51_PAD_DISP1_DAT18__DISP2_PIN11 (_MX51_PAD_DISP1_DAT18__DISP2_PIN11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 616 | #define MX51_PAD_DISP1_DAT18__DISP2_PIN11 IOMUX_PAD(0x714, 0x314, 5, __NA_, 0, NO_PAD_CTRL) |
1371 | #define MX51_PAD_DISP1_DAT18__DISP2_PIN5 (_MX51_PAD_DISP1_DAT18__DISP2_PIN5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 617 | #define MX51_PAD_DISP1_DAT18__DISP2_PIN5 IOMUX_PAD(0x714, 0x314, 4, __NA_, 0, NO_PAD_CTRL) |
1372 | #define MX51_PAD_DISP1_DAT19__BOOT_WEIM_MUXED1 (_MX51_PAD_DISP1_DAT19__BOOT_WEIM_MUXED1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 618 | #define MX51_PAD_DISP1_DAT19__BOOT_WEIM_MUXED1 IOMUX_PAD(0x718, 0x318, 7, __NA_, 0, NO_PAD_CTRL) |
1373 | #define MX51_PAD_DISP1_DAT19__DISP1_DAT19 (_MX51_PAD_DISP1_DAT19__DISP1_DAT19 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 619 | #define MX51_PAD_DISP1_DAT19__DISP1_DAT19 IOMUX_PAD(0x718, 0x318, 0, __NA_, 0, NO_PAD_CTRL) |
1374 | #define MX51_PAD_DISP1_DAT19__DISP2_PIN12 (_MX51_PAD_DISP1_DAT19__DISP2_PIN12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 620 | #define MX51_PAD_DISP1_DAT19__DISP2_PIN12 IOMUX_PAD(0x718, 0x318, 5, __NA_, 0, NO_PAD_CTRL) |
1375 | #define MX51_PAD_DISP1_DAT19__DISP2_PIN6 (_MX51_PAD_DISP1_DAT19__DISP2_PIN6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 621 | #define MX51_PAD_DISP1_DAT19__DISP2_PIN6 IOMUX_PAD(0x718, 0x318, 4, __NA_, 0, NO_PAD_CTRL) |
1376 | #define MX51_PAD_DISP1_DAT20__BOOT_MEM_TYPE0 (_MX51_PAD_DISP1_DAT20__BOOT_MEM_TYPE0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 622 | #define MX51_PAD_DISP1_DAT20__BOOT_MEM_TYPE0 IOMUX_PAD(0x71c, 0x31c, 7, __NA_, 0, NO_PAD_CTRL) |
1377 | #define MX51_PAD_DISP1_DAT20__DISP1_DAT20 (_MX51_PAD_DISP1_DAT20__DISP1_DAT20 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 623 | #define MX51_PAD_DISP1_DAT20__DISP1_DAT20 IOMUX_PAD(0x71c, 0x31c, 0, __NA_, 0, NO_PAD_CTRL) |
1378 | #define MX51_PAD_DISP1_DAT20__DISP2_PIN13 (_MX51_PAD_DISP1_DAT20__DISP2_PIN13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 624 | #define MX51_PAD_DISP1_DAT20__DISP2_PIN13 IOMUX_PAD(0x71c, 0x31c, 5, __NA_, 0, NO_PAD_CTRL) |
1379 | #define MX51_PAD_DISP1_DAT20__DISP2_PIN7 (_MX51_PAD_DISP1_DAT20__DISP2_PIN7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 625 | #define MX51_PAD_DISP1_DAT20__DISP2_PIN7 IOMUX_PAD(0x71c, 0x31c, 4, __NA_, 0, NO_PAD_CTRL) |
1380 | #define MX51_PAD_DISP1_DAT21__BOOT_MEM_TYPE1 (_MX51_PAD_DISP1_DAT21__BOOT_MEM_TYPE1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 626 | #define MX51_PAD_DISP1_DAT21__BOOT_MEM_TYPE1 IOMUX_PAD(0x720, 0x320, 7, __NA_, 0, NO_PAD_CTRL) |
1381 | #define MX51_PAD_DISP1_DAT21__DISP1_DAT21 (_MX51_PAD_DISP1_DAT21__DISP1_DAT21 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 627 | #define MX51_PAD_DISP1_DAT21__DISP1_DAT21 IOMUX_PAD(0x720, 0x320, 0, __NA_, 0, NO_PAD_CTRL) |
1382 | #define MX51_PAD_DISP1_DAT21__DISP2_PIN14 (_MX51_PAD_DISP1_DAT21__DISP2_PIN14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 628 | #define MX51_PAD_DISP1_DAT21__DISP2_PIN14 IOMUX_PAD(0x720, 0x320, 5, __NA_, 0, NO_PAD_CTRL) |
1383 | #define MX51_PAD_DISP1_DAT21__DISP2_PIN8 (_MX51_PAD_DISP1_DAT21__DISP2_PIN8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 629 | #define MX51_PAD_DISP1_DAT21__DISP2_PIN8 IOMUX_PAD(0x720, 0x320, 4, __NA_, 0, NO_PAD_CTRL) |
1384 | #define MX51_PAD_DISP1_DAT22__BOOT_LPB_FREQ0 (_MX51_PAD_DISP1_DAT22__BOOT_LPB_FREQ0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 630 | #define MX51_PAD_DISP1_DAT22__BOOT_LPB_FREQ0 IOMUX_PAD(0x724, 0x324, 7, __NA_, 0, NO_PAD_CTRL) |
1385 | #define MX51_PAD_DISP1_DAT22__DISP1_DAT22 (_MX51_PAD_DISP1_DAT22__DISP1_DAT22 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 631 | #define MX51_PAD_DISP1_DAT22__DISP1_DAT22 IOMUX_PAD(0x724, 0x324, 0, __NA_, 0, NO_PAD_CTRL) |
1386 | #define MX51_PAD_DISP1_DAT22__DISP2_D0_CS (_MX51_PAD_DISP1_DAT22__DISP2_D0_CS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 632 | #define MX51_PAD_DISP1_DAT22__DISP2_D0_CS IOMUX_PAD(0x724, 0x324, 6, __NA_, 0, NO_PAD_CTRL) |
1387 | #define MX51_PAD_DISP1_DAT22__DISP2_DAT16 (_MX51_PAD_DISP1_DAT22__DISP2_DAT16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 633 | #define MX51_PAD_DISP1_DAT22__DISP2_DAT16 IOMUX_PAD(0x724, 0x324, 5, __NA_, 0, NO_PAD_CTRL) |
1388 | #define MX51_PAD_DISP1_DAT23__BOOT_LPB_FREQ1 (_MX51_PAD_DISP1_DAT23__BOOT_LPB_FREQ1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 634 | #define MX51_PAD_DISP1_DAT23__BOOT_LPB_FREQ1 IOMUX_PAD(0x728, 0x328, 7, __NA_, 0, NO_PAD_CTRL) |
1389 | #define MX51_PAD_DISP1_DAT23__DISP1_DAT23 (_MX51_PAD_DISP1_DAT23__DISP1_DAT23 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 635 | #define MX51_PAD_DISP1_DAT23__DISP1_DAT23 IOMUX_PAD(0x728, 0x328, 0, __NA_, 0, NO_PAD_CTRL) |
1390 | #define MX51_PAD_DISP1_DAT23__DISP2_D1_CS (_MX51_PAD_DISP1_DAT23__DISP2_D1_CS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 636 | #define MX51_PAD_DISP1_DAT23__DISP2_D1_CS IOMUX_PAD(0x728, 0x328, 6, __NA_, 0, NO_PAD_CTRL) |
1391 | #define MX51_PAD_DISP1_DAT23__DISP2_DAT17 (_MX51_PAD_DISP1_DAT23__DISP2_DAT17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 637 | #define MX51_PAD_DISP1_DAT23__DISP2_DAT17 IOMUX_PAD(0x728, 0x328, 5, __NA_, 0, NO_PAD_CTRL) |
1392 | #define MX51_PAD_DISP1_DAT23__DISP2_SER_CS (_MX51_PAD_DISP1_DAT23__DISP2_SER_CS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 638 | #define MX51_PAD_DISP1_DAT23__DISP2_SER_CS IOMUX_PAD(0x728, 0x328, 4, __NA_, 0, NO_PAD_CTRL) |
1393 | #define MX51_PAD_DI1_PIN3__DI1_PIN3 (_MX51_PAD_DI1_PIN3__DI1_PIN3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 639 | #define MX51_PAD_DI1_PIN3__DI1_PIN3 IOMUX_PAD(0x72c, 0x32c, 0, __NA_, 0, NO_PAD_CTRL) |
1394 | #define MX51_PAD_DI1_PIN2__DI1_PIN2 (_MX51_PAD_DI1_PIN2__DI1_PIN2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 640 | #define MX51_PAD_DI1_PIN2__DI1_PIN2 IOMUX_PAD(0x734, 0x330, 0, __NA_, 0, NO_PAD_CTRL) |
1395 | #define MX51_PAD_DI_GP2__DISP1_SER_CLK (_MX51_PAD_DI_GP2__DISP1_SER_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 641 | #define MX51_PAD_DI_GP2__DISP1_SER_CLK IOMUX_PAD(0x740, 0x338, 0, __NA_, 0, NO_PAD_CTRL) |
1396 | #define MX51_PAD_DI_GP2__DISP2_WAIT (_MX51_PAD_DI_GP2__DISP2_WAIT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 642 | #define MX51_PAD_DI_GP2__DISP2_WAIT IOMUX_PAD(0x740, 0x338, 2, 0x9a8, 1, NO_PAD_CTRL) |
1397 | #define MX51_PAD_DI_GP3__CSI1_DATA_EN (_MX51_PAD_DI_GP3__CSI1_DATA_EN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 643 | #define MX51_PAD_DI_GP3__CSI1_DATA_EN IOMUX_PAD(0x744, 0x33c, 3, 0x9a0, 1, NO_PAD_CTRL) |
1398 | #define MX51_PAD_DI_GP3__DISP1_SER_DIO (_MX51_PAD_DI_GP3__DISP1_SER_DIO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 644 | #define MX51_PAD_DI_GP3__DISP1_SER_DIO IOMUX_PAD(0x744, 0x33c, 0, 0x9c0, 0, NO_PAD_CTRL) |
1399 | #define MX51_PAD_DI_GP3__FEC_TX_ER (_MX51_PAD_DI_GP3__FEC_TX_ER | MUX_PAD_CTRL(MX51_PAD_CTRL_5)) | 645 | #define MX51_PAD_DI_GP3__FEC_TX_ER IOMUX_PAD(0x744, 0x33c, 2, __NA_, 0, MX51_PAD_CTRL_5) |
1400 | #define MX51_PAD_DI2_PIN4__CSI2_DATA_EN (_MX51_PAD_DI2_PIN4__CSI2_DATA_EN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 646 | #define MX51_PAD_DI2_PIN4__CSI2_DATA_EN IOMUX_PAD(0x748, 0x340, 3, 0x99c, 1, NO_PAD_CTRL) |
1401 | #define MX51_PAD_DI2_PIN4__DI2_PIN4 (_MX51_PAD_DI2_PIN4__DI2_PIN4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 647 | #define MX51_PAD_DI2_PIN4__DI2_PIN4 IOMUX_PAD(0x748, 0x340, 0, __NA_, 0, NO_PAD_CTRL) |
1402 | #define MX51_PAD_DI2_PIN4__FEC_CRS (_MX51_PAD_DI2_PIN4__FEC_CRS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 648 | #define MX51_PAD_DI2_PIN4__FEC_CRS IOMUX_PAD(0x748, 0x340, 2, 0x950, 1, NO_PAD_CTRL) |
1403 | #define MX51_PAD_DI2_PIN2__DI2_PIN2 (_MX51_PAD_DI2_PIN2__DI2_PIN2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 649 | #define MX51_PAD_DI2_PIN2__DI2_PIN2 IOMUX_PAD(0x74c, 0x344, 0, __NA_, 0, NO_PAD_CTRL) |
1404 | #define MX51_PAD_DI2_PIN2__FEC_MDC (_MX51_PAD_DI2_PIN2__FEC_MDC | MUX_PAD_CTRL(MX51_PAD_CTRL_5)) | 650 | #define MX51_PAD_DI2_PIN2__FEC_MDC IOMUX_PAD(0x74c, 0x344, 2, __NA_, 0, MX51_PAD_CTRL_5) |
1405 | #define MX51_PAD_DI2_PIN3__DI2_PIN3 (_MX51_PAD_DI2_PIN3__DI2_PIN3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 651 | #define MX51_PAD_DI2_PIN3__DI2_PIN3 IOMUX_PAD(0x750, 0x348, 0, __NA_, 0, NO_PAD_CTRL) |
1406 | #define MX51_PAD_DI2_PIN3__FEC_MDIO (_MX51_PAD_DI2_PIN3__FEC_MDIO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 652 | #define MX51_PAD_DI2_PIN3__FEC_MDIO IOMUX_PAD(0x750, 0x348, 2, 0x954, 1, NO_PAD_CTRL) |
1407 | #define MX51_PAD_DI2_DISP_CLK__DI2_DISP_CLK (_MX51_PAD_DI2_DISP_CLK__DI2_DISP_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 653 | #define MX51_PAD_DI2_DISP_CLK__DI2_DISP_CLK IOMUX_PAD(0x754, 0x34c, 0, __NA_, 0, NO_PAD_CTRL) |
1408 | #define MX51_PAD_DI2_DISP_CLK__FEC_RDATA1 (_MX51_PAD_DI2_DISP_CLK__FEC_RDATA1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 654 | #define MX51_PAD_DI2_DISP_CLK__FEC_RDATA1 IOMUX_PAD(0x754, 0x34c, 2, 0x95c, 1, NO_PAD_CTRL) |
1409 | #define MX51_PAD_DI_GP4__DI2_PIN15 (_MX51_PAD_DI_GP4__DI2_PIN15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 655 | #define MX51_PAD_DI_GP4__DI2_PIN15 IOMUX_PAD(0x758, 0x350, 4, __NA_, 0, NO_PAD_CTRL) |
1410 | #define MX51_PAD_DI_GP4__DISP1_SER_DIN (_MX51_PAD_DI_GP4__DISP1_SER_DIN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 656 | #define MX51_PAD_DI_GP4__DISP1_SER_DIN IOMUX_PAD(0x758, 0x350, 0, 0x9c0, 1, NO_PAD_CTRL) |
1411 | #define MX51_PAD_DI_GP4__DISP2_PIN1 (_MX51_PAD_DI_GP4__DISP2_PIN1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 657 | #define MX51_PAD_DI_GP4__DISP2_PIN1 IOMUX_PAD(0x758, 0x350, 3, __NA_, 0, NO_PAD_CTRL) |
1412 | #define MX51_PAD_DI_GP4__FEC_RDATA2 (_MX51_PAD_DI_GP4__FEC_RDATA2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 658 | #define MX51_PAD_DI_GP4__FEC_RDATA2 IOMUX_PAD(0x758, 0x350, 2, 0x960, 1, NO_PAD_CTRL) |
1413 | #define MX51_PAD_DISP2_DAT0__DISP2_DAT0 (_MX51_PAD_DISP2_DAT0__DISP2_DAT0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 659 | #define MX51_PAD_DISP2_DAT0__DISP2_DAT0 IOMUX_PAD(0x75c, 0x354, 0, __NA_, 0, NO_PAD_CTRL) |
1414 | #define MX51_PAD_DISP2_DAT0__FEC_RDATA3 (_MX51_PAD_DISP2_DAT0__FEC_RDATA3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 660 | #define MX51_PAD_DISP2_DAT0__FEC_RDATA3 IOMUX_PAD(0x75c, 0x354, 2, 0x964, 1, NO_PAD_CTRL) |
1415 | #define MX51_PAD_DISP2_DAT0__KEY_COL6 (_MX51_PAD_DISP2_DAT0__KEY_COL6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 661 | #define MX51_PAD_DISP2_DAT0__KEY_COL6 IOMUX_PAD(0x75c, 0x354, 4, 0x9c8, 1, NO_PAD_CTRL) |
1416 | #define MX51_PAD_DISP2_DAT0__UART3_RXD (_MX51_PAD_DISP2_DAT0__UART3_RXD | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 662 | #define MX51_PAD_DISP2_DAT0__UART3_RXD IOMUX_PAD(0x75c, 0x354, 5, 0x9f4, 8, MX51_UART_PAD_CTRL) |
1417 | #define MX51_PAD_DISP2_DAT0__USBH3_CLK (_MX51_PAD_DISP2_DAT0__USBH3_CLK | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 663 | #define MX51_PAD_DISP2_DAT0__USBH3_CLK IOMUX_PAD(0x75c, 0x354, 3, 0x9f8, 1, MX51_UART_PAD_CTRL) |
1418 | #define MX51_PAD_DISP2_DAT1__DISP2_DAT1 (_MX51_PAD_DISP2_DAT1__DISP2_DAT1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 664 | #define MX51_PAD_DISP2_DAT1__DISP2_DAT1 IOMUX_PAD(0x760, 0x358, 0, __NA_, 0, NO_PAD_CTRL) |
1419 | #define MX51_PAD_DISP2_DAT1__FEC_RX_ER (_MX51_PAD_DISP2_DAT1__FEC_RX_ER | MUX_PAD_CTRL(NO_PAD_CTRL)) | 665 | #define MX51_PAD_DISP2_DAT1__FEC_RX_ER IOMUX_PAD(0x760, 0x358, 2, 0x970, 1, NO_PAD_CTRL) |
1420 | #define MX51_PAD_DISP2_DAT1__KEY_COL7 (_MX51_PAD_DISP2_DAT1__KEY_COL7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 666 | #define MX51_PAD_DISP2_DAT1__KEY_COL7 IOMUX_PAD(0x760, 0x358, 4, 0x9cc, 1, NO_PAD_CTRL) |
1421 | #define MX51_PAD_DISP2_DAT1__UART3_TXD (_MX51_PAD_DISP2_DAT1__UART3_TXD | MUX_PAD_CTRL(MX51_UART_PAD_CTRL)) | 667 | #define MX51_PAD_DISP2_DAT1__UART3_TXD IOMUX_PAD(0x760, 0x358, 5, __NA_, 0, MX51_UART_PAD_CTRL) |
1422 | #define MX51_PAD_DISP2_DAT1__USBH3_DIR (_MX51_PAD_DISP2_DAT1__USBH3_DIR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 668 | #define MX51_PAD_DISP2_DAT1__USBH3_DIR IOMUX_PAD(0x760, 0x358, 3, 0xa1c, 1, NO_PAD_CTRL) |
1423 | #define MX51_PAD_DISP2_DAT2__DISP2_DAT2 (_MX51_PAD_DISP2_DAT2__DISP2_DAT2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 669 | #define MX51_PAD_DISP2_DAT2__DISP2_DAT2 IOMUX_PAD(0x764, 0x35c, 0, __NA_, 0, NO_PAD_CTRL) |
1424 | #define MX51_PAD_DISP2_DAT3__DISP2_DAT3 (_MX51_PAD_DISP2_DAT3__DISP2_DAT3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 670 | #define MX51_PAD_DISP2_DAT3__DISP2_DAT3 IOMUX_PAD(0x768, 0x360, 0, __NA_, 0, NO_PAD_CTRL) |
1425 | #define MX51_PAD_DISP2_DAT4__DISP2_DAT4 (_MX51_PAD_DISP2_DAT4__DISP2_DAT4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 671 | #define MX51_PAD_DISP2_DAT4__DISP2_DAT4 IOMUX_PAD(0x76c, 0x364, 0, __NA_, 0, NO_PAD_CTRL) |
1426 | #define MX51_PAD_DISP2_DAT5__DISP2_DAT5 (_MX51_PAD_DISP2_DAT5__DISP2_DAT5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 672 | #define MX51_PAD_DISP2_DAT5__DISP2_DAT5 IOMUX_PAD(0x770, 0x368, 0, __NA_, 0, NO_PAD_CTRL) |
1427 | #define MX51_PAD_DISP2_DAT6__DISP2_DAT6 (_MX51_PAD_DISP2_DAT6__DISP2_DAT6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 673 | #define MX51_PAD_DISP2_DAT6__DISP2_DAT6 IOMUX_PAD(0x774, 0x36c, 0, __NA_, 0, NO_PAD_CTRL) |
1428 | #define MX51_PAD_DISP2_DAT6__FEC_TDATA1 (_MX51_PAD_DISP2_DAT6__FEC_TDATA1 | MUX_PAD_CTRL(MX51_PAD_CTRL_5)) | 674 | #define MX51_PAD_DISP2_DAT6__FEC_TDATA1 IOMUX_PAD(0x774, 0x36c, 2, __NA_, 0, MX51_PAD_CTRL_5) |
1429 | #define MX51_PAD_DISP2_DAT6__GPIO1_19 (_MX51_PAD_DISP2_DAT6__GPIO1_19 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 675 | #define MX51_PAD_DISP2_DAT6__GPIO1_19 IOMUX_PAD(0x774, 0x36c, 5, __NA_, 0, NO_PAD_CTRL) |
1430 | #define MX51_PAD_DISP2_DAT6__KEY_ROW4 (_MX51_PAD_DISP2_DAT6__KEY_ROW4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 676 | #define MX51_PAD_DISP2_DAT6__KEY_ROW4 IOMUX_PAD(0x774, 0x36c, 4, 0x9d0, 1, NO_PAD_CTRL) |
1431 | #define MX51_PAD_DISP2_DAT6__USBH3_STP (_MX51_PAD_DISP2_DAT6__USBH3_STP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 677 | #define MX51_PAD_DISP2_DAT6__USBH3_STP IOMUX_PAD(0x774, 0x36c, 3, 0xa24, 1, NO_PAD_CTRL) |
1432 | #define MX51_PAD_DISP2_DAT7__DISP2_DAT7 (_MX51_PAD_DISP2_DAT7__DISP2_DAT7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 678 | #define MX51_PAD_DISP2_DAT7__DISP2_DAT7 IOMUX_PAD(0x778, 0x370, 0, __NA_, 0, NO_PAD_CTRL) |
1433 | #define MX51_PAD_DISP2_DAT7__FEC_TDATA2 (_MX51_PAD_DISP2_DAT7__FEC_TDATA2 | MUX_PAD_CTRL(MX51_PAD_CTRL_5)) | 679 | #define MX51_PAD_DISP2_DAT7__FEC_TDATA2 IOMUX_PAD(0x778, 0x370, 2, __NA_, 0, MX51_PAD_CTRL_5) |
1434 | #define MX51_PAD_DISP2_DAT7__GPIO1_29 (_MX51_PAD_DISP2_DAT7__GPIO1_29 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 680 | #define MX51_PAD_DISP2_DAT7__GPIO1_29 IOMUX_PAD(0x778, 0x370, 5, __NA_, 0, NO_PAD_CTRL) |
1435 | #define MX51_PAD_DISP2_DAT7__KEY_ROW5 (_MX51_PAD_DISP2_DAT7__KEY_ROW5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 681 | #define MX51_PAD_DISP2_DAT7__KEY_ROW5 IOMUX_PAD(0x778, 0x370, 4, 0x9d4, 1, NO_PAD_CTRL) |
1436 | #define MX51_PAD_DISP2_DAT7__USBH3_NXT (_MX51_PAD_DISP2_DAT7__USBH3_NXT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 682 | #define MX51_PAD_DISP2_DAT7__USBH3_NXT IOMUX_PAD(0x778, 0x370, 3, 0xa20, 1, NO_PAD_CTRL) |
1437 | #define MX51_PAD_DISP2_DAT8__DISP2_DAT8 (_MX51_PAD_DISP2_DAT8__DISP2_DAT8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 683 | #define MX51_PAD_DISP2_DAT8__DISP2_DAT8 IOMUX_PAD(0x77c, 0x374, 0, __NA_, 0, NO_PAD_CTRL) |
1438 | #define MX51_PAD_DISP2_DAT8__FEC_TDATA3 (_MX51_PAD_DISP2_DAT8__FEC_TDATA3 | MUX_PAD_CTRL(MX51_PAD_CTRL_5)) | 684 | #define MX51_PAD_DISP2_DAT8__FEC_TDATA3 IOMUX_PAD(0x77c, 0x374, 2, __NA_, 0, MX51_PAD_CTRL_5) |
1439 | #define MX51_PAD_DISP2_DAT8__GPIO1_30 (_MX51_PAD_DISP2_DAT8__GPIO1_30 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 685 | #define MX51_PAD_DISP2_DAT8__GPIO1_30 IOMUX_PAD(0x77c, 0x374, 5, __NA_, 0, NO_PAD_CTRL) |
1440 | #define MX51_PAD_DISP2_DAT8__KEY_ROW6 (_MX51_PAD_DISP2_DAT8__KEY_ROW6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 686 | #define MX51_PAD_DISP2_DAT8__KEY_ROW6 IOMUX_PAD(0x77c, 0x374, 4, 0x9d8, 1, NO_PAD_CTRL) |
1441 | #define MX51_PAD_DISP2_DAT8__USBH3_DATA0 (_MX51_PAD_DISP2_DAT8__USBH3_DATA0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 687 | #define MX51_PAD_DISP2_DAT8__USBH3_DATA0 IOMUX_PAD(0x77c, 0x374, 3, 0x9fc, 1, NO_PAD_CTRL) |
1442 | #define MX51_PAD_DISP2_DAT9__AUD6_RXC (_MX51_PAD_DISP2_DAT9__AUD6_RXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 688 | #define MX51_PAD_DISP2_DAT9__AUD6_RXC IOMUX_PAD(0x780, 0x378, 4, 0x8f4, 1, NO_PAD_CTRL) |
1443 | #define MX51_PAD_DISP2_DAT9__DISP2_DAT9 (_MX51_PAD_DISP2_DAT9__DISP2_DAT9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 689 | #define MX51_PAD_DISP2_DAT9__DISP2_DAT9 IOMUX_PAD(0x780, 0x378, 0, __NA_, 0, NO_PAD_CTRL) |
1444 | #define MX51_PAD_DISP2_DAT9__FEC_TX_EN (_MX51_PAD_DISP2_DAT9__FEC_TX_EN | MUX_PAD_CTRL(MX51_PAD_CTRL_5)) | 690 | #define MX51_PAD_DISP2_DAT9__FEC_TX_EN IOMUX_PAD(0x780, 0x378, 2, __NA_, 0, MX51_PAD_CTRL_5) |
1445 | #define MX51_PAD_DISP2_DAT9__GPIO1_31 (_MX51_PAD_DISP2_DAT9__GPIO1_31 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 691 | #define MX51_PAD_DISP2_DAT9__GPIO1_31 IOMUX_PAD(0x780, 0x378, 5, __NA_, 0, NO_PAD_CTRL) |
1446 | #define MX51_PAD_DISP2_DAT9__USBH3_DATA1 (_MX51_PAD_DISP2_DAT9__USBH3_DATA1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 692 | #define MX51_PAD_DISP2_DAT9__USBH3_DATA1 IOMUX_PAD(0x780, 0x378, 3, 0xa00, 1, NO_PAD_CTRL) |
1447 | #define MX51_PAD_DISP2_DAT10__DISP2_DAT10 (_MX51_PAD_DISP2_DAT10__DISP2_DAT10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 693 | #define MX51_PAD_DISP2_DAT10__DISP2_DAT10 IOMUX_PAD(0x784, 0x37c, 0, __NA_, 0, NO_PAD_CTRL) |
1448 | #define MX51_PAD_DISP2_DAT10__DISP2_SER_CS (_MX51_PAD_DISP2_DAT10__DISP2_SER_CS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 694 | #define MX51_PAD_DISP2_DAT10__DISP2_SER_CS IOMUX_PAD(0x784, 0x37c, 5, __NA_, 0, NO_PAD_CTRL) |
1449 | #define MX51_PAD_DISP2_DAT10__FEC_COL (_MX51_PAD_DISP2_DAT10__FEC_COL | MUX_PAD_CTRL(NO_PAD_CTRL)) | 695 | #define MX51_PAD_DISP2_DAT10__FEC_COL IOMUX_PAD(0x784, 0x37c, 2, 0x94c, 1, NO_PAD_CTRL) |
1450 | #define MX51_PAD_DISP2_DAT10__KEY_ROW7 (_MX51_PAD_DISP2_DAT10__KEY_ROW7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 696 | #define MX51_PAD_DISP2_DAT10__KEY_ROW7 IOMUX_PAD(0x784, 0x37c, 4, 0x9dc, 1, NO_PAD_CTRL) |
1451 | #define MX51_PAD_DISP2_DAT10__USBH3_DATA2 (_MX51_PAD_DISP2_DAT10__USBH3_DATA2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 697 | #define MX51_PAD_DISP2_DAT10__USBH3_DATA2 IOMUX_PAD(0x784, 0x37c, 3, 0xa04, 1, NO_PAD_CTRL) |
1452 | #define MX51_PAD_DISP2_DAT11__AUD6_TXD (_MX51_PAD_DISP2_DAT11__AUD6_TXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 698 | #define MX51_PAD_DISP2_DAT11__AUD6_TXD IOMUX_PAD(0x788, 0x380, 4, 0x8f0, 1, NO_PAD_CTRL) |
1453 | #define MX51_PAD_DISP2_DAT11__DISP2_DAT11 (_MX51_PAD_DISP2_DAT11__DISP2_DAT11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 699 | #define MX51_PAD_DISP2_DAT11__DISP2_DAT11 IOMUX_PAD(0x788, 0x380, 0, __NA_, 0, NO_PAD_CTRL) |
1454 | #define MX51_PAD_DISP2_DAT11__FEC_RX_CLK (_MX51_PAD_DISP2_DAT11__FEC_RX_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 700 | #define MX51_PAD_DISP2_DAT11__FEC_RX_CLK IOMUX_PAD(0x788, 0x380, 2, 0x968, 1, NO_PAD_CTRL) |
1455 | #define MX51_PAD_DISP2_DAT11__GPIO1_10 (_MX51_PAD_DISP2_DAT11__GPIO1_10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 701 | #define MX51_PAD_DISP2_DAT11__GPIO1_10 IOMUX_PAD(0x788, 0x380, 7, __NA_, 0, NO_PAD_CTRL) |
1456 | #define MX51_PAD_DISP2_DAT11__USBH3_DATA3 (_MX51_PAD_DISP2_DAT11__USBH3_DATA3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 702 | #define MX51_PAD_DISP2_DAT11__USBH3_DATA3 IOMUX_PAD(0x788, 0x380, 3, 0xa08, 1, NO_PAD_CTRL) |
1457 | #define MX51_PAD_DISP2_DAT12__AUD6_RXD (_MX51_PAD_DISP2_DAT12__AUD6_RXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 703 | #define MX51_PAD_DISP2_DAT12__AUD6_RXD IOMUX_PAD(0x78c, 0x384, 4, 0x8ec, 1, NO_PAD_CTRL) |
1458 | #define MX51_PAD_DISP2_DAT12__DISP2_DAT12 (_MX51_PAD_DISP2_DAT12__DISP2_DAT12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 704 | #define MX51_PAD_DISP2_DAT12__DISP2_DAT12 IOMUX_PAD(0x78c, 0x384, 0, __NA_, 0, NO_PAD_CTRL) |
1459 | #define MX51_PAD_DISP2_DAT12__FEC_RX_DV (_MX51_PAD_DISP2_DAT12__FEC_RX_DV | MUX_PAD_CTRL(NO_PAD_CTRL)) | 705 | #define MX51_PAD_DISP2_DAT12__FEC_RX_DV IOMUX_PAD(0x78c, 0x384, 2, 0x96c, 1, NO_PAD_CTRL) |
1460 | #define MX51_PAD_DISP2_DAT12__USBH3_DATA4 (_MX51_PAD_DISP2_DAT12__USBH3_DATA4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 706 | #define MX51_PAD_DISP2_DAT12__USBH3_DATA4 IOMUX_PAD(0x78c, 0x384, 3, 0xa0c, 1, NO_PAD_CTRL) |
1461 | #define MX51_PAD_DISP2_DAT13__AUD6_TXC (_MX51_PAD_DISP2_DAT13__AUD6_TXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 707 | #define MX51_PAD_DISP2_DAT13__AUD6_TXC IOMUX_PAD(0x790, 0x388, 4, 0x8fc, 1, NO_PAD_CTRL) |
1462 | #define MX51_PAD_DISP2_DAT13__DISP2_DAT13 (_MX51_PAD_DISP2_DAT13__DISP2_DAT13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 708 | #define MX51_PAD_DISP2_DAT13__DISP2_DAT13 IOMUX_PAD(0x790, 0x388, 0, __NA_, 0, NO_PAD_CTRL) |
1463 | #define MX51_PAD_DISP2_DAT13__FEC_TX_CLK (_MX51_PAD_DISP2_DAT13__FEC_TX_CLK | MUX_PAD_CTRL(MX51_PAD_CTRL_4)) | 709 | #define MX51_PAD_DISP2_DAT13__FEC_TX_CLK IOMUX_PAD(0x790, 0x388, 2, 0x974, 1, MX51_PAD_CTRL_4) |
1464 | #define MX51_PAD_DISP2_DAT13__USBH3_DATA5 (_MX51_PAD_DISP2_DAT13__USBH3_DATA5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 710 | #define MX51_PAD_DISP2_DAT13__USBH3_DATA5 IOMUX_PAD(0x790, 0x388, 3, 0xa10, 1, NO_PAD_CTRL) |
1465 | #define MX51_PAD_DISP2_DAT14__AUD6_TXFS (_MX51_PAD_DISP2_DAT14__AUD6_TXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 711 | #define MX51_PAD_DISP2_DAT14__AUD6_TXFS IOMUX_PAD(0x794, 0x38c, 4, 0x900, 1, NO_PAD_CTRL) |
1466 | #define MX51_PAD_DISP2_DAT14__DISP2_DAT14 (_MX51_PAD_DISP2_DAT14__DISP2_DAT14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 712 | #define MX51_PAD_DISP2_DAT14__DISP2_DAT14 IOMUX_PAD(0x794, 0x38c, 0, __NA_, 0, NO_PAD_CTRL) |
1467 | #define MX51_PAD_DISP2_DAT14__FEC_RDATA0 (_MX51_PAD_DISP2_DAT14__FEC_RDATA0 | MUX_PAD_CTRL(MX51_PAD_CTRL_4)) | 713 | #define MX51_PAD_DISP2_DAT14__FEC_RDATA0 IOMUX_PAD(0x794, 0x38c, 2, 0x958, 1, MX51_PAD_CTRL_4) |
1468 | #define MX51_PAD_DISP2_DAT14__USBH3_DATA6 (_MX51_PAD_DISP2_DAT14__USBH3_DATA6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 714 | #define MX51_PAD_DISP2_DAT14__USBH3_DATA6 IOMUX_PAD(0x794, 0x38c, 3, 0xa14, 1, NO_PAD_CTRL) |
1469 | #define MX51_PAD_DISP2_DAT15__AUD6_RXFS (_MX51_PAD_DISP2_DAT15__AUD6_RXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 715 | #define MX51_PAD_DISP2_DAT15__AUD6_RXFS IOMUX_PAD(0x798, 0x390, 4, 0x8f8, 1, NO_PAD_CTRL) |
1470 | #define MX51_PAD_DISP2_DAT15__DISP1_SER_CS (_MX51_PAD_DISP2_DAT15__DISP1_SER_CS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 716 | #define MX51_PAD_DISP2_DAT15__DISP1_SER_CS IOMUX_PAD(0x798, 0x390, 5, __NA_, 0, NO_PAD_CTRL) |
1471 | #define MX51_PAD_DISP2_DAT15__DISP2_DAT15 (_MX51_PAD_DISP2_DAT15__DISP2_DAT15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 717 | #define MX51_PAD_DISP2_DAT15__DISP2_DAT15 IOMUX_PAD(0x798, 0x390, 0, __NA_, 0, NO_PAD_CTRL) |
1472 | #define MX51_PAD_DISP2_DAT15__FEC_TDATA0 (_MX51_PAD_DISP2_DAT15__FEC_TDATA0 | MUX_PAD_CTRL(MX51_PAD_CTRL_5)) | 718 | #define MX51_PAD_DISP2_DAT15__FEC_TDATA0 IOMUX_PAD(0x798, 0x390, 2, __NA_, 0, MX51_PAD_CTRL_5) |
1473 | #define MX51_PAD_DISP2_DAT15__USBH3_DATA7 (_MX51_PAD_DISP2_DAT15__USBH3_DATA7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 719 | #define MX51_PAD_DISP2_DAT15__USBH3_DATA7 IOMUX_PAD(0x798, 0x390, 3, 0xa18, 1, NO_PAD_CTRL) |
1474 | #define MX51_PAD_SD1_CMD__AUD5_RXFS (_MX51_PAD_SD1_CMD__AUD5_RXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 720 | #define MX51_PAD_SD1_CMD__AUD5_RXFS IOMUX_PAD(0x79c, 0x394, 1, 0x8e0, 1, NO_PAD_CTRL) |
1475 | #define MX51_PAD_SD1_CMD__CSPI_MOSI (_MX51_PAD_SD1_CMD__CSPI_MOSI | MUX_PAD_CTRL(NO_PAD_CTRL)) | 721 | #define MX51_PAD_SD1_CMD__CSPI_MOSI IOMUX_PAD(0x79c, 0x394, 2, 0x91c, 2, NO_PAD_CTRL) |
1476 | #define MX51_PAD_SD1_CMD__SD1_CMD (_MX51_PAD_SD1_CMD__SD1_CMD | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL)) | 722 | #define MX51_PAD_SD1_CMD__SD1_CMD IOMUX_PAD(0x79c, 0x394, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL) |
1477 | #define MX51_PAD_SD1_CLK__AUD5_RXC (_MX51_PAD_SD1_CLK__AUD5_RXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 723 | #define MX51_PAD_SD1_CLK__AUD5_RXC IOMUX_PAD(0x7a0, 0x398, 1, 0x8dc, 1, NO_PAD_CTRL) |
1478 | #define MX51_PAD_SD1_CLK__CSPI_SCLK (_MX51_PAD_SD1_CLK__CSPI_SCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 724 | #define MX51_PAD_SD1_CLK__CSPI_SCLK IOMUX_PAD(0x7a0, 0x398, 2, 0x914, 2, NO_PAD_CTRL) |
1479 | #define MX51_PAD_SD1_CLK__SD1_CLK (_MX51_PAD_SD1_CLK__SD1_CLK | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL | PAD_CTL_HYS)) | 725 | #define MX51_PAD_SD1_CLK__SD1_CLK IOMUX_PAD(0x7a0, 0x398, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL | PAD_CTL_HYS) |
1480 | #define MX51_PAD_SD1_DATA0__AUD5_TXD (_MX51_PAD_SD1_DATA0__AUD5_TXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 726 | #define MX51_PAD_SD1_DATA0__AUD5_TXD IOMUX_PAD(0x7a4, 0x39c, 1, 0x8d8, 2, NO_PAD_CTRL) |
1481 | #define MX51_PAD_SD1_DATA0__CSPI_MISO (_MX51_PAD_SD1_DATA0__CSPI_MISO | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 727 | #define MX51_PAD_SD1_DATA0__CSPI_MISO IOMUX_PAD(0x7a4, 0x39c, 2, 0x918, 1, MX51_ECSPI_PAD_CTRL) |
1482 | #define MX51_PAD_SD1_DATA0__SD1_DATA0 (_MX51_PAD_SD1_DATA0__SD1_DATA0 | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL)) | 728 | #define MX51_PAD_SD1_DATA0__SD1_DATA0 IOMUX_PAD(0x7a4, 0x39c, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL) |
1483 | #define MX51_PAD_EIM_DA0__EIM_DA0 (_MX51_PAD_EIM_DA0__EIM_DA0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 729 | #define MX51_PAD_EIM_DA0__EIM_DA0 IOMUX_PAD(__NA_, 0x01c, 0, 0x000, 0, NO_PAD_CTRL) |
1484 | #define MX51_PAD_EIM_DA1__EIM_DA1 (_MX51_PAD_EIM_DA1__EIM_DA1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 730 | #define MX51_PAD_EIM_DA1__EIM_DA1 IOMUX_PAD(__NA_, 0x020, 0, 0x000, 0, NO_PAD_CTRL) |
1485 | #define MX51_PAD_EIM_DA2__EIM_DA2 (_MX51_PAD_EIM_DA2__EIM_DA2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 731 | #define MX51_PAD_EIM_DA2__EIM_DA2 IOMUX_PAD(__NA_, 0x024, 0, 0x000, 0, NO_PAD_CTRL) |
1486 | #define MX51_PAD_EIM_DA3__EIM_DA3 (_MX51_PAD_EIM_DA3__EIM_DA3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 732 | #define MX51_PAD_EIM_DA3__EIM_DA3 IOMUX_PAD(__NA_, 0x028, 0, 0x000, 0, NO_PAD_CTRL) |
1487 | #define MX51_PAD_SD1_DATA1__AUD5_RXD (_MX51_PAD_SD1_DATA1__AUD5_RXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 733 | #define MX51_PAD_SD1_DATA1__AUD5_RXD IOMUX_PAD(0x7a8, 0x3a0, 1, 0x8d4, 2, NO_PAD_CTRL) |
1488 | #define MX51_PAD_SD1_DATA1__SD1_DATA1 (_MX51_PAD_SD1_DATA1__SD1_DATA1 | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL)) | 734 | #define MX51_PAD_SD1_DATA1__SD1_DATA1 IOMUX_PAD(0x7a8, 0x3a0, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL) |
1489 | #define MX51_PAD_EIM_DA4__EIM_DA4 (_MX51_PAD_EIM_DA4__EIM_DA4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 735 | #define MX51_PAD_EIM_DA4__EIM_DA4 IOMUX_PAD(__NA_, 0x02c, 0, 0x000, 0, NO_PAD_CTRL) |
1490 | #define MX51_PAD_EIM_DA5__EIM_DA5 (_MX51_PAD_EIM_DA5__EIM_DA5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 736 | #define MX51_PAD_EIM_DA5__EIM_DA5 IOMUX_PAD(__NA_, 0x030, 0, 0x000, 0, NO_PAD_CTRL) |
1491 | #define MX51_PAD_EIM_DA6__EIM_DA6 (_MX51_PAD_EIM_DA6__EIM_DA6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 737 | #define MX51_PAD_EIM_DA6__EIM_DA6 IOMUX_PAD(__NA_, 0x034, 0, 0x000, 0, NO_PAD_CTRL) |
1492 | #define MX51_PAD_EIM_DA7__EIM_DA7 (_MX51_PAD_EIM_DA7__EIM_DA7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 738 | #define MX51_PAD_EIM_DA7__EIM_DA7 IOMUX_PAD(__NA_, 0x038, 0, 0x000, 0, NO_PAD_CTRL) |
1493 | #define MX51_PAD_SD1_DATA2__AUD5_TXC (_MX51_PAD_SD1_DATA2__AUD5_TXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 739 | #define MX51_PAD_SD1_DATA2__AUD5_TXC IOMUX_PAD(0x7ac, 0x3a4, 1, 0x8e4, 2, NO_PAD_CTRL) |
1494 | #define MX51_PAD_SD1_DATA2__SD1_DATA2 (_MX51_PAD_SD1_DATA2__SD1_DATA2 | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL)) | 740 | #define MX51_PAD_SD1_DATA2__SD1_DATA2 IOMUX_PAD(0x7ac, 0x3a4, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL) |
1495 | #define MX51_PAD_EIM_DA10__EIM_DA10 (_MX51_PAD_EIM_DA10__EIM_DA10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 741 | #define MX51_PAD_EIM_DA10__EIM_DA10 IOMUX_PAD(__NA_, 0x044, 0, 0x000, 0, NO_PAD_CTRL) |
1496 | #define MX51_PAD_EIM_DA11__EIM_DA11 (_MX51_PAD_EIM_DA11__EIM_DA11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 742 | #define MX51_PAD_EIM_DA11__EIM_DA11 IOMUX_PAD(__NA_, 0x048, 0, 0x000, 0, NO_PAD_CTRL) |
1497 | #define MX51_PAD_EIM_DA8__EIM_DA8 (_MX51_PAD_EIM_DA8__EIM_DA8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 743 | #define MX51_PAD_EIM_DA8__EIM_DA8 IOMUX_PAD(__NA_, 0x03c, 0, 0x000, 0, NO_PAD_CTRL) |
1498 | #define MX51_PAD_EIM_DA9__EIM_DA9 (_MX51_PAD_EIM_DA9__EIM_DA9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 744 | #define MX51_PAD_EIM_DA9__EIM_DA9 IOMUX_PAD(__NA_, 0x040, 0, 0x000, 0, NO_PAD_CTRL) |
1499 | #define MX51_PAD_SD1_DATA3__AUD5_TXFS (_MX51_PAD_SD1_DATA3__AUD5_TXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 745 | #define MX51_PAD_SD1_DATA3__AUD5_TXFS IOMUX_PAD(0x7b0, 0x3a8, 1, 0x8e8, 2, NO_PAD_CTRL) |
1500 | #define MX51_PAD_SD1_DATA3__CSPI_SS1 (_MX51_PAD_SD1_DATA3__CSPI_SS1 | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 746 | #define MX51_PAD_SD1_DATA3__CSPI_SS1 IOMUX_PAD(0x7b0, 0x3a8, 2, 0x920, 1, MX51_ECSPI_PAD_CTRL) |
1501 | #define MX51_PAD_SD1_DATA3__SD1_DATA3 (_MX51_PAD_SD1_DATA3__SD1_DATA3 | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL)) | 747 | #define MX51_PAD_SD1_DATA3__SD1_DATA3 IOMUX_PAD(0x7b0, 0x3a8, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL) |
1502 | #define MX51_PAD_GPIO1_0__CSPI_SS2 (_MX51_PAD_GPIO1_0__CSPI_SS2 | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 748 | #define MX51_PAD_GPIO1_0__CSPI_SS2 IOMUX_PAD(0x7b4, 0x3ac, 2, 0x924, 0, MX51_ECSPI_PAD_CTRL) |
1503 | #define MX51_PAD_GPIO1_0__GPIO1_0 (_MX51_PAD_GPIO1_0__GPIO1_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 749 | #define MX51_PAD_GPIO1_0__GPIO1_0 IOMUX_PAD(0x7b4, 0x3ac, 1, __NA_, 0, NO_PAD_CTRL) |
1504 | #define MX51_PAD_GPIO1_0__SD1_CD (_MX51_PAD_GPIO1_0__SD1_CD | MUX_PAD_CTRL(MX51_ESDHC_PAD_CTRL)) | 750 | #define MX51_PAD_GPIO1_0__SD1_CD IOMUX_PAD(0x7b4, 0x3ac, 0, __NA_, 0, MX51_ESDHC_PAD_CTRL) |
1505 | #define MX51_PAD_GPIO1_1__CSPI_MISO (_MX51_PAD_GPIO1_1__CSPI_MISO | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 751 | #define MX51_PAD_GPIO1_1__CSPI_MISO IOMUX_PAD(0x7b8, 0x3b0, 2, 0x918, 2, MX51_ECSPI_PAD_CTRL) |
1506 | #define MX51_PAD_GPIO1_1__GPIO1_1 (_MX51_PAD_GPIO1_1__GPIO1_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 752 | #define MX51_PAD_GPIO1_1__GPIO1_1 IOMUX_PAD(0x7b8, 0x3b0, 1, __NA_, 0, NO_PAD_CTRL) |
1507 | #define MX51_PAD_GPIO1_1__SD1_WP (_MX51_PAD_GPIO1_1__SD1_WP | MUX_PAD_CTRL(MX51_ESDHC_PAD_CTRL)) | 753 | #define MX51_PAD_GPIO1_1__SD1_WP IOMUX_PAD(0x7b8, 0x3b0, 0, __NA_, 0, MX51_ESDHC_PAD_CTRL) |
1508 | #define MX51_PAD_EIM_DA12__EIM_DA12 (_MX51_PAD_EIM_DA12__EIM_DA12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 754 | #define MX51_PAD_EIM_DA12__EIM_DA12 IOMUX_PAD(__NA_, 0x04c, 0, 0x000, 0, NO_PAD_CTRL) |
1509 | #define MX51_PAD_EIM_DA13__EIM_DA13 (_MX51_PAD_EIM_DA13__EIM_DA13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 755 | #define MX51_PAD_EIM_DA13__EIM_DA13 IOMUX_PAD(__NA_, 0x050, 0, 0x000, 0, NO_PAD_CTRL) |
1510 | #define MX51_PAD_EIM_DA14__EIM_DA14 (_MX51_PAD_EIM_DA14__EIM_DA14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 756 | #define MX51_PAD_EIM_DA14__EIM_DA14 IOMUX_PAD(__NA_, 0x054, 0, 0x000, 0, NO_PAD_CTRL) |
1511 | #define MX51_PAD_EIM_DA15__EIM_DA15 (_MX51_PAD_EIM_DA15__EIM_DA15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 757 | #define MX51_PAD_EIM_DA15__EIM_DA15 IOMUX_PAD(__NA_, 0x058, 0, 0x000, 0, NO_PAD_CTRL) |
1512 | #define MX51_PAD_SD2_CMD__CSPI_MOSI (_MX51_PAD_SD2_CMD__CSPI_MOSI | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 758 | #define MX51_PAD_SD2_CMD__CSPI_MOSI IOMUX_PAD(__NA_, 0x3b4, 2, 0x91c, 3, MX51_ECSPI_PAD_CTRL) |
1513 | #define MX51_PAD_SD2_CMD__I2C1_SCL (_MX51_PAD_SD2_CMD__I2C1_SCL | MUX_PAD_CTRL(MX51_I2C_PAD_CTRL)) | 759 | #define MX51_PAD_SD2_CMD__I2C1_SCL IOMUX_PAD(0x7bc, 0x3b4, 0x11, 0x9b0, 2, MX51_I2C_PAD_CTRL) |
1514 | #define MX51_PAD_SD2_CMD__SD2_CMD (_MX51_PAD_SD2_CMD__SD2_CMD | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL)) | 760 | #define MX51_PAD_SD2_CMD__SD2_CMD IOMUX_PAD(0x7bc, 0x3b4, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL) |
1515 | #define MX51_PAD_SD2_CLK__CSPI_SCLK (_MX51_PAD_SD2_CLK__CSPI_SCLK | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 761 | #define MX51_PAD_SD2_CLK__CSPI_SCLK IOMUX_PAD(0x7c0, 0x3b8, 2, 0x914, 3, MX51_ECSPI_PAD_CTRL) |
1516 | #define MX51_PAD_SD2_CLK__I2C1_SDA (_MX51_PAD_SD2_CLK__I2C1_SDA | MUX_PAD_CTRL(MX51_I2C_PAD_CTRL)) | 762 | #define MX51_PAD_SD2_CLK__I2C1_SDA IOMUX_PAD(0x7c0, 0x3b8, 0x11, 0x9b4, 2, MX51_I2C_PAD_CTRL) |
1517 | #define MX51_PAD_SD2_CLK__SD2_CLK (_MX51_PAD_SD2_CLK__SD2_CLK | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL | PAD_CTL_HYS)) | 763 | #define MX51_PAD_SD2_CLK__SD2_CLK IOMUX_PAD(0x7c0, 0x3b8, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL | PAD_CTL_HYS) |
1518 | #define MX51_PAD_SD2_DATA0__CSPI_MISO (_MX51_PAD_SD2_DATA0__CSPI_MISO | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 764 | #define MX51_PAD_SD2_DATA0__CSPI_MISO IOMUX_PAD(0x7c4, 0x3bc, 2, 0x918, 3, MX51_ECSPI_PAD_CTRL) |
1519 | #define MX51_PAD_SD2_DATA0__SD1_DAT4 (_MX51_PAD_SD2_DATA0__SD1_DAT4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 765 | #define MX51_PAD_SD2_DATA0__SD1_DAT4 IOMUX_PAD(0x7c4, 0x3bc, 1, __NA_, 0, NO_PAD_CTRL) |
1520 | #define MX51_PAD_SD2_DATA0__SD2_DATA0 (_MX51_PAD_SD2_DATA0__SD2_DATA0 | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL)) | 766 | #define MX51_PAD_SD2_DATA0__SD2_DATA0 IOMUX_PAD(0x7c4, 0x3bc, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL) |
1521 | #define MX51_PAD_SD2_DATA1__SD1_DAT5 (_MX51_PAD_SD2_DATA1__SD1_DAT5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 767 | #define MX51_PAD_SD2_DATA1__SD1_DAT5 IOMUX_PAD(0x7c8, 0x3c0, 1, __NA_, 0, NO_PAD_CTRL) |
1522 | #define MX51_PAD_SD2_DATA1__SD2_DATA1 (_MX51_PAD_SD2_DATA1__SD2_DATA1 | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL)) | 768 | #define MX51_PAD_SD2_DATA1__SD2_DATA1 IOMUX_PAD(0x7c8, 0x3c0, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL) |
1523 | #define MX51_PAD_SD2_DATA1__USBH3_H2_DP (_MX51_PAD_SD2_DATA1__USBH3_H2_DP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 769 | #define MX51_PAD_SD2_DATA1__USBH3_H2_DP IOMUX_PAD(0x7c8, 0x3c0, 2, __NA_, 0, NO_PAD_CTRL) |
1524 | #define MX51_PAD_SD2_DATA2__SD1_DAT6 (_MX51_PAD_SD2_DATA2__SD1_DAT6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 770 | #define MX51_PAD_SD2_DATA2__SD1_DAT6 IOMUX_PAD(0x7cc, 0x3c4, 1, __NA_, 0, NO_PAD_CTRL) |
1525 | #define MX51_PAD_SD2_DATA2__SD2_DATA2 (_MX51_PAD_SD2_DATA2__SD2_DATA2 | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL)) | 771 | #define MX51_PAD_SD2_DATA2__SD2_DATA2 IOMUX_PAD(0x7cc, 0x3c4, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL) |
1526 | #define MX51_PAD_SD2_DATA2__USBH3_H2_DM (_MX51_PAD_SD2_DATA2__USBH3_H2_DM | MUX_PAD_CTRL(NO_PAD_CTRL)) | 772 | #define MX51_PAD_SD2_DATA2__USBH3_H2_DM IOMUX_PAD(0x7cc, 0x3c4, 2, __NA_, 0, NO_PAD_CTRL) |
1527 | #define MX51_PAD_SD2_DATA3__CSPI_SS2 (_MX51_PAD_SD2_DATA3__CSPI_SS2 | MUX_PAD_CTRL(MX51_ECSPI_PAD_CTRL)) | 773 | #define MX51_PAD_SD2_DATA3__CSPI_SS2 IOMUX_PAD(0x7d0, 0x3c8, 2, 0x924, 1, MX51_ECSPI_PAD_CTRL) |
1528 | #define MX51_PAD_SD2_DATA3__SD1_DAT7 (_MX51_PAD_SD2_DATA3__SD1_DAT7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 774 | #define MX51_PAD_SD2_DATA3__SD1_DAT7 IOMUX_PAD(0x7d0, 0x3c8, 1, __NA_, 0, NO_PAD_CTRL) |
1529 | #define MX51_PAD_SD2_DATA3__SD2_DATA3 (_MX51_PAD_SD2_DATA3__SD2_DATA3 | MUX_PAD_CTRL(MX51_SDHCI_PAD_CTRL)) | 775 | #define MX51_PAD_SD2_DATA3__SD2_DATA3 IOMUX_PAD(0x7d0, 0x3c8, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL) |
1530 | #define MX51_PAD_GPIO1_2__CCM_OUT_2 (_MX51_PAD_GPIO1_2__CCM_OUT_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 776 | #define MX51_PAD_GPIO1_2__CCM_OUT_2 IOMUX_PAD(0x7d4, 0x3cc, 5, __NA_, 0, NO_PAD_CTRL) |
1531 | #define MX51_PAD_GPIO1_2__GPIO1_2 (_MX51_PAD_GPIO1_2__GPIO1_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 777 | #define MX51_PAD_GPIO1_2__GPIO1_2 IOMUX_PAD(0x7d4, 0x3cc, 0, __NA_, 0, NO_PAD_CTRL) |
1532 | #define MX51_PAD_GPIO1_2__I2C2_SCL (_MX51_PAD_GPIO1_2__I2C2_SCL | MUX_PAD_CTRL(MX51_I2C_PAD_CTRL)) | 778 | #define MX51_PAD_GPIO1_2__I2C2_SCL IOMUX_PAD(0x7d4, 0x3cc, 0x12, 0x9b8, 3, MX51_I2C_PAD_CTRL) |
1533 | #define MX51_PAD_GPIO1_2__PLL1_BYP (_MX51_PAD_GPIO1_2__PLL1_BYP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 779 | #define MX51_PAD_GPIO1_2__PLL1_BYP IOMUX_PAD(0x7d4, 0x3cc, 7, 0x90c, 1, NO_PAD_CTRL) |
1534 | #define MX51_PAD_GPIO1_2__PWM1_PWMO (_MX51_PAD_GPIO1_2__PWM1_PWMO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 780 | #define MX51_PAD_GPIO1_2__PWM1_PWMO IOMUX_PAD(0x7d4, 0x3cc, 1, __NA_, 0, NO_PAD_CTRL) |
1535 | #define MX51_PAD_GPIO1_3__GPIO1_3 (_MX51_PAD_GPIO1_3__GPIO1_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 781 | #define MX51_PAD_GPIO1_3__GPIO1_3 IOMUX_PAD(0x7d8, 0x3d0, 0, __NA_, 0, NO_PAD_CTRL) |
1536 | #define MX51_PAD_GPIO1_3__I2C2_SDA (_MX51_PAD_GPIO1_3__I2C2_SDA | MUX_PAD_CTRL(MX51_I2C_PAD_CTRL)) | 782 | #define MX51_PAD_GPIO1_3__I2C2_SDA IOMUX_PAD(0x7d8, 0x3d0, 0x12, 0x9bc, 3, MX51_I2C_PAD_CTRL) |
1537 | #define MX51_PAD_GPIO1_3__PLL2_BYP (_MX51_PAD_GPIO1_3__PLL2_BYP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 783 | #define MX51_PAD_GPIO1_3__PLL2_BYP IOMUX_PAD(0x7d8, 0x3d0, 7, 0x910, 1, NO_PAD_CTRL) |
1538 | #define MX51_PAD_GPIO1_3__PWM2_PWMO (_MX51_PAD_GPIO1_3__PWM2_PWMO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 784 | #define MX51_PAD_GPIO1_3__PWM2_PWMO IOMUX_PAD(0x7d8, 0x3d0, 1, __NA_, 0, NO_PAD_CTRL) |
1539 | #define MX51_PAD_PMIC_INT_REQ__PMIC_INT_REQ (_MX51_PAD_PMIC_INT_REQ__PMIC_INT_REQ | MUX_PAD_CTRL(NO_PAD_CTRL)) | 785 | #define MX51_PAD_PMIC_INT_REQ__PMIC_INT_REQ IOMUX_PAD(0x7fc, 0x3d4, 0, __NA_, 0, NO_PAD_CTRL) |
1540 | #define MX51_PAD_PMIC_INT_REQ__PMIC_PMU_IRQ_B (_MX51_PAD_PMIC_INT_REQ__PMIC_PMU_IRQ_B | MUX_PAD_CTRL(NO_PAD_CTRL)) | 786 | #define MX51_PAD_PMIC_INT_REQ__PMIC_PMU_IRQ_B IOMUX_PAD(0x7fc, 0x3d4, 1, __NA_, 0, NO_PAD_CTRL) |
1541 | #define MX51_PAD_GPIO1_4__DISP2_EXT_CLK (_MX51_PAD_GPIO1_4__DISP2_EXT_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 787 | #define MX51_PAD_GPIO1_4__DISP2_EXT_CLK IOMUX_PAD(0x804, 0x3d8, 4, 0x908, 1, NO_PAD_CTRL) |
1542 | #define MX51_PAD_GPIO1_4__EIM_RDY (_MX51_PAD_GPIO1_4__EIM_RDY | MUX_PAD_CTRL(NO_PAD_CTRL)) | 788 | #define MX51_PAD_GPIO1_4__EIM_RDY IOMUX_PAD(0x804, 0x3d8, 3, 0x938, 1, NO_PAD_CTRL) |
1543 | #define MX51_PAD_GPIO1_4__GPIO1_4 (_MX51_PAD_GPIO1_4__GPIO1_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 789 | #define MX51_PAD_GPIO1_4__GPIO1_4 IOMUX_PAD(0x804, 0x3d8, 0, __NA_, 0, NO_PAD_CTRL) |
1544 | #define MX51_PAD_GPIO1_4__WDOG1_WDOG_B (_MX51_PAD_GPIO1_4__WDOG1_WDOG_B | MUX_PAD_CTRL(NO_PAD_CTRL)) | 790 | #define MX51_PAD_GPIO1_4__WDOG1_WDOG_B IOMUX_PAD(0x804, 0x3d8, 2, __NA_, 0, NO_PAD_CTRL) |
1545 | #define MX51_PAD_GPIO1_5__CSI2_MCLK (_MX51_PAD_GPIO1_5__CSI2_MCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 791 | #define MX51_PAD_GPIO1_5__CSI2_MCLK IOMUX_PAD(0x808, 0x3dc, 6, __NA_, 0, NO_PAD_CTRL) |
1546 | #define MX51_PAD_GPIO1_5__DISP2_PIN16 (_MX51_PAD_GPIO1_5__DISP2_PIN16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 792 | #define MX51_PAD_GPIO1_5__DISP2_PIN16 IOMUX_PAD(0x808, 0x3dc, 3, __NA_, 0, NO_PAD_CTRL) |
1547 | #define MX51_PAD_GPIO1_5__GPIO1_5 (_MX51_PAD_GPIO1_5__GPIO1_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 793 | #define MX51_PAD_GPIO1_5__GPIO1_5 IOMUX_PAD(0x808, 0x3dc, 0, __NA_, 0, NO_PAD_CTRL) |
1548 | #define MX51_PAD_GPIO1_5__WDOG2_WDOG_B (_MX51_PAD_GPIO1_5__WDOG2_WDOG_B | MUX_PAD_CTRL(NO_PAD_CTRL)) | 794 | #define MX51_PAD_GPIO1_5__WDOG2_WDOG_B IOMUX_PAD(0x808, 0x3dc, 2, __NA_, 0, NO_PAD_CTRL) |
1549 | #define MX51_PAD_GPIO1_6__DISP2_PIN17 (_MX51_PAD_GPIO1_6__DISP2_PIN17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 795 | #define MX51_PAD_GPIO1_6__DISP2_PIN17 IOMUX_PAD(0x80c, 0x3e0, 4, __NA_, 0, NO_PAD_CTRL) |
1550 | #define MX51_PAD_GPIO1_6__GPIO1_6 (_MX51_PAD_GPIO1_6__GPIO1_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 796 | #define MX51_PAD_GPIO1_6__GPIO1_6 IOMUX_PAD(0x80c, 0x3e0, 0, __NA_, 0, NO_PAD_CTRL) |
1551 | #define MX51_PAD_GPIO1_6__REF_EN_B (_MX51_PAD_GPIO1_6__REF_EN_B | MUX_PAD_CTRL(NO_PAD_CTRL)) | 797 | #define MX51_PAD_GPIO1_6__REF_EN_B IOMUX_PAD(0x80c, 0x3e0, 3, __NA_, 0, NO_PAD_CTRL) |
1552 | #define MX51_PAD_GPIO1_7__CCM_OUT_0 (_MX51_PAD_GPIO1_7__CCM_OUT_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 798 | #define MX51_PAD_GPIO1_7__CCM_OUT_0 IOMUX_PAD(0x810, 0x3e4, 3, __NA_, 0, NO_PAD_CTRL) |
1553 | #define MX51_PAD_GPIO1_7__GPIO1_7 (_MX51_PAD_GPIO1_7__GPIO1_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 799 | #define MX51_PAD_GPIO1_7__GPIO1_7 IOMUX_PAD(0x810, 0x3e4, 0, __NA_, 0, NO_PAD_CTRL) |
1554 | #define MX51_PAD_GPIO1_7__SD2_WP (_MX51_PAD_GPIO1_7__SD2_WP | MUX_PAD_CTRL(MX51_ESDHC_PAD_CTRL)) | 800 | #define MX51_PAD_GPIO1_7__SD2_WP IOMUX_PAD(0x810, 0x3e4, 6, __NA_, 0, MX51_ESDHC_PAD_CTRL) |
1555 | #define MX51_PAD_GPIO1_7__SPDIF_OUT1 (_MX51_PAD_GPIO1_7__SPDIF_OUT1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 801 | #define MX51_PAD_GPIO1_7__SPDIF_OUT1 IOMUX_PAD(0x810, 0x3e4, 2, __NA_, 0, NO_PAD_CTRL) |
1556 | #define MX51_PAD_GPIO1_8__CSI2_DATA_EN (_MX51_PAD_GPIO1_8__CSI2_DATA_EN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 802 | #define MX51_PAD_GPIO1_8__CSI2_DATA_EN IOMUX_PAD(0x814, 0x3e8, 2, 0x99c, 2, NO_PAD_CTRL) |
1557 | #define MX51_PAD_GPIO1_8__GPIO1_8 (_MX51_PAD_GPIO1_8__GPIO1_8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 803 | #define MX51_PAD_GPIO1_8__GPIO1_8 IOMUX_PAD(0x814, 0x3e8, 0, __NA_, 0, NO_PAD_CTRL) |
1558 | #define MX51_PAD_GPIO1_8__SD2_CD (_MX51_PAD_GPIO1_8__SD2_CD | MUX_PAD_CTRL(MX51_ESDHC_PAD_CTRL)) | 804 | #define MX51_PAD_GPIO1_8__SD2_CD IOMUX_PAD(0x814, 0x3e8, 6, __NA_, 0, MX51_ESDHC_PAD_CTRL) |
1559 | #define MX51_PAD_GPIO1_8__USBH3_PWR (_MX51_PAD_GPIO1_8__USBH3_PWR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 805 | #define MX51_PAD_GPIO1_8__USBH3_PWR IOMUX_PAD(0x814, 0x3e8, 1, __NA_, 0, NO_PAD_CTRL) |
1560 | #define MX51_PAD_GPIO1_9__CCM_OUT_1 (_MX51_PAD_GPIO1_9__CCM_OUT_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 806 | #define MX51_PAD_GPIO1_9__CCM_OUT_1 IOMUX_PAD(0x818, 0x3ec, 3, __NA_, 0, NO_PAD_CTRL) |
1561 | #define MX51_PAD_GPIO1_9__DISP2_D1_CS (_MX51_PAD_GPIO1_9__DISP2_D1_CS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 807 | #define MX51_PAD_GPIO1_9__DISP2_D1_CS IOMUX_PAD(0x818, 0x3ec, 2, __NA_, 0, NO_PAD_CTRL) |
1562 | #define MX51_PAD_GPIO1_9__DISP2_SER_CS (_MX51_PAD_GPIO1_9__DISP2_SER_CS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 808 | #define MX51_PAD_GPIO1_9__DISP2_SER_CS IOMUX_PAD(0x818, 0x3ec, 7, __NA_, 0, NO_PAD_CTRL) |
1563 | #define MX51_PAD_GPIO1_9__GPIO1_9 (_MX51_PAD_GPIO1_9__GPIO1_9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 809 | #define MX51_PAD_GPIO1_9__GPIO1_9 IOMUX_PAD(0x818, 0x3ec, 0, __NA_, 0, NO_PAD_CTRL) |
1564 | #define MX51_PAD_GPIO1_9__SD2_LCTL (_MX51_PAD_GPIO1_9__SD2_LCTL | MUX_PAD_CTRL(NO_PAD_CTRL)) | 810 | #define MX51_PAD_GPIO1_9__SD2_LCTL IOMUX_PAD(0x818, 0x3ec, 6, __NA_, 0, NO_PAD_CTRL) |
1565 | #define MX51_PAD_GPIO1_9__USBH3_OC (_MX51_PAD_GPIO1_9__USBH3_OC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 811 | #define MX51_PAD_GPIO1_9__USBH3_OC IOMUX_PAD(0x818, 0x3ec, 1, __NA_, 0, NO_PAD_CTRL) |
1566 | 812 | ||
1567 | #endif /* __MACH_IOMUX_MX51_H__ */ | 813 | #endif /* __MACH_IOMUX_MX51_H__ */ |
diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx53.h b/arch/arm/plat-mxc/include/mach/iomux-mx53.h index 5408fd1fc736..527f8fe3e31b 100644 --- a/arch/arm/plat-mxc/include/mach/iomux-mx53.h +++ b/arch/arm/plat-mxc/include/mach/iomux-mx53.h | |||
@@ -23,2359 +23,1197 @@ | |||
23 | 23 | ||
24 | /* These 2 defines are for pins that may not have a mux register, but could | 24 | /* These 2 defines are for pins that may not have a mux register, but could |
25 | * have a pad setting register, and vice-versa. */ | 25 | * have a pad setting register, and vice-versa. */ |
26 | #define NON_PAD_I 0x00 | 26 | #define __NA_ 0x00 |
27 | 27 | ||
28 | #define MX53_UART_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \ | 28 | #define MX53_UART_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \ |
29 | PAD_CTL_DSE_HIGH | PAD_CTL_SRE_FAST | PAD_CTL_HYS) | 29 | PAD_CTL_DSE_HIGH | PAD_CTL_SRE_FAST | PAD_CTL_HYS) |
30 | #define MX53_SDHC_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_PKE | PAD_CTL_PUE | \ | 30 | #define MX53_SDHC_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_PKE | PAD_CTL_PUE | \ |
31 | PAD_CTL_PUS_47K_UP | PAD_CTL_DSE_HIGH | \ | 31 | PAD_CTL_PUS_47K_UP | PAD_CTL_DSE_HIGH | \ |
32 | PAD_CTL_SRE_FAST) | 32 | PAD_CTL_SRE_FAST) |
33 | #define PAD_CTRL_I2C (PAD_CTL_SRE_FAST | PAD_CTL_ODE | PAD_CTL_PKE | \ | ||
34 | PAD_CTL_PUE | PAD_CTL_DSE_HIGH | PAD_CTL_PUS_100K_UP \ | ||
35 | | PAD_CTL_HYS) | ||
36 | 33 | ||
37 | #define _MX53_PAD_GPIO_19__KPP_COL_5 IOMUX_PAD(0x348, 0x20, 0, 0x840, 0, 0) | ||
38 | #define _MX53_PAD_GPIO_19__GPIO4_5 IOMUX_PAD(0x348, 0x20, 1, 0x0, 0, 0) | ||
39 | #define _MX53_PAD_GPIO_19__CCM_CLKO IOMUX_PAD(0x348, 0x20, 2, 0x0, 0, 0) | ||
40 | #define _MX53_PAD_GPIO_19__SPDIF_OUT1 IOMUX_PAD(0x348, 0x20, 3, 0x0, 0, 0) | ||
41 | #define _MX53_PAD_GPIO_19__RTC_CE_RTC_EXT_TRIG2 IOMUX_PAD(0x348, 0x20, 4, 0x0, 0, 0) | ||
42 | #define _MX53_PAD_GPIO_19__ECSPI1_RDY IOMUX_PAD(0x348, 0x20, 5, 0x0, 0, 0) | ||
43 | #define _MX53_PAD_GPIO_19__FEC_TDATA_3 IOMUX_PAD(0x348, 0x20, 6, 0x0, 0, 0) | ||
44 | #define _MX53_PAD_GPIO_19__SRC_INT_BOOT IOMUX_PAD(0x348, 0x20,7, 0x0, 0, 0) | ||
45 | #define _MX53_PAD_KEY_COL0__KPP_COL_0 IOMUX_PAD(0x34C, 0x24, 0, 0x0, 0, 0) | ||
46 | #define _MX53_PAD_KEY_COL0__GPIO4_6 IOMUX_PAD(0x34C, 0x24, 1, 0x0, 0, 0) | ||
47 | #define _MX53_PAD_KEY_COL0__AUDMUX_AUD5_TXC IOMUX_PAD(0x34C, 0x24, 2, 0x758, 0, 0) | ||
48 | #define _MX53_PAD_KEY_COL0__UART4_TXD_MUX IOMUX_PAD(0x34C, 0x24, 4, 0x0, 0, 0) | ||
49 | #define _MX53_PAD_KEY_COL0__ECSPI1_SCLK IOMUX_PAD(0x34C, 0x24, 5, 0x79C, 0, 0) | ||
50 | #define _MX53_PAD_KEY_COL0__FEC_RDATA_3 IOMUX_PAD(0x34C, 0x24, 6, 0x0, 0, 0) | ||
51 | #define _MX53_PAD_KEY_COL0__SRC_ANY_PU_RST IOMUX_PAD(0x34C, 0x24, 7, 0x0, 0, 0) | ||
52 | #define _MX53_PAD_KEY_ROW0__KPP_ROW_0 IOMUX_PAD(0x350, 0x28, 0, 0x0, 0, 0) | ||
53 | #define _MX53_PAD_KEY_ROW0__GPIO4_7 IOMUX_PAD(0x350, 0x28, 1, 0x0, 0, 0) | ||
54 | #define _MX53_PAD_KEY_ROW0__AUDMUX_AUD5_TXD IOMUX_PAD(0x350, 0x28, 2, 0x74C, 0, 0) | ||
55 | #define _MX53_PAD_KEY_ROW0__UART4_RXD_MUX IOMUX_PAD(0x350, 0x28, 4, 0x890, 1, 0) | ||
56 | #define _MX53_PAD_KEY_ROW0__ECSPI1_MOSI IOMUX_PAD(0x350, 0x28, 5, 0x7A4, 0, 0) | ||
57 | #define _MX53_PAD_KEY_ROW0__FEC_TX_ER IOMUX_PAD(0x350, 0x28, 6, 0x0, 0, 0) | ||
58 | #define _MX53_PAD_KEY_COL1__KPP_COL_1 IOMUX_PAD(0x354, 0x2C, 0, 0x0, 0, 0) | ||
59 | #define _MX53_PAD_KEY_COL1__GPIO4_8 IOMUX_PAD(0x354, 0x2C, 1, 0x0, 0, 0) | ||
60 | #define _MX53_PAD_KEY_COL1__AUDMUX_AUD5_TXFS IOMUX_PAD(0x354, 0x2C, 2, 0x75C, 0, 0) | ||
61 | #define _MX53_PAD_KEY_COL1__UART5_TXD_MUX IOMUX_PAD(0x354, 0x2C, 4, 0x0, 0, 0) | ||
62 | #define _MX53_PAD_KEY_COL1__ECSPI1_MISO IOMUX_PAD(0x354, 0x2C, 5, 0x7A0, 0, 0) | ||
63 | #define _MX53_PAD_KEY_COL1__FEC_RX_CLK IOMUX_PAD(0x354, 0x2C, 6, 0x808, 0, 0) | ||
64 | #define _MX53_PAD_KEY_COL1__USBPHY1_TXREADY IOMUX_PAD(0x354, 0x2C, 7, 0x0, 0, 0) | ||
65 | #define _MX53_PAD_KEY_ROW1__KPP_ROW_1 IOMUX_PAD(0x358, 0x30, 0, 0x0, 0, 0) | ||
66 | #define _MX53_PAD_KEY_ROW1__GPIO4_9 IOMUX_PAD(0x358, 0x30, 1, 0x0, 0, 0) | ||
67 | #define _MX53_PAD_KEY_ROW1__AUDMUX_AUD5_RXD IOMUX_PAD(0x358, 0x30, 2, 0x748, 0, 0) | ||
68 | #define _MX53_PAD_KEY_ROW1__UART5_RXD_MUX IOMUX_PAD(0x358, 0x30, 4, 0x898, 1, 0) | ||
69 | #define _MX53_PAD_KEY_ROW1__ECSPI1_SS0 IOMUX_PAD(0x358, 0x30, 5, 0x7A8, 0, 0) | ||
70 | #define _MX53_PAD_KEY_ROW1__FEC_COL IOMUX_PAD(0x358, 0x30, 6, 0x800, 0, 0) | ||
71 | #define _MX53_PAD_KEY_ROW1__USBPHY1_RXVALID IOMUX_PAD(0x358, 0x30, 7, 0x0, 0, 0) | ||
72 | #define _MX53_PAD_KEY_COL2__KPP_COL_2 IOMUX_PAD(0x35C, 0x34, 0, 0x0, 0, 0) | ||
73 | #define _MX53_PAD_KEY_COL2__GPIO4_10 IOMUX_PAD(0x35C, 0x34, 1, 0x0, 0, 0) | ||
74 | #define _MX53_PAD_KEY_COL2__CAN1_TXCAN IOMUX_PAD(0x35C, 0x34, 2, 0x0, 0, 0) | ||
75 | #define _MX53_PAD_KEY_COL2__FEC_MDIO IOMUX_PAD(0x35C, 0x34, 4, 0x804, 0, 0) | ||
76 | #define _MX53_PAD_KEY_COL2__ECSPI1_SS1 IOMUX_PAD(0x35C, 0x34, 5, 0x7AC, 0, 0) | ||
77 | #define _MX53_PAD_KEY_COL2__FEC_RDATA_2 IOMUX_PAD(0x35C, 0x34, 6, 0x0, 0, 0) | ||
78 | #define _MX53_PAD_KEY_COL2__USBPHY1_RXACTIVE IOMUX_PAD(0x35C, 0x34, 7, 0x0, 0, 0) | ||
79 | #define _MX53_PAD_KEY_ROW2__KPP_ROW_2 IOMUX_PAD(0x360, 0x38, 0, 0x0, 0, 0) | ||
80 | #define _MX53_PAD_KEY_ROW2__GPIO4_11 IOMUX_PAD(0x360, 0x38, 1, 0x0, 0, 0) | ||
81 | #define _MX53_PAD_KEY_ROW2__CAN1_RXCAN IOMUX_PAD(0x360, 0x38, 2, 0x760, 0, 0) | ||
82 | #define _MX53_PAD_KEY_ROW2__FEC_MDC IOMUX_PAD(0x360, 0x38, 4, 0x0, 0, 0) | ||
83 | #define _MX53_PAD_KEY_ROW2__ECSPI1_SS2 IOMUX_PAD(0x360, 0x38, 5, 0x7B0, 0, 0) | ||
84 | #define _MX53_PAD_KEY_ROW2__FEC_TDATA_2 IOMUX_PAD(0x360, 0x38, 6, 0x0, 0, 0) | ||
85 | #define _MX53_PAD_KEY_ROW2__USBPHY1_RXERROR IOMUX_PAD(0x360, 0x38, 7, 0x0, 0, 0) | ||
86 | #define _MX53_PAD_KEY_COL3__KPP_COL_3 IOMUX_PAD(0x364, 0x3C, 0, 0x0, 0, 0) | ||
87 | #define _MX53_PAD_KEY_COL3__GPIO4_12 IOMUX_PAD(0x364, 0x3C, 1, 0x0, 0, 0) | ||
88 | #define _MX53_PAD_KEY_COL3__USBOH3_H2_DP IOMUX_PAD(0x364, 0x3C, 2, 0x0, 0, 0) | ||
89 | #define _MX53_PAD_KEY_COL3__SPDIF_IN1 IOMUX_PAD(0x364, 0x3C, 3, 0x870, 0, 0) | ||
90 | #define _MX53_PAD_KEY_COL3__I2C2_SCL IOMUX_PAD(0x364, 0x3C, 4 | IOMUX_CONFIG_SION, 0x81C, 0, 0) | ||
91 | #define _MX53_PAD_KEY_COL3__ECSPI1_SS3 IOMUX_PAD(0x364, 0x3C, 5, 0x7B4, 0, 0) | ||
92 | #define _MX53_PAD_KEY_COL3__FEC_CRS IOMUX_PAD(0x364, 0x3C, 6, 0x0, 0, 0) | ||
93 | #define _MX53_PAD_KEY_COL3__USBPHY1_SIECLOCK IOMUX_PAD(0x364, 0x3C, 7, 0x0, 0, 0) | ||
94 | #define _MX53_PAD_KEY_ROW3__KPP_ROW_3 IOMUX_PAD(0x368, 0x40, 0, 0x0, 0, 0) | ||
95 | #define _MX53_PAD_KEY_ROW3__GPIO4_13 IOMUX_PAD(0x368, 0x40, 1, 0x0, 0, 0) | ||
96 | #define _MX53_PAD_KEY_ROW3__USBOH3_H2_DM IOMUX_PAD(0x368, 0x40, 2, 0x0, 0, 0) | ||
97 | #define _MX53_PAD_KEY_ROW3__CCM_ASRC_EXT_CLK IOMUX_PAD(0x368, 0x40, 3, 0x768, 0, 0) | ||
98 | #define _MX53_PAD_KEY_ROW3__I2C2_SDA IOMUX_PAD(0x368, 0x40, 4 | IOMUX_CONFIG_SION, 0x820, 0, 0) | ||
99 | #define _MX53_PAD_KEY_ROW3__OSC32K_32K_OUT IOMUX_PAD(0x368, 0x40, 5, 0x0, 0, 0) | ||
100 | #define _MX53_PAD_KEY_ROW3__CCM_PLL4_BYP IOMUX_PAD(0x368, 0x40, 6, 0x77C, 0, 0) | ||
101 | #define _MX53_PAD_KEY_ROW3__USBPHY1_LINESTATE_0 IOMUX_PAD(0x368, 0x40, 7, 0x0, 0, 0) | ||
102 | #define _MX53_PAD_KEY_COL4__KPP_COL_4 IOMUX_PAD(0x36C, 0x44, 0, 0x0, 0, 0) | ||
103 | #define _MX53_PAD_KEY_COL4__GPIO4_14 IOMUX_PAD(0x36C, 0x44, 1, 0x0, 0, 0) | ||
104 | #define _MX53_PAD_KEY_COL4__CAN2_TXCAN IOMUX_PAD(0x36C, 0x44, 2, 0x0, 0, 0) | ||
105 | #define _MX53_PAD_KEY_COL4__IPU_SISG_4 IOMUX_PAD(0x36C, 0x44, 3, 0x0, 0, 0) | ||
106 | #define _MX53_PAD_KEY_COL4__UART5_RTS IOMUX_PAD(0x36C, 0x44, 4, 0x894, 0, 0) | ||
107 | #define _MX53_PAD_KEY_COL4__USBOH3_USBOTG_OC IOMUX_PAD(0x36C, 0x44, 5, 0x89C, 0, 0) | ||
108 | #define _MX53_PAD_KEY_COL4__USBPHY1_LINESTATE_1 IOMUX_PAD(0x36C, 0x44, 7, 0x0, 0, 0) | ||
109 | #define _MX53_PAD_KEY_ROW4__KPP_ROW_4 IOMUX_PAD(0x370, 0x48, 0, 0x0, 0, 0) | ||
110 | #define _MX53_PAD_KEY_ROW4__GPIO4_15 IOMUX_PAD(0x370, 0x48, 1, 0x0, 0, 0) | ||
111 | #define _MX53_PAD_KEY_ROW4__CAN2_RXCAN IOMUX_PAD(0x370, 0x48, 2, 0x764, 0, 0) | ||
112 | #define _MX53_PAD_KEY_ROW4__IPU_SISG_5 IOMUX_PAD(0x370, 0x48, 3, 0x0, 0, 0) | ||
113 | #define _MX53_PAD_KEY_ROW4__UART5_CTS IOMUX_PAD(0x370, 0x48, 4, 0x0, 0, 0) | ||
114 | #define _MX53_PAD_KEY_ROW4__USBOH3_USBOTG_PWR IOMUX_PAD(0x370, 0x48, 5, 0x0, 0, 0) | ||
115 | #define _MX53_PAD_KEY_ROW4__USBPHY1_VBUSVALID IOMUX_PAD(0x370, 0x48, 7, 0x0, 0, 0) | ||
116 | #define _MX53_PAD_DI0_DISP_CLK__IPU_DI0_DISP_CLK IOMUX_PAD(0x378, 0x4C, 0, 0x0, 0, 0) | ||
117 | #define _MX53_PAD_DI0_DISP_CLK__GPIO4_16 IOMUX_PAD(0x378, 0x4C, 1, 0x0, 0, 0) | ||
118 | #define _MX53_PAD_DI0_DISP_CLK__USBOH3_USBH2_DIR IOMUX_PAD(0x378, 0x4C, 2, 0x0, 0, 0) | ||
119 | #define _MX53_PAD_DI0_DISP_CLK__SDMA_DEBUG_CORE_STATE_0 IOMUX_PAD(0x378, 0x4C, 5, 0x0, 0, 0) | ||
120 | #define _MX53_PAD_DI0_DISP_CLK__EMI_EMI_DEBUG_0 IOMUX_PAD(0x378, 0x4C, 6, 0x0, 0, 0) | ||
121 | #define _MX53_PAD_DI0_DISP_CLK__USBPHY1_AVALID IOMUX_PAD(0x378, 0x4C, 7, 0x0, 0, 0) | ||
122 | #define _MX53_PAD_DI0_PIN15__IPU_DI0_PIN15 IOMUX_PAD(0x37C, 0x50, 0, 0x0, 0, 0) | ||
123 | #define _MX53_PAD_DI0_PIN15__GPIO4_17 IOMUX_PAD(0x37C, 0x50, 1, 0x0, 0, 0) | ||
124 | #define _MX53_PAD_DI0_PIN15__AUDMUX_AUD6_TXC IOMUX_PAD(0x37C, 0x50, 2, 0x0, 0, 0) | ||
125 | #define _MX53_PAD_DI0_PIN15__SDMA_DEBUG_CORE_STATE_1 IOMUX_PAD(0x37C, 0x50, 5, 0x0, 0, 0) | ||
126 | #define _MX53_PAD_DI0_PIN15__EMI_EMI_DEBUG_1 IOMUX_PAD(0x37C, 0x50, 6, 0x0, 0, 0) | ||
127 | #define _MX53_PAD_DI0_PIN15__USBPHY1_BVALID IOMUX_PAD(0x37C, 0x50, 7, 0x0, 0, 0) | ||
128 | #define _MX53_PAD_DI0_PIN2__IPU_DI0_PIN2 IOMUX_PAD(0x380, 0x54, 0, 0x0, 0, 0) | ||
129 | #define _MX53_PAD_DI0_PIN2__GPIO4_18 IOMUX_PAD(0x380, 0x54, 1, 0x0, 0, 0) | ||
130 | #define _MX53_PAD_DI0_PIN2__AUDMUX_AUD6_TXD IOMUX_PAD(0x380, 0x54, 2, 0x0, 0, 0) | ||
131 | #define _MX53_PAD_DI0_PIN2__SDMA_DEBUG_CORE_STATE_2 IOMUX_PAD(0x380, 0x54, 5, 0x0, 0, 0) | ||
132 | #define _MX53_PAD_DI0_PIN2__EMI_EMI_DEBUG_2 IOMUX_PAD(0x380, 0x54, 6, 0x0, 0, 0) | ||
133 | #define _MX53_PAD_DI0_PIN2__USBPHY1_ENDSESSION IOMUX_PAD(0x380, 0x54, 7, 0x0, 0, 0) | ||
134 | #define _MX53_PAD_DI0_PIN3__IPU_DI0_PIN3 IOMUX_PAD(0x384, 0x58, 0, 0x0, 0, 0) | ||
135 | #define _MX53_PAD_DI0_PIN3__GPIO4_19 IOMUX_PAD(0x384, 0x58, 1, 0x0, 0, 0) | ||
136 | #define _MX53_PAD_DI0_PIN3__AUDMUX_AUD6_TXFS IOMUX_PAD(0x384, 0x58, 2, 0x0, 0, 0) | ||
137 | #define _MX53_PAD_DI0_PIN3__SDMA_DEBUG_CORE_STATE_3 IOMUX_PAD(0x384, 0x58, 5, 0x0, 0, 0) | ||
138 | #define _MX53_PAD_DI0_PIN3__EMI_EMI_DEBUG_3 IOMUX_PAD(0x384, 0x58, 6, 0x0, 0, 0) | ||
139 | #define _MX53_PAD_DI0_PIN3__USBPHY1_IDDIG IOMUX_PAD(0x384, 0x58, 7, 0x0, 0, 0) | ||
140 | #define _MX53_PAD_DI0_PIN4__IPU_DI0_PIN4 IOMUX_PAD(0x388, 0x5C, 0, 0x0, 0, 0) | ||
141 | #define _MX53_PAD_DI0_PIN4__GPIO4_20 IOMUX_PAD(0x388, 0x5C, 1, 0x0, 0, 0) | ||
142 | #define _MX53_PAD_DI0_PIN4__AUDMUX_AUD6_RXD IOMUX_PAD(0x388, 0x5C, 2, 0x0, 0, 0) | ||
143 | #define _MX53_PAD_DI0_PIN4__ESDHC1_WP IOMUX_PAD(0x388, 0x5C, 3, 0x7FC, 0, 0) | ||
144 | #define _MX53_PAD_DI0_PIN4__SDMA_DEBUG_YIELD IOMUX_PAD(0x388, 0x5C, 5, 0x0, 0, 0) | ||
145 | #define _MX53_PAD_DI0_PIN4__EMI_EMI_DEBUG_4 IOMUX_PAD(0x388, 0x5C, 6, 0x0, 0, 0) | ||
146 | #define _MX53_PAD_DI0_PIN4__USBPHY1_HOSTDISCONNECT IOMUX_PAD(0x388, 0x5C, 7, 0x0, 0, 0) | ||
147 | #define _MX53_PAD_DISP0_DAT0__IPU_DISP0_DAT_0 IOMUX_PAD(0x38C, 0x60, 0, 0x0, 0, 0) | ||
148 | #define _MX53_PAD_DISP0_DAT0__GPIO4_21 IOMUX_PAD(0x38C, 0x60, 1, 0x0, 0, 0) | ||
149 | #define _MX53_PAD_DISP0_DAT0__CSPI_SCLK IOMUX_PAD(0x38C, 0x60, 2, 0x780, 0, 0) | ||
150 | #define _MX53_PAD_DISP0_DAT0__USBOH3_USBH2_DATA_0 IOMUX_PAD(0x38C, 0x60, 3, 0x0, 0, 0) | ||
151 | #define _MX53_PAD_DISP0_DAT0__SDMA_DEBUG_CORE_RUN IOMUX_PAD(0x38C, 0x60, 5, 0x0, 0, 0) | ||
152 | #define _MX53_PAD_DISP0_DAT0__EMI_EMI_DEBUG_5 IOMUX_PAD(0x38C, 0x60, 6, 0x0, 0, 0) | ||
153 | #define _MX53_PAD_DISP0_DAT0__USBPHY2_TXREADY IOMUX_PAD(0x38C, 0x60, 7, 0x0, 0, 0) | ||
154 | #define _MX53_PAD_DISP0_DAT1__IPU_DISP0_DAT_1 IOMUX_PAD(0x390, 0x64, 0, 0x0, 0, 0) | ||
155 | #define _MX53_PAD_DISP0_DAT1__GPIO4_22 IOMUX_PAD(0x390, 0x64, 1, 0x0, 0, 0) | ||
156 | #define _MX53_PAD_DISP0_DAT1__CSPI_MOSI IOMUX_PAD(0x390, 0x64, 2, 0x788, 0, 0) | ||
157 | #define _MX53_PAD_DISP0_DAT1__USBOH3_USBH2_DATA_1 IOMUX_PAD(0x390, 0x64, 3, 0x0, 0, 0) | ||
158 | #define _MX53_PAD_DISP0_DAT1__SDMA_DEBUG_EVENT_CHANNEL_SEL IOMUX_PAD(0x390, 0x64, 5, 0x0, 0, 0) | ||
159 | #define _MX53_PAD_DISP0_DAT1__EMI_EMI_DEBUG_6 IOMUX_PAD(0x390, 0x64, 6, 0x0, 0, 0) | ||
160 | #define _MX53_PAD_DISP0_DAT1__USBPHY2_RXVALID IOMUX_PAD(0x390, 0x64, 7, 0x0, 0, 0) | ||
161 | #define _MX53_PAD_DISP0_DAT2__IPU_DISP0_DAT_2 IOMUX_PAD(0x394, 0x68, 0, 0x0, 0, 0) | ||
162 | #define _MX53_PAD_DISP0_DAT2__GPIO4_23 IOMUX_PAD(0x394, 0x68, 1, 0x0, 0, 0) | ||
163 | #define _MX53_PAD_DISP0_DAT2__CSPI_MISO IOMUX_PAD(0x394, 0x68, 2, 0x784, 0, 0) | ||
164 | #define _MX53_PAD_DISP0_DAT2__USBOH3_USBH2_DATA_2 IOMUX_PAD(0x394, 0x68, 3, 0x0, 0, 0) | ||
165 | #define _MX53_PAD_DISP0_DAT2__SDMA_DEBUG_MODE IOMUX_PAD(0x394, 0x68, 5, 0x0, 0, 0) | ||
166 | #define _MX53_PAD_DISP0_DAT2__EMI_EMI_DEBUG_7 IOMUX_PAD(0x394, 0x68, 6, 0x0, 0, 0) | ||
167 | #define _MX53_PAD_DISP0_DAT2__USBPHY2_RXACTIVE IOMUX_PAD(0x394, 0x68, 7, 0x0, 0, 0) | ||
168 | #define _MX53_PAD_DISP0_DAT3__IPU_DISP0_DAT_3 IOMUX_PAD(0x398, 0x6C, 0, 0x0, 0, 0) | ||
169 | #define _MX53_PAD_DISP0_DAT3__GPIO4_24 IOMUX_PAD(0x398, 0x6C, 1, 0x0, 0, 0) | ||
170 | #define _MX53_PAD_DISP0_DAT3__CSPI_SS0 IOMUX_PAD(0x398, 0x6C, 2, 0x78C, 0, 0) | ||
171 | #define _MX53_PAD_DISP0_DAT3__USBOH3_USBH2_DATA_3 IOMUX_PAD(0x398, 0x6C, 3, 0x0, 0, 0) | ||
172 | #define _MX53_PAD_DISP0_DAT3__SDMA_DEBUG_BUS_ERROR IOMUX_PAD(0x398, 0x6C, 5, 0x0, 0, 0) | ||
173 | #define _MX53_PAD_DISP0_DAT3__EMI_EMI_DEBUG_8 IOMUX_PAD(0x398, 0x6C, 6, 0x0, 0, 0) | ||
174 | #define _MX53_PAD_DISP0_DAT3__USBPHY2_RXERROR IOMUX_PAD(0x398, 0x6C, 7, 0x0, 0, 0) | ||
175 | #define _MX53_PAD_DISP0_DAT4__IPU_DISP0_DAT_4 IOMUX_PAD(0x39C, 0x70, 0, 0x0, 0, 0) | ||
176 | #define _MX53_PAD_DISP0_DAT4__GPIO4_25 IOMUX_PAD(0x39C, 0x70, 1, 0x0, 0, 0) | ||
177 | #define _MX53_PAD_DISP0_DAT4__CSPI_SS1 IOMUX_PAD(0x39C, 0x70, 2, 0x790, 0, 0) | ||
178 | #define _MX53_PAD_DISP0_DAT4__USBOH3_USBH2_DATA_4 IOMUX_PAD(0x39C, 0x70, 3, 0x0, 0, 0) | ||
179 | #define _MX53_PAD_DISP0_DAT4__SDMA_DEBUG_BUS_RWB IOMUX_PAD(0x39C, 0x70, 5, 0x0, 0, 0) | ||
180 | #define _MX53_PAD_DISP0_DAT4__EMI_EMI_DEBUG_9 IOMUX_PAD(0x39C, 0x70, 6, 0x0, 0, 0) | ||
181 | #define _MX53_PAD_DISP0_DAT4__USBPHY2_SIECLOCK IOMUX_PAD(0x39C, 0x70, 7, 0x0, 0, 0) | ||
182 | #define _MX53_PAD_DISP0_DAT5__IPU_DISP0_DAT_5 IOMUX_PAD(0x3A0, 0x74, 0, 0x0, 0, 0) | ||
183 | #define _MX53_PAD_DISP0_DAT5__GPIO4_26 IOMUX_PAD(0x3A0, 0x74, 1, 0x0, 0, 0) | ||
184 | #define _MX53_PAD_DISP0_DAT5__CSPI_SS2 IOMUX_PAD(0x3A0, 0x74, 2, 0x794, 0, 0) | ||
185 | #define _MX53_PAD_DISP0_DAT5__USBOH3_USBH2_DATA_5 IOMUX_PAD(0x3A0, 0x74, 3, 0x0, 0, 0) | ||
186 | #define _MX53_PAD_DISP0_DAT5__SDMA_DEBUG_MATCHED_DMBUS IOMUX_PAD(0x3A0, 0x74, 5, 0x0, 0, 0) | ||
187 | #define _MX53_PAD_DISP0_DAT5__EMI_EMI_DEBUG_10 IOMUX_PAD(0x3A0, 0x74, 6, 0x0, 0, 0) | ||
188 | #define _MX53_PAD_DISP0_DAT5__USBPHY2_LINESTATE_0 IOMUX_PAD(0x3A0, 0x74, 7, 0x0, 0, 0) | ||
189 | #define _MX53_PAD_DISP0_DAT6__IPU_DISP0_DAT_6 IOMUX_PAD(0x3A4, 0x78, 0, 0x0, 0, 0) | ||
190 | #define _MX53_PAD_DISP0_DAT6__GPIO4_27 IOMUX_PAD(0x3A4, 0x78, 1, 0x0, 0, 0) | ||
191 | #define _MX53_PAD_DISP0_DAT6__CSPI_SS3 IOMUX_PAD(0x3A4, 0x78, 2, 0x798, 0, 0) | ||
192 | #define _MX53_PAD_DISP0_DAT6__USBOH3_USBH2_DATA_6 IOMUX_PAD(0x3A4, 0x78, 3, 0x0, 0, 0) | ||
193 | #define _MX53_PAD_DISP0_DAT6__SDMA_DEBUG_RTBUFFER_WRITE IOMUX_PAD(0x3A4, 0x78, 5, 0x0, 0, 0) | ||
194 | #define _MX53_PAD_DISP0_DAT6__EMI_EMI_DEBUG_11 IOMUX_PAD(0x3A4, 0x78, 6, 0x0, 0, 0) | ||
195 | #define _MX53_PAD_DISP0_DAT6__USBPHY2_LINESTATE_1 IOMUX_PAD(0x3A4, 0x78, 7, 0x0, 0, 0) | ||
196 | #define _MX53_PAD_DISP0_DAT7__IPU_DISP0_DAT_7 IOMUX_PAD(0x3A8, 0x7C, 0, 0x0, 0, 0) | ||
197 | #define _MX53_PAD_DISP0_DAT7__GPIO4_28 IOMUX_PAD(0x3A8, 0x7C, 1, 0x0, 0, 0) | ||
198 | #define _MX53_PAD_DISP0_DAT7__CSPI_RDY IOMUX_PAD(0x3A8, 0x7C, 2, 0x0, 0, 0) | ||
199 | #define _MX53_PAD_DISP0_DAT7__USBOH3_USBH2_DATA_7 IOMUX_PAD(0x3A8, 0x7C, 3, 0x0, 0, 0) | ||
200 | #define _MX53_PAD_DISP0_DAT7__SDMA_DEBUG_EVENT_CHANNEL_0 IOMUX_PAD(0x3A8, 0x7C, 5, 0x0, 0, 0) | ||
201 | #define _MX53_PAD_DISP0_DAT7__EMI_EMI_DEBUG_12 IOMUX_PAD(0x3A8, 0x7C, 6, 0x0, 0, 0) | ||
202 | #define _MX53_PAD_DISP0_DAT7__USBPHY2_VBUSVALID IOMUX_PAD(0x3A8, 0x7C, 7, 0x0, 0, 0) | ||
203 | #define _MX53_PAD_DISP0_DAT8__IPU_DISP0_DAT_8 IOMUX_PAD(0x3AC, 0x80, 0, 0x0, 0, 0) | ||
204 | #define _MX53_PAD_DISP0_DAT8__GPIO4_29 IOMUX_PAD(0x3AC, 0x80, 1, 0x0, 0, 0) | ||
205 | #define _MX53_PAD_DISP0_DAT8__PWM1_PWMO IOMUX_PAD(0x3AC, 0x80, 2, 0x0, 0, 0) | ||
206 | #define _MX53_PAD_DISP0_DAT8__WDOG1_WDOG_B IOMUX_PAD(0x3AC, 0x80, 3, 0x0, 0, 0) | ||
207 | #define _MX53_PAD_DISP0_DAT8__SDMA_DEBUG_EVENT_CHANNEL_1 IOMUX_PAD(0x3AC, 0x80, 5, 0x0, 0, 0) | ||
208 | #define _MX53_PAD_DISP0_DAT8__EMI_EMI_DEBUG_13 IOMUX_PAD(0x3AC, 0x80, 6, 0x0, 0, 0) | ||
209 | #define _MX53_PAD_DISP0_DAT8__USBPHY2_AVALID IOMUX_PAD(0x3AC, 0x80, 7, 0x0, 0, 0) | ||
210 | #define _MX53_PAD_DISP0_DAT9__IPU_DISP0_DAT_9 IOMUX_PAD(0x3B0, 0x84, 0, 0x0, 0, 0) | ||
211 | #define _MX53_PAD_DISP0_DAT9__GPIO4_30 IOMUX_PAD(0x3B0, 0x84, 1, 0x0, 0, 0) | ||
212 | #define _MX53_PAD_DISP0_DAT9__PWM2_PWMO IOMUX_PAD(0x3B0, 0x84, 2, 0x0, 0, 0) | ||
213 | #define _MX53_PAD_DISP0_DAT9__WDOG2_WDOG_B IOMUX_PAD(0x3B0, 0x84, 3, 0x0, 0, 0) | ||
214 | #define _MX53_PAD_DISP0_DAT9__SDMA_DEBUG_EVENT_CHANNEL_2 IOMUX_PAD(0x3B0, 0x84, 5, 0x0, 0, 0) | ||
215 | #define _MX53_PAD_DISP0_DAT9__EMI_EMI_DEBUG_14 IOMUX_PAD(0x3B0, 0x84, 6, 0x0, 0, 0) | ||
216 | #define _MX53_PAD_DISP0_DAT9__USBPHY2_VSTATUS_0 IOMUX_PAD(0x3B0, 0x84, 7, 0x0, 0, 0) | ||
217 | #define _MX53_PAD_DISP0_DAT10__IPU_DISP0_DAT_10 IOMUX_PAD(0x3B4, 0x88, 0, 0x0, 0, 0) | ||
218 | #define _MX53_PAD_DISP0_DAT10__GPIO4_31 IOMUX_PAD(0x3B4, 0x88, 1, 0x0, 0, 0) | ||
219 | #define _MX53_PAD_DISP0_DAT10__USBOH3_USBH2_STP IOMUX_PAD(0x3B4, 0x88, 2, 0x0, 0, 0) | ||
220 | #define _MX53_PAD_DISP0_DAT10__SDMA_DEBUG_EVENT_CHANNEL_3 IOMUX_PAD(0x3B4, 0x88, 5, 0x0, 0, 0) | ||
221 | #define _MX53_PAD_DISP0_DAT10__EMI_EMI_DEBUG_15 IOMUX_PAD(0x3B4, 0x88, 6, 0x0, 0, 0) | ||
222 | #define _MX53_PAD_DISP0_DAT10__USBPHY2_VSTATUS_1 IOMUX_PAD(0x3B4, 0x88, 7, 0x0, 0, 0) | ||
223 | #define _MX53_PAD_DISP0_DAT11__IPU_DISP0_DAT_11 IOMUX_PAD(0x3B8, 0x8C, 0, 0x0, 0, 0) | ||
224 | #define _MX53_PAD_DISP0_DAT11__GPIO5_5 IOMUX_PAD(0x3B8, 0x8C, 1, 0x0, 0, 0) | ||
225 | #define _MX53_PAD_DISP0_DAT11__USBOH3_USBH2_NXT IOMUX_PAD(0x3B8, 0x8C, 2, 0x0, 0, 0) | ||
226 | #define _MX53_PAD_DISP0_DAT11__SDMA_DEBUG_EVENT_CHANNEL_4 IOMUX_PAD(0x3B8, 0x8C, 5, 0x0, 0, 0) | ||
227 | #define _MX53_PAD_DISP0_DAT11__EMI_EMI_DEBUG_16 IOMUX_PAD(0x3B8, 0x8C, 6, 0x0, 0, 0) | ||
228 | #define _MX53_PAD_DISP0_DAT11__USBPHY2_VSTATUS_2 IOMUX_PAD(0x3B8, 0x8C, 7, 0x0, 0, 0) | ||
229 | #define _MX53_PAD_DISP0_DAT12__IPU_DISP0_DAT_12 IOMUX_PAD(0x3BC, 0x90, 0, 0x0, 0, 0) | ||
230 | #define _MX53_PAD_DISP0_DAT12__GPIO5_6 IOMUX_PAD(0x3BC, 0x90, 1, 0x0, 0, 0) | ||
231 | #define _MX53_PAD_DISP0_DAT12__USBOH3_USBH2_CLK IOMUX_PAD(0x3BC, 0x90, 2, 0x0, 0, 0) | ||
232 | #define _MX53_PAD_DISP0_DAT12__SDMA_DEBUG_EVENT_CHANNEL_5 IOMUX_PAD(0x3BC, 0x90, 5, 0x0, 0, 0) | ||
233 | #define _MX53_PAD_DISP0_DAT12__EMI_EMI_DEBUG_17 IOMUX_PAD(0x3BC, 0x90, 6, 0x0, 0, 0) | ||
234 | #define _MX53_PAD_DISP0_DAT12__USBPHY2_VSTATUS_3 IOMUX_PAD(0x3BC, 0x90, 7, 0x0, 0, 0) | ||
235 | #define _MX53_PAD_DISP0_DAT13__IPU_DISP0_DAT_13 IOMUX_PAD(0x3C0, 0x94, 0, 0x0, 0, 0) | ||
236 | #define _MX53_PAD_DISP0_DAT13__GPIO5_7 IOMUX_PAD(0x3C0, 0x94, 1, 0x0, 0, 0) | ||
237 | #define _MX53_PAD_DISP0_DAT13__AUDMUX_AUD5_RXFS IOMUX_PAD(0x3C0, 0x94, 3, 0x754, 0, 0) | ||
238 | #define _MX53_PAD_DISP0_DAT13__SDMA_DEBUG_EVT_CHN_LINES_0 IOMUX_PAD(0x3C0, 0x94, 5, 0x0, 0, 0) | ||
239 | #define _MX53_PAD_DISP0_DAT13__EMI_EMI_DEBUG_18 IOMUX_PAD(0x3C0, 0x94, 6, 0x0, 0, 0) | ||
240 | #define _MX53_PAD_DISP0_DAT13__USBPHY2_VSTATUS_4 IOMUX_PAD(0x3C0, 0x94, 7, 0x0, 0, 0) | ||
241 | #define _MX53_PAD_DISP0_DAT14__IPU_DISP0_DAT_14 IOMUX_PAD(0x3C4, 0x98, 0, 0x0, 0, 0) | ||
242 | #define _MX53_PAD_DISP0_DAT14__GPIO5_8 IOMUX_PAD(0x3C4, 0x98, 1, 0x0, 0, 0) | ||
243 | #define _MX53_PAD_DISP0_DAT14__AUDMUX_AUD5_RXC IOMUX_PAD(0x3C4, 0x98, 3, 0x750, 0, 0) | ||
244 | #define _MX53_PAD_DISP0_DAT14__SDMA_DEBUG_EVT_CHN_LINES_1 IOMUX_PAD(0x3C4, 0x98, 5, 0x0, 0, 0) | ||
245 | #define _MX53_PAD_DISP0_DAT14__EMI_EMI_DEBUG_19 IOMUX_PAD(0x3C4, 0x98, 6, 0x0, 0, 0) | ||
246 | #define _MX53_PAD_DISP0_DAT14__USBPHY2_VSTATUS_5 IOMUX_PAD(0x3C4, 0x98, 7, 0x0, 0, 0) | ||
247 | #define _MX53_PAD_DISP0_DAT15__IPU_DISP0_DAT_15 IOMUX_PAD(0x3C8, 0x9C, 0, 0x0, 0, 0) | ||
248 | #define _MX53_PAD_DISP0_DAT15__GPIO5_9 IOMUX_PAD(0x3C8, 0x9C, 1, 0x0, 0, 0) | ||
249 | #define _MX53_PAD_DISP0_DAT15__ECSPI1_SS1 IOMUX_PAD(0x3C8, 0x9C, 2, 0x7AC, 1, 0) | ||
250 | #define _MX53_PAD_DISP0_DAT15__ECSPI2_SS1 IOMUX_PAD(0x3C8, 0x9C, 3, 0x7C8, 0, 0) | ||
251 | #define _MX53_PAD_DISP0_DAT15__SDMA_DEBUG_EVT_CHN_LINES_2 IOMUX_PAD(0x3C8, 0x9C, 5, 0x0, 0, 0) | ||
252 | #define _MX53_PAD_DISP0_DAT15__EMI_EMI_DEBUG_20 IOMUX_PAD(0x3C8, 0x9C, 6, 0x0, 0, 0) | ||
253 | #define _MX53_PAD_DISP0_DAT15__USBPHY2_VSTATUS_6 IOMUX_PAD(0x3C8, 0x9C, 7, 0x0, 0, 0) | ||
254 | #define _MX53_PAD_DISP0_DAT16__IPU_DISP0_DAT_16 IOMUX_PAD(0x3CC, 0xA0, 0, 0x0, 0, 0) | ||
255 | #define _MX53_PAD_DISP0_DAT16__GPIO5_10 IOMUX_PAD(0x3CC, 0xA0, 1, 0x0, 0, 0) | ||
256 | #define _MX53_PAD_DISP0_DAT16__ECSPI2_MOSI IOMUX_PAD(0x3CC, 0xA0, 2, 0x7C0, 0, 0) | ||
257 | #define _MX53_PAD_DISP0_DAT16__AUDMUX_AUD5_TXC IOMUX_PAD(0x3CC, 0xA0, 3, 0x758, 1, 0) | ||
258 | #define _MX53_PAD_DISP0_DAT16__SDMA_EXT_EVENT_0 IOMUX_PAD(0x3CC, 0xA0, 4, 0x868, 0, 0) | ||
259 | #define _MX53_PAD_DISP0_DAT16__SDMA_DEBUG_EVT_CHN_LINES_3 IOMUX_PAD(0x3CC, 0xA0, 5, 0x0, 0, 0) | ||
260 | #define _MX53_PAD_DISP0_DAT16__EMI_EMI_DEBUG_21 IOMUX_PAD(0x3CC, 0xA0, 6, 0x0, 0, 0) | ||
261 | #define _MX53_PAD_DISP0_DAT16__USBPHY2_VSTATUS_7 IOMUX_PAD(0x3CC, 0xA0, 7, 0x0, 0, 0) | ||
262 | #define _MX53_PAD_DISP0_DAT17__IPU_DISP0_DAT_17 IOMUX_PAD(0x3D0, 0xA4, 0, 0x0, 0, 0) | ||
263 | #define _MX53_PAD_DISP0_DAT17__GPIO5_11 IOMUX_PAD(0x3D0, 0xA4, 1, 0x0, 0, 0) | ||
264 | #define _MX53_PAD_DISP0_DAT17__ECSPI2_MISO IOMUX_PAD(0x3D0, 0xA4, 2, 0x7BC, 0, 0) | ||
265 | #define _MX53_PAD_DISP0_DAT17__AUDMUX_AUD5_TXD IOMUX_PAD(0x3D0, 0xA4, 3, 0x74C, 1, 0) | ||
266 | #define _MX53_PAD_DISP0_DAT17__SDMA_EXT_EVENT_1 IOMUX_PAD(0x3D0, 0xA4, 4, 0x86C, 0, 0) | ||
267 | #define _MX53_PAD_DISP0_DAT17__SDMA_DEBUG_EVT_CHN_LINES_4 IOMUX_PAD(0x3D0, 0xA4, 5, 0x0, 0, 0) | ||
268 | #define _MX53_PAD_DISP0_DAT17__EMI_EMI_DEBUG_22 IOMUX_PAD(0x3D0, 0xA4, 6, 0x0, 0, 0) | ||
269 | #define _MX53_PAD_DISP0_DAT18__IPU_DISP0_DAT_18 IOMUX_PAD(0x3D4, 0xA8, 0, 0x0, 0, 0) | ||
270 | #define _MX53_PAD_DISP0_DAT18__GPIO5_12 IOMUX_PAD(0x3D4, 0xA8, 1, 0x0, 0, 0) | ||
271 | #define _MX53_PAD_DISP0_DAT18__ECSPI2_SS0 IOMUX_PAD(0x3D4, 0xA8, 2, 0x7C4, 0, 0) | ||
272 | #define _MX53_PAD_DISP0_DAT18__AUDMUX_AUD5_TXFS IOMUX_PAD(0x3D4, 0xA8, 3, 0x75C, 1, 0) | ||
273 | #define _MX53_PAD_DISP0_DAT18__AUDMUX_AUD4_RXFS IOMUX_PAD(0x3D4, 0xA8, 4, 0x73C, 0, 0) | ||
274 | #define _MX53_PAD_DISP0_DAT18__SDMA_DEBUG_EVT_CHN_LINES_5 IOMUX_PAD(0x3D4, 0xA8, 5, 0x0, 0, 0) | ||
275 | #define _MX53_PAD_DISP0_DAT18__EMI_EMI_DEBUG_23 IOMUX_PAD(0x3D4, 0xA8, 6, 0x0, 0, 0) | ||
276 | #define _MX53_PAD_DISP0_DAT18__EMI_WEIM_CS_2 IOMUX_PAD(0x3D4, 0xA8, 7, 0x0, 0, 0) | ||
277 | #define _MX53_PAD_DISP0_DAT19__IPU_DISP0_DAT_19 IOMUX_PAD(0x3D8, 0xAC, 0, 0x0, 0, 0) | ||
278 | #define _MX53_PAD_DISP0_DAT19__GPIO5_13 IOMUX_PAD(0x3D8, 0xAC, 1, 0x0, 0, 0) | ||
279 | #define _MX53_PAD_DISP0_DAT19__ECSPI2_SCLK IOMUX_PAD(0x3D8, 0xAC, 2, 0x7B8, 0, 0) | ||
280 | #define _MX53_PAD_DISP0_DAT19__AUDMUX_AUD5_RXD IOMUX_PAD(0x3D8, 0xAC, 3, 0x748, 1, 0) | ||
281 | #define _MX53_PAD_DISP0_DAT19__AUDMUX_AUD4_RXC IOMUX_PAD(0x3D8, 0xAC, 4, 0x738, 0, 0) | ||
282 | #define _MX53_PAD_DISP0_DAT19__SDMA_DEBUG_EVT_CHN_LINES_6 IOMUX_PAD(0x3D8, 0xAC, 5, 0x0, 0, 0) | ||
283 | #define _MX53_PAD_DISP0_DAT19__EMI_EMI_DEBUG_24 IOMUX_PAD(0x3D8, 0xAC, 6, 0x0, 0, 0) | ||
284 | #define _MX53_PAD_DISP0_DAT19__EMI_WEIM_CS_3 IOMUX_PAD(0x3D8, 0xAC, 7, 0x0, 0, 0) | ||
285 | #define _MX53_PAD_DISP0_DAT20__IPU_DISP0_DAT_20 IOMUX_PAD(0x3DC, 0xB0, 0, 0x0, 0, 0) | ||
286 | #define _MX53_PAD_DISP0_DAT20__GPIO5_14 IOMUX_PAD(0x3DC, 0xB0, 1, 0x0, 0, 0) | ||
287 | #define _MX53_PAD_DISP0_DAT20__ECSPI1_SCLK IOMUX_PAD(0x3DC, 0xB0, 2, 0x79C, 1, 0) | ||
288 | #define _MX53_PAD_DISP0_DAT20__AUDMUX_AUD4_TXC IOMUX_PAD(0x3DC, 0xB0, 3, 0x740, 0, 0) | ||
289 | #define _MX53_PAD_DISP0_DAT20__SDMA_DEBUG_EVT_CHN_LINES_7 IOMUX_PAD(0x3DC, 0xB0, 5, 0x0, 0, 0) | ||
290 | #define _MX53_PAD_DISP0_DAT20__EMI_EMI_DEBUG_25 IOMUX_PAD(0x3DC, 0xB0, 6, 0x0, 0, 0) | ||
291 | #define _MX53_PAD_DISP0_DAT20__SATA_PHY_TDI IOMUX_PAD(0x3DC, 0xB0, 7, 0x0, 0, 0) | ||
292 | #define _MX53_PAD_DISP0_DAT21__IPU_DISP0_DAT_21 IOMUX_PAD(0x3E0, 0xB4, 0, 0x0, 0, 0) | ||
293 | #define _MX53_PAD_DISP0_DAT21__GPIO5_15 IOMUX_PAD(0x3E0, 0xB4, 1, 0x0, 0, 0) | ||
294 | #define _MX53_PAD_DISP0_DAT21__ECSPI1_MOSI IOMUX_PAD(0x3E0, 0xB4, 2, 0x7A4, 1, 0) | ||
295 | #define _MX53_PAD_DISP0_DAT21__AUDMUX_AUD4_TXD IOMUX_PAD(0x3E0, 0xB4, 3, 0x734, 0, 0) | ||
296 | #define _MX53_PAD_DISP0_DAT21__SDMA_DEBUG_BUS_DEVICE_0 IOMUX_PAD(0x3E0, 0xB4, 5, 0x0, 0, 0) | ||
297 | #define _MX53_PAD_DISP0_DAT21__EMI_EMI_DEBUG_26 IOMUX_PAD(0x3E0, 0xB4, 6, 0x0, 0, 0) | ||
298 | #define _MX53_PAD_DISP0_DAT21__SATA_PHY_TDO IOMUX_PAD(0x3E0, 0xB4, 7, 0x0, 0, 0) | ||
299 | #define _MX53_PAD_DISP0_DAT22__IPU_DISP0_DAT_22 IOMUX_PAD(0x3E4, 0xB8, 0, 0x0, 0, 0) | ||
300 | #define _MX53_PAD_DISP0_DAT22__GPIO5_16 IOMUX_PAD(0x3E4, 0xB8, 1, 0x0, 0, 0) | ||
301 | #define _MX53_PAD_DISP0_DAT22__ECSPI1_MISO IOMUX_PAD(0x3E4, 0xB8, 2, 0x7A0, 1, 0) | ||
302 | #define _MX53_PAD_DISP0_DAT22__AUDMUX_AUD4_TXFS IOMUX_PAD(0x3E4, 0xB8, 3, 0x744, 0, 0) | ||
303 | #define _MX53_PAD_DISP0_DAT22__SDMA_DEBUG_BUS_DEVICE_1 IOMUX_PAD(0x3E4, 0xB8, 5, 0x0, 0, 0) | ||
304 | #define _MX53_PAD_DISP0_DAT22__EMI_EMI_DEBUG_27 IOMUX_PAD(0x3E4, 0xB8, 6, 0x0, 0, 0) | ||
305 | #define _MX53_PAD_DISP0_DAT22__SATA_PHY_TCK IOMUX_PAD(0x3E4, 0xB8, 7, 0x0, 0, 0) | ||
306 | #define _MX53_PAD_DISP0_DAT23__IPU_DISP0_DAT_23 IOMUX_PAD(0x3E8, 0xBC, 0, 0x0, 0, 0) | ||
307 | #define _MX53_PAD_DISP0_DAT23__GPIO5_17 IOMUX_PAD(0x3E8, 0xBC, 1, 0x0, 0, 0) | ||
308 | #define _MX53_PAD_DISP0_DAT23__ECSPI1_SS0 IOMUX_PAD(0x3E8, 0xBC, 2, 0x7A8, 1, 0) | ||
309 | #define _MX53_PAD_DISP0_DAT23__AUDMUX_AUD4_RXD IOMUX_PAD(0x3E8, 0xBC, 3, 0x730, 0, 0) | ||
310 | #define _MX53_PAD_DISP0_DAT23__SDMA_DEBUG_BUS_DEVICE_2 IOMUX_PAD(0x3E8, 0xBC, 5, 0x0, 0, 0) | ||
311 | #define _MX53_PAD_DISP0_DAT23__EMI_EMI_DEBUG_28 IOMUX_PAD(0x3E8, 0xBC, 6, 0x0, 0, 0) | ||
312 | #define _MX53_PAD_DISP0_DAT23__SATA_PHY_TMS IOMUX_PAD(0x3E8, 0xBC, 7, 0x0, 0, 0) | ||
313 | #define _MX53_PAD_CSI0_PIXCLK__IPU_CSI0_PIXCLK IOMUX_PAD(0x3EC, 0xC0, 0, 0x0, 0, 0) | ||
314 | #define _MX53_PAD_CSI0_PIXCLK__GPIO5_18 IOMUX_PAD(0x3EC, 0xC0, 1, 0x0, 0, 0) | ||
315 | #define _MX53_PAD_CSI0_PIXCLK__SDMA_DEBUG_PC_0 IOMUX_PAD(0x3EC, 0xC0, 5, 0x0, 0, 0) | ||
316 | #define _MX53_PAD_CSI0_PIXCLK__EMI_EMI_DEBUG_29 IOMUX_PAD(0x3EC, 0xC0, 6, 0x0, 0, 0) | ||
317 | #define _MX53_PAD_CSI0_MCLK__IPU_CSI0_HSYNC IOMUX_PAD(0x3F0, 0xC4, 0, 0x0, 0, 0) | ||
318 | #define _MX53_PAD_CSI0_MCLK__GPIO5_19 IOMUX_PAD(0x3F0, 0xC4, 1, 0x0, 0, 0) | ||
319 | #define _MX53_PAD_CSI0_MCLK__CCM_CSI0_MCLK IOMUX_PAD(0x3F0, 0xC4, 2, 0x0, 0, 0) | ||
320 | #define _MX53_PAD_CSI0_MCLK__SDMA_DEBUG_PC_1 IOMUX_PAD(0x3F0, 0xC4, 5, 0x0, 0, 0) | ||
321 | #define _MX53_PAD_CSI0_MCLK__EMI_EMI_DEBUG_30 IOMUX_PAD(0x3F0, 0xC4, 6, 0x0, 0, 0) | ||
322 | #define _MX53_PAD_CSI0_MCLK__TPIU_TRCTL IOMUX_PAD(0x3F0, 0xC4, 7, 0x0, 0, 0) | ||
323 | #define _MX53_PAD_CSI0_DATA_EN__IPU_CSI0_DATA_EN IOMUX_PAD(0x3F4, 0xC8, 0, 0x0, 0, 0) | ||
324 | #define _MX53_PAD_CSI0_DATA_EN__GPIO5_20 IOMUX_PAD(0x3F4, 0xC8, 1, 0x0, 0, 0) | ||
325 | #define _MX53_PAD_CSI0_DATA_EN__SDMA_DEBUG_PC_2 IOMUX_PAD(0x3F4, 0xC8, 5, 0x0, 0, 0) | ||
326 | #define _MX53_PAD_CSI0_DATA_EN__EMI_EMI_DEBUG_31 IOMUX_PAD(0x3F4, 0xC8, 6, 0x0, 0, 0) | ||
327 | #define _MX53_PAD_CSI0_DATA_EN__TPIU_TRCLK IOMUX_PAD(0x3F4, 0xC8, 7, 0x0, 0, 0) | ||
328 | #define _MX53_PAD_CSI0_VSYNC__IPU_CSI0_VSYNC IOMUX_PAD(0x3F8, 0xCC, 0, 0x0, 0, 0) | ||
329 | #define _MX53_PAD_CSI0_VSYNC__GPIO5_21 IOMUX_PAD(0x3F8, 0xCC, 1, 0x0, 0, 0) | ||
330 | #define _MX53_PAD_CSI0_VSYNC__SDMA_DEBUG_PC_3 IOMUX_PAD(0x3F8, 0xCC, 5, 0x0, 0, 0) | ||
331 | #define _MX53_PAD_CSI0_VSYNC__EMI_EMI_DEBUG_32 IOMUX_PAD(0x3F8, 0xCC, 6, 0x0, 0, 0) | ||
332 | #define _MX53_PAD_CSI0_VSYNC__TPIU_TRACE_0 IOMUX_PAD(0x3F8, 0xCC, 7, 0x0, 0, 0) | ||
333 | #define _MX53_PAD_CSI0_DAT4__IPU_CSI0_D_4 IOMUX_PAD(0x3FC, 0xD0, 0, 0x0, 0, 0) | ||
334 | #define _MX53_PAD_CSI0_DAT4__GPIO5_22 IOMUX_PAD(0x3FC, 0xD0, 1, 0x0, 0, 0) | ||
335 | #define _MX53_PAD_CSI0_DAT4__KPP_COL_5 IOMUX_PAD(0x3FC, 0xD0, 2, 0x840, 1, 0) | ||
336 | #define _MX53_PAD_CSI0_DAT4__ECSPI1_SCLK IOMUX_PAD(0x3FC, 0xD0, 3, 0x79C, 2, 0) | ||
337 | #define _MX53_PAD_CSI0_DAT4__USBOH3_USBH3_STP IOMUX_PAD(0x3FC, 0xD0, 4, 0x0, 0, 0) | ||
338 | #define _MX53_PAD_CSI0_DAT4__AUDMUX_AUD3_TXC IOMUX_PAD(0x3FC, 0xD0, 5, 0x0, 0, 0) | ||
339 | #define _MX53_PAD_CSI0_DAT4__EMI_EMI_DEBUG_33 IOMUX_PAD(0x3FC, 0xD0, 6, 0x0, 0, 0) | ||
340 | #define _MX53_PAD_CSI0_DAT4__TPIU_TRACE_1 IOMUX_PAD(0x3FC, 0xD0, 7, 0x0, 0, 0) | ||
341 | #define _MX53_PAD_CSI0_DAT5__IPU_CSI0_D_5 IOMUX_PAD(0x400, 0xD4, 0, 0x0, 0, 0) | ||
342 | #define _MX53_PAD_CSI0_DAT5__GPIO5_23 IOMUX_PAD(0x400, 0xD4, 1, 0x0, 0, 0) | ||
343 | #define _MX53_PAD_CSI0_DAT5__KPP_ROW_5 IOMUX_PAD(0x400, 0xD4, 2, 0x84C, 0, 0) | ||
344 | #define _MX53_PAD_CSI0_DAT5__ECSPI1_MOSI IOMUX_PAD(0x400, 0xD4, 3, 0x7A4, 2, 0) | ||
345 | #define _MX53_PAD_CSI0_DAT5__USBOH3_USBH3_NXT IOMUX_PAD(0x400, 0xD4, 4, 0x0, 0, 0) | ||
346 | #define _MX53_PAD_CSI0_DAT5__AUDMUX_AUD3_TXD IOMUX_PAD(0x400, 0xD4, 5, 0x0, 0, 0) | ||
347 | #define _MX53_PAD_CSI0_DAT5__EMI_EMI_DEBUG_34 IOMUX_PAD(0x400, 0xD4, 6, 0x0, 0, 0) | ||
348 | #define _MX53_PAD_CSI0_DAT5__TPIU_TRACE_2 IOMUX_PAD(0x400, 0xD4, 7, 0x0, 0, 0) | ||
349 | #define _MX53_PAD_CSI0_DAT6__IPU_CSI0_D_6 IOMUX_PAD(0x404, 0xD8, 0, 0x0, 0, 0) | ||
350 | #define _MX53_PAD_CSI0_DAT6__GPIO5_24 IOMUX_PAD(0x404, 0xD8, 1, 0x0, 0, 0) | ||
351 | #define _MX53_PAD_CSI0_DAT6__KPP_COL_6 IOMUX_PAD(0x404, 0xD8, 2, 0x844, 0, 0) | ||
352 | #define _MX53_PAD_CSI0_DAT6__ECSPI1_MISO IOMUX_PAD(0x404, 0xD8, 3, 0x7A0, 2, 0) | ||
353 | #define _MX53_PAD_CSI0_DAT6__USBOH3_USBH3_CLK IOMUX_PAD(0x404, 0xD8, 4, 0x0, 0, 0) | ||
354 | #define _MX53_PAD_CSI0_DAT6__AUDMUX_AUD3_TXFS IOMUX_PAD(0x404, 0xD8, 5, 0x0, 0, 0) | ||
355 | #define _MX53_PAD_CSI0_DAT6__EMI_EMI_DEBUG_35 IOMUX_PAD(0x404, 0xD8, 6, 0x0, 0, 0) | ||
356 | #define _MX53_PAD_CSI0_DAT6__TPIU_TRACE_3 IOMUX_PAD(0x404, 0xD8, 7, 0x0, 0, 0) | ||
357 | #define _MX53_PAD_CSI0_DAT7__IPU_CSI0_D_7 IOMUX_PAD(0x408, 0xDC, 0, 0x0, 0, 0) | ||
358 | #define _MX53_PAD_CSI0_DAT7__GPIO5_25 IOMUX_PAD(0x408, 0xDC, 1, 0x0, 0, 0) | ||
359 | #define _MX53_PAD_CSI0_DAT7__KPP_ROW_6 IOMUX_PAD(0x408, 0xDC, 2, 0x850, 0, 0) | ||
360 | #define _MX53_PAD_CSI0_DAT7__ECSPI1_SS0 IOMUX_PAD(0x408, 0xDC, 3, 0x7A8, 2, 0) | ||
361 | #define _MX53_PAD_CSI0_DAT7__USBOH3_USBH3_DIR IOMUX_PAD(0x408, 0xDC, 4, 0x0, 0, 0) | ||
362 | #define _MX53_PAD_CSI0_DAT7__AUDMUX_AUD3_RXD IOMUX_PAD(0x408, 0xDC, 5, 0x0, 0, 0) | ||
363 | #define _MX53_PAD_CSI0_DAT7__EMI_EMI_DEBUG_36 IOMUX_PAD(0x408, 0xDC, 6, 0x0, 0, 0) | ||
364 | #define _MX53_PAD_CSI0_DAT7__TPIU_TRACE_4 IOMUX_PAD(0x408, 0xDC, 7, 0x0, 0, 0) | ||
365 | #define _MX53_PAD_CSI0_DAT8__IPU_CSI0_D_8 IOMUX_PAD(0x40C, 0xE0, 0, 0x0, 0, 0) | ||
366 | #define _MX53_PAD_CSI0_DAT8__GPIO5_26 IOMUX_PAD(0x40C, 0xE0, 1, 0x0, 0, 0) | ||
367 | #define _MX53_PAD_CSI0_DAT8__KPP_COL_7 IOMUX_PAD(0x40C, 0xE0, 2, 0x848, 0, 0) | ||
368 | #define _MX53_PAD_CSI0_DAT8__ECSPI2_SCLK IOMUX_PAD(0x40C, 0xE0, 3, 0x7B8, 1, 0) | ||
369 | #define _MX53_PAD_CSI0_DAT8__USBOH3_USBH3_OC IOMUX_PAD(0x40C, 0xE0, 4, 0x0, 0, 0) | ||
370 | #define _MX53_PAD_CSI0_DAT8__I2C1_SDA IOMUX_PAD(0x40C, 0xE0, 5 | IOMUX_CONFIG_SION, 0x818, 0, 0) | ||
371 | #define _MX53_PAD_CSI0_DAT8__EMI_EMI_DEBUG_37 IOMUX_PAD(0x40C, 0xE0, 6, 0x0, 0, 0) | ||
372 | #define _MX53_PAD_CSI0_DAT8__TPIU_TRACE_5 IOMUX_PAD(0x40C, 0xE0, 7, 0x0, 0, 0) | ||
373 | #define _MX53_PAD_CSI0_DAT9__IPU_CSI0_D_9 IOMUX_PAD(0x410, 0xE4, 0, 0x0, 0, 0) | ||
374 | #define _MX53_PAD_CSI0_DAT9__GPIO5_27 IOMUX_PAD(0x410, 0xE4, 1, 0x0, 0, 0) | ||
375 | #define _MX53_PAD_CSI0_DAT9__KPP_ROW_7 IOMUX_PAD(0x410, 0xE4, 2, 0x854, 0, 0) | ||
376 | #define _MX53_PAD_CSI0_DAT9__ECSPI2_MOSI IOMUX_PAD(0x410, 0xE4, 3, 0x7C0, 1, 0) | ||
377 | #define _MX53_PAD_CSI0_DAT9__USBOH3_USBH3_PWR IOMUX_PAD(0x410, 0xE4, 4, 0x0, 0, 0) | ||
378 | #define _MX53_PAD_CSI0_DAT9__I2C1_SCL IOMUX_PAD(0x410, 0xE4, 5 | IOMUX_CONFIG_SION, 0x814, 0, 0) | ||
379 | #define _MX53_PAD_CSI0_DAT9__EMI_EMI_DEBUG_38 IOMUX_PAD(0x410, 0xE4, 6, 0x0, 0, 0) | ||
380 | #define _MX53_PAD_CSI0_DAT9__TPIU_TRACE_6 IOMUX_PAD(0x410, 0xE4, 7, 0x0, 0, 0) | ||
381 | #define _MX53_PAD_CSI0_DAT10__IPU_CSI0_D_10 IOMUX_PAD(0x414, 0xE8, 0, 0x0, 0, 0) | ||
382 | #define _MX53_PAD_CSI0_DAT10__GPIO5_28 IOMUX_PAD(0x414, 0xE8, 1, 0x0, 0, 0) | ||
383 | #define _MX53_PAD_CSI0_DAT10__UART1_TXD_MUX IOMUX_PAD(0x414, 0xE8, 2, 0x0, 0, 0) | ||
384 | #define _MX53_PAD_CSI0_DAT10__ECSPI2_MISO IOMUX_PAD(0x414, 0xE8, 3, 0x7BC, 1, 0) | ||
385 | #define _MX53_PAD_CSI0_DAT10__AUDMUX_AUD3_RXC IOMUX_PAD(0x414, 0xE8, 4, 0x0, 0, 0) | ||
386 | #define _MX53_PAD_CSI0_DAT10__SDMA_DEBUG_PC_4 IOMUX_PAD(0x414, 0xE8, 5, 0x0, 0, 0) | ||
387 | #define _MX53_PAD_CSI0_DAT10__EMI_EMI_DEBUG_39 IOMUX_PAD(0x414, 0xE8, 6, 0x0, 0, 0) | ||
388 | #define _MX53_PAD_CSI0_DAT10__TPIU_TRACE_7 IOMUX_PAD(0x414, 0xE8, 7, 0x0, 0, 0) | ||
389 | #define _MX53_PAD_CSI0_DAT11__IPU_CSI0_D_11 IOMUX_PAD(0x418, 0xEC, 0, 0x0, 0, 0) | ||
390 | #define _MX53_PAD_CSI0_DAT11__GPIO5_29 IOMUX_PAD(0x418, 0xEC, 1, 0x0, 0, 0) | ||
391 | #define _MX53_PAD_CSI0_DAT11__UART1_RXD_MUX IOMUX_PAD(0x418, 0xEC, 2, 0x878, 1, 0) | ||
392 | #define _MX53_PAD_CSI0_DAT11__ECSPI2_SS0 IOMUX_PAD(0x418, 0xEC, 3, 0x7C4, 1, 0) | ||
393 | #define _MX53_PAD_CSI0_DAT11__AUDMUX_AUD3_RXFS IOMUX_PAD(0x418, 0xEC, 4, 0x0, 0, 0) | ||
394 | #define _MX53_PAD_CSI0_DAT11__SDMA_DEBUG_PC_5 IOMUX_PAD(0x418, 0xEC, 5, 0x0, 0, 0) | ||
395 | #define _MX53_PAD_CSI0_DAT11__EMI_EMI_DEBUG_40 IOMUX_PAD(0x418, 0xEC, 6, 0x0, 0, 0) | ||
396 | #define _MX53_PAD_CSI0_DAT11__TPIU_TRACE_8 IOMUX_PAD(0x418, 0xEC, 7, 0x0, 0, 0) | ||
397 | #define _MX53_PAD_CSI0_DAT12__IPU_CSI0_D_12 IOMUX_PAD(0x41C, 0xF0, 0, 0x0, 0, 0) | ||
398 | #define _MX53_PAD_CSI0_DAT12__GPIO5_30 IOMUX_PAD(0x41C, 0xF0, 1, 0x0, 0, 0) | ||
399 | #define _MX53_PAD_CSI0_DAT12__UART4_TXD_MUX IOMUX_PAD(0x41C, 0xF0, 2, 0x0, 0, 0) | ||
400 | #define _MX53_PAD_CSI0_DAT12__USBOH3_USBH3_DATA_0 IOMUX_PAD(0x41C, 0xF0, 4, 0x0, 0, 0) | ||
401 | #define _MX53_PAD_CSI0_DAT12__SDMA_DEBUG_PC_6 IOMUX_PAD(0x41C, 0xF0, 5, 0x0, 0, 0) | ||
402 | #define _MX53_PAD_CSI0_DAT12__EMI_EMI_DEBUG_41 IOMUX_PAD(0x41C, 0xF0, 6, 0x0, 0, 0) | ||
403 | #define _MX53_PAD_CSI0_DAT12__TPIU_TRACE_9 IOMUX_PAD(0x41C, 0xF0, 7, 0x0, 0, 0) | ||
404 | #define _MX53_PAD_CSI0_DAT13__IPU_CSI0_D_13 IOMUX_PAD(0x420, 0xF4, 0, 0x0, 0, 0) | ||
405 | #define _MX53_PAD_CSI0_DAT13__GPIO5_31 IOMUX_PAD(0x420, 0xF4, 1, 0x0, 0, 0) | ||
406 | #define _MX53_PAD_CSI0_DAT13__UART4_RXD_MUX IOMUX_PAD(0x420, 0xF4, 2, 0x890, 3, 0) | ||
407 | #define _MX53_PAD_CSI0_DAT13__USBOH3_USBH3_DATA_1 IOMUX_PAD(0x420, 0xF4, 4, 0x0, 0, 0) | ||
408 | #define _MX53_PAD_CSI0_DAT13__SDMA_DEBUG_PC_7 IOMUX_PAD(0x420, 0xF4, 5, 0x0, 0, 0) | ||
409 | #define _MX53_PAD_CSI0_DAT13__EMI_EMI_DEBUG_42 IOMUX_PAD(0x420, 0xF4, 6, 0x0, 0, 0) | ||
410 | #define _MX53_PAD_CSI0_DAT13__TPIU_TRACE_10 IOMUX_PAD(0x420, 0xF4, 7, 0x0, 0, 0) | ||
411 | #define _MX53_PAD_CSI0_DAT14__IPU_CSI0_D_14 IOMUX_PAD(0x424, 0xF8, 0, 0x0, 0, 0) | ||
412 | #define _MX53_PAD_CSI0_DAT14__GPIO6_0 IOMUX_PAD(0x424, 0xF8, 1, 0x0, 0, 0) | ||
413 | #define _MX53_PAD_CSI0_DAT14__UART5_TXD_MUX IOMUX_PAD(0x424, 0xF8, 2, 0x0, 0, 0) | ||
414 | #define _MX53_PAD_CSI0_DAT14__USBOH3_USBH3_DATA_2 IOMUX_PAD(0x424, 0xF8, 4, 0x0, 0, 0) | ||
415 | #define _MX53_PAD_CSI0_DAT14__SDMA_DEBUG_PC_8 IOMUX_PAD(0x424, 0xF8, 5, 0x0, 0, 0) | ||
416 | #define _MX53_PAD_CSI0_DAT14__EMI_EMI_DEBUG_43 IOMUX_PAD(0x424, 0xF8, 6, 0x0, 0, 0) | ||
417 | #define _MX53_PAD_CSI0_DAT14__TPIU_TRACE_11 IOMUX_PAD(0x424, 0xF8, 7, 0x0, 0, 0) | ||
418 | #define _MX53_PAD_CSI0_DAT15__IPU_CSI0_D_15 IOMUX_PAD(0x428, 0xFC, 0, 0x0, 0, 0) | ||
419 | #define _MX53_PAD_CSI0_DAT15__GPIO6_1 IOMUX_PAD(0x428, 0xFC, 1, 0x0, 0, 0) | ||
420 | #define _MX53_PAD_CSI0_DAT15__UART5_RXD_MUX IOMUX_PAD(0x428, 0xFC, 2, 0x898, 3, 0) | ||
421 | #define _MX53_PAD_CSI0_DAT15__USBOH3_USBH3_DATA_3 IOMUX_PAD(0x428, 0xFC, 4, 0x0, 0, 0) | ||
422 | #define _MX53_PAD_CSI0_DAT15__SDMA_DEBUG_PC_9 IOMUX_PAD(0x428, 0xFC, 5, 0x0, 0, 0) | ||
423 | #define _MX53_PAD_CSI0_DAT15__EMI_EMI_DEBUG_44 IOMUX_PAD(0x428, 0xFC, 6, 0x0, 0, 0) | ||
424 | #define _MX53_PAD_CSI0_DAT15__TPIU_TRACE_12 IOMUX_PAD(0x428, 0xFC, 7, 0x0, 0, 0) | ||
425 | #define _MX53_PAD_CSI0_DAT16__IPU_CSI0_D_16 IOMUX_PAD(0x42C, 0x100, 0, 0x0, 0, 0) | ||
426 | #define _MX53_PAD_CSI0_DAT16__GPIO6_2 IOMUX_PAD(0x42C, 0x100, 1, 0x0, 0, 0) | ||
427 | #define _MX53_PAD_CSI0_DAT16__UART4_RTS IOMUX_PAD(0x42C, 0x100, 2, 0x88C, 0, 0) | ||
428 | #define _MX53_PAD_CSI0_DAT16__USBOH3_USBH3_DATA_4 IOMUX_PAD(0x42C, 0x100, 4, 0x0, 0, 0) | ||
429 | #define _MX53_PAD_CSI0_DAT16__SDMA_DEBUG_PC_10 IOMUX_PAD(0x42C, 0x100, 5, 0x0, 0, 0) | ||
430 | #define _MX53_PAD_CSI0_DAT16__EMI_EMI_DEBUG_45 IOMUX_PAD(0x42C, 0x100, 6, 0x0, 0, 0) | ||
431 | #define _MX53_PAD_CSI0_DAT16__TPIU_TRACE_13 IOMUX_PAD(0x42C, 0x100, 7, 0x0, 0, 0) | ||
432 | #define _MX53_PAD_CSI0_DAT17__IPU_CSI0_D_17 IOMUX_PAD(0x430, 0x104, 0, 0x0, 0, 0) | ||
433 | #define _MX53_PAD_CSI0_DAT17__GPIO6_3 IOMUX_PAD(0x430, 0x104, 1, 0x0, 0, 0) | ||
434 | #define _MX53_PAD_CSI0_DAT17__UART4_CTS IOMUX_PAD(0x430, 0x104, 2, 0x0, 0, 0) | ||
435 | #define _MX53_PAD_CSI0_DAT17__USBOH3_USBH3_DATA_5 IOMUX_PAD(0x430, 0x104, 4, 0x0, 0, 0) | ||
436 | #define _MX53_PAD_CSI0_DAT17__SDMA_DEBUG_PC_11 IOMUX_PAD(0x430, 0x104, 5, 0x0, 0, 0) | ||
437 | #define _MX53_PAD_CSI0_DAT17__EMI_EMI_DEBUG_46 IOMUX_PAD(0x430, 0x104, 6, 0x0, 0, 0) | ||
438 | #define _MX53_PAD_CSI0_DAT17__TPIU_TRACE_14 IOMUX_PAD(0x430, 0x104, 7, 0x0, 0, 0) | ||
439 | #define _MX53_PAD_CSI0_DAT18__IPU_CSI0_D_18 IOMUX_PAD(0x434, 0x108, 0, 0x0, 0, 0) | ||
440 | #define _MX53_PAD_CSI0_DAT18__GPIO6_4 IOMUX_PAD(0x434, 0x108, 1, 0x0, 0, 0) | ||
441 | #define _MX53_PAD_CSI0_DAT18__UART5_RTS IOMUX_PAD(0x434, 0x108, 2, 0x894, 2, 0) | ||
442 | #define _MX53_PAD_CSI0_DAT18__USBOH3_USBH3_DATA_6 IOMUX_PAD(0x434, 0x108, 4, 0x0, 0, 0) | ||
443 | #define _MX53_PAD_CSI0_DAT18__SDMA_DEBUG_PC_12 IOMUX_PAD(0x434, 0x108, 5, 0x0, 0, 0) | ||
444 | #define _MX53_PAD_CSI0_DAT18__EMI_EMI_DEBUG_47 IOMUX_PAD(0x434, 0x108, 6, 0x0, 0, 0) | ||
445 | #define _MX53_PAD_CSI0_DAT18__TPIU_TRACE_15 IOMUX_PAD(0x434, 0x108, 7, 0x0, 0, 0) | ||
446 | #define _MX53_PAD_CSI0_DAT19__IPU_CSI0_D_19 IOMUX_PAD(0x438, 0x10C, 0, 0x0, 0, 0) | ||
447 | #define _MX53_PAD_CSI0_DAT19__GPIO6_5 IOMUX_PAD(0x438, 0x10C, 1, 0x0, 0, 0) | ||
448 | #define _MX53_PAD_CSI0_DAT19__UART5_CTS IOMUX_PAD(0x438, 0x10C, 2, 0x0, 0, 0) | ||
449 | #define _MX53_PAD_CSI0_DAT19__USBOH3_USBH3_DATA_7 IOMUX_PAD(0x438, 0x10C, 4, 0x0, 0, 0) | ||
450 | #define _MX53_PAD_CSI0_DAT19__SDMA_DEBUG_PC_13 IOMUX_PAD(0x438, 0x10C, 5, 0x0, 0, 0) | ||
451 | #define _MX53_PAD_CSI0_DAT19__EMI_EMI_DEBUG_48 IOMUX_PAD(0x438, 0x10C, 6, 0x0, 0, 0) | ||
452 | #define _MX53_PAD_CSI0_DAT19__USBPHY2_BISTOK IOMUX_PAD(0x438, 0x10C, 7, 0x0, 0, 0) | ||
453 | #define _MX53_PAD_EIM_A25__EMI_WEIM_A_25 IOMUX_PAD(0x458, 0x110, 0, 0x0, 0, 0) | ||
454 | #define _MX53_PAD_EIM_A25__GPIO5_2 IOMUX_PAD(0x458, 0x110, 1, 0x0, 0, 0) | ||
455 | #define _MX53_PAD_EIM_A25__ECSPI2_RDY IOMUX_PAD(0x458, 0x110, 2, 0x0, 0, 0) | ||
456 | #define _MX53_PAD_EIM_A25__IPU_DI1_PIN12 IOMUX_PAD(0x458, 0x110, 3, 0x0, 0, 0) | ||
457 | #define _MX53_PAD_EIM_A25__CSPI_SS1 IOMUX_PAD(0x458, 0x110, 4, 0x790, 1, 0) | ||
458 | #define _MX53_PAD_EIM_A25__IPU_DI0_D1_CS IOMUX_PAD(0x458, 0x110, 6, 0x0, 0, 0) | ||
459 | #define _MX53_PAD_EIM_A25__USBPHY1_BISTOK IOMUX_PAD(0x458, 0x110, 7, 0x0, 0, 0) | ||
460 | #define _MX53_PAD_EIM_EB2__EMI_WEIM_EB_2 IOMUX_PAD(0x45C, 0x114, 0, 0x0, 0, 0) | ||
461 | #define _MX53_PAD_EIM_EB2__GPIO2_30 IOMUX_PAD(0x45C, 0x114, 1, 0x0, 0, 0) | ||
462 | #define _MX53_PAD_EIM_EB2__CCM_DI1_EXT_CLK IOMUX_PAD(0x45C, 0x114, 2, 0x76C, 0, 0) | ||
463 | #define _MX53_PAD_EIM_EB2__IPU_SER_DISP1_CS IOMUX_PAD(0x45C, 0x114, 3, 0x0, 0, 0) | ||
464 | #define _MX53_PAD_EIM_EB2__ECSPI1_SS0 IOMUX_PAD(0x45C, 0x114, 4, 0x7A8, 3, 0) | ||
465 | #define _MX53_PAD_EIM_EB2__I2C2_SCL IOMUX_PAD(0x45C, 0x114, 5 | IOMUX_CONFIG_SION, 0x81C, 1, 0) | ||
466 | #define _MX53_PAD_EIM_D16__EMI_WEIM_D_16 IOMUX_PAD(0x460, 0x118, 0, 0x0, 0, 0) | ||
467 | #define _MX53_PAD_EIM_D16__GPIO3_16 IOMUX_PAD(0x460, 0x118, 1, 0x0, 0, 0) | ||
468 | #define _MX53_PAD_EIM_D16__IPU_DI0_PIN5 IOMUX_PAD(0x460, 0x118, 2, 0x0, 0, 0) | ||
469 | #define _MX53_PAD_EIM_D16__IPU_DISPB1_SER_CLK IOMUX_PAD(0x460, 0x118, 3, 0x0, 0, 0) | ||
470 | #define _MX53_PAD_EIM_D16__ECSPI1_SCLK IOMUX_PAD(0x460, 0x118, 4, 0x79C, 3, 0) | ||
471 | #define _MX53_PAD_EIM_D16__I2C2_SDA IOMUX_PAD(0x460, 0x118, 5 | IOMUX_CONFIG_SION, 0x820, 1, 0) | ||
472 | #define _MX53_PAD_EIM_D17__EMI_WEIM_D_17 IOMUX_PAD(0x464, 0x11C, 0, 0x0, 0, 0) | ||
473 | #define _MX53_PAD_EIM_D17__GPIO3_17 IOMUX_PAD(0x464, 0x11C, 1, 0x0, 0, 0) | ||
474 | #define _MX53_PAD_EIM_D17__IPU_DI0_PIN6 IOMUX_PAD(0x464, 0x11C, 2, 0x0, 0, 0) | ||
475 | #define _MX53_PAD_EIM_D17__IPU_DISPB1_SER_DIN IOMUX_PAD(0x464, 0x11C, 3, 0x830, 0, 0) | ||
476 | #define _MX53_PAD_EIM_D17__ECSPI1_MISO IOMUX_PAD(0x464, 0x11C, 4, 0x7A0, 3, 0) | ||
477 | #define _MX53_PAD_EIM_D17__I2C3_SCL IOMUX_PAD(0x464, 0x11C, 5 | IOMUX_CONFIG_SION, 0x824, 0, 0) | ||
478 | #define _MX53_PAD_EIM_D18__EMI_WEIM_D_18 IOMUX_PAD(0x468, 0x120, 0, 0x0, 0, 0) | ||
479 | #define _MX53_PAD_EIM_D18__GPIO3_18 IOMUX_PAD(0x468, 0x120, 1, 0x0, 0, 0) | ||
480 | #define _MX53_PAD_EIM_D18__IPU_DI0_PIN7 IOMUX_PAD(0x468, 0x120, 2, 0x0, 0, 0) | ||
481 | #define _MX53_PAD_EIM_D18__IPU_DISPB1_SER_DIO IOMUX_PAD(0x468, 0x120, 3, 0x830, 1, 0) | ||
482 | #define _MX53_PAD_EIM_D18__ECSPI1_MOSI IOMUX_PAD(0x468, 0x120, 4, 0x7A4, 3, 0) | ||
483 | #define _MX53_PAD_EIM_D18__I2C3_SDA IOMUX_PAD(0x468, 0x120, 5 | IOMUX_CONFIG_SION, 0x828, 0, 0) | ||
484 | #define _MX53_PAD_EIM_D18__IPU_DI1_D0_CS IOMUX_PAD(0x468, 0x120, 6, 0x0, 0, 0) | ||
485 | #define _MX53_PAD_EIM_D19__EMI_WEIM_D_19 IOMUX_PAD(0x46C, 0x124, 0, 0x0, 0, 0) | ||
486 | #define _MX53_PAD_EIM_D19__GPIO3_19 IOMUX_PAD(0x46C, 0x124, 1, 0x0, 0, 0) | ||
487 | #define _MX53_PAD_EIM_D19__IPU_DI0_PIN8 IOMUX_PAD(0x46C, 0x124, 2, 0x0, 0, 0) | ||
488 | #define _MX53_PAD_EIM_D19__IPU_DISPB1_SER_RS IOMUX_PAD(0x46C, 0x124, 3, 0x0, 0, 0) | ||
489 | #define _MX53_PAD_EIM_D19__ECSPI1_SS1 IOMUX_PAD(0x46C, 0x124, 4, 0x7AC, 2, 0) | ||
490 | #define _MX53_PAD_EIM_D19__EPIT1_EPITO IOMUX_PAD(0x46C, 0x124, 5, 0x0, 0, 0) | ||
491 | #define _MX53_PAD_EIM_D19__UART1_CTS IOMUX_PAD(0x46C, 0x124, 6, 0x0, 0, 0) | ||
492 | #define _MX53_PAD_EIM_D19__USBOH3_USBH2_OC IOMUX_PAD(0x46C, 0x124, 7, 0x8A4, 0, 0) | ||
493 | #define _MX53_PAD_EIM_D20__EMI_WEIM_D_20 IOMUX_PAD(0x470, 0x128, 0, 0x0, 0, 0) | ||
494 | #define _MX53_PAD_EIM_D20__GPIO3_20 IOMUX_PAD(0x470, 0x128, 1, 0x0, 0, 0) | ||
495 | #define _MX53_PAD_EIM_D20__IPU_DI0_PIN16 IOMUX_PAD(0x470, 0x128, 2, 0x0, 0, 0) | ||
496 | #define _MX53_PAD_EIM_D20__IPU_SER_DISP0_CS IOMUX_PAD(0x470, 0x128, 3, 0x0, 0, 0) | ||
497 | #define _MX53_PAD_EIM_D20__CSPI_SS0 IOMUX_PAD(0x470, 0x128, 4, 0x78C, 1, 0) | ||
498 | #define _MX53_PAD_EIM_D20__EPIT2_EPITO IOMUX_PAD(0x470, 0x128, 5, 0x0, 0, 0) | ||
499 | #define _MX53_PAD_EIM_D20__UART1_RTS IOMUX_PAD(0x470, 0x128, 6, 0x874, 1, 0) | ||
500 | #define _MX53_PAD_EIM_D20__USBOH3_USBH2_PWR IOMUX_PAD(0x470, 0x128, 7, 0x0, 0, 0) | ||
501 | #define _MX53_PAD_EIM_D21__EMI_WEIM_D_21 IOMUX_PAD(0x474, 0x12C, 0, 0x0, 0, 0) | ||
502 | #define _MX53_PAD_EIM_D21__GPIO3_21 IOMUX_PAD(0x474, 0x12C, 1, 0x0, 0, 0) | ||
503 | #define _MX53_PAD_EIM_D21__IPU_DI0_PIN17 IOMUX_PAD(0x474, 0x12C, 2, 0x0, 0, 0) | ||
504 | #define _MX53_PAD_EIM_D21__IPU_DISPB0_SER_CLK IOMUX_PAD(0x474, 0x12C, 3, 0x0, 0, 0) | ||
505 | #define _MX53_PAD_EIM_D21__CSPI_SCLK IOMUX_PAD(0x474, 0x12C, 4, 0x780, 1, 0) | ||
506 | #define _MX53_PAD_EIM_D21__I2C1_SCL IOMUX_PAD(0x474, 0x12C, 5 | IOMUX_CONFIG_SION, 0x814, 1, 0) | ||
507 | #define _MX53_PAD_EIM_D21__USBOH3_USBOTG_OC IOMUX_PAD(0x474, 0x12C, 6, 0x89C, 1, 0) | ||
508 | #define _MX53_PAD_EIM_D22__EMI_WEIM_D_22 IOMUX_PAD(0x478, 0x130, 0, 0x0, 0, 0) | ||
509 | #define _MX53_PAD_EIM_D22__GPIO3_22 IOMUX_PAD(0x478, 0x130, 1, 0x0, 0, 0) | ||
510 | #define _MX53_PAD_EIM_D22__IPU_DI0_PIN1 IOMUX_PAD(0x478, 0x130, 2, 0x0, 0, 0) | ||
511 | #define _MX53_PAD_EIM_D22__IPU_DISPB0_SER_DIN IOMUX_PAD(0x478, 0x130, 3, 0x82C, 0, 0) | ||
512 | #define _MX53_PAD_EIM_D22__CSPI_MISO IOMUX_PAD(0x478, 0x130, 4, 0x784, 1, 0) | ||
513 | #define _MX53_PAD_EIM_D22__USBOH3_USBOTG_PWR IOMUX_PAD(0x478, 0x130, 6, 0x0, 0, 0) | ||
514 | #define _MX53_PAD_EIM_D23__EMI_WEIM_D_23 IOMUX_PAD(0x47C, 0x134, 0, 0x0, 0, 0) | ||
515 | #define _MX53_PAD_EIM_D23__GPIO3_23 IOMUX_PAD(0x47C, 0x134, 1, 0x0, 0, 0) | ||
516 | #define _MX53_PAD_EIM_D23__UART3_CTS IOMUX_PAD(0x47C, 0x134, 2, 0x0, 0, 0) | ||
517 | #define _MX53_PAD_EIM_D23__UART1_DCD IOMUX_PAD(0x47C, 0x134, 3, 0x0, 0, 0) | ||
518 | #define _MX53_PAD_EIM_D23__IPU_DI0_D0_CS IOMUX_PAD(0x47C, 0x134, 4, 0x0, 0, 0) | ||
519 | #define _MX53_PAD_EIM_D23__IPU_DI1_PIN2 IOMUX_PAD(0x47C, 0x134, 5, 0x0, 0, 0) | ||
520 | #define _MX53_PAD_EIM_D23__IPU_CSI1_DATA_EN IOMUX_PAD(0x47C, 0x134, 6, 0x834, 0, 0) | ||
521 | #define _MX53_PAD_EIM_D23__IPU_DI1_PIN14 IOMUX_PAD(0x47C, 0x134, 7, 0x0, 0, 0) | ||
522 | #define _MX53_PAD_EIM_EB3__EMI_WEIM_EB_3 IOMUX_PAD(0x480, 0x138, 0, 0x0, 0, 0) | ||
523 | #define _MX53_PAD_EIM_EB3__GPIO2_31 IOMUX_PAD(0x480, 0x138, 1, 0x0, 0, 0) | ||
524 | #define _MX53_PAD_EIM_EB3__UART3_RTS IOMUX_PAD(0x480, 0x138, 2, 0x884, 1, 0) | ||
525 | #define _MX53_PAD_EIM_EB3__UART1_RI IOMUX_PAD(0x480, 0x138, 3, 0x0, 0, 0) | ||
526 | #define _MX53_PAD_EIM_EB3__IPU_DI1_PIN3 IOMUX_PAD(0x480, 0x138, 5, 0x0, 0, 0) | ||
527 | #define _MX53_PAD_EIM_EB3__IPU_CSI1_HSYNC IOMUX_PAD(0x480, 0x138, 6, 0x838, 0, 0) | ||
528 | #define _MX53_PAD_EIM_EB3__IPU_DI1_PIN16 IOMUX_PAD(0x480, 0x138, 7, 0x0, 0, 0) | ||
529 | #define _MX53_PAD_EIM_D24__EMI_WEIM_D_24 IOMUX_PAD(0x484, 0x13C, 0, 0x0, 0, 0) | ||
530 | #define _MX53_PAD_EIM_D24__GPIO3_24 IOMUX_PAD(0x484, 0x13C, 1, 0x0, 0, 0) | ||
531 | #define _MX53_PAD_EIM_D24__UART3_TXD_MUX IOMUX_PAD(0x484, 0x13C, 2, 0x0, 0, 0) | ||
532 | #define _MX53_PAD_EIM_D24__ECSPI1_SS2 IOMUX_PAD(0x484, 0x13C, 3, 0x7B0, 1, 0) | ||
533 | #define _MX53_PAD_EIM_D24__CSPI_SS2 IOMUX_PAD(0x484, 0x13C, 4, 0x794, 1, 0) | ||
534 | #define _MX53_PAD_EIM_D24__AUDMUX_AUD5_RXFS IOMUX_PAD(0x484, 0x13C, 5, 0x754, 1, 0) | ||
535 | #define _MX53_PAD_EIM_D24__ECSPI2_SS2 IOMUX_PAD(0x484, 0x13C, 6, 0x0, 0, 0) | ||
536 | #define _MX53_PAD_EIM_D24__UART1_DTR IOMUX_PAD(0x484, 0x13C, 7, 0x0, 0, 0) | ||
537 | #define _MX53_PAD_EIM_D25__EMI_WEIM_D_25 IOMUX_PAD(0x488, 0x140, 0, 0x0, 0, 0) | ||
538 | #define _MX53_PAD_EIM_D25__GPIO3_25 IOMUX_PAD(0x488, 0x140, 1, 0x0, 0, 0) | ||
539 | #define _MX53_PAD_EIM_D25__UART3_RXD_MUX IOMUX_PAD(0x488, 0x140, 2, 0x888, 1, 0) | ||
540 | #define _MX53_PAD_EIM_D25__ECSPI1_SS3 IOMUX_PAD(0x488, 0x140, 3, 0x7B4, 1, 0) | ||
541 | #define _MX53_PAD_EIM_D25__CSPI_SS3 IOMUX_PAD(0x488, 0x140, 4, 0x798, 1, 0) | ||
542 | #define _MX53_PAD_EIM_D25__AUDMUX_AUD5_RXC IOMUX_PAD(0x488, 0x140, 5, 0x750, 1, 0) | ||
543 | #define _MX53_PAD_EIM_D25__ECSPI2_SS3 IOMUX_PAD(0x488, 0x140, 6, 0x0, 0, 0) | ||
544 | #define _MX53_PAD_EIM_D25__UART1_DSR IOMUX_PAD(0x488, 0x140, 7, 0x0, 0, 0) | ||
545 | #define _MX53_PAD_EIM_D26__EMI_WEIM_D_26 IOMUX_PAD(0x48C, 0x144, 0, 0x0, 0, 0) | ||
546 | #define _MX53_PAD_EIM_D26__GPIO3_26 IOMUX_PAD(0x48C, 0x144, 1, 0x0, 0, 0) | ||
547 | #define _MX53_PAD_EIM_D26__UART2_TXD_MUX IOMUX_PAD(0x48C, 0x144, 2, 0x0, 0, 0) | ||
548 | #define _MX53_PAD_EIM_D26__FIRI_RXD IOMUX_PAD(0x48C, 0x144, 3, 0x80C, 0, 0) | ||
549 | #define _MX53_PAD_EIM_D26__IPU_CSI0_D_1 IOMUX_PAD(0x48C, 0x144, 4, 0x0, 0, 0) | ||
550 | #define _MX53_PAD_EIM_D26__IPU_DI1_PIN11 IOMUX_PAD(0x48C, 0x144, 5, 0x0, 0, 0) | ||
551 | #define _MX53_PAD_EIM_D26__IPU_SISG_2 IOMUX_PAD(0x48C, 0x144, 6, 0x0, 0, 0) | ||
552 | #define _MX53_PAD_EIM_D26__IPU_DISP1_DAT_22 IOMUX_PAD(0x48C, 0x144, 7, 0x0, 0, 0) | ||
553 | #define _MX53_PAD_EIM_D27__EMI_WEIM_D_27 IOMUX_PAD(0x490, 0x148, 0, 0x0, 0, 0) | ||
554 | #define _MX53_PAD_EIM_D27__GPIO3_27 IOMUX_PAD(0x490, 0x148, 1, 0x0, 0, 0) | ||
555 | #define _MX53_PAD_EIM_D27__UART2_RXD_MUX IOMUX_PAD(0x490, 0x148, 2, 0x880, 1, 0) | ||
556 | #define _MX53_PAD_EIM_D27__FIRI_TXD IOMUX_PAD(0x490, 0x148, 3, 0x0, 0, 0) | ||
557 | #define _MX53_PAD_EIM_D27__IPU_CSI0_D_0 IOMUX_PAD(0x490, 0x148, 4, 0x0, 0, 0) | ||
558 | #define _MX53_PAD_EIM_D27__IPU_DI1_PIN13 IOMUX_PAD(0x490, 0x148, 5, 0x0, 0, 0) | ||
559 | #define _MX53_PAD_EIM_D27__IPU_SISG_3 IOMUX_PAD(0x490, 0x148, 6, 0x0, 0, 0) | ||
560 | #define _MX53_PAD_EIM_D27__IPU_DISP1_DAT_23 IOMUX_PAD(0x490, 0x148, 7, 0x0, 0, 0) | ||
561 | #define _MX53_PAD_EIM_D28__EMI_WEIM_D_28 IOMUX_PAD(0x494, 0x14C, 0, 0x0, 0, 0) | ||
562 | #define _MX53_PAD_EIM_D28__GPIO3_28 IOMUX_PAD(0x494, 0x14C, 1, 0x0, 0, 0) | ||
563 | #define _MX53_PAD_EIM_D28__UART2_CTS IOMUX_PAD(0x494, 0x14C, 2, 0x0, 0, 0) | ||
564 | #define _MX53_PAD_EIM_D28__IPU_DISPB0_SER_DIO IOMUX_PAD(0x494, 0x14C, 3, 0x82C, 1, 0) | ||
565 | #define _MX53_PAD_EIM_D28__CSPI_MOSI IOMUX_PAD(0x494, 0x14C, 4, 0x788, 1, 0) | ||
566 | #define _MX53_PAD_EIM_D28__I2C1_SDA IOMUX_PAD(0x494, 0x14C, 5 | IOMUX_CONFIG_SION, 0x818, 1, 0) | ||
567 | #define _MX53_PAD_EIM_D28__IPU_EXT_TRIG IOMUX_PAD(0x494, 0x14C, 6, 0x0, 0, 0) | ||
568 | #define _MX53_PAD_EIM_D28__IPU_DI0_PIN13 IOMUX_PAD(0x494, 0x14C, 7, 0x0, 0, 0) | ||
569 | #define _MX53_PAD_EIM_D29__EMI_WEIM_D_29 IOMUX_PAD(0x498, 0x150, 0, 0x0, 0, 0) | ||
570 | #define _MX53_PAD_EIM_D29__GPIO3_29 IOMUX_PAD(0x498, 0x150, 1, 0x0, 0, 0) | ||
571 | #define _MX53_PAD_EIM_D29__UART2_RTS IOMUX_PAD(0x498, 0x150, 2, 0x87C, 1, 0) | ||
572 | #define _MX53_PAD_EIM_D29__IPU_DISPB0_SER_RS IOMUX_PAD(0x498, 0x150, 3, 0x0, 0, 0) | ||
573 | #define _MX53_PAD_EIM_D29__CSPI_SS0 IOMUX_PAD(0x498, 0x150, 4, 0x78C, 2, 0) | ||
574 | #define _MX53_PAD_EIM_D29__IPU_DI1_PIN15 IOMUX_PAD(0x498, 0x150, 5, 0x0, 0, 0) | ||
575 | #define _MX53_PAD_EIM_D29__IPU_CSI1_VSYNC IOMUX_PAD(0x498, 0x150, 6, 0x83C, 0, 0) | ||
576 | #define _MX53_PAD_EIM_D29__IPU_DI0_PIN14 IOMUX_PAD(0x498, 0x150, 7, 0x0, 0, 0) | ||
577 | #define _MX53_PAD_EIM_D30__EMI_WEIM_D_30 IOMUX_PAD(0x49C, 0x154, 0, 0x0, 0, 0) | ||
578 | #define _MX53_PAD_EIM_D30__GPIO3_30 IOMUX_PAD(0x49C, 0x154, 1, 0x0, 0, 0) | ||
579 | #define _MX53_PAD_EIM_D30__UART3_CTS IOMUX_PAD(0x49C, 0x154, 2, 0x0, 0, 0) | ||
580 | #define _MX53_PAD_EIM_D30__IPU_CSI0_D_3 IOMUX_PAD(0x49C, 0x154, 3, 0x0, 0, 0) | ||
581 | #define _MX53_PAD_EIM_D30__IPU_DI0_PIN11 IOMUX_PAD(0x49C, 0x154, 4, 0x0, 0, 0) | ||
582 | #define _MX53_PAD_EIM_D30__IPU_DISP1_DAT_21 IOMUX_PAD(0x49C, 0x154, 5, 0x0, 0, 0) | ||
583 | #define _MX53_PAD_EIM_D30__USBOH3_USBH1_OC IOMUX_PAD(0x49C, 0x154, 6, 0x8A0, 0, 0) | ||
584 | #define _MX53_PAD_EIM_D30__USBOH3_USBH2_OC IOMUX_PAD(0x49C, 0x154, 7, 0x8A4, 1, 0) | ||
585 | #define _MX53_PAD_EIM_D31__EMI_WEIM_D_31 IOMUX_PAD(0x4A0, 0x158, 0, 0x0, 0, 0) | ||
586 | #define _MX53_PAD_EIM_D31__GPIO3_31 IOMUX_PAD(0x4A0, 0x158, 1, 0x0, 0, 0) | ||
587 | #define _MX53_PAD_EIM_D31__UART3_RTS IOMUX_PAD(0x4A0, 0x158, 2, 0x884, 3, 0) | ||
588 | #define _MX53_PAD_EIM_D31__IPU_CSI0_D_2 IOMUX_PAD(0x4A0, 0x158, 3, 0x0, 0, 0) | ||
589 | #define _MX53_PAD_EIM_D31__IPU_DI0_PIN12 IOMUX_PAD(0x4A0, 0x158, 4, 0x0, 0, 0) | ||
590 | #define _MX53_PAD_EIM_D31__IPU_DISP1_DAT_20 IOMUX_PAD(0x4A0, 0x158, 5, 0x0, 0, 0) | ||
591 | #define _MX53_PAD_EIM_D31__USBOH3_USBH1_PWR IOMUX_PAD(0x4A0, 0x158, 6, 0x0, 0, 0) | ||
592 | #define _MX53_PAD_EIM_D31__USBOH3_USBH2_PWR IOMUX_PAD(0x4A0, 0x158, 7, 0x0, 0, 0) | ||
593 | #define _MX53_PAD_EIM_A24__EMI_WEIM_A_24 IOMUX_PAD(0x4A8, 0x15C, 0, 0x0, 0, 0) | ||
594 | #define _MX53_PAD_EIM_A24__GPIO5_4 IOMUX_PAD(0x4A8, 0x15C, 1, 0x0, 0, 0) | ||
595 | #define _MX53_PAD_EIM_A24__IPU_DISP1_DAT_19 IOMUX_PAD(0x4A8, 0x15C, 2, 0x0, 0, 0) | ||
596 | #define _MX53_PAD_EIM_A24__IPU_CSI1_D_19 IOMUX_PAD(0x4A8, 0x15C, 3, 0x0, 0, 0) | ||
597 | #define _MX53_PAD_EIM_A24__IPU_SISG_2 IOMUX_PAD(0x4A8, 0x15C, 6, 0x0, 0, 0) | ||
598 | #define _MX53_PAD_EIM_A24__USBPHY2_BVALID IOMUX_PAD(0x4A8, 0x15C, 7, 0x0, 0, 0) | ||
599 | #define _MX53_PAD_EIM_A23__EMI_WEIM_A_23 IOMUX_PAD(0x4AC, 0x160, 0, 0x0, 0, 0) | ||
600 | #define _MX53_PAD_EIM_A23__GPIO6_6 IOMUX_PAD(0x4AC, 0x160, 1, 0x0, 0, 0) | ||
601 | #define _MX53_PAD_EIM_A23__IPU_DISP1_DAT_18 IOMUX_PAD(0x4AC, 0x160, 2, 0x0, 0, 0) | ||
602 | #define _MX53_PAD_EIM_A23__IPU_CSI1_D_18 IOMUX_PAD(0x4AC, 0x160, 3, 0x0, 0, 0) | ||
603 | #define _MX53_PAD_EIM_A23__IPU_SISG_3 IOMUX_PAD(0x4AC, 0x160, 6, 0x0, 0, 0) | ||
604 | #define _MX53_PAD_EIM_A23__USBPHY2_ENDSESSION IOMUX_PAD(0x4AC, 0x160, 7, 0x0, 0, 0) | ||
605 | #define _MX53_PAD_EIM_A22__EMI_WEIM_A_22 IOMUX_PAD(0x4B0, 0x164, 0, 0x0, 0, 0) | ||
606 | #define _MX53_PAD_EIM_A22__GPIO2_16 IOMUX_PAD(0x4B0, 0x164, 1, 0x0, 0, 0) | ||
607 | #define _MX53_PAD_EIM_A22__IPU_DISP1_DAT_17 IOMUX_PAD(0x4B0, 0x164, 2, 0x0, 0, 0) | ||
608 | #define _MX53_PAD_EIM_A22__IPU_CSI1_D_17 IOMUX_PAD(0x4B0, 0x164, 3, 0x0, 0, 0) | ||
609 | #define _MX53_PAD_EIM_A22__SRC_BT_CFG1_7 IOMUX_PAD(0x4B0, 0x164, 7, 0x0, 0, 0) | ||
610 | #define _MX53_PAD_EIM_A21__EMI_WEIM_A_21 IOMUX_PAD(0x4B4, 0x168, 0, 0x0, 0, 0) | ||
611 | #define _MX53_PAD_EIM_A21__GPIO2_17 IOMUX_PAD(0x4B4, 0x168, 1, 0x0, 0, 0) | ||
612 | #define _MX53_PAD_EIM_A21__IPU_DISP1_DAT_16 IOMUX_PAD(0x4B4, 0x168, 2, 0x0, 0, 0) | ||
613 | #define _MX53_PAD_EIM_A21__IPU_CSI1_D_16 IOMUX_PAD(0x4B4, 0x168, 3, 0x0, 0, 0) | ||
614 | #define _MX53_PAD_EIM_A21__SRC_BT_CFG1_6 IOMUX_PAD(0x4B4, 0x168, 7, 0x0, 0, 0) | ||
615 | #define _MX53_PAD_EIM_A20__EMI_WEIM_A_20 IOMUX_PAD(0x4B8, 0x16C, 0, 0x0, 0, 0) | ||
616 | #define _MX53_PAD_EIM_A20__GPIO2_18 IOMUX_PAD(0x4B8, 0x16C, 1, 0x0, 0, 0) | ||
617 | #define _MX53_PAD_EIM_A20__IPU_DISP1_DAT_15 IOMUX_PAD(0x4B8, 0x16C, 2, 0x0, 0, 0) | ||
618 | #define _MX53_PAD_EIM_A20__IPU_CSI1_D_15 IOMUX_PAD(0x4B8, 0x16C, 3, 0x0, 0, 0) | ||
619 | #define _MX53_PAD_EIM_A20__SRC_BT_CFG1_5 IOMUX_PAD(0x4B8, 0x16C, 7, 0x0, 0, 0) | ||
620 | #define _MX53_PAD_EIM_A19__EMI_WEIM_A_19 IOMUX_PAD(0x4BC, 0x170, 0, 0x0, 0, 0) | ||
621 | #define _MX53_PAD_EIM_A19__GPIO2_19 IOMUX_PAD(0x4BC, 0x170, 1, 0x0, 0, 0) | ||
622 | #define _MX53_PAD_EIM_A19__IPU_DISP1_DAT_14 IOMUX_PAD(0x4BC, 0x170, 2, 0x0, 0, 0) | ||
623 | #define _MX53_PAD_EIM_A19__IPU_CSI1_D_14 IOMUX_PAD(0x4BC, 0x170, 3, 0x0, 0, 0) | ||
624 | #define _MX53_PAD_EIM_A19__SRC_BT_CFG1_4 IOMUX_PAD(0x4BC, 0x170, 7, 0x0, 0, 0) | ||
625 | #define _MX53_PAD_EIM_A18__EMI_WEIM_A_18 IOMUX_PAD(0x4C0, 0x174, 0, 0x0, 0, 0) | ||
626 | #define _MX53_PAD_EIM_A18__GPIO2_20 IOMUX_PAD(0x4C0, 0x174, 1, 0x0, 0, 0) | ||
627 | #define _MX53_PAD_EIM_A18__IPU_DISP1_DAT_13 IOMUX_PAD(0x4C0, 0x174, 2, 0x0, 0, 0) | ||
628 | #define _MX53_PAD_EIM_A18__IPU_CSI1_D_13 IOMUX_PAD(0x4C0, 0x174, 3, 0x0, 0, 0) | ||
629 | #define _MX53_PAD_EIM_A18__SRC_BT_CFG1_3 IOMUX_PAD(0x4C0, 0x174, 7, 0x0, 0, 0) | ||
630 | #define _MX53_PAD_EIM_A17__EMI_WEIM_A_17 IOMUX_PAD(0x4C4, 0x178, 0, 0x0, 0, 0) | ||
631 | #define _MX53_PAD_EIM_A17__GPIO2_21 IOMUX_PAD(0x4C4, 0x178, 1, 0x0, 0, 0) | ||
632 | #define _MX53_PAD_EIM_A17__IPU_DISP1_DAT_12 IOMUX_PAD(0x4C4, 0x178, 2, 0x0, 0, 0) | ||
633 | #define _MX53_PAD_EIM_A17__IPU_CSI1_D_12 IOMUX_PAD(0x4C4, 0x178, 3, 0x0, 0, 0) | ||
634 | #define _MX53_PAD_EIM_A17__SRC_BT_CFG1_2 IOMUX_PAD(0x4C4, 0x178, 7, 0x0, 0, 0) | ||
635 | #define _MX53_PAD_EIM_A16__EMI_WEIM_A_16 IOMUX_PAD(0x4C8, 0x17C, 0, 0x0, 0, 0) | ||
636 | #define _MX53_PAD_EIM_A16__GPIO2_22 IOMUX_PAD(0x4C8, 0x17C, 1, 0x0, 0, 0) | ||
637 | #define _MX53_PAD_EIM_A16__IPU_DI1_DISP_CLK IOMUX_PAD(0x4C8, 0x17C, 2, 0x0, 0, 0) | ||
638 | #define _MX53_PAD_EIM_A16__IPU_CSI1_PIXCLK IOMUX_PAD(0x4C8, 0x17C, 3, 0x0, 0, 0) | ||
639 | #define _MX53_PAD_EIM_A16__SRC_BT_CFG1_1 IOMUX_PAD(0x4C8, 0x17C, 7, 0x0, 0, 0) | ||
640 | #define _MX53_PAD_EIM_CS0__EMI_WEIM_CS_0 IOMUX_PAD(0x4CC, 0x180, 0, 0x0, 0, 0) | ||
641 | #define _MX53_PAD_EIM_CS0__GPIO2_23 IOMUX_PAD(0x4CC, 0x180, 1, 0x0, 0, 0) | ||
642 | #define _MX53_PAD_EIM_CS0__ECSPI2_SCLK IOMUX_PAD(0x4CC, 0x180, 2, 0x7B8, 2, 0) | ||
643 | #define _MX53_PAD_EIM_CS0__IPU_DI1_PIN5 IOMUX_PAD(0x4CC, 0x180, 3, 0x0, 0, 0) | ||
644 | #define _MX53_PAD_EIM_CS1__EMI_WEIM_CS_1 IOMUX_PAD(0x4D0, 0x184, 0, 0x0, 0, 0) | ||
645 | #define _MX53_PAD_EIM_CS1__GPIO2_24 IOMUX_PAD(0x4D0, 0x184, 1, 0x0, 0, 0) | ||
646 | #define _MX53_PAD_EIM_CS1__ECSPI2_MOSI IOMUX_PAD(0x4D0, 0x184, 2, 0x7C0, 2, 0) | ||
647 | #define _MX53_PAD_EIM_CS1__IPU_DI1_PIN6 IOMUX_PAD(0x4D0, 0x184, 3, 0x0, 0, 0) | ||
648 | #define _MX53_PAD_EIM_OE__EMI_WEIM_OE IOMUX_PAD(0x4D4, 0x188, 0, 0x0, 0, 0) | ||
649 | #define _MX53_PAD_EIM_OE__GPIO2_25 IOMUX_PAD(0x4D4, 0x188, 1, 0x0, 0, 0) | ||
650 | #define _MX53_PAD_EIM_OE__ECSPI2_MISO IOMUX_PAD(0x4D4, 0x188, 2, 0x7BC, 2, 0) | ||
651 | #define _MX53_PAD_EIM_OE__IPU_DI1_PIN7 IOMUX_PAD(0x4D4, 0x188, 3, 0x0, 0, 0) | ||
652 | #define _MX53_PAD_EIM_OE__USBPHY2_IDDIG IOMUX_PAD(0x4D4, 0x188, 7, 0x0, 0, 0) | ||
653 | #define _MX53_PAD_EIM_RW__EMI_WEIM_RW IOMUX_PAD(0x4D8, 0x18C, 0, 0x0, 0, 0) | ||
654 | #define _MX53_PAD_EIM_RW__GPIO2_26 IOMUX_PAD(0x4D8, 0x18C, 1, 0x0, 0, 0) | ||
655 | #define _MX53_PAD_EIM_RW__ECSPI2_SS0 IOMUX_PAD(0x4D8, 0x18C, 2, 0x7C4, 2, 0) | ||
656 | #define _MX53_PAD_EIM_RW__IPU_DI1_PIN8 IOMUX_PAD(0x4D8, 0x18C, 3, 0x0, 0, 0) | ||
657 | #define _MX53_PAD_EIM_RW__USBPHY2_HOSTDISCONNECT IOMUX_PAD(0x4D8, 0x18C, 7, 0x0, 0, 0) | ||
658 | #define _MX53_PAD_EIM_LBA__EMI_WEIM_LBA IOMUX_PAD(0x4DC, 0x190, 0, 0x0, 0, 0) | ||
659 | #define _MX53_PAD_EIM_LBA__GPIO2_27 IOMUX_PAD(0x4DC, 0x190, 1, 0x0, 0, 0) | ||
660 | #define _MX53_PAD_EIM_LBA__ECSPI2_SS1 IOMUX_PAD(0x4DC, 0x190, 2, 0x7C8, 1, 0) | ||
661 | #define _MX53_PAD_EIM_LBA__IPU_DI1_PIN17 IOMUX_PAD(0x4DC, 0x190, 3, 0x0, 0, 0) | ||
662 | #define _MX53_PAD_EIM_LBA__SRC_BT_CFG1_0 IOMUX_PAD(0x4DC, 0x190, 7, 0x0, 0, 0) | ||
663 | #define _MX53_PAD_EIM_EB0__EMI_WEIM_EB_0 IOMUX_PAD(0x4E4, 0x194, 0, 0x0, 0, 0) | ||
664 | #define _MX53_PAD_EIM_EB0__GPIO2_28 IOMUX_PAD(0x4E4, 0x194, 1, 0x0, 0, 0) | ||
665 | #define _MX53_PAD_EIM_EB0__IPU_DISP1_DAT_11 IOMUX_PAD(0x4E4, 0x194, 3, 0x0, 0, 0) | ||
666 | #define _MX53_PAD_EIM_EB0__IPU_CSI1_D_11 IOMUX_PAD(0x4E4, 0x194, 4, 0x0, 0, 0) | ||
667 | #define _MX53_PAD_EIM_EB0__GPC_PMIC_RDY IOMUX_PAD(0x4E4, 0x194, 5, 0x810, 0, 0) | ||
668 | #define _MX53_PAD_EIM_EB0__SRC_BT_CFG2_7 IOMUX_PAD(0x4E4, 0x194, 7, 0x0, 0, 0) | ||
669 | #define _MX53_PAD_EIM_EB1__EMI_WEIM_EB_1 IOMUX_PAD(0x4E8, 0x198, 0, 0x0, 0, 0) | ||
670 | #define _MX53_PAD_EIM_EB1__GPIO2_29 IOMUX_PAD(0x4E8, 0x198, 1, 0x0, 0, 0) | ||
671 | #define _MX53_PAD_EIM_EB1__IPU_DISP1_DAT_10 IOMUX_PAD(0x4E8, 0x198, 3, 0x0, 0, 0) | ||
672 | #define _MX53_PAD_EIM_EB1__IPU_CSI1_D_10 IOMUX_PAD(0x4E8, 0x198, 4, 0x0, 0, 0) | ||
673 | #define _MX53_PAD_EIM_EB1__SRC_BT_CFG2_6 IOMUX_PAD(0x4E8, 0x198, 7, 0x0, 0, 0) | ||
674 | #define _MX53_PAD_EIM_DA0__EMI_NAND_WEIM_DA_0 IOMUX_PAD(0x4EC, 0x19C, 0, 0x0, 0, 0) | ||
675 | #define _MX53_PAD_EIM_DA0__GPIO3_0 IOMUX_PAD(0x4EC, 0x19C, 1, 0x0, 0, 0) | ||
676 | #define _MX53_PAD_EIM_DA0__IPU_DISP1_DAT_9 IOMUX_PAD(0x4EC, 0x19C, 3, 0x0, 0, 0) | ||
677 | #define _MX53_PAD_EIM_DA0__IPU_CSI1_D_9 IOMUX_PAD(0x4EC, 0x19C, 4, 0x0, 0, 0) | ||
678 | #define _MX53_PAD_EIM_DA0__SRC_BT_CFG2_5 IOMUX_PAD(0x4EC, 0x19C, 7, 0x0, 0, 0) | ||
679 | #define _MX53_PAD_EIM_DA1__EMI_NAND_WEIM_DA_1 IOMUX_PAD(0x4F0, 0x1A0, 0, 0x0, 0, 0) | ||
680 | #define _MX53_PAD_EIM_DA1__GPIO3_1 IOMUX_PAD(0x4F0, 0x1A0, 1, 0x0, 0, 0) | ||
681 | #define _MX53_PAD_EIM_DA1__IPU_DISP1_DAT_8 IOMUX_PAD(0x4F0, 0x1A0, 3, 0x0, 0, 0) | ||
682 | #define _MX53_PAD_EIM_DA1__IPU_CSI1_D_8 IOMUX_PAD(0x4F0, 0x1A0, 4, 0x0, 0, 0) | ||
683 | #define _MX53_PAD_EIM_DA1__SRC_BT_CFG2_4 IOMUX_PAD(0x4F0, 0x1A0, 7, 0x0, 0, 0) | ||
684 | #define _MX53_PAD_EIM_DA2__EMI_NAND_WEIM_DA_2 IOMUX_PAD(0x4F4, 0x1A4, 0, 0x0, 0, 0) | ||
685 | #define _MX53_PAD_EIM_DA2__GPIO3_2 IOMUX_PAD(0x4F4, 0x1A4, 1, 0x0, 0, 0) | ||
686 | #define _MX53_PAD_EIM_DA2__IPU_DISP1_DAT_7 IOMUX_PAD(0x4F4, 0x1A4, 3, 0x0, 0, 0) | ||
687 | #define _MX53_PAD_EIM_DA2__IPU_CSI1_D_7 IOMUX_PAD(0x4F4, 0x1A4, 4, 0x0, 0, 0) | ||
688 | #define _MX53_PAD_EIM_DA2__SRC_BT_CFG2_3 IOMUX_PAD(0x4F4, 0x1A4, 7, 0x0, 0, 0) | ||
689 | #define _MX53_PAD_EIM_DA3__EMI_NAND_WEIM_DA_3 IOMUX_PAD(0x4F8, 0x1A8, 0, 0x0, 0, 0) | ||
690 | #define _MX53_PAD_EIM_DA3__GPIO3_3 IOMUX_PAD(0x4F8, 0x1A8, 1, 0x0, 0, 0) | ||
691 | #define _MX53_PAD_EIM_DA3__IPU_DISP1_DAT_6 IOMUX_PAD(0x4F8, 0x1A8, 3, 0x0, 0, 0) | ||
692 | #define _MX53_PAD_EIM_DA3__IPU_CSI1_D_6 IOMUX_PAD(0x4F8, 0x1A8, 4, 0x0, 0, 0) | ||
693 | #define _MX53_PAD_EIM_DA3__SRC_BT_CFG2_2 IOMUX_PAD(0x4F8, 0x1A8, 7, 0x0, 0, 0) | ||
694 | #define _MX53_PAD_EIM_DA4__EMI_NAND_WEIM_DA_4 IOMUX_PAD(0x4FC, 0x1AC, 0, 0x0, 0, 0) | ||
695 | #define _MX53_PAD_EIM_DA4__GPIO3_4 IOMUX_PAD(0x4FC, 0x1AC, 1, 0x0, 0, 0) | ||
696 | #define _MX53_PAD_EIM_DA4__IPU_DISP1_DAT_5 IOMUX_PAD(0x4FC, 0x1AC, 3, 0x0, 0, 0) | ||
697 | #define _MX53_PAD_EIM_DA4__IPU_CSI1_D_5 IOMUX_PAD(0x4FC, 0x1AC, 4, 0x0, 0, 0) | ||
698 | #define _MX53_PAD_EIM_DA4__SRC_BT_CFG3_7 IOMUX_PAD(0x4FC, 0x1AC, 7, 0x0, 0, 0) | ||
699 | #define _MX53_PAD_EIM_DA5__EMI_NAND_WEIM_DA_5 IOMUX_PAD(0x500, 0x1B0, 0, 0x0, 0, 0) | ||
700 | #define _MX53_PAD_EIM_DA5__GPIO3_5 IOMUX_PAD(0x500, 0x1B0, 1, 0x0, 0, 0) | ||
701 | #define _MX53_PAD_EIM_DA5__IPU_DISP1_DAT_4 IOMUX_PAD(0x500, 0x1B0, 3, 0x0, 0, 0) | ||
702 | #define _MX53_PAD_EIM_DA5__IPU_CSI1_D_4 IOMUX_PAD(0x500, 0x1B0, 4, 0x0, 0, 0) | ||
703 | #define _MX53_PAD_EIM_DA5__SRC_BT_CFG3_6 IOMUX_PAD(0x500, 0x1B0, 7 | IOMUX_CONFIG_SION, 0x0, 0, 0) | ||
704 | #define _MX53_PAD_EIM_DA6__EMI_NAND_WEIM_DA_6 IOMUX_PAD(0x504, 0x1B4, 0, 0x0, 0, 0) | ||
705 | #define _MX53_PAD_EIM_DA6__GPIO3_6 IOMUX_PAD(0x504, 0x1B4, 1, 0x0, 0, 0) | ||
706 | #define _MX53_PAD_EIM_DA6__IPU_DISP1_DAT_3 IOMUX_PAD(0x504, 0x1B4, 3, 0x0, 0, 0) | ||
707 | #define _MX53_PAD_EIM_DA6__IPU_CSI1_D_3 IOMUX_PAD(0x504, 0x1B4, 4, 0x0, 0, 0) | ||
708 | #define _MX53_PAD_EIM_DA6__SRC_BT_CFG3_5 IOMUX_PAD(0x504, 0x1B4, 7, 0x0, 0, 0) | ||
709 | #define _MX53_PAD_EIM_DA7__EMI_NAND_WEIM_DA_7 IOMUX_PAD(0x508, 0x1B8, 0, 0x0, 0, 0) | ||
710 | #define _MX53_PAD_EIM_DA7__GPIO3_7 IOMUX_PAD(0x508, 0x1B8, 1, 0x0, 0, 0) | ||
711 | #define _MX53_PAD_EIM_DA7__IPU_DISP1_DAT_2 IOMUX_PAD(0x508, 0x1B8, 3, 0x0, 0, 0) | ||
712 | #define _MX53_PAD_EIM_DA7__IPU_CSI1_D_2 IOMUX_PAD(0x508, 0x1B8, 4, 0x0, 0, 0) | ||
713 | #define _MX53_PAD_EIM_DA7__SRC_BT_CFG3_4 IOMUX_PAD(0x508, 0x1B8, 7, 0x0, 0, 0) | ||
714 | #define _MX53_PAD_EIM_DA8__EMI_NAND_WEIM_DA_8 IOMUX_PAD(0x50C, 0x1BC, 0, 0x0, 0, 0) | ||
715 | #define _MX53_PAD_EIM_DA8__GPIO3_8 IOMUX_PAD(0x50C, 0x1BC, 1, 0x0, 0, 0) | ||
716 | #define _MX53_PAD_EIM_DA8__IPU_DISP1_DAT_1 IOMUX_PAD(0x50C, 0x1BC, 3, 0x0, 0, 0) | ||
717 | #define _MX53_PAD_EIM_DA8__IPU_CSI1_D_1 IOMUX_PAD(0x50C, 0x1BC, 4, 0x0, 0, 0) | ||
718 | #define _MX53_PAD_EIM_DA8__SRC_BT_CFG3_3 IOMUX_PAD(0x50C, 0x1BC, 7, 0x0, 0, 0) | ||
719 | #define _MX53_PAD_EIM_DA9__EMI_NAND_WEIM_DA_9 IOMUX_PAD(0x510, 0x1C0, 0, 0x0, 0, 0) | ||
720 | #define _MX53_PAD_EIM_DA9__GPIO3_9 IOMUX_PAD(0x510, 0x1C0, 1, 0x0, 0, 0) | ||
721 | #define _MX53_PAD_EIM_DA9__IPU_DISP1_DAT_0 IOMUX_PAD(0x510, 0x1C0, 3, 0x0, 0, 0) | ||
722 | #define _MX53_PAD_EIM_DA9__IPU_CSI1_D_0 IOMUX_PAD(0x510, 0x1C0, 4, 0x0, 0, 0) | ||
723 | #define _MX53_PAD_EIM_DA9__SRC_BT_CFG3_2 IOMUX_PAD(0x510, 0x1C0, 7, 0x0, 0, 0) | ||
724 | #define _MX53_PAD_EIM_DA10__EMI_NAND_WEIM_DA_10 IOMUX_PAD(0x514, 0x1C4, 0, 0x0, 0, 0) | ||
725 | #define _MX53_PAD_EIM_DA10__GPIO3_10 IOMUX_PAD(0x514, 0x1C4, 1, 0x0, 0, 0) | ||
726 | #define _MX53_PAD_EIM_DA10__IPU_DI1_PIN15 IOMUX_PAD(0x514, 0x1C4, 3, 0x0, 0, 0) | ||
727 | #define _MX53_PAD_EIM_DA10__IPU_CSI1_DATA_EN IOMUX_PAD(0x514, 0x1C4, 4, 0x834, 1, 0) | ||
728 | #define _MX53_PAD_EIM_DA10__SRC_BT_CFG3_1 IOMUX_PAD(0x514, 0x1C4, 7, 0x0, 0, 0) | ||
729 | #define _MX53_PAD_EIM_DA11__EMI_NAND_WEIM_DA_11 IOMUX_PAD(0x518, 0x1C8, 0, 0x0, 0, 0) | ||
730 | #define _MX53_PAD_EIM_DA11__GPIO3_11 IOMUX_PAD(0x518, 0x1C8, 1, 0x0, 0, 0) | ||
731 | #define _MX53_PAD_EIM_DA11__IPU_DI1_PIN2 IOMUX_PAD(0x518, 0x1C8, 3, 0x0, 0, 0) | ||
732 | #define _MX53_PAD_EIM_DA11__IPU_CSI1_HSYNC IOMUX_PAD(0x518, 0x1C8, 4, 0x838, 1, 0) | ||
733 | #define _MX53_PAD_EIM_DA12__EMI_NAND_WEIM_DA_12 IOMUX_PAD(0x51C, 0x1CC, 0, 0x0, 0, 0) | ||
734 | #define _MX53_PAD_EIM_DA12__GPIO3_12 IOMUX_PAD(0x51C, 0x1CC, 1, 0x0, 0, 0) | ||
735 | #define _MX53_PAD_EIM_DA12__IPU_DI1_PIN3 IOMUX_PAD(0x51C, 0x1CC, 3, 0x0, 0, 0) | ||
736 | #define _MX53_PAD_EIM_DA12__IPU_CSI1_VSYNC IOMUX_PAD(0x51C, 0x1CC, 4, 0x83C, 1, 0) | ||
737 | #define _MX53_PAD_EIM_DA13__EMI_NAND_WEIM_DA_13 IOMUX_PAD(0x520, 0x1D0, 0, 0x0, 0, 0) | ||
738 | #define _MX53_PAD_EIM_DA13__GPIO3_13 IOMUX_PAD(0x520, 0x1D0, 1, 0x0, 0, 0) | ||
739 | #define _MX53_PAD_EIM_DA13__IPU_DI1_D0_CS IOMUX_PAD(0x520, 0x1D0, 3, 0x0, 0, 0) | ||
740 | #define _MX53_PAD_EIM_DA13__CCM_DI1_EXT_CLK IOMUX_PAD(0x520, 0x1D0, 4, 0x76C, 1, 0) | ||
741 | #define _MX53_PAD_EIM_DA14__EMI_NAND_WEIM_DA_14 IOMUX_PAD(0x524, 0x1D4, 0, 0x0, 0, 0) | ||
742 | #define _MX53_PAD_EIM_DA14__GPIO3_14 IOMUX_PAD(0x524, 0x1D4, 1, 0x0, 0, 0) | ||
743 | #define _MX53_PAD_EIM_DA14__IPU_DI1_D1_CS IOMUX_PAD(0x524, 0x1D4, 3, 0x0, 0, 0) | ||
744 | #define _MX53_PAD_EIM_DA14__CCM_DI0_EXT_CLK IOMUX_PAD(0x524, 0x1D4, 4, 0x0, 0, 0) | ||
745 | #define _MX53_PAD_EIM_DA15__EMI_NAND_WEIM_DA_15 IOMUX_PAD(0x528, 0x1D8, 0, 0x0, 0, 0) | ||
746 | #define _MX53_PAD_EIM_DA15__GPIO3_15 IOMUX_PAD(0x528, 0x1D8, 1, 0x0, 0, 0) | ||
747 | #define _MX53_PAD_EIM_DA15__IPU_DI1_PIN1 IOMUX_PAD(0x528, 0x1D8, 3, 0x0, 0, 0) | ||
748 | #define _MX53_PAD_EIM_DA15__IPU_DI1_PIN4 IOMUX_PAD(0x528, 0x1D8, 4, 0x0, 0, 0) | ||
749 | #define _MX53_PAD_NANDF_WE_B__EMI_NANDF_WE_B IOMUX_PAD(0x52C, 0x1DC, 0, 0x0, 0, 0) | ||
750 | #define _MX53_PAD_NANDF_WE_B__GPIO6_12 IOMUX_PAD(0x52C, 0x1DC, 1, 0x0, 0, 0) | ||
751 | #define _MX53_PAD_NANDF_RE_B__EMI_NANDF_RE_B IOMUX_PAD(0x530, 0x1E0, 0, 0x0, 0, 0) | ||
752 | #define _MX53_PAD_NANDF_RE_B__GPIO6_13 IOMUX_PAD(0x530, 0x1E0, 1, 0x0, 0, 0) | ||
753 | #define _MX53_PAD_EIM_WAIT__EMI_WEIM_WAIT IOMUX_PAD(0x534, 0x1E4, 0, 0x0, 0, 0) | ||
754 | #define _MX53_PAD_EIM_WAIT__GPIO5_0 IOMUX_PAD(0x534, 0x1E4, 1, 0x0, 0, 0) | ||
755 | #define _MX53_PAD_EIM_WAIT__EMI_WEIM_DTACK_B IOMUX_PAD(0x534, 0x1E4, 2, 0x0, 0, 0) | ||
756 | #define _MX53_PAD_LVDS1_TX3_P__GPIO6_22 IOMUX_PAD(NON_PAD_I, 0x1EC, 0, 0x0, 0, 0) | ||
757 | #define _MX53_PAD_LVDS1_TX3_P__LDB_LVDS1_TX3 IOMUX_PAD(NON_PAD_I, 0x1EC, 1, 0x0, 0, 0) | ||
758 | #define _MX53_PAD_LVDS1_TX2_P__GPIO6_24 IOMUX_PAD(NON_PAD_I, 0x1F0, 0, 0x0, 0, 0) | ||
759 | #define _MX53_PAD_LVDS1_TX2_P__LDB_LVDS1_TX2 IOMUX_PAD(NON_PAD_I, 0x1F0, 1, 0x0, 0, 0) | ||
760 | #define _MX53_PAD_LVDS1_CLK_P__GPIO6_26 IOMUX_PAD(NON_PAD_I, 0x1F4, 0, 0x0, 0, 0) | ||
761 | #define _MX53_PAD_LVDS1_CLK_P__LDB_LVDS1_CLK IOMUX_PAD(NON_PAD_I, 0x1F4, 1, 0x0, 0, 0) | ||
762 | #define _MX53_PAD_LVDS1_TX1_P__GPIO6_28 IOMUX_PAD(NON_PAD_I, 0x1F8, 0, 0x0, 0, 0) | ||
763 | #define _MX53_PAD_LVDS1_TX1_P__LDB_LVDS1_TX1 IOMUX_PAD(NON_PAD_I, 0x1F8, 1, 0x0, 0, 0) | ||
764 | #define _MX53_PAD_LVDS1_TX0_P__GPIO6_30 IOMUX_PAD(NON_PAD_I, 0x1FC, 0, 0x0, 0, 0) | ||
765 | #define _MX53_PAD_LVDS1_TX0_P__LDB_LVDS1_TX0 IOMUX_PAD(NON_PAD_I, 0x1FC, 1, 0x0, 0, 0) | ||
766 | #define _MX53_PAD_LVDS0_TX3_P__GPIO7_22 IOMUX_PAD(NON_PAD_I, 0x200, 0, 0x0, 0, 0) | ||
767 | #define _MX53_PAD_LVDS0_TX3_P__LDB_LVDS0_TX3 IOMUX_PAD(NON_PAD_I, 0x200, 1, 0x0, 0, 0) | ||
768 | #define _MX53_PAD_LVDS0_CLK_P__GPIO7_24 IOMUX_PAD(NON_PAD_I, 0x204, 0, 0x0, 0, 0) | ||
769 | #define _MX53_PAD_LVDS0_CLK_P__LDB_LVDS0_CLK IOMUX_PAD(NON_PAD_I, 0x204, 1, 0x0, 0, 0) | ||
770 | #define _MX53_PAD_LVDS0_TX2_P__GPIO7_26 IOMUX_PAD(NON_PAD_I, 0x208, 0, 0x0, 0, 0) | ||
771 | #define _MX53_PAD_LVDS0_TX2_P__LDB_LVDS0_TX2 IOMUX_PAD(NON_PAD_I, 0x208, 1, 0x0, 0, 0) | ||
772 | #define _MX53_PAD_LVDS0_TX1_P__GPIO7_28 IOMUX_PAD(NON_PAD_I, 0x20C, 0, 0x0, 0, 0) | ||
773 | #define _MX53_PAD_LVDS0_TX1_P__LDB_LVDS0_TX1 IOMUX_PAD(NON_PAD_I, 0x20C, 1, 0x0, 0, 0) | ||
774 | #define _MX53_PAD_LVDS0_TX0_P__GPIO7_30 IOMUX_PAD(NON_PAD_I, 0x210, 0, 0x0, 0, 0) | ||
775 | #define _MX53_PAD_LVDS0_TX0_P__LDB_LVDS0_TX0 IOMUX_PAD(NON_PAD_I, 0x210, 1, 0x0, 0, 0) | ||
776 | #define _MX53_PAD_GPIO_10__GPIO4_0 IOMUX_PAD(0x540, 0x214, 0, 0x0, 0, 0) | ||
777 | #define _MX53_PAD_GPIO_10__OSC32k_32K_OUT IOMUX_PAD(0x540, 0x214, 1, 0x0, 0, 0) | ||
778 | #define _MX53_PAD_GPIO_11__GPIO4_1 IOMUX_PAD(0x544, 0x218, 0, 0x0, 0, 0) | ||
779 | #define _MX53_PAD_GPIO_12__GPIO4_2 IOMUX_PAD(0x548, 0x21C, 0, 0x0, 0, 0) | ||
780 | #define _MX53_PAD_GPIO_13__GPIO4_3 IOMUX_PAD(0x54C, 0x220, 0, 0x0, 0, 0) | ||
781 | #define _MX53_PAD_GPIO_14__GPIO4_4 IOMUX_PAD(0x550, 0x224, 0, 0x0, 0, 0) | ||
782 | #define _MX53_PAD_NANDF_CLE__EMI_NANDF_CLE IOMUX_PAD(0x5A0, 0x228, 0, 0x0, 0, 0) | ||
783 | #define _MX53_PAD_NANDF_CLE__GPIO6_7 IOMUX_PAD(0x5A0, 0x228, 1, 0x0, 0, 0) | ||
784 | #define _MX53_PAD_NANDF_CLE__USBPHY1_VSTATUS_0 IOMUX_PAD(0x5A0, 0x228, 7, 0x0, 0, 0) | ||
785 | #define _MX53_PAD_NANDF_ALE__EMI_NANDF_ALE IOMUX_PAD(0x5A4, 0x22C, 0, 0x0, 0, 0) | ||
786 | #define _MX53_PAD_NANDF_ALE__GPIO6_8 IOMUX_PAD(0x5A4, 0x22C, 1, 0x0, 0, 0) | ||
787 | #define _MX53_PAD_NANDF_ALE__USBPHY1_VSTATUS_1 IOMUX_PAD(0x5A4, 0x22C, 7, 0x0, 0, 0) | ||
788 | #define _MX53_PAD_NANDF_WP_B__EMI_NANDF_WP_B IOMUX_PAD(0x5A8, 0x230, 0, 0x0, 0, 0) | ||
789 | #define _MX53_PAD_NANDF_WP_B__GPIO6_9 IOMUX_PAD(0x5A8, 0x230, 1, 0x0, 0, 0) | ||
790 | #define _MX53_PAD_NANDF_WP_B__USBPHY1_VSTATUS_2 IOMUX_PAD(0x5A8, 0x230, 7, 0x0, 0, 0) | ||
791 | #define _MX53_PAD_NANDF_RB0__EMI_NANDF_RB_0 IOMUX_PAD(0x5AC, 0x234, 0, 0x0, 0, 0) | ||
792 | #define _MX53_PAD_NANDF_RB0__GPIO6_10 IOMUX_PAD(0x5AC, 0x234, 1, 0x0, 0, 0) | ||
793 | #define _MX53_PAD_NANDF_RB0__USBPHY1_VSTATUS_3 IOMUX_PAD(0x5AC, 0x234, 7, 0x0, 0, 0) | ||
794 | #define _MX53_PAD_NANDF_CS0__EMI_NANDF_CS_0 IOMUX_PAD(0x5B0, 0x238, 0, 0x0, 0, 0) | ||
795 | #define _MX53_PAD_NANDF_CS0__GPIO6_11 IOMUX_PAD(0x5B0, 0x238, 1, 0x0, 0, 0) | ||
796 | #define _MX53_PAD_NANDF_CS0__USBPHY1_VSTATUS_4 IOMUX_PAD(0x5B0, 0x238, 7, 0x0, 0, 0) | ||
797 | #define _MX53_PAD_NANDF_CS1__EMI_NANDF_CS_1 IOMUX_PAD(0x5B4, 0x23C, 0, 0x0, 0, 0) | ||
798 | #define _MX53_PAD_NANDF_CS1__GPIO6_14 IOMUX_PAD(0x5B4, 0x23C, 1, 0x0, 0, 0) | ||
799 | #define _MX53_PAD_NANDF_CS1__MLB_MLBCLK IOMUX_PAD(0x5B4, 0x23C, 6, 0x858, 0, 0) | ||
800 | #define _MX53_PAD_NANDF_CS1__USBPHY1_VSTATUS_5 IOMUX_PAD(0x5B4, 0x23C, 7, 0x0, 0, 0) | ||
801 | #define _MX53_PAD_NANDF_CS2__EMI_NANDF_CS_2 IOMUX_PAD(0x5B8, 0x240, 0, 0x0, 0, 0) | ||
802 | #define _MX53_PAD_NANDF_CS2__GPIO6_15 IOMUX_PAD(0x5B8, 0x240, 1, 0x0, 0, 0) | ||
803 | #define _MX53_PAD_NANDF_CS2__IPU_SISG_0 IOMUX_PAD(0x5B8, 0x240, 2, 0x0, 0, 0) | ||
804 | #define _MX53_PAD_NANDF_CS2__ESAI1_TX0 IOMUX_PAD(0x5B8, 0x240, 3, 0x7E4, 0, 0) | ||
805 | #define _MX53_PAD_NANDF_CS2__EMI_WEIM_CRE IOMUX_PAD(0x5B8, 0x240, 4, 0x0, 0, 0) | ||
806 | #define _MX53_PAD_NANDF_CS2__CCM_CSI0_MCLK IOMUX_PAD(0x5B8, 0x240, 5, 0x0, 0, 0) | ||
807 | #define _MX53_PAD_NANDF_CS2__MLB_MLBSIG IOMUX_PAD(0x5B8, 0x240, 6, 0x860, 0, 0) | ||
808 | #define _MX53_PAD_NANDF_CS2__USBPHY1_VSTATUS_6 IOMUX_PAD(0x5B8, 0x240, 7, 0x0, 0, 0) | ||
809 | #define _MX53_PAD_NANDF_CS3__EMI_NANDF_CS_3 IOMUX_PAD(0x5BC, 0x244, 0, 0x0, 0, 0) | ||
810 | #define _MX53_PAD_NANDF_CS3__GPIO6_16 IOMUX_PAD(0x5BC, 0x244, 1, 0x0, 0, 0) | ||
811 | #define _MX53_PAD_NANDF_CS3__IPU_SISG_1 IOMUX_PAD(0x5BC, 0x244, 2, 0x0, 0, 0) | ||
812 | #define _MX53_PAD_NANDF_CS3__ESAI1_TX1 IOMUX_PAD(0x5BC, 0x244, 3, 0x7E8, 0, 0) | ||
813 | #define _MX53_PAD_NANDF_CS3__EMI_WEIM_A_26 IOMUX_PAD(0x5BC, 0x244, 4, 0x0, 0, 0) | ||
814 | #define _MX53_PAD_NANDF_CS3__MLB_MLBDAT IOMUX_PAD(0x5BC, 0x244, 6, 0x85C, 0, 0) | ||
815 | #define _MX53_PAD_NANDF_CS3__USBPHY1_VSTATUS_7 IOMUX_PAD(0x5BC, 0x244, 7, 0x0, 0, 0) | ||
816 | #define _MX53_PAD_FEC_MDIO__FEC_MDIO IOMUX_PAD(0x5C4, 0x248, 0, 0x804, 1, 0) | ||
817 | #define _MX53_PAD_FEC_MDIO__GPIO1_22 IOMUX_PAD(0x5C4, 0x248, 1, 0x0, 0, 0) | ||
818 | #define _MX53_PAD_FEC_MDIO__ESAI1_SCKR IOMUX_PAD(0x5C4, 0x248, 2, 0x7DC, 0, 0) | ||
819 | #define _MX53_PAD_FEC_MDIO__FEC_COL IOMUX_PAD(0x5C4, 0x248, 3, 0x800, 1, 0) | ||
820 | #define _MX53_PAD_FEC_MDIO__RTC_CE_RTC_PS2 IOMUX_PAD(0x5C4, 0x248, 4, 0x0, 0, 0) | ||
821 | #define _MX53_PAD_FEC_MDIO__SDMA_DEBUG_BUS_DEVICE_3 IOMUX_PAD(0x5C4, 0x248, 5, 0x0, 0, 0) | ||
822 | #define _MX53_PAD_FEC_MDIO__EMI_EMI_DEBUG_49 IOMUX_PAD(0x5C4, 0x248, 6, 0x0, 0, 0) | ||
823 | #define _MX53_PAD_FEC_REF_CLK__FEC_TX_CLK IOMUX_PAD(0x5C8, 0x24C, 0, 0x0, 0, 0) | ||
824 | #define _MX53_PAD_FEC_REF_CLK__GPIO1_23 IOMUX_PAD(0x5C8, 0x24C, 1, 0x0, 0, 0) | ||
825 | #define _MX53_PAD_FEC_REF_CLK__ESAI1_FSR IOMUX_PAD(0x5C8, 0x24C, 2, 0x7CC, 0, 0) | ||
826 | #define _MX53_PAD_FEC_REF_CLK__SDMA_DEBUG_BUS_DEVICE_4 IOMUX_PAD(0x5C8, 0x24C, 5, 0x0, 0, 0) | ||
827 | #define _MX53_PAD_FEC_REF_CLK__EMI_EMI_DEBUG_50 IOMUX_PAD(0x5C8, 0x24C, 6, 0x0, 0, 0) | ||
828 | #define _MX53_PAD_FEC_RX_ER__FEC_RX_ER IOMUX_PAD(0x5CC, 0x250, 0, 0x0, 0, 0) | ||
829 | #define _MX53_PAD_FEC_RX_ER__GPIO1_24 IOMUX_PAD(0x5CC, 0x250, 1, 0x0, 0, 0) | ||
830 | #define _MX53_PAD_FEC_RX_ER__ESAI1_HCKR IOMUX_PAD(0x5CC, 0x250, 2, 0x7D4, 0, 0) | ||
831 | #define _MX53_PAD_FEC_RX_ER__FEC_RX_CLK IOMUX_PAD(0x5CC, 0x250, 3, 0x808, 1, 0) | ||
832 | #define _MX53_PAD_FEC_RX_ER__RTC_CE_RTC_PS3 IOMUX_PAD(0x5CC, 0x250, 4, 0x0, 0, 0) | ||
833 | #define _MX53_PAD_FEC_CRS_DV__FEC_RX_DV IOMUX_PAD(0x5D0, 0x254, 0, 0x0, 0, 0) | ||
834 | #define _MX53_PAD_FEC_CRS_DV__GPIO1_25 IOMUX_PAD(0x5D0, 0x254, 1, 0x0, 0, 0) | ||
835 | #define _MX53_PAD_FEC_CRS_DV__ESAI1_SCKT IOMUX_PAD(0x5D0, 0x254, 2, 0x7E0, 0, 0) | ||
836 | #define _MX53_PAD_FEC_RXD1__FEC_RDATA_1 IOMUX_PAD(0x5D4, 0x258, 0, 0x0, 0, 0) | ||
837 | #define _MX53_PAD_FEC_RXD1__GPIO1_26 IOMUX_PAD(0x5D4, 0x258, 1, 0x0, 0, 0) | ||
838 | #define _MX53_PAD_FEC_RXD1__ESAI1_FST IOMUX_PAD(0x5D4, 0x258, 2, 0x7D0, 0, 0) | ||
839 | #define _MX53_PAD_FEC_RXD1__MLB_MLBSIG IOMUX_PAD(0x5D4, 0x258, 3, 0x860, 1, 0) | ||
840 | #define _MX53_PAD_FEC_RXD1__RTC_CE_RTC_PS1 IOMUX_PAD(0x5D4, 0x258, 4, 0x0, 0, 0) | ||
841 | #define _MX53_PAD_FEC_RXD0__FEC_RDATA_0 IOMUX_PAD(0x5D8, 0x25C, 0, 0x0, 0, 0) | ||
842 | #define _MX53_PAD_FEC_RXD0__GPIO1_27 IOMUX_PAD(0x5D8, 0x25C, 1, 0x0, 0, 0) | ||
843 | #define _MX53_PAD_FEC_RXD0__ESAI1_HCKT IOMUX_PAD(0x5D8, 0x25C, 2, 0x7D8, 0, 0) | ||
844 | #define _MX53_PAD_FEC_RXD0__OSC32k_32K_OUT IOMUX_PAD(0x5D8, 0x25C, 3, 0x0, 0, 0) | ||
845 | #define _MX53_PAD_FEC_TX_EN__FEC_TX_EN IOMUX_PAD(0x5DC, 0x260, 0, 0x0, 0, 0) | ||
846 | #define _MX53_PAD_FEC_TX_EN__GPIO1_28 IOMUX_PAD(0x5DC, 0x260, 1, 0x0, 0, 0) | ||
847 | #define _MX53_PAD_FEC_TX_EN__ESAI1_TX3_RX2 IOMUX_PAD(0x5DC, 0x260, 2, 0x7F0, 0, 0) | ||
848 | #define _MX53_PAD_FEC_TXD1__FEC_TDATA_1 IOMUX_PAD(0x5E0, 0x264, 0, 0x0, 0, 0) | ||
849 | #define _MX53_PAD_FEC_TXD1__GPIO1_29 IOMUX_PAD(0x5E0, 0x264, 1, 0x0, 0, 0) | ||
850 | #define _MX53_PAD_FEC_TXD1__ESAI1_TX2_RX3 IOMUX_PAD(0x5E0, 0x264, 2, 0x7EC, 0, 0) | ||
851 | #define _MX53_PAD_FEC_TXD1__MLB_MLBCLK IOMUX_PAD(0x5E0, 0x264, 3, 0x858, 1, 0) | ||
852 | #define _MX53_PAD_FEC_TXD1__RTC_CE_RTC_PRSC_CLK IOMUX_PAD(0x5E0, 0x264, 4, 0x0, 0, 0) | ||
853 | #define _MX53_PAD_FEC_TXD0__FEC_TDATA_0 IOMUX_PAD(0x5E4, 0x268, 0, 0x0, 0, 0) | ||
854 | #define _MX53_PAD_FEC_TXD0__GPIO1_30 IOMUX_PAD(0x5E4, 0x268, 1, 0x0, 0, 0) | ||
855 | #define _MX53_PAD_FEC_TXD0__ESAI1_TX4_RX1 IOMUX_PAD(0x5E4, 0x268, 2, 0x7F4, 0, 0) | ||
856 | #define _MX53_PAD_FEC_TXD0__USBPHY2_DATAOUT_0 IOMUX_PAD(0x5E4, 0x268, 7, 0x0, 0, 0) | ||
857 | #define _MX53_PAD_FEC_MDC__FEC_MDC IOMUX_PAD(0x5E8, 0x26C, 0, 0x0, 0, 0) | ||
858 | #define _MX53_PAD_FEC_MDC__GPIO1_31 IOMUX_PAD(0x5E8, 0x26C, 1, 0x0, 0, 0) | ||
859 | #define _MX53_PAD_FEC_MDC__ESAI1_TX5_RX0 IOMUX_PAD(0x5E8, 0x26C, 2, 0x7F8, 0, 0) | ||
860 | #define _MX53_PAD_FEC_MDC__MLB_MLBDAT IOMUX_PAD(0x5E8, 0x26C, 3, 0x85C, 1, 0) | ||
861 | #define _MX53_PAD_FEC_MDC__RTC_CE_RTC_ALARM1_TRIG IOMUX_PAD(0x5E8, 0x26C, 4, 0x0, 0, 0) | ||
862 | #define _MX53_PAD_FEC_MDC__USBPHY2_DATAOUT_1 IOMUX_PAD(0x5E8, 0x26C, 7, 0x0, 0, 0) | ||
863 | #define _MX53_PAD_PATA_DIOW__PATA_DIOW IOMUX_PAD(0x5F0, 0x270, 0, 0x0, 0, 0) | ||
864 | #define _MX53_PAD_PATA_DIOW__GPIO6_17 IOMUX_PAD(0x5F0, 0x270, 1, 0x0, 0, 0) | ||
865 | #define _MX53_PAD_PATA_DIOW__UART1_TXD_MUX IOMUX_PAD(0x5F0, 0x270, 3, 0x0, 0, 0) | ||
866 | #define _MX53_PAD_PATA_DIOW__USBPHY2_DATAOUT_2 IOMUX_PAD(0x5F0, 0x270, 7, 0x0, 0, 0) | ||
867 | #define _MX53_PAD_PATA_DMACK__PATA_DMACK IOMUX_PAD(0x5F4, 0x274, 0, 0x0, 0, 0) | ||
868 | #define _MX53_PAD_PATA_DMACK__GPIO6_18 IOMUX_PAD(0x5F4, 0x274, 1, 0x0, 0, 0) | ||
869 | #define _MX53_PAD_PATA_DMACK__UART1_RXD_MUX IOMUX_PAD(0x5F4, 0x274, 3, 0x878, 3, 0) | ||
870 | #define _MX53_PAD_PATA_DMACK__USBPHY2_DATAOUT_3 IOMUX_PAD(0x5F4, 0x274, 7, 0x0, 0, 0) | ||
871 | #define _MX53_PAD_PATA_DMARQ__PATA_DMARQ IOMUX_PAD(0x5F8, 0x278, 0, 0x0, 0, 0) | ||
872 | #define _MX53_PAD_PATA_DMARQ__GPIO7_0 IOMUX_PAD(0x5F8, 0x278, 1, 0x0, 0, 0) | ||
873 | #define _MX53_PAD_PATA_DMARQ__UART2_TXD_MUX IOMUX_PAD(0x5F8, 0x278, 3, 0x0, 0, 0) | ||
874 | #define _MX53_PAD_PATA_DMARQ__CCM_CCM_OUT_0 IOMUX_PAD(0x5F8, 0x278, 5, 0x0, 0, 0) | ||
875 | #define _MX53_PAD_PATA_DMARQ__USBPHY2_DATAOUT_4 IOMUX_PAD(0x5F8, 0x278, 7, 0x0, 0, 0) | ||
876 | #define _MX53_PAD_PATA_BUFFER_EN__PATA_BUFFER_EN IOMUX_PAD(0x5FC, 0x27C, 0, 0x0, 0, 0) | ||
877 | #define _MX53_PAD_PATA_BUFFER_EN__GPIO7_1 IOMUX_PAD(0x5FC, 0x27C, 1, 0x0, 0, 0) | ||
878 | #define _MX53_PAD_PATA_BUFFER_EN__UART2_RXD_MUX IOMUX_PAD(0x5FC, 0x27C, 3, 0x880, 3, 0) | ||
879 | #define _MX53_PAD_PATA_BUFFER_EN__CCM_CCM_OUT_1 IOMUX_PAD(0x5FC, 0x27C, 5, 0x0, 0, 0) | ||
880 | #define _MX53_PAD_PATA_BUFFER_EN__USBPHY2_DATAOUT_5 IOMUX_PAD(0x5FC, 0x27C, 7, 0x0, 0, 0) | ||
881 | #define _MX53_PAD_PATA_INTRQ__PATA_INTRQ IOMUX_PAD(0x600, 0x280, 0, 0x0, 0, 0) | ||
882 | #define _MX53_PAD_PATA_INTRQ__GPIO7_2 IOMUX_PAD(0x600, 0x280, 1, 0x0, 0, 0) | ||
883 | #define _MX53_PAD_PATA_INTRQ__UART2_CTS IOMUX_PAD(0x600, 0x280, 3, 0x0, 0, 0) | ||
884 | #define _MX53_PAD_PATA_INTRQ__CAN1_TXCAN IOMUX_PAD(0x600, 0x280, 4, 0x0, 0, 0) | ||
885 | #define _MX53_PAD_PATA_INTRQ__CCM_CCM_OUT_2 IOMUX_PAD(0x600, 0x280, 5, 0x0, 0, 0) | ||
886 | #define _MX53_PAD_PATA_INTRQ__USBPHY2_DATAOUT_6 IOMUX_PAD(0x600, 0x280, 7, 0x0, 0, 0) | ||
887 | #define _MX53_PAD_PATA_DIOR__PATA_DIOR IOMUX_PAD(0x604, 0x284, 0, 0x0, 0, 0) | ||
888 | #define _MX53_PAD_PATA_DIOR__GPIO7_3 IOMUX_PAD(0x604, 0x284, 1, 0x0, 0, 0) | ||
889 | #define _MX53_PAD_PATA_DIOR__UART2_RTS IOMUX_PAD(0x604, 0x284, 3, 0x87C, 3, 0) | ||
890 | #define _MX53_PAD_PATA_DIOR__CAN1_RXCAN IOMUX_PAD(0x604, 0x284, 4, 0x760, 1, 0) | ||
891 | #define _MX53_PAD_PATA_DIOR__USBPHY2_DATAOUT_7 IOMUX_PAD(0x604, 0x284, 7, 0x0, 0, 0) | ||
892 | #define _MX53_PAD_PATA_RESET_B__PATA_PATA_RESET_B IOMUX_PAD(0x608, 0x288, 0, 0x0, 0, 0) | ||
893 | #define _MX53_PAD_PATA_RESET_B__GPIO7_4 IOMUX_PAD(0x608, 0x288, 1, 0x0, 0, 0) | ||
894 | #define _MX53_PAD_PATA_RESET_B__ESDHC3_CMD IOMUX_PAD(0x608, 0x288, 2, 0x0, 0, 0) | ||
895 | #define _MX53_PAD_PATA_RESET_B__UART1_CTS IOMUX_PAD(0x608, 0x288, 3, 0x0, 0, 0) | ||
896 | #define _MX53_PAD_PATA_RESET_B__CAN2_TXCAN IOMUX_PAD(0x608, 0x288, 4, 0x0, 0, 0) | ||
897 | #define _MX53_PAD_PATA_RESET_B__USBPHY1_DATAOUT_0 IOMUX_PAD(0x608, 0x288, 7, 0x0, 0, 0) | ||
898 | #define _MX53_PAD_PATA_IORDY__PATA_IORDY IOMUX_PAD(0x60C, 0x28C, 0, 0x0, 0, 0) | ||
899 | #define _MX53_PAD_PATA_IORDY__GPIO7_5 IOMUX_PAD(0x60C, 0x28C, 1, 0x0, 0, 0) | ||
900 | #define _MX53_PAD_PATA_IORDY__ESDHC3_CLK IOMUX_PAD(0x60C, 0x28C, 2, 0x0, 0, 0) | ||
901 | #define _MX53_PAD_PATA_IORDY__UART1_RTS IOMUX_PAD(0x60C, 0x28C, 3, 0x874, 3, 0) | ||
902 | #define _MX53_PAD_PATA_IORDY__CAN2_RXCAN IOMUX_PAD(0x60C, 0x28C, 4, 0x764, 1, 0) | ||
903 | #define _MX53_PAD_PATA_IORDY__USBPHY1_DATAOUT_1 IOMUX_PAD(0x60C, 0x28C, 7, 0x0, 0, 0) | ||
904 | #define _MX53_PAD_PATA_DA_0__PATA_DA_0 IOMUX_PAD(0x610, 0x290, 0, 0x0, 0, 0) | ||
905 | #define _MX53_PAD_PATA_DA_0__GPIO7_6 IOMUX_PAD(0x610, 0x290, 1, 0x0, 0, 0) | ||
906 | #define _MX53_PAD_PATA_DA_0__ESDHC3_RST IOMUX_PAD(0x610, 0x290, 2, 0x0, 0, 0) | ||
907 | #define _MX53_PAD_PATA_DA_0__OWIRE_LINE IOMUX_PAD(0x610, 0x290, 4, 0x864, 0, 0) | ||
908 | #define _MX53_PAD_PATA_DA_0__USBPHY1_DATAOUT_2 IOMUX_PAD(0x610, 0x290, 7, 0x0, 0, 0) | ||
909 | #define _MX53_PAD_PATA_DA_1__PATA_DA_1 IOMUX_PAD(0x614, 0x294, 0, 0x0, 0, 0) | ||
910 | #define _MX53_PAD_PATA_DA_1__GPIO7_7 IOMUX_PAD(0x614, 0x294, 1, 0x0, 0, 0) | ||
911 | #define _MX53_PAD_PATA_DA_1__ESDHC4_CMD IOMUX_PAD(0x614, 0x294, 2, 0x0, 0, 0) | ||
912 | #define _MX53_PAD_PATA_DA_1__UART3_CTS IOMUX_PAD(0x614, 0x294, 4, 0x0, 0, 0) | ||
913 | #define _MX53_PAD_PATA_DA_1__USBPHY1_DATAOUT_3 IOMUX_PAD(0x614, 0x294, 7, 0x0, 0, 0) | ||
914 | #define _MX53_PAD_PATA_DA_2__PATA_DA_2 IOMUX_PAD(0x618, 0x298, 0, 0x0, 0, 0) | ||
915 | #define _MX53_PAD_PATA_DA_2__GPIO7_8 IOMUX_PAD(0x618, 0x298, 1, 0x0, 0, 0) | ||
916 | #define _MX53_PAD_PATA_DA_2__ESDHC4_CLK IOMUX_PAD(0x618, 0x298, 2, 0x0, 0, 0) | ||
917 | #define _MX53_PAD_PATA_DA_2__UART3_RTS IOMUX_PAD(0x618, 0x298, 4, 0x884, 5, 0) | ||
918 | #define _MX53_PAD_PATA_DA_2__USBPHY1_DATAOUT_4 IOMUX_PAD(0x618, 0x298, 7, 0x0, 0, 0) | ||
919 | #define _MX53_PAD_PATA_CS_0__PATA_CS_0 IOMUX_PAD(0x61C, 0x29C, 0, 0x0, 0, 0) | ||
920 | #define _MX53_PAD_PATA_CS_0__GPIO7_9 IOMUX_PAD(0x61C, 0x29C, 1, 0x0, 0, 0) | ||
921 | #define _MX53_PAD_PATA_CS_0__UART3_TXD_MUX IOMUX_PAD(0x61C, 0x29C, 4, 0x0, 0, 0) | ||
922 | #define _MX53_PAD_PATA_CS_0__USBPHY1_DATAOUT_5 IOMUX_PAD(0x61C, 0x29C, 7, 0x0, 0, 0) | ||
923 | #define _MX53_PAD_PATA_CS_1__PATA_CS_1 IOMUX_PAD(0x620, 0x2A0, 0, 0x0, 0, 0) | ||
924 | #define _MX53_PAD_PATA_CS_1__GPIO7_10 IOMUX_PAD(0x620, 0x2A0, 1, 0x0, 0, 0) | ||
925 | #define _MX53_PAD_PATA_CS_1__UART3_RXD_MUX IOMUX_PAD(0x620, 0x2A0, 4, 0x888, 3, 0) | ||
926 | #define _MX53_PAD_PATA_CS_1__USBPHY1_DATAOUT_6 IOMUX_PAD(0x620, 0x2A0, 7, 0x0, 0, 0) | ||
927 | #define _MX53_PAD_PATA_DATA0__PATA_DATA_0 IOMUX_PAD(0x628, 0x2A4, 0, 0x0, 0, 0) | ||
928 | #define _MX53_PAD_PATA_DATA0__GPIO2_0 IOMUX_PAD(0x628, 0x2A4, 1, 0x0, 0, 0) | ||
929 | #define _MX53_PAD_PATA_DATA0__EMI_NANDF_D_0 IOMUX_PAD(0x628, 0x2A4, 3, 0x0, 0, 0) | ||
930 | #define _MX53_PAD_PATA_DATA0__ESDHC3_DAT4 IOMUX_PAD(0x628, 0x2A4, 4, 0x0, 0, 0) | ||
931 | #define _MX53_PAD_PATA_DATA0__GPU3d_GPU_DEBUG_OUT_0 IOMUX_PAD(0x628, 0x2A4, 5, 0x0, 0, 0) | ||
932 | #define _MX53_PAD_PATA_DATA0__IPU_DIAG_BUS_0 IOMUX_PAD(0x628, 0x2A4, 6, 0x0, 0, 0) | ||
933 | #define _MX53_PAD_PATA_DATA0__USBPHY1_DATAOUT_7 IOMUX_PAD(0x628, 0x2A4, 7, 0x0, 0, 0) | ||
934 | #define _MX53_PAD_PATA_DATA1__PATA_DATA_1 IOMUX_PAD(0x62C, 0x2A8, 0, 0x0, 0, 0) | ||
935 | #define _MX53_PAD_PATA_DATA1__GPIO2_1 IOMUX_PAD(0x62C, 0x2A8, 1, 0x0, 0, 0) | ||
936 | #define _MX53_PAD_PATA_DATA1__EMI_NANDF_D_1 IOMUX_PAD(0x62C, 0x2A8, 3, 0x0, 0, 0) | ||
937 | #define _MX53_PAD_PATA_DATA1__ESDHC3_DAT5 IOMUX_PAD(0x62C, 0x2A8, 4, 0x0, 0, 0) | ||
938 | #define _MX53_PAD_PATA_DATA1__GPU3d_GPU_DEBUG_OUT_1 IOMUX_PAD(0x62C, 0x2A8, 5, 0x0, 0, 0) | ||
939 | #define _MX53_PAD_PATA_DATA1__IPU_DIAG_BUS_1 IOMUX_PAD(0x62C, 0x2A8, 6, 0x0, 0, 0) | ||
940 | #define _MX53_PAD_PATA_DATA2__PATA_DATA_2 IOMUX_PAD(0x630, 0x2AC, 0, 0x0, 0, 0) | ||
941 | #define _MX53_PAD_PATA_DATA2__GPIO2_2 IOMUX_PAD(0x630, 0x2AC, 1, 0x0, 0, 0) | ||
942 | #define _MX53_PAD_PATA_DATA2__EMI_NANDF_D_2 IOMUX_PAD(0x630, 0x2AC, 3, 0x0, 0, 0) | ||
943 | #define _MX53_PAD_PATA_DATA2__ESDHC3_DAT6 IOMUX_PAD(0x630, 0x2AC, 4, 0x0, 0, 0) | ||
944 | #define _MX53_PAD_PATA_DATA2__GPU3d_GPU_DEBUG_OUT_2 IOMUX_PAD(0x630, 0x2AC, 5, 0x0, 0, 0) | ||
945 | #define _MX53_PAD_PATA_DATA2__IPU_DIAG_BUS_2 IOMUX_PAD(0x630, 0x2AC, 6, 0x0, 0, 0) | ||
946 | #define _MX53_PAD_PATA_DATA3__PATA_DATA_3 IOMUX_PAD(0x634, 0x2B0, 0, 0x0, 0, 0) | ||
947 | #define _MX53_PAD_PATA_DATA3__GPIO2_3 IOMUX_PAD(0x634, 0x2B0, 1, 0x0, 0, 0) | ||
948 | #define _MX53_PAD_PATA_DATA3__EMI_NANDF_D_3 IOMUX_PAD(0x634, 0x2B0, 3, 0x0, 0, 0) | ||
949 | #define _MX53_PAD_PATA_DATA3__ESDHC3_DAT7 IOMUX_PAD(0x634, 0x2B0, 4, 0x0, 0, 0) | ||
950 | #define _MX53_PAD_PATA_DATA3__GPU3d_GPU_DEBUG_OUT_3 IOMUX_PAD(0x634, 0x2B0, 5, 0x0, 0, 0) | ||
951 | #define _MX53_PAD_PATA_DATA3__IPU_DIAG_BUS_3 IOMUX_PAD(0x634, 0x2B0, 6, 0x0, 0, 0) | ||
952 | #define _MX53_PAD_PATA_DATA4__PATA_DATA_4 IOMUX_PAD(0x638, 0x2B4, 0, 0x0, 0, 0) | ||
953 | #define _MX53_PAD_PATA_DATA4__GPIO2_4 IOMUX_PAD(0x638, 0x2B4, 1, 0x0, 0, 0) | ||
954 | #define _MX53_PAD_PATA_DATA4__EMI_NANDF_D_4 IOMUX_PAD(0x638, 0x2B4, 3, 0x0, 0, 0) | ||
955 | #define _MX53_PAD_PATA_DATA4__ESDHC4_DAT4 IOMUX_PAD(0x638, 0x2B4, 4, 0x0, 0, 0) | ||
956 | #define _MX53_PAD_PATA_DATA4__GPU3d_GPU_DEBUG_OUT_4 IOMUX_PAD(0x638, 0x2B4, 5, 0x0, 0, 0) | ||
957 | #define _MX53_PAD_PATA_DATA4__IPU_DIAG_BUS_4 IOMUX_PAD(0x638, 0x2B4, 6, 0x0, 0, 0) | ||
958 | #define _MX53_PAD_PATA_DATA5__PATA_DATA_5 IOMUX_PAD(0x63C, 0x2B8, 0, 0x0, 0, 0) | ||
959 | #define _MX53_PAD_PATA_DATA5__GPIO2_5 IOMUX_PAD(0x63C, 0x2B8, 1, 0x0, 0, 0) | ||
960 | #define _MX53_PAD_PATA_DATA5__EMI_NANDF_D_5 IOMUX_PAD(0x63C, 0x2B8, 3, 0x0, 0, 0) | ||
961 | #define _MX53_PAD_PATA_DATA5__ESDHC4_DAT5 IOMUX_PAD(0x63C, 0x2B8, 4, 0x0, 0, 0) | ||
962 | #define _MX53_PAD_PATA_DATA5__GPU3d_GPU_DEBUG_OUT_5 IOMUX_PAD(0x63C, 0x2B8, 5, 0x0, 0, 0) | ||
963 | #define _MX53_PAD_PATA_DATA5__IPU_DIAG_BUS_5 IOMUX_PAD(0x63C, 0x2B8, 6, 0x0, 0, 0) | ||
964 | #define _MX53_PAD_PATA_DATA6__PATA_DATA_6 IOMUX_PAD(0x640, 0x2BC, 0, 0x0, 0, 0) | ||
965 | #define _MX53_PAD_PATA_DATA6__GPIO2_6 IOMUX_PAD(0x640, 0x2BC, 1, 0x0, 0, 0) | ||
966 | #define _MX53_PAD_PATA_DATA6__EMI_NANDF_D_6 IOMUX_PAD(0x640, 0x2BC, 3, 0x0, 0, 0) | ||
967 | #define _MX53_PAD_PATA_DATA6__ESDHC4_DAT6 IOMUX_PAD(0x640, 0x2BC, 4, 0x0, 0, 0) | ||
968 | #define _MX53_PAD_PATA_DATA6__GPU3d_GPU_DEBUG_OUT_6 IOMUX_PAD(0x640, 0x2BC, 5, 0x0, 0, 0) | ||
969 | #define _MX53_PAD_PATA_DATA6__IPU_DIAG_BUS_6 IOMUX_PAD(0x640, 0x2BC, 6, 0x0, 0, 0) | ||
970 | #define _MX53_PAD_PATA_DATA7__PATA_DATA_7 IOMUX_PAD(0x644, 0x2C0, 0, 0x0, 0, 0) | ||
971 | #define _MX53_PAD_PATA_DATA7__GPIO2_7 IOMUX_PAD(0x644, 0x2C0, 1, 0x0, 0, 0) | ||
972 | #define _MX53_PAD_PATA_DATA7__EMI_NANDF_D_7 IOMUX_PAD(0x644, 0x2C0, 3, 0x0, 0, 0) | ||
973 | #define _MX53_PAD_PATA_DATA7__ESDHC4_DAT7 IOMUX_PAD(0x644, 0x2C0, 4, 0x0, 0, 0) | ||
974 | #define _MX53_PAD_PATA_DATA7__GPU3d_GPU_DEBUG_OUT_7 IOMUX_PAD(0x644, 0x2C0, 5, 0x0, 0, 0) | ||
975 | #define _MX53_PAD_PATA_DATA7__IPU_DIAG_BUS_7 IOMUX_PAD(0x644, 0x2C0, 6, 0x0, 0, 0) | ||
976 | #define _MX53_PAD_PATA_DATA8__PATA_DATA_8 IOMUX_PAD(0x648, 0x2C4, 0, 0x0, 0, 0) | ||
977 | #define _MX53_PAD_PATA_DATA8__GPIO2_8 IOMUX_PAD(0x648, 0x2C4, 1, 0x0, 0, 0) | ||
978 | #define _MX53_PAD_PATA_DATA8__ESDHC1_DAT4 IOMUX_PAD(0x648, 0x2C4, 2, 0x0, 0, 0) | ||
979 | #define _MX53_PAD_PATA_DATA8__EMI_NANDF_D_8 IOMUX_PAD(0x648, 0x2C4, 3, 0x0, 0, 0) | ||
980 | #define _MX53_PAD_PATA_DATA8__ESDHC3_DAT0 IOMUX_PAD(0x648, 0x2C4, 4, 0x0, 0, 0) | ||
981 | #define _MX53_PAD_PATA_DATA8__GPU3d_GPU_DEBUG_OUT_8 IOMUX_PAD(0x648, 0x2C4, 5, 0x0, 0, 0) | ||
982 | #define _MX53_PAD_PATA_DATA8__IPU_DIAG_BUS_8 IOMUX_PAD(0x648, 0x2C4, 6, 0x0, 0, 0) | ||
983 | #define _MX53_PAD_PATA_DATA9__PATA_DATA_9 IOMUX_PAD(0x64C, 0x2C8, 0, 0x0, 0, 0) | ||
984 | #define _MX53_PAD_PATA_DATA9__GPIO2_9 IOMUX_PAD(0x64C, 0x2C8, 1, 0x0, 0, 0) | ||
985 | #define _MX53_PAD_PATA_DATA9__ESDHC1_DAT5 IOMUX_PAD(0x64C, 0x2C8, 2, 0x0, 0, 0) | ||
986 | #define _MX53_PAD_PATA_DATA9__EMI_NANDF_D_9 IOMUX_PAD(0x64C, 0x2C8, 3, 0x0, 0, 0) | ||
987 | #define _MX53_PAD_PATA_DATA9__ESDHC3_DAT1 IOMUX_PAD(0x64C, 0x2C8, 4, 0x0, 0, 0) | ||
988 | #define _MX53_PAD_PATA_DATA9__GPU3d_GPU_DEBUG_OUT_9 IOMUX_PAD(0x64C, 0x2C8, 5, 0x0, 0, 0) | ||
989 | #define _MX53_PAD_PATA_DATA9__IPU_DIAG_BUS_9 IOMUX_PAD(0x64C, 0x2C8, 6, 0x0, 0, 0) | ||
990 | #define _MX53_PAD_PATA_DATA10__PATA_DATA_10 IOMUX_PAD(0x650, 0x2CC, 0, 0x0, 0, 0) | ||
991 | #define _MX53_PAD_PATA_DATA10__GPIO2_10 IOMUX_PAD(0x650, 0x2CC, 1, 0x0, 0, 0) | ||
992 | #define _MX53_PAD_PATA_DATA10__ESDHC1_DAT6 IOMUX_PAD(0x650, 0x2CC, 2, 0x0, 0, 0) | ||
993 | #define _MX53_PAD_PATA_DATA10__EMI_NANDF_D_10 IOMUX_PAD(0x650, 0x2CC, 3, 0x0, 0, 0) | ||
994 | #define _MX53_PAD_PATA_DATA10__ESDHC3_DAT2 IOMUX_PAD(0x650, 0x2CC, 4, 0x0, 0, 0) | ||
995 | #define _MX53_PAD_PATA_DATA10__GPU3d_GPU_DEBUG_OUT_10 IOMUX_PAD(0x650, 0x2CC, 5, 0x0, 0, 0) | ||
996 | #define _MX53_PAD_PATA_DATA10__IPU_DIAG_BUS_10 IOMUX_PAD(0x650, 0x2CC, 6, 0x0, 0, 0) | ||
997 | #define _MX53_PAD_PATA_DATA11__PATA_DATA_11 IOMUX_PAD(0x654, 0x2D0, 0, 0x0, 0, 0) | ||
998 | #define _MX53_PAD_PATA_DATA11__GPIO2_11 IOMUX_PAD(0x654, 0x2D0, 1, 0x0, 0, 0) | ||
999 | #define _MX53_PAD_PATA_DATA11__ESDHC1_DAT7 IOMUX_PAD(0x654, 0x2D0, 2, 0x0, 0, 0) | ||
1000 | #define _MX53_PAD_PATA_DATA11__EMI_NANDF_D_11 IOMUX_PAD(0x654, 0x2D0, 3, 0x0, 0, 0) | ||
1001 | #define _MX53_PAD_PATA_DATA11__ESDHC3_DAT3 IOMUX_PAD(0x654, 0x2D0, 4, 0x0, 0, 0) | ||
1002 | #define _MX53_PAD_PATA_DATA11__GPU3d_GPU_DEBUG_OUT_11 IOMUX_PAD(0x654, 0x2D0, 5, 0x0, 0, 0) | ||
1003 | #define _MX53_PAD_PATA_DATA11__IPU_DIAG_BUS_11 IOMUX_PAD(0x654, 0x2D0, 6, 0x0, 0, 0) | ||
1004 | #define _MX53_PAD_PATA_DATA12__PATA_DATA_12 IOMUX_PAD(0x658, 0x2D4, 0, 0x0, 0, 0) | ||
1005 | #define _MX53_PAD_PATA_DATA12__GPIO2_12 IOMUX_PAD(0x658, 0x2D4, 1, 0x0, 0, 0) | ||
1006 | #define _MX53_PAD_PATA_DATA12__ESDHC2_DAT4 IOMUX_PAD(0x658, 0x2D4, 2, 0x0, 0, 0) | ||
1007 | #define _MX53_PAD_PATA_DATA12__EMI_NANDF_D_12 IOMUX_PAD(0x658, 0x2D4, 3, 0x0, 0, 0) | ||
1008 | #define _MX53_PAD_PATA_DATA12__ESDHC4_DAT0 IOMUX_PAD(0x658, 0x2D4, 4, 0x0, 0, 0) | ||
1009 | #define _MX53_PAD_PATA_DATA12__GPU3d_GPU_DEBUG_OUT_12 IOMUX_PAD(0x658, 0x2D4, 5, 0x0, 0, 0) | ||
1010 | #define _MX53_PAD_PATA_DATA12__IPU_DIAG_BUS_12 IOMUX_PAD(0x658, 0x2D4, 6, 0x0, 0, 0) | ||
1011 | #define _MX53_PAD_PATA_DATA13__PATA_DATA_13 IOMUX_PAD(0x65C, 0x2D8, 0, 0x0, 0, 0) | ||
1012 | #define _MX53_PAD_PATA_DATA13__GPIO2_13 IOMUX_PAD(0x65C, 0x2D8, 1, 0x0, 0, 0) | ||
1013 | #define _MX53_PAD_PATA_DATA13__ESDHC2_DAT5 IOMUX_PAD(0x65C, 0x2D8, 2, 0x0, 0, 0) | ||
1014 | #define _MX53_PAD_PATA_DATA13__EMI_NANDF_D_13 IOMUX_PAD(0x65C, 0x2D8, 3, 0x0, 0, 0) | ||
1015 | #define _MX53_PAD_PATA_DATA13__ESDHC4_DAT1 IOMUX_PAD(0x65C, 0x2D8, 4, 0x0, 0, 0) | ||
1016 | #define _MX53_PAD_PATA_DATA13__GPU3d_GPU_DEBUG_OUT_13 IOMUX_PAD(0x65C, 0x2D8, 5, 0x0, 0, 0) | ||
1017 | #define _MX53_PAD_PATA_DATA13__IPU_DIAG_BUS_13 IOMUX_PAD(0x65C, 0x2D8, 6, 0x0, 0, 0) | ||
1018 | #define _MX53_PAD_PATA_DATA14__PATA_DATA_14 IOMUX_PAD(0x660, 0x2DC, 0, 0x0, 0, 0) | ||
1019 | #define _MX53_PAD_PATA_DATA14__GPIO2_14 IOMUX_PAD(0x660, 0x2DC, 1, 0x0, 0, 0) | ||
1020 | #define _MX53_PAD_PATA_DATA14__ESDHC2_DAT6 IOMUX_PAD(0x660, 0x2DC, 2, 0x0, 0, 0) | ||
1021 | #define _MX53_PAD_PATA_DATA14__EMI_NANDF_D_14 IOMUX_PAD(0x660, 0x2DC, 3, 0x0, 0, 0) | ||
1022 | #define _MX53_PAD_PATA_DATA14__ESDHC4_DAT2 IOMUX_PAD(0x660, 0x2DC, 4, 0x0, 0, 0) | ||
1023 | #define _MX53_PAD_PATA_DATA14__GPU3d_GPU_DEBUG_OUT_14 IOMUX_PAD(0x660, 0x2DC, 5, 0x0, 0, 0) | ||
1024 | #define _MX53_PAD_PATA_DATA14__IPU_DIAG_BUS_14 IOMUX_PAD(0x660, 0x2DC, 6, 0x0, 0, 0) | ||
1025 | #define _MX53_PAD_PATA_DATA15__PATA_DATA_15 IOMUX_PAD(0x664, 0x2E0, 0, 0x0, 0, 0) | ||
1026 | #define _MX53_PAD_PATA_DATA15__GPIO2_15 IOMUX_PAD(0x664, 0x2E0, 1, 0x0, 0, 0) | ||
1027 | #define _MX53_PAD_PATA_DATA15__ESDHC2_DAT7 IOMUX_PAD(0x664, 0x2E0, 2, 0x0, 0, 0) | ||
1028 | #define _MX53_PAD_PATA_DATA15__EMI_NANDF_D_15 IOMUX_PAD(0x664, 0x2E0, 3, 0x0, 0, 0) | ||
1029 | #define _MX53_PAD_PATA_DATA15__ESDHC4_DAT3 IOMUX_PAD(0x664, 0x2E0, 4, 0x0, 0, 0) | ||
1030 | #define _MX53_PAD_PATA_DATA15__GPU3d_GPU_DEBUG_OUT_15 IOMUX_PAD(0x664, 0x2E0, 5, 0x0, 0, 0) | ||
1031 | #define _MX53_PAD_PATA_DATA15__IPU_DIAG_BUS_15 IOMUX_PAD(0x664, 0x2E0, 6, 0x0, 0, 0) | ||
1032 | #define _MX53_PAD_SD1_DATA0__ESDHC1_DAT0 IOMUX_PAD(0x66C, 0x2E4, 0, 0x0, 0, 0) | ||
1033 | #define _MX53_PAD_SD1_DATA0__GPIO1_16 IOMUX_PAD(0x66C, 0x2E4, 1, 0x0, 0, 0) | ||
1034 | #define _MX53_PAD_SD1_DATA0__GPT_CAPIN1 IOMUX_PAD(0x66C, 0x2E4, 3, 0x0, 0, 0) | ||
1035 | #define _MX53_PAD_SD1_DATA0__CSPI_MISO IOMUX_PAD(0x66C, 0x2E4, 5, 0x784, 2, 0) | ||
1036 | #define _MX53_PAD_SD1_DATA0__CCM_PLL3_BYP IOMUX_PAD(0x66C, 0x2E4, 7, 0x778, 0, 0) | ||
1037 | #define _MX53_PAD_SD1_DATA1__ESDHC1_DAT1 IOMUX_PAD(0x670, 0x2E8, 0, 0x0, 0, 0) | ||
1038 | #define _MX53_PAD_SD1_DATA1__GPIO1_17 IOMUX_PAD(0x670, 0x2E8, 1, 0x0, 0, 0) | ||
1039 | #define _MX53_PAD_SD1_DATA1__GPT_CAPIN2 IOMUX_PAD(0x670, 0x2E8, 3, 0x0, 0, 0) | ||
1040 | #define _MX53_PAD_SD1_DATA1__CSPI_SS0 IOMUX_PAD(0x670, 0x2E8, 5, 0x78C, 3, 0) | ||
1041 | #define _MX53_PAD_SD1_DATA1__CCM_PLL4_BYP IOMUX_PAD(0x670, 0x2E8, 7, 0x77C, 1, 0) | ||
1042 | #define _MX53_PAD_SD1_CMD__ESDHC1_CMD IOMUX_PAD(0x674, 0x2EC, IOMUX_CONFIG_SION, 0x0, 0, 0) | ||
1043 | #define _MX53_PAD_SD1_CMD__GPIO1_18 IOMUX_PAD(0x674, 0x2EC, 1, 0x0, 0, 0) | ||
1044 | #define _MX53_PAD_SD1_CMD__GPT_CMPOUT1 IOMUX_PAD(0x674, 0x2EC, 3, 0x0, 0, 0) | ||
1045 | #define _MX53_PAD_SD1_CMD__CSPI_MOSI IOMUX_PAD(0x674, 0x2EC, 5, 0x788, 2, 0) | ||
1046 | #define _MX53_PAD_SD1_CMD__CCM_PLL1_BYP IOMUX_PAD(0x674, 0x2EC, 7, 0x770, 0, 0) | ||
1047 | #define _MX53_PAD_SD1_DATA2__ESDHC1_DAT2 IOMUX_PAD(0x678, 0x2F0, 0, 0x0, 0, 0) | ||
1048 | #define _MX53_PAD_SD1_DATA2__GPIO1_19 IOMUX_PAD(0x678, 0x2F0, 1, 0x0, 0, 0) | ||
1049 | #define _MX53_PAD_SD1_DATA2__GPT_CMPOUT2 IOMUX_PAD(0x678, 0x2F0, 2, 0x0, 0, 0) | ||
1050 | #define _MX53_PAD_SD1_DATA2__PWM2_PWMO IOMUX_PAD(0x678, 0x2F0, 3, 0x0, 0, 0) | ||
1051 | #define _MX53_PAD_SD1_DATA2__WDOG1_WDOG_B IOMUX_PAD(0x678, 0x2F0, 4, 0x0, 0, 0) | ||
1052 | #define _MX53_PAD_SD1_DATA2__CSPI_SS1 IOMUX_PAD(0x678, 0x2F0, 5, 0x790, 2, 0) | ||
1053 | #define _MX53_PAD_SD1_DATA2__WDOG1_WDOG_RST_B_DEB IOMUX_PAD(0x678, 0x2F0, 6, 0x0, 0, 0) | ||
1054 | #define _MX53_PAD_SD1_DATA2__CCM_PLL2_BYP IOMUX_PAD(0x678, 0x2F0, 7, 0x774, 0, 0) | ||
1055 | #define _MX53_PAD_SD1_CLK__ESDHC1_CLK IOMUX_PAD(0x67C, 0x2F4, 0, 0x0, 0, 0) | ||
1056 | #define _MX53_PAD_SD1_CLK__GPIO1_20 IOMUX_PAD(0x67C, 0x2F4, 1, 0x0, 0, 0) | ||
1057 | #define _MX53_PAD_SD1_CLK__OSC32k_32K_OUT IOMUX_PAD(0x67C, 0x2F4, 2, 0x0, 0, 0) | ||
1058 | #define _MX53_PAD_SD1_CLK__GPT_CLKIN IOMUX_PAD(0x67C, 0x2F4, 3, 0x0, 0, 0) | ||
1059 | #define _MX53_PAD_SD1_CLK__CSPI_SCLK IOMUX_PAD(0x67C, 0x2F4, 5, 0x780, 2, 0) | ||
1060 | #define _MX53_PAD_SD1_CLK__SATA_PHY_DTB_0 IOMUX_PAD(0x67C, 0x2F4, 7, 0x0, 0, 0) | ||
1061 | #define _MX53_PAD_SD1_DATA3__ESDHC1_DAT3 IOMUX_PAD(0x680, 0x2F8, 0, 0x0, 0, 0) | ||
1062 | #define _MX53_PAD_SD1_DATA3__GPIO1_21 IOMUX_PAD(0x680, 0x2F8, 1, 0x0, 0, 0) | ||
1063 | #define _MX53_PAD_SD1_DATA3__GPT_CMPOUT3 IOMUX_PAD(0x680, 0x2F8, 2, 0x0, 0, 0) | ||
1064 | #define _MX53_PAD_SD1_DATA3__PWM1_PWMO IOMUX_PAD(0x680, 0x2F8, 3, 0x0, 0, 0) | ||
1065 | #define _MX53_PAD_SD1_DATA3__WDOG2_WDOG_B IOMUX_PAD(0x680, 0x2F8, 4, 0x0, 0, 0) | ||
1066 | #define _MX53_PAD_SD1_DATA3__CSPI_SS2 IOMUX_PAD(0x680, 0x2F8, 5, 0x794, 2, 0) | ||
1067 | #define _MX53_PAD_SD1_DATA3__WDOG2_WDOG_RST_B_DEB IOMUX_PAD(0x680, 0x2F8, 6, 0x0, 0, 0) | ||
1068 | #define _MX53_PAD_SD1_DATA3__SATA_PHY_DTB_1 IOMUX_PAD(0x680, 0x2F8, 7, 0x0, 0, 0) | ||
1069 | #define _MX53_PAD_SD2_CLK__ESDHC2_CLK IOMUX_PAD(0x688, 0x2FC, 0, 0x0, 0, 0) | ||
1070 | #define _MX53_PAD_SD2_CLK__GPIO1_10 IOMUX_PAD(0x688, 0x2FC, 1, 0x0, 0, 0) | ||
1071 | #define _MX53_PAD_SD2_CLK__KPP_COL_5 IOMUX_PAD(0x688, 0x2FC, 2, 0x840, 2, 0) | ||
1072 | #define _MX53_PAD_SD2_CLK__AUDMUX_AUD4_RXFS IOMUX_PAD(0x688, 0x2FC, 3, 0x73C, 1, 0) | ||
1073 | #define _MX53_PAD_SD2_CLK__CSPI_SCLK IOMUX_PAD(0x688, 0x2FC, 5, 0x780, 3, 0) | ||
1074 | #define _MX53_PAD_SD2_CLK__SCC_RANDOM_V IOMUX_PAD(0x688, 0x2FC, 7, 0x0, 0, 0) | ||
1075 | #define _MX53_PAD_SD2_CMD__ESDHC2_CMD IOMUX_PAD(0x68C, 0x300, 0, 0x0, 0, 0) | ||
1076 | #define _MX53_PAD_SD2_CMD__GPIO1_11 IOMUX_PAD(0x68C, 0x300, 1, 0x0, 0, 0) | ||
1077 | #define _MX53_PAD_SD2_CMD__KPP_ROW_5 IOMUX_PAD(0x68C, 0x300, 2, 0x84C, 1, 0) | ||
1078 | #define _MX53_PAD_SD2_CMD__AUDMUX_AUD4_RXC IOMUX_PAD(0x68C, 0x300, 3, 0x738, 1, 0) | ||
1079 | #define _MX53_PAD_SD2_CMD__CSPI_MOSI IOMUX_PAD(0x68C, 0x300, 5, 0x788, 3, 0) | ||
1080 | #define _MX53_PAD_SD2_CMD__SCC_RANDOM IOMUX_PAD(0x68C, 0x300, 7, 0x0, 0, 0) | ||
1081 | #define _MX53_PAD_SD2_DATA3__ESDHC2_DAT3 IOMUX_PAD(0x690, 0x304, 0, 0x0, 0, 0) | ||
1082 | #define _MX53_PAD_SD2_DATA3__GPIO1_12 IOMUX_PAD(0x690, 0x304, 1, 0x0, 0, 0) | ||
1083 | #define _MX53_PAD_SD2_DATA3__KPP_COL_6 IOMUX_PAD(0x690, 0x304, 2, 0x844, 1, 0) | ||
1084 | #define _MX53_PAD_SD2_DATA3__AUDMUX_AUD4_TXC IOMUX_PAD(0x690, 0x304, 3, 0x740, 1, 0) | ||
1085 | #define _MX53_PAD_SD2_DATA3__CSPI_SS2 IOMUX_PAD(0x690, 0x304, 5, 0x794, 3, 0) | ||
1086 | #define _MX53_PAD_SD2_DATA3__SJC_DONE IOMUX_PAD(0x690, 0x304, 7, 0x0, 0, 0) | ||
1087 | #define _MX53_PAD_SD2_DATA2__ESDHC2_DAT2 IOMUX_PAD(0x694, 0x308, 0, 0x0, 0, 0) | ||
1088 | #define _MX53_PAD_SD2_DATA2__GPIO1_13 IOMUX_PAD(0x694, 0x308, 1, 0x0, 0, 0) | ||
1089 | #define _MX53_PAD_SD2_DATA2__KPP_ROW_6 IOMUX_PAD(0x694, 0x308, 2, 0x850, 1, 0) | ||
1090 | #define _MX53_PAD_SD2_DATA2__AUDMUX_AUD4_TXD IOMUX_PAD(0x694, 0x308, 3, 0x734, 1, 0) | ||
1091 | #define _MX53_PAD_SD2_DATA2__CSPI_SS1 IOMUX_PAD(0x694, 0x308, 5, 0x790, 3, 0) | ||
1092 | #define _MX53_PAD_SD2_DATA2__SJC_FAIL IOMUX_PAD(0x694, 0x308, 7, 0x0, 0, 0) | ||
1093 | #define _MX53_PAD_SD2_DATA1__ESDHC2_DAT1 IOMUX_PAD(0x698, 0x30C, 0, 0x0, 0, 0) | ||
1094 | #define _MX53_PAD_SD2_DATA1__GPIO1_14 IOMUX_PAD(0x698, 0x30C, 1, 0x0, 0, 0) | ||
1095 | #define _MX53_PAD_SD2_DATA1__KPP_COL_7 IOMUX_PAD(0x698, 0x30C, 2, 0x848, 1, 0) | ||
1096 | #define _MX53_PAD_SD2_DATA1__AUDMUX_AUD4_TXFS IOMUX_PAD(0x698, 0x30C, 3, 0x744, 0, 0) | ||
1097 | #define _MX53_PAD_SD2_DATA1__CSPI_SS0 IOMUX_PAD(0x698, 0x30C, 5, 0x78C, 4, 0) | ||
1098 | #define _MX53_PAD_SD2_DATA1__RTIC_SEC_VIO IOMUX_PAD(0x698, 0x30C, 7, 0x0, 0, 0) | ||
1099 | #define _MX53_PAD_SD2_DATA0__ESDHC2_DAT0 IOMUX_PAD(0x69C, 0x310, 0, 0x0, 0, 0) | ||
1100 | #define _MX53_PAD_SD2_DATA0__GPIO1_15 IOMUX_PAD(0x69C, 0x310, 1, 0x0, 0, 0) | ||
1101 | #define _MX53_PAD_SD2_DATA0__KPP_ROW_7 IOMUX_PAD(0x69C, 0x310, 2, 0x854, 1, 0) | ||
1102 | #define _MX53_PAD_SD2_DATA0__AUDMUX_AUD4_RXD IOMUX_PAD(0x69C, 0x310, 3, 0x730, 1, 0) | ||
1103 | #define _MX53_PAD_SD2_DATA0__CSPI_MISO IOMUX_PAD(0x69C, 0x310, 5, 0x784, 3, 0) | ||
1104 | #define _MX53_PAD_SD2_DATA0__RTIC_DONE_INT IOMUX_PAD(0x69C, 0x310, 7, 0x0, 0, 0) | ||
1105 | #define _MX53_PAD_GPIO_0__CCM_CLKO IOMUX_PAD(0x6A4, 0x314, 0, 0x0, 0, 0) | ||
1106 | #define _MX53_PAD_GPIO_0__GPIO1_0 IOMUX_PAD(0x6A4, 0x314, 1, 0x0, 0, 0) | ||
1107 | #define _MX53_PAD_GPIO_0__KPP_COL_5 IOMUX_PAD(0x6A4, 0x314, 2, 0x840, 3, 0) | ||
1108 | #define _MX53_PAD_GPIO_0__CCM_SSI_EXT1_CLK IOMUX_PAD(0x6A4, 0x314, 3, 0x0, 0, 0) | ||
1109 | #define _MX53_PAD_GPIO_0__EPIT1_EPITO IOMUX_PAD(0x6A4, 0x314, 4, 0x0, 0, 0) | ||
1110 | #define _MX53_PAD_GPIO_0__SRTC_ALARM_DEB IOMUX_PAD(0x6A4, 0x314, 5, 0x0, 0, 0) | ||
1111 | #define _MX53_PAD_GPIO_0__USBOH3_USBH1_PWR IOMUX_PAD(0x6A4, 0x314, 6, 0x0, 0, 0) | ||
1112 | #define _MX53_PAD_GPIO_0__CSU_TD IOMUX_PAD(0x6A4, 0x314, 7, 0x0, 0, 0) | ||
1113 | #define _MX53_PAD_GPIO_1__ESAI1_SCKR IOMUX_PAD(0x6A8, 0x318, 0, 0x7DC, 1, 0) | ||
1114 | #define _MX53_PAD_GPIO_1__GPIO1_1 IOMUX_PAD(0x6A8, 0x318, 1, 0x0, 0, 0) | ||
1115 | #define _MX53_PAD_GPIO_1__KPP_ROW_5 IOMUX_PAD(0x6A8, 0x318, 2, 0x84C, 2, 0) | ||
1116 | #define _MX53_PAD_GPIO_1__CCM_SSI_EXT2_CLK IOMUX_PAD(0x6A8, 0x318, 3, 0x0, 0, 0) | ||
1117 | #define _MX53_PAD_GPIO_1__PWM2_PWMO IOMUX_PAD(0x6A8, 0x318, 4, 0x0, 0, 0) | ||
1118 | #define _MX53_PAD_GPIO_1__WDOG2_WDOG_B IOMUX_PAD(0x6A8, 0x318, 5, 0x0, 0, 0) | ||
1119 | #define _MX53_PAD_GPIO_1__ESDHC1_CD IOMUX_PAD(0x6A8, 0x318, 6, 0x0, 0, 0) | ||
1120 | #define _MX53_PAD_GPIO_1__SRC_TESTER_ACK IOMUX_PAD(0x6A8, 0x318, 7, 0x0, 0, 0) | ||
1121 | #define _MX53_PAD_GPIO_9__ESAI1_FSR IOMUX_PAD(0x6AC, 0x31C, 0, 0x7CC, 1, 0) | ||
1122 | #define _MX53_PAD_GPIO_9__GPIO1_9 IOMUX_PAD(0x6AC, 0x31C, 1, 0x0, 0, 0) | ||
1123 | #define _MX53_PAD_GPIO_9__KPP_COL_6 IOMUX_PAD(0x6AC, 0x31C, 2, 0x844, 2, 0) | ||
1124 | #define _MX53_PAD_GPIO_9__CCM_REF_EN_B IOMUX_PAD(0x6AC, 0x31C, 3, 0x0, 0, 0) | ||
1125 | #define _MX53_PAD_GPIO_9__PWM1_PWMO IOMUX_PAD(0x6AC, 0x31C, 4, 0x0, 0, 0) | ||
1126 | #define _MX53_PAD_GPIO_9__WDOG1_WDOG_B IOMUX_PAD(0x6AC, 0x31C, 5, 0x0, 0, 0) | ||
1127 | #define _MX53_PAD_GPIO_9__ESDHC1_WP IOMUX_PAD(0x6AC, 0x31C, 6, 0x7FC, 1, 0) | ||
1128 | #define _MX53_PAD_GPIO_9__SCC_FAIL_STATE IOMUX_PAD(0x6AC, 0x31C, 7, 0x0, 0, 0) | ||
1129 | #define _MX53_PAD_GPIO_3__ESAI1_HCKR IOMUX_PAD(0x6B0, 0x320, 0, 0x7D4, 1, 0) | ||
1130 | #define _MX53_PAD_GPIO_3__GPIO1_3 IOMUX_PAD(0x6B0, 0x320, 1, 0x0, 0, 0) | ||
1131 | #define _MX53_PAD_GPIO_3__I2C3_SCL IOMUX_PAD(0x6B0, 0x320, 2 | IOMUX_CONFIG_SION, 0x824, 1, 0) | ||
1132 | #define _MX53_PAD_GPIO_3__DPLLIP1_TOG_EN IOMUX_PAD(0x6B0, 0x320, 3, 0x0, 0, 0) | ||
1133 | #define _MX53_PAD_GPIO_3__CCM_CLKO2 IOMUX_PAD(0x6B0, 0x320, 4, 0x0, 0, 0) | ||
1134 | #define _MX53_PAD_GPIO_3__OBSERVE_MUX_OBSRV_INT_OUT0 IOMUX_PAD(0x6B0, 0x320, 5, 0x0, 0, 0) | ||
1135 | #define _MX53_PAD_GPIO_3__USBOH3_USBH1_OC IOMUX_PAD(0x6B0, 0x320, 6, 0x8A0, 1, 0) | ||
1136 | #define _MX53_PAD_GPIO_3__MLB_MLBCLK IOMUX_PAD(0x6B0, 0x320, 7, 0x858, 2, 0) | ||
1137 | #define _MX53_PAD_GPIO_6__ESAI1_SCKT IOMUX_PAD(0x6B4, 0x324, 0, 0x7E0, 1, 0) | ||
1138 | #define _MX53_PAD_GPIO_6__GPIO1_6 IOMUX_PAD(0x6B4, 0x324, 1, 0x0, 0, 0) | ||
1139 | #define _MX53_PAD_GPIO_6__I2C3_SDA IOMUX_PAD(0x6B4, 0x324, 2 | IOMUX_CONFIG_SION, 0x828, 1, 0) | ||
1140 | #define _MX53_PAD_GPIO_6__CCM_CCM_OUT_0 IOMUX_PAD(0x6B4, 0x324, 3, 0x0, 0, 0) | ||
1141 | #define _MX53_PAD_GPIO_6__CSU_CSU_INT_DEB IOMUX_PAD(0x6B4, 0x324, 4, 0x0, 0, 0) | ||
1142 | #define _MX53_PAD_GPIO_6__OBSERVE_MUX_OBSRV_INT_OUT1 IOMUX_PAD(0x6B4, 0x324, 5, 0x0, 0, 0) | ||
1143 | #define _MX53_PAD_GPIO_6__ESDHC2_LCTL IOMUX_PAD(0x6B4, 0x324, 6, 0x0, 0, 0) | ||
1144 | #define _MX53_PAD_GPIO_6__MLB_MLBSIG IOMUX_PAD(0x6B4, 0x324, 7, 0x860, 2, 0) | ||
1145 | #define _MX53_PAD_GPIO_2__ESAI1_FST IOMUX_PAD(0x6B8, 0x328, 0, 0x7D0, 1, 0) | ||
1146 | #define _MX53_PAD_GPIO_2__GPIO1_2 IOMUX_PAD(0x6B8, 0x328, 1, 0x0, 0, 0) | ||
1147 | #define _MX53_PAD_GPIO_2__KPP_ROW_6 IOMUX_PAD(0x6B8, 0x328, 2, 0x850, 2, 0) | ||
1148 | #define _MX53_PAD_GPIO_2__CCM_CCM_OUT_1 IOMUX_PAD(0x6B8, 0x328, 3, 0x0, 0, 0) | ||
1149 | #define _MX53_PAD_GPIO_2__CSU_CSU_ALARM_AUT_0 IOMUX_PAD(0x6B8, 0x328, 4, 0x0, 0, 0) | ||
1150 | #define _MX53_PAD_GPIO_2__OBSERVE_MUX_OBSRV_INT_OUT2 IOMUX_PAD(0x6B8, 0x328, 5, 0x0, 0, 0) | ||
1151 | #define _MX53_PAD_GPIO_2__ESDHC2_WP IOMUX_PAD(0x6B8, 0x328, 6, 0x0, 0, 0) | ||
1152 | #define _MX53_PAD_GPIO_2__MLB_MLBDAT IOMUX_PAD(0x6B8, 0x328, 7, 0x85C, 2, 0) | ||
1153 | #define _MX53_PAD_GPIO_4__ESAI1_HCKT IOMUX_PAD(0x6BC, 0x32C, 0, 0x7D8, 1, 0) | ||
1154 | #define _MX53_PAD_GPIO_4__GPIO1_4 IOMUX_PAD(0x6BC, 0x32C, 1, 0x0, 0, 0) | ||
1155 | #define _MX53_PAD_GPIO_4__KPP_COL_7 IOMUX_PAD(0x6BC, 0x32C, 2, 0x848, 2, 0) | ||
1156 | #define _MX53_PAD_GPIO_4__CCM_CCM_OUT_2 IOMUX_PAD(0x6BC, 0x32C, 3, 0x0, 0, 0) | ||
1157 | #define _MX53_PAD_GPIO_4__CSU_CSU_ALARM_AUT_1 IOMUX_PAD(0x6BC, 0x32C, 4, 0x0, 0, 0) | ||
1158 | #define _MX53_PAD_GPIO_4__OBSERVE_MUX_OBSRV_INT_OUT3 IOMUX_PAD(0x6BC, 0x32C, 5, 0x0, 0, 0) | ||
1159 | #define _MX53_PAD_GPIO_4__ESDHC2_CD IOMUX_PAD(0x6BC, 0x32C, 6, 0x0, 0, 0) | ||
1160 | #define _MX53_PAD_GPIO_4__SCC_SEC_STATE IOMUX_PAD(0x6BC, 0x32C, 7, 0x0, 0, 0) | ||
1161 | #define _MX53_PAD_GPIO_5__ESAI1_TX2_RX3 IOMUX_PAD(0x6C0, 0x330, 0, 0x7EC, 1, 0) | ||
1162 | #define _MX53_PAD_GPIO_5__GPIO1_5 IOMUX_PAD(0x6C0, 0x330, 1, 0x0, 0, 0) | ||
1163 | #define _MX53_PAD_GPIO_5__KPP_ROW_7 IOMUX_PAD(0x6C0, 0x330, 2, 0x854, 2, 0) | ||
1164 | #define _MX53_PAD_GPIO_5__CCM_CLKO IOMUX_PAD(0x6C0, 0x330, 3, 0x0, 0, 0) | ||
1165 | #define _MX53_PAD_GPIO_5__CSU_CSU_ALARM_AUT_2 IOMUX_PAD(0x6C0, 0x330, 4, 0x0, 0, 0) | ||
1166 | #define _MX53_PAD_GPIO_5__OBSERVE_MUX_OBSRV_INT_OUT4 IOMUX_PAD(0x6C0, 0x330, 5, 0x0, 0, 0) | ||
1167 | #define _MX53_PAD_GPIO_5__I2C3_SCL IOMUX_PAD(0x6C0, 0x330, 6 | IOMUX_CONFIG_SION, 0x824, 2, 0) | ||
1168 | #define _MX53_PAD_GPIO_5__CCM_PLL1_BYP IOMUX_PAD(0x6C0, 0x330, 7, 0x770, 1, 0) | ||
1169 | #define _MX53_PAD_GPIO_7__ESAI1_TX4_RX1 IOMUX_PAD(0x6C4, 0x334, 0, 0x7F4, 1, 0) | ||
1170 | #define _MX53_PAD_GPIO_7__GPIO1_7 IOMUX_PAD(0x6C4, 0x334, 1, 0x0, 0, 0) | ||
1171 | #define _MX53_PAD_GPIO_7__EPIT1_EPITO IOMUX_PAD(0x6C4, 0x334, 2, 0x0, 0, 0) | ||
1172 | #define _MX53_PAD_GPIO_7__CAN1_TXCAN IOMUX_PAD(0x6C4, 0x334, 3, 0x0, 0, 0) | ||
1173 | #define _MX53_PAD_GPIO_7__UART2_TXD_MUX IOMUX_PAD(0x6C4, 0x334, 4, 0x0, 0, 0) | ||
1174 | #define _MX53_PAD_GPIO_7__FIRI_RXD IOMUX_PAD(0x6C4, 0x334, 5, 0x80C, 1, 0) | ||
1175 | #define _MX53_PAD_GPIO_7__SPDIF_PLOCK IOMUX_PAD(0x6C4, 0x334, 6, 0x0, 0, 0) | ||
1176 | #define _MX53_PAD_GPIO_7__CCM_PLL2_BYP IOMUX_PAD(0x6C4, 0x334, 7, 0x774, 1, 0) | ||
1177 | #define _MX53_PAD_GPIO_8__ESAI1_TX5_RX0 IOMUX_PAD(0x6C8, 0x338, 0, 0x7F8, 1, 0) | ||
1178 | #define _MX53_PAD_GPIO_8__GPIO1_8 IOMUX_PAD(0x6C8, 0x338, 1, 0x0, 0, 0) | ||
1179 | #define _MX53_PAD_GPIO_8__EPIT2_EPITO IOMUX_PAD(0x6C8, 0x338, 2, 0x0, 0, 0) | ||
1180 | #define _MX53_PAD_GPIO_8__CAN1_RXCAN IOMUX_PAD(0x6C8, 0x338, 3, 0x760, 3, 0) | ||
1181 | #define _MX53_PAD_GPIO_8__UART2_RXD_MUX IOMUX_PAD(0x6C8, 0x338, 4, 0x880, 5, 0) | ||
1182 | #define _MX53_PAD_GPIO_8__FIRI_TXD IOMUX_PAD(0x6C8, 0x338, 5, 0x0, 0, 0) | ||
1183 | #define _MX53_PAD_GPIO_8__SPDIF_SRCLK IOMUX_PAD(0x6C8, 0x338, 6, 0x0, 0, 0) | ||
1184 | #define _MX53_PAD_GPIO_8__CCM_PLL3_BYP IOMUX_PAD(0x6C8, 0x338, 7, 0x778, 1, 0) | ||
1185 | #define _MX53_PAD_GPIO_16__ESAI1_TX3_RX2 IOMUX_PAD(0x6CC, 0x33C, 0, 0x7F0, 1, 0) | ||
1186 | #define _MX53_PAD_GPIO_16__GPIO7_11 IOMUX_PAD(0x6CC, 0x33C, 1, 0x0, 0, 0) | ||
1187 | #define _MX53_PAD_GPIO_16__TZIC_PWRFAIL_INT IOMUX_PAD(0x6CC, 0x33C, 2, 0x0, 0, 0) | ||
1188 | #define _MX53_PAD_GPIO_16__RTC_CE_RTC_EXT_TRIG1 IOMUX_PAD(0x6CC, 0x33C, 4, 0x0, 0, 0) | ||
1189 | #define _MX53_PAD_GPIO_16__SPDIF_IN1 IOMUX_PAD(0x6CC, 0x33C, 5, 0x870, 1, 0) | ||
1190 | #define _MX53_PAD_GPIO_16__I2C3_SDA IOMUX_PAD(0x6CC, 0x33C, 6 | IOMUX_CONFIG_SION, 0x828, 2, 0) | ||
1191 | #define _MX53_PAD_GPIO_16__SJC_DE_B IOMUX_PAD(0x6CC, 0x33C, 7, 0x0, 0, 0) | ||
1192 | #define _MX53_PAD_GPIO_17__ESAI1_TX0 IOMUX_PAD(0x6D0, 0x340, 0, 0x7E4, 1, 0) | ||
1193 | #define _MX53_PAD_GPIO_17__GPIO7_12 IOMUX_PAD(0x6D0, 0x340, 1, 0x0, 0, 0) | ||
1194 | #define _MX53_PAD_GPIO_17__SDMA_EXT_EVENT_0 IOMUX_PAD(0x6D0, 0x340, 2, 0x868, 1, 0) | ||
1195 | #define _MX53_PAD_GPIO_17__GPC_PMIC_RDY IOMUX_PAD(0x6D0, 0x340, 3, 0x810, 1, 0) | ||
1196 | #define _MX53_PAD_GPIO_17__RTC_CE_RTC_FSV_TRIG IOMUX_PAD(0x6D0, 0x340, 4, 0x0, 0, 0) | ||
1197 | #define _MX53_PAD_GPIO_17__SPDIF_OUT1 IOMUX_PAD(0x6D0, 0x340, 5, 0x0, 0, 0) | ||
1198 | #define _MX53_PAD_GPIO_17__IPU_SNOOP2 IOMUX_PAD(0x6D0, 0x340, 6, 0x0, 0, 0) | ||
1199 | #define _MX53_PAD_GPIO_17__SJC_JTAG_ACT IOMUX_PAD(0x6D0, 0x340, 7, 0x0, 0, 0) | ||
1200 | #define _MX53_PAD_GPIO_18__ESAI1_TX1 IOMUX_PAD(0x6D4, 0x344, 0, 0x7E8, 1, 0) | ||
1201 | #define _MX53_PAD_GPIO_18__GPIO7_13 IOMUX_PAD(0x6D4, 0x344, 1, 0x0, 0, 0) | ||
1202 | #define _MX53_PAD_GPIO_18__SDMA_EXT_EVENT_1 IOMUX_PAD(0x6D4, 0x344, 2, 0x86C, 1, 0) | ||
1203 | #define _MX53_PAD_GPIO_18__OWIRE_LINE IOMUX_PAD(0x6D4, 0x344, 3, 0x864, 1, 0) | ||
1204 | #define _MX53_PAD_GPIO_18__RTC_CE_RTC_ALARM2_TRIG IOMUX_PAD(0x6D4, 0x344, 4, 0x0, 0, 0) | ||
1205 | #define _MX53_PAD_GPIO_18__CCM_ASRC_EXT_CLK IOMUX_PAD(0x6D4, 0x344, 5, 0x768, 1, 0) | ||
1206 | #define _MX53_PAD_GPIO_18__ESDHC1_LCTL IOMUX_PAD(0x6D4, 0x344, 6, 0x0, 0, 0) | ||
1207 | #define _MX53_PAD_GPIO_18__SRC_SYSTEM_RST IOMUX_PAD(0x6D4, 0x344, 7, 0x0, 0, 0) | ||
1208 | 34 | ||
1209 | #define MX53_PAD_GPIO_19__KPP_COL_5 (_MX53_PAD_GPIO_19__KPP_COL_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 35 | #define MX53_PAD_GPIO_19__KPP_COL_5 IOMUX_PAD(0x348, 0x020, 0, 0x840, 0, NO_PAD_CTRL) |
1210 | #define MX53_PAD_GPIO_19__GPIO4_5 (_MX53_PAD_GPIO_19__GPIO4_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 36 | #define MX53_PAD_GPIO_19__GPIO4_5 IOMUX_PAD(0x348, 0x020, 1, __NA_, 0, NO_PAD_CTRL) |
1211 | #define MX53_PAD_GPIO_19__CCM_CLKO (_MX53_PAD_GPIO_19__CCM_CLKO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 37 | #define MX53_PAD_GPIO_19__CCM_CLKO IOMUX_PAD(0x348, 0x020, 2, __NA_, 0, NO_PAD_CTRL) |
1212 | #define MX53_PAD_GPIO_19__SPDIF_OUT1 (_MX53_PAD_GPIO_19__SPDIF_OUT1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 38 | #define MX53_PAD_GPIO_19__SPDIF_OUT1 IOMUX_PAD(0x348, 0x020, 3, __NA_, 0, NO_PAD_CTRL) |
1213 | #define MX53_PAD_GPIO_19__RTC_CE_RTC_EXT_TRIG2 (_MX53_PAD_GPIO_19__RTC_CE_RTC_EXT_TRIG2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 39 | #define MX53_PAD_GPIO_19__RTC_CE_RTC_EXT_TRIG2 IOMUX_PAD(0x348, 0x020, 4, __NA_, 0, NO_PAD_CTRL) |
1214 | #define MX53_PAD_GPIO_19__ECSPI1_RDY (_MX53_PAD_GPIO_19__ECSPI1_RDY | MUX_PAD_CTRL(NO_PAD_CTRL)) | 40 | #define MX53_PAD_GPIO_19__ECSPI1_RDY IOMUX_PAD(0x348, 0x020, 5, __NA_, 0, NO_PAD_CTRL) |
1215 | #define MX53_PAD_GPIO_19__FEC_TDATA_3 (_MX53_PAD_GPIO_19__FEC_TDATA_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 41 | #define MX53_PAD_GPIO_19__FEC_TDATA_3 IOMUX_PAD(0x348, 0x020, 6, __NA_, 0, NO_PAD_CTRL) |
1216 | #define MX53_PAD_GPIO_19__SRC_INT_BOOT (_MX53_PAD_GPIO_19__SRC_INT_BOOT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 42 | #define MX53_PAD_GPIO_19__SRC_INT_BOOT IOMUX_PAD(0x348, 0x020, 7, __NA_, 0, NO_PAD_CTRL) |
1217 | #define MX53_PAD_KEY_COL0__KPP_COL_0 (_MX53_PAD_KEY_COL0__KPP_COL_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 43 | #define MX53_PAD_KEY_COL0__KPP_COL_0 IOMUX_PAD(0x34C, 0x024, 0, __NA_, 0, NO_PAD_CTRL) |
1218 | #define MX53_PAD_KEY_COL0__GPIO4_6 (_MX53_PAD_KEY_COL0__GPIO4_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 44 | #define MX53_PAD_KEY_COL0__GPIO4_6 IOMUX_PAD(0x34C, 0x024, 1, __NA_, 0, NO_PAD_CTRL) |
1219 | #define MX53_PAD_KEY_COL0__AUDMUX_AUD5_TXC (_MX53_PAD_KEY_COL0__AUDMUX_AUD5_TXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 45 | #define MX53_PAD_KEY_COL0__AUDMUX_AUD5_TXC IOMUX_PAD(0x34C, 0x024, 2, 0x758, 0, NO_PAD_CTRL) |
1220 | #define MX53_PAD_KEY_COL0__UART4_TXD_MUX (_MX53_PAD_KEY_COL0__UART4_TXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 46 | #define MX53_PAD_KEY_COL0__UART4_TXD_MUX IOMUX_PAD(0x34C, 0x024, 4, __NA_, 0, MX53_UART_PAD_CTRL) |
1221 | #define MX53_PAD_KEY_COL0__ECSPI1_SCLK (_MX53_PAD_KEY_COL0__ECSPI1_SCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 47 | #define MX53_PAD_KEY_COL0__ECSPI1_SCLK IOMUX_PAD(0x34C, 0x024, 5, 0x79C, 0, NO_PAD_CTRL) |
1222 | #define MX53_PAD_KEY_COL0__FEC_RDATA_3 (_MX53_PAD_KEY_COL0__FEC_RDATA_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 48 | #define MX53_PAD_KEY_COL0__FEC_RDATA_3 IOMUX_PAD(0x34C, 0x024, 6, __NA_, 0, NO_PAD_CTRL) |
1223 | #define MX53_PAD_KEY_COL0__SRC_ANY_PU_RST (_MX53_PAD_KEY_COL0__SRC_ANY_PU_RST | MUX_PAD_CTRL(NO_PAD_CTRL)) | 49 | #define MX53_PAD_KEY_COL0__SRC_ANY_PU_RST IOMUX_PAD(0x34C, 0x024, 7, __NA_, 0, NO_PAD_CTRL) |
1224 | #define MX53_PAD_KEY_ROW0__KPP_ROW_0 (_MX53_PAD_KEY_ROW0__KPP_ROW_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 50 | #define MX53_PAD_KEY_ROW0__KPP_ROW_0 IOMUX_PAD(0x350, 0x028, 0, __NA_, 0, NO_PAD_CTRL) |
1225 | #define MX53_PAD_KEY_ROW0__GPIO4_7 (_MX53_PAD_KEY_ROW0__GPIO4_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 51 | #define MX53_PAD_KEY_ROW0__GPIO4_7 IOMUX_PAD(0x350, 0x028, 1, __NA_, 0, NO_PAD_CTRL) |
1226 | #define MX53_PAD_KEY_ROW0__AUDMUX_AUD5_TXD (_MX53_PAD_KEY_ROW0__AUDMUX_AUD5_TXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 52 | #define MX53_PAD_KEY_ROW0__AUDMUX_AUD5_TXD IOMUX_PAD(0x350, 0x028, 2, 0x74C, 0, NO_PAD_CTRL) |
1227 | #define MX53_PAD_KEY_ROW0__UART4_RXD_MUX (_MX53_PAD_KEY_ROW0__UART4_RXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 53 | #define MX53_PAD_KEY_ROW0__UART4_RXD_MUX IOMUX_PAD(0x350, 0x028, 4, 0x890, 1, MX53_UART_PAD_CTRL) |
1228 | #define MX53_PAD_KEY_ROW0__ECSPI1_MOSI (_MX53_PAD_KEY_ROW0__ECSPI1_MOSI | MUX_PAD_CTRL(NO_PAD_CTRL)) | 54 | #define MX53_PAD_KEY_ROW0__ECSPI1_MOSI IOMUX_PAD(0x350, 0x028, 5, 0x7A4, 0, NO_PAD_CTRL) |
1229 | #define MX53_PAD_KEY_ROW0__FEC_TX_ER (_MX53_PAD_KEY_ROW0__FEC_TX_ER | MUX_PAD_CTRL(NO_PAD_CTRL)) | 55 | #define MX53_PAD_KEY_ROW0__FEC_TX_ER IOMUX_PAD(0x350, 0x028, 6, __NA_, 0, NO_PAD_CTRL) |
1230 | #define MX53_PAD_KEY_COL1__KPP_COL_1 (_MX53_PAD_KEY_COL1__KPP_COL_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 56 | #define MX53_PAD_KEY_COL1__KPP_COL_1 IOMUX_PAD(0x354, 0x02C, 0, __NA_, 0, NO_PAD_CTRL) |
1231 | #define MX53_PAD_KEY_COL1__GPIO4_8 (_MX53_PAD_KEY_COL1__GPIO4_8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 57 | #define MX53_PAD_KEY_COL1__GPIO4_8 IOMUX_PAD(0x354, 0x02C, 1, __NA_, 0, NO_PAD_CTRL) |
1232 | #define MX53_PAD_KEY_COL1__AUDMUX_AUD5_TXFS (_MX53_PAD_KEY_COL1__AUDMUX_AUD5_TXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 58 | #define MX53_PAD_KEY_COL1__AUDMUX_AUD5_TXFS IOMUX_PAD(0x354, 0x02C, 2, 0x75C, 0, NO_PAD_CTRL) |
1233 | #define MX53_PAD_KEY_COL1__UART5_TXD_MUX (_MX53_PAD_KEY_COL1__UART5_TXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 59 | #define MX53_PAD_KEY_COL1__UART5_TXD_MUX IOMUX_PAD(0x354, 0x02C, 4, __NA_, 0, MX53_UART_PAD_CTRL) |
1234 | #define MX53_PAD_KEY_COL1__ECSPI1_MISO (_MX53_PAD_KEY_COL1__ECSPI1_MISO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 60 | #define MX53_PAD_KEY_COL1__ECSPI1_MISO IOMUX_PAD(0x354, 0x02C, 5, 0x7A0, 0, NO_PAD_CTRL) |
1235 | #define MX53_PAD_KEY_COL1__FEC_RX_CLK (_MX53_PAD_KEY_COL1__FEC_RX_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 61 | #define MX53_PAD_KEY_COL1__FEC_RX_CLK IOMUX_PAD(0x354, 0x02C, 6, 0x808, 0, NO_PAD_CTRL) |
1236 | #define MX53_PAD_KEY_COL1__USBPHY1_TXREADY (_MX53_PAD_KEY_COL1__USBPHY1_TXREADY | MUX_PAD_CTRL(NO_PAD_CTRL)) | 62 | #define MX53_PAD_KEY_COL1__USBPHY1_TXREADY IOMUX_PAD(0x354, 0x02C, 7, __NA_, 0, NO_PAD_CTRL) |
1237 | #define MX53_PAD_KEY_ROW1__KPP_ROW_1 (_MX53_PAD_KEY_ROW1__KPP_ROW_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 63 | #define MX53_PAD_KEY_ROW1__KPP_ROW_1 IOMUX_PAD(0x358, 0x030, 0, __NA_, 0, NO_PAD_CTRL) |
1238 | #define MX53_PAD_KEY_ROW1__GPIO4_9 (_MX53_PAD_KEY_ROW1__GPIO4_9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 64 | #define MX53_PAD_KEY_ROW1__GPIO4_9 IOMUX_PAD(0x358, 0x030, 1, __NA_, 0, NO_PAD_CTRL) |
1239 | #define MX53_PAD_KEY_ROW1__AUDMUX_AUD5_RXD (_MX53_PAD_KEY_ROW1__AUDMUX_AUD5_RXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 65 | #define MX53_PAD_KEY_ROW1__AUDMUX_AUD5_RXD IOMUX_PAD(0x358, 0x030, 2, 0x748, 0, NO_PAD_CTRL) |
1240 | #define MX53_PAD_KEY_ROW1__UART5_RXD_MUX (_MX53_PAD_KEY_ROW1__UART5_RXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 66 | #define MX53_PAD_KEY_ROW1__UART5_RXD_MUX IOMUX_PAD(0x358, 0x030, 4, 0x898, 1, MX53_UART_PAD_CTRL) |
1241 | #define MX53_PAD_KEY_ROW1__ECSPI1_SS0 (_MX53_PAD_KEY_ROW1__ECSPI1_SS0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 67 | #define MX53_PAD_KEY_ROW1__ECSPI1_SS0 IOMUX_PAD(0x358, 0x030, 5, 0x7A8, 0, NO_PAD_CTRL) |
1242 | #define MX53_PAD_KEY_ROW1__FEC_COL (_MX53_PAD_KEY_ROW1__FEC_COL | MUX_PAD_CTRL(NO_PAD_CTRL)) | 68 | #define MX53_PAD_KEY_ROW1__FEC_COL IOMUX_PAD(0x358, 0x030, 6, 0x800, 0, NO_PAD_CTRL) |
1243 | #define MX53_PAD_KEY_ROW1__USBPHY1_RXVALID (_MX53_PAD_KEY_ROW1__USBPHY1_RXVALID | MUX_PAD_CTRL(NO_PAD_CTRL)) | 69 | #define MX53_PAD_KEY_ROW1__USBPHY1_RXVALID IOMUX_PAD(0x358, 0x030, 7, __NA_, 0, NO_PAD_CTRL) |
1244 | #define MX53_PAD_KEY_COL2__KPP_COL_2 (_MX53_PAD_KEY_COL2__KPP_COL_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 70 | #define MX53_PAD_KEY_COL2__KPP_COL_2 IOMUX_PAD(0x35C, 0x034, 0, __NA_, 0, NO_PAD_CTRL) |
1245 | #define MX53_PAD_KEY_COL2__GPIO4_10 (_MX53_PAD_KEY_COL2__GPIO4_10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 71 | #define MX53_PAD_KEY_COL2__GPIO4_10 IOMUX_PAD(0x35C, 0x034, 1, __NA_, 0, NO_PAD_CTRL) |
1246 | #define MX53_PAD_KEY_COL2__CAN1_TXCAN (_MX53_PAD_KEY_COL2__CAN1_TXCAN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 72 | #define MX53_PAD_KEY_COL2__CAN1_TXCAN IOMUX_PAD(0x35C, 0x034, 2, __NA_, 0, NO_PAD_CTRL) |
1247 | #define MX53_PAD_KEY_COL2__FEC_MDIO (_MX53_PAD_KEY_COL2__FEC_MDIO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 73 | #define MX53_PAD_KEY_COL2__FEC_MDIO IOMUX_PAD(0x35C, 0x034, 4, 0x804, 0, NO_PAD_CTRL) |
1248 | #define MX53_PAD_KEY_COL2__ECSPI1_SS1 (_MX53_PAD_KEY_COL2__ECSPI1_SS1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 74 | #define MX53_PAD_KEY_COL2__ECSPI1_SS1 IOMUX_PAD(0x35C, 0x034, 5, 0x7AC, 0, NO_PAD_CTRL) |
1249 | #define MX53_PAD_KEY_COL2__FEC_RDATA_2 (_MX53_PAD_KEY_COL2__FEC_RDATA_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 75 | #define MX53_PAD_KEY_COL2__FEC_RDATA_2 IOMUX_PAD(0x35C, 0x034, 6, __NA_, 0, NO_PAD_CTRL) |
1250 | #define MX53_PAD_KEY_COL2__USBPHY1_RXACTIVE (_MX53_PAD_KEY_COL2__USBPHY1_RXACTIVE | MUX_PAD_CTRL(NO_PAD_CTRL)) | 76 | #define MX53_PAD_KEY_COL2__USBPHY1_RXACTIVE IOMUX_PAD(0x35C, 0x034, 7, __NA_, 0, NO_PAD_CTRL) |
1251 | #define MX53_PAD_KEY_ROW2__KPP_ROW_2 (_MX53_PAD_KEY_ROW2__KPP_ROW_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 77 | #define MX53_PAD_KEY_ROW2__KPP_ROW_2 IOMUX_PAD(0x360, 0x038, 0, __NA_, 0, NO_PAD_CTRL) |
1252 | #define MX53_PAD_KEY_ROW2__GPIO4_11 (_MX53_PAD_KEY_ROW2__GPIO4_11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 78 | #define MX53_PAD_KEY_ROW2__GPIO4_11 IOMUX_PAD(0x360, 0x038, 1, __NA_, 0, NO_PAD_CTRL) |
1253 | #define MX53_PAD_KEY_ROW2__CAN1_RXCAN (_MX53_PAD_KEY_ROW2__CAN1_RXCAN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 79 | #define MX53_PAD_KEY_ROW2__CAN1_RXCAN IOMUX_PAD(0x360, 0x038, 2, 0x760, 0, NO_PAD_CTRL) |
1254 | #define MX53_PAD_KEY_ROW2__FEC_MDC (_MX53_PAD_KEY_ROW2__FEC_MDC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 80 | #define MX53_PAD_KEY_ROW2__FEC_MDC IOMUX_PAD(0x360, 0x038, 4, __NA_, 0, NO_PAD_CTRL) |
1255 | #define MX53_PAD_KEY_ROW2__ECSPI1_SS2 (_MX53_PAD_KEY_ROW2__ECSPI1_SS2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 81 | #define MX53_PAD_KEY_ROW2__ECSPI1_SS2 IOMUX_PAD(0x360, 0x038, 5, 0x7B0, 0, NO_PAD_CTRL) |
1256 | #define MX53_PAD_KEY_ROW2__FEC_TDATA_2 (_MX53_PAD_KEY_ROW2__FEC_TDATA_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 82 | #define MX53_PAD_KEY_ROW2__FEC_TDATA_2 IOMUX_PAD(0x360, 0x038, 6, __NA_, 0, NO_PAD_CTRL) |
1257 | #define MX53_PAD_KEY_ROW2__USBPHY1_RXERROR (_MX53_PAD_KEY_ROW2__USBPHY1_RXERROR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 83 | #define MX53_PAD_KEY_ROW2__USBPHY1_RXERROR IOMUX_PAD(0x360, 0x038, 7, __NA_, 0, NO_PAD_CTRL) |
1258 | #define MX53_PAD_KEY_COL3__KPP_COL_3 (_MX53_PAD_KEY_COL3__KPP_COL_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 84 | #define MX53_PAD_KEY_COL3__KPP_COL_3 IOMUX_PAD(0x364, 0x03C, 0, __NA_, 0, NO_PAD_CTRL) |
1259 | #define MX53_PAD_KEY_COL3__GPIO4_12 (_MX53_PAD_KEY_COL3__GPIO4_12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 85 | #define MX53_PAD_KEY_COL3__GPIO4_12 IOMUX_PAD(0x364, 0x03C, 1, __NA_, 0, NO_PAD_CTRL) |
1260 | #define MX53_PAD_KEY_COL3__USBOH3_H2_DP (_MX53_PAD_KEY_COL3__USBOH3_H2_DP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 86 | #define MX53_PAD_KEY_COL3__USBOH3_H2_DP IOMUX_PAD(0x364, 0x03C, 2, __NA_, 0, NO_PAD_CTRL) |
1261 | #define MX53_PAD_KEY_COL3__SPDIF_IN1 (_MX53_PAD_KEY_COL3__SPDIF_IN1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 87 | #define MX53_PAD_KEY_COL3__SPDIF_IN1 IOMUX_PAD(0x364, 0x03C, 3, 0x870, 0, NO_PAD_CTRL) |
1262 | #define MX53_PAD_KEY_COL3__I2C2_SCL (_MX53_PAD_KEY_COL3__I2C2_SCL | MUX_PAD_CTRL(PAD_CTRL_I2C)) | 88 | #define MX53_PAD_KEY_COL3__I2C2_SCL IOMUX_PAD(0x364, 0x03C, 4 | IOMUX_CONFIG_SION, 0x81C, 0, NO_PAD_CTRL) |
1263 | #define MX53_PAD_KEY_COL3__ECSPI1_SS3 (_MX53_PAD_KEY_COL3__ECSPI1_SS3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 89 | #define MX53_PAD_KEY_COL3__ECSPI1_SS3 IOMUX_PAD(0x364, 0x03C, 5, 0x7B4, 0, NO_PAD_CTRL) |
1264 | #define MX53_PAD_KEY_COL3__FEC_CRS (_MX53_PAD_KEY_COL3__FEC_CRS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 90 | #define MX53_PAD_KEY_COL3__FEC_CRS IOMUX_PAD(0x364, 0x03C, 6, __NA_, 0, NO_PAD_CTRL) |
1265 | #define MX53_PAD_KEY_COL3__USBPHY1_SIECLOCK (_MX53_PAD_KEY_COL3__USBPHY1_SIECLOCK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 91 | #define MX53_PAD_KEY_COL3__USBPHY1_SIECLOCK IOMUX_PAD(0x364, 0x03C, 7, __NA_, 0, NO_PAD_CTRL) |
1266 | #define MX53_PAD_KEY_ROW3__KPP_ROW_3 (_MX53_PAD_KEY_ROW3__KPP_ROW_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 92 | #define MX53_PAD_KEY_ROW3__KPP_ROW_3 IOMUX_PAD(0x368, 0x040, 0, __NA_, 0, NO_PAD_CTRL) |
1267 | #define MX53_PAD_KEY_ROW3__GPIO4_13 (_MX53_PAD_KEY_ROW3__GPIO4_13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 93 | #define MX53_PAD_KEY_ROW3__GPIO4_13 IOMUX_PAD(0x368, 0x040, 1, __NA_, 0, NO_PAD_CTRL) |
1268 | #define MX53_PAD_KEY_ROW3__USBOH3_H2_DM (_MX53_PAD_KEY_ROW3__USBOH3_H2_DM | MUX_PAD_CTRL(NO_PAD_CTRL)) | 94 | #define MX53_PAD_KEY_ROW3__USBOH3_H2_DM IOMUX_PAD(0x368, 0x040, 2, __NA_, 0, NO_PAD_CTRL) |
1269 | #define MX53_PAD_KEY_ROW3__CCM_ASRC_EXT_CLK (_MX53_PAD_KEY_ROW3__CCM_ASRC_EXT_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 95 | #define MX53_PAD_KEY_ROW3__CCM_ASRC_EXT_CLK IOMUX_PAD(0x368, 0x040, 3, 0x768, 0, NO_PAD_CTRL) |
1270 | #define MX53_PAD_KEY_ROW3__I2C2_SDA (_MX53_PAD_KEY_ROW3__I2C2_SDA | MUX_PAD_CTRL(PAD_CTRL_I2C)) | 96 | #define MX53_PAD_KEY_ROW3__I2C2_SDA IOMUX_PAD(0x368, 0x040, 4 | IOMUX_CONFIG_SION, 0x820, 0, NO_PAD_CTRL) |
1271 | #define MX53_PAD_KEY_ROW3__OSC32K_32K_OUT (_MX53_PAD_KEY_ROW3__OSC32K_32K_OUT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 97 | #define MX53_PAD_KEY_ROW3__OSC32K_32K_OUT IOMUX_PAD(0x368, 0x040, 5, __NA_, 0, NO_PAD_CTRL) |
1272 | #define MX53_PAD_KEY_ROW3__CCM_PLL4_BYP (_MX53_PAD_KEY_ROW3__CCM_PLL4_BYP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 98 | #define MX53_PAD_KEY_ROW3__CCM_PLL4_BYP IOMUX_PAD(0x368, 0x040, 6, 0x77C, 0, NO_PAD_CTRL) |
1273 | #define MX53_PAD_KEY_ROW3__USBPHY1_LINESTATE_0 (_MX53_PAD_KEY_ROW3__USBPHY1_LINESTATE_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 99 | #define MX53_PAD_KEY_ROW3__USBPHY1_LINESTATE_0 IOMUX_PAD(0x368, 0x040, 7, __NA_, 0, NO_PAD_CTRL) |
1274 | #define MX53_PAD_KEY_COL4__KPP_COL_4 (_MX53_PAD_KEY_COL4__KPP_COL_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 100 | #define MX53_PAD_KEY_COL4__KPP_COL_4 IOMUX_PAD(0x36C, 0x044, 0, __NA_, 0, NO_PAD_CTRL) |
1275 | #define MX53_PAD_KEY_COL4__GPIO4_14 (_MX53_PAD_KEY_COL4__GPIO4_14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 101 | #define MX53_PAD_KEY_COL4__GPIO4_14 IOMUX_PAD(0x36C, 0x044, 1, __NA_, 0, NO_PAD_CTRL) |
1276 | #define MX53_PAD_KEY_COL4__CAN2_TXCAN (_MX53_PAD_KEY_COL4__CAN2_TXCAN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 102 | #define MX53_PAD_KEY_COL4__CAN2_TXCAN IOMUX_PAD(0x36C, 0x044, 2, __NA_, 0, NO_PAD_CTRL) |
1277 | #define MX53_PAD_KEY_COL4__IPU_SISG_4 (_MX53_PAD_KEY_COL4__IPU_SISG_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 103 | #define MX53_PAD_KEY_COL4__IPU_SISG_4 IOMUX_PAD(0x36C, 0x044, 3, __NA_, 0, NO_PAD_CTRL) |
1278 | #define MX53_PAD_KEY_COL4__UART5_RTS (_MX53_PAD_KEY_COL4__UART5_RTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 104 | #define MX53_PAD_KEY_COL4__UART5_RTS IOMUX_PAD(0x36C, 0x044, 4, 0x894, 0, MX53_UART_PAD_CTRL) |
1279 | #define MX53_PAD_KEY_COL4__USBOH3_USBOTG_OC (_MX53_PAD_KEY_COL4__USBOH3_USBOTG_OC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 105 | #define MX53_PAD_KEY_COL4__USBOH3_USBOTG_OC IOMUX_PAD(0x36C, 0x044, 5, 0x89C, 0, NO_PAD_CTRL) |
1280 | #define MX53_PAD_KEY_COL4__USBPHY1_LINESTATE_1 (_MX53_PAD_KEY_COL4__USBPHY1_LINESTATE_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 106 | #define MX53_PAD_KEY_COL4__USBPHY1_LINESTATE_1 IOMUX_PAD(0x36C, 0x044, 7, __NA_, 0, NO_PAD_CTRL) |
1281 | #define MX53_PAD_KEY_ROW4__KPP_ROW_4 (_MX53_PAD_KEY_ROW4__KPP_ROW_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 107 | #define MX53_PAD_KEY_ROW4__KPP_ROW_4 IOMUX_PAD(0x370, 0x048, 0, __NA_, 0, NO_PAD_CTRL) |
1282 | #define MX53_PAD_KEY_ROW4__GPIO4_15 (_MX53_PAD_KEY_ROW4__GPIO4_15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 108 | #define MX53_PAD_KEY_ROW4__GPIO4_15 IOMUX_PAD(0x370, 0x048, 1, __NA_, 0, NO_PAD_CTRL) |
1283 | #define MX53_PAD_KEY_ROW4__CAN2_RXCAN (_MX53_PAD_KEY_ROW4__CAN2_RXCAN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 109 | #define MX53_PAD_KEY_ROW4__CAN2_RXCAN IOMUX_PAD(0x370, 0x048, 2, 0x764, 0, NO_PAD_CTRL) |
1284 | #define MX53_PAD_KEY_ROW4__IPU_SISG_5 (_MX53_PAD_KEY_ROW4__IPU_SISG_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 110 | #define MX53_PAD_KEY_ROW4__IPU_SISG_5 IOMUX_PAD(0x370, 0x048, 3, __NA_, 0, NO_PAD_CTRL) |
1285 | #define MX53_PAD_KEY_ROW4__UART5_CTS (_MX53_PAD_KEY_ROW4__UART5_CTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 111 | #define MX53_PAD_KEY_ROW4__UART5_CTS IOMUX_PAD(0x370, 0x048, 4, __NA_, 0, MX53_UART_PAD_CTRL) |
1286 | #define MX53_PAD_KEY_ROW4__USBOH3_USBOTG_PWR (_MX53_PAD_KEY_ROW4__USBOH3_USBOTG_PWR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 112 | #define MX53_PAD_KEY_ROW4__USBOH3_USBOTG_PWR IOMUX_PAD(0x370, 0x048, 5, __NA_, 0, NO_PAD_CTRL) |
1287 | #define MX53_PAD_KEY_ROW4__USBPHY1_VBUSVALID (_MX53_PAD_KEY_ROW4__USBPHY1_VBUSVALID | MUX_PAD_CTRL(NO_PAD_CTRL)) | 113 | #define MX53_PAD_KEY_ROW4__USBPHY1_VBUSVALID IOMUX_PAD(0x370, 0x048, 7, __NA_, 0, NO_PAD_CTRL) |
1288 | #define MX53_PAD_DI0_DISP_CLK__IPU_DI0_DISP_CLK (_MX53_PAD_DI0_DISP_CLK__IPU_DI0_DISP_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 114 | #define MX53_PAD_DI0_DISP_CLK__IPU_DI0_DISP_CLK IOMUX_PAD(0x378, 0x04C, 0, __NA_, 0, NO_PAD_CTRL) |
1289 | #define MX53_PAD_DI0_DISP_CLK__GPIO4_16 (_MX53_PAD_DI0_DISP_CLK__GPIO4_16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 115 | #define MX53_PAD_DI0_DISP_CLK__GPIO4_16 IOMUX_PAD(0x378, 0x04C, 1, __NA_, 0, NO_PAD_CTRL) |
1290 | #define MX53_PAD_DI0_DISP_CLK__USBOH3_USBH2_DIR (_MX53_PAD_DI0_DISP_CLK__USBOH3_USBH2_DIR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 116 | #define MX53_PAD_DI0_DISP_CLK__USBOH3_USBH2_DIR IOMUX_PAD(0x378, 0x04C, 2, __NA_, 0, NO_PAD_CTRL) |
1291 | #define MX53_PAD_DI0_DISP_CLK__SDMA_DEBUG_CORE_STATE_0 (_MX53_PAD_DI0_DISP_CLK__SDMA_DEBUG_CORE_STATE_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 117 | #define MX53_PAD_DI0_DISP_CLK__SDMA_DEBUG_CORE_STATE_0 IOMUX_PAD(0x378, 0x04C, 5, __NA_, 0, NO_PAD_CTRL) |
1292 | #define MX53_PAD_DI0_DISP_CLK__EMI_EMI_DEBUG_0 (_MX53_PAD_DI0_DISP_CLK__EMI_EMI_DEBUG_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 118 | #define MX53_PAD_DI0_DISP_CLK__EMI_EMI_DEBUG_0 IOMUX_PAD(0x378, 0x04C, 6, __NA_, 0, NO_PAD_CTRL) |
1293 | #define MX53_PAD_DI0_DISP_CLK__USBPHY1_AVALID (_MX53_PAD_DI0_DISP_CLK__USBPHY1_AVALID | MUX_PAD_CTRL(NO_PAD_CTRL)) | 119 | #define MX53_PAD_DI0_DISP_CLK__USBPHY1_AVALID IOMUX_PAD(0x378, 0x04C, 7, __NA_, 0, NO_PAD_CTRL) |
1294 | #define MX53_PAD_DI0_PIN15__IPU_DI0_PIN15 (_MX53_PAD_DI0_PIN15__IPU_DI0_PIN15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 120 | #define MX53_PAD_DI0_PIN15__IPU_DI0_PIN15 IOMUX_PAD(0x37C, 0x050, 0, __NA_, 0, NO_PAD_CTRL) |
1295 | #define MX53_PAD_DI0_PIN15__GPIO4_17 (_MX53_PAD_DI0_PIN15__GPIO4_17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 121 | #define MX53_PAD_DI0_PIN15__GPIO4_17 IOMUX_PAD(0x37C, 0x050, 1, __NA_, 0, NO_PAD_CTRL) |
1296 | #define MX53_PAD_DI0_PIN15__AUDMUX_AUD6_TXC (_MX53_PAD_DI0_PIN15__AUDMUX_AUD6_TXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 122 | #define MX53_PAD_DI0_PIN15__AUDMUX_AUD6_TXC IOMUX_PAD(0x37C, 0x050, 2, __NA_, 0, NO_PAD_CTRL) |
1297 | #define MX53_PAD_DI0_PIN15__SDMA_DEBUG_CORE_STATE_1 (_MX53_PAD_DI0_PIN15__SDMA_DEBUG_CORE_STATE_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 123 | #define MX53_PAD_DI0_PIN15__SDMA_DEBUG_CORE_STATE_1 IOMUX_PAD(0x37C, 0x050, 5, __NA_, 0, NO_PAD_CTRL) |
1298 | #define MX53_PAD_DI0_PIN15__EMI_EMI_DEBUG_1 (_MX53_PAD_DI0_PIN15__EMI_EMI_DEBUG_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 124 | #define MX53_PAD_DI0_PIN15__EMI_EMI_DEBUG_1 IOMUX_PAD(0x37C, 0x050, 6, __NA_, 0, NO_PAD_CTRL) |
1299 | #define MX53_PAD_DI0_PIN15__USBPHY1_BVALID (_MX53_PAD_DI0_PIN15__USBPHY1_BVALID | MUX_PAD_CTRL(NO_PAD_CTRL)) | 125 | #define MX53_PAD_DI0_PIN15__USBPHY1_BVALID IOMUX_PAD(0x37C, 0x050, 7, __NA_, 0, NO_PAD_CTRL) |
1300 | #define MX53_PAD_DI0_PIN2__IPU_DI0_PIN2 (_MX53_PAD_DI0_PIN2__IPU_DI0_PIN2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 126 | #define MX53_PAD_DI0_PIN2__IPU_DI0_PIN2 IOMUX_PAD(0x380, 0x054, 0, __NA_, 0, NO_PAD_CTRL) |
1301 | #define MX53_PAD_DI0_PIN2__GPIO4_18 (_MX53_PAD_DI0_PIN2__GPIO4_18 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 127 | #define MX53_PAD_DI0_PIN2__GPIO4_18 IOMUX_PAD(0x380, 0x054, 1, __NA_, 0, NO_PAD_CTRL) |
1302 | #define MX53_PAD_DI0_PIN2__AUDMUX_AUD6_TXD (_MX53_PAD_DI0_PIN2__AUDMUX_AUD6_TXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 128 | #define MX53_PAD_DI0_PIN2__AUDMUX_AUD6_TXD IOMUX_PAD(0x380, 0x054, 2, __NA_, 0, NO_PAD_CTRL) |
1303 | #define MX53_PAD_DI0_PIN2__SDMA_DEBUG_CORE_STATE_2 (_MX53_PAD_DI0_PIN2__SDMA_DEBUG_CORE_STATE_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 129 | #define MX53_PAD_DI0_PIN2__SDMA_DEBUG_CORE_STATE_2 IOMUX_PAD(0x380, 0x054, 5, __NA_, 0, NO_PAD_CTRL) |
1304 | #define MX53_PAD_DI0_PIN2__EMI_EMI_DEBUG_2 (_MX53_PAD_DI0_PIN2__EMI_EMI_DEBUG_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 130 | #define MX53_PAD_DI0_PIN2__EMI_EMI_DEBUG_2 IOMUX_PAD(0x380, 0x054, 6, __NA_, 0, NO_PAD_CTRL) |
1305 | #define MX53_PAD_DI0_PIN2__USBPHY1_ENDSESSION (_MX53_PAD_DI0_PIN2__USBPHY1_ENDSESSION | MUX_PAD_CTRL(NO_PAD_CTRL)) | 131 | #define MX53_PAD_DI0_PIN2__USBPHY1_ENDSESSION IOMUX_PAD(0x380, 0x054, 7, __NA_, 0, NO_PAD_CTRL) |
1306 | #define MX53_PAD_DI0_PIN3__IPU_DI0_PIN3 (_MX53_PAD_DI0_PIN3__IPU_DI0_PIN3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 132 | #define MX53_PAD_DI0_PIN3__IPU_DI0_PIN3 IOMUX_PAD(0x384, 0x058, 0, __NA_, 0, NO_PAD_CTRL) |
1307 | #define MX53_PAD_DI0_PIN3__GPIO4_19 (_MX53_PAD_DI0_PIN3__GPIO4_19 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 133 | #define MX53_PAD_DI0_PIN3__GPIO4_19 IOMUX_PAD(0x384, 0x058, 1, __NA_, 0, NO_PAD_CTRL) |
1308 | #define MX53_PAD_DI0_PIN3__AUDMUX_AUD6_TXFS (_MX53_PAD_DI0_PIN3__AUDMUX_AUD6_TXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 134 | #define MX53_PAD_DI0_PIN3__AUDMUX_AUD6_TXFS IOMUX_PAD(0x384, 0x058, 2, __NA_, 0, NO_PAD_CTRL) |
1309 | #define MX53_PAD_DI0_PIN3__SDMA_DEBUG_CORE_STATE_3 (_MX53_PAD_DI0_PIN3__SDMA_DEBUG_CORE_STATE_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 135 | #define MX53_PAD_DI0_PIN3__SDMA_DEBUG_CORE_STATE_3 IOMUX_PAD(0x384, 0x058, 5, __NA_, 0, NO_PAD_CTRL) |
1310 | #define MX53_PAD_DI0_PIN3__EMI_EMI_DEBUG_3 (_MX53_PAD_DI0_PIN3__EMI_EMI_DEBUG_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 136 | #define MX53_PAD_DI0_PIN3__EMI_EMI_DEBUG_3 IOMUX_PAD(0x384, 0x058, 6, __NA_, 0, NO_PAD_CTRL) |
1311 | #define MX53_PAD_DI0_PIN3__USBPHY1_IDDIG (_MX53_PAD_DI0_PIN3__USBPHY1_IDDIG | MUX_PAD_CTRL(NO_PAD_CTRL)) | 137 | #define MX53_PAD_DI0_PIN3__USBPHY1_IDDIG IOMUX_PAD(0x384, 0x058, 7, __NA_, 0, NO_PAD_CTRL) |
1312 | #define MX53_PAD_DI0_PIN4__IPU_DI0_PIN4 (_MX53_PAD_DI0_PIN4__IPU_DI0_PIN4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 138 | #define MX53_PAD_DI0_PIN4__IPU_DI0_PIN4 IOMUX_PAD(0x388, 0x05C, 0, __NA_, 0, NO_PAD_CTRL) |
1313 | #define MX53_PAD_DI0_PIN4__GPIO4_20 (_MX53_PAD_DI0_PIN4__GPIO4_20 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 139 | #define MX53_PAD_DI0_PIN4__GPIO4_20 IOMUX_PAD(0x388, 0x05C, 1, __NA_, 0, NO_PAD_CTRL) |
1314 | #define MX53_PAD_DI0_PIN4__AUDMUX_AUD6_RXD (_MX53_PAD_DI0_PIN4__AUDMUX_AUD6_RXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 140 | #define MX53_PAD_DI0_PIN4__AUDMUX_AUD6_RXD IOMUX_PAD(0x388, 0x05C, 2, __NA_, 0, NO_PAD_CTRL) |
1315 | #define MX53_PAD_DI0_PIN4__ESDHC1_WP (_MX53_PAD_DI0_PIN4__ESDHC1_WP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 141 | #define MX53_PAD_DI0_PIN4__ESDHC1_WP IOMUX_PAD(0x388, 0x05C, 3, 0x7FC, 0, NO_PAD_CTRL) |
1316 | #define MX53_PAD_DI0_PIN4__SDMA_DEBUG_YIELD (_MX53_PAD_DI0_PIN4__SDMA_DEBUG_YIELD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 142 | #define MX53_PAD_DI0_PIN4__SDMA_DEBUG_YIELD IOMUX_PAD(0x388, 0x05C, 5, __NA_, 0, NO_PAD_CTRL) |
1317 | #define MX53_PAD_DI0_PIN4__EMI_EMI_DEBUG_4 (_MX53_PAD_DI0_PIN4__EMI_EMI_DEBUG_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 143 | #define MX53_PAD_DI0_PIN4__EMI_EMI_DEBUG_4 IOMUX_PAD(0x388, 0x05C, 6, __NA_, 0, NO_PAD_CTRL) |
1318 | #define MX53_PAD_DI0_PIN4__USBPHY1_HOSTDISCONNECT (_MX53_PAD_DI0_PIN4__USBPHY1_HOSTDISCONNECT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 144 | #define MX53_PAD_DI0_PIN4__USBPHY1_HOSTDISCONNECT IOMUX_PAD(0x388, 0x05C, 7, __NA_, 0, NO_PAD_CTRL) |
1319 | #define MX53_PAD_DISP0_DAT0__IPU_DISP0_DAT_0 (_MX53_PAD_DISP0_DAT0__IPU_DISP0_DAT_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 145 | #define MX53_PAD_DISP0_DAT0__IPU_DISP0_DAT_0 IOMUX_PAD(0x38C, 0x060, 0, __NA_, 0, NO_PAD_CTRL) |
1320 | #define MX53_PAD_DISP0_DAT0__GPIO4_21 (_MX53_PAD_DISP0_DAT0__GPIO4_21 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 146 | #define MX53_PAD_DISP0_DAT0__GPIO4_21 IOMUX_PAD(0x38C, 0x060, 1, __NA_, 0, NO_PAD_CTRL) |
1321 | #define MX53_PAD_DISP0_DAT0__CSPI_SCLK (_MX53_PAD_DISP0_DAT0__CSPI_SCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 147 | #define MX53_PAD_DISP0_DAT0__CSPI_SCLK IOMUX_PAD(0x38C, 0x060, 2, 0x780, 0, NO_PAD_CTRL) |
1322 | #define MX53_PAD_DISP0_DAT0__USBOH3_USBH2_DATA_0 (_MX53_PAD_DISP0_DAT0__USBOH3_USBH2_DATA_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 148 | #define MX53_PAD_DISP0_DAT0__USBOH3_USBH2_DATA_0 IOMUX_PAD(0x38C, 0x060, 3, __NA_, 0, NO_PAD_CTRL) |
1323 | #define MX53_PAD_DISP0_DAT0__SDMA_DEBUG_CORE_RUN (_MX53_PAD_DISP0_DAT0__SDMA_DEBUG_CORE_RUN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 149 | #define MX53_PAD_DISP0_DAT0__SDMA_DEBUG_CORE_RUN IOMUX_PAD(0x38C, 0x060, 5, __NA_, 0, NO_PAD_CTRL) |
1324 | #define MX53_PAD_DISP0_DAT0__EMI_EMI_DEBUG_5 (_MX53_PAD_DISP0_DAT0__EMI_EMI_DEBUG_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 150 | #define MX53_PAD_DISP0_DAT0__EMI_EMI_DEBUG_5 IOMUX_PAD(0x38C, 0x060, 6, __NA_, 0, NO_PAD_CTRL) |
1325 | #define MX53_PAD_DISP0_DAT0__USBPHY2_TXREADY (_MX53_PAD_DISP0_DAT0__USBPHY2_TXREADY | MUX_PAD_CTRL(NO_PAD_CTRL)) | 151 | #define MX53_PAD_DISP0_DAT0__USBPHY2_TXREADY IOMUX_PAD(0x38C, 0x060, 7, __NA_, 0, NO_PAD_CTRL) |
1326 | #define MX53_PAD_DISP0_DAT1__IPU_DISP0_DAT_1 (_MX53_PAD_DISP0_DAT1__IPU_DISP0_DAT_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 152 | #define MX53_PAD_DISP0_DAT1__IPU_DISP0_DAT_1 IOMUX_PAD(0x390, 0x064, 0, __NA_, 0, NO_PAD_CTRL) |
1327 | #define MX53_PAD_DISP0_DAT1__GPIO4_22 (_MX53_PAD_DISP0_DAT1__GPIO4_22 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 153 | #define MX53_PAD_DISP0_DAT1__GPIO4_22 IOMUX_PAD(0x390, 0x064, 1, __NA_, 0, NO_PAD_CTRL) |
1328 | #define MX53_PAD_DISP0_DAT1__CSPI_MOSI (_MX53_PAD_DISP0_DAT1__CSPI_MOSI | MUX_PAD_CTRL(NO_PAD_CTRL)) | 154 | #define MX53_PAD_DISP0_DAT1__CSPI_MOSI IOMUX_PAD(0x390, 0x064, 2, 0x788, 0, NO_PAD_CTRL) |
1329 | #define MX53_PAD_DISP0_DAT1__USBOH3_USBH2_DATA_1 (_MX53_PAD_DISP0_DAT1__USBOH3_USBH2_DATA_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 155 | #define MX53_PAD_DISP0_DAT1__USBOH3_USBH2_DATA_1 IOMUX_PAD(0x390, 0x064, 3, __NA_, 0, NO_PAD_CTRL) |
1330 | #define MX53_PAD_DISP0_DAT1__SDMA_DEBUG_EVENT_CHANNEL_SEL (_MX53_PAD_DISP0_DAT1__SDMA_DEBUG_EVENT_CHANNEL_SEL | MUX_PAD_CTRL(NO_PAD_CTRL)) | 156 | #define MX53_PAD_DISP0_DAT1__SDMA_DEBUG_EVENT_CHANNEL_SEL \ |
1331 | #define MX53_PAD_DISP0_DAT1__EMI_EMI_DEBUG_6 (_MX53_PAD_DISP0_DAT1__EMI_EMI_DEBUG_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 157 | IOMUX_PAD(0x390, 0x064, 5, __NA_, 0, NO_PAD_CTRL) |
1332 | #define MX53_PAD_DISP0_DAT1__USBPHY2_RXVALID (_MX53_PAD_DISP0_DAT1__USBPHY2_RXVALID | MUX_PAD_CTRL(NO_PAD_CTRL)) | 158 | #define MX53_PAD_DISP0_DAT1__EMI_EMI_DEBUG_6 IOMUX_PAD(0x390, 0x064, 6, __NA_, 0, NO_PAD_CTRL) |
1333 | #define MX53_PAD_DISP0_DAT2__IPU_DISP0_DAT_2 (_MX53_PAD_DISP0_DAT2__IPU_DISP0_DAT_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 159 | #define MX53_PAD_DISP0_DAT1__USBPHY2_RXVALID IOMUX_PAD(0x390, 0x064, 7, __NA_, 0, NO_PAD_CTRL) |
1334 | #define MX53_PAD_DISP0_DAT2__GPIO4_23 (_MX53_PAD_DISP0_DAT2__GPIO4_23 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 160 | #define MX53_PAD_DISP0_DAT2__IPU_DISP0_DAT_2 IOMUX_PAD(0x394, 0x068, 0, __NA_, 0, NO_PAD_CTRL) |
1335 | #define MX53_PAD_DISP0_DAT2__CSPI_MISO (_MX53_PAD_DISP0_DAT2__CSPI_MISO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 161 | #define MX53_PAD_DISP0_DAT2__GPIO4_23 IOMUX_PAD(0x394, 0x068, 1, __NA_, 0, NO_PAD_CTRL) |
1336 | #define MX53_PAD_DISP0_DAT2__USBOH3_USBH2_DATA_2 (_MX53_PAD_DISP0_DAT2__USBOH3_USBH2_DATA_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 162 | #define MX53_PAD_DISP0_DAT2__CSPI_MISO IOMUX_PAD(0x394, 0x068, 2, 0x784, 0, NO_PAD_CTRL) |
1337 | #define MX53_PAD_DISP0_DAT2__SDMA_DEBUG_MODE (_MX53_PAD_DISP0_DAT2__SDMA_DEBUG_MODE | MUX_PAD_CTRL(NO_PAD_CTRL)) | 163 | #define MX53_PAD_DISP0_DAT2__USBOH3_USBH2_DATA_2 IOMUX_PAD(0x394, 0x068, 3, __NA_, 0, NO_PAD_CTRL) |
1338 | #define MX53_PAD_DISP0_DAT2__EMI_EMI_DEBUG_7 (_MX53_PAD_DISP0_DAT2__EMI_EMI_DEBUG_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 164 | #define MX53_PAD_DISP0_DAT2__SDMA_DEBUG_MODE IOMUX_PAD(0x394, 0x068, 5, __NA_, 0, NO_PAD_CTRL) |
1339 | #define MX53_PAD_DISP0_DAT2__USBPHY2_RXACTIVE (_MX53_PAD_DISP0_DAT2__USBPHY2_RXACTIVE | MUX_PAD_CTRL(NO_PAD_CTRL)) | 165 | #define MX53_PAD_DISP0_DAT2__EMI_EMI_DEBUG_7 IOMUX_PAD(0x394, 0x068, 6, __NA_, 0, NO_PAD_CTRL) |
1340 | #define MX53_PAD_DISP0_DAT3__IPU_DISP0_DAT_3 (_MX53_PAD_DISP0_DAT3__IPU_DISP0_DAT_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 166 | #define MX53_PAD_DISP0_DAT2__USBPHY2_RXACTIVE IOMUX_PAD(0x394, 0x068, 7, __NA_, 0, NO_PAD_CTRL) |
1341 | #define MX53_PAD_DISP0_DAT3__GPIO4_24 (_MX53_PAD_DISP0_DAT3__GPIO4_24 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 167 | #define MX53_PAD_DISP0_DAT3__IPU_DISP0_DAT_3 IOMUX_PAD(0x398, 0x06C, 0, __NA_, 0, NO_PAD_CTRL) |
1342 | #define MX53_PAD_DISP0_DAT3__CSPI_SS0 (_MX53_PAD_DISP0_DAT3__CSPI_SS0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 168 | #define MX53_PAD_DISP0_DAT3__GPIO4_24 IOMUX_PAD(0x398, 0x06C, 1, __NA_, 0, NO_PAD_CTRL) |
1343 | #define MX53_PAD_DISP0_DAT3__USBOH3_USBH2_DATA_3 (_MX53_PAD_DISP0_DAT3__USBOH3_USBH2_DATA_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 169 | #define MX53_PAD_DISP0_DAT3__CSPI_SS0 IOMUX_PAD(0x398, 0x06C, 2, 0x78C, 0, NO_PAD_CTRL) |
1344 | #define MX53_PAD_DISP0_DAT3__SDMA_DEBUG_BUS_ERROR (_MX53_PAD_DISP0_DAT3__SDMA_DEBUG_BUS_ERROR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 170 | #define MX53_PAD_DISP0_DAT3__USBOH3_USBH2_DATA_3 IOMUX_PAD(0x398, 0x06C, 3, __NA_, 0, NO_PAD_CTRL) |
1345 | #define MX53_PAD_DISP0_DAT3__EMI_EMI_DEBUG_8 (_MX53_PAD_DISP0_DAT3__EMI_EMI_DEBUG_8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 171 | #define MX53_PAD_DISP0_DAT3__SDMA_DEBUG_BUS_ERROR IOMUX_PAD(0x398, 0x06C, 5, __NA_, 0, NO_PAD_CTRL) |
1346 | #define MX53_PAD_DISP0_DAT3__USBPHY2_RXERROR (_MX53_PAD_DISP0_DAT3__USBPHY2_RXERROR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 172 | #define MX53_PAD_DISP0_DAT3__EMI_EMI_DEBUG_8 IOMUX_PAD(0x398, 0x06C, 6, __NA_, 0, NO_PAD_CTRL) |
1347 | #define MX53_PAD_DISP0_DAT4__IPU_DISP0_DAT_4 (_MX53_PAD_DISP0_DAT4__IPU_DISP0_DAT_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 173 | #define MX53_PAD_DISP0_DAT3__USBPHY2_RXERROR IOMUX_PAD(0x398, 0x06C, 7, __NA_, 0, NO_PAD_CTRL) |
1348 | #define MX53_PAD_DISP0_DAT4__GPIO4_25 (_MX53_PAD_DISP0_DAT4__GPIO4_25 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 174 | #define MX53_PAD_DISP0_DAT4__IPU_DISP0_DAT_4 IOMUX_PAD(0x39C, 0x070, 0, __NA_, 0, NO_PAD_CTRL) |
1349 | #define MX53_PAD_DISP0_DAT4__CSPI_SS1 (_MX53_PAD_DISP0_DAT4__CSPI_SS1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 175 | #define MX53_PAD_DISP0_DAT4__GPIO4_25 IOMUX_PAD(0x39C, 0x070, 1, __NA_, 0, NO_PAD_CTRL) |
1350 | #define MX53_PAD_DISP0_DAT4__USBOH3_USBH2_DATA_4 (_MX53_PAD_DISP0_DAT4__USBOH3_USBH2_DATA_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 176 | #define MX53_PAD_DISP0_DAT4__CSPI_SS1 IOMUX_PAD(0x39C, 0x070, 2, 0x790, 0, NO_PAD_CTRL) |
1351 | #define MX53_PAD_DISP0_DAT4__SDMA_DEBUG_BUS_RWB (_MX53_PAD_DISP0_DAT4__SDMA_DEBUG_BUS_RWB | MUX_PAD_CTRL(NO_PAD_CTRL)) | 177 | #define MX53_PAD_DISP0_DAT4__USBOH3_USBH2_DATA_4 IOMUX_PAD(0x39C, 0x070, 3, __NA_, 0, NO_PAD_CTRL) |
1352 | #define MX53_PAD_DISP0_DAT4__EMI_EMI_DEBUG_9 (_MX53_PAD_DISP0_DAT4__EMI_EMI_DEBUG_9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 178 | #define MX53_PAD_DISP0_DAT4__SDMA_DEBUG_BUS_RWB IOMUX_PAD(0x39C, 0x070, 5, __NA_, 0, NO_PAD_CTRL) |
1353 | #define MX53_PAD_DISP0_DAT4__USBPHY2_SIECLOCK (_MX53_PAD_DISP0_DAT4__USBPHY2_SIECLOCK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 179 | #define MX53_PAD_DISP0_DAT4__EMI_EMI_DEBUG_9 IOMUX_PAD(0x39C, 0x070, 6, __NA_, 0, NO_PAD_CTRL) |
1354 | #define MX53_PAD_DISP0_DAT5__IPU_DISP0_DAT_5 (_MX53_PAD_DISP0_DAT5__IPU_DISP0_DAT_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 180 | #define MX53_PAD_DISP0_DAT4__USBPHY2_SIECLOCK IOMUX_PAD(0x39C, 0x070, 7, __NA_, 0, NO_PAD_CTRL) |
1355 | #define MX53_PAD_DISP0_DAT5__GPIO4_26 (_MX53_PAD_DISP0_DAT5__GPIO4_26 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 181 | #define MX53_PAD_DISP0_DAT5__IPU_DISP0_DAT_5 IOMUX_PAD(0x3A0, 0x074, 0, __NA_, 0, NO_PAD_CTRL) |
1356 | #define MX53_PAD_DISP0_DAT5__CSPI_SS2 (_MX53_PAD_DISP0_DAT5__CSPI_SS2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 182 | #define MX53_PAD_DISP0_DAT5__GPIO4_26 IOMUX_PAD(0x3A0, 0x074, 1, __NA_, 0, NO_PAD_CTRL) |
1357 | #define MX53_PAD_DISP0_DAT5__USBOH3_USBH2_DATA_5 (_MX53_PAD_DISP0_DAT5__USBOH3_USBH2_DATA_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 183 | #define MX53_PAD_DISP0_DAT5__CSPI_SS2 IOMUX_PAD(0x3A0, 0x074, 2, 0x794, 0, NO_PAD_CTRL) |
1358 | #define MX53_PAD_DISP0_DAT5__SDMA_DEBUG_MATCHED_DMBUS (_MX53_PAD_DISP0_DAT5__SDMA_DEBUG_MATCHED_DMBUS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 184 | #define MX53_PAD_DISP0_DAT5__USBOH3_USBH2_DATA_5 IOMUX_PAD(0x3A0, 0x074, 3, __NA_, 0, NO_PAD_CTRL) |
1359 | #define MX53_PAD_DISP0_DAT5__EMI_EMI_DEBUG_10 (_MX53_PAD_DISP0_DAT5__EMI_EMI_DEBUG_10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 185 | #define MX53_PAD_DISP0_DAT5__SDMA_DEBUG_MATCHED_DMBUS IOMUX_PAD(0x3A0, 0x074, 5, __NA_, 0, NO_PAD_CTRL) |
1360 | #define MX53_PAD_DISP0_DAT5__USBPHY2_LINESTATE_0 (_MX53_PAD_DISP0_DAT5__USBPHY2_LINESTATE_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 186 | #define MX53_PAD_DISP0_DAT5__EMI_EMI_DEBUG_10 IOMUX_PAD(0x3A0, 0x074, 6, __NA_, 0, NO_PAD_CTRL) |
1361 | #define MX53_PAD_DISP0_DAT6__IPU_DISP0_DAT_6 (_MX53_PAD_DISP0_DAT6__IPU_DISP0_DAT_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 187 | #define MX53_PAD_DISP0_DAT5__USBPHY2_LINESTATE_0 IOMUX_PAD(0x3A0, 0x074, 7, __NA_, 0, NO_PAD_CTRL) |
1362 | #define MX53_PAD_DISP0_DAT6__GPIO4_27 (_MX53_PAD_DISP0_DAT6__GPIO4_27 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 188 | #define MX53_PAD_DISP0_DAT6__IPU_DISP0_DAT_6 IOMUX_PAD(0x3A4, 0x078, 0, __NA_, 0, NO_PAD_CTRL) |
1363 | #define MX53_PAD_DISP0_DAT6__CSPI_SS3 (_MX53_PAD_DISP0_DAT6__CSPI_SS3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 189 | #define MX53_PAD_DISP0_DAT6__GPIO4_27 IOMUX_PAD(0x3A4, 0x078, 1, __NA_, 0, NO_PAD_CTRL) |
1364 | #define MX53_PAD_DISP0_DAT6__USBOH3_USBH2_DATA_6 (_MX53_PAD_DISP0_DAT6__USBOH3_USBH2_DATA_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 190 | #define MX53_PAD_DISP0_DAT6__CSPI_SS3 IOMUX_PAD(0x3A4, 0x078, 2, 0x798, 0, NO_PAD_CTRL) |
1365 | #define MX53_PAD_DISP0_DAT6__SDMA_DEBUG_RTBUFFER_WRITE (_MX53_PAD_DISP0_DAT6__SDMA_DEBUG_RTBUFFER_WRITE | MUX_PAD_CTRL(NO_PAD_CTRL)) | 191 | #define MX53_PAD_DISP0_DAT6__USBOH3_USBH2_DATA_6 IOMUX_PAD(0x3A4, 0x078, 3, __NA_, 0, NO_PAD_CTRL) |
1366 | #define MX53_PAD_DISP0_DAT6__EMI_EMI_DEBUG_11 (_MX53_PAD_DISP0_DAT6__EMI_EMI_DEBUG_11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 192 | #define MX53_PAD_DISP0_DAT6__SDMA_DEBUG_RTBUFFER_WRITE IOMUX_PAD(0x3A4, 0x078, 5, __NA_, 0, NO_PAD_CTRL) |
1367 | #define MX53_PAD_DISP0_DAT6__USBPHY2_LINESTATE_1 (_MX53_PAD_DISP0_DAT6__USBPHY2_LINESTATE_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 193 | #define MX53_PAD_DISP0_DAT6__EMI_EMI_DEBUG_11 IOMUX_PAD(0x3A4, 0x078, 6, __NA_, 0, NO_PAD_CTRL) |
1368 | #define MX53_PAD_DISP0_DAT7__IPU_DISP0_DAT_7 (_MX53_PAD_DISP0_DAT7__IPU_DISP0_DAT_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 194 | #define MX53_PAD_DISP0_DAT6__USBPHY2_LINESTATE_1 IOMUX_PAD(0x3A4, 0x078, 7, __NA_, 0, NO_PAD_CTRL) |
1369 | #define MX53_PAD_DISP0_DAT7__GPIO4_28 (_MX53_PAD_DISP0_DAT7__GPIO4_28 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 195 | #define MX53_PAD_DISP0_DAT7__IPU_DISP0_DAT_7 IOMUX_PAD(0x3A8, 0x07C, 0, __NA_, 0, NO_PAD_CTRL) |
1370 | #define MX53_PAD_DISP0_DAT7__CSPI_RDY (_MX53_PAD_DISP0_DAT7__CSPI_RDY | MUX_PAD_CTRL(NO_PAD_CTRL)) | 196 | #define MX53_PAD_DISP0_DAT7__GPIO4_28 IOMUX_PAD(0x3A8, 0x07C, 1, __NA_, 0, NO_PAD_CTRL) |
1371 | #define MX53_PAD_DISP0_DAT7__USBOH3_USBH2_DATA_7 (_MX53_PAD_DISP0_DAT7__USBOH3_USBH2_DATA_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 197 | #define MX53_PAD_DISP0_DAT7__CSPI_RDY IOMUX_PAD(0x3A8, 0x07C, 2, __NA_, 0, NO_PAD_CTRL) |
1372 | #define MX53_PAD_DISP0_DAT7__SDMA_DEBUG_EVENT_CHANNEL_0 (_MX53_PAD_DISP0_DAT7__SDMA_DEBUG_EVENT_CHANNEL_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 198 | #define MX53_PAD_DISP0_DAT7__USBOH3_USBH2_DATA_7 IOMUX_PAD(0x3A8, 0x07C, 3, __NA_, 0, NO_PAD_CTRL) |
1373 | #define MX53_PAD_DISP0_DAT7__EMI_EMI_DEBUG_12 (_MX53_PAD_DISP0_DAT7__EMI_EMI_DEBUG_12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 199 | #define MX53_PAD_DISP0_DAT7__SDMA_DEBUG_EVENT_CHANNEL_0 IOMUX_PAD(0x3A8, 0x07C, 5, __NA_, 0, NO_PAD_CTRL) |
1374 | #define MX53_PAD_DISP0_DAT7__USBPHY2_VBUSVALID (_MX53_PAD_DISP0_DAT7__USBPHY2_VBUSVALID | MUX_PAD_CTRL(NO_PAD_CTRL)) | 200 | #define MX53_PAD_DISP0_DAT7__EMI_EMI_DEBUG_12 IOMUX_PAD(0x3A8, 0x07C, 6, __NA_, 0, NO_PAD_CTRL) |
1375 | #define MX53_PAD_DISP0_DAT8__IPU_DISP0_DAT_8 (_MX53_PAD_DISP0_DAT8__IPU_DISP0_DAT_8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 201 | #define MX53_PAD_DISP0_DAT7__USBPHY2_VBUSVALID IOMUX_PAD(0x3A8, 0x07C, 7, __NA_, 0, NO_PAD_CTRL) |
1376 | #define MX53_PAD_DISP0_DAT8__GPIO4_29 (_MX53_PAD_DISP0_DAT8__GPIO4_29 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 202 | #define MX53_PAD_DISP0_DAT8__IPU_DISP0_DAT_8 IOMUX_PAD(0x3AC, 0x080, 0, __NA_, 0, NO_PAD_CTRL) |
1377 | #define MX53_PAD_DISP0_DAT8__PWM1_PWMO (_MX53_PAD_DISP0_DAT8__PWM1_PWMO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 203 | #define MX53_PAD_DISP0_DAT8__GPIO4_29 IOMUX_PAD(0x3AC, 0x080, 1, __NA_, 0, NO_PAD_CTRL) |
1378 | #define MX53_PAD_DISP0_DAT8__WDOG1_WDOG_B (_MX53_PAD_DISP0_DAT8__WDOG1_WDOG_B | MUX_PAD_CTRL(NO_PAD_CTRL)) | 204 | #define MX53_PAD_DISP0_DAT8__PWM1_PWMO IOMUX_PAD(0x3AC, 0x080, 2, __NA_, 0, NO_PAD_CTRL) |
1379 | #define MX53_PAD_DISP0_DAT8__SDMA_DEBUG_EVENT_CHANNEL_1 (_MX53_PAD_DISP0_DAT8__SDMA_DEBUG_EVENT_CHANNEL_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 205 | #define MX53_PAD_DISP0_DAT8__WDOG1_WDOG_B IOMUX_PAD(0x3AC, 0x080, 3, __NA_, 0, NO_PAD_CTRL) |
1380 | #define MX53_PAD_DISP0_DAT8__EMI_EMI_DEBUG_13 (_MX53_PAD_DISP0_DAT8__EMI_EMI_DEBUG_13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 206 | #define MX53_PAD_DISP0_DAT8__SDMA_DEBUG_EVENT_CHANNEL_1 IOMUX_PAD(0x3AC, 0x080, 5, __NA_, 0, NO_PAD_CTRL) |
1381 | #define MX53_PAD_DISP0_DAT8__USBPHY2_AVALID (_MX53_PAD_DISP0_DAT8__USBPHY2_AVALID | MUX_PAD_CTRL(NO_PAD_CTRL)) | 207 | #define MX53_PAD_DISP0_DAT8__EMI_EMI_DEBUG_13 IOMUX_PAD(0x3AC, 0x080, 6, __NA_, 0, NO_PAD_CTRL) |
1382 | #define MX53_PAD_DISP0_DAT9__IPU_DISP0_DAT_9 (_MX53_PAD_DISP0_DAT9__IPU_DISP0_DAT_9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 208 | #define MX53_PAD_DISP0_DAT8__USBPHY2_AVALID IOMUX_PAD(0x3AC, 0x080, 7, __NA_, 0, NO_PAD_CTRL) |
1383 | #define MX53_PAD_DISP0_DAT9__GPIO4_30 (_MX53_PAD_DISP0_DAT9__GPIO4_30 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 209 | #define MX53_PAD_DISP0_DAT9__IPU_DISP0_DAT_9 IOMUX_PAD(0x3B0, 0x084, 0, __NA_, 0, NO_PAD_CTRL) |
1384 | #define MX53_PAD_DISP0_DAT9__PWM2_PWMO (_MX53_PAD_DISP0_DAT9__PWM2_PWMO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 210 | #define MX53_PAD_DISP0_DAT9__GPIO4_30 IOMUX_PAD(0x3B0, 0x084, 1, __NA_, 0, NO_PAD_CTRL) |
1385 | #define MX53_PAD_DISP0_DAT9__WDOG2_WDOG_B (_MX53_PAD_DISP0_DAT9__WDOG2_WDOG_B | MUX_PAD_CTRL(NO_PAD_CTRL)) | 211 | #define MX53_PAD_DISP0_DAT9__PWM2_PWMO IOMUX_PAD(0x3B0, 0x084, 2, __NA_, 0, NO_PAD_CTRL) |
1386 | #define MX53_PAD_DISP0_DAT9__SDMA_DEBUG_EVENT_CHANNEL_2 (_MX53_PAD_DISP0_DAT9__SDMA_DEBUG_EVENT_CHANNEL_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 212 | #define MX53_PAD_DISP0_DAT9__WDOG2_WDOG_B IOMUX_PAD(0x3B0, 0x084, 3, __NA_, 0, NO_PAD_CTRL) |
1387 | #define MX53_PAD_DISP0_DAT9__EMI_EMI_DEBUG_14 (_MX53_PAD_DISP0_DAT9__EMI_EMI_DEBUG_14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 213 | #define MX53_PAD_DISP0_DAT9__SDMA_DEBUG_EVENT_CHANNEL_2 IOMUX_PAD(0x3B0, 0x084, 5, __NA_, 0, NO_PAD_CTRL) |
1388 | #define MX53_PAD_DISP0_DAT9__USBPHY2_VSTATUS_0 (_MX53_PAD_DISP0_DAT9__USBPHY2_VSTATUS_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 214 | #define MX53_PAD_DISP0_DAT9__EMI_EMI_DEBUG_14 IOMUX_PAD(0x3B0, 0x084, 6, __NA_, 0, NO_PAD_CTRL) |
1389 | #define MX53_PAD_DISP0_DAT10__IPU_DISP0_DAT_10 (_MX53_PAD_DISP0_DAT10__IPU_DISP0_DAT_10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 215 | #define MX53_PAD_DISP0_DAT9__USBPHY2_VSTATUS_0 IOMUX_PAD(0x3B0, 0x084, 7, __NA_, 0, NO_PAD_CTRL) |
1390 | #define MX53_PAD_DISP0_DAT10__GPIO4_31 (_MX53_PAD_DISP0_DAT10__GPIO4_31 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 216 | #define MX53_PAD_DISP0_DAT10__IPU_DISP0_DAT_10 IOMUX_PAD(0x3B4, 0x088, 0, __NA_, 0, NO_PAD_CTRL) |
1391 | #define MX53_PAD_DISP0_DAT10__USBOH3_USBH2_STP (_MX53_PAD_DISP0_DAT10__USBOH3_USBH2_STP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 217 | #define MX53_PAD_DISP0_DAT10__GPIO4_31 IOMUX_PAD(0x3B4, 0x088, 1, __NA_, 0, NO_PAD_CTRL) |
1392 | #define MX53_PAD_DISP0_DAT10__SDMA_DEBUG_EVENT_CHANNEL_3 (_MX53_PAD_DISP0_DAT10__SDMA_DEBUG_EVENT_CHANNEL_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 218 | #define MX53_PAD_DISP0_DAT10__USBOH3_USBH2_STP IOMUX_PAD(0x3B4, 0x088, 2, __NA_, 0, NO_PAD_CTRL) |
1393 | #define MX53_PAD_DISP0_DAT10__EMI_EMI_DEBUG_15 (_MX53_PAD_DISP0_DAT10__EMI_EMI_DEBUG_15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 219 | #define MX53_PAD_DISP0_DAT10__SDMA_DEBUG_EVENT_CHANNEL_3 \ |
1394 | #define MX53_PAD_DISP0_DAT10__USBPHY2_VSTATUS_1 (_MX53_PAD_DISP0_DAT10__USBPHY2_VSTATUS_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 220 | IOMUX_PAD(0x3B4, 0x088, 5, __NA_, 0, NO_PAD_CTRL) |
1395 | #define MX53_PAD_DISP0_DAT11__IPU_DISP0_DAT_11 (_MX53_PAD_DISP0_DAT11__IPU_DISP0_DAT_11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 221 | #define MX53_PAD_DISP0_DAT10__EMI_EMI_DEBUG_15 IOMUX_PAD(0x3B4, 0x088, 6, __NA_, 0, NO_PAD_CTRL) |
1396 | #define MX53_PAD_DISP0_DAT11__GPIO5_5 (_MX53_PAD_DISP0_DAT11__GPIO5_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 222 | #define MX53_PAD_DISP0_DAT10__USBPHY2_VSTATUS_1 IOMUX_PAD(0x3B4, 0x088, 7, __NA_, 0, NO_PAD_CTRL) |
1397 | #define MX53_PAD_DISP0_DAT11__USBOH3_USBH2_NXT (_MX53_PAD_DISP0_DAT11__USBOH3_USBH2_NXT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 223 | #define MX53_PAD_DISP0_DAT11__IPU_DISP0_DAT_11 IOMUX_PAD(0x3B8, 0x08C, 0, __NA_, 0, NO_PAD_CTRL) |
1398 | #define MX53_PAD_DISP0_DAT11__SDMA_DEBUG_EVENT_CHANNEL_4 (_MX53_PAD_DISP0_DAT11__SDMA_DEBUG_EVENT_CHANNEL_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 224 | #define MX53_PAD_DISP0_DAT11__GPIO5_5 IOMUX_PAD(0x3B8, 0x08C, 1, __NA_, 0, NO_PAD_CTRL) |
1399 | #define MX53_PAD_DISP0_DAT11__EMI_EMI_DEBUG_16 (_MX53_PAD_DISP0_DAT11__EMI_EMI_DEBUG_16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 225 | #define MX53_PAD_DISP0_DAT11__USBOH3_USBH2_NXT IOMUX_PAD(0x3B8, 0x08C, 2, __NA_, 0, NO_PAD_CTRL) |
1400 | #define MX53_PAD_DISP0_DAT11__USBPHY2_VSTATUS_2 (_MX53_PAD_DISP0_DAT11__USBPHY2_VSTATUS_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 226 | #define MX53_PAD_DISP0_DAT11__SDMA_DEBUG_EVENT_CHANNEL_4 \ |
1401 | #define MX53_PAD_DISP0_DAT12__IPU_DISP0_DAT_12 (_MX53_PAD_DISP0_DAT12__IPU_DISP0_DAT_12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 227 | IOMUX_PAD(0x3B8, 0x08C, 5, __NA_, 0, NO_PAD_CTRL) |
1402 | #define MX53_PAD_DISP0_DAT12__GPIO5_6 (_MX53_PAD_DISP0_DAT12__GPIO5_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 228 | #define MX53_PAD_DISP0_DAT11__EMI_EMI_DEBUG_16 IOMUX_PAD(0x3B8, 0x08C, 6, __NA_, 0, NO_PAD_CTRL) |
1403 | #define MX53_PAD_DISP0_DAT12__USBOH3_USBH2_CLK (_MX53_PAD_DISP0_DAT12__USBOH3_USBH2_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 229 | #define MX53_PAD_DISP0_DAT11__USBPHY2_VSTATUS_2 IOMUX_PAD(0x3B8, 0x08C, 7, __NA_, 0, NO_PAD_CTRL) |
1404 | #define MX53_PAD_DISP0_DAT12__SDMA_DEBUG_EVENT_CHANNEL_5 (_MX53_PAD_DISP0_DAT12__SDMA_DEBUG_EVENT_CHANNEL_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 230 | #define MX53_PAD_DISP0_DAT12__IPU_DISP0_DAT_12 IOMUX_PAD(0x3BC, 0x090, 0, __NA_, 0, NO_PAD_CTRL) |
1405 | #define MX53_PAD_DISP0_DAT12__EMI_EMI_DEBUG_17 (_MX53_PAD_DISP0_DAT12__EMI_EMI_DEBUG_17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 231 | #define MX53_PAD_DISP0_DAT12__GPIO5_6 IOMUX_PAD(0x3BC, 0x090, 1, __NA_, 0, NO_PAD_CTRL) |
1406 | #define MX53_PAD_DISP0_DAT12__USBPHY2_VSTATUS_3 (_MX53_PAD_DISP0_DAT12__USBPHY2_VSTATUS_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 232 | #define MX53_PAD_DISP0_DAT12__USBOH3_USBH2_CLK IOMUX_PAD(0x3BC, 0x090, 2, __NA_, 0, NO_PAD_CTRL) |
1407 | #define MX53_PAD_DISP0_DAT13__IPU_DISP0_DAT_13 (_MX53_PAD_DISP0_DAT13__IPU_DISP0_DAT_13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 233 | #define MX53_PAD_DISP0_DAT12__SDMA_DEBUG_EVENT_CHANNEL_5 \ |
1408 | #define MX53_PAD_DISP0_DAT13__GPIO5_7 (_MX53_PAD_DISP0_DAT13__GPIO5_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 234 | IOMUX_PAD(0x3BC, 0x090, 5, __NA_, 0, NO_PAD_CTRL) |
1409 | #define MX53_PAD_DISP0_DAT13__AUDMUX_AUD5_RXFS (_MX53_PAD_DISP0_DAT13__AUDMUX_AUD5_RXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 235 | #define MX53_PAD_DISP0_DAT12__EMI_EMI_DEBUG_17 IOMUX_PAD(0x3BC, 0x090, 6, __NA_, 0, NO_PAD_CTRL) |
1410 | #define MX53_PAD_DISP0_DAT13__SDMA_DEBUG_EVT_CHN_LINES_0 (_MX53_PAD_DISP0_DAT13__SDMA_DEBUG_EVT_CHN_LINES_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 236 | #define MX53_PAD_DISP0_DAT12__USBPHY2_VSTATUS_3 IOMUX_PAD(0x3BC, 0x090, 7, __NA_, 0, NO_PAD_CTRL) |
1411 | #define MX53_PAD_DISP0_DAT13__EMI_EMI_DEBUG_18 (_MX53_PAD_DISP0_DAT13__EMI_EMI_DEBUG_18 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 237 | #define MX53_PAD_DISP0_DAT13__IPU_DISP0_DAT_13 IOMUX_PAD(0x3C0, 0x094, 0, __NA_, 0, NO_PAD_CTRL) |
1412 | #define MX53_PAD_DISP0_DAT13__USBPHY2_VSTATUS_4 (_MX53_PAD_DISP0_DAT13__USBPHY2_VSTATUS_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 238 | #define MX53_PAD_DISP0_DAT13__GPIO5_7 IOMUX_PAD(0x3C0, 0x094, 1, __NA_, 0, NO_PAD_CTRL) |
1413 | #define MX53_PAD_DISP0_DAT14__IPU_DISP0_DAT_14 (_MX53_PAD_DISP0_DAT14__IPU_DISP0_DAT_14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 239 | #define MX53_PAD_DISP0_DAT13__AUDMUX_AUD5_RXFS IOMUX_PAD(0x3C0, 0x094, 3, 0x754, 0, NO_PAD_CTRL) |
1414 | #define MX53_PAD_DISP0_DAT14__GPIO5_8 (_MX53_PAD_DISP0_DAT14__GPIO5_8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 240 | #define MX53_PAD_DISP0_DAT13__SDMA_DEBUG_EVT_CHN_LINES_0 \ |
1415 | #define MX53_PAD_DISP0_DAT14__AUDMUX_AUD5_RXC (_MX53_PAD_DISP0_DAT14__AUDMUX_AUD5_RXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 241 | IOMUX_PAD(0x3C0, 0x094, 5, __NA_, 0, NO_PAD_CTRL) |
1416 | #define MX53_PAD_DISP0_DAT14__SDMA_DEBUG_EVT_CHN_LINES_1 (_MX53_PAD_DISP0_DAT14__SDMA_DEBUG_EVT_CHN_LINES_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 242 | #define MX53_PAD_DISP0_DAT13__EMI_EMI_DEBUG_18 IOMUX_PAD(0x3C0, 0x094, 6, __NA_, 0, NO_PAD_CTRL) |
1417 | #define MX53_PAD_DISP0_DAT14__EMI_EMI_DEBUG_19 (_MX53_PAD_DISP0_DAT14__EMI_EMI_DEBUG_19 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 243 | #define MX53_PAD_DISP0_DAT13__USBPHY2_VSTATUS_4 IOMUX_PAD(0x3C0, 0x094, 7, __NA_, 0, NO_PAD_CTRL) |
1418 | #define MX53_PAD_DISP0_DAT14__USBPHY2_VSTATUS_5 (_MX53_PAD_DISP0_DAT14__USBPHY2_VSTATUS_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 244 | #define MX53_PAD_DISP0_DAT14__IPU_DISP0_DAT_14 IOMUX_PAD(0x3C4, 0x098, 0, __NA_, 0, NO_PAD_CTRL) |
1419 | #define MX53_PAD_DISP0_DAT15__IPU_DISP0_DAT_15 (_MX53_PAD_DISP0_DAT15__IPU_DISP0_DAT_15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 245 | #define MX53_PAD_DISP0_DAT14__GPIO5_8 IOMUX_PAD(0x3C4, 0x098, 1, __NA_, 0, NO_PAD_CTRL) |
1420 | #define MX53_PAD_DISP0_DAT15__GPIO5_9 (_MX53_PAD_DISP0_DAT15__GPIO5_9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 246 | #define MX53_PAD_DISP0_DAT14__AUDMUX_AUD5_RXC IOMUX_PAD(0x3C4, 0x098, 3, 0x750, 0, NO_PAD_CTRL) |
1421 | #define MX53_PAD_DISP0_DAT15__ECSPI1_SS1 (_MX53_PAD_DISP0_DAT15__ECSPI1_SS1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 247 | #define MX53_PAD_DISP0_DAT14__SDMA_DEBUG_EVT_CHN_LINES_1 \ |
1422 | #define MX53_PAD_DISP0_DAT15__ECSPI2_SS1 (_MX53_PAD_DISP0_DAT15__ECSPI2_SS1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 248 | IOMUX_PAD(0x3C4, 0x098, 5, __NA_, 0, NO_PAD_CTRL) |
1423 | #define MX53_PAD_DISP0_DAT15__SDMA_DEBUG_EVT_CHN_LINES_2 (_MX53_PAD_DISP0_DAT15__SDMA_DEBUG_EVT_CHN_LINES_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 249 | #define MX53_PAD_DISP0_DAT14__EMI_EMI_DEBUG_19 IOMUX_PAD(0x3C4, 0x098, 6, __NA_, 0, NO_PAD_CTRL) |
1424 | #define MX53_PAD_DISP0_DAT15__EMI_EMI_DEBUG_20 (_MX53_PAD_DISP0_DAT15__EMI_EMI_DEBUG_20 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 250 | #define MX53_PAD_DISP0_DAT14__USBPHY2_VSTATUS_5 IOMUX_PAD(0x3C4, 0x098, 7, __NA_, 0, NO_PAD_CTRL) |
1425 | #define MX53_PAD_DISP0_DAT15__USBPHY2_VSTATUS_6 (_MX53_PAD_DISP0_DAT15__USBPHY2_VSTATUS_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 251 | #define MX53_PAD_DISP0_DAT15__IPU_DISP0_DAT_15 IOMUX_PAD(0x3C8, 0x09C, 0, __NA_, 0, NO_PAD_CTRL) |
1426 | #define MX53_PAD_DISP0_DAT16__IPU_DISP0_DAT_16 (_MX53_PAD_DISP0_DAT16__IPU_DISP0_DAT_16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 252 | #define MX53_PAD_DISP0_DAT15__GPIO5_9 IOMUX_PAD(0x3C8, 0x09C, 1, __NA_, 0, NO_PAD_CTRL) |
1427 | #define MX53_PAD_DISP0_DAT16__GPIO5_10 (_MX53_PAD_DISP0_DAT16__GPIO5_10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 253 | #define MX53_PAD_DISP0_DAT15__ECSPI1_SS1 IOMUX_PAD(0x3C8, 0x09C, 2, 0x7AC, 1, NO_PAD_CTRL) |
1428 | #define MX53_PAD_DISP0_DAT16__ECSPI2_MOSI (_MX53_PAD_DISP0_DAT16__ECSPI2_MOSI | MUX_PAD_CTRL(NO_PAD_CTRL)) | 254 | #define MX53_PAD_DISP0_DAT15__ECSPI2_SS1 IOMUX_PAD(0x3C8, 0x09C, 3, 0x7C8, 0, NO_PAD_CTRL) |
1429 | #define MX53_PAD_DISP0_DAT16__AUDMUX_AUD5_TXC (_MX53_PAD_DISP0_DAT16__AUDMUX_AUD5_TXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 255 | #define MX53_PAD_DISP0_DAT15__SDMA_DEBUG_EVT_CHN_LINES_2 \ |
1430 | #define MX53_PAD_DISP0_DAT16__SDMA_EXT_EVENT_0 (_MX53_PAD_DISP0_DAT16__SDMA_EXT_EVENT_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 256 | IOMUX_PAD(0x3C8, 0x09C, 5, __NA_, 0, NO_PAD_CTRL) |
1431 | #define MX53_PAD_DISP0_DAT16__SDMA_DEBUG_EVT_CHN_LINES_3 (_MX53_PAD_DISP0_DAT16__SDMA_DEBUG_EVT_CHN_LINES_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 257 | #define MX53_PAD_DISP0_DAT15__EMI_EMI_DEBUG_20 IOMUX_PAD(0x3C8, 0x09C, 6, __NA_, 0, NO_PAD_CTRL) |
1432 | #define MX53_PAD_DISP0_DAT16__EMI_EMI_DEBUG_21 (_MX53_PAD_DISP0_DAT16__EMI_EMI_DEBUG_21 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 258 | #define MX53_PAD_DISP0_DAT15__USBPHY2_VSTATUS_6 IOMUX_PAD(0x3C8, 0x09C, 7, __NA_, 0, NO_PAD_CTRL) |
1433 | #define MX53_PAD_DISP0_DAT16__USBPHY2_VSTATUS_7 (_MX53_PAD_DISP0_DAT16__USBPHY2_VSTATUS_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 259 | #define MX53_PAD_DISP0_DAT16__IPU_DISP0_DAT_16 IOMUX_PAD(0x3CC, 0x0A0, 0, __NA_, 0, NO_PAD_CTRL) |
1434 | #define MX53_PAD_DISP0_DAT17__IPU_DISP0_DAT_17 (_MX53_PAD_DISP0_DAT17__IPU_DISP0_DAT_17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 260 | #define MX53_PAD_DISP0_DAT16__GPIO5_10 IOMUX_PAD(0x3CC, 0x0A0, 1, __NA_, 0, NO_PAD_CTRL) |
1435 | #define MX53_PAD_DISP0_DAT17__GPIO5_11 (_MX53_PAD_DISP0_DAT17__GPIO5_11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 261 | #define MX53_PAD_DISP0_DAT16__ECSPI2_MOSI IOMUX_PAD(0x3CC, 0x0A0, 2, 0x7C0, 0, NO_PAD_CTRL) |
1436 | #define MX53_PAD_DISP0_DAT17__ECSPI2_MISO (_MX53_PAD_DISP0_DAT17__ECSPI2_MISO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 262 | #define MX53_PAD_DISP0_DAT16__AUDMUX_AUD5_TXC IOMUX_PAD(0x3CC, 0x0A0, 3, 0x758, 1, NO_PAD_CTRL) |
1437 | #define MX53_PAD_DISP0_DAT17__AUDMUX_AUD5_TXD (_MX53_PAD_DISP0_DAT17__AUDMUX_AUD5_TXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 263 | #define MX53_PAD_DISP0_DAT16__SDMA_EXT_EVENT_0 IOMUX_PAD(0x3CC, 0x0A0, 4, 0x868, 0, NO_PAD_CTRL) |
1438 | #define MX53_PAD_DISP0_DAT17__SDMA_EXT_EVENT_1 (_MX53_PAD_DISP0_DAT17__SDMA_EXT_EVENT_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 264 | #define MX53_PAD_DISP0_DAT16__SDMA_DEBUG_EVT_CHN_LINES_3 \ |
1439 | #define MX53_PAD_DISP0_DAT17__SDMA_DEBUG_EVT_CHN_LINES_4 (_MX53_PAD_DISP0_DAT17__SDMA_DEBUG_EVT_CHN_LINES_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 265 | IOMUX_PAD(0x3CC, 0x0A0, 5, __NA_, 0, NO_PAD_CTRL) |
1440 | #define MX53_PAD_DISP0_DAT17__EMI_EMI_DEBUG_22 (_MX53_PAD_DISP0_DAT17__EMI_EMI_DEBUG_22 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 266 | #define MX53_PAD_DISP0_DAT16__EMI_EMI_DEBUG_21 IOMUX_PAD(0x3CC, 0x0A0, 6, __NA_, 0, NO_PAD_CTRL) |
1441 | #define MX53_PAD_DISP0_DAT18__IPU_DISP0_DAT_18 (_MX53_PAD_DISP0_DAT18__IPU_DISP0_DAT_18 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 267 | #define MX53_PAD_DISP0_DAT16__USBPHY2_VSTATUS_7 IOMUX_PAD(0x3CC, 0x0A0, 7, __NA_, 0, NO_PAD_CTRL) |
1442 | #define MX53_PAD_DISP0_DAT18__GPIO5_12 (_MX53_PAD_DISP0_DAT18__GPIO5_12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 268 | #define MX53_PAD_DISP0_DAT17__IPU_DISP0_DAT_17 IOMUX_PAD(0x3D0, 0x0A4, 0, __NA_, 0, NO_PAD_CTRL) |
1443 | #define MX53_PAD_DISP0_DAT18__ECSPI2_SS0 (_MX53_PAD_DISP0_DAT18__ECSPI2_SS0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 269 | #define MX53_PAD_DISP0_DAT17__GPIO5_11 IOMUX_PAD(0x3D0, 0x0A4, 1, __NA_, 0, NO_PAD_CTRL) |
1444 | #define MX53_PAD_DISP0_DAT18__AUDMUX_AUD5_TXFS (_MX53_PAD_DISP0_DAT18__AUDMUX_AUD5_TXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 270 | #define MX53_PAD_DISP0_DAT17__ECSPI2_MISO IOMUX_PAD(0x3D0, 0x0A4, 2, 0x7BC, 0, NO_PAD_CTRL) |
1445 | #define MX53_PAD_DISP0_DAT18__AUDMUX_AUD4_RXFS (_MX53_PAD_DISP0_DAT18__AUDMUX_AUD4_RXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 271 | #define MX53_PAD_DISP0_DAT17__AUDMUX_AUD5_TXD IOMUX_PAD(0x3D0, 0x0A4, 3, 0x74C, 1, NO_PAD_CTRL) |
1446 | #define MX53_PAD_DISP0_DAT18__SDMA_DEBUG_EVT_CHN_LINES_5 (_MX53_PAD_DISP0_DAT18__SDMA_DEBUG_EVT_CHN_LINES_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 272 | #define MX53_PAD_DISP0_DAT17__SDMA_EXT_EVENT_1 IOMUX_PAD(0x3D0, 0x0A4, 4, 0x86C, 0, NO_PAD_CTRL) |
1447 | #define MX53_PAD_DISP0_DAT18__EMI_EMI_DEBUG_23 (_MX53_PAD_DISP0_DAT18__EMI_EMI_DEBUG_23 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 273 | #define MX53_PAD_DISP0_DAT17__SDMA_DEBUG_EVT_CHN_LINES_4 \ |
1448 | #define MX53_PAD_DISP0_DAT18__EMI_WEIM_CS_2 (_MX53_PAD_DISP0_DAT18__EMI_WEIM_CS_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 274 | IOMUX_PAD(0x3D0, 0x0A4, 5, __NA_, 0, NO_PAD_CTRL) |
1449 | #define MX53_PAD_DISP0_DAT19__IPU_DISP0_DAT_19 (_MX53_PAD_DISP0_DAT19__IPU_DISP0_DAT_19 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 275 | #define MX53_PAD_DISP0_DAT17__EMI_EMI_DEBUG_22 IOMUX_PAD(0x3D0, 0x0A4, 6, __NA_, 0, NO_PAD_CTRL) |
1450 | #define MX53_PAD_DISP0_DAT19__GPIO5_13 (_MX53_PAD_DISP0_DAT19__GPIO5_13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 276 | #define MX53_PAD_DISP0_DAT18__IPU_DISP0_DAT_18 IOMUX_PAD(0x3D4, 0x0A8, 0, __NA_, 0, NO_PAD_CTRL) |
1451 | #define MX53_PAD_DISP0_DAT19__ECSPI2_SCLK (_MX53_PAD_DISP0_DAT19__ECSPI2_SCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 277 | #define MX53_PAD_DISP0_DAT18__GPIO5_12 IOMUX_PAD(0x3D4, 0x0A8, 1, __NA_, 0, NO_PAD_CTRL) |
1452 | #define MX53_PAD_DISP0_DAT19__AUDMUX_AUD5_RXD (_MX53_PAD_DISP0_DAT19__AUDMUX_AUD5_RXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 278 | #define MX53_PAD_DISP0_DAT18__ECSPI2_SS0 IOMUX_PAD(0x3D4, 0x0A8, 2, 0x7C4, 0, NO_PAD_CTRL) |
1453 | #define MX53_PAD_DISP0_DAT19__AUDMUX_AUD4_RXC (_MX53_PAD_DISP0_DAT19__AUDMUX_AUD4_RXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 279 | #define MX53_PAD_DISP0_DAT18__AUDMUX_AUD5_TXFS IOMUX_PAD(0x3D4, 0x0A8, 3, 0x75C, 1, NO_PAD_CTRL) |
1454 | #define MX53_PAD_DISP0_DAT19__SDMA_DEBUG_EVT_CHN_LINES_6 (_MX53_PAD_DISP0_DAT19__SDMA_DEBUG_EVT_CHN_LINES_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 280 | #define MX53_PAD_DISP0_DAT18__AUDMUX_AUD4_RXFS IOMUX_PAD(0x3D4, 0x0A8, 4, 0x73C, 0, NO_PAD_CTRL) |
1455 | #define MX53_PAD_DISP0_DAT19__EMI_EMI_DEBUG_24 (_MX53_PAD_DISP0_DAT19__EMI_EMI_DEBUG_24 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 281 | #define MX53_PAD_DISP0_DAT18__SDMA_DEBUG_EVT_CHN_LINES_5 \ |
1456 | #define MX53_PAD_DISP0_DAT19__EMI_WEIM_CS_3 (_MX53_PAD_DISP0_DAT19__EMI_WEIM_CS_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 282 | IOMUX_PAD(0x3D4, 0x0A8, 5, __NA_, 0, NO_PAD_CTRL) |
1457 | #define MX53_PAD_DISP0_DAT20__IPU_DISP0_DAT_20 (_MX53_PAD_DISP0_DAT20__IPU_DISP0_DAT_20 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 283 | #define MX53_PAD_DISP0_DAT18__EMI_EMI_DEBUG_23 IOMUX_PAD(0x3D4, 0x0A8, 6, __NA_, 0, NO_PAD_CTRL) |
1458 | #define MX53_PAD_DISP0_DAT20__GPIO5_14 (_MX53_PAD_DISP0_DAT20__GPIO5_14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 284 | #define MX53_PAD_DISP0_DAT18__EMI_WEIM_CS_2 IOMUX_PAD(0x3D4, 0x0A8, 7, __NA_, 0, NO_PAD_CTRL) |
1459 | #define MX53_PAD_DISP0_DAT20__ECSPI1_SCLK (_MX53_PAD_DISP0_DAT20__ECSPI1_SCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 285 | #define MX53_PAD_DISP0_DAT19__IPU_DISP0_DAT_19 IOMUX_PAD(0x3D8, 0x0AC, 0, __NA_, 0, NO_PAD_CTRL) |
1460 | #define MX53_PAD_DISP0_DAT20__AUDMUX_AUD4_TXC (_MX53_PAD_DISP0_DAT20__AUDMUX_AUD4_TXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 286 | #define MX53_PAD_DISP0_DAT19__GPIO5_13 IOMUX_PAD(0x3D8, 0x0AC, 1, __NA_, 0, NO_PAD_CTRL) |
1461 | #define MX53_PAD_DISP0_DAT20__SDMA_DEBUG_EVT_CHN_LINES_7 (_MX53_PAD_DISP0_DAT20__SDMA_DEBUG_EVT_CHN_LINES_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 287 | #define MX53_PAD_DISP0_DAT19__ECSPI2_SCLK IOMUX_PAD(0x3D8, 0x0AC, 2, 0x7B8, 0, NO_PAD_CTRL) |
1462 | #define MX53_PAD_DISP0_DAT20__EMI_EMI_DEBUG_25 (_MX53_PAD_DISP0_DAT20__EMI_EMI_DEBUG_25 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 288 | #define MX53_PAD_DISP0_DAT19__AUDMUX_AUD5_RXD IOMUX_PAD(0x3D8, 0x0AC, 3, 0x748, 1, NO_PAD_CTRL) |
1463 | #define MX53_PAD_DISP0_DAT20__SATA_PHY_TDI (_MX53_PAD_DISP0_DAT20__SATA_PHY_TDI | MUX_PAD_CTRL(NO_PAD_CTRL)) | 289 | #define MX53_PAD_DISP0_DAT19__AUDMUX_AUD4_RXC IOMUX_PAD(0x3D8, 0x0AC, 4, 0x738, 0, NO_PAD_CTRL) |
1464 | #define MX53_PAD_DISP0_DAT21__IPU_DISP0_DAT_21 (_MX53_PAD_DISP0_DAT21__IPU_DISP0_DAT_21 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 290 | #define MX53_PAD_DISP0_DAT19__SDMA_DEBUG_EVT_CHN_LINES_6 \ |
1465 | #define MX53_PAD_DISP0_DAT21__GPIO5_15 (_MX53_PAD_DISP0_DAT21__GPIO5_15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 291 | IOMUX_PAD(0x3D8, 0x0AC, 5, __NA_, 0, NO_PAD_CTRL) |
1466 | #define MX53_PAD_DISP0_DAT21__ECSPI1_MOSI (_MX53_PAD_DISP0_DAT21__ECSPI1_MOSI | MUX_PAD_CTRL(NO_PAD_CTRL)) | 292 | #define MX53_PAD_DISP0_DAT19__EMI_EMI_DEBUG_24 IOMUX_PAD(0x3D8, 0x0AC, 6, __NA_, 0, NO_PAD_CTRL) |
1467 | #define MX53_PAD_DISP0_DAT21__AUDMUX_AUD4_TXD (_MX53_PAD_DISP0_DAT21__AUDMUX_AUD4_TXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 293 | #define MX53_PAD_DISP0_DAT19__EMI_WEIM_CS_3 IOMUX_PAD(0x3D8, 0x0AC, 7, __NA_, 0, NO_PAD_CTRL) |
1468 | #define MX53_PAD_DISP0_DAT21__SDMA_DEBUG_BUS_DEVICE_0 (_MX53_PAD_DISP0_DAT21__SDMA_DEBUG_BUS_DEVICE_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 294 | #define MX53_PAD_DISP0_DAT20__IPU_DISP0_DAT_20 IOMUX_PAD(0x3DC, 0x0B0, 0, __NA_, 0, NO_PAD_CTRL) |
1469 | #define MX53_PAD_DISP0_DAT21__EMI_EMI_DEBUG_26 (_MX53_PAD_DISP0_DAT21__EMI_EMI_DEBUG_26 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 295 | #define MX53_PAD_DISP0_DAT20__GPIO5_14 IOMUX_PAD(0x3DC, 0x0B0, 1, __NA_, 0, NO_PAD_CTRL) |
1470 | #define MX53_PAD_DISP0_DAT21__SATA_PHY_TDO (_MX53_PAD_DISP0_DAT21__SATA_PHY_TDO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 296 | #define MX53_PAD_DISP0_DAT20__ECSPI1_SCLK IOMUX_PAD(0x3DC, 0x0B0, 2, 0x79C, 1, NO_PAD_CTRL) |
1471 | #define MX53_PAD_DISP0_DAT22__IPU_DISP0_DAT_22 (_MX53_PAD_DISP0_DAT22__IPU_DISP0_DAT_22 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 297 | #define MX53_PAD_DISP0_DAT20__AUDMUX_AUD4_TXC IOMUX_PAD(0x3DC, 0x0B0, 3, 0x740, 0, NO_PAD_CTRL) |
1472 | #define MX53_PAD_DISP0_DAT22__GPIO5_16 (_MX53_PAD_DISP0_DAT22__GPIO5_16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 298 | #define MX53_PAD_DISP0_DAT20__SDMA_DEBUG_EVT_CHN_LINES_7 \ |
1473 | #define MX53_PAD_DISP0_DAT22__ECSPI1_MISO (_MX53_PAD_DISP0_DAT22__ECSPI1_MISO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 299 | IOMUX_PAD(0x3DC, 0x0B0, 5, __NA_, 0, NO_PAD_CTRL) |
1474 | #define MX53_PAD_DISP0_DAT22__AUDMUX_AUD4_TXFS (_MX53_PAD_DISP0_DAT22__AUDMUX_AUD4_TXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 300 | #define MX53_PAD_DISP0_DAT20__EMI_EMI_DEBUG_25 IOMUX_PAD(0x3DC, 0x0B0, 6, __NA_, 0, NO_PAD_CTRL) |
1475 | #define MX53_PAD_DISP0_DAT22__SDMA_DEBUG_BUS_DEVICE_1 (_MX53_PAD_DISP0_DAT22__SDMA_DEBUG_BUS_DEVICE_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 301 | #define MX53_PAD_DISP0_DAT20__SATA_PHY_TDI IOMUX_PAD(0x3DC, 0x0B0, 7, __NA_, 0, NO_PAD_CTRL) |
1476 | #define MX53_PAD_DISP0_DAT22__EMI_EMI_DEBUG_27 (_MX53_PAD_DISP0_DAT22__EMI_EMI_DEBUG_27 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 302 | #define MX53_PAD_DISP0_DAT21__IPU_DISP0_DAT_21 IOMUX_PAD(0x3E0, 0x0B4, 0, __NA_, 0, NO_PAD_CTRL) |
1477 | #define MX53_PAD_DISP0_DAT22__SATA_PHY_TCK (_MX53_PAD_DISP0_DAT22__SATA_PHY_TCK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 303 | #define MX53_PAD_DISP0_DAT21__GPIO5_15 IOMUX_PAD(0x3E0, 0x0B4, 1, __NA_, 0, NO_PAD_CTRL) |
1478 | #define MX53_PAD_DISP0_DAT23__IPU_DISP0_DAT_23 (_MX53_PAD_DISP0_DAT23__IPU_DISP0_DAT_23 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 304 | #define MX53_PAD_DISP0_DAT21__ECSPI1_MOSI IOMUX_PAD(0x3E0, 0x0B4, 2, 0x7A4, 1, NO_PAD_CTRL) |
1479 | #define MX53_PAD_DISP0_DAT23__GPIO5_17 (_MX53_PAD_DISP0_DAT23__GPIO5_17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 305 | #define MX53_PAD_DISP0_DAT21__AUDMUX_AUD4_TXD IOMUX_PAD(0x3E0, 0x0B4, 3, 0x734, 0, NO_PAD_CTRL) |
1480 | #define MX53_PAD_DISP0_DAT23__ECSPI1_SS0 (_MX53_PAD_DISP0_DAT23__ECSPI1_SS0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 306 | #define MX53_PAD_DISP0_DAT21__SDMA_DEBUG_BUS_DEVICE_0 IOMUX_PAD(0x3E0, 0x0B4, 5, __NA_, 0, NO_PAD_CTRL) |
1481 | #define MX53_PAD_DISP0_DAT23__AUDMUX_AUD4_RXD (_MX53_PAD_DISP0_DAT23__AUDMUX_AUD4_RXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 307 | #define MX53_PAD_DISP0_DAT21__EMI_EMI_DEBUG_26 IOMUX_PAD(0x3E0, 0x0B4, 6, __NA_, 0, NO_PAD_CTRL) |
1482 | #define MX53_PAD_DISP0_DAT23__SDMA_DEBUG_BUS_DEVICE_2 (_MX53_PAD_DISP0_DAT23__SDMA_DEBUG_BUS_DEVICE_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 308 | #define MX53_PAD_DISP0_DAT21__SATA_PHY_TDO IOMUX_PAD(0x3E0, 0x0B4, 7, __NA_, 0, NO_PAD_CTRL) |
1483 | #define MX53_PAD_DISP0_DAT23__EMI_EMI_DEBUG_28 (_MX53_PAD_DISP0_DAT23__EMI_EMI_DEBUG_28 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 309 | #define MX53_PAD_DISP0_DAT22__IPU_DISP0_DAT_22 IOMUX_PAD(0x3E4, 0x0B8, 0, __NA_, 0, NO_PAD_CTRL) |
1484 | #define MX53_PAD_DISP0_DAT23__SATA_PHY_TMS (_MX53_PAD_DISP0_DAT23__SATA_PHY_TMS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 310 | #define MX53_PAD_DISP0_DAT22__GPIO5_16 IOMUX_PAD(0x3E4, 0x0B8, 1, __NA_, 0, NO_PAD_CTRL) |
1485 | #define MX53_PAD_CSI0_PIXCLK__IPU_CSI0_PIXCLK (_MX53_PAD_CSI0_PIXCLK__IPU_CSI0_PIXCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 311 | #define MX53_PAD_DISP0_DAT22__ECSPI1_MISO IOMUX_PAD(0x3E4, 0x0B8, 2, 0x7A0, 1, NO_PAD_CTRL) |
1486 | #define MX53_PAD_CSI0_PIXCLK__GPIO5_18 (_MX53_PAD_CSI0_PIXCLK__GPIO5_18 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 312 | #define MX53_PAD_DISP0_DAT22__AUDMUX_AUD4_TXFS IOMUX_PAD(0x3E4, 0x0B8, 3, 0x744, 0, NO_PAD_CTRL) |
1487 | #define MX53_PAD_CSI0_PIXCLK__SDMA_DEBUG_PC_0 (_MX53_PAD_CSI0_PIXCLK__SDMA_DEBUG_PC_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 313 | #define MX53_PAD_DISP0_DAT22__SDMA_DEBUG_BUS_DEVICE_1 IOMUX_PAD(0x3E4, 0x0B8, 5, __NA_, 0, NO_PAD_CTRL) |
1488 | #define MX53_PAD_CSI0_PIXCLK__EMI_EMI_DEBUG_29 (_MX53_PAD_CSI0_PIXCLK__EMI_EMI_DEBUG_29 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 314 | #define MX53_PAD_DISP0_DAT22__EMI_EMI_DEBUG_27 IOMUX_PAD(0x3E4, 0x0B8, 6, __NA_, 0, NO_PAD_CTRL) |
1489 | #define MX53_PAD_CSI0_MCLK__IPU_CSI0_HSYNC (_MX53_PAD_CSI0_MCLK__IPU_CSI0_HSYNC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 315 | #define MX53_PAD_DISP0_DAT22__SATA_PHY_TCK IOMUX_PAD(0x3E4, 0x0B8, 7, __NA_, 0, NO_PAD_CTRL) |
1490 | #define MX53_PAD_CSI0_MCLK__GPIO5_19 (_MX53_PAD_CSI0_MCLK__GPIO5_19 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 316 | #define MX53_PAD_DISP0_DAT23__IPU_DISP0_DAT_23 IOMUX_PAD(0x3E8, 0x0BC, 0, __NA_, 0, NO_PAD_CTRL) |
1491 | #define MX53_PAD_CSI0_MCLK__CCM_CSI0_MCLK (_MX53_PAD_CSI0_MCLK__CCM_CSI0_MCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 317 | #define MX53_PAD_DISP0_DAT23__GPIO5_17 IOMUX_PAD(0x3E8, 0x0BC, 1, __NA_, 0, NO_PAD_CTRL) |
1492 | #define MX53_PAD_CSI0_MCLK__SDMA_DEBUG_PC_1 (_MX53_PAD_CSI0_MCLK__SDMA_DEBUG_PC_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 318 | #define MX53_PAD_DISP0_DAT23__ECSPI1_SS0 IOMUX_PAD(0x3E8, 0x0BC, 2, 0x7A8, 1, NO_PAD_CTRL) |
1493 | #define MX53_PAD_CSI0_MCLK__EMI_EMI_DEBUG_30 (_MX53_PAD_CSI0_MCLK__EMI_EMI_DEBUG_30 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 319 | #define MX53_PAD_DISP0_DAT23__AUDMUX_AUD4_RXD IOMUX_PAD(0x3E8, 0x0BC, 3, 0x730, 0, NO_PAD_CTRL) |
1494 | #define MX53_PAD_CSI0_MCLK__TPIU_TRCTL (_MX53_PAD_CSI0_MCLK__TPIU_TRCTL | MUX_PAD_CTRL(NO_PAD_CTRL)) | 320 | #define MX53_PAD_DISP0_DAT23__SDMA_DEBUG_BUS_DEVICE_2 IOMUX_PAD(0x3E8, 0x0BC, 5, __NA_, 0, NO_PAD_CTRL) |
1495 | #define MX53_PAD_CSI0_DATA_EN__IPU_CSI0_DATA_EN (_MX53_PAD_CSI0_DATA_EN__IPU_CSI0_DATA_EN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 321 | #define MX53_PAD_DISP0_DAT23__EMI_EMI_DEBUG_28 IOMUX_PAD(0x3E8, 0x0BC, 6, __NA_, 0, NO_PAD_CTRL) |
1496 | #define MX53_PAD_CSI0_DATA_EN__GPIO5_20 (_MX53_PAD_CSI0_DATA_EN__GPIO5_20 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 322 | #define MX53_PAD_DISP0_DAT23__SATA_PHY_TMS IOMUX_PAD(0x3E8, 0x0BC, 7, __NA_, 0, NO_PAD_CTRL) |
1497 | #define MX53_PAD_CSI0_DATA_EN__SDMA_DEBUG_PC_2 (_MX53_PAD_CSI0_DATA_EN__SDMA_DEBUG_PC_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 323 | #define MX53_PAD_CSI0_PIXCLK__IPU_CSI0_PIXCLK IOMUX_PAD(0x3EC, 0x0C0, 0, __NA_, 0, NO_PAD_CTRL) |
1498 | #define MX53_PAD_CSI0_DATA_EN__EMI_EMI_DEBUG_31 (_MX53_PAD_CSI0_DATA_EN__EMI_EMI_DEBUG_31 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 324 | #define MX53_PAD_CSI0_PIXCLK__GPIO5_18 IOMUX_PAD(0x3EC, 0x0C0, 1, __NA_, 0, NO_PAD_CTRL) |
1499 | #define MX53_PAD_CSI0_DATA_EN__TPIU_TRCLK (_MX53_PAD_CSI0_DATA_EN__TPIU_TRCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 325 | #define MX53_PAD_CSI0_PIXCLK__SDMA_DEBUG_PC_0 IOMUX_PAD(0x3EC, 0x0C0, 5, __NA_, 0, NO_PAD_CTRL) |
1500 | #define MX53_PAD_CSI0_VSYNC__IPU_CSI0_VSYNC (_MX53_PAD_CSI0_VSYNC__IPU_CSI0_VSYNC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 326 | #define MX53_PAD_CSI0_PIXCLK__EMI_EMI_DEBUG_29 IOMUX_PAD(0x3EC, 0x0C0, 6, __NA_, 0, NO_PAD_CTRL) |
1501 | #define MX53_PAD_CSI0_VSYNC__GPIO5_21 (_MX53_PAD_CSI0_VSYNC__GPIO5_21 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 327 | #define MX53_PAD_CSI0_MCLK__IPU_CSI0_HSYNC IOMUX_PAD(0x3F0, 0x0C4, 0, __NA_, 0, NO_PAD_CTRL) |
1502 | #define MX53_PAD_CSI0_VSYNC__SDMA_DEBUG_PC_3 (_MX53_PAD_CSI0_VSYNC__SDMA_DEBUG_PC_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 328 | #define MX53_PAD_CSI0_MCLK__GPIO5_19 IOMUX_PAD(0x3F0, 0x0C4, 1, __NA_, 0, NO_PAD_CTRL) |
1503 | #define MX53_PAD_CSI0_VSYNC__EMI_EMI_DEBUG_32 (_MX53_PAD_CSI0_VSYNC__EMI_EMI_DEBUG_32 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 329 | #define MX53_PAD_CSI0_MCLK__CCM_CSI0_MCLK IOMUX_PAD(0x3F0, 0x0C4, 2, __NA_, 0, NO_PAD_CTRL) |
1504 | #define MX53_PAD_CSI0_VSYNC__TPIU_TRACE_0 (_MX53_PAD_CSI0_VSYNC__TPIU_TRACE_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 330 | #define MX53_PAD_CSI0_MCLK__SDMA_DEBUG_PC_1 IOMUX_PAD(0x3F0, 0x0C4, 5, __NA_, 0, NO_PAD_CTRL) |
1505 | #define MX53_PAD_CSI0_DAT4__IPU_CSI0_D_4 (_MX53_PAD_CSI0_DAT4__IPU_CSI0_D_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 331 | #define MX53_PAD_CSI0_MCLK__EMI_EMI_DEBUG_30 IOMUX_PAD(0x3F0, 0x0C4, 6, __NA_, 0, NO_PAD_CTRL) |
1506 | #define MX53_PAD_CSI0_DAT4__GPIO5_22 (_MX53_PAD_CSI0_DAT4__GPIO5_22 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 332 | #define MX53_PAD_CSI0_MCLK__TPIU_TRCTL IOMUX_PAD(0x3F0, 0x0C4, 7, __NA_, 0, NO_PAD_CTRL) |
1507 | #define MX53_PAD_CSI0_DAT4__KPP_COL_5 (_MX53_PAD_CSI0_DAT4__KPP_COL_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 333 | #define MX53_PAD_CSI0_DATA_EN__IPU_CSI0_DATA_EN IOMUX_PAD(0x3F4, 0x0C8, 0, __NA_, 0, NO_PAD_CTRL) |
1508 | #define MX53_PAD_CSI0_DAT4__ECSPI1_SCLK (_MX53_PAD_CSI0_DAT4__ECSPI1_SCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 334 | #define MX53_PAD_CSI0_DATA_EN__GPIO5_20 IOMUX_PAD(0x3F4, 0x0C8, 1, __NA_, 0, NO_PAD_CTRL) |
1509 | #define MX53_PAD_CSI0_DAT4__USBOH3_USBH3_STP (_MX53_PAD_CSI0_DAT4__USBOH3_USBH3_STP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 335 | #define MX53_PAD_CSI0_DATA_EN__SDMA_DEBUG_PC_2 IOMUX_PAD(0x3F4, 0x0C8, 5, __NA_, 0, NO_PAD_CTRL) |
1510 | #define MX53_PAD_CSI0_DAT4__AUDMUX_AUD3_TXC (_MX53_PAD_CSI0_DAT4__AUDMUX_AUD3_TXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 336 | #define MX53_PAD_CSI0_DATA_EN__EMI_EMI_DEBUG_31 IOMUX_PAD(0x3F4, 0x0C8, 6, __NA_, 0, NO_PAD_CTRL) |
1511 | #define MX53_PAD_CSI0_DAT4__EMI_EMI_DEBUG_33 (_MX53_PAD_CSI0_DAT4__EMI_EMI_DEBUG_33 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 337 | #define MX53_PAD_CSI0_DATA_EN__TPIU_TRCLK IOMUX_PAD(0x3F4, 0x0C8, 7, __NA_, 0, NO_PAD_CTRL) |
1512 | #define MX53_PAD_CSI0_DAT4__TPIU_TRACE_1 (_MX53_PAD_CSI0_DAT4__TPIU_TRACE_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 338 | #define MX53_PAD_CSI0_VSYNC__IPU_CSI0_VSYNC IOMUX_PAD(0x3F8, 0x0CC, 0, __NA_, 0, NO_PAD_CTRL) |
1513 | #define MX53_PAD_CSI0_DAT5__IPU_CSI0_D_5 (_MX53_PAD_CSI0_DAT5__IPU_CSI0_D_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 339 | #define MX53_PAD_CSI0_VSYNC__GPIO5_21 IOMUX_PAD(0x3F8, 0x0CC, 1, __NA_, 0, NO_PAD_CTRL) |
1514 | #define MX53_PAD_CSI0_DAT5__GPIO5_23 (_MX53_PAD_CSI0_DAT5__GPIO5_23 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 340 | #define MX53_PAD_CSI0_VSYNC__SDMA_DEBUG_PC_3 IOMUX_PAD(0x3F8, 0x0CC, 5, __NA_, 0, NO_PAD_CTRL) |
1515 | #define MX53_PAD_CSI0_DAT5__KPP_ROW_5 (_MX53_PAD_CSI0_DAT5__KPP_ROW_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 341 | #define MX53_PAD_CSI0_VSYNC__EMI_EMI_DEBUG_32 IOMUX_PAD(0x3F8, 0x0CC, 6, __NA_, 0, NO_PAD_CTRL) |
1516 | #define MX53_PAD_CSI0_DAT5__ECSPI1_MOSI (_MX53_PAD_CSI0_DAT5__ECSPI1_MOSI | MUX_PAD_CTRL(NO_PAD_CTRL)) | 342 | #define MX53_PAD_CSI0_VSYNC__TPIU_TRACE_0 IOMUX_PAD(0x3F8, 0x0CC, 7, __NA_, 0, NO_PAD_CTRL) |
1517 | #define MX53_PAD_CSI0_DAT5__USBOH3_USBH3_NXT (_MX53_PAD_CSI0_DAT5__USBOH3_USBH3_NXT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 343 | #define MX53_PAD_CSI0_DAT4__IPU_CSI0_D_4 IOMUX_PAD(0x3FC, 0x0D0, 0, __NA_, 0, NO_PAD_CTRL) |
1518 | #define MX53_PAD_CSI0_DAT5__AUDMUX_AUD3_TXD (_MX53_PAD_CSI0_DAT5__AUDMUX_AUD3_TXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 344 | #define MX53_PAD_CSI0_DAT4__GPIO5_22 IOMUX_PAD(0x3FC, 0x0D0, 1, __NA_, 0, NO_PAD_CTRL) |
1519 | #define MX53_PAD_CSI0_DAT5__EMI_EMI_DEBUG_34 (_MX53_PAD_CSI0_DAT5__EMI_EMI_DEBUG_34 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 345 | #define MX53_PAD_CSI0_DAT4__KPP_COL_5 IOMUX_PAD(0x3FC, 0x0D0, 2, 0x840, 1, NO_PAD_CTRL) |
1520 | #define MX53_PAD_CSI0_DAT5__TPIU_TRACE_2 (_MX53_PAD_CSI0_DAT5__TPIU_TRACE_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 346 | #define MX53_PAD_CSI0_DAT4__ECSPI1_SCLK IOMUX_PAD(0x3FC, 0x0D0, 3, 0x79C, 2, NO_PAD_CTRL) |
1521 | #define MX53_PAD_CSI0_DAT6__IPU_CSI0_D_6 (_MX53_PAD_CSI0_DAT6__IPU_CSI0_D_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 347 | #define MX53_PAD_CSI0_DAT4__USBOH3_USBH3_STP IOMUX_PAD(0x3FC, 0x0D0, 4, __NA_, 0, NO_PAD_CTRL) |
1522 | #define MX53_PAD_CSI0_DAT6__GPIO5_24 (_MX53_PAD_CSI0_DAT6__GPIO5_24 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 348 | #define MX53_PAD_CSI0_DAT4__AUDMUX_AUD3_TXC IOMUX_PAD(0x3FC, 0x0D0, 5, __NA_, 0, NO_PAD_CTRL) |
1523 | #define MX53_PAD_CSI0_DAT6__KPP_COL_6 (_MX53_PAD_CSI0_DAT6__KPP_COL_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 349 | #define MX53_PAD_CSI0_DAT4__EMI_EMI_DEBUG_33 IOMUX_PAD(0x3FC, 0x0D0, 6, __NA_, 0, NO_PAD_CTRL) |
1524 | #define MX53_PAD_CSI0_DAT6__ECSPI1_MISO (_MX53_PAD_CSI0_DAT6__ECSPI1_MISO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 350 | #define MX53_PAD_CSI0_DAT4__TPIU_TRACE_1 IOMUX_PAD(0x3FC, 0x0D0, 7, __NA_, 0, NO_PAD_CTRL) |
1525 | #define MX53_PAD_CSI0_DAT6__USBOH3_USBH3_CLK (_MX53_PAD_CSI0_DAT6__USBOH3_USBH3_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 351 | #define MX53_PAD_CSI0_DAT5__IPU_CSI0_D_5 IOMUX_PAD(0x400, 0x0D4, 0, __NA_, 0, NO_PAD_CTRL) |
1526 | #define MX53_PAD_CSI0_DAT6__AUDMUX_AUD3_TXFS (_MX53_PAD_CSI0_DAT6__AUDMUX_AUD3_TXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 352 | #define MX53_PAD_CSI0_DAT5__GPIO5_23 IOMUX_PAD(0x400, 0x0D4, 1, __NA_, 0, NO_PAD_CTRL) |
1527 | #define MX53_PAD_CSI0_DAT6__EMI_EMI_DEBUG_35 (_MX53_PAD_CSI0_DAT6__EMI_EMI_DEBUG_35 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 353 | #define MX53_PAD_CSI0_DAT5__KPP_ROW_5 IOMUX_PAD(0x400, 0x0D4, 2, 0x84C, 0, NO_PAD_CTRL) |
1528 | #define MX53_PAD_CSI0_DAT6__TPIU_TRACE_3 (_MX53_PAD_CSI0_DAT6__TPIU_TRACE_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 354 | #define MX53_PAD_CSI0_DAT5__ECSPI1_MOSI IOMUX_PAD(0x400, 0x0D4, 3, 0x7A4, 2, NO_PAD_CTRL) |
1529 | #define MX53_PAD_CSI0_DAT7__IPU_CSI0_D_7 (_MX53_PAD_CSI0_DAT7__IPU_CSI0_D_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 355 | #define MX53_PAD_CSI0_DAT5__USBOH3_USBH3_NXT IOMUX_PAD(0x400, 0x0D4, 4, __NA_, 0, NO_PAD_CTRL) |
1530 | #define MX53_PAD_CSI0_DAT7__GPIO5_25 (_MX53_PAD_CSI0_DAT7__GPIO5_25 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 356 | #define MX53_PAD_CSI0_DAT5__AUDMUX_AUD3_TXD IOMUX_PAD(0x400, 0x0D4, 5, __NA_, 0, NO_PAD_CTRL) |
1531 | #define MX53_PAD_CSI0_DAT7__KPP_ROW_6 (_MX53_PAD_CSI0_DAT7__KPP_ROW_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 357 | #define MX53_PAD_CSI0_DAT5__EMI_EMI_DEBUG_34 IOMUX_PAD(0x400, 0x0D4, 6, __NA_, 0, NO_PAD_CTRL) |
1532 | #define MX53_PAD_CSI0_DAT7__ECSPI1_SS0 (_MX53_PAD_CSI0_DAT7__ECSPI1_SS0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 358 | #define MX53_PAD_CSI0_DAT5__TPIU_TRACE_2 IOMUX_PAD(0x400, 0x0D4, 7, __NA_, 0, NO_PAD_CTRL) |
1533 | #define MX53_PAD_CSI0_DAT7__USBOH3_USBH3_DIR (_MX53_PAD_CSI0_DAT7__USBOH3_USBH3_DIR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 359 | #define MX53_PAD_CSI0_DAT6__IPU_CSI0_D_6 IOMUX_PAD(0x404, 0x0D8, 0, __NA_, 0, NO_PAD_CTRL) |
1534 | #define MX53_PAD_CSI0_DAT7__AUDMUX_AUD3_RXD (_MX53_PAD_CSI0_DAT7__AUDMUX_AUD3_RXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 360 | #define MX53_PAD_CSI0_DAT6__GPIO5_24 IOMUX_PAD(0x404, 0x0D8, 1, __NA_, 0, NO_PAD_CTRL) |
1535 | #define MX53_PAD_CSI0_DAT7__EMI_EMI_DEBUG_36 (_MX53_PAD_CSI0_DAT7__EMI_EMI_DEBUG_36 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 361 | #define MX53_PAD_CSI0_DAT6__KPP_COL_6 IOMUX_PAD(0x404, 0x0D8, 2, 0x844, 0, NO_PAD_CTRL) |
1536 | #define MX53_PAD_CSI0_DAT7__TPIU_TRACE_4 (_MX53_PAD_CSI0_DAT7__TPIU_TRACE_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 362 | #define MX53_PAD_CSI0_DAT6__ECSPI1_MISO IOMUX_PAD(0x404, 0x0D8, 3, 0x7A0, 2, NO_PAD_CTRL) |
1537 | #define MX53_PAD_CSI0_DAT8__IPU_CSI0_D_8 (_MX53_PAD_CSI0_DAT8__IPU_CSI0_D_8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 363 | #define MX53_PAD_CSI0_DAT6__USBOH3_USBH3_CLK IOMUX_PAD(0x404, 0x0D8, 4, __NA_, 0, NO_PAD_CTRL) |
1538 | #define MX53_PAD_CSI0_DAT8__GPIO5_26 (_MX53_PAD_CSI0_DAT8__GPIO5_26 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 364 | #define MX53_PAD_CSI0_DAT6__AUDMUX_AUD3_TXFS IOMUX_PAD(0x404, 0x0D8, 5, __NA_, 0, NO_PAD_CTRL) |
1539 | #define MX53_PAD_CSI0_DAT8__KPP_COL_7 (_MX53_PAD_CSI0_DAT8__KPP_COL_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 365 | #define MX53_PAD_CSI0_DAT6__EMI_EMI_DEBUG_35 IOMUX_PAD(0x404, 0x0D8, 6, __NA_, 0, NO_PAD_CTRL) |
1540 | #define MX53_PAD_CSI0_DAT8__ECSPI2_SCLK (_MX53_PAD_CSI0_DAT8__ECSPI2_SCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 366 | #define MX53_PAD_CSI0_DAT6__TPIU_TRACE_3 IOMUX_PAD(0x404, 0x0D8, 7, __NA_, 0, NO_PAD_CTRL) |
1541 | #define MX53_PAD_CSI0_DAT8__USBOH3_USBH3_OC (_MX53_PAD_CSI0_DAT8__USBOH3_USBH3_OC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 367 | #define MX53_PAD_CSI0_DAT7__IPU_CSI0_D_7 IOMUX_PAD(0x408, 0x0DC, 0, __NA_, 0, NO_PAD_CTRL) |
1542 | #define MX53_PAD_CSI0_DAT8__I2C1_SDA (_MX53_PAD_CSI0_DAT8__I2C1_SDA | MUX_PAD_CTRL(PAD_CTRL_I2C)) | 368 | #define MX53_PAD_CSI0_DAT7__GPIO5_25 IOMUX_PAD(0x408, 0x0DC, 1, __NA_, 0, NO_PAD_CTRL) |
1543 | #define MX53_PAD_CSI0_DAT8__EMI_EMI_DEBUG_37 (_MX53_PAD_CSI0_DAT8__EMI_EMI_DEBUG_37 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 369 | #define MX53_PAD_CSI0_DAT7__KPP_ROW_6 IOMUX_PAD(0x408, 0x0DC, 2, 0x850, 0, NO_PAD_CTRL) |
1544 | #define MX53_PAD_CSI0_DAT8__TPIU_TRACE_5 (_MX53_PAD_CSI0_DAT8__TPIU_TRACE_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 370 | #define MX53_PAD_CSI0_DAT7__ECSPI1_SS0 IOMUX_PAD(0x408, 0x0DC, 3, 0x7A8, 2, NO_PAD_CTRL) |
1545 | #define MX53_PAD_CSI0_DAT9__IPU_CSI0_D_9 (_MX53_PAD_CSI0_DAT9__IPU_CSI0_D_9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 371 | #define MX53_PAD_CSI0_DAT7__USBOH3_USBH3_DIR IOMUX_PAD(0x408, 0x0DC, 4, __NA_, 0, NO_PAD_CTRL) |
1546 | #define MX53_PAD_CSI0_DAT9__GPIO5_27 (_MX53_PAD_CSI0_DAT9__GPIO5_27 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 372 | #define MX53_PAD_CSI0_DAT7__AUDMUX_AUD3_RXD IOMUX_PAD(0x408, 0x0DC, 5, __NA_, 0, NO_PAD_CTRL) |
1547 | #define MX53_PAD_CSI0_DAT9__KPP_ROW_7 (_MX53_PAD_CSI0_DAT9__KPP_ROW_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 373 | #define MX53_PAD_CSI0_DAT7__EMI_EMI_DEBUG_36 IOMUX_PAD(0x408, 0x0DC, 6, __NA_, 0, NO_PAD_CTRL) |
1548 | #define MX53_PAD_CSI0_DAT9__ECSPI2_MOSI (_MX53_PAD_CSI0_DAT9__ECSPI2_MOSI | MUX_PAD_CTRL(NO_PAD_CTRL)) | 374 | #define MX53_PAD_CSI0_DAT7__TPIU_TRACE_4 IOMUX_PAD(0x408, 0x0DC, 7, __NA_, 0, NO_PAD_CTRL) |
1549 | #define MX53_PAD_CSI0_DAT9__USBOH3_USBH3_PWR (_MX53_PAD_CSI0_DAT9__USBOH3_USBH3_PWR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 375 | #define MX53_PAD_CSI0_DAT8__IPU_CSI0_D_8 IOMUX_PAD(0x40C, 0x0E0, 0, __NA_, 0, NO_PAD_CTRL) |
1550 | #define MX53_PAD_CSI0_DAT9__I2C1_SCL (_MX53_PAD_CSI0_DAT9__I2C1_SCL | MUX_PAD_CTRL(PAD_CTRL_I2C)) | 376 | #define MX53_PAD_CSI0_DAT8__GPIO5_26 IOMUX_PAD(0x40C, 0x0E0, 1, __NA_, 0, NO_PAD_CTRL) |
1551 | #define MX53_PAD_CSI0_DAT9__EMI_EMI_DEBUG_38 (_MX53_PAD_CSI0_DAT9__EMI_EMI_DEBUG_38 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 377 | #define MX53_PAD_CSI0_DAT8__KPP_COL_7 IOMUX_PAD(0x40C, 0x0E0, 2, 0x848, 0, NO_PAD_CTRL) |
1552 | #define MX53_PAD_CSI0_DAT9__TPIU_TRACE_6 (_MX53_PAD_CSI0_DAT9__TPIU_TRACE_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 378 | #define MX53_PAD_CSI0_DAT8__ECSPI2_SCLK IOMUX_PAD(0x40C, 0x0E0, 3, 0x7B8, 1, NO_PAD_CTRL) |
1553 | #define MX53_PAD_CSI0_DAT10__IPU_CSI0_D_10 (_MX53_PAD_CSI0_DAT10__IPU_CSI0_D_10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 379 | #define MX53_PAD_CSI0_DAT8__USBOH3_USBH3_OC IOMUX_PAD(0x40C, 0x0E0, 4, __NA_, 0, NO_PAD_CTRL) |
1554 | #define MX53_PAD_CSI0_DAT10__GPIO5_28 (_MX53_PAD_CSI0_DAT10__GPIO5_28 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 380 | #define MX53_PAD_CSI0_DAT8__I2C1_SDA IOMUX_PAD(0x40C, 0x0E0, 5 | IOMUX_CONFIG_SION, 0x818, 0, NO_PAD_CTRL) |
1555 | #define MX53_PAD_CSI0_DAT10__UART1_TXD_MUX (_MX53_PAD_CSI0_DAT10__UART1_TXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 381 | #define MX53_PAD_CSI0_DAT8__EMI_EMI_DEBUG_37 IOMUX_PAD(0x40C, 0x0E0, 6, __NA_, 0, NO_PAD_CTRL) |
1556 | #define MX53_PAD_CSI0_DAT10__ECSPI2_MISO (_MX53_PAD_CSI0_DAT10__ECSPI2_MISO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 382 | #define MX53_PAD_CSI0_DAT8__TPIU_TRACE_5 IOMUX_PAD(0x40C, 0x0E0, 7, __NA_, 0, NO_PAD_CTRL) |
1557 | #define MX53_PAD_CSI0_DAT10__AUDMUX_AUD3_RXC (_MX53_PAD_CSI0_DAT10__AUDMUX_AUD3_RXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 383 | #define MX53_PAD_CSI0_DAT9__IPU_CSI0_D_9 IOMUX_PAD(0x410, 0x0E4, 0, __NA_, 0, NO_PAD_CTRL) |
1558 | #define MX53_PAD_CSI0_DAT10__SDMA_DEBUG_PC_4 (_MX53_PAD_CSI0_DAT10__SDMA_DEBUG_PC_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 384 | #define MX53_PAD_CSI0_DAT9__GPIO5_27 IOMUX_PAD(0x410, 0x0E4, 1, __NA_, 0, NO_PAD_CTRL) |
1559 | #define MX53_PAD_CSI0_DAT10__EMI_EMI_DEBUG_39 (_MX53_PAD_CSI0_DAT10__EMI_EMI_DEBUG_39 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 385 | #define MX53_PAD_CSI0_DAT9__KPP_ROW_7 IOMUX_PAD(0x410, 0x0E4, 2, 0x854, 0, NO_PAD_CTRL) |
1560 | #define MX53_PAD_CSI0_DAT10__TPIU_TRACE_7 (_MX53_PAD_CSI0_DAT10__TPIU_TRACE_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 386 | #define MX53_PAD_CSI0_DAT9__ECSPI2_MOSI IOMUX_PAD(0x410, 0x0E4, 3, 0x7C0, 1, NO_PAD_CTRL) |
1561 | #define MX53_PAD_CSI0_DAT11__IPU_CSI0_D_11 (_MX53_PAD_CSI0_DAT11__IPU_CSI0_D_11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 387 | #define MX53_PAD_CSI0_DAT9__USBOH3_USBH3_PWR IOMUX_PAD(0x410, 0x0E4, 4, __NA_, 0, NO_PAD_CTRL) |
1562 | #define MX53_PAD_CSI0_DAT11__GPIO5_29 (_MX53_PAD_CSI0_DAT11__GPIO5_29 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 388 | #define MX53_PAD_CSI0_DAT9__I2C1_SCL IOMUX_PAD(0x410, 0x0E4, 5 | IOMUX_CONFIG_SION, 0x814, 0, NO_PAD_CTRL) |
1563 | #define MX53_PAD_CSI0_DAT11__UART1_RXD_MUX (_MX53_PAD_CSI0_DAT11__UART1_RXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 389 | #define MX53_PAD_CSI0_DAT9__EMI_EMI_DEBUG_38 IOMUX_PAD(0x410, 0x0E4, 6, __NA_, 0, NO_PAD_CTRL) |
1564 | #define MX53_PAD_CSI0_DAT11__ECSPI2_SS0 (_MX53_PAD_CSI0_DAT11__ECSPI2_SS0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 390 | #define MX53_PAD_CSI0_DAT9__TPIU_TRACE_6 IOMUX_PAD(0x410, 0x0E4, 7, __NA_, 0, NO_PAD_CTRL) |
1565 | #define MX53_PAD_CSI0_DAT11__AUDMUX_AUD3_RXFS (_MX53_PAD_CSI0_DAT11__AUDMUX_AUD3_RXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 391 | #define MX53_PAD_CSI0_DAT10__IPU_CSI0_D_10 IOMUX_PAD(0x414, 0x0E8, 0, __NA_, 0, NO_PAD_CTRL) |
1566 | #define MX53_PAD_CSI0_DAT11__SDMA_DEBUG_PC_5 (_MX53_PAD_CSI0_DAT11__SDMA_DEBUG_PC_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 392 | #define MX53_PAD_CSI0_DAT10__GPIO5_28 IOMUX_PAD(0x414, 0x0E8, 1, __NA_, 0, NO_PAD_CTRL) |
1567 | #define MX53_PAD_CSI0_DAT11__EMI_EMI_DEBUG_40 (_MX53_PAD_CSI0_DAT11__EMI_EMI_DEBUG_40 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 393 | #define MX53_PAD_CSI0_DAT10__UART1_TXD_MUX IOMUX_PAD(0x414, 0x0E8, 2, __NA_, 0, MX53_UART_PAD_CTRL) |
1568 | #define MX53_PAD_CSI0_DAT11__TPIU_TRACE_8 (_MX53_PAD_CSI0_DAT11__TPIU_TRACE_8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 394 | #define MX53_PAD_CSI0_DAT10__ECSPI2_MISO IOMUX_PAD(0x414, 0x0E8, 3, 0x7BC, 1, NO_PAD_CTRL) |
1569 | #define MX53_PAD_CSI0_DAT12__IPU_CSI0_D_12 (_MX53_PAD_CSI0_DAT12__IPU_CSI0_D_12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 395 | #define MX53_PAD_CSI0_DAT10__AUDMUX_AUD3_RXC IOMUX_PAD(0x414, 0x0E8, 4, __NA_, 0, NO_PAD_CTRL) |
1570 | #define MX53_PAD_CSI0_DAT12__GPIO5_30 (_MX53_PAD_CSI0_DAT12__GPIO5_30 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 396 | #define MX53_PAD_CSI0_DAT10__SDMA_DEBUG_PC_4 IOMUX_PAD(0x414, 0x0E8, 5, __NA_, 0, NO_PAD_CTRL) |
1571 | #define MX53_PAD_CSI0_DAT12__UART4_TXD_MUX (_MX53_PAD_CSI0_DAT12__UART4_TXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 397 | #define MX53_PAD_CSI0_DAT10__EMI_EMI_DEBUG_39 IOMUX_PAD(0x414, 0x0E8, 6, __NA_, 0, NO_PAD_CTRL) |
1572 | #define MX53_PAD_CSI0_DAT12__USBOH3_USBH3_DATA_0 (_MX53_PAD_CSI0_DAT12__USBOH3_USBH3_DATA_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 398 | #define MX53_PAD_CSI0_DAT10__TPIU_TRACE_7 IOMUX_PAD(0x414, 0x0E8, 7, __NA_, 0, NO_PAD_CTRL) |
1573 | #define MX53_PAD_CSI0_DAT12__SDMA_DEBUG_PC_6 (_MX53_PAD_CSI0_DAT12__SDMA_DEBUG_PC_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 399 | #define MX53_PAD_CSI0_DAT11__IPU_CSI0_D_11 IOMUX_PAD(0x418, 0x0EC, 0, __NA_, 0, NO_PAD_CTRL) |
1574 | #define MX53_PAD_CSI0_DAT12__EMI_EMI_DEBUG_41 (_MX53_PAD_CSI0_DAT12__EMI_EMI_DEBUG_41 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 400 | #define MX53_PAD_CSI0_DAT11__GPIO5_29 IOMUX_PAD(0x418, 0x0EC, 1, __NA_, 0, NO_PAD_CTRL) |
1575 | #define MX53_PAD_CSI0_DAT12__TPIU_TRACE_9 (_MX53_PAD_CSI0_DAT12__TPIU_TRACE_9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 401 | #define MX53_PAD_CSI0_DAT11__UART1_RXD_MUX IOMUX_PAD(0x418, 0x0EC, 2, 0x878, 1, MX53_UART_PAD_CTRL) |
1576 | #define MX53_PAD_CSI0_DAT13__IPU_CSI0_D_13 (_MX53_PAD_CSI0_DAT13__IPU_CSI0_D_13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 402 | #define MX53_PAD_CSI0_DAT11__ECSPI2_SS0 IOMUX_PAD(0x418, 0x0EC, 3, 0x7C4, 1, NO_PAD_CTRL) |
1577 | #define MX53_PAD_CSI0_DAT13__GPIO5_31 (_MX53_PAD_CSI0_DAT13__GPIO5_31 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 403 | #define MX53_PAD_CSI0_DAT11__AUDMUX_AUD3_RXFS IOMUX_PAD(0x418, 0x0EC, 4, __NA_, 0, NO_PAD_CTRL) |
1578 | #define MX53_PAD_CSI0_DAT13__UART4_RXD_MUX (_MX53_PAD_CSI0_DAT13__UART4_RXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 404 | #define MX53_PAD_CSI0_DAT11__SDMA_DEBUG_PC_5 IOMUX_PAD(0x418, 0x0EC, 5, __NA_, 0, NO_PAD_CTRL) |
1579 | #define MX53_PAD_CSI0_DAT13__USBOH3_USBH3_DATA_1 (_MX53_PAD_CSI0_DAT13__USBOH3_USBH3_DATA_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 405 | #define MX53_PAD_CSI0_DAT11__EMI_EMI_DEBUG_40 IOMUX_PAD(0x418, 0x0EC, 6, __NA_, 0, NO_PAD_CTRL) |
1580 | #define MX53_PAD_CSI0_DAT13__SDMA_DEBUG_PC_7 (_MX53_PAD_CSI0_DAT13__SDMA_DEBUG_PC_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 406 | #define MX53_PAD_CSI0_DAT11__TPIU_TRACE_8 IOMUX_PAD(0x418, 0x0EC, 7, __NA_, 0, NO_PAD_CTRL) |
1581 | #define MX53_PAD_CSI0_DAT13__EMI_EMI_DEBUG_42 (_MX53_PAD_CSI0_DAT13__EMI_EMI_DEBUG_42 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 407 | #define MX53_PAD_CSI0_DAT12__IPU_CSI0_D_12 IOMUX_PAD(0x41C, 0x0F0, 0, __NA_, 0, NO_PAD_CTRL) |
1582 | #define MX53_PAD_CSI0_DAT13__TPIU_TRACE_10 (_MX53_PAD_CSI0_DAT13__TPIU_TRACE_10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 408 | #define MX53_PAD_CSI0_DAT12__GPIO5_30 IOMUX_PAD(0x41C, 0x0F0, 1, __NA_, 0, NO_PAD_CTRL) |
1583 | #define MX53_PAD_CSI0_DAT14__IPU_CSI0_D_14 (_MX53_PAD_CSI0_DAT14__IPU_CSI0_D_14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 409 | #define MX53_PAD_CSI0_DAT12__UART4_TXD_MUX IOMUX_PAD(0x41C, 0x0F0, 2, __NA_, 0, MX53_UART_PAD_CTRL) |
1584 | #define MX53_PAD_CSI0_DAT14__GPIO6_0 (_MX53_PAD_CSI0_DAT14__GPIO6_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 410 | #define MX53_PAD_CSI0_DAT12__USBOH3_USBH3_DATA_0 IOMUX_PAD(0x41C, 0x0F0, 4, __NA_, 0, NO_PAD_CTRL) |
1585 | #define MX53_PAD_CSI0_DAT14__UART5_TXD_MUX (_MX53_PAD_CSI0_DAT14__UART5_TXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 411 | #define MX53_PAD_CSI0_DAT12__SDMA_DEBUG_PC_6 IOMUX_PAD(0x41C, 0x0F0, 5, __NA_, 0, NO_PAD_CTRL) |
1586 | #define MX53_PAD_CSI0_DAT14__USBOH3_USBH3_DATA_2 (_MX53_PAD_CSI0_DAT14__USBOH3_USBH3_DATA_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 412 | #define MX53_PAD_CSI0_DAT12__EMI_EMI_DEBUG_41 IOMUX_PAD(0x41C, 0x0F0, 6, __NA_, 0, NO_PAD_CTRL) |
1587 | #define MX53_PAD_CSI0_DAT14__SDMA_DEBUG_PC_8 (_MX53_PAD_CSI0_DAT14__SDMA_DEBUG_PC_8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 413 | #define MX53_PAD_CSI0_DAT12__TPIU_TRACE_9 IOMUX_PAD(0x41C, 0x0F0, 7, __NA_, 0, NO_PAD_CTRL) |
1588 | #define MX53_PAD_CSI0_DAT14__EMI_EMI_DEBUG_43 (_MX53_PAD_CSI0_DAT14__EMI_EMI_DEBUG_43 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 414 | #define MX53_PAD_CSI0_DAT13__IPU_CSI0_D_13 IOMUX_PAD(0x420, 0x0F4, 0, __NA_, 0, NO_PAD_CTRL) |
1589 | #define MX53_PAD_CSI0_DAT14__TPIU_TRACE_11 (_MX53_PAD_CSI0_DAT14__TPIU_TRACE_11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 415 | #define MX53_PAD_CSI0_DAT13__GPIO5_31 IOMUX_PAD(0x420, 0x0F4, 1, __NA_, 0, NO_PAD_CTRL) |
1590 | #define MX53_PAD_CSI0_DAT15__IPU_CSI0_D_15 (_MX53_PAD_CSI0_DAT15__IPU_CSI0_D_15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 416 | #define MX53_PAD_CSI0_DAT13__UART4_RXD_MUX IOMUX_PAD(0x420, 0x0F4, 2, 0x890, 3, MX53_UART_PAD_CTRL) |
1591 | #define MX53_PAD_CSI0_DAT15__GPIO6_1 (_MX53_PAD_CSI0_DAT15__GPIO6_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 417 | #define MX53_PAD_CSI0_DAT13__USBOH3_USBH3_DATA_1 IOMUX_PAD(0x420, 0x0F4, 4, __NA_, 0, NO_PAD_CTRL) |
1592 | #define MX53_PAD_CSI0_DAT15__UART5_RXD_MUX (_MX53_PAD_CSI0_DAT15__UART5_RXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 418 | #define MX53_PAD_CSI0_DAT13__SDMA_DEBUG_PC_7 IOMUX_PAD(0x420, 0x0F4, 5, __NA_, 0, NO_PAD_CTRL) |
1593 | #define MX53_PAD_CSI0_DAT15__USBOH3_USBH3_DATA_3 (_MX53_PAD_CSI0_DAT15__USBOH3_USBH3_DATA_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 419 | #define MX53_PAD_CSI0_DAT13__EMI_EMI_DEBUG_42 IOMUX_PAD(0x420, 0x0F4, 6, __NA_, 0, NO_PAD_CTRL) |
1594 | #define MX53_PAD_CSI0_DAT15__SDMA_DEBUG_PC_9 (_MX53_PAD_CSI0_DAT15__SDMA_DEBUG_PC_9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 420 | #define MX53_PAD_CSI0_DAT13__TPIU_TRACE_10 IOMUX_PAD(0x420, 0x0F4, 7, __NA_, 0, NO_PAD_CTRL) |
1595 | #define MX53_PAD_CSI0_DAT15__EMI_EMI_DEBUG_44 (_MX53_PAD_CSI0_DAT15__EMI_EMI_DEBUG_44 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 421 | #define MX53_PAD_CSI0_DAT14__IPU_CSI0_D_14 IOMUX_PAD(0x424, 0x0F8, 0, __NA_, 0, NO_PAD_CTRL) |
1596 | #define MX53_PAD_CSI0_DAT15__TPIU_TRACE_12 (_MX53_PAD_CSI0_DAT15__TPIU_TRACE_12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 422 | #define MX53_PAD_CSI0_DAT14__GPIO6_0 IOMUX_PAD(0x424, 0x0F8, 1, __NA_, 0, NO_PAD_CTRL) |
1597 | #define MX53_PAD_CSI0_DAT16__IPU_CSI0_D_16 (_MX53_PAD_CSI0_DAT16__IPU_CSI0_D_16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 423 | #define MX53_PAD_CSI0_DAT14__UART5_TXD_MUX IOMUX_PAD(0x424, 0x0F8, 2, __NA_, 0, MX53_UART_PAD_CTRL) |
1598 | #define MX53_PAD_CSI0_DAT16__GPIO6_2 (_MX53_PAD_CSI0_DAT16__GPIO6_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 424 | #define MX53_PAD_CSI0_DAT14__USBOH3_USBH3_DATA_2 IOMUX_PAD(0x424, 0x0F8, 4, __NA_, 0, NO_PAD_CTRL) |
1599 | #define MX53_PAD_CSI0_DAT16__UART4_RTS (_MX53_PAD_CSI0_DAT16__UART4_RTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 425 | #define MX53_PAD_CSI0_DAT14__SDMA_DEBUG_PC_8 IOMUX_PAD(0x424, 0x0F8, 5, __NA_, 0, NO_PAD_CTRL) |
1600 | #define MX53_PAD_CSI0_DAT16__USBOH3_USBH3_DATA_4 (_MX53_PAD_CSI0_DAT16__USBOH3_USBH3_DATA_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 426 | #define MX53_PAD_CSI0_DAT14__EMI_EMI_DEBUG_43 IOMUX_PAD(0x424, 0x0F8, 6, __NA_, 0, NO_PAD_CTRL) |
1601 | #define MX53_PAD_CSI0_DAT16__SDMA_DEBUG_PC_10 (_MX53_PAD_CSI0_DAT16__SDMA_DEBUG_PC_10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 427 | #define MX53_PAD_CSI0_DAT14__TPIU_TRACE_11 IOMUX_PAD(0x424, 0x0F8, 7, __NA_, 0, NO_PAD_CTRL) |
1602 | #define MX53_PAD_CSI0_DAT16__EMI_EMI_DEBUG_45 (_MX53_PAD_CSI0_DAT16__EMI_EMI_DEBUG_45 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 428 | #define MX53_PAD_CSI0_DAT15__IPU_CSI0_D_15 IOMUX_PAD(0x428, 0x0FC, 0, __NA_, 0, NO_PAD_CTRL) |
1603 | #define MX53_PAD_CSI0_DAT16__TPIU_TRACE_13 (_MX53_PAD_CSI0_DAT16__TPIU_TRACE_13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 429 | #define MX53_PAD_CSI0_DAT15__GPIO6_1 IOMUX_PAD(0x428, 0x0FC, 1, __NA_, 0, NO_PAD_CTRL) |
1604 | #define MX53_PAD_CSI0_DAT17__IPU_CSI0_D_17 (_MX53_PAD_CSI0_DAT17__IPU_CSI0_D_17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 430 | #define MX53_PAD_CSI0_DAT15__UART5_RXD_MUX IOMUX_PAD(0x428, 0x0FC, 2, 0x898, 3, MX53_UART_PAD_CTRL) |
1605 | #define MX53_PAD_CSI0_DAT17__GPIO6_3 (_MX53_PAD_CSI0_DAT17__GPIO6_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 431 | #define MX53_PAD_CSI0_DAT15__USBOH3_USBH3_DATA_3 IOMUX_PAD(0x428, 0x0FC, 4, __NA_, 0, NO_PAD_CTRL) |
1606 | #define MX53_PAD_CSI0_DAT17__UART4_CTS (_MX53_PAD_CSI0_DAT17__UART4_CTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 432 | #define MX53_PAD_CSI0_DAT15__SDMA_DEBUG_PC_9 IOMUX_PAD(0x428, 0x0FC, 5, __NA_, 0, NO_PAD_CTRL) |
1607 | #define MX53_PAD_CSI0_DAT17__USBOH3_USBH3_DATA_5 (_MX53_PAD_CSI0_DAT17__USBOH3_USBH3_DATA_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 433 | #define MX53_PAD_CSI0_DAT15__EMI_EMI_DEBUG_44 IOMUX_PAD(0x428, 0x0FC, 6, __NA_, 0, NO_PAD_CTRL) |
1608 | #define MX53_PAD_CSI0_DAT17__SDMA_DEBUG_PC_11 (_MX53_PAD_CSI0_DAT17__SDMA_DEBUG_PC_11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 434 | #define MX53_PAD_CSI0_DAT15__TPIU_TRACE_12 IOMUX_PAD(0x428, 0x0FC, 7, __NA_, 0, NO_PAD_CTRL) |
1609 | #define MX53_PAD_CSI0_DAT17__EMI_EMI_DEBUG_46 (_MX53_PAD_CSI0_DAT17__EMI_EMI_DEBUG_46 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 435 | #define MX53_PAD_CSI0_DAT16__IPU_CSI0_D_16 IOMUX_PAD(0x42C, 0x100, 0, __NA_, 0, NO_PAD_CTRL) |
1610 | #define MX53_PAD_CSI0_DAT17__TPIU_TRACE_14 (_MX53_PAD_CSI0_DAT17__TPIU_TRACE_14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 436 | #define MX53_PAD_CSI0_DAT16__GPIO6_2 IOMUX_PAD(0x42C, 0x100, 1, __NA_, 0, NO_PAD_CTRL) |
1611 | #define MX53_PAD_CSI0_DAT18__IPU_CSI0_D_18 (_MX53_PAD_CSI0_DAT18__IPU_CSI0_D_18 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 437 | #define MX53_PAD_CSI0_DAT16__UART4_RTS IOMUX_PAD(0x42C, 0x100, 2, 0x88C, 0, MX53_UART_PAD_CTRL) |
1612 | #define MX53_PAD_CSI0_DAT18__GPIO6_4 (_MX53_PAD_CSI0_DAT18__GPIO6_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 438 | #define MX53_PAD_CSI0_DAT16__USBOH3_USBH3_DATA_4 IOMUX_PAD(0x42C, 0x100, 4, __NA_, 0, NO_PAD_CTRL) |
1613 | #define MX53_PAD_CSI0_DAT18__UART5_RTS (_MX53_PAD_CSI0_DAT18__UART5_RTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 439 | #define MX53_PAD_CSI0_DAT16__SDMA_DEBUG_PC_10 IOMUX_PAD(0x42C, 0x100, 5, __NA_, 0, NO_PAD_CTRL) |
1614 | #define MX53_PAD_CSI0_DAT18__USBOH3_USBH3_DATA_6 (_MX53_PAD_CSI0_DAT18__USBOH3_USBH3_DATA_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 440 | #define MX53_PAD_CSI0_DAT16__EMI_EMI_DEBUG_45 IOMUX_PAD(0x42C, 0x100, 6, __NA_, 0, NO_PAD_CTRL) |
1615 | #define MX53_PAD_CSI0_DAT18__SDMA_DEBUG_PC_12 (_MX53_PAD_CSI0_DAT18__SDMA_DEBUG_PC_12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 441 | #define MX53_PAD_CSI0_DAT16__TPIU_TRACE_13 IOMUX_PAD(0x42C, 0x100, 7, __NA_, 0, NO_PAD_CTRL) |
1616 | #define MX53_PAD_CSI0_DAT18__EMI_EMI_DEBUG_47 (_MX53_PAD_CSI0_DAT18__EMI_EMI_DEBUG_47 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 442 | #define MX53_PAD_CSI0_DAT17__IPU_CSI0_D_17 IOMUX_PAD(0x430, 0x104, 0, __NA_, 0, NO_PAD_CTRL) |
1617 | #define MX53_PAD_CSI0_DAT18__TPIU_TRACE_15 (_MX53_PAD_CSI0_DAT18__TPIU_TRACE_15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 443 | #define MX53_PAD_CSI0_DAT17__GPIO6_3 IOMUX_PAD(0x430, 0x104, 1, __NA_, 0, NO_PAD_CTRL) |
1618 | #define MX53_PAD_CSI0_DAT19__IPU_CSI0_D_19 (_MX53_PAD_CSI0_DAT19__IPU_CSI0_D_19 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 444 | #define MX53_PAD_CSI0_DAT17__UART4_CTS IOMUX_PAD(0x430, 0x104, 2, __NA_, 0, MX53_UART_PAD_CTRL) |
1619 | #define MX53_PAD_CSI0_DAT19__GPIO6_5 (_MX53_PAD_CSI0_DAT19__GPIO6_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 445 | #define MX53_PAD_CSI0_DAT17__USBOH3_USBH3_DATA_5 IOMUX_PAD(0x430, 0x104, 4, __NA_, 0, NO_PAD_CTRL) |
1620 | #define MX53_PAD_CSI0_DAT19__UART5_CTS (_MX53_PAD_CSI0_DAT19__UART5_CTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 446 | #define MX53_PAD_CSI0_DAT17__SDMA_DEBUG_PC_11 IOMUX_PAD(0x430, 0x104, 5, __NA_, 0, NO_PAD_CTRL) |
1621 | #define MX53_PAD_CSI0_DAT19__USBOH3_USBH3_DATA_7 (_MX53_PAD_CSI0_DAT19__USBOH3_USBH3_DATA_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 447 | #define MX53_PAD_CSI0_DAT17__EMI_EMI_DEBUG_46 IOMUX_PAD(0x430, 0x104, 6, __NA_, 0, NO_PAD_CTRL) |
1622 | #define MX53_PAD_CSI0_DAT19__SDMA_DEBUG_PC_13 (_MX53_PAD_CSI0_DAT19__SDMA_DEBUG_PC_13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 448 | #define MX53_PAD_CSI0_DAT17__TPIU_TRACE_14 IOMUX_PAD(0x430, 0x104, 7, __NA_, 0, NO_PAD_CTRL) |
1623 | #define MX53_PAD_CSI0_DAT19__EMI_EMI_DEBUG_48 (_MX53_PAD_CSI0_DAT19__EMI_EMI_DEBUG_48 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 449 | #define MX53_PAD_CSI0_DAT18__IPU_CSI0_D_18 IOMUX_PAD(0x434, 0x108, 0, __NA_, 0, NO_PAD_CTRL) |
1624 | #define MX53_PAD_CSI0_DAT19__USBPHY2_BISTOK (_MX53_PAD_CSI0_DAT19__USBPHY2_BISTOK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 450 | #define MX53_PAD_CSI0_DAT18__GPIO6_4 IOMUX_PAD(0x434, 0x108, 1, __NA_, 0, NO_PAD_CTRL) |
1625 | #define MX53_PAD_EIM_A25__EMI_WEIM_A_25 (_MX53_PAD_EIM_A25__EMI_WEIM_A_25 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 451 | #define MX53_PAD_CSI0_DAT18__UART5_RTS IOMUX_PAD(0x434, 0x108, 2, 0x894, 2, MX53_UART_PAD_CTRL) |
1626 | #define MX53_PAD_EIM_A25__GPIO5_2 (_MX53_PAD_EIM_A25__GPIO5_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 452 | #define MX53_PAD_CSI0_DAT18__USBOH3_USBH3_DATA_6 IOMUX_PAD(0x434, 0x108, 4, __NA_, 0, NO_PAD_CTRL) |
1627 | #define MX53_PAD_EIM_A25__ECSPI2_RDY (_MX53_PAD_EIM_A25__ECSPI2_RDY | MUX_PAD_CTRL(NO_PAD_CTRL)) | 453 | #define MX53_PAD_CSI0_DAT18__SDMA_DEBUG_PC_12 IOMUX_PAD(0x434, 0x108, 5, __NA_, 0, NO_PAD_CTRL) |
1628 | #define MX53_PAD_EIM_A25__IPU_DI1_PIN12 (_MX53_PAD_EIM_A25__IPU_DI1_PIN12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 454 | #define MX53_PAD_CSI0_DAT18__EMI_EMI_DEBUG_47 IOMUX_PAD(0x434, 0x108, 6, __NA_, 0, NO_PAD_CTRL) |
1629 | #define MX53_PAD_EIM_A25__CSPI_SS1 (_MX53_PAD_EIM_A25__CSPI_SS1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 455 | #define MX53_PAD_CSI0_DAT18__TPIU_TRACE_15 IOMUX_PAD(0x434, 0x108, 7, __NA_, 0, NO_PAD_CTRL) |
1630 | #define MX53_PAD_EIM_A25__IPU_DI0_D1_CS (_MX53_PAD_EIM_A25__IPU_DI0_D1_CS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 456 | #define MX53_PAD_CSI0_DAT19__IPU_CSI0_D_19 IOMUX_PAD(0x438, 0x10C, 0, __NA_, 0, NO_PAD_CTRL) |
1631 | #define MX53_PAD_EIM_A25__USBPHY1_BISTOK (_MX53_PAD_EIM_A25__USBPHY1_BISTOK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 457 | #define MX53_PAD_CSI0_DAT19__GPIO6_5 IOMUX_PAD(0x438, 0x10C, 1, __NA_, 0, NO_PAD_CTRL) |
1632 | #define MX53_PAD_EIM_EB2__EMI_WEIM_EB_2 (_MX53_PAD_EIM_EB2__EMI_WEIM_EB_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 458 | #define MX53_PAD_CSI0_DAT19__UART5_CTS IOMUX_PAD(0x438, 0x10C, 2, __NA_, 0, MX53_UART_PAD_CTRL) |
1633 | #define MX53_PAD_EIM_EB2__GPIO2_30 (_MX53_PAD_EIM_EB2__GPIO2_30 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 459 | #define MX53_PAD_CSI0_DAT19__USBOH3_USBH3_DATA_7 IOMUX_PAD(0x438, 0x10C, 4, __NA_, 0, NO_PAD_CTRL) |
1634 | #define MX53_PAD_EIM_EB2__CCM_DI1_EXT_CLK (_MX53_PAD_EIM_EB2__CCM_DI1_EXT_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 460 | #define MX53_PAD_CSI0_DAT19__SDMA_DEBUG_PC_13 IOMUX_PAD(0x438, 0x10C, 5, __NA_, 0, NO_PAD_CTRL) |
1635 | #define MX53_PAD_EIM_EB2__IPU_SER_DISP1_CS (_MX53_PAD_EIM_EB2__IPU_SER_DISP1_CS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 461 | #define MX53_PAD_CSI0_DAT19__EMI_EMI_DEBUG_48 IOMUX_PAD(0x438, 0x10C, 6, __NA_, 0, NO_PAD_CTRL) |
1636 | #define MX53_PAD_EIM_EB2__ECSPI1_SS0 (_MX53_PAD_EIM_EB2__ECSPI1_SS0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 462 | #define MX53_PAD_CSI0_DAT19__USBPHY2_BISTOK IOMUX_PAD(0x438, 0x10C, 7, __NA_, 0, NO_PAD_CTRL) |
1637 | #define MX53_PAD_EIM_EB2__I2C2_SCL (_MX53_PAD_EIM_EB2__I2C2_SCL | MUX_PAD_CTRL(PAD_CTRL_I2C)) | 463 | #define MX53_PAD_EIM_A25__EMI_WEIM_A_25 IOMUX_PAD(0x458, 0x110, 0, __NA_, 0, NO_PAD_CTRL) |
1638 | #define MX53_PAD_EIM_D16__EMI_WEIM_D_16 (_MX53_PAD_EIM_D16__EMI_WEIM_D_16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 464 | #define MX53_PAD_EIM_A25__GPIO5_2 IOMUX_PAD(0x458, 0x110, 1, __NA_, 0, NO_PAD_CTRL) |
1639 | #define MX53_PAD_EIM_D16__GPIO3_16 (_MX53_PAD_EIM_D16__GPIO3_16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 465 | #define MX53_PAD_EIM_A25__ECSPI2_RDY IOMUX_PAD(0x458, 0x110, 2, __NA_, 0, NO_PAD_CTRL) |
1640 | #define MX53_PAD_EIM_D16__IPU_DI0_PIN5 (_MX53_PAD_EIM_D16__IPU_DI0_PIN5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 466 | #define MX53_PAD_EIM_A25__IPU_DI1_PIN12 IOMUX_PAD(0x458, 0x110, 3, __NA_, 0, NO_PAD_CTRL) |
1641 | #define MX53_PAD_EIM_D16__IPU_DISPB1_SER_CLK (_MX53_PAD_EIM_D16__IPU_DISPB1_SER_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 467 | #define MX53_PAD_EIM_A25__CSPI_SS1 IOMUX_PAD(0x458, 0x110, 4, 0x790, 1, NO_PAD_CTRL) |
1642 | #define MX53_PAD_EIM_D16__ECSPI1_SCLK (_MX53_PAD_EIM_D16__ECSPI1_SCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 468 | #define MX53_PAD_EIM_A25__IPU_DI0_D1_CS IOMUX_PAD(0x458, 0x110, 6, __NA_, 0, NO_PAD_CTRL) |
1643 | #define MX53_PAD_EIM_D16__I2C2_SDA (_MX53_PAD_EIM_D16__I2C2_SDA | MUX_PAD_CTRL(PAD_CTRL_I2C)) | 469 | #define MX53_PAD_EIM_A25__USBPHY1_BISTOK IOMUX_PAD(0x458, 0x110, 7, __NA_, 0, NO_PAD_CTRL) |
1644 | #define MX53_PAD_EIM_D17__EMI_WEIM_D_17 (_MX53_PAD_EIM_D17__EMI_WEIM_D_17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 470 | #define MX53_PAD_EIM_EB2__EMI_WEIM_EB_2 IOMUX_PAD(0x45C, 0x114, 0, __NA_, 0, NO_PAD_CTRL) |
1645 | #define MX53_PAD_EIM_D17__GPIO3_17 (_MX53_PAD_EIM_D17__GPIO3_17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 471 | #define MX53_PAD_EIM_EB2__GPIO2_30 IOMUX_PAD(0x45C, 0x114, 1, __NA_, 0, NO_PAD_CTRL) |
1646 | #define MX53_PAD_EIM_D17__IPU_DI0_PIN6 (_MX53_PAD_EIM_D17__IPU_DI0_PIN6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 472 | #define MX53_PAD_EIM_EB2__CCM_DI1_EXT_CLK IOMUX_PAD(0x45C, 0x114, 2, 0x76C, 0, NO_PAD_CTRL) |
1647 | #define MX53_PAD_EIM_D17__IPU_DISPB1_SER_DIN (_MX53_PAD_EIM_D17__IPU_DISPB1_SER_DIN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 473 | #define MX53_PAD_EIM_EB2__IPU_SER_DISP1_CS IOMUX_PAD(0x45C, 0x114, 3, __NA_, 0, NO_PAD_CTRL) |
1648 | #define MX53_PAD_EIM_D17__ECSPI1_MISO (_MX53_PAD_EIM_D17__ECSPI1_MISO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 474 | #define MX53_PAD_EIM_EB2__ECSPI1_SS0 IOMUX_PAD(0x45C, 0x114, 4, 0x7A8, 3, NO_PAD_CTRL) |
1649 | #define MX53_PAD_EIM_D17__I2C3_SCL (_MX53_PAD_EIM_D17__I2C3_SCL | MUX_PAD_CTRL(PAD_CTRL_I2C)) | 475 | #define MX53_PAD_EIM_EB2__I2C2_SCL IOMUX_PAD(0x45C, 0x114, 5 | IOMUX_CONFIG_SION, 0x81C, 1, NO_PAD_CTRL) |
1650 | #define MX53_PAD_EIM_D18__EMI_WEIM_D_18 (_MX53_PAD_EIM_D18__EMI_WEIM_D_18 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 476 | #define MX53_PAD_EIM_D16__EMI_WEIM_D_16 IOMUX_PAD(0x460, 0x118, 0, __NA_, 0, NO_PAD_CTRL) |
1651 | #define MX53_PAD_EIM_D18__GPIO3_18 (_MX53_PAD_EIM_D18__GPIO3_18 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 477 | #define MX53_PAD_EIM_D16__GPIO3_16 IOMUX_PAD(0x460, 0x118, 1, __NA_, 0, NO_PAD_CTRL) |
1652 | #define MX53_PAD_EIM_D18__IPU_DI0_PIN7 (_MX53_PAD_EIM_D18__IPU_DI0_PIN7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 478 | #define MX53_PAD_EIM_D16__IPU_DI0_PIN5 IOMUX_PAD(0x460, 0x118, 2, __NA_, 0, NO_PAD_CTRL) |
1653 | #define MX53_PAD_EIM_D18__IPU_DISPB1_SER_DIO (_MX53_PAD_EIM_D18__IPU_DISPB1_SER_DIO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 479 | #define MX53_PAD_EIM_D16__IPU_DISPB1_SER_CLK IOMUX_PAD(0x460, 0x118, 3, __NA_, 0, NO_PAD_CTRL) |
1654 | #define MX53_PAD_EIM_D18__ECSPI1_MOSI (_MX53_PAD_EIM_D18__ECSPI1_MOSI | MUX_PAD_CTRL(NO_PAD_CTRL)) | 480 | #define MX53_PAD_EIM_D16__ECSPI1_SCLK IOMUX_PAD(0x460, 0x118, 4, 0x79C, 3, NO_PAD_CTRL) |
1655 | #define MX53_PAD_EIM_D18__I2C3_SDA (_MX53_PAD_EIM_D18__I2C3_SDA | MUX_PAD_CTRL(PAD_CTRL_I2C)) | 481 | #define MX53_PAD_EIM_D16__I2C2_SDA IOMUX_PAD(0x460, 0x118, 5 | IOMUX_CONFIG_SION, 0x820, 1, NO_PAD_CTRL) |
1656 | #define MX53_PAD_EIM_D18__IPU_DI1_D0_CS (_MX53_PAD_EIM_D18__IPU_DI1_D0_CS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 482 | #define MX53_PAD_EIM_D17__EMI_WEIM_D_17 IOMUX_PAD(0x464, 0x11C, 0, __NA_, 0, NO_PAD_CTRL) |
1657 | #define MX53_PAD_EIM_D19__EMI_WEIM_D_19 (_MX53_PAD_EIM_D19__EMI_WEIM_D_19 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 483 | #define MX53_PAD_EIM_D17__GPIO3_17 IOMUX_PAD(0x464, 0x11C, 1, __NA_, 0, NO_PAD_CTRL) |
1658 | #define MX53_PAD_EIM_D19__GPIO3_19 (_MX53_PAD_EIM_D19__GPIO3_19 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 484 | #define MX53_PAD_EIM_D17__IPU_DI0_PIN6 IOMUX_PAD(0x464, 0x11C, 2, __NA_, 0, NO_PAD_CTRL) |
1659 | #define MX53_PAD_EIM_D19__IPU_DI0_PIN8 (_MX53_PAD_EIM_D19__IPU_DI0_PIN8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 485 | #define MX53_PAD_EIM_D17__IPU_DISPB1_SER_DIN IOMUX_PAD(0x464, 0x11C, 3, 0x830, 0, NO_PAD_CTRL) |
1660 | #define MX53_PAD_EIM_D19__IPU_DISPB1_SER_RS (_MX53_PAD_EIM_D19__IPU_DISPB1_SER_RS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 486 | #define MX53_PAD_EIM_D17__ECSPI1_MISO IOMUX_PAD(0x464, 0x11C, 4, 0x7A0, 3, NO_PAD_CTRL) |
1661 | #define MX53_PAD_EIM_D19__ECSPI1_SS1 (_MX53_PAD_EIM_D19__ECSPI1_SS1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 487 | #define MX53_PAD_EIM_D17__I2C3_SCL IOMUX_PAD(0x464, 0x11C, 5 | IOMUX_CONFIG_SION, 0x824, 0, NO_PAD_CTRL) |
1662 | #define MX53_PAD_EIM_D19__EPIT1_EPITO (_MX53_PAD_EIM_D19__EPIT1_EPITO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 488 | #define MX53_PAD_EIM_D18__EMI_WEIM_D_18 IOMUX_PAD(0x468, 0x120, 0, __NA_, 0, NO_PAD_CTRL) |
1663 | #define MX53_PAD_EIM_D19__UART1_CTS (_MX53_PAD_EIM_D19__UART1_CTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 489 | #define MX53_PAD_EIM_D18__GPIO3_18 IOMUX_PAD(0x468, 0x120, 1, __NA_, 0, NO_PAD_CTRL) |
1664 | #define MX53_PAD_EIM_D19__USBOH3_USBH2_OC (_MX53_PAD_EIM_D19__USBOH3_USBH2_OC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 490 | #define MX53_PAD_EIM_D18__IPU_DI0_PIN7 IOMUX_PAD(0x468, 0x120, 2, __NA_, 0, NO_PAD_CTRL) |
1665 | #define MX53_PAD_EIM_D20__EMI_WEIM_D_20 (_MX53_PAD_EIM_D20__EMI_WEIM_D_20 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 491 | #define MX53_PAD_EIM_D18__IPU_DISPB1_SER_DIO IOMUX_PAD(0x468, 0x120, 3, 0x830, 1, NO_PAD_CTRL) |
1666 | #define MX53_PAD_EIM_D20__GPIO3_20 (_MX53_PAD_EIM_D20__GPIO3_20 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 492 | #define MX53_PAD_EIM_D18__ECSPI1_MOSI IOMUX_PAD(0x468, 0x120, 4, 0x7A4, 3, NO_PAD_CTRL) |
1667 | #define MX53_PAD_EIM_D20__IPU_DI0_PIN16 (_MX53_PAD_EIM_D20__IPU_DI0_PIN16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 493 | #define MX53_PAD_EIM_D18__I2C3_SDA IOMUX_PAD(0x468, 0x120, 5 | IOMUX_CONFIG_SION, 0x828, 0, NO_PAD_CTRL) |
1668 | #define MX53_PAD_EIM_D20__IPU_SER_DISP0_CS (_MX53_PAD_EIM_D20__IPU_SER_DISP0_CS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 494 | #define MX53_PAD_EIM_D18__IPU_DI1_D0_CS IOMUX_PAD(0x468, 0x120, 6, __NA_, 0, NO_PAD_CTRL) |
1669 | #define MX53_PAD_EIM_D20__CSPI_SS0 (_MX53_PAD_EIM_D20__CSPI_SS0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 495 | #define MX53_PAD_EIM_D19__EMI_WEIM_D_19 IOMUX_PAD(0x46C, 0x124, 0, __NA_, 0, NO_PAD_CTRL) |
1670 | #define MX53_PAD_EIM_D20__EPIT2_EPITO (_MX53_PAD_EIM_D20__EPIT2_EPITO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 496 | #define MX53_PAD_EIM_D19__GPIO3_19 IOMUX_PAD(0x46C, 0x124, 1, __NA_, 0, NO_PAD_CTRL) |
1671 | #define MX53_PAD_EIM_D20__UART1_RTS (_MX53_PAD_EIM_D20__UART1_RTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 497 | #define MX53_PAD_EIM_D19__IPU_DI0_PIN8 IOMUX_PAD(0x46C, 0x124, 2, __NA_, 0, NO_PAD_CTRL) |
1672 | #define MX53_PAD_EIM_D20__USBOH3_USBH2_PWR (_MX53_PAD_EIM_D20__USBOH3_USBH2_PWR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 498 | #define MX53_PAD_EIM_D19__IPU_DISPB1_SER_RS IOMUX_PAD(0x46C, 0x124, 3, __NA_, 0, NO_PAD_CTRL) |
1673 | #define MX53_PAD_EIM_D21__EMI_WEIM_D_21 (_MX53_PAD_EIM_D21__EMI_WEIM_D_21 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 499 | #define MX53_PAD_EIM_D19__ECSPI1_SS1 IOMUX_PAD(0x46C, 0x124, 4, 0x7AC, 2, NO_PAD_CTRL) |
1674 | #define MX53_PAD_EIM_D21__GPIO3_21 (_MX53_PAD_EIM_D21__GPIO3_21 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 500 | #define MX53_PAD_EIM_D19__EPIT1_EPITO IOMUX_PAD(0x46C, 0x124, 5, __NA_, 0, NO_PAD_CTRL) |
1675 | #define MX53_PAD_EIM_D21__IPU_DI0_PIN17 (_MX53_PAD_EIM_D21__IPU_DI0_PIN17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 501 | #define MX53_PAD_EIM_D19__UART1_CTS IOMUX_PAD(0x46C, 0x124, 6, __NA_, 0, MX53_UART_PAD_CTRL) |
1676 | #define MX53_PAD_EIM_D21__IPU_DISPB0_SER_CLK (_MX53_PAD_EIM_D21__IPU_DISPB0_SER_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 502 | #define MX53_PAD_EIM_D19__USBOH3_USBH2_OC IOMUX_PAD(0x46C, 0x124, 7, 0x8A4, 0, NO_PAD_CTRL) |
1677 | #define MX53_PAD_EIM_D21__CSPI_SCLK (_MX53_PAD_EIM_D21__CSPI_SCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 503 | #define MX53_PAD_EIM_D20__EMI_WEIM_D_20 IOMUX_PAD(0x470, 0x128, 0, __NA_, 0, NO_PAD_CTRL) |
1678 | #define MX53_PAD_EIM_D21__I2C1_SCL (_MX53_PAD_EIM_D21__I2C1_SCL | MUX_PAD_CTRL(PAD_CTRL_I2C)) | 504 | #define MX53_PAD_EIM_D20__GPIO3_20 IOMUX_PAD(0x470, 0x128, 1, __NA_, 0, NO_PAD_CTRL) |
1679 | #define MX53_PAD_EIM_D21__USBOH3_USBOTG_OC (_MX53_PAD_EIM_D21__USBOH3_USBOTG_OC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 505 | #define MX53_PAD_EIM_D20__IPU_DI0_PIN16 IOMUX_PAD(0x470, 0x128, 2, __NA_, 0, NO_PAD_CTRL) |
1680 | #define MX53_PAD_EIM_D22__EMI_WEIM_D_22 (_MX53_PAD_EIM_D22__EMI_WEIM_D_22 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 506 | #define MX53_PAD_EIM_D20__IPU_SER_DISP0_CS IOMUX_PAD(0x470, 0x128, 3, __NA_, 0, NO_PAD_CTRL) |
1681 | #define MX53_PAD_EIM_D22__GPIO3_22 (_MX53_PAD_EIM_D22__GPIO3_22 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 507 | #define MX53_PAD_EIM_D20__CSPI_SS0 IOMUX_PAD(0x470, 0x128, 4, 0x78C, 1, NO_PAD_CTRL) |
1682 | #define MX53_PAD_EIM_D22__IPU_DI0_PIN1 (_MX53_PAD_EIM_D22__IPU_DI0_PIN1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 508 | #define MX53_PAD_EIM_D20__EPIT2_EPITO IOMUX_PAD(0x470, 0x128, 5, __NA_, 0, NO_PAD_CTRL) |
1683 | #define MX53_PAD_EIM_D22__IPU_DISPB0_SER_DIN (_MX53_PAD_EIM_D22__IPU_DISPB0_SER_DIN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 509 | #define MX53_PAD_EIM_D20__UART1_RTS IOMUX_PAD(0x470, 0x128, 6, 0x874, 1, MX53_UART_PAD_CTRL) |
1684 | #define MX53_PAD_EIM_D22__CSPI_MISO (_MX53_PAD_EIM_D22__CSPI_MISO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 510 | #define MX53_PAD_EIM_D20__USBOH3_USBH2_PWR IOMUX_PAD(0x470, 0x128, 7, __NA_, 0, NO_PAD_CTRL) |
1685 | #define MX53_PAD_EIM_D22__USBOH3_USBOTG_PWR (_MX53_PAD_EIM_D22__USBOH3_USBOTG_PWR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 511 | #define MX53_PAD_EIM_D21__EMI_WEIM_D_21 IOMUX_PAD(0x474, 0x12C, 0, __NA_, 0, NO_PAD_CTRL) |
1686 | #define MX53_PAD_EIM_D23__EMI_WEIM_D_23 (_MX53_PAD_EIM_D23__EMI_WEIM_D_23 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 512 | #define MX53_PAD_EIM_D21__GPIO3_21 IOMUX_PAD(0x474, 0x12C, 1, __NA_, 0, NO_PAD_CTRL) |
1687 | #define MX53_PAD_EIM_D23__GPIO3_23 (_MX53_PAD_EIM_D23__GPIO3_23 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 513 | #define MX53_PAD_EIM_D21__IPU_DI0_PIN17 IOMUX_PAD(0x474, 0x12C, 2, __NA_, 0, NO_PAD_CTRL) |
1688 | #define MX53_PAD_EIM_D23__UART3_CTS (_MX53_PAD_EIM_D23__UART3_CTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 514 | #define MX53_PAD_EIM_D21__IPU_DISPB0_SER_CLK IOMUX_PAD(0x474, 0x12C, 3, __NA_, 0, NO_PAD_CTRL) |
1689 | #define MX53_PAD_EIM_D23__UART1_DCD (_MX53_PAD_EIM_D23__UART1_DCD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 515 | #define MX53_PAD_EIM_D21__CSPI_SCLK IOMUX_PAD(0x474, 0x12C, 4, 0x780, 1, NO_PAD_CTRL) |
1690 | #define MX53_PAD_EIM_D23__IPU_DI0_D0_CS (_MX53_PAD_EIM_D23__IPU_DI0_D0_CS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 516 | #define MX53_PAD_EIM_D21__I2C1_SCL IOMUX_PAD(0x474, 0x12C, 5 | IOMUX_CONFIG_SION, 0x814, 1, NO_PAD_CTRL) |
1691 | #define MX53_PAD_EIM_D23__IPU_DI1_PIN2 (_MX53_PAD_EIM_D23__IPU_DI1_PIN2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 517 | #define MX53_PAD_EIM_D21__USBOH3_USBOTG_OC IOMUX_PAD(0x474, 0x12C, 6, 0x89C, 1, NO_PAD_CTRL) |
1692 | #define MX53_PAD_EIM_D23__IPU_CSI1_DATA_EN (_MX53_PAD_EIM_D23__IPU_CSI1_DATA_EN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 518 | #define MX53_PAD_EIM_D22__EMI_WEIM_D_22 IOMUX_PAD(0x478, 0x130, 0, __NA_, 0, NO_PAD_CTRL) |
1693 | #define MX53_PAD_EIM_D23__IPU_DI1_PIN14 (_MX53_PAD_EIM_D23__IPU_DI1_PIN14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 519 | #define MX53_PAD_EIM_D22__GPIO3_22 IOMUX_PAD(0x478, 0x130, 1, __NA_, 0, NO_PAD_CTRL) |
1694 | #define MX53_PAD_EIM_EB3__EMI_WEIM_EB_3 (_MX53_PAD_EIM_EB3__EMI_WEIM_EB_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 520 | #define MX53_PAD_EIM_D22__IPU_DI0_PIN1 IOMUX_PAD(0x478, 0x130, 2, __NA_, 0, NO_PAD_CTRL) |
1695 | #define MX53_PAD_EIM_EB3__GPIO2_31 (_MX53_PAD_EIM_EB3__GPIO2_31 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 521 | #define MX53_PAD_EIM_D22__IPU_DISPB0_SER_DIN IOMUX_PAD(0x478, 0x130, 3, 0x82C, 0, NO_PAD_CTRL) |
1696 | #define MX53_PAD_EIM_EB3__UART3_RTS (_MX53_PAD_EIM_EB3__UART3_RTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 522 | #define MX53_PAD_EIM_D22__CSPI_MISO IOMUX_PAD(0x478, 0x130, 4, 0x784, 1, NO_PAD_CTRL) |
1697 | #define MX53_PAD_EIM_EB3__UART1_RI (_MX53_PAD_EIM_EB3__UART1_RI | MUX_PAD_CTRL(NO_PAD_CTRL)) | 523 | #define MX53_PAD_EIM_D22__USBOH3_USBOTG_PWR IOMUX_PAD(0x478, 0x130, 6, __NA_, 0, NO_PAD_CTRL) |
1698 | #define MX53_PAD_EIM_EB3__IPU_DI1_PIN3 (_MX53_PAD_EIM_EB3__IPU_DI1_PIN3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 524 | #define MX53_PAD_EIM_D23__EMI_WEIM_D_23 IOMUX_PAD(0x47C, 0x134, 0, __NA_, 0, NO_PAD_CTRL) |
1699 | #define MX53_PAD_EIM_EB3__IPU_CSI1_HSYNC (_MX53_PAD_EIM_EB3__IPU_CSI1_HSYNC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 525 | #define MX53_PAD_EIM_D23__GPIO3_23 IOMUX_PAD(0x47C, 0x134, 1, __NA_, 0, NO_PAD_CTRL) |
1700 | #define MX53_PAD_EIM_EB3__IPU_DI1_PIN16 (_MX53_PAD_EIM_EB3__IPU_DI1_PIN16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 526 | #define MX53_PAD_EIM_D23__UART3_CTS IOMUX_PAD(0x47C, 0x134, 2, __NA_, 0, MX53_UART_PAD_CTRL) |
1701 | #define MX53_PAD_EIM_D24__EMI_WEIM_D_24 (_MX53_PAD_EIM_D24__EMI_WEIM_D_24 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 527 | #define MX53_PAD_EIM_D23__UART1_DCD IOMUX_PAD(0x47C, 0x134, 3, __NA_, 0, NO_PAD_CTRL) |
1702 | #define MX53_PAD_EIM_D24__GPIO3_24 (_MX53_PAD_EIM_D24__GPIO3_24 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 528 | #define MX53_PAD_EIM_D23__IPU_DI0_D0_CS IOMUX_PAD(0x47C, 0x134, 4, __NA_, 0, NO_PAD_CTRL) |
1703 | #define MX53_PAD_EIM_D24__UART3_TXD_MUX (_MX53_PAD_EIM_D24__UART3_TXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 529 | #define MX53_PAD_EIM_D23__IPU_DI1_PIN2 IOMUX_PAD(0x47C, 0x134, 5, __NA_, 0, NO_PAD_CTRL) |
1704 | #define MX53_PAD_EIM_D24__ECSPI1_SS2 (_MX53_PAD_EIM_D24__ECSPI1_SS2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 530 | #define MX53_PAD_EIM_D23__IPU_CSI1_DATA_EN IOMUX_PAD(0x47C, 0x134, 6, 0x834, 0, NO_PAD_CTRL) |
1705 | #define MX53_PAD_EIM_D24__CSPI_SS2 (_MX53_PAD_EIM_D24__CSPI_SS2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 531 | #define MX53_PAD_EIM_D23__IPU_DI1_PIN14 IOMUX_PAD(0x47C, 0x134, 7, __NA_, 0, NO_PAD_CTRL) |
1706 | #define MX53_PAD_EIM_D24__AUDMUX_AUD5_RXFS (_MX53_PAD_EIM_D24__AUDMUX_AUD5_RXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 532 | #define MX53_PAD_EIM_EB3__EMI_WEIM_EB_3 IOMUX_PAD(0x480, 0x138, 0, __NA_, 0, NO_PAD_CTRL) |
1707 | #define MX53_PAD_EIM_D24__ECSPI2_SS2 (_MX53_PAD_EIM_D24__ECSPI2_SS2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 533 | #define MX53_PAD_EIM_EB3__GPIO2_31 IOMUX_PAD(0x480, 0x138, 1, __NA_, 0, NO_PAD_CTRL) |
1708 | #define MX53_PAD_EIM_D24__UART1_DTR (_MX53_PAD_EIM_D24__UART1_DTR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 534 | #define MX53_PAD_EIM_EB3__UART3_RTS IOMUX_PAD(0x480, 0x138, 2, 0x884, 1, MX53_UART_PAD_CTRL) |
1709 | #define MX53_PAD_EIM_D25__EMI_WEIM_D_25 (_MX53_PAD_EIM_D25__EMI_WEIM_D_25 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 535 | #define MX53_PAD_EIM_EB3__UART1_RI IOMUX_PAD(0x480, 0x138, 3, __NA_, 0, NO_PAD_CTRL) |
1710 | #define MX53_PAD_EIM_D25__GPIO3_25 (_MX53_PAD_EIM_D25__GPIO3_25 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 536 | #define MX53_PAD_EIM_EB3__IPU_DI1_PIN3 IOMUX_PAD(0x480, 0x138, 5, __NA_, 0, NO_PAD_CTRL) |
1711 | #define MX53_PAD_EIM_D25__UART3_RXD_MUX (_MX53_PAD_EIM_D25__UART3_RXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 537 | #define MX53_PAD_EIM_EB3__IPU_CSI1_HSYNC IOMUX_PAD(0x480, 0x138, 6, 0x838, 0, NO_PAD_CTRL) |
1712 | #define MX53_PAD_EIM_D25__ECSPI1_SS3 (_MX53_PAD_EIM_D25__ECSPI1_SS3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 538 | #define MX53_PAD_EIM_EB3__IPU_DI1_PIN16 IOMUX_PAD(0x480, 0x138, 7, __NA_, 0, NO_PAD_CTRL) |
1713 | #define MX53_PAD_EIM_D25__CSPI_SS3 (_MX53_PAD_EIM_D25__CSPI_SS3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 539 | #define MX53_PAD_EIM_D24__EMI_WEIM_D_24 IOMUX_PAD(0x484, 0x13C, 0, __NA_, 0, NO_PAD_CTRL) |
1714 | #define MX53_PAD_EIM_D25__AUDMUX_AUD5_RXC (_MX53_PAD_EIM_D25__AUDMUX_AUD5_RXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 540 | #define MX53_PAD_EIM_D24__GPIO3_24 IOMUX_PAD(0x484, 0x13C, 1, __NA_, 0, NO_PAD_CTRL) |
1715 | #define MX53_PAD_EIM_D25__ECSPI2_SS3 (_MX53_PAD_EIM_D25__ECSPI2_SS3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 541 | #define MX53_PAD_EIM_D24__UART3_TXD_MUX IOMUX_PAD(0x484, 0x13C, 2, __NA_, 0, MX53_UART_PAD_CTRL) |
1716 | #define MX53_PAD_EIM_D25__UART1_DSR (_MX53_PAD_EIM_D25__UART1_DSR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 542 | #define MX53_PAD_EIM_D24__ECSPI1_SS2 IOMUX_PAD(0x484, 0x13C, 3, 0x7B0, 1, NO_PAD_CTRL) |
1717 | #define MX53_PAD_EIM_D26__EMI_WEIM_D_26 (_MX53_PAD_EIM_D26__EMI_WEIM_D_26 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 543 | #define MX53_PAD_EIM_D24__CSPI_SS2 IOMUX_PAD(0x484, 0x13C, 4, 0x794, 1, NO_PAD_CTRL) |
1718 | #define MX53_PAD_EIM_D26__GPIO3_26 (_MX53_PAD_EIM_D26__GPIO3_26 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 544 | #define MX53_PAD_EIM_D24__AUDMUX_AUD5_RXFS IOMUX_PAD(0x484, 0x13C, 5, 0x754, 1, NO_PAD_CTRL) |
1719 | #define MX53_PAD_EIM_D26__UART2_TXD_MUX (_MX53_PAD_EIM_D26__UART2_TXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 545 | #define MX53_PAD_EIM_D24__ECSPI2_SS2 IOMUX_PAD(0x484, 0x13C, 6, __NA_, 0, NO_PAD_CTRL) |
1720 | #define MX53_PAD_EIM_D26__FIRI_RXD (_MX53_PAD_EIM_D26__FIRI_RXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 546 | #define MX53_PAD_EIM_D24__UART1_DTR IOMUX_PAD(0x484, 0x13C, 7, __NA_, 0, NO_PAD_CTRL) |
1721 | #define MX53_PAD_EIM_D26__IPU_CSI0_D_1 (_MX53_PAD_EIM_D26__IPU_CSI0_D_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 547 | #define MX53_PAD_EIM_D25__EMI_WEIM_D_25 IOMUX_PAD(0x488, 0x140, 0, __NA_, 0, NO_PAD_CTRL) |
1722 | #define MX53_PAD_EIM_D26__IPU_DI1_PIN11 (_MX53_PAD_EIM_D26__IPU_DI1_PIN11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 548 | #define MX53_PAD_EIM_D25__GPIO3_25 IOMUX_PAD(0x488, 0x140, 1, __NA_, 0, NO_PAD_CTRL) |
1723 | #define MX53_PAD_EIM_D26__IPU_SISG_2 (_MX53_PAD_EIM_D26__IPU_SISG_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 549 | #define MX53_PAD_EIM_D25__UART3_RXD_MUX IOMUX_PAD(0x488, 0x140, 2, 0x888, 1, MX53_UART_PAD_CTRL) |
1724 | #define MX53_PAD_EIM_D26__IPU_DISP1_DAT_22 (_MX53_PAD_EIM_D26__IPU_DISP1_DAT_22 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 550 | #define MX53_PAD_EIM_D25__ECSPI1_SS3 IOMUX_PAD(0x488, 0x140, 3, 0x7B4, 1, NO_PAD_CTRL) |
1725 | #define MX53_PAD_EIM_D27__EMI_WEIM_D_27 (_MX53_PAD_EIM_D27__EMI_WEIM_D_27 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 551 | #define MX53_PAD_EIM_D25__CSPI_SS3 IOMUX_PAD(0x488, 0x140, 4, 0x798, 1, NO_PAD_CTRL) |
1726 | #define MX53_PAD_EIM_D27__GPIO3_27 (_MX53_PAD_EIM_D27__GPIO3_27 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 552 | #define MX53_PAD_EIM_D25__AUDMUX_AUD5_RXC IOMUX_PAD(0x488, 0x140, 5, 0x750, 1, NO_PAD_CTRL) |
1727 | #define MX53_PAD_EIM_D27__UART2_RXD_MUX (_MX53_PAD_EIM_D27__UART2_RXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 553 | #define MX53_PAD_EIM_D25__ECSPI2_SS3 IOMUX_PAD(0x488, 0x140, 6, __NA_, 0, NO_PAD_CTRL) |
1728 | #define MX53_PAD_EIM_D27__FIRI_TXD (_MX53_PAD_EIM_D27__FIRI_TXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 554 | #define MX53_PAD_EIM_D25__UART1_DSR IOMUX_PAD(0x488, 0x140, 7, __NA_, 0, NO_PAD_CTRL) |
1729 | #define MX53_PAD_EIM_D27__IPU_CSI0_D_0 (_MX53_PAD_EIM_D27__IPU_CSI0_D_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 555 | #define MX53_PAD_EIM_D26__EMI_WEIM_D_26 IOMUX_PAD(0x48C, 0x144, 0, __NA_, 0, NO_PAD_CTRL) |
1730 | #define MX53_PAD_EIM_D27__IPU_DI1_PIN13 (_MX53_PAD_EIM_D27__IPU_DI1_PIN13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 556 | #define MX53_PAD_EIM_D26__GPIO3_26 IOMUX_PAD(0x48C, 0x144, 1, __NA_, 0, NO_PAD_CTRL) |
1731 | #define MX53_PAD_EIM_D27__IPU_SISG_3 (_MX53_PAD_EIM_D27__IPU_SISG_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 557 | #define MX53_PAD_EIM_D26__UART2_TXD_MUX IOMUX_PAD(0x48C, 0x144, 2, __NA_, 0, MX53_UART_PAD_CTRL) |
1732 | #define MX53_PAD_EIM_D27__IPU_DISP1_DAT_23 (_MX53_PAD_EIM_D27__IPU_DISP1_DAT_23 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 558 | #define MX53_PAD_EIM_D26__FIRI_RXD IOMUX_PAD(0x48C, 0x144, 3, 0x80C, 0, NO_PAD_CTRL) |
1733 | #define MX53_PAD_EIM_D28__EMI_WEIM_D_28 (_MX53_PAD_EIM_D28__EMI_WEIM_D_28 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 559 | #define MX53_PAD_EIM_D26__IPU_CSI0_D_1 IOMUX_PAD(0x48C, 0x144, 4, __NA_, 0, NO_PAD_CTRL) |
1734 | #define MX53_PAD_EIM_D28__GPIO3_28 (_MX53_PAD_EIM_D28__GPIO3_28 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 560 | #define MX53_PAD_EIM_D26__IPU_DI1_PIN11 IOMUX_PAD(0x48C, 0x144, 5, __NA_, 0, NO_PAD_CTRL) |
1735 | #define MX53_PAD_EIM_D28__UART2_CTS (_MX53_PAD_EIM_D28__UART2_CTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 561 | #define MX53_PAD_EIM_D26__IPU_SISG_2 IOMUX_PAD(0x48C, 0x144, 6, __NA_, 0, NO_PAD_CTRL) |
1736 | #define MX53_PAD_EIM_D28__IPU_DISPB0_SER_DIO (_MX53_PAD_EIM_D28__IPU_DISPB0_SER_DIO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 562 | #define MX53_PAD_EIM_D26__IPU_DISP1_DAT_22 IOMUX_PAD(0x48C, 0x144, 7, __NA_, 0, NO_PAD_CTRL) |
1737 | #define MX53_PAD_EIM_D28__CSPI_MOSI (_MX53_PAD_EIM_D28__CSPI_MOSI | MUX_PAD_CTRL(NO_PAD_CTRL)) | 563 | #define MX53_PAD_EIM_D27__EMI_WEIM_D_27 IOMUX_PAD(0x490, 0x148, 0, __NA_, 0, NO_PAD_CTRL) |
1738 | #define MX53_PAD_EIM_D28__I2C1_SDA (_MX53_PAD_EIM_D28__I2C1_SDA | MUX_PAD_CTRL(PAD_CTRL_I2C)) | 564 | #define MX53_PAD_EIM_D27__GPIO3_27 IOMUX_PAD(0x490, 0x148, 1, __NA_, 0, NO_PAD_CTRL) |
1739 | #define MX53_PAD_EIM_D28__IPU_EXT_TRIG (_MX53_PAD_EIM_D28__IPU_EXT_TRIG | MUX_PAD_CTRL(NO_PAD_CTRL)) | 565 | #define MX53_PAD_EIM_D27__UART2_RXD_MUX IOMUX_PAD(0x490, 0x148, 2, 0x880, 1, MX53_UART_PAD_CTRL) |
1740 | #define MX53_PAD_EIM_D28__IPU_DI0_PIN13 (_MX53_PAD_EIM_D28__IPU_DI0_PIN13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 566 | #define MX53_PAD_EIM_D27__FIRI_TXD IOMUX_PAD(0x490, 0x148, 3, __NA_, 0, NO_PAD_CTRL) |
1741 | #define MX53_PAD_EIM_D29__EMI_WEIM_D_29 (_MX53_PAD_EIM_D29__EMI_WEIM_D_29 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 567 | #define MX53_PAD_EIM_D27__IPU_CSI0_D_0 IOMUX_PAD(0x490, 0x148, 4, __NA_, 0, NO_PAD_CTRL) |
1742 | #define MX53_PAD_EIM_D29__GPIO3_29 (_MX53_PAD_EIM_D29__GPIO3_29 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 568 | #define MX53_PAD_EIM_D27__IPU_DI1_PIN13 IOMUX_PAD(0x490, 0x148, 5, __NA_, 0, NO_PAD_CTRL) |
1743 | #define MX53_PAD_EIM_D29__UART2_RTS (_MX53_PAD_EIM_D29__UART2_RTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 569 | #define MX53_PAD_EIM_D27__IPU_SISG_3 IOMUX_PAD(0x490, 0x148, 6, __NA_, 0, NO_PAD_CTRL) |
1744 | #define MX53_PAD_EIM_D29__IPU_DISPB0_SER_RS (_MX53_PAD_EIM_D29__IPU_DISPB0_SER_RS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 570 | #define MX53_PAD_EIM_D27__IPU_DISP1_DAT_23 IOMUX_PAD(0x490, 0x148, 7, __NA_, 0, NO_PAD_CTRL) |
1745 | #define MX53_PAD_EIM_D29__CSPI_SS0 (_MX53_PAD_EIM_D29__CSPI_SS0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 571 | #define MX53_PAD_EIM_D28__EMI_WEIM_D_28 IOMUX_PAD(0x494, 0x14C, 0, __NA_, 0, NO_PAD_CTRL) |
1746 | #define MX53_PAD_EIM_D29__IPU_DI1_PIN15 (_MX53_PAD_EIM_D29__IPU_DI1_PIN15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 572 | #define MX53_PAD_EIM_D28__GPIO3_28 IOMUX_PAD(0x494, 0x14C, 1, __NA_, 0, NO_PAD_CTRL) |
1747 | #define MX53_PAD_EIM_D29__IPU_CSI1_VSYNC (_MX53_PAD_EIM_D29__IPU_CSI1_VSYNC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 573 | #define MX53_PAD_EIM_D28__UART2_CTS IOMUX_PAD(0x494, 0x14C, 2, __NA_, 0, MX53_UART_PAD_CTRL) |
1748 | #define MX53_PAD_EIM_D29__IPU_DI0_PIN14 (_MX53_PAD_EIM_D29__IPU_DI0_PIN14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 574 | #define MX53_PAD_EIM_D28__IPU_DISPB0_SER_DIO IOMUX_PAD(0x494, 0x14C, 3, 0x82C, 1, NO_PAD_CTRL) |
1749 | #define MX53_PAD_EIM_D30__EMI_WEIM_D_30 (_MX53_PAD_EIM_D30__EMI_WEIM_D_30 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 575 | #define MX53_PAD_EIM_D28__CSPI_MOSI IOMUX_PAD(0x494, 0x14C, 4, 0x788, 1, NO_PAD_CTRL) |
1750 | #define MX53_PAD_EIM_D30__GPIO3_30 (_MX53_PAD_EIM_D30__GPIO3_30 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 576 | #define MX53_PAD_EIM_D28__I2C1_SDA IOMUX_PAD(0x494, 0x14C, 5 | IOMUX_CONFIG_SION, 0x818, 1, PAD_CTRL_I2C) |
1751 | #define MX53_PAD_EIM_D30__UART3_CTS (_MX53_PAD_EIM_D30__UART3_CTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 577 | #define MX53_PAD_EIM_D28__IPU_EXT_TRIG IOMUX_PAD(0x494, 0x14C, 6, __NA_, 0, NO_PAD_CTRL) |
1752 | #define MX53_PAD_EIM_D30__IPU_CSI0_D_3 (_MX53_PAD_EIM_D30__IPU_CSI0_D_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 578 | #define MX53_PAD_EIM_D28__IPU_DI0_PIN13 IOMUX_PAD(0x494, 0x14C, 7, __NA_, 0, NO_PAD_CTRL) |
1753 | #define MX53_PAD_EIM_D30__IPU_DI0_PIN11 (_MX53_PAD_EIM_D30__IPU_DI0_PIN11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 579 | #define MX53_PAD_EIM_D29__EMI_WEIM_D_29 IOMUX_PAD(0x498, 0x150, 0, __NA_, 0, NO_PAD_CTRL) |
1754 | #define MX53_PAD_EIM_D30__IPU_DISP1_DAT_21 (_MX53_PAD_EIM_D30__IPU_DISP1_DAT_21 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 580 | #define MX53_PAD_EIM_D29__GPIO3_29 IOMUX_PAD(0x498, 0x150, 1, __NA_, 0, NO_PAD_CTRL) |
1755 | #define MX53_PAD_EIM_D30__USBOH3_USBH1_OC (_MX53_PAD_EIM_D30__USBOH3_USBH1_OC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 581 | #define MX53_PAD_EIM_D29__UART2_RTS IOMUX_PAD(0x498, 0x150, 2, 0x87C, 1, MX53_UART_PAD_CTRL) |
1756 | #define MX53_PAD_EIM_D30__USBOH3_USBH2_OC (_MX53_PAD_EIM_D30__USBOH3_USBH2_OC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 582 | #define MX53_PAD_EIM_D29__IPU_DISPB0_SER_RS IOMUX_PAD(0x498, 0x150, 3, __NA_, 0, NO_PAD_CTRL) |
1757 | #define MX53_PAD_EIM_D31__EMI_WEIM_D_31 (_MX53_PAD_EIM_D31__EMI_WEIM_D_31 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 583 | #define MX53_PAD_EIM_D29__CSPI_SS0 IOMUX_PAD(0x498, 0x150, 4, 0x78C, 2, NO_PAD_CTRL) |
1758 | #define MX53_PAD_EIM_D31__GPIO3_31 (_MX53_PAD_EIM_D31__GPIO3_31 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 584 | #define MX53_PAD_EIM_D29__IPU_DI1_PIN15 IOMUX_PAD(0x498, 0x150, 5, __NA_, 0, NO_PAD_CTRL) |
1759 | #define MX53_PAD_EIM_D31__UART3_RTS (_MX53_PAD_EIM_D31__UART3_RTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 585 | #define MX53_PAD_EIM_D29__IPU_CSI1_VSYNC IOMUX_PAD(0x498, 0x150, 6, 0x83C, 0, NO_PAD_CTRL) |
1760 | #define MX53_PAD_EIM_D31__IPU_CSI0_D_2 (_MX53_PAD_EIM_D31__IPU_CSI0_D_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 586 | #define MX53_PAD_EIM_D29__IPU_DI0_PIN14 IOMUX_PAD(0x498, 0x150, 7, __NA_, 0, NO_PAD_CTRL) |
1761 | #define MX53_PAD_EIM_D31__IPU_DI0_PIN12 (_MX53_PAD_EIM_D31__IPU_DI0_PIN12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 587 | #define MX53_PAD_EIM_D30__EMI_WEIM_D_30 IOMUX_PAD(0x49C, 0x154, 0, __NA_, 0, NO_PAD_CTRL) |
1762 | #define MX53_PAD_EIM_D31__IPU_DISP1_DAT_20 (_MX53_PAD_EIM_D31__IPU_DISP1_DAT_20 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 588 | #define MX53_PAD_EIM_D30__GPIO3_30 IOMUX_PAD(0x49C, 0x154, 1, __NA_, 0, NO_PAD_CTRL) |
1763 | #define MX53_PAD_EIM_D31__USBOH3_USBH1_PWR (_MX53_PAD_EIM_D31__USBOH3_USBH1_PWR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 589 | #define MX53_PAD_EIM_D30__UART3_CTS IOMUX_PAD(0x49C, 0x154, 2, __NA_, 0, MX53_UART_PAD_CTRL) |
1764 | #define MX53_PAD_EIM_D31__USBOH3_USBH2_PWR (_MX53_PAD_EIM_D31__USBOH3_USBH2_PWR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 590 | #define MX53_PAD_EIM_D30__IPU_CSI0_D_3 IOMUX_PAD(0x49C, 0x154, 3, __NA_, 0, NO_PAD_CTRL) |
1765 | #define MX53_PAD_EIM_A24__EMI_WEIM_A_24 (_MX53_PAD_EIM_A24__EMI_WEIM_A_24 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 591 | #define MX53_PAD_EIM_D30__IPU_DI0_PIN11 IOMUX_PAD(0x49C, 0x154, 4, __NA_, 0, NO_PAD_CTRL) |
1766 | #define MX53_PAD_EIM_A24__GPIO5_4 (_MX53_PAD_EIM_A24__GPIO5_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 592 | #define MX53_PAD_EIM_D30__IPU_DISP1_DAT_21 IOMUX_PAD(0x49C, 0x154, 5, __NA_, 0, NO_PAD_CTRL) |
1767 | #define MX53_PAD_EIM_A24__IPU_DISP1_DAT_19 (_MX53_PAD_EIM_A24__IPU_DISP1_DAT_19 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 593 | #define MX53_PAD_EIM_D30__USBOH3_USBH1_OC IOMUX_PAD(0x49C, 0x154, 6, 0x8A0, 0, NO_PAD_CTRL) |
1768 | #define MX53_PAD_EIM_A24__IPU_CSI1_D_19 (_MX53_PAD_EIM_A24__IPU_CSI1_D_19 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 594 | #define MX53_PAD_EIM_D30__USBOH3_USBH2_OC IOMUX_PAD(0x49C, 0x154, 7, 0x8A4, 1, NO_PAD_CTRL) |
1769 | #define MX53_PAD_EIM_A24__IPU_SISG_2 (_MX53_PAD_EIM_A24__IPU_SISG_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 595 | #define MX53_PAD_EIM_D31__EMI_WEIM_D_31 IOMUX_PAD(0x4A0, 0x158, 0, __NA_, 0, NO_PAD_CTRL) |
1770 | #define MX53_PAD_EIM_A24__USBPHY2_BVALID (_MX53_PAD_EIM_A24__USBPHY2_BVALID | MUX_PAD_CTRL(NO_PAD_CTRL)) | 596 | #define MX53_PAD_EIM_D31__GPIO3_31 IOMUX_PAD(0x4A0, 0x158, 1, __NA_, 0, NO_PAD_CTRL) |
1771 | #define MX53_PAD_EIM_A23__EMI_WEIM_A_23 (_MX53_PAD_EIM_A23__EMI_WEIM_A_23 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 597 | #define MX53_PAD_EIM_D31__UART3_RTS IOMUX_PAD(0x4A0, 0x158, 2, 0x884, 3, MX53_UART_PAD_CTRL) |
1772 | #define MX53_PAD_EIM_A23__GPIO6_6 (_MX53_PAD_EIM_A23__GPIO6_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 598 | #define MX53_PAD_EIM_D31__IPU_CSI0_D_2 IOMUX_PAD(0x4A0, 0x158, 3, __NA_, 0, NO_PAD_CTRL) |
1773 | #define MX53_PAD_EIM_A23__IPU_DISP1_DAT_18 (_MX53_PAD_EIM_A23__IPU_DISP1_DAT_18 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 599 | #define MX53_PAD_EIM_D31__IPU_DI0_PIN12 IOMUX_PAD(0x4A0, 0x158, 4, __NA_, 0, NO_PAD_CTRL) |
1774 | #define MX53_PAD_EIM_A23__IPU_CSI1_D_18 (_MX53_PAD_EIM_A23__IPU_CSI1_D_18 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 600 | #define MX53_PAD_EIM_D31__IPU_DISP1_DAT_20 IOMUX_PAD(0x4A0, 0x158, 5, __NA_, 0, NO_PAD_CTRL) |
1775 | #define MX53_PAD_EIM_A23__IPU_SISG_3 (_MX53_PAD_EIM_A23__IPU_SISG_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 601 | #define MX53_PAD_EIM_D31__USBOH3_USBH1_PWR IOMUX_PAD(0x4A0, 0x158, 6, __NA_, 0, NO_PAD_CTRL) |
1776 | #define MX53_PAD_EIM_A23__USBPHY2_ENDSESSION (_MX53_PAD_EIM_A23__USBPHY2_ENDSESSION | MUX_PAD_CTRL(NO_PAD_CTRL)) | 602 | #define MX53_PAD_EIM_D31__USBOH3_USBH2_PWR IOMUX_PAD(0x4A0, 0x158, 7, __NA_, 0, NO_PAD_CTRL) |
1777 | #define MX53_PAD_EIM_A22__EMI_WEIM_A_22 (_MX53_PAD_EIM_A22__EMI_WEIM_A_22 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 603 | #define MX53_PAD_EIM_A24__EMI_WEIM_A_24 IOMUX_PAD(0x4A8, 0x15C, 0, __NA_, 0, NO_PAD_CTRL) |
1778 | #define MX53_PAD_EIM_A22__GPIO2_16 (_MX53_PAD_EIM_A22__GPIO2_16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 604 | #define MX53_PAD_EIM_A24__GPIO5_4 IOMUX_PAD(0x4A8, 0x15C, 1, __NA_, 0, NO_PAD_CTRL) |
1779 | #define MX53_PAD_EIM_A22__IPU_DISP1_DAT_17 (_MX53_PAD_EIM_A22__IPU_DISP1_DAT_17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 605 | #define MX53_PAD_EIM_A24__IPU_DISP1_DAT_19 IOMUX_PAD(0x4A8, 0x15C, 2, __NA_, 0, NO_PAD_CTRL) |
1780 | #define MX53_PAD_EIM_A22__IPU_CSI1_D_17 (_MX53_PAD_EIM_A22__IPU_CSI1_D_17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 606 | #define MX53_PAD_EIM_A24__IPU_CSI1_D_19 IOMUX_PAD(0x4A8, 0x15C, 3, __NA_, 0, NO_PAD_CTRL) |
1781 | #define MX53_PAD_EIM_A22__SRC_BT_CFG1_7 (_MX53_PAD_EIM_A22__SRC_BT_CFG1_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 607 | #define MX53_PAD_EIM_A24__IPU_SISG_2 IOMUX_PAD(0x4A8, 0x15C, 6, __NA_, 0, NO_PAD_CTRL) |
1782 | #define MX53_PAD_EIM_A21__EMI_WEIM_A_21 (_MX53_PAD_EIM_A21__EMI_WEIM_A_21 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 608 | #define MX53_PAD_EIM_A24__USBPHY2_BVALID IOMUX_PAD(0x4A8, 0x15C, 7, __NA_, 0, NO_PAD_CTRL) |
1783 | #define MX53_PAD_EIM_A21__GPIO2_17 (_MX53_PAD_EIM_A21__GPIO2_17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 609 | #define MX53_PAD_EIM_A23__EMI_WEIM_A_23 IOMUX_PAD(0x4AC, 0x160, 0, __NA_, 0, NO_PAD_CTRL) |
1784 | #define MX53_PAD_EIM_A21__IPU_DISP1_DAT_16 (_MX53_PAD_EIM_A21__IPU_DISP1_DAT_16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 610 | #define MX53_PAD_EIM_A23__GPIO6_6 IOMUX_PAD(0x4AC, 0x160, 1, __NA_, 0, NO_PAD_CTRL) |
1785 | #define MX53_PAD_EIM_A21__IPU_CSI1_D_16 (_MX53_PAD_EIM_A21__IPU_CSI1_D_16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 611 | #define MX53_PAD_EIM_A23__IPU_DISP1_DAT_18 IOMUX_PAD(0x4AC, 0x160, 2, __NA_, 0, NO_PAD_CTRL) |
1786 | #define MX53_PAD_EIM_A21__SRC_BT_CFG1_6 (_MX53_PAD_EIM_A21__SRC_BT_CFG1_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 612 | #define MX53_PAD_EIM_A23__IPU_CSI1_D_18 IOMUX_PAD(0x4AC, 0x160, 3, __NA_, 0, NO_PAD_CTRL) |
1787 | #define MX53_PAD_EIM_A20__EMI_WEIM_A_20 (_MX53_PAD_EIM_A20__EMI_WEIM_A_20 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 613 | #define MX53_PAD_EIM_A23__IPU_SISG_3 IOMUX_PAD(0x4AC, 0x160, 6, __NA_, 0, NO_PAD_CTRL) |
1788 | #define MX53_PAD_EIM_A20__GPIO2_18 (_MX53_PAD_EIM_A20__GPIO2_18 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 614 | #define MX53_PAD_EIM_A23__USBPHY2_ENDSESSION IOMUX_PAD(0x4AC, 0x160, 7, __NA_, 0, NO_PAD_CTRL) |
1789 | #define MX53_PAD_EIM_A20__IPU_DISP1_DAT_15 (_MX53_PAD_EIM_A20__IPU_DISP1_DAT_15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 615 | #define MX53_PAD_EIM_A22__EMI_WEIM_A_22 IOMUX_PAD(0x4B0, 0x164, 0, __NA_, 0, NO_PAD_CTRL) |
1790 | #define MX53_PAD_EIM_A20__IPU_CSI1_D_15 (_MX53_PAD_EIM_A20__IPU_CSI1_D_15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 616 | #define MX53_PAD_EIM_A22__GPIO2_16 IOMUX_PAD(0x4B0, 0x164, 1, __NA_, 0, NO_PAD_CTRL) |
1791 | #define MX53_PAD_EIM_A20__SRC_BT_CFG1_5 (_MX53_PAD_EIM_A20__SRC_BT_CFG1_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 617 | #define MX53_PAD_EIM_A22__IPU_DISP1_DAT_17 IOMUX_PAD(0x4B0, 0x164, 2, __NA_, 0, NO_PAD_CTRL) |
1792 | #define MX53_PAD_EIM_A19__EMI_WEIM_A_19 (_MX53_PAD_EIM_A19__EMI_WEIM_A_19 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 618 | #define MX53_PAD_EIM_A22__IPU_CSI1_D_17 IOMUX_PAD(0x4B0, 0x164, 3, __NA_, 0, NO_PAD_CTRL) |
1793 | #define MX53_PAD_EIM_A19__GPIO2_19 (_MX53_PAD_EIM_A19__GPIO2_19 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 619 | #define MX53_PAD_EIM_A22__SRC_BT_CFG1_7 IOMUX_PAD(0x4B0, 0x164, 7, __NA_, 0, NO_PAD_CTRL) |
1794 | #define MX53_PAD_EIM_A19__IPU_DISP1_DAT_14 (_MX53_PAD_EIM_A19__IPU_DISP1_DAT_14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 620 | #define MX53_PAD_EIM_A21__EMI_WEIM_A_21 IOMUX_PAD(0x4B4, 0x168, 0, __NA_, 0, NO_PAD_CTRL) |
1795 | #define MX53_PAD_EIM_A19__IPU_CSI1_D_14 (_MX53_PAD_EIM_A19__IPU_CSI1_D_14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 621 | #define MX53_PAD_EIM_A21__GPIO2_17 IOMUX_PAD(0x4B4, 0x168, 1, __NA_, 0, NO_PAD_CTRL) |
1796 | #define MX53_PAD_EIM_A19__SRC_BT_CFG1_4 (_MX53_PAD_EIM_A19__SRC_BT_CFG1_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 622 | #define MX53_PAD_EIM_A21__IPU_DISP1_DAT_16 IOMUX_PAD(0x4B4, 0x168, 2, __NA_, 0, NO_PAD_CTRL) |
1797 | #define MX53_PAD_EIM_A18__EMI_WEIM_A_18 (_MX53_PAD_EIM_A18__EMI_WEIM_A_18 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 623 | #define MX53_PAD_EIM_A21__IPU_CSI1_D_16 IOMUX_PAD(0x4B4, 0x168, 3, __NA_, 0, NO_PAD_CTRL) |
1798 | #define MX53_PAD_EIM_A18__GPIO2_20 (_MX53_PAD_EIM_A18__GPIO2_20 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 624 | #define MX53_PAD_EIM_A21__SRC_BT_CFG1_6 IOMUX_PAD(0x4B4, 0x168, 7, __NA_, 0, NO_PAD_CTRL) |
1799 | #define MX53_PAD_EIM_A18__IPU_DISP1_DAT_13 (_MX53_PAD_EIM_A18__IPU_DISP1_DAT_13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 625 | #define MX53_PAD_EIM_A20__EMI_WEIM_A_20 IOMUX_PAD(0x4B8, 0x16C, 0, __NA_, 0, NO_PAD_CTRL) |
1800 | #define MX53_PAD_EIM_A18__IPU_CSI1_D_13 (_MX53_PAD_EIM_A18__IPU_CSI1_D_13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 626 | #define MX53_PAD_EIM_A20__GPIO2_18 IOMUX_PAD(0x4B8, 0x16C, 1, __NA_, 0, NO_PAD_CTRL) |
1801 | #define MX53_PAD_EIM_A18__SRC_BT_CFG1_3 (_MX53_PAD_EIM_A18__SRC_BT_CFG1_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 627 | #define MX53_PAD_EIM_A20__IPU_DISP1_DAT_15 IOMUX_PAD(0x4B8, 0x16C, 2, __NA_, 0, NO_PAD_CTRL) |
1802 | #define MX53_PAD_EIM_A17__EMI_WEIM_A_17 (_MX53_PAD_EIM_A17__EMI_WEIM_A_17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 628 | #define MX53_PAD_EIM_A20__IPU_CSI1_D_15 IOMUX_PAD(0x4B8, 0x16C, 3, __NA_, 0, NO_PAD_CTRL) |
1803 | #define MX53_PAD_EIM_A17__GPIO2_21 (_MX53_PAD_EIM_A17__GPIO2_21 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 629 | #define MX53_PAD_EIM_A20__SRC_BT_CFG1_5 IOMUX_PAD(0x4B8, 0x16C, 7, __NA_, 0, NO_PAD_CTRL) |
1804 | #define MX53_PAD_EIM_A17__IPU_DISP1_DAT_12 (_MX53_PAD_EIM_A17__IPU_DISP1_DAT_12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 630 | #define MX53_PAD_EIM_A19__EMI_WEIM_A_19 IOMUX_PAD(0x4BC, 0x170, 0, __NA_, 0, NO_PAD_CTRL) |
1805 | #define MX53_PAD_EIM_A17__IPU_CSI1_D_12 (_MX53_PAD_EIM_A17__IPU_CSI1_D_12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 631 | #define MX53_PAD_EIM_A19__GPIO2_19 IOMUX_PAD(0x4BC, 0x170, 1, __NA_, 0, NO_PAD_CTRL) |
1806 | #define MX53_PAD_EIM_A17__SRC_BT_CFG1_2 (_MX53_PAD_EIM_A17__SRC_BT_CFG1_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 632 | #define MX53_PAD_EIM_A19__IPU_DISP1_DAT_14 IOMUX_PAD(0x4BC, 0x170, 2, __NA_, 0, NO_PAD_CTRL) |
1807 | #define MX53_PAD_EIM_A16__EMI_WEIM_A_16 (_MX53_PAD_EIM_A16__EMI_WEIM_A_16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 633 | #define MX53_PAD_EIM_A19__IPU_CSI1_D_14 IOMUX_PAD(0x4BC, 0x170, 3, __NA_, 0, NO_PAD_CTRL) |
1808 | #define MX53_PAD_EIM_A16__GPIO2_22 (_MX53_PAD_EIM_A16__GPIO2_22 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 634 | #define MX53_PAD_EIM_A19__SRC_BT_CFG1_4 IOMUX_PAD(0x4BC, 0x170, 7, __NA_, 0, NO_PAD_CTRL) |
1809 | #define MX53_PAD_EIM_A16__IPU_DI1_DISP_CLK (_MX53_PAD_EIM_A16__IPU_DI1_DISP_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 635 | #define MX53_PAD_EIM_A18__EMI_WEIM_A_18 IOMUX_PAD(0x4C0, 0x174, 0, __NA_, 0, NO_PAD_CTRL) |
1810 | #define MX53_PAD_EIM_A16__IPU_CSI1_PIXCLK (_MX53_PAD_EIM_A16__IPU_CSI1_PIXCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 636 | #define MX53_PAD_EIM_A18__GPIO2_20 IOMUX_PAD(0x4C0, 0x174, 1, __NA_, 0, NO_PAD_CTRL) |
1811 | #define MX53_PAD_EIM_A16__SRC_BT_CFG1_1 (_MX53_PAD_EIM_A16__SRC_BT_CFG1_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 637 | #define MX53_PAD_EIM_A18__IPU_DISP1_DAT_13 IOMUX_PAD(0x4C0, 0x174, 2, __NA_, 0, NO_PAD_CTRL) |
1812 | #define MX53_PAD_EIM_CS0__EMI_WEIM_CS_0 (_MX53_PAD_EIM_CS0__EMI_WEIM_CS_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 638 | #define MX53_PAD_EIM_A18__IPU_CSI1_D_13 IOMUX_PAD(0x4C0, 0x174, 3, __NA_, 0, NO_PAD_CTRL) |
1813 | #define MX53_PAD_EIM_CS0__GPIO2_23 (_MX53_PAD_EIM_CS0__GPIO2_23 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 639 | #define MX53_PAD_EIM_A18__SRC_BT_CFG1_3 IOMUX_PAD(0x4C0, 0x174, 7, __NA_, 0, NO_PAD_CTRL) |
1814 | #define MX53_PAD_EIM_CS0__ECSPI2_SCLK (_MX53_PAD_EIM_CS0__ECSPI2_SCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 640 | #define MX53_PAD_EIM_A17__EMI_WEIM_A_17 IOMUX_PAD(0x4C4, 0x178, 0, __NA_, 0, NO_PAD_CTRL) |
1815 | #define MX53_PAD_EIM_CS0__IPU_DI1_PIN5 (_MX53_PAD_EIM_CS0__IPU_DI1_PIN5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 641 | #define MX53_PAD_EIM_A17__GPIO2_21 IOMUX_PAD(0x4C4, 0x178, 1, __NA_, 0, NO_PAD_CTRL) |
1816 | #define MX53_PAD_EIM_CS1__EMI_WEIM_CS_1 (_MX53_PAD_EIM_CS1__EMI_WEIM_CS_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 642 | #define MX53_PAD_EIM_A17__IPU_DISP1_DAT_12 IOMUX_PAD(0x4C4, 0x178, 2, __NA_, 0, NO_PAD_CTRL) |
1817 | #define MX53_PAD_EIM_CS1__GPIO2_24 (_MX53_PAD_EIM_CS1__GPIO2_24 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 643 | #define MX53_PAD_EIM_A17__IPU_CSI1_D_12 IOMUX_PAD(0x4C4, 0x178, 3, __NA_, 0, NO_PAD_CTRL) |
1818 | #define MX53_PAD_EIM_CS1__ECSPI2_MOSI (_MX53_PAD_EIM_CS1__ECSPI2_MOSI | MUX_PAD_CTRL(NO_PAD_CTRL)) | 644 | #define MX53_PAD_EIM_A17__SRC_BT_CFG1_2 IOMUX_PAD(0x4C4, 0x178, 7, __NA_, 0, NO_PAD_CTRL) |
1819 | #define MX53_PAD_EIM_CS1__IPU_DI1_PIN6 (_MX53_PAD_EIM_CS1__IPU_DI1_PIN6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 645 | #define MX53_PAD_EIM_A16__EMI_WEIM_A_16 IOMUX_PAD(0x4C8, 0x17C, 0, __NA_, 0, NO_PAD_CTRL) |
1820 | #define MX53_PAD_EIM_OE__EMI_WEIM_OE (_MX53_PAD_EIM_OE__EMI_WEIM_OE | MUX_PAD_CTRL(NO_PAD_CTRL)) | 646 | #define MX53_PAD_EIM_A16__GPIO2_22 IOMUX_PAD(0x4C8, 0x17C, 1, __NA_, 0, NO_PAD_CTRL) |
1821 | #define MX53_PAD_EIM_OE__GPIO2_25 (_MX53_PAD_EIM_OE__GPIO2_25 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 647 | #define MX53_PAD_EIM_A16__IPU_DI1_DISP_CLK IOMUX_PAD(0x4C8, 0x17C, 2, __NA_, 0, NO_PAD_CTRL) |
1822 | #define MX53_PAD_EIM_OE__ECSPI2_MISO (_MX53_PAD_EIM_OE__ECSPI2_MISO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 648 | #define MX53_PAD_EIM_A16__IPU_CSI1_PIXCLK IOMUX_PAD(0x4C8, 0x17C, 3, __NA_, 0, NO_PAD_CTRL) |
1823 | #define MX53_PAD_EIM_OE__IPU_DI1_PIN7 (_MX53_PAD_EIM_OE__IPU_DI1_PIN7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 649 | #define MX53_PAD_EIM_A16__SRC_BT_CFG1_1 IOMUX_PAD(0x4C8, 0x17C, 7, __NA_, 0, NO_PAD_CTRL) |
1824 | #define MX53_PAD_EIM_OE__USBPHY2_IDDIG (_MX53_PAD_EIM_OE__USBPHY2_IDDIG | MUX_PAD_CTRL(NO_PAD_CTRL)) | 650 | #define MX53_PAD_EIM_CS0__EMI_WEIM_CS_0 IOMUX_PAD(0x4CC, 0x180, 0, __NA_, 0, NO_PAD_CTRL) |
1825 | #define MX53_PAD_EIM_RW__EMI_WEIM_RW (_MX53_PAD_EIM_RW__EMI_WEIM_RW | MUX_PAD_CTRL(NO_PAD_CTRL)) | 651 | #define MX53_PAD_EIM_CS0__GPIO2_23 IOMUX_PAD(0x4CC, 0x180, 1, __NA_, 0, NO_PAD_CTRL) |
1826 | #define MX53_PAD_EIM_RW__GPIO2_26 (_MX53_PAD_EIM_RW__GPIO2_26 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 652 | #define MX53_PAD_EIM_CS0__ECSPI2_SCLK IOMUX_PAD(0x4CC, 0x180, 2, 0x7B8, 2, NO_PAD_CTRL) |
1827 | #define MX53_PAD_EIM_RW__ECSPI2_SS0 (_MX53_PAD_EIM_RW__ECSPI2_SS0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 653 | #define MX53_PAD_EIM_CS0__IPU_DI1_PIN5 IOMUX_PAD(0x4CC, 0x180, 3, __NA_, 0, NO_PAD_CTRL) |
1828 | #define MX53_PAD_EIM_RW__IPU_DI1_PIN8 (_MX53_PAD_EIM_RW__IPU_DI1_PIN8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 654 | #define MX53_PAD_EIM_CS1__EMI_WEIM_CS_1 IOMUX_PAD(0x4D0, 0x184, 0, __NA_, 0, NO_PAD_CTRL) |
1829 | #define MX53_PAD_EIM_RW__USBPHY2_HOSTDISCONNECT (_MX53_PAD_EIM_RW__USBPHY2_HOSTDISCONNECT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 655 | #define MX53_PAD_EIM_CS1__GPIO2_24 IOMUX_PAD(0x4D0, 0x184, 1, __NA_, 0, NO_PAD_CTRL) |
1830 | #define MX53_PAD_EIM_LBA__EMI_WEIM_LBA (_MX53_PAD_EIM_LBA__EMI_WEIM_LBA | MUX_PAD_CTRL(NO_PAD_CTRL)) | 656 | #define MX53_PAD_EIM_CS1__ECSPI2_MOSI IOMUX_PAD(0x4D0, 0x184, 2, 0x7C0, 2, NO_PAD_CTRL) |
1831 | #define MX53_PAD_EIM_LBA__GPIO2_27 (_MX53_PAD_EIM_LBA__GPIO2_27 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 657 | #define MX53_PAD_EIM_CS1__IPU_DI1_PIN6 IOMUX_PAD(0x4D0, 0x184, 3, __NA_, 0, NO_PAD_CTRL) |
1832 | #define MX53_PAD_EIM_LBA__ECSPI2_SS1 (_MX53_PAD_EIM_LBA__ECSPI2_SS1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 658 | #define MX53_PAD_EIM_OE__EMI_WEIM_OE IOMUX_PAD(0x4D4, 0x188, 0, __NA_, 0, NO_PAD_CTRL) |
1833 | #define MX53_PAD_EIM_LBA__IPU_DI1_PIN17 (_MX53_PAD_EIM_LBA__IPU_DI1_PIN17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 659 | #define MX53_PAD_EIM_OE__GPIO2_25 IOMUX_PAD(0x4D4, 0x188, 1, __NA_, 0, NO_PAD_CTRL) |
1834 | #define MX53_PAD_EIM_LBA__SRC_BT_CFG1_0 (_MX53_PAD_EIM_LBA__SRC_BT_CFG1_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 660 | #define MX53_PAD_EIM_OE__ECSPI2_MISO IOMUX_PAD(0x4D4, 0x188, 2, 0x7BC, 2, NO_PAD_CTRL) |
1835 | #define MX53_PAD_EIM_EB0__EMI_WEIM_EB_0 (_MX53_PAD_EIM_EB0__EMI_WEIM_EB_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 661 | #define MX53_PAD_EIM_OE__IPU_DI1_PIN7 IOMUX_PAD(0x4D4, 0x188, 3, __NA_, 0, NO_PAD_CTRL) |
1836 | #define MX53_PAD_EIM_EB0__GPIO2_28 (_MX53_PAD_EIM_EB0__GPIO2_28 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 662 | #define MX53_PAD_EIM_OE__USBPHY2_IDDIG IOMUX_PAD(0x4D4, 0x188, 7, __NA_, 0, NO_PAD_CTRL) |
1837 | #define MX53_PAD_EIM_EB0__IPU_DISP1_DAT_11 (_MX53_PAD_EIM_EB0__IPU_DISP1_DAT_11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 663 | #define MX53_PAD_EIM_RW__EMI_WEIM_RW IOMUX_PAD(0x4D8, 0x18C, 0, __NA_, 0, NO_PAD_CTRL) |
1838 | #define MX53_PAD_EIM_EB0__IPU_CSI1_D_11 (_MX53_PAD_EIM_EB0__IPU_CSI1_D_11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 664 | #define MX53_PAD_EIM_RW__GPIO2_26 IOMUX_PAD(0x4D8, 0x18C, 1, __NA_, 0, NO_PAD_CTRL) |
1839 | #define MX53_PAD_EIM_EB0__GPC_PMIC_RDY (_MX53_PAD_EIM_EB0__GPC_PMIC_RDY | MUX_PAD_CTRL(NO_PAD_CTRL)) | 665 | #define MX53_PAD_EIM_RW__ECSPI2_SS0 IOMUX_PAD(0x4D8, 0x18C, 2, 0x7C4, 2, NO_PAD_CTRL) |
1840 | #define MX53_PAD_EIM_EB0__SRC_BT_CFG2_7 (_MX53_PAD_EIM_EB0__SRC_BT_CFG2_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 666 | #define MX53_PAD_EIM_RW__IPU_DI1_PIN8 IOMUX_PAD(0x4D8, 0x18C, 3, __NA_, 0, NO_PAD_CTRL) |
1841 | #define MX53_PAD_EIM_EB1__EMI_WEIM_EB_1 (_MX53_PAD_EIM_EB1__EMI_WEIM_EB_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 667 | #define MX53_PAD_EIM_RW__USBPHY2_HOSTDISCONNECT IOMUX_PAD(0x4D8, 0x18C, 7, __NA_, 0, NO_PAD_CTRL) |
1842 | #define MX53_PAD_EIM_EB1__GPIO2_29 (_MX53_PAD_EIM_EB1__GPIO2_29 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 668 | #define MX53_PAD_EIM_LBA__EMI_WEIM_LBA IOMUX_PAD(0x4DC, 0x190, 0, __NA_, 0, NO_PAD_CTRL) |
1843 | #define MX53_PAD_EIM_EB1__IPU_DISP1_DAT_10 (_MX53_PAD_EIM_EB1__IPU_DISP1_DAT_10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 669 | #define MX53_PAD_EIM_LBA__GPIO2_27 IOMUX_PAD(0x4DC, 0x190, 1, __NA_, 0, NO_PAD_CTRL) |
1844 | #define MX53_PAD_EIM_EB1__IPU_CSI1_D_10 (_MX53_PAD_EIM_EB1__IPU_CSI1_D_10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 670 | #define MX53_PAD_EIM_LBA__ECSPI2_SS1 IOMUX_PAD(0x4DC, 0x190, 2, 0x7C8, 1, NO_PAD_CTRL) |
1845 | #define MX53_PAD_EIM_EB1__SRC_BT_CFG2_6 (_MX53_PAD_EIM_EB1__SRC_BT_CFG2_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 671 | #define MX53_PAD_EIM_LBA__IPU_DI1_PIN17 IOMUX_PAD(0x4DC, 0x190, 3, __NA_, 0, NO_PAD_CTRL) |
1846 | #define MX53_PAD_EIM_DA0__EMI_NAND_WEIM_DA_0 (_MX53_PAD_EIM_DA0__EMI_NAND_WEIM_DA_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 672 | #define MX53_PAD_EIM_LBA__SRC_BT_CFG1_0 IOMUX_PAD(0x4DC, 0x190, 7, __NA_, 0, NO_PAD_CTRL) |
1847 | #define MX53_PAD_EIM_DA0__GPIO3_0 (_MX53_PAD_EIM_DA0__GPIO3_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 673 | #define MX53_PAD_EIM_EB0__EMI_WEIM_EB_0 IOMUX_PAD(0x4E4, 0x194, 0, __NA_, 0, NO_PAD_CTRL) |
1848 | #define MX53_PAD_EIM_DA0__IPU_DISP1_DAT_9 (_MX53_PAD_EIM_DA0__IPU_DISP1_DAT_9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 674 | #define MX53_PAD_EIM_EB0__GPIO2_28 IOMUX_PAD(0x4E4, 0x194, 1, __NA_, 0, NO_PAD_CTRL) |
1849 | #define MX53_PAD_EIM_DA0__IPU_CSI1_D_9 (_MX53_PAD_EIM_DA0__IPU_CSI1_D_9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 675 | #define MX53_PAD_EIM_EB0__IPU_DISP1_DAT_11 IOMUX_PAD(0x4E4, 0x194, 3, __NA_, 0, NO_PAD_CTRL) |
1850 | #define MX53_PAD_EIM_DA0__SRC_BT_CFG2_5 (_MX53_PAD_EIM_DA0__SRC_BT_CFG2_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 676 | #define MX53_PAD_EIM_EB0__IPU_CSI1_D_11 IOMUX_PAD(0x4E4, 0x194, 4, __NA_, 0, NO_PAD_CTRL) |
1851 | #define MX53_PAD_EIM_DA1__EMI_NAND_WEIM_DA_1 (_MX53_PAD_EIM_DA1__EMI_NAND_WEIM_DA_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 677 | #define MX53_PAD_EIM_EB0__GPC_PMIC_RDY IOMUX_PAD(0x4E4, 0x194, 5, 0x810, 0, NO_PAD_CTRL) |
1852 | #define MX53_PAD_EIM_DA1__GPIO3_1 (_MX53_PAD_EIM_DA1__GPIO3_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 678 | #define MX53_PAD_EIM_EB0__SRC_BT_CFG2_7 IOMUX_PAD(0x4E4, 0x194, 7, __NA_, 0, NO_PAD_CTRL) |
1853 | #define MX53_PAD_EIM_DA1__IPU_DISP1_DAT_8 (_MX53_PAD_EIM_DA1__IPU_DISP1_DAT_8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 679 | #define MX53_PAD_EIM_EB1__EMI_WEIM_EB_1 IOMUX_PAD(0x4E8, 0x198, 0, __NA_, 0, NO_PAD_CTRL) |
1854 | #define MX53_PAD_EIM_DA1__IPU_CSI1_D_8 (_MX53_PAD_EIM_DA1__IPU_CSI1_D_8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 680 | #define MX53_PAD_EIM_EB1__GPIO2_29 IOMUX_PAD(0x4E8, 0x198, 1, __NA_, 0, NO_PAD_CTRL) |
1855 | #define MX53_PAD_EIM_DA1__SRC_BT_CFG2_4 (_MX53_PAD_EIM_DA1__SRC_BT_CFG2_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 681 | #define MX53_PAD_EIM_EB1__IPU_DISP1_DAT_10 IOMUX_PAD(0x4E8, 0x198, 3, __NA_, 0, NO_PAD_CTRL) |
1856 | #define MX53_PAD_EIM_DA2__EMI_NAND_WEIM_DA_2 (_MX53_PAD_EIM_DA2__EMI_NAND_WEIM_DA_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 682 | #define MX53_PAD_EIM_EB1__IPU_CSI1_D_10 IOMUX_PAD(0x4E8, 0x198, 4, __NA_, 0, NO_PAD_CTRL) |
1857 | #define MX53_PAD_EIM_DA2__GPIO3_2 (_MX53_PAD_EIM_DA2__GPIO3_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 683 | #define MX53_PAD_EIM_EB1__SRC_BT_CFG2_6 IOMUX_PAD(0x4E8, 0x198, 7, __NA_, 0, NO_PAD_CTRL) |
1858 | #define MX53_PAD_EIM_DA2__IPU_DISP1_DAT_7 (_MX53_PAD_EIM_DA2__IPU_DISP1_DAT_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 684 | #define MX53_PAD_EIM_DA0__EMI_NAND_WEIM_DA_0 IOMUX_PAD(0x4EC, 0x19C, 0, __NA_, 0, NO_PAD_CTRL) |
1859 | #define MX53_PAD_EIM_DA2__IPU_CSI1_D_7 (_MX53_PAD_EIM_DA2__IPU_CSI1_D_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 685 | #define MX53_PAD_EIM_DA0__GPIO3_0 IOMUX_PAD(0x4EC, 0x19C, 1, __NA_, 0, NO_PAD_CTRL) |
1860 | #define MX53_PAD_EIM_DA2__SRC_BT_CFG2_3 (_MX53_PAD_EIM_DA2__SRC_BT_CFG2_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 686 | #define MX53_PAD_EIM_DA0__IPU_DISP1_DAT_9 IOMUX_PAD(0x4EC, 0x19C, 3, __NA_, 0, NO_PAD_CTRL) |
1861 | #define MX53_PAD_EIM_DA3__EMI_NAND_WEIM_DA_3 (_MX53_PAD_EIM_DA3__EMI_NAND_WEIM_DA_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 687 | #define MX53_PAD_EIM_DA0__IPU_CSI1_D_9 IOMUX_PAD(0x4EC, 0x19C, 4, __NA_, 0, NO_PAD_CTRL) |
1862 | #define MX53_PAD_EIM_DA3__GPIO3_3 (_MX53_PAD_EIM_DA3__GPIO3_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 688 | #define MX53_PAD_EIM_DA0__SRC_BT_CFG2_5 IOMUX_PAD(0x4EC, 0x19C, 7, __NA_, 0, NO_PAD_CTRL) |
1863 | #define MX53_PAD_EIM_DA3__IPU_DISP1_DAT_6 (_MX53_PAD_EIM_DA3__IPU_DISP1_DAT_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 689 | #define MX53_PAD_EIM_DA1__EMI_NAND_WEIM_DA_1 IOMUX_PAD(0x4F0, 0x1A0, 0, __NA_, 0, NO_PAD_CTRL) |
1864 | #define MX53_PAD_EIM_DA3__IPU_CSI1_D_6 (_MX53_PAD_EIM_DA3__IPU_CSI1_D_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 690 | #define MX53_PAD_EIM_DA1__GPIO3_1 IOMUX_PAD(0x4F0, 0x1A0, 1, __NA_, 0, NO_PAD_CTRL) |
1865 | #define MX53_PAD_EIM_DA3__SRC_BT_CFG2_2 (_MX53_PAD_EIM_DA3__SRC_BT_CFG2_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 691 | #define MX53_PAD_EIM_DA1__IPU_DISP1_DAT_8 IOMUX_PAD(0x4F0, 0x1A0, 3, __NA_, 0, NO_PAD_CTRL) |
1866 | #define MX53_PAD_EIM_DA4__EMI_NAND_WEIM_DA_4 (_MX53_PAD_EIM_DA4__EMI_NAND_WEIM_DA_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 692 | #define MX53_PAD_EIM_DA1__IPU_CSI1_D_8 IOMUX_PAD(0x4F0, 0x1A0, 4, __NA_, 0, NO_PAD_CTRL) |
1867 | #define MX53_PAD_EIM_DA4__GPIO3_4 (_MX53_PAD_EIM_DA4__GPIO3_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 693 | #define MX53_PAD_EIM_DA1__SRC_BT_CFG2_4 IOMUX_PAD(0x4F0, 0x1A0, 7, __NA_, 0, NO_PAD_CTRL) |
1868 | #define MX53_PAD_EIM_DA4__IPU_DISP1_DAT_5 (_MX53_PAD_EIM_DA4__IPU_DISP1_DAT_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 694 | #define MX53_PAD_EIM_DA2__EMI_NAND_WEIM_DA_2 IOMUX_PAD(0x4F4, 0x1A4, 0, __NA_, 0, NO_PAD_CTRL) |
1869 | #define MX53_PAD_EIM_DA4__IPU_CSI1_D_5 (_MX53_PAD_EIM_DA4__IPU_CSI1_D_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 695 | #define MX53_PAD_EIM_DA2__GPIO3_2 IOMUX_PAD(0x4F4, 0x1A4, 1, __NA_, 0, NO_PAD_CTRL) |
1870 | #define MX53_PAD_EIM_DA4__SRC_BT_CFG3_7 (_MX53_PAD_EIM_DA4__SRC_BT_CFG3_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 696 | #define MX53_PAD_EIM_DA2__IPU_DISP1_DAT_7 IOMUX_PAD(0x4F4, 0x1A4, 3, __NA_, 0, NO_PAD_CTRL) |
1871 | #define MX53_PAD_EIM_DA5__EMI_NAND_WEIM_DA_5 (_MX53_PAD_EIM_DA5__EMI_NAND_WEIM_DA_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 697 | #define MX53_PAD_EIM_DA2__IPU_CSI1_D_7 IOMUX_PAD(0x4F4, 0x1A4, 4, __NA_, 0, NO_PAD_CTRL) |
1872 | #define MX53_PAD_EIM_DA5__GPIO3_5 (_MX53_PAD_EIM_DA5__GPIO3_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 698 | #define MX53_PAD_EIM_DA2__SRC_BT_CFG2_3 IOMUX_PAD(0x4F4, 0x1A4, 7, __NA_, 0, NO_PAD_CTRL) |
1873 | #define MX53_PAD_EIM_DA5__IPU_DISP1_DAT_4 (_MX53_PAD_EIM_DA5__IPU_DISP1_DAT_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 699 | #define MX53_PAD_EIM_DA3__EMI_NAND_WEIM_DA_3 IOMUX_PAD(0x4F8, 0x1A8, 0, __NA_, 0, NO_PAD_CTRL) |
1874 | #define MX53_PAD_EIM_DA5__IPU_CSI1_D_4 (_MX53_PAD_EIM_DA5__IPU_CSI1_D_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 700 | #define MX53_PAD_EIM_DA3__GPIO3_3 IOMUX_PAD(0x4F8, 0x1A8, 1, __NA_, 0, NO_PAD_CTRL) |
1875 | #define MX53_PAD_EIM_DA5__SRC_BT_CFG3_6 (_MX53_PAD_EIM_DA5__SRC_BT_CFG3_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 701 | #define MX53_PAD_EIM_DA3__IPU_DISP1_DAT_6 IOMUX_PAD(0x4F8, 0x1A8, 3, __NA_, 0, NO_PAD_CTRL) |
1876 | #define MX53_PAD_EIM_DA6__EMI_NAND_WEIM_DA_6 (_MX53_PAD_EIM_DA6__EMI_NAND_WEIM_DA_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 702 | #define MX53_PAD_EIM_DA3__IPU_CSI1_D_6 IOMUX_PAD(0x4F8, 0x1A8, 4, __NA_, 0, NO_PAD_CTRL) |
1877 | #define MX53_PAD_EIM_DA6__GPIO3_6 (_MX53_PAD_EIM_DA6__GPIO3_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 703 | #define MX53_PAD_EIM_DA3__SRC_BT_CFG2_2 IOMUX_PAD(0x4F8, 0x1A8, 7, __NA_, 0, NO_PAD_CTRL) |
1878 | #define MX53_PAD_EIM_DA6__IPU_DISP1_DAT_3 (_MX53_PAD_EIM_DA6__IPU_DISP1_DAT_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 704 | #define MX53_PAD_EIM_DA4__EMI_NAND_WEIM_DA_4 IOMUX_PAD(0x4FC, 0x1AC, 0, __NA_, 0, NO_PAD_CTRL) |
1879 | #define MX53_PAD_EIM_DA6__IPU_CSI1_D_3 (_MX53_PAD_EIM_DA6__IPU_CSI1_D_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 705 | #define MX53_PAD_EIM_DA4__GPIO3_4 IOMUX_PAD(0x4FC, 0x1AC, 1, __NA_, 0, NO_PAD_CTRL) |
1880 | #define MX53_PAD_EIM_DA6__SRC_BT_CFG3_5 (_MX53_PAD_EIM_DA6__SRC_BT_CFG3_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 706 | #define MX53_PAD_EIM_DA4__IPU_DISP1_DAT_5 IOMUX_PAD(0x4FC, 0x1AC, 3, __NA_, 0, NO_PAD_CTRL) |
1881 | #define MX53_PAD_EIM_DA7__EMI_NAND_WEIM_DA_7 (_MX53_PAD_EIM_DA7__EMI_NAND_WEIM_DA_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 707 | #define MX53_PAD_EIM_DA4__IPU_CSI1_D_5 IOMUX_PAD(0x4FC, 0x1AC, 4, __NA_, 0, NO_PAD_CTRL) |
1882 | #define MX53_PAD_EIM_DA7__GPIO3_7 (_MX53_PAD_EIM_DA7__GPIO3_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 708 | #define MX53_PAD_EIM_DA4__SRC_BT_CFG3_7 IOMUX_PAD(0x4FC, 0x1AC, 7, __NA_, 0, NO_PAD_CTRL) |
1883 | #define MX53_PAD_EIM_DA7__IPU_DISP1_DAT_2 (_MX53_PAD_EIM_DA7__IPU_DISP1_DAT_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 709 | #define MX53_PAD_EIM_DA5__EMI_NAND_WEIM_DA_5 IOMUX_PAD(0x500, 0x1B0, 0, __NA_, 0, NO_PAD_CTRL) |
1884 | #define MX53_PAD_EIM_DA7__IPU_CSI1_D_2 (_MX53_PAD_EIM_DA7__IPU_CSI1_D_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 710 | #define MX53_PAD_EIM_DA5__GPIO3_5 IOMUX_PAD(0x500, 0x1B0, 1, __NA_, 0, NO_PAD_CTRL) |
1885 | #define MX53_PAD_EIM_DA7__SRC_BT_CFG3_4 (_MX53_PAD_EIM_DA7__SRC_BT_CFG3_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 711 | #define MX53_PAD_EIM_DA5__IPU_DISP1_DAT_4 IOMUX_PAD(0x500, 0x1B0, 3, __NA_, 0, NO_PAD_CTRL) |
1886 | #define MX53_PAD_EIM_DA8__EMI_NAND_WEIM_DA_8 (_MX53_PAD_EIM_DA8__EMI_NAND_WEIM_DA_8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 712 | #define MX53_PAD_EIM_DA5__IPU_CSI1_D_4 IOMUX_PAD(0x500, 0x1B0, 4, __NA_, 0, NO_PAD_CTRL) |
1887 | #define MX53_PAD_EIM_DA8__GPIO3_8 (_MX53_PAD_EIM_DA8__GPIO3_8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 713 | #define MX53_PAD_EIM_DA5__SRC_BT_CFG3_6 IOMUX_PAD(0x500, 0x1B0, 7 | IOMUX_CONFIG_SION, __NA_, 0, NO_PAD_CTRL) |
1888 | #define MX53_PAD_EIM_DA8__IPU_DISP1_DAT_1 (_MX53_PAD_EIM_DA8__IPU_DISP1_DAT_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 714 | #define MX53_PAD_EIM_DA6__EMI_NAND_WEIM_DA_6 IOMUX_PAD(0x504, 0x1B4, 0, __NA_, 0, NO_PAD_CTRL) |
1889 | #define MX53_PAD_EIM_DA8__IPU_CSI1_D_1 (_MX53_PAD_EIM_DA8__IPU_CSI1_D_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 715 | #define MX53_PAD_EIM_DA6__GPIO3_6 IOMUX_PAD(0x504, 0x1B4, 1, __NA_, 0, NO_PAD_CTRL) |
1890 | #define MX53_PAD_EIM_DA8__SRC_BT_CFG3_3 (_MX53_PAD_EIM_DA8__SRC_BT_CFG3_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 716 | #define MX53_PAD_EIM_DA6__IPU_DISP1_DAT_3 IOMUX_PAD(0x504, 0x1B4, 3, __NA_, 0, NO_PAD_CTRL) |
1891 | #define MX53_PAD_EIM_DA9__EMI_NAND_WEIM_DA_9 (_MX53_PAD_EIM_DA9__EMI_NAND_WEIM_DA_9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 717 | #define MX53_PAD_EIM_DA6__IPU_CSI1_D_3 IOMUX_PAD(0x504, 0x1B4, 4, __NA_, 0, NO_PAD_CTRL) |
1892 | #define MX53_PAD_EIM_DA9__GPIO3_9 (_MX53_PAD_EIM_DA9__GPIO3_9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 718 | #define MX53_PAD_EIM_DA6__SRC_BT_CFG3_5 IOMUX_PAD(0x504, 0x1B4, 7, __NA_, 0, NO_PAD_CTRL) |
1893 | #define MX53_PAD_EIM_DA9__IPU_DISP1_DAT_0 (_MX53_PAD_EIM_DA9__IPU_DISP1_DAT_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 719 | #define MX53_PAD_EIM_DA7__EMI_NAND_WEIM_DA_7 IOMUX_PAD(0x508, 0x1B8, 0, __NA_, 0, NO_PAD_CTRL) |
1894 | #define MX53_PAD_EIM_DA9__IPU_CSI1_D_0 (_MX53_PAD_EIM_DA9__IPU_CSI1_D_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 720 | #define MX53_PAD_EIM_DA7__GPIO3_7 IOMUX_PAD(0x508, 0x1B8, 1, __NA_, 0, NO_PAD_CTRL) |
1895 | #define MX53_PAD_EIM_DA9__SRC_BT_CFG3_2 (_MX53_PAD_EIM_DA9__SRC_BT_CFG3_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 721 | #define MX53_PAD_EIM_DA7__IPU_DISP1_DAT_2 IOMUX_PAD(0x508, 0x1B8, 3, __NA_, 0, NO_PAD_CTRL) |
1896 | #define MX53_PAD_EIM_DA10__EMI_NAND_WEIM_DA_10 (_MX53_PAD_EIM_DA10__EMI_NAND_WEIM_DA_10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 722 | #define MX53_PAD_EIM_DA7__IPU_CSI1_D_2 IOMUX_PAD(0x508, 0x1B8, 4, __NA_, 0, NO_PAD_CTRL) |
1897 | #define MX53_PAD_EIM_DA10__GPIO3_10 (_MX53_PAD_EIM_DA10__GPIO3_10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 723 | #define MX53_PAD_EIM_DA7__SRC_BT_CFG3_4 IOMUX_PAD(0x508, 0x1B8, 7, __NA_, 0, NO_PAD_CTRL) |
1898 | #define MX53_PAD_EIM_DA10__IPU_DI1_PIN15 (_MX53_PAD_EIM_DA10__IPU_DI1_PIN15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 724 | #define MX53_PAD_EIM_DA8__EMI_NAND_WEIM_DA_8 IOMUX_PAD(0x50C, 0x1BC, 0, __NA_, 0, NO_PAD_CTRL) |
1899 | #define MX53_PAD_EIM_DA10__IPU_CSI1_DATA_EN (_MX53_PAD_EIM_DA10__IPU_CSI1_DATA_EN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 725 | #define MX53_PAD_EIM_DA8__GPIO3_8 IOMUX_PAD(0x50C, 0x1BC, 1, __NA_, 0, NO_PAD_CTRL) |
1900 | #define MX53_PAD_EIM_DA10__SRC_BT_CFG3_1 (_MX53_PAD_EIM_DA10__SRC_BT_CFG3_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 726 | #define MX53_PAD_EIM_DA8__IPU_DISP1_DAT_1 IOMUX_PAD(0x50C, 0x1BC, 3, __NA_, 0, NO_PAD_CTRL) |
1901 | #define MX53_PAD_EIM_DA11__EMI_NAND_WEIM_DA_11 (_MX53_PAD_EIM_DA11__EMI_NAND_WEIM_DA_11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 727 | #define MX53_PAD_EIM_DA8__IPU_CSI1_D_1 IOMUX_PAD(0x50C, 0x1BC, 4, __NA_, 0, NO_PAD_CTRL) |
1902 | #define MX53_PAD_EIM_DA11__GPIO3_11 (_MX53_PAD_EIM_DA11__GPIO3_11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 728 | #define MX53_PAD_EIM_DA8__SRC_BT_CFG3_3 IOMUX_PAD(0x50C, 0x1BC, 7, __NA_, 0, NO_PAD_CTRL) |
1903 | #define MX53_PAD_EIM_DA11__IPU_DI1_PIN2 (_MX53_PAD_EIM_DA11__IPU_DI1_PIN2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 729 | #define MX53_PAD_EIM_DA9__EMI_NAND_WEIM_DA_9 IOMUX_PAD(0x510, 0x1C0, 0, __NA_, 0, NO_PAD_CTRL) |
1904 | #define MX53_PAD_EIM_DA11__IPU_CSI1_HSYNC (_MX53_PAD_EIM_DA11__IPU_CSI1_HSYNC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 730 | #define MX53_PAD_EIM_DA9__GPIO3_9 IOMUX_PAD(0x510, 0x1C0, 1, __NA_, 0, NO_PAD_CTRL) |
1905 | #define MX53_PAD_EIM_DA12__EMI_NAND_WEIM_DA_12 (_MX53_PAD_EIM_DA12__EMI_NAND_WEIM_DA_12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 731 | #define MX53_PAD_EIM_DA9__IPU_DISP1_DAT_0 IOMUX_PAD(0x510, 0x1C0, 3, __NA_, 0, NO_PAD_CTRL) |
1906 | #define MX53_PAD_EIM_DA12__GPIO3_12 (_MX53_PAD_EIM_DA12__GPIO3_12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 732 | #define MX53_PAD_EIM_DA9__IPU_CSI1_D_0 IOMUX_PAD(0x510, 0x1C0, 4, __NA_, 0, NO_PAD_CTRL) |
1907 | #define MX53_PAD_EIM_DA12__IPU_DI1_PIN3 (_MX53_PAD_EIM_DA12__IPU_DI1_PIN3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 733 | #define MX53_PAD_EIM_DA9__SRC_BT_CFG3_2 IOMUX_PAD(0x510, 0x1C0, 7, __NA_, 0, NO_PAD_CTRL) |
1908 | #define MX53_PAD_EIM_DA12__IPU_CSI1_VSYNC (_MX53_PAD_EIM_DA12__IPU_CSI1_VSYNC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 734 | #define MX53_PAD_EIM_DA10__EMI_NAND_WEIM_DA_10 IOMUX_PAD(0x514, 0x1C4, 0, __NA_, 0, NO_PAD_CTRL) |
1909 | #define MX53_PAD_EIM_DA13__EMI_NAND_WEIM_DA_13 (_MX53_PAD_EIM_DA13__EMI_NAND_WEIM_DA_13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 735 | #define MX53_PAD_EIM_DA10__GPIO3_10 IOMUX_PAD(0x514, 0x1C4, 1, __NA_, 0, NO_PAD_CTRL) |
1910 | #define MX53_PAD_EIM_DA13__GPIO3_13 (_MX53_PAD_EIM_DA13__GPIO3_13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 736 | #define MX53_PAD_EIM_DA10__IPU_DI1_PIN15 IOMUX_PAD(0x514, 0x1C4, 3, __NA_, 0, NO_PAD_CTRL) |
1911 | #define MX53_PAD_EIM_DA13__IPU_DI1_D0_CS (_MX53_PAD_EIM_DA13__IPU_DI1_D0_CS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 737 | #define MX53_PAD_EIM_DA10__IPU_CSI1_DATA_EN IOMUX_PAD(0x514, 0x1C4, 4, 0x834, 1, NO_PAD_CTRL) |
1912 | #define MX53_PAD_EIM_DA13__CCM_DI1_EXT_CLK (_MX53_PAD_EIM_DA13__CCM_DI1_EXT_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 738 | #define MX53_PAD_EIM_DA10__SRC_BT_CFG3_1 IOMUX_PAD(0x514, 0x1C4, 7, __NA_, 0, NO_PAD_CTRL) |
1913 | #define MX53_PAD_EIM_DA14__EMI_NAND_WEIM_DA_14 (_MX53_PAD_EIM_DA14__EMI_NAND_WEIM_DA_14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 739 | #define MX53_PAD_EIM_DA11__EMI_NAND_WEIM_DA_11 IOMUX_PAD(0x518, 0x1C8, 0, __NA_, 0, NO_PAD_CTRL) |
1914 | #define MX53_PAD_EIM_DA14__GPIO3_14 (_MX53_PAD_EIM_DA14__GPIO3_14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 740 | #define MX53_PAD_EIM_DA11__GPIO3_11 IOMUX_PAD(0x518, 0x1C8, 1, __NA_, 0, NO_PAD_CTRL) |
1915 | #define MX53_PAD_EIM_DA14__IPU_DI1_D1_CS (_MX53_PAD_EIM_DA14__IPU_DI1_D1_CS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 741 | #define MX53_PAD_EIM_DA11__IPU_DI1_PIN2 IOMUX_PAD(0x518, 0x1C8, 3, __NA_, 0, NO_PAD_CTRL) |
1916 | #define MX53_PAD_EIM_DA14__CCM_DI0_EXT_CLK (_MX53_PAD_EIM_DA14__CCM_DI0_EXT_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 742 | #define MX53_PAD_EIM_DA11__IPU_CSI1_HSYNC IOMUX_PAD(0x518, 0x1C8, 4, 0x838, 1, NO_PAD_CTRL) |
1917 | #define MX53_PAD_EIM_DA15__EMI_NAND_WEIM_DA_15 (_MX53_PAD_EIM_DA15__EMI_NAND_WEIM_DA_15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 743 | #define MX53_PAD_EIM_DA12__EMI_NAND_WEIM_DA_12 IOMUX_PAD(0x51C, 0x1CC, 0, __NA_, 0, NO_PAD_CTRL) |
1918 | #define MX53_PAD_EIM_DA15__GPIO3_15 (_MX53_PAD_EIM_DA15__GPIO3_15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 744 | #define MX53_PAD_EIM_DA12__GPIO3_12 IOMUX_PAD(0x51C, 0x1CC, 1, __NA_, 0, NO_PAD_CTRL) |
1919 | #define MX53_PAD_EIM_DA15__IPU_DI1_PIN1 (_MX53_PAD_EIM_DA15__IPU_DI1_PIN1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 745 | #define MX53_PAD_EIM_DA12__IPU_DI1_PIN3 IOMUX_PAD(0x51C, 0x1CC, 3, __NA_, 0, NO_PAD_CTRL) |
1920 | #define MX53_PAD_EIM_DA15__IPU_DI1_PIN4 (_MX53_PAD_EIM_DA15__IPU_DI1_PIN4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 746 | #define MX53_PAD_EIM_DA12__IPU_CSI1_VSYNC IOMUX_PAD(0x51C, 0x1CC, 4, 0x83C, 1, NO_PAD_CTRL) |
1921 | #define MX53_PAD_NANDF_WE_B__EMI_NANDF_WE_B (_MX53_PAD_NANDF_WE_B__EMI_NANDF_WE_B | MUX_PAD_CTRL(NO_PAD_CTRL)) | 747 | #define MX53_PAD_EIM_DA13__EMI_NAND_WEIM_DA_13 IOMUX_PAD(0x520, 0x1D0, 0, __NA_, 0, NO_PAD_CTRL) |
1922 | #define MX53_PAD_NANDF_WE_B__GPIO6_12 (_MX53_PAD_NANDF_WE_B__GPIO6_12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 748 | #define MX53_PAD_EIM_DA13__GPIO3_13 IOMUX_PAD(0x520, 0x1D0, 1, __NA_, 0, NO_PAD_CTRL) |
1923 | #define MX53_PAD_NANDF_RE_B__EMI_NANDF_RE_B (_MX53_PAD_NANDF_RE_B__EMI_NANDF_RE_B | MUX_PAD_CTRL(NO_PAD_CTRL)) | 749 | #define MX53_PAD_EIM_DA13__IPU_DI1_D0_CS IOMUX_PAD(0x520, 0x1D0, 3, __NA_, 0, NO_PAD_CTRL) |
1924 | #define MX53_PAD_NANDF_RE_B__GPIO6_13 (_MX53_PAD_NANDF_RE_B__GPIO6_13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 750 | #define MX53_PAD_EIM_DA13__CCM_DI1_EXT_CLK IOMUX_PAD(0x520, 0x1D0, 4, 0x76C, 1, NO_PAD_CTRL) |
1925 | #define MX53_PAD_EIM_WAIT__EMI_WEIM_WAIT (_MX53_PAD_EIM_WAIT__EMI_WEIM_WAIT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 751 | #define MX53_PAD_EIM_DA14__EMI_NAND_WEIM_DA_14 IOMUX_PAD(0x524, 0x1D4, 0, __NA_, 0, NO_PAD_CTRL) |
1926 | #define MX53_PAD_EIM_WAIT__GPIO5_0 (_MX53_PAD_EIM_WAIT__GPIO5_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 752 | #define MX53_PAD_EIM_DA14__GPIO3_14 IOMUX_PAD(0x524, 0x1D4, 1, __NA_, 0, NO_PAD_CTRL) |
1927 | #define MX53_PAD_EIM_WAIT__EMI_WEIM_DTACK_B (_MX53_PAD_EIM_WAIT__EMI_WEIM_DTACK_B | MUX_PAD_CTRL(NO_PAD_CTRL)) | 753 | #define MX53_PAD_EIM_DA14__IPU_DI1_D1_CS IOMUX_PAD(0x524, 0x1D4, 3, __NA_, 0, NO_PAD_CTRL) |
1928 | #define MX53_PAD_LVDS1_TX3_P__GPIO6_22 (_MX53_PAD_LVDS1_TX3_P__GPIO6_22 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 754 | #define MX53_PAD_EIM_DA14__CCM_DI0_EXT_CLK IOMUX_PAD(0x524, 0x1D4, 4, __NA_, 0, NO_PAD_CTRL) |
1929 | #define MX53_PAD_LVDS1_TX3_P__LDB_LVDS1_TX3 (_MX53_PAD_LVDS1_TX3_P__LDB_LVDS1_TX3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 755 | #define MX53_PAD_EIM_DA15__EMI_NAND_WEIM_DA_15 IOMUX_PAD(0x528, 0x1D8, 0, __NA_, 0, NO_PAD_CTRL) |
1930 | #define MX53_PAD_LVDS1_TX2_P__GPIO6_24 (_MX53_PAD_LVDS1_TX2_P__GPIO6_24 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 756 | #define MX53_PAD_EIM_DA15__GPIO3_15 IOMUX_PAD(0x528, 0x1D8, 1, __NA_, 0, NO_PAD_CTRL) |
1931 | #define MX53_PAD_LVDS1_TX2_P__LDB_LVDS1_TX2 (_MX53_PAD_LVDS1_TX2_P__LDB_LVDS1_TX2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 757 | #define MX53_PAD_EIM_DA15__IPU_DI1_PIN1 IOMUX_PAD(0x528, 0x1D8, 3, __NA_, 0, NO_PAD_CTRL) |
1932 | #define MX53_PAD_LVDS1_CLK_P__GPIO6_26 (_MX53_PAD_LVDS1_CLK_P__GPIO6_26 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 758 | #define MX53_PAD_EIM_DA15__IPU_DI1_PIN4 IOMUX_PAD(0x528, 0x1D8, 4, __NA_, 0, NO_PAD_CTRL) |
1933 | #define MX53_PAD_LVDS1_CLK_P__LDB_LVDS1_CLK (_MX53_PAD_LVDS1_CLK_P__LDB_LVDS1_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 759 | #define MX53_PAD_NANDF_WE_B__EMI_NANDF_WE_B IOMUX_PAD(0x52C, 0x1DC, 0, __NA_, 0, NO_PAD_CTRL) |
1934 | #define MX53_PAD_LVDS1_TX1_P__GPIO6_28 (_MX53_PAD_LVDS1_TX1_P__GPIO6_28 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 760 | #define MX53_PAD_NANDF_WE_B__GPIO6_12 IOMUX_PAD(0x52C, 0x1DC, 1, __NA_, 0, NO_PAD_CTRL) |
1935 | #define MX53_PAD_LVDS1_TX1_P__LDB_LVDS1_TX1 (_MX53_PAD_LVDS1_TX1_P__LDB_LVDS1_TX1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 761 | #define MX53_PAD_NANDF_RE_B__EMI_NANDF_RE_B IOMUX_PAD(0x530, 0x1E0, 0, __NA_, 0, NO_PAD_CTRL) |
1936 | #define MX53_PAD_LVDS1_TX0_P__GPIO6_30 (_MX53_PAD_LVDS1_TX0_P__GPIO6_30 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 762 | #define MX53_PAD_NANDF_RE_B__GPIO6_13 IOMUX_PAD(0x530, 0x1E0, 1, __NA_, 0, NO_PAD_CTRL) |
1937 | #define MX53_PAD_LVDS1_TX0_P__LDB_LVDS1_TX0 (_MX53_PAD_LVDS1_TX0_P__LDB_LVDS1_TX0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 763 | #define MX53_PAD_EIM_WAIT__EMI_WEIM_WAIT IOMUX_PAD(0x534, 0x1E4, 0, __NA_, 0, NO_PAD_CTRL) |
1938 | #define MX53_PAD_LVDS0_TX3_P__GPIO7_22 (_MX53_PAD_LVDS0_TX3_P__GPIO7_22 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 764 | #define MX53_PAD_EIM_WAIT__GPIO5_0 IOMUX_PAD(0x534, 0x1E4, 1, __NA_, 0, NO_PAD_CTRL) |
1939 | #define MX53_PAD_LVDS0_TX3_P__LDB_LVDS0_TX3 (_MX53_PAD_LVDS0_TX3_P__LDB_LVDS0_TX3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 765 | #define MX53_PAD_EIM_WAIT__EMI_WEIM_DTACK_B IOMUX_PAD(0x534, 0x1E4, 2, __NA_, 0, NO_PAD_CTRL) |
1940 | #define MX53_PAD_LVDS0_CLK_P__GPIO7_24 (_MX53_PAD_LVDS0_CLK_P__GPIO7_24 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 766 | #define MX53_PAD_LVDS1_TX3_P__GPIO6_22 IOMUX_PAD(__NA_, 0x1EC, 0, __NA_, 0, NO_PAD_CTRL) |
1941 | #define MX53_PAD_LVDS0_CLK_P__LDB_LVDS0_CLK (_MX53_PAD_LVDS0_CLK_P__LDB_LVDS0_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 767 | #define MX53_PAD_LVDS1_TX3_P__LDB_LVDS1_TX3 IOMUX_PAD(__NA_, 0x1EC, 1, __NA_, 0, NO_PAD_CTRL) |
1942 | #define MX53_PAD_LVDS0_TX2_P__GPIO7_26 (_MX53_PAD_LVDS0_TX2_P__GPIO7_26 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 768 | #define MX53_PAD_LVDS1_TX2_P__GPIO6_24 IOMUX_PAD(__NA_, 0x1F0, 0, __NA_, 0, NO_PAD_CTRL) |
1943 | #define MX53_PAD_LVDS0_TX2_P__LDB_LVDS0_TX2 (_MX53_PAD_LVDS0_TX2_P__LDB_LVDS0_TX2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 769 | #define MX53_PAD_LVDS1_TX2_P__LDB_LVDS1_TX2 IOMUX_PAD(__NA_, 0x1F0, 1, __NA_, 0, NO_PAD_CTRL) |
1944 | #define MX53_PAD_LVDS0_TX1_P__GPIO7_28 (_MX53_PAD_LVDS0_TX1_P__GPIO7_28 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 770 | #define MX53_PAD_LVDS1_CLK_P__GPIO6_26 IOMUX_PAD(__NA_, 0x1F4, 0, __NA_, 0, NO_PAD_CTRL) |
1945 | #define MX53_PAD_LVDS0_TX1_P__LDB_LVDS0_TX1 (_MX53_PAD_LVDS0_TX1_P__LDB_LVDS0_TX1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 771 | #define MX53_PAD_LVDS1_CLK_P__LDB_LVDS1_CLK IOMUX_PAD(__NA_, 0x1F4, 1, __NA_, 0, NO_PAD_CTRL) |
1946 | #define MX53_PAD_LVDS0_TX0_P__GPIO7_30 (_MX53_PAD_LVDS0_TX0_P__GPIO7_30 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 772 | #define MX53_PAD_LVDS1_TX1_P__GPIO6_28 IOMUX_PAD(__NA_, 0x1F8, 0, __NA_, 0, NO_PAD_CTRL) |
1947 | #define MX53_PAD_LVDS0_TX0_P__LDB_LVDS0_TX0 (_MX53_PAD_LVDS0_TX0_P__LDB_LVDS0_TX0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 773 | #define MX53_PAD_LVDS1_TX1_P__LDB_LVDS1_TX1 IOMUX_PAD(__NA_, 0x1F8, 1, __NA_, 0, NO_PAD_CTRL) |
1948 | #define MX53_PAD_GPIO_10__GPIO4_0 (_MX53_PAD_GPIO_10__GPIO4_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 774 | #define MX53_PAD_LVDS1_TX0_P__GPIO6_30 IOMUX_PAD(__NA_, 0x1FC, 0, __NA_, 0, NO_PAD_CTRL) |
1949 | #define MX53_PAD_GPIO_10__OSC32k_32K_OUT (_MX53_PAD_GPIO_10__OSC32k_32K_OUT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 775 | #define MX53_PAD_LVDS1_TX0_P__LDB_LVDS1_TX0 IOMUX_PAD(__NA_, 0x1FC, 1, __NA_, 0, NO_PAD_CTRL) |
1950 | #define MX53_PAD_GPIO_11__GPIO4_1 (_MX53_PAD_GPIO_11__GPIO4_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 776 | #define MX53_PAD_LVDS0_TX3_P__GPIO7_22 IOMUX_PAD(__NA_, 0x200, 0, __NA_, 0, NO_PAD_CTRL) |
1951 | #define MX53_PAD_GPIO_12__GPIO4_2 (_MX53_PAD_GPIO_12__GPIO4_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 777 | #define MX53_PAD_LVDS0_TX3_P__LDB_LVDS0_TX3 IOMUX_PAD(__NA_, 0x200, 1, __NA_, 0, NO_PAD_CTRL) |
1952 | #define MX53_PAD_GPIO_13__GPIO4_3 (_MX53_PAD_GPIO_13__GPIO4_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 778 | #define MX53_PAD_LVDS0_CLK_P__GPIO7_24 IOMUX_PAD(__NA_, 0x204, 0, __NA_, 0, NO_PAD_CTRL) |
1953 | #define MX53_PAD_GPIO_14__GPIO4_4 (_MX53_PAD_GPIO_14__GPIO4_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 779 | #define MX53_PAD_LVDS0_CLK_P__LDB_LVDS0_CLK IOMUX_PAD(__NA_, 0x204, 1, __NA_, 0, NO_PAD_CTRL) |
1954 | #define MX53_PAD_NANDF_CLE__EMI_NANDF_CLE (_MX53_PAD_NANDF_CLE__EMI_NANDF_CLE | MUX_PAD_CTRL(NO_PAD_CTRL)) | 780 | #define MX53_PAD_LVDS0_TX2_P__GPIO7_26 IOMUX_PAD(__NA_, 0x208, 0, __NA_, 0, NO_PAD_CTRL) |
1955 | #define MX53_PAD_NANDF_CLE__GPIO6_7 (_MX53_PAD_NANDF_CLE__GPIO6_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 781 | #define MX53_PAD_LVDS0_TX2_P__LDB_LVDS0_TX2 IOMUX_PAD(__NA_, 0x208, 1, __NA_, 0, NO_PAD_CTRL) |
1956 | #define MX53_PAD_NANDF_CLE__USBPHY1_VSTATUS_0 (_MX53_PAD_NANDF_CLE__USBPHY1_VSTATUS_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 782 | #define MX53_PAD_LVDS0_TX1_P__GPIO7_28 IOMUX_PAD(__NA_, 0x20C, 0, __NA_, 0, NO_PAD_CTRL) |
1957 | #define MX53_PAD_NANDF_ALE__EMI_NANDF_ALE (_MX53_PAD_NANDF_ALE__EMI_NANDF_ALE | MUX_PAD_CTRL(NO_PAD_CTRL)) | 783 | #define MX53_PAD_LVDS0_TX1_P__LDB_LVDS0_TX1 IOMUX_PAD(__NA_, 0x20C, 1, __NA_, 0, NO_PAD_CTRL) |
1958 | #define MX53_PAD_NANDF_ALE__GPIO6_8 (_MX53_PAD_NANDF_ALE__GPIO6_8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 784 | #define MX53_PAD_LVDS0_TX0_P__GPIO7_30 IOMUX_PAD(__NA_, 0x210, 0, __NA_, 0, NO_PAD_CTRL) |
1959 | #define MX53_PAD_NANDF_ALE__USBPHY1_VSTATUS_1 (_MX53_PAD_NANDF_ALE__USBPHY1_VSTATUS_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 785 | #define MX53_PAD_LVDS0_TX0_P__LDB_LVDS0_TX0 IOMUX_PAD(__NA_, 0x210, 1, __NA_, 0, NO_PAD_CTRL) |
1960 | #define MX53_PAD_NANDF_WP_B__EMI_NANDF_WP_B (_MX53_PAD_NANDF_WP_B__EMI_NANDF_WP_B | MUX_PAD_CTRL(NO_PAD_CTRL)) | 786 | #define MX53_PAD_GPIO_10__GPIO4_0 IOMUX_PAD(0x540, 0x214, 0, __NA_, 0, NO_PAD_CTRL) |
1961 | #define MX53_PAD_NANDF_WP_B__GPIO6_9 (_MX53_PAD_NANDF_WP_B__GPIO6_9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 787 | #define MX53_PAD_GPIO_10__OSC32k_32K_OUT IOMUX_PAD(0x540, 0x214, 1, __NA_, 0, NO_PAD_CTRL) |
1962 | #define MX53_PAD_NANDF_WP_B__USBPHY1_VSTATUS_2 (_MX53_PAD_NANDF_WP_B__USBPHY1_VSTATUS_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 788 | #define MX53_PAD_GPIO_11__GPIO4_1 IOMUX_PAD(0x544, 0x218, 0, __NA_, 0, NO_PAD_CTRL) |
1963 | #define MX53_PAD_NANDF_RB0__EMI_NANDF_RB_0 (_MX53_PAD_NANDF_RB0__EMI_NANDF_RB_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 789 | #define MX53_PAD_GPIO_12__GPIO4_2 IOMUX_PAD(0x548, 0x21C, 0, __NA_, 0, NO_PAD_CTRL) |
1964 | #define MX53_PAD_NANDF_RB0__GPIO6_10 (_MX53_PAD_NANDF_RB0__GPIO6_10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 790 | #define MX53_PAD_GPIO_13__GPIO4_3 IOMUX_PAD(0x54C, 0x220, 0, __NA_, 0, NO_PAD_CTRL) |
1965 | #define MX53_PAD_NANDF_RB0__USBPHY1_VSTATUS_3 (_MX53_PAD_NANDF_RB0__USBPHY1_VSTATUS_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 791 | #define MX53_PAD_GPIO_14__GPIO4_4 IOMUX_PAD(0x550, 0x224, 0, __NA_, 0, NO_PAD_CTRL) |
1966 | #define MX53_PAD_NANDF_CS0__EMI_NANDF_CS_0 (_MX53_PAD_NANDF_CS0__EMI_NANDF_CS_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 792 | #define MX53_PAD_NANDF_CLE__EMI_NANDF_CLE IOMUX_PAD(0x5A0, 0x228, 0, __NA_, 0, NO_PAD_CTRL) |
1967 | #define MX53_PAD_NANDF_CS0__GPIO6_11 (_MX53_PAD_NANDF_CS0__GPIO6_11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 793 | #define MX53_PAD_NANDF_CLE__GPIO6_7 IOMUX_PAD(0x5A0, 0x228, 1, __NA_, 0, NO_PAD_CTRL) |
1968 | #define MX53_PAD_NANDF_CS0__USBPHY1_VSTATUS_4 (_MX53_PAD_NANDF_CS0__USBPHY1_VSTATUS_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 794 | #define MX53_PAD_NANDF_CLE__USBPHY1_VSTATUS_0 IOMUX_PAD(0x5A0, 0x228, 7, __NA_, 0, NO_PAD_CTRL) |
1969 | #define MX53_PAD_NANDF_CS1__EMI_NANDF_CS_1 (_MX53_PAD_NANDF_CS1__EMI_NANDF_CS_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 795 | #define MX53_PAD_NANDF_ALE__EMI_NANDF_ALE IOMUX_PAD(0x5A4, 0x22C, 0, __NA_, 0, NO_PAD_CTRL) |
1970 | #define MX53_PAD_NANDF_CS1__GPIO6_14 (_MX53_PAD_NANDF_CS1__GPIO6_14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 796 | #define MX53_PAD_NANDF_ALE__GPIO6_8 IOMUX_PAD(0x5A4, 0x22C, 1, __NA_, 0, NO_PAD_CTRL) |
1971 | #define MX53_PAD_NANDF_CS1__MLB_MLBCLK (_MX53_PAD_NANDF_CS1__MLB_MLBCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 797 | #define MX53_PAD_NANDF_ALE__USBPHY1_VSTATUS_1 IOMUX_PAD(0x5A4, 0x22C, 7, __NA_, 0, NO_PAD_CTRL) |
1972 | #define MX53_PAD_NANDF_CS1__USBPHY1_VSTATUS_5 (_MX53_PAD_NANDF_CS1__USBPHY1_VSTATUS_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 798 | #define MX53_PAD_NANDF_WP_B__EMI_NANDF_WP_B IOMUX_PAD(0x5A8, 0x230, 0, __NA_, 0, NO_PAD_CTRL) |
1973 | #define MX53_PAD_NANDF_CS2__EMI_NANDF_CS_2 (_MX53_PAD_NANDF_CS2__EMI_NANDF_CS_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 799 | #define MX53_PAD_NANDF_WP_B__GPIO6_9 IOMUX_PAD(0x5A8, 0x230, 1, __NA_, 0, NO_PAD_CTRL) |
1974 | #define MX53_PAD_NANDF_CS2__GPIO6_15 (_MX53_PAD_NANDF_CS2__GPIO6_15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 800 | #define MX53_PAD_NANDF_WP_B__USBPHY1_VSTATUS_2 IOMUX_PAD(0x5A8, 0x230, 7, __NA_, 0, NO_PAD_CTRL) |
1975 | #define MX53_PAD_NANDF_CS2__IPU_SISG_0 (_MX53_PAD_NANDF_CS2__IPU_SISG_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 801 | #define MX53_PAD_NANDF_RB0__EMI_NANDF_RB_0 IOMUX_PAD(0x5AC, 0x234, 0, __NA_, 0, NO_PAD_CTRL) |
1976 | #define MX53_PAD_NANDF_CS2__ESAI1_TX0 (_MX53_PAD_NANDF_CS2__ESAI1_TX0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 802 | #define MX53_PAD_NANDF_RB0__GPIO6_10 IOMUX_PAD(0x5AC, 0x234, 1, __NA_, 0, NO_PAD_CTRL) |
1977 | #define MX53_PAD_NANDF_CS2__EMI_WEIM_CRE (_MX53_PAD_NANDF_CS2__EMI_WEIM_CRE | MUX_PAD_CTRL(NO_PAD_CTRL)) | 803 | #define MX53_PAD_NANDF_RB0__USBPHY1_VSTATUS_3 IOMUX_PAD(0x5AC, 0x234, 7, __NA_, 0, NO_PAD_CTRL) |
1978 | #define MX53_PAD_NANDF_CS2__CCM_CSI0_MCLK (_MX53_PAD_NANDF_CS2__CCM_CSI0_MCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 804 | #define MX53_PAD_NANDF_CS0__EMI_NANDF_CS_0 IOMUX_PAD(0x5B0, 0x238, 0, __NA_, 0, NO_PAD_CTRL) |
1979 | #define MX53_PAD_NANDF_CS2__MLB_MLBSIG (_MX53_PAD_NANDF_CS2__MLB_MLBSIG | MUX_PAD_CTRL(NO_PAD_CTRL)) | 805 | #define MX53_PAD_NANDF_CS0__GPIO6_11 IOMUX_PAD(0x5B0, 0x238, 1, __NA_, 0, NO_PAD_CTRL) |
1980 | #define MX53_PAD_NANDF_CS2__USBPHY1_VSTATUS_6 (_MX53_PAD_NANDF_CS2__USBPHY1_VSTATUS_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 806 | #define MX53_PAD_NANDF_CS0__USBPHY1_VSTATUS_4 IOMUX_PAD(0x5B0, 0x238, 7, __NA_, 0, NO_PAD_CTRL) |
1981 | #define MX53_PAD_NANDF_CS3__EMI_NANDF_CS_3 (_MX53_PAD_NANDF_CS3__EMI_NANDF_CS_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 807 | #define MX53_PAD_NANDF_CS1__EMI_NANDF_CS_1 IOMUX_PAD(0x5B4, 0x23C, 0, __NA_, 0, NO_PAD_CTRL) |
1982 | #define MX53_PAD_NANDF_CS3__GPIO6_16 (_MX53_PAD_NANDF_CS3__GPIO6_16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 808 | #define MX53_PAD_NANDF_CS1__GPIO6_14 IOMUX_PAD(0x5B4, 0x23C, 1, __NA_, 0, NO_PAD_CTRL) |
1983 | #define MX53_PAD_NANDF_CS3__IPU_SISG_1 (_MX53_PAD_NANDF_CS3__IPU_SISG_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 809 | #define MX53_PAD_NANDF_CS1__MLB_MLBCLK IOMUX_PAD(0x5B4, 0x23C, 6, 0x858, 0, NO_PAD_CTRL) |
1984 | #define MX53_PAD_NANDF_CS3__ESAI1_TX1 (_MX53_PAD_NANDF_CS3__ESAI1_TX1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 810 | #define MX53_PAD_NANDF_CS1__USBPHY1_VSTATUS_5 IOMUX_PAD(0x5B4, 0x23C, 7, __NA_, 0, NO_PAD_CTRL) |
1985 | #define MX53_PAD_NANDF_CS3__EMI_WEIM_A_26 (_MX53_PAD_NANDF_CS3__EMI_WEIM_A_26 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 811 | #define MX53_PAD_NANDF_CS2__EMI_NANDF_CS_2 IOMUX_PAD(0x5B8, 0x240, 0, __NA_, 0, NO_PAD_CTRL) |
1986 | #define MX53_PAD_NANDF_CS3__MLB_MLBDAT (_MX53_PAD_NANDF_CS3__MLB_MLBDAT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 812 | #define MX53_PAD_NANDF_CS2__GPIO6_15 IOMUX_PAD(0x5B8, 0x240, 1, __NA_, 0, NO_PAD_CTRL) |
1987 | #define MX53_PAD_NANDF_CS3__USBPHY1_VSTATUS_7 (_MX53_PAD_NANDF_CS3__USBPHY1_VSTATUS_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 813 | #define MX53_PAD_NANDF_CS2__IPU_SISG_0 IOMUX_PAD(0x5B8, 0x240, 2, __NA_, 0, NO_PAD_CTRL) |
1988 | #define MX53_PAD_FEC_MDIO__FEC_MDIO (_MX53_PAD_FEC_MDIO__FEC_MDIO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 814 | #define MX53_PAD_NANDF_CS2__ESAI1_TX0 IOMUX_PAD(0x5B8, 0x240, 3, 0x7E4, 0, NO_PAD_CTRL) |
1989 | #define MX53_PAD_FEC_MDIO__GPIO1_22 (_MX53_PAD_FEC_MDIO__GPIO1_22 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 815 | #define MX53_PAD_NANDF_CS2__EMI_WEIM_CRE IOMUX_PAD(0x5B8, 0x240, 4, __NA_, 0, NO_PAD_CTRL) |
1990 | #define MX53_PAD_FEC_MDIO__ESAI1_SCKR (_MX53_PAD_FEC_MDIO__ESAI1_SCKR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 816 | #define MX53_PAD_NANDF_CS2__CCM_CSI0_MCLK IOMUX_PAD(0x5B8, 0x240, 5, __NA_, 0, NO_PAD_CTRL) |
1991 | #define MX53_PAD_FEC_MDIO__FEC_COL (_MX53_PAD_FEC_MDIO__FEC_COL | MUX_PAD_CTRL(NO_PAD_CTRL)) | 817 | #define MX53_PAD_NANDF_CS2__MLB_MLBSIG IOMUX_PAD(0x5B8, 0x240, 6, 0x860, 0, NO_PAD_CTRL) |
1992 | #define MX53_PAD_FEC_MDIO__RTC_CE_RTC_PS2 (_MX53_PAD_FEC_MDIO__RTC_CE_RTC_PS2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 818 | #define MX53_PAD_NANDF_CS2__USBPHY1_VSTATUS_6 IOMUX_PAD(0x5B8, 0x240, 7, __NA_, 0, NO_PAD_CTRL) |
1993 | #define MX53_PAD_FEC_MDIO__SDMA_DEBUG_BUS_DEVICE_3 (_MX53_PAD_FEC_MDIO__SDMA_DEBUG_BUS_DEVICE_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 819 | #define MX53_PAD_NANDF_CS3__EMI_NANDF_CS_3 IOMUX_PAD(0x5BC, 0x244, 0, __NA_, 0, NO_PAD_CTRL) |
1994 | #define MX53_PAD_FEC_MDIO__EMI_EMI_DEBUG_49 (_MX53_PAD_FEC_MDIO__EMI_EMI_DEBUG_49 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 820 | #define MX53_PAD_NANDF_CS3__GPIO6_16 IOMUX_PAD(0x5BC, 0x244, 1, __NA_, 0, NO_PAD_CTRL) |
1995 | #define MX53_PAD_FEC_REF_CLK__FEC_TX_CLK (_MX53_PAD_FEC_REF_CLK__FEC_TX_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 821 | #define MX53_PAD_NANDF_CS3__IPU_SISG_1 IOMUX_PAD(0x5BC, 0x244, 2, __NA_, 0, NO_PAD_CTRL) |
1996 | #define MX53_PAD_FEC_REF_CLK__GPIO1_23 (_MX53_PAD_FEC_REF_CLK__GPIO1_23 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 822 | #define MX53_PAD_NANDF_CS3__ESAI1_TX1 IOMUX_PAD(0x5BC, 0x244, 3, 0x7E8, 0, NO_PAD_CTRL) |
1997 | #define MX53_PAD_FEC_REF_CLK__ESAI1_FSR (_MX53_PAD_FEC_REF_CLK__ESAI1_FSR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 823 | #define MX53_PAD_NANDF_CS3__EMI_WEIM_A_26 IOMUX_PAD(0x5BC, 0x244, 4, __NA_, 0, NO_PAD_CTRL) |
1998 | #define MX53_PAD_FEC_REF_CLK__SDMA_DEBUG_BUS_DEVICE_4 (_MX53_PAD_FEC_REF_CLK__SDMA_DEBUG_BUS_DEVICE_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 824 | #define MX53_PAD_NANDF_CS3__MLB_MLBDAT IOMUX_PAD(0x5BC, 0x244, 6, 0x85C, 0, NO_PAD_CTRL) |
1999 | #define MX53_PAD_FEC_REF_CLK__EMI_EMI_DEBUG_50 (_MX53_PAD_FEC_REF_CLK__EMI_EMI_DEBUG_50 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 825 | #define MX53_PAD_NANDF_CS3__USBPHY1_VSTATUS_7 IOMUX_PAD(0x5BC, 0x244, 7, __NA_, 0, NO_PAD_CTRL) |
2000 | #define MX53_PAD_FEC_RX_ER__FEC_RX_ER (_MX53_PAD_FEC_RX_ER__FEC_RX_ER | MUX_PAD_CTRL(NO_PAD_CTRL)) | 826 | #define MX53_PAD_FEC_MDIO__FEC_MDIO IOMUX_PAD(0x5C4, 0x248, 0, 0x804, 1, NO_PAD_CTRL) |
2001 | #define MX53_PAD_FEC_RX_ER__GPIO1_24 (_MX53_PAD_FEC_RX_ER__GPIO1_24 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 827 | #define MX53_PAD_FEC_MDIO__GPIO1_22 IOMUX_PAD(0x5C4, 0x248, 1, __NA_, 0, NO_PAD_CTRL) |
2002 | #define MX53_PAD_FEC_RX_ER__ESAI1_HCKR (_MX53_PAD_FEC_RX_ER__ESAI1_HCKR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 828 | #define MX53_PAD_FEC_MDIO__ESAI1_SCKR IOMUX_PAD(0x5C4, 0x248, 2, 0x7DC, 0, NO_PAD_CTRL) |
2003 | #define MX53_PAD_FEC_RX_ER__FEC_RX_CLK (_MX53_PAD_FEC_RX_ER__FEC_RX_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 829 | #define MX53_PAD_FEC_MDIO__FEC_COL IOMUX_PAD(0x5C4, 0x248, 3, 0x800, 1, NO_PAD_CTRL) |
2004 | #define MX53_PAD_FEC_RX_ER__RTC_CE_RTC_PS3 (_MX53_PAD_FEC_RX_ER__RTC_CE_RTC_PS3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 830 | #define MX53_PAD_FEC_MDIO__RTC_CE_RTC_PS2 IOMUX_PAD(0x5C4, 0x248, 4, __NA_, 0, NO_PAD_CTRL) |
2005 | #define MX53_PAD_FEC_CRS_DV__FEC_RX_DV (_MX53_PAD_FEC_CRS_DV__FEC_RX_DV | MUX_PAD_CTRL(NO_PAD_CTRL)) | 831 | #define MX53_PAD_FEC_MDIO__SDMA_DEBUG_BUS_DEVICE_3 IOMUX_PAD(0x5C4, 0x248, 5, __NA_, 0, NO_PAD_CTRL) |
2006 | #define MX53_PAD_FEC_CRS_DV__GPIO1_25 (_MX53_PAD_FEC_CRS_DV__GPIO1_25 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 832 | #define MX53_PAD_FEC_MDIO__EMI_EMI_DEBUG_49 IOMUX_PAD(0x5C4, 0x248, 6, __NA_, 0, NO_PAD_CTRL) |
2007 | #define MX53_PAD_FEC_CRS_DV__ESAI1_SCKT (_MX53_PAD_FEC_CRS_DV__ESAI1_SCKT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 833 | #define MX53_PAD_FEC_REF_CLK__FEC_TX_CLK IOMUX_PAD(0x5C8, 0x24C, 0, __NA_, 0, NO_PAD_CTRL) |
2008 | #define MX53_PAD_FEC_RXD1__FEC_RDATA_1 (_MX53_PAD_FEC_RXD1__FEC_RDATA_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 834 | #define MX53_PAD_FEC_REF_CLK__GPIO1_23 IOMUX_PAD(0x5C8, 0x24C, 1, __NA_, 0, NO_PAD_CTRL) |
2009 | #define MX53_PAD_FEC_RXD1__GPIO1_26 (_MX53_PAD_FEC_RXD1__GPIO1_26 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 835 | #define MX53_PAD_FEC_REF_CLK__ESAI1_FSR IOMUX_PAD(0x5C8, 0x24C, 2, 0x7CC, 0, NO_PAD_CTRL) |
2010 | #define MX53_PAD_FEC_RXD1__ESAI1_FST (_MX53_PAD_FEC_RXD1__ESAI1_FST | MUX_PAD_CTRL(NO_PAD_CTRL)) | 836 | #define MX53_PAD_FEC_REF_CLK__SDMA_DEBUG_BUS_DEVICE_4 IOMUX_PAD(0x5C8, 0x24C, 5, __NA_, 0, NO_PAD_CTRL) |
2011 | #define MX53_PAD_FEC_RXD1__MLB_MLBSIG (_MX53_PAD_FEC_RXD1__MLB_MLBSIG | MUX_PAD_CTRL(NO_PAD_CTRL)) | 837 | #define MX53_PAD_FEC_REF_CLK__EMI_EMI_DEBUG_50 IOMUX_PAD(0x5C8, 0x24C, 6, __NA_, 0, NO_PAD_CTRL) |
2012 | #define MX53_PAD_FEC_RXD1__RTC_CE_RTC_PS1 (_MX53_PAD_FEC_RXD1__RTC_CE_RTC_PS1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 838 | #define MX53_PAD_FEC_RX_ER__FEC_RX_ER IOMUX_PAD(0x5CC, 0x250, 0, __NA_, 0, NO_PAD_CTRL) |
2013 | #define MX53_PAD_FEC_RXD0__FEC_RDATA_0 (_MX53_PAD_FEC_RXD0__FEC_RDATA_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 839 | #define MX53_PAD_FEC_RX_ER__GPIO1_24 IOMUX_PAD(0x5CC, 0x250, 1, __NA_, 0, NO_PAD_CTRL) |
2014 | #define MX53_PAD_FEC_RXD0__GPIO1_27 (_MX53_PAD_FEC_RXD0__GPIO1_27 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 840 | #define MX53_PAD_FEC_RX_ER__ESAI1_HCKR IOMUX_PAD(0x5CC, 0x250, 2, 0x7D4, 0, NO_PAD_CTRL) |
2015 | #define MX53_PAD_FEC_RXD0__ESAI1_HCKT (_MX53_PAD_FEC_RXD0__ESAI1_HCKT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 841 | #define MX53_PAD_FEC_RX_ER__FEC_RX_CLK IOMUX_PAD(0x5CC, 0x250, 3, 0x808, 1, NO_PAD_CTRL) |
2016 | #define MX53_PAD_FEC_RXD0__OSC32k_32K_OUT (_MX53_PAD_FEC_RXD0__OSC32k_32K_OUT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 842 | #define MX53_PAD_FEC_RX_ER__RTC_CE_RTC_PS3 IOMUX_PAD(0x5CC, 0x250, 4, __NA_, 0, NO_PAD_CTRL) |
2017 | #define MX53_PAD_FEC_TX_EN__FEC_TX_EN (_MX53_PAD_FEC_TX_EN__FEC_TX_EN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 843 | #define MX53_PAD_FEC_CRS_DV__FEC_RX_DV IOMUX_PAD(0x5D0, 0x254, 0, __NA_, 0, NO_PAD_CTRL) |
2018 | #define MX53_PAD_FEC_TX_EN__GPIO1_28 (_MX53_PAD_FEC_TX_EN__GPIO1_28 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 844 | #define MX53_PAD_FEC_CRS_DV__GPIO1_25 IOMUX_PAD(0x5D0, 0x254, 1, __NA_, 0, NO_PAD_CTRL) |
2019 | #define MX53_PAD_FEC_TX_EN__ESAI1_TX3_RX2 (_MX53_PAD_FEC_TX_EN__ESAI1_TX3_RX2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 845 | #define MX53_PAD_FEC_CRS_DV__ESAI1_SCKT IOMUX_PAD(0x5D0, 0x254, 2, 0x7E0, 0, NO_PAD_CTRL) |
2020 | #define MX53_PAD_FEC_TXD1__FEC_TDATA_1 (_MX53_PAD_FEC_TXD1__FEC_TDATA_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 846 | #define MX53_PAD_FEC_RXD1__FEC_RDATA_1 IOMUX_PAD(0x5D4, 0x258, 0, __NA_, 0, NO_PAD_CTRL) |
2021 | #define MX53_PAD_FEC_TXD1__GPIO1_29 (_MX53_PAD_FEC_TXD1__GPIO1_29 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 847 | #define MX53_PAD_FEC_RXD1__GPIO1_26 IOMUX_PAD(0x5D4, 0x258, 1, __NA_, 0, NO_PAD_CTRL) |
2022 | #define MX53_PAD_FEC_TXD1__ESAI1_TX2_RX3 (_MX53_PAD_FEC_TXD1__ESAI1_TX2_RX3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 848 | #define MX53_PAD_FEC_RXD1__ESAI1_FST IOMUX_PAD(0x5D4, 0x258, 2, 0x7D0, 0, NO_PAD_CTRL) |
2023 | #define MX53_PAD_FEC_TXD1__MLB_MLBCLK (_MX53_PAD_FEC_TXD1__MLB_MLBCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 849 | #define MX53_PAD_FEC_RXD1__MLB_MLBSIG IOMUX_PAD(0x5D4, 0x258, 3, 0x860, 1, NO_PAD_CTRL) |
2024 | #define MX53_PAD_FEC_TXD1__RTC_CE_RTC_PRSC_CLK (_MX53_PAD_FEC_TXD1__RTC_CE_RTC_PRSC_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 850 | #define MX53_PAD_FEC_RXD1__RTC_CE_RTC_PS1 IOMUX_PAD(0x5D4, 0x258, 4, __NA_, 0, NO_PAD_CTRL) |
2025 | #define MX53_PAD_FEC_TXD0__FEC_TDATA_0 (_MX53_PAD_FEC_TXD0__FEC_TDATA_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 851 | #define MX53_PAD_FEC_RXD0__FEC_RDATA_0 IOMUX_PAD(0x5D8, 0x25C, 0, __NA_, 0, NO_PAD_CTRL) |
2026 | #define MX53_PAD_FEC_TXD0__GPIO1_30 (_MX53_PAD_FEC_TXD0__GPIO1_30 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 852 | #define MX53_PAD_FEC_RXD0__GPIO1_27 IOMUX_PAD(0x5D8, 0x25C, 1, __NA_, 0, NO_PAD_CTRL) |
2027 | #define MX53_PAD_FEC_TXD0__ESAI1_TX4_RX1 (_MX53_PAD_FEC_TXD0__ESAI1_TX4_RX1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 853 | #define MX53_PAD_FEC_RXD0__ESAI1_HCKT IOMUX_PAD(0x5D8, 0x25C, 2, 0x7D8, 0, NO_PAD_CTRL) |
2028 | #define MX53_PAD_FEC_TXD0__USBPHY2_DATAOUT_0 (_MX53_PAD_FEC_TXD0__USBPHY2_DATAOUT_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 854 | #define MX53_PAD_FEC_RXD0__OSC32k_32K_OUT IOMUX_PAD(0x5D8, 0x25C, 3, __NA_, 0, NO_PAD_CTRL) |
2029 | #define MX53_PAD_FEC_MDC__FEC_MDC (_MX53_PAD_FEC_MDC__FEC_MDC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 855 | #define MX53_PAD_FEC_TX_EN__FEC_TX_EN IOMUX_PAD(0x5DC, 0x260, 0, __NA_, 0, NO_PAD_CTRL) |
2030 | #define MX53_PAD_FEC_MDC__GPIO1_31 (_MX53_PAD_FEC_MDC__GPIO1_31 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 856 | #define MX53_PAD_FEC_TX_EN__GPIO1_28 IOMUX_PAD(0x5DC, 0x260, 1, __NA_, 0, NO_PAD_CTRL) |
2031 | #define MX53_PAD_FEC_MDC__ESAI1_TX5_RX0 (_MX53_PAD_FEC_MDC__ESAI1_TX5_RX0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 857 | #define MX53_PAD_FEC_TX_EN__ESAI1_TX3_RX2 IOMUX_PAD(0x5DC, 0x260, 2, 0x7F0, 0, NO_PAD_CTRL) |
2032 | #define MX53_PAD_FEC_MDC__MLB_MLBDAT (_MX53_PAD_FEC_MDC__MLB_MLBDAT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 858 | #define MX53_PAD_FEC_TXD1__FEC_TDATA_1 IOMUX_PAD(0x5E0, 0x264, 0, __NA_, 0, NO_PAD_CTRL) |
2033 | #define MX53_PAD_FEC_MDC__RTC_CE_RTC_ALARM1_TRIG (_MX53_PAD_FEC_MDC__RTC_CE_RTC_ALARM1_TRIG | MUX_PAD_CTRL(NO_PAD_CTRL)) | 859 | #define MX53_PAD_FEC_TXD1__GPIO1_29 IOMUX_PAD(0x5E0, 0x264, 1, __NA_, 0, NO_PAD_CTRL) |
2034 | #define MX53_PAD_FEC_MDC__USBPHY2_DATAOUT_1 (_MX53_PAD_FEC_MDC__USBPHY2_DATAOUT_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 860 | #define MX53_PAD_FEC_TXD1__ESAI1_TX2_RX3 IOMUX_PAD(0x5E0, 0x264, 2, 0x7EC, 0, NO_PAD_CTRL) |
2035 | #define MX53_PAD_PATA_DIOW__PATA_DIOW (_MX53_PAD_PATA_DIOW__PATA_DIOW | MUX_PAD_CTRL(NO_PAD_CTRL)) | 861 | #define MX53_PAD_FEC_TXD1__MLB_MLBCLK IOMUX_PAD(0x5E0, 0x264, 3, 0x858, 1, NO_PAD_CTRL) |
2036 | #define MX53_PAD_PATA_DIOW__GPIO6_17 (_MX53_PAD_PATA_DIOW__GPIO6_17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 862 | #define MX53_PAD_FEC_TXD1__RTC_CE_RTC_PRSC_CLK IOMUX_PAD(0x5E0, 0x264, 4, __NA_, 0, NO_PAD_CTRL) |
2037 | #define MX53_PAD_PATA_DIOW__UART1_TXD_MUX (_MX53_PAD_PATA_DIOW__UART1_TXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 863 | #define MX53_PAD_FEC_TXD0__FEC_TDATA_0 IOMUX_PAD(0x5E4, 0x268, 0, __NA_, 0, NO_PAD_CTRL) |
2038 | #define MX53_PAD_PATA_DIOW__USBPHY2_DATAOUT_2 (_MX53_PAD_PATA_DIOW__USBPHY2_DATAOUT_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 864 | #define MX53_PAD_FEC_TXD0__GPIO1_30 IOMUX_PAD(0x5E4, 0x268, 1, __NA_, 0, NO_PAD_CTRL) |
2039 | #define MX53_PAD_PATA_DMACK__PATA_DMACK (_MX53_PAD_PATA_DMACK__PATA_DMACK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 865 | #define MX53_PAD_FEC_TXD0__ESAI1_TX4_RX1 IOMUX_PAD(0x5E4, 0x268, 2, 0x7F4, 0, NO_PAD_CTRL) |
2040 | #define MX53_PAD_PATA_DMACK__GPIO6_18 (_MX53_PAD_PATA_DMACK__GPIO6_18 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 866 | #define MX53_PAD_FEC_TXD0__USBPHY2_DATAOUT_0 IOMUX_PAD(0x5E4, 0x268, 7, __NA_, 0, NO_PAD_CTRL) |
2041 | #define MX53_PAD_PATA_DMACK__UART1_RXD_MUX (_MX53_PAD_PATA_DMACK__UART1_RXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 867 | #define MX53_PAD_FEC_MDC__FEC_MDC IOMUX_PAD(0x5E8, 0x26C, 0, __NA_, 0, NO_PAD_CTRL) |
2042 | #define MX53_PAD_PATA_DMACK__USBPHY2_DATAOUT_3 (_MX53_PAD_PATA_DMACK__USBPHY2_DATAOUT_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 868 | #define MX53_PAD_FEC_MDC__GPIO1_31 IOMUX_PAD(0x5E8, 0x26C, 1, __NA_, 0, NO_PAD_CTRL) |
2043 | #define MX53_PAD_PATA_DMARQ__PATA_DMARQ (_MX53_PAD_PATA_DMARQ__PATA_DMARQ | MUX_PAD_CTRL(NO_PAD_CTRL)) | 869 | #define MX53_PAD_FEC_MDC__ESAI1_TX5_RX0 IOMUX_PAD(0x5E8, 0x26C, 2, 0x7F8, 0, NO_PAD_CTRL) |
2044 | #define MX53_PAD_PATA_DMARQ__GPIO7_0 (_MX53_PAD_PATA_DMARQ__GPIO7_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 870 | #define MX53_PAD_FEC_MDC__MLB_MLBDAT IOMUX_PAD(0x5E8, 0x26C, 3, 0x85C, 1, NO_PAD_CTRL) |
2045 | #define MX53_PAD_PATA_DMARQ__UART2_TXD_MUX (_MX53_PAD_PATA_DMARQ__UART2_TXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 871 | #define MX53_PAD_FEC_MDC__RTC_CE_RTC_ALARM1_TRIG IOMUX_PAD(0x5E8, 0x26C, 4, __NA_, 0, NO_PAD_CTRL) |
2046 | #define MX53_PAD_PATA_DMARQ__CCM_CCM_OUT_0 (_MX53_PAD_PATA_DMARQ__CCM_CCM_OUT_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 872 | #define MX53_PAD_FEC_MDC__USBPHY2_DATAOUT_1 IOMUX_PAD(0x5E8, 0x26C, 7, __NA_, 0, NO_PAD_CTRL) |
2047 | #define MX53_PAD_PATA_DMARQ__USBPHY2_DATAOUT_4 (_MX53_PAD_PATA_DMARQ__USBPHY2_DATAOUT_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 873 | #define MX53_PAD_PATA_DIOW__PATA_DIOW IOMUX_PAD(0x5F0, 0x270, 0, __NA_, 0, NO_PAD_CTRL) |
2048 | #define MX53_PAD_PATA_BUFFER_EN__PATA_BUFFER_EN (_MX53_PAD_PATA_BUFFER_EN__PATA_BUFFER_EN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 874 | #define MX53_PAD_PATA_DIOW__GPIO6_17 IOMUX_PAD(0x5F0, 0x270, 1, __NA_, 0, NO_PAD_CTRL) |
2049 | #define MX53_PAD_PATA_BUFFER_EN__GPIO7_1 (_MX53_PAD_PATA_BUFFER_EN__GPIO7_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 875 | #define MX53_PAD_PATA_DIOW__UART1_TXD_MUX IOMUX_PAD(0x5F0, 0x270, 3, __NA_, 0, MX53_UART_PAD_CTRL) |
2050 | #define MX53_PAD_PATA_BUFFER_EN__UART2_RXD_MUX (_MX53_PAD_PATA_BUFFER_EN__UART2_RXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 876 | #define MX53_PAD_PATA_DIOW__USBPHY2_DATAOUT_2 IOMUX_PAD(0x5F0, 0x270, 7, __NA_, 0, NO_PAD_CTRL) |
2051 | #define MX53_PAD_PATA_BUFFER_EN__CCM_CCM_OUT_1 (_MX53_PAD_PATA_BUFFER_EN__CCM_CCM_OUT_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 877 | #define MX53_PAD_PATA_DMACK__PATA_DMACK IOMUX_PAD(0x5F4, 0x274, 0, __NA_, 0, NO_PAD_CTRL) |
2052 | #define MX53_PAD_PATA_BUFFER_EN__USBPHY2_DATAOUT_5 (_MX53_PAD_PATA_BUFFER_EN__USBPHY2_DATAOUT_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 878 | #define MX53_PAD_PATA_DMACK__GPIO6_18 IOMUX_PAD(0x5F4, 0x274, 1, __NA_, 0, NO_PAD_CTRL) |
2053 | #define MX53_PAD_PATA_INTRQ__PATA_INTRQ (_MX53_PAD_PATA_INTRQ__PATA_INTRQ | MUX_PAD_CTRL(NO_PAD_CTRL)) | 879 | #define MX53_PAD_PATA_DMACK__UART1_RXD_MUX IOMUX_PAD(0x5F4, 0x274, 3, 0x878, 3, MX53_UART_PAD_CTRL) |
2054 | #define MX53_PAD_PATA_INTRQ__GPIO7_2 (_MX53_PAD_PATA_INTRQ__GPIO7_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 880 | #define MX53_PAD_PATA_DMACK__USBPHY2_DATAOUT_3 IOMUX_PAD(0x5F4, 0x274, 7, __NA_, 0, NO_PAD_CTRL) |
2055 | #define MX53_PAD_PATA_INTRQ__UART2_CTS (_MX53_PAD_PATA_INTRQ__UART2_CTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 881 | #define MX53_PAD_PATA_DMARQ__PATA_DMARQ IOMUX_PAD(0x5F8, 0x278, 0, __NA_, 0, NO_PAD_CTRL) |
2056 | #define MX53_PAD_PATA_INTRQ__CAN1_TXCAN (_MX53_PAD_PATA_INTRQ__CAN1_TXCAN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 882 | #define MX53_PAD_PATA_DMARQ__GPIO7_0 IOMUX_PAD(0x5F8, 0x278, 1, __NA_, 0, NO_PAD_CTRL) |
2057 | #define MX53_PAD_PATA_INTRQ__CCM_CCM_OUT_2 (_MX53_PAD_PATA_INTRQ__CCM_CCM_OUT_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 883 | #define MX53_PAD_PATA_DMARQ__UART2_TXD_MUX IOMUX_PAD(0x5F8, 0x278, 3, __NA_, 0, MX53_UART_PAD_CTRL) |
2058 | #define MX53_PAD_PATA_INTRQ__USBPHY2_DATAOUT_6 (_MX53_PAD_PATA_INTRQ__USBPHY2_DATAOUT_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 884 | #define MX53_PAD_PATA_DMARQ__CCM_CCM_OUT_0 IOMUX_PAD(0x5F8, 0x278, 5, __NA_, 0, NO_PAD_CTRL) |
2059 | #define MX53_PAD_PATA_DIOR__PATA_DIOR (_MX53_PAD_PATA_DIOR__PATA_DIOR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 885 | #define MX53_PAD_PATA_DMARQ__USBPHY2_DATAOUT_4 IOMUX_PAD(0x5F8, 0x278, 7, __NA_, 0, NO_PAD_CTRL) |
2060 | #define MX53_PAD_PATA_DIOR__GPIO7_3 (_MX53_PAD_PATA_DIOR__GPIO7_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 886 | #define MX53_PAD_PATA_BUFFER_EN__PATA_BUFFER_EN IOMUX_PAD(0x5FC, 0x27C, 0, __NA_, 0, NO_PAD_CTRL) |
2061 | #define MX53_PAD_PATA_DIOR__UART2_RTS (_MX53_PAD_PATA_DIOR__UART2_RTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 887 | #define MX53_PAD_PATA_BUFFER_EN__GPIO7_1 IOMUX_PAD(0x5FC, 0x27C, 1, __NA_, 0, NO_PAD_CTRL) |
2062 | #define MX53_PAD_PATA_DIOR__CAN1_RXCAN (_MX53_PAD_PATA_DIOR__CAN1_RXCAN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 888 | #define MX53_PAD_PATA_BUFFER_EN__UART2_RXD_MUX IOMUX_PAD(0x5FC, 0x27C, 3, 0x880, 3, MX53_UART_PAD_CTRL) |
2063 | #define MX53_PAD_PATA_DIOR__USBPHY2_DATAOUT_7 (_MX53_PAD_PATA_DIOR__USBPHY2_DATAOUT_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 889 | #define MX53_PAD_PATA_BUFFER_EN__CCM_CCM_OUT_1 IOMUX_PAD(0x5FC, 0x27C, 5, __NA_, 0, NO_PAD_CTRL) |
2064 | #define MX53_PAD_PATA_RESET_B__PATA_PATA_RESET_B (_MX53_PAD_PATA_RESET_B__PATA_PATA_RESET_B | MUX_PAD_CTRL(NO_PAD_CTRL)) | 890 | #define MX53_PAD_PATA_BUFFER_EN__USBPHY2_DATAOUT_5 IOMUX_PAD(0x5FC, 0x27C, 7, __NA_, 0, NO_PAD_CTRL) |
2065 | #define MX53_PAD_PATA_RESET_B__GPIO7_4 (_MX53_PAD_PATA_RESET_B__GPIO7_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 891 | #define MX53_PAD_PATA_INTRQ__PATA_INTRQ IOMUX_PAD(0x600, 0x280, 0, __NA_, 0, NO_PAD_CTRL) |
2066 | #define MX53_PAD_PATA_RESET_B__ESDHC3_CMD (_MX53_PAD_PATA_RESET_B__ESDHC3_CMD | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 892 | #define MX53_PAD_PATA_INTRQ__GPIO7_2 IOMUX_PAD(0x600, 0x280, 1, __NA_, 0, NO_PAD_CTRL) |
2067 | #define MX53_PAD_PATA_RESET_B__UART1_CTS (_MX53_PAD_PATA_RESET_B__UART1_CTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 893 | #define MX53_PAD_PATA_INTRQ__UART2_CTS IOMUX_PAD(0x600, 0x280, 3, __NA_, 0, MX53_UART_PAD_CTRL) |
2068 | #define MX53_PAD_PATA_RESET_B__CAN2_TXCAN (_MX53_PAD_PATA_RESET_B__CAN2_TXCAN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 894 | #define MX53_PAD_PATA_INTRQ__CAN1_TXCAN IOMUX_PAD(0x600, 0x280, 4, __NA_, 0, NO_PAD_CTRL) |
2069 | #define MX53_PAD_PATA_RESET_B__USBPHY1_DATAOUT_0 (_MX53_PAD_PATA_RESET_B__USBPHY1_DATAOUT_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 895 | #define MX53_PAD_PATA_INTRQ__CCM_CCM_OUT_2 IOMUX_PAD(0x600, 0x280, 5, __NA_, 0, NO_PAD_CTRL) |
2070 | #define MX53_PAD_PATA_IORDY__PATA_IORDY (_MX53_PAD_PATA_IORDY__PATA_IORDY | MUX_PAD_CTRL(NO_PAD_CTRL)) | 896 | #define MX53_PAD_PATA_INTRQ__USBPHY2_DATAOUT_6 IOMUX_PAD(0x600, 0x280, 7, __NA_, 0, NO_PAD_CTRL) |
2071 | #define MX53_PAD_PATA_IORDY__GPIO7_5 (_MX53_PAD_PATA_IORDY__GPIO7_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 897 | #define MX53_PAD_PATA_DIOR__PATA_DIOR IOMUX_PAD(0x604, 0x284, 0, __NA_, 0, NO_PAD_CTRL) |
2072 | #define MX53_PAD_PATA_IORDY__ESDHC3_CLK (_MX53_PAD_PATA_IORDY__ESDHC3_CLK | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 898 | #define MX53_PAD_PATA_DIOR__GPIO7_3 IOMUX_PAD(0x604, 0x284, 1, __NA_, 0, NO_PAD_CTRL) |
2073 | #define MX53_PAD_PATA_IORDY__UART1_RTS (_MX53_PAD_PATA_IORDY__UART1_RTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 899 | #define MX53_PAD_PATA_DIOR__UART2_RTS IOMUX_PAD(0x604, 0x284, 3, 0x87C, 3, MX53_UART_PAD_CTRL) |
2074 | #define MX53_PAD_PATA_IORDY__CAN2_RXCAN (_MX53_PAD_PATA_IORDY__CAN2_RXCAN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 900 | #define MX53_PAD_PATA_DIOR__CAN1_RXCAN IOMUX_PAD(0x604, 0x284, 4, 0x760, 1, NO_PAD_CTRL) |
2075 | #define MX53_PAD_PATA_IORDY__USBPHY1_DATAOUT_1 (_MX53_PAD_PATA_IORDY__USBPHY1_DATAOUT_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 901 | #define MX53_PAD_PATA_DIOR__USBPHY2_DATAOUT_7 IOMUX_PAD(0x604, 0x284, 7, __NA_, 0, NO_PAD_CTRL) |
2076 | #define MX53_PAD_PATA_DA_0__PATA_DA_0 (_MX53_PAD_PATA_DA_0__PATA_DA_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 902 | #define MX53_PAD_PATA_RESET_B__PATA_PATA_RESET_B IOMUX_PAD(0x608, 0x288, 0, __NA_, 0, NO_PAD_CTRL) |
2077 | #define MX53_PAD_PATA_DA_0__GPIO7_6 (_MX53_PAD_PATA_DA_0__GPIO7_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 903 | #define MX53_PAD_PATA_RESET_B__GPIO7_4 IOMUX_PAD(0x608, 0x288, 1, __NA_, 0, NO_PAD_CTRL) |
2078 | #define MX53_PAD_PATA_DA_0__ESDHC3_RST (_MX53_PAD_PATA_DA_0__ESDHC3_RST | MUX_PAD_CTRL(NO_PAD_CTRL)) | 904 | #define MX53_PAD_PATA_RESET_B__ESDHC3_CMD IOMUX_PAD(0x608, 0x288, 2, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2079 | #define MX53_PAD_PATA_DA_0__OWIRE_LINE (_MX53_PAD_PATA_DA_0__OWIRE_LINE | MUX_PAD_CTRL(NO_PAD_CTRL)) | 905 | #define MX53_PAD_PATA_RESET_B__UART1_CTS IOMUX_PAD(0x608, 0x288, 3, __NA_, 0, MX53_UART_PAD_CTRL) |
2080 | #define MX53_PAD_PATA_DA_0__USBPHY1_DATAOUT_2 (_MX53_PAD_PATA_DA_0__USBPHY1_DATAOUT_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 906 | #define MX53_PAD_PATA_RESET_B__CAN2_TXCAN IOMUX_PAD(0x608, 0x288, 4, __NA_, 0, NO_PAD_CTRL) |
2081 | #define MX53_PAD_PATA_DA_1__PATA_DA_1 (_MX53_PAD_PATA_DA_1__PATA_DA_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 907 | #define MX53_PAD_PATA_RESET_B__USBPHY1_DATAOUT_0 IOMUX_PAD(0x608, 0x288, 7, __NA_, 0, NO_PAD_CTRL) |
2082 | #define MX53_PAD_PATA_DA_1__GPIO7_7 (_MX53_PAD_PATA_DA_1__GPIO7_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 908 | #define MX53_PAD_PATA_IORDY__PATA_IORDY IOMUX_PAD(0x60C, 0x28C, 0, __NA_, 0, NO_PAD_CTRL) |
2083 | #define MX53_PAD_PATA_DA_1__ESDHC4_CMD (_MX53_PAD_PATA_DA_1__ESDHC4_CMD | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 909 | #define MX53_PAD_PATA_IORDY__GPIO7_5 IOMUX_PAD(0x60C, 0x28C, 1, __NA_, 0, NO_PAD_CTRL) |
2084 | #define MX53_PAD_PATA_DA_1__UART3_CTS (_MX53_PAD_PATA_DA_1__UART3_CTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 910 | #define MX53_PAD_PATA_IORDY__ESDHC3_CLK IOMUX_PAD(0x60C, 0x28C, 2, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2085 | #define MX53_PAD_PATA_DA_1__USBPHY1_DATAOUT_3 (_MX53_PAD_PATA_DA_1__USBPHY1_DATAOUT_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 911 | #define MX53_PAD_PATA_IORDY__UART1_RTS IOMUX_PAD(0x60C, 0x28C, 3, 0x874, 3, MX53_UART_PAD_CTRL) |
2086 | #define MX53_PAD_PATA_DA_2__PATA_DA_2 (_MX53_PAD_PATA_DA_2__PATA_DA_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 912 | #define MX53_PAD_PATA_IORDY__CAN2_RXCAN IOMUX_PAD(0x60C, 0x28C, 4, 0x764, 1, NO_PAD_CTRL) |
2087 | #define MX53_PAD_PATA_DA_2__GPIO7_8 (_MX53_PAD_PATA_DA_2__GPIO7_8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 913 | #define MX53_PAD_PATA_IORDY__USBPHY1_DATAOUT_1 IOMUX_PAD(0x60C, 0x28C, 7, __NA_, 0, NO_PAD_CTRL) |
2088 | #define MX53_PAD_PATA_DA_2__ESDHC4_CLK (_MX53_PAD_PATA_DA_2__ESDHC4_CLK | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 914 | #define MX53_PAD_PATA_DA_0__PATA_DA_0 IOMUX_PAD(0x610, 0x290, 0, __NA_, 0, NO_PAD_CTRL) |
2089 | #define MX53_PAD_PATA_DA_2__UART3_RTS (_MX53_PAD_PATA_DA_2__UART3_RTS | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 915 | #define MX53_PAD_PATA_DA_0__GPIO7_6 IOMUX_PAD(0x610, 0x290, 1, __NA_, 0, NO_PAD_CTRL) |
2090 | #define MX53_PAD_PATA_DA_2__USBPHY1_DATAOUT_4 (_MX53_PAD_PATA_DA_2__USBPHY1_DATAOUT_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 916 | #define MX53_PAD_PATA_DA_0__ESDHC3_RST IOMUX_PAD(0x610, 0x290, 2, __NA_, 0, NO_PAD_CTRL) |
2091 | #define MX53_PAD_PATA_CS_0__PATA_CS_0 (_MX53_PAD_PATA_CS_0__PATA_CS_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 917 | #define MX53_PAD_PATA_DA_0__OWIRE_LINE IOMUX_PAD(0x610, 0x290, 4, 0x864, 0, NO_PAD_CTRL) |
2092 | #define MX53_PAD_PATA_CS_0__GPIO7_9 (_MX53_PAD_PATA_CS_0__GPIO7_9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 918 | #define MX53_PAD_PATA_DA_0__USBPHY1_DATAOUT_2 IOMUX_PAD(0x610, 0x290, 7, __NA_, 0, NO_PAD_CTRL) |
2093 | #define MX53_PAD_PATA_CS_0__UART3_TXD_MUX (_MX53_PAD_PATA_CS_0__UART3_TXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 919 | #define MX53_PAD_PATA_DA_1__PATA_DA_1 IOMUX_PAD(0x614, 0x294, 0, __NA_, 0, NO_PAD_CTRL) |
2094 | #define MX53_PAD_PATA_CS_0__USBPHY1_DATAOUT_5 (_MX53_PAD_PATA_CS_0__USBPHY1_DATAOUT_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 920 | #define MX53_PAD_PATA_DA_1__GPIO7_7 IOMUX_PAD(0x614, 0x294, 1, __NA_, 0, NO_PAD_CTRL) |
2095 | #define MX53_PAD_PATA_CS_1__PATA_CS_1 (_MX53_PAD_PATA_CS_1__PATA_CS_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 921 | #define MX53_PAD_PATA_DA_1__ESDHC4_CMD IOMUX_PAD(0x614, 0x294, 2, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2096 | #define MX53_PAD_PATA_CS_1__GPIO7_10 (_MX53_PAD_PATA_CS_1__GPIO7_10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 922 | #define MX53_PAD_PATA_DA_1__UART3_CTS IOMUX_PAD(0x614, 0x294, 4, __NA_, 0, MX53_UART_PAD_CTRL) |
2097 | #define MX53_PAD_PATA_CS_1__UART3_RXD_MUX (_MX53_PAD_PATA_CS_1__UART3_RXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 923 | #define MX53_PAD_PATA_DA_1__USBPHY1_DATAOUT_3 IOMUX_PAD(0x614, 0x294, 7, __NA_, 0, NO_PAD_CTRL) |
2098 | #define MX53_PAD_PATA_CS_1__USBPHY1_DATAOUT_6 (_MX53_PAD_PATA_CS_1__USBPHY1_DATAOUT_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 924 | #define MX53_PAD_PATA_DA_2__PATA_DA_2 IOMUX_PAD(0x618, 0x298, 0, __NA_, 0, NO_PAD_CTRL) |
2099 | #define MX53_PAD_PATA_DATA0__PATA_DATA_0 (_MX53_PAD_PATA_DATA0__PATA_DATA_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 925 | #define MX53_PAD_PATA_DA_2__GPIO7_8 IOMUX_PAD(0x618, 0x298, 1, __NA_, 0, NO_PAD_CTRL) |
2100 | #define MX53_PAD_PATA_DATA0__GPIO2_0 (_MX53_PAD_PATA_DATA0__GPIO2_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 926 | #define MX53_PAD_PATA_DA_2__ESDHC4_CLK IOMUX_PAD(0x618, 0x298, 2, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2101 | #define MX53_PAD_PATA_DATA0__EMI_NANDF_D_0 (_MX53_PAD_PATA_DATA0__EMI_NANDF_D_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 927 | #define MX53_PAD_PATA_DA_2__UART3_RTS IOMUX_PAD(0x618, 0x298, 4, 0x884, 5, MX53_UART_PAD_CTRL) |
2102 | #define MX53_PAD_PATA_DATA0__ESDHC3_DAT4 (_MX53_PAD_PATA_DATA0__ESDHC3_DAT4 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 928 | #define MX53_PAD_PATA_DA_2__USBPHY1_DATAOUT_4 IOMUX_PAD(0x618, 0x298, 7, __NA_, 0, NO_PAD_CTRL) |
2103 | #define MX53_PAD_PATA_DATA0__GPU3d_GPU_DEBUG_OUT_0 (_MX53_PAD_PATA_DATA0__GPU3d_GPU_DEBUG_OUT_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 929 | #define MX53_PAD_PATA_CS_0__PATA_CS_0 IOMUX_PAD(0x61C, 0x29C, 0, __NA_, 0, NO_PAD_CTRL) |
2104 | #define MX53_PAD_PATA_DATA0__IPU_DIAG_BUS_0 (_MX53_PAD_PATA_DATA0__IPU_DIAG_BUS_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 930 | #define MX53_PAD_PATA_CS_0__GPIO7_9 IOMUX_PAD(0x61C, 0x29C, 1, __NA_, 0, NO_PAD_CTRL) |
2105 | #define MX53_PAD_PATA_DATA0__USBPHY1_DATAOUT_7 (_MX53_PAD_PATA_DATA0__USBPHY1_DATAOUT_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 931 | #define MX53_PAD_PATA_CS_0__UART3_TXD_MUX IOMUX_PAD(0x61C, 0x29C, 4, __NA_, 0, MX53_UART_PAD_CTRL) |
2106 | #define MX53_PAD_PATA_DATA1__PATA_DATA_1 (_MX53_PAD_PATA_DATA1__PATA_DATA_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 932 | #define MX53_PAD_PATA_CS_0__USBPHY1_DATAOUT_5 IOMUX_PAD(0x61C, 0x29C, 7, __NA_, 0, NO_PAD_CTRL) |
2107 | #define MX53_PAD_PATA_DATA1__GPIO2_1 (_MX53_PAD_PATA_DATA1__GPIO2_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 933 | #define MX53_PAD_PATA_CS_1__PATA_CS_1 IOMUX_PAD(0x620, 0x2A0, 0, __NA_, 0, NO_PAD_CTRL) |
2108 | #define MX53_PAD_PATA_DATA1__EMI_NANDF_D_1 (_MX53_PAD_PATA_DATA1__EMI_NANDF_D_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 934 | #define MX53_PAD_PATA_CS_1__GPIO7_10 IOMUX_PAD(0x620, 0x2A0, 1, __NA_, 0, NO_PAD_CTRL) |
2109 | #define MX53_PAD_PATA_DATA1__ESDHC3_DAT5 (_MX53_PAD_PATA_DATA1__ESDHC3_DAT5 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 935 | #define MX53_PAD_PATA_CS_1__UART3_RXD_MUX IOMUX_PAD(0x620, 0x2A0, 4, 0x888, 3, MX53_UART_PAD_CTRL) |
2110 | #define MX53_PAD_PATA_DATA1__GPU3d_GPU_DEBUG_OUT_1 (_MX53_PAD_PATA_DATA1__GPU3d_GPU_DEBUG_OUT_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 936 | #define MX53_PAD_PATA_CS_1__USBPHY1_DATAOUT_6 IOMUX_PAD(0x620, 0x2A0, 7, __NA_, 0, NO_PAD_CTRL) |
2111 | #define MX53_PAD_PATA_DATA1__IPU_DIAG_BUS_1 (_MX53_PAD_PATA_DATA1__IPU_DIAG_BUS_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 937 | #define MX53_PAD_PATA_DATA0__PATA_DATA_0 IOMUX_PAD(0x628, 0x2A4, 0, __NA_, 0, NO_PAD_CTRL) |
2112 | #define MX53_PAD_PATA_DATA2__PATA_DATA_2 (_MX53_PAD_PATA_DATA2__PATA_DATA_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 938 | #define MX53_PAD_PATA_DATA0__GPIO2_0 IOMUX_PAD(0x628, 0x2A4, 1, __NA_, 0, NO_PAD_CTRL) |
2113 | #define MX53_PAD_PATA_DATA2__GPIO2_2 (_MX53_PAD_PATA_DATA2__GPIO2_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 939 | #define MX53_PAD_PATA_DATA0__EMI_NANDF_D_0 IOMUX_PAD(0x628, 0x2A4, 3, __NA_, 0, NO_PAD_CTRL) |
2114 | #define MX53_PAD_PATA_DATA2__EMI_NANDF_D_2 (_MX53_PAD_PATA_DATA2__EMI_NANDF_D_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 940 | #define MX53_PAD_PATA_DATA0__ESDHC3_DAT4 IOMUX_PAD(0x628, 0x2A4, 4, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2115 | #define MX53_PAD_PATA_DATA2__ESDHC3_DAT6 (_MX53_PAD_PATA_DATA2__ESDHC3_DAT6 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 941 | #define MX53_PAD_PATA_DATA0__GPU3d_GPU_DEBUG_OUT_0 IOMUX_PAD(0x628, 0x2A4, 5, __NA_, 0, NO_PAD_CTRL) |
2116 | #define MX53_PAD_PATA_DATA2__GPU3d_GPU_DEBUG_OUT_2 (_MX53_PAD_PATA_DATA2__GPU3d_GPU_DEBUG_OUT_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 942 | #define MX53_PAD_PATA_DATA0__IPU_DIAG_BUS_0 IOMUX_PAD(0x628, 0x2A4, 6, __NA_, 0, NO_PAD_CTRL) |
2117 | #define MX53_PAD_PATA_DATA2__IPU_DIAG_BUS_2 (_MX53_PAD_PATA_DATA2__IPU_DIAG_BUS_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 943 | #define MX53_PAD_PATA_DATA0__USBPHY1_DATAOUT_7 IOMUX_PAD(0x628, 0x2A4, 7, __NA_, 0, NO_PAD_CTRL) |
2118 | #define MX53_PAD_PATA_DATA3__PATA_DATA_3 (_MX53_PAD_PATA_DATA3__PATA_DATA_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 944 | #define MX53_PAD_PATA_DATA1__PATA_DATA_1 IOMUX_PAD(0x62C, 0x2A8, 0, __NA_, 0, NO_PAD_CTRL) |
2119 | #define MX53_PAD_PATA_DATA3__GPIO2_3 (_MX53_PAD_PATA_DATA3__GPIO2_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 945 | #define MX53_PAD_PATA_DATA1__GPIO2_1 IOMUX_PAD(0x62C, 0x2A8, 1, __NA_, 0, NO_PAD_CTRL) |
2120 | #define MX53_PAD_PATA_DATA3__EMI_NANDF_D_3 (_MX53_PAD_PATA_DATA3__EMI_NANDF_D_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 946 | #define MX53_PAD_PATA_DATA1__EMI_NANDF_D_1 IOMUX_PAD(0x62C, 0x2A8, 3, __NA_, 0, NO_PAD_CTRL) |
2121 | #define MX53_PAD_PATA_DATA3__ESDHC3_DAT7 (_MX53_PAD_PATA_DATA3__ESDHC3_DAT7 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 947 | #define MX53_PAD_PATA_DATA1__ESDHC3_DAT5 IOMUX_PAD(0x62C, 0x2A8, 4, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2122 | #define MX53_PAD_PATA_DATA3__GPU3d_GPU_DEBUG_OUT_3 (_MX53_PAD_PATA_DATA3__GPU3d_GPU_DEBUG_OUT_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 948 | #define MX53_PAD_PATA_DATA1__GPU3d_GPU_DEBUG_OUT_1 IOMUX_PAD(0x62C, 0x2A8, 5, __NA_, 0, NO_PAD_CTRL) |
2123 | #define MX53_PAD_PATA_DATA3__IPU_DIAG_BUS_3 (_MX53_PAD_PATA_DATA3__IPU_DIAG_BUS_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 949 | #define MX53_PAD_PATA_DATA1__IPU_DIAG_BUS_1 IOMUX_PAD(0x62C, 0x2A8, 6, __NA_, 0, NO_PAD_CTRL) |
2124 | #define MX53_PAD_PATA_DATA4__PATA_DATA_4 (_MX53_PAD_PATA_DATA4__PATA_DATA_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 950 | #define MX53_PAD_PATA_DATA2__PATA_DATA_2 IOMUX_PAD(0x630, 0x2AC, 0, __NA_, 0, NO_PAD_CTRL) |
2125 | #define MX53_PAD_PATA_DATA4__GPIO2_4 (_MX53_PAD_PATA_DATA4__GPIO2_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 951 | #define MX53_PAD_PATA_DATA2__GPIO2_2 IOMUX_PAD(0x630, 0x2AC, 1, __NA_, 0, NO_PAD_CTRL) |
2126 | #define MX53_PAD_PATA_DATA4__EMI_NANDF_D_4 (_MX53_PAD_PATA_DATA4__EMI_NANDF_D_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 952 | #define MX53_PAD_PATA_DATA2__EMI_NANDF_D_2 IOMUX_PAD(0x630, 0x2AC, 3, __NA_, 0, NO_PAD_CTRL) |
2127 | #define MX53_PAD_PATA_DATA4__ESDHC4_DAT4 (_MX53_PAD_PATA_DATA4__ESDHC4_DAT4 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 953 | #define MX53_PAD_PATA_DATA2__ESDHC3_DAT6 IOMUX_PAD(0x630, 0x2AC, 4, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2128 | #define MX53_PAD_PATA_DATA4__GPU3d_GPU_DEBUG_OUT_4 (_MX53_PAD_PATA_DATA4__GPU3d_GPU_DEBUG_OUT_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 954 | #define MX53_PAD_PATA_DATA2__GPU3d_GPU_DEBUG_OUT_2 IOMUX_PAD(0x630, 0x2AC, 5, __NA_, 0, NO_PAD_CTRL) |
2129 | #define MX53_PAD_PATA_DATA4__IPU_DIAG_BUS_4 (_MX53_PAD_PATA_DATA4__IPU_DIAG_BUS_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 955 | #define MX53_PAD_PATA_DATA2__IPU_DIAG_BUS_2 IOMUX_PAD(0x630, 0x2AC, 6, __NA_, 0, NO_PAD_CTRL) |
2130 | #define MX53_PAD_PATA_DATA5__PATA_DATA_5 (_MX53_PAD_PATA_DATA5__PATA_DATA_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 956 | #define MX53_PAD_PATA_DATA3__PATA_DATA_3 IOMUX_PAD(0x634, 0x2B0, 0, __NA_, 0, NO_PAD_CTRL) |
2131 | #define MX53_PAD_PATA_DATA5__GPIO2_5 (_MX53_PAD_PATA_DATA5__GPIO2_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 957 | #define MX53_PAD_PATA_DATA3__GPIO2_3 IOMUX_PAD(0x634, 0x2B0, 1, __NA_, 0, NO_PAD_CTRL) |
2132 | #define MX53_PAD_PATA_DATA5__EMI_NANDF_D_5 (_MX53_PAD_PATA_DATA5__EMI_NANDF_D_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 958 | #define MX53_PAD_PATA_DATA3__EMI_NANDF_D_3 IOMUX_PAD(0x634, 0x2B0, 3, __NA_, 0, NO_PAD_CTRL) |
2133 | #define MX53_PAD_PATA_DATA5__ESDHC4_DAT5 (_MX53_PAD_PATA_DATA5__ESDHC4_DAT5 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 959 | #define MX53_PAD_PATA_DATA3__ESDHC3_DAT7 IOMUX_PAD(0x634, 0x2B0, 4, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2134 | #define MX53_PAD_PATA_DATA5__GPU3d_GPU_DEBUG_OUT_5 (_MX53_PAD_PATA_DATA5__GPU3d_GPU_DEBUG_OUT_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 960 | #define MX53_PAD_PATA_DATA3__GPU3d_GPU_DEBUG_OUT_3 IOMUX_PAD(0x634, 0x2B0, 5, __NA_, 0, NO_PAD_CTRL) |
2135 | #define MX53_PAD_PATA_DATA5__IPU_DIAG_BUS_5 (_MX53_PAD_PATA_DATA5__IPU_DIAG_BUS_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 961 | #define MX53_PAD_PATA_DATA3__IPU_DIAG_BUS_3 IOMUX_PAD(0x634, 0x2B0, 6, __NA_, 0, NO_PAD_CTRL) |
2136 | #define MX53_PAD_PATA_DATA6__PATA_DATA_6 (_MX53_PAD_PATA_DATA6__PATA_DATA_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 962 | #define MX53_PAD_PATA_DATA4__PATA_DATA_4 IOMUX_PAD(0x638, 0x2B4, 0, __NA_, 0, NO_PAD_CTRL) |
2137 | #define MX53_PAD_PATA_DATA6__GPIO2_6 (_MX53_PAD_PATA_DATA6__GPIO2_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 963 | #define MX53_PAD_PATA_DATA4__GPIO2_4 IOMUX_PAD(0x638, 0x2B4, 1, __NA_, 0, NO_PAD_CTRL) |
2138 | #define MX53_PAD_PATA_DATA6__EMI_NANDF_D_6 (_MX53_PAD_PATA_DATA6__EMI_NANDF_D_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 964 | #define MX53_PAD_PATA_DATA4__EMI_NANDF_D_4 IOMUX_PAD(0x638, 0x2B4, 3, __NA_, 0, NO_PAD_CTRL) |
2139 | #define MX53_PAD_PATA_DATA6__ESDHC4_DAT6 (_MX53_PAD_PATA_DATA6__ESDHC4_DAT6 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 965 | #define MX53_PAD_PATA_DATA4__ESDHC4_DAT4 IOMUX_PAD(0x638, 0x2B4, 4, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2140 | #define MX53_PAD_PATA_DATA6__GPU3d_GPU_DEBUG_OUT_6 (_MX53_PAD_PATA_DATA6__GPU3d_GPU_DEBUG_OUT_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 966 | #define MX53_PAD_PATA_DATA4__GPU3d_GPU_DEBUG_OUT_4 IOMUX_PAD(0x638, 0x2B4, 5, __NA_, 0, NO_PAD_CTRL) |
2141 | #define MX53_PAD_PATA_DATA6__IPU_DIAG_BUS_6 (_MX53_PAD_PATA_DATA6__IPU_DIAG_BUS_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 967 | #define MX53_PAD_PATA_DATA4__IPU_DIAG_BUS_4 IOMUX_PAD(0x638, 0x2B4, 6, __NA_, 0, NO_PAD_CTRL) |
2142 | #define MX53_PAD_PATA_DATA7__PATA_DATA_7 (_MX53_PAD_PATA_DATA7__PATA_DATA_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 968 | #define MX53_PAD_PATA_DATA5__PATA_DATA_5 IOMUX_PAD(0x63C, 0x2B8, 0, __NA_, 0, NO_PAD_CTRL) |
2143 | #define MX53_PAD_PATA_DATA7__GPIO2_7 (_MX53_PAD_PATA_DATA7__GPIO2_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 969 | #define MX53_PAD_PATA_DATA5__GPIO2_5 IOMUX_PAD(0x63C, 0x2B8, 1, __NA_, 0, NO_PAD_CTRL) |
2144 | #define MX53_PAD_PATA_DATA7__EMI_NANDF_D_7 (_MX53_PAD_PATA_DATA7__EMI_NANDF_D_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 970 | #define MX53_PAD_PATA_DATA5__EMI_NANDF_D_5 IOMUX_PAD(0x63C, 0x2B8, 3, __NA_, 0, NO_PAD_CTRL) |
2145 | #define MX53_PAD_PATA_DATA7__ESDHC4_DAT7 (_MX53_PAD_PATA_DATA7__ESDHC4_DAT7 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 971 | #define MX53_PAD_PATA_DATA5__ESDHC4_DAT5 IOMUX_PAD(0x63C, 0x2B8, 4, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2146 | #define MX53_PAD_PATA_DATA7__GPU3d_GPU_DEBUG_OUT_7 (_MX53_PAD_PATA_DATA7__GPU3d_GPU_DEBUG_OUT_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 972 | #define MX53_PAD_PATA_DATA5__GPU3d_GPU_DEBUG_OUT_5 IOMUX_PAD(0x63C, 0x2B8, 5, __NA_, 0, NO_PAD_CTRL) |
2147 | #define MX53_PAD_PATA_DATA7__IPU_DIAG_BUS_7 (_MX53_PAD_PATA_DATA7__IPU_DIAG_BUS_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 973 | #define MX53_PAD_PATA_DATA5__IPU_DIAG_BUS_5 IOMUX_PAD(0x63C, 0x2B8, 6, __NA_, 0, NO_PAD_CTRL) |
2148 | #define MX53_PAD_PATA_DATA8__PATA_DATA_8 (_MX53_PAD_PATA_DATA8__PATA_DATA_8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 974 | #define MX53_PAD_PATA_DATA6__PATA_DATA_6 IOMUX_PAD(0x640, 0x2BC, 0, __NA_, 0, NO_PAD_CTRL) |
2149 | #define MX53_PAD_PATA_DATA8__GPIO2_8 (_MX53_PAD_PATA_DATA8__GPIO2_8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 975 | #define MX53_PAD_PATA_DATA6__GPIO2_6 IOMUX_PAD(0x640, 0x2BC, 1, __NA_, 0, NO_PAD_CTRL) |
2150 | #define MX53_PAD_PATA_DATA8__ESDHC1_DAT4 (_MX53_PAD_PATA_DATA8__ESDHC1_DAT4 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 976 | #define MX53_PAD_PATA_DATA6__EMI_NANDF_D_6 IOMUX_PAD(0x640, 0x2BC, 3, __NA_, 0, NO_PAD_CTRL) |
2151 | #define MX53_PAD_PATA_DATA8__EMI_NANDF_D_8 (_MX53_PAD_PATA_DATA8__EMI_NANDF_D_8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 977 | #define MX53_PAD_PATA_DATA6__ESDHC4_DAT6 IOMUX_PAD(0x640, 0x2BC, 4, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2152 | #define MX53_PAD_PATA_DATA8__ESDHC3_DAT0 (_MX53_PAD_PATA_DATA8__ESDHC3_DAT0 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 978 | #define MX53_PAD_PATA_DATA6__GPU3d_GPU_DEBUG_OUT_6 IOMUX_PAD(0x640, 0x2BC, 5, __NA_, 0, NO_PAD_CTRL) |
2153 | #define MX53_PAD_PATA_DATA8__GPU3d_GPU_DEBUG_OUT_8 (_MX53_PAD_PATA_DATA8__GPU3d_GPU_DEBUG_OUT_8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 979 | #define MX53_PAD_PATA_DATA6__IPU_DIAG_BUS_6 IOMUX_PAD(0x640, 0x2BC, 6, __NA_, 0, NO_PAD_CTRL) |
2154 | #define MX53_PAD_PATA_DATA8__IPU_DIAG_BUS_8 (_MX53_PAD_PATA_DATA8__IPU_DIAG_BUS_8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 980 | #define MX53_PAD_PATA_DATA7__PATA_DATA_7 IOMUX_PAD(0x644, 0x2C0, 0, __NA_, 0, NO_PAD_CTRL) |
2155 | #define MX53_PAD_PATA_DATA9__PATA_DATA_9 (_MX53_PAD_PATA_DATA9__PATA_DATA_9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 981 | #define MX53_PAD_PATA_DATA7__GPIO2_7 IOMUX_PAD(0x644, 0x2C0, 1, __NA_, 0, NO_PAD_CTRL) |
2156 | #define MX53_PAD_PATA_DATA9__GPIO2_9 (_MX53_PAD_PATA_DATA9__GPIO2_9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 982 | #define MX53_PAD_PATA_DATA7__EMI_NANDF_D_7 IOMUX_PAD(0x644, 0x2C0, 3, __NA_, 0, NO_PAD_CTRL) |
2157 | #define MX53_PAD_PATA_DATA9__ESDHC1_DAT5 (_MX53_PAD_PATA_DATA9__ESDHC1_DAT5 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 983 | #define MX53_PAD_PATA_DATA7__ESDHC4_DAT7 IOMUX_PAD(0x644, 0x2C0, 4, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2158 | #define MX53_PAD_PATA_DATA9__EMI_NANDF_D_9 (_MX53_PAD_PATA_DATA9__EMI_NANDF_D_9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 984 | #define MX53_PAD_PATA_DATA7__GPU3d_GPU_DEBUG_OUT_7 IOMUX_PAD(0x644, 0x2C0, 5, __NA_, 0, NO_PAD_CTRL) |
2159 | #define MX53_PAD_PATA_DATA9__ESDHC3_DAT1 (_MX53_PAD_PATA_DATA9__ESDHC3_DAT1 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 985 | #define MX53_PAD_PATA_DATA7__IPU_DIAG_BUS_7 IOMUX_PAD(0x644, 0x2C0, 6, __NA_, 0, NO_PAD_CTRL) |
2160 | #define MX53_PAD_PATA_DATA9__GPU3d_GPU_DEBUG_OUT_9 (_MX53_PAD_PATA_DATA9__GPU3d_GPU_DEBUG_OUT_9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 986 | #define MX53_PAD_PATA_DATA8__PATA_DATA_8 IOMUX_PAD(0x648, 0x2C4, 0, __NA_, 0, NO_PAD_CTRL) |
2161 | #define MX53_PAD_PATA_DATA9__IPU_DIAG_BUS_9 (_MX53_PAD_PATA_DATA9__IPU_DIAG_BUS_9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 987 | #define MX53_PAD_PATA_DATA8__GPIO2_8 IOMUX_PAD(0x648, 0x2C4, 1, __NA_, 0, NO_PAD_CTRL) |
2162 | #define MX53_PAD_PATA_DATA10__PATA_DATA_10 (_MX53_PAD_PATA_DATA10__PATA_DATA_10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 988 | #define MX53_PAD_PATA_DATA8__ESDHC1_DAT4 IOMUX_PAD(0x648, 0x2C4, 2, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2163 | #define MX53_PAD_PATA_DATA10__GPIO2_10 (_MX53_PAD_PATA_DATA10__GPIO2_10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 989 | #define MX53_PAD_PATA_DATA8__EMI_NANDF_D_8 IOMUX_PAD(0x648, 0x2C4, 3, __NA_, 0, NO_PAD_CTRL) |
2164 | #define MX53_PAD_PATA_DATA10__ESDHC1_DAT6 (_MX53_PAD_PATA_DATA10__ESDHC1_DAT6 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 990 | #define MX53_PAD_PATA_DATA8__ESDHC3_DAT0 IOMUX_PAD(0x648, 0x2C4, 4, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2165 | #define MX53_PAD_PATA_DATA10__EMI_NANDF_D_10 (_MX53_PAD_PATA_DATA10__EMI_NANDF_D_10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 991 | #define MX53_PAD_PATA_DATA8__GPU3d_GPU_DEBUG_OUT_8 IOMUX_PAD(0x648, 0x2C4, 5, __NA_, 0, NO_PAD_CTRL) |
2166 | #define MX53_PAD_PATA_DATA10__ESDHC3_DAT2 (_MX53_PAD_PATA_DATA10__ESDHC3_DAT2 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 992 | #define MX53_PAD_PATA_DATA8__IPU_DIAG_BUS_8 IOMUX_PAD(0x648, 0x2C4, 6, __NA_, 0, NO_PAD_CTRL) |
2167 | #define MX53_PAD_PATA_DATA10__GPU3d_GPU_DEBUG_OUT_10 (_MX53_PAD_PATA_DATA10__GPU3d_GPU_DEBUG_OUT_10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 993 | #define MX53_PAD_PATA_DATA9__PATA_DATA_9 IOMUX_PAD(0x64C, 0x2C8, 0, __NA_, 0, NO_PAD_CTRL) |
2168 | #define MX53_PAD_PATA_DATA10__IPU_DIAG_BUS_10 (_MX53_PAD_PATA_DATA10__IPU_DIAG_BUS_10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 994 | #define MX53_PAD_PATA_DATA9__GPIO2_9 IOMUX_PAD(0x64C, 0x2C8, 1, __NA_, 0, NO_PAD_CTRL) |
2169 | #define MX53_PAD_PATA_DATA11__PATA_DATA_11 (_MX53_PAD_PATA_DATA11__PATA_DATA_11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 995 | #define MX53_PAD_PATA_DATA9__ESDHC1_DAT5 IOMUX_PAD(0x64C, 0x2C8, 2, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2170 | #define MX53_PAD_PATA_DATA11__GPIO2_11 (_MX53_PAD_PATA_DATA11__GPIO2_11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 996 | #define MX53_PAD_PATA_DATA9__EMI_NANDF_D_9 IOMUX_PAD(0x64C, 0x2C8, 3, __NA_, 0, NO_PAD_CTRL) |
2171 | #define MX53_PAD_PATA_DATA11__ESDHC1_DAT7 (_MX53_PAD_PATA_DATA11__ESDHC1_DAT7 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 997 | #define MX53_PAD_PATA_DATA9__ESDHC3_DAT1 IOMUX_PAD(0x64C, 0x2C8, 4, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2172 | #define MX53_PAD_PATA_DATA11__EMI_NANDF_D_11 (_MX53_PAD_PATA_DATA11__EMI_NANDF_D_11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 998 | #define MX53_PAD_PATA_DATA9__GPU3d_GPU_DEBUG_OUT_9 IOMUX_PAD(0x64C, 0x2C8, 5, __NA_, 0, NO_PAD_CTRL) |
2173 | #define MX53_PAD_PATA_DATA11__ESDHC3_DAT3 (_MX53_PAD_PATA_DATA11__ESDHC3_DAT3 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 999 | #define MX53_PAD_PATA_DATA9__IPU_DIAG_BUS_9 IOMUX_PAD(0x64C, 0x2C8, 6, __NA_, 0, NO_PAD_CTRL) |
2174 | #define MX53_PAD_PATA_DATA11__GPU3d_GPU_DEBUG_OUT_11 (_MX53_PAD_PATA_DATA11__GPU3d_GPU_DEBUG_OUT_11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1000 | #define MX53_PAD_PATA_DATA10__PATA_DATA_10 IOMUX_PAD(0x650, 0x2CC, 0, __NA_, 0, NO_PAD_CTRL) |
2175 | #define MX53_PAD_PATA_DATA11__IPU_DIAG_BUS_11 (_MX53_PAD_PATA_DATA11__IPU_DIAG_BUS_11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1001 | #define MX53_PAD_PATA_DATA10__GPIO2_10 IOMUX_PAD(0x650, 0x2CC, 1, __NA_, 0, NO_PAD_CTRL) |
2176 | #define MX53_PAD_PATA_DATA12__PATA_DATA_12 (_MX53_PAD_PATA_DATA12__PATA_DATA_12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1002 | #define MX53_PAD_PATA_DATA10__ESDHC1_DAT6 IOMUX_PAD(0x650, 0x2CC, 2, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2177 | #define MX53_PAD_PATA_DATA12__GPIO2_12 (_MX53_PAD_PATA_DATA12__GPIO2_12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1003 | #define MX53_PAD_PATA_DATA10__EMI_NANDF_D_10 IOMUX_PAD(0x650, 0x2CC, 3, __NA_, 0, NO_PAD_CTRL) |
2178 | #define MX53_PAD_PATA_DATA12__ESDHC2_DAT4 (_MX53_PAD_PATA_DATA12__ESDHC2_DAT4 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 1004 | #define MX53_PAD_PATA_DATA10__ESDHC3_DAT2 IOMUX_PAD(0x650, 0x2CC, 4, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2179 | #define MX53_PAD_PATA_DATA12__EMI_NANDF_D_12 (_MX53_PAD_PATA_DATA12__EMI_NANDF_D_12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1005 | #define MX53_PAD_PATA_DATA10__GPU3d_GPU_DEBUG_OUT_10 IOMUX_PAD(0x650, 0x2CC, 5, __NA_, 0, NO_PAD_CTRL) |
2180 | #define MX53_PAD_PATA_DATA12__ESDHC4_DAT0 (_MX53_PAD_PATA_DATA12__ESDHC4_DAT0 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 1006 | #define MX53_PAD_PATA_DATA10__IPU_DIAG_BUS_10 IOMUX_PAD(0x650, 0x2CC, 6, __NA_, 0, NO_PAD_CTRL) |
2181 | #define MX53_PAD_PATA_DATA12__GPU3d_GPU_DEBUG_OUT_12 (_MX53_PAD_PATA_DATA12__GPU3d_GPU_DEBUG_OUT_12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1007 | #define MX53_PAD_PATA_DATA11__PATA_DATA_11 IOMUX_PAD(0x654, 0x2D0, 0, __NA_, 0, NO_PAD_CTRL) |
2182 | #define MX53_PAD_PATA_DATA12__IPU_DIAG_BUS_12 (_MX53_PAD_PATA_DATA12__IPU_DIAG_BUS_12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1008 | #define MX53_PAD_PATA_DATA11__GPIO2_11 IOMUX_PAD(0x654, 0x2D0, 1, __NA_, 0, NO_PAD_CTRL) |
2183 | #define MX53_PAD_PATA_DATA13__PATA_DATA_13 (_MX53_PAD_PATA_DATA13__PATA_DATA_13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1009 | #define MX53_PAD_PATA_DATA11__ESDHC1_DAT7 IOMUX_PAD(0x654, 0x2D0, 2, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2184 | #define MX53_PAD_PATA_DATA13__GPIO2_13 (_MX53_PAD_PATA_DATA13__GPIO2_13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1010 | #define MX53_PAD_PATA_DATA11__EMI_NANDF_D_11 IOMUX_PAD(0x654, 0x2D0, 3, __NA_, 0, NO_PAD_CTRL) |
2185 | #define MX53_PAD_PATA_DATA13__ESDHC2_DAT5 (_MX53_PAD_PATA_DATA13__ESDHC2_DAT5 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 1011 | #define MX53_PAD_PATA_DATA11__ESDHC3_DAT3 IOMUX_PAD(0x654, 0x2D0, 4, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2186 | #define MX53_PAD_PATA_DATA13__EMI_NANDF_D_13 (_MX53_PAD_PATA_DATA13__EMI_NANDF_D_13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1012 | #define MX53_PAD_PATA_DATA11__GPU3d_GPU_DEBUG_OUT_11 IOMUX_PAD(0x654, 0x2D0, 5, __NA_, 0, NO_PAD_CTRL) |
2187 | #define MX53_PAD_PATA_DATA13__ESDHC4_DAT1 (_MX53_PAD_PATA_DATA13__ESDHC4_DAT1 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 1013 | #define MX53_PAD_PATA_DATA11__IPU_DIAG_BUS_11 IOMUX_PAD(0x654, 0x2D0, 6, __NA_, 0, NO_PAD_CTRL) |
2188 | #define MX53_PAD_PATA_DATA13__GPU3d_GPU_DEBUG_OUT_13 (_MX53_PAD_PATA_DATA13__GPU3d_GPU_DEBUG_OUT_13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1014 | #define MX53_PAD_PATA_DATA12__PATA_DATA_12 IOMUX_PAD(0x658, 0x2D4, 0, __NA_, 0, NO_PAD_CTRL) |
2189 | #define MX53_PAD_PATA_DATA13__IPU_DIAG_BUS_13 (_MX53_PAD_PATA_DATA13__IPU_DIAG_BUS_13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1015 | #define MX53_PAD_PATA_DATA12__GPIO2_12 IOMUX_PAD(0x658, 0x2D4, 1, __NA_, 0, NO_PAD_CTRL) |
2190 | #define MX53_PAD_PATA_DATA14__PATA_DATA_14 (_MX53_PAD_PATA_DATA14__PATA_DATA_14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1016 | #define MX53_PAD_PATA_DATA12__ESDHC2_DAT4 IOMUX_PAD(0x658, 0x2D4, 2, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2191 | #define MX53_PAD_PATA_DATA14__GPIO2_14 (_MX53_PAD_PATA_DATA14__GPIO2_14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1017 | #define MX53_PAD_PATA_DATA12__EMI_NANDF_D_12 IOMUX_PAD(0x658, 0x2D4, 3, __NA_, 0, NO_PAD_CTRL) |
2192 | #define MX53_PAD_PATA_DATA14__ESDHC2_DAT6 (_MX53_PAD_PATA_DATA14__ESDHC2_DAT6 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 1018 | #define MX53_PAD_PATA_DATA12__ESDHC4_DAT0 IOMUX_PAD(0x658, 0x2D4, 4, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2193 | #define MX53_PAD_PATA_DATA14__EMI_NANDF_D_14 (_MX53_PAD_PATA_DATA14__EMI_NANDF_D_14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1019 | #define MX53_PAD_PATA_DATA12__GPU3d_GPU_DEBUG_OUT_12 IOMUX_PAD(0x658, 0x2D4, 5, __NA_, 0, NO_PAD_CTRL) |
2194 | #define MX53_PAD_PATA_DATA14__ESDHC4_DAT2 (_MX53_PAD_PATA_DATA14__ESDHC4_DAT2 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 1020 | #define MX53_PAD_PATA_DATA12__IPU_DIAG_BUS_12 IOMUX_PAD(0x658, 0x2D4, 6, __NA_, 0, NO_PAD_CTRL) |
2195 | #define MX53_PAD_PATA_DATA14__GPU3d_GPU_DEBUG_OUT_14 (_MX53_PAD_PATA_DATA14__GPU3d_GPU_DEBUG_OUT_14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1021 | #define MX53_PAD_PATA_DATA13__PATA_DATA_13 IOMUX_PAD(0x65C, 0x2D8, 0, __NA_, 0, NO_PAD_CTRL) |
2196 | #define MX53_PAD_PATA_DATA14__IPU_DIAG_BUS_14 (_MX53_PAD_PATA_DATA14__IPU_DIAG_BUS_14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1022 | #define MX53_PAD_PATA_DATA13__GPIO2_13 IOMUX_PAD(0x65C, 0x2D8, 1, __NA_, 0, NO_PAD_CTRL) |
2197 | #define MX53_PAD_PATA_DATA15__PATA_DATA_15 (_MX53_PAD_PATA_DATA15__PATA_DATA_15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1023 | #define MX53_PAD_PATA_DATA13__ESDHC2_DAT5 IOMUX_PAD(0x65C, 0x2D8, 2, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2198 | #define MX53_PAD_PATA_DATA15__GPIO2_15 (_MX53_PAD_PATA_DATA15__GPIO2_15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1024 | #define MX53_PAD_PATA_DATA13__EMI_NANDF_D_13 IOMUX_PAD(0x65C, 0x2D8, 3, __NA_, 0, NO_PAD_CTRL) |
2199 | #define MX53_PAD_PATA_DATA15__ESDHC2_DAT7 (_MX53_PAD_PATA_DATA15__ESDHC2_DAT7 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 1025 | #define MX53_PAD_PATA_DATA13__ESDHC4_DAT1 IOMUX_PAD(0x65C, 0x2D8, 4, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2200 | #define MX53_PAD_PATA_DATA15__EMI_NANDF_D_15 (_MX53_PAD_PATA_DATA15__EMI_NANDF_D_15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1026 | #define MX53_PAD_PATA_DATA13__GPU3d_GPU_DEBUG_OUT_13 IOMUX_PAD(0x65C, 0x2D8, 5, __NA_, 0, NO_PAD_CTRL) |
2201 | #define MX53_PAD_PATA_DATA15__ESDHC4_DAT3 (_MX53_PAD_PATA_DATA15__ESDHC4_DAT3 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 1027 | #define MX53_PAD_PATA_DATA13__IPU_DIAG_BUS_13 IOMUX_PAD(0x65C, 0x2D8, 6, __NA_, 0, NO_PAD_CTRL) |
2202 | #define MX53_PAD_PATA_DATA15__GPU3d_GPU_DEBUG_OUT_15 (_MX53_PAD_PATA_DATA15__GPU3d_GPU_DEBUG_OUT_15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1028 | #define MX53_PAD_PATA_DATA14__PATA_DATA_14 IOMUX_PAD(0x660, 0x2DC, 0, __NA_, 0, NO_PAD_CTRL) |
2203 | #define MX53_PAD_PATA_DATA15__IPU_DIAG_BUS_15 (_MX53_PAD_PATA_DATA15__IPU_DIAG_BUS_15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1029 | #define MX53_PAD_PATA_DATA14__GPIO2_14 IOMUX_PAD(0x660, 0x2DC, 1, __NA_, 0, NO_PAD_CTRL) |
2204 | #define MX53_PAD_SD1_DATA0__ESDHC1_DAT0 (_MX53_PAD_SD1_DATA0__ESDHC1_DAT0 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 1030 | #define MX53_PAD_PATA_DATA14__ESDHC2_DAT6 IOMUX_PAD(0x660, 0x2DC, 2, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2205 | #define MX53_PAD_SD1_DATA0__GPIO1_16 (_MX53_PAD_SD1_DATA0__GPIO1_16 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1031 | #define MX53_PAD_PATA_DATA14__EMI_NANDF_D_14 IOMUX_PAD(0x660, 0x2DC, 3, __NA_, 0, NO_PAD_CTRL) |
2206 | #define MX53_PAD_SD1_DATA0__GPT_CAPIN1 (_MX53_PAD_SD1_DATA0__GPT_CAPIN1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1032 | #define MX53_PAD_PATA_DATA14__ESDHC4_DAT2 IOMUX_PAD(0x660, 0x2DC, 4, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2207 | #define MX53_PAD_SD1_DATA0__CSPI_MISO (_MX53_PAD_SD1_DATA0__CSPI_MISO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1033 | #define MX53_PAD_PATA_DATA14__GPU3d_GPU_DEBUG_OUT_14 IOMUX_PAD(0x660, 0x2DC, 5, __NA_, 0, NO_PAD_CTRL) |
2208 | #define MX53_PAD_SD1_DATA0__CCM_PLL3_BYP (_MX53_PAD_SD1_DATA0__CCM_PLL3_BYP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1034 | #define MX53_PAD_PATA_DATA14__IPU_DIAG_BUS_14 IOMUX_PAD(0x660, 0x2DC, 6, __NA_, 0, NO_PAD_CTRL) |
2209 | #define MX53_PAD_SD1_DATA1__ESDHC1_DAT1 (_MX53_PAD_SD1_DATA1__ESDHC1_DAT1 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 1035 | #define MX53_PAD_PATA_DATA15__PATA_DATA_15 IOMUX_PAD(0x664, 0x2E0, 0, __NA_, 0, NO_PAD_CTRL) |
2210 | #define MX53_PAD_SD1_DATA1__GPIO1_17 (_MX53_PAD_SD1_DATA1__GPIO1_17 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1036 | #define MX53_PAD_PATA_DATA15__GPIO2_15 IOMUX_PAD(0x664, 0x2E0, 1, __NA_, 0, NO_PAD_CTRL) |
2211 | #define MX53_PAD_SD1_DATA1__GPT_CAPIN2 (_MX53_PAD_SD1_DATA1__GPT_CAPIN2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1037 | #define MX53_PAD_PATA_DATA15__ESDHC2_DAT7 IOMUX_PAD(0x664, 0x2E0, 2, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2212 | #define MX53_PAD_SD1_DATA1__CSPI_SS0 (_MX53_PAD_SD1_DATA1__CSPI_SS0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1038 | #define MX53_PAD_PATA_DATA15__EMI_NANDF_D_15 IOMUX_PAD(0x664, 0x2E0, 3, __NA_, 0, NO_PAD_CTRL) |
2213 | #define MX53_PAD_SD1_DATA1__CCM_PLL4_BYP (_MX53_PAD_SD1_DATA1__CCM_PLL4_BYP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1039 | #define MX53_PAD_PATA_DATA15__ESDHC4_DAT3 IOMUX_PAD(0x664, 0x2E0, 4, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2214 | #define MX53_PAD_SD1_CMD__ESDHC1_CMD (_MX53_PAD_SD1_CMD__ESDHC1_CMD | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 1040 | #define MX53_PAD_PATA_DATA15__GPU3d_GPU_DEBUG_OUT_15 IOMUX_PAD(0x664, 0x2E0, 5, __NA_, 0, NO_PAD_CTRL) |
2215 | #define MX53_PAD_SD1_CMD__GPIO1_18 (_MX53_PAD_SD1_CMD__GPIO1_18 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1041 | #define MX53_PAD_PATA_DATA15__IPU_DIAG_BUS_15 IOMUX_PAD(0x664, 0x2E0, 6, __NA_, 0, NO_PAD_CTRL) |
2216 | #define MX53_PAD_SD1_CMD__GPT_CMPOUT1 (_MX53_PAD_SD1_CMD__GPT_CMPOUT1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1042 | #define MX53_PAD_SD1_DATA0__ESDHC1_DAT0 IOMUX_PAD(0x66C, 0x2E4, 0, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2217 | #define MX53_PAD_SD1_CMD__CSPI_MOSI (_MX53_PAD_SD1_CMD__CSPI_MOSI | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1043 | #define MX53_PAD_SD1_DATA0__GPIO1_16 IOMUX_PAD(0x66C, 0x2E4, 1, __NA_, 0, NO_PAD_CTRL) |
2218 | #define MX53_PAD_SD1_CMD__CCM_PLL1_BYP (_MX53_PAD_SD1_CMD__CCM_PLL1_BYP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1044 | #define MX53_PAD_SD1_DATA0__GPT_CAPIN1 IOMUX_PAD(0x66C, 0x2E4, 3, __NA_, 0, NO_PAD_CTRL) |
2219 | #define MX53_PAD_SD1_DATA2__ESDHC1_DAT2 (_MX53_PAD_SD1_DATA2__ESDHC1_DAT2 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 1045 | #define MX53_PAD_SD1_DATA0__CSPI_MISO IOMUX_PAD(0x66C, 0x2E4, 5, 0x784, 2, NO_PAD_CTRL) |
2220 | #define MX53_PAD_SD1_DATA2__GPIO1_19 (_MX53_PAD_SD1_DATA2__GPIO1_19 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1046 | #define MX53_PAD_SD1_DATA0__CCM_PLL3_BYP IOMUX_PAD(0x66C, 0x2E4, 7, 0x778, 0, NO_PAD_CTRL) |
2221 | #define MX53_PAD_SD1_DATA2__GPT_CMPOUT2 (_MX53_PAD_SD1_DATA2__GPT_CMPOUT2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1047 | #define MX53_PAD_SD1_DATA1__ESDHC1_DAT1 IOMUX_PAD(0x670, 0x2E8, 0, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2222 | #define MX53_PAD_SD1_DATA2__PWM2_PWMO (_MX53_PAD_SD1_DATA2__PWM2_PWMO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1048 | #define MX53_PAD_SD1_DATA1__GPIO1_17 IOMUX_PAD(0x670, 0x2E8, 1, __NA_, 0, NO_PAD_CTRL) |
2223 | #define MX53_PAD_SD1_DATA2__WDOG1_WDOG_B (_MX53_PAD_SD1_DATA2__WDOG1_WDOG_B | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1049 | #define MX53_PAD_SD1_DATA1__GPT_CAPIN2 IOMUX_PAD(0x670, 0x2E8, 3, __NA_, 0, NO_PAD_CTRL) |
2224 | #define MX53_PAD_SD1_DATA2__CSPI_SS1 (_MX53_PAD_SD1_DATA2__CSPI_SS1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1050 | #define MX53_PAD_SD1_DATA1__CSPI_SS0 IOMUX_PAD(0x670, 0x2E8, 5, 0x78C, 3, NO_PAD_CTRL) |
2225 | #define MX53_PAD_SD1_DATA2__WDOG1_WDOG_RST_B_DEB (_MX53_PAD_SD1_DATA2__WDOG1_WDOG_RST_B_DEB | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1051 | #define MX53_PAD_SD1_DATA1__CCM_PLL4_BYP IOMUX_PAD(0x670, 0x2E8, 7, 0x77C, 1, NO_PAD_CTRL) |
2226 | #define MX53_PAD_SD1_DATA2__CCM_PLL2_BYP (_MX53_PAD_SD1_DATA2__CCM_PLL2_BYP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1052 | #define MX53_PAD_SD1_CMD__ESDHC1_CMD IOMUX_PAD(0x674, 0x2EC, 0 | IOMUX_CONFIG_SION, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2227 | #define MX53_PAD_SD1_CLK__ESDHC1_CLK (_MX53_PAD_SD1_CLK__ESDHC1_CLK | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 1053 | #define MX53_PAD_SD1_CMD__GPIO1_18 IOMUX_PAD(0x674, 0x2EC, 1, __NA_, 0, NO_PAD_CTRL) |
2228 | #define MX53_PAD_SD1_CLK__GPIO1_20 (_MX53_PAD_SD1_CLK__GPIO1_20 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1054 | #define MX53_PAD_SD1_CMD__GPT_CMPOUT1 IOMUX_PAD(0x674, 0x2EC, 3, __NA_, 0, NO_PAD_CTRL) |
2229 | #define MX53_PAD_SD1_CLK__OSC32k_32K_OUT (_MX53_PAD_SD1_CLK__OSC32k_32K_OUT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1055 | #define MX53_PAD_SD1_CMD__CSPI_MOSI IOMUX_PAD(0x674, 0x2EC, 5, 0x788, 2, NO_PAD_CTRL) |
2230 | #define MX53_PAD_SD1_CLK__GPT_CLKIN (_MX53_PAD_SD1_CLK__GPT_CLKIN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1056 | #define MX53_PAD_SD1_CMD__CCM_PLL1_BYP IOMUX_PAD(0x674, 0x2EC, 7, 0x770, 0, NO_PAD_CTRL) |
2231 | #define MX53_PAD_SD1_CLK__CSPI_SCLK (_MX53_PAD_SD1_CLK__CSPI_SCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1057 | #define MX53_PAD_SD1_DATA2__ESDHC1_DAT2 IOMUX_PAD(0x678, 0x2F0, 0, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2232 | #define MX53_PAD_SD1_CLK__SATA_PHY_DTB_0 (_MX53_PAD_SD1_CLK__SATA_PHY_DTB_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1058 | #define MX53_PAD_SD1_DATA2__GPIO1_19 IOMUX_PAD(0x678, 0x2F0, 1, __NA_, 0, NO_PAD_CTRL) |
2233 | #define MX53_PAD_SD1_DATA3__ESDHC1_DAT3 (_MX53_PAD_SD1_DATA3__ESDHC1_DAT3 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 1059 | #define MX53_PAD_SD1_DATA2__GPT_CMPOUT2 IOMUX_PAD(0x678, 0x2F0, 2, __NA_, 0, NO_PAD_CTRL) |
2234 | #define MX53_PAD_SD1_DATA3__GPIO1_21 (_MX53_PAD_SD1_DATA3__GPIO1_21 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1060 | #define MX53_PAD_SD1_DATA2__PWM2_PWMO IOMUX_PAD(0x678, 0x2F0, 3, __NA_, 0, NO_PAD_CTRL) |
2235 | #define MX53_PAD_SD1_DATA3__GPT_CMPOUT3 (_MX53_PAD_SD1_DATA3__GPT_CMPOUT3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1061 | #define MX53_PAD_SD1_DATA2__WDOG1_WDOG_B IOMUX_PAD(0x678, 0x2F0, 4, __NA_, 0, NO_PAD_CTRL) |
2236 | #define MX53_PAD_SD1_DATA3__PWM1_PWMO (_MX53_PAD_SD1_DATA3__PWM1_PWMO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1062 | #define MX53_PAD_SD1_DATA2__CSPI_SS1 IOMUX_PAD(0x678, 0x2F0, 5, 0x790, 2, NO_PAD_CTRL) |
2237 | #define MX53_PAD_SD1_DATA3__WDOG2_WDOG_B (_MX53_PAD_SD1_DATA3__WDOG2_WDOG_B | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1063 | #define MX53_PAD_SD1_DATA2__WDOG1_WDOG_RST_B_DEB IOMUX_PAD(0x678, 0x2F0, 6, __NA_, 0, NO_PAD_CTRL) |
2238 | #define MX53_PAD_SD1_DATA3__CSPI_SS2 (_MX53_PAD_SD1_DATA3__CSPI_SS2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1064 | #define MX53_PAD_SD1_DATA2__CCM_PLL2_BYP IOMUX_PAD(0x678, 0x2F0, 7, 0x774, 0, NO_PAD_CTRL) |
2239 | #define MX53_PAD_SD1_DATA3__WDOG2_WDOG_RST_B_DEB (_MX53_PAD_SD1_DATA3__WDOG2_WDOG_RST_B_DEB | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1065 | #define MX53_PAD_SD1_CLK__ESDHC1_CLK IOMUX_PAD(0x67C, 0x2F4, 0, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2240 | #define MX53_PAD_SD1_DATA3__SATA_PHY_DTB_1 (_MX53_PAD_SD1_DATA3__SATA_PHY_DTB_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1066 | #define MX53_PAD_SD1_CLK__GPIO1_20 IOMUX_PAD(0x67C, 0x2F4, 1, __NA_, 0, NO_PAD_CTRL) |
2241 | #define MX53_PAD_SD2_CLK__ESDHC2_CLK (_MX53_PAD_SD2_CLK__ESDHC2_CLK | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 1067 | #define MX53_PAD_SD1_CLK__OSC32k_32K_OUT IOMUX_PAD(0x67C, 0x2F4, 2, __NA_, 0, NO_PAD_CTRL) |
2242 | #define MX53_PAD_SD2_CLK__GPIO1_10 (_MX53_PAD_SD2_CLK__GPIO1_10 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1068 | #define MX53_PAD_SD1_CLK__GPT_CLKIN IOMUX_PAD(0x67C, 0x2F4, 3, __NA_, 0, NO_PAD_CTRL) |
2243 | #define MX53_PAD_SD2_CLK__KPP_COL_5 (_MX53_PAD_SD2_CLK__KPP_COL_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1069 | #define MX53_PAD_SD1_CLK__CSPI_SCLK IOMUX_PAD(0x67C, 0x2F4, 5, 0x780, 2, NO_PAD_CTRL) |
2244 | #define MX53_PAD_SD2_CLK__AUDMUX_AUD4_RXFS (_MX53_PAD_SD2_CLK__AUDMUX_AUD4_RXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1070 | #define MX53_PAD_SD1_CLK__SATA_PHY_DTB_0 IOMUX_PAD(0x67C, 0x2F4, 7, __NA_, 0, NO_PAD_CTRL) |
2245 | #define MX53_PAD_SD2_CLK__CSPI_SCLK (_MX53_PAD_SD2_CLK__CSPI_SCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1071 | #define MX53_PAD_SD1_DATA3__ESDHC1_DAT3 IOMUX_PAD(0x680, 0x2F8, 0, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2246 | #define MX53_PAD_SD2_CLK__SCC_RANDOM_V (_MX53_PAD_SD2_CLK__SCC_RANDOM_V | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1072 | #define MX53_PAD_SD1_DATA3__GPIO1_21 IOMUX_PAD(0x680, 0x2F8, 1, __NA_, 0, NO_PAD_CTRL) |
2247 | #define MX53_PAD_SD2_CMD__ESDHC2_CMD (_MX53_PAD_SD2_CMD__ESDHC2_CMD | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 1073 | #define MX53_PAD_SD1_DATA3__GPT_CMPOUT3 IOMUX_PAD(0x680, 0x2F8, 2, __NA_, 0, NO_PAD_CTRL) |
2248 | #define MX53_PAD_SD2_CMD__GPIO1_11 (_MX53_PAD_SD2_CMD__GPIO1_11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1074 | #define MX53_PAD_SD1_DATA3__PWM1_PWMO IOMUX_PAD(0x680, 0x2F8, 3, __NA_, 0, NO_PAD_CTRL) |
2249 | #define MX53_PAD_SD2_CMD__KPP_ROW_5 (_MX53_PAD_SD2_CMD__KPP_ROW_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1075 | #define MX53_PAD_SD1_DATA3__WDOG2_WDOG_B IOMUX_PAD(0x680, 0x2F8, 4, __NA_, 0, NO_PAD_CTRL) |
2250 | #define MX53_PAD_SD2_CMD__AUDMUX_AUD4_RXC (_MX53_PAD_SD2_CMD__AUDMUX_AUD4_RXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1076 | #define MX53_PAD_SD1_DATA3__CSPI_SS2 IOMUX_PAD(0x680, 0x2F8, 5, 0x794, 2, NO_PAD_CTRL) |
2251 | #define MX53_PAD_SD2_CMD__CSPI_MOSI (_MX53_PAD_SD2_CMD__CSPI_MOSI | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1077 | #define MX53_PAD_SD1_DATA3__WDOG2_WDOG_RST_B_DEB IOMUX_PAD(0x680, 0x2F8, 6, __NA_, 0, NO_PAD_CTRL) |
2252 | #define MX53_PAD_SD2_CMD__SCC_RANDOM (_MX53_PAD_SD2_CMD__SCC_RANDOM | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1078 | #define MX53_PAD_SD1_DATA3__SATA_PHY_DTB_1 IOMUX_PAD(0x680, 0x2F8, 7, __NA_, 0, NO_PAD_CTRL) |
2253 | #define MX53_PAD_SD2_DATA3__ESDHC2_DAT3 (_MX53_PAD_SD2_DATA3__ESDHC2_DAT3 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 1079 | #define MX53_PAD_SD2_CLK__ESDHC2_CLK IOMUX_PAD(0x688, 0x2FC, 0, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2254 | #define MX53_PAD_SD2_DATA3__GPIO1_12 (_MX53_PAD_SD2_DATA3__GPIO1_12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1080 | #define MX53_PAD_SD2_CLK__GPIO1_10 IOMUX_PAD(0x688, 0x2FC, 1, __NA_, 0, NO_PAD_CTRL) |
2255 | #define MX53_PAD_SD2_DATA3__KPP_COL_6 (_MX53_PAD_SD2_DATA3__KPP_COL_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1081 | #define MX53_PAD_SD2_CLK__KPP_COL_5 IOMUX_PAD(0x688, 0x2FC, 2, 0x840, 2, NO_PAD_CTRL) |
2256 | #define MX53_PAD_SD2_DATA3__AUDMUX_AUD4_TXC (_MX53_PAD_SD2_DATA3__AUDMUX_AUD4_TXC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1082 | #define MX53_PAD_SD2_CLK__AUDMUX_AUD4_RXFS IOMUX_PAD(0x688, 0x2FC, 3, 0x73C, 1, NO_PAD_CTRL) |
2257 | #define MX53_PAD_SD2_DATA3__CSPI_SS2 (_MX53_PAD_SD2_DATA3__CSPI_SS2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1083 | #define MX53_PAD_SD2_CLK__CSPI_SCLK IOMUX_PAD(0x688, 0x2FC, 5, 0x780, 3, NO_PAD_CTRL) |
2258 | #define MX53_PAD_SD2_DATA3__SJC_DONE (_MX53_PAD_SD2_DATA3__SJC_DONE | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1084 | #define MX53_PAD_SD2_CLK__SCC_RANDOM_V IOMUX_PAD(0x688, 0x2FC, 7, __NA_, 0, NO_PAD_CTRL) |
2259 | #define MX53_PAD_SD2_DATA2__ESDHC2_DAT2 (_MX53_PAD_SD2_DATA2__ESDHC2_DAT2 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 1085 | #define MX53_PAD_SD2_CMD__ESDHC2_CMD IOMUX_PAD(0x68C, 0x300, 0, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2260 | #define MX53_PAD_SD2_DATA2__GPIO1_13 (_MX53_PAD_SD2_DATA2__GPIO1_13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1086 | #define MX53_PAD_SD2_CMD__GPIO1_11 IOMUX_PAD(0x68C, 0x300, 1, __NA_, 0, NO_PAD_CTRL) |
2261 | #define MX53_PAD_SD2_DATA2__KPP_ROW_6 (_MX53_PAD_SD2_DATA2__KPP_ROW_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1087 | #define MX53_PAD_SD2_CMD__KPP_ROW_5 IOMUX_PAD(0x68C, 0x300, 2, 0x84C, 1, NO_PAD_CTRL) |
2262 | #define MX53_PAD_SD2_DATA2__AUDMUX_AUD4_TXD (_MX53_PAD_SD2_DATA2__AUDMUX_AUD4_TXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1088 | #define MX53_PAD_SD2_CMD__AUDMUX_AUD4_RXC IOMUX_PAD(0x68C, 0x300, 3, 0x738, 1, NO_PAD_CTRL) |
2263 | #define MX53_PAD_SD2_DATA2__CSPI_SS1 (_MX53_PAD_SD2_DATA2__CSPI_SS1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1089 | #define MX53_PAD_SD2_CMD__CSPI_MOSI IOMUX_PAD(0x68C, 0x300, 5, 0x788, 3, NO_PAD_CTRL) |
2264 | #define MX53_PAD_SD2_DATA2__SJC_FAIL (_MX53_PAD_SD2_DATA2__SJC_FAIL | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1090 | #define MX53_PAD_SD2_CMD__SCC_RANDOM IOMUX_PAD(0x68C, 0x300, 7, __NA_, 0, NO_PAD_CTRL) |
2265 | #define MX53_PAD_SD2_DATA1__ESDHC2_DAT1 (_MX53_PAD_SD2_DATA1__ESDHC2_DAT1 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 1091 | #define MX53_PAD_SD2_DATA3__ESDHC2_DAT3 IOMUX_PAD(0x690, 0x304, 0, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2266 | #define MX53_PAD_SD2_DATA1__GPIO1_14 (_MX53_PAD_SD2_DATA1__GPIO1_14 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1092 | #define MX53_PAD_SD2_DATA3__GPIO1_12 IOMUX_PAD(0x690, 0x304, 1, __NA_, 0, NO_PAD_CTRL) |
2267 | #define MX53_PAD_SD2_DATA1__KPP_COL_7 (_MX53_PAD_SD2_DATA1__KPP_COL_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1093 | #define MX53_PAD_SD2_DATA3__KPP_COL_6 IOMUX_PAD(0x690, 0x304, 2, 0x844, 1, NO_PAD_CTRL) |
2268 | #define MX53_PAD_SD2_DATA1__AUDMUX_AUD4_TXFS (_MX53_PAD_SD2_DATA1__AUDMUX_AUD4_TXFS | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1094 | #define MX53_PAD_SD2_DATA3__AUDMUX_AUD4_TXC IOMUX_PAD(0x690, 0x304, 3, 0x740, 1, NO_PAD_CTRL) |
2269 | #define MX53_PAD_SD2_DATA1__CSPI_SS0 (_MX53_PAD_SD2_DATA1__CSPI_SS0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1095 | #define MX53_PAD_SD2_DATA3__CSPI_SS2 IOMUX_PAD(0x690, 0x304, 5, 0x794, 3, NO_PAD_CTRL) |
2270 | #define MX53_PAD_SD2_DATA1__RTIC_SEC_VIO (_MX53_PAD_SD2_DATA1__RTIC_SEC_VIO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1096 | #define MX53_PAD_SD2_DATA3__SJC_DONE IOMUX_PAD(0x690, 0x304, 7, __NA_, 0, NO_PAD_CTRL) |
2271 | #define MX53_PAD_SD2_DATA0__ESDHC2_DAT0 (_MX53_PAD_SD2_DATA0__ESDHC2_DAT0 | MUX_PAD_CTRL(MX53_SDHC_PAD_CTRL)) | 1097 | #define MX53_PAD_SD2_DATA2__ESDHC2_DAT2 IOMUX_PAD(0x694, 0x308, 0, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2272 | #define MX53_PAD_SD2_DATA0__GPIO1_15 (_MX53_PAD_SD2_DATA0__GPIO1_15 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1098 | #define MX53_PAD_SD2_DATA2__GPIO1_13 IOMUX_PAD(0x694, 0x308, 1, __NA_, 0, NO_PAD_CTRL) |
2273 | #define MX53_PAD_SD2_DATA0__KPP_ROW_7 (_MX53_PAD_SD2_DATA0__KPP_ROW_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1099 | #define MX53_PAD_SD2_DATA2__KPP_ROW_6 IOMUX_PAD(0x694, 0x308, 2, 0x850, 1, NO_PAD_CTRL) |
2274 | #define MX53_PAD_SD2_DATA0__AUDMUX_AUD4_RXD (_MX53_PAD_SD2_DATA0__AUDMUX_AUD4_RXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1100 | #define MX53_PAD_SD2_DATA2__AUDMUX_AUD4_TXD IOMUX_PAD(0x694, 0x308, 3, 0x734, 1, NO_PAD_CTRL) |
2275 | #define MX53_PAD_SD2_DATA0__CSPI_MISO (_MX53_PAD_SD2_DATA0__CSPI_MISO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1101 | #define MX53_PAD_SD2_DATA2__CSPI_SS1 IOMUX_PAD(0x694, 0x308, 5, 0x790, 3, NO_PAD_CTRL) |
2276 | #define MX53_PAD_SD2_DATA0__RTIC_DONE_INT (_MX53_PAD_SD2_DATA0__RTIC_DONE_INT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1102 | #define MX53_PAD_SD2_DATA2__SJC_FAIL IOMUX_PAD(0x694, 0x308, 7, __NA_, 0, NO_PAD_CTRL) |
2277 | #define MX53_PAD_GPIO_0__CCM_CLKO (_MX53_PAD_GPIO_0__CCM_CLKO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1103 | #define MX53_PAD_SD2_DATA1__ESDHC2_DAT1 IOMUX_PAD(0x698, 0x30C, 0, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2278 | #define MX53_PAD_GPIO_0__GPIO1_0 (_MX53_PAD_GPIO_0__GPIO1_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1104 | #define MX53_PAD_SD2_DATA1__GPIO1_14 IOMUX_PAD(0x698, 0x30C, 1, __NA_, 0, NO_PAD_CTRL) |
2279 | #define MX53_PAD_GPIO_0__KPP_COL_5 (_MX53_PAD_GPIO_0__KPP_COL_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1105 | #define MX53_PAD_SD2_DATA1__KPP_COL_7 IOMUX_PAD(0x698, 0x30C, 2, 0x848, 1, NO_PAD_CTRL) |
2280 | #define MX53_PAD_GPIO_0__CCM_SSI_EXT1_CLK (_MX53_PAD_GPIO_0__CCM_SSI_EXT1_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1106 | #define MX53_PAD_SD2_DATA1__AUDMUX_AUD4_TXFS IOMUX_PAD(0x698, 0x30C, 3, 0x744, 0, NO_PAD_CTRL) |
2281 | #define MX53_PAD_GPIO_0__EPIT1_EPITO (_MX53_PAD_GPIO_0__EPIT1_EPITO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1107 | #define MX53_PAD_SD2_DATA1__CSPI_SS0 IOMUX_PAD(0x698, 0x30C, 5, 0x78C, 4, NO_PAD_CTRL) |
2282 | #define MX53_PAD_GPIO_0__SRTC_ALARM_DEB (_MX53_PAD_GPIO_0__SRTC_ALARM_DEB | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1108 | #define MX53_PAD_SD2_DATA1__RTIC_SEC_VIO IOMUX_PAD(0x698, 0x30C, 7, __NA_, 0, NO_PAD_CTRL) |
2283 | #define MX53_PAD_GPIO_0__USBOH3_USBH1_PWR (_MX53_PAD_GPIO_0__USBOH3_USBH1_PWR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1109 | #define MX53_PAD_SD2_DATA0__ESDHC2_DAT0 IOMUX_PAD(0x69C, 0x310, 0, __NA_, 0, MX53_SDHC_PAD_CTRL) |
2284 | #define MX53_PAD_GPIO_0__CSU_TD (_MX53_PAD_GPIO_0__CSU_TD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1110 | #define MX53_PAD_SD2_DATA0__GPIO1_15 IOMUX_PAD(0x69C, 0x310, 1, __NA_, 0, NO_PAD_CTRL) |
2285 | #define MX53_PAD_GPIO_1__ESAI1_SCKR (_MX53_PAD_GPIO_1__ESAI1_SCKR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1111 | #define MX53_PAD_SD2_DATA0__KPP_ROW_7 IOMUX_PAD(0x69C, 0x310, 2, 0x854, 1, NO_PAD_CTRL) |
2286 | #define MX53_PAD_GPIO_1__GPIO1_1 (_MX53_PAD_GPIO_1__GPIO1_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1112 | #define MX53_PAD_SD2_DATA0__AUDMUX_AUD4_RXD IOMUX_PAD(0x69C, 0x310, 3, 0x730, 1, NO_PAD_CTRL) |
2287 | #define MX53_PAD_GPIO_1__KPP_ROW_5 (_MX53_PAD_GPIO_1__KPP_ROW_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1113 | #define MX53_PAD_SD2_DATA0__CSPI_MISO IOMUX_PAD(0x69C, 0x310, 5, 0x784, 3, NO_PAD_CTRL) |
2288 | #define MX53_PAD_GPIO_1__CCM_SSI_EXT2_CLK (_MX53_PAD_GPIO_1__CCM_SSI_EXT2_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1114 | #define MX53_PAD_SD2_DATA0__RTIC_DONE_INT IOMUX_PAD(0x69C, 0x310, 7, __NA_, 0, NO_PAD_CTRL) |
2289 | #define MX53_PAD_GPIO_1__PWM2_PWMO (_MX53_PAD_GPIO_1__PWM2_PWMO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1115 | #define MX53_PAD_GPIO_0__CCM_CLKO IOMUX_PAD(0x6A4, 0x314, 0, __NA_, 0, NO_PAD_CTRL) |
2290 | #define MX53_PAD_GPIO_1__WDOG2_WDOG_B (_MX53_PAD_GPIO_1__WDOG2_WDOG_B | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1116 | #define MX53_PAD_GPIO_0__GPIO1_0 IOMUX_PAD(0x6A4, 0x314, 1, __NA_, 0, NO_PAD_CTRL) |
2291 | #define MX53_PAD_GPIO_1__ESDHC1_CD (_MX53_PAD_GPIO_1__ESDHC1_CD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1117 | #define MX53_PAD_GPIO_0__KPP_COL_5 IOMUX_PAD(0x6A4, 0x314, 2, 0x840, 3, NO_PAD_CTRL) |
2292 | #define MX53_PAD_GPIO_1__SRC_TESTER_ACK (_MX53_PAD_GPIO_1__SRC_TESTER_ACK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1118 | #define MX53_PAD_GPIO_0__CCM_SSI_EXT1_CLK IOMUX_PAD(0x6A4, 0x314, 3, __NA_, 0, NO_PAD_CTRL) |
2293 | #define MX53_PAD_GPIO_9__ESAI1_FSR (_MX53_PAD_GPIO_9__ESAI1_FSR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1119 | #define MX53_PAD_GPIO_0__EPIT1_EPITO IOMUX_PAD(0x6A4, 0x314, 4, __NA_, 0, NO_PAD_CTRL) |
2294 | #define MX53_PAD_GPIO_9__GPIO1_9 (_MX53_PAD_GPIO_9__GPIO1_9 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1120 | #define MX53_PAD_GPIO_0__SRTC_ALARM_DEB IOMUX_PAD(0x6A4, 0x314, 5, __NA_, 0, NO_PAD_CTRL) |
2295 | #define MX53_PAD_GPIO_9__KPP_COL_6 (_MX53_PAD_GPIO_9__KPP_COL_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1121 | #define MX53_PAD_GPIO_0__USBOH3_USBH1_PWR IOMUX_PAD(0x6A4, 0x314, 6, __NA_, 0, NO_PAD_CTRL) |
2296 | #define MX53_PAD_GPIO_9__CCM_REF_EN_B (_MX53_PAD_GPIO_9__CCM_REF_EN_B | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1122 | #define MX53_PAD_GPIO_0__CSU_TD IOMUX_PAD(0x6A4, 0x314, 7, __NA_, 0, NO_PAD_CTRL) |
2297 | #define MX53_PAD_GPIO_9__PWM1_PWMO (_MX53_PAD_GPIO_9__PWM1_PWMO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1123 | #define MX53_PAD_GPIO_1__ESAI1_SCKR IOMUX_PAD(0x6A8, 0x318, 0, 0x7DC, 1, NO_PAD_CTRL) |
2298 | #define MX53_PAD_GPIO_9__WDOG1_WDOG_B (_MX53_PAD_GPIO_9__WDOG1_WDOG_B | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1124 | #define MX53_PAD_GPIO_1__GPIO1_1 IOMUX_PAD(0x6A8, 0x318, 1, __NA_, 0, NO_PAD_CTRL) |
2299 | #define MX53_PAD_GPIO_9__ESDHC1_WP (_MX53_PAD_GPIO_9__ESDHC1_WP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1125 | #define MX53_PAD_GPIO_1__KPP_ROW_5 IOMUX_PAD(0x6A8, 0x318, 2, 0x84C, 2, NO_PAD_CTRL) |
2300 | #define MX53_PAD_GPIO_9__SCC_FAIL_STATE (_MX53_PAD_GPIO_9__SCC_FAIL_STATE | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1126 | #define MX53_PAD_GPIO_1__CCM_SSI_EXT2_CLK IOMUX_PAD(0x6A8, 0x318, 3, __NA_, 0, NO_PAD_CTRL) |
2301 | #define MX53_PAD_GPIO_3__ESAI1_HCKR (_MX53_PAD_GPIO_3__ESAI1_HCKR | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1127 | #define MX53_PAD_GPIO_1__PWM2_PWMO IOMUX_PAD(0x6A8, 0x318, 4, __NA_, 0, NO_PAD_CTRL) |
2302 | #define MX53_PAD_GPIO_3__GPIO1_3 (_MX53_PAD_GPIO_3__GPIO1_3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1128 | #define MX53_PAD_GPIO_1__WDOG2_WDOG_B IOMUX_PAD(0x6A8, 0x318, 5, __NA_, 0, NO_PAD_CTRL) |
2303 | #define MX53_PAD_GPIO_3__I2C3_SCL (_MX53_PAD_GPIO_3__I2C3_SCL | MUX_PAD_CTRL(PAD_CTRL_I2C)) | 1129 | #define MX53_PAD_GPIO_1__ESDHC1_CD IOMUX_PAD(0x6A8, 0x318, 6, __NA_, 0, NO_PAD_CTRL) |
2304 | #define MX53_PAD_GPIO_3__DPLLIP1_TOG_EN (_MX53_PAD_GPIO_3__DPLLIP1_TOG_EN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1130 | #define MX53_PAD_GPIO_1__SRC_TESTER_ACK IOMUX_PAD(0x6A8, 0x318, 7, __NA_, 0, NO_PAD_CTRL) |
2305 | #define MX53_PAD_GPIO_3__CCM_CLKO2 (_MX53_PAD_GPIO_3__CCM_CLKO2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1131 | #define MX53_PAD_GPIO_9__ESAI1_FSR IOMUX_PAD(0x6AC, 0x31C, 0, 0x7CC, 1, NO_PAD_CTRL) |
2306 | #define MX53_PAD_GPIO_3__OBSERVE_MUX_OBSRV_INT_OUT0 (_MX53_PAD_GPIO_3__OBSERVE_MUX_OBSRV_INT_OUT0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1132 | #define MX53_PAD_GPIO_9__GPIO1_9 IOMUX_PAD(0x6AC, 0x31C, 1, __NA_, 0, NO_PAD_CTRL) |
2307 | #define MX53_PAD_GPIO_3__USBOH3_USBH1_OC (_MX53_PAD_GPIO_3__USBOH3_USBH1_OC | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1133 | #define MX53_PAD_GPIO_9__KPP_COL_6 IOMUX_PAD(0x6AC, 0x31C, 2, 0x844, 2, NO_PAD_CTRL) |
2308 | #define MX53_PAD_GPIO_3__MLB_MLBCLK (_MX53_PAD_GPIO_3__MLB_MLBCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1134 | #define MX53_PAD_GPIO_9__CCM_REF_EN_B IOMUX_PAD(0x6AC, 0x31C, 3, __NA_, 0, NO_PAD_CTRL) |
2309 | #define MX53_PAD_GPIO_6__ESAI1_SCKT (_MX53_PAD_GPIO_6__ESAI1_SCKT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1135 | #define MX53_PAD_GPIO_9__PWM1_PWMO IOMUX_PAD(0x6AC, 0x31C, 4, __NA_, 0, NO_PAD_CTRL) |
2310 | #define MX53_PAD_GPIO_6__GPIO1_6 (_MX53_PAD_GPIO_6__GPIO1_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1136 | #define MX53_PAD_GPIO_9__WDOG1_WDOG_B IOMUX_PAD(0x6AC, 0x31C, 5, __NA_, 0, NO_PAD_CTRL) |
2311 | #define MX53_PAD_GPIO_6__I2C3_SDA (_MX53_PAD_GPIO_6__I2C3_SDA | MUX_PAD_CTRL(PAD_CTRL_I2C)) | 1137 | #define MX53_PAD_GPIO_9__ESDHC1_WP IOMUX_PAD(0x6AC, 0x31C, 6, 0x7FC, 1, NO_PAD_CTRL) |
2312 | #define MX53_PAD_GPIO_6__CCM_CCM_OUT_0 (_MX53_PAD_GPIO_6__CCM_CCM_OUT_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1138 | #define MX53_PAD_GPIO_9__SCC_FAIL_STATE IOMUX_PAD(0x6AC, 0x31C, 7, __NA_, 0, NO_PAD_CTRL) |
2313 | #define MX53_PAD_GPIO_6__CSU_CSU_INT_DEB (_MX53_PAD_GPIO_6__CSU_CSU_INT_DEB | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1139 | #define MX53_PAD_GPIO_3__ESAI1_HCKR IOMUX_PAD(0x6B0, 0x320, 0, 0x7D4, 1, NO_PAD_CTRL) |
2314 | #define MX53_PAD_GPIO_6__OBSERVE_MUX_OBSRV_INT_OUT1 (_MX53_PAD_GPIO_6__OBSERVE_MUX_OBSRV_INT_OUT1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1140 | #define MX53_PAD_GPIO_3__GPIO1_3 IOMUX_PAD(0x6B0, 0x320, 1, __NA_, 0, NO_PAD_CTRL) |
2315 | #define MX53_PAD_GPIO_6__ESDHC2_LCTL (_MX53_PAD_GPIO_6__ESDHC2_LCTL | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1141 | #define MX53_PAD_GPIO_3__I2C3_SCL IOMUX_PAD(0x6B0, 0x320, 2 | IOMUX_CONFIG_SION, 0x824, 1, NO_PAD_CTRL) |
2316 | #define MX53_PAD_GPIO_6__MLB_MLBSIG (_MX53_PAD_GPIO_6__MLB_MLBSIG | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1142 | #define MX53_PAD_GPIO_3__DPLLIP1_TOG_EN IOMUX_PAD(0x6B0, 0x320, 3, __NA_, 0, NO_PAD_CTRL) |
2317 | #define MX53_PAD_GPIO_2__ESAI1_FST (_MX53_PAD_GPIO_2__ESAI1_FST | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1143 | #define MX53_PAD_GPIO_3__CCM_CLKO2 IOMUX_PAD(0x6B0, 0x320, 4, __NA_, 0, NO_PAD_CTRL) |
2318 | #define MX53_PAD_GPIO_2__GPIO1_2 (_MX53_PAD_GPIO_2__GPIO1_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1144 | #define MX53_PAD_GPIO_3__OBSERVE_MUX_OBSRV_INT_OUT0 IOMUX_PAD(0x6B0, 0x320, 5, __NA_, 0, NO_PAD_CTRL) |
2319 | #define MX53_PAD_GPIO_2__KPP_ROW_6 (_MX53_PAD_GPIO_2__KPP_ROW_6 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1145 | #define MX53_PAD_GPIO_3__USBOH3_USBH1_OC IOMUX_PAD(0x6B0, 0x320, 6, 0x8A0, 1, NO_PAD_CTRL) |
2320 | #define MX53_PAD_GPIO_2__CCM_CCM_OUT_1 (_MX53_PAD_GPIO_2__CCM_CCM_OUT_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1146 | #define MX53_PAD_GPIO_3__MLB_MLBCLK IOMUX_PAD(0x6B0, 0x320, 7, 0x858, 2, NO_PAD_CTRL) |
2321 | #define MX53_PAD_GPIO_2__CSU_CSU_ALARM_AUT_0 (_MX53_PAD_GPIO_2__CSU_CSU_ALARM_AUT_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1147 | #define MX53_PAD_GPIO_6__ESAI1_SCKT IOMUX_PAD(0x6B4, 0x324, 0, 0x7E0, 1, NO_PAD_CTRL) |
2322 | #define MX53_PAD_GPIO_2__OBSERVE_MUX_OBSRV_INT_OUT2 (_MX53_PAD_GPIO_2__OBSERVE_MUX_OBSRV_INT_OUT2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1148 | #define MX53_PAD_GPIO_6__GPIO1_6 IOMUX_PAD(0x6B4, 0x324, 1, __NA_, 0, NO_PAD_CTRL) |
2323 | #define MX53_PAD_GPIO_2__ESDHC2_WP (_MX53_PAD_GPIO_2__ESDHC2_WP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1149 | #define MX53_PAD_GPIO_6__I2C3_SDA IOMUX_PAD(0x6B4, 0x324, 2 | IOMUX_CONFIG_SION, 0x828, 1, NO_PAD_CTRL) |
2324 | #define MX53_PAD_GPIO_2__MLB_MLBDAT (_MX53_PAD_GPIO_2__MLB_MLBDAT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1150 | #define MX53_PAD_GPIO_6__CCM_CCM_OUT_0 IOMUX_PAD(0x6B4, 0x324, 3, __NA_, 0, NO_PAD_CTRL) |
2325 | #define MX53_PAD_GPIO_4__ESAI1_HCKT (_MX53_PAD_GPIO_4__ESAI1_HCKT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1151 | #define MX53_PAD_GPIO_6__CSU_CSU_INT_DEB IOMUX_PAD(0x6B4, 0x324, 4, __NA_, 0, NO_PAD_CTRL) |
2326 | #define MX53_PAD_GPIO_4__GPIO1_4 (_MX53_PAD_GPIO_4__GPIO1_4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1152 | #define MX53_PAD_GPIO_6__OBSERVE_MUX_OBSRV_INT_OUT1 IOMUX_PAD(0x6B4, 0x324, 5, __NA_, 0, NO_PAD_CTRL) |
2327 | #define MX53_PAD_GPIO_4__KPP_COL_7 (_MX53_PAD_GPIO_4__KPP_COL_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1153 | #define MX53_PAD_GPIO_6__ESDHC2_LCTL IOMUX_PAD(0x6B4, 0x324, 6, __NA_, 0, NO_PAD_CTRL) |
2328 | #define MX53_PAD_GPIO_4__CCM_CCM_OUT_2 (_MX53_PAD_GPIO_4__CCM_CCM_OUT_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1154 | #define MX53_PAD_GPIO_6__MLB_MLBSIG IOMUX_PAD(0x6B4, 0x324, 7, 0x860, 2, NO_PAD_CTRL) |
2329 | #define MX53_PAD_GPIO_4__CSU_CSU_ALARM_AUT_1 (_MX53_PAD_GPIO_4__CSU_CSU_ALARM_AUT_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1155 | #define MX53_PAD_GPIO_2__ESAI1_FST IOMUX_PAD(0x6B8, 0x328, 0, 0x7D0, 1, NO_PAD_CTRL) |
2330 | #define MX53_PAD_GPIO_4__OBSERVE_MUX_OBSRV_INT_OUT3 (_MX53_PAD_GPIO_4__OBSERVE_MUX_OBSRV_INT_OUT3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1156 | #define MX53_PAD_GPIO_2__GPIO1_2 IOMUX_PAD(0x6B8, 0x328, 1, __NA_, 0, NO_PAD_CTRL) |
2331 | #define MX53_PAD_GPIO_4__ESDHC2_CD (_MX53_PAD_GPIO_4__ESDHC2_CD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1157 | #define MX53_PAD_GPIO_2__KPP_ROW_6 IOMUX_PAD(0x6B8, 0x328, 2, 0x850, 2, NO_PAD_CTRL) |
2332 | #define MX53_PAD_GPIO_4__SCC_SEC_STATE (_MX53_PAD_GPIO_4__SCC_SEC_STATE | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1158 | #define MX53_PAD_GPIO_2__CCM_CCM_OUT_1 IOMUX_PAD(0x6B8, 0x328, 3, __NA_, 0, NO_PAD_CTRL) |
2333 | #define MX53_PAD_GPIO_5__ESAI1_TX2_RX3 (_MX53_PAD_GPIO_5__ESAI1_TX2_RX3 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1159 | #define MX53_PAD_GPIO_2__CSU_CSU_ALARM_AUT_0 IOMUX_PAD(0x6B8, 0x328, 4, __NA_, 0, NO_PAD_CTRL) |
2334 | #define MX53_PAD_GPIO_5__GPIO1_5 (_MX53_PAD_GPIO_5__GPIO1_5 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1160 | #define MX53_PAD_GPIO_2__OBSERVE_MUX_OBSRV_INT_OUT2 IOMUX_PAD(0x6B8, 0x328, 5, __NA_, 0, NO_PAD_CTRL) |
2335 | #define MX53_PAD_GPIO_5__KPP_ROW_7 (_MX53_PAD_GPIO_5__KPP_ROW_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1161 | #define MX53_PAD_GPIO_2__ESDHC2_WP IOMUX_PAD(0x6B8, 0x328, 6, __NA_, 0, NO_PAD_CTRL) |
2336 | #define MX53_PAD_GPIO_5__CCM_CLKO (_MX53_PAD_GPIO_5__CCM_CLKO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1162 | #define MX53_PAD_GPIO_2__MLB_MLBDAT IOMUX_PAD(0x6B8, 0x328, 7, 0x85C, 2, NO_PAD_CTRL) |
2337 | #define MX53_PAD_GPIO_5__CSU_CSU_ALARM_AUT_2 (_MX53_PAD_GPIO_5__CSU_CSU_ALARM_AUT_2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1163 | #define MX53_PAD_GPIO_4__ESAI1_HCKT IOMUX_PAD(0x6BC, 0x32C, 0, 0x7D8, 1, NO_PAD_CTRL) |
2338 | #define MX53_PAD_GPIO_5__OBSERVE_MUX_OBSRV_INT_OUT4 (_MX53_PAD_GPIO_5__OBSERVE_MUX_OBSRV_INT_OUT4 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1164 | #define MX53_PAD_GPIO_4__GPIO1_4 IOMUX_PAD(0x6BC, 0x32C, 1, __NA_, 0, NO_PAD_CTRL) |
2339 | #define MX53_PAD_GPIO_5__I2C3_SCL (_MX53_PAD_GPIO_5__I2C3_SCL | MUX_PAD_CTRL(PAD_CTRL_I2C)) | 1165 | #define MX53_PAD_GPIO_4__KPP_COL_7 IOMUX_PAD(0x6BC, 0x32C, 2, 0x848, 2, NO_PAD_CTRL) |
2340 | #define MX53_PAD_GPIO_5__CCM_PLL1_BYP (_MX53_PAD_GPIO_5__CCM_PLL1_BYP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1166 | #define MX53_PAD_GPIO_4__CCM_CCM_OUT_2 IOMUX_PAD(0x6BC, 0x32C, 3, __NA_, 0, NO_PAD_CTRL) |
2341 | #define MX53_PAD_GPIO_7__ESAI1_TX4_RX1 (_MX53_PAD_GPIO_7__ESAI1_TX4_RX1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1167 | #define MX53_PAD_GPIO_4__CSU_CSU_ALARM_AUT_1 IOMUX_PAD(0x6BC, 0x32C, 4, __NA_, 0, NO_PAD_CTRL) |
2342 | #define MX53_PAD_GPIO_7__GPIO1_7 (_MX53_PAD_GPIO_7__GPIO1_7 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1168 | #define MX53_PAD_GPIO_4__OBSERVE_MUX_OBSRV_INT_OUT3 IOMUX_PAD(0x6BC, 0x32C, 5, __NA_, 0, NO_PAD_CTRL) |
2343 | #define MX53_PAD_GPIO_7__EPIT1_EPITO (_MX53_PAD_GPIO_7__EPIT1_EPITO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1169 | #define MX53_PAD_GPIO_4__ESDHC2_CD IOMUX_PAD(0x6BC, 0x32C, 6, __NA_, 0, NO_PAD_CTRL) |
2344 | #define MX53_PAD_GPIO_7__CAN1_TXCAN (_MX53_PAD_GPIO_7__CAN1_TXCAN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1170 | #define MX53_PAD_GPIO_4__SCC_SEC_STATE IOMUX_PAD(0x6BC, 0x32C, 7, __NA_, 0, NO_PAD_CTRL) |
2345 | #define MX53_PAD_GPIO_7__UART2_TXD_MUX (_MX53_PAD_GPIO_7__UART2_TXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 1171 | #define MX53_PAD_GPIO_5__ESAI1_TX2_RX3 IOMUX_PAD(0x6C0, 0x330, 0, 0x7EC, 1, NO_PAD_CTRL) |
2346 | #define MX53_PAD_GPIO_7__FIRI_RXD (_MX53_PAD_GPIO_7__FIRI_RXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1172 | #define MX53_PAD_GPIO_5__GPIO1_5 IOMUX_PAD(0x6C0, 0x330, 1, __NA_, 0, NO_PAD_CTRL) |
2347 | #define MX53_PAD_GPIO_7__SPDIF_PLOCK (_MX53_PAD_GPIO_7__SPDIF_PLOCK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1173 | #define MX53_PAD_GPIO_5__KPP_ROW_7 IOMUX_PAD(0x6C0, 0x330, 2, 0x854, 2, NO_PAD_CTRL) |
2348 | #define MX53_PAD_GPIO_7__CCM_PLL2_BYP (_MX53_PAD_GPIO_7__CCM_PLL2_BYP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1174 | #define MX53_PAD_GPIO_5__CCM_CLKO IOMUX_PAD(0x6C0, 0x330, 3, __NA_, 0, NO_PAD_CTRL) |
2349 | #define MX53_PAD_GPIO_8__ESAI1_TX5_RX0 (_MX53_PAD_GPIO_8__ESAI1_TX5_RX0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1175 | #define MX53_PAD_GPIO_5__CSU_CSU_ALARM_AUT_2 IOMUX_PAD(0x6C0, 0x330, 4, __NA_, 0, NO_PAD_CTRL) |
2350 | #define MX53_PAD_GPIO_8__GPIO1_8 (_MX53_PAD_GPIO_8__GPIO1_8 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1176 | #define MX53_PAD_GPIO_5__OBSERVE_MUX_OBSRV_INT_OUT4 IOMUX_PAD(0x6C0, 0x330, 5, __NA_, 0, NO_PAD_CTRL) |
2351 | #define MX53_PAD_GPIO_8__EPIT2_EPITO (_MX53_PAD_GPIO_8__EPIT2_EPITO | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1177 | #define MX53_PAD_GPIO_5__I2C3_SCL IOMUX_PAD(0x6C0, 0x330, 6 | IOMUX_CONFIG_SION, 0x824, 2, NO_PAD_CTRL) |
2352 | #define MX53_PAD_GPIO_8__CAN1_RXCAN (_MX53_PAD_GPIO_8__CAN1_RXCAN | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1178 | #define MX53_PAD_GPIO_5__CCM_PLL1_BYP IOMUX_PAD(0x6C0, 0x330, 7, 0x770, 1, NO_PAD_CTRL) |
2353 | #define MX53_PAD_GPIO_8__UART2_RXD_MUX (_MX53_PAD_GPIO_8__UART2_RXD_MUX | MUX_PAD_CTRL(MX53_UART_PAD_CTRL)) | 1179 | #define MX53_PAD_GPIO_7__ESAI1_TX4_RX1 IOMUX_PAD(0x6C4, 0x334, 0, 0x7F4, 1, NO_PAD_CTRL) |
2354 | #define MX53_PAD_GPIO_8__FIRI_TXD (_MX53_PAD_GPIO_8__FIRI_TXD | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1180 | #define MX53_PAD_GPIO_7__GPIO1_7 IOMUX_PAD(0x6C4, 0x334, 1, __NA_, 0, NO_PAD_CTRL) |
2355 | #define MX53_PAD_GPIO_8__SPDIF_SRCLK (_MX53_PAD_GPIO_8__SPDIF_SRCLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1181 | #define MX53_PAD_GPIO_7__EPIT1_EPITO IOMUX_PAD(0x6C4, 0x334, 2, __NA_, 0, NO_PAD_CTRL) |
2356 | #define MX53_PAD_GPIO_8__CCM_PLL3_BYP (_MX53_PAD_GPIO_8__CCM_PLL3_BYP | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1182 | #define MX53_PAD_GPIO_7__CAN1_TXCAN IOMUX_PAD(0x6C4, 0x334, 3, __NA_, 0, NO_PAD_CTRL) |
2357 | #define MX53_PAD_GPIO_16__ESAI1_TX3_RX2 (_MX53_PAD_GPIO_16__ESAI1_TX3_RX2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1183 | #define MX53_PAD_GPIO_7__UART2_TXD_MUX IOMUX_PAD(0x6C4, 0x334, 4, __NA_, 0, MX53_UART_PAD_CTRL) |
2358 | #define MX53_PAD_GPIO_16__GPIO7_11 (_MX53_PAD_GPIO_16__GPIO7_11 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1184 | #define MX53_PAD_GPIO_7__FIRI_RXD IOMUX_PAD(0x6C4, 0x334, 5, 0x80C, 1, NO_PAD_CTRL) |
2359 | #define MX53_PAD_GPIO_16__TZIC_PWRFAIL_INT (_MX53_PAD_GPIO_16__TZIC_PWRFAIL_INT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1185 | #define MX53_PAD_GPIO_7__SPDIF_PLOCK IOMUX_PAD(0x6C4, 0x334, 6, __NA_, 0, NO_PAD_CTRL) |
2360 | #define MX53_PAD_GPIO_16__RTC_CE_RTC_EXT_TRIG1 (_MX53_PAD_GPIO_16__RTC_CE_RTC_EXT_TRIG1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1186 | #define MX53_PAD_GPIO_7__CCM_PLL2_BYP IOMUX_PAD(0x6C4, 0x334, 7, 0x774, 1, NO_PAD_CTRL) |
2361 | #define MX53_PAD_GPIO_16__SPDIF_IN1 (_MX53_PAD_GPIO_16__SPDIF_IN1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1187 | #define MX53_PAD_GPIO_8__ESAI1_TX5_RX0 IOMUX_PAD(0x6C8, 0x338, 0, 0x7F8, 1, NO_PAD_CTRL) |
2362 | #define MX53_PAD_GPIO_16__I2C3_SDA (_MX53_PAD_GPIO_16__I2C3_SDA | MUX_PAD_CTRL(PAD_CTRL_I2C)) | 1188 | #define MX53_PAD_GPIO_8__GPIO1_8 IOMUX_PAD(0x6C8, 0x338, 1, __NA_, 0, NO_PAD_CTRL) |
2363 | #define MX53_PAD_GPIO_16__SJC_DE_B (_MX53_PAD_GPIO_16__SJC_DE_B | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1189 | #define MX53_PAD_GPIO_8__EPIT2_EPITO IOMUX_PAD(0x6C8, 0x338, 2, __NA_, 0, NO_PAD_CTRL) |
2364 | #define MX53_PAD_GPIO_17__ESAI1_TX0 (_MX53_PAD_GPIO_17__ESAI1_TX0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1190 | #define MX53_PAD_GPIO_8__CAN1_RXCAN IOMUX_PAD(0x6C8, 0x338, 3, 0x760, 3, NO_PAD_CTRL) |
2365 | #define MX53_PAD_GPIO_17__GPIO7_12 (_MX53_PAD_GPIO_17__GPIO7_12 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1191 | #define MX53_PAD_GPIO_8__UART2_RXD_MUX IOMUX_PAD(0x6C8, 0x338, 4, 0x880, 5, MX53_UART_PAD_CTRL) |
2366 | #define MX53_PAD_GPIO_17__SDMA_EXT_EVENT_0 (_MX53_PAD_GPIO_17__SDMA_EXT_EVENT_0 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1192 | #define MX53_PAD_GPIO_8__FIRI_TXD IOMUX_PAD(0x6C8, 0x338, 5, __NA_, 0, NO_PAD_CTRL) |
2367 | #define MX53_PAD_GPIO_17__GPC_PMIC_RDY (_MX53_PAD_GPIO_17__GPC_PMIC_RDY | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1193 | #define MX53_PAD_GPIO_8__SPDIF_SRCLK IOMUX_PAD(0x6C8, 0x338, 6, __NA_, 0, NO_PAD_CTRL) |
2368 | #define MX53_PAD_GPIO_17__RTC_CE_RTC_FSV_TRIG (_MX53_PAD_GPIO_17__RTC_CE_RTC_FSV_TRIG | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1194 | #define MX53_PAD_GPIO_8__CCM_PLL3_BYP IOMUX_PAD(0x6C8, 0x338, 7, 0x778, 1, NO_PAD_CTRL) |
2369 | #define MX53_PAD_GPIO_17__SPDIF_OUT1 (_MX53_PAD_GPIO_17__SPDIF_OUT1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1195 | #define MX53_PAD_GPIO_16__ESAI1_TX3_RX2 IOMUX_PAD(0x6CC, 0x33C, 0, 0x7F0, 1, NO_PAD_CTRL) |
2370 | #define MX53_PAD_GPIO_17__IPU_SNOOP2 (_MX53_PAD_GPIO_17__IPU_SNOOP2 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1196 | #define MX53_PAD_GPIO_16__GPIO7_11 IOMUX_PAD(0x6CC, 0x33C, 1, __NA_, 0, NO_PAD_CTRL) |
2371 | #define MX53_PAD_GPIO_17__SJC_JTAG_ACT (_MX53_PAD_GPIO_17__SJC_JTAG_ACT | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1197 | #define MX53_PAD_GPIO_16__TZIC_PWRFAIL_INT IOMUX_PAD(0x6CC, 0x33C, 2, __NA_, 0, NO_PAD_CTRL) |
2372 | #define MX53_PAD_GPIO_18__ESAI1_TX1 (_MX53_PAD_GPIO_18__ESAI1_TX1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1198 | #define MX53_PAD_GPIO_16__RTC_CE_RTC_EXT_TRIG1 IOMUX_PAD(0x6CC, 0x33C, 4, __NA_, 0, NO_PAD_CTRL) |
2373 | #define MX53_PAD_GPIO_18__GPIO7_13 (_MX53_PAD_GPIO_18__GPIO7_13 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1199 | #define MX53_PAD_GPIO_16__SPDIF_IN1 IOMUX_PAD(0x6CC, 0x33C, 5, 0x870, 1, NO_PAD_CTRL) |
2374 | #define MX53_PAD_GPIO_18__SDMA_EXT_EVENT_1 (_MX53_PAD_GPIO_18__SDMA_EXT_EVENT_1 | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1200 | #define MX53_PAD_GPIO_16__I2C3_SDA IOMUX_PAD(0x6CC, 0x33C, 6 | IOMUX_CONFIG_SION, 0x828, 2, NO_PAD_CTRL) |
2375 | #define MX53_PAD_GPIO_18__OWIRE_LINE (_MX53_PAD_GPIO_18__OWIRE_LINE | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1201 | #define MX53_PAD_GPIO_16__SJC_DE_B IOMUX_PAD(0x6CC, 0x33C, 7, __NA_, 0, NO_PAD_CTRL) |
2376 | #define MX53_PAD_GPIO_18__RTC_CE_RTC_ALARM2_TRIG (_MX53_PAD_GPIO_18__RTC_CE_RTC_ALARM2_TRIG | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1202 | #define MX53_PAD_GPIO_17__ESAI1_TX0 IOMUX_PAD(0x6D0, 0x340, 0, 0x7E4, 1, NO_PAD_CTRL) |
2377 | #define MX53_PAD_GPIO_18__CCM_ASRC_EXT_CLK (_MX53_PAD_GPIO_18__CCM_ASRC_EXT_CLK | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1203 | #define MX53_PAD_GPIO_17__GPIO7_12 IOMUX_PAD(0x6D0, 0x340, 1, __NA_, 0, NO_PAD_CTRL) |
2378 | #define MX53_PAD_GPIO_18__ESDHC1_LCTL (_MX53_PAD_GPIO_18__ESDHC1_LCTL | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1204 | #define MX53_PAD_GPIO_17__SDMA_EXT_EVENT_0 IOMUX_PAD(0x6D0, 0x340, 2, 0x868, 1, NO_PAD_CTRL) |
2379 | #define MX53_PAD_GPIO_18__SRC_SYSTEM_RST (_MX53_PAD_GPIO_18__SRC_SYSTEM_RST | MUX_PAD_CTRL(NO_PAD_CTRL)) | 1205 | #define MX53_PAD_GPIO_17__GPC_PMIC_RDY IOMUX_PAD(0x6D0, 0x340, 3, 0x810, 1, NO_PAD_CTRL) |
1206 | #define MX53_PAD_GPIO_17__RTC_CE_RTC_FSV_TRIG IOMUX_PAD(0x6D0, 0x340, 4, __NA_, 0, NO_PAD_CTRL) | ||
1207 | #define MX53_PAD_GPIO_17__SPDIF_OUT1 IOMUX_PAD(0x6D0, 0x340, 5, __NA_, 0, NO_PAD_CTRL) | ||
1208 | #define MX53_PAD_GPIO_17__IPU_SNOOP2 IOMUX_PAD(0x6D0, 0x340, 6, __NA_, 0, NO_PAD_CTRL) | ||
1209 | #define MX53_PAD_GPIO_17__SJC_JTAG_ACT IOMUX_PAD(0x6D0, 0x340, 7, __NA_, 0, NO_PAD_CTRL) | ||
1210 | #define MX53_PAD_GPIO_18__ESAI1_TX1 IOMUX_PAD(0x6D4, 0x344, 0, 0x7E8, 1, NO_PAD_CTRL) | ||
1211 | #define MX53_PAD_GPIO_18__GPIO7_13 IOMUX_PAD(0x6D4, 0x344, 1, __NA_, 0, NO_PAD_CTRL) | ||
1212 | #define MX53_PAD_GPIO_18__SDMA_EXT_EVENT_1 IOMUX_PAD(0x6D4, 0x344, 2, 0x86C, 1, NO_PAD_CTRL) | ||
1213 | #define MX53_PAD_GPIO_18__OWIRE_LINE IOMUX_PAD(0x6D4, 0x344, 3, 0x864, 1, NO_PAD_CTRL) | ||
1214 | #define MX53_PAD_GPIO_18__RTC_CE_RTC_ALARM2_TRIG IOMUX_PAD(0x6D4, 0x344, 4, __NA_, 0, NO_PAD_CTRL) | ||
1215 | #define MX53_PAD_GPIO_18__CCM_ASRC_EXT_CLK IOMUX_PAD(0x6D4, 0x344, 5, 0x768, 1, NO_PAD_CTRL) | ||
1216 | #define MX53_PAD_GPIO_18__ESDHC1_LCTL IOMUX_PAD(0x6D4, 0x344, 6, __NA_, 0, NO_PAD_CTRL) | ||
1217 | #define MX53_PAD_GPIO_18__SRC_SYSTEM_RST IOMUX_PAD(0x6D4, 0x344, 7, __NA_, 0, NO_PAD_CTRL) | ||
2380 | 1218 | ||
2381 | #endif /* __MACH_IOMUX_MX53_H__ */ | 1219 | #endif /* __MACH_IOMUX_MX53_H__ */ |
diff --git a/arch/arm/plat-mxc/include/mach/iomux-v3.h b/arch/arm/plat-mxc/include/mach/iomux-v3.h index ebbce33097a7..35e0df224caa 100644 --- a/arch/arm/plat-mxc/include/mach/iomux-v3.h +++ b/arch/arm/plat-mxc/include/mach/iomux-v3.h | |||
@@ -80,6 +80,7 @@ typedef u64 iomux_v3_cfg_t; | |||
80 | ((iomux_v3_cfg_t)(_sel_input_ofs) << MUX_SEL_INPUT_OFS_SHIFT) | \ | 80 | ((iomux_v3_cfg_t)(_sel_input_ofs) << MUX_SEL_INPUT_OFS_SHIFT) | \ |
81 | ((iomux_v3_cfg_t)(_sel_input) << MUX_SEL_INPUT_SHIFT)) | 81 | ((iomux_v3_cfg_t)(_sel_input) << MUX_SEL_INPUT_SHIFT)) |
82 | 82 | ||
83 | #define NEW_PAD_CTRL(cfg, pad) (((cfg) & ~MUX_PAD_CTRL_MASK) | MUX_PAD_CTRL(pad)) | ||
83 | /* | 84 | /* |
84 | * Use to set PAD control | 85 | * Use to set PAD control |
85 | */ | 86 | */ |
diff --git a/arch/arm/plat-mxc/include/mach/memory.h b/arch/arm/plat-mxc/include/mach/memory.h index 11be5cdbdd1a..3ec84b902243 100644 --- a/arch/arm/plat-mxc/include/mach/memory.h +++ b/arch/arm/plat-mxc/include/mach/memory.h | |||
@@ -40,19 +40,4 @@ | |||
40 | # endif | 40 | # endif |
41 | #endif | 41 | #endif |
42 | 42 | ||
43 | #if defined(CONFIG_MX3_VIDEO) | ||
44 | /* | ||
45 | * Increase size of DMA-consistent memory region. | ||
46 | * This is required for mx3 camera driver to capture at least two QXGA frames. | ||
47 | */ | ||
48 | #define CONSISTENT_DMA_SIZE SZ_8M | ||
49 | |||
50 | #elif defined(CONFIG_MX1_VIDEO) || defined(CONFIG_VIDEO_MX2_HOSTSUPPORT) | ||
51 | /* | ||
52 | * Increase size of DMA-consistent memory region. | ||
53 | * This is required for i.MX camera driver to capture at least four VGA frames. | ||
54 | */ | ||
55 | #define CONSISTENT_DMA_SIZE SZ_4M | ||
56 | #endif /* CONFIG_MX1_VIDEO || CONFIG_VIDEO_MX2_HOSTSUPPORT */ | ||
57 | |||
58 | #endif /* __ASM_ARCH_MXC_MEMORY_H__ */ | 43 | #endif /* __ASM_ARCH_MXC_MEMORY_H__ */ |
diff --git a/arch/arm/plat-mxc/include/mach/mx51.h b/arch/arm/plat-mxc/include/mach/mx51.h index dede19a766ff..cdf07c65ec1e 100644 --- a/arch/arm/plat-mxc/include/mach/mx51.h +++ b/arch/arm/plat-mxc/include/mach/mx51.h | |||
@@ -18,18 +18,6 @@ | |||
18 | #define MX51_GPU_CTRL_BASE_ADDR 0x30000000 | 18 | #define MX51_GPU_CTRL_BASE_ADDR 0x30000000 |
19 | #define MX51_IPU_CTRL_BASE_ADDR 0x40000000 | 19 | #define MX51_IPU_CTRL_BASE_ADDR 0x40000000 |
20 | 20 | ||
21 | #define MX51_DEBUG_BASE_ADDR 0x60000000 | ||
22 | #define MX51_DEBUG_SIZE SZ_1M | ||
23 | |||
24 | #define MX51_ETB_BASE_ADDR (MX51_DEBUG_BASE_ADDR + 0x01000) | ||
25 | #define MX51_ETM_BASE_ADDR (MX51_DEBUG_BASE_ADDR + 0x02000) | ||
26 | #define MX51_TPIU_BASE_ADDR (MX51_DEBUG_BASE_ADDR + 0x03000) | ||
27 | #define MX51_CTI0_BASE_ADDR (MX51_DEBUG_BASE_ADDR + 0x04000) | ||
28 | #define MX51_CTI1_BASE_ADDR (MX51_DEBUG_BASE_ADDR + 0x05000) | ||
29 | #define MX51_CTI2_BASE_ADDR (MX51_DEBUG_BASE_ADDR + 0x06000) | ||
30 | #define MX51_CTI3_BASE_ADDR (MX51_DEBUG_BASE_ADDR + 0x07000) | ||
31 | #define MX51_CORTEX_DBG_BASE_ADDR (MX51_DEBUG_BASE_ADDR + 0x08000) | ||
32 | |||
33 | /* | 21 | /* |
34 | * SPBA global module enabled #0 | 22 | * SPBA global module enabled #0 |
35 | */ | 23 | */ |
@@ -55,7 +43,10 @@ | |||
55 | #define MX51_AIPS1_BASE_ADDR 0x73f00000 | 43 | #define MX51_AIPS1_BASE_ADDR 0x73f00000 |
56 | #define MX51_AIPS1_SIZE SZ_1M | 44 | #define MX51_AIPS1_SIZE SZ_1M |
57 | 45 | ||
58 | #define MX51_OTG_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x80000) | 46 | #define MX51_USB_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x80000) |
47 | #define MX51_USB_OTG_BASE_ADDR (MX51_USB_BASE_ADDR + 0x0000) | ||
48 | #define MX51_USB_HS1_BASE_ADDR (MX51_USB_BASE_ADDR + 0x0200) | ||
49 | #define MX51_USB_HS2_BASE_ADDR (MX51_USB_BASE_ADDR + 0x0400) | ||
59 | #define MX51_GPIO1_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x84000) | 50 | #define MX51_GPIO1_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x84000) |
60 | #define MX51_GPIO2_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x88000) | 51 | #define MX51_GPIO2_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x88000) |
61 | #define MX51_GPIO3_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x8c000) | 52 | #define MX51_GPIO3_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x8c000) |
@@ -132,6 +123,7 @@ | |||
132 | 123 | ||
133 | #define MX51_GPU2D_BASE_ADDR 0xd0000000 | 124 | #define MX51_GPU2D_BASE_ADDR 0xd0000000 |
134 | #define MX51_TZIC_BASE_ADDR 0xe0000000 | 125 | #define MX51_TZIC_BASE_ADDR 0xe0000000 |
126 | #define MX51_TZIC_SIZE SZ_16K | ||
135 | 127 | ||
136 | #define MX51_IO_P2V(x) IMX_IO_P2V(x) | 128 | #define MX51_IO_P2V(x) IMX_IO_P2V(x) |
137 | #define MX51_IO_ADDRESS(x) IOMEM(MX51_IO_P2V(x)) | 129 | #define MX51_IO_ADDRESS(x) IOMEM(MX51_IO_P2V(x)) |
@@ -240,117 +232,114 @@ | |||
240 | /* | 232 | /* |
241 | * Interrupt numbers | 233 | * Interrupt numbers |
242 | */ | 234 | */ |
243 | #define MX51_MXC_INT_BASE 0 | 235 | #define MX51_INT_BASE 0 |
244 | #define MX51_MXC_INT_RESV0 0 | 236 | #define MX51_INT_RESV0 0 |
245 | #define MX51_INT_ESDHC1 1 | 237 | #define MX51_INT_ESDHC1 1 |
246 | #define MX51_INT_ESDHC2 2 | 238 | #define MX51_INT_ESDHC2 2 |
247 | #define MX51_INT_ESDHC3 3 | 239 | #define MX51_INT_ESDHC3 3 |
248 | #define MX51_INT_ESDHC4 4 | 240 | #define MX51_INT_ESDHC4 4 |
249 | #define MX51_MXC_INT_RESV5 5 | 241 | #define MX51_INT_RESV5 5 |
250 | #define MX51_INT_SDMA 6 | 242 | #define MX51_INT_SDMA 6 |
251 | #define MX51_MXC_INT_IOMUX 7 | 243 | #define MX51_INT_IOMUX 7 |
252 | #define MX51_INT_NFC 8 | 244 | #define MX51_INT_NFC 8 |
253 | #define MX51_MXC_INT_VPU 9 | 245 | #define MX51_INT_VPU 9 |
254 | #define MX51_INT_IPU_ERR 10 | 246 | #define MX51_INT_IPU_ERR 10 |
255 | #define MX51_INT_IPU_SYN 11 | 247 | #define MX51_INT_IPU_SYN 11 |
256 | #define MX51_MXC_INT_GPU 12 | 248 | #define MX51_INT_GPU 12 |
257 | #define MX51_MXC_INT_RESV13 13 | 249 | #define MX51_INT_RESV13 13 |
258 | #define MX51_MXC_INT_USB_H1 14 | 250 | #define MX51_INT_USB_HS1 14 |
259 | #define MX51_MXC_INT_EMI 15 | 251 | #define MX51_INT_EMI 15 |
260 | #define MX51_MXC_INT_USB_H2 16 | 252 | #define MX51_INT_USB_HS2 16 |
261 | #define MX51_MXC_INT_USB_H3 17 | 253 | #define MX51_INT_USB_HS3 17 |
262 | #define MX51_MXC_INT_USB_OTG 18 | 254 | #define MX51_INT_USB_OTG 18 |
263 | #define MX51_MXC_INT_SAHARA_H0 19 | 255 | #define MX51_INT_SAHARA_H0 19 |
264 | #define MX51_MXC_INT_SAHARA_H1 20 | 256 | #define MX51_INT_SAHARA_H1 20 |
265 | #define MX51_MXC_INT_SCC_SMN 21 | 257 | #define MX51_INT_SCC_SMN 21 |
266 | #define MX51_MXC_INT_SCC_STZ 22 | 258 | #define MX51_INT_SCC_STZ 22 |
267 | #define MX51_MXC_INT_SCC_SCM 23 | 259 | #define MX51_INT_SCC_SCM 23 |
268 | #define MX51_MXC_INT_SRTC_NTZ 24 | 260 | #define MX51_INT_SRTC_NTZ 24 |
269 | #define MX51_MXC_INT_SRTC_TZ 25 | 261 | #define MX51_INT_SRTC_TZ 25 |
270 | #define MX51_MXC_INT_RTIC 26 | 262 | #define MX51_INT_RTIC 26 |
271 | #define MX51_MXC_INT_CSU 27 | 263 | #define MX51_INT_CSU 27 |
272 | #define MX51_MXC_INT_SLIM_B 28 | 264 | #define MX51_INT_SLIM_B 28 |
273 | #define MX51_INT_SSI1 29 | 265 | #define MX51_INT_SSI1 29 |
274 | #define MX51_INT_SSI2 30 | 266 | #define MX51_INT_SSI2 30 |
275 | #define MX51_INT_UART1 31 | 267 | #define MX51_INT_UART1 31 |
276 | #define MX51_INT_UART2 32 | 268 | #define MX51_INT_UART2 32 |
277 | #define MX51_INT_UART3 33 | 269 | #define MX51_INT_UART3 33 |
278 | #define MX51_MXC_INT_RESV34 34 | 270 | #define MX51_INT_RESV34 34 |
279 | #define MX51_MXC_INT_RESV35 35 | 271 | #define MX51_INT_RESV35 35 |
280 | #define MX51_INT_ECSPI1 36 | 272 | #define MX51_INT_ECSPI1 36 |
281 | #define MX51_INT_ECSPI2 37 | 273 | #define MX51_INT_ECSPI2 37 |
282 | #define MX51_INT_CSPI 38 | 274 | #define MX51_INT_CSPI 38 |
283 | #define MX51_MXC_INT_GPT 39 | 275 | #define MX51_INT_GPT 39 |
284 | #define MX51_MXC_INT_EPIT1 40 | 276 | #define MX51_INT_EPIT1 40 |
285 | #define MX51_MXC_INT_EPIT2 41 | 277 | #define MX51_INT_EPIT2 41 |
286 | #define MX51_MXC_INT_GPIO1_INT7 42 | 278 | #define MX51_INT_GPIO1_INT7 42 |
287 | #define MX51_MXC_INT_GPIO1_INT6 43 | 279 | #define MX51_INT_GPIO1_INT6 43 |
288 | #define MX51_MXC_INT_GPIO1_INT5 44 | 280 | #define MX51_INT_GPIO1_INT5 44 |
289 | #define MX51_MXC_INT_GPIO1_INT4 45 | 281 | #define MX51_INT_GPIO1_INT4 45 |
290 | #define MX51_MXC_INT_GPIO1_INT3 46 | 282 | #define MX51_INT_GPIO1_INT3 46 |
291 | #define MX51_MXC_INT_GPIO1_INT2 47 | 283 | #define MX51_INT_GPIO1_INT2 47 |
292 | #define MX51_MXC_INT_GPIO1_INT1 48 | 284 | #define MX51_INT_GPIO1_INT1 48 |
293 | #define MX51_MXC_INT_GPIO1_INT0 49 | 285 | #define MX51_INT_GPIO1_INT0 49 |
294 | #define MX51_MXC_INT_GPIO1_LOW 50 | 286 | #define MX51_INT_GPIO1_LOW 50 |
295 | #define MX51_MXC_INT_GPIO1_HIGH 51 | 287 | #define MX51_INT_GPIO1_HIGH 51 |
296 | #define MX51_MXC_INT_GPIO2_LOW 52 | 288 | #define MX51_INT_GPIO2_LOW 52 |
297 | #define MX51_MXC_INT_GPIO2_HIGH 53 | 289 | #define MX51_INT_GPIO2_HIGH 53 |
298 | #define MX51_MXC_INT_GPIO3_LOW 54 | 290 | #define MX51_INT_GPIO3_LOW 54 |
299 | #define MX51_MXC_INT_GPIO3_HIGH 55 | 291 | #define MX51_INT_GPIO3_HIGH 55 |
300 | #define MX51_MXC_INT_GPIO4_LOW 56 | 292 | #define MX51_INT_GPIO4_LOW 56 |
301 | #define MX51_MXC_INT_GPIO4_HIGH 57 | 293 | #define MX51_INT_GPIO4_HIGH 57 |
302 | #define MX51_MXC_INT_WDOG1 58 | 294 | #define MX51_INT_WDOG1 58 |
303 | #define MX51_MXC_INT_WDOG2 59 | 295 | #define MX51_INT_WDOG2 59 |
304 | #define MX51_INT_KPP 60 | 296 | #define MX51_INT_KPP 60 |
305 | #define MX51_INT_PWM1 61 | 297 | #define MX51_INT_PWM1 61 |
306 | #define MX51_INT_I2C1 62 | 298 | #define MX51_INT_I2C1 62 |
307 | #define MX51_INT_I2C2 63 | 299 | #define MX51_INT_I2C2 63 |
308 | #define MX51_MXC_INT_HS_I2C 64 | 300 | #define MX51_INT_HS_I2C 64 |
309 | #define MX51_MXC_INT_RESV65 65 | 301 | #define MX51_INT_RESV65 65 |
310 | #define MX51_MXC_INT_RESV66 66 | 302 | #define MX51_INT_RESV66 66 |
311 | #define MX51_MXC_INT_SIM_IPB 67 | 303 | #define MX51_INT_SIM_IPB 67 |
312 | #define MX51_MXC_INT_SIM_DAT 68 | 304 | #define MX51_INT_SIM_DAT 68 |
313 | #define MX51_MXC_INT_IIM 69 | 305 | #define MX51_INT_IIM 69 |
314 | #define MX51_MXC_INT_ATA 70 | 306 | #define MX51_INT_ATA 70 |
315 | #define MX51_MXC_INT_CCM1 71 | 307 | #define MX51_INT_CCM1 71 |
316 | #define MX51_MXC_INT_CCM2 72 | 308 | #define MX51_INT_CCM2 72 |
317 | #define MX51_MXC_INT_GPC1 73 | 309 | #define MX51_INT_GPC1 73 |
318 | #define MX51_MXC_INT_GPC2 74 | 310 | #define MX51_INT_GPC2 74 |
319 | #define MX51_MXC_INT_SRC 75 | 311 | #define MX51_INT_SRC 75 |
320 | #define MX51_MXC_INT_NM 76 | 312 | #define MX51_INT_NM 76 |
321 | #define MX51_MXC_INT_PMU 77 | 313 | #define MX51_INT_PMU 77 |
322 | #define MX51_MXC_INT_CTI_IRQ 78 | 314 | #define MX51_INT_CTI_IRQ 78 |
323 | #define MX51_MXC_INT_CTI1_TG0 79 | 315 | #define MX51_INT_CTI1_TG0 79 |
324 | #define MX51_MXC_INT_CTI1_TG1 80 | 316 | #define MX51_INT_CTI1_TG1 80 |
325 | #define MX51_MXC_INT_MCG_ERR 81 | 317 | #define MX51_INT_MCG_ERR 81 |
326 | #define MX51_MXC_INT_MCG_TMR 82 | 318 | #define MX51_INT_MCG_TMR 82 |
327 | #define MX51_MXC_INT_MCG_FUNC 83 | 319 | #define MX51_INT_MCG_FUNC 83 |
328 | #define MX51_MXC_INT_GPU2_IRQ 84 | 320 | #define MX51_INT_GPU2_IRQ 84 |
329 | #define MX51_MXC_INT_GPU2_BUSY 85 | 321 | #define MX51_INT_GPU2_BUSY 85 |
330 | #define MX51_MXC_INT_RESV86 86 | 322 | #define MX51_INT_RESV86 86 |
331 | #define MX51_INT_FEC 87 | 323 | #define MX51_INT_FEC 87 |
332 | #define MX51_MXC_INT_OWIRE 88 | 324 | #define MX51_INT_OWIRE 88 |
333 | #define MX51_MXC_INT_CTI1_TG2 89 | 325 | #define MX51_INT_CTI1_TG2 89 |
334 | #define MX51_MXC_INT_SJC 90 | 326 | #define MX51_INT_SJC 90 |
335 | #define MX51_MXC_INT_SPDIF 91 | 327 | #define MX51_INT_SPDIF 91 |
336 | #define MX51_MXC_INT_TVE 92 | 328 | #define MX51_INT_TVE 92 |
337 | #define MX51_MXC_INT_FIRI 93 | 329 | #define MX51_INT_FIRI 93 |
338 | #define MX51_INT_PWM2 94 | 330 | #define MX51_INT_PWM2 94 |
339 | #define MX51_MXC_INT_SLIM_EXP 95 | 331 | #define MX51_INT_SLIM_EXP 95 |
340 | #define MX51_INT_SSI3 96 | 332 | #define MX51_INT_SSI3 96 |
341 | #define MX51_MXC_INT_EMI_BOOT 97 | 333 | #define MX51_INT_EMI_BOOT 97 |
342 | #define MX51_MXC_INT_CTI1_TG3 98 | 334 | #define MX51_INT_CTI1_TG3 98 |
343 | #define MX51_MXC_INT_SMC_RX 99 | 335 | #define MX51_INT_SMC_RX 99 |
344 | #define MX51_MXC_INT_VPU_IDLE 100 | 336 | #define MX51_INT_VPU_IDLE 100 |
345 | #define MX51_MXC_INT_EMI_NFC 101 | 337 | #define MX51_INT_EMI_NFC 101 |
346 | #define MX51_MXC_INT_GPU_IDLE 102 | 338 | #define MX51_INT_GPU_IDLE 102 |
347 | 339 | ||
348 | #if !defined(__ASSEMBLY__) && !defined(__MXC_BOOT_UNCOMPRESS) | 340 | #if !defined(__ASSEMBLY__) && !defined(__MXC_BOOT_UNCOMPRESS) |
349 | extern int mx51_revision(void); | 341 | extern int mx51_revision(void); |
350 | extern void mx51_display_revision(void); | 342 | extern void mx51_display_revision(void); |
351 | #endif | 343 | #endif |
352 | 344 | ||
353 | /* tape-out 1 defines */ | ||
354 | #define MX51_TZIC_BASE_ADDR_TO1 0x8fffc000 | ||
355 | |||
356 | #endif /* ifndef __MACH_MX51_H__ */ | 345 | #endif /* ifndef __MACH_MX51_H__ */ |
diff --git a/arch/arm/plat-mxc/include/mach/mx53.h b/arch/arm/plat-mxc/include/mach/mx53.h index 5e3c3236ebf3..a37e8c353994 100644 --- a/arch/arm/plat-mxc/include/mach/mx53.h +++ b/arch/arm/plat-mxc/include/mach/mx53.h | |||
@@ -9,6 +9,7 @@ | |||
9 | 9 | ||
10 | /* TZIC */ | 10 | /* TZIC */ |
11 | #define MX53_TZIC_BASE_ADDR 0x0FFFC000 | 11 | #define MX53_TZIC_BASE_ADDR 0x0FFFC000 |
12 | #define MX53_TZIC_SIZE SZ_16K | ||
12 | 13 | ||
13 | /* | 14 | /* |
14 | * AHCI SATA | 15 | * AHCI SATA |
diff --git a/arch/arm/plat-mxc/include/mach/mxc.h b/arch/arm/plat-mxc/include/mach/mxc.h index 09879235a9f5..00a78193c681 100644 --- a/arch/arm/plat-mxc/include/mach/mxc.h +++ b/arch/arm/plat-mxc/include/mach/mxc.h | |||
@@ -183,13 +183,6 @@ struct cpu_op { | |||
183 | }; | 183 | }; |
184 | 184 | ||
185 | int tzic_enable_wake(int is_idle); | 185 | int tzic_enable_wake(int is_idle); |
186 | enum mxc_cpu_pwr_mode { | ||
187 | WAIT_CLOCKED, /* wfi only */ | ||
188 | WAIT_UNCLOCKED, /* WAIT */ | ||
189 | WAIT_UNCLOCKED_POWER_OFF, /* WAIT + SRPG */ | ||
190 | STOP_POWER_ON, /* just STOP */ | ||
191 | STOP_POWER_OFF, /* STOP + SRPG */ | ||
192 | }; | ||
193 | 186 | ||
194 | extern struct cpu_op *(*get_cpu_op)(int *op); | 187 | extern struct cpu_op *(*get_cpu_op)(int *op); |
195 | #endif | 188 | #endif |
diff --git a/arch/arm/plat-mxc/include/mach/system.h b/arch/arm/plat-mxc/include/mach/system.h index 51f02a9d41a3..cf88b3593fba 100644 --- a/arch/arm/plat-mxc/include/mach/system.h +++ b/arch/arm/plat-mxc/include/mach/system.h | |||
@@ -17,41 +17,12 @@ | |||
17 | #ifndef __ASM_ARCH_MXC_SYSTEM_H__ | 17 | #ifndef __ASM_ARCH_MXC_SYSTEM_H__ |
18 | #define __ASM_ARCH_MXC_SYSTEM_H__ | 18 | #define __ASM_ARCH_MXC_SYSTEM_H__ |
19 | 19 | ||
20 | #include <mach/hardware.h> | 20 | extern void (*imx_idle)(void); |
21 | #include <mach/common.h> | ||
22 | |||
23 | extern void mx5_cpu_lp_set(enum mxc_cpu_pwr_mode mode); | ||
24 | 21 | ||
25 | static inline void arch_idle(void) | 22 | static inline void arch_idle(void) |
26 | { | 23 | { |
27 | /* fix i.MX31 errata TLSbo65953 and i.MX35 errata ENGcm09472 */ | 24 | if (imx_idle != NULL) |
28 | if (cpu_is_mx31() || cpu_is_mx35()) { | 25 | (imx_idle)(); |
29 | unsigned long reg = 0; | ||
30 | __asm__ __volatile__( | ||
31 | /* disable I and D cache */ | ||
32 | "mrc p15, 0, %0, c1, c0, 0\n" | ||
33 | "bic %0, %0, #0x00001000\n" | ||
34 | "bic %0, %0, #0x00000004\n" | ||
35 | "mcr p15, 0, %0, c1, c0, 0\n" | ||
36 | /* invalidate I cache */ | ||
37 | "mov %0, #0\n" | ||
38 | "mcr p15, 0, %0, c7, c5, 0\n" | ||
39 | /* clear and invalidate D cache */ | ||
40 | "mov %0, #0\n" | ||
41 | "mcr p15, 0, %0, c7, c14, 0\n" | ||
42 | /* WFI */ | ||
43 | "mov %0, #0\n" | ||
44 | "mcr p15, 0, %0, c7, c0, 4\n" | ||
45 | "nop\n" "nop\n" "nop\n" "nop\n" | ||
46 | "nop\n" "nop\n" "nop\n" | ||
47 | /* enable I and D cache */ | ||
48 | "mrc p15, 0, %0, c1, c0, 0\n" | ||
49 | "orr %0, %0, #0x00001000\n" | ||
50 | "orr %0, %0, #0x00000004\n" | ||
51 | "mcr p15, 0, %0, c1, c0, 0\n" | ||
52 | : "=r" (reg)); | ||
53 | } else if (cpu_is_mx51()) | ||
54 | mx5_cpu_lp_set(WAIT_UNCLOCKED_POWER_OFF); | ||
55 | else | 26 | else |
56 | cpu_do_idle(); | 27 | cpu_do_idle(); |
57 | } | 28 | } |
diff --git a/arch/arm/plat-mxc/system.c b/arch/arm/plat-mxc/system.c index 8024f2ac177c..9dad8dcc2ea9 100644 --- a/arch/arm/plat-mxc/system.c +++ b/arch/arm/plat-mxc/system.c | |||
@@ -28,6 +28,9 @@ | |||
28 | #include <asm/system.h> | 28 | #include <asm/system.h> |
29 | #include <asm/mach-types.h> | 29 | #include <asm/mach-types.h> |
30 | 30 | ||
31 | void (*imx_idle)(void) = NULL; | ||
32 | void __iomem *(*imx_ioremap)(unsigned long, size_t, unsigned int) = NULL; | ||
33 | |||
31 | static void __iomem *wdog_base; | 34 | static void __iomem *wdog_base; |
32 | 35 | ||
33 | /* | 36 | /* |
diff --git a/arch/arm/plat-nomadik/include/plat/pincfg.h b/arch/arm/plat-nomadik/include/plat/pincfg.h index 05a3936ae6d1..22cb97d2d8ad 100644 --- a/arch/arm/plat-nomadik/include/plat/pincfg.h +++ b/arch/arm/plat-nomadik/include/plat/pincfg.h | |||
@@ -37,7 +37,6 @@ | |||
37 | * SLPM value = same as normal | 37 | * SLPM value = same as normal |
38 | * | 38 | * |
39 | * PIN_CFG - default config with alternate function | 39 | * PIN_CFG - default config with alternate function |
40 | * PIN_CFG_PULL - default config with alternate function and pull up/down | ||
41 | */ | 40 | */ |
42 | 41 | ||
43 | typedef unsigned long pin_cfg_t; | 42 | typedef unsigned long pin_cfg_t; |
@@ -133,10 +132,6 @@ typedef unsigned long pin_cfg_t; | |||
133 | (PIN_CFG_DEFAULT |\ | 132 | (PIN_CFG_DEFAULT |\ |
134 | (PIN_NUM(num) | PIN_##alt | PIN_OUTPUT_##val)) | 133 | (PIN_NUM(num) | PIN_##alt | PIN_OUTPUT_##val)) |
135 | 134 | ||
136 | #define PIN_CFG_PULL(num, alt, pull) \ | ||
137 | ((PIN_CFG_DEFAULT & ~PIN_PULL_MASK) |\ | ||
138 | (PIN_NUM(num) | PIN_##alt | PIN_PULL_##pull)) | ||
139 | |||
140 | extern int nmk_config_pin(pin_cfg_t cfg, bool sleep); | 135 | extern int nmk_config_pin(pin_cfg_t cfg, bool sleep); |
141 | extern int nmk_config_pins(pin_cfg_t *cfgs, int num); | 136 | extern int nmk_config_pins(pin_cfg_t *cfgs, int num); |
142 | extern int nmk_config_pins_sleep(pin_cfg_t *cfgs, int num); | 137 | extern int nmk_config_pins_sleep(pin_cfg_t *cfgs, int num); |
diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c index ea28f98d5d6a..bd9a06b3ee89 100644 --- a/arch/arm/plat-omap/devices.c +++ b/arch/arm/plat-omap/devices.c | |||
@@ -26,54 +26,8 @@ | |||
26 | #include <plat/mmc.h> | 26 | #include <plat/mmc.h> |
27 | #include <mach/gpio.h> | 27 | #include <mach/gpio.h> |
28 | #include <plat/menelaus.h> | 28 | #include <plat/menelaus.h> |
29 | #include <plat/mcbsp.h> | ||
30 | #include <plat/omap44xx.h> | 29 | #include <plat/omap44xx.h> |
31 | 30 | ||
32 | /*-------------------------------------------------------------------------*/ | ||
33 | |||
34 | #if defined(CONFIG_OMAP_MCBSP) || defined(CONFIG_OMAP_MCBSP_MODULE) | ||
35 | |||
36 | static struct platform_device **omap_mcbsp_devices; | ||
37 | |||
38 | void omap_mcbsp_register_board_cfg(struct resource *res, int res_count, | ||
39 | struct omap_mcbsp_platform_data *config, int size) | ||
40 | { | ||
41 | int i; | ||
42 | |||
43 | omap_mcbsp_devices = kzalloc(size * sizeof(struct platform_device *), | ||
44 | GFP_KERNEL); | ||
45 | if (!omap_mcbsp_devices) { | ||
46 | printk(KERN_ERR "Could not register McBSP devices\n"); | ||
47 | return; | ||
48 | } | ||
49 | |||
50 | for (i = 0; i < size; i++) { | ||
51 | struct platform_device *new_mcbsp; | ||
52 | int ret; | ||
53 | |||
54 | new_mcbsp = platform_device_alloc("omap-mcbsp", i + 1); | ||
55 | if (!new_mcbsp) | ||
56 | continue; | ||
57 | platform_device_add_resources(new_mcbsp, &res[i * res_count], | ||
58 | res_count); | ||
59 | new_mcbsp->dev.platform_data = &config[i]; | ||
60 | ret = platform_device_add(new_mcbsp); | ||
61 | if (ret) { | ||
62 | platform_device_put(new_mcbsp); | ||
63 | continue; | ||
64 | } | ||
65 | omap_mcbsp_devices[i] = new_mcbsp; | ||
66 | } | ||
67 | } | ||
68 | |||
69 | #else | ||
70 | void omap_mcbsp_register_board_cfg(struct resource *res, int res_count, | ||
71 | struct omap_mcbsp_platform_data *config, int size) | ||
72 | { } | ||
73 | #endif | ||
74 | |||
75 | /*-------------------------------------------------------------------------*/ | ||
76 | |||
77 | #if defined(CONFIG_SND_OMAP_SOC_MCPDM) || \ | 31 | #if defined(CONFIG_SND_OMAP_SOC_MCPDM) || \ |
78 | defined(CONFIG_SND_OMAP_SOC_MCPDM_MODULE) | 32 | defined(CONFIG_SND_OMAP_SOC_MCPDM_MODULE) |
79 | 33 | ||
diff --git a/arch/arm/plat-omap/i2c.c b/arch/arm/plat-omap/i2c.c index 3341ca4703e9..0c7caf2458b4 100644 --- a/arch/arm/plat-omap/i2c.c +++ b/arch/arm/plat-omap/i2c.c | |||
@@ -135,7 +135,7 @@ static inline int omap2_i2c_add_bus(int bus_id) | |||
135 | { | 135 | { |
136 | int l; | 136 | int l; |
137 | struct omap_hwmod *oh; | 137 | struct omap_hwmod *oh; |
138 | struct omap_device *od; | 138 | struct platform_device *pdev; |
139 | char oh_name[MAX_OMAP_I2C_HWMOD_NAME_LEN]; | 139 | char oh_name[MAX_OMAP_I2C_HWMOD_NAME_LEN]; |
140 | struct omap_i2c_bus_platform_data *pdata; | 140 | struct omap_i2c_bus_platform_data *pdata; |
141 | 141 | ||
@@ -160,12 +160,12 @@ static inline int omap2_i2c_add_bus(int bus_id) | |||
160 | */ | 160 | */ |
161 | if (cpu_is_omap34xx()) | 161 | if (cpu_is_omap34xx()) |
162 | pdata->set_mpu_wkup_lat = omap_pm_set_max_mpu_wakeup_lat_compat; | 162 | pdata->set_mpu_wkup_lat = omap_pm_set_max_mpu_wakeup_lat_compat; |
163 | od = omap_device_build(name, bus_id, oh, pdata, | 163 | pdev = omap_device_build(name, bus_id, oh, pdata, |
164 | sizeof(struct omap_i2c_bus_platform_data), | 164 | sizeof(struct omap_i2c_bus_platform_data), |
165 | omap_i2c_latency, ARRAY_SIZE(omap_i2c_latency), 0); | 165 | omap_i2c_latency, ARRAY_SIZE(omap_i2c_latency), 0); |
166 | WARN(IS_ERR(od), "Could not build omap_device for %s\n", name); | 166 | WARN(IS_ERR(pdev), "Could not build omap_device for %s\n", name); |
167 | 167 | ||
168 | return PTR_ERR(od); | 168 | return PTR_ERR(pdev); |
169 | } | 169 | } |
170 | #else | 170 | #else |
171 | static inline int omap2_i2c_add_bus(int bus_id) | 171 | static inline int omap2_i2c_add_bus(int bus_id) |
diff --git a/arch/arm/plat-omap/include/plat/clock.h b/arch/arm/plat-omap/include/plat/clock.h index df4b9683f17f..197ca03c3f7d 100644 --- a/arch/arm/plat-omap/include/plat/clock.h +++ b/arch/arm/plat-omap/include/plat/clock.h | |||
@@ -80,8 +80,6 @@ struct clkops { | |||
80 | * | 80 | * |
81 | * @div is the divisor that should be applied to the parent clock's rate | 81 | * @div is the divisor that should be applied to the parent clock's rate |
82 | * to produce the current clock's rate. | 82 | * to produce the current clock's rate. |
83 | * | ||
84 | * XXX @flags probably should be replaced with an struct omap_chip. | ||
85 | */ | 83 | */ |
86 | struct clksel_rate { | 84 | struct clksel_rate { |
87 | u32 val; | 85 | u32 val; |
diff --git a/arch/arm/plat-omap/include/plat/common.h b/arch/arm/plat-omap/include/plat/common.h index 4564cc697d7f..abda2c7e499b 100644 --- a/arch/arm/plat-omap/include/plat/common.h +++ b/arch/arm/plat-omap/include/plat/common.h | |||
@@ -45,6 +45,15 @@ extern unsigned long long notrace omap_32k_sched_clock(void); | |||
45 | 45 | ||
46 | extern void omap_reserve(void); | 46 | extern void omap_reserve(void); |
47 | 47 | ||
48 | void omap2420_init_early(void); | ||
49 | void omap2430_init_early(void); | ||
50 | void omap3430_init_early(void); | ||
51 | void omap35xx_init_early(void); | ||
52 | void omap3630_init_early(void); | ||
53 | void am35xx_init_early(void); | ||
54 | void ti816x_init_early(void); | ||
55 | void omap4430_init_early(void); | ||
56 | |||
48 | /* | 57 | /* |
49 | * IO bases for various OMAP processors | 58 | * IO bases for various OMAP processors |
50 | * Except the tap base, rest all the io bases | 59 | * Except the tap base, rest all the io bases |
@@ -74,7 +83,11 @@ void omap2_set_globals_sdrc(struct omap_globals *); | |||
74 | void omap2_set_globals_control(struct omap_globals *); | 83 | void omap2_set_globals_control(struct omap_globals *); |
75 | void omap2_set_globals_prcm(struct omap_globals *); | 84 | void omap2_set_globals_prcm(struct omap_globals *); |
76 | 85 | ||
86 | void omap242x_map_io(void); | ||
87 | void omap243x_map_io(void); | ||
77 | void omap3_map_io(void); | 88 | void omap3_map_io(void); |
89 | void omap4_map_io(void); | ||
90 | |||
78 | 91 | ||
79 | /** | 92 | /** |
80 | * omap_test_timeout - busy-loop, testing a condition | 93 | * omap_test_timeout - busy-loop, testing a condition |
diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h index 67b3d75884cd..2f9026942229 100644 --- a/arch/arm/plat-omap/include/plat/cpu.h +++ b/arch/arm/plat-omap/include/plat/cpu.h | |||
@@ -44,13 +44,6 @@ | |||
44 | 44 | ||
45 | int omap_type(void); | 45 | int omap_type(void); |
46 | 46 | ||
47 | struct omap_chip_id { | ||
48 | u16 oc; | ||
49 | u8 type; | ||
50 | }; | ||
51 | |||
52 | #define OMAP_CHIP_INIT(x) { .oc = x } | ||
53 | |||
54 | /* | 47 | /* |
55 | * omap_rev bits: | 48 | * omap_rev bits: |
56 | * CPU id bits (0730, 1510, 1710, 2422...) [31:16] | 49 | * CPU id bits (0730, 1510, 1710, 2422...) [31:16] |
@@ -60,19 +53,6 @@ struct omap_chip_id { | |||
60 | unsigned int omap_rev(void); | 53 | unsigned int omap_rev(void); |
61 | 54 | ||
62 | /* | 55 | /* |
63 | * Define CPU revision bits | ||
64 | * | ||
65 | * Verbose meaning of the revision bits may be different for a silicon | ||
66 | * family. This difference can be handled separately. | ||
67 | */ | ||
68 | #define OMAP_REVBITS_00 0x00 | ||
69 | #define OMAP_REVBITS_01 0x01 | ||
70 | #define OMAP_REVBITS_02 0x02 | ||
71 | #define OMAP_REVBITS_03 0x03 | ||
72 | #define OMAP_REVBITS_04 0x04 | ||
73 | #define OMAP_REVBITS_05 0x05 | ||
74 | |||
75 | /* | ||
76 | * Get the CPU revision for OMAP devices | 56 | * Get the CPU revision for OMAP devices |
77 | */ | 57 | */ |
78 | #define GET_OMAP_REVISION() ((omap_rev() >> 8) & 0xff) | 58 | #define GET_OMAP_REVISION() ((omap_rev() >> 8) & 0xff) |
@@ -262,7 +242,7 @@ IS_OMAP_TYPE(2422, 0x2422) | |||
262 | IS_OMAP_TYPE(2423, 0x2423) | 242 | IS_OMAP_TYPE(2423, 0x2423) |
263 | IS_OMAP_TYPE(2430, 0x2430) | 243 | IS_OMAP_TYPE(2430, 0x2430) |
264 | IS_OMAP_TYPE(3430, 0x3430) | 244 | IS_OMAP_TYPE(3430, 0x3430) |
265 | IS_OMAP_TYPE(3505, 0x3505) | 245 | IS_OMAP_TYPE(3505, 0x3517) |
266 | IS_OMAP_TYPE(3517, 0x3517) | 246 | IS_OMAP_TYPE(3517, 0x3517) |
267 | 247 | ||
268 | #define cpu_is_omap310() 0 | 248 | #define cpu_is_omap310() 0 |
@@ -354,8 +334,9 @@ IS_OMAP_TYPE(3517, 0x3517) | |||
354 | (!omap3_has_sgx()) && \ | 334 | (!omap3_has_sgx()) && \ |
355 | (omap3_has_iva())) | 335 | (omap3_has_iva())) |
356 | # define cpu_is_omap3530() (cpu_is_omap3430()) | 336 | # define cpu_is_omap3530() (cpu_is_omap3430()) |
357 | # define cpu_is_omap3505() is_omap3505() | ||
358 | # define cpu_is_omap3517() is_omap3517() | 337 | # define cpu_is_omap3517() is_omap3517() |
338 | # define cpu_is_omap3505() (cpu_is_omap3517() && \ | ||
339 | !omap3_has_sgx()) | ||
359 | # undef cpu_is_omap3630 | 340 | # undef cpu_is_omap3630 |
360 | # define cpu_is_omap3630() is_omap363x() | 341 | # define cpu_is_omap3630() is_omap363x() |
361 | # define cpu_is_ti816x() is_ti816x() | 342 | # define cpu_is_ti816x() is_ti816x() |
@@ -379,35 +360,31 @@ IS_OMAP_TYPE(3517, 0x3517) | |||
379 | /* Various silicon revisions for omap2 */ | 360 | /* Various silicon revisions for omap2 */ |
380 | #define OMAP242X_CLASS 0x24200024 | 361 | #define OMAP242X_CLASS 0x24200024 |
381 | #define OMAP2420_REV_ES1_0 OMAP242X_CLASS | 362 | #define OMAP2420_REV_ES1_0 OMAP242X_CLASS |
382 | #define OMAP2420_REV_ES2_0 (OMAP242X_CLASS | (OMAP_REVBITS_01 << 8)) | 363 | #define OMAP2420_REV_ES2_0 (OMAP242X_CLASS | (0x1 << 8)) |
383 | 364 | ||
384 | #define OMAP243X_CLASS 0x24300024 | 365 | #define OMAP243X_CLASS 0x24300024 |
385 | #define OMAP2430_REV_ES1_0 OMAP243X_CLASS | 366 | #define OMAP2430_REV_ES1_0 OMAP243X_CLASS |
386 | 367 | ||
387 | #define OMAP343X_CLASS 0x34300034 | 368 | #define OMAP343X_CLASS 0x34300034 |
388 | #define OMAP3430_REV_ES1_0 OMAP343X_CLASS | 369 | #define OMAP3430_REV_ES1_0 OMAP343X_CLASS |
389 | #define OMAP3430_REV_ES2_0 (OMAP343X_CLASS | (OMAP_REVBITS_01 << 8)) | 370 | #define OMAP3430_REV_ES2_0 (OMAP343X_CLASS | (0x1 << 8)) |
390 | #define OMAP3430_REV_ES2_1 (OMAP343X_CLASS | (OMAP_REVBITS_02 << 8)) | 371 | #define OMAP3430_REV_ES2_1 (OMAP343X_CLASS | (0x2 << 8)) |
391 | #define OMAP3430_REV_ES3_0 (OMAP343X_CLASS | (OMAP_REVBITS_03 << 8)) | 372 | #define OMAP3430_REV_ES3_0 (OMAP343X_CLASS | (0x3 << 8)) |
392 | #define OMAP3430_REV_ES3_1 (OMAP343X_CLASS | (OMAP_REVBITS_04 << 8)) | 373 | #define OMAP3430_REV_ES3_1 (OMAP343X_CLASS | (0x4 << 8)) |
393 | #define OMAP3430_REV_ES3_1_2 (OMAP343X_CLASS | (OMAP_REVBITS_05 << 8)) | 374 | #define OMAP3430_REV_ES3_1_2 (OMAP343X_CLASS | (0x5 << 8)) |
394 | 375 | ||
395 | #define OMAP363X_CLASS 0x36300034 | 376 | #define OMAP363X_CLASS 0x36300034 |
396 | #define OMAP3630_REV_ES1_0 OMAP363X_CLASS | 377 | #define OMAP3630_REV_ES1_0 OMAP363X_CLASS |
397 | #define OMAP3630_REV_ES1_1 (OMAP363X_CLASS | (OMAP_REVBITS_01 << 8)) | 378 | #define OMAP3630_REV_ES1_1 (OMAP363X_CLASS | (0x1 << 8)) |
398 | #define OMAP3630_REV_ES1_2 (OMAP363X_CLASS | (OMAP_REVBITS_02 << 8)) | 379 | #define OMAP3630_REV_ES1_2 (OMAP363X_CLASS | (0x2 << 8)) |
399 | 380 | ||
400 | #define OMAP35XX_CLASS 0x35000034 | 381 | #define OMAP3517_CLASS 0x35170034 |
401 | #define OMAP3503_REV(v) (OMAP35XX_CLASS | (0x3503 << 16) | (v << 8)) | 382 | #define OMAP3517_REV_ES1_0 OMAP3517_CLASS |
402 | #define OMAP3515_REV(v) (OMAP35XX_CLASS | (0x3515 << 16) | (v << 8)) | 383 | #define OMAP3517_REV_ES1_1 (OMAP3517_CLASS | (0x1 << 8)) |
403 | #define OMAP3525_REV(v) (OMAP35XX_CLASS | (0x3525 << 16) | (v << 8)) | ||
404 | #define OMAP3530_REV(v) (OMAP35XX_CLASS | (0x3530 << 16) | (v << 8)) | ||
405 | #define OMAP3505_REV(v) (OMAP35XX_CLASS | (0x3505 << 16) | (v << 8)) | ||
406 | #define OMAP3517_REV(v) (OMAP35XX_CLASS | (0x3517 << 16) | (v << 8)) | ||
407 | 384 | ||
408 | #define TI816X_CLASS 0x81600034 | 385 | #define TI816X_CLASS 0x81600034 |
409 | #define TI8168_REV_ES1_0 TI816X_CLASS | 386 | #define TI8168_REV_ES1_0 TI816X_CLASS |
410 | #define TI8168_REV_ES1_1 (TI816X_CLASS | (OMAP_REVBITS_01 << 8)) | 387 | #define TI8168_REV_ES1_1 (TI816X_CLASS | (0x1 << 8)) |
411 | 388 | ||
412 | #define OMAP443X_CLASS 0x44300044 | 389 | #define OMAP443X_CLASS 0x44300044 |
413 | #define OMAP4430_REV_ES1_0 (OMAP443X_CLASS | (0x10 << 8)) | 390 | #define OMAP4430_REV_ES1_0 (OMAP443X_CLASS | (0x10 << 8)) |
@@ -418,61 +395,6 @@ IS_OMAP_TYPE(3517, 0x3517) | |||
418 | #define OMAP446X_CLASS 0x44600044 | 395 | #define OMAP446X_CLASS 0x44600044 |
419 | #define OMAP4460_REV_ES1_0 (OMAP446X_CLASS | (0x10 << 8)) | 396 | #define OMAP4460_REV_ES1_0 (OMAP446X_CLASS | (0x10 << 8)) |
420 | 397 | ||
421 | /* | ||
422 | * omap_chip bits | ||
423 | * | ||
424 | * CHIP_IS_OMAP{2420,2430,3430} indicate that a particular structure is | ||
425 | * valid on all chips of that type. CHIP_IS_OMAP3430ES{1,2} indicates | ||
426 | * something that is only valid on that particular ES revision. | ||
427 | * | ||
428 | * These bits may be ORed together to indicate structures that are | ||
429 | * available on multiple chip types. | ||
430 | * | ||
431 | * To test whether a particular structure matches the current OMAP chip type, | ||
432 | * use omap_chip_is(). | ||
433 | * | ||
434 | */ | ||
435 | #define CHIP_IS_OMAP2420 (1 << 0) | ||
436 | #define CHIP_IS_OMAP2430 (1 << 1) | ||
437 | #define CHIP_IS_OMAP3430 (1 << 2) | ||
438 | #define CHIP_IS_OMAP3430ES1 (1 << 3) | ||
439 | #define CHIP_IS_OMAP3430ES2 (1 << 4) | ||
440 | #define CHIP_IS_OMAP3430ES3_0 (1 << 5) | ||
441 | #define CHIP_IS_OMAP3430ES3_1 (1 << 6) | ||
442 | #define CHIP_IS_OMAP3630ES1 (1 << 7) | ||
443 | #define CHIP_IS_OMAP4430ES1 (1 << 8) | ||
444 | #define CHIP_IS_OMAP3630ES1_1 (1 << 9) | ||
445 | #define CHIP_IS_OMAP3630ES1_2 (1 << 10) | ||
446 | #define CHIP_IS_OMAP4430ES2 (1 << 11) | ||
447 | #define CHIP_IS_OMAP4430ES2_1 (1 << 12) | ||
448 | #define CHIP_IS_OMAP4430ES2_2 (1 << 13) | ||
449 | #define CHIP_IS_TI816X (1 << 14) | ||
450 | #define CHIP_IS_OMAP4460ES1_0 (1 << 15) | ||
451 | |||
452 | #define CHIP_IS_OMAP24XX (CHIP_IS_OMAP2420 | CHIP_IS_OMAP2430) | ||
453 | |||
454 | #define CHIP_IS_OMAP4430 (CHIP_IS_OMAP4430ES1 | \ | ||
455 | CHIP_IS_OMAP4430ES2 | \ | ||
456 | CHIP_IS_OMAP4430ES2_1 | \ | ||
457 | CHIP_IS_OMAP4430ES2_2 | \ | ||
458 | CHIP_IS_OMAP4460ES1_0) | ||
459 | |||
460 | /* | ||
461 | * "GE" here represents "greater than or equal to" in terms of ES | ||
462 | * levels. So CHIP_GE_OMAP3430ES2 is intended to match all OMAP3430 | ||
463 | * chips at ES2 and beyond, but not, for example, any OMAP lines after | ||
464 | * OMAP3. | ||
465 | */ | ||
466 | #define CHIP_GE_OMAP3430ES2 (CHIP_IS_OMAP3430ES2 | \ | ||
467 | CHIP_IS_OMAP3430ES3_0 | \ | ||
468 | CHIP_GE_OMAP3430ES3_1) | ||
469 | #define CHIP_GE_OMAP3430ES3_1 (CHIP_IS_OMAP3430ES3_1 | \ | ||
470 | CHIP_IS_OMAP3630ES1 | \ | ||
471 | CHIP_GE_OMAP3630ES1_1) | ||
472 | #define CHIP_GE_OMAP3630ES1_1 (CHIP_IS_OMAP3630ES1_1 | \ | ||
473 | CHIP_IS_OMAP3630ES1_2) | ||
474 | |||
475 | int omap_chip_is(struct omap_chip_id oci); | ||
476 | void omap2_check_revision(void); | 398 | void omap2_check_revision(void); |
477 | 399 | ||
478 | /* | 400 | /* |
diff --git a/arch/arm/plat-omap/include/plat/io.h b/arch/arm/plat-omap/include/plat/io.h index d72ec85c97e6..a93a00db93da 100644 --- a/arch/arm/plat-omap/include/plat/io.h +++ b/arch/arm/plat-omap/include/plat/io.h | |||
@@ -300,7 +300,7 @@ static inline void omap44xx_map_common_io(void) | |||
300 | #endif | 300 | #endif |
301 | 301 | ||
302 | extern void omap2_init_common_infrastructure(void); | 302 | extern void omap2_init_common_infrastructure(void); |
303 | extern void omap2_init_common_devices(struct omap_sdrc_params *sdrc_cs0, | 303 | extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0, |
304 | struct omap_sdrc_params *sdrc_cs1); | 304 | struct omap_sdrc_params *sdrc_cs1); |
305 | 305 | ||
306 | #define __arch_ioremap omap_ioremap | 306 | #define __arch_ioremap omap_ioremap |
@@ -309,6 +309,8 @@ extern void omap2_init_common_devices(struct omap_sdrc_params *sdrc_cs0, | |||
309 | void __iomem *omap_ioremap(unsigned long phys, size_t size, unsigned int type); | 309 | void __iomem *omap_ioremap(unsigned long phys, size_t size, unsigned int type); |
310 | void omap_iounmap(volatile void __iomem *addr); | 310 | void omap_iounmap(volatile void __iomem *addr); |
311 | 311 | ||
312 | extern void __init omap_init_consistent_dma_size(void); | ||
313 | |||
312 | #endif | 314 | #endif |
313 | 315 | ||
314 | #endif | 316 | #endif |
diff --git a/arch/arm/plat-omap/include/plat/mcbsp.h b/arch/arm/plat-omap/include/plat/mcbsp.h index 9882c657b2d4..8fa74e2c9d6e 100644 --- a/arch/arm/plat-omap/include/plat/mcbsp.h +++ b/arch/arm/plat-omap/include/plat/mcbsp.h | |||
@@ -25,9 +25,7 @@ | |||
25 | #define __ASM_ARCH_OMAP_MCBSP_H | 25 | #define __ASM_ARCH_OMAP_MCBSP_H |
26 | 26 | ||
27 | #include <linux/spinlock.h> | 27 | #include <linux/spinlock.h> |
28 | 28 | #include <linux/clk.h> | |
29 | #include <mach/hardware.h> | ||
30 | #include <plat/clock.h> | ||
31 | 29 | ||
32 | /* macro for building platform_device for McBSP ports */ | 30 | /* macro for building platform_device for McBSP ports */ |
33 | #define OMAP_MCBSP_PLATFORM_DEVICE(port_nr) \ | 31 | #define OMAP_MCBSP_PLATFORM_DEVICE(port_nr) \ |
@@ -40,104 +38,60 @@ static struct platform_device omap_mcbsp##port_nr = { \ | |||
40 | #define MCBSP_CONFIG_TYPE3 0x3 | 38 | #define MCBSP_CONFIG_TYPE3 0x3 |
41 | #define MCBSP_CONFIG_TYPE4 0x4 | 39 | #define MCBSP_CONFIG_TYPE4 0x4 |
42 | 40 | ||
43 | #define OMAP7XX_MCBSP1_BASE 0xfffb1000 | 41 | /* McBSP register numbers. Register address offset = num * reg_step */ |
44 | #define OMAP7XX_MCBSP2_BASE 0xfffb1800 | 42 | enum { |
45 | 43 | /* Common registers */ | |
46 | #define OMAP1510_MCBSP1_BASE 0xe1011800 | 44 | OMAP_MCBSP_REG_SPCR2 = 4, |
47 | #define OMAP1510_MCBSP2_BASE 0xfffb1000 | 45 | OMAP_MCBSP_REG_SPCR1, |
48 | #define OMAP1510_MCBSP3_BASE 0xe1017000 | 46 | OMAP_MCBSP_REG_RCR2, |
49 | 47 | OMAP_MCBSP_REG_RCR1, | |
50 | #define OMAP1610_MCBSP1_BASE 0xe1011800 | 48 | OMAP_MCBSP_REG_XCR2, |
51 | #define OMAP1610_MCBSP2_BASE 0xfffb1000 | 49 | OMAP_MCBSP_REG_XCR1, |
52 | #define OMAP1610_MCBSP3_BASE 0xe1017000 | 50 | OMAP_MCBSP_REG_SRGR2, |
53 | 51 | OMAP_MCBSP_REG_SRGR1, | |
54 | #ifdef CONFIG_ARCH_OMAP1 | 52 | OMAP_MCBSP_REG_MCR2, |
55 | 53 | OMAP_MCBSP_REG_MCR1, | |
56 | #define OMAP_MCBSP_REG_DRR2 0x00 | 54 | OMAP_MCBSP_REG_RCERA, |
57 | #define OMAP_MCBSP_REG_DRR1 0x02 | 55 | OMAP_MCBSP_REG_RCERB, |
58 | #define OMAP_MCBSP_REG_DXR2 0x04 | 56 | OMAP_MCBSP_REG_XCERA, |
59 | #define OMAP_MCBSP_REG_DXR1 0x06 | 57 | OMAP_MCBSP_REG_XCERB, |
60 | #define OMAP_MCBSP_REG_DRR 0x02 | 58 | OMAP_MCBSP_REG_PCR0, |
61 | #define OMAP_MCBSP_REG_DXR 0x06 | 59 | OMAP_MCBSP_REG_RCERC, |
62 | #define OMAP_MCBSP_REG_SPCR2 0x08 | 60 | OMAP_MCBSP_REG_RCERD, |
63 | #define OMAP_MCBSP_REG_SPCR1 0x0a | 61 | OMAP_MCBSP_REG_XCERC, |
64 | #define OMAP_MCBSP_REG_RCR2 0x0c | 62 | OMAP_MCBSP_REG_XCERD, |
65 | #define OMAP_MCBSP_REG_RCR1 0x0e | 63 | OMAP_MCBSP_REG_RCERE, |
66 | #define OMAP_MCBSP_REG_XCR2 0x10 | 64 | OMAP_MCBSP_REG_RCERF, |
67 | #define OMAP_MCBSP_REG_XCR1 0x12 | 65 | OMAP_MCBSP_REG_XCERE, |
68 | #define OMAP_MCBSP_REG_SRGR2 0x14 | 66 | OMAP_MCBSP_REG_XCERF, |
69 | #define OMAP_MCBSP_REG_SRGR1 0x16 | 67 | OMAP_MCBSP_REG_RCERG, |
70 | #define OMAP_MCBSP_REG_MCR2 0x18 | 68 | OMAP_MCBSP_REG_RCERH, |
71 | #define OMAP_MCBSP_REG_MCR1 0x1a | 69 | OMAP_MCBSP_REG_XCERG, |
72 | #define OMAP_MCBSP_REG_RCERA 0x1c | 70 | OMAP_MCBSP_REG_XCERH, |
73 | #define OMAP_MCBSP_REG_RCERB 0x1e | 71 | |
74 | #define OMAP_MCBSP_REG_XCERA 0x20 | 72 | /* OMAP1-OMAP2420 registers */ |
75 | #define OMAP_MCBSP_REG_XCERB 0x22 | 73 | OMAP_MCBSP_REG_DRR2 = 0, |
76 | #define OMAP_MCBSP_REG_PCR0 0x24 | 74 | OMAP_MCBSP_REG_DRR1, |
77 | #define OMAP_MCBSP_REG_RCERC 0x26 | 75 | OMAP_MCBSP_REG_DXR2, |
78 | #define OMAP_MCBSP_REG_RCERD 0x28 | 76 | OMAP_MCBSP_REG_DXR1, |
79 | #define OMAP_MCBSP_REG_XCERC 0x2A | 77 | |
80 | #define OMAP_MCBSP_REG_XCERD 0x2C | 78 | /* OMAP2430 and onwards */ |
81 | #define OMAP_MCBSP_REG_RCERE 0x2E | 79 | OMAP_MCBSP_REG_DRR = 0, |
82 | #define OMAP_MCBSP_REG_RCERF 0x30 | 80 | OMAP_MCBSP_REG_DXR = 2, |
83 | #define OMAP_MCBSP_REG_XCERE 0x32 | 81 | OMAP_MCBSP_REG_SYSCON = 35, |
84 | #define OMAP_MCBSP_REG_XCERF 0x34 | 82 | OMAP_MCBSP_REG_THRSH2, |
85 | #define OMAP_MCBSP_REG_RCERG 0x36 | 83 | OMAP_MCBSP_REG_THRSH1, |
86 | #define OMAP_MCBSP_REG_RCERH 0x38 | 84 | OMAP_MCBSP_REG_IRQST = 40, |
87 | #define OMAP_MCBSP_REG_XCERG 0x3A | 85 | OMAP_MCBSP_REG_IRQEN, |
88 | #define OMAP_MCBSP_REG_XCERH 0x3C | 86 | OMAP_MCBSP_REG_WAKEUPEN, |
89 | 87 | OMAP_MCBSP_REG_XCCR, | |
90 | /* Dummy defines, these are not available on omap1 */ | 88 | OMAP_MCBSP_REG_RCCR, |
91 | #define OMAP_MCBSP_REG_XCCR 0x00 | 89 | OMAP_MCBSP_REG_XBUFFSTAT, |
92 | #define OMAP_MCBSP_REG_RCCR 0x00 | 90 | OMAP_MCBSP_REG_RBUFFSTAT, |
93 | 91 | OMAP_MCBSP_REG_SSELCR, | |
94 | #else | 92 | }; |
95 | |||
96 | #define OMAP_MCBSP_REG_DRR2 0x00 | ||
97 | #define OMAP_MCBSP_REG_DRR1 0x04 | ||
98 | #define OMAP_MCBSP_REG_DXR2 0x08 | ||
99 | #define OMAP_MCBSP_REG_DXR1 0x0C | ||
100 | #define OMAP_MCBSP_REG_DRR 0x00 | ||
101 | #define OMAP_MCBSP_REG_DXR 0x08 | ||
102 | #define OMAP_MCBSP_REG_SPCR2 0x10 | ||
103 | #define OMAP_MCBSP_REG_SPCR1 0x14 | ||
104 | #define OMAP_MCBSP_REG_RCR2 0x18 | ||
105 | #define OMAP_MCBSP_REG_RCR1 0x1C | ||
106 | #define OMAP_MCBSP_REG_XCR2 0x20 | ||
107 | #define OMAP_MCBSP_REG_XCR1 0x24 | ||
108 | #define OMAP_MCBSP_REG_SRGR2 0x28 | ||
109 | #define OMAP_MCBSP_REG_SRGR1 0x2C | ||
110 | #define OMAP_MCBSP_REG_MCR2 0x30 | ||
111 | #define OMAP_MCBSP_REG_MCR1 0x34 | ||
112 | #define OMAP_MCBSP_REG_RCERA 0x38 | ||
113 | #define OMAP_MCBSP_REG_RCERB 0x3C | ||
114 | #define OMAP_MCBSP_REG_XCERA 0x40 | ||
115 | #define OMAP_MCBSP_REG_XCERB 0x44 | ||
116 | #define OMAP_MCBSP_REG_PCR0 0x48 | ||
117 | #define OMAP_MCBSP_REG_RCERC 0x4C | ||
118 | #define OMAP_MCBSP_REG_RCERD 0x50 | ||
119 | #define OMAP_MCBSP_REG_XCERC 0x54 | ||
120 | #define OMAP_MCBSP_REG_XCERD 0x58 | ||
121 | #define OMAP_MCBSP_REG_RCERE 0x5C | ||
122 | #define OMAP_MCBSP_REG_RCERF 0x60 | ||
123 | #define OMAP_MCBSP_REG_XCERE 0x64 | ||
124 | #define OMAP_MCBSP_REG_XCERF 0x68 | ||
125 | #define OMAP_MCBSP_REG_RCERG 0x6C | ||
126 | #define OMAP_MCBSP_REG_RCERH 0x70 | ||
127 | #define OMAP_MCBSP_REG_XCERG 0x74 | ||
128 | #define OMAP_MCBSP_REG_XCERH 0x78 | ||
129 | #define OMAP_MCBSP_REG_SYSCON 0x8C | ||
130 | #define OMAP_MCBSP_REG_THRSH2 0x90 | ||
131 | #define OMAP_MCBSP_REG_THRSH1 0x94 | ||
132 | #define OMAP_MCBSP_REG_IRQST 0xA0 | ||
133 | #define OMAP_MCBSP_REG_IRQEN 0xA4 | ||
134 | #define OMAP_MCBSP_REG_WAKEUPEN 0xA8 | ||
135 | #define OMAP_MCBSP_REG_XCCR 0xAC | ||
136 | #define OMAP_MCBSP_REG_RCCR 0xB0 | ||
137 | #define OMAP_MCBSP_REG_XBUFFSTAT 0xB4 | ||
138 | #define OMAP_MCBSP_REG_RBUFFSTAT 0xB8 | ||
139 | #define OMAP_MCBSP_REG_SSELCR 0xBC | ||
140 | 93 | ||
94 | /* OMAP3 sidetone control registers */ | ||
141 | #define OMAP_ST_REG_REV 0x00 | 95 | #define OMAP_ST_REG_REV 0x00 |
142 | #define OMAP_ST_REG_SYSCONFIG 0x10 | 96 | #define OMAP_ST_REG_SYSCONFIG 0x10 |
143 | #define OMAP_ST_REG_IRQSTATUS 0x18 | 97 | #define OMAP_ST_REG_IRQSTATUS 0x18 |
@@ -146,8 +100,6 @@ static struct platform_device omap_mcbsp##port_nr = { \ | |||
146 | #define OMAP_ST_REG_SFIRCR 0x28 | 100 | #define OMAP_ST_REG_SFIRCR 0x28 |
147 | #define OMAP_ST_REG_SSELCR 0x2C | 101 | #define OMAP_ST_REG_SSELCR 0x2C |
148 | 102 | ||
149 | #endif | ||
150 | |||
151 | /************************** McBSP SPCR1 bit definitions ***********************/ | 103 | /************************** McBSP SPCR1 bit definitions ***********************/ |
152 | #define RRST 0x0001 | 104 | #define RRST 0x0001 |
153 | #define RRDY 0x0002 | 105 | #define RRDY 0x0002 |
@@ -344,20 +296,20 @@ typedef enum { | |||
344 | struct omap_mcbsp_ops { | 296 | struct omap_mcbsp_ops { |
345 | void (*request)(unsigned int); | 297 | void (*request)(unsigned int); |
346 | void (*free)(unsigned int); | 298 | void (*free)(unsigned int); |
347 | int (*set_clks_src)(u8, u8); | ||
348 | }; | 299 | }; |
349 | 300 | ||
350 | struct omap_mcbsp_platform_data { | 301 | struct omap_mcbsp_platform_data { |
351 | unsigned long phys_base; | ||
352 | u8 dma_rx_sync, dma_tx_sync; | ||
353 | u16 rx_irq, tx_irq; | ||
354 | struct omap_mcbsp_ops *ops; | 302 | struct omap_mcbsp_ops *ops; |
355 | #ifdef CONFIG_ARCH_OMAP3 | ||
356 | /* Sidetone block for McBSP 2 and 3 */ | ||
357 | unsigned long phys_base_st; | ||
358 | #endif | ||
359 | u16 buffer_size; | 303 | u16 buffer_size; |
360 | unsigned int mcbsp_config_type; | 304 | u8 reg_size; |
305 | u8 reg_step; | ||
306 | |||
307 | /* McBSP platform and instance specific features */ | ||
308 | bool has_wakeup; /* Wakeup capability */ | ||
309 | bool has_ccr; /* Transceiver has configuration control registers */ | ||
310 | int (*enable_st_clock)(unsigned int, bool); | ||
311 | int (*set_clk_src)(struct device *dev, struct clk *clk, const char *src); | ||
312 | int (*mux_signal)(struct device *dev, const char *signal, const char *src); | ||
361 | }; | 313 | }; |
362 | 314 | ||
363 | struct omap_mcbsp_st_data { | 315 | struct omap_mcbsp_st_data { |
@@ -389,14 +341,12 @@ struct omap_mcbsp { | |||
389 | spinlock_t lock; | 341 | spinlock_t lock; |
390 | struct omap_mcbsp_platform_data *pdata; | 342 | struct omap_mcbsp_platform_data *pdata; |
391 | struct clk *fclk; | 343 | struct clk *fclk; |
392 | #ifdef CONFIG_ARCH_OMAP3 | ||
393 | struct omap_mcbsp_st_data *st_data; | 344 | struct omap_mcbsp_st_data *st_data; |
394 | int dma_op_mode; | 345 | int dma_op_mode; |
395 | u16 max_tx_thres; | 346 | u16 max_tx_thres; |
396 | u16 max_rx_thres; | 347 | u16 max_rx_thres; |
397 | #endif | ||
398 | void *reg_cache; | 348 | void *reg_cache; |
399 | unsigned int mcbsp_config_type; | 349 | int reg_cache_size; |
400 | }; | 350 | }; |
401 | 351 | ||
402 | /** | 352 | /** |
@@ -408,16 +358,10 @@ struct omap_mcbsp_dev_attr { | |||
408 | }; | 358 | }; |
409 | 359 | ||
410 | extern struct omap_mcbsp **mcbsp_ptr; | 360 | extern struct omap_mcbsp **mcbsp_ptr; |
411 | extern int omap_mcbsp_count, omap_mcbsp_cache_size; | 361 | extern int omap_mcbsp_count; |
412 | |||
413 | #define omap_mcbsp_check_valid_id(id) (id < omap_mcbsp_count) | ||
414 | #define id_to_mcbsp_ptr(id) mcbsp_ptr[id]; | ||
415 | 362 | ||
416 | int omap_mcbsp_init(void); | 363 | int omap_mcbsp_init(void); |
417 | void omap_mcbsp_register_board_cfg(struct resource *res, int res_count, | ||
418 | struct omap_mcbsp_platform_data *config, int size); | ||
419 | void omap_mcbsp_config(unsigned int id, const struct omap_mcbsp_reg_cfg * config); | 364 | void omap_mcbsp_config(unsigned int id, const struct omap_mcbsp_reg_cfg * config); |
420 | #ifdef CONFIG_ARCH_OMAP3 | ||
421 | void omap_mcbsp_set_tx_threshold(unsigned int id, u16 threshold); | 365 | void omap_mcbsp_set_tx_threshold(unsigned int id, u16 threshold); |
422 | void omap_mcbsp_set_rx_threshold(unsigned int id, u16 threshold); | 366 | void omap_mcbsp_set_rx_threshold(unsigned int id, u16 threshold); |
423 | u16 omap_mcbsp_get_max_tx_threshold(unsigned int id); | 367 | u16 omap_mcbsp_get_max_tx_threshold(unsigned int id); |
@@ -426,18 +370,6 @@ u16 omap_mcbsp_get_fifo_size(unsigned int id); | |||
426 | u16 omap_mcbsp_get_tx_delay(unsigned int id); | 370 | u16 omap_mcbsp_get_tx_delay(unsigned int id); |
427 | u16 omap_mcbsp_get_rx_delay(unsigned int id); | 371 | u16 omap_mcbsp_get_rx_delay(unsigned int id); |
428 | int omap_mcbsp_get_dma_op_mode(unsigned int id); | 372 | int omap_mcbsp_get_dma_op_mode(unsigned int id); |
429 | #else | ||
430 | static inline void omap_mcbsp_set_tx_threshold(unsigned int id, u16 threshold) | ||
431 | { } | ||
432 | static inline void omap_mcbsp_set_rx_threshold(unsigned int id, u16 threshold) | ||
433 | { } | ||
434 | static inline u16 omap_mcbsp_get_max_tx_threshold(unsigned int id) { return 0; } | ||
435 | static inline u16 omap_mcbsp_get_max_rx_threshold(unsigned int id) { return 0; } | ||
436 | static inline u16 omap_mcbsp_get_fifo_size(unsigned int id) { return 0; } | ||
437 | static inline u16 omap_mcbsp_get_tx_delay(unsigned int id) { return 0; } | ||
438 | static inline u16 omap_mcbsp_get_rx_delay(unsigned int id) { return 0; } | ||
439 | static inline int omap_mcbsp_get_dma_op_mode(unsigned int id) { return 0; } | ||
440 | #endif | ||
441 | int omap_mcbsp_request(unsigned int id); | 373 | int omap_mcbsp_request(unsigned int id); |
442 | void omap_mcbsp_free(unsigned int id); | 374 | void omap_mcbsp_free(unsigned int id); |
443 | void omap_mcbsp_start(unsigned int id, int tx, int rx); | 375 | void omap_mcbsp_start(unsigned int id, int tx, int rx); |
@@ -453,21 +385,11 @@ void omap2_mcbsp1_mux_fsr_src(u8 mux); | |||
453 | int omap_mcbsp_dma_ch_params(unsigned int id, unsigned int stream); | 385 | int omap_mcbsp_dma_ch_params(unsigned int id, unsigned int stream); |
454 | int omap_mcbsp_dma_reg_params(unsigned int id, unsigned int stream); | 386 | int omap_mcbsp_dma_reg_params(unsigned int id, unsigned int stream); |
455 | 387 | ||
456 | #ifdef CONFIG_ARCH_OMAP3 | ||
457 | /* Sidetone specific API */ | 388 | /* Sidetone specific API */ |
458 | int omap_st_set_chgain(unsigned int id, int channel, s16 chgain); | 389 | int omap_st_set_chgain(unsigned int id, int channel, s16 chgain); |
459 | int omap_st_get_chgain(unsigned int id, int channel, s16 *chgain); | 390 | int omap_st_get_chgain(unsigned int id, int channel, s16 *chgain); |
460 | int omap_st_enable(unsigned int id); | 391 | int omap_st_enable(unsigned int id); |
461 | int omap_st_disable(unsigned int id); | 392 | int omap_st_disable(unsigned int id); |
462 | int omap_st_is_enabled(unsigned int id); | 393 | int omap_st_is_enabled(unsigned int id); |
463 | #else | ||
464 | static inline int omap_st_set_chgain(unsigned int id, int channel, | ||
465 | s16 chgain) { return 0; } | ||
466 | static inline int omap_st_get_chgain(unsigned int id, int channel, | ||
467 | s16 *chgain) { return 0; } | ||
468 | static inline int omap_st_enable(unsigned int id) { return 0; } | ||
469 | static inline int omap_st_disable(unsigned int id) { return 0; } | ||
470 | static inline int omap_st_is_enabled(unsigned int id) { return 0; } | ||
471 | #endif | ||
472 | 394 | ||
473 | #endif | 395 | #endif |
diff --git a/arch/arm/plat-omap/include/plat/memory.h b/arch/arm/plat-omap/include/plat/memory.h index e6720aa2d553..7f9df6f1e113 100644 --- a/arch/arm/plat-omap/include/plat/memory.h +++ b/arch/arm/plat-omap/include/plat/memory.h | |||
@@ -85,18 +85,5 @@ | |||
85 | 85 | ||
86 | #endif /* CONFIG_ARCH_OMAP15XX */ | 86 | #endif /* CONFIG_ARCH_OMAP15XX */ |
87 | 87 | ||
88 | /* Override the ARM default */ | ||
89 | #ifdef CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE | ||
90 | |||
91 | #if (CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE == 0) | ||
92 | #undef CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE | ||
93 | #define CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE 2 | ||
94 | #endif | ||
95 | |||
96 | #define CONSISTENT_DMA_SIZE \ | ||
97 | (((CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE + 1) & ~1) * 1024 * 1024) | ||
98 | |||
99 | #endif | ||
100 | |||
101 | #endif | 88 | #endif |
102 | 89 | ||
diff --git a/arch/arm/plat-omap/include/plat/omap_device.h b/arch/arm/plat-omap/include/plat/omap_device.h index ee405b36df4b..d4d9b96f961e 100644 --- a/arch/arm/plat-omap/include/plat/omap_device.h +++ b/arch/arm/plat-omap/include/plat/omap_device.h | |||
@@ -68,7 +68,7 @@ extern struct device omap_device_parent; | |||
68 | * | 68 | * |
69 | */ | 69 | */ |
70 | struct omap_device { | 70 | struct omap_device { |
71 | struct platform_device pdev; | 71 | struct platform_device *pdev; |
72 | struct omap_hwmod **hwmods; | 72 | struct omap_hwmod **hwmods; |
73 | struct omap_device_pm_latency *pm_lats; | 73 | struct omap_device_pm_latency *pm_lats; |
74 | u32 dev_wakeup_lat; | 74 | u32 dev_wakeup_lat; |
@@ -88,24 +88,18 @@ int omap_device_shutdown(struct platform_device *pdev); | |||
88 | 88 | ||
89 | /* Core code interface */ | 89 | /* Core code interface */ |
90 | 90 | ||
91 | int omap_device_count_resources(struct omap_device *od); | 91 | struct platform_device *omap_device_build(const char *pdev_name, int pdev_id, |
92 | int omap_device_fill_resources(struct omap_device *od, struct resource *res); | ||
93 | |||
94 | struct omap_device *omap_device_build(const char *pdev_name, int pdev_id, | ||
95 | struct omap_hwmod *oh, void *pdata, | 92 | struct omap_hwmod *oh, void *pdata, |
96 | int pdata_len, | 93 | int pdata_len, |
97 | struct omap_device_pm_latency *pm_lats, | 94 | struct omap_device_pm_latency *pm_lats, |
98 | int pm_lats_cnt, int is_early_device); | 95 | int pm_lats_cnt, int is_early_device); |
99 | 96 | ||
100 | struct omap_device *omap_device_build_ss(const char *pdev_name, int pdev_id, | 97 | struct platform_device *omap_device_build_ss(const char *pdev_name, int pdev_id, |
101 | struct omap_hwmod **oh, int oh_cnt, | 98 | struct omap_hwmod **oh, int oh_cnt, |
102 | void *pdata, int pdata_len, | 99 | void *pdata, int pdata_len, |
103 | struct omap_device_pm_latency *pm_lats, | 100 | struct omap_device_pm_latency *pm_lats, |
104 | int pm_lats_cnt, int is_early_device); | 101 | int pm_lats_cnt, int is_early_device); |
105 | 102 | ||
106 | int omap_device_register(struct omap_device *od); | ||
107 | int omap_early_device_register(struct omap_device *od); | ||
108 | |||
109 | void __iomem *omap_device_get_rt_va(struct omap_device *od); | 103 | void __iomem *omap_device_get_rt_va(struct omap_device *od); |
110 | 104 | ||
111 | /* OMAP PM interface */ | 105 | /* OMAP PM interface */ |
@@ -122,11 +116,6 @@ int omap_device_enable_hwmods(struct omap_device *od); | |||
122 | int omap_device_disable_clocks(struct omap_device *od); | 116 | int omap_device_disable_clocks(struct omap_device *od); |
123 | int omap_device_enable_clocks(struct omap_device *od); | 117 | int omap_device_enable_clocks(struct omap_device *od); |
124 | 118 | ||
125 | static inline void omap_device_disable_idle_on_suspend(struct omap_device *od) | ||
126 | { | ||
127 | od->flags |= OMAP_DEVICE_NO_IDLE_ON_SUSPEND; | ||
128 | } | ||
129 | |||
130 | /* | 119 | /* |
131 | * Entries should be kept in latency order ascending | 120 | * Entries should be kept in latency order ascending |
132 | * | 121 | * |
@@ -157,6 +146,17 @@ struct omap_device_pm_latency { | |||
157 | #define OMAP_DEVICE_LATENCY_AUTO_ADJUST BIT(1) | 146 | #define OMAP_DEVICE_LATENCY_AUTO_ADJUST BIT(1) |
158 | 147 | ||
159 | /* Get omap_device pointer from platform_device pointer */ | 148 | /* Get omap_device pointer from platform_device pointer */ |
160 | #define to_omap_device(x) container_of((x), struct omap_device, pdev) | 149 | static inline struct omap_device *to_omap_device(struct platform_device *pdev) |
150 | { | ||
151 | return pdev ? pdev->archdata.od : NULL; | ||
152 | } | ||
153 | |||
154 | static inline | ||
155 | void omap_device_disable_idle_on_suspend(struct platform_device *pdev) | ||
156 | { | ||
157 | struct omap_device *od = to_omap_device(pdev); | ||
158 | |||
159 | od->flags |= OMAP_DEVICE_NO_IDLE_ON_SUSPEND; | ||
160 | } | ||
161 | 161 | ||
162 | #endif | 162 | #endif |
diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h index 0e329ca88a70..9115aedd2124 100644 --- a/arch/arm/plat-omap/include/plat/omap_hwmod.h +++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h | |||
@@ -496,7 +496,6 @@ struct omap_hwmod_class { | |||
496 | * @_state: internal-use hwmod state | 496 | * @_state: internal-use hwmod state |
497 | * @_postsetup_state: internal-use state to leave the hwmod in after _setup() | 497 | * @_postsetup_state: internal-use state to leave the hwmod in after _setup() |
498 | * @flags: hwmod flags (documented below) | 498 | * @flags: hwmod flags (documented below) |
499 | * @omap_chip: OMAP chips this hwmod is present on | ||
500 | * @_lock: spinlock serializing operations on this hwmod | 499 | * @_lock: spinlock serializing operations on this hwmod |
501 | * @node: list node for hwmod list (internal use) | 500 | * @node: list node for hwmod list (internal use) |
502 | * | 501 | * |
@@ -545,7 +544,6 @@ struct omap_hwmod { | |||
545 | u8 _int_flags; | 544 | u8 _int_flags; |
546 | u8 _state; | 545 | u8 _state; |
547 | u8 _postsetup_state; | 546 | u8 _postsetup_state; |
548 | const struct omap_chip_id omap_chip; | ||
549 | }; | 547 | }; |
550 | 548 | ||
551 | int omap_hwmod_register(struct omap_hwmod **ohs); | 549 | int omap_hwmod_register(struct omap_hwmod **ohs); |
diff --git a/arch/arm/plat-omap/io.c b/arch/arm/plat-omap/io.c index f1ecfa9fc61d..e9b0e23edd0a 100644 --- a/arch/arm/plat-omap/io.c +++ b/arch/arm/plat-omap/io.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/module.h> | 12 | #include <linux/module.h> |
13 | #include <linux/io.h> | 13 | #include <linux/io.h> |
14 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
15 | #include <linux/dma-mapping.h> | ||
15 | 16 | ||
16 | #include <plat/omap7xx.h> | 17 | #include <plat/omap7xx.h> |
17 | #include <plat/omap1510.h> | 18 | #include <plat/omap1510.h> |
@@ -139,3 +140,10 @@ void omap_iounmap(volatile void __iomem *addr) | |||
139 | __iounmap(addr); | 140 | __iounmap(addr); |
140 | } | 141 | } |
141 | EXPORT_SYMBOL(omap_iounmap); | 142 | EXPORT_SYMBOL(omap_iounmap); |
143 | |||
144 | void __init omap_init_consistent_dma_size(void) | ||
145 | { | ||
146 | #ifdef CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE | ||
147 | init_consistent_dma_size(CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE << 20); | ||
148 | #endif | ||
149 | } | ||
diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c index 6c62af108710..4b15cd7926d7 100644 --- a/arch/arm/plat-omap/mcbsp.c +++ b/arch/arm/plat-omap/mcbsp.c | |||
@@ -24,45 +24,40 @@ | |||
24 | #include <linux/slab.h> | 24 | #include <linux/slab.h> |
25 | 25 | ||
26 | #include <plat/mcbsp.h> | 26 | #include <plat/mcbsp.h> |
27 | #include <plat/omap_device.h> | ||
28 | #include <linux/pm_runtime.h> | 27 | #include <linux/pm_runtime.h> |
29 | 28 | ||
30 | /* XXX These "sideways" includes are a sign that something is wrong */ | ||
31 | #include "../mach-omap2/cm2xxx_3xxx.h" | ||
32 | #include "../mach-omap2/cm-regbits-34xx.h" | ||
33 | |||
34 | struct omap_mcbsp **mcbsp_ptr; | 29 | struct omap_mcbsp **mcbsp_ptr; |
35 | int omap_mcbsp_count, omap_mcbsp_cache_size; | 30 | int omap_mcbsp_count; |
31 | |||
32 | #define omap_mcbsp_check_valid_id(id) (id < omap_mcbsp_count) | ||
33 | #define id_to_mcbsp_ptr(id) mcbsp_ptr[id]; | ||
36 | 34 | ||
37 | static void omap_mcbsp_write(struct omap_mcbsp *mcbsp, u16 reg, u32 val) | 35 | static void omap_mcbsp_write(struct omap_mcbsp *mcbsp, u16 reg, u32 val) |
38 | { | 36 | { |
39 | if (cpu_class_is_omap1()) { | 37 | void __iomem *addr = mcbsp->io_base + reg * mcbsp->pdata->reg_step; |
40 | ((u16 *)mcbsp->reg_cache)[reg / sizeof(u16)] = (u16)val; | 38 | |
41 | __raw_writew((u16)val, mcbsp->io_base + reg); | 39 | if (mcbsp->pdata->reg_size == 2) { |
42 | } else if (cpu_is_omap2420()) { | 40 | ((u16 *)mcbsp->reg_cache)[reg] = (u16)val; |
43 | ((u16 *)mcbsp->reg_cache)[reg / sizeof(u32)] = (u16)val; | 41 | __raw_writew((u16)val, addr); |
44 | __raw_writew((u16)val, mcbsp->io_base + reg); | ||
45 | } else { | 42 | } else { |
46 | ((u32 *)mcbsp->reg_cache)[reg / sizeof(u32)] = val; | 43 | ((u32 *)mcbsp->reg_cache)[reg] = val; |
47 | __raw_writel(val, mcbsp->io_base + reg); | 44 | __raw_writel(val, addr); |
48 | } | 45 | } |
49 | } | 46 | } |
50 | 47 | ||
51 | static int omap_mcbsp_read(struct omap_mcbsp *mcbsp, u16 reg, bool from_cache) | 48 | static int omap_mcbsp_read(struct omap_mcbsp *mcbsp, u16 reg, bool from_cache) |
52 | { | 49 | { |
53 | if (cpu_class_is_omap1()) { | 50 | void __iomem *addr = mcbsp->io_base + reg * mcbsp->pdata->reg_step; |
54 | return !from_cache ? __raw_readw(mcbsp->io_base + reg) : | 51 | |
55 | ((u16 *)mcbsp->reg_cache)[reg / sizeof(u16)]; | 52 | if (mcbsp->pdata->reg_size == 2) { |
56 | } else if (cpu_is_omap2420()) { | 53 | return !from_cache ? __raw_readw(addr) : |
57 | return !from_cache ? __raw_readw(mcbsp->io_base + reg) : | 54 | ((u16 *)mcbsp->reg_cache)[reg]; |
58 | ((u16 *)mcbsp->reg_cache)[reg / sizeof(u32)]; | ||
59 | } else { | 55 | } else { |
60 | return !from_cache ? __raw_readl(mcbsp->io_base + reg) : | 56 | return !from_cache ? __raw_readl(addr) : |
61 | ((u32 *)mcbsp->reg_cache)[reg / sizeof(u32)]; | 57 | ((u32 *)mcbsp->reg_cache)[reg]; |
62 | } | 58 | } |
63 | } | 59 | } |
64 | 60 | ||
65 | #ifdef CONFIG_ARCH_OMAP3 | ||
66 | static void omap_mcbsp_st_write(struct omap_mcbsp *mcbsp, u16 reg, u32 val) | 61 | static void omap_mcbsp_st_write(struct omap_mcbsp *mcbsp, u16 reg, u32 val) |
67 | { | 62 | { |
68 | __raw_writel(val, mcbsp->st_data->io_base_st + reg); | 63 | __raw_writel(val, mcbsp->st_data->io_base_st + reg); |
@@ -72,7 +67,6 @@ static int omap_mcbsp_st_read(struct omap_mcbsp *mcbsp, u16 reg) | |||
72 | { | 67 | { |
73 | return __raw_readl(mcbsp->st_data->io_base_st + reg); | 68 | return __raw_readl(mcbsp->st_data->io_base_st + reg); |
74 | } | 69 | } |
75 | #endif | ||
76 | 70 | ||
77 | #define MCBSP_READ(mcbsp, reg) \ | 71 | #define MCBSP_READ(mcbsp, reg) \ |
78 | omap_mcbsp_read(mcbsp, OMAP_MCBSP_REG_##reg, 0) | 72 | omap_mcbsp_read(mcbsp, OMAP_MCBSP_REG_##reg, 0) |
@@ -187,7 +181,7 @@ void omap_mcbsp_config(unsigned int id, const struct omap_mcbsp_reg_cfg *config) | |||
187 | MCBSP_WRITE(mcbsp, MCR2, config->mcr2); | 181 | MCBSP_WRITE(mcbsp, MCR2, config->mcr2); |
188 | MCBSP_WRITE(mcbsp, MCR1, config->mcr1); | 182 | MCBSP_WRITE(mcbsp, MCR1, config->mcr1); |
189 | MCBSP_WRITE(mcbsp, PCR0, config->pcr0); | 183 | MCBSP_WRITE(mcbsp, PCR0, config->pcr0); |
190 | if (cpu_is_omap2430() || cpu_is_omap34xx() || cpu_is_omap44xx()) { | 184 | if (mcbsp->pdata->has_ccr) { |
191 | MCBSP_WRITE(mcbsp, XCCR, config->xccr); | 185 | MCBSP_WRITE(mcbsp, XCCR, config->xccr); |
192 | MCBSP_WRITE(mcbsp, RCCR, config->rccr); | 186 | MCBSP_WRITE(mcbsp, RCCR, config->rccr); |
193 | } | 187 | } |
@@ -239,46 +233,28 @@ int omap_mcbsp_dma_reg_params(unsigned int id, unsigned int stream) | |||
239 | } | 233 | } |
240 | mcbsp = id_to_mcbsp_ptr(id); | 234 | mcbsp = id_to_mcbsp_ptr(id); |
241 | 235 | ||
242 | data_reg = mcbsp->phys_dma_base; | 236 | if (mcbsp->pdata->reg_size == 2) { |
243 | |||
244 | if (mcbsp->mcbsp_config_type < MCBSP_CONFIG_TYPE2) { | ||
245 | if (stream) | 237 | if (stream) |
246 | data_reg += OMAP_MCBSP_REG_DRR1; | 238 | data_reg = OMAP_MCBSP_REG_DRR1; |
247 | else | 239 | else |
248 | data_reg += OMAP_MCBSP_REG_DXR1; | 240 | data_reg = OMAP_MCBSP_REG_DXR1; |
249 | } else { | 241 | } else { |
250 | if (stream) | 242 | if (stream) |
251 | data_reg += OMAP_MCBSP_REG_DRR; | 243 | data_reg = OMAP_MCBSP_REG_DRR; |
252 | else | 244 | else |
253 | data_reg += OMAP_MCBSP_REG_DXR; | 245 | data_reg = OMAP_MCBSP_REG_DXR; |
254 | } | 246 | } |
255 | 247 | ||
256 | return data_reg; | 248 | return mcbsp->phys_dma_base + data_reg * mcbsp->pdata->reg_step; |
257 | } | 249 | } |
258 | EXPORT_SYMBOL(omap_mcbsp_dma_reg_params); | 250 | EXPORT_SYMBOL(omap_mcbsp_dma_reg_params); |
259 | 251 | ||
260 | #ifdef CONFIG_ARCH_OMAP3 | ||
261 | static struct omap_device *find_omap_device_by_dev(struct device *dev) | ||
262 | { | ||
263 | struct platform_device *pdev = container_of(dev, | ||
264 | struct platform_device, dev); | ||
265 | return container_of(pdev, struct omap_device, pdev); | ||
266 | } | ||
267 | |||
268 | static void omap_st_on(struct omap_mcbsp *mcbsp) | 252 | static void omap_st_on(struct omap_mcbsp *mcbsp) |
269 | { | 253 | { |
270 | unsigned int w; | 254 | unsigned int w; |
271 | struct omap_device *od; | ||
272 | 255 | ||
273 | od = find_omap_device_by_dev(mcbsp->dev); | 256 | if (mcbsp->pdata->enable_st_clock) |
274 | 257 | mcbsp->pdata->enable_st_clock(mcbsp->id, 1); | |
275 | /* | ||
276 | * Sidetone uses McBSP ICLK - which must not idle when sidetones | ||
277 | * are enabled or sidetones start sounding ugly. | ||
278 | */ | ||
279 | w = omap2_cm_read_mod_reg(OMAP3430_PER_MOD, CM_AUTOIDLE); | ||
280 | w &= ~(1 << (mcbsp->id - 2)); | ||
281 | omap2_cm_write_mod_reg(w, OMAP3430_PER_MOD, CM_AUTOIDLE); | ||
282 | 258 | ||
283 | /* Enable McBSP Sidetone */ | 259 | /* Enable McBSP Sidetone */ |
284 | w = MCBSP_READ(mcbsp, SSELCR); | 260 | w = MCBSP_READ(mcbsp, SSELCR); |
@@ -292,9 +268,6 @@ static void omap_st_on(struct omap_mcbsp *mcbsp) | |||
292 | static void omap_st_off(struct omap_mcbsp *mcbsp) | 268 | static void omap_st_off(struct omap_mcbsp *mcbsp) |
293 | { | 269 | { |
294 | unsigned int w; | 270 | unsigned int w; |
295 | struct omap_device *od; | ||
296 | |||
297 | od = find_omap_device_by_dev(mcbsp->dev); | ||
298 | 271 | ||
299 | w = MCBSP_ST_READ(mcbsp, SSELCR); | 272 | w = MCBSP_ST_READ(mcbsp, SSELCR); |
300 | MCBSP_ST_WRITE(mcbsp, SSELCR, w & ~(ST_SIDETONEEN)); | 273 | MCBSP_ST_WRITE(mcbsp, SSELCR, w & ~(ST_SIDETONEEN)); |
@@ -302,17 +275,13 @@ static void omap_st_off(struct omap_mcbsp *mcbsp) | |||
302 | w = MCBSP_READ(mcbsp, SSELCR); | 275 | w = MCBSP_READ(mcbsp, SSELCR); |
303 | MCBSP_WRITE(mcbsp, SSELCR, w & ~(SIDETONEEN)); | 276 | MCBSP_WRITE(mcbsp, SSELCR, w & ~(SIDETONEEN)); |
304 | 277 | ||
305 | w = omap2_cm_read_mod_reg(OMAP3430_PER_MOD, CM_AUTOIDLE); | 278 | if (mcbsp->pdata->enable_st_clock) |
306 | w |= 1 << (mcbsp->id - 2); | 279 | mcbsp->pdata->enable_st_clock(mcbsp->id, 0); |
307 | omap2_cm_write_mod_reg(w, OMAP3430_PER_MOD, CM_AUTOIDLE); | ||
308 | } | 280 | } |
309 | 281 | ||
310 | static void omap_st_fir_write(struct omap_mcbsp *mcbsp, s16 *fir) | 282 | static void omap_st_fir_write(struct omap_mcbsp *mcbsp, s16 *fir) |
311 | { | 283 | { |
312 | u16 val, i; | 284 | u16 val, i; |
313 | struct omap_device *od; | ||
314 | |||
315 | od = find_omap_device_by_dev(mcbsp->dev); | ||
316 | 285 | ||
317 | val = MCBSP_ST_READ(mcbsp, SSELCR); | 286 | val = MCBSP_ST_READ(mcbsp, SSELCR); |
318 | 287 | ||
@@ -340,9 +309,6 @@ static void omap_st_chgain(struct omap_mcbsp *mcbsp) | |||
340 | { | 309 | { |
341 | u16 w; | 310 | u16 w; |
342 | struct omap_mcbsp_st_data *st_data = mcbsp->st_data; | 311 | struct omap_mcbsp_st_data *st_data = mcbsp->st_data; |
343 | struct omap_device *od; | ||
344 | |||
345 | od = find_omap_device_by_dev(mcbsp->dev); | ||
346 | 312 | ||
347 | w = MCBSP_ST_READ(mcbsp, SSELCR); | 313 | w = MCBSP_ST_READ(mcbsp, SSELCR); |
348 | 314 | ||
@@ -525,14 +491,13 @@ void omap_mcbsp_set_tx_threshold(unsigned int id, u16 threshold) | |||
525 | { | 491 | { |
526 | struct omap_mcbsp *mcbsp; | 492 | struct omap_mcbsp *mcbsp; |
527 | 493 | ||
528 | if (!cpu_is_omap34xx() && !cpu_is_omap44xx()) | ||
529 | return; | ||
530 | |||
531 | if (!omap_mcbsp_check_valid_id(id)) { | 494 | if (!omap_mcbsp_check_valid_id(id)) { |
532 | printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1); | 495 | printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1); |
533 | return; | 496 | return; |
534 | } | 497 | } |
535 | mcbsp = id_to_mcbsp_ptr(id); | 498 | mcbsp = id_to_mcbsp_ptr(id); |
499 | if (mcbsp->pdata->buffer_size == 0) | ||
500 | return; | ||
536 | 501 | ||
537 | if (threshold && threshold <= mcbsp->max_tx_thres) | 502 | if (threshold && threshold <= mcbsp->max_tx_thres) |
538 | MCBSP_WRITE(mcbsp, THRSH2, threshold - 1); | 503 | MCBSP_WRITE(mcbsp, THRSH2, threshold - 1); |
@@ -548,14 +513,13 @@ void omap_mcbsp_set_rx_threshold(unsigned int id, u16 threshold) | |||
548 | { | 513 | { |
549 | struct omap_mcbsp *mcbsp; | 514 | struct omap_mcbsp *mcbsp; |
550 | 515 | ||
551 | if (!cpu_is_omap34xx() && !cpu_is_omap44xx()) | ||
552 | return; | ||
553 | |||
554 | if (!omap_mcbsp_check_valid_id(id)) { | 516 | if (!omap_mcbsp_check_valid_id(id)) { |
555 | printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1); | 517 | printk(KERN_ERR "%s: Invalid id (%d)\n", __func__, id + 1); |
556 | return; | 518 | return; |
557 | } | 519 | } |
558 | mcbsp = id_to_mcbsp_ptr(id); | 520 | mcbsp = id_to_mcbsp_ptr(id); |
521 | if (mcbsp->pdata->buffer_size == 0) | ||
522 | return; | ||
559 | 523 | ||
560 | if (threshold && threshold <= mcbsp->max_rx_thres) | 524 | if (threshold && threshold <= mcbsp->max_rx_thres) |
561 | MCBSP_WRITE(mcbsp, THRSH1, threshold - 1); | 525 | MCBSP_WRITE(mcbsp, THRSH1, threshold - 1); |
@@ -625,6 +589,8 @@ u16 omap_mcbsp_get_tx_delay(unsigned int id) | |||
625 | return -ENODEV; | 589 | return -ENODEV; |
626 | } | 590 | } |
627 | mcbsp = id_to_mcbsp_ptr(id); | 591 | mcbsp = id_to_mcbsp_ptr(id); |
592 | if (mcbsp->pdata->buffer_size == 0) | ||
593 | return 0; | ||
628 | 594 | ||
629 | /* Returns the number of free locations in the buffer */ | 595 | /* Returns the number of free locations in the buffer */ |
630 | buffstat = MCBSP_READ(mcbsp, XBUFFSTAT); | 596 | buffstat = MCBSP_READ(mcbsp, XBUFFSTAT); |
@@ -648,6 +614,8 @@ u16 omap_mcbsp_get_rx_delay(unsigned int id) | |||
648 | return -ENODEV; | 614 | return -ENODEV; |
649 | } | 615 | } |
650 | mcbsp = id_to_mcbsp_ptr(id); | 616 | mcbsp = id_to_mcbsp_ptr(id); |
617 | if (mcbsp->pdata->buffer_size == 0) | ||
618 | return 0; | ||
651 | 619 | ||
652 | /* Returns the number of used locations in the buffer */ | 620 | /* Returns the number of used locations in the buffer */ |
653 | buffstat = MCBSP_READ(mcbsp, RBUFFSTAT); | 621 | buffstat = MCBSP_READ(mcbsp, RBUFFSTAT); |
@@ -683,46 +651,6 @@ int omap_mcbsp_get_dma_op_mode(unsigned int id) | |||
683 | } | 651 | } |
684 | EXPORT_SYMBOL(omap_mcbsp_get_dma_op_mode); | 652 | EXPORT_SYMBOL(omap_mcbsp_get_dma_op_mode); |
685 | 653 | ||
686 | static inline void omap34xx_mcbsp_request(struct omap_mcbsp *mcbsp) | ||
687 | { | ||
688 | struct omap_device *od; | ||
689 | |||
690 | od = find_omap_device_by_dev(mcbsp->dev); | ||
691 | /* | ||
692 | * Enable wakup behavior, smart idle and all wakeups | ||
693 | * REVISIT: some wakeups may be unnecessary | ||
694 | */ | ||
695 | if (cpu_is_omap34xx() || cpu_is_omap44xx()) { | ||
696 | MCBSP_WRITE(mcbsp, WAKEUPEN, XRDYEN | RRDYEN); | ||
697 | } | ||
698 | } | ||
699 | |||
700 | static inline void omap34xx_mcbsp_free(struct omap_mcbsp *mcbsp) | ||
701 | { | ||
702 | struct omap_device *od; | ||
703 | |||
704 | od = find_omap_device_by_dev(mcbsp->dev); | ||
705 | |||
706 | /* | ||
707 | * Disable wakup behavior, smart idle and all wakeups | ||
708 | */ | ||
709 | if (cpu_is_omap34xx() || cpu_is_omap44xx()) { | ||
710 | /* | ||
711 | * HW bug workaround - If no_idle mode is taken, we need to | ||
712 | * go to smart_idle before going to always_idle, or the | ||
713 | * device will not hit retention anymore. | ||
714 | */ | ||
715 | |||
716 | MCBSP_WRITE(mcbsp, WAKEUPEN, 0); | ||
717 | } | ||
718 | } | ||
719 | #else | ||
720 | static inline void omap34xx_mcbsp_request(struct omap_mcbsp *mcbsp) {} | ||
721 | static inline void omap34xx_mcbsp_free(struct omap_mcbsp *mcbsp) {} | ||
722 | static inline void omap_st_start(struct omap_mcbsp *mcbsp) {} | ||
723 | static inline void omap_st_stop(struct omap_mcbsp *mcbsp) {} | ||
724 | #endif | ||
725 | |||
726 | int omap_mcbsp_request(unsigned int id) | 654 | int omap_mcbsp_request(unsigned int id) |
727 | { | 655 | { |
728 | struct omap_mcbsp *mcbsp; | 656 | struct omap_mcbsp *mcbsp; |
@@ -735,7 +663,7 @@ int omap_mcbsp_request(unsigned int id) | |||
735 | } | 663 | } |
736 | mcbsp = id_to_mcbsp_ptr(id); | 664 | mcbsp = id_to_mcbsp_ptr(id); |
737 | 665 | ||
738 | reg_cache = kzalloc(omap_mcbsp_cache_size, GFP_KERNEL); | 666 | reg_cache = kzalloc(mcbsp->reg_cache_size, GFP_KERNEL); |
739 | if (!reg_cache) { | 667 | if (!reg_cache) { |
740 | return -ENOMEM; | 668 | return -ENOMEM; |
741 | } | 669 | } |
@@ -757,8 +685,9 @@ int omap_mcbsp_request(unsigned int id) | |||
757 | 685 | ||
758 | pm_runtime_get_sync(mcbsp->dev); | 686 | pm_runtime_get_sync(mcbsp->dev); |
759 | 687 | ||
760 | /* Do procedure specific to omap34xx arch, if applicable */ | 688 | /* Enable wakeup behavior */ |
761 | omap34xx_mcbsp_request(mcbsp); | 689 | if (mcbsp->pdata->has_wakeup) |
690 | MCBSP_WRITE(mcbsp, WAKEUPEN, XRDYEN | RRDYEN); | ||
762 | 691 | ||
763 | /* | 692 | /* |
764 | * Make sure that transmitter, receiver and sample-rate generator are | 693 | * Make sure that transmitter, receiver and sample-rate generator are |
@@ -795,8 +724,9 @@ err_clk_disable: | |||
795 | if (mcbsp->pdata && mcbsp->pdata->ops && mcbsp->pdata->ops->free) | 724 | if (mcbsp->pdata && mcbsp->pdata->ops && mcbsp->pdata->ops->free) |
796 | mcbsp->pdata->ops->free(id); | 725 | mcbsp->pdata->ops->free(id); |
797 | 726 | ||
798 | /* Do procedure specific to omap34xx arch, if applicable */ | 727 | /* Disable wakeup behavior */ |
799 | omap34xx_mcbsp_free(mcbsp); | 728 | if (mcbsp->pdata->has_wakeup) |
729 | MCBSP_WRITE(mcbsp, WAKEUPEN, 0); | ||
800 | 730 | ||
801 | pm_runtime_put_sync(mcbsp->dev); | 731 | pm_runtime_put_sync(mcbsp->dev); |
802 | 732 | ||
@@ -825,8 +755,9 @@ void omap_mcbsp_free(unsigned int id) | |||
825 | if (mcbsp->pdata && mcbsp->pdata->ops && mcbsp->pdata->ops->free) | 755 | if (mcbsp->pdata && mcbsp->pdata->ops && mcbsp->pdata->ops->free) |
826 | mcbsp->pdata->ops->free(id); | 756 | mcbsp->pdata->ops->free(id); |
827 | 757 | ||
828 | /* Do procedure specific to omap34xx arch, if applicable */ | 758 | /* Disable wakeup behavior */ |
829 | omap34xx_mcbsp_free(mcbsp); | 759 | if (mcbsp->pdata->has_wakeup) |
760 | MCBSP_WRITE(mcbsp, WAKEUPEN, 0); | ||
830 | 761 | ||
831 | pm_runtime_put_sync(mcbsp->dev); | 762 | pm_runtime_put_sync(mcbsp->dev); |
832 | 763 | ||
@@ -866,7 +797,7 @@ void omap_mcbsp_start(unsigned int id, int tx, int rx) | |||
866 | } | 797 | } |
867 | mcbsp = id_to_mcbsp_ptr(id); | 798 | mcbsp = id_to_mcbsp_ptr(id); |
868 | 799 | ||
869 | if (cpu_is_omap34xx()) | 800 | if (mcbsp->st_data) |
870 | omap_st_start(mcbsp); | 801 | omap_st_start(mcbsp); |
871 | 802 | ||
872 | /* Only enable SRG, if McBSP is master */ | 803 | /* Only enable SRG, if McBSP is master */ |
@@ -904,7 +835,7 @@ void omap_mcbsp_start(unsigned int id, int tx, int rx) | |||
904 | MCBSP_WRITE(mcbsp, SPCR2, w | (1 << 7)); | 835 | MCBSP_WRITE(mcbsp, SPCR2, w | (1 << 7)); |
905 | } | 836 | } |
906 | 837 | ||
907 | if (cpu_is_omap2430() || cpu_is_omap34xx() || cpu_is_omap44xx()) { | 838 | if (mcbsp->pdata->has_ccr) { |
908 | /* Release the transmitter and receiver */ | 839 | /* Release the transmitter and receiver */ |
909 | w = MCBSP_READ_CACHE(mcbsp, XCCR); | 840 | w = MCBSP_READ_CACHE(mcbsp, XCCR); |
910 | w &= ~(tx ? XDISABLE : 0); | 841 | w &= ~(tx ? XDISABLE : 0); |
@@ -934,7 +865,7 @@ void omap_mcbsp_stop(unsigned int id, int tx, int rx) | |||
934 | 865 | ||
935 | /* Reset transmitter */ | 866 | /* Reset transmitter */ |
936 | tx &= 1; | 867 | tx &= 1; |
937 | if (cpu_is_omap2430() || cpu_is_omap34xx() || cpu_is_omap44xx()) { | 868 | if (mcbsp->pdata->has_ccr) { |
938 | w = MCBSP_READ_CACHE(mcbsp, XCCR); | 869 | w = MCBSP_READ_CACHE(mcbsp, XCCR); |
939 | w |= (tx ? XDISABLE : 0); | 870 | w |= (tx ? XDISABLE : 0); |
940 | MCBSP_WRITE(mcbsp, XCCR, w); | 871 | MCBSP_WRITE(mcbsp, XCCR, w); |
@@ -944,7 +875,7 @@ void omap_mcbsp_stop(unsigned int id, int tx, int rx) | |||
944 | 875 | ||
945 | /* Reset receiver */ | 876 | /* Reset receiver */ |
946 | rx &= 1; | 877 | rx &= 1; |
947 | if (cpu_is_omap2430() || cpu_is_omap34xx() || cpu_is_omap44xx()) { | 878 | if (mcbsp->pdata->has_ccr) { |
948 | w = MCBSP_READ_CACHE(mcbsp, RCCR); | 879 | w = MCBSP_READ_CACHE(mcbsp, RCCR); |
949 | w |= (rx ? RDISABLE : 0); | 880 | w |= (rx ? RDISABLE : 0); |
950 | MCBSP_WRITE(mcbsp, RCCR, w); | 881 | MCBSP_WRITE(mcbsp, RCCR, w); |
@@ -961,39 +892,72 @@ void omap_mcbsp_stop(unsigned int id, int tx, int rx) | |||
961 | MCBSP_WRITE(mcbsp, SPCR2, w & ~(1 << 6)); | 892 | MCBSP_WRITE(mcbsp, SPCR2, w & ~(1 << 6)); |
962 | } | 893 | } |
963 | 894 | ||
964 | if (cpu_is_omap34xx()) | 895 | if (mcbsp->st_data) |
965 | omap_st_stop(mcbsp); | 896 | omap_st_stop(mcbsp); |
966 | } | 897 | } |
967 | EXPORT_SYMBOL(omap_mcbsp_stop); | 898 | EXPORT_SYMBOL(omap_mcbsp_stop); |
968 | 899 | ||
969 | /* | ||
970 | * The following functions are only required on an OMAP1-only build. | ||
971 | * mach-omap2/mcbsp.c contains the real functions | ||
972 | */ | ||
973 | #ifndef CONFIG_ARCH_OMAP2PLUS | ||
974 | int omap2_mcbsp_set_clks_src(u8 id, u8 fck_src_id) | 900 | int omap2_mcbsp_set_clks_src(u8 id, u8 fck_src_id) |
975 | { | 901 | { |
976 | WARN(1, "%s: should never be called on an OMAP1-only kernel\n", | 902 | struct omap_mcbsp *mcbsp; |
977 | __func__); | 903 | const char *src; |
978 | return -EINVAL; | 904 | |
905 | if (!omap_mcbsp_check_valid_id(id)) { | ||
906 | pr_err("%s: Invalid id (%d)\n", __func__, id + 1); | ||
907 | return -EINVAL; | ||
908 | } | ||
909 | mcbsp = id_to_mcbsp_ptr(id); | ||
910 | |||
911 | if (fck_src_id == MCBSP_CLKS_PAD_SRC) | ||
912 | src = "clks_ext"; | ||
913 | else if (fck_src_id == MCBSP_CLKS_PRCM_SRC) | ||
914 | src = "clks_fclk"; | ||
915 | else | ||
916 | return -EINVAL; | ||
917 | |||
918 | if (mcbsp->pdata->set_clk_src) | ||
919 | return mcbsp->pdata->set_clk_src(mcbsp->dev, mcbsp->fclk, src); | ||
920 | else | ||
921 | return -EINVAL; | ||
979 | } | 922 | } |
923 | EXPORT_SYMBOL(omap2_mcbsp_set_clks_src); | ||
980 | 924 | ||
981 | void omap2_mcbsp1_mux_clkr_src(u8 mux) | 925 | void omap2_mcbsp1_mux_clkr_src(u8 mux) |
982 | { | 926 | { |
983 | WARN(1, "%s: should never be called on an OMAP1-only kernel\n", | 927 | struct omap_mcbsp *mcbsp; |
984 | __func__); | 928 | const char *src; |
985 | return; | 929 | |
930 | if (mux == CLKR_SRC_CLKR) | ||
931 | src = "clkr"; | ||
932 | else if (mux == CLKR_SRC_CLKX) | ||
933 | src = "clkx"; | ||
934 | else | ||
935 | return; | ||
936 | |||
937 | mcbsp = id_to_mcbsp_ptr(0); | ||
938 | if (mcbsp->pdata->mux_signal) | ||
939 | mcbsp->pdata->mux_signal(mcbsp->dev, "clkr", src); | ||
986 | } | 940 | } |
941 | EXPORT_SYMBOL(omap2_mcbsp1_mux_clkr_src); | ||
987 | 942 | ||
988 | void omap2_mcbsp1_mux_fsr_src(u8 mux) | 943 | void omap2_mcbsp1_mux_fsr_src(u8 mux) |
989 | { | 944 | { |
990 | WARN(1, "%s: should never be called on an OMAP1-only kernel\n", | 945 | struct omap_mcbsp *mcbsp; |
991 | __func__); | 946 | const char *src; |
992 | return; | 947 | |
948 | if (mux == FSR_SRC_FSR) | ||
949 | src = "fsr"; | ||
950 | else if (mux == FSR_SRC_FSX) | ||
951 | src = "fsx"; | ||
952 | else | ||
953 | return; | ||
954 | |||
955 | mcbsp = id_to_mcbsp_ptr(0); | ||
956 | if (mcbsp->pdata->mux_signal) | ||
957 | mcbsp->pdata->mux_signal(mcbsp->dev, "fsr", src); | ||
993 | } | 958 | } |
994 | #endif | 959 | EXPORT_SYMBOL(omap2_mcbsp1_mux_fsr_src); |
995 | 960 | ||
996 | #ifdef CONFIG_ARCH_OMAP3 | ||
997 | #define max_thres(m) (mcbsp->pdata->buffer_size) | 961 | #define max_thres(m) (mcbsp->pdata->buffer_size) |
998 | #define valid_threshold(m, val) ((val) <= max_thres(m)) | 962 | #define valid_threshold(m, val) ((val) <= max_thres(m)) |
999 | #define THRESHOLD_PROP_BUILDER(prop) \ | 963 | #define THRESHOLD_PROP_BUILDER(prop) \ |
@@ -1084,6 +1048,17 @@ unlock: | |||
1084 | 1048 | ||
1085 | static DEVICE_ATTR(dma_op_mode, 0644, dma_op_mode_show, dma_op_mode_store); | 1049 | static DEVICE_ATTR(dma_op_mode, 0644, dma_op_mode_show, dma_op_mode_store); |
1086 | 1050 | ||
1051 | static const struct attribute *additional_attrs[] = { | ||
1052 | &dev_attr_max_tx_thres.attr, | ||
1053 | &dev_attr_max_rx_thres.attr, | ||
1054 | &dev_attr_dma_op_mode.attr, | ||
1055 | NULL, | ||
1056 | }; | ||
1057 | |||
1058 | static const struct attribute_group additional_attr_group = { | ||
1059 | .attrs = (struct attribute **)additional_attrs, | ||
1060 | }; | ||
1061 | |||
1087 | static ssize_t st_taps_show(struct device *dev, | 1062 | static ssize_t st_taps_show(struct device *dev, |
1088 | struct device_attribute *attr, char *buf) | 1063 | struct device_attribute *attr, char *buf) |
1089 | { | 1064 | { |
@@ -1142,27 +1117,6 @@ out: | |||
1142 | 1117 | ||
1143 | static DEVICE_ATTR(st_taps, 0644, st_taps_show, st_taps_store); | 1118 | static DEVICE_ATTR(st_taps, 0644, st_taps_show, st_taps_store); |
1144 | 1119 | ||
1145 | static const struct attribute *additional_attrs[] = { | ||
1146 | &dev_attr_max_tx_thres.attr, | ||
1147 | &dev_attr_max_rx_thres.attr, | ||
1148 | &dev_attr_dma_op_mode.attr, | ||
1149 | NULL, | ||
1150 | }; | ||
1151 | |||
1152 | static const struct attribute_group additional_attr_group = { | ||
1153 | .attrs = (struct attribute **)additional_attrs, | ||
1154 | }; | ||
1155 | |||
1156 | static inline int __devinit omap_additional_add(struct device *dev) | ||
1157 | { | ||
1158 | return sysfs_create_group(&dev->kobj, &additional_attr_group); | ||
1159 | } | ||
1160 | |||
1161 | static inline void __devexit omap_additional_remove(struct device *dev) | ||
1162 | { | ||
1163 | sysfs_remove_group(&dev->kobj, &additional_attr_group); | ||
1164 | } | ||
1165 | |||
1166 | static const struct attribute *sidetone_attrs[] = { | 1120 | static const struct attribute *sidetone_attrs[] = { |
1167 | &dev_attr_st_taps.attr, | 1121 | &dev_attr_st_taps.attr, |
1168 | NULL, | 1122 | NULL, |
@@ -1172,10 +1126,9 @@ static const struct attribute_group sidetone_attr_group = { | |||
1172 | .attrs = (struct attribute **)sidetone_attrs, | 1126 | .attrs = (struct attribute **)sidetone_attrs, |
1173 | }; | 1127 | }; |
1174 | 1128 | ||
1175 | static int __devinit omap_st_add(struct omap_mcbsp *mcbsp) | 1129 | static int __devinit omap_st_add(struct omap_mcbsp *mcbsp, |
1130 | struct resource *res) | ||
1176 | { | 1131 | { |
1177 | struct platform_device *pdev; | ||
1178 | struct resource *res; | ||
1179 | struct omap_mcbsp_st_data *st_data; | 1132 | struct omap_mcbsp_st_data *st_data; |
1180 | int err; | 1133 | int err; |
1181 | 1134 | ||
@@ -1185,9 +1138,6 @@ static int __devinit omap_st_add(struct omap_mcbsp *mcbsp) | |||
1185 | goto err1; | 1138 | goto err1; |
1186 | } | 1139 | } |
1187 | 1140 | ||
1188 | pdev = container_of(mcbsp->dev, struct platform_device, dev); | ||
1189 | |||
1190 | res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "sidetone"); | ||
1191 | st_data->io_base_st = ioremap(res->start, resource_size(res)); | 1141 | st_data->io_base_st = ioremap(res->start, resource_size(res)); |
1192 | if (!st_data->io_base_st) { | 1142 | if (!st_data->io_base_st) { |
1193 | err = -ENOMEM; | 1143 | err = -ENOMEM; |
@@ -1214,59 +1164,10 @@ static void __devexit omap_st_remove(struct omap_mcbsp *mcbsp) | |||
1214 | { | 1164 | { |
1215 | struct omap_mcbsp_st_data *st_data = mcbsp->st_data; | 1165 | struct omap_mcbsp_st_data *st_data = mcbsp->st_data; |
1216 | 1166 | ||
1217 | if (st_data) { | 1167 | sysfs_remove_group(&mcbsp->dev->kobj, &sidetone_attr_group); |
1218 | sysfs_remove_group(&mcbsp->dev->kobj, &sidetone_attr_group); | 1168 | iounmap(st_data->io_base_st); |
1219 | iounmap(st_data->io_base_st); | 1169 | kfree(st_data); |
1220 | kfree(st_data); | ||
1221 | } | ||
1222 | } | ||
1223 | |||
1224 | static inline void __devinit omap34xx_device_init(struct omap_mcbsp *mcbsp) | ||
1225 | { | ||
1226 | mcbsp->dma_op_mode = MCBSP_DMA_MODE_ELEMENT; | ||
1227 | if (cpu_is_omap34xx()) { | ||
1228 | /* | ||
1229 | * Initially configure the maximum thresholds to a safe value. | ||
1230 | * The McBSP FIFO usage with these values should not go under | ||
1231 | * 16 locations. | ||
1232 | * If the whole FIFO without safety buffer is used, than there | ||
1233 | * is a possibility that the DMA will be not able to push the | ||
1234 | * new data on time, causing channel shifts in runtime. | ||
1235 | */ | ||
1236 | mcbsp->max_tx_thres = max_thres(mcbsp) - 0x10; | ||
1237 | mcbsp->max_rx_thres = max_thres(mcbsp) - 0x10; | ||
1238 | /* | ||
1239 | * REVISIT: Set dmap_op_mode to THRESHOLD as default | ||
1240 | * for mcbsp2 instances. | ||
1241 | */ | ||
1242 | if (omap_additional_add(mcbsp->dev)) | ||
1243 | dev_warn(mcbsp->dev, | ||
1244 | "Unable to create additional controls\n"); | ||
1245 | |||
1246 | if (mcbsp->id == 2 || mcbsp->id == 3) | ||
1247 | if (omap_st_add(mcbsp)) | ||
1248 | dev_warn(mcbsp->dev, | ||
1249 | "Unable to create sidetone controls\n"); | ||
1250 | |||
1251 | } else { | ||
1252 | mcbsp->max_tx_thres = -EINVAL; | ||
1253 | mcbsp->max_rx_thres = -EINVAL; | ||
1254 | } | ||
1255 | } | ||
1256 | |||
1257 | static inline void __devexit omap34xx_device_exit(struct omap_mcbsp *mcbsp) | ||
1258 | { | ||
1259 | if (cpu_is_omap34xx()) { | ||
1260 | omap_additional_remove(mcbsp->dev); | ||
1261 | |||
1262 | if (mcbsp->id == 2 || mcbsp->id == 3) | ||
1263 | omap_st_remove(mcbsp); | ||
1264 | } | ||
1265 | } | 1170 | } |
1266 | #else | ||
1267 | static inline void __devinit omap34xx_device_init(struct omap_mcbsp *mcbsp) {} | ||
1268 | static inline void __devexit omap34xx_device_exit(struct omap_mcbsp *mcbsp) {} | ||
1269 | #endif /* CONFIG_ARCH_OMAP3 */ | ||
1270 | 1171 | ||
1271 | /* | 1172 | /* |
1272 | * McBSP1 and McBSP3 are directly mapped on 1610 and 1510. | 1173 | * McBSP1 and McBSP3 are directly mapped on 1610 and 1510. |
@@ -1316,7 +1217,7 @@ static int __devinit omap_mcbsp_probe(struct platform_device *pdev) | |||
1316 | } | 1217 | } |
1317 | } | 1218 | } |
1318 | mcbsp->phys_base = res->start; | 1219 | mcbsp->phys_base = res->start; |
1319 | omap_mcbsp_cache_size = resource_size(res); | 1220 | mcbsp->reg_cache_size = resource_size(res); |
1320 | mcbsp->io_base = ioremap(res->start, resource_size(res)); | 1221 | mcbsp->io_base = ioremap(res->start, resource_size(res)); |
1321 | if (!mcbsp->io_base) { | 1222 | if (!mcbsp->io_base) { |
1322 | ret = -ENOMEM; | 1223 | ret = -ENOMEM; |
@@ -1364,15 +1265,52 @@ static int __devinit omap_mcbsp_probe(struct platform_device *pdev) | |||
1364 | mcbsp->pdata = pdata; | 1265 | mcbsp->pdata = pdata; |
1365 | mcbsp->dev = &pdev->dev; | 1266 | mcbsp->dev = &pdev->dev; |
1366 | mcbsp_ptr[id] = mcbsp; | 1267 | mcbsp_ptr[id] = mcbsp; |
1367 | mcbsp->mcbsp_config_type = pdata->mcbsp_config_type; | ||
1368 | platform_set_drvdata(pdev, mcbsp); | 1268 | platform_set_drvdata(pdev, mcbsp); |
1369 | pm_runtime_enable(mcbsp->dev); | 1269 | pm_runtime_enable(mcbsp->dev); |
1370 | 1270 | ||
1371 | /* Initialize mcbsp properties for OMAP34XX if needed / applicable */ | 1271 | mcbsp->dma_op_mode = MCBSP_DMA_MODE_ELEMENT; |
1372 | omap34xx_device_init(mcbsp); | 1272 | if (mcbsp->pdata->buffer_size) { |
1273 | /* | ||
1274 | * Initially configure the maximum thresholds to a safe value. | ||
1275 | * The McBSP FIFO usage with these values should not go under | ||
1276 | * 16 locations. | ||
1277 | * If the whole FIFO without safety buffer is used, than there | ||
1278 | * is a possibility that the DMA will be not able to push the | ||
1279 | * new data on time, causing channel shifts in runtime. | ||
1280 | */ | ||
1281 | mcbsp->max_tx_thres = max_thres(mcbsp) - 0x10; | ||
1282 | mcbsp->max_rx_thres = max_thres(mcbsp) - 0x10; | ||
1283 | |||
1284 | ret = sysfs_create_group(&mcbsp->dev->kobj, | ||
1285 | &additional_attr_group); | ||
1286 | if (ret) { | ||
1287 | dev_err(mcbsp->dev, | ||
1288 | "Unable to create additional controls\n"); | ||
1289 | goto err_thres; | ||
1290 | } | ||
1291 | } else { | ||
1292 | mcbsp->max_tx_thres = -EINVAL; | ||
1293 | mcbsp->max_rx_thres = -EINVAL; | ||
1294 | } | ||
1295 | |||
1296 | res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "sidetone"); | ||
1297 | if (res) { | ||
1298 | ret = omap_st_add(mcbsp, res); | ||
1299 | if (ret) { | ||
1300 | dev_err(mcbsp->dev, | ||
1301 | "Unable to create sidetone controls\n"); | ||
1302 | goto err_st; | ||
1303 | } | ||
1304 | } | ||
1373 | 1305 | ||
1374 | return 0; | 1306 | return 0; |
1375 | 1307 | ||
1308 | err_st: | ||
1309 | if (mcbsp->pdata->buffer_size) | ||
1310 | sysfs_remove_group(&mcbsp->dev->kobj, | ||
1311 | &additional_attr_group); | ||
1312 | err_thres: | ||
1313 | clk_put(mcbsp->fclk); | ||
1376 | err_res: | 1314 | err_res: |
1377 | iounmap(mcbsp->io_base); | 1315 | iounmap(mcbsp->io_base); |
1378 | err_ioremap: | 1316 | err_ioremap: |
@@ -1392,7 +1330,12 @@ static int __devexit omap_mcbsp_remove(struct platform_device *pdev) | |||
1392 | mcbsp->pdata->ops->free) | 1330 | mcbsp->pdata->ops->free) |
1393 | mcbsp->pdata->ops->free(mcbsp->id); | 1331 | mcbsp->pdata->ops->free(mcbsp->id); |
1394 | 1332 | ||
1395 | omap34xx_device_exit(mcbsp); | 1333 | if (mcbsp->pdata->buffer_size) |
1334 | sysfs_remove_group(&mcbsp->dev->kobj, | ||
1335 | &additional_attr_group); | ||
1336 | |||
1337 | if (mcbsp->st_data) | ||
1338 | omap_st_remove(mcbsp); | ||
1396 | 1339 | ||
1397 | clk_put(mcbsp->fclk); | 1340 | clk_put(mcbsp->fclk); |
1398 | 1341 | ||
diff --git a/arch/arm/plat-omap/omap_device.c b/arch/arm/plat-omap/omap_device.c index 02609eee0562..26aee5cc1fc1 100644 --- a/arch/arm/plat-omap/omap_device.c +++ b/arch/arm/plat-omap/omap_device.c | |||
@@ -94,6 +94,9 @@ | |||
94 | #define USE_WAKEUP_LAT 0 | 94 | #define USE_WAKEUP_LAT 0 |
95 | #define IGNORE_WAKEUP_LAT 1 | 95 | #define IGNORE_WAKEUP_LAT 1 |
96 | 96 | ||
97 | static int omap_device_register(struct platform_device *pdev); | ||
98 | static int omap_early_device_register(struct platform_device *pdev); | ||
99 | |||
97 | /* Private functions */ | 100 | /* Private functions */ |
98 | 101 | ||
99 | /** | 102 | /** |
@@ -114,7 +117,7 @@ static int _omap_device_activate(struct omap_device *od, u8 ignore_lat) | |||
114 | { | 117 | { |
115 | struct timespec a, b, c; | 118 | struct timespec a, b, c; |
116 | 119 | ||
117 | pr_debug("omap_device: %s: activating\n", od->pdev.name); | 120 | dev_dbg(&od->pdev->dev, "omap_device: activating\n"); |
118 | 121 | ||
119 | while (od->pm_lat_level > 0) { | 122 | while (od->pm_lat_level > 0) { |
120 | struct omap_device_pm_latency *odpl; | 123 | struct omap_device_pm_latency *odpl; |
@@ -138,25 +141,24 @@ static int _omap_device_activate(struct omap_device *od, u8 ignore_lat) | |||
138 | c = timespec_sub(b, a); | 141 | c = timespec_sub(b, a); |
139 | act_lat = timespec_to_ns(&c); | 142 | act_lat = timespec_to_ns(&c); |
140 | 143 | ||
141 | pr_debug("omap_device: %s: pm_lat %d: activate: elapsed time " | 144 | dev_dbg(&od->pdev->dev, |
142 | "%llu nsec\n", od->pdev.name, od->pm_lat_level, | 145 | "omap_device: pm_lat %d: activate: elapsed time " |
143 | act_lat); | 146 | "%llu nsec\n", od->pm_lat_level, act_lat); |
144 | 147 | ||
145 | if (act_lat > odpl->activate_lat) { | 148 | if (act_lat > odpl->activate_lat) { |
146 | odpl->activate_lat_worst = act_lat; | 149 | odpl->activate_lat_worst = act_lat; |
147 | if (odpl->flags & OMAP_DEVICE_LATENCY_AUTO_ADJUST) { | 150 | if (odpl->flags & OMAP_DEVICE_LATENCY_AUTO_ADJUST) { |
148 | odpl->activate_lat = act_lat; | 151 | odpl->activate_lat = act_lat; |
149 | pr_warning("omap_device: %s.%d: new worst case " | 152 | dev_dbg(&od->pdev->dev, |
150 | "activate latency %d: %llu\n", | 153 | "new worst case activate latency " |
151 | od->pdev.name, od->pdev.id, | 154 | "%d: %llu\n", |
152 | od->pm_lat_level, act_lat); | 155 | od->pm_lat_level, act_lat); |
153 | } else | 156 | } else |
154 | pr_warning("omap_device: %s.%d: activate " | 157 | dev_warn(&od->pdev->dev, |
155 | "latency %d higher than exptected. " | 158 | "activate latency %d " |
156 | "(%llu > %d)\n", | 159 | "higher than exptected. (%llu > %d)\n", |
157 | od->pdev.name, od->pdev.id, | 160 | od->pm_lat_level, act_lat, |
158 | od->pm_lat_level, act_lat, | 161 | odpl->activate_lat); |
159 | odpl->activate_lat); | ||
160 | } | 162 | } |
161 | 163 | ||
162 | od->dev_wakeup_lat -= odpl->activate_lat; | 164 | od->dev_wakeup_lat -= odpl->activate_lat; |
@@ -183,7 +185,7 @@ static int _omap_device_deactivate(struct omap_device *od, u8 ignore_lat) | |||
183 | { | 185 | { |
184 | struct timespec a, b, c; | 186 | struct timespec a, b, c; |
185 | 187 | ||
186 | pr_debug("omap_device: %s: deactivating\n", od->pdev.name); | 188 | dev_dbg(&od->pdev->dev, "omap_device: deactivating\n"); |
187 | 189 | ||
188 | while (od->pm_lat_level < od->pm_lats_cnt) { | 190 | while (od->pm_lat_level < od->pm_lats_cnt) { |
189 | struct omap_device_pm_latency *odpl; | 191 | struct omap_device_pm_latency *odpl; |
@@ -206,28 +208,26 @@ static int _omap_device_deactivate(struct omap_device *od, u8 ignore_lat) | |||
206 | c = timespec_sub(b, a); | 208 | c = timespec_sub(b, a); |
207 | deact_lat = timespec_to_ns(&c); | 209 | deact_lat = timespec_to_ns(&c); |
208 | 210 | ||
209 | pr_debug("omap_device: %s: pm_lat %d: deactivate: elapsed time " | 211 | dev_dbg(&od->pdev->dev, |
210 | "%llu nsec\n", od->pdev.name, od->pm_lat_level, | 212 | "omap_device: pm_lat %d: deactivate: elapsed time " |
211 | deact_lat); | 213 | "%llu nsec\n", od->pm_lat_level, deact_lat); |
212 | 214 | ||
213 | if (deact_lat > odpl->deactivate_lat) { | 215 | if (deact_lat > odpl->deactivate_lat) { |
214 | odpl->deactivate_lat_worst = deact_lat; | 216 | odpl->deactivate_lat_worst = deact_lat; |
215 | if (odpl->flags & OMAP_DEVICE_LATENCY_AUTO_ADJUST) { | 217 | if (odpl->flags & OMAP_DEVICE_LATENCY_AUTO_ADJUST) { |
216 | odpl->deactivate_lat = deact_lat; | 218 | odpl->deactivate_lat = deact_lat; |
217 | pr_warning("omap_device: %s.%d: new worst case " | 219 | dev_dbg(&od->pdev->dev, |
218 | "deactivate latency %d: %llu\n", | 220 | "new worst case deactivate latency " |
219 | od->pdev.name, od->pdev.id, | 221 | "%d: %llu\n", |
220 | od->pm_lat_level, deact_lat); | 222 | od->pm_lat_level, deact_lat); |
221 | } else | 223 | } else |
222 | pr_warning("omap_device: %s.%d: deactivate " | 224 | dev_warn(&od->pdev->dev, |
223 | "latency %d higher than exptected. " | 225 | "deactivate latency %d " |
224 | "(%llu > %d)\n", | 226 | "higher than exptected. (%llu > %d)\n", |
225 | od->pdev.name, od->pdev.id, | 227 | od->pm_lat_level, deact_lat, |
226 | od->pm_lat_level, deact_lat, | 228 | odpl->deactivate_lat); |
227 | odpl->deactivate_lat); | ||
228 | } | 229 | } |
229 | 230 | ||
230 | |||
231 | od->dev_wakeup_lat += odpl->activate_lat; | 231 | od->dev_wakeup_lat += odpl->activate_lat; |
232 | 232 | ||
233 | od->pm_lat_level++; | 233 | od->pm_lat_level++; |
@@ -245,28 +245,27 @@ static void _add_clkdev(struct omap_device *od, const char *clk_alias, | |||
245 | if (!clk_alias || !clk_name) | 245 | if (!clk_alias || !clk_name) |
246 | return; | 246 | return; |
247 | 247 | ||
248 | pr_debug("omap_device: %s: Creating %s -> %s\n", | 248 | dev_dbg(&od->pdev->dev, "Creating %s -> %s\n", clk_alias, clk_name); |
249 | dev_name(&od->pdev.dev), clk_alias, clk_name); | ||
250 | 249 | ||
251 | r = clk_get_sys(dev_name(&od->pdev.dev), clk_alias); | 250 | r = clk_get_sys(dev_name(&od->pdev->dev), clk_alias); |
252 | if (!IS_ERR(r)) { | 251 | if (!IS_ERR(r)) { |
253 | pr_warning("omap_device: %s: alias %s already exists\n", | 252 | dev_warn(&od->pdev->dev, |
254 | dev_name(&od->pdev.dev), clk_alias); | 253 | "alias %s already exists\n", clk_alias); |
255 | clk_put(r); | 254 | clk_put(r); |
256 | return; | 255 | return; |
257 | } | 256 | } |
258 | 257 | ||
259 | r = omap_clk_get_by_name(clk_name); | 258 | r = omap_clk_get_by_name(clk_name); |
260 | if (IS_ERR(r)) { | 259 | if (IS_ERR(r)) { |
261 | pr_err("omap_device: %s: omap_clk_get_by_name for %s failed\n", | 260 | dev_err(&od->pdev->dev, |
262 | dev_name(&od->pdev.dev), clk_name); | 261 | "omap_clk_get_by_name for %s failed\n", clk_name); |
263 | return; | 262 | return; |
264 | } | 263 | } |
265 | 264 | ||
266 | l = clkdev_alloc(r, clk_alias, dev_name(&od->pdev.dev)); | 265 | l = clkdev_alloc(r, clk_alias, dev_name(&od->pdev->dev)); |
267 | if (!l) { | 266 | if (!l) { |
268 | pr_err("omap_device: %s: clkdev_alloc for %s failed\n", | 267 | dev_err(&od->pdev->dev, |
269 | dev_name(&od->pdev.dev), clk_alias); | 268 | "clkdev_alloc for %s failed\n", clk_alias); |
270 | return; | 269 | return; |
271 | } | 270 | } |
272 | 271 | ||
@@ -343,7 +342,7 @@ u32 omap_device_get_context_loss_count(struct platform_device *pdev) | |||
343 | * much memory to allocate before calling | 342 | * much memory to allocate before calling |
344 | * omap_device_fill_resources(). Returns the count. | 343 | * omap_device_fill_resources(). Returns the count. |
345 | */ | 344 | */ |
346 | int omap_device_count_resources(struct omap_device *od) | 345 | static int omap_device_count_resources(struct omap_device *od) |
347 | { | 346 | { |
348 | int c = 0; | 347 | int c = 0; |
349 | int i; | 348 | int i; |
@@ -352,7 +351,7 @@ int omap_device_count_resources(struct omap_device *od) | |||
352 | c += omap_hwmod_count_resources(od->hwmods[i]); | 351 | c += omap_hwmod_count_resources(od->hwmods[i]); |
353 | 352 | ||
354 | pr_debug("omap_device: %s: counted %d total resources across %d " | 353 | pr_debug("omap_device: %s: counted %d total resources across %d " |
355 | "hwmods\n", od->pdev.name, c, od->hwmods_cnt); | 354 | "hwmods\n", od->pdev->name, c, od->hwmods_cnt); |
356 | 355 | ||
357 | return c; | 356 | return c; |
358 | } | 357 | } |
@@ -374,7 +373,8 @@ int omap_device_count_resources(struct omap_device *od) | |||
374 | * functions to get device resources. Hacking around the existing | 373 | * functions to get device resources. Hacking around the existing |
375 | * platform_device code wastes memory. Returns 0. | 374 | * platform_device code wastes memory. Returns 0. |
376 | */ | 375 | */ |
377 | int omap_device_fill_resources(struct omap_device *od, struct resource *res) | 376 | static int omap_device_fill_resources(struct omap_device *od, |
377 | struct resource *res) | ||
378 | { | 378 | { |
379 | int c = 0; | 379 | int c = 0; |
380 | int i, r; | 380 | int i, r; |
@@ -405,7 +405,7 @@ int omap_device_fill_resources(struct omap_device *od, struct resource *res) | |||
405 | * information. Returns ERR_PTR(-EINVAL) if @oh is NULL; otherwise, | 405 | * information. Returns ERR_PTR(-EINVAL) if @oh is NULL; otherwise, |
406 | * passes along the return value of omap_device_build_ss(). | 406 | * passes along the return value of omap_device_build_ss(). |
407 | */ | 407 | */ |
408 | struct omap_device *omap_device_build(const char *pdev_name, int pdev_id, | 408 | struct platform_device *omap_device_build(const char *pdev_name, int pdev_id, |
409 | struct omap_hwmod *oh, void *pdata, | 409 | struct omap_hwmod *oh, void *pdata, |
410 | int pdata_len, | 410 | int pdata_len, |
411 | struct omap_device_pm_latency *pm_lats, | 411 | struct omap_device_pm_latency *pm_lats, |
@@ -438,15 +438,15 @@ struct omap_device *omap_device_build(const char *pdev_name, int pdev_id, | |||
438 | * platform_device record. Returns an ERR_PTR() on error, or passes | 438 | * platform_device record. Returns an ERR_PTR() on error, or passes |
439 | * along the return value of omap_device_register(). | 439 | * along the return value of omap_device_register(). |
440 | */ | 440 | */ |
441 | struct omap_device *omap_device_build_ss(const char *pdev_name, int pdev_id, | 441 | struct platform_device *omap_device_build_ss(const char *pdev_name, int pdev_id, |
442 | struct omap_hwmod **ohs, int oh_cnt, | 442 | struct omap_hwmod **ohs, int oh_cnt, |
443 | void *pdata, int pdata_len, | 443 | void *pdata, int pdata_len, |
444 | struct omap_device_pm_latency *pm_lats, | 444 | struct omap_device_pm_latency *pm_lats, |
445 | int pm_lats_cnt, int is_early_device) | 445 | int pm_lats_cnt, int is_early_device) |
446 | { | 446 | { |
447 | int ret = -ENOMEM; | 447 | int ret = -ENOMEM; |
448 | struct platform_device *pdev; | ||
448 | struct omap_device *od; | 449 | struct omap_device *od; |
449 | char *pdev_name2; | ||
450 | struct resource *res = NULL; | 450 | struct resource *res = NULL; |
451 | int i, res_count; | 451 | int i, res_count; |
452 | struct omap_hwmod **hwmods; | 452 | struct omap_hwmod **hwmods; |
@@ -457,72 +457,76 @@ struct omap_device *omap_device_build_ss(const char *pdev_name, int pdev_id, | |||
457 | if (!pdata && pdata_len > 0) | 457 | if (!pdata && pdata_len > 0) |
458 | return ERR_PTR(-EINVAL); | 458 | return ERR_PTR(-EINVAL); |
459 | 459 | ||
460 | pdev = platform_device_alloc(pdev_name, pdev_id); | ||
461 | if (!pdev) { | ||
462 | ret = -ENOMEM; | ||
463 | goto odbs_exit; | ||
464 | } | ||
465 | |||
460 | pr_debug("omap_device: %s: building with %d hwmods\n", pdev_name, | 466 | pr_debug("omap_device: %s: building with %d hwmods\n", pdev_name, |
461 | oh_cnt); | 467 | oh_cnt); |
462 | 468 | ||
463 | od = kzalloc(sizeof(struct omap_device), GFP_KERNEL); | 469 | od = kzalloc(sizeof(struct omap_device), GFP_KERNEL); |
464 | if (!od) | 470 | if (!od) { |
465 | return ERR_PTR(-ENOMEM); | 471 | ret = -ENOMEM; |
466 | 472 | goto odbs_exit1; | |
473 | } | ||
467 | od->hwmods_cnt = oh_cnt; | 474 | od->hwmods_cnt = oh_cnt; |
468 | 475 | ||
469 | hwmods = kzalloc(sizeof(struct omap_hwmod *) * oh_cnt, | 476 | hwmods = kzalloc(sizeof(struct omap_hwmod *) * oh_cnt, |
470 | GFP_KERNEL); | 477 | GFP_KERNEL); |
471 | if (!hwmods) | 478 | if (!hwmods) |
472 | goto odbs_exit1; | 479 | goto odbs_exit2; |
473 | 480 | ||
474 | memcpy(hwmods, ohs, sizeof(struct omap_hwmod *) * oh_cnt); | 481 | memcpy(hwmods, ohs, sizeof(struct omap_hwmod *) * oh_cnt); |
475 | od->hwmods = hwmods; | 482 | od->hwmods = hwmods; |
476 | 483 | od->pdev = pdev; | |
477 | pdev_name2 = kzalloc(strlen(pdev_name) + 1, GFP_KERNEL); | ||
478 | if (!pdev_name2) | ||
479 | goto odbs_exit2; | ||
480 | strcpy(pdev_name2, pdev_name); | ||
481 | |||
482 | od->pdev.name = pdev_name2; | ||
483 | od->pdev.id = pdev_id; | ||
484 | 484 | ||
485 | res_count = omap_device_count_resources(od); | 485 | res_count = omap_device_count_resources(od); |
486 | if (res_count > 0) { | 486 | if (res_count > 0) { |
487 | res = kzalloc(sizeof(struct resource) * res_count, GFP_KERNEL); | 487 | res = kzalloc(sizeof(struct resource) * res_count, GFP_KERNEL); |
488 | if (!res) | 488 | if (!res) |
489 | goto odbs_exit3; | 489 | goto odbs_exit3; |
490 | } | ||
491 | omap_device_fill_resources(od, res); | ||
492 | 490 | ||
493 | od->pdev.num_resources = res_count; | 491 | omap_device_fill_resources(od, res); |
494 | od->pdev.resource = res; | 492 | |
493 | ret = platform_device_add_resources(pdev, res, res_count); | ||
494 | kfree(res); | ||
495 | 495 | ||
496 | ret = platform_device_add_data(&od->pdev, pdata, pdata_len); | 496 | if (ret) |
497 | goto odbs_exit3; | ||
498 | } | ||
499 | |||
500 | ret = platform_device_add_data(pdev, pdata, pdata_len); | ||
497 | if (ret) | 501 | if (ret) |
498 | goto odbs_exit4; | 502 | goto odbs_exit3; |
499 | 503 | ||
500 | od->pm_lats = pm_lats; | 504 | pdev->archdata.od = od; |
501 | od->pm_lats_cnt = pm_lats_cnt; | ||
502 | 505 | ||
503 | if (is_early_device) | 506 | if (is_early_device) |
504 | ret = omap_early_device_register(od); | 507 | ret = omap_early_device_register(pdev); |
505 | else | 508 | else |
506 | ret = omap_device_register(od); | 509 | ret = omap_device_register(pdev); |
510 | if (ret) | ||
511 | goto odbs_exit3; | ||
512 | |||
513 | od->pm_lats = pm_lats; | ||
514 | od->pm_lats_cnt = pm_lats_cnt; | ||
507 | 515 | ||
508 | for (i = 0; i < oh_cnt; i++) { | 516 | for (i = 0; i < oh_cnt; i++) { |
509 | hwmods[i]->od = od; | 517 | hwmods[i]->od = od; |
510 | _add_hwmod_clocks_clkdev(od, hwmods[i]); | 518 | _add_hwmod_clocks_clkdev(od, hwmods[i]); |
511 | } | 519 | } |
512 | 520 | ||
513 | if (ret) | 521 | return pdev; |
514 | goto odbs_exit4; | ||
515 | |||
516 | return od; | ||
517 | 522 | ||
518 | odbs_exit4: | ||
519 | kfree(res); | ||
520 | odbs_exit3: | 523 | odbs_exit3: |
521 | kfree(pdev_name2); | ||
522 | odbs_exit2: | ||
523 | kfree(hwmods); | 524 | kfree(hwmods); |
524 | odbs_exit1: | 525 | odbs_exit2: |
525 | kfree(od); | 526 | kfree(od); |
527 | odbs_exit1: | ||
528 | platform_device_put(pdev); | ||
529 | odbs_exit: | ||
526 | 530 | ||
527 | pr_err("omap_device: %s: build failed (%d)\n", pdev_name, ret); | 531 | pr_err("omap_device: %s: build failed (%d)\n", pdev_name, ret); |
528 | 532 | ||
@@ -538,11 +542,11 @@ odbs_exit1: | |||
538 | * platform_early_add_device() on the underlying platform_device. | 542 | * platform_early_add_device() on the underlying platform_device. |
539 | * Returns 0 by default. | 543 | * Returns 0 by default. |
540 | */ | 544 | */ |
541 | int omap_early_device_register(struct omap_device *od) | 545 | static int omap_early_device_register(struct platform_device *pdev) |
542 | { | 546 | { |
543 | struct platform_device *devices[1]; | 547 | struct platform_device *devices[1]; |
544 | 548 | ||
545 | devices[0] = &(od->pdev); | 549 | devices[0] = pdev; |
546 | early_platform_add_devices(devices, 1); | 550 | early_platform_add_devices(devices, 1); |
547 | return 0; | 551 | return 0; |
548 | } | 552 | } |
@@ -638,13 +642,13 @@ static struct dev_pm_domain omap_device_pm_domain = { | |||
638 | * platform_device_register() on the underlying platform_device. | 642 | * platform_device_register() on the underlying platform_device. |
639 | * Returns the return value of platform_device_register(). | 643 | * Returns the return value of platform_device_register(). |
640 | */ | 644 | */ |
641 | int omap_device_register(struct omap_device *od) | 645 | static int omap_device_register(struct platform_device *pdev) |
642 | { | 646 | { |
643 | pr_debug("omap_device: %s: registering\n", od->pdev.name); | 647 | pr_debug("omap_device: %s: registering\n", pdev->name); |
644 | 648 | ||
645 | od->pdev.dev.parent = &omap_device_parent; | 649 | pdev->dev.parent = &omap_device_parent; |
646 | od->pdev.dev.pm_domain = &omap_device_pm_domain; | 650 | pdev->dev.pm_domain = &omap_device_pm_domain; |
647 | return platform_device_register(&od->pdev); | 651 | return platform_device_add(pdev); |
648 | } | 652 | } |
649 | 653 | ||
650 | 654 | ||
@@ -671,8 +675,9 @@ int omap_device_enable(struct platform_device *pdev) | |||
671 | od = to_omap_device(pdev); | 675 | od = to_omap_device(pdev); |
672 | 676 | ||
673 | if (od->_state == OMAP_DEVICE_STATE_ENABLED) { | 677 | if (od->_state == OMAP_DEVICE_STATE_ENABLED) { |
674 | WARN(1, "omap_device: %s.%d: %s() called from invalid state %d\n", | 678 | dev_warn(&pdev->dev, |
675 | od->pdev.name, od->pdev.id, __func__, od->_state); | 679 | "omap_device: %s() called from invalid state %d\n", |
680 | __func__, od->_state); | ||
676 | return -EINVAL; | 681 | return -EINVAL; |
677 | } | 682 | } |
678 | 683 | ||
@@ -710,8 +715,9 @@ int omap_device_idle(struct platform_device *pdev) | |||
710 | od = to_omap_device(pdev); | 715 | od = to_omap_device(pdev); |
711 | 716 | ||
712 | if (od->_state != OMAP_DEVICE_STATE_ENABLED) { | 717 | if (od->_state != OMAP_DEVICE_STATE_ENABLED) { |
713 | WARN(1, "omap_device: %s.%d: %s() called from invalid state %d\n", | 718 | dev_warn(&pdev->dev, |
714 | od->pdev.name, od->pdev.id, __func__, od->_state); | 719 | "omap_device: %s() called from invalid state %d\n", |
720 | __func__, od->_state); | ||
715 | return -EINVAL; | 721 | return -EINVAL; |
716 | } | 722 | } |
717 | 723 | ||
@@ -742,8 +748,9 @@ int omap_device_shutdown(struct platform_device *pdev) | |||
742 | 748 | ||
743 | if (od->_state != OMAP_DEVICE_STATE_ENABLED && | 749 | if (od->_state != OMAP_DEVICE_STATE_ENABLED && |
744 | od->_state != OMAP_DEVICE_STATE_IDLE) { | 750 | od->_state != OMAP_DEVICE_STATE_IDLE) { |
745 | WARN(1, "omap_device: %s.%d: %s() called from invalid state %d\n", | 751 | dev_warn(&pdev->dev, |
746 | od->pdev.name, od->pdev.id, __func__, od->_state); | 752 | "omap_device: %s() called from invalid state %d\n", |
753 | __func__, od->_state); | ||
747 | return -EINVAL; | 754 | return -EINVAL; |
748 | } | 755 | } |
749 | 756 | ||
diff --git a/arch/arm/plat-s3c24xx/include/plat/map.h b/arch/arm/plat-s3c24xx/include/plat/map.h deleted file mode 100644 index bd534d32b993..000000000000 --- a/arch/arm/plat-s3c24xx/include/plat/map.h +++ /dev/null | |||
@@ -1,100 +0,0 @@ | |||
1 | /* linux/include/asm-arm/plat-s3c24xx/map.h | ||
2 | * | ||
3 | * Copyright (c) 2008 Simtec Electronics | ||
4 | * Ben Dooks <ben@simtec.co.uk> | ||
5 | * | ||
6 | * S3C24XX - Memory map definitions | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_PLAT_S3C24XX_MAP_H | ||
14 | #define __ASM_PLAT_S3C24XX_MAP_H | ||
15 | |||
16 | /* interrupt controller is the first thing we put in, to make | ||
17 | * the assembly code for the irq detection easier | ||
18 | */ | ||
19 | #define S3C24XX_VA_IRQ S3C_VA_IRQ | ||
20 | #define S3C2410_PA_IRQ (0x4A000000) | ||
21 | #define S3C24XX_SZ_IRQ SZ_1M | ||
22 | |||
23 | /* memory controller registers */ | ||
24 | #define S3C24XX_VA_MEMCTRL S3C_VA_MEM | ||
25 | #define S3C2410_PA_MEMCTRL (0x48000000) | ||
26 | #define S3C24XX_SZ_MEMCTRL SZ_1M | ||
27 | |||
28 | /* UARTs */ | ||
29 | #define S3C24XX_VA_UART S3C_VA_UART | ||
30 | #define S3C2410_PA_UART (0x50000000) | ||
31 | #define S3C24XX_SZ_UART SZ_1M | ||
32 | #define S3C_UART_OFFSET (0x4000) | ||
33 | |||
34 | #define S3C_VA_UARTx(uart) (S3C_VA_UART + ((uart * S3C_UART_OFFSET))) | ||
35 | |||
36 | /* Timers */ | ||
37 | #define S3C24XX_VA_TIMER S3C_VA_TIMER | ||
38 | #define S3C2410_PA_TIMER (0x51000000) | ||
39 | #define S3C24XX_SZ_TIMER SZ_1M | ||
40 | |||
41 | /* Clock and Power management */ | ||
42 | #define S3C24XX_VA_CLKPWR S3C_VA_SYS | ||
43 | #define S3C24XX_SZ_CLKPWR SZ_1M | ||
44 | |||
45 | /* USB Device port */ | ||
46 | #define S3C2410_PA_USBDEV (0x52000000) | ||
47 | #define S3C24XX_SZ_USBDEV SZ_1M | ||
48 | |||
49 | /* Watchdog */ | ||
50 | #define S3C24XX_VA_WATCHDOG S3C_VA_WATCHDOG | ||
51 | #define S3C2410_PA_WATCHDOG (0x53000000) | ||
52 | #define S3C24XX_SZ_WATCHDOG SZ_1M | ||
53 | |||
54 | /* Standard size definitions for peripheral blocks. */ | ||
55 | |||
56 | #define S3C24XX_SZ_IIS SZ_1M | ||
57 | #define S3C24XX_SZ_ADC SZ_1M | ||
58 | #define S3C24XX_SZ_SPI SZ_1M | ||
59 | #define S3C24XX_SZ_SDI SZ_1M | ||
60 | #define S3C24XX_SZ_NAND SZ_1M | ||
61 | |||
62 | /* GPIO ports */ | ||
63 | |||
64 | /* the calculation for the VA of this must ensure that | ||
65 | * it is the same distance apart from the UART in the | ||
66 | * phsyical address space, as the initial mapping for the IO | ||
67 | * is done as a 1:1 mapping. This puts it (currently) at | ||
68 | * 0xFA800000, which is not in the way of any current mapping | ||
69 | * by the base system. | ||
70 | */ | ||
71 | |||
72 | #define S3C2410_PA_GPIO (0x56000000) | ||
73 | #define S3C24XX_VA_GPIO ((S3C24XX_PA_GPIO - S3C24XX_PA_UART) + S3C24XX_VA_UART) | ||
74 | #define S3C24XX_SZ_GPIO SZ_1M | ||
75 | |||
76 | |||
77 | /* ISA style IO, for each machine to sort out mappings for, if it | ||
78 | * implements it. We reserve two 16M regions for ISA. | ||
79 | */ | ||
80 | |||
81 | #define S3C24XX_VA_ISA_WORD S3C2410_ADDR(0x02000000) | ||
82 | #define S3C24XX_VA_ISA_BYTE S3C2410_ADDR(0x03000000) | ||
83 | |||
84 | /* deal with the registers that move under the 2412/2413 */ | ||
85 | |||
86 | #if defined(CONFIG_CPU_S3C2412) || defined(CONFIG_CPU_S3C2413) | ||
87 | #ifndef __ASSEMBLY__ | ||
88 | extern void __iomem *s3c24xx_va_gpio2; | ||
89 | #endif | ||
90 | #ifdef CONFIG_CPU_S3C2412_ONLY | ||
91 | #define S3C24XX_VA_GPIO2 (S3C24XX_VA_GPIO + 0x10) | ||
92 | #else | ||
93 | #define S3C24XX_VA_GPIO2 s3c24xx_va_gpio2 | ||
94 | #endif | ||
95 | #else | ||
96 | #define s3c24xx_va_gpio2 S3C24XX_VA_GPIO | ||
97 | #define S3C24XX_VA_GPIO2 S3C24XX_VA_GPIO | ||
98 | #endif | ||
99 | |||
100 | #endif /* __ASM_PLAT_S3C24XX_MAP_H */ | ||
diff --git a/arch/arm/plat-s5p/include/plat/pll.h b/arch/arm/plat-s5p/include/plat/pll.h index bf28fadee7ae..ebc142c5c84c 100644 --- a/arch/arm/plat-s5p/include/plat/pll.h +++ b/arch/arm/plat-s5p/include/plat/pll.h | |||
@@ -72,7 +72,6 @@ static inline unsigned long s5p_get_pll46xx(unsigned long baseclk, | |||
72 | mdiv = (pll_con0 >> PLL46XX_MDIV_SHIFT) & PLL46XX_MDIV_MASK; | 72 | mdiv = (pll_con0 >> PLL46XX_MDIV_SHIFT) & PLL46XX_MDIV_MASK; |
73 | pdiv = (pll_con0 >> PLL46XX_PDIV_SHIFT) & PLL46XX_PDIV_MASK; | 73 | pdiv = (pll_con0 >> PLL46XX_PDIV_SHIFT) & PLL46XX_PDIV_MASK; |
74 | sdiv = (pll_con0 >> PLL46XX_SDIV_SHIFT) & PLL46XX_SDIV_MASK; | 74 | sdiv = (pll_con0 >> PLL46XX_SDIV_SHIFT) & PLL46XX_SDIV_MASK; |
75 | kdiv = pll_con1 & PLL46XX_KDIV_MASK; | ||
76 | 75 | ||
77 | if (pll_type == pll_4650c) | 76 | if (pll_type == pll_4650c) |
78 | kdiv = pll_con1 & PLL4650C_KDIV_MASK; | 77 | kdiv = pll_con1 & PLL4650C_KDIV_MASK; |
diff --git a/arch/arm/plat-samsung/dev-hsmmc.c b/arch/arm/plat-samsung/dev-hsmmc.c index db7a65c7f127..06825c4276de 100644 --- a/arch/arm/plat-samsung/dev-hsmmc.c +++ b/arch/arm/plat-samsung/dev-hsmmc.c | |||
@@ -58,22 +58,5 @@ struct platform_device s3c_device_hsmmc0 = { | |||
58 | 58 | ||
59 | void s3c_sdhci0_set_platdata(struct s3c_sdhci_platdata *pd) | 59 | void s3c_sdhci0_set_platdata(struct s3c_sdhci_platdata *pd) |
60 | { | 60 | { |
61 | struct s3c_sdhci_platdata *set = &s3c_hsmmc0_def_platdata; | 61 | s3c_sdhci_set_platdata(pd, &s3c_hsmmc0_def_platdata); |
62 | |||
63 | set->cd_type = pd->cd_type; | ||
64 | set->ext_cd_init = pd->ext_cd_init; | ||
65 | set->ext_cd_cleanup = pd->ext_cd_cleanup; | ||
66 | set->ext_cd_gpio = pd->ext_cd_gpio; | ||
67 | set->ext_cd_gpio_invert = pd->ext_cd_gpio_invert; | ||
68 | |||
69 | if (pd->max_width) | ||
70 | set->max_width = pd->max_width; | ||
71 | if (pd->cfg_gpio) | ||
72 | set->cfg_gpio = pd->cfg_gpio; | ||
73 | if (pd->cfg_card) | ||
74 | set->cfg_card = pd->cfg_card; | ||
75 | if (pd->host_caps) | ||
76 | set->host_caps |= pd->host_caps; | ||
77 | if (pd->clk_type) | ||
78 | set->clk_type = pd->clk_type; | ||
79 | } | 62 | } |
diff --git a/arch/arm/plat-samsung/dev-hsmmc1.c b/arch/arm/plat-samsung/dev-hsmmc1.c index 2497321f08d7..4524ef440010 100644 --- a/arch/arm/plat-samsung/dev-hsmmc1.c +++ b/arch/arm/plat-samsung/dev-hsmmc1.c | |||
@@ -58,22 +58,5 @@ struct platform_device s3c_device_hsmmc1 = { | |||
58 | 58 | ||
59 | void s3c_sdhci1_set_platdata(struct s3c_sdhci_platdata *pd) | 59 | void s3c_sdhci1_set_platdata(struct s3c_sdhci_platdata *pd) |
60 | { | 60 | { |
61 | struct s3c_sdhci_platdata *set = &s3c_hsmmc1_def_platdata; | 61 | s3c_sdhci_set_platdata(pd, &s3c_hsmmc1_def_platdata); |
62 | |||
63 | set->cd_type = pd->cd_type; | ||
64 | set->ext_cd_init = pd->ext_cd_init; | ||
65 | set->ext_cd_cleanup = pd->ext_cd_cleanup; | ||
66 | set->ext_cd_gpio = pd->ext_cd_gpio; | ||
67 | set->ext_cd_gpio_invert = pd->ext_cd_gpio_invert; | ||
68 | |||
69 | if (pd->max_width) | ||
70 | set->max_width = pd->max_width; | ||
71 | if (pd->cfg_gpio) | ||
72 | set->cfg_gpio = pd->cfg_gpio; | ||
73 | if (pd->cfg_card) | ||
74 | set->cfg_card = pd->cfg_card; | ||
75 | if (pd->host_caps) | ||
76 | set->host_caps |= pd->host_caps; | ||
77 | if (pd->clk_type) | ||
78 | set->clk_type = pd->clk_type; | ||
79 | } | 62 | } |
diff --git a/arch/arm/plat-samsung/dev-hsmmc2.c b/arch/arm/plat-samsung/dev-hsmmc2.c index f60aedba417c..9cede9615e48 100644 --- a/arch/arm/plat-samsung/dev-hsmmc2.c +++ b/arch/arm/plat-samsung/dev-hsmmc2.c | |||
@@ -59,22 +59,5 @@ struct platform_device s3c_device_hsmmc2 = { | |||
59 | 59 | ||
60 | void s3c_sdhci2_set_platdata(struct s3c_sdhci_platdata *pd) | 60 | void s3c_sdhci2_set_platdata(struct s3c_sdhci_platdata *pd) |
61 | { | 61 | { |
62 | struct s3c_sdhci_platdata *set = &s3c_hsmmc2_def_platdata; | 62 | s3c_sdhci_set_platdata(pd, &s3c_hsmmc2_def_platdata); |
63 | |||
64 | set->cd_type = pd->cd_type; | ||
65 | set->ext_cd_init = pd->ext_cd_init; | ||
66 | set->ext_cd_cleanup = pd->ext_cd_cleanup; | ||
67 | set->ext_cd_gpio = pd->ext_cd_gpio; | ||
68 | set->ext_cd_gpio_invert = pd->ext_cd_gpio_invert; | ||
69 | |||
70 | if (pd->max_width) | ||
71 | set->max_width = pd->max_width; | ||
72 | if (pd->cfg_gpio) | ||
73 | set->cfg_gpio = pd->cfg_gpio; | ||
74 | if (pd->cfg_card) | ||
75 | set->cfg_card = pd->cfg_card; | ||
76 | if (pd->host_caps) | ||
77 | set->host_caps |= pd->host_caps; | ||
78 | if (pd->clk_type) | ||
79 | set->clk_type = pd->clk_type; | ||
80 | } | 63 | } |
diff --git a/arch/arm/plat-samsung/dev-hsmmc3.c b/arch/arm/plat-samsung/dev-hsmmc3.c index ede776f20e62..0358ef4a8f66 100644 --- a/arch/arm/plat-samsung/dev-hsmmc3.c +++ b/arch/arm/plat-samsung/dev-hsmmc3.c | |||
@@ -62,22 +62,5 @@ struct platform_device s3c_device_hsmmc3 = { | |||
62 | 62 | ||
63 | void s3c_sdhci3_set_platdata(struct s3c_sdhci_platdata *pd) | 63 | void s3c_sdhci3_set_platdata(struct s3c_sdhci_platdata *pd) |
64 | { | 64 | { |
65 | struct s3c_sdhci_platdata *set = &s3c_hsmmc3_def_platdata; | 65 | s3c_sdhci_set_platdata(pd, &s3c_hsmmc3_def_platdata); |
66 | |||
67 | set->cd_type = pd->cd_type; | ||
68 | set->ext_cd_init = pd->ext_cd_init; | ||
69 | set->ext_cd_cleanup = pd->ext_cd_cleanup; | ||
70 | set->ext_cd_gpio = pd->ext_cd_gpio; | ||
71 | set->ext_cd_gpio_invert = pd->ext_cd_gpio_invert; | ||
72 | |||
73 | if (pd->max_width) | ||
74 | set->max_width = pd->max_width; | ||
75 | if (pd->cfg_gpio) | ||
76 | set->cfg_gpio = pd->cfg_gpio; | ||
77 | if (pd->cfg_card) | ||
78 | set->cfg_card = pd->cfg_card; | ||
79 | if (pd->host_caps) | ||
80 | set->host_caps |= pd->host_caps; | ||
81 | if (pd->clk_type) | ||
82 | set->clk_type = pd->clk_type; | ||
83 | } | 66 | } |
diff --git a/arch/arm/plat-samsung/dev-ts.c b/arch/arm/plat-samsung/dev-ts.c index 82543f0248ac..5f3d46a9bd88 100644 --- a/arch/arm/plat-samsung/dev-ts.c +++ b/arch/arm/plat-samsung/dev-ts.c | |||
@@ -43,8 +43,17 @@ struct platform_device s3c_device_ts = { | |||
43 | .resource = s3c_ts_resource, | 43 | .resource = s3c_ts_resource, |
44 | }; | 44 | }; |
45 | 45 | ||
46 | static struct s3c2410_ts_mach_info default_ts_data __initdata = { | ||
47 | .delay = 10000, | ||
48 | .presc = 49, | ||
49 | .oversampling_shift = 2, | ||
50 | }; | ||
51 | |||
46 | void __init s3c24xx_ts_set_platdata(struct s3c2410_ts_mach_info *pd) | 52 | void __init s3c24xx_ts_set_platdata(struct s3c2410_ts_mach_info *pd) |
47 | { | 53 | { |
54 | if (!pd) | ||
55 | pd = &default_ts_data; | ||
56 | |||
48 | s3c_set_platdata(pd, sizeof(struct s3c2410_ts_mach_info), | 57 | s3c_set_platdata(pd, sizeof(struct s3c2410_ts_mach_info), |
49 | &s3c_device_ts); | 58 | &s3c_device_ts); |
50 | } | 59 | } |
diff --git a/arch/arm/plat-samsung/include/plat/dma-s3c24xx.h b/arch/arm/plat-samsung/include/plat/dma-s3c24xx.h index 336d5ac02035..ab9bce637cbd 100644 --- a/arch/arm/plat-samsung/include/plat/dma-s3c24xx.h +++ b/arch/arm/plat-samsung/include/plat/dma-s3c24xx.h | |||
@@ -18,11 +18,6 @@ extern struct s3c2410_dma_chan s3c2410_chans[S3C_DMA_CHANNELS]; | |||
18 | #define DMA_CH_VALID (1<<31) | 18 | #define DMA_CH_VALID (1<<31) |
19 | #define DMA_CH_NEVER (1<<30) | 19 | #define DMA_CH_NEVER (1<<30) |
20 | 20 | ||
21 | struct s3c24xx_dma_addr { | ||
22 | unsigned long from; | ||
23 | unsigned long to; | ||
24 | }; | ||
25 | |||
26 | /* struct s3c24xx_dma_map | 21 | /* struct s3c24xx_dma_map |
27 | * | 22 | * |
28 | * this holds the mapping information for the channel selected | 23 | * this holds the mapping information for the channel selected |
@@ -31,7 +26,6 @@ struct s3c24xx_dma_addr { | |||
31 | 26 | ||
32 | struct s3c24xx_dma_map { | 27 | struct s3c24xx_dma_map { |
33 | const char *name; | 28 | const char *name; |
34 | struct s3c24xx_dma_addr hw_addr; | ||
35 | 29 | ||
36 | unsigned long channels[S3C_DMA_CHANNELS]; | 30 | unsigned long channels[S3C_DMA_CHANNELS]; |
37 | unsigned long channels_rx[S3C_DMA_CHANNELS]; | 31 | unsigned long channels_rx[S3C_DMA_CHANNELS]; |
diff --git a/arch/arm/plat-samsung/include/plat/map-s3c.h b/arch/arm/plat-samsung/include/plat/map-s3c.h new file mode 100644 index 000000000000..7d048759b772 --- /dev/null +++ b/arch/arm/plat-samsung/include/plat/map-s3c.h | |||
@@ -0,0 +1,84 @@ | |||
1 | /* linux/arch/arm/plat-samsung/include/plat/map-s3c.h | ||
2 | * | ||
3 | * Copyright (c) 2008 Simtec Electronics | ||
4 | * Ben Dooks <ben@simtec.co.uk> | ||
5 | * | ||
6 | * S3C24XX - Memory map definitions | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License version 2 as | ||
10 | * published by the Free Software Foundation. | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_PLAT_MAP_S3C_H | ||
14 | #define __ASM_PLAT_MAP_S3C_H __FILE__ | ||
15 | |||
16 | #define S3C24XX_VA_IRQ S3C_VA_IRQ | ||
17 | #define S3C24XX_VA_MEMCTRL S3C_VA_MEM | ||
18 | #define S3C24XX_VA_UART S3C_VA_UART | ||
19 | |||
20 | #define S3C24XX_VA_TIMER S3C_VA_TIMER | ||
21 | #define S3C24XX_VA_CLKPWR S3C_VA_SYS | ||
22 | #define S3C24XX_VA_WATCHDOG S3C_VA_WATCHDOG | ||
23 | |||
24 | #define S3C2412_VA_SSMC S3C_ADDR_CPU(0x00000000) | ||
25 | #define S3C2412_VA_EBI S3C_ADDR_CPU(0x00010000) | ||
26 | |||
27 | #define S3C2410_PA_UART (0x50000000) | ||
28 | #define S3C24XX_PA_UART S3C2410_PA_UART | ||
29 | |||
30 | #ifndef S3C_UART_OFFSET | ||
31 | #define S3C_UART_OFFSET (0x400) | ||
32 | #endif | ||
33 | |||
34 | /* | ||
35 | * GPIO ports | ||
36 | * | ||
37 | * the calculation for the VA of this must ensure that | ||
38 | * it is the same distance apart from the UART in the | ||
39 | * phsyical address space, as the initial mapping for the IO | ||
40 | * is done as a 1:1 mapping. This puts it (currently) at | ||
41 | * 0xFA800000, which is not in the way of any current mapping | ||
42 | * by the base system. | ||
43 | */ | ||
44 | |||
45 | #define S3C2410_PA_GPIO (0x56000000) | ||
46 | #define S3C24XX_PA_GPIO S3C2410_PA_GPIO | ||
47 | |||
48 | #define S3C24XX_VA_GPIO ((S3C24XX_PA_GPIO - S3C24XX_PA_UART) + S3C24XX_VA_UART) | ||
49 | #define S3C64XX_VA_GPIO S3C_ADDR_CPU(0x00000000) | ||
50 | |||
51 | #define S3C64XX_VA_MODEM S3C_ADDR_CPU(0x00100000) | ||
52 | #define S3C64XX_VA_USB_HSPHY S3C_ADDR_CPU(0x00200000) | ||
53 | |||
54 | #define S3C_VA_USB_HSPHY S3C64XX_VA_USB_HSPHY | ||
55 | |||
56 | /* | ||
57 | * ISA style IO, for each machine to sort out mappings for, | ||
58 | * if it implements it. We reserve two 16M regions for ISA. | ||
59 | */ | ||
60 | |||
61 | #define S3C2410_ADDR(x) S3C_ADDR(x) | ||
62 | |||
63 | #define S3C24XX_VA_ISA_WORD S3C2410_ADDR(0x02000000) | ||
64 | #define S3C24XX_VA_ISA_BYTE S3C2410_ADDR(0x03000000) | ||
65 | |||
66 | /* deal with the registers that move under the 2412/2413 */ | ||
67 | |||
68 | #if defined(CONFIG_CPU_S3C2412) || defined(CONFIG_CPU_S3C2413) | ||
69 | #ifndef __ASSEMBLY__ | ||
70 | extern void __iomem *s3c24xx_va_gpio2; | ||
71 | #endif | ||
72 | #ifdef CONFIG_CPU_S3C2412_ONLY | ||
73 | #define S3C24XX_VA_GPIO2 (S3C24XX_VA_GPIO + 0x10) | ||
74 | #else | ||
75 | #define S3C24XX_VA_GPIO2 s3c24xx_va_gpio2 | ||
76 | #endif | ||
77 | #else | ||
78 | #define s3c24xx_va_gpio2 S3C24XX_VA_GPIO | ||
79 | #define S3C24XX_VA_GPIO2 S3C24XX_VA_GPIO | ||
80 | #endif | ||
81 | |||
82 | #include <plat/map-s5p.h> | ||
83 | |||
84 | #endif /* __ASM_PLAT_MAP_S3C_H */ | ||
diff --git a/arch/arm/plat-s5p/include/plat/map-s5p.h b/arch/arm/plat-samsung/include/plat/map-s5p.h index 36d3551173b2..c2d7bdae5891 100644 --- a/arch/arm/plat-s5p/include/plat/map-s5p.h +++ b/arch/arm/plat-samsung/include/plat/map-s5p.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* linux/arch/arm/plat-s5p/include/plat/map-s5p.h | 1 | /* linux/arch/arm/plat-samsung/include/plat/map-s5p.h |
2 | * | 2 | * |
3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. | 3 | * Copyright (c) 2010 Samsung Electronics Co., Ltd. |
4 | * http://www.samsung.com/ | 4 | * http://www.samsung.com/ |
@@ -40,8 +40,6 @@ | |||
40 | #define S5P_VA_GIC_CPU S3C_ADDR(0x02810000) | 40 | #define S5P_VA_GIC_CPU S3C_ADDR(0x02810000) |
41 | #define S5P_VA_GIC_DIST S3C_ADDR(0x02820000) | 41 | #define S5P_VA_GIC_DIST S3C_ADDR(0x02820000) |
42 | 42 | ||
43 | #define S3C_VA_USB_HSPHY S3C_ADDR(0x02900000) | ||
44 | |||
45 | #define VA_VIC(x) (S3C_VA_IRQ + ((x) * 0x10000)) | 43 | #define VA_VIC(x) (S3C_VA_IRQ + ((x) * 0x10000)) |
46 | #define VA_VIC0 VA_VIC(0) | 44 | #define VA_VIC0 VA_VIC(0) |
47 | #define VA_VIC1 VA_VIC(1) | 45 | #define VA_VIC1 VA_VIC(1) |
@@ -58,4 +56,6 @@ | |||
58 | #define S3C_UART_OFFSET (0x400) | 56 | #define S3C_UART_OFFSET (0x400) |
59 | #endif | 57 | #endif |
60 | 58 | ||
59 | #include <plat/map-s3c.h> | ||
60 | |||
61 | #endif /* __ASM_PLAT_MAP_S5P_H */ | 61 | #endif /* __ASM_PLAT_MAP_S5P_H */ |
diff --git a/arch/arm/plat-samsung/include/plat/sdhci.h b/arch/arm/plat-samsung/include/plat/sdhci.h index 058e09654fe8..4a6552066c7e 100644 --- a/arch/arm/plat-samsung/include/plat/sdhci.h +++ b/arch/arm/plat-samsung/include/plat/sdhci.h | |||
@@ -86,6 +86,13 @@ struct s3c_sdhci_platdata { | |||
86 | struct mmc_card *card); | 86 | struct mmc_card *card); |
87 | }; | 87 | }; |
88 | 88 | ||
89 | /* s3c_sdhci_set_platdata() - common helper for setting SDHCI platform data | ||
90 | * @pd: The default platform data for this device. | ||
91 | * @set: Pointer to the platform data to fill in. | ||
92 | */ | ||
93 | extern void s3c_sdhci_set_platdata(struct s3c_sdhci_platdata *pd, | ||
94 | struct s3c_sdhci_platdata *set); | ||
95 | |||
89 | /** | 96 | /** |
90 | * s3c_sdhci0_set_platdata - Set platform data for S3C SDHCI device. | 97 | * s3c_sdhci0_set_platdata - Set platform data for S3C SDHCI device. |
91 | * @pd: Platform data to register to device. | 98 | * @pd: Platform data to register to device. |
diff --git a/arch/arm/plat-samsung/platformdata.c b/arch/arm/plat-samsung/platformdata.c index 7cf2e1e3b20f..6de1a3825927 100644 --- a/arch/arm/plat-samsung/platformdata.c +++ b/arch/arm/plat-samsung/platformdata.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <linux/platform_device.h> | 14 | #include <linux/platform_device.h> |
15 | 15 | ||
16 | #include <plat/devs.h> | 16 | #include <plat/devs.h> |
17 | #include <plat/sdhci.h> | ||
17 | 18 | ||
18 | void __init *s3c_set_platdata(void *pd, size_t pdsize, | 19 | void __init *s3c_set_platdata(void *pd, size_t pdsize, |
19 | struct platform_device *pdev) | 20 | struct platform_device *pdev) |
@@ -35,3 +36,24 @@ void __init *s3c_set_platdata(void *pd, size_t pdsize, | |||
35 | pdev->dev.platform_data = npd; | 36 | pdev->dev.platform_data = npd; |
36 | return npd; | 37 | return npd; |
37 | } | 38 | } |
39 | |||
40 | void s3c_sdhci_set_platdata(struct s3c_sdhci_platdata *pd, | ||
41 | struct s3c_sdhci_platdata *set) | ||
42 | { | ||
43 | set->cd_type = pd->cd_type; | ||
44 | set->ext_cd_init = pd->ext_cd_init; | ||
45 | set->ext_cd_cleanup = pd->ext_cd_cleanup; | ||
46 | set->ext_cd_gpio = pd->ext_cd_gpio; | ||
47 | set->ext_cd_gpio_invert = pd->ext_cd_gpio_invert; | ||
48 | |||
49 | if (pd->max_width) | ||
50 | set->max_width = pd->max_width; | ||
51 | if (pd->cfg_gpio) | ||
52 | set->cfg_gpio = pd->cfg_gpio; | ||
53 | if (pd->cfg_card) | ||
54 | set->cfg_card = pd->cfg_card; | ||
55 | if (pd->host_caps) | ||
56 | set->host_caps |= pd->host_caps; | ||
57 | if (pd->clk_type) | ||
58 | set->clk_type = pd->clk_type; | ||
59 | } | ||
diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c index 79bcb4316930..0cbd5a0a9332 100644 --- a/arch/arm/vfp/vfpmodule.c +++ b/arch/arm/vfp/vfpmodule.c | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <linux/module.h> | 11 | #include <linux/module.h> |
12 | #include <linux/types.h> | 12 | #include <linux/types.h> |
13 | #include <linux/cpu.h> | 13 | #include <linux/cpu.h> |
14 | #include <linux/cpu_pm.h> | ||
14 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
15 | #include <linux/notifier.h> | 16 | #include <linux/notifier.h> |
16 | #include <linux/signal.h> | 17 | #include <linux/signal.h> |
@@ -68,7 +69,7 @@ static bool vfp_state_in_hw(unsigned int cpu, struct thread_info *thread) | |||
68 | /* | 69 | /* |
69 | * Force a reload of the VFP context from the thread structure. We do | 70 | * Force a reload of the VFP context from the thread structure. We do |
70 | * this by ensuring that access to the VFP hardware is disabled, and | 71 | * this by ensuring that access to the VFP hardware is disabled, and |
71 | * clear last_VFP_context. Must be called from non-preemptible context. | 72 | * clear vfp_current_hw_state. Must be called from non-preemptible context. |
72 | */ | 73 | */ |
73 | static void vfp_force_reload(unsigned int cpu, struct thread_info *thread) | 74 | static void vfp_force_reload(unsigned int cpu, struct thread_info *thread) |
74 | { | 75 | { |
@@ -436,9 +437,7 @@ static void vfp_enable(void *unused) | |||
436 | set_copro_access(access | CPACC_FULL(10) | CPACC_FULL(11)); | 437 | set_copro_access(access | CPACC_FULL(10) | CPACC_FULL(11)); |
437 | } | 438 | } |
438 | 439 | ||
439 | #ifdef CONFIG_PM | 440 | #ifdef CONFIG_CPU_PM |
440 | #include <linux/syscore_ops.h> | ||
441 | |||
442 | static int vfp_pm_suspend(void) | 441 | static int vfp_pm_suspend(void) |
443 | { | 442 | { |
444 | struct thread_info *ti = current_thread_info(); | 443 | struct thread_info *ti = current_thread_info(); |
@@ -468,19 +467,33 @@ static void vfp_pm_resume(void) | |||
468 | fmxr(FPEXC, fmrx(FPEXC) & ~FPEXC_EN); | 467 | fmxr(FPEXC, fmrx(FPEXC) & ~FPEXC_EN); |
469 | } | 468 | } |
470 | 469 | ||
471 | static struct syscore_ops vfp_pm_syscore_ops = { | 470 | static int vfp_cpu_pm_notifier(struct notifier_block *self, unsigned long cmd, |
472 | .suspend = vfp_pm_suspend, | 471 | void *v) |
473 | .resume = vfp_pm_resume, | 472 | { |
473 | switch (cmd) { | ||
474 | case CPU_PM_ENTER: | ||
475 | vfp_pm_suspend(); | ||
476 | break; | ||
477 | case CPU_PM_ENTER_FAILED: | ||
478 | case CPU_PM_EXIT: | ||
479 | vfp_pm_resume(); | ||
480 | break; | ||
481 | } | ||
482 | return NOTIFY_OK; | ||
483 | } | ||
484 | |||
485 | static struct notifier_block vfp_cpu_pm_notifier_block = { | ||
486 | .notifier_call = vfp_cpu_pm_notifier, | ||
474 | }; | 487 | }; |
475 | 488 | ||
476 | static void vfp_pm_init(void) | 489 | static void vfp_pm_init(void) |
477 | { | 490 | { |
478 | register_syscore_ops(&vfp_pm_syscore_ops); | 491 | cpu_pm_register_notifier(&vfp_cpu_pm_notifier_block); |
479 | } | 492 | } |
480 | 493 | ||
481 | #else | 494 | #else |
482 | static inline void vfp_pm_init(void) { } | 495 | static inline void vfp_pm_init(void) { } |
483 | #endif /* CONFIG_PM */ | 496 | #endif /* CONFIG_CPU_PM */ |
484 | 497 | ||
485 | /* | 498 | /* |
486 | * Ensure that the VFP state stored in 'thread->vfpstate' is up to date | 499 | * Ensure that the VFP state stored in 'thread->vfpstate' is up to date |