Root/target/linux/coldfire/patches/004-MCF54418-support-in-Linux-2.6.38.patch

1From b23f9dc392de5be8a2bc17342d6aee49208a80d8 Mon Sep 17 00:00:00 2001
2From: Alison Wang <b18965@freescale.com>
3Date: Thu, 4 Aug 2011 09:59:39 +0800
4Subject: [PATCH 04/52] MCF54418 support in Linux 2.6.38
5
6Add MCF54418 support in Linux 2.6.38.
7
8Signed-off-by: Alison Wang <b18965@freescale.com>
9---
10 arch/m68k/coldfire/m5441x/Makefile | 38 +
11 arch/m68k/coldfire/m5441x/config.c | 604 +++++++++++++
12 arch/m68k/coldfire/m5441x/devices.c | 787 +++++++++++++++++
13 arch/m68k/configs/m54418twr_defconfig | 1244 +++++++++++++++++++++++++++
14 arch/m68k/include/asm/cf_5441x_cacheflush.h | 527 ++++++++++++
15 arch/m68k/include/asm/mcf5441x_ccm.h | 157 ++++
16 arch/m68k/include/asm/mcf5441x_clock.h | 22 +
17 arch/m68k/include/asm/mcf5441x_dspi.h | 671 +++++++++++++++
18 arch/m68k/include/asm/mcf5441x_dtim.h | 95 ++
19 arch/m68k/include/asm/mcf5441x_edma.h | 303 +++++++
20 arch/m68k/include/asm/mcf5441x_eport.h | 94 ++
21 arch/m68k/include/asm/mcf5441x_fbcs.h | 204 +++++
22 arch/m68k/include/asm/mcf5441x_flexcan.h | 139 +++
23 arch/m68k/include/asm/mcf5441x_gpio.h | 509 +++++++++++
24 arch/m68k/include/asm/mcf5441x_intc.h | 727 ++++++++++++++++
25 arch/m68k/include/asm/mcf5441x_pm.h | 33 +
26 arch/m68k/include/asm/mcf5441x_rtc.h | 127 +++
27 arch/m68k/include/asm/mcf5441x_scm.h | 33 +
28 arch/m68k/include/asm/mcf5441x_sdramc.h | 141 +++
29 arch/m68k/include/asm/mcf5441x_xbs.h | 77 ++
30 20 files changed, 6532 insertions(+), 0 deletions(-)
31 create mode 100644 arch/m68k/coldfire/m5441x/Makefile
32 create mode 100644 arch/m68k/coldfire/m5441x/config.c
33 create mode 100644 arch/m68k/coldfire/m5441x/devices.c
34 create mode 100644 arch/m68k/configs/m54418twr_defconfig
35 create mode 100644 arch/m68k/include/asm/cf_5441x_cacheflush.h
36 create mode 100644 arch/m68k/include/asm/mcf5441x_ccm.h
37 create mode 100644 arch/m68k/include/asm/mcf5441x_clock.h
38 create mode 100644 arch/m68k/include/asm/mcf5441x_dspi.h
39 create mode 100644 arch/m68k/include/asm/mcf5441x_dtim.h
40 create mode 100644 arch/m68k/include/asm/mcf5441x_edma.h
41 create mode 100644 arch/m68k/include/asm/mcf5441x_eport.h
42 create mode 100644 arch/m68k/include/asm/mcf5441x_fbcs.h
43 create mode 100644 arch/m68k/include/asm/mcf5441x_flexcan.h
44 create mode 100644 arch/m68k/include/asm/mcf5441x_gpio.h
45 create mode 100644 arch/m68k/include/asm/mcf5441x_intc.h
46 create mode 100644 arch/m68k/include/asm/mcf5441x_pm.h
47 create mode 100644 arch/m68k/include/asm/mcf5441x_rtc.h
48 create mode 100644 arch/m68k/include/asm/mcf5441x_scm.h
49 create mode 100644 arch/m68k/include/asm/mcf5441x_sdramc.h
50 create mode 100644 arch/m68k/include/asm/mcf5441x_xbs.h
51
52--- /dev/null
53+++ b/arch/m68k/coldfire/m5441x/Makefile
54@@ -0,0 +1,38 @@
55+#
56+# Makefile for Linux arch/m68k/coldfire/m5441x source directory
57+#
58+
59+obj-$(CONFIG_M5441X) += devices.o config.o
60+
61+ifneq ($(strip $(CONFIG_USB) $(CONFIG_USB_GADGET_FSL_USB2)),)
62+ obj-y += usb.o
63+endif
64+ifneq ($(strip $(CONFIG_USB_GADGET_FSL_USB2) $(CONFIG_USB_EHCI_HCD)),)
65+ifeq ($(strip $(CONFIG_USB_M5441X_FSLS)),)
66+ obj-y += usb_dr.o
67+endif
68+endif
69+
70+#ifneq ($(strip $(CONFIG_USB) $(CONFIG_USB_GADGET_FSL_USB2)),)
71+ifneq ($(strip $(CONFIG_USB_OTG) $(CONFIG_USB_M5441X_MAX3353_FSLS)),)
72+ obj-y += xcvr.o
73+endif
74+ifneq ($(strip $(CONFIG_USB_M5441X_MAX3353_FSLS)), )
75+ obj-y += max3353_xc.o
76+ifneq ($(strip $(CONFIG_USB_OTG)),)
77+ obj-m += max3353_otg.o
78+endif
79+endif
80+
81+# USB Host controller support
82+ifneq ($(strip $(CONFIG_USB_M5441X_H1)),)
83+ obj-y += usb_host.o xcvr_host.o
84+endif
85+
86+ifneq ($(CONFIG_FEC),)
87+obj-y += fec.o
88+endif
89+
90+ifneq ($(CONFIG_MODELO_SWITCH),)
91+obj-y += l2switch.o
92+endif
93--- /dev/null
94+++ b/arch/m68k/coldfire/m5441x/config.c
95@@ -0,0 +1,604 @@
96+/*
97+ * linux/arch/m68k/coldfire/m5441x/config.c
98+ *
99+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved.
100+ *
101+ * This program is free software; you can redistribute it and/or modify
102+ * it under the terms of the GNU General Public License as published by
103+ * the Free Software Foundation; either version 2 of the License, or
104+ * (at your option) any later version.
105+ */
106+
107+#include <linux/module.h>
108+#include <linux/init.h>
109+#include <linux/string.h>
110+#include <linux/kernel.h>
111+#include <linux/console.h>
112+#include <linux/bootmem.h>
113+#include <linux/mm.h>
114+#include <linux/sched.h>
115+#include <linux/clockchips.h>
116+#include <linux/delay.h>
117+#include <asm/bootinfo.h>
118+#include <asm/machdep.h>
119+#include <asm/coldfire.h>
120+#include <asm/cfcache.h>
121+#include <asm/cacheflush.h>
122+#include <asm/io.h>
123+#include <asm/cfmmu.h>
124+#include <asm/setup.h>
125+#include <asm/irq.h>
126+#include <asm/traps.h>
127+#include <asm/movs.h>
128+#include <asm/movs.h>
129+#include <asm/page.h>
130+#include <asm/pgalloc.h>
131+#include <asm/cf-sram.h>
132+
133+#include <asm/mcfsim.h>
134+
135+#define UBOOT_EXTRA_CLOCKS
136+#include <asm/bootinfo.h>
137+
138+#include <asm/mcf5441x_intc.h>
139+#include <asm/mcf5441x_sdramc.h>
140+#include <asm/mcf5441x_fbcs.h>
141+#include <asm/mcf5441x_dtim.h>
142+#include <asm/mcf5441x_xbs.h>
143+
144+extern int get_irq_list(struct seq_file *p, void *v);
145+extern char _text, _end;
146+extern char _etext, _edata, __init_begin, __init_end;
147+extern struct console mcfrs_console;
148+extern char m68k_command_line[CL_SIZE];
149+extern unsigned long availmem;
150+extern unsigned long shadow_cacr;
151+EXPORT_SYMBOL(shadow_cacr);
152+extern struct mem_info m68k_ramdisk;
153+
154+static int irq_enable[NR_IRQS];
155+unsigned long num_pages;
156+
157+/* cf dma physical addresses */
158+unsigned long cf_dma_base;
159+EXPORT_SYMBOL(cf_dma_base);
160+unsigned long cf_dma_end;
161+EXPORT_SYMBOL(cf_dma_end);
162+unsigned long cf_dma_size;
163+EXPORT_SYMBOL(cf_dma_size);
164+
165+/* ethernet mac addresses from uboot */
166+unsigned char uboot_enet0[6];
167+unsigned char uboot_enet1[6];
168+
169+void coldfire_sort_memrec(void)
170+{
171+ int i, j;
172+
173+ /* Sort the m68k_memory records by address */
174+ for (i = 0; i < m68k_num_memory; ++i) {
175+ for (j = i + 1; j < m68k_num_memory; ++j) {
176+ if (m68k_memory[i].addr > m68k_memory[j].addr) {
177+ struct mem_info tmp;
178+ tmp = m68k_memory[i];
179+ m68k_memory[i] = m68k_memory[j];
180+ m68k_memory[j] = tmp;
181+ }
182+ }
183+ }
184+ /* Trim off discontiguous bits */
185+ for (i = 1; i < m68k_num_memory; ++i) {
186+ if ((m68k_memory[i-1].addr + m68k_memory[i-1].size) !=
187+ m68k_memory[i].addr) {
188+ printk(KERN_DEBUG "m68k_parse_bootinfo: "
189+ "addr gap between 0x%lx & 0x%lx\n",
190+ m68k_memory[i-1].addr+m68k_memory[i-1].size,
191+ m68k_memory[i].addr);
192+ m68k_num_memory = i;
193+ break;
194+ }
195+ }
196+}
197+
198+/*
199+ * UBoot Handler
200+ */
201+int __init uboot_commandline(char *bootargs)
202+{
203+ int len = 0, cmd_line_len;
204+ static struct uboot_record uboot_info;
205+ u32 offset = PAGE_OFFSET_RAW - PHYS_OFFSET;
206+
207+ extern unsigned long uboot_info_stk;
208+
209+ /* validate address */
210+ if ((uboot_info_stk < PAGE_OFFSET_RAW) ||
211+ (uboot_info_stk >= (PAGE_OFFSET_RAW + CONFIG_SDRAM_SIZE)))
212+ return 0;
213+
214+ /* Add offset to get post-remapped kernel memory location */
215+ uboot_info.bdi = (struct bd_info *)
216+ ((*(u32 *)(uboot_info_stk)) + offset);
217+ uboot_info.initrd_start = (*(u32 *)(uboot_info_stk+4)) + offset;
218+ uboot_info.initrd_end = (*(u32 *)(uboot_info_stk+8)) + offset;
219+ uboot_info.cmd_line_start = (*(u32 *)(uboot_info_stk+12)) + offset;
220+ uboot_info.cmd_line_stop = (*(u32 *)(uboot_info_stk+16)) + offset;
221+
222+#if defined(CONFIG_BLK_DEV_INITRD)
223+ m68k_ramdisk.addr = uboot_info.initrd_start;
224+ m68k_ramdisk.size = (uboot_info.initrd_end - uboot_info.initrd_start) ?
225+ (uboot_info.initrd_end - uboot_info.initrd_start + 1) : 0;
226+#endif
227+
228+ /* copy over mac addresses */
229+ memcpy(uboot_enet0, uboot_info.bdi->bi_enet0addr, 6);
230+ memcpy(uboot_enet1, uboot_info.bdi->bi_enet1addr, 6);
231+
232+ /* copy command line */
233+ cmd_line_len = uboot_info.cmd_line_stop - uboot_info.cmd_line_start;
234+ if ((cmd_line_len > 0) && (cmd_line_len < CL_SIZE-1))
235+ len = (int)strncpy(bootargs, (char *)uboot_info.cmd_line_start,\
236+ cmd_line_len);
237+
238+ return len;
239+}
240+
241+#define DEFAULT_COMMAND_LINE \
242+ "debug root=/dev/nfs rw \
243+ nfsroot=172.27.155.1:/tftpboot/redstripe/rootfs/ \
244+ ip=172.27.155.51:172.27.155.1"
245+
246+/*
247+ * Early Coldfire Initialization.
248+ */
249+asmlinkage void __init cf_early_init(void)
250+{
251+ SET_VBR((void *)MCF_RAMBAR1);
252+
253+ /* Mask all interrupts */
254+ MCF_INTC0_IMRL = 0xFFFFFFFF;
255+ MCF_INTC0_IMRH = 0xFFFFFFFF;
256+ MCF_INTC1_IMRL = 0xFFFFFFFF;
257+ MCF_INTC1_IMRH = 0xFFFFFFFF;
258+
259+#if defined(CONFIG_USB)
260+ /* reset USB3300 */
261+ asm ("moveb #0x40, %%d0\n\t"
262+ "moveb %%d0, 0xec090000\n\t"
263+ : : : "%d0");
264+ mdelay(1);
265+ asm ("moveb #0x0, %%d0\n\t"
266+ "moveb %%d0, 0xec090000\n\t"
267+ : : : "%d0");
268+#endif
269+
270+#if defined(CONFIG_NOR_FLASH_BASE)
271+ MCF_FBCS_CSAR(1) = CONFIG_NOR_FLASH_BASE;
272+#else
273+ MCF_FBCS_CSAR(1) = 0x00000000;
274+#endif
275+
276+#if defined(CONFIG_SSD1289_FLEXBUS_MODE)
277+ MCF_FBCS_CSAR(0) = FLEXBUS_LCD_CMD_ADDRESS;
278+ MCF_FBCS_CSMR(0) = MCF_FBCS_CSMR_BAM_128K | MCF_FBCS_CSMR_V;
279+ MCF_FBCS_CSCR(0) = MCF_FBCS_CSCR_BLS | MCF_FBCS_CSCR_AA |
280+ MCF_FBCS_CSCR_PS_16;
281+#endif
282+
283+#if CONFIG_SDRAM_SIZE > (256*1024*1024)
284+ /* Init optional SDRAM chip select */
285+ MCF_SDRAMC_SDCS(1) = (256*1024*1024) | 0x1B;
286+#endif
287+
288+ MCF_XBS_CRS2 = 0x100;
289+ /* Setup SDRAM crossbar(XBS) priorities */
290+ MCF_XBS_PRS2 = (MCF_XBS_PRS_M0(MCF_XBS_PRI_2) | /*CPU*/
291+ MCF_XBS_PRS_M1(MCF_XBS_PRI_3) | /*eDMA*/
292+ MCF_XBS_PRS_M2(MCF_XBS_PRI_1) | /*FEC0*/
293+ MCF_XBS_PRS_M3(MCF_XBS_PRI_5) | /*FEC1*/
294+ MCF_XBS_PRS_M5(MCF_XBS_PRI_6) | /*PCI*/
295+ MCF_XBS_PRS_M6(MCF_XBS_PRI_4) | /*USB*/
296+ MCF_XBS_PRS_M7(MCF_XBS_PRI_7)); /*SBF*/
297+
298+ m68k_machtype = MACH_CFMMU;
299+ m68k_fputype = FPU_CFV4E;
300+ m68k_mmutype = MMU_CFV4E;
301+ m68k_cputype = CPU_CFV4E;
302+
303+ /* initialize PHYSRAM */
304+ m68k_num_memory = 0;
305+ m68k_memory[m68k_num_memory].addr = CONFIG_SDRAM_BASE; /* phys */
306+ m68k_memory[m68k_num_memory++].size = CONFIG_SDRAM_SIZE;
307+
308+ if (!uboot_commandline(m68k_command_line)) {
309+#if defined(CONFIG_BOOTPARAM)
310+ strncpy(m68k_command_line, CONFIG_BOOTPARAM_STRING, CL_SIZE-1);
311+#else
312+ strcpy(m68k_command_line, DEFAULT_COMMAND_LINE);
313+#endif
314+ }
315+
316+ /* Invalidate caches via CACR */
317+ flush_bcache();
318+ cacr_set(CACHE_DISABLE_MODE);
319+
320+ /* Turn on caches via CACR, enable EUSP */
321+ cacr_set(CACHE_INITIAL_MODE);
322+}
323+
324+/* Assembler routines */
325+asmlinkage void buserr(void);
326+asmlinkage void trap(void);
327+asmlinkage void system_call(void);
328+asmlinkage void inthandler(void);
329+
330+void __init coldfire_trap_init(void)
331+{
332+ int i = 0;
333+ e_vector *vectors;
334+
335+ vectors = (e_vector *)MCF_RAMBAR1;
336+ /*
337+ * There is a common trap handler and common interrupt
338+ * handler that handle almost every vector. We treat
339+ * the system call and bus error special, they get their
340+ * own first level handlers.
341+ */
342+ for (i = 3; (i <= 23); i++)
343+ vectors[i] = trap;
344+ for (i = 33; (i <= 63); i++)
345+ vectors[i] = trap;
346+ for (i = 24; (i <= 31); i++)
347+ vectors[i] = inthandler;
348+ for (i = 64; (i < 255); i++)
349+ vectors[i] = inthandler;
350+
351+ vectors[255] = 0;
352+ vectors[2] = buserr;
353+ vectors[32] = system_call;
354+}
355+
356+void settimericr(unsigned int timer, unsigned int level)
357+{
358+ volatile unsigned char *icrp;
359+ unsigned int icr = 0;
360+ unsigned char irq = 0;
361+
362+ if (timer <= 3) {
363+ switch (timer) {
364+ case 0:
365+ irq = 32;
366+ icr = MCFSIM_ICR_TIMER0;
367+ break;
368+ case 1:
369+ irq = 33;
370+ icr = MCFSIM_ICR_TIMER1;
371+ break;
372+ case 2:
373+ irq = 34;
374+ icr = MCFSIM_ICR_TIMER2;
375+ break;
376+ case 3:
377+ irq = 35;
378+ icr = MCFSIM_ICR_TIMER3;
379+ break;
380+ }
381+
382+ icrp = (volatile unsigned char *) (icr);
383+ *icrp = level;
384+ coldfire_enable_irq0(irq);
385+ }
386+}
387+
388+void coldfire_sched_clk_init(void);
389+
390+void coldfire_tick(void)
391+{
392+ /* Reset the ColdFire timer */
393+ __raw_writeb(MCF_DTIM_DTER_CAP | MCF_DTIM_DTER_REF, MCF_DTIM0_DTER);
394+}
395+
396+void __init coldfire_sched_init(irq_handler_t handler)
397+{
398+ unsigned int mcf_timerlevel = 5;
399+ unsigned int mcf_timervector = 64+32;
400+
401+ __raw_writew(MCF_DTIM_DTMR_RST_RST, MCF_DTIM0_DTMR);
402+ __raw_writel(((MCF_BUSCLK / 16) / HZ), MCF_DTIM0_DTRR);
403+ __raw_writew(MCF_DTIM_DTMR_ORRI | MCF_DTIM_DTMR_CLK_DIV16 |
404+ MCF_DTIM_DTMR_FRR | MCF_DTIM_DTMR_RST_EN, \
405+ MCF_DTIM0_DTMR);
406+
407+ request_irq(mcf_timervector, handler, IRQF_DISABLED, \
408+ "timer", (void *)MCF_DTIM0_DTMR);
409+
410+ settimericr(0, mcf_timerlevel);
411+
412+ /* initialize the fast clock */
413+ coldfire_sched_clk_init();
414+}
415+
416+int timerirqpending(int timer)
417+{
418+ unsigned int imr = 0;
419+ unsigned ret = 0;
420+
421+ switch (timer) {
422+ case 1:
423+ imr = 0x1;
424+ break;
425+ case 2:
426+ imr = 0x2;
427+ break;
428+ default:
429+ break;
430+ }
431+
432+ ret = getiprh() & imr;
433+ return ret;
434+}
435+
436+unsigned long coldfire_gettimeoffset(void)
437+{
438+ volatile unsigned long trr, tcn, offset;
439+
440+ tcn = __raw_readw(MCF_DTIM0_DTCN);
441+ trr = __raw_readl(MCF_DTIM0_DTRR);
442+ offset = (tcn * (1000000 / HZ)) / trr;
443+
444+ /* Check if we just wrapped the counters and maybe missed a tick */
445+ if ((offset < (1000000 / HZ / 2)) && timerirqpending(1))
446+ offset += 1000000 / HZ;
447+ return offset;
448+}
449+
450+/* sched_clock support */
451+
452+static unsigned long long sched_clk_val;
453+
454+static irqreturn_t coldfire_sched_clk_irq(int irq, void *dev)
455+{
456+ __raw_writeb(MCF_DTIM_DTER_CAP | MCF_DTIM_DTER_REF, MCF_DTIM3_DTER);
457+ sched_clk_val += 0x100000000LL;
458+
459+ return IRQ_HANDLED;
460+}
461+
462+/*
463+ * Setup DTIM3 as the 5441x sched_clock() implementation. The
464+ * input frequency to the clock is the internal bus clock (MCF_BUSCLK)
465+ * which is the system clock (MCF_CLK) / 2.
466+ *
467+ * On a system running at 266Mhz:
468+ * MCF_CLK = 266Mhz (266000000)
469+ * MCF_BUSCLK = 133Mhz (133000000)
470+ * DTIM3 Tick = 133Mhz (133000000)
471+ * Tick Resolution = 7.5ns (round to 8ns/Tick)
472+ *
473+ * On a system running at 240Mhz:
474+ * MCF_CLK = 240Mhz (240000000)
475+ * MCF_BUSCLK = 120Mhz (120000000)
476+ * DTIM3 Tick = 120Mhz (120000000)
477+ * Tick Resolution = 8.4ns (round to 8ns/Tick)
478+ */
479+void __init coldfire_sched_clk_init(void)
480+{
481+ unsigned int mcf_timerlevel = 5;
482+ unsigned int mcf_timervector = 64+32+3; /* DTIM3 */
483+
484+ printk(KERN_INFO "Initializing DTIM3 for sched_clock\n");
485+ __raw_writew(MCF_DTIM_DTMR_RST_RST, MCF_DTIM3_DTMR);
486+ __raw_writel(0xffffffff, MCF_DTIM3_DTRR);
487+ __raw_writew(MCF_DTIM_DTMR_ORRI | MCF_DTIM_DTMR_CLK_DIV1 | \
488+ MCF_DTIM_DTMR_RST_EN, MCF_DTIM3_DTMR);
489+
490+ sched_clk_val = 0;
491+ request_irq(mcf_timervector, coldfire_sched_clk_irq, IRQF_DISABLED, \
492+ "timer", (void *)MCF_DTIM3_DTMR);
493+
494+ settimericr(3, mcf_timerlevel);
495+}
496+
497+#ifndef CONFIG_GENERIC_CLOCKEVENTS
498+/* get highres timer */
499+unsigned long long sched_clock(void)
500+{
501+ unsigned long long ret = 0;
502+ ret = sched_clk_val | (unsigned long long)(MCF_REG32(MCF_DTIM3_DTCN));
503+ ret = ret << 3;
504+ return ret;
505+}
506+
507+#else /*CONFIG_GENERIC_CLOCKEVENTS*/
508+
509+static unsigned long long sched_dtim_clk_val;
510+
511+unsigned long long sched_clock(void)
512+{
513+ unsigned long flags;
514+ unsigned long long tcn, cycles;
515+
516+ local_irq_save(flags);
517+ tcn = ((unsigned long long)(MCF_REG32(MCF_DTIM2_DTCN)));
518+ cycles = sched_dtim_clk_val;
519+ local_irq_restore(flags);
520+ return cycles + tcn;
521+}
522+
523+unsigned long long sys_dtim2_read(void)
524+{
525+ unsigned long flags;
526+ unsigned long long tcn, cycles;
527+
528+ local_irq_save(flags);
529+ tcn = ((unsigned long long)(MCF_REG32(MCF_DTIM2_DTCN)));
530+ cycles = sched_dtim_clk_val;
531+ local_irq_restore(flags);
532+
533+ return cycles + tcn;
534+}
535+
536+static irqreturn_t coldfire_dtim_clk_irq(int irq, void *dev)
537+{
538+ struct clock_event_device *evt = (struct clock_event_device *)dev;
539+
540+ __raw_writeb(MCF_DTIM_DTER_CAP | MCF_DTIM_DTER_REF, MCF_DTIM2_DTER);
541+ sched_dtim_clk_val += (MCF_BUSCLK / 16) / HZ;
542+ evt->event_handler(evt);
543+ return IRQ_HANDLED;
544+}
545+
546+void sys_dtim2_init(struct clock_event_device *evt)
547+{
548+ unsigned int mcf_timerlevel = 5;
549+ unsigned int mcf_timervector = 64+32+2; /* DTIM2 */
550+
551+ printk(KERN_INFO "Initializing DTIM2 for sched_clock\n");
552+ __raw_writew(MCF_DTIM_DTMR_RST_RST, MCF_DTIM2_DTMR);
553+ __raw_writel(((MCF_BUSCLK / 16) / HZ)-1, MCF_DTIM2_DTRR);
554+ __raw_writew(MCF_DTIM_DTMR_ORRI | MCF_DTIM_DTMR_CLK_DIV16 |
555+ MCF_DTIM_DTMR_FRR | MCF_DTIM_DTMR_RST_EN, \
556+ MCF_DTIM2_DTMR);
557+
558+ request_irq(mcf_timervector, coldfire_dtim_clk_irq, IRQF_DISABLED, \
559+ "timer2", (void *)evt);
560+
561+ settimericr(3, mcf_timerlevel);
562+ return;
563+}
564+
565+#endif
566+
567+void coldfire_reboot(void)
568+{
569+ /* disable interrupts and do a software reset */
570+ asm("movew #0x2700, %%sr\n\t"
571+ "moveb #0x40, %%d0\n\t"
572+ "moveb %%d0, 0xec090000\n\t"
573+ : : : "%d0");
574+
575+ mdelay(10);
576+
577+ asm("moveb #0xc0, %%d0\n\t"
578+ "moveb %%d0, 0xec090000\n\t"
579+ : : : "%d0");
580+}
581+
582+static void coldfire_get_model(char *model)
583+{
584+ sprintf(model, "Version 4 ColdFire");
585+}
586+
587+/*
588+ * Setup the nodes and the boot memory.
589+ *
590+ * memory_start and memory_end are VIRTUAL addresses
591+ */
592+static void __init
593+coldfire_bootmem_alloc(unsigned long memory_start, unsigned long memory_end)
594+{
595+ unsigned long base_pfn;
596+
597+ /* compute total pages in system */
598+ num_pages = PAGE_ALIGN(memory_end - PAGE_OFFSET) >> PAGE_SHIFT;
599+
600+ /* align start/end to page boundries */
601+ memory_start = PAGE_ALIGN(memory_start);
602+ memory_end = memory_end & PAGE_MASK;
603+
604+ /* page numbers */
605+ base_pfn = __pa(PAGE_OFFSET) >> PAGE_SHIFT;
606+ min_low_pfn = __pa(memory_start) >> PAGE_SHIFT;
607+ max_low_pfn = __pa(memory_end) >> PAGE_SHIFT;
608+
609+ high_memory = (void *)memory_end;
610+ availmem = memory_start;
611+
612+ /* setup bootmem data */
613+ m68k_setup_node(0);
614+ availmem += init_bootmem_node(NODE_DATA(0), min_low_pfn,
615+ base_pfn, max_low_pfn);
616+ availmem = PAGE_ALIGN(availmem);
617+
618+ printk(KERN_INFO "** availmem=0x%lx pa(am)=0x%lx\n",
619+ availmem, __pa(availmem));
620+ printk(KERN_INFO "** mstart=0x%lx mend=0x%lx\n",
621+ memory_start, memory_end);
622+ printk(KERN_INFO "bpfn=0x%lx minpfn=0x%lx maxpfn=0x%lx\n",
623+ base_pfn, min_low_pfn, max_low_pfn);
624+
625+ /* turn over physram */
626+ free_bootmem(__pa(availmem), memory_end - availmem);
627+
628+ /* configure physical dma area */
629+ cf_dma_base = __pa(PAGE_ALIGN(memory_start));
630+ cf_dma_size = CONFIG_DMA_SIZE;
631+ cf_dma_end = CONFIG_SDRAM_BASE + cf_dma_size - 1;
632+
633+ printk(KERN_INFO "dma: phys base=0x%lx phys end=0x%lx virt base=0x%x\n",
634+ cf_dma_base, cf_dma_end, CONFIG_DMA_BASE);
635+
636+ printk(KERN_INFO "mdma=0x%x pa(mdma)=0x%lx\n",
637+ MAX_DMA_ADDRESS, __pa(MAX_DMA_ADDRESS));
638+}
639+
640+/*
641+ * Architecture setup for Coldfire
642+ */
643+void __init config_coldfire(void)
644+{
645+ unsigned long endmem, startmem;
646+
647+ /*
648+ * Calculate endmem from m68k_memory[0] assuming that a single
649+ * chunk of ram is being configured.
650+ */
651+ startmem = ((((int) &_end) + (PAGE_SIZE - 1)) & PAGE_MASK);
652+ endmem = PAGE_OFFSET + m68k_memory[0].size;
653+
654+ /* set virt to node shift to be the high nibble byte */
655+ m68k_virt_to_node_shift = 28;
656+
657+ printk(KERN_INFO "starting up linux startmem 0x%lx, endmem 0x%lx, \
658+ size %luMB\n", startmem, endmem, (endmem - startmem) >> 20);
659+
660+ memset(irq_enable, 0, sizeof(irq_enable));
661+
662+/* JKM -- moved early*/
663+/*register_console(&mcfrs_console);*/
664+
665+ /*
666+ * Setup coldfire mach-specific handlers
667+ */
668+ mach_max_dma_address = 0xffffffff;
669+ mach_sched_init = coldfire_sched_init;
670+ mach_tick = coldfire_tick;
671+ mach_gettimeoffset = coldfire_gettimeoffset;
672+ mach_reset = coldfire_reboot;
673+ mach_get_model = coldfire_get_model;
674+
675+ coldfire_bootmem_alloc(startmem, endmem-1);
676+
677+#if defined(CONFIG_DUMMY_CONSOLE) || defined(CONFIG_FRAMEBUFFER_CONSOLE)
678+ conswitchp = &dummy_con;
679+#endif
680+
681+#if defined(CONFIG_SERIAL_COLDFIRE)
682+ /*
683+ * This causes trouble when it is re-registered later.
684+ * Currently this is fixed by conditionally commenting
685+ * out the register_console in mcf_serial.c
686+ */
687+/*JKM -- moved earlier*/
688+ register_console(&mcfrs_console);
689+#endif
690+}
691+
692+#ifdef CONFIG_SRAM
693+static int __init setup_sram_pool(void)
694+{
695+ declare_sram_pool((void *)CONFIG_SRAM_BASE, CONFIG_SRAM_SIZE);
696+ return 0;
697+}
698+postcore_initcall(setup_sram_pool);
699+#endif
700--- /dev/null
701+++ b/arch/m68k/coldfire/m5441x/devices.c
702@@ -0,0 +1,787 @@
703+/*
704+ * Coldfire M5441x Platform Device Configuration
705+ *
706+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved.
707+ *
708+ * Lanttor.Guo@freescale.com
709+ *
710+ * This program is free software; you can redistribute it and/or modify
711+ * it under the terms of the GNU General Public License as published by
712+ * the Free Software Foundation; either version 2 of the License, or
713+ * (at your option) any later version.
714+ */
715+#include <linux/module.h>
716+#include <linux/kernel.h>
717+#include <linux/init.h>
718+#include <linux/platform_device.h>
719+#include <linux/fsl_devices.h>
720+#include <linux/spi/spi.h>
721+#include <linux/spi/flash.h>
722+#include <linux/i2c.h>
723+
724+#include <linux/interrupt.h>
725+#include <linux/init.h>
726+#include <linux/mtd/partitions.h>
727+#ifdef CONFIG_MMC_SPI
728+#include <linux/mmc/host.h>
729+#include <linux/spi/mmc_spi.h>
730+#endif
731+
732+#include <asm/coldfire.h>
733+#include <asm/mcfsim.h>
734+#include <asm/mcfuart.h>
735+#include <asm/mcfqspi.h>
736+#include <asm/mcfdspi.h>
737+#include <asm/cf_io.h>
738+
739+/*
740+ * I2C: only support i2c0 module on m5441x platform
741+ */
742+#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
743+static struct resource coldfire_i2c_resources[] = {
744+ { /* I/O */
745+ .start = 0xFC058000,
746+ .end = 0xFC058010,
747+ .flags = IORESOURCE_MEM,
748+ },
749+ { /* IRQ */
750+ .start = (64 + 30),
751+ .end = (64 + 30),
752+ .flags = IORESOURCE_IRQ,
753+ },
754+};
755+
756+static struct platform_device coldfire_i2c_device = {
757+ .name = "mcf-i2c",
758+ .id = 0, /*bus number*/
759+ .num_resources = ARRAY_SIZE(coldfire_i2c_resources),
760+ .resource = coldfire_i2c_resources,
761+};
762+
763+static void mcf5441x_init_i2c(void)
764+{
765+ MCF_PM_PPMCR0 = 22;
766+ platform_device_register(&coldfire_i2c_device);
767+}
768+
769+#ifdef CONFIG_I2C_BOARDINFO
770+static struct i2c_board_info mcf_i2c_devices[] = {
771+#ifdef CONFIG_USB_M5441X_MAX3353_FSLS
772+ {
773+ I2C_BOARD_INFO("max3353", 0x2c),
774+ },
775+#endif
776+};
777+#endif
778+
779+#endif
780+
781+#if defined(CONFIG_MMC_ESDHC)
782+static struct resource sd_mmc_esdhc_resources[] = {
783+ [0] = {
784+ .name = "esdhc-module",
785+ .start = 0xFC0CC000,
786+ .end = 0xFC0CC000 + 0x100,
787+ .flags = IORESOURCE_MEM,
788+ },
789+ [1] = {
790+ .name = "esdhc-int-level",
791+ .start = (64 + 64 + 64 + 31),
792+ .end = (64 + 64 + 64 + 31),
793+ .flags = IORESOURCE_IRQ,
794+ },
795+ [2] = {
796+ .name = "esdhc-pin",
797+ .start = &MCF_GPIO_PAR_ESDHCH,
798+ .end = &MCF_GPIO_PAR_ESDHCL,
799+ .flags = IORESOURCE_MEM,
800+ },
801+ [3] = {
802+ .name = "esdhc-slew",
803+ .start = &MCF_GPIO_SRCR_SDHC,
804+ .end = &MCF_GPIO_SRCR_SDHC,
805+ .flags = IORESOURCE_MEM,
806+ },
807+};
808+
809+static struct platform_device sd_mmc_esdhc_device = {
810+ .name = "esdhc",
811+ .id = -1,
812+ .resource = sd_mmc_esdhc_resources,
813+ .num_resources = ARRAY_SIZE(sd_mmc_esdhc_resources),
814+};
815+#endif
816+
817+#if defined(CONFIG_MTD_NAND_FSL_NFC)
818+static struct resource nfc_resources[] = {
819+ [0] = {
820+ .name = "nfc-config",
821+ .start = 0xFC0FC000,
822+ .end = 0xFC0FFF3B,
823+ .flags = IORESOURCE_MEM,
824+
825+ },
826+ [1] = {
827+ .name = "nfc-int-level",
828+ .start = (64 + 64 + 64 + 25),
829+ .end = (64 + 64 + 64 + 25),
830+ .flags = IORESOURCE_IRQ,
831+ },
832+
833+};
834+static struct platform_device nfc_device = {
835+ .name = "fsl_nfc",
836+ .id = -1,
837+ .resource = nfc_resources,
838+ .num_resources = ARRAY_SIZE(nfc_resources),
839+};
840+#endif
841+
842+/*
843+ * DSPI
844+ */
845+#ifdef CONFIG_SPI
846+
847+#if defined(CONFIG_DSPI0) /* DSPI0 initialization */
848+#define M5441X_DSPI0_MCR 0xFC05C000 /* base */
849+
850+#define M5441X_DSPI0_IRQ_SOURCE (31)
851+#define M5441X_DSPI0_IRQ_VECTOR (64 + M5441X_DSPI0_IRQ_SOURCE)
852+
853+/* number of supported SPI selects */
854+#define SPI_NUM_CHIPSELECTS 8
855+
856+#define M5441X_SPI0_PAR_VAL (MCF_GPIO_PAR_DSPI0_SCK_DSPI0SCK | \
857+ MCF_GPIO_PAR_DSPI0_SOUT_DSPI0SOUT | \
858+ MCF_GPIO_PAR_DSPI0_SIN_DSPI0SIN | \
859+ MCF_GPIO_PAR_DSPI0_PCS0_DSPI0PCS0)
860+
861+
862+#ifdef CONFIG_MTD_PARTITIONS
863+static struct mtd_partition at26df081a_partitions[] = {
864+ {
865+ .name = "at26df081a",
866+ .size = (1024*64*16),
867+ .offset = 0x00000000,
868+ .mask_flags = 0,
869+ }
870+};
871+#endif
872+
873+#if defined(CONFIG_MTD_M25P80) || defined(CONFIG_MTD_M25P80_MODULE)
874+static struct flash_platform_data at26df081a_platform_data = {
875+ .name = "Atmel at26df081a SPI Flash chip",
876+#ifdef CONFIG_MTD_PARTITIONS
877+ .parts = at26df081a_partitions,
878+ .nr_parts =
879+ sizeof(at26df081a_partitions) / sizeof(*at26df081a_partitions),
880+#endif
881+ .type = "at26df081a"
882+};
883+
884+static struct coldfire_dspi_chip at26df081a_chip_info = {
885+ .mode = SPI_MODE_0,
886+ .bits_per_word = 16, /* How many bits per word to transfer
887+ per one time (8 or 16) */
888+ .void_write_data = 0,
889+ .dbr = 0,
890+ .pbr = 0,
891+ .br = 0,
892+ .pcssck = 1,
893+ .pasc = 1,
894+ .pdt = 1,
895+ .cssck = 4,
896+ .asc = 4,
897+ .dt = 14,
898+};
899+#endif
900+
901+#if defined(CONFIG_FB_FSL_SSD1289) || defined(CONFIG_FB_FSL_SSD1289_MODULE)
902+static struct fsl_ssd1289_fb_display fsl_ssd1289_data = {
903+ .width = 320,
904+ .height = 240,
905+ .xres = 320,
906+ .yres = 240,
907+ .bpp = 16,
908+};
909+#endif
910+
911+#if defined(CONFIG_SSD1289_SPI_MODE)
912+static struct coldfire_dspi_chip ssd1289_chip_info = {
913+ .mode = SPI_MODE_0,
914+ .bits_per_word = 9,
915+ .void_write_data = 0,
916+ .dbr = 0,
917+ .pbr = 0,
918+ .br = 1,
919+ .pcssck = 0,
920+ .pasc = 0,
921+ .pdt = 0,
922+ .cssck = 0,
923+ .asc = 0,
924+ .dt = 0,
925+};
926+#endif
927+
928+#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE)
929+static struct coldfire_dspi_chip spidev_chip_info = {
930+ .bits_per_word = 8,
931+};
932+#endif
933+
934+
935+static struct coldfire_spi_master spi0_master_info = {
936+ .bus_num = 1,
937+ .num_chipselect = SPI_NUM_CHIPSELECTS,
938+ .irq_list = 0, /* not used */
939+ .irq_source = M5441X_DSPI0_IRQ_SOURCE,
940+ .irq_vector = M5441X_DSPI0_IRQ_VECTOR,
941+ .irq_mask = (1 << M5441X_DSPI0_IRQ_SOURCE),
942+ .irq_lp = 0x2, /* irq level */
943+ .par_val = M5441X_SPI0_PAR_VAL,
944+ .cs_control = NULL,
945+};
946+
947+static struct resource coldfire_spi0_resources[] = {
948+ [0] = {
949+ .name = "spi-par",
950+ .start = (u32)&MCF_GPIO_PAR_DSPI0WH, /* PAR_DSPI0 */
951+ .end = (u32)&MCF_GPIO_PAR_DSPI0WH, /* PAR_DSPI0 */
952+ .flags = IORESOURCE_MEM
953+ },
954+
955+ [1] = {
956+ .name = "spi-module",
957+ .start = M5441X_DSPI0_MCR, /* DSPI MCR Base */
958+ .end = M5441X_DSPI0_MCR + 0xc0, /* DSPI mem map end */
959+ .flags = IORESOURCE_MEM
960+ },
961+
962+ [2] = {
963+ .name = "spi-int-level",
964+ .start = (u32)&MCF_INTC0_ICR31, /* ICR start */
965+ .end = (u32)&MCF_INTC0_ICR31, /* ICR end */
966+ .flags = IORESOURCE_MEM
967+ },
968+
969+ [3] = {
970+ .name = "spi-int-mask",
971+ .start = (u32)&MCF_INTC0_IMRL, /* IMRL */
972+ .end = (u32)&MCF_INTC0_IMRL, /* IMRL */
973+ .flags = IORESOURCE_MEM
974+ }
975+};
976+
977+static struct platform_device coldfire_spi0 = {
978+ .name = "spi_coldfire",
979+ .id = -1,
980+ .resource = coldfire_spi0_resources,
981+ .num_resources = ARRAY_SIZE(coldfire_spi0_resources),
982+ .dev = {
983+ .platform_data = &spi0_master_info,
984+ }
985+};
986+
987+#elif defined(CONFIG_DSPI1) /* DSPI1 initialization */
988+#define M5441X_DSPI1_MCR 0xFC03C000 /* base */
989+
990+#define M5441X_DSPI1_IRQ_SOURCE (54)
991+#define M5441X_DSPI1_IRQ_VECTOR (64 + 64 + M5441X_DSPI1_IRQ_SOURCE)
992+
993+/* number of supported SPI selects */
994+#define SPI_NUM_CHIPSELECTS 8
995+
996+
997+#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE)
998+static struct coldfire_dspi_chip spidev_chip_info = {
999+ .bits_per_word = 8,
1000+};
1001+#endif
1002+
1003+static struct coldfire_spi_master spi1_master_info = {
1004+ .bus_num = 1,
1005+ .num_chipselect = SPI_NUM_CHIPSELECTS,
1006+ .irq_list = 0, /* not used */
1007+ .irq_source = M5441X_DSPI1_IRQ_SOURCE,
1008+ .irq_vector = M5441X_DSPI1_IRQ_VECTOR,
1009+ .irq_mask = (1 << (M5441X_DSPI1_IRQ_SOURCE - 32)),
1010+ .irq_lp = 0x2, /* irq level */
1011+ .cs_control = NULL,
1012+};
1013+
1014+static struct resource coldfire_spi1_resources[] = {
1015+ [0] = {
1016+ .name = "spi-par",
1017+ .start = (u32)&MCF_GPIO_PAR_ESDHCH, /* PAR_ESDHCH */
1018+ .end = (u32)&MCF_GPIO_PAR_ESDHCL, /* PAR_ESDHCL */
1019+ .flags = IORESOURCE_MEM
1020+ },
1021+
1022+ [1] = {
1023+ .name = "spi-module",
1024+ .start = M5441X_DSPI1_MCR, /* DSPI MCR Base */
1025+ .end = M5441X_DSPI1_MCR + 0xc0, /* DSPI mem map end */
1026+ .flags = IORESOURCE_MEM
1027+ },
1028+
1029+ [2] = {
1030+ .name = "spi-int-level",
1031+ .start = (u32)&MCF_INTC1_ICR54, /* ICR start */
1032+ .end = (u32)&MCF_INTC1_ICR54, /* ICR end */
1033+ .flags = IORESOURCE_MEM
1034+ },
1035+
1036+ [3] = {
1037+ .name = "spi-int-mask",
1038+ .start = (u32)&MCF_INTC1_IMRH, /* IMRL */
1039+ .end = (u32)&MCF_INTC1_IMRH, /* IMRL */
1040+ .flags = IORESOURCE_MEM
1041+ }
1042+};
1043+
1044+static struct platform_device coldfire_spi1 = {
1045+ .name = "spi_coldfire",
1046+ .id = -1,
1047+ .resource = coldfire_spi1_resources,
1048+ .num_resources = ARRAY_SIZE(coldfire_spi1_resources),
1049+ .dev = {
1050+ .platform_data = &spi1_master_info,
1051+ }
1052+};
1053+
1054+#ifdef CONFIG_MMC_SPI
1055+static struct coldfire_dspi_chip dspi_sd_chip_info = {
1056+ .mode = SPI_MODE_0,
1057+ .bits_per_word = 8,
1058+ .void_write_data = 0xff,
1059+ .dbr = 0,
1060+ .pbr = 1,
1061+ .br = 1,
1062+ .pcssck = 2,
1063+ .pasc = 2,
1064+ .pdt = 2,
1065+ .cssck = 5,
1066+ .asc = 5,
1067+ .dt = 5,
1068+};
1069+
1070+int mmc_spi_init(struct device *mmc_spi_device,
1071+ irqreturn_t mmc_spi_irq_handler(int irq, void *private),
1072+ void *irq_privatedata)
1073+{
1074+ int ret;
1075+#if defined(CONFIG_DETECT_USE_EXTERN_IRQ1)
1076+ int card_detect_extern_irq = 64 + 1;
1077+ /*this is irq1 hardware work round*/
1078+ MCF_GPIO_PAR_IRQ0H |= 0x3;
1079+
1080+ MCF_EPORT_EPPAR = MCF_EPORT_EPPAR | MCF_EPORT_EPPAR_EPPA1_BOTH;
1081+ MCF_EPORT_EPIER = MCF_EPORT_EPIER | MCF_EPORT_EPIER_EPIE1;
1082+
1083+ MCF_INTC0_ICR1 = 7; /* IRQ1 */
1084+#if debug_mmc_spi
1085+ printk(KERN_INFO "MCF_INTC0_ICR1 %x MCF_EPORT_EPPAR %x "
1086+ "MCF_EPORT_EPFR %x MCF_EPORT_EPIER %x "
1087+ "MCF_INTC0_IMRL %x MCF_INTC0_INTFRCL %x "
1088+ "MCF_INTC0_IPRL %x\n",
1089+ MCF_INTC0_ICR1, MCF_EPORT_EPPAR, MCF_EPORT_EPFR,
1090+ MCF_EPORT_EPIER, MCF_INTC0_IMRL, MCF_INTC0_INTFRCL,
1091+ MCF_INTC0_IPRL);
1092+#endif
1093+#elif defined(CONFIG_DETECT_USE_EXTERN_IRQ7)
1094+ int card_detect_extern_irq = 64 + 7;
1095+ MCF_GPIO_PAR_IRQ0H |= MCF_GPIO_PAR_IRQH_IRQ7;
1096+
1097+ MCF_EPORT_EPPAR = MCF_EPORT_EPPAR | MCF_EPORT_EPPAR_EPPA7_BOTH;
1098+ MCF_EPORT_EPIER = MCF_EPORT_EPIER | MCF_EPORT_EPIER_EPIE7;
1099+
1100+ MCF_INTC0_ICR7 = 2; /* IRQ7 */
1101+#ifdef debug_mmc_spi
1102+ printk("MCF_INTC0_ICR7 %x MCF_EPORT_EPPAR %x\n",
1103+ MCF_INTC0_ICR7, MCF_EPORT_EPPAR);
1104+#endif
1105+#else
1106+ int card_detect_extern_irq = 64 + 7;
1107+ MCF_GPIO_PAR_IRQ0H |= MCF_GPIO_PAR_IRQH_IRQ7;
1108+
1109+ MCF_EPORT_EPPAR = MCF_EPORT_EPPAR | MCF_EPORT_EPPAR_EPPA7_BOTH;
1110+ MCF_EPORT_EPIER = MCF_EPORT_EPIER | MCF_EPORT_EPIER_EPIE7;
1111+
1112+ MCF_INTC0_ICR7 = 2; /* IRQ7 */
1113+#ifdef debug_mmc_spi
1114+ printk(KERN_INFO "MCF_INTC0_ICR1 %x MCF_EPORT_EPPAR %x\n",
1115+ MCF_INTC0_ICR7, MCF_EPORT_EPPAR);
1116+#endif
1117+#endif
1118+
1119+ ret = request_irq(card_detect_extern_irq,
1120+ mmc_spi_irq_handler, IRQF_DISABLED,
1121+ "mmc_spi_irq", irq_privatedata);
1122+ if (ret) {
1123+ printk(KERN_INFO "%s: request irq fail %x\n", __func__, ret);
1124+ return -EBUSY;
1125+ }
1126+
1127+ return 0;
1128+}
1129+
1130+static struct mmc_spi_platform_data mcf5441x_mmc_pdata = {
1131+ .ocr_mask = MMC_VDD_33_34,
1132+ .init = mmc_spi_init,
1133+};
1134+#endif
1135+
1136+#endif
1137+
1138+/* DSPI device */
1139+static struct spi_board_info spi_board_info[] = {
1140+
1141+#if defined(CONFIG_DSPI1) && defined(CONFIG_MMC_SPI)
1142+ {
1143+ .modalias = "mmc_spi",
1144+ .max_speed_hz = 50000000,
1145+ .bus_num = 1,
1146+ .chip_select = 0,
1147+ .platform_data = &mcf5441x_mmc_pdata,
1148+ .controller_data = &dspi_sd_chip_info,
1149+ },
1150+#endif
1151+#if defined(CONFIG_DSPI0) && (defined(CONFIG_MTD_M25P80) || \
1152+ defined(CONFIG_MTD_M25P80_MODULE))
1153+ {
1154+ .modalias = "m25p80", /* Name of spi driver for this device */
1155+ .max_speed_hz = 70000000, /* max spi clock in HZ */
1156+ .bus_num = 1,
1157+ .chip_select = CONFIG_DSP0_SBF_CS,
1158+ .platform_data = &at26df081a_platform_data,
1159+ .controller_data = &at26df081a_chip_info
1160+ },
1161+#endif
1162+
1163+#if defined(CONFIG_DSPI0) && defined(CONFIG_SSD1289_SPI_MODE)
1164+ {
1165+ .modalias = "spi-ssd1289",
1166+ .max_speed_hz = 50000000,
1167+ .bus_num = 1,
1168+ .chip_select = 0,
1169+ .platform_data = &fsl_ssd1289_data,
1170+ .controller_data = &ssd1289_chip_info
1171+ },
1172+#endif
1173+
1174+#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE)
1175+ {
1176+ .modalias = "spidev",
1177+ .max_speed_hz = 16000000, /* max clk (SCK) speed in HZ */
1178+ .bus_num = 1,
1179+ .chip_select = 0, /* CS0 */
1180+ .controller_data = &spidev_chip_info,
1181+ },
1182+#endif
1183+};
1184+
1185+/*
1186+ * m5441x_spi_init - Initialize SPI
1187+ */
1188+static int __init m5441x_spi_init(void)
1189+{
1190+ int retval;
1191+
1192+ /* register device */
1193+#if defined(CONFIG_DSPI0)
1194+ MCF_GPIO_PAR_DSPI0WH =
1195+ (MCF_GPIO_PAR_DSPI0WH & MCF_GPIO_PAR_DSPI0_SCK_MASK) |
1196+ MCF_GPIO_PAR_DSPI0_SCK_DSPI0SCK;
1197+ MCF_GPIO_PAR_DSPI0WH =
1198+ (MCF_GPIO_PAR_DSPI0WH & MCF_GPIO_PAR_DSPI0_SOUT_MASK) |
1199+ MCF_GPIO_PAR_DSPI0_SOUT_DSPI0SOUT;
1200+ MCF_GPIO_PAR_DSPI0WH =
1201+ (MCF_GPIO_PAR_DSPI0WH & MCF_GPIO_PAR_DSPI0_SIN_MASK) |
1202+ MCF_GPIO_PAR_DSPI0_SIN_DSPI0SIN;
1203+ MCF_GPIO_PAR_DSPI0WH =
1204+ (MCF_GPIO_PAR_DSPI0WH & MCF_GPIO_PAR_DSPI0_PCS0_MASK) |
1205+ MCF_GPIO_PAR_DSPI0_PCS0_DSPI0PCS0;
1206+ MCF_GPIO_PAR_DSPI0WL = 0x80;
1207+ retval = platform_device_register(&coldfire_spi0);
1208+ if (retval < 0)
1209+ goto out;
1210+#elif defined(CONFIG_DSPI1)
1211+ MCF_PM_PPMCR0 = 0xf;
1212+ MCF_GPIO_PAR_ESDHCH = 0x55; /* DAT[3:0] */
1213+ MCF_GPIO_PAR_ESDHCL = 0x05; /* CMD, CLK */
1214+ MCF_GPIO_SRCR_IRQ0 = 3;
1215+ MCF_GPIO_SRCR_SDHC = 3;
1216+ retval = platform_device_register(&coldfire_spi1);
1217+ if (retval < 0)
1218+ goto out;
1219+#endif
1220+
1221+ /* register board info */
1222+ if (ARRAY_SIZE(spi_board_info))
1223+ retval = spi_register_board_info(spi_board_info,
1224+ ARRAY_SIZE(spi_board_info));
1225+
1226+out:
1227+ return retval;
1228+}
1229+#endif
1230+
1231+#if defined(CONFIG_SERIAL_MCF) || defined(CONFIG_SERIAL_MCF_MODULE)
1232+/*
1233+ * UART initialization
1234+ */
1235+static struct mcf_platform_uart m5441x_uart_platform[] = {
1236+#ifdef CONFIG_SERIAL_MCF_UART0
1237+ {
1238+ .mapbase = MCFUART_BASE0,
1239+ .irq = MCFINT0_VECBASE + MCFINT_UART0,
1240+ },
1241+#endif
1242+#ifdef CONFIG_SERIAL_MCF_UART1
1243+ {
1244+ .mapbase = MCFUART_BASE1,
1245+ .irq = MCFINT0_VECBASE + MCFINT_UART1,
1246+ },
1247+#endif
1248+#ifdef CONFIG_SERIAL_MCF_UART2
1249+ {
1250+ .mapbase = MCFUART_BASE2,
1251+ .irq = MCFINT0_VECBASE + MCFINT_UART2,
1252+ },
1253+#endif
1254+#ifdef CONFIG_SERIAL_MCF_UART3
1255+ {
1256+ .mapbase = MCFUART_BASE3,
1257+ .irq = MCFINT0_VECBASE + MCFINT_UART3,
1258+ },
1259+#endif
1260+#ifdef CONFIG_SERIAL_MCF_UART4
1261+ {
1262+ .mapbase = MCFUART_BASE4,
1263+ .irq = MCFINT1_VECBASE + MCFINT_UART4,
1264+ },
1265+#endif
1266+#ifdef CONFIG_SERIAL_MCF_UART5
1267+ {
1268+ .mapbase = MCFUART_BASE5,
1269+ .irq = MCFINT1_VECBASE + MCFINT_UART5,
1270+ },
1271+#endif
1272+#ifdef CONFIG_SERIAL_MCF_UART6
1273+ {
1274+ .mapbase = MCFUART_BASE6,
1275+ .irq = MCFINT1_VECBASE + MCFINT_UART6,
1276+ },
1277+#endif
1278+#ifdef CONFIG_SERIAL_MCF_UART7
1279+ {
1280+ .mapbase = MCFUART_BASE7,
1281+ .irq = MCFINT1_VECBASE + MCFINT_UART7,
1282+ },
1283+#endif
1284+#ifdef CONFIG_SERIAL_MCF_UART8
1285+ {
1286+ .mapbase = MCFUART_BASE8,
1287+ .irq = MCFINT1_VECBASE + MCFINT_UART8,
1288+ },
1289+#endif
1290+#ifdef CONFIG_SERIAL_MCF_UART9
1291+ {
1292+ .mapbase = MCFUART_BASE9,
1293+ .irq = MCFINT1_VECBASE + MCFINT_UART9,
1294+ },
1295+#endif
1296+ {}
1297+};
1298+
1299+static struct platform_device m5441x_uart = {
1300+ .name = "mcfuart",
1301+ .id = 0,
1302+ .dev.platform_data = m5441x_uart_platform,
1303+};
1304+
1305+static void m5441x_uarts_init(void)
1306+{
1307+#ifdef CONFIG_SERIAL_MCF_UART0
1308+ /* enable uart0 clock */
1309+ MCF_PM_PPMCR0 = 24;
1310+ /* gpio pin assignment for uart0 */
1311+ MCF_GPIO_PAR_UART0 =
1312+ (MCF_GPIO_PAR_UART0 & MCF_GPIO_PAR_UART0_U0RXD_MASK) |
1313+ MCF_GPIO_PAR_UART0_U0RXD_U0RXD;
1314+ MCF_GPIO_PAR_UART0 =
1315+ (MCF_GPIO_PAR_UART0 & MCF_GPIO_PAR_UART0_U0TXD_MASK) |
1316+ MCF_GPIO_PAR_UART0_U0TXD_U0TXD;
1317+#endif
1318+#ifdef CONFIG_SERIAL_MCF_UART1
1319+ /* enable uart1 clock */
1320+ MCF_PM_PPMCR0 = 25;
1321+ /* gpio pin assignment for uart1 */
1322+ MCF_GPIO_PAR_UART1 =
1323+ (MCF_GPIO_PAR_UART1 & MCF_GPIO_PAR_UART1_U1RXD_MASK) |
1324+ MCF_GPIO_PAR_UART1_U1RXD_U1RXD;
1325+ MCF_GPIO_PAR_UART1 =
1326+ (MCF_GPIO_PAR_UART1 & MCF_GPIO_PAR_UART1_U1TXD_MASK) |
1327+ MCF_GPIO_PAR_UART1_U1TXD_U1TXD;
1328+#endif
1329+#ifdef CONFIG_SERIAL_MCF_UART2
1330+ /* enable uart2 clock */
1331+ MCF_PM_PPMCR0 = 26;
1332+ /* gpio pin assignment for uart2 */
1333+ MCF_GPIO_PAR_UART2 =
1334+ (MCF_GPIO_PAR_UART2 & MCF_GPIO_PAR_UART2_U2RXD_MASK) |
1335+ MCF_GPIO_PAR_UART2_U2RXD_U2RXD;
1336+ MCF_GPIO_PAR_UART2 =
1337+ (MCF_GPIO_PAR_UART2 & MCF_GPIO_PAR_UART2_U2TXD_MASK) |
1338+ MCF_GPIO_PAR_UART2_U2TXD_U2TXD;
1339+#endif
1340+#ifdef CONFIG_SERIAL_MCF_UART3
1341+ /* enable uart3 clock */
1342+ MCF_PM_PPMCR0 = 27;
1343+ /* gpio pin assignment for uart3 */
1344+ MCF_GPIO_PAR_DSPI0WH =
1345+ (MCF_GPIO_PAR_DSPI0WH & MCF_GPIO_PAR_DSPI0_SIN_MASK) |
1346+ MCF_GPIO_PAR_DSPI0_SIN_U3RXD;
1347+ MCF_GPIO_PAR_DSPI0WH =
1348+ (MCF_GPIO_PAR_DSPI0WH & MCF_GPIO_PAR_DSPI0_SOUT_MASK) |
1349+ MCF_GPIO_PAR_DSPI0_SOUT_U3TXD;
1350+#endif
1351+#ifdef CONFIG_SERIAL_MCF_UART4
1352+ /* enable uart4 clock */
1353+ MCF_PM_PPMCR1 = 24;
1354+ /* gpio pin assignment for uart4 */
1355+ MCF_GPIO_PAR_UART0 =
1356+ (MCF_GPIO_PAR_UART0 & MCF_GPIO_PAR_UART0_U0RTS_MASK) |
1357+ MCF_GPIO_PAR_UART0_U0RTS_U4RXD;
1358+ MCF_GPIO_PAR_UART0 =
1359+ (MCF_GPIO_PAR_UART0 & MCF_GPIO_PAR_UART0_U0CTS_MASK) |
1360+ MCF_GPIO_PAR_UART0_U0CTS_U4TXD;
1361+#endif
1362+#ifdef CONFIG_SERIAL_MCF_UART5
1363+ /* enable uart5 clock */
1364+ MCF_PM_PPMCR1 = 25;
1365+ /* gpio pin assignment for uart5 */
1366+ MCF_GPIO_PAR_UART1 =
1367+ (MCF_GPIO_PAR_UART1 & MCF_GPIO_PAR_UART1_U1RTS_MASK) |
1368+ MCF_GPIO_PAR_UART1_U1RTS_U5RXD;
1369+ MCF_GPIO_PAR_UART1 =
1370+ (MCF_GPIO_PAR_UART1 & MCF_GPIO_PAR_UART1_U1CTS_MASK) |
1371+ MCF_GPIO_PAR_UART1_U1CTS_U5TXD;
1372+#endif
1373+#ifdef CONFIG_SERIAL_MCF_UART6
1374+ /* enable uart6 clock */
1375+ MCF_PM_PPMCR1 = 26;
1376+ /* gpio pin assignment for uart6 */
1377+ MCF_GPIO_PAR_UART2 =
1378+ (MCF_GPIO_PAR_UART2 & MCF_GPIO_PAR_UART2_U2RTS_MASK) |
1379+ MCF_GPIO_PAR_UART2_U2RTS_U6RXD;
1380+ MCF_GPIO_PAR_UART2 =
1381+ (MCF_GPIO_PAR_UART2 & MCF_GPIO_PAR_UART2_U2CTS_MASK) |
1382+ MCF_GPIO_PAR_UART2_U2CTS_U6TXD;
1383+#endif
1384+#ifdef CONFIG_SERIAL_MCF_UART7
1385+ /* enable uart7 clock */
1386+ MCF_PM_PPMCR1 = 27;
1387+ /* gpio pin assignment for uart7 */
1388+ MCF_GPIO_PAR_SSI0H &= (MCF_GPIO_PAR_SSI0H_FS_MASK);
1389+ MCF_GPIO_PAR_SSI0H |= (MCF_GPIO_PAR_SSI0H_FS_U7TXD);
1390+ MCF_GPIO_PAR_SSI0L &= (MCF_GPIO_PAR_SSI0L_BCLK_MASK);
1391+ MCF_GPIO_PAR_SSI0L |= (MCF_GPIO_PAR_SSI0L_BCLK_U7RXD);
1392+#endif
1393+#ifdef CONFIG_SERIAL_MCF_UART8
1394+ /* enable uart8 clock */
1395+ MCF_PM_PPMCR1 = 28;
1396+ /* gpio pin assignment for uart8 */
1397+ MCF_GPIO_PAR_CANI2C =
1398+ (MCF_GPIO_PAR_CANI2C & MCF_GPIO_PAR_CANI2C_I2C0SCL_MASK) |
1399+ MCF_GPIO_PAR_CANI2C_I2C0SCL_U8TXD;
1400+ MCF_GPIO_PAR_CANI2C =
1401+ (MCF_GPIO_PAR_CANI2C & MCF_GPIO_PAR_CANI2C_I2C0SDA_MASK) |
1402+ MCF_GPIO_PAR_CANI2C_I2C0SDA_U8RXD;
1403+#endif
1404+#ifdef CONFIG_SERIAL_MCF_UART9
1405+ /* enable uart4 clock */
1406+ MCF_PM_PPMCR1 = 29;
1407+ /* gpio pin assignment for uart9 */
1408+ MCF_GPIO_PAR_CANI2C =
1409+ (MCF_GPIO_PAR_CANI2C & MCF_GPIO_PAR_CANI2C_CAN1TX_MASK) |
1410+ MCF_GPIO_PAR_CANI2C_CAN1TX_U9TXD;
1411+ MCF_GPIO_PAR_CANI2C =
1412+ (MCF_GPIO_PAR_CANI2C & MCF_GPIO_PAR_CANI2C_CAN1RX_MASK) |
1413+ MCF_GPIO_PAR_CANI2C_CAN1RX_U9RXD;
1414+#endif
1415+}
1416+#endif
1417+
1418+#if defined(CONFIG_RTC_M5441X) || defined(CONFIG_RTC_M5441X_MODULE)
1419+/*
1420+ * RTC initialization
1421+ */
1422+static struct platform_device rtc_device = {
1423+ .name = "rtc-m5441x",
1424+ .id = -1,
1425+};
1426+
1427+static void m5441x_rtc_init(void)
1428+{
1429+ /* Power management: enable RTC clock */
1430+ MCF_PM_PPMCR0 = 42;
1431+}
1432+#endif
1433+
1434+
1435+#if defined(CONFIG_SSD1289_FLEXBUS_MODE)
1436+static struct platform_device fsl_ssd1289_device = {
1437+ .name = "fsl-ssd1289",
1438+ .id = -1,
1439+ .dev = {
1440+ .platform_data = &fsl_ssd1289_data,
1441+ },
1442+};
1443+#endif
1444+
1445+static struct platform_device *m5441x_devices[] __initdata = {
1446+#if defined(CONFIG_SERIAL_MCF) || defined(CONFIG_SERIAL_MCF_MODULE)
1447+ &m5441x_uart,
1448+#endif
1449+#if defined(CONFIG_RTC_M5441X) || defined(CONFIG_RTC_M5441X_MODULE)
1450+ &rtc_device,
1451+#endif
1452+#if defined(CONFIG_MMC_ESDHC)
1453+ &sd_mmc_esdhc_device,
1454+#endif
1455+#if defined(CONFIG_MTD_NAND_FSL_NFC)
1456+ &nfc_device,
1457+#endif
1458+#if defined(CONFIG_SSD1289_FLEXBUS_MODE)
1459+ &fsl_ssd1289_device,
1460+#endif
1461+};
1462+
1463+static int __init mcf5441x_init_devices(void)
1464+{
1465+ printk(KERN_INFO "mcf5441x_init_devices: %s.\n", __func__);
1466+
1467+#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
1468+#ifdef CONFIG_I2C_BOARDINFO
1469+ i2c_register_board_info(0, mcf_i2c_devices,
1470+ ARRAY_SIZE(mcf_i2c_devices));
1471+#endif
1472+ mcf5441x_init_i2c();
1473+#endif
1474+#if defined(CONFIG_SPI) || defined(CONFIG_SPI_MODULE)
1475+ m5441x_spi_init();
1476+#endif
1477+#if defined(CONFIG_SERIAL_MCF) || defined(CONFIG_SERIAL_MCF_MODULE)
1478+ m5441x_uarts_init();
1479+#endif
1480+#if defined(CONFIG_RTC_M5441X) || defined(CONFIG_RTC_M5441X_MODULE)
1481+ m5441x_rtc_init();
1482+#endif
1483+ platform_add_devices(m5441x_devices, ARRAY_SIZE(m5441x_devices));
1484+ return 0;
1485+}
1486+
1487+arch_initcall(mcf5441x_init_devices);
1488+
1489+
1490--- /dev/null
1491+++ b/arch/m68k/configs/m54418twr_defconfig
1492@@ -0,0 +1,1244 @@
1493+#
1494+# Automatically generated make config: don't edit
1495+# Linux kernel version: 2.6.29
1496+# Fri Apr 23 14:36:43 2010
1497+#
1498+CONFIG_M68K=y
1499+CONFIG_MMU=y
1500+CONFIG_GENERIC_TIME=y
1501+CONFIG_GENERIC_CLOCKEVENTS=y
1502+CONFIG_RWSEM_GENERIC_SPINLOCK=y
1503+# CONFIG_ARCH_HAS_ILOG2_U32 is not set
1504+# CONFIG_ARCH_HAS_ILOG2_U64 is not set
1505+CONFIG_GENERIC_HWEIGHT=y
1506+CONFIG_GENERIC_CALIBRATE_DELAY=y
1507+# CONFIG_TIME_LOW_RES is not set
1508+CONFIG_GENERIC_IOMAP=y
1509+# CONFIG_NO_IOPORT is not set
1510+# CONFIG_NO_DMA is not set
1511+CONFIG_HZ=100
1512+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
1513+
1514+#
1515+# General setup
1516+#
1517+CONFIG_EXPERIMENTAL=y
1518+CONFIG_BROKEN_ON_SMP=y
1519+CONFIG_INIT_ENV_ARG_LIMIT=32
1520+CONFIG_LOCALVERSION=""
1521+CONFIG_LOCALVERSION_AUTO=y
1522+CONFIG_SWAP=y
1523+CONFIG_SYSVIPC=y
1524+CONFIG_SYSVIPC_SYSCTL=y
1525+# CONFIG_POSIX_MQUEUE is not set
1526+# CONFIG_BSD_PROCESS_ACCT is not set
1527+# CONFIG_TASKSTATS is not set
1528+# CONFIG_AUDIT is not set
1529+
1530+#
1531+# RCU Subsystem
1532+#
1533+CONFIG_CLASSIC_RCU=y
1534+# CONFIG_TREE_RCU is not set
1535+# CONFIG_PREEMPT_RCU is not set
1536+# CONFIG_TREE_RCU_TRACE is not set
1537+# CONFIG_PREEMPT_RCU_TRACE is not set
1538+CONFIG_IKCONFIG=y
1539+CONFIG_IKCONFIG_PROC=y
1540+CONFIG_LOG_BUF_SHIFT=17
1541+CONFIG_GROUP_SCHED=y
1542+CONFIG_FAIR_GROUP_SCHED=y
1543+# CONFIG_RT_GROUP_SCHED is not set
1544+CONFIG_USER_SCHED=y
1545+# CONFIG_CGROUP_SCHED is not set
1546+# CONFIG_CGROUPS is not set
1547+CONFIG_SYSFS_DEPRECATED=y
1548+CONFIG_SYSFS_DEPRECATED_V2=y
1549+# CONFIG_RELAY is not set
1550+# CONFIG_NAMESPACES is not set
1551+CONFIG_BLK_DEV_INITRD=y
1552+CONFIG_INITRAMFS_SOURCE=""
1553+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
1554+CONFIG_SYSCTL=y
1555+CONFIG_ANON_INODES=y
1556+CONFIG_EMBEDDED=y
1557+CONFIG_UID16=y
1558+CONFIG_SYSCTL_SYSCALL=y
1559+CONFIG_KALLSYMS=y
1560+# CONFIG_KALLSYMS_EXTRA_PASS is not set
1561+CONFIG_HOTPLUG=y
1562+CONFIG_PRINTK=y
1563+CONFIG_BUG=y
1564+CONFIG_ELF_CORE=y
1565+CONFIG_BASE_FULL=y
1566+CONFIG_FUTEX=y
1567+CONFIG_EPOLL=y
1568+CONFIG_SIGNALFD=y
1569+CONFIG_TIMERFD=y
1570+CONFIG_EVENTFD=y
1571+CONFIG_SHMEM=y
1572+CONFIG_AIO=y
1573+CONFIG_VM_EVENT_COUNTERS=y
1574+CONFIG_COMPAT_BRK=y
1575+CONFIG_SLAB=y
1576+# CONFIG_SLUB is not set
1577+# CONFIG_SLOB is not set
1578+# CONFIG_PROFILING is not set
1579+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
1580+CONFIG_SLABINFO=y
1581+CONFIG_RT_MUTEXES=y
1582+CONFIG_BASE_SMALL=0
1583+CONFIG_MODULES=y
1584+# CONFIG_MODULE_FORCE_LOAD is not set
1585+CONFIG_MODULE_UNLOAD=y
1586+CONFIG_MODULE_FORCE_UNLOAD=y
1587+# CONFIG_MODVERSIONS is not set
1588+# CONFIG_MODULE_SRCVERSION_ALL is not set
1589+CONFIG_BLOCK=y
1590+CONFIG_LBD=y
1591+# CONFIG_BLK_DEV_IO_TRACE is not set
1592+# CONFIG_BLK_DEV_BSG is not set
1593+# CONFIG_BLK_DEV_INTEGRITY is not set
1594+
1595+#
1596+# IO Schedulers
1597+#
1598+CONFIG_IOSCHED_NOOP=y
1599+CONFIG_IOSCHED_AS=y
1600+CONFIG_IOSCHED_DEADLINE=y
1601+CONFIG_IOSCHED_CFQ=y
1602+# CONFIG_DEFAULT_AS is not set
1603+# CONFIG_DEFAULT_DEADLINE is not set
1604+CONFIG_DEFAULT_CFQ=y
1605+# CONFIG_DEFAULT_NOOP is not set
1606+CONFIG_DEFAULT_IOSCHED="cfq"
1607+# CONFIG_FREEZER is not set
1608+
1609+#
1610+# Platform dependent setup
1611+#
1612+CONFIG_COLDFIRE=y
1613+CONFIG_CFV4E=y
1614+# CONFIG_FPU is not set
1615+# CONFIG_AMIGA is not set
1616+# CONFIG_ATARI is not set
1617+# CONFIG_MAC is not set
1618+# CONFIG_APOLLO is not set
1619+# CONFIG_VME is not set
1620+# CONFIG_HP300 is not set
1621+# CONFIG_SUN3X is not set
1622+# CONFIG_Q40 is not set
1623+# CONFIG_SUN3 is not set
1624+
1625+#
1626+# Processor type
1627+#
1628+# CONFIG_M68020 is not set
1629+# CONFIG_M68030 is not set
1630+# CONFIG_M68040 is not set
1631+# CONFIG_M68060 is not set
1632+# CONFIG_M5445X is not set
1633+CONFIG_HAVE_FSL_USB_DR=y
1634+# CONFIG_M547X_8X is not set
1635+CONFIG_M5441X=y
1636+CONFIG_M54418=y
1637+CONFIG_M54418EVB=y
1638+CONFIG_MCFCLK=250000000
1639+# CONFIG_MCF_USER_HALT is not set
1640+CONFIG_MMU_CFV4E=y
1641+CONFIG_SDRAM_BASE=0x40000000
1642+CONFIG_SDRAM_SIZE=0x08000000
1643+CONFIG_NOR_FLASH_BASE=0x00000000
1644+CONFIG_DMA_BASE=0xdf000000
1645+CONFIG_DMA_SIZE=0x1000000
1646+# CONFIG_VDSO is not set
1647+# CONFIG_M68KFPU_EMU is not set
1648+CONFIG_ADVANCED=y
1649+# CONFIG_RMW_INSNS is not set
1650+CONFIG_SINGLE_MEMORY_CHUNK=y
1651+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
1652+CONFIG_SELECT_MEMORY_MODEL=y
1653+CONFIG_FLATMEM_MANUAL=y
1654+# CONFIG_DISCONTIGMEM_MANUAL is not set
1655+# CONFIG_SPARSEMEM_MANUAL is not set
1656+CONFIG_FLATMEM=y
1657+CONFIG_FLAT_NODE_MEM_MAP=y
1658+CONFIG_NEED_MULTIPLE_NODES=y
1659+CONFIG_PAGEFLAGS_EXTENDED=y
1660+CONFIG_SPLIT_PTLOCK_CPUS=4
1661+# CONFIG_PHYS_ADDR_T_64BIT is not set
1662+CONFIG_ZONE_DMA_FLAG=1
1663+CONFIG_BOUNCE=y
1664+CONFIG_VIRT_TO_BUS=y
1665+CONFIG_UNEVICTABLE_LRU=y
1666+
1667+#
1668+# General setup
1669+#
1670+CONFIG_BINFMT_ELF=y
1671+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
1672+CONFIG_HAVE_AOUT=y
1673+# CONFIG_BINFMT_AOUT is not set
1674+# CONFIG_BINFMT_MISC is not set
1675+CONFIG_PROC_HARDWARE=y
1676+CONFIG_ZONE_DMA=y
1677+# CONFIG_ARCH_SUPPORTS_MSI is not set
1678+
1679+#
1680+# Power management options
1681+#
1682+CONFIG_PM=y
1683+CONFIG_NET=y
1684+
1685+#
1686+# Networking options
1687+#
1688+CONFIG_COMPAT_NET_DEV_OPS=y
1689+CONFIG_PACKET=y
1690+# CONFIG_PACKET_MMAP is not set
1691+CONFIG_UNIX=y
1692+CONFIG_XFRM=y
1693+# CONFIG_XFRM_USER is not set
1694+# CONFIG_XFRM_SUB_POLICY is not set
1695+# CONFIG_XFRM_MIGRATE is not set
1696+# CONFIG_XFRM_STATISTICS is not set
1697+CONFIG_NET_KEY=y
1698+# CONFIG_NET_KEY_MIGRATE is not set
1699+CONFIG_INET=y
1700+# CONFIG_IP_MULTICAST is not set
1701+CONFIG_IP_ADVANCED_ROUTER=y
1702+CONFIG_ASK_IP_FIB_HASH=y
1703+# CONFIG_IP_FIB_TRIE is not set
1704+CONFIG_IP_FIB_HASH=y
1705+# CONFIG_IP_MULTIPLE_TABLES is not set
1706+# CONFIG_IP_ROUTE_MULTIPATH is not set
1707+# CONFIG_IP_ROUTE_VERBOSE is not set
1708+CONFIG_IP_PNP=y
1709+# CONFIG_IP_PNP_DHCP is not set
1710+# CONFIG_IP_PNP_BOOTP is not set
1711+# CONFIG_IP_PNP_RARP is not set
1712+# CONFIG_NET_IPIP is not set
1713+# CONFIG_NET_IPGRE is not set
1714+# CONFIG_ARPD is not set
1715+# CONFIG_SYN_COOKIES is not set
1716+CONFIG_INET_AH=y
1717+CONFIG_INET_ESP=y
1718+# CONFIG_INET_IPCOMP is not set
1719+# CONFIG_INET_XFRM_TUNNEL is not set
1720+# CONFIG_INET_TUNNEL is not set
1721+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
1722+# CONFIG_INET_XFRM_MODE_TUNNEL is not set
1723+# CONFIG_INET_XFRM_MODE_BEET is not set
1724+# CONFIG_INET_LRO is not set
1725+CONFIG_INET_DIAG=y
1726+CONFIG_INET_TCP_DIAG=y
1727+# CONFIG_TCP_CONG_ADVANCED is not set
1728+CONFIG_TCP_CONG_CUBIC=y
1729+CONFIG_DEFAULT_TCP_CONG="cubic"
1730+# CONFIG_TCP_MD5SIG is not set
1731+# CONFIG_IPV6 is not set
1732+# CONFIG_NETWORK_SECMARK is not set
1733+# CONFIG_NETFILTER is not set
1734+# CONFIG_IP_DCCP is not set
1735+# CONFIG_IP_SCTP is not set
1736+# CONFIG_TIPC is not set
1737+# CONFIG_ATM is not set
1738+# CONFIG_BRIDGE is not set
1739+# CONFIG_NET_DSA is not set
1740+# CONFIG_VLAN_8021Q is not set
1741+# CONFIG_DECNET is not set
1742+# CONFIG_LLC2 is not set
1743+# CONFIG_IPX is not set
1744+# CONFIG_ATALK is not set
1745+# CONFIG_X25 is not set
1746+# CONFIG_LAPB is not set
1747+# CONFIG_ECONET is not set
1748+# CONFIG_WAN_ROUTER is not set
1749+# CONFIG_NET_SCHED is not set
1750+# CONFIG_DCB is not set
1751+
1752+#
1753+# Network testing
1754+#
1755+# CONFIG_NET_PKTGEN is not set
1756+# CONFIG_HAMRADIO is not set
1757+# CONFIG_CAN is not set
1758+# CONFIG_IRDA is not set
1759+# CONFIG_BT is not set
1760+# CONFIG_AF_RXRPC is not set
1761+# CONFIG_PHONET is not set
1762+CONFIG_WIRELESS=y
1763+# CONFIG_CFG80211 is not set
1764+CONFIG_WIRELESS_OLD_REGULATORY=y
1765+# CONFIG_WIRELESS_EXT is not set
1766+# CONFIG_LIB80211 is not set
1767+# CONFIG_MAC80211 is not set
1768+# CONFIG_WIMAX is not set
1769+# CONFIG_RFKILL is not set
1770+# CONFIG_NET_9P is not set
1771+# CONFIG_KLIPS is not set
1772+
1773+#
1774+# Device Drivers
1775+#
1776+
1777+#
1778+# Generic Driver Options
1779+#
1780+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
1781+# CONFIG_STANDALONE is not set
1782+CONFIG_PREVENT_FIRMWARE_BUILD=y
1783+CONFIG_FW_LOADER=y
1784+CONFIG_FIRMWARE_IN_KERNEL=y
1785+CONFIG_EXTRA_FIRMWARE=""
1786+# CONFIG_SYS_HYPERVISOR is not set
1787+# CONFIG_CONNECTOR is not set
1788+CONFIG_MTD=y
1789+# CONFIG_MTD_DEBUG is not set
1790+# CONFIG_MTD_CONCAT is not set
1791+CONFIG_MTD_PARTITIONS=y
1792+# CONFIG_MTD_TESTS is not set
1793+# CONFIG_MTD_REDBOOT_PARTS is not set
1794+CONFIG_MTD_CMDLINE_PARTS=y
1795+# CONFIG_MTD_AR7_PARTS is not set
1796+
1797+#
1798+# User Modules And Translation Layers
1799+#
1800+CONFIG_MTD_CHAR=y
1801+CONFIG_MTD_BLKDEVS=y
1802+CONFIG_MTD_BLOCK=y
1803+# CONFIG_FTL is not set
1804+# CONFIG_NFTL is not set
1805+# CONFIG_INFTL is not set
1806+# CONFIG_RFD_FTL is not set
1807+# CONFIG_SSFDC is not set
1808+# CONFIG_MTD_OOPS is not set
1809+
1810+#
1811+# RAM/ROM/Flash chip drivers
1812+#
1813+# CONFIG_MTD_CFI is not set
1814+# CONFIG_MTD_JEDECPROBE is not set
1815+CONFIG_MTD_MAP_BANK_WIDTH_1=y
1816+CONFIG_MTD_MAP_BANK_WIDTH_2=y
1817+CONFIG_MTD_MAP_BANK_WIDTH_4=y
1818+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
1819+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
1820+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
1821+CONFIG_MTD_CFI_I1=y
1822+CONFIG_MTD_CFI_I2=y
1823+# CONFIG_MTD_CFI_I4 is not set
1824+# CONFIG_MTD_CFI_I8 is not set
1825+# CONFIG_MTD_RAM is not set
1826+# CONFIG_MTD_ROM is not set
1827+# CONFIG_MTD_ABSENT is not set
1828+
1829+#
1830+# Mapping drivers for chip access
1831+#
1832+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
1833+# CONFIG_MTD_PLATRAM is not set
1834+
1835+#
1836+# Self-contained MTD device drivers
1837+#
1838+# CONFIG_MTD_DATAFLASH is not set
1839+CONFIG_MTD_M25P80=y
1840+CONFIG_M25PXX_USE_FAST_READ=y
1841+# CONFIG_MTD_SLRAM is not set
1842+# CONFIG_MTD_PHRAM is not set
1843+# CONFIG_MTD_MTDRAM is not set
1844+CONFIG_MTD_BLOCK2MTD=y
1845+
1846+#
1847+# Disk-On-Chip Device Drivers
1848+#
1849+# CONFIG_MTD_DOC2000 is not set
1850+# CONFIG_MTD_DOC2001 is not set
1851+# CONFIG_MTD_DOC2001PLUS is not set
1852+CONFIG_MTD_NAND=y
1853+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
1854+# CONFIG_MTD_NAND_ECC_SMC is not set
1855+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
1856+CONFIG_MTD_NAND_IDS=y
1857+# CONFIG_MTD_NAND_DISKONCHIP is not set
1858+# CONFIG_MTD_NAND_NANDSIM is not set
1859+# CONFIG_MTD_NAND_PLATFORM is not set
1860+# CONFIG_MTD_ALAUDA is not set
1861+CONFIG_MTD_NAND_FSL_NFC=y
1862+# CONFIG_MTD_ONENAND is not set
1863+
1864+#
1865+# LPDDR flash memory drivers
1866+#
1867+# CONFIG_MTD_LPDDR is not set
1868+
1869+#
1870+# UBI - Unsorted block images
1871+#
1872+# CONFIG_MTD_UBI is not set
1873+# CONFIG_PARPORT is not set
1874+CONFIG_BLK_DEV=y
1875+# CONFIG_BLK_DEV_COW_COMMON is not set
1876+CONFIG_BLK_DEV_LOOP=y
1877+# CONFIG_BLK_DEV_CRYPTOLOOP is not set
1878+# CONFIG_BLK_DEV_NBD is not set
1879+# CONFIG_BLK_DEV_UB is not set
1880+CONFIG_BLK_DEV_RAM=y
1881+CONFIG_BLK_DEV_RAM_COUNT=16
1882+CONFIG_BLK_DEV_RAM_SIZE=64000
1883+# CONFIG_BLK_DEV_XIP is not set
1884+# CONFIG_CDROM_PKTCDVD is not set
1885+# CONFIG_ATA_OVER_ETH is not set
1886+# CONFIG_BLK_DEV_HD is not set
1887+# CONFIG_MISC_DEVICES is not set
1888+CONFIG_HAVE_IDE=y
1889+# CONFIG_IDE is not set
1890+
1891+#
1892+# SCSI device support
1893+#
1894+# CONFIG_RAID_ATTRS is not set
1895+CONFIG_SCSI=y
1896+CONFIG_SCSI_DMA=y
1897+# CONFIG_SCSI_TGT is not set
1898+# CONFIG_SCSI_NETLINK is not set
1899+CONFIG_SCSI_PROC_FS=y
1900+
1901+#
1902+# SCSI support type (disk, tape, CD-ROM)
1903+#
1904+CONFIG_BLK_DEV_SD=y
1905+# CONFIG_CHR_DEV_ST is not set
1906+# CONFIG_CHR_DEV_OSST is not set
1907+# CONFIG_BLK_DEV_SR is not set
1908+# CONFIG_CHR_DEV_SG is not set
1909+# CONFIG_CHR_DEV_SCH is not set
1910+
1911+#
1912+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
1913+#
1914+CONFIG_SCSI_MULTI_LUN=y
1915+# CONFIG_SCSI_CONSTANTS is not set
1916+# CONFIG_SCSI_LOGGING is not set
1917+# CONFIG_SCSI_SCAN_ASYNC is not set
1918+CONFIG_SCSI_WAIT_SCAN=m
1919+
1920+#
1921+# SCSI Transports
1922+#
1923+# CONFIG_SCSI_SPI_ATTRS is not set
1924+# CONFIG_SCSI_FC_ATTRS is not set
1925+# CONFIG_SCSI_ISCSI_ATTRS is not set
1926+# CONFIG_SCSI_SAS_LIBSAS is not set
1927+# CONFIG_SCSI_SRP_ATTRS is not set
1928+CONFIG_SCSI_LOWLEVEL=y
1929+# CONFIG_ISCSI_TCP is not set
1930+# CONFIG_LIBFC is not set
1931+# CONFIG_SCSI_DEBUG is not set
1932+# CONFIG_SCSI_DH is not set
1933+# CONFIG_ATA is not set
1934+# CONFIG_MD is not set
1935+CONFIG_NETDEVICES=y
1936+# CONFIG_DUMMY is not set
1937+# CONFIG_BONDING is not set
1938+# CONFIG_MACVLAN is not set
1939+# CONFIG_EQUALIZER is not set
1940+# CONFIG_TUN is not set
1941+# CONFIG_VETH is not set
1942+CONFIG_PHYLIB=y
1943+
1944+#
1945+# MII PHY device drivers
1946+#
1947+# CONFIG_MARVELL_PHY is not set
1948+# CONFIG_DAVICOM_PHY is not set
1949+# CONFIG_QSEMI_PHY is not set
1950+# CONFIG_LXT_PHY is not set
1951+# CONFIG_CICADA_PHY is not set
1952+# CONFIG_VITESSE_PHY is not set
1953+# CONFIG_SMSC_PHY is not set
1954+# CONFIG_BROADCOM_PHY is not set
1955+# CONFIG_BROADCOM5222_PHY is not set
1956+# CONFIG_ICPLUS_PHY is not set
1957+# CONFIG_REALTEK_PHY is not set
1958+# CONFIG_NATIONAL_PHY is not set
1959+CONFIG_NATIONAL8364x_PHY=y
1960+CONFIG_NATIONAL8384x_PHY=y
1961+CONFIG_MicrelKSZ8041_PHY=y
1962+# CONFIG_STE10XP is not set
1963+# CONFIG_LSI_ET1011C_PHY is not set
1964+# CONFIG_FIXED_PHY is not set
1965+# CONFIG_MDIO_BITBANG is not set
1966+CONFIG_NET_ETHERNET=y
1967+CONFIG_MII=y
1968+# CONFIG_ENC28J60 is not set
1969+# CONFIG_DNET is not set
1970+# CONFIG_IBM_NEW_EMAC_ZMII is not set
1971+# CONFIG_IBM_NEW_EMAC_RGMII is not set
1972+# CONFIG_IBM_NEW_EMAC_TAH is not set
1973+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
1974+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
1975+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
1976+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
1977+# CONFIG_B44 is not set
1978+CONFIG_FEC=y
1979+CONFIG_FEC2=y
1980+CONFIG_FEC_SHARED_PHY=y
1981+# CONFIG_MODELO_SWITCH is not set
1982+# CONFIG_NETDEV_1000 is not set
1983+# CONFIG_NETDEV_10000 is not set
1984+
1985+#
1986+# Wireless LAN
1987+#
1988+# CONFIG_WLAN_PRE80211 is not set
1989+# CONFIG_WLAN_80211 is not set
1990+# CONFIG_IWLWIFI_LEDS is not set
1991+
1992+#
1993+# Enable WiMAX (Networking options) to see the WiMAX drivers
1994+#
1995+
1996+#
1997+# USB Network Adapters
1998+#
1999+# CONFIG_USB_CATC is not set
2000+# CONFIG_USB_KAWETH is not set
2001+# CONFIG_USB_PEGASUS is not set
2002+# CONFIG_USB_RTL8150 is not set
2003+# CONFIG_USB_USBNET is not set
2004+# CONFIG_WAN is not set
2005+# CONFIG_PPP is not set
2006+# CONFIG_SLIP is not set
2007+# CONFIG_NETCONSOLE is not set
2008+# CONFIG_NETPOLL is not set
2009+# CONFIG_NET_POLL_CONTROLLER is not set
2010+# CONFIG_ISDN is not set
2011+# CONFIG_PHONE is not set
2012+
2013+#
2014+# Input device support
2015+#
2016+CONFIG_INPUT=y
2017+# CONFIG_INPUT_FF_MEMLESS is not set
2018+# CONFIG_INPUT_POLLDEV is not set
2019+
2020+#
2021+# Userland interfaces
2022+#
2023+CONFIG_INPUT_MOUSEDEV=y
2024+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
2025+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
2026+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
2027+# CONFIG_INPUT_JOYDEV is not set
2028+CONFIG_INPUT_EVDEV=y
2029+# CONFIG_INPUT_EVBUG is not set
2030+
2031+#
2032+# Input Device Drivers
2033+#
2034+CONFIG_INPUT_KEYBOARD=y
2035+# CONFIG_KEYBOARD_ATKBD is not set
2036+# CONFIG_KEYBOARD_SUNKBD is not set
2037+# CONFIG_KEYBOARD_LKKBD is not set
2038+# CONFIG_KEYBOARD_XTKBD is not set
2039+# CONFIG_KEYBOARD_NEWTON is not set
2040+# CONFIG_KEYBOARD_STOWAWAY is not set
2041+# CONFIG_INPUT_MOUSE is not set
2042+# CONFIG_INPUT_JOYSTICK is not set
2043+# CONFIG_INPUT_TABLET is not set
2044+# CONFIG_INPUT_TOUCHSCREEN is not set
2045+# CONFIG_INPUT_MISC is not set
2046+
2047+#
2048+# Hardware I/O ports
2049+#
2050+CONFIG_SERIO=y
2051+CONFIG_SERIO_SERPORT=y
2052+# CONFIG_SERIO_LIBPS2 is not set
2053+# CONFIG_SERIO_RAW is not set
2054+# CONFIG_GAMEPORT is not set
2055+
2056+#
2057+# Character devices
2058+#
2059+CONFIG_VT=y
2060+CONFIG_CONSOLE_TRANSLATIONS=y
2061+CONFIG_VT_CONSOLE=y
2062+CONFIG_HW_CONSOLE=y
2063+# CONFIG_VT_HW_CONSOLE_BINDING is not set
2064+CONFIG_DEVKMEM=y
2065+# CONFIG_SERIAL_NONSTANDARD is not set
2066+
2067+#
2068+# Serial drivers
2069+#
2070+# CONFIG_SERIAL_8250 is not set
2071+
2072+#
2073+# Non-8250 serial port support
2074+#
2075+CONFIG_SERIAL_CORE=y
2076+CONFIG_SERIAL_CORE_CONSOLE=y
2077+# CONFIG_SERIAL_COLDFIRE_IRDA is not set
2078+# CONFIG_SERIAL_COLDFIRE_EDMA is not set
2079+CONFIG_SERIAL_MCF=y
2080+CONFIG_SERIAL_MCF_BAUDRATE=115200
2081+CONFIG_SERIAL_MCF_CONSOLE=y
2082+CONFIG_SERIAL_MCF_UART0=y
2083+# CONFIG_SERIAL_MCF_UART1 is not set
2084+# CONFIG_SERIAL_MCF_UART2 is not set
2085+# CONFIG_SERIAL_MCF_UART3 is not set
2086+# CONFIG_SERIAL_MCF_UART4 is not set
2087+# CONFIG_SERIAL_MCF_UART5 is not set
2088+# CONFIG_SERIAL_MCF_UART6 is not set
2089+# CONFIG_SERIAL_MCF_UART7 is not set
2090+# CONFIG_SERIAL_MCF_UART8 is not set
2091+# CONFIG_SERIAL_MCF_UART9 is not set
2092+CONFIG_UNIX98_PTYS=y
2093+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
2094+# CONFIG_LEGACY_PTYS is not set
2095+# CONFIG_IPMI_HANDLER is not set
2096+# CONFIG_HW_RANDOM is not set
2097+# CONFIG_R3964 is not set
2098+# CONFIG_RAW_DRIVER is not set
2099+# CONFIG_TCG_TPM is not set
2100+# CONFIG_I2C is not set
2101+CONFIG_SPI=y
2102+CONFIG_SPI_MASTER=y
2103+
2104+#
2105+# SPI Master Controller Drivers
2106+#
2107+# CONFIG_SPI_BITBANG is not set
2108+CONFIG_SPI_DSPI=y
2109+# CONFIG_SPI_COLDFIRE_DSPI_EDMA is not set
2110+
2111+#
2112+# SPI Protocol Masters
2113+#
2114+# CONFIG_SPI_SPIDEV is not set
2115+# CONFIG_SPI_TLE62X0 is not set
2116+# CONFIG_W1 is not set
2117+# CONFIG_POWER_SUPPLY is not set
2118+# CONFIG_HWMON is not set
2119+# CONFIG_THERMAL is not set
2120+# CONFIG_THERMAL_HWMON is not set
2121+CONFIG_WATCHDOG=y
2122+# CONFIG_WATCHDOG_NOWAYOUT is not set
2123+
2124+#
2125+# Watchdog Device Drivers
2126+#
2127+# CONFIG_SOFT_WATCHDOG is not set
2128+CONFIG_COLDFIRE_WATCHDOG=y
2129+
2130+#
2131+# USB-based Watchdog Cards
2132+#
2133+# CONFIG_USBPCWATCHDOG is not set
2134+CONFIG_SSB_POSSIBLE=y
2135+
2136+#
2137+# Sonics Silicon Backplane
2138+#
2139+# CONFIG_SSB is not set
2140+
2141+#
2142+# Multifunction device drivers
2143+#
2144+# CONFIG_MFD_CORE is not set
2145+# CONFIG_MFD_SM501 is not set
2146+# CONFIG_HTC_PASIC3 is not set
2147+# CONFIG_MFD_TMIO is not set
2148+# CONFIG_REGULATOR is not set
2149+
2150+#
2151+# Multimedia devices
2152+#
2153+
2154+#
2155+# Multimedia core support
2156+#
2157+# CONFIG_VIDEO_DEV is not set
2158+# CONFIG_DVB_CORE is not set
2159+# CONFIG_VIDEO_MEDIA is not set
2160+
2161+#
2162+# Multimedia drivers
2163+#
2164+CONFIG_DAB=y
2165+# CONFIG_USB_DABUSB is not set
2166+
2167+#
2168+# Graphics support
2169+#
2170+# CONFIG_VGASTATE is not set
2171+CONFIG_VIDEO_OUTPUT_CONTROL=m
2172+# CONFIG_FB is not set
2173+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
2174+
2175+#
2176+# Display device support
2177+#
2178+# CONFIG_DISPLAY_SUPPORT is not set
2179+
2180+#
2181+# Console display driver support
2182+#
2183+CONFIG_DUMMY_CONSOLE=y
2184+# CONFIG_SOUND is not set
2185+# CONFIG_HID_SUPPORT is not set
2186+CONFIG_USB_SUPPORT=y
2187+CONFIG_USB_ARCH_HAS_HCD=y
2188+# CONFIG_USB_ARCH_HAS_OHCI is not set
2189+CONFIG_USB_ARCH_HAS_EHCI=y
2190+CONFIG_USB=y
2191+# CONFIG_USB_DEBUG is not set
2192+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
2193+
2194+#
2195+# Miscellaneous USB options
2196+#
2197+CONFIG_USB_DEVICEFS=y
2198+CONFIG_USB_DEVICE_CLASS=y
2199+# CONFIG_USB_DYNAMIC_MINORS is not set
2200+CONFIG_USB_SUSPEND=y
2201+CONFIG_USB_OTG=y
2202+# CONFIG_USB_OTG_WHITELIST is not set
2203+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
2204+# CONFIG_USB_MON is not set
2205+# CONFIG_USB_WUSB is not set
2206+# CONFIG_USB_WUSB_CBAF is not set
2207+
2208+#
2209+# USB Host Controller Drivers
2210+#
2211+# CONFIG_USB_C67X00_HCD is not set
2212+CONFIG_USB_EHCI_HCD=m
2213+CONFIG_USB_EHCI_ROOT_HUB_TT=y
2214+# CONFIG_USB_EHCI_TT_NEWSCHED is not set
2215+CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y
2216+CONFIG_USB_EHCI_BIG_ENDIAN_DESC=y
2217+CONFIG_USB_EHCI_FSL=y
2218+# CONFIG_USB_OXU210HP_HCD is not set
2219+# CONFIG_USB_ISP116X_HCD is not set
2220+# CONFIG_USB_SL811_HCD is not set
2221+# CONFIG_USB_R8A66597_HCD is not set
2222+# CONFIG_USB_HWA_HCD is not set
2223+# CONFIG_USB_M5445X_ULPI is not set
2224+# CONFIG_USB_M5445X_FSLS is not set
2225+CONFIG_USB_M5441X_ULPI=y
2226+# CONFIG_USB_M5441X_FSLS is not set
2227+# CONFIG_USB_GADGET_MUSB_HDRC is not set
2228+
2229+#
2230+# USB Device Class drivers
2231+#
2232+# CONFIG_USB_ACM is not set
2233+# CONFIG_USB_PRINTER is not set
2234+# CONFIG_USB_WDM is not set
2235+# CONFIG_USB_TMC is not set
2236+
2237+#
2238+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
2239+#
2240+
2241+#
2242+# see USB_STORAGE Help for more information
2243+#
2244+CONFIG_USB_STORAGE=y
2245+# CONFIG_USB_STORAGE_DEBUG is not set
2246+# CONFIG_USB_STORAGE_DATAFAB is not set
2247+# CONFIG_USB_STORAGE_FREECOM is not set
2248+# CONFIG_USB_STORAGE_ISD200 is not set
2249+# CONFIG_USB_STORAGE_USBAT is not set
2250+# CONFIG_USB_STORAGE_SDDR09 is not set
2251+# CONFIG_USB_STORAGE_SDDR55 is not set
2252+# CONFIG_USB_STORAGE_JUMPSHOT is not set
2253+# CONFIG_USB_STORAGE_ALAUDA is not set
2254+# CONFIG_USB_STORAGE_ONETOUCH is not set
2255+# CONFIG_USB_STORAGE_KARMA is not set
2256+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
2257+# CONFIG_USB_LIBUSUAL is not set
2258+
2259+#
2260+# USB Imaging devices
2261+#
2262+# CONFIG_USB_MDC800 is not set
2263+# CONFIG_USB_MICROTEK is not set
2264+
2265+#
2266+# USB port drivers
2267+#
2268+# CONFIG_USB_SERIAL is not set
2269+
2270+#
2271+# USB Miscellaneous drivers
2272+#
2273+# CONFIG_USB_EMI62 is not set
2274+# CONFIG_USB_EMI26 is not set
2275+# CONFIG_USB_ADUTUX is not set
2276+# CONFIG_USB_SEVSEG is not set
2277+# CONFIG_USB_RIO500 is not set
2278+# CONFIG_USB_LEGOTOWER is not set
2279+# CONFIG_USB_LCD is not set
2280+# CONFIG_USB_BERRY_CHARGE is not set
2281+# CONFIG_USB_LED is not set
2282+# CONFIG_USB_CYPRESS_CY7C63 is not set
2283+# CONFIG_USB_CYTHERM is not set
2284+# CONFIG_USB_PHIDGET is not set
2285+# CONFIG_USB_IDMOUSE is not set
2286+# CONFIG_USB_FTDI_ELAN is not set
2287+# CONFIG_USB_APPLEDISPLAY is not set
2288+# CONFIG_USB_SISUSBVGA is not set
2289+# CONFIG_USB_LD is not set
2290+# CONFIG_USB_TRANCEVIBRATOR is not set
2291+# CONFIG_USB_IOWARRIOR is not set
2292+# CONFIG_USB_TEST is not set
2293+# CONFIG_USB_ISIGHTFW is not set
2294+# CONFIG_USB_VST is not set
2295+CONFIG_USB_GADGET=m
2296+# CONFIG_USB_GADGET_DEBUG_FILES is not set
2297+CONFIG_USB_GADGET_VBUS_DRAW=2
2298+CONFIG_USB_GADGET_SELECTED=y
2299+# CONFIG_USB_GADGET_AT91 is not set
2300+# CONFIG_USB_GADGET_ATMEL_USBA is not set
2301+CONFIG_USB_GADGET_FSL_USB2=y
2302+CONFIG_USB_FSL_USB2=m
2303+# CONFIG_USB_GADGET_LH7A40X is not set
2304+# CONFIG_USB_GADGET_OMAP is not set
2305+# CONFIG_USB_GADGET_PXA25X is not set
2306+# CONFIG_USB_GADGET_PXA27X is not set
2307+# CONFIG_USB_GADGET_S3C2410 is not set
2308+# CONFIG_USB_GADGET_IMX is not set
2309+# CONFIG_USB_GADGET_M66592 is not set
2310+# CONFIG_USB_GADGET_AMD5536UDC is not set
2311+# CONFIG_USB_GADGET_FSL_QE is not set
2312+# CONFIG_USB_GADGET_CI13XXX is not set
2313+# CONFIG_USB_GADGET_NET2280 is not set
2314+# CONFIG_USB_GADGET_GOKU is not set
2315+# CONFIG_USB_GADGET_DUMMY_HCD is not set
2316+CONFIG_USB_GADGET_DUALSPEED=y
2317+# CONFIG_USB_ZERO is not set
2318+# CONFIG_USB_ETH is not set
2319+CONFIG_USB_GADGETFS=m
2320+CONFIG_USB_FILE_STORAGE=m
2321+CONFIG_USB_FILE_STORAGE_TEST=y
2322+# CONFIG_USB_G_SERIAL is not set
2323+# CONFIG_USB_MIDI_GADGET is not set
2324+# CONFIG_USB_G_PRINTER is not set
2325+# CONFIG_USB_CDC_COMPOSITE is not set
2326+
2327+#
2328+# OTG and related infrastructure
2329+#
2330+CONFIG_MMC=y
2331+# CONFIG_MMC_DEBUG is not set
2332+# CONFIG_MMC_UNSAFE_RESUME is not set
2333+
2334+#
2335+# MMC/SD/SDIO Card Drivers
2336+#
2337+CONFIG_MMC_BLOCK=y
2338+CONFIG_MMC_BLOCK_BOUNCE=y
2339+# CONFIG_SDIO_UART is not set
2340+# CONFIG_MMC_TEST is not set
2341+
2342+#
2343+# MMC/SD/SDIO Host Controller Drivers
2344+#
2345+# CONFIG_MMC_SDHCI is not set
2346+# CONFIG_MMC_SPI is not set
2347+# CONFIG_MMC_ESDHC is not set
2348+# CONFIG_MEMSTICK is not set
2349+# CONFIG_NEW_LEDS is not set
2350+# CONFIG_ACCESSIBILITY is not set
2351+CONFIG_RTC_LIB=y
2352+CONFIG_RTC_CLASS=y
2353+CONFIG_RTC_HCTOSYS=y
2354+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
2355+# CONFIG_RTC_DEBUG is not set
2356+
2357+#
2358+# RTC interfaces
2359+#
2360+CONFIG_RTC_INTF_SYSFS=y
2361+CONFIG_RTC_INTF_PROC=y
2362+CONFIG_RTC_INTF_DEV=y
2363+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
2364+# CONFIG_RTC_DRV_TEST is not set
2365+
2366+#
2367+# SPI RTC drivers
2368+#
2369+# CONFIG_RTC_DRV_M41T94 is not set
2370+# CONFIG_RTC_DRV_DS1305 is not set
2371+# CONFIG_RTC_DRV_DS1390 is not set
2372+# CONFIG_RTC_DRV_MAX6902 is not set
2373+# CONFIG_RTC_DRV_R9701 is not set
2374+# CONFIG_RTC_DRV_RS5C348 is not set
2375+# CONFIG_RTC_DRV_DS3234 is not set
2376+
2377+#
2378+# Platform RTC drivers
2379+#
2380+# CONFIG_RTC_DRV_DS1286 is not set
2381+# CONFIG_RTC_DRV_DS1511 is not set
2382+# CONFIG_RTC_DRV_DS1553 is not set
2383+# CONFIG_RTC_DRV_DS1742 is not set
2384+# CONFIG_RTC_DRV_STK17TA8 is not set
2385+# CONFIG_RTC_DRV_M48T86 is not set
2386+# CONFIG_RTC_DRV_M48T35 is not set
2387+# CONFIG_RTC_DRV_M48T59 is not set
2388+# CONFIG_RTC_DRV_BQ4802 is not set
2389+# CONFIG_RTC_DRV_V3020 is not set
2390+
2391+#
2392+# on-CPU RTC drivers
2393+#
2394+# CONFIG_RTC_MCF is not set
2395+CONFIG_RTC_M5441X=y
2396+CONFIG_DMADEVICES=y
2397+
2398+#
2399+# DMA Devices
2400+#
2401+CONFIG_COLDFIRE_EDMA=y
2402+CONFIG_COLDFIRE_EDMA_TEST=m
2403+# CONFIG_UIO is not set
2404+# CONFIG_STAGING is not set
2405+
2406+#
2407+# Character devices
2408+#
2409+CONFIG_TICK_ONESHOT=y
2410+CONFIG_NO_HZ=y
2411+CONFIG_HIGH_RES_TIMERS=y
2412+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
2413+
2414+#
2415+# File systems
2416+#
2417+CONFIG_EXT2_FS=y
2418+# CONFIG_EXT2_FS_XATTR is not set
2419+# CONFIG_EXT2_FS_XIP is not set
2420+CONFIG_EXT3_FS=y
2421+CONFIG_EXT3_FS_XATTR=y
2422+# CONFIG_EXT3_FS_POSIX_ACL is not set
2423+# CONFIG_EXT3_FS_SECURITY is not set
2424+# CONFIG_EXT4_FS is not set
2425+CONFIG_JBD=y
2426+CONFIG_FS_MBCACHE=y
2427+# CONFIG_REISERFS_FS is not set
2428+# CONFIG_JFS_FS is not set
2429+# CONFIG_FS_POSIX_ACL is not set
2430+CONFIG_FILE_LOCKING=y
2431+# CONFIG_XFS_FS is not set
2432+# CONFIG_GFS2_FS is not set
2433+# CONFIG_OCFS2_FS is not set
2434+# CONFIG_BTRFS_FS is not set
2435+CONFIG_DNOTIFY=y
2436+CONFIG_INOTIFY=y
2437+CONFIG_INOTIFY_USER=y
2438+# CONFIG_QUOTA is not set
2439+# CONFIG_AUTOFS_FS is not set
2440+# CONFIG_AUTOFS4_FS is not set
2441+# CONFIG_FUSE_FS is not set
2442+
2443+#
2444+# CD-ROM/DVD Filesystems
2445+#
2446+# CONFIG_ISO9660_FS is not set
2447+# CONFIG_UDF_FS is not set
2448+
2449+#
2450+# DOS/FAT/NT Filesystems
2451+#
2452+CONFIG_FAT_FS=y
2453+CONFIG_MSDOS_FS=y
2454+CONFIG_VFAT_FS=y
2455+CONFIG_FAT_DEFAULT_CODEPAGE=437
2456+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
2457+CONFIG_NTFS_FS=y
2458+# CONFIG_NTFS_DEBUG is not set
2459+CONFIG_NTFS_RW=y
2460+
2461+#
2462+# Pseudo filesystems
2463+#
2464+CONFIG_PROC_FS=y
2465+# CONFIG_PROC_KCORE is not set
2466+CONFIG_PROC_SYSCTL=y
2467+CONFIG_PROC_PAGE_MONITOR=y
2468+CONFIG_SYSFS=y
2469+CONFIG_TMPFS=y
2470+# CONFIG_TMPFS_POSIX_ACL is not set
2471+# CONFIG_HUGETLB_PAGE is not set
2472+# CONFIG_CONFIGFS_FS is not set
2473+CONFIG_MISC_FILESYSTEMS=y
2474+# CONFIG_ADFS_FS is not set
2475+# CONFIG_AFFS_FS is not set
2476+# CONFIG_HFS_FS is not set
2477+# CONFIG_HFSPLUS_FS is not set
2478+# CONFIG_BEFS_FS is not set
2479+# CONFIG_BFS_FS is not set
2480+# CONFIG_EFS_FS is not set
2481+CONFIG_JFFS2_FS=y
2482+CONFIG_JFFS2_FS_DEBUG=0
2483+CONFIG_JFFS2_FS_WRITEBUFFER=y
2484+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
2485+# CONFIG_JFFS2_SUMMARY is not set
2486+# CONFIG_JFFS2_FS_XATTR is not set
2487+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
2488+CONFIG_JFFS2_ZLIB=y
2489+# CONFIG_JFFS2_LZO is not set
2490+CONFIG_JFFS2_RTIME=y
2491+# CONFIG_JFFS2_RUBIN is not set
2492+# CONFIG_CRAMFS is not set
2493+# CONFIG_SQUASHFS is not set
2494+# CONFIG_VXFS_FS is not set
2495+CONFIG_MINIX_FS=y
2496+# CONFIG_OMFS_FS is not set
2497+# CONFIG_HPFS_FS is not set
2498+# CONFIG_QNX4FS_FS is not set
2499+# CONFIG_ROMFS_FS is not set
2500+# CONFIG_SYSV_FS is not set
2501+# CONFIG_UFS_FS is not set
2502+CONFIG_NETWORK_FILESYSTEMS=y
2503+CONFIG_NFS_FS=y
2504+# CONFIG_NFS_V3 is not set
2505+# CONFIG_NFS_V4 is not set
2506+CONFIG_ROOT_NFS=y
2507+# CONFIG_NFSD is not set
2508+CONFIG_LOCKD=y
2509+CONFIG_NFS_COMMON=y
2510+CONFIG_SUNRPC=y
2511+# CONFIG_SUNRPC_REGISTER_V4 is not set
2512+# CONFIG_RPCSEC_GSS_KRB5 is not set
2513+# CONFIG_RPCSEC_GSS_SPKM3 is not set
2514+# CONFIG_SMB_FS is not set
2515+# CONFIG_CIFS is not set
2516+# CONFIG_NCP_FS is not set
2517+# CONFIG_CODA_FS is not set
2518+# CONFIG_AFS_FS is not set
2519+
2520+#
2521+# Partition Types
2522+#
2523+CONFIG_PARTITION_ADVANCED=y
2524+# CONFIG_ACORN_PARTITION is not set
2525+# CONFIG_OSF_PARTITION is not set
2526+# CONFIG_AMIGA_PARTITION is not set
2527+# CONFIG_ATARI_PARTITION is not set
2528+# CONFIG_MAC_PARTITION is not set
2529+CONFIG_MSDOS_PARTITION=y
2530+# CONFIG_BSD_DISKLABEL is not set
2531+# CONFIG_MINIX_SUBPARTITION is not set
2532+# CONFIG_SOLARIS_X86_PARTITION is not set
2533+# CONFIG_UNIXWARE_DISKLABEL is not set
2534+# CONFIG_LDM_PARTITION is not set
2535+# CONFIG_SGI_PARTITION is not set
2536+# CONFIG_ULTRIX_PARTITION is not set
2537+# CONFIG_SUN_PARTITION is not set
2538+# CONFIG_KARMA_PARTITION is not set
2539+# CONFIG_EFI_PARTITION is not set
2540+# CONFIG_SYSV68_PARTITION is not set
2541+CONFIG_NLS=y
2542+CONFIG_NLS_DEFAULT="iso8859-1"
2543+CONFIG_NLS_CODEPAGE_437=y
2544+# CONFIG_NLS_CODEPAGE_737 is not set
2545+# CONFIG_NLS_CODEPAGE_775 is not set
2546+# CONFIG_NLS_CODEPAGE_850 is not set
2547+# CONFIG_NLS_CODEPAGE_852 is not set
2548+# CONFIG_NLS_CODEPAGE_855 is not set
2549+# CONFIG_NLS_CODEPAGE_857 is not set
2550+# CONFIG_NLS_CODEPAGE_860 is not set
2551+# CONFIG_NLS_CODEPAGE_861 is not set
2552+# CONFIG_NLS_CODEPAGE_862 is not set
2553+# CONFIG_NLS_CODEPAGE_863 is not set
2554+# CONFIG_NLS_CODEPAGE_864 is not set
2555+# CONFIG_NLS_CODEPAGE_865 is not set
2556+# CONFIG_NLS_CODEPAGE_866 is not set
2557+# CONFIG_NLS_CODEPAGE_869 is not set
2558+# CONFIG_NLS_CODEPAGE_936 is not set
2559+# CONFIG_NLS_CODEPAGE_950 is not set
2560+# CONFIG_NLS_CODEPAGE_932 is not set
2561+# CONFIG_NLS_CODEPAGE_949 is not set
2562+# CONFIG_NLS_CODEPAGE_874 is not set
2563+# CONFIG_NLS_ISO8859_8 is not set
2564+# CONFIG_NLS_CODEPAGE_1250 is not set
2565+# CONFIG_NLS_CODEPAGE_1251 is not set
2566+# CONFIG_NLS_ASCII is not set
2567+CONFIG_NLS_ISO8859_1=y
2568+# CONFIG_NLS_ISO8859_2 is not set
2569+# CONFIG_NLS_ISO8859_3 is not set
2570+# CONFIG_NLS_ISO8859_4 is not set
2571+# CONFIG_NLS_ISO8859_5 is not set
2572+# CONFIG_NLS_ISO8859_6 is not set
2573+# CONFIG_NLS_ISO8859_7 is not set
2574+# CONFIG_NLS_ISO8859_9 is not set
2575+# CONFIG_NLS_ISO8859_13 is not set
2576+# CONFIG_NLS_ISO8859_14 is not set
2577+# CONFIG_NLS_ISO8859_15 is not set
2578+# CONFIG_NLS_KOI8_R is not set
2579+# CONFIG_NLS_KOI8_U is not set
2580+CONFIG_NLS_UTF8=y
2581+# CONFIG_DLM is not set
2582+
2583+#
2584+# Kernel hacking
2585+#
2586+# CONFIG_PRINTK_TIME is not set
2587+CONFIG_ENABLE_WARN_DEPRECATED=y
2588+# CONFIG_ENABLE_MUST_CHECK is not set
2589+CONFIG_FRAME_WARN=1024
2590+# CONFIG_MAGIC_SYSRQ is not set
2591+# CONFIG_UNUSED_SYMBOLS is not set
2592+# CONFIG_DEBUG_FS is not set
2593+# CONFIG_HEADERS_CHECK is not set
2594+# CONFIG_DEBUG_KERNEL is not set
2595+# CONFIG_DEBUG_BUGVERBOSE is not set
2596+# CONFIG_DEBUG_MEMORY_INIT is not set
2597+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
2598+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
2599+
2600+#
2601+# Tracers
2602+#
2603+# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
2604+# CONFIG_SAMPLES is not set
2605+# CONFIG_BOOTPARAM is not set
2606+
2607+#
2608+# Security options
2609+#
2610+# CONFIG_KEYS is not set
2611+# CONFIG_SECURITY is not set
2612+# CONFIG_SECURITYFS is not set
2613+# CONFIG_SECURITY_FILE_CAPABILITIES is not set
2614+CONFIG_CRYPTO=y
2615+
2616+#
2617+# Crypto core or helper
2618+#
2619+# CONFIG_CRYPTO_FIPS is not set
2620+CONFIG_CRYPTO_ALGAPI=y
2621+CONFIG_CRYPTO_ALGAPI2=y
2622+CONFIG_CRYPTO_AEAD=y
2623+CONFIG_CRYPTO_AEAD2=y
2624+CONFIG_CRYPTO_BLKCIPHER=y
2625+CONFIG_CRYPTO_BLKCIPHER2=y
2626+CONFIG_CRYPTO_HASH=y
2627+CONFIG_CRYPTO_HASH2=y
2628+CONFIG_CRYPTO_RNG2=y
2629+CONFIG_CRYPTO_MANAGER=y
2630+CONFIG_CRYPTO_MANAGER2=y
2631+# CONFIG_CRYPTO_GF128MUL is not set
2632+# CONFIG_CRYPTO_NULL is not set
2633+# CONFIG_CRYPTO_CRYPTD is not set
2634+CONFIG_CRYPTO_AUTHENC=y
2635+CONFIG_CRYPTO_TEST=m
2636+
2637+#
2638+# Authenticated Encryption with Associated Data
2639+#
2640+# CONFIG_CRYPTO_CCM is not set
2641+# CONFIG_CRYPTO_GCM is not set
2642+# CONFIG_CRYPTO_SEQIV is not set
2643+
2644+#
2645+# Block modes
2646+#
2647+CONFIG_CRYPTO_CBC=y
2648+# CONFIG_CRYPTO_CTR is not set
2649+# CONFIG_CRYPTO_CTS is not set
2650+CONFIG_CRYPTO_ECB=y
2651+# CONFIG_CRYPTO_LRW is not set
2652+CONFIG_CRYPTO_PCBC=m
2653+# CONFIG_CRYPTO_XTS is not set
2654+
2655+#
2656+# Hash modes
2657+#
2658+CONFIG_CRYPTO_HMAC=y
2659+# CONFIG_CRYPTO_XCBC is not set
2660+
2661+#
2662+# Digest
2663+#
2664+CONFIG_CRYPTO_CRC32C=y
2665+# CONFIG_CRYPTO_MD4 is not set
2666+CONFIG_CRYPTO_MD5=y
2667+# CONFIG_CRYPTO_MICHAEL_MIC is not set
2668+# CONFIG_CRYPTO_RMD128 is not set
2669+# CONFIG_CRYPTO_RMD160 is not set
2670+# CONFIG_CRYPTO_RMD256 is not set
2671+# CONFIG_CRYPTO_RMD320 is not set
2672+CONFIG_CRYPTO_SHA1=y
2673+# CONFIG_CRYPTO_SHA256 is not set
2674+# CONFIG_CRYPTO_SHA512 is not set
2675+# CONFIG_CRYPTO_TGR192 is not set
2676+# CONFIG_CRYPTO_WP512 is not set
2677+
2678+#
2679+# Ciphers
2680+#
2681+# CONFIG_CRYPTO_AES is not set
2682+# CONFIG_CRYPTO_ANUBIS is not set
2683+# CONFIG_CRYPTO_ARC4 is not set
2684+# CONFIG_CRYPTO_BLOWFISH is not set
2685+# CONFIG_CRYPTO_CAMELLIA is not set
2686+# CONFIG_CRYPTO_CAST5 is not set
2687+# CONFIG_CRYPTO_CAST6 is not set
2688+CONFIG_CRYPTO_DES=y
2689+# CONFIG_CRYPTO_FCRYPT is not set
2690+# CONFIG_CRYPTO_KHAZAD is not set
2691+# CONFIG_CRYPTO_SALSA20 is not set
2692+# CONFIG_CRYPTO_SEED is not set
2693+# CONFIG_CRYPTO_SERPENT is not set
2694+# CONFIG_CRYPTO_TEA is not set
2695+# CONFIG_CRYPTO_TWOFISH is not set
2696+
2697+#
2698+# Compression
2699+#
2700+# CONFIG_CRYPTO_DEFLATE is not set
2701+# CONFIG_CRYPTO_LZO is not set
2702+
2703+#
2704+# Random Number Generation
2705+#
2706+# CONFIG_CRYPTO_ANSI_CPRNG is not set
2707+
2708+#
2709+# OCF Configuration
2710+#
2711+# CONFIG_OCF_OCF is not set
2712+
2713+#
2714+# Talitos Driver
2715+#
2716+CONFIG_CRYPTO_HW=y
2717+# CONFIG_CRYPTO_DEV_MCFCAU is not set
2718+
2719+#
2720+# Library routines
2721+#
2722+CONFIG_BITREVERSE=y
2723+CONFIG_GENERIC_FIND_LAST_BIT=y
2724+CONFIG_CRC_CCITT=y
2725+CONFIG_CRC16=y
2726+# CONFIG_CRC_T10DIF is not set
2727+CONFIG_CRC_ITU_T=y
2728+CONFIG_CRC32=y
2729+CONFIG_CRC7=y
2730+CONFIG_LIBCRC32C=y
2731+CONFIG_ZLIB_INFLATE=y
2732+CONFIG_ZLIB_DEFLATE=y
2733+CONFIG_PLIST=y
2734+CONFIG_HAS_IOMEM=y
2735+CONFIG_HAS_IOPORT=y
2736+CONFIG_HAS_DMA=y
2737--- /dev/null
2738+++ b/arch/m68k/include/asm/cf_5441x_cacheflush.h
2739@@ -0,0 +1,527 @@
2740+/*
2741+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved.
2742+ *
2743+ * Based on include/asm-m68k/cacheflush.h
2744+ *
2745+ * This program is free software; you can redistribute it and/or modify it
2746+ * under the terms of the GNU General Public License as published by the
2747+ * Free Software Foundation; either version 2 of the License, or (at your
2748+ * option) any later version.
2749+ */
2750+#ifndef M68K_CF_5441x_CACHEFLUSH_H
2751+#define M68K_CF_5441x_CACHEFLUSH_H
2752+
2753+#include <asm/cfcache.h>
2754+
2755+/*
2756+ * Coldfire Cache Model
2757+ *
2758+ * The Coldfire processors use a Harvard architecture cache configured
2759+ * as four-way set associative. The cache does not implement bus snooping
2760+ * so cache coherency with other masters must be maintained in software.
2761+ *
2762+ * The cache is managed via the CPUSHL instruction in conjunction with
2763+ * bits set in the CACR (cache control register). Currently the code
2764+ * uses the CPUSHL enhancement which adds the ability to
2765+ * invalidate/clear/push a cacheline by physical address. This feature
2766+ * is designated in the Hardware Configuration Register [D1-CPES].
2767+ *
2768+ * CACR Bits:
2769+ * DPI[28] cpushl invalidate disable for d-cache
2770+ * IDPI[12] cpushl invalidate disable for i-cache
2771+ * SPA[14] cpushl search by physical address
2772+ * IVO[20] cpushl invalidate only
2773+ *
2774+ * Random Terminology:
2775+ * * invalidate = reset the cache line's valid bit
2776+ * * push = generate a line-sized store of the data if its contents are
2777+ * marked as modifed (the modified flag is cleared after
2778+ * the store)
2779+ * * clear = push + invalidate
2780+ */
2781+
2782+/**
2783+ * flush_icache - Flush all of the instruction cache
2784+ */
2785+static inline void flush_icache(void)
2786+{
2787+ asm volatile("nop\n"
2788+ "moveq%.l #0,%%d0\n"
2789+ "moveq%.l #0,%%d1\n"
2790+ "move%.l %%d0,%%a0\n"
2791+ "1:\n"
2792+ "cpushl %%ic,(%%a0)\n"
2793+ "add%.l #0x0010,%%a0\n"
2794+ "addq%.l #1,%%d1\n"
2795+ "cmpi%.l %0,%%d1\n"
2796+ "bne 1b\n"
2797+ "moveq%.l #0,%%d1\n"
2798+ "addq%.l #1,%%d0\n"
2799+ "move%.l %%d0,%%a0\n"
2800+ "cmpi%.l #4,%%d0\n"
2801+ "bne 1b\n"
2802+ : : "i" (CACHE_SETS)
2803+ : "a0", "d0", "d1");
2804+}
2805+
2806+/**
2807+ * flush_dcache - Flush all of the data cache
2808+ */
2809+static inline void flush_dcache(void)
2810+{
2811+ asm volatile("nop\n"
2812+ "moveq%.l #0,%%d0\n"
2813+ "moveq%.l #0,%%d1\n"
2814+ "move%.l %%d0,%%a0\n"
2815+ "1:\n"
2816+ "cpushl %%dc,(%%a0)\n"
2817+ "add%.l #0x0010,%%a0\n"
2818+ "addq%.l #1,%%d1\n"
2819+ "cmpi%.l %0,%%d1\n"
2820+ "bne 1b\n"
2821+ "moveq%.l #0,%%d1\n"
2822+ "addq%.l #1,%%d0\n"
2823+ "move%.l %%d0,%%a0\n"
2824+ "cmpi%.l #4,%%d0\n"
2825+ "bne 1b\n"
2826+ : : "i" (CACHE_SETS)
2827+ : "a0", "d0", "d1");
2828+}
2829+
2830+/**
2831+ * flush_bcache - Flush all of both caches
2832+ */
2833+static inline void flush_bcache(void)
2834+{
2835+ asm volatile("nop\n"
2836+ "moveq%.l #0,%%d0\n"
2837+ "moveq%.l #0,%%d1\n"
2838+ "move%.l %%d0,%%a0\n"
2839+ "1:\n"
2840+ "cpushl %%bc,(%%a0)\n"
2841+ "add%.l #0x0010,%%a0\n"
2842+ "addq%.l #1,%%d1\n"
2843+ "cmpi%.l %0,%%d1\n"
2844+ "bne 1b\n"
2845+ "moveq%.l #0,%%d1\n"
2846+ "addq%.l #1,%%d0\n"
2847+ "move%.l %%d0,%%a0\n"
2848+ "cmpi%.l #4,%%d0\n"
2849+ "bne 1b\n"
2850+ : : "i" (CACHE_SETS)
2851+ : "a0", "d0", "d1");
2852+}
2853+
2854+/**
2855+ * cf_cache_clear - invalidate cache
2856+ * @paddr: starting physical address
2857+ * @len: number of bytes
2858+ *
2859+ * Invalidate cache lines starting at paddr for len bytes.
2860+ * Those lines are not pushed.
2861+ */
2862+static inline void cf_cache_clear(unsigned long paddr, int len)
2863+{
2864+ /* number of lines */
2865+ len = (len + (CACHE_LINE_SIZE-1)) / CACHE_LINE_SIZE;
2866+ if (len == 0)
2867+ return;
2868+
2869+ /* align on set boundary */
2870+ paddr &= 0xfffffff0;
2871+
2872+ asm volatile("nop\n"
2873+ "move%.l %2,%%d0\n"
2874+ "or%.l %3,%%d0\n"
2875+ "movec %%d0,%%cacr\n"
2876+ "move%.l %0,%%a0\n"
2877+ "move%.l %1,%%d0\n"
2878+ "1:\n"
2879+ "cpushl %%bc,(%%a0)\n"
2880+ "lea 0x10(%%a0),%%a0\n"
2881+ "subq%.l #1,%%d0\n"
2882+ "bne%.b 1b\n"
2883+ "movec %2,%%cacr\n"
2884+ : : "a" (paddr), "r" (len),
2885+ "r" (shadow_cacr),
2886+ "i" (CF_CACR_SPA+CF_CACR_IVO)
2887+ : "a0", "d0");
2888+}
2889+
2890+/**
2891+ * cf_cache_push - Push dirty cache out with no invalidate
2892+ * @paddr: starting physical address
2893+ * @len: number of bytes
2894+ *
2895+ * Push the any dirty lines starting at paddr for len bytes.
2896+ * Those lines are not invalidated.
2897+ */
2898+static inline void cf_cache_push(unsigned long paddr, int len)
2899+{
2900+ /* number of lines */
2901+ len = (len + (CACHE_LINE_SIZE-1)) / CACHE_LINE_SIZE;
2902+ if (len == 0)
2903+ return;
2904+
2905+ /* align on set boundary */
2906+ paddr &= 0xfffffff0;
2907+
2908+ asm volatile("nop\n"
2909+ "move%.l %2,%%d0\n"
2910+ "or%.l %3,%%d0\n"
2911+ "movec %%d0,%%cacr\n"
2912+ "move%.l %0,%%a0\n"
2913+ "move%.l %1,%%d0\n"
2914+ "1:\n"
2915+ "cpushl %%bc,(%%a0)\n"
2916+ "lea 0x10(%%a0),%%a0\n"
2917+ "subq%.l #1,%%d0\n"
2918+ "bne.b 1b\n"
2919+ "movec %2,%%cacr\n"
2920+ : : "a" (paddr), "r" (len),
2921+ "r" (shadow_cacr),
2922+ "i" (CF_CACR_SPA+CF_CACR_DPI+CF_CACR_IDPI)
2923+ : "a0", "d0");
2924+}
2925+
2926+/**
2927+ * cf_cache_flush - Push dirty cache out and invalidate
2928+ * @paddr: starting physical address
2929+ * @len: number of bytes
2930+ *
2931+ * Push the any dirty lines starting at paddr for len bytes and
2932+ * invalidate those lines.
2933+ */
2934+static inline void cf_cache_flush(unsigned long paddr, int len)
2935+{
2936+ /* number of lines */
2937+ len = (len + (CACHE_LINE_SIZE-1)) / CACHE_LINE_SIZE;
2938+ if (len == 0)
2939+ return;
2940+
2941+ /* align on set boundary */
2942+ paddr &= 0xfffffff0;
2943+
2944+ asm volatile("nop\n"
2945+ "move%.l %2,%%d0\n"
2946+ "or%.l %3,%%d0\n"
2947+ "movec %%d0,%%cacr\n"
2948+ "move%.l %0,%%a0\n"
2949+ "move%.l %1,%%d0\n"
2950+ "1:\n"
2951+ "cpushl %%bc,(%%a0)\n"
2952+ "lea 0x10(%%a0),%%a0\n"
2953+ "subq%.l #1,%%d0\n"
2954+ "bne.b 1b\n"
2955+ "movec %2,%%cacr\n"
2956+ : : "a" (paddr), "r" (len),
2957+ "r" (shadow_cacr),
2958+ "i" (CF_CACR_SPA)
2959+ : "a0", "d0");
2960+}
2961+
2962+/**
2963+ * cf_cache_flush_range - Push dirty data/inst cache in range out and invalidate
2964+ * @vstart - starting virtual address
2965+ * @vend: ending virtual address
2966+ *
2967+ * Push the any dirty data/instr lines starting at paddr for len bytes and
2968+ * invalidate those lines.
2969+ */
2970+static inline void cf_cache_flush_range(unsigned long vstart,
2971+ unsigned long vend)
2972+{
2973+ int len;
2974+
2975+ /* align on set boundary */
2976+ vstart &= 0xfffffff0;
2977+ vend = PAGE_ALIGN((vend + (CACHE_LINE_SIZE-1))) & 0xfffffff0;
2978+ len = vend - vstart;
2979+ if (len == 0)
2980+ return;
2981+ vstart = __pa(vstart);
2982+ vend = vstart + len;
2983+
2984+ asm volatile("nop\n"
2985+ "move%.l %2,%%d0\n"
2986+ "or%.l %3,%%d0\n"
2987+ "movec %%d0,%%cacr\n"
2988+ "move%.l %0,%%a0\n"
2989+ "move%.l %1,%%a1\n"
2990+ "1:\n"
2991+ "cpushl %%bc,(%%a0)\n"
2992+ "lea 0x10(%%a0),%%a0\n"
2993+ "cmpa%.l %%a0,%%a1\n"
2994+ "bne.b 1b\n"
2995+ "movec %2,%%cacr\n"
2996+ : /* no return */
2997+ : "a" (vstart), "a" (vend),
2998+ "r" (shadow_cacr),
2999+ "i" (CF_CACR_SPA)
3000+ : "a0", "a1", "d0");
3001+}
3002+
3003+/**
3004+ * cf_dcache_flush_range - Push dirty data cache in range out and invalidate
3005+ * @vstart - starting virtual address
3006+ * @vend: ending virtual address
3007+ *
3008+ * Push/Clear the virtual range *vstart* -> *vend* using the enhanced
3009+ * cpushl instruction to search by physical address.
3010+ *
3011+ * Assumes CACR[IVO] is 0
3012+ * CACR[DDPI] is 0
3013+ *
3014+ * Sets CACR[SPA] to 1 for the duration of this routine
3015+ */
3016+static inline void cf_dcache_flush_range(unsigned long vstart,
3017+ unsigned long vend)
3018+{
3019+ /* align on set boundary */
3020+ vstart &= 0xfffffff0;
3021+ vend = (vend + (CACHE_LINE_SIZE-1)) & 0xfffffff0;
3022+
3023+ asm volatile("nop\n"
3024+ "move%.l %2,%%d0\n"
3025+ "or%.l %3,%%d0\n"
3026+ "movec %%d0,%%cacr\n"
3027+ "move%.l %0,%%a0\n"
3028+ "move%.l %1,%%a1\n"
3029+ "1:\n"
3030+ "cpushl %%dc,(%%a0)\n"
3031+ "lea 0x10(%%a0),%%a0\n"
3032+ "cmpa%.l %%a0,%%a1\n"
3033+ "bne.b 1b\n"
3034+ "movec %2,%%cacr\n"
3035+ : /* no return */
3036+ : "a" (__pa(vstart)), "a" (__pa(vend)),
3037+ "r" (shadow_cacr),
3038+ "i" (CF_CACR_SPA)
3039+ : "a0", "a1", "d0");
3040+}
3041+
3042+/**
3043+ * cf_dcache_inv_range - Invalidate data cache in range
3044+ * @vstart - starting virtual address
3045+ * @vend: ending virtual address
3046+ *
3047+ * Invalidate the virtual range *vstart* -> *vend* using the enhanced
3048+ * cpushl instruction to search by physical address.
3049+ *
3050+ * Assumes CACR[DDPI] is 0
3051+ *
3052+ * Sets CACR[SPA] and CACR[IVO] to 1 for the duration of this routine
3053+ */
3054+static inline void cf_dcache_inv_range(unsigned long vstart,
3055+ unsigned long vend)
3056+{
3057+ /* align on set boundary */
3058+ vstart &= 0xfffffff0;
3059+ vend = (vend + (CACHE_LINE_SIZE-1)) & 0xfffffff0;
3060+
3061+ asm volatile("nop\n"
3062+ "move%.l %2,%%d0\n"
3063+ "or%.l %3,%%d0\n"
3064+ "movec %%d0,%%cacr\n"
3065+ "move%.l %0,%%a0\n"
3066+ "move%.l %1,%%a1\n"
3067+ "1:\n"
3068+ "cpushl %%dc,(%%a0)\n"
3069+ "lea 0x10(%%a0),%%a0\n"
3070+ "cmpa%.l %%a0,%%a1\n"
3071+ "bne.b 1b\n"
3072+ "movec %2,%%cacr\n"
3073+ : /* no return */
3074+ : "a" (__pa(vstart)), "a" (__pa(vend)),
3075+ "r" (shadow_cacr),
3076+ "i" (CF_CACR_SPA | CF_CACR_IVO)
3077+ : "a0", "a1", "d0");
3078+}
3079+
3080+/**
3081+ * cf_dcache_push_range - Push data cache in range
3082+ * @vstart - starting virtual address
3083+ * @vend: ending virtual address
3084+ *
3085+ * Push the virtual range *vstart* -> *vend* using the enhanced
3086+ * cpushl instruction to search by physical address.
3087+ *
3088+ * Assumes CACR[IVO] is 0
3089+ *
3090+ * Sets CACR[SPA] and CACR[DDPI] to 1 for the duration of this routine
3091+ */
3092+static inline void cf_dcache_push_range(unsigned long vstart,
3093+ unsigned long vend)
3094+{
3095+ /* align on set boundary */
3096+ vstart &= 0xfffffff0;
3097+ vend = (vend + (CACHE_LINE_SIZE-1)) & 0xfffffff0;
3098+
3099+ asm volatile("nop\n"
3100+ "move%.l %2,%%d0\n"
3101+ "or%.l %3,%%d0\n"
3102+ "movec %%d0,%%cacr\n"
3103+ "move%.l %0,%%a0\n"
3104+ "move%.l %1,%%a1\n"
3105+ "1:\n"
3106+ "cpushl %%dc,(%%a0)\n"
3107+ "lea 0x10(%%a0),%%a0\n"
3108+ "cmpa%.l %%a0,%%a1\n"
3109+ "bne.b 1b\n"
3110+ "movec %2,%%cacr\n"
3111+ : /* no return */
3112+ : "a" (__pa(vstart)), "a" (__pa(vend)),
3113+ "r" (shadow_cacr),
3114+ "i" (CF_CACR_SPA | CF_CACR_DPI)
3115+ : "a0", "a1", "d0");
3116+}
3117+
3118+/**
3119+ * cf_icache_flush_range - Push dirty inst cache in range out and invalidate
3120+ * @vstart - starting virtual address
3121+ * @vend: ending virtual address
3122+ *
3123+ * Push the any dirty instr lines starting at paddr for len bytes and
3124+ * invalidate those lines. This should just be an invalidate since you
3125+ * shouldn't be able to have dirty instruction cache.
3126+ */
3127+static inline void cf_icache_flush_range(unsigned long vstart,
3128+ unsigned long vend)
3129+{
3130+ /* align on set boundary */
3131+ vstart &= 0xfffffff0;
3132+ vend = (vend + (CACHE_LINE_SIZE-1)) & 0xfffffff0;
3133+
3134+ asm volatile("nop\n"
3135+ "move%.l %2,%%d0\n"
3136+ "or%.l %3,%%d0\n"
3137+ "movec %%d0,%%cacr\n"
3138+ "move%.l %0,%%a0\n"
3139+ "move%.l %1,%%a1\n"
3140+ "1:\n"
3141+ "cpushl %%ic,(%%a0)\n"
3142+ "lea 0x10(%%a0),%%a0\n"
3143+ "cmpa%.l %%a0,%%a1\n"
3144+ "bne.b 1b\n"
3145+ "movec %2,%%cacr\n"
3146+ : /* no return */
3147+ : "a" (__pa(vstart)), "a" (__pa(vend)),
3148+ "r" (shadow_cacr),
3149+ "i" (CF_CACR_SPA)
3150+ : "a0", "a1", "d0");
3151+}
3152+
3153+/**
3154+ * flush_cache_mm - Flush an mm_struct
3155+ * @mm: mm_struct to flush
3156+ */
3157+static inline void flush_cache_mm(struct mm_struct *mm)
3158+{
3159+ if (mm == current->mm)
3160+ flush_bcache();
3161+}
3162+
3163+#define flush_cache_dup_mm(mm) flush_cache_mm(mm)
3164+
3165+/**
3166+ * flush_cache_range - Flush a cache range
3167+ * @vma: vma struct
3168+ * @start: Starting address
3169+ * @end: Ending address
3170+ *
3171+ * flush_cache_range must be a macro to avoid a dependency on
3172+ * linux/mm.h which includes this file.
3173+ */
3174+static inline void flush_cache_range(struct vm_area_struct *vma,
3175+ unsigned long start, unsigned long end)
3176+{
3177+ if (vma->vm_mm == current->mm)
3178+ cf_cache_flush_range(start, end);
3179+}
3180+
3181+/**
3182+ * flush_cache_page - Flush a page of the cache
3183+ * @vma: vma struct
3184+ * @vmaddr:
3185+ * @pfn: page numer
3186+ *
3187+ * flush_cache_page must be a macro to avoid a dependency on
3188+ * linux/mm.h which includes this file.
3189+ */
3190+static inline void flush_cache_page(struct vm_area_struct *vma,
3191+ unsigned long vmaddr, unsigned long pfn)
3192+{
3193+ if (vma->vm_mm == current->mm)
3194+ cf_cache_flush_range(vmaddr, vmaddr+PAGE_SIZE);
3195+}
3196+
3197+/**
3198+ * __flush_page_to_ram - Push a page out of the cache
3199+ * @vaddr: Virtual address at start of page
3200+ *
3201+ * Push the page at kernel virtual address *vaddr* and clear
3202+ * the icache.
3203+ */
3204+static inline void __flush_page_to_ram(void *vaddr)
3205+{
3206+ asm volatile("nop\n"
3207+ "move%.l %2,%%d0\n"
3208+ "or%.l %3,%%d0\n"
3209+ "movec %%d0,%%cacr\n"
3210+ "move%.l %0,%%d0\n"
3211+ "and%.l #0xfffffff0,%%d0\n"
3212+ "move%.l %%d0,%%a0\n"
3213+ "move%.l %1,%%d0\n"
3214+ "1:\n"
3215+ "cpushl %%bc,(%%a0)\n"
3216+ "lea 0x10(%%a0),%%a0\n"
3217+ "subq%.l #1,%%d0\n"
3218+ "bne.b 1b\n"
3219+ "movec %2,%%cacr\n"
3220+ : : "a" (__pa(vaddr)), "i" (PAGE_SIZE / CACHE_LINE_SIZE),
3221+ "r" (shadow_cacr), "i" (CF_CACR_SPA)
3222+ : "a0", "d0");
3223+}
3224+
3225+/*
3226+ * Various defines for the kernel.
3227+ */
3228+
3229+extern void cache_clear(unsigned long paddr, int len);
3230+extern void cache_push(unsigned long paddr, int len);
3231+extern void flush_icache_range(unsigned long address, unsigned long endaddr);
3232+
3233+#define flush_cache_all() flush_bcache()
3234+#define flush_cache_vmap(start, end) flush_bcache()
3235+#define flush_cache_vunmap(start, end) flush_bcache()
3236+
3237+#define flush_dcache_range(vstart, vend) cf_dcache_flush_range(vstart, vend)
3238+#define flush_dcache_page(page) __flush_page_to_ram(page_address(page))
3239+#define flush_dcache_mmap_lock(mapping) do { } while (0)
3240+#define flush_dcache_mmap_unlock(mapping) do { } while (0)
3241+
3242+#define flush_icache_page(vma, page) __flush_page_to_ram(page_address(page))
3243+
3244+/**
3245+ * copy_to_user_page - Copy memory to user page
3246+ */
3247+static inline void copy_to_user_page(struct vm_area_struct *vma,
3248+ struct page *page, unsigned long vaddr,
3249+ void *dst, void *src, int len)
3250+{
3251+ memcpy(dst, src, len);
3252+ cf_cache_flush(page_to_phys(page), PAGE_SIZE);
3253+}
3254+
3255+/**
3256+ * copy_from_user_page - Copy memory from user page
3257+ */
3258+static inline void copy_from_user_page(struct vm_area_struct *vma,
3259+ struct page *page, unsigned long vaddr,
3260+ void *dst, void *src, int len)
3261+{
3262+ cf_cache_flush(page_to_phys(page), PAGE_SIZE);
3263+ memcpy(dst, src, len);
3264+}
3265+
3266+#endif /* M68K_CF_5441x_CACHEFLUSH_H */
3267--- /dev/null
3268+++ b/arch/m68k/include/asm/mcf5441x_ccm.h
3269@@ -0,0 +1,157 @@
3270+/*
3271+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved.
3272+ *
3273+ * This program is free software; you can redistribute it and/or modify it
3274+ * under the terms of the GNU General Public License as published by the
3275+ * Free Software Foundation; either version 2 of the License, or (at your
3276+ * option) any later version.
3277+ */
3278+
3279+#ifndef __MCF5441X_CCM_H__
3280+#define __MCF5441X_CCM_H__
3281+
3282+/*********************************************************************
3283+*
3284+* Chip Configuration Module (CCM)
3285+*
3286+*********************************************************************/
3287+
3288+/* Register read/write macros */
3289+/* Chip Configuration Register (Read-only) (256 or 360 TEPBGA) */
3290+#define MCF_CCM_CCR MCF_REG16(0xEC090004)
3291+/* Reset Configuration (Read-only) (256 or 360 TEPBGA) */
3292+#define MCF_CCM_RCON MCF_REG16(0xEC090008)
3293+/* Chip Identification Register (Read-only) */
3294+#define MCF_CCM_CIR MCF_REG16(0xEC09000A)
3295+/* Miscellaneous Control Register */
3296+#define MCF_CCM_MISCCR MCF_REG16(0xEC09000E)
3297+#define MCF_CCM_CDRH MCF_REG16(0xEC090010) /* Clock Divider Register */
3298+#define MCF_CCM_CDRL MCF_REG16(0xEC090012) /* Clock Divider Register */
3299+/* USB On-the-Go Controller Status Register */
3300+#define MCF_CCM_UOCSR MCF_REG16(0xEC090014)
3301+/* USB On-the-Go Controller Status Register */
3302+#define MCF_CCM_UHCSR MCF_REG16(0xEC090016)
3303+/* Miscellaneous Control Register */
3304+#define MCF_CCM_MISCCR3 MCF_REG16(0xEC090018)
3305+/* Miscellaneous Control Register */
3306+#define MCF_CCM_MISCCR2 MCF_REG16(0xEC09001A)
3307+#define MCF_CCM_ADCTSR MCF_REG16(0xEC09001C)
3308+#define MCF_CCM_DACTSR MCF_REG16(0xEC09001E)
3309+/* Serial Boot Facility Status Register (Read Only) */
3310+#define MCF_CCM_SBFSR MCF_REG16(0xEC090020)
3311+/* Serial Boot Facility Control Register */
3312+#define MCF_CCM_SBFCR MCF_REG16(0xEC090022)
3313+#define MCF_CCM_FNACR MCF_REG16(0xEC090024)
3314+
3315+/* Bit definitions and macros for CIR */
3316+/* Part revision number */
3317+#define MCF_CCM_CIR_PRN(x) (((x) & 0x003F))
3318+/* Part identification number */
3319+#define MCF_CCM_CIR_PIN(x) (((x) & 0x03FF) << 6)
3320+#define MCF_CCM_CIR_PIN_MASK (0xFFC0)
3321+#define MCF_CCM_CIR_PRN_MASK (0x003F)
3322+#define MCF_CCM_CIR_PIN_MCF54410 (0x9F<<6)
3323+#define MCF_CCM_CIR_PIN_MCF54415 (0xA0<<6)
3324+#define MCF_CCM_CIR_PIN_MCF54416 (0xA1<<6)
3325+#define MCF_CCM_CIR_PIN_MCF54417 (0xA2<<6)
3326+#define MCF_CCM_CIR_PIN_MCF54418 (0xA3<<6)
3327+
3328+/* Bit definitions and macros for MISCCR */
3329+/* Part revision number */
3330+#define MCF_CCM_CIR_PRN(x) (((x) & 0x003F))
3331+/* Part identification number */
3332+#define MCF_CCM_CIR_PIN(x) (((x) & 0x03FF) << 6)
3333+#define MCF_CCM_CIR_PIN_MASK (0xFFC0)
3334+#define MCF_CCM_CIR_PRN_MASK (0x003F)
3335+#define MCF_CCM_CIR_PIN_MCF54410 (0x9F<<6)
3336+#define MCF_CCM_CIR_PIN_MCF54415 (0xA0<<6)
3337+#define MCF_CCM_CIR_PIN_MCF54416 (0xA1<<6)
3338+#define MCF_CCM_CIR_PIN_MCF54417 (0xA2<<6)
3339+#define MCF_CCM_CIR_PIN_MCF54418 (0xA3<<6)
3340+#define MCF_CCM_MISCCR_PWM_EXTCLK(x) (((x)&(0x0003)<<14)
3341+#define MCF_CCM_MISCCR_PWM_EXTCLK_MASK (0x3FFF)
3342+#define MCF_CCM_MISCCR_PWM_EXTCLK_TMR0 (0x0000)
3343+#define MCF_CCM_MISCCR_PWM_EXTCLK_TMR1 (0x4000)
3344+#define MCF_CCM_MISCCR_PWM_EXTCLK_TMR2 (0x8000)
3345+#define MCF_CCM_MISCCR_PWM_EXTCLK_TMR3 (0xC000)
3346+#define MCF_CCM_MISCCR_LIMP (0x1000)
3347+#define MCF_CCM_MISCCR_BME (0x0800)
3348+#define MCF_CCM_MISCCR_BMT(x) (((x)&0x0007)<<8)
3349+#define MCF_CCM_MISCCR_BMT_MASK (0xF8FF)
3350+#define MCF_CCM_MISCCR_BMT_65536 (0)
3351+#define MCF_CCM_MISCCR_BMT_32768 (1)
3352+#define MCF_CCM_MISCCR_BMT_16384 (2)
3353+#define MCF_CCM_MISCCR_BMT_8192 (3)
3354+#define MCF_CCM_MISCCR_BMT_4096 (4)
3355+#define MCF_CCM_MISCCR_BMT_2048 (5)
3356+#define MCF_CCM_MISCCR_BMT_1024 (6)
3357+#define MCF_CCM_MISCCR_BMT_512 (7)
3358+#define MCF_CCM_MISCCR_SDHCSRC (0x0040)
3359+#define MCF_CCM_MISCCR_SSI1SRC (0x0020)
3360+#define MCF_CCM_MISCCR_SSI0SRC (0x0010)
3361+#define MCF_CCM_MISCCR_USBHOC (0x0008)
3362+#define MCF_CCM_MISCCR_USBOOC (0x0004)
3363+#define MCF_CCM_MISCCR_USBPUE (0x0002)
3364+#define MCF_CCM_MISCCR_USBSRC (0x0001)
3365+#define MCF_CCM_CDRH_SSI0DIV(x) (((x)&0x00FF)<<8)
3366+#define MCF_CCM_CDRH_SSI0DIV_MASK (0x00FF)
3367+#define MCF_CCM_CDRH_SSI1DIV(x) (((x)&0x00FF))
3368+#define MCF_CCM_CDRH_SSI1DIV_MASK (0xFF00)
3369+#define MCF_CCM_CDRL_LPDIV(x) (((x)&0x000F)<<8)
3370+#define MCF_CCM_CDRL_LPDIV_MASK (0xFF0F)
3371+#define MCF_CCM_CDR_LPDIV(x) CCM_CDRL_LPDIV(x)
3372+
3373+#define MCF_CCM_UOCSR_DPPD (0x2000)
3374+#define MCF_CCM_UOCSR_DMPD (0x1000)
3375+#define MCF_CCM_UOCSR_DRV_VBUS (0x0800)
3376+#define MCF_CCM_UOCSR_CRG_VBUS (0x0400)
3377+#define MCF_CCM_UOCSR_DCR_VBUS (0x0200)
3378+#define MCF_CCM_UOCSR_DPPU (0x0100)
3379+#define MCF_CCM_UOCSR_AVLD (0x0080)
3380+#define MCF_CCM_UOCSR_BVLD (0x0040)
3381+#define MCF_CCM_UOCSR_VVLD (0x0020)
3382+#define MCF_CCM_UOCSR_SEND (0x0010)
3383+#define MCF_CCM_UOCSR_PWRFLT (0x0008)
3384+#define MCF_CCM_UOCSR_WKUP (0x0004)
3385+#define MCF_CCM_UOCSR_UOMIE (0x0002)
3386+#define MCF_CCM_UOCSR_XPDE (0x0001)
3387+
3388+#define MCF_CCM_UHCSR_DRV_VBUS (0x0010)
3389+#define MCF_CCM_UHCSR_PWRFLT (0x0008)
3390+#define MCF_CCM_UHCSR_WKUP (0x0004)
3391+#define MCF_CCM_UHCSR_UOMIE (0x0002)
3392+#define MCF_CCM_UHCSR_XPDE (0x0001)
3393+
3394+#define MCF_CCM_MISCCR3_TMR_ENET (0x1000)
3395+#define MCF_CCM_MISCCR3_ENETCLK(x) ((((x)&7))<<8)
3396+#define MCF_CCM_MISCCR3_ENETCLK_MASK (0xF8FF)
3397+#define MCF_CCM_MISCCR3_ENETCLK_MII (0x0700)
3398+#define MCF_CCM_MISCCR3_ENETCLK_OSC (0x0600)
3399+#define MCF_CCM_MISCCR3_ENETCLK_USB (0x0500)
3400+#define MCF_CCM_MISCCR3_ENETCLK_TMR3 (0x0400)
3401+#define MCF_CCM_MISCCR3_ENETCLK_TMR2 (0x0300)
3402+#define MCF_CCM_MISCCR3_ENETCLK_TMR1 (0x0200)
3403+#define MCF_CCM_MISCCR3_ENETCLK_TMR0 (0x0100)
3404+#define MCF_CCM_MISCCR3_ENETCLK_INTBUS (0x0000)
3405+
3406+#define MCF_CCM_MISCCR2_EXTCLKBYP (0x0800)
3407+#define MCF_CCM_MISCCR2_DDR2CLK (0x0400)
3408+#define MCF_CCM_MISCCR2_RGPIO_HALF (0x0200)
3409+#define MCF_CCM_MISCCR2_SWTSCR (0x0100)
3410+#define MCF_CCM_MISCCR2_PLLMODE(x) (((x)&7)<<8)
3411+#define MCF_CCM_MISCCR2_PLLMODE_MASK (0xF8FF)
3412+#define MCF_CCM_MISCCR2_DCCBYP (0x0080)
3413+#define MCF_CCM_MISCCR2_DAC1SEL (0x0040)
3414+#define MCF_CCM_MISCCR2_DAC0SEL (0x0020)
3415+#define MCF_CCM_MISCCR2_ADCEN (0x0010)
3416+#define MCF_CCM_MISCCR2_ADC7SEL (0x0008)
3417+#define MCF_CCM_MISCCR2_ADC3SEL (0x0004)
3418+#define MCF_CCM_MISCCR2_FBHALF (0x0002)
3419+#define MCF_CCM_MISCCR2_ULPI (0x0001)
3420+
3421+#define MCF_CCM_FNACR_PCR(x) (((x)&0x0F)<<24)
3422+#define MCF_CCM_FNACR_PCR_MASK (0xF0FFFFFF)
3423+#define MCF_CCM_FNACR_MCC(x) ((x)&0xFFFF)
3424+#define MCF_CCM_FNACR_MCC_MASK (0xFFFF0000)
3425+
3426+#endif /* __MCF5445X_CCM_H__ */
3427--- /dev/null
3428+++ b/arch/m68k/include/asm/mcf5441x_clock.h
3429@@ -0,0 +1,22 @@
3430+/*
3431+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved.
3432+ *
3433+ * This program is free software; you can redistribute it and/or modify it
3434+ * under the terms of the GNU General Public License as published by the
3435+ * Free Software Foundation; either version 2 of the License, or (at your
3436+ * option) any later version.
3437+ */
3438+
3439+#ifndef __MCF5441X_CLOCK_H__
3440+#define __MCF5441X_CLOCK_H__
3441+
3442+#define MCF_PLL_CR MCF_REG32(0xFC000000)
3443+#define MCF_PLL_DR MCF_REG32(0xFC000004)
3444+#define MCF_PLL_SR MCF_REG32(0xFC000008)
3445+
3446+#define MCF_PLL_DR_OUTDIV4 0x001F0000
3447+#define MCF_PLL_DR_OUTDIV1 0x1F
3448+
3449+
3450+#endif /*__MCF5441X_CLOCK_H__*/
3451+
3452--- /dev/null
3453+++ b/arch/m68k/include/asm/mcf5441x_dspi.h
3454@@ -0,0 +1,671 @@
3455+/*
3456+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved.
3457+ *
3458+ * Lanttor.Guo@freescale.com
3459+ *
3460+ * This program is free software; you can redistribute it and/or modify it
3461+ * under the terms of the GNU General Public License as published by the
3462+ * Free Software Foundation; either version 2 of the License, or (at your
3463+ * option) any later version.
3464+ */
3465+
3466+#ifndef __MCF5441X_DSPI_H__
3467+#define __MCF5441X_DSPI_H__
3468+
3469+/*********************************************************************
3470+*
3471+* DMA Serial Peripheral Interface (DSPI)
3472+*
3473+*********************************************************************/
3474+
3475+/* Register read/write macros */
3476+/* DSPI Module Configuration Register */
3477+#define MCF_DSPI_DMCR MCF_REG32(0xFC05C000)
3478+#define MCF_DSPI1_DMCR MCF_REG32(0xFC03C000)
3479+/* DSPI Transfer Count Register */
3480+#define MCF_DSPI_DTCR MCF_REG32(0xFC05C008)
3481+#define MCF_DSPI1_DTCR MCF_REG32(0xFC03C008)
3482+/* DSPI Clock and Transfer Attributes Register */
3483+#define MCF_DSPI_DCTAR0 MCF_REG32(0xFC05C00C)
3484+#define MCF_DSPI1_DCTAR0 MCF_REG32(0xFC03C00C)
3485+/* DSPI Clock and Transfer Attributes Register */
3486+#define MCF_DSPI_DCTAR1 MCF_REG32(0xFC05C010)
3487+/* DSPI Clock and Transfer Attributes Register */
3488+#define MCF_DSPI_DCTAR2 MCF_REG32(0xFC05C014)
3489+/* DSPI Clock and Transfer Attributes Register */
3490+#define MCF_DSPI_DCTAR3 MCF_REG32(0xFC05C018)
3491+/* DSPI Clock and Transfer Attributes Register */
3492+#define MCF_DSPI_DCTAR4 MCF_REG32(0xFC05C01C)
3493+/* DSPI Clock and Transfer Attributes Register */
3494+#define MCF_DSPI_DCTAR5 MCF_REG32(0xFC05C020)
3495+/* DSPI Clock and Transfer Attributes Register */
3496+#define MCF_DSPI_DCTAR6 MCF_REG32(0xFC05C024)
3497+/* DSPI Clock and Transfer Attributes Register */
3498+#define MCF_DSPI_DCTAR7 MCF_REG32(0xFC05C028
3499+/* DSPI Status Register */
3500+#define MCF_DSPI_DSR MCF_REG32(0xFC05C02C)
3501+#define MCF_DSPI1_DSR MCF_REG32(0xFC03C02C)
3502+/* DSPI DMA/Interrupt Request Select and Enable Register */
3503+#define MCF_DSPI_DRSER MCF_REG32(0xFC05C030)
3504+#define MCF_DSPI1_DRSER MCF_REG32(0xFC03C030)
3505+/* DSPI Transmit FIFO Register */
3506+#define MCF_DSPI_DTFR MCF_REG32(0xFC05C034)
3507+#define MCF_DSPI1_DTFR MCF_REG32(0xFC03C034)
3508+/* DSPI Receive FIFO Register */
3509+#define MCF_DSPI_DRFR MCF_REG32(0xFC05C038)
3510+#define MCF_DSPI1_DRFR MCF_REG32(0xFC03C038)
3511+/* DSPI Transmit FIFO Debugging Registers */
3512+#define MCF_DSPI_DTFDR0 MCF_REG32(0xFC05C03C)
3513+/* DSPI Transmit FIFO Debugging Registers */
3514+#define MCF_DSPI_DTFDR1 MCF_REG32(0xFC05C040)
3515+/* DSPI Transmit FIFO Debugging Registers */
3516+#define MCF_DSPI_DTFDR2 MCF_REG32(0xFC05C044)
3517+/* DSPI Transmit FIFO Debugging Registers */
3518+#define MCF_DSPI_DTFDR3 MCF_REG32(0xFC05C048)
3519+/* DSPI Receive FIFO Debugging Registers */
3520+#define MCF_DSPI_DRFDR0 MCF_REG32(0xFC05C07C)
3521+/* DSPI Receive FIFO Debugging Registers */
3522+#define MCF_DSPI_DRFDR1 MCF_REG32(0xFC05C080)
3523+/* DSPI Receive FIFO Debugging Registers */
3524+#define MCF_DSPI_DRFDR2 MCF_REG32(0xFC05C084)
3525+/* DSPI Receive FIFO Debugging Registers */
3526+#define MCF_DSPI_DRFDR3 MCF_REG32(0xFC05C088)
3527+
3528+/* Parameterized register read/write macros for multiple registers */
3529+/* DSPI Clock and Transfer Attributes Register */
3530+#define MCF_DSPI_DCTAR(x) MCF_REG32(0xFC05C00C+((x)*0x004))
3531+/* DSPI Transmit FIFO Debugging Registers */
3532+#define MCF_DSPI_DTFDR(x) MCF_REG32(0xFC05C03C+((x)*0x004))
3533+/* DSPI Receive FIFO Debugging Registers */
3534+#define MCF_DSPI_DRFDR(x) MCF_REG32(0xFC05C07C+((x)*0x004))
3535+
3536+/* Bit definitions and macros for DMCR */
3537+/* Halt -- stops and starts DSPI transfers */
3538+#define MCF_DSPI_DMCR_HALT (0x00000001)
3539+/* Sample point selection */
3540+#define MCF_DSPI_DMCR_SMPLPT(x) (((x)&0x00000003)<<8)
3541+/* Clear receive FIFO */
3542+#define MCF_DSPI_DMCR_CLRRXF (0x00000400)
3543+/* Clear transmit FIFO */
3544+#define MCF_DSPI_DMCR_CLRTXF (0x00000800)
3545+/* Disable receive FIFO */
3546+#define MCF_DSPI_DMCR_DISRXF (0x00001000)
3547+/* Disable transmit FIFO */
3548+#define MCF_DSPI_DMCR_DISTXF (0x00002000)
3549+/* Module Disable */
3550+#define MCF_DSPI_DMCR_MDIS (0x00004000)
3551+/* Peripheral chip-select 0 inactive state */
3552+#define MCF_DSPI_DMCR_PCSIS0 (0x00010000)
3553+/* Peripheral chip-select 1 inactive state */
3554+#define MCF_DSPI_DMCR_PCSIS1 (0x00020000)
3555+/* Peripheral chip-select 2 inactive state */
3556+#define MCF_DSPI_DMCR_PCSIS2 (0x00040000)
3557+/* Peripheral chip-select 3 inactive state */
3558+#define MCF_DSPI_DMCR_PCSIS3 (0x00080000)
3559+/* Peripheral chip-select 4 inactive state */
3560+#define MCF_DSPI_DMCR_PCSIS4 (0x00100000)
3561+/* Peripheral chip-select 5 inactive state */
3562+#define MCF_DSPI_DMCR_PCSIS5 (0x00200000)
3563+/* Peripheral chip-select 6 inactive state */
3564+#define MCF_DSPI_DMCR_PCSIS6 (0x00400000)
3565+/* Peripheral chip-select 7 inactive state */
3566+#define MCF_DSPI_DMCR_PCSIS7 (0x00800000)
3567+/* Receive FIFO overflow overwrite enable */
3568+#define MCF_DSPI_DMCR_ROOE (0x01000000)
3569+/* Peripheral chip select strobe enable */
3570+#define MCF_DSPI_DMCR_PCSSE (0x02000000)
3571+/* Modified timing format enable */
3572+#define MCF_DSPI_DMCR_MTFE (0x04000000)
3573+/* Freeze */
3574+#define MCF_DSPI_DMCR_FRZ (0x08000000)
3575+/* DSPI configuration */
3576+#define MCF_DSPI_DMCR_DCONF(x) (((x)&0x00000003)<<28)
3577+/* Continuous SCK enable */
3578+#define MCF_DSPI_DMCR_CONT_SCKE (0x40000000)
3579+/* Master/Slave mode select */
3580+#define MCF_DSPI_DMCR_MSTR (0x80000000)
3581+#define MCF_DSPI_DMCR_DCONF_SPI (0x00000000)
3582+#define MCF_DSPI_DMCR_PCSIS7_LOW (0x00000000)
3583+#define MCF_DSPI_DMCR_PCSIS7_HIGH (0x00800000)
3584+#define MCF_DSPI_DMCR_PCSIS6_LOW (0x00000000)
3585+#define MCF_DSPI_DMCR_PCSIS6_HIGH (0x00400000)
3586+#define MCF_DSPI_DMCR_PCSIS5_LOW (0x00000000)
3587+#define MCF_DSPI_DMCR_PCSIS5_HIGH (0x00200000)
3588+#define MCF_DSPI_DMCR_PCSIS4_LOW (0x00000000)
3589+#define MCF_DSPI_DMCR_PCSIS4_HIGH (0x00100000)
3590+#define MCF_DSPI_DMCR_PCSIS3_LOW (0x00000000)
3591+#define MCF_DSPI_DMCR_PCSIS3_HIGH (0x00080000)
3592+#define MCF_DSPI_DMCR_PCSIS2_LOW (0x00000000)
3593+#define MCF_DSPI_DMCR_PCSIS2_HIGH (0x00040000)
3594+#define MCF_DSPI_DMCR_PCSIS1_LOW (0x00000000)
3595+#define MCF_DSPI_DMCR_PCSIS1_HIGH (0x00020000)
3596+#define MCF_DSPI_DMCR_PCSIS0_LOW (0x00000000)
3597+#define MCF_DSPI_DMCR_PCSIS0_HIGH (0x00010000)
3598+
3599+/* Bit definitions and macros for DTCR */
3600+/* SPI transfer count */
3601+#define MCF_DSPI_DTCR_SPI_TCNT(x) (((x)&0x0000FFFF)<<16)
3602+
3603+/* Bit definitions and macros for DCTAR group */
3604+/* Baud rate scaler */
3605+#define MCF_DSPI_DCTAR_BR(x) (((x)&0x0000000F))
3606+/* Delay after transfer scaler */
3607+#define MCF_DSPI_DCTAR_DT(x) (((x)&0x0000000F)<<4)
3608+/* After SCK delay scaler */
3609+#define MCF_DSPI_DCTAR_ASC(x) (((x)&0x0000000F)<<8)
3610+/* PCS to SCK delay scaler */
3611+#define MCF_DSPI_DCTAR_CSSCK(x) (((x)&0x0000000F)<<12)
3612+/* Baud rate prescaler */
3613+#define MCF_DSPI_DCTAR_PBR(x) (((x)&0x00000003)<<16)
3614+/* Delay after transfer prescaler */
3615+#define MCF_DSPI_DCTAR_PDT(x) (((x)&0x00000003)<<18)
3616+/* After SCK delay prescaler */
3617+#define MCF_DSPI_DCTAR_PASC(x) (((x)&0x00000003)<<20)
3618+/* PCS to SCK delay prescaler */
3619+#define MCF_DSPI_DCTAR_PCSSCK(x) (((x)&0x00000003)<<22)
3620+/* LSB first enable */
3621+#define MCF_DSPI_DCTAR_LSBFE (0x01000000)
3622+/* Clock phase */
3623+#define MCF_DSPI_DCTAR_CPHA (0x02000000)
3624+/* Clock polarity */
3625+#define MCF_DSPI_DCTAR_CPOL (0x04000000)
3626+/* Frame size */
3627+#define MCF_DSPI_DCTAR_FMSZ(x) (((x)&0x0000000F)<<27)
3628+/* Double baud rate */
3629+#define MCF_DSPI_DCTAR_DBR (0x80000000)
3630+#define MCF_DSPI_DCTAR_CPOL_LOW (0x00000000)
3631+#define MCF_DSPI_DCTAR_CPOL_HIGH (0x04000000)
3632+#define MCF_DSPI_DCTAR_CPHA_LATCH_RISING (0x00000000)
3633+#define MCF_DSPI_DCTAR_CPHA_LATCH_FALLING (0x02000000)
3634+#define MCF_DSPI_DCTAR_PCSSCK_1CLK (0x00000000)
3635+#define MCF_DSPI_DCTAR_PCSSCK_3CLK (0x00400000)
3636+#define MCF_DSPI_DCTAR_PCSSCK_5CLK (0x00800000)
3637+#define MCF_DSPI_DCTAR_PCSSCK_7CLK (0x00C00000)
3638+#define MCF_DSPI_DCTAR_PASC_1CLK (0x00000000)
3639+#define MCF_DSPI_DCTAR_PASC_3CLK (0x00100000)
3640+#define MCF_DSPI_DCTAR_PASC_5CLK (0x00200000)
3641+#define MCF_DSPI_DCTAR_PASC_7CLK (0x00300000)
3642+#define MCF_DSPI_DCTAR_PDT_1CLK (0x00000000)
3643+#define MCF_DSPI_DCTAR_PDT_3CLK (0x00040000)
3644+#define MCF_DSPI_DCTAR_PDT_5CLK (0x00080000)
3645+#define MCF_DSPI_DCTAR_PDT_7CLK (0x000C0000)
3646+#define MCF_DSPI_DCTAR_PBR_2CLK (0x00000000)
3647+#define MCF_DSPI_DCTAR_PBR_3CLK (0x00010000)
3648+#define MCF_DSPI_DCTAR_PBR_5CLK (0x00020000)
3649+#define MCF_DSPI_DCTAR_PBR_7CLK (0x00030000)
3650+
3651+/* Bit definitions and macros for DCTAR0 */
3652+/* Baud rate scaler */
3653+#define MCF_DSPI_DCTAR0_BR(x) (((x)&0x0000000F))
3654+/* Delay after transfer scaler */
3655+#define MCF_DSPI_DCTAR0_DT(x) (((x)&0x0000000F)<<4)
3656+/* After SCK delay scaler */
3657+#define MCF_DSPI_DCTAR0_ASC(x) (((x)&0x0000000F)<<8)
3658+/* PCS to SCK delay scaler */
3659+#define MCF_DSPI_DCTAR0_CSSCK(x) (((x)&0x0000000F)<<12)
3660+/* Baud rate prescaler */
3661+#define MCF_DSPI_DCTAR0_PBR(x) (((x)&0x00000003)<<16)
3662+/* Delay after transfer prescaler */
3663+#define MCF_DSPI_DCTAR0_PDT(x) (((x)&0x00000003)<<18)
3664+/* After SCK delay prescaler */
3665+#define MCF_DSPI_DCTAR0_PASC(x) (((x)&0x00000003)<<20)
3666+/* PCS to SCK delay prescaler */
3667+#define MCF_DSPI_DCTAR0_PCSSCK(x) (((x)&0x00000003)<<22)
3668+/* LSB first enable */
3669+#define MCF_DSPI_DCTAR0_LSBFE (0x01000000)
3670+/* Clock phase */
3671+#define MCF_DSPI_DCTAR0_CPHA (0x02000000)
3672+/* Clock polarity */
3673+#define MCF_DSPI_DCTAR0_CPOL (0x04000000)
3674+/* Frame size */
3675+#define MCF_DSPI_DCTAR0_FMSZ(x) (((x)&0x0000000F)<<27)
3676+/* Double baud rate */
3677+#define MCF_DSPI_DCTAR0_DBR (0x80000000)
3678+#define MCF_DSPI_DCTAR0_CPOL_LOW (0x00000000)
3679+#define MCF_DSPI_DCTAR0_CPOL_HIGH (0x04000000)
3680+#define MCF_DSPI_DCTAR0_CPHA_LATCH_RISING (0x00000000)
3681+#define MCF_DSPI_DCTAR0_CPHA_LATCH_FALLING (0x02000000)
3682+#define MCF_DSPI_DCTAR0_PCSSCK_1CLK (0x00000000)
3683+#define MCF_DSPI_DCTAR0_PCSSCK_3CLK (0x00400000)
3684+#define MCF_DSPI_DCTAR0_PCSSCK_5CLK (0x00800000)
3685+#define MCF_DSPI_DCTAR0_PCSSCK_7CLK (0x00C00000)
3686+#define MCF_DSPI_DCTAR0_PASC_1CLK (0x00000000)
3687+#define MCF_DSPI_DCTAR0_PASC_3CLK (0x00100000)
3688+#define MCF_DSPI_DCTAR0_PASC_5CLK (0x00200000)
3689+#define MCF_DSPI_DCTAR0_PASC_7CLK (0x00300000)
3690+#define MCF_DSPI_DCTAR0_PDT_1CLK (0x00000000)
3691+#define MCF_DSPI_DCTAR0_PDT_3CLK (0x00040000)
3692+#define MCF_DSPI_DCTAR0_PDT_5CLK (0x00080000)
3693+#define MCF_DSPI_DCTAR0_PDT_7CLK (0x000C0000)
3694+#define MCF_DSPI_DCTAR0_PBR_2CLK (0x00000000)
3695+#define MCF_DSPI_DCTAR0_PBR_3CLK (0x00010000)
3696+#define MCF_DSPI_DCTAR0_PBR_5CLK (0x00020000)
3697+#define MCF_DSPI_DCTAR0_PBR_7CLK (0x00030000)
3698+
3699+/* Bit definitions and macros for DCTAR1 */
3700+/* Baud rate scaler */
3701+#define MCF_DSPI_DCTAR1_BR(x) (((x)&0x0000000F))
3702+/* Delay after transfer scaler */
3703+#define MCF_DSPI_DCTAR1_DT(x) (((x)&0x0000000F)<<4)
3704+/* After SCK delay scaler */
3705+#define MCF_DSPI_DCTAR1_ASC(x) (((x)&0x0000000F)<<8)
3706+/* PCS to SCK delay scaler */
3707+#define MCF_DSPI_DCTAR1_CSSCK(x) (((x)&0x0000000F)<<12)
3708+/* Baud rate prescaler */
3709+#define MCF_DSPI_DCTAR1_PBR(x) (((x)&0x00000003)<<16)
3710+/* Delay after transfer prescaler */
3711+#define MCF_DSPI_DCTAR1_PDT(x) (((x)&0x00000003)<<18)
3712+/* After SCK delay prescaler */
3713+#define MCF_DSPI_DCTAR1_PASC(x) (((x)&0x00000003)<<20)
3714+/* PCS to SCK delay prescaler */
3715+#define MCF_DSPI_DCTAR1_PCSSCK(x) (((x)&0x00000003)<<22)
3716+/* LSB first enable */
3717+#define MCF_DSPI_DCTAR1_LSBFE (0x01000000)
3718+/* Clock phase */
3719+#define MCF_DSPI_DCTAR1_CPHA (0x02000000)
3720+/* Clock polarity */
3721+#define MCF_DSPI_DCTAR1_CPOL (0x04000000)
3722+/* Frame size */
3723+#define MCF_DSPI_DCTAR1_FMSZ(x) (((x)&0x0000000F)<<27)
3724+/* Double baud rate */
3725+#define MCF_DSPI_DCTAR1_DBR (0x80000000)
3726+
3727+
3728+/* Bit definitions and macros for DCTAR2 */
3729+/* Baud rate scaler */
3730+#define MCF_DSPI_DCTAR2_BR(x) (((x)&0x0000000F))
3731+/* Delay after transfer scaler */
3732+#define MCF_DSPI_DCTAR2_DT(x) (((x)&0x0000000F)<<4)
3733+/* After SCK delay scaler */
3734+#define MCF_DSPI_DCTAR2_ASC(x) (((x)&0x0000000F)<<8)
3735+/* PCS to SCK delay scaler */
3736+#define MCF_DSPI_DCTAR2_CSSCK(x) (((x)&0x0000000F)<<12)
3737+/* Baud rate prescaler */
3738+#define MCF_DSPI_DCTAR2_PBR(x) (((x)&0x00000003)<<16)
3739+/* Delay after transfer prescaler */
3740+#define MCF_DSPI_DCTAR2_PDT(x) (((x)&0x00000003)<<18)
3741+/* After SCK delay prescaler */
3742+#define MCF_DSPI_DCTAR2_PASC(x) (((x)&0x00000003)<<20)
3743+/* PCS to SCK delay prescaler */
3744+#define MCF_DSPI_DCTAR2_PCSSCK(x) (((x)&0x00000003)<<22)
3745+/* LSB first enable */
3746+#define MCF_DSPI_DCTAR2_LSBFE (0x01000000)
3747+/* Clock phase */
3748+#define MCF_DSPI_DCTAR2_CPHA (0x02000000)
3749+/* Clock polarity */
3750+#define MCF_DSPI_DCTAR2_CPOL (0x04000000)
3751+/* Frame size */
3752+#define MCF_DSPI_DCTAR2_FMSZ(x) (((x)&0x0000000F)<<27)
3753+/* Double baud rate */
3754+#define MCF_DSPI_DCTAR2_DBR (0x80000000)
3755+
3756+/* Bit definitions and macros for DCTAR3 */
3757+/* Baud rate scaler */
3758+#define MCF_DSPI_DCTAR3_BR(x) (((x)&0x0000000F))
3759+/* Delay after transfer scaler */
3760+#define MCF_DSPI_DCTAR3_DT(x) (((x)&0x0000000F)<<4)
3761+/* After SCK delay scaler */
3762+#define MCF_DSPI_DCTAR3_ASC(x) (((x)&0x0000000F)<<8)
3763+/* PCS to SCK delay scaler */
3764+#define MCF_DSPI_DCTAR3_CSSCK(x) (((x)&0x0000000F)<<12)
3765+/* Baud rate prescaler */
3766+#define MCF_DSPI_DCTAR3_PBR(x) (((x)&0x00000003)<<16)
3767+/* Delay after transfer prescaler */
3768+#define MCF_DSPI_DCTAR3_PDT(x) (((x)&0x00000003)<<18)
3769+/* After SCK delay prescaler */
3770+#define MCF_DSPI_DCTAR3_PASC(x) (((x)&0x00000003)<<20)
3771+/* PCS to SCK delay prescaler */
3772+#define MCF_DSPI_DCTAR3_PCSSCK(x) (((x)&0x00000003)<<22)
3773+/* LSB first enable */
3774+#define MCF_DSPI_DCTAR3_LSBFE (0x01000000)
3775+/* Clock phase */
3776+#define MCF_DSPI_DCTAR3_CPHA (0x02000000)
3777+/* Clock polarity */
3778+#define MCF_DSPI_DCTAR3_CPOL (0x04000000)
3779+/* Frame size */
3780+#define MCF_DSPI_DCTAR3_FMSZ(x) (((x)&0x0000000F)<<27)
3781+/* Double baud rate */
3782+#define MCF_DSPI_DCTAR3_DBR (0x80000000)
3783+
3784+/* Bit definitions and macros for DCTAR4 */
3785+/* Baud rate scaler */
3786+#define MCF_DSPI_DCTAR4_BR(x) (((x)&0x0000000F))
3787+/* Delay after transfer scaler */
3788+#define MCF_DSPI_DCTAR4_DT(x) (((x)&0x0000000F)<<4)
3789+/* After SCK delay scaler */
3790+#define MCF_DSPI_DCTAR4_ASC(x) (((x)&0x0000000F)<<8)
3791+/* PCS to SCK delay scaler */
3792+#define MCF_DSPI_DCTAR4_CSSCK(x) (((x)&0x0000000F)<<12)
3793+/* Baud rate prescaler */
3794+#define MCF_DSPI_DCTAR4_PBR(x) (((x)&0x00000003)<<16)
3795+/* Delay after transfer prescaler */
3796+#define MCF_DSPI_DCTAR4_PDT(x) (((x)&0x00000003)<<18)
3797+/* After SCK delay prescaler */
3798+#define MCF_DSPI_DCTAR4_PASC(x) (((x)&0x00000003)<<20)
3799+/* PCS to SCK delay prescaler */
3800+#define MCF_DSPI_DCTAR4_PCSSCK(x) (((x)&0x00000003)<<22)
3801+/* LSB first enable */
3802+#define MCF_DSPI_DCTAR4_LSBFE (0x01000000)
3803+/* Clock phase */
3804+#define MCF_DSPI_DCTAR4_CPHA (0x02000000)
3805+/* Clock polarity */
3806+#define MCF_DSPI_DCTAR4_CPOL (0x04000000)
3807+/* Frame size */
3808+#define MCF_DSPI_DCTAR4_FMSZ(x) (((x)&0x0000000F)<<27)
3809+/* Double baud rate */
3810+#define MCF_DSPI_DCTAR4_DBR (0x80000000)
3811+
3812+/* Bit definitions and macros for DCTAR5 */
3813+/* Baud rate scaler */
3814+#define MCF_DSPI_DCTAR5_BR(x) (((x)&0x0000000F))
3815+/* Delay after transfer scaler */
3816+#define MCF_DSPI_DCTAR5_DT(x) (((x)&0x0000000F)<<4)
3817+/* After SCK delay scaler */
3818+#define MCF_DSPI_DCTAR5_ASC(x) (((x)&0x0000000F)<<8)
3819+/* PCS to SCK delay scaler */
3820+#define MCF_DSPI_DCTAR5_CSSCK(x) (((x)&0x0000000F)<<12)
3821+/* Baud rate prescaler */
3822+#define MCF_DSPI_DCTAR5_PBR(x) (((x)&0x00000003)<<16)
3823+/* Delay after transfer prescaler */
3824+#define MCF_DSPI_DCTAR5_PDT(x) (((x)&0x00000003)<<18)
3825+/* After SCK delay prescaler */
3826+#define MCF_DSPI_DCTAR5_PASC(x) (((x)&0x00000003)<<20)
3827+/* PCS to SCK delay prescaler */
3828+#define MCF_DSPI_DCTAR5_PCSSCK(x) (((x)&0x00000003)<<22)
3829+/* LSB first enable */
3830+#define MCF_DSPI_DCTAR5_LSBFE (0x01000000)
3831+/* Clock phase */
3832+#define MCF_DSPI_DCTAR5_CPHA (0x02000000)
3833+/* Clock polarity */
3834+#define MCF_DSPI_DCTAR5_CPOL (0x04000000)
3835+/* Frame size */
3836+#define MCF_DSPI_DCTAR5_FMSZ(x) (((x)&0x0000000F)<<27)
3837+/* Double baud rate */
3838+#define MCF_DSPI_DCTAR5_DBR (0x80000000)
3839+
3840+/* Bit definitions and macros for DCTAR6 */
3841+/* Baud rate scaler */
3842+#define MCF_DSPI_DCTAR6_BR(x) (((x)&0x0000000F))
3843+/* Delay after transfer scaler */
3844+#define MCF_DSPI_DCTAR6_DT(x) (((x)&0x0000000F)<<4)
3845+/* After SCK delay scaler */
3846+#define MCF_DSPI_DCTAR6_ASC(x) (((x)&0x0000000F)<<8)
3847+/* PCS to SCK delay scaler */
3848+#define MCF_DSPI_DCTAR6_CSSCK(x) (((x)&0x0000000F)<<12)
3849+/* Baud rate prescaler */
3850+#define MCF_DSPI_DCTAR6_PBR(x) (((x)&0x00000003)<<16)
3851+/* Delay after transfer prescaler */
3852+#define MCF_DSPI_DCTAR6_PDT(x) (((x)&0x00000003)<<18)
3853+/* After SCK delay prescaler */
3854+#define MCF_DSPI_DCTAR6_PASC(x) (((x)&0x00000003)<<20)
3855+/* PCS to SCK delay prescaler */
3856+#define MCF_DSPI_DCTAR6_PCSSCK(x) (((x)&0x00000003)<<22)
3857+/* LSB first enable */
3858+#define MCF_DSPI_DCTAR6_LSBFE (0x01000000)
3859+/* Clock phase */
3860+#define MCF_DSPI_DCTAR6_CPHA (0x02000000)
3861+/* Clock polarity */
3862+#define MCF_DSPI_DCTAR6_CPOL (0x04000000)
3863+/* Frame size */
3864+#define MCF_DSPI_DCTAR6_FMSZ(x) (((x)&0x0000000F)<<27)
3865+/* Double baud rate */
3866+#define MCF_DSPI_DCTAR6_DBR (0x80000000)
3867+
3868+/* Bit definitions and macros for DCTAR7 */
3869+/* Baud rate scaler */
3870+#define MCF_DSPI_DCTAR7_BR(x) (((x)&0x0000000F))
3871+/* Delay after transfer scaler */
3872+#define MCF_DSPI_DCTAR7_DT(x) (((x)&0x0000000F)<<4)
3873+/* After SCK delay scaler */
3874+#define MCF_DSPI_DCTAR7_ASC(x) (((x)&0x0000000F)<<8)
3875+/* PCS to SCK delay scaler */
3876+#define MCF_DSPI_DCTAR7_CSSCK(x) (((x)&0x0000000F)<<12)
3877+/* Baud rate prescaler */
3878+#define MCF_DSPI_DCTAR7_PBR(x) (((x)&0x00000003)<<16)
3879+/* Delay after transfer prescaler */
3880+#define MCF_DSPI_DCTAR7_PDT(x) (((x)&0x00000003)<<18)
3881+/* After SCK delay prescaler */
3882+#define MCF_DSPI_DCTAR7_PASC(x) (((x)&0x00000003)<<20)
3883+/* PCS to SCK delay prescaler */
3884+#define MCF_DSPI_DCTAR7_PCSSCK(x) (((x)&0x00000003)<<22)
3885+/* LSB first enable */
3886+#define MCF_DSPI_DCTAR7_LSBFE (0x01000000)
3887+/* Clock phase */
3888+#define MCF_DSPI_DCTAR7_CPHA (0x02000000)
3889+/* Clock polarity */
3890+#define MCF_DSPI_DCTAR7_CPOL (0x04000000)
3891+/* Frame size */
3892+#define MCF_DSPI_DCTAR7_FMSZ(x) (((x)&0x0000000F)<<27)
3893+/* Double baud rate */
3894+#define MCF_DSPI_DCTAR7_DBR (0x80000000)
3895+
3896+/* Bit definitions and macros for DSR */
3897+/* Receive next pointer */
3898+#define MCF_DSPI_DSR_RXPTR(x) (((x)&0x0000000F))
3899+/* Receive FIFO counter */
3900+#define MCF_DSPI_DSR_RXCTR(x) (((x)&0x0000000F)<<4)
3901+/* Transmit next pointer */
3902+#define MCF_DSPI_DSR_TXPTR(x) (((x)&0x0000000F)<<8)
3903+/* Transmit FIFO counter */
3904+#define MCF_DSPI_DSR_TXCTR(x) (((x)&0x0000000F)<<12)
3905+/* Receive FIFO drain flag */
3906+#define MCF_DSPI_DSR_RFDF (0x00020000)
3907+/* Receive FIFO overflow flag */
3908+#define MCF_DSPI_DSR_RFOF (0x00080000)
3909+/* Transmit FIFO fill flag */
3910+#define MCF_DSPI_DSR_TFFF (0x02000000)
3911+/* Transmit FIFO underflow flag */
3912+#define MCF_DSPI_DSR_TFUF (0x08000000)
3913+/* End of queue flag */
3914+#define MCF_DSPI_DSR_EOQF (0x10000000)
3915+/* Tx and Rx status (enabled | disabled) */
3916+#define MCF_DSPI_DSR_TXRXS (0x40000000)
3917+/* Transfer complete flag */
3918+#define MCF_DSPI_DSR_TCF (0x80000000)
3919+
3920+/* Bit definitions and macros for DRSER */
3921+/* Receive FIFO drain DMA or interrupt select */
3922+#define MCF_DSPI_DRSER_RFDFS (0x00010000)
3923+/* Receive FIFO drain request enable */
3924+#define MCF_DSPI_DRSER_RFDFE (0x00020000)
3925+/* Receive FIFO overflow request enable */
3926+#define MCF_DSPI_DRSER_RFOFE (0x00080000)
3927+/* Transmit FIFO fill DMA or interrupt select */
3928+#define MCF_DSPI_DRSER_TFFFS (0x01000000)
3929+/* Transmit FIFO fill request enable */
3930+#define MCF_DSPI_DRSER_TFFFE (0x02000000)
3931+/* Transmit FIFO underflow request enable */
3932+#define MCF_DSPI_DRSER_TFUFE (0x08000000)
3933+/* DSPI finished request enable */
3934+#define MCF_DSPI_DRSER_EOQFE (0x10000000)
3935+/* Transmission complete request enable */
3936+#define MCF_DSPI_DRSER_TCFE (0x80000000)
3937+
3938+/* Bit definitions and macros for DTFR */
3939+/* Transmit data */
3940+#define MCF_DSPI_DTFR_TXDATA(x) (((x)&0x0000FFFF))
3941+/* Peripheral chip select 0 */
3942+#define MCF_DSPI_DTFR_PCS0 (0x00010000)
3943+/* Peripheral chip select 1 */
3944+#define MCF_DSPI_DTFR_PCS1 (0x00020000)
3945+/* Peripheral chip select 2 */
3946+#define MCF_DSPI_DTFR_PCS2 (0x00040000)
3947+/* Peripheral chip select 3 */
3948+#define MCF_DSPI_DTFR_PCS3 (0x00080000)
3949+/* Peripheral chip select 4 */
3950+#define MCF_DSPI_DTFR_PCS4 (0x00100000)
3951+/* Peripheral chip select 5 */
3952+#define MCF_DSPI_DTFR_PCS5 (0x00200000)
3953+/* Peripheral chip select 6 */
3954+#define MCF_DSPI_DTFR_PCS6 (0x00400000)
3955+/* Peripheral chip select 7 */
3956+#define MCF_DSPI_DTFR_PCS7 (0x00800000)
3957+/* Clear SPI transfer counter */
3958+#define MCF_DSPI_DTFR_CTCNT (0x04000000)
3959+/* End of queue */
3960+#define MCF_DSPI_DTFR_EOQ (0x08000000)
3961+/* Clock and transfer attributes select */
3962+#define MCF_DSPI_DTFR_CTAS(x) (((x)&0x00000007)<<28)
3963+/* Continuous peripheral chip-select enable */
3964+#define MCF_DSPI_DTFR_CONT (0x80000000)
3965+
3966+/* Bit definitions and macros for DRFR */
3967+/* Receive data */
3968+#define MCF_DSPI_DRFR_RXDATA(x) (((x)&0x0000FFFF))
3969+
3970+/* Bit definitions and macros for DTFDR group */
3971+/* Transmit data */
3972+#define MCF_DSPI_DTFDR_TXDATA(x) (((x)&0x0000FFFF))
3973+/* Peripheral chip select 0 */
3974+#define MCF_DSPI_DTFDR_PCS0 (0x00010000)
3975+/* Peripheral chip select 0 */
3976+#define MCF_DSPI_DTFDR_PCS1 (0x00020000)
3977+/* Peripheral chip select 0 */
3978+#define MCF_DSPI_DTFDR_PCS2 (0x00040000)
3979+/* Peripheral chip select 0 */
3980+#define MCF_DSPI_DTFDR_PCS3 (0x00080000)
3981+/* Peripheral chip select 0 */
3982+#define MCF_DSPI_DTFDR_PCS4 (0x00100000)
3983+/* Peripheral chip select 0 */
3984+#define MCF_DSPI_DTFDR_PCS5 (0x00200000)
3985+/* Peripheral chip select 0 */
3986+#define MCF_DSPI_DTFDR_PCS6 (0x00400000)
3987+/* Peripheral chip select 0 */
3988+#define MCF_DSPI_DTFDR_PCS7 (0x00800000)
3989+/* Clear SPI transfer counter */
3990+#define MCF_DSPI_DTFDR_CTCNT (0x04000000)
3991+/* End of queue */
3992+#define MCF_DSPI_DTFDR_EOQ (0x08000000)
3993+/* Clock and transfer attributes select */
3994+#define MCF_DSPI_DTFDR_CTAS(x) (((x)&0x00000007)<<28)
3995+/* Continuous peripheral chip-select enable */
3996+#define MCF_DSPI_DTFDR_CONT (0x80000000)
3997+
3998+/* Bit definitions and macros for DTFDR0 */
3999+/* Transmit data */
4000+#define MCF_DSPI_DTFDR0_TXDATA(x) (((x)&0x0000FFFF))
4001+/* Peripheral chip select 0 */
4002+#define MCF_DSPI_DTFDR0_PCS0 (0x00010000)
4003+/* Peripheral chip select 0 */
4004+#define MCF_DSPI_DTFDR0_PCS1 (0x00020000)
4005+/* Peripheral chip select 0 */
4006+#define MCF_DSPI_DTFDR0_PCS2 (0x00040000)
4007+/* Peripheral chip select 0 */
4008+#define MCF_DSPI_DTFDR0_PCS3 (0x00080000)
4009+/* Peripheral chip select 0 */
4010+#define MCF_DSPI_DTFDR0_PCS4 (0x00100000)
4011+/* Peripheral chip select 0 */
4012+#define MCF_DSPI_DTFDR0_PCS5 (0x00200000)
4013+/* Peripheral chip select 0 */
4014+#define MCF_DSPI_DTFDR0_PCS6 (0x00400000)
4015+/* Peripheral chip select 0 */
4016+#define MCF_DSPI_DTFDR0_PCS7 (0x00800000)
4017+/* Clear SPI transfer counter */
4018+#define MCF_DSPI_DTFDR0_CTCNT (0x04000000)
4019+/* End of queue */
4020+#define MCF_DSPI_DTFDR0_EOQ (0x08000000)
4021+/* Clock and transfer attributes select */
4022+#define MCF_DSPI_DTFDR0_CTAS(x) (((x)&0x00000007)<<28)
4023+/* Continuous peripheral chip-select enable */
4024+#define MCF_DSPI_DTFDR0_CONT (0x80000000)
4025+/* Bit definitions and macros for DTFDR1 */
4026+/* Transmit data */
4027+#define MCF_DSPI_DTFDR1_TXDATA(x) (((x)&0x0000FFFF))
4028+/* Peripheral chip select 0 */
4029+#define MCF_DSPI_DTFDR1_PCS0 (0x00010000)
4030+/* Peripheral chip select 1 */
4031+#define MCF_DSPI_DTFDR1_PCS1 (0x00020000)
4032+/* Peripheral chip select 2 */
4033+#define MCF_DSPI_DTFDR1_PCS2 (0x00040000)
4034+/* Peripheral chip select 3 */
4035+#define MCF_DSPI_DTFDR1_PCS3 (0x00080000)
4036+/* Peripheral chip select 4 */
4037+#define MCF_DSPI_DTFDR1_PCS4 (0x00100000)
4038+/* Peripheral chip select 5 */
4039+#define MCF_DSPI_DTFDR1_PCS5 (0x00200000)
4040+/* Peripheral chip select 6 */
4041+#define MCF_DSPI_DTFDR1_PCS6 (0x00400000)
4042+/* Peripheral chip select 7 */
4043+#define MCF_DSPI_DTFDR1_PCS7 (0x00800000)
4044+/* Clear SPI transfer counter */
4045+#define MCF_DSPI_DTFDR1_CTCNT (0x04000000)
4046+/* End of queue */
4047+#define MCF_DSPI_DTFDR1_EOQ (0x08000000)
4048+/* Clock and transfer attributes select */
4049+#define MCF_DSPI_DTFDR1_CTAS(x) (((x)&0x00000007)<<28)
4050+/* Continuous peripheral chip-select enable */
4051+#define MCF_DSPI_DTFDR1_CONT (0x80000000)
4052+
4053+/* Bit definitions and macros for DTFDR2 */
4054+#define MCF_DSPI_DTFDR2_TXDATA(x) (((x)&0x0000FFFF))
4055+/* Peripheral chip select 0 */
4056+#define MCF_DSPI_DTFDR2_PCS0 (0x00010000)
4057+/* Peripheral chip select 1 */
4058+#define MCF_DSPI_DTFDR2_PCS1 (0x00020000)
4059+/* Peripheral chip select 2 */
4060+#define MCF_DSPI_DTFDR2_PCS2 (0x00040000)
4061+/* Peripheral chip select 3 */
4062+#define MCF_DSPI_DTFDR2_PCS3 (0x00080000)
4063+/* Peripheral chip select 4 */
4064+#define MCF_DSPI_DTFDR2_PCS4 (0x00100000)
4065+/* Peripheral chip select 5 */
4066+#define MCF_DSPI_DTFDR2_PCS5 (0x00200000)
4067+/* Peripheral chip select 6 */
4068+#define MCF_DSPI_DTFDR2_PCS6 (0x00400000)
4069+/* Peripheral chip select 7 */
4070+#define MCF_DSPI_DTFDR2_PCS7 (0x00800000)
4071+/* Clear SPI transfer counter */
4072+#define MCF_DSPI_DTFDR2_CTCNT (0x04000000)
4073+/* End of queue */
4074+#define MCF_DSPI_DTFDR2_EOQ (0x08000000)
4075+/* Clock and transfer attributes select */
4076+#define MCF_DSPI_DTFDR2_CTAS(x) (((x)&0x00000007)<<28)
4077+/* Continuous peripheral chip-select enable */
4078+#define MCF_DSPI_DTFDR2_CONT (0x80000000)
4079+
4080+/* Bit definitions and macros for DTFDR3 */
4081+/* Transmit data */
4082+#define MCF_DSPI_DTFDR3_TXDATA(x) (((x)&0x0000FFFF))
4083+/* Peripheral chip select 0 */
4084+#define MCF_DSPI_DTFDR3_PCS0 (0x00010000)
4085+/* Peripheral chip select 1 */
4086+#define MCF_DSPI_DTFDR3_PCS1 (0x00020000)
4087+/* Peripheral chip select 2 */
4088+#define MCF_DSPI_DTFDR3_PCS2 (0x00040000)
4089+/* Peripheral chip select 3 */
4090+#define MCF_DSPI_DTFDR3_PCS3 (0x00080000)
4091+/* Peripheral chip select 4 */
4092+#define MCF_DSPI_DTFDR3_PCS4 (0x00100000)
4093+/* Peripheral chip select 5 */
4094+#define MCF_DSPI_DTFDR3_PCS5 (0x00200000)
4095+/* Peripheral chip select 6 */
4096+#define MCF_DSPI_DTFDR3_PCS6 (0x00400000)
4097+/* Peripheral chip select 7 */
4098+#define MCF_DSPI_DTFDR3_PCS7 (0x00800000)
4099+/* Clear SPI transfer counter */
4100+#define MCF_DSPI_DTFDR3_CTCNT (0x04000000)
4101+/* End of queue */
4102+#define MCF_DSPI_DTFDR3_EOQ (0x08000000)
4103+/* Clock and transfer attributes select */
4104+#define MCF_DSPI_DTFDR3_CTAS(x) (((x)&0x00000007)<<28)
4105+/* Continuous peripheral chip-select enable */
4106+#define MCF_DSPI_DTFDR3_CONT (0x80000000)
4107+
4108+/* Bit definitions and macros for DRFDR group */
4109+#define MCF_DSPI_DRFDR_RXDATA(x) (((x)&0x0000FFFF))
4110+
4111+/* Bit definitions and macros for DRFDR0 */
4112+#define MCF_DSPI_DRFDR0_RXDATA(x) (((x)&0x0000FFFF))
4113+
4114+/* Bit definitions and macros for DRFDR1 */
4115+#define MCF_DSPI_DRFDR1_RXDATA(x) (((x)&0x0000FFFF))
4116+
4117+/* Bit definitions and macros for DRFDR2 */
4118+#define MCF_DSPI_DRFDR2_RXDATA(x) (((x)&0x0000FFFF))
4119+
4120+/* Bit definitions and macros for DRFDR3 */
4121+#define MCF_DSPI_DRFDR3_RXDATA(x) (((x)&0x0000FFFF))
4122+
4123+/********************************************************************/
4124+
4125+#endif /* __MCF5441X_DSPI_H__ */
4126--- /dev/null
4127+++ b/arch/m68k/include/asm/mcf5441x_dtim.h
4128@@ -0,0 +1,95 @@
4129+/*
4130+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved.
4131+ *
4132+ * This program is free software; you can redistribute it and/or modify it
4133+ * under the terms of the GNU General Public License as published by the
4134+ * Free Software Foundation; either version 2 of the License, or (at your
4135+ * option) any later version.
4136+ */
4137+
4138+#ifndef __MCF5441X_DTIM_H__
4139+#define __MCF5441X_DTIM_H__
4140+
4141+/*********************************************************************
4142+*
4143+* DMA Timers (DTIM)
4144+*
4145+*********************************************************************/
4146+/* Register read/write macros */
4147+#define MCF_DTIM0_DTMR 0xFC070000 /* DMA Timer Mode Register */
4148+#define MCF_DTIM0_DTXMR 0xFC070002 /* DMA Timer Extended Mode Register */
4149+#define MCF_DTIM0_DTER 0xFC070003 /* DMA Timer Event Register */
4150+#define MCF_DTIM0_DTRR 0xFC070004 /* DMA Timer Reference Register */
4151+#define MCF_DTIM0_DTCR 0xFC070008 /* DMA Timer Capture Register */
4152+#define MCF_DTIM0_DTCN 0xFC07000C /* DMA Timer Counter Register */
4153+#define MCF_DTIM1_DTMR 0xFC074000 /* DMA Timer Mode Register */
4154+#define MCF_DTIM1_DTXMR 0xFC074002 /* DMA Timer Extended Mode Register */
4155+#define MCF_DTIM1_DTER 0xFC074003 /* DMA Timer Event Register */
4156+#define MCF_DTIM1_DTRR 0xFC074004 /* DMA Timer Reference Register */
4157+#define MCF_DTIM1_DTCR 0xFC074008 /* DMA Timer Capture Register */
4158+#define MCF_DTIM1_DTCN 0xFC07400C /* DMA Timer Counter Register */
4159+#define MCF_DTIM2_DTMR 0xFC078000 /* DMA Timer Mode Register */
4160+#define MCF_DTIM2_DTXMR 0xFC078002 /* DMA Timer Extended Mode Register */
4161+#define MCF_DTIM2_DTER 0xFC078003 /* DMA Timer Event Register */
4162+#define MCF_DTIM2_DTRR 0xFC078004 /* DMA Timer Reference Register */
4163+#define MCF_DTIM2_DTCR 0xFC078008 /* DMA Timer Capture Register */
4164+#define MCF_DTIM2_DTCN 0xFC07800C /* DMA Timer Counter Register */
4165+#define MCF_DTIM3_DTMR 0xFC07C000 /* DMA Timer Mode Register */
4166+#define MCF_DTIM3_DTXMR 0xFC07C002 /* DMA Timer Extended Mode Register */
4167+#define MCF_DTIM3_DTER 0xFC07C003 /* DMA Timer Event Register */
4168+#define MCF_DTIM3_DTRR 0xFC07C004 /* DMA Timer Reference Register */
4169+#define MCF_DTIM3_DTCR 0xFC07C008 /* DMA Timer Capture Register */
4170+#define MCF_DTIM3_DTCN 0xFC07C00C /* DMA Timer Counter Register */
4171+
4172+/* Parameterized register read/write macros for multiple modules */
4173+/* DMA Timer Mode Register */
4174+#define MCF_DTIM_DTMR(x) (0xFC070000+((x)*0x4000))
4175+/* DMA Timer Extended Mode Register */
4176+#define MCF_DTIM_DTXMR(x) (0xFC070002+((x)*0x4000))
4177+/* DMA Timer Event Register */
4178+#define MCF_DTIM_DTER(x) (0xFC070003+((x)*0x4000))
4179+/* DMA Timer Reference Register */
4180+#define MCF_DTIM_DTRR(x) (0xFC070004+((x)*0x4000))
4181+/* DMA Timer Capture Register */
4182+#define MCF_DTIM_DTCR(x) (0xFC070008+((x)*0x4000))
4183+/* DMA Timer Counter Register */
4184+#define MCF_DTIM_DTCN(x) (0xFC07000C+((x)*0x4000))
4185+
4186+/* Bit definitions and macros for DTMR */
4187+#define MCF_DTIM_DTMR_RST (0x0001) /* Reset */
4188+#define MCF_DTIM_DTMR_CLK(x) (((x)&0x0003)<<1) /* Input clock source */
4189+#define MCF_DTIM_DTMR_FRR (0x0008) /* Free run/restart */
4190+/* Output reference request/interrupt enable */
4191+#define MCF_DTIM_DTMR_ORRI (0x0010)
4192+#define MCF_DTIM_DTMR_OM (0x0020) /* Output Mode */
4193+#define MCF_DTIM_DTMR_CE(x) (((x)&0x0003)<<6) /* Capture Edge */
4194+#define MCF_DTIM_DTMR_PS(x) (((x)&0x00FF)<<8) /* Prescaler value */
4195+#define MCF_DTIM_DTMR_RST_EN (0x0001)
4196+#define MCF_DTIM_DTMR_RST_RST (0x0000)
4197+#define MCF_DTIM_DTMR_CE_ANY (0x00C0)
4198+#define MCF_DTIM_DTMR_CE_FALL (0x0080)
4199+#define MCF_DTIM_DTMR_CE_RISE (0x0040)
4200+#define MCF_DTIM_DTMR_CE_NONE (0x0000)
4201+#define MCF_DTIM_DTMR_CLK_DTIN (0x0006)
4202+#define MCF_DTIM_DTMR_CLK_DIV16 (0x0004)
4203+#define MCF_DTIM_DTMR_CLK_DIV1 (0x0002)
4204+#define MCF_DTIM_DTMR_CLK_STOP (0x0000)
4205+
4206+/* Bit definitions and macros for DTXMR */
4207+#define MCF_DTIM_DTXMR_MODE16 (0x01) /* Increment Mode */
4208+#define MCF_DTIM_DTXMR_DMAEN (0x80) /* DMA request */
4209+#define MCF_DTIM_DTXMR_1588EN (0x20) /* Enable 1588 mode*/
4210+
4211+/* Bit definitions and macros for DTER */
4212+#define MCF_DTIM_DTER_CAP (0x01) /* Capture event */
4213+#define MCF_DTIM_DTER_REF (0x02) /* Output reference event */
4214+
4215+/* Interrupts used for system timers */
4216+#define MCFSIM_ICR_TIMER0 (0xFC048040+32)
4217+#define MCFSIM_ICR_TIMER1 (0xFC048040+33)
4218+#define MCFSIM_ICR_TIMER2 (0xFC048040+34)
4219+#define MCFSIM_ICR_TIMER3 (0xFC048040+35)
4220+
4221+/********************************************************************/
4222+
4223+#endif /* __MCF5441X_DTIM_H__ */
4224--- /dev/null
4225+++ b/arch/m68k/include/asm/mcf5441x_edma.h
4226@@ -0,0 +1,303 @@
4227+/* mcf5441x_edma.h
4228+ *
4229+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved.
4230+ * Lanttor.Guo@freescale.com
4231+ *
4232+ * This program is free software; you can redistribute it and/or modify it
4233+ * under the terms of the GNU General Public License as published by the
4234+ * Free Software Foundation; either version 2 of the License, or (at your
4235+ * option) any later version.
4236+ */
4237+#ifndef __MCF5441X_EDMA_H__
4238+#define __MCF5441X_EDMA_H__
4239+
4240+/*
4241+ * Enhanced DMA (EDMA)
4242+ */
4243+
4244+/* Channels */
4245+#define MCF_EDMA_CHAN_DREQ0 0 /* External DMA request 0 */
4246+#define MCF_EDMA_CHAN_DREQ1 1 /* External DMA request 1 */
4247+#define MCF_EDMA_CHAN_UART0_RX 2 /* UART0 Receive */
4248+#define MCF_EDMA_CHAN_UART0_TX 3 /* UART0 Transmit */
4249+#define MCF_EDMA_CHAN_UART1_RX 4 /* UART1 Receive */
4250+#define MCF_EDMA_CHAN_UART1_TX 5 /* UART1 Transmit */
4251+#define MCF_EDMA_CHAN_UART2_RX 6 /* UART2 Receive */
4252+#define MCF_EDMA_CHAN_UART2_TX 7 /* UART2 Transmit */
4253+#define MCF_EDMA_CHAN_TIMER0 8 /* Timer 0 / SSI0 Rx */
4254+#define MCF_EDMA_CHAN_TIMER1 9 /* Timer 1 / SSI1 Rx */
4255+#define MCF_EDMA_CHAN_TIMER2 10 /* Timer 2 / SSI0 Tx */
4256+#define MCF_EDMA_CHAN_TIMER3 11 /* Timer 3 / SSI1 Tx */
4257+#define MCF_EDMA_CHAN_DSPI0_RX 12 /* DSPI0 Receive */
4258+#define MCF_EDMA_CHAN_DSPI0_TX 13 /* DSPI0 Transmit */
4259+#define MCF_EDMA_CHAN_DSPI1_RX 14 /* DSPI1 Receive */
4260+#define MCF_EDMA_CHAN_DSPI1_TX 15 /* DSPI1 Transmit */
4261+#define MCF_EDMA_CHAN_UART3_RX 16 /* UART3 Receive */
4262+#define MCF_EDMA_CHAN_UART3_TX 17 /* UART3 Transmit */
4263+#define MCF_EDMA_CHAN_UART4_RX 18 /* UART4 Receive */
4264+#define MCF_EDMA_CHAN_UART4_TX 19 /* UART4 Transmit */
4265+#define MCF_EDMA_CHAN_UART5_RX 20 /* UART5 Receive */
4266+#define MCF_EDMA_CHAN_UART5_TX 21 /* UART5 Transmit */
4267+#define MCF_EDMA_CHAN_UART6_RX 22 /* UART6 Receive */
4268+#define MCF_EDMA_CHAN_UART6_TX 23 /* UART6 Transmit */
4269+#define MCF_EDMA_CHAN_I2C0 24 /* I2C0 */
4270+#define MCF_EDMA_CHAN_I2C1 25 /* I2C1 */
4271+#define MCF_EDMA_CHAN_I2C2 26 /* I2C2 */
4272+#define MCF_EDMA_CHAN_I2C3 27 /* I2C3 */
4273+#define MCF_EDMA_CHAN_DSPI2_RX 28 /* DSPI2 Receive */
4274+#define MCF_EDMA_CHAN_DSPI2_TX 29 /* DSPI2 Transmit */
4275+#define MCF_EDMA_CHAN_N0 30 /* Available for software */
4276+#define MCF_EDMA_CHAN_N1 31 /* Available for software */
4277+#define MCF_EDMA_CHAN_UART7_RX 32 /* UART7 Receive */
4278+#define MCF_EDMA_CHAN_UART7_TX 33 /* UART7 Transmit */
4279+#define MCF_EDMA_CHAN_UART8_RX 34 /* UART8 Receive */
4280+#define MCF_EDMA_CHAN_UART8_TX 35 /* UART8 Transmit */
4281+#define MCF_EDMA_CHAN_UART9_RX 36 /* UART9 Receive */
4282+#define MCF_EDMA_CHAN_UART9_TX 37 /* UART9 Transmit */
4283+#define MCF_EDMA_CHAN_OW 38 /* 1-Wire */
4284+#define MCF_EDMA_CHAN_RESERVED 39 /* Reserved */
4285+#define MCF_EDMA_CHAN_I2C4 40 /* I2C4 */
4286+#define MCF_EDMA_CHAN_I2C5 41 /* I2C5 */
4287+#define MCF_EDMA_CHAN_N2 42 /* Available for software */
4288+#define MCF_EDMA_CHAN_N3 43 /* Available for software */
4289+#define MCF_EDMA_CHAN_DSPI3_RX 44 /* DSPI3 Receive */
4290+#define MCF_EDMA_CHAN_DSPI3_TX 45 /* DSPI3 Transmit */
4291+#define MCF_EDMA_CHAN_SSI0_RX0 48 /* SSI0 Receive 0 */
4292+#define MCF_EDMA_CHAN_SSI0_RX1 49 /* SSI0 Receive 1 */
4293+#define MCF_EDMA_CHAN_SSI0_TX0 50 /* SSI0 Transmit 0 */
4294+#define MCF_EDMA_CHAN_SSI0_TX1 51 /* SSI0 Transmit 1 */
4295+#define MCF_EDMA_CHAN_SSI1_RX0 52 /* SSI1 Receive 0 */
4296+#define MCF_EDMA_CHAN_SSI1_RX1 53 /* SSI1 Receive 1 */
4297+#define MCF_EDMA_CHAN_SSI1_TX0 54 /* SSI1 Transmit 0 */
4298+#define MCF_EDMA_CHAN_SSI1_TX1 55 /* SSI1 Transmit 1 */
4299+#define MCF_EDMA_CHAN_PWM_CAP 56 /* PWM Capture */
4300+#define MCF_EDMA_CHAN_PWM_VAL 57 /* PWM Value */
4301+#define MCF_EDMA_CHAN_RESERVED2 58 /* Reserved */
4302+#define MCF_EDMA_CHAN_ESDHC 59 /* eSDHC */
4303+#define MCF_EDMA_CHAN_ADC0 60 /* ADC 0 */
4304+#define MCF_EDMA_CHAN_ADC1 61 /* ADC 1 */
4305+#define MCF_EDMA_CHAN_DAC0 62 /* DAC 0 */
4306+#define MCF_EDMA_CHAN_DAC1 63 /* DAC 1 */
4307+
4308+/* Register read/write macros */
4309+#define MCF_EDMA_CR MCF_REG32(0xFC044000)
4310+#define MCF_EDMA_ES MCF_REG32(0xFC044004)
4311+#define MCF_EDMA_ERQH MCF_REG32(0xFC044008)
4312+#define MCF_EDMA_ERQL MCF_REG32(0xFC04400C)
4313+#define MCF_EDMA_EEIH MCF_REG32(0xFC044010)
4314+#define MCF_EDMA_EEIL MCF_REG32(0xFC044014)
4315+#define MCF_EDMA_SERQ MCF_REG08(0xFC044018)
4316+#define MCF_EDMA_CERQ MCF_REG08(0xFC044019)
4317+#define MCF_EDMA_SEEI MCF_REG08(0xFC04401A)
4318+#define MCF_EDMA_CEEI MCF_REG08(0xFC04401B)
4319+#define MCF_EDMA_CINT MCF_REG08(0xFC04401C)
4320+#define MCF_EDMA_CERR MCF_REG08(0xFC04401D)
4321+#define MCF_EDMA_SSRT MCF_REG08(0xFC04401E)
4322+#define MCF_EDMA_CDNE MCF_REG08(0xFC04401F)
4323+#define MCF_EDMA_INTH MCF_REG32(0xFC044020)
4324+#define MCF_EDMA_INTL MCF_REG32(0xFC044024)
4325+#define MCF_EDMA_ERRH MCF_REG32(0xFC044028)
4326+#define MCF_EDMA_ERRL MCF_REG32(0xFC04402C)
4327+#define MCF_EDMA_RSH MCF_REG32(0xFC044030)
4328+#define MCF_EDMA_RSL MCF_REG32(0xFC044034)
4329+
4330+/* Parameterized register read/write macros for multiple registers */
4331+#define MCF_EDMA_DCHPRI(x) MCF_REG08(0xFC044100+((x)*0x001))
4332+#define MCF_EDMA_TCD_SADDR(x) MCF_REG32(0xFC045000+((x)*0x020))
4333+#define MCF_EDMA_TCD_ATTR(x) MCF_REG16(0xFC045004+((x)*0x020))
4334+#define MCF_EDMA_TCD_SOFF(x) MCF_REG16(0xFC045006+((x)*0x020))
4335+#define MCF_EDMA_TCD_NBYTES(x) MCF_REG32(0xFC045008+((x)*0x020))
4336+#define MCF_EDMA_TCD_SLAST(x) MCF_REG32(0xFC04500C+((x)*0x020))
4337+#define MCF_EDMA_TCD_DADDR(x) MCF_REG32(0xFC045010+((x)*0x020))
4338+#define MCF_EDMA_TCD_CITER_ELINK(x) MCF_REG16(0xFC045014+((x)*0x020))
4339+#define MCF_EDMA_TCD_CITER(x) MCF_REG16(0xFC045014+((x)*0x020))
4340+#define MCF_EDMA_TCD_DOFF(x) MCF_REG16(0xFC045016+((x)*0x020))
4341+#define MCF_EDMA_TCD_DLAST_SGA(x) MCF_REG32(0xFC045018+((x)*0x020))
4342+#define MCF_EDMA_TCD_BITER_ELINK(x) MCF_REG16(0xFC04501C+((x)*0x020))
4343+#define MCF_EDMA_TCD_BITER(x) MCF_REG16(0xFC04501C+((x)*0x020))
4344+#define MCF_EDMA_TCD_CSR(x) MCF_REG16((0xFC04501e)+((x)*0x020))
4345+
4346+/* Bit definitions and macros for CR */
4347+#define MCF_EDMA_CR_EDBG (0x00000002)
4348+#define MCF_EDMA_CR_ERCA (0x00000004)
4349+#define MCF_EDMA_CR_ERGA (0x00000008)
4350+#define MCF_EDMA_CR_HOE (0x00000010)
4351+#define MCF_EDMA_CR_HALT (0x00000020)
4352+#define MCF_EDMA_CR_CLM (0x00000040)
4353+#define MCF_EDMA_CR_EMLM (0x00000080)
4354+#define MCF_EDMA_CR_GRP0PRI(x) (((x)&0x03)<<8)
4355+#define MCF_EDMA_CR_GRP1PRI(x) (((x)&0x03)<<10)
4356+#define MCF_EDMA_CR_GRP2PRI(x) (((x)&0x03)<<12)
4357+#define MCF_EDMA_CR_GRP3PRI(x) (((x)&0x03)<<14)
4358+#define MCF_EDMA_CR_ECX (0x00010000)
4359+#define MCF_EDMA_CR_CX (0x00020000)
4360+
4361+/* Bit definitions and macros for ES */
4362+#define MCF_EDMA_ES_DBE (0x00000001)
4363+#define MCF_EDMA_ES_SBE (0x00000002)
4364+#define MCF_EDMA_ES_SGE (0x00000004)
4365+#define MCF_EDMA_ES_NCE (0x00000008)
4366+#define MCF_EDMA_ES_DOE (0x00000010)
4367+#define MCF_EDMA_ES_DAE (0x00000020)
4368+#define MCF_EDMA_ES_SOE (0x00000040)
4369+#define MCF_EDMA_ES_SAE (0x00000080)
4370+#define MCF_EDMA_ES_ERRCHN(x) (((x)&0x0000003F)<<8)
4371+#define MCF_EDMA_ES_CPE (0x00004000)
4372+#define MCF_EDMA_ES_GPE (0x00008000)
4373+#define MCF_EDMA_ES_ECX (0x00010000)
4374+#define MCF_EDMA_ES_VLD (0x80000000)
4375+
4376+/* Bit definitions and macros for ERQ: 0~63 bits */
4377+#define MCF_EDMA_ERQ_ERQH(x) (0x01<<x) /*32~63*/
4378+#define MCF_EDMA_ERQ_ERQL(x) (0x01<<x) /*0~31*/
4379+
4380+/* Bit definitions and macros for EEI: 0~63 bits */
4381+#define MCF_EDMA_EEI_EEIH(x) (0x01<<x) /*32~63*/
4382+#define MCF_EDMA_EEI_EEIL(x) (0x01<<x) /*0~31*/
4383+
4384+/* Bit definitions and macros for SERQ */
4385+#define MCF_EDMA_SERQ_SERQ(x) (((x)&0x3F))
4386+#define MCF_EDMA_SERQ_SAER (0x40)
4387+#define MCF_EDMA_SERQ_NOP (0x80)
4388+
4389+/* Bit definitions and macros for CERQ */
4390+#define MCF_EDMA_CERQ_CERQ(x) (((x)&0x3F))
4391+#define MCF_EDMA_CERQ_CAER (0x40)
4392+#define MCF_EDMA_CERQ_NOP (0x80)
4393+
4394+/* Bit definitions and macros for SEEI */
4395+#define MCF_EDMA_SEEI_SEEI(x) (((x)&0x3F))
4396+#define MCF_EDMA_SEEI_SAEE (0x40)
4397+#define MCF_EDMA_SEEI_NOP (0x80)
4398+
4399+/* Bit definitions and macros for CEEI */
4400+#define MCF_EDMA_CEEI_CEEI(x) (((x)&0x3F))
4401+#define MCF_EDMA_CEEI_CAEE (0x40)
4402+#define MCF_EDMA_CEEI_NOP (0x80)
4403+
4404+/* Bit definitions and macros for CINT */
4405+#define MCF_EDMA_CINT_CINT(x) (((x)&0x3F))
4406+#define MCF_EDMA_CINT_CAIR (0x40)
4407+#define MCF_EDMA_CINT_NOP (0x80)
4408+
4409+/* Bit definitions and macros for CERR */
4410+#define MCF_EDMA_CERR_CERR(x) (((x)&0x3F))
4411+#define MCF_EDMA_CERR_CAER (0x40)
4412+#define MCF_EDMA_CERR_NOP (0x80)
4413+
4414+/* Bit definitions and macros for SSRT */
4415+#define MCF_EDMA_SSRT_SSRT(x) (((x)&0x3F))
4416+#define MCF_EDMA_SSRT_SAST (0x40)
4417+#define MCF_EDMA_SSRT_NOP (0x80)
4418+
4419+/* Bit definitions and macros for CDNE */
4420+#define MCF_EDMA_CDNE_CDNE(x) (((x)&0x3F))
4421+#define MCF_EDMA_CDNE_CADN (0x40)
4422+#define MCF_EDMA_CDNE_NOP (0x80)
4423+
4424+/* Bit definitions and macros for INTR: 0~63 bits */
4425+#define MCF_EDMA_INTR_INTH(x) (0x01<<x) /*32~63*/
4426+#define MCF_EDMA_INTR_INTL(x) (0x01<<x) /*0~31*/
4427+
4428+/* Bit definitions and macros for ERR: 0~63 bits */
4429+#define MCF_EDMA_ERR_ERRH(x) (0x01<<x) /*32~63*/
4430+#define MCF_EDMA_ERR_ERRL(x) (0x01<<x) /*0~31*/
4431+
4432+/* Bit defineitions and macros for HRSH/HRSL */
4433+#define MCF_EDMA_HRS_HRSH(x) (0x01<<x) /*32~63*/
4434+#define MCF_EDMA_HRS_HRSL(x) (0x01<<x) /*0~31*/
4435+
4436+/* Bit definitions and macros for DCHPRI group */
4437+#define MCF_EDMA_DCHPRI_CHPRI(x) (((x)&0x0F))
4438+#define MCF_EDMA_DCHPRI_GRPPRI(x) (((x)&0x03) << 4)
4439+#define MCF_EDMA_DCHPRI_DPA (0x40)
4440+#define MCF_EDMA_DCHPRI_ECP (0x80)
4441+
4442+/* Bit definitions and macros for TCD_SADDR group */
4443+#define MCF_EDMA_TCD_SADDR_SADDR(x) (x)
4444+
4445+/* Bit definitions and macros for TCD_ATTR group */
4446+#define MCF_EDMA_TCD_ATTR_DSIZE(x) (((x)&0x0007))
4447+#define MCF_EDMA_TCD_ATTR_DMOD(x) (((x)&0x001F)<<3)
4448+#define MCF_EDMA_TCD_ATTR_SSIZE(x) (((x)&0x0007)<<8)
4449+#define MCF_EDMA_TCD_ATTR_SMOD(x) (((x)&0x001F)<<11)
4450+#define MCF_EDMA_TCD_ATTR_SSIZE_8BIT (0x0000)
4451+#define MCF_EDMA_TCD_ATTR_SSIZE_16BIT (0x0100)
4452+#define MCF_EDMA_TCD_ATTR_SSIZE_32BIT (0x0200)
4453+#define MCF_EDMA_TCD_ATTR_SSIZE_16BYTE (0x0400)
4454+#define MCF_EDMA_TCD_ATTR_DSIZE_8BIT (0x0000)
4455+#define MCF_EDMA_TCD_ATTR_DSIZE_16BIT (0x0001)
4456+#define MCF_EDMA_TCD_ATTR_DSIZE_32BIT (0x0002)
4457+#define MCF_EDMA_TCD_ATTR_DSIZE_16BYTE (0x0004)
4458+
4459+/* Bit definitions and macros for TCD_SOFF group */
4460+#define MCF_EDMA_TCD_SOFF_SOFF(x) (x)
4461+
4462+/* Bit definitions and macros for TCD_NBYTES group */
4463+#define MCF_EDMA_TCD_NBYTES_NBYTES(x) (x)
4464+#define MCF_EDMA_TCD_NBYTES_SMLOE (0x80000000)
4465+#define MCF_EDMA_TCD_NBYTES_DMLOE (0x40000000)
4466+#define MCF_EDMA_TCD_NBYTES_MLOFF(x) (((x)&0xFFFFF)<<20)
4467+#define MCF_EDMA_TCD_NBYTES_9BITS ((x)&0x1FF)
4468+
4469+/* Bit definitions and macros for TCD_SLAST group */
4470+#define MCF_EDMA_TCD_SLAST_SLAST(x) (x)
4471+
4472+/* Bit definitions and macros for TCD_DADDR group */
4473+#define MCF_EDMA_TCD_DADDR_DADDR(x) (x)
4474+
4475+/* Bit definitions and macros for TCD_CITER_ELINK group */
4476+#define MCF_EDMA_TCD_CITER_ELINK_CITER(x) (((x)&0x01FF))
4477+#define MCF_EDMA_TCD_CITER_ELINK_LINKCH(x) (((x)&0x003F)<<9)
4478+#define MCF_EDMA_TCD_CITER_ELINK_E_LINK (0x8000)
4479+
4480+/* Bit definitions and macros for TCD_CITER group */
4481+#define MCF_EDMA_TCD_CITER_CITER(x) (((x)&0x7FFF))
4482+#define MCF_EDMA_TCD_CITER_E_LINK (0x8000)
4483+
4484+/* Bit definitions and macros for TCD_DOFF group */
4485+#define MCF_EDMA_TCD_DOFF_DOFF(x) (x)
4486+
4487+/* Bit definitions and macros for TCD_DLAST_SGA group */
4488+#define MCF_EDMA_TCD_DLAST_SGA_DLAST_SGA(x) (x)
4489+
4490+/* Bit definitions and macros for TCD_BITER_ELINK group */
4491+#define MCF_EDMA_TCD_BITER_ELINK_BITER(x) (((x)&0x01FF))
4492+#define MCF_EDMA_TCD_BITER_ELINK_LINKCH(x) (((x)&0x003F)<<9)
4493+#define MCF_EDMA_TCD_BITER_ELINK_E_LINK (0x8000)
4494+
4495+/* Bit definitions and macros for TCD_BITER group */
4496+#define MCF_EDMA_TCD_BITER_BITER(x) (((x)&0x7FFF))
4497+#define MCF_EDMA_TCD_BITER_E_LINK (0x8000)
4498+
4499+/* Bit definitions and macros for TCD_CSR group */
4500+#define MCF_EDMA_TCD_CSR_START (0x0001)
4501+#define MCF_EDMA_TCD_CSR_INT_MAJOR (0x0002)
4502+#define MCF_EDMA_TCD_CSR_INT_HALF (0x0004)
4503+#define MCF_EDMA_TCD_CSR_D_REQ (0x0008)
4504+#define MCF_EDMA_TCD_CSR_E_SG (0x0010)
4505+#define MCF_EDMA_TCD_CSR_E_LINK (0x0020)
4506+#define MCF_EDMA_TCD_CSR_ACTIVE (0x0040)
4507+#define MCF_EDMA_TCD_CSR_DONE (0x0080)
4508+#define MCF_EDMA_TCD_CSR_LINKCH(x) (((x)&0x003F)<<8)
4509+#define MCF_EDMA_TCD_CSR_BWC(x) (((x)&0x0003)<<14)
4510+#define MCF_EDMA_TCD_CSR_BWC_NO_STALL (0x0000)
4511+#define MCF_EDMA_TCD_CSR_BWC_4CYC_STALL (0x8000)
4512+#define MCF_EDMA_TCD_CSR_BWC_8CYC_STALL (0xC000)
4513+
4514+/* Bit definitions and macros for TCD0_CSR */
4515+#define MCF_EDMA_TCD0_CSR_START (0x0001)
4516+#define MCF_EDMA_TCD0_CSR_INT_MAJOR (0x0002)
4517+#define MCF_EDMA_TCD0_CSR_INT_HALF (0x0004)
4518+#define MCF_EDMA_TCD0_CSR_D_REQ (0x0008)
4519+#define MCF_EDMA_TCD0_CSR_E_SG (0x0010)
4520+#define MCF_EDMA_TCD0_CSR_E_LINK (0x0020)
4521+#define MCF_EDMA_TCD0_CSR_ACTIVE (0x0040)
4522+#define MCF_EDMA_TCD0_CSR_DONE (0x0080)
4523+#define MCF_EDMA_TCD0_CSR_LINKCH(x) (((x)&0x003F)<<8)
4524+#define MCF_EDMA_TCD0_CSR_BWC(x) (((x)&0x0003)<<14)
4525+#define MCF_EDMA_TCD0_CSR_BWC_NO_STALL (0x0000)
4526+#define MCF_EDMA_TCD0_CSR_BWC_4CYC_STALL (0x8000)
4527+#define MCF_EDMA_TCD0_CSR_BWC_8CYC_STALL (0xC000)
4528+
4529+#endif /* __MCF5441X_EDMA_H__ */
4530--- /dev/null
4531+++ b/arch/m68k/include/asm/mcf5441x_eport.h
4532@@ -0,0 +1,94 @@
4533+/*
4534+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved.
4535+ *
4536+ * This program is free software; you can redistribute it and/or modify it
4537+ * under the terms of the GNU General Public License as published by the
4538+ * Free Software Foundation; either version 2 of the License, or (at your
4539+ * option) any later version.
4540+ */
4541+
4542+#ifndef __MCF5441X_EPORT_H__
4543+#define __MCF5441X_EPORT_H__
4544+
4545+/*********************************************************************
4546+*
4547+* Edge Port Module (EPORT)
4548+*
4549+*********************************************************************/
4550+
4551+/* Register read/write macros */
4552+#define MCF_EPORT_EPPAR MCF_REG16(0xFC090000)
4553+#define MCF_EPORT_EPDDR MCF_REG08(0xFC094002)
4554+#define MCF_EPORT_EPIER MCF_REG08(0xFC090003)
4555+#define MCF_EPORT_EPDR MCF_REG08(0xFC090004)
4556+#define MCF_EPORT_EPPDR MCF_REG08(0xFC090005)
4557+#define MCF_EPORT_EPFR MCF_REG08(0xFC090006)
4558+
4559+/* Bit definitions and macros for EPPAR */
4560+#define MCF_EPORT_EPPAR_EPPA1(x) (((x)&0x0003)<<2)
4561+#define MCF_EPORT_EPPAR_EPPA2(x) (((x)&0x0003)<<4)
4562+#define MCF_EPORT_EPPAR_EPPA3(x) (((x)&0x0003)<<6)
4563+#define MCF_EPORT_EPPAR_EPPA4(x) (((x)&0x0003)<<8)
4564+#define MCF_EPORT_EPPAR_EPPA5(x) (((x)&0x0003)<<10)
4565+#define MCF_EPORT_EPPAR_EPPA6(x) (((x)&0x0003)<<12)
4566+#define MCF_EPORT_EPPAR_EPPA7(x) (((x)&0x0003)<<14)
4567+#define MCF_EPORT_EPPAR_LEVEL (0)
4568+#define MCF_EPORT_EPPAR_RISING (1)
4569+#define MCF_EPORT_EPPAR_FALLING (2)
4570+#define MCF_EPORT_EPPAR_BOTH (3)
4571+#define MCF_EPORT_EPPAR_EPPA7_LEVEL (0x0000)
4572+#define MCF_EPORT_EPPAR_EPPA7_RISING (0x4000)
4573+#define MCF_EPORT_EPPAR_EPPA7_FALLING (0x8000)
4574+#define MCF_EPORT_EPPAR_EPPA7_BOTH (0xC000)
4575+#define MCF_EPORT_EPPAR_EPPA6_LEVEL (0x0000)
4576+#define MCF_EPORT_EPPAR_EPPA6_RISING (0x1000)
4577+#define MCF_EPORT_EPPAR_EPPA6_FALLING (0x2000)
4578+#define MCF_EPORT_EPPAR_EPPA6_BOTH (0x3000)
4579+#define MCF_EPORT_EPPAR_EPPA5_LEVEL (0x0000)
4580+#define MCF_EPORT_EPPAR_EPPA5_RISING (0x0400)
4581+#define MCF_EPORT_EPPAR_EPPA5_FALLING (0x0800)
4582+#define MCF_EPORT_EPPAR_EPPA5_BOTH (0x0C00)
4583+#define MCF_EPORT_EPPAR_EPPA4_LEVEL (0x0000)
4584+#define MCF_EPORT_EPPAR_EPPA4_RISING (0x0100)
4585+#define MCF_EPORT_EPPAR_EPPA4_FALLING (0x0200)
4586+#define MCF_EPORT_EPPAR_EPPA4_BOTH (0x0300)
4587+#define MCF_EPORT_EPPAR_EPPA3_LEVEL (0x0000)
4588+#define MCF_EPORT_EPPAR_EPPA3_RISING (0x0040)
4589+#define MCF_EPORT_EPPAR_EPPA3_FALLING (0x0080)
4590+#define MCF_EPORT_EPPAR_EPPA3_BOTH (0x00C0)
4591+#define MCF_EPORT_EPPAR_EPPA2_LEVEL (0x0000)
4592+#define MCF_EPORT_EPPAR_EPPA2_RISING (0x0010)
4593+#define MCF_EPORT_EPPAR_EPPA2_FALLING (0x0020)
4594+#define MCF_EPORT_EPPAR_EPPA2_BOTH (0x0030)
4595+#define MCF_EPORT_EPPAR_EPPA1_LEVEL (0x0000)
4596+#define MCF_EPORT_EPPAR_EPPA1_RISING (0x0004)
4597+#define MCF_EPORT_EPPAR_EPPA1_FALLING (0x0008)
4598+#define MCF_EPORT_EPPAR_EPPA1_BOTH (0x000C)
4599+#define MCF_EPORT_EPPAR_EPPA0_LEVEL (0x0000)
4600+#define MCF_EPORT_EPPAR_EPPA0_RISING (0x0001)
4601+#define MCF_EPORT_EPPAR_EPPA0_FALLING (0x0002)
4602+#define MCF_EPORT_EPPAR_EPPA0_BOTH (0x0003)
4603+
4604+/* Bit definitions and macros for EPIER */
4605+#define MCF_EPORT_EPIER_EPIE0 (0x01)
4606+#define MCF_EPORT_EPIER_EPIE1 (0x02)
4607+#define MCF_EPORT_EPIER_EPIE2 (0x04)
4608+#define MCF_EPORT_EPIER_EPIE3 (0x08)
4609+#define MCF_EPORT_EPIER_EPIE4 (0x10)
4610+#define MCF_EPORT_EPIER_EPIE5 (0x20)
4611+#define MCF_EPORT_EPIER_EPIE6 (0x40)
4612+#define MCF_EPORT_EPIER_EPIE7 (0x80)
4613+
4614+/* Bit definitions and macros for EPFR */
4615+#define MCF_EPORT_EPFR_EPF0 (0x01)
4616+#define MCF_EPORT_EPFR_EPF1 (0x02)
4617+#define MCF_EPORT_EPFR_EPF2 (0x04)
4618+#define MCF_EPORT_EPFR_EPF3 (0x08)
4619+#define MCF_EPORT_EPFR_EPF4 (0x10)
4620+#define MCF_EPORT_EPFR_EPF5 (0x20)
4621+#define MCF_EPORT_EPFR_EPF6 (0x40)
4622+#define MCF_EPORT_EPFR_EPF7 (0x80)
4623+
4624+/********************************************************************/
4625+
4626+#endif /* __MCF5441X_EPORT_H__ */
4627--- /dev/null
4628+++ b/arch/m68k/include/asm/mcf5441x_fbcs.h
4629@@ -0,0 +1,204 @@
4630+/*
4631+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved.
4632+ *
4633+ * This program is free software; you can redistribute it and/or modify it
4634+ * under the terms of the GNU General Public License as published by the
4635+ * Free Software Foundation; either version 2 of the License, or (at your
4636+ * option) any later version.
4637+ */
4638+
4639+#ifndef __MCF5441X_FBCS_H__
4640+#define __MCF5441X_FBCS_H__
4641+
4642+/*********************************************************************
4643+*
4644+* FlexBus Chip Selects (FBCS)
4645+*
4646+*********************************************************************/
4647+
4648+/* Register read/write macros */
4649+#define MCF_FBCS_CSAR0 MCF_REG32(0xFC008000) /* Chip-select Addr Register */
4650+#define MCF_FBCS_CSMR0 MCF_REG32(0xFC008004) /* Chip-select Mask Register */
4651+#define MCF_FBCS_CSCR0 MCF_REG32(0xFC008008) /* Chip-select Cntl Register */
4652+#define MCF_FBCS_CSAR1 MCF_REG32(0xFC00800C) /* Chip-select Addr Register */
4653+#define MCF_FBCS_CSMR1 MCF_REG32(0xFC008010) /* Chip-select Mask Register */
4654+#define MCF_FBCS_CSCR1 MCF_REG32(0xFC008014) /* Chip-select Cntl Register */
4655+#define MCF_FBCS_CSAR2 MCF_REG32(0xFC008018) /* Chip-select Addr Register */
4656+#define MCF_FBCS_CSMR2 MCF_REG32(0xFC00801C) /* Chip-select Mask Register */
4657+#define MCF_FBCS_CSCR2 MCF_REG32(0xFC008020) /* Chip-select Cntl Register */
4658+#define MCF_FBCS_CSAR3 MCF_REG32(0xFC008024) /* Chip-select Addr Register */
4659+#define MCF_FBCS_CSMR3 MCF_REG32(0xFC008028) /* Chip-select Mask Register */
4660+#define MCF_FBCS_CSCR3 MCF_REG32(0xFC00802C) /* Chip-select Cntl Register */
4661+
4662+/* Parameterized register read/write macros for multiple registers */
4663+/* Chip-select Addr Register */
4664+#define MCF_FBCS_CSAR(x) MCF_REG32(0xFC008000+((x)*0x00C))
4665+/* Chip-select Mask Register */
4666+#define MCF_FBCS_CSMR(x) MCF_REG32(0xFC008004+((x)*0x00C))
4667+/* Chip-select Cntl Register */
4668+#define MCF_FBCS_CSCR(x) MCF_REG32(0xFC008008+((x)*0x00C))
4669+
4670+/* Bit definitions and macros for CSAR group */
4671+#define MCF_FBCS_CSAR_BA(x) ((x)&0xFFFF0000)
4672+
4673+/* Bit definitions and macros for CSAR0 */
4674+#define MCF_FBCS_CSAR0_BA(x) ((x)&0xFFFF0000)
4675+
4676+/* Bit definitions and macros for CSMR group */
4677+#define MCF_FBCS_CSMR_V (0x00000001) /* Valid bit */
4678+#define MCF_FBCS_CSMR_WP (0x00000100) /* Write protect */
4679+#define MCF_FBCS_CSMR_BAM(x) (((x)&0x0000FFFF)<<16) /* Base addr mask */
4680+#define MCF_FBCS_CSMR_BAM_4G (0xFFFF0000)
4681+#define MCF_FBCS_CSMR_BAM_2G (0x7FFF0000)
4682+#define MCF_FBCS_CSMR_BAM_1G (0x3FFF0000)
4683+#define MCF_FBCS_CSMR_BAM_1024M (0x3FFF0000)
4684+#define MCF_FBCS_CSMR_BAM_512M (0x1FFF0000)
4685+#define MCF_FBCS_CSMR_BAM_256M (0x0FFF0000)
4686+#define MCF_FBCS_CSMR_BAM_128M (0x07FF0000)
4687+#define MCF_FBCS_CSMR_BAM_64M (0x03FF0000)
4688+#define MCF_FBCS_CSMR_BAM_32M (0x01FF0000)
4689+#define MCF_FBCS_CSMR_BAM_16M (0x00FF0000)
4690+#define MCF_FBCS_CSMR_BAM_8M (0x007F0000)
4691+#define MCF_FBCS_CSMR_BAM_4M (0x003F0000)
4692+#define MCF_FBCS_CSMR_BAM_2M (0x001F0000)
4693+#define MCF_FBCS_CSMR_BAM_1M (0x000F0000)
4694+#define MCF_FBCS_CSMR_BAM_1024K (0x000F0000)
4695+#define MCF_FBCS_CSMR_BAM_512K (0x00070000)
4696+#define MCF_FBCS_CSMR_BAM_256K (0x00030000)
4697+#define MCF_FBCS_CSMR_BAM_128K (0x00010000)
4698+#define MCF_FBCS_CSMR_BAM_64K (0x00000000)
4699+
4700+/* Bit definitions and macros for CSMR0 */
4701+#define MCF_FBCS_CSMR0_V (0x00000001) /* Valid bit */
4702+#define MCF_FBCS_CSMR0_WP (0x00000100) /* Write protect */
4703+#define MCF_FBCS_CSMR0_BAM(x) (((x)&0x0000FFFF)<<16) /* Base addr mask */
4704+#define MCF_FBCS_CSMR0_BAM_4G (0xFFFF0000)
4705+#define MCF_FBCS_CSMR0_BAM_2G (0x7FFF0000)
4706+#define MCF_FBCS_CSMR0_BAM_1G (0x3FFF0000)
4707+#define MCF_FBCS_CSMR0_BAM_1024M (0x3FFF0000)
4708+#define MCF_FBCS_CSMR0_BAM_512M (0x1FFF0000)
4709+#define MCF_FBCS_CSMR0_BAM_256M (0x0FFF0000)
4710+#define MCF_FBCS_CSMR0_BAM_128M (0x07FF0000)
4711+#define MCF_FBCS_CSMR0_BAM_64M (0x03FF0000)
4712+#define MCF_FBCS_CSMR0_BAM_32M (0x01FF0000)
4713+#define MCF_FBCS_CSMR0_BAM_16M (0x00FF0000)
4714+#define MCF_FBCS_CSMR0_BAM_8M (0x007F0000)
4715+#define MCF_FBCS_CSMR0_BAM_4M (0x003F0000)
4716+#define MCF_FBCS_CSMR0_BAM_2M (0x001F0000)
4717+#define MCF_FBCS_CSMR0_BAM_1M (0x000F0000)
4718+#define MCF_FBCS_CSMR0_BAM_1024K (0x000F0000)
4719+#define MCF_FBCS_CSMR0_BAM_512K (0x00070000)
4720+#define MCF_FBCS_CSMR0_BAM_256K (0x00030000)
4721+#define MCF_FBCS_CSMR0_BAM_128K (0x00010000)
4722+#define MCF_FBCS_CSMR0_BAM_64K (0x00000000)
4723+
4724+/* Bit definitions and macros for CSCR group */
4725+#define MCF_FBCS_CSCR_BSTW (0x00000008) /* Burst-write enable */
4726+#define MCF_FBCS_CSCR_BSTR (0x00000010) /* Burst-read enable */
4727+#define MCF_FBCS_CSCR_BEM (0x00000020) /* Byte-enable mode */
4728+#define MCF_FBCS_CSCR_PS(x) (((x)&0x00000003)<<6) /* Port size */
4729+#define MCF_FBCS_CSCR_AA (0x00000100) /* Auto-acknowledge */
4730+#define MCF_FBCS_CSCR_BLS (0x00000200) /* Byte-lane shift */
4731+#define MCF_FBCS_CSCR_WS(x) (((x)&0x0000003F)<<10) /* Wait states */
4732+/* Write address hold or deselect */
4733+#define MCF_FBCS_CSCR_WRAH(x) (((x)&0x00000003)<<16)
4734+/* Read address hold or deselect */
4735+#define MCF_FBCS_CSCR_RDAH(x) (((x)&0x00000003)<<18)
4736+#define MCF_FBCS_CSCR_ASET(x) (((x)&0x00000003)<<20) /* Address setup */
4737+/* Secondary wait state enable */
4738+#define MCF_FBCS_CSCR_SWSEN (0x00800000)
4739+/* Secondary wait states */
4740+#define MCF_FBCS_CSCR_SWS(x) (((x)&0x0000003F)<<26)
4741+#define MCF_FBCS_CSCR_PS_8 (0x00000040)
4742+#define MCF_FBCS_CSCR_PS_16 (0x00000080)
4743+#define MCF_FBCS_CSCR_PS_32 (0x00000000)
4744+
4745+/* Bit definitions and macros for CSCR0 */
4746+#define MCF_FBCS_CSCR0_BSTW (0x00000008) /* Burst-write enable */
4747+#define MCF_FBCS_CSCR0_BSTR (0x00000010) /* Burst-read enable */
4748+#define MCF_FBCS_CSCR0_BEM (0x00000020) /* Byte-enable mode */
4749+#define MCF_FBCS_CSCR0_PS(x) (((x)&0x00000003)<<6) /* Port size */
4750+#define MCF_FBCS_CSCR0_AA (0x00000100) /* Auto-acknowledge */
4751+#define MCF_FBCS_CSCR0_WS(x) (((x)&0x0000003F)<<10) /* Wait states */
4752+/* Write address hold or deselect */
4753+#define MCF_FBCS_CSCR0_WRAH(x) (((x)&0x00000003)<<16)
4754+/* Read address hold or deselect */
4755+#define MCF_FBCS_CSCR0_RDAH(x) (((x)&0x00000003)<<18)
4756+#define MCF_FBCS_CSCR0_ASET(x) (((x)&0x00000003)<<20) /* Address setup */
4757+/* Secondary wait state enable */
4758+#define MCF_FBCS_CSCR0_SWSEN (0x00800000)
4759+/* Secondary wait states */
4760+#define MCF_FBCS_CSCR0_SWS(x) (((x)&0x0000003F)<<26)
4761+#define MCF_FBCS_CSCR0_PS_8 (0x00000040)
4762+#define MCF_FBCS_CSCR0_PS_16 (0x00000080)
4763+#define MCF_FBCS_CSCR0_PS_32 (0x00000000)
4764+
4765+/* Bit definitions and macros for CSMR1 */
4766+#define MCF_FBCS_CSMR1_V (0x00000001) /* Valid bit */
4767+#define MCF_FBCS_CSMR1_WP (0x00000100) /* Write protect */
4768+#define MCF_FBCS_CSMR1_BAM(x) (((x)&0x0000FFFF)<<16) /* Base address mask */
4769+
4770+/* Bit definitions and macros for CSCR1 */
4771+#define MCF_FBCS_CSCR1_BSTW (0x00000008) /* Burst-write enable */
4772+#define MCF_FBCS_CSCR1_BSTR (0x00000010) /* Burst-read enable */
4773+#define MCF_FBCS_CSCR1_BEM (0x00000020) /* Byte-enable mode */
4774+#define MCF_FBCS_CSCR1_PS(x) (((x)&0x00000003)<<6) /* Port size */
4775+#define MCF_FBCS_CSCR1_AA (0x00000100) /* Auto-acknowledge */
4776+#define MCF_FBCS_CSCR1_WS(x) (((x)&0x0000003F)<<10) /* Wait states */
4777+/* Write address hold or deselect */
4778+#define MCF_FBCS_CSCR1_WRAH(x) (((x)&0x00000003)<<16)
4779+/* Read address hold or deselect */
4780+#define MCF_FBCS_CSCR1_RDAH(x) (((x)&0x00000003)<<18)
4781+#define MCF_FBCS_CSCR1_ASET(x) (((x)&0x00000003)<<20) /* Address setup */
4782+/* Secondary wait state enable */
4783+#define MCF_FBCS_CSCR1_SWSEN (0x00800000)
4784+/* Secondary wait states */
4785+#define MCF_FBCS_CSCR1_SWS(x) (((x)&0x0000003F)<<26)
4786+
4787+/* Bit definitions and macros for CSMR2 */
4788+#define MCF_FBCS_CSMR2_V (0x00000001) /* Valid bit */
4789+#define MCF_FBCS_CSMR2_WP (0x00000100) /* Write protect */
4790+#define MCF_FBCS_CSMR2_BAM(x) (((x)&0x0000FFFF)<<16) /* Base address mask */
4791+
4792+/* Bit definitions and macros for CSCR2 */
4793+#define MCF_FBCS_CSCR2_BSTW (0x00000008) /* Burst-write enable */
4794+#define MCF_FBCS_CSCR2_BSTR (0x00000010) /* Burst-read enable */
4795+#define MCF_FBCS_CSCR2_BEM (0x00000020) /* Byte-enable mode */
4796+#define MCF_FBCS_CSCR2_PS(x) (((x)&0x00000003)<<6) /* Port size */
4797+#define MCF_FBCS_CSCR2_AA (0x00000100) /* Auto-acknowledge */
4798+#define MCF_FBCS_CSCR2_WS(x) (((x)&0x0000003F)<<10) /* Wait states */
4799+/* Write address hold or deselect */
4800+#define MCF_FBCS_CSCR2_WRAH(x) (((x)&0x00000003)<<16)
4801+/* Read address hold or deselect */
4802+#define MCF_FBCS_CSCR2_RDAH(x) (((x)&0x00000003)<<18)
4803+#define MCF_FBCS_CSCR2_ASET(x) (((x)&0x00000003)<<20) /* Address setup */
4804+/* Secondary wait state enable */
4805+#define MCF_FBCS_CSCR2_SWSEN (0x00800000)
4806+/* Secondary wait states */
4807+#define MCF_FBCS_CSCR2_SWS(x) (((x)&0x0000003F)<<26)
4808+
4809+/* Bit definitions and macros for CSMR3 */
4810+#define MCF_FBCS_CSMR3_V (0x00000001) /* Valid bit */
4811+#define MCF_FBCS_CSMR3_WP (0x00000100) /* Write protect */
4812+#define MCF_FBCS_CSMR3_BAM(x) (((x)&0x0000FFFF)<<16) /* Base address mask */
4813+
4814+/* Bit definitions and macros for CSCR3 */
4815+#define MCF_FBCS_CSCR3_BSTW (0x00000008) /* Burst-write enable */
4816+#define MCF_FBCS_CSCR3_BSTR (0x00000010) /* Burst-read enable */
4817+#define MCF_FBCS_CSCR3_BEM (0x00000020) /* Byte-enable mode */
4818+#define MCF_FBCS_CSCR3_PS(x) (((x)&0x00000003)<<6) /* Port size */
4819+#define MCF_FBCS_CSCR3_AA (0x00000100) /* Auto-acknowledge */
4820+#define MCF_FBCS_CSCR3_WS(x) (((x)&0x0000003F)<<10) /* Wait states */
4821+/* Write address hold or deselect */
4822+#define MCF_FBCS_CSCR3_WRAH(x) (((x)&0x00000003)<<16)
4823+/* Read address hold or deselect */
4824+#define MCF_FBCS_CSCR3_RDAH(x) (((x)&0x00000003)<<18)
4825+#define MCF_FBCS_CSCR3_ASET(x) (((x)&0x00000003)<<20) /* Address setup */
4826+/* Secondary wait state enable */
4827+#define MCF_FBCS_CSCR3_SWSEN (0x00800000)
4828+/* Secondary wait states */
4829+#define MCF_FBCS_CSCR3_SWS(x) (((x)&0x0000003F)<<26)
4830+
4831+/********************************************************************/
4832+
4833+#endif /* __MCF5441X_FBCS_H__ */
4834--- /dev/null
4835+++ b/arch/m68k/include/asm/mcf5441x_flexcan.h
4836@@ -0,0 +1,139 @@
4837+/*
4838+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved.
4839+ *
4840+ * Author: Lanttor Guo <b18203@freescale.com>
4841+ *
4842+ * This is free software; you can redistribute it and/or modify it
4843+ * under the terms of the GNU General Public License as published by
4844+ * the Free Software Foundation; either version 2 of the License, or
4845+ * (at your option) any later version.
4846+ */
4847+
4848+#ifndef MCF5441X_FLEXCAN_H
4849+#define MCF5441X_FLEXCAN_H
4850+/*
4851+ * FlexCAN Module Configuration Register
4852+ */
4853+#define CANMCR_MDIS (0x80000000)
4854+#define CANMCR_FRZ (0x40000000)
4855+#define CANMCR_FEN (0x20000000)
4856+#define CANMCR_HALT (0x10000000)
4857+#define CANMCR_SOFTRST (0x02000000)
4858+#define CANMCR_NOTRDY (0x08000000)
4859+#define CANMCR_FRZACK (0x01000000)
4860+#define CANMCR_SUPV (0x00800000)
4861+#define CANMCR_WARN_EN (0x00200000)
4862+#define CANMCR_LPMACK (0x00100000)
4863+#define CANMCR_DOZE (0x00040000)
4864+#define CANMCR_SRXDIS (0x00020000)
4865+#define CANMCR_BCC (0x00010000)
4866+#define CANMCR_LPRIO_EN (0x00002000)
4867+#define CANMCR_AEN (0x00001000)
4868+#define CANMCR_IDAM_VAL(x) ((x & 0x3) << 8)
4869+#define CANMCR_MAXMB (0x0F)
4870+/*
4871+ * FlexCAN Control Register
4872+ */
4873+#define CANCTRL_PRESDIV(x) (((x)&0xFF)<<24)
4874+#define CANCTRL_RJW(x) (((x)&0x03)<<22)
4875+#define CANCTRL_PSEG1(x) (((x)&0x07)<<19)
4876+#define CANCTRL_PSEG2(x) (((x)&0x07)<<16)
4877+#define CANCTRL_BOFFMSK (0x00008000)
4878+#define CANCTRL_ERRMSK (0x00004000)
4879+#define CANCTRL_CLKSRC (0x00002000)
4880+#define CANCTRL_LPB (0x00001000)
4881+#define CANCTRL_TWRN_MSK (0x00000800)
4882+#define CANCTRL_RWRN_MSK (0x00000400)
4883+#define CANCTRL_SAMP(x) (((x)&0x01)<<7)
4884+#define CANCTRL_BOFFREC (0x00000040)
4885+#define CANCTRL_TSYNC (0x00000020)
4886+#define CANCTRL_LBUF (0x00000010)
4887+#define CANCTRL_LOM (0x00000008)
4888+#define CANCTRL_PROPSEG(x) ((x)&0x07)
4889+
4890+/*
4891+ * FlexCAN Error Counter Register
4892+ */
4893+#define ERRCNT_RXECTR(x) (((x)&0xFF)<<8)
4894+#define ERRCNT_TXECTR(x) ((x)&0xFF)
4895+
4896+/*
4897+ * FlexCAN Error and Status Register
4898+ */
4899+#define ERRSTAT_TWRN_INT (0x00020000)
4900+#define ERRSTAT_RWRN_INT (0x00010000)
4901+#define ERRSTAT_BITERR(x) (((x)&0x03)<<14)
4902+#define ERRSTAT_ACKERR (0x00002000)
4903+#define ERRSTAT_CRCERR (0x00001000)
4904+#define ERRSTAT_FRMERR (0x00000800)
4905+#define ERRSTAT_STFERR (0x00000400)
4906+#define ERRSTAT_TXWRN (0x00000200)
4907+#define ERRSTAT_RXWRN (0x00000100)
4908+#define ERRSTAT_IDLE (0x00000080)
4909+#define ERRSTAT_TXRX (0x00000040)
4910+#define ERRSTAT_FLTCONF(x) (((x)&0x03)<<4)
4911+#define ERRSTAT_BOFFINT (0x00000004)
4912+#define ERRSTAT_ERRINT (0x00000002)
4913+
4914+/*
4915+ * Interrupt Mask Register
4916+ */
4917+#define IMASK_BUF15M (0x8000)
4918+#define IMASK_BUF14M (0x4000)
4919+#define IMASK_BUF13M (0x2000)
4920+#define IMASK_BUF12M (0x1000)
4921+#define IMASK_BUF11M (0x0800)
4922+#define IMASK_BUF10M (0x0400)
4923+#define IMASK_BUF9M (0x0200)
4924+#define IMASK_BUF8M (0x0100)
4925+#define IMASK_BUF7M (0x0080)
4926+#define IMASK_BUF6M (0x0040)
4927+#define IMASK_BUF5M (0x0020)
4928+#define IMASK_BUF4M (0x0010)
4929+#define IMASK_BUF3M (0x0008)
4930+#define IMASK_BUF2M (0x0004)
4931+#define IMASK_BUF1M (0x0002)
4932+#define IMASK_BUF0M (0x0001)
4933+#define IMASK_BUFnM(x) (0x1<<(x))
4934+#define IMASK_BUFF_ENABLE_ALL (0xFFFF)
4935+#define IMASK_BUFF_DISABLE_ALL (0x0000)
4936+
4937+/*
4938+ * Interrupt Flag Register
4939+ */
4940+#define IFLAG_BUF15M (0x8000)
4941+#define IFLAG_BUF14M (0x4000)
4942+#define IFLAG_BUF13M (0x2000)
4943+#define IFLAG_BUF12M (0x1000)
4944+#define IFLAG_BUF11M (0x0800)
4945+#define IFLAG_BUF10M (0x0400)
4946+#define IFLAG_BUF9M (0x0200)
4947+#define IFLAG_BUF8M (0x0100)
4948+#define IFLAG_BUF7M (0x0080)
4949+#define IFLAG_BUF6M (0x0040)
4950+#define IFLAG_BUF5M (0x0020)
4951+#define IFLAG_BUF4M (0x0010)
4952+#define IFLAG_BUF3M (0x0008)
4953+#define IFLAG_BUF2M (0x0004)
4954+#define IFLAG_BUF1M (0x0002)
4955+#define IFLAG_BUF0M (0x0001)
4956+#define IFLAG_BUFF_SET_ALL (0xFFFF)
4957+#define IFLAG_BUFF_CLEAR_ALL (0x0000)
4958+#define IFLAG_BUFnM(x) (0x1<<(x))
4959+
4960+/*
4961+ * Message Buffers
4962+ */
4963+#define MB_CNT_CODE(x) (((x)&0x0F)<<24)
4964+#define MB_CNT_SRR (0x00400000)
4965+#define MB_CNT_IDE (0x00200000)
4966+#define MB_CNT_RTR (0x00100000)
4967+#define MB_CNT_TIMESTAMP(x) ((x)&0xFFFF)
4968+#define MB_PRIO(x) (((x)&0x7)<<29)
4969+#define MB_ID_STD (0x07FF)
4970+#define MB_ID_EXT (0x1FFFFFFF)
4971+#define MB_CODE_MASK (0xF0FFFFFF)
4972+#define CAN_MB 16
4973+#define PDEV_MAX 2
4974+
4975+#endif
4976--- /dev/null
4977+++ b/arch/m68k/include/asm/mcf5441x_gpio.h
4978@@ -0,0 +1,509 @@
4979+/*
4980+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved.
4981+ *
4982+ * This program is free software; you can redistribute it and/or modify it
4983+ * under the terms of the GNU General Public License as published by the
4984+ * Free Software Foundation; either version 2 of the License, or (at your
4985+ * option) any later version.
4986+ */
4987+
4988+#ifndef __MCF5441X_GPIO_H__
4989+#define __MCF5441X_GPIO_H__
4990+
4991+/*********************************************************************
4992+*
4993+* General Purpose I/O Module (GPIO)
4994+*
4995+*********************************************************************/
4996+
4997+#define MCF_GPIO_PODR_A MCF_REG08(0xEC094000)
4998+#define MCF_GPIO_PODR_B MCF_REG08(0xEC094001)
4999+#define MCF_GPIO_PODR_C MCF_REG08(0xEC094002)
5000+#define MCF_GPIO_PODR_D MCF_REG08(0xEC094003)
5001+#define MCF_GPIO_PODR_E MCF_REG08(0xEC094004)
5002+#define MCF_GPIO_PODR_F MCF_REG08(0xEC094005)
5003+#define MCF_GPIO_PODR_G MCF_REG08(0xEC094006)
5004+#define MCF_GPIO_PODR_H MCF_REG08(0xEC094007)
5005+#define MCF_GPIO_PODR_I MCF_REG08(0xEC094008)
5006+#define MCF_GPIO_PODR_J MCF_REG08(0xEC094009)
5007+#define MCF_GPIO_PODR_K MCF_REG08(0xEC09400A)
5008+
5009+#define MCF_GPIO_PDDR_A MCF_REG08(0xEC09400C)
5010+#define MCF_GPIO_PDDR_B MCF_REG08(0xEC09400D)
5011+#define MCF_GPIO_PDDR_C MCF_REG08(0xEC09400E)
5012+#define MCF_GPIO_PDDR_D MCF_REG08(0xEC09400F)
5013+#define MCF_GPIO_PDDR_E MCF_REG08(0xEC094010)
5014+#define MCF_GPIO_PDDR_F MCF_REG08(0xEC094011)
5015+#define MCF_GPIO_PDDR_G MCF_REG08(0xEC094012)
5016+#define MCF_GPIO_PDDR_H MCF_REG08(0xEC094013)
5017+#define MCF_GPIO_PDDR_I MCF_REG08(0xEC094014)
5018+#define MCF_GPIO_PDDR_J MCF_REG08(0xEC094015)
5019+#define MCF_GPIO_PDDR_K MCF_REG08(0xEC094016)
5020+
5021+#define MCF_GPIO_PPDSDR_A MCF_REG08(0xEC094018)
5022+#define MCF_GPIO_PPDSDR_B MCF_REG08(0xEC094019)
5023+#define MCF_GPIO_PPDSDR_C MCF_REG08(0xEC09401A)
5024+#define MCF_GPIO_PPDSDR_D MCF_REG08(0xEC09401B)
5025+#define MCF_GPIO_PPDSDR_E MCF_REG08(0xEC09401C)
5026+#define MCF_GPIO_PPDSDR_F MCF_REG08(0xEC09401D)
5027+#define MCF_GPIO_PPDSDR_G MCF_REG08(0xEC09401E)
5028+#define MCF_GPIO_PPDSDR_H MCF_REG08(0xEC09401F)
5029+#define MCF_GPIO_PPDSDR_I MCF_REG08(0xEC094020)
5030+#define MCF_GPIO_PPDSDR_J MCF_REG08(0xEC094021)
5031+#define MCF_GPIO_PPDSDR_K MCF_REG08(0xEC094022)
5032+
5033+#define MCF_GPIO_PCLRR_A MCF_REG08(0xEC094024)
5034+#define MCF_GPIO_PCLRR_B MCF_REG08(0xEC094025)
5035+#define MCF_GPIO_PCLRR_C MCF_REG08(0xEC094026)
5036+#define MCF_GPIO_PCLRR_D MCF_REG08(0xEC094027)
5037+#define MCF_GPIO_PCLRR_E MCF_REG08(0xEC094028)
5038+#define MCF_GPIO_PCLRR_F MCF_REG08(0xEC094029)
5039+#define MCF_GPIO_PCLRR_G MCF_REG08(0xEC09402A)
5040+#define MCF_GPIO_PCLRR_H MCF_REG08(0xEC09402B)
5041+#define MCF_GPIO_PCLRR_I MCF_REG08(0xEC09402C)
5042+#define MCF_GPIO_PCLRR_J MCF_REG08(0xEC09402D)
5043+#define MCF_GPIO_PCLRR_K MCF_REG08(0xEC09402E)
5044+
5045+#define MCF_GPIO_PCR_A MCF_REG16(0xEC094030)
5046+#define MCF_GPIO_PCR_B MCF_REG16(0xEC094032)
5047+#define MCF_GPIO_PCR_C MCF_REG16(0xEC094034)
5048+#define MCF_GPIO_PCR_D MCF_REG16(0xEC094036)
5049+#define MCF_GPIO_PCR_E MCF_REG16(0xEC094038)
5050+#define MCF_GPIO_PCR_F MCF_REG16(0xEC09403A)
5051+#define MCF_GPIO_PCR_G MCF_REG16(0xEC09403C)
5052+
5053+#define MCF_GPIO_PCR_H MCF_REG16(0xEC09403E)
5054+#define MCF_GPIO_PCR_I MCF_REG16(0xEC094040)
5055+#define MCF_GPIO_PCR_J MCF_REG16(0xEC094042)
5056+#define MCF_GPIO_PCR_K MCF_REG16(0xEC094044)
5057+
5058+#define MCF_GPIO_PODR_G4_VAL (0x01 << 4)
5059+#define MCF_GPIO_PODR_G4_MASK (0xff & ~MCF_GPIO_PODR_G4_VAL)
5060+#define MCF_GPIO_PDDR_G4_OUTPUT (0x01 << 4)
5061+#define MCF_GPIO_PDDR_G4_MASK (0xff & ~MCF_GPIO_PDDR_G4_OUTPUT)
5062+
5063+#define MCF_GPIO_PAR_FBCTL MCF_REG08(0xEC094048)
5064+#define MCF_GPIO_PAR_BE MCF_REG08(0xEC094049)
5065+#define MCF_GPIO_PAR_CS MCF_REG08(0xEC09404A)
5066+#define MCF_GPIO_PAR_CANI2C MCF_REG08(0xEC09404B)
5067+#define MCF_GPIO_PAR_IRQ0H MCF_REG08(0xEC09404C)
5068+#define MCF_GPIO_PAR_IRQ0L MCF_REG08(0xEC09404D)
5069+#define MCF_GPIO_PAR_DSPI0WH MCF_REG08(0xEC09404E)
5070+#define MCF_GPIO_PAR_DSPI0WL MCF_REG08(0xEC09404F)
5071+#define MCF_GPIO_PAR_TIMER MCF_REG08(0xEC094050)
5072+#define MCF_GPIO_PAR_UART2 MCF_REG08(0xEC094051)
5073+#define MCF_GPIO_PAR_UART1 MCF_REG08(0xEC094052)
5074+#define MCF_GPIO_PAR_UART0 MCF_REG08(0xEC094053)
5075+#define MCF_GPIO_PAR_ESDHCH MCF_REG08(0xEC094054)
5076+#define MCF_GPIO_PAR_ESDHCL MCF_REG08(0xEC094055)
5077+#define MCF_GPIO_PAR_SIMP0H MCF_REG08(0xEC094056)
5078+#define MCF_GPIO_PAR_SIMP0L MCF_REG08(0xEC094057)
5079+#define MCF_GPIO_PAR_SSI0H MCF_REG08(0xEC094058)
5080+#define MCF_GPIO_PAR_SSI0L MCF_REG08(0xEC094059)
5081+#define MCF_GPIO_PAR_DBGH1 MCF_REG08(0xEC09405A)
5082+#define MCF_GPIO_PAR_DBGH0 MCF_REG08(0xEC09405B)
5083+#define MCF_GPIO_PAR_DBGL MCF_REG08(0xEC09405C)
5084+#define MCF_GPIO_PAR_FEC MCF_REG08(0xEC09405E)
5085+#define MCF_GPIO_MSCR_SDRAMC MCF_REG08(0xEC094064)
5086+#define MCF_GPIO_SRCR_FB1 MCF_REG08(0xEC094064)
5087+#define MCF_GPIO_SRCR_FB2 MCF_REG08(0xEC094065)
5088+#define MCF_GPIO_SRCR_FB3 MCF_REG08(0xEC094066)
5089+#define MCF_GPIO_SRCR_FB4 MCF_REG08(0xEC094067)
5090+#define MCF_GPIO_SRCR_DSPI0W MCF_REG08(0xEC094068)
5091+#define MCF_GPIO_SRCR_CANI2C MCF_REG08(0xEC094069)
5092+#define MCF_GPIO_SRCR_IRQ0 MCF_REG08(0xEC09406A)
5093+#define MCF_GPIO_SRCR_TIMER MCF_REG08(0xEC09406B)
5094+#define MCF_GPIO_SRCR_UART MCF_REG08(0xEC09406C)
5095+#define MCF_GPIO_SRCR_FEC MCF_REG08(0xEC09406D)
5096+#define MCF_GPIO_SRCR_SDHC MCF_REG08(0xEC09406E)
5097+#define MCF_GPIO_SRCR_SIM0 MCF_REG08(0xEC09406F)
5098+#define MCF_GPIO_SRCR_SSI0 MCF_REG08(0xEC094070)
5099+
5100+#define MCF_GPIO_PAR_FBCTL_ALE(x) (((x)&3)<<6)
5101+#define MCF_GPIO_PAR_FBCTL_ALE_MASK (0x3F)
5102+#define MCF_GPIO_PAR_FBCTL_ALE_FB_ALE (0xC0)
5103+#define MCF_GPIO_PAR_FBCTL_ALE_FB_TS (0x80)
5104+#define MCF_GPIO_PAR_FBCTL_ALE_GPIO (0x00)
5105+#define MCF_GPIO_PAR_FBCTL_OE(x) (((x)&3)<<4)
5106+#define MCF_GPIO_PAR_FBCTL_OE_MASK (0xCF)
5107+#define MCF_GPIO_PAR_FBCTL_OE_FB_OE (0x30)
5108+#define MCF_GPIO_PAR_FBCTL_OE_FB_TBST (0x20)
5109+#define MCF_GPIO_PAR_FBCTL_OE_NFC_RE (0x20)
5110+#define MCF_GPIO_PAR_FBCTL_OE_GPIO (0x00)
5111+#define MCF_GPIO_PAR_FBCTL_FBCLK (0x08)
5112+#define MCF_GPIO_PAR_FBCTL_RW (0x04)
5113+#define MCF_GPIO_PAR_FBCTL_TA(x) ((x)&3)
5114+#define MCF_GPIO_PAR_FBCTL_TA_MASK (0xFC)
5115+#define MCF_GPIO_PAR_FBCTL_TA_TA (0x03)
5116+#define MCF_GPIO_PAR_FBCTL_TA_NFC_RB (0x01)
5117+#define MCF_GPIO_PAR_FBCTL_TA_GPIO (0x00)
5118+
5119+#define MCF_GPIO_PAR_BE_BS3(x) (((x)&0x03)<<6)
5120+#define MCF_GPIO_PAR_BE_BE3_MASK (0x3F)
5121+#define MCF_GPIO_PAR_BE_BE3_BE3 (0xC0)
5122+#define MCF_GPIO_PAR_BE_BE3_CS3 (0x80)
5123+#define MCF_GPIO_PAR_BE_BE3_FB_A1 (0x40)
5124+#define MCF_GPIO_PAR_BE_BE3_NFC_ALE (0x40)
5125+#define MCF_GPIO_PAR_BE_BE3_GPIO (0x00)
5126+#define MCF_GPIO_PAR_BE_BS2(x) (((x)&0x03)<<4)
5127+#define MCF_GPIO_PAR_BE_BE2_MASK (0xCF)
5128+#define MCF_GPIO_PAR_BE_BE2_BE2 (0x30)
5129+#define MCF_GPIO_PAR_BE_BE2_CS2 (0x20)
5130+#define MCF_GPIO_PAR_BE_BE2_FB_A0 (0x10)
5131+#define MCF_GPIO_PAR_BE_BE2_NFC_CLE (0x10)
5132+#define MCF_GPIO_PAR_BE_BE2_GPIO (0x00)
5133+#define MCF_GPIO_PAR_BE_BS1(x) (((x)&0x03)<<2)
5134+#define MCF_GPIO_PAR_BE_BE1_MASK (0xF3)
5135+#define MCF_GPIO_PAR_BE_BE1_BE1 (0x0C)
5136+#define MCF_GPIO_PAR_BE_BE1_FB_TSZ1 (0x08)
5137+#define MCF_GPIO_PAR_BE_BE1_GPIO (0x00)
5138+#define MCF_GPIO_PAR_BE_BS0(x) ((x)&0x03)
5139+#define MCF_GPIO_PAR_BE_BE0_MASK (0xFC)
5140+#define MCF_GPIO_PAR_BE_BE0_BE0 (0x03)
5141+#define MCF_GPIO_PAR_BE_BE0_FB_TSZ0 (0x02)
5142+#define MCF_GPIO_PAR_BE_BE0_GPIO (0x00)
5143+
5144+#define MCF_GPIO_PAR_CS_CS5(x) (((x)&0x03)<<6)
5145+#define MCF_GPIO_PAR_CS_CS5_MASK (0x3F)
5146+#define MCF_GPIO_PAR_CS_CS5_CS5 (0xC0)
5147+#define MCF_GPIO_PAR_CS_CS5_DACK1 (0x80)
5148+#define MCF_GPIO_PAR_CS_CS5_GPIO (0x00)
5149+#define MCF_GPIO_PAR_CS_CS4(x) (((x)&0x03)<<4)
5150+#define MCF_GPIO_PAR_CS_CS4_MASK (0xCF)
5151+#define MCF_GPIO_PAR_CS_CS4_CS4 (0x30)
5152+#define MCF_GPIO_PAR_CS_CS4_DREQ1 (0x20)
5153+#define MCF_GPIO_PAR_CS_CS4_GPIO (0x00)
5154+#define MCF_GPIO_PAR_CS_CS1(x) (((x)&0x03)<<2)
5155+#define MCF_GPIO_PAR_CS_CS1_MASK (0xF3)
5156+#define MCF_GPIO_PAR_CS_CS1_CS1 (0x0C)
5157+#define MCF_GPIO_PAR_CS_CS1_NFC_CE (0x04)
5158+#define MCF_GPIO_PAR_CS_CS1_GPIO (0x00)
5159+#define MCF_GPIO_PAR_CS_CS0_CS0 (0x01)
5160+
5161+#define MCF_GPIO_PAR_CANI2C_I2C0SCL(x) (((x)&0x03)<<6)
5162+#define MCF_GPIO_PAR_CANI2C_I2C0SCL_MASK (0x3F)
5163+#define MCF_GPIO_PAR_CANI2C_I2C0SCL_I2C0SCL (0xC0)
5164+#define MCF_GPIO_PAR_CANI2C_I2C0SCL_U8TXD (0x80)
5165+#define MCF_GPIO_PAR_CANI2C_I2C0SCL_CAN0TX (0x40)
5166+#define MCF_GPIO_PAR_CANI2C_I2C0SCL_GPIO (0x00)
5167+#define MCF_GPIO_PAR_CANI2C_I2C0SDA(x) (((x)&0x03)<<4)
5168+#define MCF_GPIO_PAR_CANI2C_I2C0SDA_MASK (0xCF)
5169+#define MCF_GPIO_PAR_CANI2C_I2C0SDA_I2C0SDA (0x30)
5170+#define MCF_GPIO_PAR_CANI2C_I2C0SDA_U8RXD (0x20)
5171+#define MCF_GPIO_PAR_CANI2C_I2C0SDA_CAN0RX (0x10)
5172+#define MCF_GPIO_PAR_CANI2C_I2C0SDA_GPIO (0x00)
5173+#define MCF_GPIO_PAR_CANI2C_CAN1TX(x) (((x)&0x03)<<2)
5174+#define MCF_GPIO_PAR_CANI2C_CAN1TX_MASK (0xF3)
5175+#define MCF_GPIO_PAR_CANI2C_CAN1TX_CAN1TX (0x0C)
5176+#define MCF_GPIO_PAR_CANI2C_CAN1TX_U9TXD (0x08)
5177+#define MCF_GPIO_PAR_CANI2C_CAN1TX_I2C1SCL (0x04)
5178+#define MCF_GPIO_PAR_CANI2C_CAN1TX_GPIO (0x00)
5179+#define MCF_GPIO_PAR_CANI2C_CAN1RX(x) ((x)&0x03)
5180+#define MCF_GPIO_PAR_CANI2C_CAN1RX_MASK (0xFC)
5181+#define MCF_GPIO_PAR_CANI2C_CAN1RX_CAN1RX (0x03)
5182+#define MCF_GPIO_PAR_CANI2C_CAN1RX_U9RXD (0x02)
5183+#define MCF_GPIO_PAR_CANI2C_CAN1RX_I2C1SDA (0x01)
5184+#define MCF_GPIO_PAR_CANI2C_CAN1RX_GPIO (0x00)
5185+
5186+#define MCF_GPIO_PAR_IRQH_IRQ7 (0x10)
5187+#define MCF_GPIO_PAR_IRQH_IRQ4(x) (((x)&0x03)<<2)
5188+#define MCF_GPIO_PAR_IRQH_IRQ4_MASK (0xF3)
5189+#define MCF_GPIO_PAR_IRQH_IRQ4_IRQ4 (0x0C)
5190+#define MCF_GPIO_PAR_IRQH_IRQ4_DREQ0 (0x08)
5191+#define MCF_GPIO_PAR_IRQH_IRQ4_GPIO (0x00)
5192+#define MCF_GPIO_PAR_IRQH_IRQ1 (0x01)
5193+
5194+#define MCF_GPIO_PAR_IRQL_IRQ6(x) (((x)&0x03)<<6)
5195+#define MCF_GPIO_PAR_IRQL_IRQ6_MASK (0x3F)
5196+#define MCF_GPIO_PAR_IRQL_IRQ6_IRQ6 (0xC0)
5197+#define MCF_GPIO_PAR_IRQL_IRQ6_USBCLKIN (0x40)
5198+#define MCF_GPIO_PAR_IRQL_IRQ6_GPIO (0x00)
5199+#define MCF_GPIO_PAR_IRQL_IRQ3(x) (((x)&0x03)<<4)
5200+#define MCF_GPIO_PAR_IRQL_IRQ3_MASK (0xCF)
5201+#define MCF_GPIO_PAR_IRQL_IRQ3_IRQ3 (0x30)
5202+#define MCF_GPIO_PAR_IRQL_IRQ3_DSPI0_PCS3 (0x20)
5203+#define MCF_GPIO_PAR_IRQL_IRQ3_USB1_VBUS_EN (0x10)
5204+#define MCF_GPIO_PAR_IRQL_IRQ3_GPIO (0x00)
5205+#define MCF_GPIO_PAR_IRQL_IRQ2(x) (((x)&0x03)<<2)
5206+#define MCF_GPIO_PAR_IRQL_IRQ2_MASK (0xF3)
5207+#define MCF_GPIO_PAR_IRQL_IRQ2_IRQ2 (0x0C)
5208+#define MCF_GPIO_PAR_IRQL_IRQ2_DSPI0_PCS2 (0x08)
5209+#define MCF_GPIO_PAR_IRQL_IRQ2_USB1_VBUS_OC (0x04)
5210+#define MCF_GPIO_PAR_IRQL_IRQ2_GPIO (0x00)
5211+
5212+#define MCF_GPIO_PAR_DSPI0_SIN(x) (((x)&0x03)<<6)
5213+#define MCF_GPIO_PAR_DSPI0_SIN_MASK (0x3F)
5214+#define MCF_GPIO_PAR_DSPI0_SIN_DSPI0SIN (0xC0)
5215+#define MCF_GPIO_PAR_DSPI0_SIN_SBF_DI (0xC0)
5216+#define MCF_GPIO_PAR_DSPI0_SIN_U3RXD (0x80)
5217+#define MCF_GPIO_PAR_DSPI0_SIN_SDHC_CMD (0x40)
5218+#define MCF_GPIO_PAR_DSPI0_SIN_GPIO (0x00)
5219+#define MCF_GPIO_PAR_DSPI0_SOUT(x) (((x)&0x03)<<4)
5220+#define MCF_GPIO_PAR_DSPI0_SOUT_MASK (0xCF)
5221+#define MCF_GPIO_PAR_DSPI0_SOUT_DSPI0SOUT (0x30)
5222+#define MCF_GPIO_PAR_DSPI0_SOUT_SBF_DO (0x30)
5223+#define MCF_GPIO_PAR_DSPI0_SOUT_U3TXD (0x20)
5224+#define MCF_GPIO_PAR_DSPI0_SOUT_SDHC_DAT0 (0x10)
5225+#define MCF_GPIO_PAR_DSPI0_SOUT_GPIO (0x00)
5226+#define MCF_GPIO_PAR_DSPI0_SCK(x) (((x)&0x03)<<2)
5227+#define MCF_GPIO_PAR_DSPI0_SCK_MASK (0xF3)
5228+#define MCF_GPIO_PAR_DSPI0_SCK_DSPI0SCK (0x0C)
5229+#define MCF_GPIO_PAR_DSPI0_SCK_SBF_CK (0x0C)
5230+#define MCF_GPIO_PAR_DSPI0_SCK_I2C3SCL (0x08)
5231+#define MCF_GPIO_PAR_DSPI0_SCK_SDHC_CLK (0x04)
5232+#define MCF_GPIO_PAR_DSPI0_SCK_GPIO (0x00)
5233+#define MCF_GPIO_PAR_DSPI0_PCS0(x) ((x)&0x03)
5234+#define MCF_GPIO_PAR_DSPI0_PCS0_MASK (0xFC)
5235+#define MCF_GPIO_PAR_DSPI0_PCS0_DSPI0PCS0 (0x03)
5236+#define MCF_GPIO_PAR_DSPI0_PCS0_SS (0x03)
5237+#define MCF_GPIO_PAR_DSPI0_PCS0_I2C3SDA (0x02)
5238+#define MCF_GPIO_PAR_DSPI0_PCS0_SDHC_DAT3 (0x01)
5239+#define MCF_GPIO_PAR_DSPI0_PCS0_GPIO (0x00)
5240+
5241+#define MCF_GPIO_PAR_DSPIOW_DSPI0PSC1 (0x80)
5242+#define MCF_GPIO_PAR_DSPIOW_SBF_CS (0x80)
5243+#define MCF_GPIO_PAR_DSPIOW_OWDAT (((x)&0x03)<<4)
5244+#define MCF_GPIO_PAR_DSPIOW_OWDAT_MASK (0xCF)
5245+#define MCF_GPIO_PAR_DSPIOW_OWDAT_OWDAT (0x30)
5246+#define MCF_GPIO_PAR_DSPIOW_OWDAT_DACK0 (0x20)
5247+#define MCF_GPIO_PAR_DSPIOW_OWDAT_GPIO (0x00)
5248+
5249+#define MCF_GPIO_PAR_TIMER_T3IN(x) (((x)&0x03)<<6)
5250+#define MCF_GPIO_PAR_TIMER_T3IN_MASK (0x3F)
5251+#define MCF_GPIO_PAR_TIMER_T3IN_T3IN (0xC0)
5252+#define MCF_GPIO_PAR_TIMER_T3IN_EXTA3 (0xC0)
5253+#define MCF_GPIO_PAR_TIMER_T3IN_T3OUT (0x80)
5254+#define MCF_GPIO_PAR_TIMER_T3IN_USB0_VBUSEN (0x40)
5255+#define MCF_GPIO_PAR_TIMER_T3IN_ULPI_DIR (0x40)
5256+#define MCF_GPIO_PAR_TIMER_T3IN_GPIO (0x00)
5257+#define MCF_GPIO_PAR_TIMER_T2IN(x) (((x)&0x03)<<4)
5258+#define MCF_GPIO_PAR_TIMER_T2IN_MASK (0xCF)
5259+#define MCF_GPIO_PAR_TIMER_T2IN_T2IN (0x30)
5260+#define MCF_GPIO_PAR_TIMER_T2IN_EXTA2 (0x30)
5261+#define MCF_GPIO_PAR_TIMER_T2IN_T2OUT (0x20)
5262+#define MCF_GPIO_PAR_TIMER_T2IN_SDHC_DAT2 (0x10)
5263+#define MCF_GPIO_PAR_TIMER_T2IN_GPIO (0x00)
5264+#define MCF_GPIO_PAR_TIMER_T1IN(x) (((x)&0x03)<<2)
5265+#define MCF_GPIO_PAR_TIMER_T1IN_MASK (0xF3)
5266+#define MCF_GPIO_PAR_TIMER_T1IN_T1IN (0x0C)
5267+#define MCF_GPIO_PAR_TIMER_T1IN_EXTA1 (0x0C)
5268+#define MCF_GPIO_PAR_TIMER_T1IN_T1OUT (0x08)
5269+#define MCF_GPIO_PAR_TIMER_T1IN_SDHC_DAT1 (0x04)
5270+#define MCF_GPIO_PAR_TIMER_T1IN_GPIO (0x00)
5271+#define MCF_GPIO_PAR_TIMER_T0IN(x) ((x)&0x03)
5272+#define MCF_GPIO_PAR_TIMER_T0IN_MASK (0xFC)
5273+#define MCF_GPIO_PAR_TIMER_T0IN_T0IN (0x03)
5274+#define MCF_GPIO_PAR_TIMER_T0IN_EXTA0 (0x03)
5275+#define MCF_GPIO_PAR_TIMER_T0IN_T0OUT (0x02)
5276+#define MCF_GPIO_PAR_TIMER_T0IN_USBO_VBUSOC (0x01)
5277+#define MCF_GPIO_PAR_TIMER_T0IN_ULPI_NXT (0x01)
5278+#define MCF_GPIO_PAR_TIMER_T0IN_GPIO (0x00)
5279+
5280+#define MCF_GPIO_PAR_UART2_U2CTS(x) (((x)&0x03)<<6)
5281+#define MCF_GPIO_PAR_UART2_U2CTS_MASK (0x3F)
5282+#define MCF_GPIO_PAR_UART2_U2CTS_U2CTS (0xC0)
5283+#define MCF_GPIO_PAR_UART2_U2CTS_U6TXD (0x80)
5284+#define MCF_GPIO_PAR_UART2_U2CTS_SSI1_BCLK (0x40)
5285+#define MCF_GPIO_PAR_UART2_U2CTS_GPIO (0x00)
5286+#define MCF_GPIO_PAR_UART2_U2RTS(x) (((x)&0x03)<<4)
5287+#define MCF_GPIO_PAR_UART2_U2RTS_MASK (0xCF)
5288+#define MCF_GPIO_PAR_UART2_U2RTS_U2RTS (0x30)
5289+#define MCF_GPIO_PAR_UART2_U2RTS_U6RXD (0x20)
5290+#define MCF_GPIO_PAR_UART2_U2RTS_SSI1_FS (0x10)
5291+#define MCF_GPIO_PAR_UART2_U2RTS_GPIO (0x00)
5292+#define MCF_GPIO_PAR_UART2_U2RXD(x) (((x)&0x03)<<2)
5293+#define MCF_GPIO_PAR_UART2_U2RXD_MASK (0xF3)
5294+#define MCF_GPIO_PAR_UART2_U2RXD_U2RXD (0x0C)
5295+#define MCF_GPIO_PAR_UART2_U2RXD_PWM_A3 (0x08)
5296+#define MCF_GPIO_PAR_UART2_U2RXD_SSI1_RXD (0x04)
5297+#define MCF_GPIO_PAR_UART2_U2RXD_GPIO (0x00)
5298+#define MCF_GPIO_PAR_UART2_U2TXD(x) ((x)&0x03)
5299+#define MCF_GPIO_PAR_UART2_U2TXD_MASK (0xFC)
5300+#define MCF_GPIO_PAR_UART2_U2TXD_U2TXD (0x03)
5301+#define MCF_GPIO_PAR_UART2_U2TXD_PWM_B3 (0x02)
5302+#define MCF_GPIO_PAR_UART2_U2TXD_SSI1_TXD (0x01)
5303+#define MCF_GPIO_PAR_UART2_U2TXD_GPIO (0x00)
5304+
5305+#define MCF_GPIO_PAR_UART1_U1CTS(x) (((x)&0x03)<<6)
5306+#define MCF_GPIO_PAR_UART1_U1CTS_MASK (0x3F)
5307+#define MCF_GPIO_PAR_UART1_U1CTS_U1CTS (0xC0)
5308+#define MCF_GPIO_PAR_UART1_U1CTS_U5TXD (0x80)
5309+#define MCF_GPIO_PAR_UART1_U1CTS_DSPI3_SCK (0x40)
5310+#define MCF_GPIO_PAR_UART1_U1CTS_GPIO (0x00)
5311+#define MCF_GPIO_PAR_UART1_U1RTS(x) (((x)&0x03)<<4)
5312+#define MCF_GPIO_PAR_UART1_U1RTS_MASK (0xCF)
5313+#define MCF_GPIO_PAR_UART1_U1RTS_U1RTS (0x30)
5314+#define MCF_GPIO_PAR_UART1_U1RTS_U5RXD (0x20)
5315+#define MCF_GPIO_PAR_UART1_U1RTS_DSPI3_PCS0 (0x10)
5316+#define MCF_GPIO_PAR_UART1_U1RTS_GPIO (0x00)
5317+#define MCF_GPIO_PAR_UART1_U1RXD(x) (((x)&0x03)<<2)
5318+#define MCF_GPIO_PAR_UART1_U1RXD_MASK (0xF3)
5319+#define MCF_GPIO_PAR_UART1_U1RXD_U1RXD (0x0C)
5320+#define MCF_GPIO_PAR_UART1_U1RXD_I2C5SDA (0x08)
5321+#define MCF_GPIO_PAR_UART1_U1RXD_DSPI3_SIN (0x04)
5322+#define MCF_GPIO_PAR_UART1_U1RXD_GPIO (0x00)
5323+#define MCF_GPIO_PAR_UART1_U1TXD(x) ((x)&0x03)
5324+#define MCF_GPIO_PAR_UART1_U1TXD_MASK (0xFC)
5325+#define MCF_GPIO_PAR_UART1_U1TXD_U1TXD (0x03)
5326+#define MCF_GPIO_PAR_UART1_U1TXD_I2C5SCL (0x02)
5327+#define MCF_GPIO_PAR_UART1_U1TXD_DSPI3_SOUT (0x01)
5328+#define MCF_GPIO_PAR_UART1_U1TXD_GPIO (0x00)
5329+
5330+#define MCF_GPIO_PAR_UART0_U0CTS(x) (((x)&0x03)<<6)
5331+#define MCF_GPIO_PAR_UART0_U0CTS_MASK (0x3F)
5332+#define MCF_GPIO_PAR_UART0_U0CTS_U0CTS (0xC0)
5333+#define MCF_GPIO_PAR_UART0_U0CTS_U4TXD (0x80)
5334+#define MCF_GPIO_PAR_UART0_U0CTS_DSPI2_SCK (0x40)
5335+#define MCF_GPIO_PAR_UART0_U0CTS_GPIO (0x00)
5336+#define MCF_GPIO_PAR_UART0_U0RTS(x) (((x)&0x03)<<4)
5337+#define MCF_GPIO_PAR_UART0_U0RTS_MASK (0xCF)
5338+#define MCF_GPIO_PAR_UART0_U0RTS_U0RTS (0x30)
5339+#define MCF_GPIO_PAR_UART0_U0RTS_U4RXD (0x20)
5340+#define MCF_GPIO_PAR_UART0_U0RTS_DSPI2_PCS0 (0x10)
5341+#define MCF_GPIO_PAR_UART0_U0RTS_GPIO (0x00)
5342+#define MCF_GPIO_PAR_UART0_U0RXD(x) (((x)&0x03)<<2)
5343+#define MCF_GPIO_PAR_UART0_U0RXD_MASK (0xF3)
5344+#define MCF_GPIO_PAR_UART0_U0RXD_U0RXD (0x0C)
5345+#define MCF_GPIO_PAR_UART0_U0RXD_I2C4SDA (0x08)
5346+#define MCF_GPIO_PAR_UART0_U0RXD_DSPI2_SIN (0x04)
5347+#define MCF_GPIO_PAR_UART0_U0RXD_GPIO (0x00)
5348+#define MCF_GPIO_PAR_UART0_U0TXD(x) ((x)&0x03)
5349+#define MCF_GPIO_PAR_UART0_U0TXD_MASK (0xFC)
5350+#define MCF_GPIO_PAR_UART0_U0TXD_U0TXD (0x03)
5351+#define MCF_GPIO_PAR_UART0_U0TXD_I2C4SCL (0x02)
5352+#define MCF_GPIO_PAR_UART0_U0TXD_DSPI2_SOUT (0x01)
5353+#define MCF_GPIO_PAR_UART0_U0TXD_GPIO (0x00)
5354+
5355+#define MCF_GPIO_PAR_SDHCH_DAT3(x) (((x)&0x03)<<6)
5356+#define MCF_GPIO_PAR_SDHCH_DAT3_MASK (0x3F)
5357+#define MCF_GPIO_PAR_SDHCH_DAT3_DAT3 (0xC0)
5358+#define MCF_GPIO_PAR_SDHCH_DAT3_PWM_A1 (0x80)
5359+#define MCF_GPIO_PAR_SDHCH_DAT3_DSPI1_PCS0 (0x40)
5360+#define MCF_GPIO_PAR_SDHCH_DAT3_GPIO (0x00)
5361+#define MCF_GPIO_PAR_SDHCH_DAT2(x) (((x)&0x03)<<4)
5362+#define MCF_GPIO_PAR_SDHCH_DAT2_MASK (0xCF)
5363+#define MCF_GPIO_PAR_SDHCH_DAT2_DAT2 (0x30)
5364+#define MCF_GPIO_PAR_SDHCH_DAT2_PWM_B1 (0x20)
5365+#define MCF_GPIO_PAR_SDHCH_DAT2_DSPI1_PCS2 (0x10)
5366+#define MCF_GPIO_PAR_SDHCH_DAT2_GPIO (0x00)
5367+#define MCF_GPIO_PAR_SDHCH_DAT1(x) (((x)&0x03)<<2)
5368+#define MCF_GPIO_PAR_SDHCH_DAT1_MASK (0xF3)
5369+#define MCF_GPIO_PAR_SDHCH_DAT1_DAT1 (0x0C)
5370+#define MCF_GPIO_PAR_SDHCH_DAT1_PWM_A2 (0x08)
5371+#define MCF_GPIO_PAR_SDHCH_DAT1_DSPI1_PCS1 (0x04)
5372+#define MCF_GPIO_PAR_SDHCH_DAT1_GPIO (0x00)
5373+#define MCF_GPIO_PAR_SDHCH_DAT0(x) ((x)&0x03)
5374+#define MCF_GPIO_PAR_SDHCH_DAT0_MASK (0xFC)
5375+#define MCF_GPIO_PAR_SDHCH_DAT0_DAT0 (0x03)
5376+#define MCF_GPIO_PAR_SDHCH_DAT0_PWM_B2 (0x02)
5377+#define MCF_GPIO_PAR_SDHCH_DAT0_DSPI1_SOUT (0x01)
5378+#define MCF_GPIO_PAR_SDHCH_DAT0_GPIO (0x00)
5379+
5380+#define MCF_GPIO_PAR_SDHCL_CMD(x) (((x)&0x03)<<2)
5381+#define MCF_GPIO_PAR_SDHCL_CMD_MASK (0xF3)
5382+#define MCF_GPIO_PAR_SDHCL_CMD_CMD (0x0C)
5383+#define MCF_GPIO_PAR_SDHCL_CMD_PWM_A0 (0x08)
5384+#define MCF_GPIO_PAR_SDHCL_CMD_DSPI1_SIN (0x04)
5385+#define MCF_GPIO_PAR_SDHCL_CMD_GPIO (0x00)
5386+#define MCF_GPIO_PAR_SDHCL_CLK(x) ((x)&0x03)
5387+#define MCF_GPIO_PAR_SDHCL_CLK_MASK (0xFC)
5388+#define MCF_GPIO_PAR_SDHCL_CLK_CLK (0x03)
5389+#define MCF_GPIO_PAR_SDHCL_CLK_PWM_B0 (0x02)
5390+#define MCF_GPIO_PAR_SDHCL_CLK_DSPI1_SCK (0x01)
5391+#define MCF_GPIO_PAR_SDHCL_CLK_GPIO (0x00)
5392+
5393+#define MCF_GPIO_PAR_SIMP0H_DAT(x) (((x)&0x03)<<6)
5394+#define MCF_GPIO_PAR_SIMP0H_DAT_MASK (0x3F)
5395+#define MCF_GPIO_PAR_SIMP0H_DAT_DAT (0xC0)
5396+#define MCF_GPIO_PAR_SIMP0H_DAT_PWM_FAULT2 (0x80)
5397+#define MCF_GPIO_PAR_SIMP0H_DAT_SDHC_DAT7 (0x40)
5398+#define MCF_GPIO_PAR_SIMP0H_DAT_GPIO (0x00)
5399+#define MCF_GPIO_PAR_SIMP0H_VEN(x) (((x)&0x03)<<4)
5400+#define MCF_GPIO_PAR_SIMP0H_VEN_MASK (0xCF)
5401+#define MCF_GPIO_PAR_SIMP0H_VEN_VEN (0x30)
5402+#define MCF_GPIO_PAR_SIMP0H_VEN_PWM_FAULT0 (0x20)
5403+#define MCF_GPIO_PAR_SIMP0H_VEN_GPIO (0x00)
5404+#define MCF_GPIO_PAR_SIMP0H_RST(x) (((x)&0x03)<<2)
5405+#define MCF_GPIO_PAR_SIMP0H_RST_MASK (0xF3)
5406+#define MCF_GPIO_PAR_SIMP0H_RST_RST (0x0C)
5407+#define MCF_GPIO_PAR_SIMP0H_RST_PWM_FORCE (0x08)
5408+#define MCF_GPIO_PAR_SIMP0H_RST_SDHC_DAT6 (0x04)
5409+#define MCF_GPIO_PAR_SIMP0H_RST_GPIO (0x00)
5410+#define MCF_GPIO_PAR_SIMP0H_PD(x) ((x)&0x03)
5411+#define MCF_GPIO_PAR_SIMP0H_PD_MASK (0xFC)
5412+#define MCF_GPIO_PAR_SIMP0H_PD_PD (0x03)
5413+#define MCF_GPIO_PAR_SIMP0H_PD_PWM_SYNC (0x02)
5414+#define MCF_GPIO_PAR_SIMP0H_PD_SDHC_DAT5 (0x01)
5415+#define MCF_GPIO_PAR_SIMP0H_PD_GPIO (0x00)
5416+
5417+#define MCF_GPIO_PAR_SIMP0L_CLK(x) ((x)&0x03)
5418+#define MCF_GPIO_PAR_SIMP0L_CLK_MASK (0xFC)
5419+#define MCF_GPIO_PAR_SIMP0L_CLK_CLK (0x03)
5420+#define MCF_GPIO_PAR_SIMP0L_CLK_PWM_FAULT1 (0x02)
5421+#define MCF_GPIO_PAR_SIMP0L_CLK_SDHC_DAT4 (0x01)
5422+#define MCF_GPIO_PAR_SIMP0L_CLK_GPIO (0x00)
5423+
5424+#define MCF_GPIO_PAR_SSI0H_RXD(x) (((x)&0x03)<<6)
5425+#define MCF_GPIO_PAR_SSI0H_RXD_MASK (0x3F)
5426+#define MCF_GPIO_PAR_SSI0H_RXD_RXD (0xC0)
5427+#define MCF_GPIO_PAR_SSI0H_RXD_I2C2SDA (0x80)
5428+#define MCF_GPIO_PAR_SSI0H_RXD_SIM1_VEN (0x40)
5429+#define MCF_GPIO_PAR_SSI0H_RXD_GPIO (0x00)
5430+#define MCF_GPIO_PAR_SSI0H_TXD(x) (((x)&0x03)<<4)
5431+#define MCF_GPIO_PAR_SSI0H_TXD_MASK (0xCF)
5432+#define MCF_GPIO_PAR_SSI0H_TXD_TXD (0x30)
5433+#define MCF_GPIO_PAR_SSI0H_TXD_I2C2SCL (0x20)
5434+#define MCF_GPIO_PAR_SSI0H_TXD_SIM1_DAT (0x10)
5435+#define MCF_GPIO_PAR_SSI0H_TXD_GPIO (0x00)
5436+#define MCF_GPIO_PAR_SSI0H_FS(x) (((x)&0x03)<<2)
5437+#define MCF_GPIO_PAR_SSI0H_FS_MASK (0xF3)
5438+#define MCF_GPIO_PAR_SSI0H_FS_FS (0x0C)
5439+#define MCF_GPIO_PAR_SSI0H_FS_U7TXD (0x08)
5440+#define MCF_GPIO_PAR_SSI0H_FS_SIM1_RST (0x04)
5441+#define MCF_GPIO_PAR_SSI0H_FS_GPIO (0x00)
5442+#define MCF_GPIO_PAR_SSI0H_MCLK(x) ((x)&0x03)
5443+#define MCF_GPIO_PAR_SSI0H_MCLK_MASK (0xFC)
5444+#define MCF_GPIO_PAR_SSI0H_MCLK_MCLK (0x03)
5445+#define MCF_GPIO_PAR_SSI0H_MCLK_SSI_CLKIN (0x02)
5446+#define MCF_GPIO_PAR_SSI0H_MCLK_SIM1_CLK (0x01)
5447+#define MCF_GPIO_PAR_SSI0H_MCLK_GPIO (0x00)
5448+
5449+#define MCF_GPIO_PAR_SSI0L_BCLK(x) ((x)&0x03)
5450+#define MCF_GPIO_PAR_SSI0L_BCLK_MASK (0xFC)
5451+#define MCF_GPIO_PAR_SSI0L_BCLK_BCLK (0x03)
5452+#define MCF_GPIO_PAR_SSI0L_BCLK_U7RXD (0x02)
5453+#define MCF_GPIO_PAR_SSI0L_BCLK_SIM1_PD (0x01)
5454+#define MCF_GPIO_PAR_SSI0L_BCLK_GPIO (0x00)
5455+
5456+#define MCF_GPIO_PAR_DEBUGH1_DAT3 (0x40)
5457+#define MCF_GPIO_PAR_DEBUGH1_DAT2 (0x10)
5458+#define MCF_GPIO_PAR_DEBUGH1_DAT1 (0x04)
5459+#define MCF_GPIO_PAR_DEBUGH1_DAT0 (0x01)
5460+
5461+#define MCF_GPIO_PAR_DEBUGH0_PST3 (0x40)
5462+#define MCF_GPIO_PAR_DEBUGH0_PST2 (0x10)
5463+#define MCF_GPIO_PAR_DEBUGH0_PST1 (0x04)
5464+#define MCF_GPIO_PAR_DEBUGH0_PST0 (0x01)
5465+
5466+#define MCF_GPIO_PAR_DEBUGL_ALLPST (0x01)
5467+
5468+#define MCF_GPIO_PAR_FEC_FEC(x) ((x)&0x0F)
5469+#define MCF_GPIO_PAR_FEC_FEC_MASK (0xF0)
5470+#define MCF_GPIO_PAR_FEC_FEC_GPIO (0x0D)
5471+#define MCF_GPIO_PAR_FEC_FEC_RMII1 (0x0C)
5472+#define MCF_GPIO_PAR_FEC_FEC_RMII1FUL (0x0B)
5473+#define MCF_GPIO_PAR_FEC_FEC_RMII_ULPI (0x0A)
5474+#define MCF_GPIO_PAR_FEC_FEC_RMII0 (0x09)
5475+#define MCF_GPIO_PAR_FEC_FEC_RMII0FUL_ULPI (0x08)
5476+#define MCF_GPIO_PAR_FEC_FEC_RMII0FUL (0x07)
5477+#define MCF_GPIO_PAR_FEC_FEC_RMII0_1FUL (0x06)
5478+#define MCF_GPIO_PAR_FEC_FEC_RMII0FUL_1 (0x05) /* 0:Full 1: */
5479+/* Both 0&1: MDC, MDIO, COL & TXER - GPIO */
5480+#define MCF_GPIO_PAR_FEC_FEC_RMII0_1 (0x04)
5481+#define MCF_GPIO_PAR_FEC_FEC_RMII0FUL_1FUL (0x03)
5482+#define MCF_GPIO_PAR_FEC_FEC_MII (0x01) /* MDC & MDIO - GPIO */
5483+#define MCF_GPIO_PAR_FEC_FEC_MIIFUL (0x00)
5484+
5485+/********************************************************************/
5486+
5487+#endif /* __MCF5441X_GPIO_H__ */
5488--- /dev/null
5489+++ b/arch/m68k/include/asm/mcf5441x_intc.h
5490@@ -0,0 +1,727 @@
5491+/*
5492+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved.
5493+ *
5494+ * This program is free software; you can redistribute it and/or modify it
5495+ * under the terms of the GNU General Public License as published by the
5496+ * Free Software Foundation; either version 2 of the License, or (at your
5497+ * option) any later version.
5498+ */
5499+
5500+#ifndef __MCF5441X_INTC_H__
5501+#define __MCF5441X_INTC_H__
5502+
5503+/*********************************************************************
5504+*
5505+* Interrupt Controller (INTC)
5506+*
5507+*********************************************************************/
5508+
5509+/* Register read/write macros */
5510+#define MCF_INTC0_IPRH MCF_REG32(0xFC048000)
5511+#define MCF_INTC0_IPRL MCF_REG32(0xFC048004)
5512+#define MCF_INTC0_IMRH MCF_REG32(0xFC048008)
5513+#define MCF_INTC0_IMRL MCF_REG32(0xFC04800C)
5514+#define MCF_INTC0_INTFRCH MCF_REG32(0xFC048010)
5515+#define MCF_INTC0_INTFRCL MCF_REG32(0xFC048014)
5516+#define MCF_INTC0_ICONFIG MCF_REG16(0xFC04801A)
5517+#define MCF_INTC0_SIMR MCF_REG08(0xFC04801C)
5518+#define MCF_INTC0_CIMR MCF_REG08(0xFC04801D)
5519+#define MCF_INTC0_CLMASK MCF_REG08(0xFC04801E)
5520+#define MCF_INTC0_SLMASK MCF_REG08(0xFC04801F)
5521+#define MCF_INTC0_ICR1 MCF_REG08(0xFC048041)
5522+#define MCF_INTC0_ICR2 MCF_REG08(0xFC048042)
5523+#define MCF_INTC0_ICR3 MCF_REG08(0xFC048043)
5524+#define MCF_INTC0_ICR4 MCF_REG08(0xFC048044)
5525+#define MCF_INTC0_ICR5 MCF_REG08(0xFC048045)
5526+#define MCF_INTC0_ICR6 MCF_REG08(0xFC048046)
5527+#define MCF_INTC0_ICR7 MCF_REG08(0xFC048047)
5528+#define MCF_INTC0_ICR8 MCF_REG08(0xFC048048)
5529+#define MCF_INTC0_ICR9 MCF_REG08(0xFC048049)
5530+#define MCF_INTC0_ICR10 MCF_REG08(0xFC04804A)
5531+#define MCF_INTC0_ICR11 MCF_REG08(0xFC04804B)
5532+#define MCF_INTC0_ICR12 MCF_REG08(0xFC04804C)
5533+#define MCF_INTC0_ICR13 MCF_REG08(0xFC04804D)
5534+#define MCF_INTC0_ICR14 MCF_REG08(0xFC04804E)
5535+#define MCF_INTC0_ICR15 MCF_REG08(0xFC04804F)
5536+#define MCF_INTC0_ICR16 MCF_REG08(0xFC048050)
5537+#define MCF_INTC0_ICR17 MCF_REG08(0xFC048051)
5538+#define MCF_INTC0_ICR18 MCF_REG08(0xFC048052)
5539+#define MCF_INTC0_ICR19 MCF_REG08(0xFC048053)
5540+#define MCF_INTC0_ICR20 MCF_REG08(0xFC048054)
5541+#define MCF_INTC0_ICR21 MCF_REG08(0xFC048055)
5542+#define MCF_INTC0_ICR22 MCF_REG08(0xFC048056)
5543+#define MCF_INTC0_ICR23 MCF_REG08(0xFC048057)
5544+#define MCF_INTC0_ICR24 MCF_REG08(0xFC048058)
5545+#define MCF_INTC0_ICR25 MCF_REG08(0xFC048059)
5546+#define MCF_INTC0_ICR26 MCF_REG08(0xFC04805A)
5547+#define MCF_INTC0_ICR27 MCF_REG08(0xFC04805B)
5548+#define MCF_INTC0_ICR28 MCF_REG08(0xFC04805C)
5549+#define MCF_INTC0_ICR29 MCF_REG08(0xFC04805D)
5550+#define MCF_INTC0_ICR30 MCF_REG08(0xFC04805E)
5551+#define MCF_INTC0_ICR31 MCF_REG08(0xFC04805F)
5552+#define MCF_INTC0_ICR32 MCF_REG08(0xFC048060)
5553+#define MCF_INTC0_ICR33 MCF_REG08(0xFC048061)
5554+#define MCF_INTC0_ICR34 MCF_REG08(0xFC048062)
5555+#define MCF_INTC0_ICR35 MCF_REG08(0xFC048063)
5556+#define MCF_INTC0_ICR36 MCF_REG08(0xFC048064)
5557+#define MCF_INTC0_ICR37 MCF_REG08(0xFC048065)
5558+#define MCF_INTC0_ICR38 MCF_REG08(0xFC048066)
5559+#define MCF_INTC0_ICR39 MCF_REG08(0xFC048067)
5560+#define MCF_INTC0_ICR40 MCF_REG08(0xFC048068)
5561+#define MCF_INTC0_ICR41 MCF_REG08(0xFC048069)
5562+#define MCF_INTC0_ICR42 MCF_REG08(0xFC04806A)
5563+#define MCF_INTC0_ICR43 MCF_REG08(0xFC04806B)
5564+#define MCF_INTC0_ICR44 MCF_REG08(0xFC04806C)
5565+#define MCF_INTC0_ICR45 MCF_REG08(0xFC04806D)
5566+#define MCF_INTC0_ICR46 MCF_REG08(0xFC04806E)
5567+#define MCF_INTC0_ICR47 MCF_REG08(0xFC04806F)
5568+#define MCF_INTC0_ICR48 MCF_REG08(0xFC048070)
5569+#define MCF_INTC0_ICR49 MCF_REG08(0xFC048071)
5570+#define MCF_INTC0_ICR50 MCF_REG08(0xFC048072)
5571+#define MCF_INTC0_ICR51 MCF_REG08(0xFC048073)
5572+#define MCF_INTC0_ICR52 MCF_REG08(0xFC048074)
5573+#define MCF_INTC0_ICR53 MCF_REG08(0xFC048075)
5574+#define MCF_INTC0_ICR54 MCF_REG08(0xFC048076)
5575+#define MCF_INTC0_ICR55 MCF_REG08(0xFC048077)
5576+#define MCF_INTC0_ICR56 MCF_REG08(0xFC048078)
5577+#define MCF_INTC0_ICR57 MCF_REG08(0xFC048079)
5578+#define MCF_INTC0_ICR58 MCF_REG08(0xFC04807A)
5579+#define MCF_INTC0_ICR59 MCF_REG08(0xFC04807B)
5580+#define MCF_INTC0_ICR60 MCF_REG08(0xFC04807C)
5581+#define MCF_INTC0_ICR61 MCF_REG08(0xFC04807D)
5582+#define MCF_INTC0_ICR62 MCF_REG08(0xFC04807E)
5583+#define MCF_INTC0_ICR63 MCF_REG08(0xFC04807F)
5584+#define MCF_INTC0_SWIACK MCF_REG08(0xFC0480E0)
5585+#define MCF_INTC0_L1IACK MCF_REG08(0xFC0480E4)
5586+#define MCF_INTC0_L2IACK MCF_REG08(0xFC0480E8)
5587+#define MCF_INTC0_L3IACK MCF_REG08(0xFC0480EC)
5588+#define MCF_INTC0_L4IACK MCF_REG08(0xFC0480F0)
5589+#define MCF_INTC0_L5IACK MCF_REG08(0xFC0480F4)
5590+#define MCF_INTC0_L6IACK MCF_REG08(0xFC0480F8)
5591+#define MCF_INTC0_L7IACK MCF_REG08(0xFC0480FC)
5592+#define MCF_INTC1_IPRH MCF_REG32(0xFC04C000)
5593+#define MCF_INTC1_IPRL MCF_REG32(0xFC04C004)
5594+#define MCF_INTC1_IMRH MCF_REG32(0xFC04C008)
5595+#define MCF_INTC1_IMRL MCF_REG32(0xFC04C00C)
5596+#define MCF_INTC1_INTFRCH MCF_REG32(0xFC04C010)
5597+#define MCF_INTC1_INTFRCL MCF_REG32(0xFC04C014)
5598+#define MCF_INTC1_ICONFIG MCF_REG16(0xFC04C01A)
5599+#define MCF_INTC1_SIMR MCF_REG08(0xFC04C01C)
5600+#define MCF_INTC1_CIMR MCF_REG08(0xFC04C01D)
5601+#define MCF_INTC1_CLMASK MCF_REG08(0xFC04C01E)
5602+#define MCF_INTC1_SLMASK MCF_REG08(0xFC04C01F)
5603+#define MCF_INTC1_ICR1 MCF_REG08(0xFC04C041)
5604+#define MCF_INTC1_ICR2 MCF_REG08(0xFC04C042)
5605+#define MCF_INTC1_ICR3 MCF_REG08(0xFC04C043)
5606+#define MCF_INTC1_ICR4 MCF_REG08(0xFC04C044)
5607+#define MCF_INTC1_ICR5 MCF_REG08(0xFC04C045)
5608+#define MCF_INTC1_ICR6 MCF_REG08(0xFC04C046)
5609+#define MCF_INTC1_ICR7 MCF_REG08(0xFC04C047)
5610+#define MCF_INTC1_ICR8 MCF_REG08(0xFC04C048)
5611+#define MCF_INTC1_ICR9 MCF_REG08(0xFC04C049)
5612+#define MCF_INTC1_ICR10 MCF_REG08(0xFC04C04A)
5613+#define MCF_INTC1_ICR11 MCF_REG08(0xFC04C04B)
5614+#define MCF_INTC1_ICR12 MCF_REG08(0xFC04C04C)
5615+#define MCF_INTC1_ICR13 MCF_REG08(0xFC04C04D)
5616+#define MCF_INTC1_ICR14 MCF_REG08(0xFC04C04E)
5617+#define MCF_INTC1_ICR15 MCF_REG08(0xFC04C04F)
5618+#define MCF_INTC1_ICR16 MCF_REG08(0xFC04C050)
5619+#define MCF_INTC1_ICR17 MCF_REG08(0xFC04C051)
5620+#define MCF_INTC1_ICR18 MCF_REG08(0xFC04C052)
5621+#define MCF_INTC1_ICR19 MCF_REG08(0xFC04C053)
5622+#define MCF_INTC1_ICR20 MCF_REG08(0xFC04C054)
5623+#define MCF_INTC1_ICR21 MCF_REG08(0xFC04C055)
5624+#define MCF_INTC1_ICR22 MCF_REG08(0xFC04C056)
5625+#define MCF_INTC1_ICR23 MCF_REG08(0xFC04C057)
5626+#define MCF_INTC1_ICR24 MCF_REG08(0xFC04C058)
5627+#define MCF_INTC1_ICR25 MCF_REG08(0xFC04C059)
5628+#define MCF_INTC1_ICR26 MCF_REG08(0xFC04C05A)
5629+#define MCF_INTC1_ICR27 MCF_REG08(0xFC04C05B)
5630+#define MCF_INTC1_ICR28 MCF_REG08(0xFC04C05C)
5631+#define MCF_INTC1_ICR29 MCF_REG08(0xFC04C05D)
5632+#define MCF_INTC1_ICR30 MCF_REG08(0xFC04C05E)
5633+#define MCF_INTC1_ICR31 MCF_REG08(0xFC04C05F)
5634+#define MCF_INTC1_ICR32 MCF_REG08(0xFC04C060)
5635+#define MCF_INTC1_ICR33 MCF_REG08(0xFC04C061)
5636+#define MCF_INTC1_ICR34 MCF_REG08(0xFC04C062)
5637+#define MCF_INTC1_ICR35 MCF_REG08(0xFC04C063)
5638+#define MCF_INTC1_ICR36 MCF_REG08(0xFC04C064)
5639+#define MCF_INTC1_ICR37 MCF_REG08(0xFC04C065)
5640+#define MCF_INTC1_ICR38 MCF_REG08(0xFC04C066)
5641+#define MCF_INTC1_ICR39 MCF_REG08(0xFC04C067)
5642+#define MCF_INTC1_ICR40 MCF_REG08(0xFC04C068)
5643+#define MCF_INTC1_ICR41 MCF_REG08(0xFC04C069)
5644+#define MCF_INTC1_ICR42 MCF_REG08(0xFC04C06A)
5645+#define MCF_INTC1_ICR43 MCF_REG08(0xFC04C06B)
5646+#define MCF_INTC1_ICR44 MCF_REG08(0xFC04C06C)
5647+#define MCF_INTC1_ICR45 MCF_REG08(0xFC04C06D)
5648+#define MCF_INTC1_ICR46 MCF_REG08(0xFC04C06E)
5649+#define MCF_INTC1_ICR47 MCF_REG08(0xFC04C06F)
5650+#define MCF_INTC1_ICR48 MCF_REG08(0xFC04C070)
5651+#define MCF_INTC1_ICR49 MCF_REG08(0xFC04C071)
5652+#define MCF_INTC1_ICR50 MCF_REG08(0xFC04C072)
5653+#define MCF_INTC1_ICR51 MCF_REG08(0xFC04C073)
5654+#define MCF_INTC1_ICR52 MCF_REG08(0xFC04C074)
5655+#define MCF_INTC1_ICR53 MCF_REG08(0xFC04C075)
5656+#define MCF_INTC1_ICR54 MCF_REG08(0xFC04C076)
5657+#define MCF_INTC1_ICR55 MCF_REG08(0xFC04C077)
5658+#define MCF_INTC1_ICR56 MCF_REG08(0xFC04C078)
5659+#define MCF_INTC1_ICR57 MCF_REG08(0xFC04C079)
5660+#define MCF_INTC1_ICR58 MCF_REG08(0xFC04C07A)
5661+#define MCF_INTC1_ICR59 MCF_REG08(0xFC04C07B)
5662+#define MCF_INTC1_ICR60 MCF_REG08(0xFC04C07C)
5663+#define MCF_INTC1_ICR61 MCF_REG08(0xFC04C07D)
5664+#define MCF_INTC1_ICR62 MCF_REG08(0xFC04C07E)
5665+#define MCF_INTC1_ICR63 MCF_REG08(0xFC04C07F)
5666+#define MCF_INTC1_SWIACK MCF_REG08(0xFC04C0E0)
5667+#define MCF_INTC1_L1IACK MCF_REG08(0xFC04C0E4)
5668+#define MCF_INTC1_L2IACK MCF_REG08(0xFC04C0E8)
5669+#define MCF_INTC1_L3IACK MCF_REG08(0xFC04C0EC)
5670+#define MCF_INTC1_L4IACK MCF_REG08(0xFC04C0F0)
5671+#define MCF_INTC1_L5IACK MCF_REG08(0xFC04C0F4)
5672+#define MCF_INTC1_L6IACK MCF_REG08(0xFC04C0F8
5673+#define MCF_INTC1_L7IACK MCF_REG08(0xFC04C0FC)
5674+
5675+#define MCF_INTC2_SIMR MCF_REG08(0xFC05001C)
5676+#define MCF_INTC2_CIMR MCF_REG08(0xFC05001D)
5677+#define MCF_INTC2_ICR31 MCF_REG08(0xFC05005F)
5678+
5679+/* Parameterized register read/write macros for multiple registers */
5680+#define MCF_INTC0_ICR(x) MCF_REG08(0xFC048041+((x-1)*0x001))
5681+#define MCF_INTC0_LIACK(x) MCF_REG08(0xFC0480E4+((x-1)*0x004))
5682+#define MCF_INTC1_ICR(x) MCF_REG08(0xFC04C041+((x-1)*0x001))
5683+#define MCF_INTC1_LIACK(x) MCF_REG08(0xFC04C0E4+((x-1)*0x004))
5684+#define MCF_INTC2_ICR(x) MCF_REG08(0xFC050041+((x-1)*0x001))
5685+
5686+/* Parameterized register read/write macros for multiple modules */
5687+#define MCF_INTC_IPRH(x) MCF_REG32(0xFC048000+((x)*0x4000))
5688+#define MCF_INTC_IPRL(x) MCF_REG32(0xFC048004+((x)*0x4000))
5689+#define MCF_INTC_IMRH(x) MCF_REG32(0xFC048008+((x)*0x4000))
5690+#define MCF_INTC_IMRL(x) MCF_REG32(0xFC04800C+((x)*0x4000))
5691+#define MCF_INTC_INTFRCH(x) MCF_REG32(0xFC048010+((x)*0x4000))
5692+#define MCF_INTC_INTFRCL(x) MCF_REG32(0xFC048014+((x)*0x4000))
5693+#define MCF_INTC_ICONFIG(x) MCF_REG16(0xFC04801A+((x)*0x4000))
5694+#define MCF_INTC_SIMR(x) MCF_REG08(0xFC04801C+((x)*0x4000))
5695+#define MCF_INTC_CIMR(x) MCF_REG08(0xFC04801D+((x)*0x4000))
5696+#define MCF_INTC_CLMASK(x) MCF_REG08(0xFC04801E+((x)*0x4000))
5697+#define MCF_INTC_SLMASK(x) MCF_REG08(0xFC04801F+((x)*0x4000))
5698+#define MCF_INTC_ICR1(x) MCF_REG08(0xFC048041+((x)*0x4000))
5699+#define MCF_INTC_ICR2(x) MCF_REG08(0xFC048042+((x)*0x4000))
5700+#define MCF_INTC_ICR3(x) MCF_REG08(0xFC048043+((x)*0x4000))
5701+#define MCF_INTC_ICR4(x) MCF_REG08(0xFC048044+((x)*0x4000))
5702+#define MCF_INTC_ICR5(x) MCF_REG08(0xFC048045+((x)*0x4000))
5703+#define MCF_INTC_ICR6(x) MCF_REG08(0xFC048046+((x)*0x4000))
5704+#define MCF_INTC_ICR7(x) MCF_REG08(0xFC048047+((x)*0x4000))
5705+#define MCF_INTC_ICR8(x) MCF_REG08(0xFC048048+((x)*0x4000))
5706+#define MCF_INTC_ICR9(x) MCF_REG08(0xFC048049+((x)*0x4000))
5707+#define MCF_INTC_ICR10(x) MCF_REG08(0xFC04804A+((x)*0x4000))
5708+#define MCF_INTC_ICR11(x) MCF_REG08(0xFC04804B+((x)*0x4000))
5709+#define MCF_INTC_ICR12(x) MCF_REG08(0xFC04804C+((x)*0x4000))
5710+#define MCF_INTC_ICR13(x) MCF_REG08(0xFC04804D+((x)*0x4000))
5711+#define MCF_INTC_ICR14(x) MCF_REG08(0xFC04804E+((x)*0x4000))
5712+#define MCF_INTC_ICR15(x) MCF_REG08(0xFC04804F+((x)*0x4000))
5713+#define MCF_INTC_ICR16(x) MCF_REG08(0xFC048050+((x)*0x4000))
5714+#define MCF_INTC_ICR17(x) MCF_REG08(0xFC048051+((x)*0x4000))
5715+#define MCF_INTC_ICR18(x) MCF_REG08(0xFC048052+((x)*0x4000))
5716+#define MCF_INTC_ICR19(x) MCF_REG08(0xFC048053+((x)*0x4000))
5717+#define MCF_INTC_ICR20(x) MCF_REG08(0xFC048054+((x)*0x4000))
5718+#define MCF_INTC_ICR21(x) MCF_REG08(0xFC048055+((x)*0x4000))
5719+#define MCF_INTC_ICR22(x) MCF_REG08(0xFC048056+((x)*0x4000))
5720+#define MCF_INTC_ICR23(x) MCF_REG08(0xFC048057+((x)*0x4000))
5721+#define MCF_INTC_ICR24(x) MCF_REG08(0xFC048058+((x)*0x4000))
5722+#define MCF_INTC_ICR25(x) MCF_REG08(0xFC048059+((x)*0x4000))
5723+#define MCF_INTC_ICR26(x) MCF_REG08(0xFC04805A+((x)*0x4000))
5724+#define MCF_INTC_ICR27(x) MCF_REG08(0xFC04805B+((x)*0x4000))
5725+#define MCF_INTC_ICR28(x) MCF_REG08(0xFC04805C+((x)*0x4000))
5726+#define MCF_INTC_ICR29(x) MCF_REG08(0xFC04805D+((x)*0x4000))
5727+#define MCF_INTC_ICR30(x) MCF_REG08(0xFC04805E+((x)*0x4000))
5728+#define MCF_INTC_ICR31(x) MCF_REG08(0xFC04805F+((x)*0x4000))
5729+#define MCF_INTC_ICR32(x) MCF_REG08(0xFC048060+((x)*0x4000))
5730+#define MCF_INTC_ICR33(x) MCF_REG08(0xFC048061+((x)*0x4000))
5731+#define MCF_INTC_ICR34(x) MCF_REG08(0xFC048062+((x)*0x4000))
5732+#define MCF_INTC_ICR35(x) MCF_REG08(0xFC048063+((x)*0x4000))
5733+#define MCF_INTC_ICR36(x) MCF_REG08(0xFC048064+((x)*0x4000))
5734+#define MCF_INTC_ICR37(x) MCF_REG08(0xFC048065+((x)*0x4000))
5735+#define MCF_INTC_ICR38(x) MCF_REG08(0xFC048066+((x)*0x4000))
5736+#define MCF_INTC_ICR39(x) MCF_REG08(0xFC048067+((x)*0x4000))
5737+#define MCF_INTC_ICR40(x) MCF_REG08(0xFC048068+((x)*0x4000))
5738+#define MCF_INTC_ICR41(x) MCF_REG08(0xFC048069+((x)*0x4000))
5739+#define MCF_INTC_ICR42(x) MCF_REG08(0xFC04806A+((x)*0x4000))
5740+#define MCF_INTC_ICR43(x) MCF_REG08(0xFC04806B+((x)*0x4000))
5741+#define MCF_INTC_ICR44(x) MCF_REG08(0xFC04806C+((x)*0x4000))
5742+#define MCF_INTC_ICR45(x) MCF_REG08(0xFC04806D+((x)*0x4000))
5743+#define MCF_INTC_ICR46(x) MCF_REG08(0xFC04806E+((x)*0x4000))
5744+#define MCF_INTC_ICR47(x) MCF_REG08(0xFC04806F+((x)*0x4000))
5745+#define MCF_INTC_ICR48(x) MCF_REG08(0xFC048070+((x)*0x4000))
5746+#define MCF_INTC_ICR49(x) MCF_REG08(0xFC048071+((x)*0x4000))
5747+#define MCF_INTC_ICR50(x) MCF_REG08(0xFC048072+((x)*0x4000))
5748+#define MCF_INTC_ICR51(x) MCF_REG08(0xFC048073+((x)*0x4000))
5749+#define MCF_INTC_ICR52(x) MCF_REG08(0xFC048074+((x)*0x4000))
5750+#define MCF_INTC_ICR53(x) MCF_REG08(0xFC048075+((x)*0x4000))
5751+#define MCF_INTC_ICR54(x) MCF_REG08(0xFC048076+((x)*0x4000))
5752+#define MCF_INTC_ICR55(x) MCF_REG08(0xFC048077+((x)*0x4000))
5753+#define MCF_INTC_ICR56(x) MCF_REG08(0xFC048078+((x)*0x4000))
5754+#define MCF_INTC_ICR57(x) MCF_REG08(0xFC048079+((x)*0x4000))
5755+#define MCF_INTC_ICR58(x) MCF_REG08(0xFC04807A+((x)*0x4000))
5756+#define MCF_INTC_ICR59(x) MCF_REG08(0xFC04807B+((x)*0x4000))
5757+#define MCF_INTC_ICR60(x) MCF_REG08(0xFC04807C+((x)*0x4000))
5758+#define MCF_INTC_ICR61(x) MCF_REG08(0xFC04807D+((x)*0x4000))
5759+#define MCF_INTC_ICR62(x) MCF_REG08(0xFC04807E+((x)*0x4000))
5760+#define MCF_INTC_ICR63(x) MCF_REG08(0xFC04807F+((x)*0x4000))
5761+#define MCF_INTC_SWIACK(x) MCF_REG08(0xFC0480E0+((x)*0x4000))
5762+#define MCF_INTC_L1IACK(x) MCF_REG08(0xFC0480E4+((x)*0x4000))
5763+#define MCF_INTC_L2IACK(x) MCF_REG08(0xFC0480E8+((x)*0x4000))
5764+#define MCF_INTC_L3IACK(x) MCF_REG08(0xFC0480EC+((x)*0x4000))
5765+#define MCF_INTC_L4IACK(x) MCF_REG08(0xFC0480F0+((x)*0x4000))
5766+#define MCF_INTC_L5IACK(x) MCF_REG08(0xFC0480F4+((x)*0x4000))
5767+#define MCF_INTC_L6IACK(x) MCF_REG08(0xFC0480F8+((x)*0x4000))
5768+#define MCF_INTC_L7IACK(x) MCF_REG08(0xFC0480FC+((x)*0x4000))
5769+
5770+/* Bit definitions and macros for IPRH */
5771+#define MCF_INTC_IPRH_INT32 (0x00000001)
5772+#define MCF_INTC_IPRH_INT33 (0x00000002)
5773+#define MCF_INTC_IPRH_INT34 (0x00000004)
5774+#define MCF_INTC_IPRH_INT35 (0x00000008)
5775+#define MCF_INTC_IPRH_INT36 (0x00000010)
5776+#define MCF_INTC_IPRH_INT37 (0x00000020)
5777+#define MCF_INTC_IPRH_INT38 (0x00000040)
5778+#define MCF_INTC_IPRH_INT39 (0x00000080)
5779+#define MCF_INTC_IPRH_INT40 (0x00000100)
5780+#define MCF_INTC_IPRH_INT41 (0x00000200)
5781+#define MCF_INTC_IPRH_INT42 (0x00000400)
5782+#define MCF_INTC_IPRH_INT43 (0x00000800)
5783+#define MCF_INTC_IPRH_INT44 (0x00001000)
5784+#define MCF_INTC_IPRH_INT45 (0x00002000)
5785+#define MCF_INTC_IPRH_INT46 (0x00004000)
5786+#define MCF_INTC_IPRH_INT47 (0x00008000)
5787+#define MCF_INTC_IPRH_INT48 (0x00010000)
5788+#define MCF_INTC_IPRH_INT49 (0x00020000)
5789+#define MCF_INTC_IPRH_INT50 (0x00040000)
5790+#define MCF_INTC_IPRH_INT51 (0x00080000)
5791+#define MCF_INTC_IPRH_INT52 (0x00100000)
5792+#define MCF_INTC_IPRH_INT53 (0x00200000)
5793+#define MCF_INTC_IPRH_INT54 (0x00400000)
5794+#define MCF_INTC_IPRH_INT55 (0x00800000)
5795+#define MCF_INTC_IPRH_INT56 (0x01000000)
5796+#define MCF_INTC_IPRH_INT57 (0x02000000)
5797+#define MCF_INTC_IPRH_INT58 (0x04000000)
5798+#define MCF_INTC_IPRH_INT59 (0x08000000)
5799+#define MCF_INTC_IPRH_INT60 (0x10000000)
5800+#define MCF_INTC_IPRH_INT61 (0x20000000)
5801+#define MCF_INTC_IPRH_INT62 (0x40000000)
5802+#define MCF_INTC_IPRH_INT63 (0x80000000)
5803+
5804+/* Bit definitions and macros for IPRL */
5805+#define MCF_INTC_IPRL_INT0 (0x00000001)
5806+#define MCF_INTC_IPRL_INT1 (0x00000002)
5807+#define MCF_INTC_IPRL_INT2 (0x00000004)
5808+#define MCF_INTC_IPRL_INT3 (0x00000008)
5809+#define MCF_INTC_IPRL_INT4 (0x00000010)
5810+#define MCF_INTC_IPRL_INT5 (0x00000020)
5811+#define MCF_INTC_IPRL_INT6 (0x00000040)
5812+#define MCF_INTC_IPRL_INT7 (0x00000080)
5813+#define MCF_INTC_IPRL_INT8 (0x00000100)
5814+#define MCF_INTC_IPRL_INT9 (0x00000200)
5815+#define MCF_INTC_IPRL_INT10 (0x00000400)
5816+#define MCF_INTC_IPRL_INT11 (0x00000800)
5817+#define MCF_INTC_IPRL_INT12 (0x00001000)
5818+#define MCF_INTC_IPRL_INT13 (0x00002000)
5819+#define MCF_INTC_IPRL_INT14 (0x00004000)
5820+#define MCF_INTC_IPRL_INT15 (0x00008000)
5821+#define MCF_INTC_IPRL_INT16 (0x00010000)
5822+#define MCF_INTC_IPRL_INT17 (0x00020000)
5823+#define MCF_INTC_IPRL_INT18 (0x00040000)
5824+#define MCF_INTC_IPRL_INT19 (0x00080000)
5825+#define MCF_INTC_IPRL_INT20 (0x00100000)
5826+#define MCF_INTC_IPRL_INT21 (0x00200000)
5827+#define MCF_INTC_IPRL_INT22 (0x00400000)
5828+#define MCF_INTC_IPRL_INT23 (0x00800000)
5829+#define MCF_INTC_IPRL_INT24 (0x01000000)
5830+#define MCF_INTC_IPRL_INT25 (0x02000000)
5831+#define MCF_INTC_IPRL_INT26 (0x04000000)
5832+#define MCF_INTC_IPRL_INT27 (0x08000000)
5833+#define MCF_INTC_IPRL_INT28 (0x10000000)
5834+#define MCF_INTC_IPRL_INT29 (0x20000000)
5835+#define MCF_INTC_IPRL_INT30 (0x40000000)
5836+#define MCF_INTC_IPRL_INT31 (0x80000000)
5837+
5838+/* Bit definitions and macros for IMRH */
5839+#define MCF_INTC_IMRH_INT_MASK32 (0x00000001)
5840+#define MCF_INTC_IMRH_INT_MASK33 (0x00000002)
5841+#define MCF_INTC_IMRH_INT_MASK34 (0x00000004)
5842+#define MCF_INTC_IMRH_INT_MASK35 (0x00000008)
5843+#define MCF_INTC_IMRH_INT_MASK36 (0x00000010)
5844+#define MCF_INTC_IMRH_INT_MASK37 (0x00000020)
5845+#define MCF_INTC_IMRH_INT_MASK38 (0x00000040)
5846+#define MCF_INTC_IMRH_INT_MASK39 (0x00000080)
5847+#define MCF_INTC_IMRH_INT_MASK40 (0x00000100)
5848+#define MCF_INTC_IMRH_INT_MASK41 (0x00000200)
5849+#define MCF_INTC_IMRH_INT_MASK42 (0x00000400)
5850+#define MCF_INTC_IMRH_INT_MASK43 (0x00000800)
5851+#define MCF_INTC_IMRH_INT_MASK44 (0x00001000)
5852+#define MCF_INTC_IMRH_INT_MASK45 (0x00002000)
5853+#define MCF_INTC_IMRH_INT_MASK46 (0x00004000)
5854+#define MCF_INTC_IMRH_INT_MASK47 (0x00008000)
5855+#define MCF_INTC_IMRH_INT_MASK48 (0x00010000)
5856+#define MCF_INTC_IMRH_INT_MASK49 (0x00020000)
5857+#define MCF_INTC_IMRH_INT_MASK50 (0x00040000)
5858+#define MCF_INTC_IMRH_INT_MASK51 (0x00080000)
5859+#define MCF_INTC_IMRH_INT_MASK52 (0x00100000)
5860+#define MCF_INTC_IMRH_INT_MASK53 (0x00200000)
5861+#define MCF_INTC_IMRH_INT_MASK54 (0x00400000)
5862+#define MCF_INTC_IMRH_INT_MASK55 (0x00800000)
5863+#define MCF_INTC_IMRH_INT_MASK56 (0x01000000)
5864+#define MCF_INTC_IMRH_INT_MASK57 (0x02000000)
5865+#define MCF_INTC_IMRH_INT_MASK58 (0x04000000)
5866+#define MCF_INTC_IMRH_INT_MASK59 (0x08000000)
5867+#define MCF_INTC_IMRH_INT_MASK60 (0x10000000)
5868+#define MCF_INTC_IMRH_INT_MASK61 (0x20000000)
5869+#define MCF_INTC_IMRH_INT_MASK62 (0x40000000)
5870+#define MCF_INTC_IMRH_INT_MASK63 (0x80000000)
5871+
5872+/* Bit definitions and macros for IMRL */
5873+#define MCF_INTC_IMRL_INT_MASK0 (0x00000001)
5874+#define MCF_INTC_IMRL_INT_MASK1 (0x00000002)
5875+#define MCF_INTC_IMRL_INT_MASK2 (0x00000004)
5876+#define MCF_INTC_IMRL_INT_MASK3 (0x00000008)
5877+#define MCF_INTC_IMRL_INT_MASK4 (0x00000010)
5878+#define MCF_INTC_IMRL_INT_MASK5 (0x00000020)
5879+#define MCF_INTC_IMRL_INT_MASK6 (0x00000040)
5880+#define MCF_INTC_IMRL_INT_MASK7 (0x00000080)
5881+#define MCF_INTC_IMRL_INT_MASK8 (0x00000100)
5882+#define MCF_INTC_IMRL_INT_MASK9 (0x00000200)
5883+#define MCF_INTC_IMRL_INT_MASK10 (0x00000400)
5884+#define MCF_INTC_IMRL_INT_MASK11 (0x00000800)
5885+#define MCF_INTC_IMRL_INT_MASK12 (0x00001000)
5886+#define MCF_INTC_IMRL_INT_MASK13 (0x00002000)
5887+#define MCF_INTC_IMRL_INT_MASK14 (0x00004000)
5888+#define MCF_INTC_IMRL_INT_MASK15 (0x00008000)
5889+#define MCF_INTC_IMRL_INT_MASK16 (0x00010000)
5890+#define MCF_INTC_IMRL_INT_MASK17 (0x00020000)
5891+#define MCF_INTC_IMRL_INT_MASK18 (0x00040000)
5892+#define MCF_INTC_IMRL_INT_MASK19 (0x00080000)
5893+#define MCF_INTC_IMRL_INT_MASK20 (0x00100000)
5894+#define MCF_INTC_IMRL_INT_MASK21 (0x00200000)
5895+#define MCF_INTC_IMRL_INT_MASK22 (0x00400000)
5896+#define MCF_INTC_IMRL_INT_MASK23 (0x00800000)
5897+#define MCF_INTC_IMRL_INT_MASK24 (0x01000000)
5898+#define MCF_INTC_IMRL_INT_MASK25 (0x02000000)
5899+#define MCF_INTC_IMRL_INT_MASK26 (0x04000000)
5900+#define MCF_INTC_IMRL_INT_MASK27 (0x08000000)
5901+#define MCF_INTC_IMRL_INT_MASK28 (0x10000000)
5902+#define MCF_INTC_IMRL_INT_MASK29 (0x20000000)
5903+#define MCF_INTC_IMRL_INT_MASK30 (0x40000000)
5904+#define MCF_INTC_IMRL_INT_MASK31 (0x80000000)
5905+
5906+/* Bit definitions and macros for INTFRCH */
5907+#define MCF_INTC_INTFRCH_INTFRC32 (0x00000001)
5908+#define MCF_INTC_INTFRCH_INTFRC33 (0x00000002)
5909+#define MCF_INTC_INTFRCH_INTFRC34 (0x00000004)
5910+#define MCF_INTC_INTFRCH_INTFRC35 (0x00000008)
5911+#define MCF_INTC_INTFRCH_INTFRC36 (0x00000010)
5912+#define MCF_INTC_INTFRCH_INTFRC37 (0x00000020)
5913+#define MCF_INTC_INTFRCH_INTFRC38 (0x00000040)
5914+#define MCF_INTC_INTFRCH_INTFRC39 (0x00000080)
5915+#define MCF_INTC_INTFRCH_INTFRC40 (0x00000100)
5916+#define MCF_INTC_INTFRCH_INTFRC41 (0x00000200)
5917+#define MCF_INTC_INTFRCH_INTFRC42 (0x00000400)
5918+#define MCF_INTC_INTFRCH_INTFRC43 (0x00000800)
5919+#define MCF_INTC_INTFRCH_INTFRC44 (0x00001000)
5920+#define MCF_INTC_INTFRCH_INTFRC45 (0x00002000)
5921+#define MCF_INTC_INTFRCH_INTFRC46 (0x00004000)
5922+#define MCF_INTC_INTFRCH_INTFRC47 (0x00008000)
5923+#define MCF_INTC_INTFRCH_INTFRC48 (0x00010000)
5924+#define MCF_INTC_INTFRCH_INTFRC49 (0x00020000)
5925+#define MCF_INTC_INTFRCH_INTFRC50 (0x00040000)
5926+#define MCF_INTC_INTFRCH_INTFRC51 (0x00080000)
5927+#define MCF_INTC_INTFRCH_INTFRC52 (0x00100000)
5928+#define MCF_INTC_INTFRCH_INTFRC53 (0x00200000)
5929+#define MCF_INTC_INTFRCH_INTFRC54 (0x00400000)
5930+#define MCF_INTC_INTFRCH_INTFRC55 (0x00800000)
5931+#define MCF_INTC_INTFRCH_INTFRC56 (0x01000000)
5932+#define MCF_INTC_INTFRCH_INTFRC57 (0x02000000)
5933+#define MCF_INTC_INTFRCH_INTFRC58 (0x04000000)
5934+#define MCF_INTC_INTFRCH_INTFRC59 (0x08000000)
5935+#define MCF_INTC_INTFRCH_INTFRC60 (0x10000000)
5936+#define MCF_INTC_INTFRCH_INTFRC61 (0x20000000)
5937+#define MCF_INTC_INTFRCH_INTFRC62 (0x40000000)
5938+#define MCF_INTC_INTFRCH_INTFRC63 (0x80000000)
5939+
5940+/* Bit definitions and macros for INTFRCL */
5941+#define MCF_INTC_INTFRCL_INTFRC0 (0x00000001)
5942+#define MCF_INTC_INTFRCL_INTFRC1 (0x00000002)
5943+#define MCF_INTC_INTFRCL_INTFRC2 (0x00000004)
5944+#define MCF_INTC_INTFRCL_INTFRC3 (0x00000008)
5945+#define MCF_INTC_INTFRCL_INTFRC4 (0x00000010)
5946+#define MCF_INTC_INTFRCL_INTFRC5 (0x00000020)
5947+#define MCF_INTC_INTFRCL_INTFRC6 (0x00000040)
5948+#define MCF_INTC_INTFRCL_INTFRC7 (0x00000080)
5949+#define MCF_INTC_INTFRCL_INTFRC8 (0x00000100)
5950+#define MCF_INTC_INTFRCL_INTFRC9 (0x00000200)
5951+#define MCF_INTC_INTFRCL_INTFRC10 (0x00000400)
5952+#define MCF_INTC_INTFRCL_INTFRC11 (0x00000800)
5953+#define MCF_INTC_INTFRCL_INTFRC12 (0x00001000)
5954+#define MCF_INTC_INTFRCL_INTFRC13 (0x00002000)
5955+#define MCF_INTC_INTFRCL_INTFRC14 (0x00004000)
5956+#define MCF_INTC_INTFRCL_INTFRC15 (0x00008000)
5957+#define MCF_INTC_INTFRCL_INTFRC16 (0x00010000)
5958+#define MCF_INTC_INTFRCL_INTFRC17 (0x00020000)
5959+#define MCF_INTC_INTFRCL_INTFRC18 (0x00040000)
5960+#define MCF_INTC_INTFRCL_INTFRC19 (0x00080000)
5961+#define MCF_INTC_INTFRCL_INTFRC20 (0x00100000)
5962+#define MCF_INTC_INTFRCL_INTFRC21 (0x00200000)
5963+#define MCF_INTC_INTFRCL_INTFRC22 (0x00400000)
5964+#define MCF_INTC_INTFRCL_INTFRC23 (0x00800000)
5965+#define MCF_INTC_INTFRCL_INTFRC24 (0x01000000)
5966+#define MCF_INTC_INTFRCL_INTFRC25 (0x02000000)
5967+#define MCF_INTC_INTFRCL_INTFRC26 (0x04000000)
5968+#define MCF_INTC_INTFRCL_INTFRC27 (0x08000000)
5969+#define MCF_INTC_INTFRCL_INTFRC28 (0x10000000)
5970+#define MCF_INTC_INTFRCL_INTFRC29 (0x20000000)
5971+#define MCF_INTC_INTFRCL_INTFRC30 (0x40000000)
5972+#define MCF_INTC_INTFRCL_INTFRC31 (0x80000000)
5973+
5974+/* Bit definitions and macros for ICONFIG */
5975+#define MCF_INTC_ICONFIG_EMASK (0x0020)
5976+#define MCF_INTC_ICONFIG_ELVLPRI1 (0x0200)
5977+#define MCF_INTC_ICONFIG_ELVLPRI2 (0x0400)
5978+#define MCF_INTC_ICONFIG_ELVLPRI3 (0x0800)
5979+#define MCF_INTC_ICONFIG_ELVLPRI4 (0x1000)
5980+#define MCF_INTC_ICONFIG_ELVLPRI5 (0x2000)
5981+#define MCF_INTC_ICONFIG_ELVLPRI6 (0x4000)
5982+#define MCF_INTC_ICONFIG_ELVLPRI7 (0x8000)
5983+
5984+/* Bit definitions and macros for SIMR */
5985+#define MCF_INTC_SIMR_SIMR(x) (((x)&0x7F))
5986+
5987+/* Bit definitions and macros for CIMR */
5988+#define MCF_INTC_CIMR_CIMR(x) (((x)&0x7F))
5989+
5990+/* Bit definitions and macros for CLMASK */
5991+#define MCF_INTC_CLMASK_CLMASK(x) (((x)&0x0F))
5992+
5993+/* Bit definitions and macros for SLMASK */
5994+#define MCF_INTC_SLMASK_SLMASK(x) (((x)&0x0F))
5995+
5996+/* Bit definitions and macros for ICR group */
5997+#define MCF_INTC_ICR_IL(x) (((x)&0x07))
5998+
5999+/* Bit definitions and macros for ICR1 */
6000+#define MCF_INTC_ICR1_IL(x) (((x)&0x07))
6001+
6002+/* Bit definitions and macros for ICR2 */
6003+#define MCF_INTC_ICR2_IL(x) (((x)&0x07))
6004+
6005+/* Bit definitions and macros for ICR3 */
6006+#define MCF_INTC_ICR3_IL(x) (((x)&0x07))
6007+
6008+/* Bit definitions and macros for ICR4 */
6009+#define MCF_INTC_ICR4_IL(x) (((x)&0x07))
6010+
6011+/* Bit definitions and macros for ICR5 */
6012+#define MCF_INTC_ICR5_IL(x) (((x)&0x07))
6013+
6014+/* Bit definitions and macros for ICR6 */
6015+#define MCF_INTC_ICR6_IL(x) (((x)&0x07))
6016+
6017+/* Bit definitions and macros for ICR7 */
6018+#define MCF_INTC_ICR7_IL(x) (((x)&0x07))
6019+
6020+/* Bit definitions and macros for ICR8 */
6021+#define MCF_INTC_ICR8_IL(x) (((x)&0x07))
6022+
6023+/* Bit definitions and macros for ICR9 */
6024+#define MCF_INTC_ICR9_IL(x) (((x)&0x07))
6025+
6026+/* Bit definitions and macros for ICR10 */
6027+#define MCF_INTC_ICR10_IL(x) (((x)&0x07))
6028+
6029+/* Bit definitions and macros for ICR11 */
6030+#define MCF_INTC_ICR11_IL(x) (((x)&0x07))
6031+
6032+/* Bit definitions and macros for ICR12 */
6033+#define MCF_INTC_ICR12_IL(x) (((x)&0x07))
6034+
6035+/* Bit definitions and macros for ICR13 */
6036+#define MCF_INTC_ICR13_IL(x) (((x)&0x07))
6037+
6038+/* Bit definitions and macros for ICR14 */
6039+#define MCF_INTC_ICR14_IL(x) (((x)&0x07))
6040+
6041+/* Bit definitions and macros for ICR15 */
6042+#define MCF_INTC_ICR15_IL(x) (((x)&0x07))
6043+
6044+/* Bit definitions and macros for ICR16 */
6045+#define MCF_INTC_ICR16_IL(x) (((x)&0x07))
6046+
6047+/* Bit definitions and macros for ICR17 */
6048+#define MCF_INTC_ICR17_IL(x) (((x)&0x07))
6049+
6050+/* Bit definitions and macros for ICR18 */
6051+#define MCF_INTC_ICR18_IL(x) (((x)&0x07))
6052+
6053+/* Bit definitions and macros for ICR19 */
6054+#define MCF_INTC_ICR19_IL(x) (((x)&0x07))
6055+
6056+/* Bit definitions and macros for ICR20 */
6057+#define MCF_INTC_ICR20_IL(x) (((x)&0x07))
6058+
6059+/* Bit definitions and macros for ICR21 */
6060+#define MCF_INTC_ICR21_IL(x) (((x)&0x07))
6061+
6062+/* Bit definitions and macros for ICR22 */
6063+#define MCF_INTC_ICR22_IL(x) (((x)&0x07))
6064+
6065+/* Bit definitions and macros for ICR23 */
6066+#define MCF_INTC_ICR23_IL(x) (((x)&0x07))
6067+
6068+/* Bit definitions and macros for ICR24 */
6069+#define MCF_INTC_ICR24_IL(x) (((x)&0x07))
6070+
6071+/* Bit definitions and macros for ICR25 */
6072+#define MCF_INTC_ICR25_IL(x) (((x)&0x07))
6073+
6074+/* Bit definitions and macros for ICR26 */
6075+#define MCF_INTC_ICR26_IL(x) (((x)&0x07))
6076+
6077+/* Bit definitions and macros for ICR27 */
6078+#define MCF_INTC_ICR27_IL(x) (((x)&0x07))
6079+
6080+/* Bit definitions and macros for ICR28 */
6081+#define MCF_INTC_ICR28_IL(x) (((x)&0x07))
6082+
6083+/* Bit definitions and macros for ICR29 */
6084+#define MCF_INTC_ICR29_IL(x) (((x)&0x07))
6085+
6086+/* Bit definitions and macros for ICR30 */
6087+#define MCF_INTC_ICR30_IL(x) (((x)&0x07))
6088+
6089+/* Bit definitions and macros for ICR31 */
6090+#define MCF_INTC_ICR31_IL(x) (((x)&0x07))
6091+
6092+/* Bit definitions and macros for ICR32 */
6093+#define MCF_INTC_ICR32_IL(x) (((x)&0x07))
6094+
6095+/* Bit definitions and macros for ICR33 */
6096+#define MCF_INTC_ICR33_IL(x) (((x)&0x07))
6097+
6098+/* Bit definitions and macros for ICR34 */
6099+#define MCF_INTC_ICR34_IL(x) (((x)&0x07))
6100+
6101+/* Bit definitions and macros for ICR35 */
6102+#define MCF_INTC_ICR35_IL(x) (((x)&0x07))
6103+
6104+/* Bit definitions and macros for ICR36 */
6105+#define MCF_INTC_ICR36_IL(x) (((x)&0x07))
6106+
6107+/* Bit definitions and macros for ICR37 */
6108+#define MCF_INTC_ICR37_IL(x) (((x)&0x07))
6109+
6110+/* Bit definitions and macros for ICR38 */
6111+#define MCF_INTC_ICR38_IL(x) (((x)&0x07))
6112+
6113+/* Bit definitions and macros for ICR39 */
6114+#define MCF_INTC_ICR39_IL(x) (((x)&0x07))
6115+
6116+/* Bit definitions and macros for ICR40 */
6117+#define MCF_INTC_ICR40_IL(x) (((x)&0x07))
6118+
6119+/* Bit definitions and macros for ICR41 */
6120+#define MCF_INTC_ICR41_IL(x) (((x)&0x07))
6121+
6122+/* Bit definitions and macros for ICR42 */
6123+#define MCF_INTC_ICR42_IL(x) (((x)&0x07))
6124+
6125+/* Bit definitions and macros for ICR43 */
6126+#define MCF_INTC_ICR43_IL(x) (((x)&0x07))
6127+
6128+/* Bit definitions and macros for ICR44 */
6129+#define MCF_INTC_ICR44_IL(x) (((x)&0x07))
6130+
6131+/* Bit definitions and macros for ICR45 */
6132+#define MCF_INTC_ICR45_IL(x) (((x)&0x07))
6133+
6134+/* Bit definitions and macros for ICR46 */
6135+#define MCF_INTC_ICR46_IL(x) (((x)&0x07))
6136+
6137+/* Bit definitions and macros for ICR47 */
6138+#define MCF_INTC_ICR47_IL(x) (((x)&0x07))
6139+
6140+/* Bit definitions and macros for ICR48 */
6141+#define MCF_INTC_ICR48_IL(x) (((x)&0x07))
6142+
6143+/* Bit definitions and macros for ICR49 */
6144+#define MCF_INTC_ICR49_IL(x) (((x)&0x07))
6145+
6146+/* Bit definitions and macros for ICR50 */
6147+#define MCF_INTC_ICR50_IL(x) (((x)&0x07))
6148+
6149+/* Bit definitions and macros for ICR51 */
6150+#define MCF_INTC_ICR51_IL(x) (((x)&0x07))
6151+
6152+/* Bit definitions and macros for ICR52 */
6153+#define MCF_INTC_ICR52_IL(x) (((x)&0x07))
6154+
6155+/* Bit definitions and macros for ICR53 */
6156+#define MCF_INTC_ICR53_IL(x) (((x)&0x07))
6157+
6158+/* Bit definitions and macros for ICR54 */
6159+#define MCF_INTC_ICR54_IL(x) (((x)&0x07))
6160+
6161+/* Bit definitions and macros for ICR55 */
6162+#define MCF_INTC_ICR55_IL(x) (((x)&0x07))
6163+
6164+/* Bit definitions and macros for ICR56 */
6165+#define MCF_INTC_ICR56_IL(x) (((x)&0x07))
6166+
6167+/* Bit definitions and macros for ICR57 */
6168+#define MCF_INTC_ICR57_IL(x) (((x)&0x07))
6169+
6170+/* Bit definitions and macros for ICR58 */
6171+#define MCF_INTC_ICR58_IL(x) (((x)&0x07))
6172+
6173+/* Bit definitions and macros for ICR59 */
6174+#define MCF_INTC_ICR59_IL(x) (((x)&0x07))
6175+
6176+/* Bit definitions and macros for ICR60 */
6177+#define MCF_INTC_ICR60_IL(x) (((x)&0x07))
6178+
6179+/* Bit definitions and macros for ICR61 */
6180+#define MCF_INTC_ICR61_IL(x) (((x)&0x07))
6181+
6182+/* Bit definitions and macros for ICR62 */
6183+#define MCF_INTC_ICR62_IL(x) (((x)&0x07))
6184+
6185+/* Bit definitions and macros for ICR63 */
6186+#define MCF_INTC_ICR63_IL(x) (((x)&0x07))
6187+
6188+/* Bit definitions and macros for SWIACK */
6189+#define MCF_INTC_SWIACK_VECTOR(x) (x)
6190+
6191+/* Bit definitions and macros for LIACK group */
6192+#define MCF_INTC_LIACK_VECTOR(x) (x)
6193+
6194+/* Bit definitions and macros for L1IACK */
6195+#define MCF_INTC_L1IACK_VECTOR(x) (x)
6196+
6197+/* Bit definitions and macros for L2IACK */
6198+#define MCF_INTC_L2IACK_VECTOR(x) (x)
6199+
6200+/* Bit definitions and macros for L3IACK */
6201+#define MCF_INTC_L3IACK_VECTOR(x) (x)
6202+
6203+/* Bit definitions and macros for L4IACK */
6204+#define MCF_INTC_L4IACK_VECTOR(x) (x)
6205+
6206+/* Bit definitions and macros for L5IACK */
6207+#define MCF_INTC_L5IACK_VECTOR(x) (x)
6208+
6209+/* Bit definitions and macros for L6IACK */
6210+#define MCF_INTC_L6IACK_VECTOR(x) (x)
6211+
6212+/* Bit definitions and macros for L7IACK */
6213+#define MCF_INTC_L7IACK_VECTOR(x) (x)
6214+
6215+/********************************************************************/
6216+
6217+#endif /* __MCF5441X_INTC_H__ */
6218--- /dev/null
6219+++ b/arch/m68k/include/asm/mcf5441x_pm.h
6220@@ -0,0 +1,33 @@
6221+/*
6222+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved.
6223+ *
6224+ * This program is free software; you can redistribute it and/or modify it
6225+ * under the terms of the GNU General Public License as published by the
6226+ * Free Software Foundation; either version 2 of the License, or (at your
6227+ * option) any later version.
6228+ */
6229+
6230+#ifndef __MCF5441X_PM_H__
6231+#define __MCF5441X_PM_H__
6232+
6233+/*********************************************************************
6234+*
6235+* Power Management Module Register Definition
6236+*
6237+*********************************************************************/
6238+
6239+#define MCF_PM_WCR MCF_REG08(0xFC040013)
6240+#define MCF_PM_PPMSR0 MCF_REG08(0xFC04002C)
6241+#define MCF_PM_PPMCR0 MCF_REG08(0xFC04002D)
6242+#define MCF_PM_PPMSR1 MCF_REG08(0xFC04002E)
6243+#define MCF_PM_PPMCR1 MCF_REG08(0xFC04002F)
6244+#define MCF_PM_PPMHR0 MCF_REG32(0xFC040030)
6245+#define MCF_PM_PPMLR0 MCF_REG32(0xFC040034)
6246+#define MCF_PM_PPMHR1 MCF_REG32(0xFC040038)
6247+#define MCF_PM_PPMLR1 MCF_REG32(0xFC04003C)
6248+#define MCF_PM_LPCR MCF_REG08(0xEC090007)
6249+#define MCF_PM_MISCCR MCF_REG16(0xEC09000E)
6250+#define MCF_PM_CDHR MCF_REG16(0xEC090010)
6251+#define MCF_PM_CDLR MCF_REG16(0xEC090012)
6252+
6253+#endif
6254--- /dev/null
6255+++ b/arch/m68k/include/asm/mcf5441x_rtc.h
6256@@ -0,0 +1,127 @@
6257+/*
6258+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved.
6259+ *
6260+ * Lanttor.Guo@freescale.com
6261+ *
6262+ * Description:
6263+ * This file is the register definition of m5441x RTC module
6264+ *
6265+ * This is free software; you can redistribute it and/or modify
6266+ * it under the terms of the GNU General Public License as published by
6267+ * the Free Software Foundation; either version 2 of the License, or
6268+ * (at your option) any later version.
6269+ *
6270+ */
6271+
6272+#ifndef __MCF5441X_RTC_H__
6273+#define __MCF5441X_RTC_H__
6274+
6275+/*********************************************************************
6276+*
6277+* Real-time Clock (RTC)
6278+*
6279+*********************************************************************/
6280+#ifndef MCFINT_VECBASE
6281+#define MCFINT_VECBASE 64
6282+#endif
6283+
6284+#define MCFSIM_ICR_RTC (0xFC050040 + 26)
6285+
6286+/* Register read/write macros */
6287+#define MCF_RTC_YEARMON 0xFC0A8000
6288+#define MCF_RTC_DAYS 0xFC0A8002
6289+#define MCF_RTC_HOURMIN 0xFC0A8004
6290+#define MCF_RTC_SECONDS 0xFC0A8006
6291+#define MCF_RTC_ALRM_YRMON 0xFC0A8008
6292+#define MCF_RTC_ALRM_DAYS 0xFC0A800A
6293+#define MCF_RTC_ALRM_HM 0xFC0A800C
6294+#define MCF_RTC_ALRM_SEC 0xFC0A800E
6295+#define MCF_RTC_CR 0xFC0A8010
6296+#define MCF_RTC_SR 0xFC0A8012
6297+#define MCF_RTC_ISR 0xFC0A8014
6298+#define MCF_RTC_IER 0xFC0A8016
6299+#define MCF_RTC_COUNT_DN 0xFC0A8018
6300+#define MCF_RTC_CFG_DATA 0xFC0A8020
6301+#define MCF_RTC_DST_HOUR 0xFC0A8022
6302+#define MCF_RTC_DST_MON 0xFC0A8024
6303+#define MCF_RTC_DST_DAY 0xFC0A8026
6304+#define MCF_RTC_COMPEN 0xFC0A8028
6305+#define MCF_RTC_UP_CNTRH 0xFC0A8032
6306+#define MCF_RTC_UP_CNTRL 0xFC0A8034
6307+
6308+#define MCF_RTC_STANDBY_RAM_START 0xFC0A8040
6309+#define MCF_RTC_STANDBY_RAM_END 0xFC0A8040
6310+
6311+/* Bit definitions and macros for MCF_RTC_YEARMON */
6312+
6313+#define MCF_RTC_YEARMON_YEAR_RD(x) (((x) & 0xFF00) >> 8)
6314+#define MCF_RTC_YEARMON_MON_RD(x) ((x) & 0x00FF)
6315+#define MCF_RTC_YEARMON_YEAR_SET(x) (((x) & 0x00FF) << 8)
6316+#define MCF_RTC_YEARMON_MON_SET(x) ((x) & 0x000F)
6317+
6318+/* Bit definitions and macros for MCF_RTC_DAYS */
6319+#define MCF_RTC_DAYS_DAYWEEK_RD(x) (((x) & 0xFF00) >> 8)
6320+#define MCF_RTC_DAYS_DAY_RD(x) ((x) & 0x00FF)
6321+#define MCF_RTC_DAYS_DAYWEEK_SET(x) (((x) & 0x0007) << 8)
6322+#define MCF_RTC_DAYS_DAY_SET(x) ((x) & 0x001F)
6323+
6324+/* Bit definitions and macros for MCF_RTC_HOURMIN */
6325+#define MCF_RTC_HOURMIN_HOURS_RD(x) (((x) & 0xFF00) >> 8)
6326+#define MCF_RTC_HOURMIN_MINUTES_RD(x) ((x) & 0x00FF)
6327+#define MCF_RTC_HOURMIN_HOURS_SET(x) (((x) & 0x001F) << 8)
6328+#define MCF_RTC_HOURMIN_MINUTES_SET(x) ((x) & 0x003F)
6329+
6330+/* Bit definitions and macros for MCF_RTC_SECONDS */
6331+#define MCF_RTC_SECONDS_SECONDS_RD(x) ((x) & 0x00FF)
6332+#define MCF_RTC_SECONDS_SECONDS_SET(x) (((x) & 0x003F) << 0)
6333+
6334+/* Bit definitions and macros for MCF_RTC_CR */
6335+#define MCF_RTC_CR_WP 0x0002
6336+
6337+/* Bit definitions and macros for MCF_RTC_ISR */
6338+#define MCF_RTC_ISR_STW 0x0002
6339+#define MCF_RTC_ISR_ALM 0x0004
6340+#define MCF_RTC_ISR_DAY 0x0008
6341+#define MCF_RTC_ISR_HR 0x0010
6342+#define MCF_RTC_ISR_MIN 0x0020
6343+#define MCF_RTC_ISR_1HZ 0x0040
6344+#define MCF_RTC_ISR_2HZ 0x0080
6345+#define MCF_RTC_ISR_SAM0 0x0100
6346+#define MCF_RTC_ISR_SAM1 0x0200
6347+#define MCF_RTC_ISR_SAM2 0x0400
6348+#define MCF_RTC_ISR_SAM3 0x0800
6349+#define MCF_RTC_ISR_SAM4 0x1000
6350+#define MCF_RTC_ISR_SAM5 0x2000
6351+#define MCF_RTC_ISR_SAM6 0x4000
6352+#define MCF_RTC_ISR_SAM7 0x8000
6353+
6354+/* Bit definitions and macros for MCF_RTC_IER */
6355+#define MCF_RTC_IER_STW 0x0002
6356+#define MCF_RTC_IER_ALM 0x0004
6357+#define MCF_RTC_IER_DAY 0x0008
6358+#define MCF_RTC_IER_HR 0x0010
6359+#define MCF_RTC_IER_MIN 0x0020
6360+#define MCF_RTC_IER_1HZ 0x0040
6361+#define MCF_RTC_IER_2HZ 0x0080
6362+#define MCF_RTC_IER_SAM0 0x0100
6363+#define MCF_RTC_IER_SAM1 0x0200
6364+#define MCF_RTC_IER_SAM2 0x0400
6365+#define MCF_RTC_IER_SAM3 0x0800
6366+#define MCF_RTC_IER_SAM4 0x1000
6367+#define MCF_RTC_IER_SAM5 0x2000
6368+#define MCF_RTC_IER_SAM6 0x4000
6369+#define MCF_RTC_IER_SAM7 0x8000
6370+
6371+/* Bit definitions and macros for MCF_RTC_CFG_DATA */
6372+#define MCF_RTC_CFG_DATA_OSCBYP 0x0010
6373+#define MCF_RTC_CFG_DATA_OSCEN 0x0008
6374+
6375+/* Bit definitions and macros for MCF_RTC_SR */
6376+#define MCF_RTC_SR_INVALID 0x0001
6377+#define MCF_RTC_SR_WPE 0x0010
6378+
6379+/* Interrupt source */
6380+#define MCFINT_RTC (64+64+26)
6381+/*********************************************************************/
6382+
6383+#endif
6384--- /dev/null
6385+++ b/arch/m68k/include/asm/mcf5441x_scm.h
6386@@ -0,0 +1,33 @@
6387+/*
6388+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved.
6389+ *
6390+ * This is free software; you can redistribute it and/or modify
6391+ * it under the terms of the GNU General Public License as published by
6392+ * the Free Software Foundation; either version 2 of the License, or
6393+ * (at your option) any later version.
6394+ *
6395+ */
6396+#ifndef __MCF5441X_SCM_H__
6397+#define __MCF5441X_SCM_H__
6398+
6399+/*********************************************************************
6400+*
6401+* System Control Module (SCM)
6402+*
6403+*********************************************************************/
6404+
6405+/* Core Watchdog(CW) Register read/write macros */
6406+#define MCF_SCM_CWCR MCF_REG16(0xFC040016) /* CW Control Register */
6407+#define MCF_SCM_CWSR MCF_REG08(0xFC04001B) /* CW Service Register */
6408+
6409+/* CW Bit definitions and macros for SWCR */
6410+#define MCF_SCM_CWCR_RO (0x8000) /* CWCR is read-only */
6411+#define MCF_SCM_CWCR_CWRWR (0x0100) /* CW run when halted */
6412+#define MCF_SCM_CWCR_CWE (0x0080) /* CW timer enable */
6413+#define MCF_SCM_CWCR_CWRI(x) (((x) & 0x03) << 5) /* CW reset/interrupt */
6414+#define MCF_SCM_CWCR_CWT(x) (((x) & 0x1F) << 0) /* CW time-out period */
6415+
6416+#define MCF_GPT_MAX_TIMEOUT 17
6417+/********************************************************************/
6418+
6419+#endif /* __MCF5441X_SCM_H__ */
6420--- /dev/null
6421+++ b/arch/m68k/include/asm/mcf5441x_sdramc.h
6422@@ -0,0 +1,141 @@
6423+/*
6424+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved.
6425+ *
6426+ * This program is free software; you can redistribute it and/or modify it
6427+ * under the terms of the GNU General Public License as published by the
6428+ * Free Software Foundation; either version 2 of the License, or (at your
6429+ * option) any later version.
6430+ */
6431+
6432+#ifndef __MCF5441X_SDRAMC_H__
6433+#define __MCF5441X_SDRAMC_H__
6434+
6435+/*********************************************************************
6436+*
6437+* SDRAM Controller (SDRAMC)
6438+*
6439+*********************************************************************/
6440+
6441+/* Register read/write macros */
6442+/* SDRAM Mode/Extended Mode Register */
6443+#define MCF_SDRAMC_SDMR (*(vuint32 *)(0xFC0B8000))
6444+/* SDRAM Control Register */
6445+#define MCF_SDRAMC_SDCR (*(vuint32 *)(0xFC0B8004))
6446+/* SDRAM Configuration Register 1 */
6447+#define MCF_SDRAMC_SDCFG1 (*(vuint32 *)(0xFC0B8008))
6448+/* SDRAM Configuration Register 2 */
6449+#define MCF_SDRAMC_SDCFG2 (*(vuint32 *)(0xFC0B800C))
6450+/* SDRAM Chip Select Register */
6451+#define MCF_SDRAMC_SDCS0 (*(vuint32 *)(0xFC0B8110))
6452+/* SDRAM Chip Select Register */
6453+#define MCF_SDRAMC_SDCS1 (*(vuint32 *)(0xFC0B8114))
6454+
6455+/* Parameterized register read/write macros for multiple registers */
6456+/* SDRAM Chip Select Register */
6457+#define MCF_SDRAMC_SDCS(x) (*(vuint32 *)(0xFC0B8110+((x)*0x004)))
6458+
6459+/* Bit definitions and macros for SDMR */
6460+#define MCF_SDRAMC_SDMR_DDR2_AD(x) (((x)&0x00003FFF)) /* Address for DDR2 */
6461+#define MCF_SDRAMC_SDMR_CMD (0x00010000) /* Command */
6462+#define MCF_SDRAMC_SDMR_AD(x) (((x)&0x00000FFF)<<18) /* Address */
6463+#define MCF_SDRAMC_SDMR_BK(x) (((x)&0x00000003)<<30) /* Bank Address */
6464+#define MCF_SDRAMC_SDMR_BK_LMR (0x00000000)
6465+#define MCF_SDRAMC_SDMR_BK_LEMR (0x40000000)
6466+
6467+/* Bit definitions and macros for SDCR */
6468+#define MCF_SDRAMC_SDCR_DPD (0x00000001) /* Deep Power-Down Mode */
6469+#define MCF_SDRAMC_SDCR_IPALL (0x00000002) /* Initiate Precharge All */
6470+#define MCF_SDRAMC_SDCR_IREF (0x00000004) /* Initiate Refresh */
6471+#define MCF_SDRAMC_SDCR_DQS_OE(x) (((x)&0x00000003)<<10) /* DQS Output Enable */
6472+#define MCF_SDRAMC_SDCR_MEM_PS (0x00002000) /* Data Port Size */
6473+/* Periodic Refresh Counter */
6474+#define MCF_SDRAMC_SDCR_REF_CNT(x) (((x)&0x0000003F)<<16)
6475+#define MCF_SDRAMC_SDCR_OE_RULE (0x00400000) /* Drive Rule Selection */
6476+/* Internal Address Mux Select */
6477+#define MCF_SDRAMC_SDCR_ADDR_MUX(x) (((x)&0x00000003)<<24)
6478+#define MCF_SDRAMC_SDCR_DDR2_MODE (0x08000000) /* DDR2 Mode Select */
6479+#define MCF_SDRAMC_SDCR_REF_EN (0x10000000) /* Refresh Enable */
6480+#define MCF_SDRAMC_SDCR_DDR_MODE (0x20000000) /* DDR Mode Select */
6481+/* Clock Enable */
6482+#define MCF_SDRAMC_SDCR_CKE (0x40000000)
6483+/* SDRAM Mode Register Programming Enable */
6484+#define MCF_SDRAMC_SDCR_MODE_EN (0x80000000)
6485+#define MCF_SDRAMC_SDCR_DQS_OE_BOTH (0x00000C00)
6486+
6487+/* Bit definitions and macros for SDCFG1 */
6488+/* Write Latency */
6489+#define MCF_SDRAMC_SDCFG1_WT_LAT(x) (((x)&0x00000007)<<4)
6490+/* Refresh to active delay */
6491+#define MCF_SDRAMC_SDCFG1_REF2ACT(x) (((x)&0x0000000F)<<8)
6492+/* Precharge to active delay */
6493+#define MCF_SDRAMC_SDCFG1_PRE2ACT(x) (((x)&0x00000007)<<12)
6494+/* Active to read/write delay */
6495+#define MCF_SDRAMC_SDCFG1_ACT2RW(x) (((x)&0x00000007)<<16)
6496+/* Read CAS Latency */
6497+#define MCF_SDRAMC_SDCFG1_RD_LAT(x) (((x)&0x0000000F)<<20)
6498+/* Single write to read/write/precharge delay */
6499+#define MCF_SDRAMC_SDCFG1_SWT2RWP(x) (((x)&0x00000007)<<24)
6500+/* Single read to read/write/precharge delay */
6501+#define MCF_SDRAMC_SDCFG1_SRD2RWP(x) (((x)&0x0000000F)<<28)
6502+
6503+/* Bit definitions and macros for SDCFG2 */
6504+/* Burst Length */
6505+#define MCF_SDRAMC_SDCFG2_BL(x) (((x)&0x0000000F)<<16)
6506+/* Burst read to write delay */
6507+#define MCF_SDRAMC_SDCFG2_BRD2W(x) (((x)&0x0000000F)<<20)
6508+/* Burst write to read/write/precharge delay */
6509+#define MCF_SDRAMC_SDCFG2_BWT2RWP(x) (((x)&0x0000000F)<<24)
6510+/* Burst read to read/precharge delay */
6511+#define MCF_SDRAMC_SDCFG2_BRD2RP(x) (((x)&0x0000000F)<<28)
6512+
6513+/* Bit definitions and macros for SDCS group */
6514+/* Chip-Select Size */
6515+#define MCF_SDRAMC_SDCS_CSSZ(x) (((x)&0x0000001F))
6516+/* Chip-Select Base Address */
6517+#define MCF_SDRAMC_SDCS_CSBA(x) (((x)&0x00000FFF)<<20)
6518+#define MCF_SDRAMC_SDCS_BA(x) ((x)&0xFFF00000)
6519+#define MCF_SDRAMC_SDCS_CSSZ_DISABLE (0x00000000)
6520+#define MCF_SDRAMC_SDCS_CSSZ_1MBYTE (0x00000013)
6521+#define MCF_SDRAMC_SDCS_CSSZ_2MBYTE (0x00000014)
6522+#define MCF_SDRAMC_SDCS_CSSZ_4MBYTE (0x00000015)
6523+#define MCF_SDRAMC_SDCS_CSSZ_8MBYTE (0x00000016)
6524+#define MCF_SDRAMC_SDCS_CSSZ_16MBYTE (0x00000017)
6525+#define MCF_SDRAMC_SDCS_CSSZ_32MBYTE (0x00000018)
6526+#define MCF_SDRAMC_SDCS_CSSZ_64MBYTE (0x00000019)
6527+#define MCF_SDRAMC_SDCS_CSSZ_128MBYTE (0x0000001A)
6528+#define MCF_SDRAMC_SDCS_CSSZ_256MBYTE (0x0000001B)
6529+#define MCF_SDRAMC_SDCS_CSSZ_512MBYTE (0x0000001C)
6530+#define MCF_SDRAMC_SDCS_CSSZ_1GBYTE (0x0000001D)
6531+#define MCF_SDRAMC_SDCS_CSSZ_2GBYTE (0x0000001E)
6532+#define MCF_SDRAMC_SDCS_CSSZ_4GBYTE (0x0000001F)
6533+
6534+/* Bit definitions and macros for SDCS0 */
6535+/* Chip-Select Size */
6536+#define MCF_SDRAMC_SDCS0_CSSZ(x) (((x)&0x0000001F))
6537+/* Chip-Select Base Address */
6538+#define MCF_SDRAMC_SDCS0_CSBA(x) (((x)&0x00000FFF)<<20)
6539+#define MCF_SDRAMC_SDCS0_BA(x) ((x)&0xFFF00000)
6540+#define MCF_SDRAMC_SDCS0_CSSZ_DISABLE (0x00000000)
6541+#define MCF_SDRAMC_SDCS0_CSSZ_1MBYTE (0x00000013)
6542+#define MCF_SDRAMC_SDCS0_CSSZ_2MBYTE (0x00000014)
6543+#define MCF_SDRAMC_SDCS0_CSSZ_4MBYTE (0x00000015)
6544+#define MCF_SDRAMC_SDCS0_CSSZ_8MBYTE (0x00000016)
6545+#define MCF_SDRAMC_SDCS0_CSSZ_16MBYTE (0x00000017)
6546+#define MCF_SDRAMC_SDCS0_CSSZ_32MBYTE (0x00000018)
6547+#define MCF_SDRAMC_SDCS0_CSSZ_64MBYTE (0x00000019)
6548+#define MCF_SDRAMC_SDCS0_CSSZ_128MBYTE (0x0000001A)
6549+#define MCF_SDRAMC_SDCS0_CSSZ_256MBYTE (0x0000001B)
6550+#define MCF_SDRAMC_SDCS0_CSSZ_512MBYTE (0x0000001C)
6551+#define MCF_SDRAMC_SDCS0_CSSZ_1GBYTE (0x0000001D)
6552+#define MCF_SDRAMC_SDCS0_CSSZ_2GBYTE (0x0000001E)
6553+#define MCF_SDRAMC_SDCS0_CSSZ_4GBYTE (0x0000001F)
6554+
6555+/* Bit definitions and macros for SDCS1 */
6556+/* Chip-Select Size */
6557+#define MCF_SDRAMC_SDCS1_CSSZ(x) (((x)&0x0000001F))
6558+/* Chip-Select Base Address */
6559+#define MCF_SDRAMC_SDCS1_CSBA(x) (((x)&0x00000FFF)<<20)
6560+
6561+/********************************************************************/
6562+
6563+#endif /* __MCF5441X_SDRAMC_H__ */
6564--- /dev/null
6565+++ b/arch/m68k/include/asm/mcf5441x_xbs.h
6566@@ -0,0 +1,77 @@
6567+/*
6568+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved.
6569+ *
6570+ * This program is free software; you can redistribute it and/or modify it
6571+ * under the terms of the GNU General Public License as published by the
6572+ * Free Software Foundation; either version 2 of the License, or (at your
6573+ * option) any later version.
6574+ */
6575+
6576+#ifndef __MCF5441X_XBS_H__
6577+#define __MCF5441X_XBS_H__
6578+
6579+/*
6580+ * Crossbar Switch (XBS)
6581+ */
6582+
6583+/* Register read/write macros */
6584+#define MCF_XBS_PRS0 MCF_REG32(0xFC004000) /* DRAM */
6585+#define MCF_XBS_CRS0 MCF_REG32(0xFC004010)
6586+#define MCF_XBS_PRS1 MCF_REG32(0xFC004100) /* Flexbus Priority */
6587+#define MCF_XBS_CRS1 MCF_REG32(0xFC004110) /* Flexbus Control */
6588+#define MCF_XBS_PRS2 MCF_REG32(0xFC004200) /* SDRam Priority */
6589+#define MCF_XBS_CRS2 MCF_REG32(0xFC004210) /* SDRam Control */
6590+#define MCF_XBS_PRS3 MCF_REG32(0xFC004300) /* ATA Priority */
6591+#define MCF_XBS_CRS4 MCF_REG32(0xFC004410) /* SRAM Control */
6592+#define MCF_XBS_PRS6 MCF_REG32(0xFC004600) /* Slave6 Priority */
6593+#define MCF_XBS_CRS6 MCF_REG32(0xFC004610) /* Slave6 Control */
6594+#define MCF_XBS_PRS7 MCF_REG32(0xFC004700) /* Other Priority */
6595+#define MCF_XBS_CRS7 MCF_REG32(0xFC004710) /* Other Control */
6596+
6597+/* Priorities */
6598+#define MCF_XBS_PRI_1 0 /* Level 1 (highest) */
6599+#define MCF_XBS_PRI_2 1 /* Level 2 */
6600+#define MCF_XBS_PRI_3 2 /* Level 3 */
6601+#define MCF_XBS_PRI_4 3 /* Level 4 */
6602+#define MCF_XBS_PRI_5 4 /* Level 5 */
6603+#define MCF_XBS_PRI_6 5 /* Level 6 */
6604+#define MCF_XBS_PRI_7 6 /* Level 7 (lowest) */
6605+#define MCF_XBS_PRI_MASK 7 /* Mask (Not a valid level) */
6606+
6607+/* Priority Register (PRSn) Defs */
6608+#define MCF_XBS_PRS_MACRO(m, p) ((p)<<((m)<<2))
6609+#define MCF_XBS_PRS_M0(p) MCF_XBS_PRS_MACRO(0, p) /* Coldfire Core */
6610+#define MCF_XBS_PRS_M1(p) MCF_XBS_PRS_MACRO(1, p) /* eDMA */
6611+#define MCF_XBS_PRS_M2(p) MCF_XBS_PRS_MACRO(2, p) /* FEC0 */
6612+#define MCF_XBS_PRS_M3(p) MCF_XBS_PRS_MACRO(3, p) /* FEC1 */
6613+#define MCF_XBS_PRS_M4(p) MCF_XBS_PRS_MACRO(4, p) /* Master 4 */
6614+#define MCF_XBS_PRS_M5(p) MCF_XBS_PRS_MACRO(5, p) /* PCI */
6615+#define MCF_XBS_PRS_M6(p) MCF_XBS_PRS_MACRO(6, p) /* USB OTG */
6616+#define MCF_XBS_PRS_M7(p) MCF_XBS_PRS_MACRO(7, p) /* Serial Boot */
6617+
6618+/* Control Register (CRSn) Defs */
6619+#define MCF_XBS_CRS_RO 0x80000000 /* Read Only */
6620+#define MCF_XBS_CRS_ARB 0x00000100 /* Arbitration Mode */
6621+#define MCF_XBS_CRS_PCTL 0x00000030 /* Parking Control */
6622+#define MCF_XBS_CRS_PARK 0x00000007 /* Park Location */
6623+
6624+/* MCF_XBS_CRS_ARB Defs */
6625+#define MCF_ABS_CRS_ARB_FIXED 0x00000000 /* Fixed priority */
6626+#define MCF_ABS_CRS_ARB_ROUND 0x00000100 /* Round Robin priority */
6627+
6628+/* MCF_XBS_CRS_PCTL Defs */
6629+#define MCF_ABS_CRS_PCTL_PARK 0x00000000 /* Park on the defined PARK */
6630+#define MCF_ABS_CRS_PCTL_LAST 0x00000010 /* Park on the last master */
6631+#define MCF_ABS_CRS_PCTL_NONE 0x00000020 /* Don't park */
6632+
6633+/* MCF_XBS_CRS_PARK Defs */
6634+#define MCF_ABS_CRS_PARK_M0 0x00000000 /* Park on Coldfire Core */
6635+#define MCF_ABS_CRS_PARK_M1 0x00000001 /* Park on eDMA */
6636+#define MCF_ABS_CRS_PARK_M2 0x00000002 /* Park on FEC0 */
6637+#define MCF_ABS_CRS_PARK_M3 0x00000003 /* Park on FEC1 */
6638+#define MCF_ABS_CRS_PARK_M4 0x00000004 /* Park on Reserved */
6639+#define MCF_ABS_CRS_PARK_M5 0x00000005 /* Park on PCI */
6640+#define MCF_ABS_CRS_PARK_M6 0x00000006 /* Park on USB OTG */
6641+#define MCF_ABS_CRS_PARK_M7 0x00000007 /* Park on Serial Boot */
6642+
6643+#endif /* __MCF5441X_XBS_H__ */
6644

Archive Download this file



interactive