diff options
Diffstat (limited to 'target/linux/coldfire/patches/004-MCF54418-support-in-Linux-2.6.38.patch')
-rw-r--r-- | target/linux/coldfire/patches/004-MCF54418-support-in-Linux-2.6.38.patch | 6643 |
1 files changed, 0 insertions, 6643 deletions
diff --git a/target/linux/coldfire/patches/004-MCF54418-support-in-Linux-2.6.38.patch b/target/linux/coldfire/patches/004-MCF54418-support-in-Linux-2.6.38.patch deleted file mode 100644 index 87e03ef54c..0000000000 --- a/target/linux/coldfire/patches/004-MCF54418-support-in-Linux-2.6.38.patch +++ /dev/null @@ -1,6643 +0,0 @@ -From b23f9dc392de5be8a2bc17342d6aee49208a80d8 Mon Sep 17 00:00:00 2001 -From: Alison Wang <b18965@freescale.com> -Date: Thu, 4 Aug 2011 09:59:39 +0800 -Subject: [PATCH 04/52] MCF54418 support in Linux 2.6.38 - -Add MCF54418 support in Linux 2.6.38. - -Signed-off-by: Alison Wang <b18965@freescale.com> ---- - arch/m68k/coldfire/m5441x/Makefile | 38 + - arch/m68k/coldfire/m5441x/config.c | 604 +++++++++++++ - arch/m68k/coldfire/m5441x/devices.c | 787 +++++++++++++++++ - arch/m68k/configs/m54418twr_defconfig | 1244 +++++++++++++++++++++++++++ - arch/m68k/include/asm/cf_5441x_cacheflush.h | 527 ++++++++++++ - arch/m68k/include/asm/mcf5441x_ccm.h | 157 ++++ - arch/m68k/include/asm/mcf5441x_clock.h | 22 + - arch/m68k/include/asm/mcf5441x_dspi.h | 671 +++++++++++++++ - arch/m68k/include/asm/mcf5441x_dtim.h | 95 ++ - arch/m68k/include/asm/mcf5441x_edma.h | 303 +++++++ - arch/m68k/include/asm/mcf5441x_eport.h | 94 ++ - arch/m68k/include/asm/mcf5441x_fbcs.h | 204 +++++ - arch/m68k/include/asm/mcf5441x_flexcan.h | 139 +++ - arch/m68k/include/asm/mcf5441x_gpio.h | 509 +++++++++++ - arch/m68k/include/asm/mcf5441x_intc.h | 727 ++++++++++++++++ - arch/m68k/include/asm/mcf5441x_pm.h | 33 + - arch/m68k/include/asm/mcf5441x_rtc.h | 127 +++ - arch/m68k/include/asm/mcf5441x_scm.h | 33 + - arch/m68k/include/asm/mcf5441x_sdramc.h | 141 +++ - arch/m68k/include/asm/mcf5441x_xbs.h | 77 ++ - 20 files changed, 6532 insertions(+), 0 deletions(-) - create mode 100644 arch/m68k/coldfire/m5441x/Makefile - create mode 100644 arch/m68k/coldfire/m5441x/config.c - create mode 100644 arch/m68k/coldfire/m5441x/devices.c - create mode 100644 arch/m68k/configs/m54418twr_defconfig - create mode 100644 arch/m68k/include/asm/cf_5441x_cacheflush.h - create mode 100644 arch/m68k/include/asm/mcf5441x_ccm.h - create mode 100644 arch/m68k/include/asm/mcf5441x_clock.h - create mode 100644 arch/m68k/include/asm/mcf5441x_dspi.h - create mode 100644 arch/m68k/include/asm/mcf5441x_dtim.h - create mode 100644 arch/m68k/include/asm/mcf5441x_edma.h - create mode 100644 arch/m68k/include/asm/mcf5441x_eport.h - create mode 100644 arch/m68k/include/asm/mcf5441x_fbcs.h - create mode 100644 arch/m68k/include/asm/mcf5441x_flexcan.h - create mode 100644 arch/m68k/include/asm/mcf5441x_gpio.h - create mode 100644 arch/m68k/include/asm/mcf5441x_intc.h - create mode 100644 arch/m68k/include/asm/mcf5441x_pm.h - create mode 100644 arch/m68k/include/asm/mcf5441x_rtc.h - create mode 100644 arch/m68k/include/asm/mcf5441x_scm.h - create mode 100644 arch/m68k/include/asm/mcf5441x_sdramc.h - create mode 100644 arch/m68k/include/asm/mcf5441x_xbs.h - ---- /dev/null -+++ b/arch/m68k/coldfire/m5441x/Makefile -@@ -0,0 +1,38 @@ -+# -+# Makefile for Linux arch/m68k/coldfire/m5441x source directory -+# -+ -+obj-$(CONFIG_M5441X) += devices.o config.o -+ -+ifneq ($(strip $(CONFIG_USB) $(CONFIG_USB_GADGET_FSL_USB2)),) -+ obj-y += usb.o -+endif -+ifneq ($(strip $(CONFIG_USB_GADGET_FSL_USB2) $(CONFIG_USB_EHCI_HCD)),) -+ifeq ($(strip $(CONFIG_USB_M5441X_FSLS)),) -+ obj-y += usb_dr.o -+endif -+endif -+ -+#ifneq ($(strip $(CONFIG_USB) $(CONFIG_USB_GADGET_FSL_USB2)),) -+ifneq ($(strip $(CONFIG_USB_OTG) $(CONFIG_USB_M5441X_MAX3353_FSLS)),) -+ obj-y += xcvr.o -+endif -+ifneq ($(strip $(CONFIG_USB_M5441X_MAX3353_FSLS)), ) -+ obj-y += max3353_xc.o -+ifneq ($(strip $(CONFIG_USB_OTG)),) -+ obj-m += max3353_otg.o -+endif -+endif -+ -+# USB Host controller support -+ifneq ($(strip $(CONFIG_USB_M5441X_H1)),) -+ obj-y += usb_host.o xcvr_host.o -+endif -+ -+ifneq ($(CONFIG_FEC),) -+obj-y += fec.o -+endif -+ -+ifneq ($(CONFIG_MODELO_SWITCH),) -+obj-y += l2switch.o -+endif ---- /dev/null -+++ b/arch/m68k/coldfire/m5441x/config.c -@@ -0,0 +1,604 @@ -+/* -+ * linux/arch/m68k/coldfire/m5441x/config.c -+ * -+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ */ -+ -+#include <linux/module.h> -+#include <linux/init.h> -+#include <linux/string.h> -+#include <linux/kernel.h> -+#include <linux/console.h> -+#include <linux/bootmem.h> -+#include <linux/mm.h> -+#include <linux/sched.h> -+#include <linux/clockchips.h> -+#include <linux/delay.h> -+#include <asm/bootinfo.h> -+#include <asm/machdep.h> -+#include <asm/coldfire.h> -+#include <asm/cfcache.h> -+#include <asm/cacheflush.h> -+#include <asm/io.h> -+#include <asm/cfmmu.h> -+#include <asm/setup.h> -+#include <asm/irq.h> -+#include <asm/traps.h> -+#include <asm/movs.h> -+#include <asm/movs.h> -+#include <asm/page.h> -+#include <asm/pgalloc.h> -+#include <asm/cf-sram.h> -+ -+#include <asm/mcfsim.h> -+ -+#define UBOOT_EXTRA_CLOCKS -+#include <asm/bootinfo.h> -+ -+#include <asm/mcf5441x_intc.h> -+#include <asm/mcf5441x_sdramc.h> -+#include <asm/mcf5441x_fbcs.h> -+#include <asm/mcf5441x_dtim.h> -+#include <asm/mcf5441x_xbs.h> -+ -+extern int get_irq_list(struct seq_file *p, void *v); -+extern char _text, _end; -+extern char _etext, _edata, __init_begin, __init_end; -+extern struct console mcfrs_console; -+extern char m68k_command_line[CL_SIZE]; -+extern unsigned long availmem; -+extern unsigned long shadow_cacr; -+EXPORT_SYMBOL(shadow_cacr); -+extern struct mem_info m68k_ramdisk; -+ -+static int irq_enable[NR_IRQS]; -+unsigned long num_pages; -+ -+/* cf dma physical addresses */ -+unsigned long cf_dma_base; -+EXPORT_SYMBOL(cf_dma_base); -+unsigned long cf_dma_end; -+EXPORT_SYMBOL(cf_dma_end); -+unsigned long cf_dma_size; -+EXPORT_SYMBOL(cf_dma_size); -+ -+/* ethernet mac addresses from uboot */ -+unsigned char uboot_enet0[6]; -+unsigned char uboot_enet1[6]; -+ -+void coldfire_sort_memrec(void) -+{ -+ int i, j; -+ -+ /* Sort the m68k_memory records by address */ -+ for (i = 0; i < m68k_num_memory; ++i) { -+ for (j = i + 1; j < m68k_num_memory; ++j) { -+ if (m68k_memory[i].addr > m68k_memory[j].addr) { -+ struct mem_info tmp; -+ tmp = m68k_memory[i]; -+ m68k_memory[i] = m68k_memory[j]; -+ m68k_memory[j] = tmp; -+ } -+ } -+ } -+ /* Trim off discontiguous bits */ -+ for (i = 1; i < m68k_num_memory; ++i) { -+ if ((m68k_memory[i-1].addr + m68k_memory[i-1].size) != -+ m68k_memory[i].addr) { -+ printk(KERN_DEBUG "m68k_parse_bootinfo: " -+ "addr gap between 0x%lx & 0x%lx\n", -+ m68k_memory[i-1].addr+m68k_memory[i-1].size, -+ m68k_memory[i].addr); -+ m68k_num_memory = i; -+ break; -+ } -+ } -+} -+ -+/* -+ * UBoot Handler -+ */ -+int __init uboot_commandline(char *bootargs) -+{ -+ int len = 0, cmd_line_len; -+ static struct uboot_record uboot_info; -+ u32 offset = PAGE_OFFSET_RAW - PHYS_OFFSET; -+ -+ extern unsigned long uboot_info_stk; -+ -+ /* validate address */ -+ if ((uboot_info_stk < PAGE_OFFSET_RAW) || -+ (uboot_info_stk >= (PAGE_OFFSET_RAW + CONFIG_SDRAM_SIZE))) -+ return 0; -+ -+ /* Add offset to get post-remapped kernel memory location */ -+ uboot_info.bdi = (struct bd_info *) -+ ((*(u32 *)(uboot_info_stk)) + offset); -+ uboot_info.initrd_start = (*(u32 *)(uboot_info_stk+4)) + offset; -+ uboot_info.initrd_end = (*(u32 *)(uboot_info_stk+8)) + offset; -+ uboot_info.cmd_line_start = (*(u32 *)(uboot_info_stk+12)) + offset; -+ uboot_info.cmd_line_stop = (*(u32 *)(uboot_info_stk+16)) + offset; -+ -+#if defined(CONFIG_BLK_DEV_INITRD) -+ m68k_ramdisk.addr = uboot_info.initrd_start; -+ m68k_ramdisk.size = (uboot_info.initrd_end - uboot_info.initrd_start) ? -+ (uboot_info.initrd_end - uboot_info.initrd_start + 1) : 0; -+#endif -+ -+ /* copy over mac addresses */ -+ memcpy(uboot_enet0, uboot_info.bdi->bi_enet0addr, 6); -+ memcpy(uboot_enet1, uboot_info.bdi->bi_enet1addr, 6); -+ -+ /* copy command line */ -+ cmd_line_len = uboot_info.cmd_line_stop - uboot_info.cmd_line_start; -+ if ((cmd_line_len > 0) && (cmd_line_len < CL_SIZE-1)) -+ len = (int)strncpy(bootargs, (char *)uboot_info.cmd_line_start,\ -+ cmd_line_len); -+ -+ return len; -+} -+ -+#define DEFAULT_COMMAND_LINE \ -+ "debug root=/dev/nfs rw \ -+ nfsroot=172.27.155.1:/tftpboot/redstripe/rootfs/ \ -+ ip=172.27.155.51:172.27.155.1" -+ -+/* -+ * Early Coldfire Initialization. -+ */ -+asmlinkage void __init cf_early_init(void) -+{ -+ SET_VBR((void *)MCF_RAMBAR1); -+ -+ /* Mask all interrupts */ -+ MCF_INTC0_IMRL = 0xFFFFFFFF; -+ MCF_INTC0_IMRH = 0xFFFFFFFF; -+ MCF_INTC1_IMRL = 0xFFFFFFFF; -+ MCF_INTC1_IMRH = 0xFFFFFFFF; -+ -+#if defined(CONFIG_USB) -+ /* reset USB3300 */ -+ asm ("moveb #0x40, %%d0\n\t" -+ "moveb %%d0, 0xec090000\n\t" -+ : : : "%d0"); -+ mdelay(1); -+ asm ("moveb #0x0, %%d0\n\t" -+ "moveb %%d0, 0xec090000\n\t" -+ : : : "%d0"); -+#endif -+ -+#if defined(CONFIG_NOR_FLASH_BASE) -+ MCF_FBCS_CSAR(1) = CONFIG_NOR_FLASH_BASE; -+#else -+ MCF_FBCS_CSAR(1) = 0x00000000; -+#endif -+ -+#if defined(CONFIG_SSD1289_FLEXBUS_MODE) -+ MCF_FBCS_CSAR(0) = FLEXBUS_LCD_CMD_ADDRESS; -+ MCF_FBCS_CSMR(0) = MCF_FBCS_CSMR_BAM_128K | MCF_FBCS_CSMR_V; -+ MCF_FBCS_CSCR(0) = MCF_FBCS_CSCR_BLS | MCF_FBCS_CSCR_AA | -+ MCF_FBCS_CSCR_PS_16; -+#endif -+ -+#if CONFIG_SDRAM_SIZE > (256*1024*1024) -+ /* Init optional SDRAM chip select */ -+ MCF_SDRAMC_SDCS(1) = (256*1024*1024) | 0x1B; -+#endif -+ -+ MCF_XBS_CRS2 = 0x100; -+ /* Setup SDRAM crossbar(XBS) priorities */ -+ MCF_XBS_PRS2 = (MCF_XBS_PRS_M0(MCF_XBS_PRI_2) | /*CPU*/ -+ MCF_XBS_PRS_M1(MCF_XBS_PRI_3) | /*eDMA*/ -+ MCF_XBS_PRS_M2(MCF_XBS_PRI_1) | /*FEC0*/ -+ MCF_XBS_PRS_M3(MCF_XBS_PRI_5) | /*FEC1*/ -+ MCF_XBS_PRS_M5(MCF_XBS_PRI_6) | /*PCI*/ -+ MCF_XBS_PRS_M6(MCF_XBS_PRI_4) | /*USB*/ -+ MCF_XBS_PRS_M7(MCF_XBS_PRI_7)); /*SBF*/ -+ -+ m68k_machtype = MACH_CFMMU; -+ m68k_fputype = FPU_CFV4E; -+ m68k_mmutype = MMU_CFV4E; -+ m68k_cputype = CPU_CFV4E; -+ -+ /* initialize PHYSRAM */ -+ m68k_num_memory = 0; -+ m68k_memory[m68k_num_memory].addr = CONFIG_SDRAM_BASE; /* phys */ -+ m68k_memory[m68k_num_memory++].size = CONFIG_SDRAM_SIZE; -+ -+ if (!uboot_commandline(m68k_command_line)) { -+#if defined(CONFIG_BOOTPARAM) -+ strncpy(m68k_command_line, CONFIG_BOOTPARAM_STRING, CL_SIZE-1); -+#else -+ strcpy(m68k_command_line, DEFAULT_COMMAND_LINE); -+#endif -+ } -+ -+ /* Invalidate caches via CACR */ -+ flush_bcache(); -+ cacr_set(CACHE_DISABLE_MODE); -+ -+ /* Turn on caches via CACR, enable EUSP */ -+ cacr_set(CACHE_INITIAL_MODE); -+} -+ -+/* Assembler routines */ -+asmlinkage void buserr(void); -+asmlinkage void trap(void); -+asmlinkage void system_call(void); -+asmlinkage void inthandler(void); -+ -+void __init coldfire_trap_init(void) -+{ -+ int i = 0; -+ e_vector *vectors; -+ -+ vectors = (e_vector *)MCF_RAMBAR1; -+ /* -+ * There is a common trap handler and common interrupt -+ * handler that handle almost every vector. We treat -+ * the system call and bus error special, they get their -+ * own first level handlers. -+ */ -+ for (i = 3; (i <= 23); i++) -+ vectors[i] = trap; -+ for (i = 33; (i <= 63); i++) -+ vectors[i] = trap; -+ for (i = 24; (i <= 31); i++) -+ vectors[i] = inthandler; -+ for (i = 64; (i < 255); i++) -+ vectors[i] = inthandler; -+ -+ vectors[255] = 0; -+ vectors[2] = buserr; -+ vectors[32] = system_call; -+} -+ -+void settimericr(unsigned int timer, unsigned int level) -+{ -+ volatile unsigned char *icrp; -+ unsigned int icr = 0; -+ unsigned char irq = 0; -+ -+ if (timer <= 3) { -+ switch (timer) { -+ case 0: -+ irq = 32; -+ icr = MCFSIM_ICR_TIMER0; -+ break; -+ case 1: -+ irq = 33; -+ icr = MCFSIM_ICR_TIMER1; -+ break; -+ case 2: -+ irq = 34; -+ icr = MCFSIM_ICR_TIMER2; -+ break; -+ case 3: -+ irq = 35; -+ icr = MCFSIM_ICR_TIMER3; -+ break; -+ } -+ -+ icrp = (volatile unsigned char *) (icr); -+ *icrp = level; -+ coldfire_enable_irq0(irq); -+ } -+} -+ -+void coldfire_sched_clk_init(void); -+ -+void coldfire_tick(void) -+{ -+ /* Reset the ColdFire timer */ -+ __raw_writeb(MCF_DTIM_DTER_CAP | MCF_DTIM_DTER_REF, MCF_DTIM0_DTER); -+} -+ -+void __init coldfire_sched_init(irq_handler_t handler) -+{ -+ unsigned int mcf_timerlevel = 5; -+ unsigned int mcf_timervector = 64+32; -+ -+ __raw_writew(MCF_DTIM_DTMR_RST_RST, MCF_DTIM0_DTMR); -+ __raw_writel(((MCF_BUSCLK / 16) / HZ), MCF_DTIM0_DTRR); -+ __raw_writew(MCF_DTIM_DTMR_ORRI | MCF_DTIM_DTMR_CLK_DIV16 | -+ MCF_DTIM_DTMR_FRR | MCF_DTIM_DTMR_RST_EN, \ -+ MCF_DTIM0_DTMR); -+ -+ request_irq(mcf_timervector, handler, IRQF_DISABLED, \ -+ "timer", (void *)MCF_DTIM0_DTMR); -+ -+ settimericr(0, mcf_timerlevel); -+ -+ /* initialize the fast clock */ -+ coldfire_sched_clk_init(); -+} -+ -+int timerirqpending(int timer) -+{ -+ unsigned int imr = 0; -+ unsigned ret = 0; -+ -+ switch (timer) { -+ case 1: -+ imr = 0x1; -+ break; -+ case 2: -+ imr = 0x2; -+ break; -+ default: -+ break; -+ } -+ -+ ret = getiprh() & imr; -+ return ret; -+} -+ -+unsigned long coldfire_gettimeoffset(void) -+{ -+ volatile unsigned long trr, tcn, offset; -+ -+ tcn = __raw_readw(MCF_DTIM0_DTCN); -+ trr = __raw_readl(MCF_DTIM0_DTRR); -+ offset = (tcn * (1000000 / HZ)) / trr; -+ -+ /* Check if we just wrapped the counters and maybe missed a tick */ -+ if ((offset < (1000000 / HZ / 2)) && timerirqpending(1)) -+ offset += 1000000 / HZ; -+ return offset; -+} -+ -+/* sched_clock support */ -+ -+static unsigned long long sched_clk_val; -+ -+static irqreturn_t coldfire_sched_clk_irq(int irq, void *dev) -+{ -+ __raw_writeb(MCF_DTIM_DTER_CAP | MCF_DTIM_DTER_REF, MCF_DTIM3_DTER); -+ sched_clk_val += 0x100000000LL; -+ -+ return IRQ_HANDLED; -+} -+ -+/* -+ * Setup DTIM3 as the 5441x sched_clock() implementation. The -+ * input frequency to the clock is the internal bus clock (MCF_BUSCLK) -+ * which is the system clock (MCF_CLK) / 2. -+ * -+ * On a system running at 266Mhz: -+ * MCF_CLK = 266Mhz (266000000) -+ * MCF_BUSCLK = 133Mhz (133000000) -+ * DTIM3 Tick = 133Mhz (133000000) -+ * Tick Resolution = 7.5ns (round to 8ns/Tick) -+ * -+ * On a system running at 240Mhz: -+ * MCF_CLK = 240Mhz (240000000) -+ * MCF_BUSCLK = 120Mhz (120000000) -+ * DTIM3 Tick = 120Mhz (120000000) -+ * Tick Resolution = 8.4ns (round to 8ns/Tick) -+ */ -+void __init coldfire_sched_clk_init(void) -+{ -+ unsigned int mcf_timerlevel = 5; -+ unsigned int mcf_timervector = 64+32+3; /* DTIM3 */ -+ -+ printk(KERN_INFO "Initializing DTIM3 for sched_clock\n"); -+ __raw_writew(MCF_DTIM_DTMR_RST_RST, MCF_DTIM3_DTMR); -+ __raw_writel(0xffffffff, MCF_DTIM3_DTRR); -+ __raw_writew(MCF_DTIM_DTMR_ORRI | MCF_DTIM_DTMR_CLK_DIV1 | \ -+ MCF_DTIM_DTMR_RST_EN, MCF_DTIM3_DTMR); -+ -+ sched_clk_val = 0; -+ request_irq(mcf_timervector, coldfire_sched_clk_irq, IRQF_DISABLED, \ -+ "timer", (void *)MCF_DTIM3_DTMR); -+ -+ settimericr(3, mcf_timerlevel); -+} -+ -+#ifndef CONFIG_GENERIC_CLOCKEVENTS -+/* get highres timer */ -+unsigned long long sched_clock(void) -+{ -+ unsigned long long ret = 0; -+ ret = sched_clk_val | (unsigned long long)(MCF_REG32(MCF_DTIM3_DTCN)); -+ ret = ret << 3; -+ return ret; -+} -+ -+#else /*CONFIG_GENERIC_CLOCKEVENTS*/ -+ -+static unsigned long long sched_dtim_clk_val; -+ -+unsigned long long sched_clock(void) -+{ -+ unsigned long flags; -+ unsigned long long tcn, cycles; -+ -+ local_irq_save(flags); -+ tcn = ((unsigned long long)(MCF_REG32(MCF_DTIM2_DTCN))); -+ cycles = sched_dtim_clk_val; -+ local_irq_restore(flags); -+ return cycles + tcn; -+} -+ -+unsigned long long sys_dtim2_read(void) -+{ -+ unsigned long flags; -+ unsigned long long tcn, cycles; -+ -+ local_irq_save(flags); -+ tcn = ((unsigned long long)(MCF_REG32(MCF_DTIM2_DTCN))); -+ cycles = sched_dtim_clk_val; -+ local_irq_restore(flags); -+ -+ return cycles + tcn; -+} -+ -+static irqreturn_t coldfire_dtim_clk_irq(int irq, void *dev) -+{ -+ struct clock_event_device *evt = (struct clock_event_device *)dev; -+ -+ __raw_writeb(MCF_DTIM_DTER_CAP | MCF_DTIM_DTER_REF, MCF_DTIM2_DTER); -+ sched_dtim_clk_val += (MCF_BUSCLK / 16) / HZ; -+ evt->event_handler(evt); -+ return IRQ_HANDLED; -+} -+ -+void sys_dtim2_init(struct clock_event_device *evt) -+{ -+ unsigned int mcf_timerlevel = 5; -+ unsigned int mcf_timervector = 64+32+2; /* DTIM2 */ -+ -+ printk(KERN_INFO "Initializing DTIM2 for sched_clock\n"); -+ __raw_writew(MCF_DTIM_DTMR_RST_RST, MCF_DTIM2_DTMR); -+ __raw_writel(((MCF_BUSCLK / 16) / HZ)-1, MCF_DTIM2_DTRR); -+ __raw_writew(MCF_DTIM_DTMR_ORRI | MCF_DTIM_DTMR_CLK_DIV16 | -+ MCF_DTIM_DTMR_FRR | MCF_DTIM_DTMR_RST_EN, \ -+ MCF_DTIM2_DTMR); -+ -+ request_irq(mcf_timervector, coldfire_dtim_clk_irq, IRQF_DISABLED, \ -+ "timer2", (void *)evt); -+ -+ settimericr(3, mcf_timerlevel); -+ return; -+} -+ -+#endif -+ -+void coldfire_reboot(void) -+{ -+ /* disable interrupts and do a software reset */ -+ asm("movew #0x2700, %%sr\n\t" -+ "moveb #0x40, %%d0\n\t" -+ "moveb %%d0, 0xec090000\n\t" -+ : : : "%d0"); -+ -+ mdelay(10); -+ -+ asm("moveb #0xc0, %%d0\n\t" -+ "moveb %%d0, 0xec090000\n\t" -+ : : : "%d0"); -+} -+ -+static void coldfire_get_model(char *model) -+{ -+ sprintf(model, "Version 4 ColdFire"); -+} -+ -+/* -+ * Setup the nodes and the boot memory. -+ * -+ * memory_start and memory_end are VIRTUAL addresses -+ */ -+static void __init -+coldfire_bootmem_alloc(unsigned long memory_start, unsigned long memory_end) -+{ -+ unsigned long base_pfn; -+ -+ /* compute total pages in system */ -+ num_pages = PAGE_ALIGN(memory_end - PAGE_OFFSET) >> PAGE_SHIFT; -+ -+ /* align start/end to page boundries */ -+ memory_start = PAGE_ALIGN(memory_start); -+ memory_end = memory_end & PAGE_MASK; -+ -+ /* page numbers */ -+ base_pfn = __pa(PAGE_OFFSET) >> PAGE_SHIFT; -+ min_low_pfn = __pa(memory_start) >> PAGE_SHIFT; -+ max_low_pfn = __pa(memory_end) >> PAGE_SHIFT; -+ -+ high_memory = (void *)memory_end; -+ availmem = memory_start; -+ -+ /* setup bootmem data */ -+ m68k_setup_node(0); -+ availmem += init_bootmem_node(NODE_DATA(0), min_low_pfn, -+ base_pfn, max_low_pfn); -+ availmem = PAGE_ALIGN(availmem); -+ -+ printk(KERN_INFO "** availmem=0x%lx pa(am)=0x%lx\n", -+ availmem, __pa(availmem)); -+ printk(KERN_INFO "** mstart=0x%lx mend=0x%lx\n", -+ memory_start, memory_end); -+ printk(KERN_INFO "bpfn=0x%lx minpfn=0x%lx maxpfn=0x%lx\n", -+ base_pfn, min_low_pfn, max_low_pfn); -+ -+ /* turn over physram */ -+ free_bootmem(__pa(availmem), memory_end - availmem); -+ -+ /* configure physical dma area */ -+ cf_dma_base = __pa(PAGE_ALIGN(memory_start)); -+ cf_dma_size = CONFIG_DMA_SIZE; -+ cf_dma_end = CONFIG_SDRAM_BASE + cf_dma_size - 1; -+ -+ printk(KERN_INFO "dma: phys base=0x%lx phys end=0x%lx virt base=0x%x\n", -+ cf_dma_base, cf_dma_end, CONFIG_DMA_BASE); -+ -+ printk(KERN_INFO "mdma=0x%x pa(mdma)=0x%lx\n", -+ MAX_DMA_ADDRESS, __pa(MAX_DMA_ADDRESS)); -+} -+ -+/* -+ * Architecture setup for Coldfire -+ */ -+void __init config_coldfire(void) -+{ -+ unsigned long endmem, startmem; -+ -+ /* -+ * Calculate endmem from m68k_memory[0] assuming that a single -+ * chunk of ram is being configured. -+ */ -+ startmem = ((((int) &_end) + (PAGE_SIZE - 1)) & PAGE_MASK); -+ endmem = PAGE_OFFSET + m68k_memory[0].size; -+ -+ /* set virt to node shift to be the high nibble byte */ -+ m68k_virt_to_node_shift = 28; -+ -+ printk(KERN_INFO "starting up linux startmem 0x%lx, endmem 0x%lx, \ -+ size %luMB\n", startmem, endmem, (endmem - startmem) >> 20); -+ -+ memset(irq_enable, 0, sizeof(irq_enable)); -+ -+/* JKM -- moved early*/ -+/*register_console(&mcfrs_console);*/ -+ -+ /* -+ * Setup coldfire mach-specific handlers -+ */ -+ mach_max_dma_address = 0xffffffff; -+ mach_sched_init = coldfire_sched_init; -+ mach_tick = coldfire_tick; -+ mach_gettimeoffset = coldfire_gettimeoffset; -+ mach_reset = coldfire_reboot; -+ mach_get_model = coldfire_get_model; -+ -+ coldfire_bootmem_alloc(startmem, endmem-1); -+ -+#if defined(CONFIG_DUMMY_CONSOLE) || defined(CONFIG_FRAMEBUFFER_CONSOLE) -+ conswitchp = &dummy_con; -+#endif -+ -+#if defined(CONFIG_SERIAL_COLDFIRE) -+ /* -+ * This causes trouble when it is re-registered later. -+ * Currently this is fixed by conditionally commenting -+ * out the register_console in mcf_serial.c -+ */ -+/*JKM -- moved earlier*/ -+ register_console(&mcfrs_console); -+#endif -+} -+ -+#ifdef CONFIG_SRAM -+static int __init setup_sram_pool(void) -+{ -+ declare_sram_pool((void *)CONFIG_SRAM_BASE, CONFIG_SRAM_SIZE); -+ return 0; -+} -+postcore_initcall(setup_sram_pool); -+#endif ---- /dev/null -+++ b/arch/m68k/coldfire/m5441x/devices.c -@@ -0,0 +1,787 @@ -+/* -+ * Coldfire M5441x Platform Device Configuration -+ * -+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved. -+ * -+ * Lanttor.Guo@freescale.com -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ */ -+#include <linux/module.h> -+#include <linux/kernel.h> -+#include <linux/init.h> -+#include <linux/platform_device.h> -+#include <linux/fsl_devices.h> -+#include <linux/spi/spi.h> -+#include <linux/spi/flash.h> -+#include <linux/i2c.h> -+ -+#include <linux/interrupt.h> -+#include <linux/init.h> -+#include <linux/mtd/partitions.h> -+#ifdef CONFIG_MMC_SPI -+#include <linux/mmc/host.h> -+#include <linux/spi/mmc_spi.h> -+#endif -+ -+#include <asm/coldfire.h> -+#include <asm/mcfsim.h> -+#include <asm/mcfuart.h> -+#include <asm/mcfqspi.h> -+#include <asm/mcfdspi.h> -+#include <asm/cf_io.h> -+ -+/* -+ * I2C: only support i2c0 module on m5441x platform -+ */ -+#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE) -+static struct resource coldfire_i2c_resources[] = { -+ { /* I/O */ -+ .start = 0xFC058000, -+ .end = 0xFC058010, -+ .flags = IORESOURCE_MEM, -+ }, -+ { /* IRQ */ -+ .start = (64 + 30), -+ .end = (64 + 30), -+ .flags = IORESOURCE_IRQ, -+ }, -+}; -+ -+static struct platform_device coldfire_i2c_device = { -+ .name = "mcf-i2c", -+ .id = 0, /*bus number*/ -+ .num_resources = ARRAY_SIZE(coldfire_i2c_resources), -+ .resource = coldfire_i2c_resources, -+}; -+ -+static void mcf5441x_init_i2c(void) -+{ -+ MCF_PM_PPMCR0 = 22; -+ platform_device_register(&coldfire_i2c_device); -+} -+ -+#ifdef CONFIG_I2C_BOARDINFO -+static struct i2c_board_info mcf_i2c_devices[] = { -+#ifdef CONFIG_USB_M5441X_MAX3353_FSLS -+ { -+ I2C_BOARD_INFO("max3353", 0x2c), -+ }, -+#endif -+}; -+#endif -+ -+#endif -+ -+#if defined(CONFIG_MMC_ESDHC) -+static struct resource sd_mmc_esdhc_resources[] = { -+ [0] = { -+ .name = "esdhc-module", -+ .start = 0xFC0CC000, -+ .end = 0xFC0CC000 + 0x100, -+ .flags = IORESOURCE_MEM, -+ }, -+ [1] = { -+ .name = "esdhc-int-level", -+ .start = (64 + 64 + 64 + 31), -+ .end = (64 + 64 + 64 + 31), -+ .flags = IORESOURCE_IRQ, -+ }, -+ [2] = { -+ .name = "esdhc-pin", -+ .start = &MCF_GPIO_PAR_ESDHCH, -+ .end = &MCF_GPIO_PAR_ESDHCL, -+ .flags = IORESOURCE_MEM, -+ }, -+ [3] = { -+ .name = "esdhc-slew", -+ .start = &MCF_GPIO_SRCR_SDHC, -+ .end = &MCF_GPIO_SRCR_SDHC, -+ .flags = IORESOURCE_MEM, -+ }, -+}; -+ -+static struct platform_device sd_mmc_esdhc_device = { -+ .name = "esdhc", -+ .id = -1, -+ .resource = sd_mmc_esdhc_resources, -+ .num_resources = ARRAY_SIZE(sd_mmc_esdhc_resources), -+}; -+#endif -+ -+#if defined(CONFIG_MTD_NAND_FSL_NFC) -+static struct resource nfc_resources[] = { -+ [0] = { -+ .name = "nfc-config", -+ .start = 0xFC0FC000, -+ .end = 0xFC0FFF3B, -+ .flags = IORESOURCE_MEM, -+ -+ }, -+ [1] = { -+ .name = "nfc-int-level", -+ .start = (64 + 64 + 64 + 25), -+ .end = (64 + 64 + 64 + 25), -+ .flags = IORESOURCE_IRQ, -+ }, -+ -+}; -+static struct platform_device nfc_device = { -+ .name = "fsl_nfc", -+ .id = -1, -+ .resource = nfc_resources, -+ .num_resources = ARRAY_SIZE(nfc_resources), -+}; -+#endif -+ -+/* -+ * DSPI -+ */ -+#ifdef CONFIG_SPI -+ -+#if defined(CONFIG_DSPI0) /* DSPI0 initialization */ -+#define M5441X_DSPI0_MCR 0xFC05C000 /* base */ -+ -+#define M5441X_DSPI0_IRQ_SOURCE (31) -+#define M5441X_DSPI0_IRQ_VECTOR (64 + M5441X_DSPI0_IRQ_SOURCE) -+ -+/* number of supported SPI selects */ -+#define SPI_NUM_CHIPSELECTS 8 -+ -+#define M5441X_SPI0_PAR_VAL (MCF_GPIO_PAR_DSPI0_SCK_DSPI0SCK | \ -+ MCF_GPIO_PAR_DSPI0_SOUT_DSPI0SOUT | \ -+ MCF_GPIO_PAR_DSPI0_SIN_DSPI0SIN | \ -+ MCF_GPIO_PAR_DSPI0_PCS0_DSPI0PCS0) -+ -+ -+#ifdef CONFIG_MTD_PARTITIONS -+static struct mtd_partition at26df081a_partitions[] = { -+ { -+ .name = "at26df081a", -+ .size = (1024*64*16), -+ .offset = 0x00000000, -+ .mask_flags = 0, -+ } -+}; -+#endif -+ -+#if defined(CONFIG_MTD_M25P80) || defined(CONFIG_MTD_M25P80_MODULE) -+static struct flash_platform_data at26df081a_platform_data = { -+ .name = "Atmel at26df081a SPI Flash chip", -+#ifdef CONFIG_MTD_PARTITIONS -+ .parts = at26df081a_partitions, -+ .nr_parts = -+ sizeof(at26df081a_partitions) / sizeof(*at26df081a_partitions), -+#endif -+ .type = "at26df081a" -+}; -+ -+static struct coldfire_dspi_chip at26df081a_chip_info = { -+ .mode = SPI_MODE_0, -+ .bits_per_word = 16, /* How many bits per word to transfer -+ per one time (8 or 16) */ -+ .void_write_data = 0, -+ .dbr = 0, -+ .pbr = 0, -+ .br = 0, -+ .pcssck = 1, -+ .pasc = 1, -+ .pdt = 1, -+ .cssck = 4, -+ .asc = 4, -+ .dt = 14, -+}; -+#endif -+ -+#if defined(CONFIG_FB_FSL_SSD1289) || defined(CONFIG_FB_FSL_SSD1289_MODULE) -+static struct fsl_ssd1289_fb_display fsl_ssd1289_data = { -+ .width = 320, -+ .height = 240, -+ .xres = 320, -+ .yres = 240, -+ .bpp = 16, -+}; -+#endif -+ -+#if defined(CONFIG_SSD1289_SPI_MODE) -+static struct coldfire_dspi_chip ssd1289_chip_info = { -+ .mode = SPI_MODE_0, -+ .bits_per_word = 9, -+ .void_write_data = 0, -+ .dbr = 0, -+ .pbr = 0, -+ .br = 1, -+ .pcssck = 0, -+ .pasc = 0, -+ .pdt = 0, -+ .cssck = 0, -+ .asc = 0, -+ .dt = 0, -+}; -+#endif -+ -+#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE) -+static struct coldfire_dspi_chip spidev_chip_info = { -+ .bits_per_word = 8, -+}; -+#endif -+ -+ -+static struct coldfire_spi_master spi0_master_info = { -+ .bus_num = 1, -+ .num_chipselect = SPI_NUM_CHIPSELECTS, -+ .irq_list = 0, /* not used */ -+ .irq_source = M5441X_DSPI0_IRQ_SOURCE, -+ .irq_vector = M5441X_DSPI0_IRQ_VECTOR, -+ .irq_mask = (1 << M5441X_DSPI0_IRQ_SOURCE), -+ .irq_lp = 0x2, /* irq level */ -+ .par_val = M5441X_SPI0_PAR_VAL, -+ .cs_control = NULL, -+}; -+ -+static struct resource coldfire_spi0_resources[] = { -+ [0] = { -+ .name = "spi-par", -+ .start = (u32)&MCF_GPIO_PAR_DSPI0WH, /* PAR_DSPI0 */ -+ .end = (u32)&MCF_GPIO_PAR_DSPI0WH, /* PAR_DSPI0 */ -+ .flags = IORESOURCE_MEM -+ }, -+ -+ [1] = { -+ .name = "spi-module", -+ .start = M5441X_DSPI0_MCR, /* DSPI MCR Base */ -+ .end = M5441X_DSPI0_MCR + 0xc0, /* DSPI mem map end */ -+ .flags = IORESOURCE_MEM -+ }, -+ -+ [2] = { -+ .name = "spi-int-level", -+ .start = (u32)&MCF_INTC0_ICR31, /* ICR start */ -+ .end = (u32)&MCF_INTC0_ICR31, /* ICR end */ -+ .flags = IORESOURCE_MEM -+ }, -+ -+ [3] = { -+ .name = "spi-int-mask", -+ .start = (u32)&MCF_INTC0_IMRL, /* IMRL */ -+ .end = (u32)&MCF_INTC0_IMRL, /* IMRL */ -+ .flags = IORESOURCE_MEM -+ } -+}; -+ -+static struct platform_device coldfire_spi0 = { -+ .name = "spi_coldfire", -+ .id = -1, -+ .resource = coldfire_spi0_resources, -+ .num_resources = ARRAY_SIZE(coldfire_spi0_resources), -+ .dev = { -+ .platform_data = &spi0_master_info, -+ } -+}; -+ -+#elif defined(CONFIG_DSPI1) /* DSPI1 initialization */ -+#define M5441X_DSPI1_MCR 0xFC03C000 /* base */ -+ -+#define M5441X_DSPI1_IRQ_SOURCE (54) -+#define M5441X_DSPI1_IRQ_VECTOR (64 + 64 + M5441X_DSPI1_IRQ_SOURCE) -+ -+/* number of supported SPI selects */ -+#define SPI_NUM_CHIPSELECTS 8 -+ -+ -+#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE) -+static struct coldfire_dspi_chip spidev_chip_info = { -+ .bits_per_word = 8, -+}; -+#endif -+ -+static struct coldfire_spi_master spi1_master_info = { -+ .bus_num = 1, -+ .num_chipselect = SPI_NUM_CHIPSELECTS, -+ .irq_list = 0, /* not used */ -+ .irq_source = M5441X_DSPI1_IRQ_SOURCE, -+ .irq_vector = M5441X_DSPI1_IRQ_VECTOR, -+ .irq_mask = (1 << (M5441X_DSPI1_IRQ_SOURCE - 32)), -+ .irq_lp = 0x2, /* irq level */ -+ .cs_control = NULL, -+}; -+ -+static struct resource coldfire_spi1_resources[] = { -+ [0] = { -+ .name = "spi-par", -+ .start = (u32)&MCF_GPIO_PAR_ESDHCH, /* PAR_ESDHCH */ -+ .end = (u32)&MCF_GPIO_PAR_ESDHCL, /* PAR_ESDHCL */ -+ .flags = IORESOURCE_MEM -+ }, -+ -+ [1] = { -+ .name = "spi-module", -+ .start = M5441X_DSPI1_MCR, /* DSPI MCR Base */ -+ .end = M5441X_DSPI1_MCR + 0xc0, /* DSPI mem map end */ -+ .flags = IORESOURCE_MEM -+ }, -+ -+ [2] = { -+ .name = "spi-int-level", -+ .start = (u32)&MCF_INTC1_ICR54, /* ICR start */ -+ .end = (u32)&MCF_INTC1_ICR54, /* ICR end */ -+ .flags = IORESOURCE_MEM -+ }, -+ -+ [3] = { -+ .name = "spi-int-mask", -+ .start = (u32)&MCF_INTC1_IMRH, /* IMRL */ -+ .end = (u32)&MCF_INTC1_IMRH, /* IMRL */ -+ .flags = IORESOURCE_MEM -+ } -+}; -+ -+static struct platform_device coldfire_spi1 = { -+ .name = "spi_coldfire", -+ .id = -1, -+ .resource = coldfire_spi1_resources, -+ .num_resources = ARRAY_SIZE(coldfire_spi1_resources), -+ .dev = { -+ .platform_data = &spi1_master_info, -+ } -+}; -+ -+#ifdef CONFIG_MMC_SPI -+static struct coldfire_dspi_chip dspi_sd_chip_info = { -+ .mode = SPI_MODE_0, -+ .bits_per_word = 8, -+ .void_write_data = 0xff, -+ .dbr = 0, -+ .pbr = 1, -+ .br = 1, -+ .pcssck = 2, -+ .pasc = 2, -+ .pdt = 2, -+ .cssck = 5, -+ .asc = 5, -+ .dt = 5, -+}; -+ -+int mmc_spi_init(struct device *mmc_spi_device, -+ irqreturn_t mmc_spi_irq_handler(int irq, void *private), -+ void *irq_privatedata) -+{ -+ int ret; -+#if defined(CONFIG_DETECT_USE_EXTERN_IRQ1) -+ int card_detect_extern_irq = 64 + 1; -+ /*this is irq1 hardware work round*/ -+ MCF_GPIO_PAR_IRQ0H |= 0x3; -+ -+ MCF_EPORT_EPPAR = MCF_EPORT_EPPAR | MCF_EPORT_EPPAR_EPPA1_BOTH; -+ MCF_EPORT_EPIER = MCF_EPORT_EPIER | MCF_EPORT_EPIER_EPIE1; -+ -+ MCF_INTC0_ICR1 = 7; /* IRQ1 */ -+#if debug_mmc_spi -+ printk(KERN_INFO "MCF_INTC0_ICR1 %x MCF_EPORT_EPPAR %x " -+ "MCF_EPORT_EPFR %x MCF_EPORT_EPIER %x " -+ "MCF_INTC0_IMRL %x MCF_INTC0_INTFRCL %x " -+ "MCF_INTC0_IPRL %x\n", -+ MCF_INTC0_ICR1, MCF_EPORT_EPPAR, MCF_EPORT_EPFR, -+ MCF_EPORT_EPIER, MCF_INTC0_IMRL, MCF_INTC0_INTFRCL, -+ MCF_INTC0_IPRL); -+#endif -+#elif defined(CONFIG_DETECT_USE_EXTERN_IRQ7) -+ int card_detect_extern_irq = 64 + 7; -+ MCF_GPIO_PAR_IRQ0H |= MCF_GPIO_PAR_IRQH_IRQ7; -+ -+ MCF_EPORT_EPPAR = MCF_EPORT_EPPAR | MCF_EPORT_EPPAR_EPPA7_BOTH; -+ MCF_EPORT_EPIER = MCF_EPORT_EPIER | MCF_EPORT_EPIER_EPIE7; -+ -+ MCF_INTC0_ICR7 = 2; /* IRQ7 */ -+#ifdef debug_mmc_spi -+ printk("MCF_INTC0_ICR7 %x MCF_EPORT_EPPAR %x\n", -+ MCF_INTC0_ICR7, MCF_EPORT_EPPAR); -+#endif -+#else -+ int card_detect_extern_irq = 64 + 7; -+ MCF_GPIO_PAR_IRQ0H |= MCF_GPIO_PAR_IRQH_IRQ7; -+ -+ MCF_EPORT_EPPAR = MCF_EPORT_EPPAR | MCF_EPORT_EPPAR_EPPA7_BOTH; -+ MCF_EPORT_EPIER = MCF_EPORT_EPIER | MCF_EPORT_EPIER_EPIE7; -+ -+ MCF_INTC0_ICR7 = 2; /* IRQ7 */ -+#ifdef debug_mmc_spi -+ printk(KERN_INFO "MCF_INTC0_ICR1 %x MCF_EPORT_EPPAR %x\n", -+ MCF_INTC0_ICR7, MCF_EPORT_EPPAR); -+#endif -+#endif -+ -+ ret = request_irq(card_detect_extern_irq, -+ mmc_spi_irq_handler, IRQF_DISABLED, -+ "mmc_spi_irq", irq_privatedata); -+ if (ret) { -+ printk(KERN_INFO "%s: request irq fail %x\n", __func__, ret); -+ return -EBUSY; -+ } -+ -+ return 0; -+} -+ -+static struct mmc_spi_platform_data mcf5441x_mmc_pdata = { -+ .ocr_mask = MMC_VDD_33_34, -+ .init = mmc_spi_init, -+}; -+#endif -+ -+#endif -+ -+/* DSPI device */ -+static struct spi_board_info spi_board_info[] = { -+ -+#if defined(CONFIG_DSPI1) && defined(CONFIG_MMC_SPI) -+ { -+ .modalias = "mmc_spi", -+ .max_speed_hz = 50000000, -+ .bus_num = 1, -+ .chip_select = 0, -+ .platform_data = &mcf5441x_mmc_pdata, -+ .controller_data = &dspi_sd_chip_info, -+ }, -+#endif -+#if defined(CONFIG_DSPI0) && (defined(CONFIG_MTD_M25P80) || \ -+ defined(CONFIG_MTD_M25P80_MODULE)) -+ { -+ .modalias = "m25p80", /* Name of spi driver for this device */ -+ .max_speed_hz = 70000000, /* max spi clock in HZ */ -+ .bus_num = 1, -+ .chip_select = CONFIG_DSP0_SBF_CS, -+ .platform_data = &at26df081a_platform_data, -+ .controller_data = &at26df081a_chip_info -+ }, -+#endif -+ -+#if defined(CONFIG_DSPI0) && defined(CONFIG_SSD1289_SPI_MODE) -+ { -+ .modalias = "spi-ssd1289", -+ .max_speed_hz = 50000000, -+ .bus_num = 1, -+ .chip_select = 0, -+ .platform_data = &fsl_ssd1289_data, -+ .controller_data = &ssd1289_chip_info -+ }, -+#endif -+ -+#if defined(CONFIG_SPI_SPIDEV) || defined(CONFIG_SPI_SPIDEV_MODULE) -+ { -+ .modalias = "spidev", -+ .max_speed_hz = 16000000, /* max clk (SCK) speed in HZ */ -+ .bus_num = 1, -+ .chip_select = 0, /* CS0 */ -+ .controller_data = &spidev_chip_info, -+ }, -+#endif -+}; -+ -+/* -+ * m5441x_spi_init - Initialize SPI -+ */ -+static int __init m5441x_spi_init(void) -+{ -+ int retval; -+ -+ /* register device */ -+#if defined(CONFIG_DSPI0) -+ MCF_GPIO_PAR_DSPI0WH = -+ (MCF_GPIO_PAR_DSPI0WH & MCF_GPIO_PAR_DSPI0_SCK_MASK) | -+ MCF_GPIO_PAR_DSPI0_SCK_DSPI0SCK; -+ MCF_GPIO_PAR_DSPI0WH = -+ (MCF_GPIO_PAR_DSPI0WH & MCF_GPIO_PAR_DSPI0_SOUT_MASK) | -+ MCF_GPIO_PAR_DSPI0_SOUT_DSPI0SOUT; -+ MCF_GPIO_PAR_DSPI0WH = -+ (MCF_GPIO_PAR_DSPI0WH & MCF_GPIO_PAR_DSPI0_SIN_MASK) | -+ MCF_GPIO_PAR_DSPI0_SIN_DSPI0SIN; -+ MCF_GPIO_PAR_DSPI0WH = -+ (MCF_GPIO_PAR_DSPI0WH & MCF_GPIO_PAR_DSPI0_PCS0_MASK) | -+ MCF_GPIO_PAR_DSPI0_PCS0_DSPI0PCS0; -+ MCF_GPIO_PAR_DSPI0WL = 0x80; -+ retval = platform_device_register(&coldfire_spi0); -+ if (retval < 0) -+ goto out; -+#elif defined(CONFIG_DSPI1) -+ MCF_PM_PPMCR0 = 0xf; -+ MCF_GPIO_PAR_ESDHCH = 0x55; /* DAT[3:0] */ -+ MCF_GPIO_PAR_ESDHCL = 0x05; /* CMD, CLK */ -+ MCF_GPIO_SRCR_IRQ0 = 3; -+ MCF_GPIO_SRCR_SDHC = 3; -+ retval = platform_device_register(&coldfire_spi1); -+ if (retval < 0) -+ goto out; -+#endif -+ -+ /* register board info */ -+ if (ARRAY_SIZE(spi_board_info)) -+ retval = spi_register_board_info(spi_board_info, -+ ARRAY_SIZE(spi_board_info)); -+ -+out: -+ return retval; -+} -+#endif -+ -+#if defined(CONFIG_SERIAL_MCF) || defined(CONFIG_SERIAL_MCF_MODULE) -+/* -+ * UART initialization -+ */ -+static struct mcf_platform_uart m5441x_uart_platform[] = { -+#ifdef CONFIG_SERIAL_MCF_UART0 -+ { -+ .mapbase = MCFUART_BASE0, -+ .irq = MCFINT0_VECBASE + MCFINT_UART0, -+ }, -+#endif -+#ifdef CONFIG_SERIAL_MCF_UART1 -+ { -+ .mapbase = MCFUART_BASE1, -+ .irq = MCFINT0_VECBASE + MCFINT_UART1, -+ }, -+#endif -+#ifdef CONFIG_SERIAL_MCF_UART2 -+ { -+ .mapbase = MCFUART_BASE2, -+ .irq = MCFINT0_VECBASE + MCFINT_UART2, -+ }, -+#endif -+#ifdef CONFIG_SERIAL_MCF_UART3 -+ { -+ .mapbase = MCFUART_BASE3, -+ .irq = MCFINT0_VECBASE + MCFINT_UART3, -+ }, -+#endif -+#ifdef CONFIG_SERIAL_MCF_UART4 -+ { -+ .mapbase = MCFUART_BASE4, -+ .irq = MCFINT1_VECBASE + MCFINT_UART4, -+ }, -+#endif -+#ifdef CONFIG_SERIAL_MCF_UART5 -+ { -+ .mapbase = MCFUART_BASE5, -+ .irq = MCFINT1_VECBASE + MCFINT_UART5, -+ }, -+#endif -+#ifdef CONFIG_SERIAL_MCF_UART6 -+ { -+ .mapbase = MCFUART_BASE6, -+ .irq = MCFINT1_VECBASE + MCFINT_UART6, -+ }, -+#endif -+#ifdef CONFIG_SERIAL_MCF_UART7 -+ { -+ .mapbase = MCFUART_BASE7, -+ .irq = MCFINT1_VECBASE + MCFINT_UART7, -+ }, -+#endif -+#ifdef CONFIG_SERIAL_MCF_UART8 -+ { -+ .mapbase = MCFUART_BASE8, -+ .irq = MCFINT1_VECBASE + MCFINT_UART8, -+ }, -+#endif -+#ifdef CONFIG_SERIAL_MCF_UART9 -+ { -+ .mapbase = MCFUART_BASE9, -+ .irq = MCFINT1_VECBASE + MCFINT_UART9, -+ }, -+#endif -+ {} -+}; -+ -+static struct platform_device m5441x_uart = { -+ .name = "mcfuart", -+ .id = 0, -+ .dev.platform_data = m5441x_uart_platform, -+}; -+ -+static void m5441x_uarts_init(void) -+{ -+#ifdef CONFIG_SERIAL_MCF_UART0 -+ /* enable uart0 clock */ -+ MCF_PM_PPMCR0 = 24; -+ /* gpio pin assignment for uart0 */ -+ MCF_GPIO_PAR_UART0 = -+ (MCF_GPIO_PAR_UART0 & MCF_GPIO_PAR_UART0_U0RXD_MASK) | -+ MCF_GPIO_PAR_UART0_U0RXD_U0RXD; -+ MCF_GPIO_PAR_UART0 = -+ (MCF_GPIO_PAR_UART0 & MCF_GPIO_PAR_UART0_U0TXD_MASK) | -+ MCF_GPIO_PAR_UART0_U0TXD_U0TXD; -+#endif -+#ifdef CONFIG_SERIAL_MCF_UART1 -+ /* enable uart1 clock */ -+ MCF_PM_PPMCR0 = 25; -+ /* gpio pin assignment for uart1 */ -+ MCF_GPIO_PAR_UART1 = -+ (MCF_GPIO_PAR_UART1 & MCF_GPIO_PAR_UART1_U1RXD_MASK) | -+ MCF_GPIO_PAR_UART1_U1RXD_U1RXD; -+ MCF_GPIO_PAR_UART1 = -+ (MCF_GPIO_PAR_UART1 & MCF_GPIO_PAR_UART1_U1TXD_MASK) | -+ MCF_GPIO_PAR_UART1_U1TXD_U1TXD; -+#endif -+#ifdef CONFIG_SERIAL_MCF_UART2 -+ /* enable uart2 clock */ -+ MCF_PM_PPMCR0 = 26; -+ /* gpio pin assignment for uart2 */ -+ MCF_GPIO_PAR_UART2 = -+ (MCF_GPIO_PAR_UART2 & MCF_GPIO_PAR_UART2_U2RXD_MASK) | -+ MCF_GPIO_PAR_UART2_U2RXD_U2RXD; -+ MCF_GPIO_PAR_UART2 = -+ (MCF_GPIO_PAR_UART2 & MCF_GPIO_PAR_UART2_U2TXD_MASK) | -+ MCF_GPIO_PAR_UART2_U2TXD_U2TXD; -+#endif -+#ifdef CONFIG_SERIAL_MCF_UART3 -+ /* enable uart3 clock */ -+ MCF_PM_PPMCR0 = 27; -+ /* gpio pin assignment for uart3 */ -+ MCF_GPIO_PAR_DSPI0WH = -+ (MCF_GPIO_PAR_DSPI0WH & MCF_GPIO_PAR_DSPI0_SIN_MASK) | -+ MCF_GPIO_PAR_DSPI0_SIN_U3RXD; -+ MCF_GPIO_PAR_DSPI0WH = -+ (MCF_GPIO_PAR_DSPI0WH & MCF_GPIO_PAR_DSPI0_SOUT_MASK) | -+ MCF_GPIO_PAR_DSPI0_SOUT_U3TXD; -+#endif -+#ifdef CONFIG_SERIAL_MCF_UART4 -+ /* enable uart4 clock */ -+ MCF_PM_PPMCR1 = 24; -+ /* gpio pin assignment for uart4 */ -+ MCF_GPIO_PAR_UART0 = -+ (MCF_GPIO_PAR_UART0 & MCF_GPIO_PAR_UART0_U0RTS_MASK) | -+ MCF_GPIO_PAR_UART0_U0RTS_U4RXD; -+ MCF_GPIO_PAR_UART0 = -+ (MCF_GPIO_PAR_UART0 & MCF_GPIO_PAR_UART0_U0CTS_MASK) | -+ MCF_GPIO_PAR_UART0_U0CTS_U4TXD; -+#endif -+#ifdef CONFIG_SERIAL_MCF_UART5 -+ /* enable uart5 clock */ -+ MCF_PM_PPMCR1 = 25; -+ /* gpio pin assignment for uart5 */ -+ MCF_GPIO_PAR_UART1 = -+ (MCF_GPIO_PAR_UART1 & MCF_GPIO_PAR_UART1_U1RTS_MASK) | -+ MCF_GPIO_PAR_UART1_U1RTS_U5RXD; -+ MCF_GPIO_PAR_UART1 = -+ (MCF_GPIO_PAR_UART1 & MCF_GPIO_PAR_UART1_U1CTS_MASK) | -+ MCF_GPIO_PAR_UART1_U1CTS_U5TXD; -+#endif -+#ifdef CONFIG_SERIAL_MCF_UART6 -+ /* enable uart6 clock */ -+ MCF_PM_PPMCR1 = 26; -+ /* gpio pin assignment for uart6 */ -+ MCF_GPIO_PAR_UART2 = -+ (MCF_GPIO_PAR_UART2 & MCF_GPIO_PAR_UART2_U2RTS_MASK) | -+ MCF_GPIO_PAR_UART2_U2RTS_U6RXD; -+ MCF_GPIO_PAR_UART2 = -+ (MCF_GPIO_PAR_UART2 & MCF_GPIO_PAR_UART2_U2CTS_MASK) | -+ MCF_GPIO_PAR_UART2_U2CTS_U6TXD; -+#endif -+#ifdef CONFIG_SERIAL_MCF_UART7 -+ /* enable uart7 clock */ -+ MCF_PM_PPMCR1 = 27; -+ /* gpio pin assignment for uart7 */ -+ MCF_GPIO_PAR_SSI0H &= (MCF_GPIO_PAR_SSI0H_FS_MASK); -+ MCF_GPIO_PAR_SSI0H |= (MCF_GPIO_PAR_SSI0H_FS_U7TXD); -+ MCF_GPIO_PAR_SSI0L &= (MCF_GPIO_PAR_SSI0L_BCLK_MASK); -+ MCF_GPIO_PAR_SSI0L |= (MCF_GPIO_PAR_SSI0L_BCLK_U7RXD); -+#endif -+#ifdef CONFIG_SERIAL_MCF_UART8 -+ /* enable uart8 clock */ -+ MCF_PM_PPMCR1 = 28; -+ /* gpio pin assignment for uart8 */ -+ MCF_GPIO_PAR_CANI2C = -+ (MCF_GPIO_PAR_CANI2C & MCF_GPIO_PAR_CANI2C_I2C0SCL_MASK) | -+ MCF_GPIO_PAR_CANI2C_I2C0SCL_U8TXD; -+ MCF_GPIO_PAR_CANI2C = -+ (MCF_GPIO_PAR_CANI2C & MCF_GPIO_PAR_CANI2C_I2C0SDA_MASK) | -+ MCF_GPIO_PAR_CANI2C_I2C0SDA_U8RXD; -+#endif -+#ifdef CONFIG_SERIAL_MCF_UART9 -+ /* enable uart4 clock */ -+ MCF_PM_PPMCR1 = 29; -+ /* gpio pin assignment for uart9 */ -+ MCF_GPIO_PAR_CANI2C = -+ (MCF_GPIO_PAR_CANI2C & MCF_GPIO_PAR_CANI2C_CAN1TX_MASK) | -+ MCF_GPIO_PAR_CANI2C_CAN1TX_U9TXD; -+ MCF_GPIO_PAR_CANI2C = -+ (MCF_GPIO_PAR_CANI2C & MCF_GPIO_PAR_CANI2C_CAN1RX_MASK) | -+ MCF_GPIO_PAR_CANI2C_CAN1RX_U9RXD; -+#endif -+} -+#endif -+ -+#if defined(CONFIG_RTC_M5441X) || defined(CONFIG_RTC_M5441X_MODULE) -+/* -+ * RTC initialization -+ */ -+static struct platform_device rtc_device = { -+ .name = "rtc-m5441x", -+ .id = -1, -+}; -+ -+static void m5441x_rtc_init(void) -+{ -+ /* Power management: enable RTC clock */ -+ MCF_PM_PPMCR0 = 42; -+} -+#endif -+ -+ -+#if defined(CONFIG_SSD1289_FLEXBUS_MODE) -+static struct platform_device fsl_ssd1289_device = { -+ .name = "fsl-ssd1289", -+ .id = -1, -+ .dev = { -+ .platform_data = &fsl_ssd1289_data, -+ }, -+}; -+#endif -+ -+static struct platform_device *m5441x_devices[] __initdata = { -+#if defined(CONFIG_SERIAL_MCF) || defined(CONFIG_SERIAL_MCF_MODULE) -+ &m5441x_uart, -+#endif -+#if defined(CONFIG_RTC_M5441X) || defined(CONFIG_RTC_M5441X_MODULE) -+ &rtc_device, -+#endif -+#if defined(CONFIG_MMC_ESDHC) -+ &sd_mmc_esdhc_device, -+#endif -+#if defined(CONFIG_MTD_NAND_FSL_NFC) -+ &nfc_device, -+#endif -+#if defined(CONFIG_SSD1289_FLEXBUS_MODE) -+ &fsl_ssd1289_device, -+#endif -+}; -+ -+static int __init mcf5441x_init_devices(void) -+{ -+ printk(KERN_INFO "mcf5441x_init_devices: %s.\n", __func__); -+ -+#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE) -+#ifdef CONFIG_I2C_BOARDINFO -+ i2c_register_board_info(0, mcf_i2c_devices, -+ ARRAY_SIZE(mcf_i2c_devices)); -+#endif -+ mcf5441x_init_i2c(); -+#endif -+#if defined(CONFIG_SPI) || defined(CONFIG_SPI_MODULE) -+ m5441x_spi_init(); -+#endif -+#if defined(CONFIG_SERIAL_MCF) || defined(CONFIG_SERIAL_MCF_MODULE) -+ m5441x_uarts_init(); -+#endif -+#if defined(CONFIG_RTC_M5441X) || defined(CONFIG_RTC_M5441X_MODULE) -+ m5441x_rtc_init(); -+#endif -+ platform_add_devices(m5441x_devices, ARRAY_SIZE(m5441x_devices)); -+ return 0; -+} -+ -+arch_initcall(mcf5441x_init_devices); -+ -+ ---- /dev/null -+++ b/arch/m68k/configs/m54418twr_defconfig -@@ -0,0 +1,1244 @@ -+# -+# Automatically generated make config: don't edit -+# Linux kernel version: 2.6.29 -+# Fri Apr 23 14:36:43 2010 -+# -+CONFIG_M68K=y -+CONFIG_MMU=y -+CONFIG_GENERIC_TIME=y -+CONFIG_GENERIC_CLOCKEVENTS=y -+CONFIG_RWSEM_GENERIC_SPINLOCK=y -+# CONFIG_ARCH_HAS_ILOG2_U32 is not set -+# CONFIG_ARCH_HAS_ILOG2_U64 is not set -+CONFIG_GENERIC_HWEIGHT=y -+CONFIG_GENERIC_CALIBRATE_DELAY=y -+# CONFIG_TIME_LOW_RES is not set -+CONFIG_GENERIC_IOMAP=y -+# CONFIG_NO_IOPORT is not set -+# CONFIG_NO_DMA is not set -+CONFIG_HZ=100 -+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -+ -+# -+# General setup -+# -+CONFIG_EXPERIMENTAL=y -+CONFIG_BROKEN_ON_SMP=y -+CONFIG_INIT_ENV_ARG_LIMIT=32 -+CONFIG_LOCALVERSION="" -+CONFIG_LOCALVERSION_AUTO=y -+CONFIG_SWAP=y -+CONFIG_SYSVIPC=y -+CONFIG_SYSVIPC_SYSCTL=y -+# CONFIG_POSIX_MQUEUE is not set -+# CONFIG_BSD_PROCESS_ACCT is not set -+# CONFIG_TASKSTATS is not set -+# CONFIG_AUDIT is not set -+ -+# -+# RCU Subsystem -+# -+CONFIG_CLASSIC_RCU=y -+# CONFIG_TREE_RCU is not set -+# CONFIG_PREEMPT_RCU is not set -+# CONFIG_TREE_RCU_TRACE is not set -+# CONFIG_PREEMPT_RCU_TRACE is not set -+CONFIG_IKCONFIG=y -+CONFIG_IKCONFIG_PROC=y -+CONFIG_LOG_BUF_SHIFT=17 -+CONFIG_GROUP_SCHED=y -+CONFIG_FAIR_GROUP_SCHED=y -+# CONFIG_RT_GROUP_SCHED is not set -+CONFIG_USER_SCHED=y -+# CONFIG_CGROUP_SCHED is not set -+# CONFIG_CGROUPS is not set -+CONFIG_SYSFS_DEPRECATED=y -+CONFIG_SYSFS_DEPRECATED_V2=y -+# CONFIG_RELAY is not set -+# CONFIG_NAMESPACES is not set -+CONFIG_BLK_DEV_INITRD=y -+CONFIG_INITRAMFS_SOURCE="" -+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set -+CONFIG_SYSCTL=y -+CONFIG_ANON_INODES=y -+CONFIG_EMBEDDED=y -+CONFIG_UID16=y -+CONFIG_SYSCTL_SYSCALL=y -+CONFIG_KALLSYMS=y -+# CONFIG_KALLSYMS_EXTRA_PASS is not set -+CONFIG_HOTPLUG=y -+CONFIG_PRINTK=y -+CONFIG_BUG=y -+CONFIG_ELF_CORE=y -+CONFIG_BASE_FULL=y -+CONFIG_FUTEX=y -+CONFIG_EPOLL=y -+CONFIG_SIGNALFD=y -+CONFIG_TIMERFD=y -+CONFIG_EVENTFD=y -+CONFIG_SHMEM=y -+CONFIG_AIO=y -+CONFIG_VM_EVENT_COUNTERS=y -+CONFIG_COMPAT_BRK=y -+CONFIG_SLAB=y -+# CONFIG_SLUB is not set -+# CONFIG_SLOB is not set -+# CONFIG_PROFILING is not set -+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set -+CONFIG_SLABINFO=y -+CONFIG_RT_MUTEXES=y -+CONFIG_BASE_SMALL=0 -+CONFIG_MODULES=y -+# CONFIG_MODULE_FORCE_LOAD is not set -+CONFIG_MODULE_UNLOAD=y -+CONFIG_MODULE_FORCE_UNLOAD=y -+# CONFIG_MODVERSIONS is not set -+# CONFIG_MODULE_SRCVERSION_ALL is not set -+CONFIG_BLOCK=y -+CONFIG_LBD=y -+# CONFIG_BLK_DEV_IO_TRACE is not set -+# CONFIG_BLK_DEV_BSG is not set -+# CONFIG_BLK_DEV_INTEGRITY is not set -+ -+# -+# IO Schedulers -+# -+CONFIG_IOSCHED_NOOP=y -+CONFIG_IOSCHED_AS=y -+CONFIG_IOSCHED_DEADLINE=y -+CONFIG_IOSCHED_CFQ=y -+# CONFIG_DEFAULT_AS is not set -+# CONFIG_DEFAULT_DEADLINE is not set -+CONFIG_DEFAULT_CFQ=y -+# CONFIG_DEFAULT_NOOP is not set -+CONFIG_DEFAULT_IOSCHED="cfq" -+# CONFIG_FREEZER is not set -+ -+# -+# Platform dependent setup -+# -+CONFIG_COLDFIRE=y -+CONFIG_CFV4E=y -+# CONFIG_FPU is not set -+# CONFIG_AMIGA is not set -+# CONFIG_ATARI is not set -+# CONFIG_MAC is not set -+# CONFIG_APOLLO is not set -+# CONFIG_VME is not set -+# CONFIG_HP300 is not set -+# CONFIG_SUN3X is not set -+# CONFIG_Q40 is not set -+# CONFIG_SUN3 is not set -+ -+# -+# Processor type -+# -+# CONFIG_M68020 is not set -+# CONFIG_M68030 is not set -+# CONFIG_M68040 is not set -+# CONFIG_M68060 is not set -+# CONFIG_M5445X is not set -+CONFIG_HAVE_FSL_USB_DR=y -+# CONFIG_M547X_8X is not set -+CONFIG_M5441X=y -+CONFIG_M54418=y -+CONFIG_M54418EVB=y -+CONFIG_MCFCLK=250000000 -+# CONFIG_MCF_USER_HALT is not set -+CONFIG_MMU_CFV4E=y -+CONFIG_SDRAM_BASE=0x40000000 -+CONFIG_SDRAM_SIZE=0x08000000 -+CONFIG_NOR_FLASH_BASE=0x00000000 -+CONFIG_DMA_BASE=0xdf000000 -+CONFIG_DMA_SIZE=0x1000000 -+# CONFIG_VDSO is not set -+# CONFIG_M68KFPU_EMU is not set -+CONFIG_ADVANCED=y -+# CONFIG_RMW_INSNS is not set -+CONFIG_SINGLE_MEMORY_CHUNK=y -+# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set -+CONFIG_SELECT_MEMORY_MODEL=y -+CONFIG_FLATMEM_MANUAL=y -+# CONFIG_DISCONTIGMEM_MANUAL is not set -+# CONFIG_SPARSEMEM_MANUAL is not set -+CONFIG_FLATMEM=y -+CONFIG_FLAT_NODE_MEM_MAP=y -+CONFIG_NEED_MULTIPLE_NODES=y -+CONFIG_PAGEFLAGS_EXTENDED=y -+CONFIG_SPLIT_PTLOCK_CPUS=4 -+# CONFIG_PHYS_ADDR_T_64BIT is not set -+CONFIG_ZONE_DMA_FLAG=1 -+CONFIG_BOUNCE=y -+CONFIG_VIRT_TO_BUS=y -+CONFIG_UNEVICTABLE_LRU=y -+ -+# -+# General setup -+# -+CONFIG_BINFMT_ELF=y -+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set -+CONFIG_HAVE_AOUT=y -+# CONFIG_BINFMT_AOUT is not set -+# CONFIG_BINFMT_MISC is not set -+CONFIG_PROC_HARDWARE=y -+CONFIG_ZONE_DMA=y -+# CONFIG_ARCH_SUPPORTS_MSI is not set -+ -+# -+# Power management options -+# -+CONFIG_PM=y -+CONFIG_NET=y -+ -+# -+# Networking options -+# -+CONFIG_COMPAT_NET_DEV_OPS=y -+CONFIG_PACKET=y -+# CONFIG_PACKET_MMAP is not set -+CONFIG_UNIX=y -+CONFIG_XFRM=y -+# CONFIG_XFRM_USER is not set -+# CONFIG_XFRM_SUB_POLICY is not set -+# CONFIG_XFRM_MIGRATE is not set -+# CONFIG_XFRM_STATISTICS is not set -+CONFIG_NET_KEY=y -+# CONFIG_NET_KEY_MIGRATE is not set -+CONFIG_INET=y -+# CONFIG_IP_MULTICAST is not set -+CONFIG_IP_ADVANCED_ROUTER=y -+CONFIG_ASK_IP_FIB_HASH=y -+# CONFIG_IP_FIB_TRIE is not set -+CONFIG_IP_FIB_HASH=y -+# CONFIG_IP_MULTIPLE_TABLES is not set -+# CONFIG_IP_ROUTE_MULTIPATH is not set -+# CONFIG_IP_ROUTE_VERBOSE is not set -+CONFIG_IP_PNP=y -+# CONFIG_IP_PNP_DHCP is not set -+# CONFIG_IP_PNP_BOOTP is not set -+# CONFIG_IP_PNP_RARP is not set -+# CONFIG_NET_IPIP is not set -+# CONFIG_NET_IPGRE is not set -+# CONFIG_ARPD is not set -+# CONFIG_SYN_COOKIES is not set -+CONFIG_INET_AH=y -+CONFIG_INET_ESP=y -+# CONFIG_INET_IPCOMP is not set -+# CONFIG_INET_XFRM_TUNNEL is not set -+# CONFIG_INET_TUNNEL is not set -+# CONFIG_INET_XFRM_MODE_TRANSPORT is not set -+# CONFIG_INET_XFRM_MODE_TUNNEL is not set -+# CONFIG_INET_XFRM_MODE_BEET is not set -+# CONFIG_INET_LRO is not set -+CONFIG_INET_DIAG=y -+CONFIG_INET_TCP_DIAG=y -+# CONFIG_TCP_CONG_ADVANCED is not set -+CONFIG_TCP_CONG_CUBIC=y -+CONFIG_DEFAULT_TCP_CONG="cubic" -+# CONFIG_TCP_MD5SIG is not set -+# CONFIG_IPV6 is not set -+# CONFIG_NETWORK_SECMARK is not set -+# CONFIG_NETFILTER is not set -+# CONFIG_IP_DCCP is not set -+# CONFIG_IP_SCTP is not set -+# CONFIG_TIPC is not set -+# CONFIG_ATM is not set -+# CONFIG_BRIDGE is not set -+# CONFIG_NET_DSA is not set -+# CONFIG_VLAN_8021Q is not set -+# CONFIG_DECNET is not set -+# CONFIG_LLC2 is not set -+# CONFIG_IPX is not set -+# CONFIG_ATALK is not set -+# CONFIG_X25 is not set -+# CONFIG_LAPB is not set -+# CONFIG_ECONET is not set -+# CONFIG_WAN_ROUTER is not set -+# CONFIG_NET_SCHED is not set -+# CONFIG_DCB is not set -+ -+# -+# Network testing -+# -+# CONFIG_NET_PKTGEN is not set -+# CONFIG_HAMRADIO is not set -+# CONFIG_CAN is not set -+# CONFIG_IRDA is not set -+# CONFIG_BT is not set -+# CONFIG_AF_RXRPC is not set -+# CONFIG_PHONET is not set -+CONFIG_WIRELESS=y -+# CONFIG_CFG80211 is not set -+CONFIG_WIRELESS_OLD_REGULATORY=y -+# CONFIG_WIRELESS_EXT is not set -+# CONFIG_LIB80211 is not set -+# CONFIG_MAC80211 is not set -+# CONFIG_WIMAX is not set -+# CONFIG_RFKILL is not set -+# CONFIG_NET_9P is not set -+# CONFIG_KLIPS is not set -+ -+# -+# Device Drivers -+# -+ -+# -+# Generic Driver Options -+# -+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -+# CONFIG_STANDALONE is not set -+CONFIG_PREVENT_FIRMWARE_BUILD=y -+CONFIG_FW_LOADER=y -+CONFIG_FIRMWARE_IN_KERNEL=y -+CONFIG_EXTRA_FIRMWARE="" -+# CONFIG_SYS_HYPERVISOR is not set -+# CONFIG_CONNECTOR is not set -+CONFIG_MTD=y -+# CONFIG_MTD_DEBUG is not set -+# CONFIG_MTD_CONCAT is not set -+CONFIG_MTD_PARTITIONS=y -+# CONFIG_MTD_TESTS is not set -+# CONFIG_MTD_REDBOOT_PARTS is not set -+CONFIG_MTD_CMDLINE_PARTS=y -+# CONFIG_MTD_AR7_PARTS is not set -+ -+# -+# User Modules And Translation Layers -+# -+CONFIG_MTD_CHAR=y -+CONFIG_MTD_BLKDEVS=y -+CONFIG_MTD_BLOCK=y -+# CONFIG_FTL is not set -+# CONFIG_NFTL is not set -+# CONFIG_INFTL is not set -+# CONFIG_RFD_FTL is not set -+# CONFIG_SSFDC is not set -+# CONFIG_MTD_OOPS is not set -+ -+# -+# RAM/ROM/Flash chip drivers -+# -+# CONFIG_MTD_CFI is not set -+# CONFIG_MTD_JEDECPROBE is not set -+CONFIG_MTD_MAP_BANK_WIDTH_1=y -+CONFIG_MTD_MAP_BANK_WIDTH_2=y -+CONFIG_MTD_MAP_BANK_WIDTH_4=y -+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -+CONFIG_MTD_CFI_I1=y -+CONFIG_MTD_CFI_I2=y -+# CONFIG_MTD_CFI_I4 is not set -+# CONFIG_MTD_CFI_I8 is not set -+# CONFIG_MTD_RAM is not set -+# CONFIG_MTD_ROM is not set -+# CONFIG_MTD_ABSENT is not set -+ -+# -+# Mapping drivers for chip access -+# -+# CONFIG_MTD_COMPLEX_MAPPINGS is not set -+# CONFIG_MTD_PLATRAM is not set -+ -+# -+# Self-contained MTD device drivers -+# -+# CONFIG_MTD_DATAFLASH is not set -+CONFIG_MTD_M25P80=y -+CONFIG_M25PXX_USE_FAST_READ=y -+# CONFIG_MTD_SLRAM is not set -+# CONFIG_MTD_PHRAM is not set -+# CONFIG_MTD_MTDRAM is not set -+CONFIG_MTD_BLOCK2MTD=y -+ -+# -+# Disk-On-Chip Device Drivers -+# -+# CONFIG_MTD_DOC2000 is not set -+# CONFIG_MTD_DOC2001 is not set -+# CONFIG_MTD_DOC2001PLUS is not set -+CONFIG_MTD_NAND=y -+# CONFIG_MTD_NAND_VERIFY_WRITE is not set -+# CONFIG_MTD_NAND_ECC_SMC is not set -+# CONFIG_MTD_NAND_MUSEUM_IDS is not set -+CONFIG_MTD_NAND_IDS=y -+# CONFIG_MTD_NAND_DISKONCHIP is not set -+# CONFIG_MTD_NAND_NANDSIM is not set -+# CONFIG_MTD_NAND_PLATFORM is not set -+# CONFIG_MTD_ALAUDA is not set -+CONFIG_MTD_NAND_FSL_NFC=y -+# CONFIG_MTD_ONENAND is not set -+ -+# -+# LPDDR flash memory drivers -+# -+# CONFIG_MTD_LPDDR is not set -+ -+# -+# UBI - Unsorted block images -+# -+# CONFIG_MTD_UBI is not set -+# CONFIG_PARPORT is not set -+CONFIG_BLK_DEV=y -+# CONFIG_BLK_DEV_COW_COMMON is not set -+CONFIG_BLK_DEV_LOOP=y -+# CONFIG_BLK_DEV_CRYPTOLOOP is not set -+# CONFIG_BLK_DEV_NBD is not set -+# CONFIG_BLK_DEV_UB is not set -+CONFIG_BLK_DEV_RAM=y -+CONFIG_BLK_DEV_RAM_COUNT=16 -+CONFIG_BLK_DEV_RAM_SIZE=64000 -+# CONFIG_BLK_DEV_XIP is not set -+# CONFIG_CDROM_PKTCDVD is not set -+# CONFIG_ATA_OVER_ETH is not set -+# CONFIG_BLK_DEV_HD is not set -+# CONFIG_MISC_DEVICES is not set -+CONFIG_HAVE_IDE=y -+# CONFIG_IDE is not set -+ -+# -+# SCSI device support -+# -+# CONFIG_RAID_ATTRS is not set -+CONFIG_SCSI=y -+CONFIG_SCSI_DMA=y -+# CONFIG_SCSI_TGT is not set -+# CONFIG_SCSI_NETLINK is not set -+CONFIG_SCSI_PROC_FS=y -+ -+# -+# SCSI support type (disk, tape, CD-ROM) -+# -+CONFIG_BLK_DEV_SD=y -+# CONFIG_CHR_DEV_ST is not set -+# CONFIG_CHR_DEV_OSST is not set -+# CONFIG_BLK_DEV_SR is not set -+# CONFIG_CHR_DEV_SG is not set -+# CONFIG_CHR_DEV_SCH is not set -+ -+# -+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs -+# -+CONFIG_SCSI_MULTI_LUN=y -+# CONFIG_SCSI_CONSTANTS is not set -+# CONFIG_SCSI_LOGGING is not set -+# CONFIG_SCSI_SCAN_ASYNC is not set -+CONFIG_SCSI_WAIT_SCAN=m -+ -+# -+# SCSI Transports -+# -+# CONFIG_SCSI_SPI_ATTRS is not set -+# CONFIG_SCSI_FC_ATTRS is not set -+# CONFIG_SCSI_ISCSI_ATTRS is not set -+# CONFIG_SCSI_SAS_LIBSAS is not set -+# CONFIG_SCSI_SRP_ATTRS is not set -+CONFIG_SCSI_LOWLEVEL=y -+# CONFIG_ISCSI_TCP is not set -+# CONFIG_LIBFC is not set -+# CONFIG_SCSI_DEBUG is not set -+# CONFIG_SCSI_DH is not set -+# CONFIG_ATA is not set -+# CONFIG_MD is not set -+CONFIG_NETDEVICES=y -+# CONFIG_DUMMY is not set -+# CONFIG_BONDING is not set -+# CONFIG_MACVLAN is not set -+# CONFIG_EQUALIZER is not set -+# CONFIG_TUN is not set -+# CONFIG_VETH is not set -+CONFIG_PHYLIB=y -+ -+# -+# MII PHY device drivers -+# -+# CONFIG_MARVELL_PHY is not set -+# CONFIG_DAVICOM_PHY is not set -+# CONFIG_QSEMI_PHY is not set -+# CONFIG_LXT_PHY is not set -+# CONFIG_CICADA_PHY is not set -+# CONFIG_VITESSE_PHY is not set -+# CONFIG_SMSC_PHY is not set -+# CONFIG_BROADCOM_PHY is not set -+# CONFIG_BROADCOM5222_PHY is not set -+# CONFIG_ICPLUS_PHY is not set -+# CONFIG_REALTEK_PHY is not set -+# CONFIG_NATIONAL_PHY is not set -+CONFIG_NATIONAL8364x_PHY=y -+CONFIG_NATIONAL8384x_PHY=y -+CONFIG_MicrelKSZ8041_PHY=y -+# CONFIG_STE10XP is not set -+# CONFIG_LSI_ET1011C_PHY is not set -+# CONFIG_FIXED_PHY is not set -+# CONFIG_MDIO_BITBANG is not set -+CONFIG_NET_ETHERNET=y -+CONFIG_MII=y -+# CONFIG_ENC28J60 is not set -+# CONFIG_DNET is not set -+# CONFIG_IBM_NEW_EMAC_ZMII is not set -+# CONFIG_IBM_NEW_EMAC_RGMII is not set -+# CONFIG_IBM_NEW_EMAC_TAH is not set -+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set -+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set -+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set -+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set -+# CONFIG_B44 is not set -+CONFIG_FEC=y -+CONFIG_FEC2=y -+CONFIG_FEC_SHARED_PHY=y -+# CONFIG_MODELO_SWITCH is not set -+# CONFIG_NETDEV_1000 is not set -+# CONFIG_NETDEV_10000 is not set -+ -+# -+# Wireless LAN -+# -+# CONFIG_WLAN_PRE80211 is not set -+# CONFIG_WLAN_80211 is not set -+# CONFIG_IWLWIFI_LEDS is not set -+ -+# -+# Enable WiMAX (Networking options) to see the WiMAX drivers -+# -+ -+# -+# USB Network Adapters -+# -+# CONFIG_USB_CATC is not set -+# CONFIG_USB_KAWETH is not set -+# CONFIG_USB_PEGASUS is not set -+# CONFIG_USB_RTL8150 is not set -+# CONFIG_USB_USBNET is not set -+# CONFIG_WAN is not set -+# CONFIG_PPP is not set -+# CONFIG_SLIP is not set -+# CONFIG_NETCONSOLE is not set -+# CONFIG_NETPOLL is not set -+# CONFIG_NET_POLL_CONTROLLER is not set -+# CONFIG_ISDN is not set -+# CONFIG_PHONE is not set -+ -+# -+# Input device support -+# -+CONFIG_INPUT=y -+# CONFIG_INPUT_FF_MEMLESS is not set -+# CONFIG_INPUT_POLLDEV is not set -+ -+# -+# Userland interfaces -+# -+CONFIG_INPUT_MOUSEDEV=y -+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set -+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -+# CONFIG_INPUT_JOYDEV is not set -+CONFIG_INPUT_EVDEV=y -+# CONFIG_INPUT_EVBUG is not set -+ -+# -+# Input Device Drivers -+# -+CONFIG_INPUT_KEYBOARD=y -+# CONFIG_KEYBOARD_ATKBD is not set -+# CONFIG_KEYBOARD_SUNKBD is not set -+# CONFIG_KEYBOARD_LKKBD is not set -+# CONFIG_KEYBOARD_XTKBD is not set -+# CONFIG_KEYBOARD_NEWTON is not set -+# CONFIG_KEYBOARD_STOWAWAY is not set -+# CONFIG_INPUT_MOUSE is not set -+# CONFIG_INPUT_JOYSTICK is not set -+# CONFIG_INPUT_TABLET is not set -+# CONFIG_INPUT_TOUCHSCREEN is not set -+# CONFIG_INPUT_MISC is not set -+ -+# -+# Hardware I/O ports -+# -+CONFIG_SERIO=y -+CONFIG_SERIO_SERPORT=y -+# CONFIG_SERIO_LIBPS2 is not set -+# CONFIG_SERIO_RAW is not set -+# CONFIG_GAMEPORT is not set -+ -+# -+# Character devices -+# -+CONFIG_VT=y -+CONFIG_CONSOLE_TRANSLATIONS=y -+CONFIG_VT_CONSOLE=y -+CONFIG_HW_CONSOLE=y -+# CONFIG_VT_HW_CONSOLE_BINDING is not set -+CONFIG_DEVKMEM=y -+# CONFIG_SERIAL_NONSTANDARD is not set -+ -+# -+# Serial drivers -+# -+# CONFIG_SERIAL_8250 is not set -+ -+# -+# Non-8250 serial port support -+# -+CONFIG_SERIAL_CORE=y -+CONFIG_SERIAL_CORE_CONSOLE=y -+# CONFIG_SERIAL_COLDFIRE_IRDA is not set -+# CONFIG_SERIAL_COLDFIRE_EDMA is not set -+CONFIG_SERIAL_MCF=y -+CONFIG_SERIAL_MCF_BAUDRATE=115200 -+CONFIG_SERIAL_MCF_CONSOLE=y -+CONFIG_SERIAL_MCF_UART0=y -+# CONFIG_SERIAL_MCF_UART1 is not set -+# CONFIG_SERIAL_MCF_UART2 is not set -+# CONFIG_SERIAL_MCF_UART3 is not set -+# CONFIG_SERIAL_MCF_UART4 is not set -+# CONFIG_SERIAL_MCF_UART5 is not set -+# CONFIG_SERIAL_MCF_UART6 is not set -+# CONFIG_SERIAL_MCF_UART7 is not set -+# CONFIG_SERIAL_MCF_UART8 is not set -+# CONFIG_SERIAL_MCF_UART9 is not set -+CONFIG_UNIX98_PTYS=y -+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -+# CONFIG_LEGACY_PTYS is not set -+# CONFIG_IPMI_HANDLER is not set -+# CONFIG_HW_RANDOM is not set -+# CONFIG_R3964 is not set -+# CONFIG_RAW_DRIVER is not set -+# CONFIG_TCG_TPM is not set -+# CONFIG_I2C is not set -+CONFIG_SPI=y -+CONFIG_SPI_MASTER=y -+ -+# -+# SPI Master Controller Drivers -+# -+# CONFIG_SPI_BITBANG is not set -+CONFIG_SPI_DSPI=y -+# CONFIG_SPI_COLDFIRE_DSPI_EDMA is not set -+ -+# -+# SPI Protocol Masters -+# -+# CONFIG_SPI_SPIDEV is not set -+# CONFIG_SPI_TLE62X0 is not set -+# CONFIG_W1 is not set -+# CONFIG_POWER_SUPPLY is not set -+# CONFIG_HWMON is not set -+# CONFIG_THERMAL is not set -+# CONFIG_THERMAL_HWMON is not set -+CONFIG_WATCHDOG=y -+# CONFIG_WATCHDOG_NOWAYOUT is not set -+ -+# -+# Watchdog Device Drivers -+# -+# CONFIG_SOFT_WATCHDOG is not set -+CONFIG_COLDFIRE_WATCHDOG=y -+ -+# -+# USB-based Watchdog Cards -+# -+# CONFIG_USBPCWATCHDOG is not set -+CONFIG_SSB_POSSIBLE=y -+ -+# -+# Sonics Silicon Backplane -+# -+# CONFIG_SSB is not set -+ -+# -+# Multifunction device drivers -+# -+# CONFIG_MFD_CORE is not set -+# CONFIG_MFD_SM501 is not set -+# CONFIG_HTC_PASIC3 is not set -+# CONFIG_MFD_TMIO is not set -+# CONFIG_REGULATOR is not set -+ -+# -+# Multimedia devices -+# -+ -+# -+# Multimedia core support -+# -+# CONFIG_VIDEO_DEV is not set -+# CONFIG_DVB_CORE is not set -+# CONFIG_VIDEO_MEDIA is not set -+ -+# -+# Multimedia drivers -+# -+CONFIG_DAB=y -+# CONFIG_USB_DABUSB is not set -+ -+# -+# Graphics support -+# -+# CONFIG_VGASTATE is not set -+CONFIG_VIDEO_OUTPUT_CONTROL=m -+# CONFIG_FB is not set -+# CONFIG_BACKLIGHT_LCD_SUPPORT is not set -+ -+# -+# Display device support -+# -+# CONFIG_DISPLAY_SUPPORT is not set -+ -+# -+# Console display driver support -+# -+CONFIG_DUMMY_CONSOLE=y -+# CONFIG_SOUND is not set -+# CONFIG_HID_SUPPORT is not set -+CONFIG_USB_SUPPORT=y -+CONFIG_USB_ARCH_HAS_HCD=y -+# CONFIG_USB_ARCH_HAS_OHCI is not set -+CONFIG_USB_ARCH_HAS_EHCI=y -+CONFIG_USB=y -+# CONFIG_USB_DEBUG is not set -+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set -+ -+# -+# Miscellaneous USB options -+# -+CONFIG_USB_DEVICEFS=y -+CONFIG_USB_DEVICE_CLASS=y -+# CONFIG_USB_DYNAMIC_MINORS is not set -+CONFIG_USB_SUSPEND=y -+CONFIG_USB_OTG=y -+# CONFIG_USB_OTG_WHITELIST is not set -+# CONFIG_USB_OTG_BLACKLIST_HUB is not set -+# CONFIG_USB_MON is not set -+# CONFIG_USB_WUSB is not set -+# CONFIG_USB_WUSB_CBAF is not set -+ -+# -+# USB Host Controller Drivers -+# -+# CONFIG_USB_C67X00_HCD is not set -+CONFIG_USB_EHCI_HCD=m -+CONFIG_USB_EHCI_ROOT_HUB_TT=y -+# CONFIG_USB_EHCI_TT_NEWSCHED is not set -+CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y -+CONFIG_USB_EHCI_BIG_ENDIAN_DESC=y -+CONFIG_USB_EHCI_FSL=y -+# CONFIG_USB_OXU210HP_HCD is not set -+# CONFIG_USB_ISP116X_HCD is not set -+# CONFIG_USB_SL811_HCD is not set -+# CONFIG_USB_R8A66597_HCD is not set -+# CONFIG_USB_HWA_HCD is not set -+# CONFIG_USB_M5445X_ULPI is not set -+# CONFIG_USB_M5445X_FSLS is not set -+CONFIG_USB_M5441X_ULPI=y -+# CONFIG_USB_M5441X_FSLS is not set -+# CONFIG_USB_GADGET_MUSB_HDRC is not set -+ -+# -+# USB Device Class drivers -+# -+# CONFIG_USB_ACM is not set -+# CONFIG_USB_PRINTER is not set -+# CONFIG_USB_WDM is not set -+# CONFIG_USB_TMC is not set -+ -+# -+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; -+# -+ -+# -+# see USB_STORAGE Help for more information -+# -+CONFIG_USB_STORAGE=y -+# CONFIG_USB_STORAGE_DEBUG is not set -+# CONFIG_USB_STORAGE_DATAFAB is not set -+# CONFIG_USB_STORAGE_FREECOM is not set -+# CONFIG_USB_STORAGE_ISD200 is not set -+# CONFIG_USB_STORAGE_USBAT is not set -+# CONFIG_USB_STORAGE_SDDR09 is not set -+# CONFIG_USB_STORAGE_SDDR55 is not set -+# CONFIG_USB_STORAGE_JUMPSHOT is not set -+# CONFIG_USB_STORAGE_ALAUDA is not set -+# CONFIG_USB_STORAGE_ONETOUCH is not set -+# CONFIG_USB_STORAGE_KARMA is not set -+# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set -+# CONFIG_USB_LIBUSUAL is not set -+ -+# -+# USB Imaging devices -+# -+# CONFIG_USB_MDC800 is not set -+# CONFIG_USB_MICROTEK is not set -+ -+# -+# USB port drivers -+# -+# CONFIG_USB_SERIAL is not set -+ -+# -+# USB Miscellaneous drivers -+# -+# CONFIG_USB_EMI62 is not set -+# CONFIG_USB_EMI26 is not set -+# CONFIG_USB_ADUTUX is not set -+# CONFIG_USB_SEVSEG is not set -+# CONFIG_USB_RIO500 is not set -+# CONFIG_USB_LEGOTOWER is not set -+# CONFIG_USB_LCD is not set -+# CONFIG_USB_BERRY_CHARGE is not set -+# CONFIG_USB_LED is not set -+# CONFIG_USB_CYPRESS_CY7C63 is not set -+# CONFIG_USB_CYTHERM is not set -+# CONFIG_USB_PHIDGET is not set -+# CONFIG_USB_IDMOUSE is not set -+# CONFIG_USB_FTDI_ELAN is not set -+# CONFIG_USB_APPLEDISPLAY is not set -+# CONFIG_USB_SISUSBVGA is not set -+# CONFIG_USB_LD is not set -+# CONFIG_USB_TRANCEVIBRATOR is not set -+# CONFIG_USB_IOWARRIOR is not set -+# CONFIG_USB_TEST is not set -+# CONFIG_USB_ISIGHTFW is not set -+# CONFIG_USB_VST is not set -+CONFIG_USB_GADGET=m -+# CONFIG_USB_GADGET_DEBUG_FILES is not set -+CONFIG_USB_GADGET_VBUS_DRAW=2 -+CONFIG_USB_GADGET_SELECTED=y -+# CONFIG_USB_GADGET_AT91 is not set -+# CONFIG_USB_GADGET_ATMEL_USBA is not set -+CONFIG_USB_GADGET_FSL_USB2=y -+CONFIG_USB_FSL_USB2=m -+# CONFIG_USB_GADGET_LH7A40X is not set -+# CONFIG_USB_GADGET_OMAP is not set -+# CONFIG_USB_GADGET_PXA25X is not set -+# CONFIG_USB_GADGET_PXA27X is not set -+# CONFIG_USB_GADGET_S3C2410 is not set -+# CONFIG_USB_GADGET_IMX is not set -+# CONFIG_USB_GADGET_M66592 is not set -+# CONFIG_USB_GADGET_AMD5536UDC is not set -+# CONFIG_USB_GADGET_FSL_QE is not set -+# CONFIG_USB_GADGET_CI13XXX is not set -+# CONFIG_USB_GADGET_NET2280 is not set -+# CONFIG_USB_GADGET_GOKU is not set -+# CONFIG_USB_GADGET_DUMMY_HCD is not set -+CONFIG_USB_GADGET_DUALSPEED=y -+# CONFIG_USB_ZERO is not set -+# CONFIG_USB_ETH is not set -+CONFIG_USB_GADGETFS=m -+CONFIG_USB_FILE_STORAGE=m -+CONFIG_USB_FILE_STORAGE_TEST=y -+# CONFIG_USB_G_SERIAL is not set -+# CONFIG_USB_MIDI_GADGET is not set -+# CONFIG_USB_G_PRINTER is not set -+# CONFIG_USB_CDC_COMPOSITE is not set -+ -+# -+# OTG and related infrastructure -+# -+CONFIG_MMC=y -+# CONFIG_MMC_DEBUG is not set -+# CONFIG_MMC_UNSAFE_RESUME is not set -+ -+# -+# MMC/SD/SDIO Card Drivers -+# -+CONFIG_MMC_BLOCK=y -+CONFIG_MMC_BLOCK_BOUNCE=y -+# CONFIG_SDIO_UART is not set -+# CONFIG_MMC_TEST is not set -+ -+# -+# MMC/SD/SDIO Host Controller Drivers -+# -+# CONFIG_MMC_SDHCI is not set -+# CONFIG_MMC_SPI is not set -+# CONFIG_MMC_ESDHC is not set -+# CONFIG_MEMSTICK is not set -+# CONFIG_NEW_LEDS is not set -+# CONFIG_ACCESSIBILITY is not set -+CONFIG_RTC_LIB=y -+CONFIG_RTC_CLASS=y -+CONFIG_RTC_HCTOSYS=y -+CONFIG_RTC_HCTOSYS_DEVICE="rtc0" -+# CONFIG_RTC_DEBUG is not set -+ -+# -+# RTC interfaces -+# -+CONFIG_RTC_INTF_SYSFS=y -+CONFIG_RTC_INTF_PROC=y -+CONFIG_RTC_INTF_DEV=y -+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -+# CONFIG_RTC_DRV_TEST is not set -+ -+# -+# SPI RTC drivers -+# -+# CONFIG_RTC_DRV_M41T94 is not set -+# CONFIG_RTC_DRV_DS1305 is not set -+# CONFIG_RTC_DRV_DS1390 is not set -+# CONFIG_RTC_DRV_MAX6902 is not set -+# CONFIG_RTC_DRV_R9701 is not set -+# CONFIG_RTC_DRV_RS5C348 is not set -+# CONFIG_RTC_DRV_DS3234 is not set -+ -+# -+# Platform RTC drivers -+# -+# CONFIG_RTC_DRV_DS1286 is not set -+# CONFIG_RTC_DRV_DS1511 is not set -+# CONFIG_RTC_DRV_DS1553 is not set -+# CONFIG_RTC_DRV_DS1742 is not set -+# CONFIG_RTC_DRV_STK17TA8 is not set -+# CONFIG_RTC_DRV_M48T86 is not set -+# CONFIG_RTC_DRV_M48T35 is not set -+# CONFIG_RTC_DRV_M48T59 is not set -+# CONFIG_RTC_DRV_BQ4802 is not set -+# CONFIG_RTC_DRV_V3020 is not set -+ -+# -+# on-CPU RTC drivers -+# -+# CONFIG_RTC_MCF is not set -+CONFIG_RTC_M5441X=y -+CONFIG_DMADEVICES=y -+ -+# -+# DMA Devices -+# -+CONFIG_COLDFIRE_EDMA=y -+CONFIG_COLDFIRE_EDMA_TEST=m -+# CONFIG_UIO is not set -+# CONFIG_STAGING is not set -+ -+# -+# Character devices -+# -+CONFIG_TICK_ONESHOT=y -+CONFIG_NO_HZ=y -+CONFIG_HIGH_RES_TIMERS=y -+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y -+ -+# -+# File systems -+# -+CONFIG_EXT2_FS=y -+# CONFIG_EXT2_FS_XATTR is not set -+# CONFIG_EXT2_FS_XIP is not set -+CONFIG_EXT3_FS=y -+CONFIG_EXT3_FS_XATTR=y -+# CONFIG_EXT3_FS_POSIX_ACL is not set -+# CONFIG_EXT3_FS_SECURITY is not set -+# CONFIG_EXT4_FS is not set -+CONFIG_JBD=y -+CONFIG_FS_MBCACHE=y -+# CONFIG_REISERFS_FS is not set -+# CONFIG_JFS_FS is not set -+# CONFIG_FS_POSIX_ACL is not set -+CONFIG_FILE_LOCKING=y -+# CONFIG_XFS_FS is not set -+# CONFIG_GFS2_FS is not set -+# CONFIG_OCFS2_FS is not set -+# CONFIG_BTRFS_FS is not set -+CONFIG_DNOTIFY=y -+CONFIG_INOTIFY=y -+CONFIG_INOTIFY_USER=y -+# CONFIG_QUOTA is not set -+# CONFIG_AUTOFS_FS is not set -+# CONFIG_AUTOFS4_FS is not set -+# CONFIG_FUSE_FS is not set -+ -+# -+# CD-ROM/DVD Filesystems -+# -+# CONFIG_ISO9660_FS is not set -+# CONFIG_UDF_FS is not set -+ -+# -+# DOS/FAT/NT Filesystems -+# -+CONFIG_FAT_FS=y -+CONFIG_MSDOS_FS=y -+CONFIG_VFAT_FS=y -+CONFIG_FAT_DEFAULT_CODEPAGE=437 -+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -+CONFIG_NTFS_FS=y -+# CONFIG_NTFS_DEBUG is not set -+CONFIG_NTFS_RW=y -+ -+# -+# Pseudo filesystems -+# -+CONFIG_PROC_FS=y -+# CONFIG_PROC_KCORE is not set -+CONFIG_PROC_SYSCTL=y -+CONFIG_PROC_PAGE_MONITOR=y -+CONFIG_SYSFS=y -+CONFIG_TMPFS=y -+# CONFIG_TMPFS_POSIX_ACL is not set -+# CONFIG_HUGETLB_PAGE is not set -+# CONFIG_CONFIGFS_FS is not set -+CONFIG_MISC_FILESYSTEMS=y -+# CONFIG_ADFS_FS is not set -+# CONFIG_AFFS_FS is not set -+# CONFIG_HFS_FS is not set -+# CONFIG_HFSPLUS_FS is not set -+# CONFIG_BEFS_FS is not set -+# CONFIG_BFS_FS is not set -+# CONFIG_EFS_FS is not set -+CONFIG_JFFS2_FS=y -+CONFIG_JFFS2_FS_DEBUG=0 -+CONFIG_JFFS2_FS_WRITEBUFFER=y -+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set -+# CONFIG_JFFS2_SUMMARY is not set -+# CONFIG_JFFS2_FS_XATTR is not set -+# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set -+CONFIG_JFFS2_ZLIB=y -+# CONFIG_JFFS2_LZO is not set -+CONFIG_JFFS2_RTIME=y -+# CONFIG_JFFS2_RUBIN is not set -+# CONFIG_CRAMFS is not set -+# CONFIG_SQUASHFS is not set -+# CONFIG_VXFS_FS is not set -+CONFIG_MINIX_FS=y -+# CONFIG_OMFS_FS is not set -+# CONFIG_HPFS_FS is not set -+# CONFIG_QNX4FS_FS is not set -+# CONFIG_ROMFS_FS is not set -+# CONFIG_SYSV_FS is not set -+# CONFIG_UFS_FS is not set -+CONFIG_NETWORK_FILESYSTEMS=y -+CONFIG_NFS_FS=y -+# CONFIG_NFS_V3 is not set -+# CONFIG_NFS_V4 is not set -+CONFIG_ROOT_NFS=y -+# CONFIG_NFSD is not set -+CONFIG_LOCKD=y -+CONFIG_NFS_COMMON=y -+CONFIG_SUNRPC=y -+# CONFIG_SUNRPC_REGISTER_V4 is not set -+# CONFIG_RPCSEC_GSS_KRB5 is not set -+# CONFIG_RPCSEC_GSS_SPKM3 is not set -+# CONFIG_SMB_FS is not set -+# CONFIG_CIFS is not set -+# CONFIG_NCP_FS is not set -+# CONFIG_CODA_FS is not set -+# CONFIG_AFS_FS is not set -+ -+# -+# Partition Types -+# -+CONFIG_PARTITION_ADVANCED=y -+# CONFIG_ACORN_PARTITION is not set -+# CONFIG_OSF_PARTITION is not set -+# CONFIG_AMIGA_PARTITION is not set -+# CONFIG_ATARI_PARTITION is not set -+# CONFIG_MAC_PARTITION is not set -+CONFIG_MSDOS_PARTITION=y -+# CONFIG_BSD_DISKLABEL is not set -+# CONFIG_MINIX_SUBPARTITION is not set -+# CONFIG_SOLARIS_X86_PARTITION is not set -+# CONFIG_UNIXWARE_DISKLABEL is not set -+# CONFIG_LDM_PARTITION is not set -+# CONFIG_SGI_PARTITION is not set -+# CONFIG_ULTRIX_PARTITION is not set -+# CONFIG_SUN_PARTITION is not set -+# CONFIG_KARMA_PARTITION is not set -+# CONFIG_EFI_PARTITION is not set -+# CONFIG_SYSV68_PARTITION is not set -+CONFIG_NLS=y -+CONFIG_NLS_DEFAULT="iso8859-1" -+CONFIG_NLS_CODEPAGE_437=y -+# CONFIG_NLS_CODEPAGE_737 is not set -+# CONFIG_NLS_CODEPAGE_775 is not set -+# CONFIG_NLS_CODEPAGE_850 is not set -+# CONFIG_NLS_CODEPAGE_852 is not set -+# CONFIG_NLS_CODEPAGE_855 is not set -+# CONFIG_NLS_CODEPAGE_857 is not set -+# CONFIG_NLS_CODEPAGE_860 is not set -+# CONFIG_NLS_CODEPAGE_861 is not set -+# CONFIG_NLS_CODEPAGE_862 is not set -+# CONFIG_NLS_CODEPAGE_863 is not set -+# CONFIG_NLS_CODEPAGE_864 is not set -+# CONFIG_NLS_CODEPAGE_865 is not set -+# CONFIG_NLS_CODEPAGE_866 is not set -+# CONFIG_NLS_CODEPAGE_869 is not set -+# CONFIG_NLS_CODEPAGE_936 is not set -+# CONFIG_NLS_CODEPAGE_950 is not set -+# CONFIG_NLS_CODEPAGE_932 is not set -+# CONFIG_NLS_CODEPAGE_949 is not set -+# CONFIG_NLS_CODEPAGE_874 is not set -+# CONFIG_NLS_ISO8859_8 is not set -+# CONFIG_NLS_CODEPAGE_1250 is not set -+# CONFIG_NLS_CODEPAGE_1251 is not set -+# CONFIG_NLS_ASCII is not set -+CONFIG_NLS_ISO8859_1=y -+# CONFIG_NLS_ISO8859_2 is not set -+# CONFIG_NLS_ISO8859_3 is not set -+# CONFIG_NLS_ISO8859_4 is not set -+# CONFIG_NLS_ISO8859_5 is not set -+# CONFIG_NLS_ISO8859_6 is not set -+# CONFIG_NLS_ISO8859_7 is not set -+# CONFIG_NLS_ISO8859_9 is not set -+# CONFIG_NLS_ISO8859_13 is not set -+# CONFIG_NLS_ISO8859_14 is not set -+# CONFIG_NLS_ISO8859_15 is not set -+# CONFIG_NLS_KOI8_R is not set -+# CONFIG_NLS_KOI8_U is not set -+CONFIG_NLS_UTF8=y -+# CONFIG_DLM is not set -+ -+# -+# Kernel hacking -+# -+# CONFIG_PRINTK_TIME is not set -+CONFIG_ENABLE_WARN_DEPRECATED=y -+# CONFIG_ENABLE_MUST_CHECK is not set -+CONFIG_FRAME_WARN=1024 -+# CONFIG_MAGIC_SYSRQ is not set -+# CONFIG_UNUSED_SYMBOLS is not set -+# CONFIG_DEBUG_FS is not set -+# CONFIG_HEADERS_CHECK is not set -+# CONFIG_DEBUG_KERNEL is not set -+# CONFIG_DEBUG_BUGVERBOSE is not set -+# CONFIG_DEBUG_MEMORY_INIT is not set -+# CONFIG_RCU_CPU_STALL_DETECTOR is not set -+# CONFIG_SYSCTL_SYSCALL_CHECK is not set -+ -+# -+# Tracers -+# -+# CONFIG_DYNAMIC_PRINTK_DEBUG is not set -+# CONFIG_SAMPLES is not set -+# CONFIG_BOOTPARAM is not set -+ -+# -+# Security options -+# -+# CONFIG_KEYS is not set -+# CONFIG_SECURITY is not set -+# CONFIG_SECURITYFS is not set -+# CONFIG_SECURITY_FILE_CAPABILITIES is not set -+CONFIG_CRYPTO=y -+ -+# -+# Crypto core or helper -+# -+# CONFIG_CRYPTO_FIPS is not set -+CONFIG_CRYPTO_ALGAPI=y -+CONFIG_CRYPTO_ALGAPI2=y -+CONFIG_CRYPTO_AEAD=y -+CONFIG_CRYPTO_AEAD2=y -+CONFIG_CRYPTO_BLKCIPHER=y -+CONFIG_CRYPTO_BLKCIPHER2=y -+CONFIG_CRYPTO_HASH=y -+CONFIG_CRYPTO_HASH2=y -+CONFIG_CRYPTO_RNG2=y -+CONFIG_CRYPTO_MANAGER=y -+CONFIG_CRYPTO_MANAGER2=y -+# CONFIG_CRYPTO_GF128MUL is not set -+# CONFIG_CRYPTO_NULL is not set -+# CONFIG_CRYPTO_CRYPTD is not set -+CONFIG_CRYPTO_AUTHENC=y -+CONFIG_CRYPTO_TEST=m -+ -+# -+# Authenticated Encryption with Associated Data -+# -+# CONFIG_CRYPTO_CCM is not set -+# CONFIG_CRYPTO_GCM is not set -+# CONFIG_CRYPTO_SEQIV is not set -+ -+# -+# Block modes -+# -+CONFIG_CRYPTO_CBC=y -+# CONFIG_CRYPTO_CTR is not set -+# CONFIG_CRYPTO_CTS is not set -+CONFIG_CRYPTO_ECB=y -+# CONFIG_CRYPTO_LRW is not set -+CONFIG_CRYPTO_PCBC=m -+# CONFIG_CRYPTO_XTS is not set -+ -+# -+# Hash modes -+# -+CONFIG_CRYPTO_HMAC=y -+# CONFIG_CRYPTO_XCBC is not set -+ -+# -+# Digest -+# -+CONFIG_CRYPTO_CRC32C=y -+# CONFIG_CRYPTO_MD4 is not set -+CONFIG_CRYPTO_MD5=y -+# CONFIG_CRYPTO_MICHAEL_MIC is not set -+# CONFIG_CRYPTO_RMD128 is not set -+# CONFIG_CRYPTO_RMD160 is not set -+# CONFIG_CRYPTO_RMD256 is not set -+# CONFIG_CRYPTO_RMD320 is not set -+CONFIG_CRYPTO_SHA1=y -+# CONFIG_CRYPTO_SHA256 is not set -+# CONFIG_CRYPTO_SHA512 is not set -+# CONFIG_CRYPTO_TGR192 is not set -+# CONFIG_CRYPTO_WP512 is not set -+ -+# -+# Ciphers -+# -+# CONFIG_CRYPTO_AES is not set -+# CONFIG_CRYPTO_ANUBIS is not set -+# CONFIG_CRYPTO_ARC4 is not set -+# CONFIG_CRYPTO_BLOWFISH is not set -+# CONFIG_CRYPTO_CAMELLIA is not set -+# CONFIG_CRYPTO_CAST5 is not set -+# CONFIG_CRYPTO_CAST6 is not set -+CONFIG_CRYPTO_DES=y -+# CONFIG_CRYPTO_FCRYPT is not set -+# CONFIG_CRYPTO_KHAZAD is not set -+# CONFIG_CRYPTO_SALSA20 is not set -+# CONFIG_CRYPTO_SEED is not set -+# CONFIG_CRYPTO_SERPENT is not set -+# CONFIG_CRYPTO_TEA is not set -+# CONFIG_CRYPTO_TWOFISH is not set -+ -+# -+# Compression -+# -+# CONFIG_CRYPTO_DEFLATE is not set -+# CONFIG_CRYPTO_LZO is not set -+ -+# -+# Random Number Generation -+# -+# CONFIG_CRYPTO_ANSI_CPRNG is not set -+ -+# -+# OCF Configuration -+# -+# CONFIG_OCF_OCF is not set -+ -+# -+# Talitos Driver -+# -+CONFIG_CRYPTO_HW=y -+# CONFIG_CRYPTO_DEV_MCFCAU is not set -+ -+# -+# Library routines -+# -+CONFIG_BITREVERSE=y -+CONFIG_GENERIC_FIND_LAST_BIT=y -+CONFIG_CRC_CCITT=y -+CONFIG_CRC16=y -+# CONFIG_CRC_T10DIF is not set -+CONFIG_CRC_ITU_T=y -+CONFIG_CRC32=y -+CONFIG_CRC7=y -+CONFIG_LIBCRC32C=y -+CONFIG_ZLIB_INFLATE=y -+CONFIG_ZLIB_DEFLATE=y -+CONFIG_PLIST=y -+CONFIG_HAS_IOMEM=y -+CONFIG_HAS_IOPORT=y -+CONFIG_HAS_DMA=y ---- /dev/null -+++ b/arch/m68k/include/asm/cf_5441x_cacheflush.h -@@ -0,0 +1,527 @@ -+/* -+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved. -+ * -+ * Based on include/asm-m68k/cacheflush.h -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by the -+ * Free Software Foundation; either version 2 of the License, or (at your -+ * option) any later version. -+ */ -+#ifndef M68K_CF_5441x_CACHEFLUSH_H -+#define M68K_CF_5441x_CACHEFLUSH_H -+ -+#include <asm/cfcache.h> -+ -+/* -+ * Coldfire Cache Model -+ * -+ * The Coldfire processors use a Harvard architecture cache configured -+ * as four-way set associative. The cache does not implement bus snooping -+ * so cache coherency with other masters must be maintained in software. -+ * -+ * The cache is managed via the CPUSHL instruction in conjunction with -+ * bits set in the CACR (cache control register). Currently the code -+ * uses the CPUSHL enhancement which adds the ability to -+ * invalidate/clear/push a cacheline by physical address. This feature -+ * is designated in the Hardware Configuration Register [D1-CPES]. -+ * -+ * CACR Bits: -+ * DPI[28] cpushl invalidate disable for d-cache -+ * IDPI[12] cpushl invalidate disable for i-cache -+ * SPA[14] cpushl search by physical address -+ * IVO[20] cpushl invalidate only -+ * -+ * Random Terminology: -+ * * invalidate = reset the cache line's valid bit -+ * * push = generate a line-sized store of the data if its contents are -+ * marked as modifed (the modified flag is cleared after -+ * the store) -+ * * clear = push + invalidate -+ */ -+ -+/** -+ * flush_icache - Flush all of the instruction cache -+ */ -+static inline void flush_icache(void) -+{ -+ asm volatile("nop\n" -+ "moveq%.l #0,%%d0\n" -+ "moveq%.l #0,%%d1\n" -+ "move%.l %%d0,%%a0\n" -+ "1:\n" -+ "cpushl %%ic,(%%a0)\n" -+ "add%.l #0x0010,%%a0\n" -+ "addq%.l #1,%%d1\n" -+ "cmpi%.l %0,%%d1\n" -+ "bne 1b\n" -+ "moveq%.l #0,%%d1\n" -+ "addq%.l #1,%%d0\n" -+ "move%.l %%d0,%%a0\n" -+ "cmpi%.l #4,%%d0\n" -+ "bne 1b\n" -+ : : "i" (CACHE_SETS) -+ : "a0", "d0", "d1"); -+} -+ -+/** -+ * flush_dcache - Flush all of the data cache -+ */ -+static inline void flush_dcache(void) -+{ -+ asm volatile("nop\n" -+ "moveq%.l #0,%%d0\n" -+ "moveq%.l #0,%%d1\n" -+ "move%.l %%d0,%%a0\n" -+ "1:\n" -+ "cpushl %%dc,(%%a0)\n" -+ "add%.l #0x0010,%%a0\n" -+ "addq%.l #1,%%d1\n" -+ "cmpi%.l %0,%%d1\n" -+ "bne 1b\n" -+ "moveq%.l #0,%%d1\n" -+ "addq%.l #1,%%d0\n" -+ "move%.l %%d0,%%a0\n" -+ "cmpi%.l #4,%%d0\n" -+ "bne 1b\n" -+ : : "i" (CACHE_SETS) -+ : "a0", "d0", "d1"); -+} -+ -+/** -+ * flush_bcache - Flush all of both caches -+ */ -+static inline void flush_bcache(void) -+{ -+ asm volatile("nop\n" -+ "moveq%.l #0,%%d0\n" -+ "moveq%.l #0,%%d1\n" -+ "move%.l %%d0,%%a0\n" -+ "1:\n" -+ "cpushl %%bc,(%%a0)\n" -+ "add%.l #0x0010,%%a0\n" -+ "addq%.l #1,%%d1\n" -+ "cmpi%.l %0,%%d1\n" -+ "bne 1b\n" -+ "moveq%.l #0,%%d1\n" -+ "addq%.l #1,%%d0\n" -+ "move%.l %%d0,%%a0\n" -+ "cmpi%.l #4,%%d0\n" -+ "bne 1b\n" -+ : : "i" (CACHE_SETS) -+ : "a0", "d0", "d1"); -+} -+ -+/** -+ * cf_cache_clear - invalidate cache -+ * @paddr: starting physical address -+ * @len: number of bytes -+ * -+ * Invalidate cache lines starting at paddr for len bytes. -+ * Those lines are not pushed. -+ */ -+static inline void cf_cache_clear(unsigned long paddr, int len) -+{ -+ /* number of lines */ -+ len = (len + (CACHE_LINE_SIZE-1)) / CACHE_LINE_SIZE; -+ if (len == 0) -+ return; -+ -+ /* align on set boundary */ -+ paddr &= 0xfffffff0; -+ -+ asm volatile("nop\n" -+ "move%.l %2,%%d0\n" -+ "or%.l %3,%%d0\n" -+ "movec %%d0,%%cacr\n" -+ "move%.l %0,%%a0\n" -+ "move%.l %1,%%d0\n" -+ "1:\n" -+ "cpushl %%bc,(%%a0)\n" -+ "lea 0x10(%%a0),%%a0\n" -+ "subq%.l #1,%%d0\n" -+ "bne%.b 1b\n" -+ "movec %2,%%cacr\n" -+ : : "a" (paddr), "r" (len), -+ "r" (shadow_cacr), -+ "i" (CF_CACR_SPA+CF_CACR_IVO) -+ : "a0", "d0"); -+} -+ -+/** -+ * cf_cache_push - Push dirty cache out with no invalidate -+ * @paddr: starting physical address -+ * @len: number of bytes -+ * -+ * Push the any dirty lines starting at paddr for len bytes. -+ * Those lines are not invalidated. -+ */ -+static inline void cf_cache_push(unsigned long paddr, int len) -+{ -+ /* number of lines */ -+ len = (len + (CACHE_LINE_SIZE-1)) / CACHE_LINE_SIZE; -+ if (len == 0) -+ return; -+ -+ /* align on set boundary */ -+ paddr &= 0xfffffff0; -+ -+ asm volatile("nop\n" -+ "move%.l %2,%%d0\n" -+ "or%.l %3,%%d0\n" -+ "movec %%d0,%%cacr\n" -+ "move%.l %0,%%a0\n" -+ "move%.l %1,%%d0\n" -+ "1:\n" -+ "cpushl %%bc,(%%a0)\n" -+ "lea 0x10(%%a0),%%a0\n" -+ "subq%.l #1,%%d0\n" -+ "bne.b 1b\n" -+ "movec %2,%%cacr\n" -+ : : "a" (paddr), "r" (len), -+ "r" (shadow_cacr), -+ "i" (CF_CACR_SPA+CF_CACR_DPI+CF_CACR_IDPI) -+ : "a0", "d0"); -+} -+ -+/** -+ * cf_cache_flush - Push dirty cache out and invalidate -+ * @paddr: starting physical address -+ * @len: number of bytes -+ * -+ * Push the any dirty lines starting at paddr for len bytes and -+ * invalidate those lines. -+ */ -+static inline void cf_cache_flush(unsigned long paddr, int len) -+{ -+ /* number of lines */ -+ len = (len + (CACHE_LINE_SIZE-1)) / CACHE_LINE_SIZE; -+ if (len == 0) -+ return; -+ -+ /* align on set boundary */ -+ paddr &= 0xfffffff0; -+ -+ asm volatile("nop\n" -+ "move%.l %2,%%d0\n" -+ "or%.l %3,%%d0\n" -+ "movec %%d0,%%cacr\n" -+ "move%.l %0,%%a0\n" -+ "move%.l %1,%%d0\n" -+ "1:\n" -+ "cpushl %%bc,(%%a0)\n" -+ "lea 0x10(%%a0),%%a0\n" -+ "subq%.l #1,%%d0\n" -+ "bne.b 1b\n" -+ "movec %2,%%cacr\n" -+ : : "a" (paddr), "r" (len), -+ "r" (shadow_cacr), -+ "i" (CF_CACR_SPA) -+ : "a0", "d0"); -+} -+ -+/** -+ * cf_cache_flush_range - Push dirty data/inst cache in range out and invalidate -+ * @vstart - starting virtual address -+ * @vend: ending virtual address -+ * -+ * Push the any dirty data/instr lines starting at paddr for len bytes and -+ * invalidate those lines. -+ */ -+static inline void cf_cache_flush_range(unsigned long vstart, -+ unsigned long vend) -+{ -+ int len; -+ -+ /* align on set boundary */ -+ vstart &= 0xfffffff0; -+ vend = PAGE_ALIGN((vend + (CACHE_LINE_SIZE-1))) & 0xfffffff0; -+ len = vend - vstart; -+ if (len == 0) -+ return; -+ vstart = __pa(vstart); -+ vend = vstart + len; -+ -+ asm volatile("nop\n" -+ "move%.l %2,%%d0\n" -+ "or%.l %3,%%d0\n" -+ "movec %%d0,%%cacr\n" -+ "move%.l %0,%%a0\n" -+ "move%.l %1,%%a1\n" -+ "1:\n" -+ "cpushl %%bc,(%%a0)\n" -+ "lea 0x10(%%a0),%%a0\n" -+ "cmpa%.l %%a0,%%a1\n" -+ "bne.b 1b\n" -+ "movec %2,%%cacr\n" -+ : /* no return */ -+ : "a" (vstart), "a" (vend), -+ "r" (shadow_cacr), -+ "i" (CF_CACR_SPA) -+ : "a0", "a1", "d0"); -+} -+ -+/** -+ * cf_dcache_flush_range - Push dirty data cache in range out and invalidate -+ * @vstart - starting virtual address -+ * @vend: ending virtual address -+ * -+ * Push/Clear the virtual range *vstart* -> *vend* using the enhanced -+ * cpushl instruction to search by physical address. -+ * -+ * Assumes CACR[IVO] is 0 -+ * CACR[DDPI] is 0 -+ * -+ * Sets CACR[SPA] to 1 for the duration of this routine -+ */ -+static inline void cf_dcache_flush_range(unsigned long vstart, -+ unsigned long vend) -+{ -+ /* align on set boundary */ -+ vstart &= 0xfffffff0; -+ vend = (vend + (CACHE_LINE_SIZE-1)) & 0xfffffff0; -+ -+ asm volatile("nop\n" -+ "move%.l %2,%%d0\n" -+ "or%.l %3,%%d0\n" -+ "movec %%d0,%%cacr\n" -+ "move%.l %0,%%a0\n" -+ "move%.l %1,%%a1\n" -+ "1:\n" -+ "cpushl %%dc,(%%a0)\n" -+ "lea 0x10(%%a0),%%a0\n" -+ "cmpa%.l %%a0,%%a1\n" -+ "bne.b 1b\n" -+ "movec %2,%%cacr\n" -+ : /* no return */ -+ : "a" (__pa(vstart)), "a" (__pa(vend)), -+ "r" (shadow_cacr), -+ "i" (CF_CACR_SPA) -+ : "a0", "a1", "d0"); -+} -+ -+/** -+ * cf_dcache_inv_range - Invalidate data cache in range -+ * @vstart - starting virtual address -+ * @vend: ending virtual address -+ * -+ * Invalidate the virtual range *vstart* -> *vend* using the enhanced -+ * cpushl instruction to search by physical address. -+ * -+ * Assumes CACR[DDPI] is 0 -+ * -+ * Sets CACR[SPA] and CACR[IVO] to 1 for the duration of this routine -+ */ -+static inline void cf_dcache_inv_range(unsigned long vstart, -+ unsigned long vend) -+{ -+ /* align on set boundary */ -+ vstart &= 0xfffffff0; -+ vend = (vend + (CACHE_LINE_SIZE-1)) & 0xfffffff0; -+ -+ asm volatile("nop\n" -+ "move%.l %2,%%d0\n" -+ "or%.l %3,%%d0\n" -+ "movec %%d0,%%cacr\n" -+ "move%.l %0,%%a0\n" -+ "move%.l %1,%%a1\n" -+ "1:\n" -+ "cpushl %%dc,(%%a0)\n" -+ "lea 0x10(%%a0),%%a0\n" -+ "cmpa%.l %%a0,%%a1\n" -+ "bne.b 1b\n" -+ "movec %2,%%cacr\n" -+ : /* no return */ -+ : "a" (__pa(vstart)), "a" (__pa(vend)), -+ "r" (shadow_cacr), -+ "i" (CF_CACR_SPA | CF_CACR_IVO) -+ : "a0", "a1", "d0"); -+} -+ -+/** -+ * cf_dcache_push_range - Push data cache in range -+ * @vstart - starting virtual address -+ * @vend: ending virtual address -+ * -+ * Push the virtual range *vstart* -> *vend* using the enhanced -+ * cpushl instruction to search by physical address. -+ * -+ * Assumes CACR[IVO] is 0 -+ * -+ * Sets CACR[SPA] and CACR[DDPI] to 1 for the duration of this routine -+ */ -+static inline void cf_dcache_push_range(unsigned long vstart, -+ unsigned long vend) -+{ -+ /* align on set boundary */ -+ vstart &= 0xfffffff0; -+ vend = (vend + (CACHE_LINE_SIZE-1)) & 0xfffffff0; -+ -+ asm volatile("nop\n" -+ "move%.l %2,%%d0\n" -+ "or%.l %3,%%d0\n" -+ "movec %%d0,%%cacr\n" -+ "move%.l %0,%%a0\n" -+ "move%.l %1,%%a1\n" -+ "1:\n" -+ "cpushl %%dc,(%%a0)\n" -+ "lea 0x10(%%a0),%%a0\n" -+ "cmpa%.l %%a0,%%a1\n" -+ "bne.b 1b\n" -+ "movec %2,%%cacr\n" -+ : /* no return */ -+ : "a" (__pa(vstart)), "a" (__pa(vend)), -+ "r" (shadow_cacr), -+ "i" (CF_CACR_SPA | CF_CACR_DPI) -+ : "a0", "a1", "d0"); -+} -+ -+/** -+ * cf_icache_flush_range - Push dirty inst cache in range out and invalidate -+ * @vstart - starting virtual address -+ * @vend: ending virtual address -+ * -+ * Push the any dirty instr lines starting at paddr for len bytes and -+ * invalidate those lines. This should just be an invalidate since you -+ * shouldn't be able to have dirty instruction cache. -+ */ -+static inline void cf_icache_flush_range(unsigned long vstart, -+ unsigned long vend) -+{ -+ /* align on set boundary */ -+ vstart &= 0xfffffff0; -+ vend = (vend + (CACHE_LINE_SIZE-1)) & 0xfffffff0; -+ -+ asm volatile("nop\n" -+ "move%.l %2,%%d0\n" -+ "or%.l %3,%%d0\n" -+ "movec %%d0,%%cacr\n" -+ "move%.l %0,%%a0\n" -+ "move%.l %1,%%a1\n" -+ "1:\n" -+ "cpushl %%ic,(%%a0)\n" -+ "lea 0x10(%%a0),%%a0\n" -+ "cmpa%.l %%a0,%%a1\n" -+ "bne.b 1b\n" -+ "movec %2,%%cacr\n" -+ : /* no return */ -+ : "a" (__pa(vstart)), "a" (__pa(vend)), -+ "r" (shadow_cacr), -+ "i" (CF_CACR_SPA) -+ : "a0", "a1", "d0"); -+} -+ -+/** -+ * flush_cache_mm - Flush an mm_struct -+ * @mm: mm_struct to flush -+ */ -+static inline void flush_cache_mm(struct mm_struct *mm) -+{ -+ if (mm == current->mm) -+ flush_bcache(); -+} -+ -+#define flush_cache_dup_mm(mm) flush_cache_mm(mm) -+ -+/** -+ * flush_cache_range - Flush a cache range -+ * @vma: vma struct -+ * @start: Starting address -+ * @end: Ending address -+ * -+ * flush_cache_range must be a macro to avoid a dependency on -+ * linux/mm.h which includes this file. -+ */ -+static inline void flush_cache_range(struct vm_area_struct *vma, -+ unsigned long start, unsigned long end) -+{ -+ if (vma->vm_mm == current->mm) -+ cf_cache_flush_range(start, end); -+} -+ -+/** -+ * flush_cache_page - Flush a page of the cache -+ * @vma: vma struct -+ * @vmaddr: -+ * @pfn: page numer -+ * -+ * flush_cache_page must be a macro to avoid a dependency on -+ * linux/mm.h which includes this file. -+ */ -+static inline void flush_cache_page(struct vm_area_struct *vma, -+ unsigned long vmaddr, unsigned long pfn) -+{ -+ if (vma->vm_mm == current->mm) -+ cf_cache_flush_range(vmaddr, vmaddr+PAGE_SIZE); -+} -+ -+/** -+ * __flush_page_to_ram - Push a page out of the cache -+ * @vaddr: Virtual address at start of page -+ * -+ * Push the page at kernel virtual address *vaddr* and clear -+ * the icache. -+ */ -+static inline void __flush_page_to_ram(void *vaddr) -+{ -+ asm volatile("nop\n" -+ "move%.l %2,%%d0\n" -+ "or%.l %3,%%d0\n" -+ "movec %%d0,%%cacr\n" -+ "move%.l %0,%%d0\n" -+ "and%.l #0xfffffff0,%%d0\n" -+ "move%.l %%d0,%%a0\n" -+ "move%.l %1,%%d0\n" -+ "1:\n" -+ "cpushl %%bc,(%%a0)\n" -+ "lea 0x10(%%a0),%%a0\n" -+ "subq%.l #1,%%d0\n" -+ "bne.b 1b\n" -+ "movec %2,%%cacr\n" -+ : : "a" (__pa(vaddr)), "i" (PAGE_SIZE / CACHE_LINE_SIZE), -+ "r" (shadow_cacr), "i" (CF_CACR_SPA) -+ : "a0", "d0"); -+} -+ -+/* -+ * Various defines for the kernel. -+ */ -+ -+extern void cache_clear(unsigned long paddr, int len); -+extern void cache_push(unsigned long paddr, int len); -+extern void flush_icache_range(unsigned long address, unsigned long endaddr); -+ -+#define flush_cache_all() flush_bcache() -+#define flush_cache_vmap(start, end) flush_bcache() -+#define flush_cache_vunmap(start, end) flush_bcache() -+ -+#define flush_dcache_range(vstart, vend) cf_dcache_flush_range(vstart, vend) -+#define flush_dcache_page(page) __flush_page_to_ram(page_address(page)) -+#define flush_dcache_mmap_lock(mapping) do { } while (0) -+#define flush_dcache_mmap_unlock(mapping) do { } while (0) -+ -+#define flush_icache_page(vma, page) __flush_page_to_ram(page_address(page)) -+ -+/** -+ * copy_to_user_page - Copy memory to user page -+ */ -+static inline void copy_to_user_page(struct vm_area_struct *vma, -+ struct page *page, unsigned long vaddr, -+ void *dst, void *src, int len) -+{ -+ memcpy(dst, src, len); -+ cf_cache_flush(page_to_phys(page), PAGE_SIZE); -+} -+ -+/** -+ * copy_from_user_page - Copy memory from user page -+ */ -+static inline void copy_from_user_page(struct vm_area_struct *vma, -+ struct page *page, unsigned long vaddr, -+ void *dst, void *src, int len) -+{ -+ cf_cache_flush(page_to_phys(page), PAGE_SIZE); -+ memcpy(dst, src, len); -+} -+ -+#endif /* M68K_CF_5441x_CACHEFLUSH_H */ ---- /dev/null -+++ b/arch/m68k/include/asm/mcf5441x_ccm.h -@@ -0,0 +1,157 @@ -+/* -+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved. -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by the -+ * Free Software Foundation; either version 2 of the License, or (at your -+ * option) any later version. -+ */ -+ -+#ifndef __MCF5441X_CCM_H__ -+#define __MCF5441X_CCM_H__ -+ -+/********************************************************************* -+* -+* Chip Configuration Module (CCM) -+* -+*********************************************************************/ -+ -+/* Register read/write macros */ -+/* Chip Configuration Register (Read-only) (256 or 360 TEPBGA) */ -+#define MCF_CCM_CCR MCF_REG16(0xEC090004) -+/* Reset Configuration (Read-only) (256 or 360 TEPBGA) */ -+#define MCF_CCM_RCON MCF_REG16(0xEC090008) -+/* Chip Identification Register (Read-only) */ -+#define MCF_CCM_CIR MCF_REG16(0xEC09000A) -+/* Miscellaneous Control Register */ -+#define MCF_CCM_MISCCR MCF_REG16(0xEC09000E) -+#define MCF_CCM_CDRH MCF_REG16(0xEC090010) /* Clock Divider Register */ -+#define MCF_CCM_CDRL MCF_REG16(0xEC090012) /* Clock Divider Register */ -+/* USB On-the-Go Controller Status Register */ -+#define MCF_CCM_UOCSR MCF_REG16(0xEC090014) -+/* USB On-the-Go Controller Status Register */ -+#define MCF_CCM_UHCSR MCF_REG16(0xEC090016) -+/* Miscellaneous Control Register */ -+#define MCF_CCM_MISCCR3 MCF_REG16(0xEC090018) -+/* Miscellaneous Control Register */ -+#define MCF_CCM_MISCCR2 MCF_REG16(0xEC09001A) -+#define MCF_CCM_ADCTSR MCF_REG16(0xEC09001C) -+#define MCF_CCM_DACTSR MCF_REG16(0xEC09001E) -+/* Serial Boot Facility Status Register (Read Only) */ -+#define MCF_CCM_SBFSR MCF_REG16(0xEC090020) -+/* Serial Boot Facility Control Register */ -+#define MCF_CCM_SBFCR MCF_REG16(0xEC090022) -+#define MCF_CCM_FNACR MCF_REG16(0xEC090024) -+ -+/* Bit definitions and macros for CIR */ -+/* Part revision number */ -+#define MCF_CCM_CIR_PRN(x) (((x) & 0x003F)) -+/* Part identification number */ -+#define MCF_CCM_CIR_PIN(x) (((x) & 0x03FF) << 6) -+#define MCF_CCM_CIR_PIN_MASK (0xFFC0) -+#define MCF_CCM_CIR_PRN_MASK (0x003F) -+#define MCF_CCM_CIR_PIN_MCF54410 (0x9F<<6) -+#define MCF_CCM_CIR_PIN_MCF54415 (0xA0<<6) -+#define MCF_CCM_CIR_PIN_MCF54416 (0xA1<<6) -+#define MCF_CCM_CIR_PIN_MCF54417 (0xA2<<6) -+#define MCF_CCM_CIR_PIN_MCF54418 (0xA3<<6) -+ -+/* Bit definitions and macros for MISCCR */ -+/* Part revision number */ -+#define MCF_CCM_CIR_PRN(x) (((x) & 0x003F)) -+/* Part identification number */ -+#define MCF_CCM_CIR_PIN(x) (((x) & 0x03FF) << 6) -+#define MCF_CCM_CIR_PIN_MASK (0xFFC0) -+#define MCF_CCM_CIR_PRN_MASK (0x003F) -+#define MCF_CCM_CIR_PIN_MCF54410 (0x9F<<6) -+#define MCF_CCM_CIR_PIN_MCF54415 (0xA0<<6) -+#define MCF_CCM_CIR_PIN_MCF54416 (0xA1<<6) -+#define MCF_CCM_CIR_PIN_MCF54417 (0xA2<<6) -+#define MCF_CCM_CIR_PIN_MCF54418 (0xA3<<6) -+#define MCF_CCM_MISCCR_PWM_EXTCLK(x) (((x)&(0x0003)<<14) -+#define MCF_CCM_MISCCR_PWM_EXTCLK_MASK (0x3FFF) -+#define MCF_CCM_MISCCR_PWM_EXTCLK_TMR0 (0x0000) -+#define MCF_CCM_MISCCR_PWM_EXTCLK_TMR1 (0x4000) -+#define MCF_CCM_MISCCR_PWM_EXTCLK_TMR2 (0x8000) -+#define MCF_CCM_MISCCR_PWM_EXTCLK_TMR3 (0xC000) -+#define MCF_CCM_MISCCR_LIMP (0x1000) -+#define MCF_CCM_MISCCR_BME (0x0800) -+#define MCF_CCM_MISCCR_BMT(x) (((x)&0x0007)<<8) -+#define MCF_CCM_MISCCR_BMT_MASK (0xF8FF) -+#define MCF_CCM_MISCCR_BMT_65536 (0) -+#define MCF_CCM_MISCCR_BMT_32768 (1) -+#define MCF_CCM_MISCCR_BMT_16384 (2) -+#define MCF_CCM_MISCCR_BMT_8192 (3) -+#define MCF_CCM_MISCCR_BMT_4096 (4) -+#define MCF_CCM_MISCCR_BMT_2048 (5) -+#define MCF_CCM_MISCCR_BMT_1024 (6) -+#define MCF_CCM_MISCCR_BMT_512 (7) -+#define MCF_CCM_MISCCR_SDHCSRC (0x0040) -+#define MCF_CCM_MISCCR_SSI1SRC (0x0020) -+#define MCF_CCM_MISCCR_SSI0SRC (0x0010) -+#define MCF_CCM_MISCCR_USBHOC (0x0008) -+#define MCF_CCM_MISCCR_USBOOC (0x0004) -+#define MCF_CCM_MISCCR_USBPUE (0x0002) -+#define MCF_CCM_MISCCR_USBSRC (0x0001) -+#define MCF_CCM_CDRH_SSI0DIV(x) (((x)&0x00FF)<<8) -+#define MCF_CCM_CDRH_SSI0DIV_MASK (0x00FF) -+#define MCF_CCM_CDRH_SSI1DIV(x) (((x)&0x00FF)) -+#define MCF_CCM_CDRH_SSI1DIV_MASK (0xFF00) -+#define MCF_CCM_CDRL_LPDIV(x) (((x)&0x000F)<<8) -+#define MCF_CCM_CDRL_LPDIV_MASK (0xFF0F) -+#define MCF_CCM_CDR_LPDIV(x) CCM_CDRL_LPDIV(x) -+ -+#define MCF_CCM_UOCSR_DPPD (0x2000) -+#define MCF_CCM_UOCSR_DMPD (0x1000) -+#define MCF_CCM_UOCSR_DRV_VBUS (0x0800) -+#define MCF_CCM_UOCSR_CRG_VBUS (0x0400) -+#define MCF_CCM_UOCSR_DCR_VBUS (0x0200) -+#define MCF_CCM_UOCSR_DPPU (0x0100) -+#define MCF_CCM_UOCSR_AVLD (0x0080) -+#define MCF_CCM_UOCSR_BVLD (0x0040) -+#define MCF_CCM_UOCSR_VVLD (0x0020) -+#define MCF_CCM_UOCSR_SEND (0x0010) -+#define MCF_CCM_UOCSR_PWRFLT (0x0008) -+#define MCF_CCM_UOCSR_WKUP (0x0004) -+#define MCF_CCM_UOCSR_UOMIE (0x0002) -+#define MCF_CCM_UOCSR_XPDE (0x0001) -+ -+#define MCF_CCM_UHCSR_DRV_VBUS (0x0010) -+#define MCF_CCM_UHCSR_PWRFLT (0x0008) -+#define MCF_CCM_UHCSR_WKUP (0x0004) -+#define MCF_CCM_UHCSR_UOMIE (0x0002) -+#define MCF_CCM_UHCSR_XPDE (0x0001) -+ -+#define MCF_CCM_MISCCR3_TMR_ENET (0x1000) -+#define MCF_CCM_MISCCR3_ENETCLK(x) ((((x)&7))<<8) -+#define MCF_CCM_MISCCR3_ENETCLK_MASK (0xF8FF) -+#define MCF_CCM_MISCCR3_ENETCLK_MII (0x0700) -+#define MCF_CCM_MISCCR3_ENETCLK_OSC (0x0600) -+#define MCF_CCM_MISCCR3_ENETCLK_USB (0x0500) -+#define MCF_CCM_MISCCR3_ENETCLK_TMR3 (0x0400) -+#define MCF_CCM_MISCCR3_ENETCLK_TMR2 (0x0300) -+#define MCF_CCM_MISCCR3_ENETCLK_TMR1 (0x0200) -+#define MCF_CCM_MISCCR3_ENETCLK_TMR0 (0x0100) -+#define MCF_CCM_MISCCR3_ENETCLK_INTBUS (0x0000) -+ -+#define MCF_CCM_MISCCR2_EXTCLKBYP (0x0800) -+#define MCF_CCM_MISCCR2_DDR2CLK (0x0400) -+#define MCF_CCM_MISCCR2_RGPIO_HALF (0x0200) -+#define MCF_CCM_MISCCR2_SWTSCR (0x0100) -+#define MCF_CCM_MISCCR2_PLLMODE(x) (((x)&7)<<8) -+#define MCF_CCM_MISCCR2_PLLMODE_MASK (0xF8FF) -+#define MCF_CCM_MISCCR2_DCCBYP (0x0080) -+#define MCF_CCM_MISCCR2_DAC1SEL (0x0040) -+#define MCF_CCM_MISCCR2_DAC0SEL (0x0020) -+#define MCF_CCM_MISCCR2_ADCEN (0x0010) -+#define MCF_CCM_MISCCR2_ADC7SEL (0x0008) -+#define MCF_CCM_MISCCR2_ADC3SEL (0x0004) -+#define MCF_CCM_MISCCR2_FBHALF (0x0002) -+#define MCF_CCM_MISCCR2_ULPI (0x0001) -+ -+#define MCF_CCM_FNACR_PCR(x) (((x)&0x0F)<<24) -+#define MCF_CCM_FNACR_PCR_MASK (0xF0FFFFFF) -+#define MCF_CCM_FNACR_MCC(x) ((x)&0xFFFF) -+#define MCF_CCM_FNACR_MCC_MASK (0xFFFF0000) -+ -+#endif /* __MCF5445X_CCM_H__ */ ---- /dev/null -+++ b/arch/m68k/include/asm/mcf5441x_clock.h -@@ -0,0 +1,22 @@ -+/* -+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved. -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by the -+ * Free Software Foundation; either version 2 of the License, or (at your -+ * option) any later version. -+ */ -+ -+#ifndef __MCF5441X_CLOCK_H__ -+#define __MCF5441X_CLOCK_H__ -+ -+#define MCF_PLL_CR MCF_REG32(0xFC000000) -+#define MCF_PLL_DR MCF_REG32(0xFC000004) -+#define MCF_PLL_SR MCF_REG32(0xFC000008) -+ -+#define MCF_PLL_DR_OUTDIV4 0x001F0000 -+#define MCF_PLL_DR_OUTDIV1 0x1F -+ -+ -+#endif /*__MCF5441X_CLOCK_H__*/ -+ ---- /dev/null -+++ b/arch/m68k/include/asm/mcf5441x_dspi.h -@@ -0,0 +1,671 @@ -+/* -+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved. -+ * -+ * Lanttor.Guo@freescale.com -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by the -+ * Free Software Foundation; either version 2 of the License, or (at your -+ * option) any later version. -+ */ -+ -+#ifndef __MCF5441X_DSPI_H__ -+#define __MCF5441X_DSPI_H__ -+ -+/********************************************************************* -+* -+* DMA Serial Peripheral Interface (DSPI) -+* -+*********************************************************************/ -+ -+/* Register read/write macros */ -+/* DSPI Module Configuration Register */ -+#define MCF_DSPI_DMCR MCF_REG32(0xFC05C000) -+#define MCF_DSPI1_DMCR MCF_REG32(0xFC03C000) -+/* DSPI Transfer Count Register */ -+#define MCF_DSPI_DTCR MCF_REG32(0xFC05C008) -+#define MCF_DSPI1_DTCR MCF_REG32(0xFC03C008) -+/* DSPI Clock and Transfer Attributes Register */ -+#define MCF_DSPI_DCTAR0 MCF_REG32(0xFC05C00C) -+#define MCF_DSPI1_DCTAR0 MCF_REG32(0xFC03C00C) -+/* DSPI Clock and Transfer Attributes Register */ -+#define MCF_DSPI_DCTAR1 MCF_REG32(0xFC05C010) -+/* DSPI Clock and Transfer Attributes Register */ -+#define MCF_DSPI_DCTAR2 MCF_REG32(0xFC05C014) -+/* DSPI Clock and Transfer Attributes Register */ -+#define MCF_DSPI_DCTAR3 MCF_REG32(0xFC05C018) -+/* DSPI Clock and Transfer Attributes Register */ -+#define MCF_DSPI_DCTAR4 MCF_REG32(0xFC05C01C) -+/* DSPI Clock and Transfer Attributes Register */ -+#define MCF_DSPI_DCTAR5 MCF_REG32(0xFC05C020) -+/* DSPI Clock and Transfer Attributes Register */ -+#define MCF_DSPI_DCTAR6 MCF_REG32(0xFC05C024) -+/* DSPI Clock and Transfer Attributes Register */ -+#define MCF_DSPI_DCTAR7 MCF_REG32(0xFC05C028 -+/* DSPI Status Register */ -+#define MCF_DSPI_DSR MCF_REG32(0xFC05C02C) -+#define MCF_DSPI1_DSR MCF_REG32(0xFC03C02C) -+/* DSPI DMA/Interrupt Request Select and Enable Register */ -+#define MCF_DSPI_DRSER MCF_REG32(0xFC05C030) -+#define MCF_DSPI1_DRSER MCF_REG32(0xFC03C030) -+/* DSPI Transmit FIFO Register */ -+#define MCF_DSPI_DTFR MCF_REG32(0xFC05C034) -+#define MCF_DSPI1_DTFR MCF_REG32(0xFC03C034) -+/* DSPI Receive FIFO Register */ -+#define MCF_DSPI_DRFR MCF_REG32(0xFC05C038) -+#define MCF_DSPI1_DRFR MCF_REG32(0xFC03C038) -+/* DSPI Transmit FIFO Debugging Registers */ -+#define MCF_DSPI_DTFDR0 MCF_REG32(0xFC05C03C) -+/* DSPI Transmit FIFO Debugging Registers */ -+#define MCF_DSPI_DTFDR1 MCF_REG32(0xFC05C040) -+/* DSPI Transmit FIFO Debugging Registers */ -+#define MCF_DSPI_DTFDR2 MCF_REG32(0xFC05C044) -+/* DSPI Transmit FIFO Debugging Registers */ -+#define MCF_DSPI_DTFDR3 MCF_REG32(0xFC05C048) -+/* DSPI Receive FIFO Debugging Registers */ -+#define MCF_DSPI_DRFDR0 MCF_REG32(0xFC05C07C) -+/* DSPI Receive FIFO Debugging Registers */ -+#define MCF_DSPI_DRFDR1 MCF_REG32(0xFC05C080) -+/* DSPI Receive FIFO Debugging Registers */ -+#define MCF_DSPI_DRFDR2 MCF_REG32(0xFC05C084) -+/* DSPI Receive FIFO Debugging Registers */ -+#define MCF_DSPI_DRFDR3 MCF_REG32(0xFC05C088) -+ -+/* Parameterized register read/write macros for multiple registers */ -+/* DSPI Clock and Transfer Attributes Register */ -+#define MCF_DSPI_DCTAR(x) MCF_REG32(0xFC05C00C+((x)*0x004)) -+/* DSPI Transmit FIFO Debugging Registers */ -+#define MCF_DSPI_DTFDR(x) MCF_REG32(0xFC05C03C+((x)*0x004)) -+/* DSPI Receive FIFO Debugging Registers */ -+#define MCF_DSPI_DRFDR(x) MCF_REG32(0xFC05C07C+((x)*0x004)) -+ -+/* Bit definitions and macros for DMCR */ -+/* Halt -- stops and starts DSPI transfers */ -+#define MCF_DSPI_DMCR_HALT (0x00000001) -+/* Sample point selection */ -+#define MCF_DSPI_DMCR_SMPLPT(x) (((x)&0x00000003)<<8) -+/* Clear receive FIFO */ -+#define MCF_DSPI_DMCR_CLRRXF (0x00000400) -+/* Clear transmit FIFO */ -+#define MCF_DSPI_DMCR_CLRTXF (0x00000800) -+/* Disable receive FIFO */ -+#define MCF_DSPI_DMCR_DISRXF (0x00001000) -+/* Disable transmit FIFO */ -+#define MCF_DSPI_DMCR_DISTXF (0x00002000) -+/* Module Disable */ -+#define MCF_DSPI_DMCR_MDIS (0x00004000) -+/* Peripheral chip-select 0 inactive state */ -+#define MCF_DSPI_DMCR_PCSIS0 (0x00010000) -+/* Peripheral chip-select 1 inactive state */ -+#define MCF_DSPI_DMCR_PCSIS1 (0x00020000) -+/* Peripheral chip-select 2 inactive state */ -+#define MCF_DSPI_DMCR_PCSIS2 (0x00040000) -+/* Peripheral chip-select 3 inactive state */ -+#define MCF_DSPI_DMCR_PCSIS3 (0x00080000) -+/* Peripheral chip-select 4 inactive state */ -+#define MCF_DSPI_DMCR_PCSIS4 (0x00100000) -+/* Peripheral chip-select 5 inactive state */ -+#define MCF_DSPI_DMCR_PCSIS5 (0x00200000) -+/* Peripheral chip-select 6 inactive state */ -+#define MCF_DSPI_DMCR_PCSIS6 (0x00400000) -+/* Peripheral chip-select 7 inactive state */ -+#define MCF_DSPI_DMCR_PCSIS7 (0x00800000) -+/* Receive FIFO overflow overwrite enable */ -+#define MCF_DSPI_DMCR_ROOE (0x01000000) -+/* Peripheral chip select strobe enable */ -+#define MCF_DSPI_DMCR_PCSSE (0x02000000) -+/* Modified timing format enable */ -+#define MCF_DSPI_DMCR_MTFE (0x04000000) -+/* Freeze */ -+#define MCF_DSPI_DMCR_FRZ (0x08000000) -+/* DSPI configuration */ -+#define MCF_DSPI_DMCR_DCONF(x) (((x)&0x00000003)<<28) -+/* Continuous SCK enable */ -+#define MCF_DSPI_DMCR_CONT_SCKE (0x40000000) -+/* Master/Slave mode select */ -+#define MCF_DSPI_DMCR_MSTR (0x80000000) -+#define MCF_DSPI_DMCR_DCONF_SPI (0x00000000) -+#define MCF_DSPI_DMCR_PCSIS7_LOW (0x00000000) -+#define MCF_DSPI_DMCR_PCSIS7_HIGH (0x00800000) -+#define MCF_DSPI_DMCR_PCSIS6_LOW (0x00000000) -+#define MCF_DSPI_DMCR_PCSIS6_HIGH (0x00400000) -+#define MCF_DSPI_DMCR_PCSIS5_LOW (0x00000000) -+#define MCF_DSPI_DMCR_PCSIS5_HIGH (0x00200000) -+#define MCF_DSPI_DMCR_PCSIS4_LOW (0x00000000) -+#define MCF_DSPI_DMCR_PCSIS4_HIGH (0x00100000) -+#define MCF_DSPI_DMCR_PCSIS3_LOW (0x00000000) -+#define MCF_DSPI_DMCR_PCSIS3_HIGH (0x00080000) -+#define MCF_DSPI_DMCR_PCSIS2_LOW (0x00000000) -+#define MCF_DSPI_DMCR_PCSIS2_HIGH (0x00040000) -+#define MCF_DSPI_DMCR_PCSIS1_LOW (0x00000000) -+#define MCF_DSPI_DMCR_PCSIS1_HIGH (0x00020000) -+#define MCF_DSPI_DMCR_PCSIS0_LOW (0x00000000) -+#define MCF_DSPI_DMCR_PCSIS0_HIGH (0x00010000) -+ -+/* Bit definitions and macros for DTCR */ -+/* SPI transfer count */ -+#define MCF_DSPI_DTCR_SPI_TCNT(x) (((x)&0x0000FFFF)<<16) -+ -+/* Bit definitions and macros for DCTAR group */ -+/* Baud rate scaler */ -+#define MCF_DSPI_DCTAR_BR(x) (((x)&0x0000000F)) -+/* Delay after transfer scaler */ -+#define MCF_DSPI_DCTAR_DT(x) (((x)&0x0000000F)<<4) -+/* After SCK delay scaler */ -+#define MCF_DSPI_DCTAR_ASC(x) (((x)&0x0000000F)<<8) -+/* PCS to SCK delay scaler */ -+#define MCF_DSPI_DCTAR_CSSCK(x) (((x)&0x0000000F)<<12) -+/* Baud rate prescaler */ -+#define MCF_DSPI_DCTAR_PBR(x) (((x)&0x00000003)<<16) -+/* Delay after transfer prescaler */ -+#define MCF_DSPI_DCTAR_PDT(x) (((x)&0x00000003)<<18) -+/* After SCK delay prescaler */ -+#define MCF_DSPI_DCTAR_PASC(x) (((x)&0x00000003)<<20) -+/* PCS to SCK delay prescaler */ -+#define MCF_DSPI_DCTAR_PCSSCK(x) (((x)&0x00000003)<<22) -+/* LSB first enable */ -+#define MCF_DSPI_DCTAR_LSBFE (0x01000000) -+/* Clock phase */ -+#define MCF_DSPI_DCTAR_CPHA (0x02000000) -+/* Clock polarity */ -+#define MCF_DSPI_DCTAR_CPOL (0x04000000) -+/* Frame size */ -+#define MCF_DSPI_DCTAR_FMSZ(x) (((x)&0x0000000F)<<27) -+/* Double baud rate */ -+#define MCF_DSPI_DCTAR_DBR (0x80000000) -+#define MCF_DSPI_DCTAR_CPOL_LOW (0x00000000) -+#define MCF_DSPI_DCTAR_CPOL_HIGH (0x04000000) -+#define MCF_DSPI_DCTAR_CPHA_LATCH_RISING (0x00000000) -+#define MCF_DSPI_DCTAR_CPHA_LATCH_FALLING (0x02000000) -+#define MCF_DSPI_DCTAR_PCSSCK_1CLK (0x00000000) -+#define MCF_DSPI_DCTAR_PCSSCK_3CLK (0x00400000) -+#define MCF_DSPI_DCTAR_PCSSCK_5CLK (0x00800000) -+#define MCF_DSPI_DCTAR_PCSSCK_7CLK (0x00C00000) -+#define MCF_DSPI_DCTAR_PASC_1CLK (0x00000000) -+#define MCF_DSPI_DCTAR_PASC_3CLK (0x00100000) -+#define MCF_DSPI_DCTAR_PASC_5CLK (0x00200000) -+#define MCF_DSPI_DCTAR_PASC_7CLK (0x00300000) -+#define MCF_DSPI_DCTAR_PDT_1CLK (0x00000000) -+#define MCF_DSPI_DCTAR_PDT_3CLK (0x00040000) -+#define MCF_DSPI_DCTAR_PDT_5CLK (0x00080000) -+#define MCF_DSPI_DCTAR_PDT_7CLK (0x000C0000) -+#define MCF_DSPI_DCTAR_PBR_2CLK (0x00000000) -+#define MCF_DSPI_DCTAR_PBR_3CLK (0x00010000) -+#define MCF_DSPI_DCTAR_PBR_5CLK (0x00020000) -+#define MCF_DSPI_DCTAR_PBR_7CLK (0x00030000) -+ -+/* Bit definitions and macros for DCTAR0 */ -+/* Baud rate scaler */ -+#define MCF_DSPI_DCTAR0_BR(x) (((x)&0x0000000F)) -+/* Delay after transfer scaler */ -+#define MCF_DSPI_DCTAR0_DT(x) (((x)&0x0000000F)<<4) -+/* After SCK delay scaler */ -+#define MCF_DSPI_DCTAR0_ASC(x) (((x)&0x0000000F)<<8) -+/* PCS to SCK delay scaler */ -+#define MCF_DSPI_DCTAR0_CSSCK(x) (((x)&0x0000000F)<<12) -+/* Baud rate prescaler */ -+#define MCF_DSPI_DCTAR0_PBR(x) (((x)&0x00000003)<<16) -+/* Delay after transfer prescaler */ -+#define MCF_DSPI_DCTAR0_PDT(x) (((x)&0x00000003)<<18) -+/* After SCK delay prescaler */ -+#define MCF_DSPI_DCTAR0_PASC(x) (((x)&0x00000003)<<20) -+/* PCS to SCK delay prescaler */ -+#define MCF_DSPI_DCTAR0_PCSSCK(x) (((x)&0x00000003)<<22) -+/* LSB first enable */ -+#define MCF_DSPI_DCTAR0_LSBFE (0x01000000) -+/* Clock phase */ -+#define MCF_DSPI_DCTAR0_CPHA (0x02000000) -+/* Clock polarity */ -+#define MCF_DSPI_DCTAR0_CPOL (0x04000000) -+/* Frame size */ -+#define MCF_DSPI_DCTAR0_FMSZ(x) (((x)&0x0000000F)<<27) -+/* Double baud rate */ -+#define MCF_DSPI_DCTAR0_DBR (0x80000000) -+#define MCF_DSPI_DCTAR0_CPOL_LOW (0x00000000) -+#define MCF_DSPI_DCTAR0_CPOL_HIGH (0x04000000) -+#define MCF_DSPI_DCTAR0_CPHA_LATCH_RISING (0x00000000) -+#define MCF_DSPI_DCTAR0_CPHA_LATCH_FALLING (0x02000000) -+#define MCF_DSPI_DCTAR0_PCSSCK_1CLK (0x00000000) -+#define MCF_DSPI_DCTAR0_PCSSCK_3CLK (0x00400000) -+#define MCF_DSPI_DCTAR0_PCSSCK_5CLK (0x00800000) -+#define MCF_DSPI_DCTAR0_PCSSCK_7CLK (0x00C00000) -+#define MCF_DSPI_DCTAR0_PASC_1CLK (0x00000000) -+#define MCF_DSPI_DCTAR0_PASC_3CLK (0x00100000) -+#define MCF_DSPI_DCTAR0_PASC_5CLK (0x00200000) -+#define MCF_DSPI_DCTAR0_PASC_7CLK (0x00300000) -+#define MCF_DSPI_DCTAR0_PDT_1CLK (0x00000000) -+#define MCF_DSPI_DCTAR0_PDT_3CLK (0x00040000) -+#define MCF_DSPI_DCTAR0_PDT_5CLK (0x00080000) -+#define MCF_DSPI_DCTAR0_PDT_7CLK (0x000C0000) -+#define MCF_DSPI_DCTAR0_PBR_2CLK (0x00000000) -+#define MCF_DSPI_DCTAR0_PBR_3CLK (0x00010000) -+#define MCF_DSPI_DCTAR0_PBR_5CLK (0x00020000) -+#define MCF_DSPI_DCTAR0_PBR_7CLK (0x00030000) -+ -+/* Bit definitions and macros for DCTAR1 */ -+/* Baud rate scaler */ -+#define MCF_DSPI_DCTAR1_BR(x) (((x)&0x0000000F)) -+/* Delay after transfer scaler */ -+#define MCF_DSPI_DCTAR1_DT(x) (((x)&0x0000000F)<<4) -+/* After SCK delay scaler */ -+#define MCF_DSPI_DCTAR1_ASC(x) (((x)&0x0000000F)<<8) -+/* PCS to SCK delay scaler */ -+#define MCF_DSPI_DCTAR1_CSSCK(x) (((x)&0x0000000F)<<12) -+/* Baud rate prescaler */ -+#define MCF_DSPI_DCTAR1_PBR(x) (((x)&0x00000003)<<16) -+/* Delay after transfer prescaler */ -+#define MCF_DSPI_DCTAR1_PDT(x) (((x)&0x00000003)<<18) -+/* After SCK delay prescaler */ -+#define MCF_DSPI_DCTAR1_PASC(x) (((x)&0x00000003)<<20) -+/* PCS to SCK delay prescaler */ -+#define MCF_DSPI_DCTAR1_PCSSCK(x) (((x)&0x00000003)<<22) -+/* LSB first enable */ -+#define MCF_DSPI_DCTAR1_LSBFE (0x01000000) -+/* Clock phase */ -+#define MCF_DSPI_DCTAR1_CPHA (0x02000000) -+/* Clock polarity */ -+#define MCF_DSPI_DCTAR1_CPOL (0x04000000) -+/* Frame size */ -+#define MCF_DSPI_DCTAR1_FMSZ(x) (((x)&0x0000000F)<<27) -+/* Double baud rate */ -+#define MCF_DSPI_DCTAR1_DBR (0x80000000) -+ -+ -+/* Bit definitions and macros for DCTAR2 */ -+/* Baud rate scaler */ -+#define MCF_DSPI_DCTAR2_BR(x) (((x)&0x0000000F)) -+/* Delay after transfer scaler */ -+#define MCF_DSPI_DCTAR2_DT(x) (((x)&0x0000000F)<<4) -+/* After SCK delay scaler */ -+#define MCF_DSPI_DCTAR2_ASC(x) (((x)&0x0000000F)<<8) -+/* PCS to SCK delay scaler */ -+#define MCF_DSPI_DCTAR2_CSSCK(x) (((x)&0x0000000F)<<12) -+/* Baud rate prescaler */ -+#define MCF_DSPI_DCTAR2_PBR(x) (((x)&0x00000003)<<16) -+/* Delay after transfer prescaler */ -+#define MCF_DSPI_DCTAR2_PDT(x) (((x)&0x00000003)<<18) -+/* After SCK delay prescaler */ -+#define MCF_DSPI_DCTAR2_PASC(x) (((x)&0x00000003)<<20) -+/* PCS to SCK delay prescaler */ -+#define MCF_DSPI_DCTAR2_PCSSCK(x) (((x)&0x00000003)<<22) -+/* LSB first enable */ -+#define MCF_DSPI_DCTAR2_LSBFE (0x01000000) -+/* Clock phase */ -+#define MCF_DSPI_DCTAR2_CPHA (0x02000000) -+/* Clock polarity */ -+#define MCF_DSPI_DCTAR2_CPOL (0x04000000) -+/* Frame size */ -+#define MCF_DSPI_DCTAR2_FMSZ(x) (((x)&0x0000000F)<<27) -+/* Double baud rate */ -+#define MCF_DSPI_DCTAR2_DBR (0x80000000) -+ -+/* Bit definitions and macros for DCTAR3 */ -+/* Baud rate scaler */ -+#define MCF_DSPI_DCTAR3_BR(x) (((x)&0x0000000F)) -+/* Delay after transfer scaler */ -+#define MCF_DSPI_DCTAR3_DT(x) (((x)&0x0000000F)<<4) -+/* After SCK delay scaler */ -+#define MCF_DSPI_DCTAR3_ASC(x) (((x)&0x0000000F)<<8) -+/* PCS to SCK delay scaler */ -+#define MCF_DSPI_DCTAR3_CSSCK(x) (((x)&0x0000000F)<<12) -+/* Baud rate prescaler */ -+#define MCF_DSPI_DCTAR3_PBR(x) (((x)&0x00000003)<<16) -+/* Delay after transfer prescaler */ -+#define MCF_DSPI_DCTAR3_PDT(x) (((x)&0x00000003)<<18) -+/* After SCK delay prescaler */ -+#define MCF_DSPI_DCTAR3_PASC(x) (((x)&0x00000003)<<20) -+/* PCS to SCK delay prescaler */ -+#define MCF_DSPI_DCTAR3_PCSSCK(x) (((x)&0x00000003)<<22) -+/* LSB first enable */ -+#define MCF_DSPI_DCTAR3_LSBFE (0x01000000) -+/* Clock phase */ -+#define MCF_DSPI_DCTAR3_CPHA (0x02000000) -+/* Clock polarity */ -+#define MCF_DSPI_DCTAR3_CPOL (0x04000000) -+/* Frame size */ -+#define MCF_DSPI_DCTAR3_FMSZ(x) (((x)&0x0000000F)<<27) -+/* Double baud rate */ -+#define MCF_DSPI_DCTAR3_DBR (0x80000000) -+ -+/* Bit definitions and macros for DCTAR4 */ -+/* Baud rate scaler */ -+#define MCF_DSPI_DCTAR4_BR(x) (((x)&0x0000000F)) -+/* Delay after transfer scaler */ -+#define MCF_DSPI_DCTAR4_DT(x) (((x)&0x0000000F)<<4) -+/* After SCK delay scaler */ -+#define MCF_DSPI_DCTAR4_ASC(x) (((x)&0x0000000F)<<8) -+/* PCS to SCK delay scaler */ -+#define MCF_DSPI_DCTAR4_CSSCK(x) (((x)&0x0000000F)<<12) -+/* Baud rate prescaler */ -+#define MCF_DSPI_DCTAR4_PBR(x) (((x)&0x00000003)<<16) -+/* Delay after transfer prescaler */ -+#define MCF_DSPI_DCTAR4_PDT(x) (((x)&0x00000003)<<18) -+/* After SCK delay prescaler */ -+#define MCF_DSPI_DCTAR4_PASC(x) (((x)&0x00000003)<<20) -+/* PCS to SCK delay prescaler */ -+#define MCF_DSPI_DCTAR4_PCSSCK(x) (((x)&0x00000003)<<22) -+/* LSB first enable */ -+#define MCF_DSPI_DCTAR4_LSBFE (0x01000000) -+/* Clock phase */ -+#define MCF_DSPI_DCTAR4_CPHA (0x02000000) -+/* Clock polarity */ -+#define MCF_DSPI_DCTAR4_CPOL (0x04000000) -+/* Frame size */ -+#define MCF_DSPI_DCTAR4_FMSZ(x) (((x)&0x0000000F)<<27) -+/* Double baud rate */ -+#define MCF_DSPI_DCTAR4_DBR (0x80000000) -+ -+/* Bit definitions and macros for DCTAR5 */ -+/* Baud rate scaler */ -+#define MCF_DSPI_DCTAR5_BR(x) (((x)&0x0000000F)) -+/* Delay after transfer scaler */ -+#define MCF_DSPI_DCTAR5_DT(x) (((x)&0x0000000F)<<4) -+/* After SCK delay scaler */ -+#define MCF_DSPI_DCTAR5_ASC(x) (((x)&0x0000000F)<<8) -+/* PCS to SCK delay scaler */ -+#define MCF_DSPI_DCTAR5_CSSCK(x) (((x)&0x0000000F)<<12) -+/* Baud rate prescaler */ -+#define MCF_DSPI_DCTAR5_PBR(x) (((x)&0x00000003)<<16) -+/* Delay after transfer prescaler */ -+#define MCF_DSPI_DCTAR5_PDT(x) (((x)&0x00000003)<<18) -+/* After SCK delay prescaler */ -+#define MCF_DSPI_DCTAR5_PASC(x) (((x)&0x00000003)<<20) -+/* PCS to SCK delay prescaler */ -+#define MCF_DSPI_DCTAR5_PCSSCK(x) (((x)&0x00000003)<<22) -+/* LSB first enable */ -+#define MCF_DSPI_DCTAR5_LSBFE (0x01000000) -+/* Clock phase */ -+#define MCF_DSPI_DCTAR5_CPHA (0x02000000) -+/* Clock polarity */ -+#define MCF_DSPI_DCTAR5_CPOL (0x04000000) -+/* Frame size */ -+#define MCF_DSPI_DCTAR5_FMSZ(x) (((x)&0x0000000F)<<27) -+/* Double baud rate */ -+#define MCF_DSPI_DCTAR5_DBR (0x80000000) -+ -+/* Bit definitions and macros for DCTAR6 */ -+/* Baud rate scaler */ -+#define MCF_DSPI_DCTAR6_BR(x) (((x)&0x0000000F)) -+/* Delay after transfer scaler */ -+#define MCF_DSPI_DCTAR6_DT(x) (((x)&0x0000000F)<<4) -+/* After SCK delay scaler */ -+#define MCF_DSPI_DCTAR6_ASC(x) (((x)&0x0000000F)<<8) -+/* PCS to SCK delay scaler */ -+#define MCF_DSPI_DCTAR6_CSSCK(x) (((x)&0x0000000F)<<12) -+/* Baud rate prescaler */ -+#define MCF_DSPI_DCTAR6_PBR(x) (((x)&0x00000003)<<16) -+/* Delay after transfer prescaler */ -+#define MCF_DSPI_DCTAR6_PDT(x) (((x)&0x00000003)<<18) -+/* After SCK delay prescaler */ -+#define MCF_DSPI_DCTAR6_PASC(x) (((x)&0x00000003)<<20) -+/* PCS to SCK delay prescaler */ -+#define MCF_DSPI_DCTAR6_PCSSCK(x) (((x)&0x00000003)<<22) -+/* LSB first enable */ -+#define MCF_DSPI_DCTAR6_LSBFE (0x01000000) -+/* Clock phase */ -+#define MCF_DSPI_DCTAR6_CPHA (0x02000000) -+/* Clock polarity */ -+#define MCF_DSPI_DCTAR6_CPOL (0x04000000) -+/* Frame size */ -+#define MCF_DSPI_DCTAR6_FMSZ(x) (((x)&0x0000000F)<<27) -+/* Double baud rate */ -+#define MCF_DSPI_DCTAR6_DBR (0x80000000) -+ -+/* Bit definitions and macros for DCTAR7 */ -+/* Baud rate scaler */ -+#define MCF_DSPI_DCTAR7_BR(x) (((x)&0x0000000F)) -+/* Delay after transfer scaler */ -+#define MCF_DSPI_DCTAR7_DT(x) (((x)&0x0000000F)<<4) -+/* After SCK delay scaler */ -+#define MCF_DSPI_DCTAR7_ASC(x) (((x)&0x0000000F)<<8) -+/* PCS to SCK delay scaler */ -+#define MCF_DSPI_DCTAR7_CSSCK(x) (((x)&0x0000000F)<<12) -+/* Baud rate prescaler */ -+#define MCF_DSPI_DCTAR7_PBR(x) (((x)&0x00000003)<<16) -+/* Delay after transfer prescaler */ -+#define MCF_DSPI_DCTAR7_PDT(x) (((x)&0x00000003)<<18) -+/* After SCK delay prescaler */ -+#define MCF_DSPI_DCTAR7_PASC(x) (((x)&0x00000003)<<20) -+/* PCS to SCK delay prescaler */ -+#define MCF_DSPI_DCTAR7_PCSSCK(x) (((x)&0x00000003)<<22) -+/* LSB first enable */ -+#define MCF_DSPI_DCTAR7_LSBFE (0x01000000) -+/* Clock phase */ -+#define MCF_DSPI_DCTAR7_CPHA (0x02000000) -+/* Clock polarity */ -+#define MCF_DSPI_DCTAR7_CPOL (0x04000000) -+/* Frame size */ -+#define MCF_DSPI_DCTAR7_FMSZ(x) (((x)&0x0000000F)<<27) -+/* Double baud rate */ -+#define MCF_DSPI_DCTAR7_DBR (0x80000000) -+ -+/* Bit definitions and macros for DSR */ -+/* Receive next pointer */ -+#define MCF_DSPI_DSR_RXPTR(x) (((x)&0x0000000F)) -+/* Receive FIFO counter */ -+#define MCF_DSPI_DSR_RXCTR(x) (((x)&0x0000000F)<<4) -+/* Transmit next pointer */ -+#define MCF_DSPI_DSR_TXPTR(x) (((x)&0x0000000F)<<8) -+/* Transmit FIFO counter */ -+#define MCF_DSPI_DSR_TXCTR(x) (((x)&0x0000000F)<<12) -+/* Receive FIFO drain flag */ -+#define MCF_DSPI_DSR_RFDF (0x00020000) -+/* Receive FIFO overflow flag */ -+#define MCF_DSPI_DSR_RFOF (0x00080000) -+/* Transmit FIFO fill flag */ -+#define MCF_DSPI_DSR_TFFF (0x02000000) -+/* Transmit FIFO underflow flag */ -+#define MCF_DSPI_DSR_TFUF (0x08000000) -+/* End of queue flag */ -+#define MCF_DSPI_DSR_EOQF (0x10000000) -+/* Tx and Rx status (enabled | disabled) */ -+#define MCF_DSPI_DSR_TXRXS (0x40000000) -+/* Transfer complete flag */ -+#define MCF_DSPI_DSR_TCF (0x80000000) -+ -+/* Bit definitions and macros for DRSER */ -+/* Receive FIFO drain DMA or interrupt select */ -+#define MCF_DSPI_DRSER_RFDFS (0x00010000) -+/* Receive FIFO drain request enable */ -+#define MCF_DSPI_DRSER_RFDFE (0x00020000) -+/* Receive FIFO overflow request enable */ -+#define MCF_DSPI_DRSER_RFOFE (0x00080000) -+/* Transmit FIFO fill DMA or interrupt select */ -+#define MCF_DSPI_DRSER_TFFFS (0x01000000) -+/* Transmit FIFO fill request enable */ -+#define MCF_DSPI_DRSER_TFFFE (0x02000000) -+/* Transmit FIFO underflow request enable */ -+#define MCF_DSPI_DRSER_TFUFE (0x08000000) -+/* DSPI finished request enable */ -+#define MCF_DSPI_DRSER_EOQFE (0x10000000) -+/* Transmission complete request enable */ -+#define MCF_DSPI_DRSER_TCFE (0x80000000) -+ -+/* Bit definitions and macros for DTFR */ -+/* Transmit data */ -+#define MCF_DSPI_DTFR_TXDATA(x) (((x)&0x0000FFFF)) -+/* Peripheral chip select 0 */ -+#define MCF_DSPI_DTFR_PCS0 (0x00010000) -+/* Peripheral chip select 1 */ -+#define MCF_DSPI_DTFR_PCS1 (0x00020000) -+/* Peripheral chip select 2 */ -+#define MCF_DSPI_DTFR_PCS2 (0x00040000) -+/* Peripheral chip select 3 */ -+#define MCF_DSPI_DTFR_PCS3 (0x00080000) -+/* Peripheral chip select 4 */ -+#define MCF_DSPI_DTFR_PCS4 (0x00100000) -+/* Peripheral chip select 5 */ -+#define MCF_DSPI_DTFR_PCS5 (0x00200000) -+/* Peripheral chip select 6 */ -+#define MCF_DSPI_DTFR_PCS6 (0x00400000) -+/* Peripheral chip select 7 */ -+#define MCF_DSPI_DTFR_PCS7 (0x00800000) -+/* Clear SPI transfer counter */ -+#define MCF_DSPI_DTFR_CTCNT (0x04000000) -+/* End of queue */ -+#define MCF_DSPI_DTFR_EOQ (0x08000000) -+/* Clock and transfer attributes select */ -+#define MCF_DSPI_DTFR_CTAS(x) (((x)&0x00000007)<<28) -+/* Continuous peripheral chip-select enable */ -+#define MCF_DSPI_DTFR_CONT (0x80000000) -+ -+/* Bit definitions and macros for DRFR */ -+/* Receive data */ -+#define MCF_DSPI_DRFR_RXDATA(x) (((x)&0x0000FFFF)) -+ -+/* Bit definitions and macros for DTFDR group */ -+/* Transmit data */ -+#define MCF_DSPI_DTFDR_TXDATA(x) (((x)&0x0000FFFF)) -+/* Peripheral chip select 0 */ -+#define MCF_DSPI_DTFDR_PCS0 (0x00010000) -+/* Peripheral chip select 0 */ -+#define MCF_DSPI_DTFDR_PCS1 (0x00020000) -+/* Peripheral chip select 0 */ -+#define MCF_DSPI_DTFDR_PCS2 (0x00040000) -+/* Peripheral chip select 0 */ -+#define MCF_DSPI_DTFDR_PCS3 (0x00080000) -+/* Peripheral chip select 0 */ -+#define MCF_DSPI_DTFDR_PCS4 (0x00100000) -+/* Peripheral chip select 0 */ -+#define MCF_DSPI_DTFDR_PCS5 (0x00200000) -+/* Peripheral chip select 0 */ -+#define MCF_DSPI_DTFDR_PCS6 (0x00400000) -+/* Peripheral chip select 0 */ -+#define MCF_DSPI_DTFDR_PCS7 (0x00800000) -+/* Clear SPI transfer counter */ -+#define MCF_DSPI_DTFDR_CTCNT (0x04000000) -+/* End of queue */ -+#define MCF_DSPI_DTFDR_EOQ (0x08000000) -+/* Clock and transfer attributes select */ -+#define MCF_DSPI_DTFDR_CTAS(x) (((x)&0x00000007)<<28) -+/* Continuous peripheral chip-select enable */ -+#define MCF_DSPI_DTFDR_CONT (0x80000000) -+ -+/* Bit definitions and macros for DTFDR0 */ -+/* Transmit data */ -+#define MCF_DSPI_DTFDR0_TXDATA(x) (((x)&0x0000FFFF)) -+/* Peripheral chip select 0 */ -+#define MCF_DSPI_DTFDR0_PCS0 (0x00010000) -+/* Peripheral chip select 0 */ -+#define MCF_DSPI_DTFDR0_PCS1 (0x00020000) -+/* Peripheral chip select 0 */ -+#define MCF_DSPI_DTFDR0_PCS2 (0x00040000) -+/* Peripheral chip select 0 */ -+#define MCF_DSPI_DTFDR0_PCS3 (0x00080000) -+/* Peripheral chip select 0 */ -+#define MCF_DSPI_DTFDR0_PCS4 (0x00100000) -+/* Peripheral chip select 0 */ -+#define MCF_DSPI_DTFDR0_PCS5 (0x00200000) -+/* Peripheral chip select 0 */ -+#define MCF_DSPI_DTFDR0_PCS6 (0x00400000) -+/* Peripheral chip select 0 */ -+#define MCF_DSPI_DTFDR0_PCS7 (0x00800000) -+/* Clear SPI transfer counter */ -+#define MCF_DSPI_DTFDR0_CTCNT (0x04000000) -+/* End of queue */ -+#define MCF_DSPI_DTFDR0_EOQ (0x08000000) -+/* Clock and transfer attributes select */ -+#define MCF_DSPI_DTFDR0_CTAS(x) (((x)&0x00000007)<<28) -+/* Continuous peripheral chip-select enable */ -+#define MCF_DSPI_DTFDR0_CONT (0x80000000) -+/* Bit definitions and macros for DTFDR1 */ -+/* Transmit data */ -+#define MCF_DSPI_DTFDR1_TXDATA(x) (((x)&0x0000FFFF)) -+/* Peripheral chip select 0 */ -+#define MCF_DSPI_DTFDR1_PCS0 (0x00010000) -+/* Peripheral chip select 1 */ -+#define MCF_DSPI_DTFDR1_PCS1 (0x00020000) -+/* Peripheral chip select 2 */ -+#define MCF_DSPI_DTFDR1_PCS2 (0x00040000) -+/* Peripheral chip select 3 */ -+#define MCF_DSPI_DTFDR1_PCS3 (0x00080000) -+/* Peripheral chip select 4 */ -+#define MCF_DSPI_DTFDR1_PCS4 (0x00100000) -+/* Peripheral chip select 5 */ -+#define MCF_DSPI_DTFDR1_PCS5 (0x00200000) -+/* Peripheral chip select 6 */ -+#define MCF_DSPI_DTFDR1_PCS6 (0x00400000) -+/* Peripheral chip select 7 */ -+#define MCF_DSPI_DTFDR1_PCS7 (0x00800000) -+/* Clear SPI transfer counter */ -+#define MCF_DSPI_DTFDR1_CTCNT (0x04000000) -+/* End of queue */ -+#define MCF_DSPI_DTFDR1_EOQ (0x08000000) -+/* Clock and transfer attributes select */ -+#define MCF_DSPI_DTFDR1_CTAS(x) (((x)&0x00000007)<<28) -+/* Continuous peripheral chip-select enable */ -+#define MCF_DSPI_DTFDR1_CONT (0x80000000) -+ -+/* Bit definitions and macros for DTFDR2 */ -+#define MCF_DSPI_DTFDR2_TXDATA(x) (((x)&0x0000FFFF)) -+/* Peripheral chip select 0 */ -+#define MCF_DSPI_DTFDR2_PCS0 (0x00010000) -+/* Peripheral chip select 1 */ -+#define MCF_DSPI_DTFDR2_PCS1 (0x00020000) -+/* Peripheral chip select 2 */ -+#define MCF_DSPI_DTFDR2_PCS2 (0x00040000) -+/* Peripheral chip select 3 */ -+#define MCF_DSPI_DTFDR2_PCS3 (0x00080000) -+/* Peripheral chip select 4 */ -+#define MCF_DSPI_DTFDR2_PCS4 (0x00100000) -+/* Peripheral chip select 5 */ -+#define MCF_DSPI_DTFDR2_PCS5 (0x00200000) -+/* Peripheral chip select 6 */ -+#define MCF_DSPI_DTFDR2_PCS6 (0x00400000) -+/* Peripheral chip select 7 */ -+#define MCF_DSPI_DTFDR2_PCS7 (0x00800000) -+/* Clear SPI transfer counter */ -+#define MCF_DSPI_DTFDR2_CTCNT (0x04000000) -+/* End of queue */ -+#define MCF_DSPI_DTFDR2_EOQ (0x08000000) -+/* Clock and transfer attributes select */ -+#define MCF_DSPI_DTFDR2_CTAS(x) (((x)&0x00000007)<<28) -+/* Continuous peripheral chip-select enable */ -+#define MCF_DSPI_DTFDR2_CONT (0x80000000) -+ -+/* Bit definitions and macros for DTFDR3 */ -+/* Transmit data */ -+#define MCF_DSPI_DTFDR3_TXDATA(x) (((x)&0x0000FFFF)) -+/* Peripheral chip select 0 */ -+#define MCF_DSPI_DTFDR3_PCS0 (0x00010000) -+/* Peripheral chip select 1 */ -+#define MCF_DSPI_DTFDR3_PCS1 (0x00020000) -+/* Peripheral chip select 2 */ -+#define MCF_DSPI_DTFDR3_PCS2 (0x00040000) -+/* Peripheral chip select 3 */ -+#define MCF_DSPI_DTFDR3_PCS3 (0x00080000) -+/* Peripheral chip select 4 */ -+#define MCF_DSPI_DTFDR3_PCS4 (0x00100000) -+/* Peripheral chip select 5 */ -+#define MCF_DSPI_DTFDR3_PCS5 (0x00200000) -+/* Peripheral chip select 6 */ -+#define MCF_DSPI_DTFDR3_PCS6 (0x00400000) -+/* Peripheral chip select 7 */ -+#define MCF_DSPI_DTFDR3_PCS7 (0x00800000) -+/* Clear SPI transfer counter */ -+#define MCF_DSPI_DTFDR3_CTCNT (0x04000000) -+/* End of queue */ -+#define MCF_DSPI_DTFDR3_EOQ (0x08000000) -+/* Clock and transfer attributes select */ -+#define MCF_DSPI_DTFDR3_CTAS(x) (((x)&0x00000007)<<28) -+/* Continuous peripheral chip-select enable */ -+#define MCF_DSPI_DTFDR3_CONT (0x80000000) -+ -+/* Bit definitions and macros for DRFDR group */ -+#define MCF_DSPI_DRFDR_RXDATA(x) (((x)&0x0000FFFF)) -+ -+/* Bit definitions and macros for DRFDR0 */ -+#define MCF_DSPI_DRFDR0_RXDATA(x) (((x)&0x0000FFFF)) -+ -+/* Bit definitions and macros for DRFDR1 */ -+#define MCF_DSPI_DRFDR1_RXDATA(x) (((x)&0x0000FFFF)) -+ -+/* Bit definitions and macros for DRFDR2 */ -+#define MCF_DSPI_DRFDR2_RXDATA(x) (((x)&0x0000FFFF)) -+ -+/* Bit definitions and macros for DRFDR3 */ -+#define MCF_DSPI_DRFDR3_RXDATA(x) (((x)&0x0000FFFF)) -+ -+/********************************************************************/ -+ -+#endif /* __MCF5441X_DSPI_H__ */ ---- /dev/null -+++ b/arch/m68k/include/asm/mcf5441x_dtim.h -@@ -0,0 +1,95 @@ -+/* -+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved. -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by the -+ * Free Software Foundation; either version 2 of the License, or (at your -+ * option) any later version. -+ */ -+ -+#ifndef __MCF5441X_DTIM_H__ -+#define __MCF5441X_DTIM_H__ -+ -+/********************************************************************* -+* -+* DMA Timers (DTIM) -+* -+*********************************************************************/ -+/* Register read/write macros */ -+#define MCF_DTIM0_DTMR 0xFC070000 /* DMA Timer Mode Register */ -+#define MCF_DTIM0_DTXMR 0xFC070002 /* DMA Timer Extended Mode Register */ -+#define MCF_DTIM0_DTER 0xFC070003 /* DMA Timer Event Register */ -+#define MCF_DTIM0_DTRR 0xFC070004 /* DMA Timer Reference Register */ -+#define MCF_DTIM0_DTCR 0xFC070008 /* DMA Timer Capture Register */ -+#define MCF_DTIM0_DTCN 0xFC07000C /* DMA Timer Counter Register */ -+#define MCF_DTIM1_DTMR 0xFC074000 /* DMA Timer Mode Register */ -+#define MCF_DTIM1_DTXMR 0xFC074002 /* DMA Timer Extended Mode Register */ -+#define MCF_DTIM1_DTER 0xFC074003 /* DMA Timer Event Register */ -+#define MCF_DTIM1_DTRR 0xFC074004 /* DMA Timer Reference Register */ -+#define MCF_DTIM1_DTCR 0xFC074008 /* DMA Timer Capture Register */ -+#define MCF_DTIM1_DTCN 0xFC07400C /* DMA Timer Counter Register */ -+#define MCF_DTIM2_DTMR 0xFC078000 /* DMA Timer Mode Register */ -+#define MCF_DTIM2_DTXMR 0xFC078002 /* DMA Timer Extended Mode Register */ -+#define MCF_DTIM2_DTER 0xFC078003 /* DMA Timer Event Register */ -+#define MCF_DTIM2_DTRR 0xFC078004 /* DMA Timer Reference Register */ -+#define MCF_DTIM2_DTCR 0xFC078008 /* DMA Timer Capture Register */ -+#define MCF_DTIM2_DTCN 0xFC07800C /* DMA Timer Counter Register */ -+#define MCF_DTIM3_DTMR 0xFC07C000 /* DMA Timer Mode Register */ -+#define MCF_DTIM3_DTXMR 0xFC07C002 /* DMA Timer Extended Mode Register */ -+#define MCF_DTIM3_DTER 0xFC07C003 /* DMA Timer Event Register */ -+#define MCF_DTIM3_DTRR 0xFC07C004 /* DMA Timer Reference Register */ -+#define MCF_DTIM3_DTCR 0xFC07C008 /* DMA Timer Capture Register */ -+#define MCF_DTIM3_DTCN 0xFC07C00C /* DMA Timer Counter Register */ -+ -+/* Parameterized register read/write macros for multiple modules */ -+/* DMA Timer Mode Register */ -+#define MCF_DTIM_DTMR(x) (0xFC070000+((x)*0x4000)) -+/* DMA Timer Extended Mode Register */ -+#define MCF_DTIM_DTXMR(x) (0xFC070002+((x)*0x4000)) -+/* DMA Timer Event Register */ -+#define MCF_DTIM_DTER(x) (0xFC070003+((x)*0x4000)) -+/* DMA Timer Reference Register */ -+#define MCF_DTIM_DTRR(x) (0xFC070004+((x)*0x4000)) -+/* DMA Timer Capture Register */ -+#define MCF_DTIM_DTCR(x) (0xFC070008+((x)*0x4000)) -+/* DMA Timer Counter Register */ -+#define MCF_DTIM_DTCN(x) (0xFC07000C+((x)*0x4000)) -+ -+/* Bit definitions and macros for DTMR */ -+#define MCF_DTIM_DTMR_RST (0x0001) /* Reset */ -+#define MCF_DTIM_DTMR_CLK(x) (((x)&0x0003)<<1) /* Input clock source */ -+#define MCF_DTIM_DTMR_FRR (0x0008) /* Free run/restart */ -+/* Output reference request/interrupt enable */ -+#define MCF_DTIM_DTMR_ORRI (0x0010) -+#define MCF_DTIM_DTMR_OM (0x0020) /* Output Mode */ -+#define MCF_DTIM_DTMR_CE(x) (((x)&0x0003)<<6) /* Capture Edge */ -+#define MCF_DTIM_DTMR_PS(x) (((x)&0x00FF)<<8) /* Prescaler value */ -+#define MCF_DTIM_DTMR_RST_EN (0x0001) -+#define MCF_DTIM_DTMR_RST_RST (0x0000) -+#define MCF_DTIM_DTMR_CE_ANY (0x00C0) -+#define MCF_DTIM_DTMR_CE_FALL (0x0080) -+#define MCF_DTIM_DTMR_CE_RISE (0x0040) -+#define MCF_DTIM_DTMR_CE_NONE (0x0000) -+#define MCF_DTIM_DTMR_CLK_DTIN (0x0006) -+#define MCF_DTIM_DTMR_CLK_DIV16 (0x0004) -+#define MCF_DTIM_DTMR_CLK_DIV1 (0x0002) -+#define MCF_DTIM_DTMR_CLK_STOP (0x0000) -+ -+/* Bit definitions and macros for DTXMR */ -+#define MCF_DTIM_DTXMR_MODE16 (0x01) /* Increment Mode */ -+#define MCF_DTIM_DTXMR_DMAEN (0x80) /* DMA request */ -+#define MCF_DTIM_DTXMR_1588EN (0x20) /* Enable 1588 mode*/ -+ -+/* Bit definitions and macros for DTER */ -+#define MCF_DTIM_DTER_CAP (0x01) /* Capture event */ -+#define MCF_DTIM_DTER_REF (0x02) /* Output reference event */ -+ -+/* Interrupts used for system timers */ -+#define MCFSIM_ICR_TIMER0 (0xFC048040+32) -+#define MCFSIM_ICR_TIMER1 (0xFC048040+33) -+#define MCFSIM_ICR_TIMER2 (0xFC048040+34) -+#define MCFSIM_ICR_TIMER3 (0xFC048040+35) -+ -+/********************************************************************/ -+ -+#endif /* __MCF5441X_DTIM_H__ */ ---- /dev/null -+++ b/arch/m68k/include/asm/mcf5441x_edma.h -@@ -0,0 +1,303 @@ -+/* mcf5441x_edma.h -+ * -+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved. -+ * Lanttor.Guo@freescale.com -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by the -+ * Free Software Foundation; either version 2 of the License, or (at your -+ * option) any later version. -+ */ -+#ifndef __MCF5441X_EDMA_H__ -+#define __MCF5441X_EDMA_H__ -+ -+/* -+ * Enhanced DMA (EDMA) -+ */ -+ -+/* Channels */ -+#define MCF_EDMA_CHAN_DREQ0 0 /* External DMA request 0 */ -+#define MCF_EDMA_CHAN_DREQ1 1 /* External DMA request 1 */ -+#define MCF_EDMA_CHAN_UART0_RX 2 /* UART0 Receive */ -+#define MCF_EDMA_CHAN_UART0_TX 3 /* UART0 Transmit */ -+#define MCF_EDMA_CHAN_UART1_RX 4 /* UART1 Receive */ -+#define MCF_EDMA_CHAN_UART1_TX 5 /* UART1 Transmit */ -+#define MCF_EDMA_CHAN_UART2_RX 6 /* UART2 Receive */ -+#define MCF_EDMA_CHAN_UART2_TX 7 /* UART2 Transmit */ -+#define MCF_EDMA_CHAN_TIMER0 8 /* Timer 0 / SSI0 Rx */ -+#define MCF_EDMA_CHAN_TIMER1 9 /* Timer 1 / SSI1 Rx */ -+#define MCF_EDMA_CHAN_TIMER2 10 /* Timer 2 / SSI0 Tx */ -+#define MCF_EDMA_CHAN_TIMER3 11 /* Timer 3 / SSI1 Tx */ -+#define MCF_EDMA_CHAN_DSPI0_RX 12 /* DSPI0 Receive */ -+#define MCF_EDMA_CHAN_DSPI0_TX 13 /* DSPI0 Transmit */ -+#define MCF_EDMA_CHAN_DSPI1_RX 14 /* DSPI1 Receive */ -+#define MCF_EDMA_CHAN_DSPI1_TX 15 /* DSPI1 Transmit */ -+#define MCF_EDMA_CHAN_UART3_RX 16 /* UART3 Receive */ -+#define MCF_EDMA_CHAN_UART3_TX 17 /* UART3 Transmit */ -+#define MCF_EDMA_CHAN_UART4_RX 18 /* UART4 Receive */ -+#define MCF_EDMA_CHAN_UART4_TX 19 /* UART4 Transmit */ -+#define MCF_EDMA_CHAN_UART5_RX 20 /* UART5 Receive */ -+#define MCF_EDMA_CHAN_UART5_TX 21 /* UART5 Transmit */ -+#define MCF_EDMA_CHAN_UART6_RX 22 /* UART6 Receive */ -+#define MCF_EDMA_CHAN_UART6_TX 23 /* UART6 Transmit */ -+#define MCF_EDMA_CHAN_I2C0 24 /* I2C0 */ -+#define MCF_EDMA_CHAN_I2C1 25 /* I2C1 */ -+#define MCF_EDMA_CHAN_I2C2 26 /* I2C2 */ -+#define MCF_EDMA_CHAN_I2C3 27 /* I2C3 */ -+#define MCF_EDMA_CHAN_DSPI2_RX 28 /* DSPI2 Receive */ -+#define MCF_EDMA_CHAN_DSPI2_TX 29 /* DSPI2 Transmit */ -+#define MCF_EDMA_CHAN_N0 30 /* Available for software */ -+#define MCF_EDMA_CHAN_N1 31 /* Available for software */ -+#define MCF_EDMA_CHAN_UART7_RX 32 /* UART7 Receive */ -+#define MCF_EDMA_CHAN_UART7_TX 33 /* UART7 Transmit */ -+#define MCF_EDMA_CHAN_UART8_RX 34 /* UART8 Receive */ -+#define MCF_EDMA_CHAN_UART8_TX 35 /* UART8 Transmit */ -+#define MCF_EDMA_CHAN_UART9_RX 36 /* UART9 Receive */ -+#define MCF_EDMA_CHAN_UART9_TX 37 /* UART9 Transmit */ -+#define MCF_EDMA_CHAN_OW 38 /* 1-Wire */ -+#define MCF_EDMA_CHAN_RESERVED 39 /* Reserved */ -+#define MCF_EDMA_CHAN_I2C4 40 /* I2C4 */ -+#define MCF_EDMA_CHAN_I2C5 41 /* I2C5 */ -+#define MCF_EDMA_CHAN_N2 42 /* Available for software */ -+#define MCF_EDMA_CHAN_N3 43 /* Available for software */ -+#define MCF_EDMA_CHAN_DSPI3_RX 44 /* DSPI3 Receive */ -+#define MCF_EDMA_CHAN_DSPI3_TX 45 /* DSPI3 Transmit */ -+#define MCF_EDMA_CHAN_SSI0_RX0 48 /* SSI0 Receive 0 */ -+#define MCF_EDMA_CHAN_SSI0_RX1 49 /* SSI0 Receive 1 */ -+#define MCF_EDMA_CHAN_SSI0_TX0 50 /* SSI0 Transmit 0 */ -+#define MCF_EDMA_CHAN_SSI0_TX1 51 /* SSI0 Transmit 1 */ -+#define MCF_EDMA_CHAN_SSI1_RX0 52 /* SSI1 Receive 0 */ -+#define MCF_EDMA_CHAN_SSI1_RX1 53 /* SSI1 Receive 1 */ -+#define MCF_EDMA_CHAN_SSI1_TX0 54 /* SSI1 Transmit 0 */ -+#define MCF_EDMA_CHAN_SSI1_TX1 55 /* SSI1 Transmit 1 */ -+#define MCF_EDMA_CHAN_PWM_CAP 56 /* PWM Capture */ -+#define MCF_EDMA_CHAN_PWM_VAL 57 /* PWM Value */ -+#define MCF_EDMA_CHAN_RESERVED2 58 /* Reserved */ -+#define MCF_EDMA_CHAN_ESDHC 59 /* eSDHC */ -+#define MCF_EDMA_CHAN_ADC0 60 /* ADC 0 */ -+#define MCF_EDMA_CHAN_ADC1 61 /* ADC 1 */ -+#define MCF_EDMA_CHAN_DAC0 62 /* DAC 0 */ -+#define MCF_EDMA_CHAN_DAC1 63 /* DAC 1 */ -+ -+/* Register read/write macros */ -+#define MCF_EDMA_CR MCF_REG32(0xFC044000) -+#define MCF_EDMA_ES MCF_REG32(0xFC044004) -+#define MCF_EDMA_ERQH MCF_REG32(0xFC044008) -+#define MCF_EDMA_ERQL MCF_REG32(0xFC04400C) -+#define MCF_EDMA_EEIH MCF_REG32(0xFC044010) -+#define MCF_EDMA_EEIL MCF_REG32(0xFC044014) -+#define MCF_EDMA_SERQ MCF_REG08(0xFC044018) -+#define MCF_EDMA_CERQ MCF_REG08(0xFC044019) -+#define MCF_EDMA_SEEI MCF_REG08(0xFC04401A) -+#define MCF_EDMA_CEEI MCF_REG08(0xFC04401B) -+#define MCF_EDMA_CINT MCF_REG08(0xFC04401C) -+#define MCF_EDMA_CERR MCF_REG08(0xFC04401D) -+#define MCF_EDMA_SSRT MCF_REG08(0xFC04401E) -+#define MCF_EDMA_CDNE MCF_REG08(0xFC04401F) -+#define MCF_EDMA_INTH MCF_REG32(0xFC044020) -+#define MCF_EDMA_INTL MCF_REG32(0xFC044024) -+#define MCF_EDMA_ERRH MCF_REG32(0xFC044028) -+#define MCF_EDMA_ERRL MCF_REG32(0xFC04402C) -+#define MCF_EDMA_RSH MCF_REG32(0xFC044030) -+#define MCF_EDMA_RSL MCF_REG32(0xFC044034) -+ -+/* Parameterized register read/write macros for multiple registers */ -+#define MCF_EDMA_DCHPRI(x) MCF_REG08(0xFC044100+((x)*0x001)) -+#define MCF_EDMA_TCD_SADDR(x) MCF_REG32(0xFC045000+((x)*0x020)) -+#define MCF_EDMA_TCD_ATTR(x) MCF_REG16(0xFC045004+((x)*0x020)) -+#define MCF_EDMA_TCD_SOFF(x) MCF_REG16(0xFC045006+((x)*0x020)) -+#define MCF_EDMA_TCD_NBYTES(x) MCF_REG32(0xFC045008+((x)*0x020)) -+#define MCF_EDMA_TCD_SLAST(x) MCF_REG32(0xFC04500C+((x)*0x020)) -+#define MCF_EDMA_TCD_DADDR(x) MCF_REG32(0xFC045010+((x)*0x020)) -+#define MCF_EDMA_TCD_CITER_ELINK(x) MCF_REG16(0xFC045014+((x)*0x020)) -+#define MCF_EDMA_TCD_CITER(x) MCF_REG16(0xFC045014+((x)*0x020)) -+#define MCF_EDMA_TCD_DOFF(x) MCF_REG16(0xFC045016+((x)*0x020)) -+#define MCF_EDMA_TCD_DLAST_SGA(x) MCF_REG32(0xFC045018+((x)*0x020)) -+#define MCF_EDMA_TCD_BITER_ELINK(x) MCF_REG16(0xFC04501C+((x)*0x020)) -+#define MCF_EDMA_TCD_BITER(x) MCF_REG16(0xFC04501C+((x)*0x020)) -+#define MCF_EDMA_TCD_CSR(x) MCF_REG16((0xFC04501e)+((x)*0x020)) -+ -+/* Bit definitions and macros for CR */ -+#define MCF_EDMA_CR_EDBG (0x00000002) -+#define MCF_EDMA_CR_ERCA (0x00000004) -+#define MCF_EDMA_CR_ERGA (0x00000008) -+#define MCF_EDMA_CR_HOE (0x00000010) -+#define MCF_EDMA_CR_HALT (0x00000020) -+#define MCF_EDMA_CR_CLM (0x00000040) -+#define MCF_EDMA_CR_EMLM (0x00000080) -+#define MCF_EDMA_CR_GRP0PRI(x) (((x)&0x03)<<8) -+#define MCF_EDMA_CR_GRP1PRI(x) (((x)&0x03)<<10) -+#define MCF_EDMA_CR_GRP2PRI(x) (((x)&0x03)<<12) -+#define MCF_EDMA_CR_GRP3PRI(x) (((x)&0x03)<<14) -+#define MCF_EDMA_CR_ECX (0x00010000) -+#define MCF_EDMA_CR_CX (0x00020000) -+ -+/* Bit definitions and macros for ES */ -+#define MCF_EDMA_ES_DBE (0x00000001) -+#define MCF_EDMA_ES_SBE (0x00000002) -+#define MCF_EDMA_ES_SGE (0x00000004) -+#define MCF_EDMA_ES_NCE (0x00000008) -+#define MCF_EDMA_ES_DOE (0x00000010) -+#define MCF_EDMA_ES_DAE (0x00000020) -+#define MCF_EDMA_ES_SOE (0x00000040) -+#define MCF_EDMA_ES_SAE (0x00000080) -+#define MCF_EDMA_ES_ERRCHN(x) (((x)&0x0000003F)<<8) -+#define MCF_EDMA_ES_CPE (0x00004000) -+#define MCF_EDMA_ES_GPE (0x00008000) -+#define MCF_EDMA_ES_ECX (0x00010000) -+#define MCF_EDMA_ES_VLD (0x80000000) -+ -+/* Bit definitions and macros for ERQ: 0~63 bits */ -+#define MCF_EDMA_ERQ_ERQH(x) (0x01<<x) /*32~63*/ -+#define MCF_EDMA_ERQ_ERQL(x) (0x01<<x) /*0~31*/ -+ -+/* Bit definitions and macros for EEI: 0~63 bits */ -+#define MCF_EDMA_EEI_EEIH(x) (0x01<<x) /*32~63*/ -+#define MCF_EDMA_EEI_EEIL(x) (0x01<<x) /*0~31*/ -+ -+/* Bit definitions and macros for SERQ */ -+#define MCF_EDMA_SERQ_SERQ(x) (((x)&0x3F)) -+#define MCF_EDMA_SERQ_SAER (0x40) -+#define MCF_EDMA_SERQ_NOP (0x80) -+ -+/* Bit definitions and macros for CERQ */ -+#define MCF_EDMA_CERQ_CERQ(x) (((x)&0x3F)) -+#define MCF_EDMA_CERQ_CAER (0x40) -+#define MCF_EDMA_CERQ_NOP (0x80) -+ -+/* Bit definitions and macros for SEEI */ -+#define MCF_EDMA_SEEI_SEEI(x) (((x)&0x3F)) -+#define MCF_EDMA_SEEI_SAEE (0x40) -+#define MCF_EDMA_SEEI_NOP (0x80) -+ -+/* Bit definitions and macros for CEEI */ -+#define MCF_EDMA_CEEI_CEEI(x) (((x)&0x3F)) -+#define MCF_EDMA_CEEI_CAEE (0x40) -+#define MCF_EDMA_CEEI_NOP (0x80) -+ -+/* Bit definitions and macros for CINT */ -+#define MCF_EDMA_CINT_CINT(x) (((x)&0x3F)) -+#define MCF_EDMA_CINT_CAIR (0x40) -+#define MCF_EDMA_CINT_NOP (0x80) -+ -+/* Bit definitions and macros for CERR */ -+#define MCF_EDMA_CERR_CERR(x) (((x)&0x3F)) -+#define MCF_EDMA_CERR_CAER (0x40) -+#define MCF_EDMA_CERR_NOP (0x80) -+ -+/* Bit definitions and macros for SSRT */ -+#define MCF_EDMA_SSRT_SSRT(x) (((x)&0x3F)) -+#define MCF_EDMA_SSRT_SAST (0x40) -+#define MCF_EDMA_SSRT_NOP (0x80) -+ -+/* Bit definitions and macros for CDNE */ -+#define MCF_EDMA_CDNE_CDNE(x) (((x)&0x3F)) -+#define MCF_EDMA_CDNE_CADN (0x40) -+#define MCF_EDMA_CDNE_NOP (0x80) -+ -+/* Bit definitions and macros for INTR: 0~63 bits */ -+#define MCF_EDMA_INTR_INTH(x) (0x01<<x) /*32~63*/ -+#define MCF_EDMA_INTR_INTL(x) (0x01<<x) /*0~31*/ -+ -+/* Bit definitions and macros for ERR: 0~63 bits */ -+#define MCF_EDMA_ERR_ERRH(x) (0x01<<x) /*32~63*/ -+#define MCF_EDMA_ERR_ERRL(x) (0x01<<x) /*0~31*/ -+ -+/* Bit defineitions and macros for HRSH/HRSL */ -+#define MCF_EDMA_HRS_HRSH(x) (0x01<<x) /*32~63*/ -+#define MCF_EDMA_HRS_HRSL(x) (0x01<<x) /*0~31*/ -+ -+/* Bit definitions and macros for DCHPRI group */ -+#define MCF_EDMA_DCHPRI_CHPRI(x) (((x)&0x0F)) -+#define MCF_EDMA_DCHPRI_GRPPRI(x) (((x)&0x03) << 4) -+#define MCF_EDMA_DCHPRI_DPA (0x40) -+#define MCF_EDMA_DCHPRI_ECP (0x80) -+ -+/* Bit definitions and macros for TCD_SADDR group */ -+#define MCF_EDMA_TCD_SADDR_SADDR(x) (x) -+ -+/* Bit definitions and macros for TCD_ATTR group */ -+#define MCF_EDMA_TCD_ATTR_DSIZE(x) (((x)&0x0007)) -+#define MCF_EDMA_TCD_ATTR_DMOD(x) (((x)&0x001F)<<3) -+#define MCF_EDMA_TCD_ATTR_SSIZE(x) (((x)&0x0007)<<8) -+#define MCF_EDMA_TCD_ATTR_SMOD(x) (((x)&0x001F)<<11) -+#define MCF_EDMA_TCD_ATTR_SSIZE_8BIT (0x0000) -+#define MCF_EDMA_TCD_ATTR_SSIZE_16BIT (0x0100) -+#define MCF_EDMA_TCD_ATTR_SSIZE_32BIT (0x0200) -+#define MCF_EDMA_TCD_ATTR_SSIZE_16BYTE (0x0400) -+#define MCF_EDMA_TCD_ATTR_DSIZE_8BIT (0x0000) -+#define MCF_EDMA_TCD_ATTR_DSIZE_16BIT (0x0001) -+#define MCF_EDMA_TCD_ATTR_DSIZE_32BIT (0x0002) -+#define MCF_EDMA_TCD_ATTR_DSIZE_16BYTE (0x0004) -+ -+/* Bit definitions and macros for TCD_SOFF group */ -+#define MCF_EDMA_TCD_SOFF_SOFF(x) (x) -+ -+/* Bit definitions and macros for TCD_NBYTES group */ -+#define MCF_EDMA_TCD_NBYTES_NBYTES(x) (x) -+#define MCF_EDMA_TCD_NBYTES_SMLOE (0x80000000) -+#define MCF_EDMA_TCD_NBYTES_DMLOE (0x40000000) -+#define MCF_EDMA_TCD_NBYTES_MLOFF(x) (((x)&0xFFFFF)<<20) -+#define MCF_EDMA_TCD_NBYTES_9BITS ((x)&0x1FF) -+ -+/* Bit definitions and macros for TCD_SLAST group */ -+#define MCF_EDMA_TCD_SLAST_SLAST(x) (x) -+ -+/* Bit definitions and macros for TCD_DADDR group */ -+#define MCF_EDMA_TCD_DADDR_DADDR(x) (x) -+ -+/* Bit definitions and macros for TCD_CITER_ELINK group */ -+#define MCF_EDMA_TCD_CITER_ELINK_CITER(x) (((x)&0x01FF)) -+#define MCF_EDMA_TCD_CITER_ELINK_LINKCH(x) (((x)&0x003F)<<9) -+#define MCF_EDMA_TCD_CITER_ELINK_E_LINK (0x8000) -+ -+/* Bit definitions and macros for TCD_CITER group */ -+#define MCF_EDMA_TCD_CITER_CITER(x) (((x)&0x7FFF)) -+#define MCF_EDMA_TCD_CITER_E_LINK (0x8000) -+ -+/* Bit definitions and macros for TCD_DOFF group */ -+#define MCF_EDMA_TCD_DOFF_DOFF(x) (x) -+ -+/* Bit definitions and macros for TCD_DLAST_SGA group */ -+#define MCF_EDMA_TCD_DLAST_SGA_DLAST_SGA(x) (x) -+ -+/* Bit definitions and macros for TCD_BITER_ELINK group */ -+#define MCF_EDMA_TCD_BITER_ELINK_BITER(x) (((x)&0x01FF)) -+#define MCF_EDMA_TCD_BITER_ELINK_LINKCH(x) (((x)&0x003F)<<9) -+#define MCF_EDMA_TCD_BITER_ELINK_E_LINK (0x8000) -+ -+/* Bit definitions and macros for TCD_BITER group */ -+#define MCF_EDMA_TCD_BITER_BITER(x) (((x)&0x7FFF)) -+#define MCF_EDMA_TCD_BITER_E_LINK (0x8000) -+ -+/* Bit definitions and macros for TCD_CSR group */ -+#define MCF_EDMA_TCD_CSR_START (0x0001) -+#define MCF_EDMA_TCD_CSR_INT_MAJOR (0x0002) -+#define MCF_EDMA_TCD_CSR_INT_HALF (0x0004) -+#define MCF_EDMA_TCD_CSR_D_REQ (0x0008) -+#define MCF_EDMA_TCD_CSR_E_SG (0x0010) -+#define MCF_EDMA_TCD_CSR_E_LINK (0x0020) -+#define MCF_EDMA_TCD_CSR_ACTIVE (0x0040) -+#define MCF_EDMA_TCD_CSR_DONE (0x0080) -+#define MCF_EDMA_TCD_CSR_LINKCH(x) (((x)&0x003F)<<8) -+#define MCF_EDMA_TCD_CSR_BWC(x) (((x)&0x0003)<<14) -+#define MCF_EDMA_TCD_CSR_BWC_NO_STALL (0x0000) -+#define MCF_EDMA_TCD_CSR_BWC_4CYC_STALL (0x8000) -+#define MCF_EDMA_TCD_CSR_BWC_8CYC_STALL (0xC000) -+ -+/* Bit definitions and macros for TCD0_CSR */ -+#define MCF_EDMA_TCD0_CSR_START (0x0001) -+#define MCF_EDMA_TCD0_CSR_INT_MAJOR (0x0002) -+#define MCF_EDMA_TCD0_CSR_INT_HALF (0x0004) -+#define MCF_EDMA_TCD0_CSR_D_REQ (0x0008) -+#define MCF_EDMA_TCD0_CSR_E_SG (0x0010) -+#define MCF_EDMA_TCD0_CSR_E_LINK (0x0020) -+#define MCF_EDMA_TCD0_CSR_ACTIVE (0x0040) -+#define MCF_EDMA_TCD0_CSR_DONE (0x0080) -+#define MCF_EDMA_TCD0_CSR_LINKCH(x) (((x)&0x003F)<<8) -+#define MCF_EDMA_TCD0_CSR_BWC(x) (((x)&0x0003)<<14) -+#define MCF_EDMA_TCD0_CSR_BWC_NO_STALL (0x0000) -+#define MCF_EDMA_TCD0_CSR_BWC_4CYC_STALL (0x8000) -+#define MCF_EDMA_TCD0_CSR_BWC_8CYC_STALL (0xC000) -+ -+#endif /* __MCF5441X_EDMA_H__ */ ---- /dev/null -+++ b/arch/m68k/include/asm/mcf5441x_eport.h -@@ -0,0 +1,94 @@ -+/* -+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved. -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by the -+ * Free Software Foundation; either version 2 of the License, or (at your -+ * option) any later version. -+ */ -+ -+#ifndef __MCF5441X_EPORT_H__ -+#define __MCF5441X_EPORT_H__ -+ -+/********************************************************************* -+* -+* Edge Port Module (EPORT) -+* -+*********************************************************************/ -+ -+/* Register read/write macros */ -+#define MCF_EPORT_EPPAR MCF_REG16(0xFC090000) -+#define MCF_EPORT_EPDDR MCF_REG08(0xFC094002) -+#define MCF_EPORT_EPIER MCF_REG08(0xFC090003) -+#define MCF_EPORT_EPDR MCF_REG08(0xFC090004) -+#define MCF_EPORT_EPPDR MCF_REG08(0xFC090005) -+#define MCF_EPORT_EPFR MCF_REG08(0xFC090006) -+ -+/* Bit definitions and macros for EPPAR */ -+#define MCF_EPORT_EPPAR_EPPA1(x) (((x)&0x0003)<<2) -+#define MCF_EPORT_EPPAR_EPPA2(x) (((x)&0x0003)<<4) -+#define MCF_EPORT_EPPAR_EPPA3(x) (((x)&0x0003)<<6) -+#define MCF_EPORT_EPPAR_EPPA4(x) (((x)&0x0003)<<8) -+#define MCF_EPORT_EPPAR_EPPA5(x) (((x)&0x0003)<<10) -+#define MCF_EPORT_EPPAR_EPPA6(x) (((x)&0x0003)<<12) -+#define MCF_EPORT_EPPAR_EPPA7(x) (((x)&0x0003)<<14) -+#define MCF_EPORT_EPPAR_LEVEL (0) -+#define MCF_EPORT_EPPAR_RISING (1) -+#define MCF_EPORT_EPPAR_FALLING (2) -+#define MCF_EPORT_EPPAR_BOTH (3) -+#define MCF_EPORT_EPPAR_EPPA7_LEVEL (0x0000) -+#define MCF_EPORT_EPPAR_EPPA7_RISING (0x4000) -+#define MCF_EPORT_EPPAR_EPPA7_FALLING (0x8000) -+#define MCF_EPORT_EPPAR_EPPA7_BOTH (0xC000) -+#define MCF_EPORT_EPPAR_EPPA6_LEVEL (0x0000) -+#define MCF_EPORT_EPPAR_EPPA6_RISING (0x1000) -+#define MCF_EPORT_EPPAR_EPPA6_FALLING (0x2000) -+#define MCF_EPORT_EPPAR_EPPA6_BOTH (0x3000) -+#define MCF_EPORT_EPPAR_EPPA5_LEVEL (0x0000) -+#define MCF_EPORT_EPPAR_EPPA5_RISING (0x0400) -+#define MCF_EPORT_EPPAR_EPPA5_FALLING (0x0800) -+#define MCF_EPORT_EPPAR_EPPA5_BOTH (0x0C00) -+#define MCF_EPORT_EPPAR_EPPA4_LEVEL (0x0000) -+#define MCF_EPORT_EPPAR_EPPA4_RISING (0x0100) -+#define MCF_EPORT_EPPAR_EPPA4_FALLING (0x0200) -+#define MCF_EPORT_EPPAR_EPPA4_BOTH (0x0300) -+#define MCF_EPORT_EPPAR_EPPA3_LEVEL (0x0000) -+#define MCF_EPORT_EPPAR_EPPA3_RISING (0x0040) -+#define MCF_EPORT_EPPAR_EPPA3_FALLING (0x0080) -+#define MCF_EPORT_EPPAR_EPPA3_BOTH (0x00C0) -+#define MCF_EPORT_EPPAR_EPPA2_LEVEL (0x0000) -+#define MCF_EPORT_EPPAR_EPPA2_RISING (0x0010) -+#define MCF_EPORT_EPPAR_EPPA2_FALLING (0x0020) -+#define MCF_EPORT_EPPAR_EPPA2_BOTH (0x0030) -+#define MCF_EPORT_EPPAR_EPPA1_LEVEL (0x0000) -+#define MCF_EPORT_EPPAR_EPPA1_RISING (0x0004) -+#define MCF_EPORT_EPPAR_EPPA1_FALLING (0x0008) -+#define MCF_EPORT_EPPAR_EPPA1_BOTH (0x000C) -+#define MCF_EPORT_EPPAR_EPPA0_LEVEL (0x0000) -+#define MCF_EPORT_EPPAR_EPPA0_RISING (0x0001) -+#define MCF_EPORT_EPPAR_EPPA0_FALLING (0x0002) -+#define MCF_EPORT_EPPAR_EPPA0_BOTH (0x0003) -+ -+/* Bit definitions and macros for EPIER */ -+#define MCF_EPORT_EPIER_EPIE0 (0x01) -+#define MCF_EPORT_EPIER_EPIE1 (0x02) -+#define MCF_EPORT_EPIER_EPIE2 (0x04) -+#define MCF_EPORT_EPIER_EPIE3 (0x08) -+#define MCF_EPORT_EPIER_EPIE4 (0x10) -+#define MCF_EPORT_EPIER_EPIE5 (0x20) -+#define MCF_EPORT_EPIER_EPIE6 (0x40) -+#define MCF_EPORT_EPIER_EPIE7 (0x80) -+ -+/* Bit definitions and macros for EPFR */ -+#define MCF_EPORT_EPFR_EPF0 (0x01) -+#define MCF_EPORT_EPFR_EPF1 (0x02) -+#define MCF_EPORT_EPFR_EPF2 (0x04) -+#define MCF_EPORT_EPFR_EPF3 (0x08) -+#define MCF_EPORT_EPFR_EPF4 (0x10) -+#define MCF_EPORT_EPFR_EPF5 (0x20) -+#define MCF_EPORT_EPFR_EPF6 (0x40) -+#define MCF_EPORT_EPFR_EPF7 (0x80) -+ -+/********************************************************************/ -+ -+#endif /* __MCF5441X_EPORT_H__ */ ---- /dev/null -+++ b/arch/m68k/include/asm/mcf5441x_fbcs.h -@@ -0,0 +1,204 @@ -+/* -+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved. -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by the -+ * Free Software Foundation; either version 2 of the License, or (at your -+ * option) any later version. -+ */ -+ -+#ifndef __MCF5441X_FBCS_H__ -+#define __MCF5441X_FBCS_H__ -+ -+/********************************************************************* -+* -+* FlexBus Chip Selects (FBCS) -+* -+*********************************************************************/ -+ -+/* Register read/write macros */ -+#define MCF_FBCS_CSAR0 MCF_REG32(0xFC008000) /* Chip-select Addr Register */ -+#define MCF_FBCS_CSMR0 MCF_REG32(0xFC008004) /* Chip-select Mask Register */ -+#define MCF_FBCS_CSCR0 MCF_REG32(0xFC008008) /* Chip-select Cntl Register */ -+#define MCF_FBCS_CSAR1 MCF_REG32(0xFC00800C) /* Chip-select Addr Register */ -+#define MCF_FBCS_CSMR1 MCF_REG32(0xFC008010) /* Chip-select Mask Register */ -+#define MCF_FBCS_CSCR1 MCF_REG32(0xFC008014) /* Chip-select Cntl Register */ -+#define MCF_FBCS_CSAR2 MCF_REG32(0xFC008018) /* Chip-select Addr Register */ -+#define MCF_FBCS_CSMR2 MCF_REG32(0xFC00801C) /* Chip-select Mask Register */ -+#define MCF_FBCS_CSCR2 MCF_REG32(0xFC008020) /* Chip-select Cntl Register */ -+#define MCF_FBCS_CSAR3 MCF_REG32(0xFC008024) /* Chip-select Addr Register */ -+#define MCF_FBCS_CSMR3 MCF_REG32(0xFC008028) /* Chip-select Mask Register */ -+#define MCF_FBCS_CSCR3 MCF_REG32(0xFC00802C) /* Chip-select Cntl Register */ -+ -+/* Parameterized register read/write macros for multiple registers */ -+/* Chip-select Addr Register */ -+#define MCF_FBCS_CSAR(x) MCF_REG32(0xFC008000+((x)*0x00C)) -+/* Chip-select Mask Register */ -+#define MCF_FBCS_CSMR(x) MCF_REG32(0xFC008004+((x)*0x00C)) -+/* Chip-select Cntl Register */ -+#define MCF_FBCS_CSCR(x) MCF_REG32(0xFC008008+((x)*0x00C)) -+ -+/* Bit definitions and macros for CSAR group */ -+#define MCF_FBCS_CSAR_BA(x) ((x)&0xFFFF0000) -+ -+/* Bit definitions and macros for CSAR0 */ -+#define MCF_FBCS_CSAR0_BA(x) ((x)&0xFFFF0000) -+ -+/* Bit definitions and macros for CSMR group */ -+#define MCF_FBCS_CSMR_V (0x00000001) /* Valid bit */ -+#define MCF_FBCS_CSMR_WP (0x00000100) /* Write protect */ -+#define MCF_FBCS_CSMR_BAM(x) (((x)&0x0000FFFF)<<16) /* Base addr mask */ -+#define MCF_FBCS_CSMR_BAM_4G (0xFFFF0000) -+#define MCF_FBCS_CSMR_BAM_2G (0x7FFF0000) -+#define MCF_FBCS_CSMR_BAM_1G (0x3FFF0000) -+#define MCF_FBCS_CSMR_BAM_1024M (0x3FFF0000) -+#define MCF_FBCS_CSMR_BAM_512M (0x1FFF0000) -+#define MCF_FBCS_CSMR_BAM_256M (0x0FFF0000) -+#define MCF_FBCS_CSMR_BAM_128M (0x07FF0000) -+#define MCF_FBCS_CSMR_BAM_64M (0x03FF0000) -+#define MCF_FBCS_CSMR_BAM_32M (0x01FF0000) -+#define MCF_FBCS_CSMR_BAM_16M (0x00FF0000) -+#define MCF_FBCS_CSMR_BAM_8M (0x007F0000) -+#define MCF_FBCS_CSMR_BAM_4M (0x003F0000) -+#define MCF_FBCS_CSMR_BAM_2M (0x001F0000) -+#define MCF_FBCS_CSMR_BAM_1M (0x000F0000) -+#define MCF_FBCS_CSMR_BAM_1024K (0x000F0000) -+#define MCF_FBCS_CSMR_BAM_512K (0x00070000) -+#define MCF_FBCS_CSMR_BAM_256K (0x00030000) -+#define MCF_FBCS_CSMR_BAM_128K (0x00010000) -+#define MCF_FBCS_CSMR_BAM_64K (0x00000000) -+ -+/* Bit definitions and macros for CSMR0 */ -+#define MCF_FBCS_CSMR0_V (0x00000001) /* Valid bit */ -+#define MCF_FBCS_CSMR0_WP (0x00000100) /* Write protect */ -+#define MCF_FBCS_CSMR0_BAM(x) (((x)&0x0000FFFF)<<16) /* Base addr mask */ -+#define MCF_FBCS_CSMR0_BAM_4G (0xFFFF0000) -+#define MCF_FBCS_CSMR0_BAM_2G (0x7FFF0000) -+#define MCF_FBCS_CSMR0_BAM_1G (0x3FFF0000) -+#define MCF_FBCS_CSMR0_BAM_1024M (0x3FFF0000) -+#define MCF_FBCS_CSMR0_BAM_512M (0x1FFF0000) -+#define MCF_FBCS_CSMR0_BAM_256M (0x0FFF0000) -+#define MCF_FBCS_CSMR0_BAM_128M (0x07FF0000) -+#define MCF_FBCS_CSMR0_BAM_64M (0x03FF0000) -+#define MCF_FBCS_CSMR0_BAM_32M (0x01FF0000) -+#define MCF_FBCS_CSMR0_BAM_16M (0x00FF0000) -+#define MCF_FBCS_CSMR0_BAM_8M (0x007F0000) -+#define MCF_FBCS_CSMR0_BAM_4M (0x003F0000) -+#define MCF_FBCS_CSMR0_BAM_2M (0x001F0000) -+#define MCF_FBCS_CSMR0_BAM_1M (0x000F0000) -+#define MCF_FBCS_CSMR0_BAM_1024K (0x000F0000) -+#define MCF_FBCS_CSMR0_BAM_512K (0x00070000) -+#define MCF_FBCS_CSMR0_BAM_256K (0x00030000) -+#define MCF_FBCS_CSMR0_BAM_128K (0x00010000) -+#define MCF_FBCS_CSMR0_BAM_64K (0x00000000) -+ -+/* Bit definitions and macros for CSCR group */ -+#define MCF_FBCS_CSCR_BSTW (0x00000008) /* Burst-write enable */ -+#define MCF_FBCS_CSCR_BSTR (0x00000010) /* Burst-read enable */ -+#define MCF_FBCS_CSCR_BEM (0x00000020) /* Byte-enable mode */ -+#define MCF_FBCS_CSCR_PS(x) (((x)&0x00000003)<<6) /* Port size */ -+#define MCF_FBCS_CSCR_AA (0x00000100) /* Auto-acknowledge */ -+#define MCF_FBCS_CSCR_BLS (0x00000200) /* Byte-lane shift */ -+#define MCF_FBCS_CSCR_WS(x) (((x)&0x0000003F)<<10) /* Wait states */ -+/* Write address hold or deselect */ -+#define MCF_FBCS_CSCR_WRAH(x) (((x)&0x00000003)<<16) -+/* Read address hold or deselect */ -+#define MCF_FBCS_CSCR_RDAH(x) (((x)&0x00000003)<<18) -+#define MCF_FBCS_CSCR_ASET(x) (((x)&0x00000003)<<20) /* Address setup */ -+/* Secondary wait state enable */ -+#define MCF_FBCS_CSCR_SWSEN (0x00800000) -+/* Secondary wait states */ -+#define MCF_FBCS_CSCR_SWS(x) (((x)&0x0000003F)<<26) -+#define MCF_FBCS_CSCR_PS_8 (0x00000040) -+#define MCF_FBCS_CSCR_PS_16 (0x00000080) -+#define MCF_FBCS_CSCR_PS_32 (0x00000000) -+ -+/* Bit definitions and macros for CSCR0 */ -+#define MCF_FBCS_CSCR0_BSTW (0x00000008) /* Burst-write enable */ -+#define MCF_FBCS_CSCR0_BSTR (0x00000010) /* Burst-read enable */ -+#define MCF_FBCS_CSCR0_BEM (0x00000020) /* Byte-enable mode */ -+#define MCF_FBCS_CSCR0_PS(x) (((x)&0x00000003)<<6) /* Port size */ -+#define MCF_FBCS_CSCR0_AA (0x00000100) /* Auto-acknowledge */ -+#define MCF_FBCS_CSCR0_WS(x) (((x)&0x0000003F)<<10) /* Wait states */ -+/* Write address hold or deselect */ -+#define MCF_FBCS_CSCR0_WRAH(x) (((x)&0x00000003)<<16) -+/* Read address hold or deselect */ -+#define MCF_FBCS_CSCR0_RDAH(x) (((x)&0x00000003)<<18) -+#define MCF_FBCS_CSCR0_ASET(x) (((x)&0x00000003)<<20) /* Address setup */ -+/* Secondary wait state enable */ -+#define MCF_FBCS_CSCR0_SWSEN (0x00800000) -+/* Secondary wait states */ -+#define MCF_FBCS_CSCR0_SWS(x) (((x)&0x0000003F)<<26) -+#define MCF_FBCS_CSCR0_PS_8 (0x00000040) -+#define MCF_FBCS_CSCR0_PS_16 (0x00000080) -+#define MCF_FBCS_CSCR0_PS_32 (0x00000000) -+ -+/* Bit definitions and macros for CSMR1 */ -+#define MCF_FBCS_CSMR1_V (0x00000001) /* Valid bit */ -+#define MCF_FBCS_CSMR1_WP (0x00000100) /* Write protect */ -+#define MCF_FBCS_CSMR1_BAM(x) (((x)&0x0000FFFF)<<16) /* Base address mask */ -+ -+/* Bit definitions and macros for CSCR1 */ -+#define MCF_FBCS_CSCR1_BSTW (0x00000008) /* Burst-write enable */ -+#define MCF_FBCS_CSCR1_BSTR (0x00000010) /* Burst-read enable */ -+#define MCF_FBCS_CSCR1_BEM (0x00000020) /* Byte-enable mode */ -+#define MCF_FBCS_CSCR1_PS(x) (((x)&0x00000003)<<6) /* Port size */ -+#define MCF_FBCS_CSCR1_AA (0x00000100) /* Auto-acknowledge */ -+#define MCF_FBCS_CSCR1_WS(x) (((x)&0x0000003F)<<10) /* Wait states */ -+/* Write address hold or deselect */ -+#define MCF_FBCS_CSCR1_WRAH(x) (((x)&0x00000003)<<16) -+/* Read address hold or deselect */ -+#define MCF_FBCS_CSCR1_RDAH(x) (((x)&0x00000003)<<18) -+#define MCF_FBCS_CSCR1_ASET(x) (((x)&0x00000003)<<20) /* Address setup */ -+/* Secondary wait state enable */ -+#define MCF_FBCS_CSCR1_SWSEN (0x00800000) -+/* Secondary wait states */ -+#define MCF_FBCS_CSCR1_SWS(x) (((x)&0x0000003F)<<26) -+ -+/* Bit definitions and macros for CSMR2 */ -+#define MCF_FBCS_CSMR2_V (0x00000001) /* Valid bit */ -+#define MCF_FBCS_CSMR2_WP (0x00000100) /* Write protect */ -+#define MCF_FBCS_CSMR2_BAM(x) (((x)&0x0000FFFF)<<16) /* Base address mask */ -+ -+/* Bit definitions and macros for CSCR2 */ -+#define MCF_FBCS_CSCR2_BSTW (0x00000008) /* Burst-write enable */ -+#define MCF_FBCS_CSCR2_BSTR (0x00000010) /* Burst-read enable */ -+#define MCF_FBCS_CSCR2_BEM (0x00000020) /* Byte-enable mode */ -+#define MCF_FBCS_CSCR2_PS(x) (((x)&0x00000003)<<6) /* Port size */ -+#define MCF_FBCS_CSCR2_AA (0x00000100) /* Auto-acknowledge */ -+#define MCF_FBCS_CSCR2_WS(x) (((x)&0x0000003F)<<10) /* Wait states */ -+/* Write address hold or deselect */ -+#define MCF_FBCS_CSCR2_WRAH(x) (((x)&0x00000003)<<16) -+/* Read address hold or deselect */ -+#define MCF_FBCS_CSCR2_RDAH(x) (((x)&0x00000003)<<18) -+#define MCF_FBCS_CSCR2_ASET(x) (((x)&0x00000003)<<20) /* Address setup */ -+/* Secondary wait state enable */ -+#define MCF_FBCS_CSCR2_SWSEN (0x00800000) -+/* Secondary wait states */ -+#define MCF_FBCS_CSCR2_SWS(x) (((x)&0x0000003F)<<26) -+ -+/* Bit definitions and macros for CSMR3 */ -+#define MCF_FBCS_CSMR3_V (0x00000001) /* Valid bit */ -+#define MCF_FBCS_CSMR3_WP (0x00000100) /* Write protect */ -+#define MCF_FBCS_CSMR3_BAM(x) (((x)&0x0000FFFF)<<16) /* Base address mask */ -+ -+/* Bit definitions and macros for CSCR3 */ -+#define MCF_FBCS_CSCR3_BSTW (0x00000008) /* Burst-write enable */ -+#define MCF_FBCS_CSCR3_BSTR (0x00000010) /* Burst-read enable */ -+#define MCF_FBCS_CSCR3_BEM (0x00000020) /* Byte-enable mode */ -+#define MCF_FBCS_CSCR3_PS(x) (((x)&0x00000003)<<6) /* Port size */ -+#define MCF_FBCS_CSCR3_AA (0x00000100) /* Auto-acknowledge */ -+#define MCF_FBCS_CSCR3_WS(x) (((x)&0x0000003F)<<10) /* Wait states */ -+/* Write address hold or deselect */ -+#define MCF_FBCS_CSCR3_WRAH(x) (((x)&0x00000003)<<16) -+/* Read address hold or deselect */ -+#define MCF_FBCS_CSCR3_RDAH(x) (((x)&0x00000003)<<18) -+#define MCF_FBCS_CSCR3_ASET(x) (((x)&0x00000003)<<20) /* Address setup */ -+/* Secondary wait state enable */ -+#define MCF_FBCS_CSCR3_SWSEN (0x00800000) -+/* Secondary wait states */ -+#define MCF_FBCS_CSCR3_SWS(x) (((x)&0x0000003F)<<26) -+ -+/********************************************************************/ -+ -+#endif /* __MCF5441X_FBCS_H__ */ ---- /dev/null -+++ b/arch/m68k/include/asm/mcf5441x_flexcan.h -@@ -0,0 +1,139 @@ -+/* -+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved. -+ * -+ * Author: Lanttor Guo <b18203@freescale.com> -+ * -+ * This is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ */ -+ -+#ifndef MCF5441X_FLEXCAN_H -+#define MCF5441X_FLEXCAN_H -+/* -+ * FlexCAN Module Configuration Register -+ */ -+#define CANMCR_MDIS (0x80000000) -+#define CANMCR_FRZ (0x40000000) -+#define CANMCR_FEN (0x20000000) -+#define CANMCR_HALT (0x10000000) -+#define CANMCR_SOFTRST (0x02000000) -+#define CANMCR_NOTRDY (0x08000000) -+#define CANMCR_FRZACK (0x01000000) -+#define CANMCR_SUPV (0x00800000) -+#define CANMCR_WARN_EN (0x00200000) -+#define CANMCR_LPMACK (0x00100000) -+#define CANMCR_DOZE (0x00040000) -+#define CANMCR_SRXDIS (0x00020000) -+#define CANMCR_BCC (0x00010000) -+#define CANMCR_LPRIO_EN (0x00002000) -+#define CANMCR_AEN (0x00001000) -+#define CANMCR_IDAM_VAL(x) ((x & 0x3) << 8) -+#define CANMCR_MAXMB (0x0F) -+/* -+ * FlexCAN Control Register -+ */ -+#define CANCTRL_PRESDIV(x) (((x)&0xFF)<<24) -+#define CANCTRL_RJW(x) (((x)&0x03)<<22) -+#define CANCTRL_PSEG1(x) (((x)&0x07)<<19) -+#define CANCTRL_PSEG2(x) (((x)&0x07)<<16) -+#define CANCTRL_BOFFMSK (0x00008000) -+#define CANCTRL_ERRMSK (0x00004000) -+#define CANCTRL_CLKSRC (0x00002000) -+#define CANCTRL_LPB (0x00001000) -+#define CANCTRL_TWRN_MSK (0x00000800) -+#define CANCTRL_RWRN_MSK (0x00000400) -+#define CANCTRL_SAMP(x) (((x)&0x01)<<7) -+#define CANCTRL_BOFFREC (0x00000040) -+#define CANCTRL_TSYNC (0x00000020) -+#define CANCTRL_LBUF (0x00000010) -+#define CANCTRL_LOM (0x00000008) -+#define CANCTRL_PROPSEG(x) ((x)&0x07) -+ -+/* -+ * FlexCAN Error Counter Register -+ */ -+#define ERRCNT_RXECTR(x) (((x)&0xFF)<<8) -+#define ERRCNT_TXECTR(x) ((x)&0xFF) -+ -+/* -+ * FlexCAN Error and Status Register -+ */ -+#define ERRSTAT_TWRN_INT (0x00020000) -+#define ERRSTAT_RWRN_INT (0x00010000) -+#define ERRSTAT_BITERR(x) (((x)&0x03)<<14) -+#define ERRSTAT_ACKERR (0x00002000) -+#define ERRSTAT_CRCERR (0x00001000) -+#define ERRSTAT_FRMERR (0x00000800) -+#define ERRSTAT_STFERR (0x00000400) -+#define ERRSTAT_TXWRN (0x00000200) -+#define ERRSTAT_RXWRN (0x00000100) -+#define ERRSTAT_IDLE (0x00000080) -+#define ERRSTAT_TXRX (0x00000040) -+#define ERRSTAT_FLTCONF(x) (((x)&0x03)<<4) -+#define ERRSTAT_BOFFINT (0x00000004) -+#define ERRSTAT_ERRINT (0x00000002) -+ -+/* -+ * Interrupt Mask Register -+ */ -+#define IMASK_BUF15M (0x8000) -+#define IMASK_BUF14M (0x4000) -+#define IMASK_BUF13M (0x2000) -+#define IMASK_BUF12M (0x1000) -+#define IMASK_BUF11M (0x0800) -+#define IMASK_BUF10M (0x0400) -+#define IMASK_BUF9M (0x0200) -+#define IMASK_BUF8M (0x0100) -+#define IMASK_BUF7M (0x0080) -+#define IMASK_BUF6M (0x0040) -+#define IMASK_BUF5M (0x0020) -+#define IMASK_BUF4M (0x0010) -+#define IMASK_BUF3M (0x0008) -+#define IMASK_BUF2M (0x0004) -+#define IMASK_BUF1M (0x0002) -+#define IMASK_BUF0M (0x0001) -+#define IMASK_BUFnM(x) (0x1<<(x)) -+#define IMASK_BUFF_ENABLE_ALL (0xFFFF) -+#define IMASK_BUFF_DISABLE_ALL (0x0000) -+ -+/* -+ * Interrupt Flag Register -+ */ -+#define IFLAG_BUF15M (0x8000) -+#define IFLAG_BUF14M (0x4000) -+#define IFLAG_BUF13M (0x2000) -+#define IFLAG_BUF12M (0x1000) -+#define IFLAG_BUF11M (0x0800) -+#define IFLAG_BUF10M (0x0400) -+#define IFLAG_BUF9M (0x0200) -+#define IFLAG_BUF8M (0x0100) -+#define IFLAG_BUF7M (0x0080) -+#define IFLAG_BUF6M (0x0040) -+#define IFLAG_BUF5M (0x0020) -+#define IFLAG_BUF4M (0x0010) -+#define IFLAG_BUF3M (0x0008) -+#define IFLAG_BUF2M (0x0004) -+#define IFLAG_BUF1M (0x0002) -+#define IFLAG_BUF0M (0x0001) -+#define IFLAG_BUFF_SET_ALL (0xFFFF) -+#define IFLAG_BUFF_CLEAR_ALL (0x0000) -+#define IFLAG_BUFnM(x) (0x1<<(x)) -+ -+/* -+ * Message Buffers -+ */ -+#define MB_CNT_CODE(x) (((x)&0x0F)<<24) -+#define MB_CNT_SRR (0x00400000) -+#define MB_CNT_IDE (0x00200000) -+#define MB_CNT_RTR (0x00100000) -+#define MB_CNT_TIMESTAMP(x) ((x)&0xFFFF) -+#define MB_PRIO(x) (((x)&0x7)<<29) -+#define MB_ID_STD (0x07FF) -+#define MB_ID_EXT (0x1FFFFFFF) -+#define MB_CODE_MASK (0xF0FFFFFF) -+#define CAN_MB 16 -+#define PDEV_MAX 2 -+ -+#endif ---- /dev/null -+++ b/arch/m68k/include/asm/mcf5441x_gpio.h -@@ -0,0 +1,509 @@ -+/* -+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved. -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by the -+ * Free Software Foundation; either version 2 of the License, or (at your -+ * option) any later version. -+ */ -+ -+#ifndef __MCF5441X_GPIO_H__ -+#define __MCF5441X_GPIO_H__ -+ -+/********************************************************************* -+* -+* General Purpose I/O Module (GPIO) -+* -+*********************************************************************/ -+ -+#define MCF_GPIO_PODR_A MCF_REG08(0xEC094000) -+#define MCF_GPIO_PODR_B MCF_REG08(0xEC094001) -+#define MCF_GPIO_PODR_C MCF_REG08(0xEC094002) -+#define MCF_GPIO_PODR_D MCF_REG08(0xEC094003) -+#define MCF_GPIO_PODR_E MCF_REG08(0xEC094004) -+#define MCF_GPIO_PODR_F MCF_REG08(0xEC094005) -+#define MCF_GPIO_PODR_G MCF_REG08(0xEC094006) -+#define MCF_GPIO_PODR_H MCF_REG08(0xEC094007) -+#define MCF_GPIO_PODR_I MCF_REG08(0xEC094008) -+#define MCF_GPIO_PODR_J MCF_REG08(0xEC094009) -+#define MCF_GPIO_PODR_K MCF_REG08(0xEC09400A) -+ -+#define MCF_GPIO_PDDR_A MCF_REG08(0xEC09400C) -+#define MCF_GPIO_PDDR_B MCF_REG08(0xEC09400D) -+#define MCF_GPIO_PDDR_C MCF_REG08(0xEC09400E) -+#define MCF_GPIO_PDDR_D MCF_REG08(0xEC09400F) -+#define MCF_GPIO_PDDR_E MCF_REG08(0xEC094010) -+#define MCF_GPIO_PDDR_F MCF_REG08(0xEC094011) -+#define MCF_GPIO_PDDR_G MCF_REG08(0xEC094012) -+#define MCF_GPIO_PDDR_H MCF_REG08(0xEC094013) -+#define MCF_GPIO_PDDR_I MCF_REG08(0xEC094014) -+#define MCF_GPIO_PDDR_J MCF_REG08(0xEC094015) -+#define MCF_GPIO_PDDR_K MCF_REG08(0xEC094016) -+ -+#define MCF_GPIO_PPDSDR_A MCF_REG08(0xEC094018) -+#define MCF_GPIO_PPDSDR_B MCF_REG08(0xEC094019) -+#define MCF_GPIO_PPDSDR_C MCF_REG08(0xEC09401A) -+#define MCF_GPIO_PPDSDR_D MCF_REG08(0xEC09401B) -+#define MCF_GPIO_PPDSDR_E MCF_REG08(0xEC09401C) -+#define MCF_GPIO_PPDSDR_F MCF_REG08(0xEC09401D) -+#define MCF_GPIO_PPDSDR_G MCF_REG08(0xEC09401E) -+#define MCF_GPIO_PPDSDR_H MCF_REG08(0xEC09401F) -+#define MCF_GPIO_PPDSDR_I MCF_REG08(0xEC094020) -+#define MCF_GPIO_PPDSDR_J MCF_REG08(0xEC094021) -+#define MCF_GPIO_PPDSDR_K MCF_REG08(0xEC094022) -+ -+#define MCF_GPIO_PCLRR_A MCF_REG08(0xEC094024) -+#define MCF_GPIO_PCLRR_B MCF_REG08(0xEC094025) -+#define MCF_GPIO_PCLRR_C MCF_REG08(0xEC094026) -+#define MCF_GPIO_PCLRR_D MCF_REG08(0xEC094027) -+#define MCF_GPIO_PCLRR_E MCF_REG08(0xEC094028) -+#define MCF_GPIO_PCLRR_F MCF_REG08(0xEC094029) -+#define MCF_GPIO_PCLRR_G MCF_REG08(0xEC09402A) -+#define MCF_GPIO_PCLRR_H MCF_REG08(0xEC09402B) -+#define MCF_GPIO_PCLRR_I MCF_REG08(0xEC09402C) -+#define MCF_GPIO_PCLRR_J MCF_REG08(0xEC09402D) -+#define MCF_GPIO_PCLRR_K MCF_REG08(0xEC09402E) -+ -+#define MCF_GPIO_PCR_A MCF_REG16(0xEC094030) -+#define MCF_GPIO_PCR_B MCF_REG16(0xEC094032) -+#define MCF_GPIO_PCR_C MCF_REG16(0xEC094034) -+#define MCF_GPIO_PCR_D MCF_REG16(0xEC094036) -+#define MCF_GPIO_PCR_E MCF_REG16(0xEC094038) -+#define MCF_GPIO_PCR_F MCF_REG16(0xEC09403A) -+#define MCF_GPIO_PCR_G MCF_REG16(0xEC09403C) -+ -+#define MCF_GPIO_PCR_H MCF_REG16(0xEC09403E) -+#define MCF_GPIO_PCR_I MCF_REG16(0xEC094040) -+#define MCF_GPIO_PCR_J MCF_REG16(0xEC094042) -+#define MCF_GPIO_PCR_K MCF_REG16(0xEC094044) -+ -+#define MCF_GPIO_PODR_G4_VAL (0x01 << 4) -+#define MCF_GPIO_PODR_G4_MASK (0xff & ~MCF_GPIO_PODR_G4_VAL) -+#define MCF_GPIO_PDDR_G4_OUTPUT (0x01 << 4) -+#define MCF_GPIO_PDDR_G4_MASK (0xff & ~MCF_GPIO_PDDR_G4_OUTPUT) -+ -+#define MCF_GPIO_PAR_FBCTL MCF_REG08(0xEC094048) -+#define MCF_GPIO_PAR_BE MCF_REG08(0xEC094049) -+#define MCF_GPIO_PAR_CS MCF_REG08(0xEC09404A) -+#define MCF_GPIO_PAR_CANI2C MCF_REG08(0xEC09404B) -+#define MCF_GPIO_PAR_IRQ0H MCF_REG08(0xEC09404C) -+#define MCF_GPIO_PAR_IRQ0L MCF_REG08(0xEC09404D) -+#define MCF_GPIO_PAR_DSPI0WH MCF_REG08(0xEC09404E) -+#define MCF_GPIO_PAR_DSPI0WL MCF_REG08(0xEC09404F) -+#define MCF_GPIO_PAR_TIMER MCF_REG08(0xEC094050) -+#define MCF_GPIO_PAR_UART2 MCF_REG08(0xEC094051) -+#define MCF_GPIO_PAR_UART1 MCF_REG08(0xEC094052) -+#define MCF_GPIO_PAR_UART0 MCF_REG08(0xEC094053) -+#define MCF_GPIO_PAR_ESDHCH MCF_REG08(0xEC094054) -+#define MCF_GPIO_PAR_ESDHCL MCF_REG08(0xEC094055) -+#define MCF_GPIO_PAR_SIMP0H MCF_REG08(0xEC094056) -+#define MCF_GPIO_PAR_SIMP0L MCF_REG08(0xEC094057) -+#define MCF_GPIO_PAR_SSI0H MCF_REG08(0xEC094058) -+#define MCF_GPIO_PAR_SSI0L MCF_REG08(0xEC094059) -+#define MCF_GPIO_PAR_DBGH1 MCF_REG08(0xEC09405A) -+#define MCF_GPIO_PAR_DBGH0 MCF_REG08(0xEC09405B) -+#define MCF_GPIO_PAR_DBGL MCF_REG08(0xEC09405C) -+#define MCF_GPIO_PAR_FEC MCF_REG08(0xEC09405E) -+#define MCF_GPIO_MSCR_SDRAMC MCF_REG08(0xEC094064) -+#define MCF_GPIO_SRCR_FB1 MCF_REG08(0xEC094064) -+#define MCF_GPIO_SRCR_FB2 MCF_REG08(0xEC094065) -+#define MCF_GPIO_SRCR_FB3 MCF_REG08(0xEC094066) -+#define MCF_GPIO_SRCR_FB4 MCF_REG08(0xEC094067) -+#define MCF_GPIO_SRCR_DSPI0W MCF_REG08(0xEC094068) -+#define MCF_GPIO_SRCR_CANI2C MCF_REG08(0xEC094069) -+#define MCF_GPIO_SRCR_IRQ0 MCF_REG08(0xEC09406A) -+#define MCF_GPIO_SRCR_TIMER MCF_REG08(0xEC09406B) -+#define MCF_GPIO_SRCR_UART MCF_REG08(0xEC09406C) -+#define MCF_GPIO_SRCR_FEC MCF_REG08(0xEC09406D) -+#define MCF_GPIO_SRCR_SDHC MCF_REG08(0xEC09406E) -+#define MCF_GPIO_SRCR_SIM0 MCF_REG08(0xEC09406F) -+#define MCF_GPIO_SRCR_SSI0 MCF_REG08(0xEC094070) -+ -+#define MCF_GPIO_PAR_FBCTL_ALE(x) (((x)&3)<<6) -+#define MCF_GPIO_PAR_FBCTL_ALE_MASK (0x3F) -+#define MCF_GPIO_PAR_FBCTL_ALE_FB_ALE (0xC0) -+#define MCF_GPIO_PAR_FBCTL_ALE_FB_TS (0x80) -+#define MCF_GPIO_PAR_FBCTL_ALE_GPIO (0x00) -+#define MCF_GPIO_PAR_FBCTL_OE(x) (((x)&3)<<4) -+#define MCF_GPIO_PAR_FBCTL_OE_MASK (0xCF) -+#define MCF_GPIO_PAR_FBCTL_OE_FB_OE (0x30) -+#define MCF_GPIO_PAR_FBCTL_OE_FB_TBST (0x20) -+#define MCF_GPIO_PAR_FBCTL_OE_NFC_RE (0x20) -+#define MCF_GPIO_PAR_FBCTL_OE_GPIO (0x00) -+#define MCF_GPIO_PAR_FBCTL_FBCLK (0x08) -+#define MCF_GPIO_PAR_FBCTL_RW (0x04) -+#define MCF_GPIO_PAR_FBCTL_TA(x) ((x)&3) -+#define MCF_GPIO_PAR_FBCTL_TA_MASK (0xFC) -+#define MCF_GPIO_PAR_FBCTL_TA_TA (0x03) -+#define MCF_GPIO_PAR_FBCTL_TA_NFC_RB (0x01) -+#define MCF_GPIO_PAR_FBCTL_TA_GPIO (0x00) -+ -+#define MCF_GPIO_PAR_BE_BS3(x) (((x)&0x03)<<6) -+#define MCF_GPIO_PAR_BE_BE3_MASK (0x3F) -+#define MCF_GPIO_PAR_BE_BE3_BE3 (0xC0) -+#define MCF_GPIO_PAR_BE_BE3_CS3 (0x80) -+#define MCF_GPIO_PAR_BE_BE3_FB_A1 (0x40) -+#define MCF_GPIO_PAR_BE_BE3_NFC_ALE (0x40) -+#define MCF_GPIO_PAR_BE_BE3_GPIO (0x00) -+#define MCF_GPIO_PAR_BE_BS2(x) (((x)&0x03)<<4) -+#define MCF_GPIO_PAR_BE_BE2_MASK (0xCF) -+#define MCF_GPIO_PAR_BE_BE2_BE2 (0x30) -+#define MCF_GPIO_PAR_BE_BE2_CS2 (0x20) -+#define MCF_GPIO_PAR_BE_BE2_FB_A0 (0x10) -+#define MCF_GPIO_PAR_BE_BE2_NFC_CLE (0x10) -+#define MCF_GPIO_PAR_BE_BE2_GPIO (0x00) -+#define MCF_GPIO_PAR_BE_BS1(x) (((x)&0x03)<<2) -+#define MCF_GPIO_PAR_BE_BE1_MASK (0xF3) -+#define MCF_GPIO_PAR_BE_BE1_BE1 (0x0C) -+#define MCF_GPIO_PAR_BE_BE1_FB_TSZ1 (0x08) -+#define MCF_GPIO_PAR_BE_BE1_GPIO (0x00) -+#define MCF_GPIO_PAR_BE_BS0(x) ((x)&0x03) -+#define MCF_GPIO_PAR_BE_BE0_MASK (0xFC) -+#define MCF_GPIO_PAR_BE_BE0_BE0 (0x03) -+#define MCF_GPIO_PAR_BE_BE0_FB_TSZ0 (0x02) -+#define MCF_GPIO_PAR_BE_BE0_GPIO (0x00) -+ -+#define MCF_GPIO_PAR_CS_CS5(x) (((x)&0x03)<<6) -+#define MCF_GPIO_PAR_CS_CS5_MASK (0x3F) -+#define MCF_GPIO_PAR_CS_CS5_CS5 (0xC0) -+#define MCF_GPIO_PAR_CS_CS5_DACK1 (0x80) -+#define MCF_GPIO_PAR_CS_CS5_GPIO (0x00) -+#define MCF_GPIO_PAR_CS_CS4(x) (((x)&0x03)<<4) -+#define MCF_GPIO_PAR_CS_CS4_MASK (0xCF) -+#define MCF_GPIO_PAR_CS_CS4_CS4 (0x30) -+#define MCF_GPIO_PAR_CS_CS4_DREQ1 (0x20) -+#define MCF_GPIO_PAR_CS_CS4_GPIO (0x00) -+#define MCF_GPIO_PAR_CS_CS1(x) (((x)&0x03)<<2) -+#define MCF_GPIO_PAR_CS_CS1_MASK (0xF3) -+#define MCF_GPIO_PAR_CS_CS1_CS1 (0x0C) -+#define MCF_GPIO_PAR_CS_CS1_NFC_CE (0x04) -+#define MCF_GPIO_PAR_CS_CS1_GPIO (0x00) -+#define MCF_GPIO_PAR_CS_CS0_CS0 (0x01) -+ -+#define MCF_GPIO_PAR_CANI2C_I2C0SCL(x) (((x)&0x03)<<6) -+#define MCF_GPIO_PAR_CANI2C_I2C0SCL_MASK (0x3F) -+#define MCF_GPIO_PAR_CANI2C_I2C0SCL_I2C0SCL (0xC0) -+#define MCF_GPIO_PAR_CANI2C_I2C0SCL_U8TXD (0x80) -+#define MCF_GPIO_PAR_CANI2C_I2C0SCL_CAN0TX (0x40) -+#define MCF_GPIO_PAR_CANI2C_I2C0SCL_GPIO (0x00) -+#define MCF_GPIO_PAR_CANI2C_I2C0SDA(x) (((x)&0x03)<<4) -+#define MCF_GPIO_PAR_CANI2C_I2C0SDA_MASK (0xCF) -+#define MCF_GPIO_PAR_CANI2C_I2C0SDA_I2C0SDA (0x30) -+#define MCF_GPIO_PAR_CANI2C_I2C0SDA_U8RXD (0x20) -+#define MCF_GPIO_PAR_CANI2C_I2C0SDA_CAN0RX (0x10) -+#define MCF_GPIO_PAR_CANI2C_I2C0SDA_GPIO (0x00) -+#define MCF_GPIO_PAR_CANI2C_CAN1TX(x) (((x)&0x03)<<2) -+#define MCF_GPIO_PAR_CANI2C_CAN1TX_MASK (0xF3) -+#define MCF_GPIO_PAR_CANI2C_CAN1TX_CAN1TX (0x0C) -+#define MCF_GPIO_PAR_CANI2C_CAN1TX_U9TXD (0x08) -+#define MCF_GPIO_PAR_CANI2C_CAN1TX_I2C1SCL (0x04) -+#define MCF_GPIO_PAR_CANI2C_CAN1TX_GPIO (0x00) -+#define MCF_GPIO_PAR_CANI2C_CAN1RX(x) ((x)&0x03) -+#define MCF_GPIO_PAR_CANI2C_CAN1RX_MASK (0xFC) -+#define MCF_GPIO_PAR_CANI2C_CAN1RX_CAN1RX (0x03) -+#define MCF_GPIO_PAR_CANI2C_CAN1RX_U9RXD (0x02) -+#define MCF_GPIO_PAR_CANI2C_CAN1RX_I2C1SDA (0x01) -+#define MCF_GPIO_PAR_CANI2C_CAN1RX_GPIO (0x00) -+ -+#define MCF_GPIO_PAR_IRQH_IRQ7 (0x10) -+#define MCF_GPIO_PAR_IRQH_IRQ4(x) (((x)&0x03)<<2) -+#define MCF_GPIO_PAR_IRQH_IRQ4_MASK (0xF3) -+#define MCF_GPIO_PAR_IRQH_IRQ4_IRQ4 (0x0C) -+#define MCF_GPIO_PAR_IRQH_IRQ4_DREQ0 (0x08) -+#define MCF_GPIO_PAR_IRQH_IRQ4_GPIO (0x00) -+#define MCF_GPIO_PAR_IRQH_IRQ1 (0x01) -+ -+#define MCF_GPIO_PAR_IRQL_IRQ6(x) (((x)&0x03)<<6) -+#define MCF_GPIO_PAR_IRQL_IRQ6_MASK (0x3F) -+#define MCF_GPIO_PAR_IRQL_IRQ6_IRQ6 (0xC0) -+#define MCF_GPIO_PAR_IRQL_IRQ6_USBCLKIN (0x40) -+#define MCF_GPIO_PAR_IRQL_IRQ6_GPIO (0x00) -+#define MCF_GPIO_PAR_IRQL_IRQ3(x) (((x)&0x03)<<4) -+#define MCF_GPIO_PAR_IRQL_IRQ3_MASK (0xCF) -+#define MCF_GPIO_PAR_IRQL_IRQ3_IRQ3 (0x30) -+#define MCF_GPIO_PAR_IRQL_IRQ3_DSPI0_PCS3 (0x20) -+#define MCF_GPIO_PAR_IRQL_IRQ3_USB1_VBUS_EN (0x10) -+#define MCF_GPIO_PAR_IRQL_IRQ3_GPIO (0x00) -+#define MCF_GPIO_PAR_IRQL_IRQ2(x) (((x)&0x03)<<2) -+#define MCF_GPIO_PAR_IRQL_IRQ2_MASK (0xF3) -+#define MCF_GPIO_PAR_IRQL_IRQ2_IRQ2 (0x0C) -+#define MCF_GPIO_PAR_IRQL_IRQ2_DSPI0_PCS2 (0x08) -+#define MCF_GPIO_PAR_IRQL_IRQ2_USB1_VBUS_OC (0x04) -+#define MCF_GPIO_PAR_IRQL_IRQ2_GPIO (0x00) -+ -+#define MCF_GPIO_PAR_DSPI0_SIN(x) (((x)&0x03)<<6) -+#define MCF_GPIO_PAR_DSPI0_SIN_MASK (0x3F) -+#define MCF_GPIO_PAR_DSPI0_SIN_DSPI0SIN (0xC0) -+#define MCF_GPIO_PAR_DSPI0_SIN_SBF_DI (0xC0) -+#define MCF_GPIO_PAR_DSPI0_SIN_U3RXD (0x80) -+#define MCF_GPIO_PAR_DSPI0_SIN_SDHC_CMD (0x40) -+#define MCF_GPIO_PAR_DSPI0_SIN_GPIO (0x00) -+#define MCF_GPIO_PAR_DSPI0_SOUT(x) (((x)&0x03)<<4) -+#define MCF_GPIO_PAR_DSPI0_SOUT_MASK (0xCF) -+#define MCF_GPIO_PAR_DSPI0_SOUT_DSPI0SOUT (0x30) -+#define MCF_GPIO_PAR_DSPI0_SOUT_SBF_DO (0x30) -+#define MCF_GPIO_PAR_DSPI0_SOUT_U3TXD (0x20) -+#define MCF_GPIO_PAR_DSPI0_SOUT_SDHC_DAT0 (0x10) -+#define MCF_GPIO_PAR_DSPI0_SOUT_GPIO (0x00) -+#define MCF_GPIO_PAR_DSPI0_SCK(x) (((x)&0x03)<<2) -+#define MCF_GPIO_PAR_DSPI0_SCK_MASK (0xF3) -+#define MCF_GPIO_PAR_DSPI0_SCK_DSPI0SCK (0x0C) -+#define MCF_GPIO_PAR_DSPI0_SCK_SBF_CK (0x0C) -+#define MCF_GPIO_PAR_DSPI0_SCK_I2C3SCL (0x08) -+#define MCF_GPIO_PAR_DSPI0_SCK_SDHC_CLK (0x04) -+#define MCF_GPIO_PAR_DSPI0_SCK_GPIO (0x00) -+#define MCF_GPIO_PAR_DSPI0_PCS0(x) ((x)&0x03) -+#define MCF_GPIO_PAR_DSPI0_PCS0_MASK (0xFC) -+#define MCF_GPIO_PAR_DSPI0_PCS0_DSPI0PCS0 (0x03) -+#define MCF_GPIO_PAR_DSPI0_PCS0_SS (0x03) -+#define MCF_GPIO_PAR_DSPI0_PCS0_I2C3SDA (0x02) -+#define MCF_GPIO_PAR_DSPI0_PCS0_SDHC_DAT3 (0x01) -+#define MCF_GPIO_PAR_DSPI0_PCS0_GPIO (0x00) -+ -+#define MCF_GPIO_PAR_DSPIOW_DSPI0PSC1 (0x80) -+#define MCF_GPIO_PAR_DSPIOW_SBF_CS (0x80) -+#define MCF_GPIO_PAR_DSPIOW_OWDAT (((x)&0x03)<<4) -+#define MCF_GPIO_PAR_DSPIOW_OWDAT_MASK (0xCF) -+#define MCF_GPIO_PAR_DSPIOW_OWDAT_OWDAT (0x30) -+#define MCF_GPIO_PAR_DSPIOW_OWDAT_DACK0 (0x20) -+#define MCF_GPIO_PAR_DSPIOW_OWDAT_GPIO (0x00) -+ -+#define MCF_GPIO_PAR_TIMER_T3IN(x) (((x)&0x03)<<6) -+#define MCF_GPIO_PAR_TIMER_T3IN_MASK (0x3F) -+#define MCF_GPIO_PAR_TIMER_T3IN_T3IN (0xC0) -+#define MCF_GPIO_PAR_TIMER_T3IN_EXTA3 (0xC0) -+#define MCF_GPIO_PAR_TIMER_T3IN_T3OUT (0x80) -+#define MCF_GPIO_PAR_TIMER_T3IN_USB0_VBUSEN (0x40) -+#define MCF_GPIO_PAR_TIMER_T3IN_ULPI_DIR (0x40) -+#define MCF_GPIO_PAR_TIMER_T3IN_GPIO (0x00) -+#define MCF_GPIO_PAR_TIMER_T2IN(x) (((x)&0x03)<<4) -+#define MCF_GPIO_PAR_TIMER_T2IN_MASK (0xCF) -+#define MCF_GPIO_PAR_TIMER_T2IN_T2IN (0x30) -+#define MCF_GPIO_PAR_TIMER_T2IN_EXTA2 (0x30) -+#define MCF_GPIO_PAR_TIMER_T2IN_T2OUT (0x20) -+#define MCF_GPIO_PAR_TIMER_T2IN_SDHC_DAT2 (0x10) -+#define MCF_GPIO_PAR_TIMER_T2IN_GPIO (0x00) -+#define MCF_GPIO_PAR_TIMER_T1IN(x) (((x)&0x03)<<2) -+#define MCF_GPIO_PAR_TIMER_T1IN_MASK (0xF3) -+#define MCF_GPIO_PAR_TIMER_T1IN_T1IN (0x0C) -+#define MCF_GPIO_PAR_TIMER_T1IN_EXTA1 (0x0C) -+#define MCF_GPIO_PAR_TIMER_T1IN_T1OUT (0x08) -+#define MCF_GPIO_PAR_TIMER_T1IN_SDHC_DAT1 (0x04) -+#define MCF_GPIO_PAR_TIMER_T1IN_GPIO (0x00) -+#define MCF_GPIO_PAR_TIMER_T0IN(x) ((x)&0x03) -+#define MCF_GPIO_PAR_TIMER_T0IN_MASK (0xFC) -+#define MCF_GPIO_PAR_TIMER_T0IN_T0IN (0x03) -+#define MCF_GPIO_PAR_TIMER_T0IN_EXTA0 (0x03) -+#define MCF_GPIO_PAR_TIMER_T0IN_T0OUT (0x02) -+#define MCF_GPIO_PAR_TIMER_T0IN_USBO_VBUSOC (0x01) -+#define MCF_GPIO_PAR_TIMER_T0IN_ULPI_NXT (0x01) -+#define MCF_GPIO_PAR_TIMER_T0IN_GPIO (0x00) -+ -+#define MCF_GPIO_PAR_UART2_U2CTS(x) (((x)&0x03)<<6) -+#define MCF_GPIO_PAR_UART2_U2CTS_MASK (0x3F) -+#define MCF_GPIO_PAR_UART2_U2CTS_U2CTS (0xC0) -+#define MCF_GPIO_PAR_UART2_U2CTS_U6TXD (0x80) -+#define MCF_GPIO_PAR_UART2_U2CTS_SSI1_BCLK (0x40) -+#define MCF_GPIO_PAR_UART2_U2CTS_GPIO (0x00) -+#define MCF_GPIO_PAR_UART2_U2RTS(x) (((x)&0x03)<<4) -+#define MCF_GPIO_PAR_UART2_U2RTS_MASK (0xCF) -+#define MCF_GPIO_PAR_UART2_U2RTS_U2RTS (0x30) -+#define MCF_GPIO_PAR_UART2_U2RTS_U6RXD (0x20) -+#define MCF_GPIO_PAR_UART2_U2RTS_SSI1_FS (0x10) -+#define MCF_GPIO_PAR_UART2_U2RTS_GPIO (0x00) -+#define MCF_GPIO_PAR_UART2_U2RXD(x) (((x)&0x03)<<2) -+#define MCF_GPIO_PAR_UART2_U2RXD_MASK (0xF3) -+#define MCF_GPIO_PAR_UART2_U2RXD_U2RXD (0x0C) -+#define MCF_GPIO_PAR_UART2_U2RXD_PWM_A3 (0x08) -+#define MCF_GPIO_PAR_UART2_U2RXD_SSI1_RXD (0x04) -+#define MCF_GPIO_PAR_UART2_U2RXD_GPIO (0x00) -+#define MCF_GPIO_PAR_UART2_U2TXD(x) ((x)&0x03) -+#define MCF_GPIO_PAR_UART2_U2TXD_MASK (0xFC) -+#define MCF_GPIO_PAR_UART2_U2TXD_U2TXD (0x03) -+#define MCF_GPIO_PAR_UART2_U2TXD_PWM_B3 (0x02) -+#define MCF_GPIO_PAR_UART2_U2TXD_SSI1_TXD (0x01) -+#define MCF_GPIO_PAR_UART2_U2TXD_GPIO (0x00) -+ -+#define MCF_GPIO_PAR_UART1_U1CTS(x) (((x)&0x03)<<6) -+#define MCF_GPIO_PAR_UART1_U1CTS_MASK (0x3F) -+#define MCF_GPIO_PAR_UART1_U1CTS_U1CTS (0xC0) -+#define MCF_GPIO_PAR_UART1_U1CTS_U5TXD (0x80) -+#define MCF_GPIO_PAR_UART1_U1CTS_DSPI3_SCK (0x40) -+#define MCF_GPIO_PAR_UART1_U1CTS_GPIO (0x00) -+#define MCF_GPIO_PAR_UART1_U1RTS(x) (((x)&0x03)<<4) -+#define MCF_GPIO_PAR_UART1_U1RTS_MASK (0xCF) -+#define MCF_GPIO_PAR_UART1_U1RTS_U1RTS (0x30) -+#define MCF_GPIO_PAR_UART1_U1RTS_U5RXD (0x20) -+#define MCF_GPIO_PAR_UART1_U1RTS_DSPI3_PCS0 (0x10) -+#define MCF_GPIO_PAR_UART1_U1RTS_GPIO (0x00) -+#define MCF_GPIO_PAR_UART1_U1RXD(x) (((x)&0x03)<<2) -+#define MCF_GPIO_PAR_UART1_U1RXD_MASK (0xF3) -+#define MCF_GPIO_PAR_UART1_U1RXD_U1RXD (0x0C) -+#define MCF_GPIO_PAR_UART1_U1RXD_I2C5SDA (0x08) -+#define MCF_GPIO_PAR_UART1_U1RXD_DSPI3_SIN (0x04) -+#define MCF_GPIO_PAR_UART1_U1RXD_GPIO (0x00) -+#define MCF_GPIO_PAR_UART1_U1TXD(x) ((x)&0x03) -+#define MCF_GPIO_PAR_UART1_U1TXD_MASK (0xFC) -+#define MCF_GPIO_PAR_UART1_U1TXD_U1TXD (0x03) -+#define MCF_GPIO_PAR_UART1_U1TXD_I2C5SCL (0x02) -+#define MCF_GPIO_PAR_UART1_U1TXD_DSPI3_SOUT (0x01) -+#define MCF_GPIO_PAR_UART1_U1TXD_GPIO (0x00) -+ -+#define MCF_GPIO_PAR_UART0_U0CTS(x) (((x)&0x03)<<6) -+#define MCF_GPIO_PAR_UART0_U0CTS_MASK (0x3F) -+#define MCF_GPIO_PAR_UART0_U0CTS_U0CTS (0xC0) -+#define MCF_GPIO_PAR_UART0_U0CTS_U4TXD (0x80) -+#define MCF_GPIO_PAR_UART0_U0CTS_DSPI2_SCK (0x40) -+#define MCF_GPIO_PAR_UART0_U0CTS_GPIO (0x00) -+#define MCF_GPIO_PAR_UART0_U0RTS(x) (((x)&0x03)<<4) -+#define MCF_GPIO_PAR_UART0_U0RTS_MASK (0xCF) -+#define MCF_GPIO_PAR_UART0_U0RTS_U0RTS (0x30) -+#define MCF_GPIO_PAR_UART0_U0RTS_U4RXD (0x20) -+#define MCF_GPIO_PAR_UART0_U0RTS_DSPI2_PCS0 (0x10) -+#define MCF_GPIO_PAR_UART0_U0RTS_GPIO (0x00) -+#define MCF_GPIO_PAR_UART0_U0RXD(x) (((x)&0x03)<<2) -+#define MCF_GPIO_PAR_UART0_U0RXD_MASK (0xF3) -+#define MCF_GPIO_PAR_UART0_U0RXD_U0RXD (0x0C) -+#define MCF_GPIO_PAR_UART0_U0RXD_I2C4SDA (0x08) -+#define MCF_GPIO_PAR_UART0_U0RXD_DSPI2_SIN (0x04) -+#define MCF_GPIO_PAR_UART0_U0RXD_GPIO (0x00) -+#define MCF_GPIO_PAR_UART0_U0TXD(x) ((x)&0x03) -+#define MCF_GPIO_PAR_UART0_U0TXD_MASK (0xFC) -+#define MCF_GPIO_PAR_UART0_U0TXD_U0TXD (0x03) -+#define MCF_GPIO_PAR_UART0_U0TXD_I2C4SCL (0x02) -+#define MCF_GPIO_PAR_UART0_U0TXD_DSPI2_SOUT (0x01) -+#define MCF_GPIO_PAR_UART0_U0TXD_GPIO (0x00) -+ -+#define MCF_GPIO_PAR_SDHCH_DAT3(x) (((x)&0x03)<<6) -+#define MCF_GPIO_PAR_SDHCH_DAT3_MASK (0x3F) -+#define MCF_GPIO_PAR_SDHCH_DAT3_DAT3 (0xC0) -+#define MCF_GPIO_PAR_SDHCH_DAT3_PWM_A1 (0x80) -+#define MCF_GPIO_PAR_SDHCH_DAT3_DSPI1_PCS0 (0x40) -+#define MCF_GPIO_PAR_SDHCH_DAT3_GPIO (0x00) -+#define MCF_GPIO_PAR_SDHCH_DAT2(x) (((x)&0x03)<<4) -+#define MCF_GPIO_PAR_SDHCH_DAT2_MASK (0xCF) -+#define MCF_GPIO_PAR_SDHCH_DAT2_DAT2 (0x30) -+#define MCF_GPIO_PAR_SDHCH_DAT2_PWM_B1 (0x20) -+#define MCF_GPIO_PAR_SDHCH_DAT2_DSPI1_PCS2 (0x10) -+#define MCF_GPIO_PAR_SDHCH_DAT2_GPIO (0x00) -+#define MCF_GPIO_PAR_SDHCH_DAT1(x) (((x)&0x03)<<2) -+#define MCF_GPIO_PAR_SDHCH_DAT1_MASK (0xF3) -+#define MCF_GPIO_PAR_SDHCH_DAT1_DAT1 (0x0C) -+#define MCF_GPIO_PAR_SDHCH_DAT1_PWM_A2 (0x08) -+#define MCF_GPIO_PAR_SDHCH_DAT1_DSPI1_PCS1 (0x04) -+#define MCF_GPIO_PAR_SDHCH_DAT1_GPIO (0x00) -+#define MCF_GPIO_PAR_SDHCH_DAT0(x) ((x)&0x03) -+#define MCF_GPIO_PAR_SDHCH_DAT0_MASK (0xFC) -+#define MCF_GPIO_PAR_SDHCH_DAT0_DAT0 (0x03) -+#define MCF_GPIO_PAR_SDHCH_DAT0_PWM_B2 (0x02) -+#define MCF_GPIO_PAR_SDHCH_DAT0_DSPI1_SOUT (0x01) -+#define MCF_GPIO_PAR_SDHCH_DAT0_GPIO (0x00) -+ -+#define MCF_GPIO_PAR_SDHCL_CMD(x) (((x)&0x03)<<2) -+#define MCF_GPIO_PAR_SDHCL_CMD_MASK (0xF3) -+#define MCF_GPIO_PAR_SDHCL_CMD_CMD (0x0C) -+#define MCF_GPIO_PAR_SDHCL_CMD_PWM_A0 (0x08) -+#define MCF_GPIO_PAR_SDHCL_CMD_DSPI1_SIN (0x04) -+#define MCF_GPIO_PAR_SDHCL_CMD_GPIO (0x00) -+#define MCF_GPIO_PAR_SDHCL_CLK(x) ((x)&0x03) -+#define MCF_GPIO_PAR_SDHCL_CLK_MASK (0xFC) -+#define MCF_GPIO_PAR_SDHCL_CLK_CLK (0x03) -+#define MCF_GPIO_PAR_SDHCL_CLK_PWM_B0 (0x02) -+#define MCF_GPIO_PAR_SDHCL_CLK_DSPI1_SCK (0x01) -+#define MCF_GPIO_PAR_SDHCL_CLK_GPIO (0x00) -+ -+#define MCF_GPIO_PAR_SIMP0H_DAT(x) (((x)&0x03)<<6) -+#define MCF_GPIO_PAR_SIMP0H_DAT_MASK (0x3F) -+#define MCF_GPIO_PAR_SIMP0H_DAT_DAT (0xC0) -+#define MCF_GPIO_PAR_SIMP0H_DAT_PWM_FAULT2 (0x80) -+#define MCF_GPIO_PAR_SIMP0H_DAT_SDHC_DAT7 (0x40) -+#define MCF_GPIO_PAR_SIMP0H_DAT_GPIO (0x00) -+#define MCF_GPIO_PAR_SIMP0H_VEN(x) (((x)&0x03)<<4) -+#define MCF_GPIO_PAR_SIMP0H_VEN_MASK (0xCF) -+#define MCF_GPIO_PAR_SIMP0H_VEN_VEN (0x30) -+#define MCF_GPIO_PAR_SIMP0H_VEN_PWM_FAULT0 (0x20) -+#define MCF_GPIO_PAR_SIMP0H_VEN_GPIO (0x00) -+#define MCF_GPIO_PAR_SIMP0H_RST(x) (((x)&0x03)<<2) -+#define MCF_GPIO_PAR_SIMP0H_RST_MASK (0xF3) -+#define MCF_GPIO_PAR_SIMP0H_RST_RST (0x0C) -+#define MCF_GPIO_PAR_SIMP0H_RST_PWM_FORCE (0x08) -+#define MCF_GPIO_PAR_SIMP0H_RST_SDHC_DAT6 (0x04) -+#define MCF_GPIO_PAR_SIMP0H_RST_GPIO (0x00) -+#define MCF_GPIO_PAR_SIMP0H_PD(x) ((x)&0x03) -+#define MCF_GPIO_PAR_SIMP0H_PD_MASK (0xFC) -+#define MCF_GPIO_PAR_SIMP0H_PD_PD (0x03) -+#define MCF_GPIO_PAR_SIMP0H_PD_PWM_SYNC (0x02) -+#define MCF_GPIO_PAR_SIMP0H_PD_SDHC_DAT5 (0x01) -+#define MCF_GPIO_PAR_SIMP0H_PD_GPIO (0x00) -+ -+#define MCF_GPIO_PAR_SIMP0L_CLK(x) ((x)&0x03) -+#define MCF_GPIO_PAR_SIMP0L_CLK_MASK (0xFC) -+#define MCF_GPIO_PAR_SIMP0L_CLK_CLK (0x03) -+#define MCF_GPIO_PAR_SIMP0L_CLK_PWM_FAULT1 (0x02) -+#define MCF_GPIO_PAR_SIMP0L_CLK_SDHC_DAT4 (0x01) -+#define MCF_GPIO_PAR_SIMP0L_CLK_GPIO (0x00) -+ -+#define MCF_GPIO_PAR_SSI0H_RXD(x) (((x)&0x03)<<6) -+#define MCF_GPIO_PAR_SSI0H_RXD_MASK (0x3F) -+#define MCF_GPIO_PAR_SSI0H_RXD_RXD (0xC0) -+#define MCF_GPIO_PAR_SSI0H_RXD_I2C2SDA (0x80) -+#define MCF_GPIO_PAR_SSI0H_RXD_SIM1_VEN (0x40) -+#define MCF_GPIO_PAR_SSI0H_RXD_GPIO (0x00) -+#define MCF_GPIO_PAR_SSI0H_TXD(x) (((x)&0x03)<<4) -+#define MCF_GPIO_PAR_SSI0H_TXD_MASK (0xCF) -+#define MCF_GPIO_PAR_SSI0H_TXD_TXD (0x30) -+#define MCF_GPIO_PAR_SSI0H_TXD_I2C2SCL (0x20) -+#define MCF_GPIO_PAR_SSI0H_TXD_SIM1_DAT (0x10) -+#define MCF_GPIO_PAR_SSI0H_TXD_GPIO (0x00) -+#define MCF_GPIO_PAR_SSI0H_FS(x) (((x)&0x03)<<2) -+#define MCF_GPIO_PAR_SSI0H_FS_MASK (0xF3) -+#define MCF_GPIO_PAR_SSI0H_FS_FS (0x0C) -+#define MCF_GPIO_PAR_SSI0H_FS_U7TXD (0x08) -+#define MCF_GPIO_PAR_SSI0H_FS_SIM1_RST (0x04) -+#define MCF_GPIO_PAR_SSI0H_FS_GPIO (0x00) -+#define MCF_GPIO_PAR_SSI0H_MCLK(x) ((x)&0x03) -+#define MCF_GPIO_PAR_SSI0H_MCLK_MASK (0xFC) -+#define MCF_GPIO_PAR_SSI0H_MCLK_MCLK (0x03) -+#define MCF_GPIO_PAR_SSI0H_MCLK_SSI_CLKIN (0x02) -+#define MCF_GPIO_PAR_SSI0H_MCLK_SIM1_CLK (0x01) -+#define MCF_GPIO_PAR_SSI0H_MCLK_GPIO (0x00) -+ -+#define MCF_GPIO_PAR_SSI0L_BCLK(x) ((x)&0x03) -+#define MCF_GPIO_PAR_SSI0L_BCLK_MASK (0xFC) -+#define MCF_GPIO_PAR_SSI0L_BCLK_BCLK (0x03) -+#define MCF_GPIO_PAR_SSI0L_BCLK_U7RXD (0x02) -+#define MCF_GPIO_PAR_SSI0L_BCLK_SIM1_PD (0x01) -+#define MCF_GPIO_PAR_SSI0L_BCLK_GPIO (0x00) -+ -+#define MCF_GPIO_PAR_DEBUGH1_DAT3 (0x40) -+#define MCF_GPIO_PAR_DEBUGH1_DAT2 (0x10) -+#define MCF_GPIO_PAR_DEBUGH1_DAT1 (0x04) -+#define MCF_GPIO_PAR_DEBUGH1_DAT0 (0x01) -+ -+#define MCF_GPIO_PAR_DEBUGH0_PST3 (0x40) -+#define MCF_GPIO_PAR_DEBUGH0_PST2 (0x10) -+#define MCF_GPIO_PAR_DEBUGH0_PST1 (0x04) -+#define MCF_GPIO_PAR_DEBUGH0_PST0 (0x01) -+ -+#define MCF_GPIO_PAR_DEBUGL_ALLPST (0x01) -+ -+#define MCF_GPIO_PAR_FEC_FEC(x) ((x)&0x0F) -+#define MCF_GPIO_PAR_FEC_FEC_MASK (0xF0) -+#define MCF_GPIO_PAR_FEC_FEC_GPIO (0x0D) -+#define MCF_GPIO_PAR_FEC_FEC_RMII1 (0x0C) -+#define MCF_GPIO_PAR_FEC_FEC_RMII1FUL (0x0B) -+#define MCF_GPIO_PAR_FEC_FEC_RMII_ULPI (0x0A) -+#define MCF_GPIO_PAR_FEC_FEC_RMII0 (0x09) -+#define MCF_GPIO_PAR_FEC_FEC_RMII0FUL_ULPI (0x08) -+#define MCF_GPIO_PAR_FEC_FEC_RMII0FUL (0x07) -+#define MCF_GPIO_PAR_FEC_FEC_RMII0_1FUL (0x06) -+#define MCF_GPIO_PAR_FEC_FEC_RMII0FUL_1 (0x05) /* 0:Full 1: */ -+/* Both 0&1: MDC, MDIO, COL & TXER - GPIO */ -+#define MCF_GPIO_PAR_FEC_FEC_RMII0_1 (0x04) -+#define MCF_GPIO_PAR_FEC_FEC_RMII0FUL_1FUL (0x03) -+#define MCF_GPIO_PAR_FEC_FEC_MII (0x01) /* MDC & MDIO - GPIO */ -+#define MCF_GPIO_PAR_FEC_FEC_MIIFUL (0x00) -+ -+/********************************************************************/ -+ -+#endif /* __MCF5441X_GPIO_H__ */ ---- /dev/null -+++ b/arch/m68k/include/asm/mcf5441x_intc.h -@@ -0,0 +1,727 @@ -+/* -+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved. -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by the -+ * Free Software Foundation; either version 2 of the License, or (at your -+ * option) any later version. -+ */ -+ -+#ifndef __MCF5441X_INTC_H__ -+#define __MCF5441X_INTC_H__ -+ -+/********************************************************************* -+* -+* Interrupt Controller (INTC) -+* -+*********************************************************************/ -+ -+/* Register read/write macros */ -+#define MCF_INTC0_IPRH MCF_REG32(0xFC048000) -+#define MCF_INTC0_IPRL MCF_REG32(0xFC048004) -+#define MCF_INTC0_IMRH MCF_REG32(0xFC048008) -+#define MCF_INTC0_IMRL MCF_REG32(0xFC04800C) -+#define MCF_INTC0_INTFRCH MCF_REG32(0xFC048010) -+#define MCF_INTC0_INTFRCL MCF_REG32(0xFC048014) -+#define MCF_INTC0_ICONFIG MCF_REG16(0xFC04801A) -+#define MCF_INTC0_SIMR MCF_REG08(0xFC04801C) -+#define MCF_INTC0_CIMR MCF_REG08(0xFC04801D) -+#define MCF_INTC0_CLMASK MCF_REG08(0xFC04801E) -+#define MCF_INTC0_SLMASK MCF_REG08(0xFC04801F) -+#define MCF_INTC0_ICR1 MCF_REG08(0xFC048041) -+#define MCF_INTC0_ICR2 MCF_REG08(0xFC048042) -+#define MCF_INTC0_ICR3 MCF_REG08(0xFC048043) -+#define MCF_INTC0_ICR4 MCF_REG08(0xFC048044) -+#define MCF_INTC0_ICR5 MCF_REG08(0xFC048045) -+#define MCF_INTC0_ICR6 MCF_REG08(0xFC048046) -+#define MCF_INTC0_ICR7 MCF_REG08(0xFC048047) -+#define MCF_INTC0_ICR8 MCF_REG08(0xFC048048) -+#define MCF_INTC0_ICR9 MCF_REG08(0xFC048049) -+#define MCF_INTC0_ICR10 MCF_REG08(0xFC04804A) -+#define MCF_INTC0_ICR11 MCF_REG08(0xFC04804B) -+#define MCF_INTC0_ICR12 MCF_REG08(0xFC04804C) -+#define MCF_INTC0_ICR13 MCF_REG08(0xFC04804D) -+#define MCF_INTC0_ICR14 MCF_REG08(0xFC04804E) -+#define MCF_INTC0_ICR15 MCF_REG08(0xFC04804F) -+#define MCF_INTC0_ICR16 MCF_REG08(0xFC048050) -+#define MCF_INTC0_ICR17 MCF_REG08(0xFC048051) -+#define MCF_INTC0_ICR18 MCF_REG08(0xFC048052) -+#define MCF_INTC0_ICR19 MCF_REG08(0xFC048053) -+#define MCF_INTC0_ICR20 MCF_REG08(0xFC048054) -+#define MCF_INTC0_ICR21 MCF_REG08(0xFC048055) -+#define MCF_INTC0_ICR22 MCF_REG08(0xFC048056) -+#define MCF_INTC0_ICR23 MCF_REG08(0xFC048057) -+#define MCF_INTC0_ICR24 MCF_REG08(0xFC048058) -+#define MCF_INTC0_ICR25 MCF_REG08(0xFC048059) -+#define MCF_INTC0_ICR26 MCF_REG08(0xFC04805A) -+#define MCF_INTC0_ICR27 MCF_REG08(0xFC04805B) -+#define MCF_INTC0_ICR28 MCF_REG08(0xFC04805C) -+#define MCF_INTC0_ICR29 MCF_REG08(0xFC04805D) -+#define MCF_INTC0_ICR30 MCF_REG08(0xFC04805E) -+#define MCF_INTC0_ICR31 MCF_REG08(0xFC04805F) -+#define MCF_INTC0_ICR32 MCF_REG08(0xFC048060) -+#define MCF_INTC0_ICR33 MCF_REG08(0xFC048061) -+#define MCF_INTC0_ICR34 MCF_REG08(0xFC048062) -+#define MCF_INTC0_ICR35 MCF_REG08(0xFC048063) -+#define MCF_INTC0_ICR36 MCF_REG08(0xFC048064) -+#define MCF_INTC0_ICR37 MCF_REG08(0xFC048065) -+#define MCF_INTC0_ICR38 MCF_REG08(0xFC048066) -+#define MCF_INTC0_ICR39 MCF_REG08(0xFC048067) -+#define MCF_INTC0_ICR40 MCF_REG08(0xFC048068) -+#define MCF_INTC0_ICR41 MCF_REG08(0xFC048069) -+#define MCF_INTC0_ICR42 MCF_REG08(0xFC04806A) -+#define MCF_INTC0_ICR43 MCF_REG08(0xFC04806B) -+#define MCF_INTC0_ICR44 MCF_REG08(0xFC04806C) -+#define MCF_INTC0_ICR45 MCF_REG08(0xFC04806D) -+#define MCF_INTC0_ICR46 MCF_REG08(0xFC04806E) -+#define MCF_INTC0_ICR47 MCF_REG08(0xFC04806F) -+#define MCF_INTC0_ICR48 MCF_REG08(0xFC048070) -+#define MCF_INTC0_ICR49 MCF_REG08(0xFC048071) -+#define MCF_INTC0_ICR50 MCF_REG08(0xFC048072) -+#define MCF_INTC0_ICR51 MCF_REG08(0xFC048073) -+#define MCF_INTC0_ICR52 MCF_REG08(0xFC048074) -+#define MCF_INTC0_ICR53 MCF_REG08(0xFC048075) -+#define MCF_INTC0_ICR54 MCF_REG08(0xFC048076) -+#define MCF_INTC0_ICR55 MCF_REG08(0xFC048077) -+#define MCF_INTC0_ICR56 MCF_REG08(0xFC048078) -+#define MCF_INTC0_ICR57 MCF_REG08(0xFC048079) -+#define MCF_INTC0_ICR58 MCF_REG08(0xFC04807A) -+#define MCF_INTC0_ICR59 MCF_REG08(0xFC04807B) -+#define MCF_INTC0_ICR60 MCF_REG08(0xFC04807C) -+#define MCF_INTC0_ICR61 MCF_REG08(0xFC04807D) -+#define MCF_INTC0_ICR62 MCF_REG08(0xFC04807E) -+#define MCF_INTC0_ICR63 MCF_REG08(0xFC04807F) -+#define MCF_INTC0_SWIACK MCF_REG08(0xFC0480E0) -+#define MCF_INTC0_L1IACK MCF_REG08(0xFC0480E4) -+#define MCF_INTC0_L2IACK MCF_REG08(0xFC0480E8) -+#define MCF_INTC0_L3IACK MCF_REG08(0xFC0480EC) -+#define MCF_INTC0_L4IACK MCF_REG08(0xFC0480F0) -+#define MCF_INTC0_L5IACK MCF_REG08(0xFC0480F4) -+#define MCF_INTC0_L6IACK MCF_REG08(0xFC0480F8) -+#define MCF_INTC0_L7IACK MCF_REG08(0xFC0480FC) -+#define MCF_INTC1_IPRH MCF_REG32(0xFC04C000) -+#define MCF_INTC1_IPRL MCF_REG32(0xFC04C004) -+#define MCF_INTC1_IMRH MCF_REG32(0xFC04C008) -+#define MCF_INTC1_IMRL MCF_REG32(0xFC04C00C) -+#define MCF_INTC1_INTFRCH MCF_REG32(0xFC04C010) -+#define MCF_INTC1_INTFRCL MCF_REG32(0xFC04C014) -+#define MCF_INTC1_ICONFIG MCF_REG16(0xFC04C01A) -+#define MCF_INTC1_SIMR MCF_REG08(0xFC04C01C) -+#define MCF_INTC1_CIMR MCF_REG08(0xFC04C01D) -+#define MCF_INTC1_CLMASK MCF_REG08(0xFC04C01E) -+#define MCF_INTC1_SLMASK MCF_REG08(0xFC04C01F) -+#define MCF_INTC1_ICR1 MCF_REG08(0xFC04C041) -+#define MCF_INTC1_ICR2 MCF_REG08(0xFC04C042) -+#define MCF_INTC1_ICR3 MCF_REG08(0xFC04C043) -+#define MCF_INTC1_ICR4 MCF_REG08(0xFC04C044) -+#define MCF_INTC1_ICR5 MCF_REG08(0xFC04C045) -+#define MCF_INTC1_ICR6 MCF_REG08(0xFC04C046) -+#define MCF_INTC1_ICR7 MCF_REG08(0xFC04C047) -+#define MCF_INTC1_ICR8 MCF_REG08(0xFC04C048) -+#define MCF_INTC1_ICR9 MCF_REG08(0xFC04C049) -+#define MCF_INTC1_ICR10 MCF_REG08(0xFC04C04A) -+#define MCF_INTC1_ICR11 MCF_REG08(0xFC04C04B) -+#define MCF_INTC1_ICR12 MCF_REG08(0xFC04C04C) -+#define MCF_INTC1_ICR13 MCF_REG08(0xFC04C04D) -+#define MCF_INTC1_ICR14 MCF_REG08(0xFC04C04E) -+#define MCF_INTC1_ICR15 MCF_REG08(0xFC04C04F) -+#define MCF_INTC1_ICR16 MCF_REG08(0xFC04C050) -+#define MCF_INTC1_ICR17 MCF_REG08(0xFC04C051) -+#define MCF_INTC1_ICR18 MCF_REG08(0xFC04C052) -+#define MCF_INTC1_ICR19 MCF_REG08(0xFC04C053) -+#define MCF_INTC1_ICR20 MCF_REG08(0xFC04C054) -+#define MCF_INTC1_ICR21 MCF_REG08(0xFC04C055) -+#define MCF_INTC1_ICR22 MCF_REG08(0xFC04C056) -+#define MCF_INTC1_ICR23 MCF_REG08(0xFC04C057) -+#define MCF_INTC1_ICR24 MCF_REG08(0xFC04C058) -+#define MCF_INTC1_ICR25 MCF_REG08(0xFC04C059) -+#define MCF_INTC1_ICR26 MCF_REG08(0xFC04C05A) -+#define MCF_INTC1_ICR27 MCF_REG08(0xFC04C05B) -+#define MCF_INTC1_ICR28 MCF_REG08(0xFC04C05C) -+#define MCF_INTC1_ICR29 MCF_REG08(0xFC04C05D) -+#define MCF_INTC1_ICR30 MCF_REG08(0xFC04C05E) -+#define MCF_INTC1_ICR31 MCF_REG08(0xFC04C05F) -+#define MCF_INTC1_ICR32 MCF_REG08(0xFC04C060) -+#define MCF_INTC1_ICR33 MCF_REG08(0xFC04C061) -+#define MCF_INTC1_ICR34 MCF_REG08(0xFC04C062) -+#define MCF_INTC1_ICR35 MCF_REG08(0xFC04C063) -+#define MCF_INTC1_ICR36 MCF_REG08(0xFC04C064) -+#define MCF_INTC1_ICR37 MCF_REG08(0xFC04C065) -+#define MCF_INTC1_ICR38 MCF_REG08(0xFC04C066) -+#define MCF_INTC1_ICR39 MCF_REG08(0xFC04C067) -+#define MCF_INTC1_ICR40 MCF_REG08(0xFC04C068) -+#define MCF_INTC1_ICR41 MCF_REG08(0xFC04C069) -+#define MCF_INTC1_ICR42 MCF_REG08(0xFC04C06A) -+#define MCF_INTC1_ICR43 MCF_REG08(0xFC04C06B) -+#define MCF_INTC1_ICR44 MCF_REG08(0xFC04C06C) -+#define MCF_INTC1_ICR45 MCF_REG08(0xFC04C06D) -+#define MCF_INTC1_ICR46 MCF_REG08(0xFC04C06E) -+#define MCF_INTC1_ICR47 MCF_REG08(0xFC04C06F) -+#define MCF_INTC1_ICR48 MCF_REG08(0xFC04C070) -+#define MCF_INTC1_ICR49 MCF_REG08(0xFC04C071) -+#define MCF_INTC1_ICR50 MCF_REG08(0xFC04C072) -+#define MCF_INTC1_ICR51 MCF_REG08(0xFC04C073) -+#define MCF_INTC1_ICR52 MCF_REG08(0xFC04C074) -+#define MCF_INTC1_ICR53 MCF_REG08(0xFC04C075) -+#define MCF_INTC1_ICR54 MCF_REG08(0xFC04C076) -+#define MCF_INTC1_ICR55 MCF_REG08(0xFC04C077) -+#define MCF_INTC1_ICR56 MCF_REG08(0xFC04C078) -+#define MCF_INTC1_ICR57 MCF_REG08(0xFC04C079) -+#define MCF_INTC1_ICR58 MCF_REG08(0xFC04C07A) -+#define MCF_INTC1_ICR59 MCF_REG08(0xFC04C07B) -+#define MCF_INTC1_ICR60 MCF_REG08(0xFC04C07C) -+#define MCF_INTC1_ICR61 MCF_REG08(0xFC04C07D) -+#define MCF_INTC1_ICR62 MCF_REG08(0xFC04C07E) -+#define MCF_INTC1_ICR63 MCF_REG08(0xFC04C07F) -+#define MCF_INTC1_SWIACK MCF_REG08(0xFC04C0E0) -+#define MCF_INTC1_L1IACK MCF_REG08(0xFC04C0E4) -+#define MCF_INTC1_L2IACK MCF_REG08(0xFC04C0E8) -+#define MCF_INTC1_L3IACK MCF_REG08(0xFC04C0EC) -+#define MCF_INTC1_L4IACK MCF_REG08(0xFC04C0F0) -+#define MCF_INTC1_L5IACK MCF_REG08(0xFC04C0F4) -+#define MCF_INTC1_L6IACK MCF_REG08(0xFC04C0F8 -+#define MCF_INTC1_L7IACK MCF_REG08(0xFC04C0FC) -+ -+#define MCF_INTC2_SIMR MCF_REG08(0xFC05001C) -+#define MCF_INTC2_CIMR MCF_REG08(0xFC05001D) -+#define MCF_INTC2_ICR31 MCF_REG08(0xFC05005F) -+ -+/* Parameterized register read/write macros for multiple registers */ -+#define MCF_INTC0_ICR(x) MCF_REG08(0xFC048041+((x-1)*0x001)) -+#define MCF_INTC0_LIACK(x) MCF_REG08(0xFC0480E4+((x-1)*0x004)) -+#define MCF_INTC1_ICR(x) MCF_REG08(0xFC04C041+((x-1)*0x001)) -+#define MCF_INTC1_LIACK(x) MCF_REG08(0xFC04C0E4+((x-1)*0x004)) -+#define MCF_INTC2_ICR(x) MCF_REG08(0xFC050041+((x-1)*0x001)) -+ -+/* Parameterized register read/write macros for multiple modules */ -+#define MCF_INTC_IPRH(x) MCF_REG32(0xFC048000+((x)*0x4000)) -+#define MCF_INTC_IPRL(x) MCF_REG32(0xFC048004+((x)*0x4000)) -+#define MCF_INTC_IMRH(x) MCF_REG32(0xFC048008+((x)*0x4000)) -+#define MCF_INTC_IMRL(x) MCF_REG32(0xFC04800C+((x)*0x4000)) -+#define MCF_INTC_INTFRCH(x) MCF_REG32(0xFC048010+((x)*0x4000)) -+#define MCF_INTC_INTFRCL(x) MCF_REG32(0xFC048014+((x)*0x4000)) -+#define MCF_INTC_ICONFIG(x) MCF_REG16(0xFC04801A+((x)*0x4000)) -+#define MCF_INTC_SIMR(x) MCF_REG08(0xFC04801C+((x)*0x4000)) -+#define MCF_INTC_CIMR(x) MCF_REG08(0xFC04801D+((x)*0x4000)) -+#define MCF_INTC_CLMASK(x) MCF_REG08(0xFC04801E+((x)*0x4000)) -+#define MCF_INTC_SLMASK(x) MCF_REG08(0xFC04801F+((x)*0x4000)) -+#define MCF_INTC_ICR1(x) MCF_REG08(0xFC048041+((x)*0x4000)) -+#define MCF_INTC_ICR2(x) MCF_REG08(0xFC048042+((x)*0x4000)) -+#define MCF_INTC_ICR3(x) MCF_REG08(0xFC048043+((x)*0x4000)) -+#define MCF_INTC_ICR4(x) MCF_REG08(0xFC048044+((x)*0x4000)) -+#define MCF_INTC_ICR5(x) MCF_REG08(0xFC048045+((x)*0x4000)) -+#define MCF_INTC_ICR6(x) MCF_REG08(0xFC048046+((x)*0x4000)) -+#define MCF_INTC_ICR7(x) MCF_REG08(0xFC048047+((x)*0x4000)) -+#define MCF_INTC_ICR8(x) MCF_REG08(0xFC048048+((x)*0x4000)) -+#define MCF_INTC_ICR9(x) MCF_REG08(0xFC048049+((x)*0x4000)) -+#define MCF_INTC_ICR10(x) MCF_REG08(0xFC04804A+((x)*0x4000)) -+#define MCF_INTC_ICR11(x) MCF_REG08(0xFC04804B+((x)*0x4000)) -+#define MCF_INTC_ICR12(x) MCF_REG08(0xFC04804C+((x)*0x4000)) -+#define MCF_INTC_ICR13(x) MCF_REG08(0xFC04804D+((x)*0x4000)) -+#define MCF_INTC_ICR14(x) MCF_REG08(0xFC04804E+((x)*0x4000)) -+#define MCF_INTC_ICR15(x) MCF_REG08(0xFC04804F+((x)*0x4000)) -+#define MCF_INTC_ICR16(x) MCF_REG08(0xFC048050+((x)*0x4000)) -+#define MCF_INTC_ICR17(x) MCF_REG08(0xFC048051+((x)*0x4000)) -+#define MCF_INTC_ICR18(x) MCF_REG08(0xFC048052+((x)*0x4000)) -+#define MCF_INTC_ICR19(x) MCF_REG08(0xFC048053+((x)*0x4000)) -+#define MCF_INTC_ICR20(x) MCF_REG08(0xFC048054+((x)*0x4000)) -+#define MCF_INTC_ICR21(x) MCF_REG08(0xFC048055+((x)*0x4000)) -+#define MCF_INTC_ICR22(x) MCF_REG08(0xFC048056+((x)*0x4000)) -+#define MCF_INTC_ICR23(x) MCF_REG08(0xFC048057+((x)*0x4000)) -+#define MCF_INTC_ICR24(x) MCF_REG08(0xFC048058+((x)*0x4000)) -+#define MCF_INTC_ICR25(x) MCF_REG08(0xFC048059+((x)*0x4000)) -+#define MCF_INTC_ICR26(x) MCF_REG08(0xFC04805A+((x)*0x4000)) -+#define MCF_INTC_ICR27(x) MCF_REG08(0xFC04805B+((x)*0x4000)) -+#define MCF_INTC_ICR28(x) MCF_REG08(0xFC04805C+((x)*0x4000)) -+#define MCF_INTC_ICR29(x) MCF_REG08(0xFC04805D+((x)*0x4000)) -+#define MCF_INTC_ICR30(x) MCF_REG08(0xFC04805E+((x)*0x4000)) -+#define MCF_INTC_ICR31(x) MCF_REG08(0xFC04805F+((x)*0x4000)) -+#define MCF_INTC_ICR32(x) MCF_REG08(0xFC048060+((x)*0x4000)) -+#define MCF_INTC_ICR33(x) MCF_REG08(0xFC048061+((x)*0x4000)) -+#define MCF_INTC_ICR34(x) MCF_REG08(0xFC048062+((x)*0x4000)) -+#define MCF_INTC_ICR35(x) MCF_REG08(0xFC048063+((x)*0x4000)) -+#define MCF_INTC_ICR36(x) MCF_REG08(0xFC048064+((x)*0x4000)) -+#define MCF_INTC_ICR37(x) MCF_REG08(0xFC048065+((x)*0x4000)) -+#define MCF_INTC_ICR38(x) MCF_REG08(0xFC048066+((x)*0x4000)) -+#define MCF_INTC_ICR39(x) MCF_REG08(0xFC048067+((x)*0x4000)) -+#define MCF_INTC_ICR40(x) MCF_REG08(0xFC048068+((x)*0x4000)) -+#define MCF_INTC_ICR41(x) MCF_REG08(0xFC048069+((x)*0x4000)) -+#define MCF_INTC_ICR42(x) MCF_REG08(0xFC04806A+((x)*0x4000)) -+#define MCF_INTC_ICR43(x) MCF_REG08(0xFC04806B+((x)*0x4000)) -+#define MCF_INTC_ICR44(x) MCF_REG08(0xFC04806C+((x)*0x4000)) -+#define MCF_INTC_ICR45(x) MCF_REG08(0xFC04806D+((x)*0x4000)) -+#define MCF_INTC_ICR46(x) MCF_REG08(0xFC04806E+((x)*0x4000)) -+#define MCF_INTC_ICR47(x) MCF_REG08(0xFC04806F+((x)*0x4000)) -+#define MCF_INTC_ICR48(x) MCF_REG08(0xFC048070+((x)*0x4000)) -+#define MCF_INTC_ICR49(x) MCF_REG08(0xFC048071+((x)*0x4000)) -+#define MCF_INTC_ICR50(x) MCF_REG08(0xFC048072+((x)*0x4000)) -+#define MCF_INTC_ICR51(x) MCF_REG08(0xFC048073+((x)*0x4000)) -+#define MCF_INTC_ICR52(x) MCF_REG08(0xFC048074+((x)*0x4000)) -+#define MCF_INTC_ICR53(x) MCF_REG08(0xFC048075+((x)*0x4000)) -+#define MCF_INTC_ICR54(x) MCF_REG08(0xFC048076+((x)*0x4000)) -+#define MCF_INTC_ICR55(x) MCF_REG08(0xFC048077+((x)*0x4000)) -+#define MCF_INTC_ICR56(x) MCF_REG08(0xFC048078+((x)*0x4000)) -+#define MCF_INTC_ICR57(x) MCF_REG08(0xFC048079+((x)*0x4000)) -+#define MCF_INTC_ICR58(x) MCF_REG08(0xFC04807A+((x)*0x4000)) -+#define MCF_INTC_ICR59(x) MCF_REG08(0xFC04807B+((x)*0x4000)) -+#define MCF_INTC_ICR60(x) MCF_REG08(0xFC04807C+((x)*0x4000)) -+#define MCF_INTC_ICR61(x) MCF_REG08(0xFC04807D+((x)*0x4000)) -+#define MCF_INTC_ICR62(x) MCF_REG08(0xFC04807E+((x)*0x4000)) -+#define MCF_INTC_ICR63(x) MCF_REG08(0xFC04807F+((x)*0x4000)) -+#define MCF_INTC_SWIACK(x) MCF_REG08(0xFC0480E0+((x)*0x4000)) -+#define MCF_INTC_L1IACK(x) MCF_REG08(0xFC0480E4+((x)*0x4000)) -+#define MCF_INTC_L2IACK(x) MCF_REG08(0xFC0480E8+((x)*0x4000)) -+#define MCF_INTC_L3IACK(x) MCF_REG08(0xFC0480EC+((x)*0x4000)) -+#define MCF_INTC_L4IACK(x) MCF_REG08(0xFC0480F0+((x)*0x4000)) -+#define MCF_INTC_L5IACK(x) MCF_REG08(0xFC0480F4+((x)*0x4000)) -+#define MCF_INTC_L6IACK(x) MCF_REG08(0xFC0480F8+((x)*0x4000)) -+#define MCF_INTC_L7IACK(x) MCF_REG08(0xFC0480FC+((x)*0x4000)) -+ -+/* Bit definitions and macros for IPRH */ -+#define MCF_INTC_IPRH_INT32 (0x00000001) -+#define MCF_INTC_IPRH_INT33 (0x00000002) -+#define MCF_INTC_IPRH_INT34 (0x00000004) -+#define MCF_INTC_IPRH_INT35 (0x00000008) -+#define MCF_INTC_IPRH_INT36 (0x00000010) -+#define MCF_INTC_IPRH_INT37 (0x00000020) -+#define MCF_INTC_IPRH_INT38 (0x00000040) -+#define MCF_INTC_IPRH_INT39 (0x00000080) -+#define MCF_INTC_IPRH_INT40 (0x00000100) -+#define MCF_INTC_IPRH_INT41 (0x00000200) -+#define MCF_INTC_IPRH_INT42 (0x00000400) -+#define MCF_INTC_IPRH_INT43 (0x00000800) -+#define MCF_INTC_IPRH_INT44 (0x00001000) -+#define MCF_INTC_IPRH_INT45 (0x00002000) -+#define MCF_INTC_IPRH_INT46 (0x00004000) -+#define MCF_INTC_IPRH_INT47 (0x00008000) -+#define MCF_INTC_IPRH_INT48 (0x00010000) -+#define MCF_INTC_IPRH_INT49 (0x00020000) -+#define MCF_INTC_IPRH_INT50 (0x00040000) -+#define MCF_INTC_IPRH_INT51 (0x00080000) -+#define MCF_INTC_IPRH_INT52 (0x00100000) -+#define MCF_INTC_IPRH_INT53 (0x00200000) -+#define MCF_INTC_IPRH_INT54 (0x00400000) -+#define MCF_INTC_IPRH_INT55 (0x00800000) -+#define MCF_INTC_IPRH_INT56 (0x01000000) -+#define MCF_INTC_IPRH_INT57 (0x02000000) -+#define MCF_INTC_IPRH_INT58 (0x04000000) -+#define MCF_INTC_IPRH_INT59 (0x08000000) -+#define MCF_INTC_IPRH_INT60 (0x10000000) -+#define MCF_INTC_IPRH_INT61 (0x20000000) -+#define MCF_INTC_IPRH_INT62 (0x40000000) -+#define MCF_INTC_IPRH_INT63 (0x80000000) -+ -+/* Bit definitions and macros for IPRL */ -+#define MCF_INTC_IPRL_INT0 (0x00000001) -+#define MCF_INTC_IPRL_INT1 (0x00000002) -+#define MCF_INTC_IPRL_INT2 (0x00000004) -+#define MCF_INTC_IPRL_INT3 (0x00000008) -+#define MCF_INTC_IPRL_INT4 (0x00000010) -+#define MCF_INTC_IPRL_INT5 (0x00000020) -+#define MCF_INTC_IPRL_INT6 (0x00000040) -+#define MCF_INTC_IPRL_INT7 (0x00000080) -+#define MCF_INTC_IPRL_INT8 (0x00000100) -+#define MCF_INTC_IPRL_INT9 (0x00000200) -+#define MCF_INTC_IPRL_INT10 (0x00000400) -+#define MCF_INTC_IPRL_INT11 (0x00000800) -+#define MCF_INTC_IPRL_INT12 (0x00001000) -+#define MCF_INTC_IPRL_INT13 (0x00002000) -+#define MCF_INTC_IPRL_INT14 (0x00004000) -+#define MCF_INTC_IPRL_INT15 (0x00008000) -+#define MCF_INTC_IPRL_INT16 (0x00010000) -+#define MCF_INTC_IPRL_INT17 (0x00020000) -+#define MCF_INTC_IPRL_INT18 (0x00040000) -+#define MCF_INTC_IPRL_INT19 (0x00080000) -+#define MCF_INTC_IPRL_INT20 (0x00100000) -+#define MCF_INTC_IPRL_INT21 (0x00200000) -+#define MCF_INTC_IPRL_INT22 (0x00400000) -+#define MCF_INTC_IPRL_INT23 (0x00800000) -+#define MCF_INTC_IPRL_INT24 (0x01000000) -+#define MCF_INTC_IPRL_INT25 (0x02000000) -+#define MCF_INTC_IPRL_INT26 (0x04000000) -+#define MCF_INTC_IPRL_INT27 (0x08000000) -+#define MCF_INTC_IPRL_INT28 (0x10000000) -+#define MCF_INTC_IPRL_INT29 (0x20000000) -+#define MCF_INTC_IPRL_INT30 (0x40000000) -+#define MCF_INTC_IPRL_INT31 (0x80000000) -+ -+/* Bit definitions and macros for IMRH */ -+#define MCF_INTC_IMRH_INT_MASK32 (0x00000001) -+#define MCF_INTC_IMRH_INT_MASK33 (0x00000002) -+#define MCF_INTC_IMRH_INT_MASK34 (0x00000004) -+#define MCF_INTC_IMRH_INT_MASK35 (0x00000008) -+#define MCF_INTC_IMRH_INT_MASK36 (0x00000010) -+#define MCF_INTC_IMRH_INT_MASK37 (0x00000020) -+#define MCF_INTC_IMRH_INT_MASK38 (0x00000040) -+#define MCF_INTC_IMRH_INT_MASK39 (0x00000080) -+#define MCF_INTC_IMRH_INT_MASK40 (0x00000100) -+#define MCF_INTC_IMRH_INT_MASK41 (0x00000200) -+#define MCF_INTC_IMRH_INT_MASK42 (0x00000400) -+#define MCF_INTC_IMRH_INT_MASK43 (0x00000800) -+#define MCF_INTC_IMRH_INT_MASK44 (0x00001000) -+#define MCF_INTC_IMRH_INT_MASK45 (0x00002000) -+#define MCF_INTC_IMRH_INT_MASK46 (0x00004000) -+#define MCF_INTC_IMRH_INT_MASK47 (0x00008000) -+#define MCF_INTC_IMRH_INT_MASK48 (0x00010000) -+#define MCF_INTC_IMRH_INT_MASK49 (0x00020000) -+#define MCF_INTC_IMRH_INT_MASK50 (0x00040000) -+#define MCF_INTC_IMRH_INT_MASK51 (0x00080000) -+#define MCF_INTC_IMRH_INT_MASK52 (0x00100000) -+#define MCF_INTC_IMRH_INT_MASK53 (0x00200000) -+#define MCF_INTC_IMRH_INT_MASK54 (0x00400000) -+#define MCF_INTC_IMRH_INT_MASK55 (0x00800000) -+#define MCF_INTC_IMRH_INT_MASK56 (0x01000000) -+#define MCF_INTC_IMRH_INT_MASK57 (0x02000000) -+#define MCF_INTC_IMRH_INT_MASK58 (0x04000000) -+#define MCF_INTC_IMRH_INT_MASK59 (0x08000000) -+#define MCF_INTC_IMRH_INT_MASK60 (0x10000000) -+#define MCF_INTC_IMRH_INT_MASK61 (0x20000000) -+#define MCF_INTC_IMRH_INT_MASK62 (0x40000000) -+#define MCF_INTC_IMRH_INT_MASK63 (0x80000000) -+ -+/* Bit definitions and macros for IMRL */ -+#define MCF_INTC_IMRL_INT_MASK0 (0x00000001) -+#define MCF_INTC_IMRL_INT_MASK1 (0x00000002) -+#define MCF_INTC_IMRL_INT_MASK2 (0x00000004) -+#define MCF_INTC_IMRL_INT_MASK3 (0x00000008) -+#define MCF_INTC_IMRL_INT_MASK4 (0x00000010) -+#define MCF_INTC_IMRL_INT_MASK5 (0x00000020) -+#define MCF_INTC_IMRL_INT_MASK6 (0x00000040) -+#define MCF_INTC_IMRL_INT_MASK7 (0x00000080) -+#define MCF_INTC_IMRL_INT_MASK8 (0x00000100) -+#define MCF_INTC_IMRL_INT_MASK9 (0x00000200) -+#define MCF_INTC_IMRL_INT_MASK10 (0x00000400) -+#define MCF_INTC_IMRL_INT_MASK11 (0x00000800) -+#define MCF_INTC_IMRL_INT_MASK12 (0x00001000) -+#define MCF_INTC_IMRL_INT_MASK13 (0x00002000) -+#define MCF_INTC_IMRL_INT_MASK14 (0x00004000) -+#define MCF_INTC_IMRL_INT_MASK15 (0x00008000) -+#define MCF_INTC_IMRL_INT_MASK16 (0x00010000) -+#define MCF_INTC_IMRL_INT_MASK17 (0x00020000) -+#define MCF_INTC_IMRL_INT_MASK18 (0x00040000) -+#define MCF_INTC_IMRL_INT_MASK19 (0x00080000) -+#define MCF_INTC_IMRL_INT_MASK20 (0x00100000) -+#define MCF_INTC_IMRL_INT_MASK21 (0x00200000) -+#define MCF_INTC_IMRL_INT_MASK22 (0x00400000) -+#define MCF_INTC_IMRL_INT_MASK23 (0x00800000) -+#define MCF_INTC_IMRL_INT_MASK24 (0x01000000) -+#define MCF_INTC_IMRL_INT_MASK25 (0x02000000) -+#define MCF_INTC_IMRL_INT_MASK26 (0x04000000) -+#define MCF_INTC_IMRL_INT_MASK27 (0x08000000) -+#define MCF_INTC_IMRL_INT_MASK28 (0x10000000) -+#define MCF_INTC_IMRL_INT_MASK29 (0x20000000) -+#define MCF_INTC_IMRL_INT_MASK30 (0x40000000) -+#define MCF_INTC_IMRL_INT_MASK31 (0x80000000) -+ -+/* Bit definitions and macros for INTFRCH */ -+#define MCF_INTC_INTFRCH_INTFRC32 (0x00000001) -+#define MCF_INTC_INTFRCH_INTFRC33 (0x00000002) -+#define MCF_INTC_INTFRCH_INTFRC34 (0x00000004) -+#define MCF_INTC_INTFRCH_INTFRC35 (0x00000008) -+#define MCF_INTC_INTFRCH_INTFRC36 (0x00000010) -+#define MCF_INTC_INTFRCH_INTFRC37 (0x00000020) -+#define MCF_INTC_INTFRCH_INTFRC38 (0x00000040) -+#define MCF_INTC_INTFRCH_INTFRC39 (0x00000080) -+#define MCF_INTC_INTFRCH_INTFRC40 (0x00000100) -+#define MCF_INTC_INTFRCH_INTFRC41 (0x00000200) -+#define MCF_INTC_INTFRCH_INTFRC42 (0x00000400) -+#define MCF_INTC_INTFRCH_INTFRC43 (0x00000800) -+#define MCF_INTC_INTFRCH_INTFRC44 (0x00001000) -+#define MCF_INTC_INTFRCH_INTFRC45 (0x00002000) -+#define MCF_INTC_INTFRCH_INTFRC46 (0x00004000) -+#define MCF_INTC_INTFRCH_INTFRC47 (0x00008000) -+#define MCF_INTC_INTFRCH_INTFRC48 (0x00010000) -+#define MCF_INTC_INTFRCH_INTFRC49 (0x00020000) -+#define MCF_INTC_INTFRCH_INTFRC50 (0x00040000) -+#define MCF_INTC_INTFRCH_INTFRC51 (0x00080000) -+#define MCF_INTC_INTFRCH_INTFRC52 (0x00100000) -+#define MCF_INTC_INTFRCH_INTFRC53 (0x00200000) -+#define MCF_INTC_INTFRCH_INTFRC54 (0x00400000) -+#define MCF_INTC_INTFRCH_INTFRC55 (0x00800000) -+#define MCF_INTC_INTFRCH_INTFRC56 (0x01000000) -+#define MCF_INTC_INTFRCH_INTFRC57 (0x02000000) -+#define MCF_INTC_INTFRCH_INTFRC58 (0x04000000) -+#define MCF_INTC_INTFRCH_INTFRC59 (0x08000000) -+#define MCF_INTC_INTFRCH_INTFRC60 (0x10000000) -+#define MCF_INTC_INTFRCH_INTFRC61 (0x20000000) -+#define MCF_INTC_INTFRCH_INTFRC62 (0x40000000) -+#define MCF_INTC_INTFRCH_INTFRC63 (0x80000000) -+ -+/* Bit definitions and macros for INTFRCL */ -+#define MCF_INTC_INTFRCL_INTFRC0 (0x00000001) -+#define MCF_INTC_INTFRCL_INTFRC1 (0x00000002) -+#define MCF_INTC_INTFRCL_INTFRC2 (0x00000004) -+#define MCF_INTC_INTFRCL_INTFRC3 (0x00000008) -+#define MCF_INTC_INTFRCL_INTFRC4 (0x00000010) -+#define MCF_INTC_INTFRCL_INTFRC5 (0x00000020) -+#define MCF_INTC_INTFRCL_INTFRC6 (0x00000040) -+#define MCF_INTC_INTFRCL_INTFRC7 (0x00000080) -+#define MCF_INTC_INTFRCL_INTFRC8 (0x00000100) -+#define MCF_INTC_INTFRCL_INTFRC9 (0x00000200) -+#define MCF_INTC_INTFRCL_INTFRC10 (0x00000400) -+#define MCF_INTC_INTFRCL_INTFRC11 (0x00000800) -+#define MCF_INTC_INTFRCL_INTFRC12 (0x00001000) -+#define MCF_INTC_INTFRCL_INTFRC13 (0x00002000) -+#define MCF_INTC_INTFRCL_INTFRC14 (0x00004000) -+#define MCF_INTC_INTFRCL_INTFRC15 (0x00008000) -+#define MCF_INTC_INTFRCL_INTFRC16 (0x00010000) -+#define MCF_INTC_INTFRCL_INTFRC17 (0x00020000) -+#define MCF_INTC_INTFRCL_INTFRC18 (0x00040000) -+#define MCF_INTC_INTFRCL_INTFRC19 (0x00080000) -+#define MCF_INTC_INTFRCL_INTFRC20 (0x00100000) -+#define MCF_INTC_INTFRCL_INTFRC21 (0x00200000) -+#define MCF_INTC_INTFRCL_INTFRC22 (0x00400000) -+#define MCF_INTC_INTFRCL_INTFRC23 (0x00800000) -+#define MCF_INTC_INTFRCL_INTFRC24 (0x01000000) -+#define MCF_INTC_INTFRCL_INTFRC25 (0x02000000) -+#define MCF_INTC_INTFRCL_INTFRC26 (0x04000000) -+#define MCF_INTC_INTFRCL_INTFRC27 (0x08000000) -+#define MCF_INTC_INTFRCL_INTFRC28 (0x10000000) -+#define MCF_INTC_INTFRCL_INTFRC29 (0x20000000) -+#define MCF_INTC_INTFRCL_INTFRC30 (0x40000000) -+#define MCF_INTC_INTFRCL_INTFRC31 (0x80000000) -+ -+/* Bit definitions and macros for ICONFIG */ -+#define MCF_INTC_ICONFIG_EMASK (0x0020) -+#define MCF_INTC_ICONFIG_ELVLPRI1 (0x0200) -+#define MCF_INTC_ICONFIG_ELVLPRI2 (0x0400) -+#define MCF_INTC_ICONFIG_ELVLPRI3 (0x0800) -+#define MCF_INTC_ICONFIG_ELVLPRI4 (0x1000) -+#define MCF_INTC_ICONFIG_ELVLPRI5 (0x2000) -+#define MCF_INTC_ICONFIG_ELVLPRI6 (0x4000) -+#define MCF_INTC_ICONFIG_ELVLPRI7 (0x8000) -+ -+/* Bit definitions and macros for SIMR */ -+#define MCF_INTC_SIMR_SIMR(x) (((x)&0x7F)) -+ -+/* Bit definitions and macros for CIMR */ -+#define MCF_INTC_CIMR_CIMR(x) (((x)&0x7F)) -+ -+/* Bit definitions and macros for CLMASK */ -+#define MCF_INTC_CLMASK_CLMASK(x) (((x)&0x0F)) -+ -+/* Bit definitions and macros for SLMASK */ -+#define MCF_INTC_SLMASK_SLMASK(x) (((x)&0x0F)) -+ -+/* Bit definitions and macros for ICR group */ -+#define MCF_INTC_ICR_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR1 */ -+#define MCF_INTC_ICR1_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR2 */ -+#define MCF_INTC_ICR2_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR3 */ -+#define MCF_INTC_ICR3_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR4 */ -+#define MCF_INTC_ICR4_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR5 */ -+#define MCF_INTC_ICR5_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR6 */ -+#define MCF_INTC_ICR6_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR7 */ -+#define MCF_INTC_ICR7_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR8 */ -+#define MCF_INTC_ICR8_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR9 */ -+#define MCF_INTC_ICR9_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR10 */ -+#define MCF_INTC_ICR10_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR11 */ -+#define MCF_INTC_ICR11_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR12 */ -+#define MCF_INTC_ICR12_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR13 */ -+#define MCF_INTC_ICR13_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR14 */ -+#define MCF_INTC_ICR14_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR15 */ -+#define MCF_INTC_ICR15_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR16 */ -+#define MCF_INTC_ICR16_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR17 */ -+#define MCF_INTC_ICR17_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR18 */ -+#define MCF_INTC_ICR18_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR19 */ -+#define MCF_INTC_ICR19_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR20 */ -+#define MCF_INTC_ICR20_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR21 */ -+#define MCF_INTC_ICR21_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR22 */ -+#define MCF_INTC_ICR22_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR23 */ -+#define MCF_INTC_ICR23_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR24 */ -+#define MCF_INTC_ICR24_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR25 */ -+#define MCF_INTC_ICR25_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR26 */ -+#define MCF_INTC_ICR26_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR27 */ -+#define MCF_INTC_ICR27_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR28 */ -+#define MCF_INTC_ICR28_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR29 */ -+#define MCF_INTC_ICR29_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR30 */ -+#define MCF_INTC_ICR30_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR31 */ -+#define MCF_INTC_ICR31_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR32 */ -+#define MCF_INTC_ICR32_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR33 */ -+#define MCF_INTC_ICR33_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR34 */ -+#define MCF_INTC_ICR34_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR35 */ -+#define MCF_INTC_ICR35_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR36 */ -+#define MCF_INTC_ICR36_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR37 */ -+#define MCF_INTC_ICR37_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR38 */ -+#define MCF_INTC_ICR38_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR39 */ -+#define MCF_INTC_ICR39_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR40 */ -+#define MCF_INTC_ICR40_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR41 */ -+#define MCF_INTC_ICR41_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR42 */ -+#define MCF_INTC_ICR42_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR43 */ -+#define MCF_INTC_ICR43_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR44 */ -+#define MCF_INTC_ICR44_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR45 */ -+#define MCF_INTC_ICR45_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR46 */ -+#define MCF_INTC_ICR46_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR47 */ -+#define MCF_INTC_ICR47_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR48 */ -+#define MCF_INTC_ICR48_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR49 */ -+#define MCF_INTC_ICR49_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR50 */ -+#define MCF_INTC_ICR50_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR51 */ -+#define MCF_INTC_ICR51_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR52 */ -+#define MCF_INTC_ICR52_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR53 */ -+#define MCF_INTC_ICR53_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR54 */ -+#define MCF_INTC_ICR54_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR55 */ -+#define MCF_INTC_ICR55_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR56 */ -+#define MCF_INTC_ICR56_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR57 */ -+#define MCF_INTC_ICR57_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR58 */ -+#define MCF_INTC_ICR58_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR59 */ -+#define MCF_INTC_ICR59_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR60 */ -+#define MCF_INTC_ICR60_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR61 */ -+#define MCF_INTC_ICR61_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR62 */ -+#define MCF_INTC_ICR62_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for ICR63 */ -+#define MCF_INTC_ICR63_IL(x) (((x)&0x07)) -+ -+/* Bit definitions and macros for SWIACK */ -+#define MCF_INTC_SWIACK_VECTOR(x) (x) -+ -+/* Bit definitions and macros for LIACK group */ -+#define MCF_INTC_LIACK_VECTOR(x) (x) -+ -+/* Bit definitions and macros for L1IACK */ -+#define MCF_INTC_L1IACK_VECTOR(x) (x) -+ -+/* Bit definitions and macros for L2IACK */ -+#define MCF_INTC_L2IACK_VECTOR(x) (x) -+ -+/* Bit definitions and macros for L3IACK */ -+#define MCF_INTC_L3IACK_VECTOR(x) (x) -+ -+/* Bit definitions and macros for L4IACK */ -+#define MCF_INTC_L4IACK_VECTOR(x) (x) -+ -+/* Bit definitions and macros for L5IACK */ -+#define MCF_INTC_L5IACK_VECTOR(x) (x) -+ -+/* Bit definitions and macros for L6IACK */ -+#define MCF_INTC_L6IACK_VECTOR(x) (x) -+ -+/* Bit definitions and macros for L7IACK */ -+#define MCF_INTC_L7IACK_VECTOR(x) (x) -+ -+/********************************************************************/ -+ -+#endif /* __MCF5441X_INTC_H__ */ ---- /dev/null -+++ b/arch/m68k/include/asm/mcf5441x_pm.h -@@ -0,0 +1,33 @@ -+/* -+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved. -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by the -+ * Free Software Foundation; either version 2 of the License, or (at your -+ * option) any later version. -+ */ -+ -+#ifndef __MCF5441X_PM_H__ -+#define __MCF5441X_PM_H__ -+ -+/********************************************************************* -+* -+* Power Management Module Register Definition -+* -+*********************************************************************/ -+ -+#define MCF_PM_WCR MCF_REG08(0xFC040013) -+#define MCF_PM_PPMSR0 MCF_REG08(0xFC04002C) -+#define MCF_PM_PPMCR0 MCF_REG08(0xFC04002D) -+#define MCF_PM_PPMSR1 MCF_REG08(0xFC04002E) -+#define MCF_PM_PPMCR1 MCF_REG08(0xFC04002F) -+#define MCF_PM_PPMHR0 MCF_REG32(0xFC040030) -+#define MCF_PM_PPMLR0 MCF_REG32(0xFC040034) -+#define MCF_PM_PPMHR1 MCF_REG32(0xFC040038) -+#define MCF_PM_PPMLR1 MCF_REG32(0xFC04003C) -+#define MCF_PM_LPCR MCF_REG08(0xEC090007) -+#define MCF_PM_MISCCR MCF_REG16(0xEC09000E) -+#define MCF_PM_CDHR MCF_REG16(0xEC090010) -+#define MCF_PM_CDLR MCF_REG16(0xEC090012) -+ -+#endif ---- /dev/null -+++ b/arch/m68k/include/asm/mcf5441x_rtc.h -@@ -0,0 +1,127 @@ -+/* -+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved. -+ * -+ * Lanttor.Guo@freescale.com -+ * -+ * Description: -+ * This file is the register definition of m5441x RTC module -+ * -+ * This is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ */ -+ -+#ifndef __MCF5441X_RTC_H__ -+#define __MCF5441X_RTC_H__ -+ -+/********************************************************************* -+* -+* Real-time Clock (RTC) -+* -+*********************************************************************/ -+#ifndef MCFINT_VECBASE -+#define MCFINT_VECBASE 64 -+#endif -+ -+#define MCFSIM_ICR_RTC (0xFC050040 + 26) -+ -+/* Register read/write macros */ -+#define MCF_RTC_YEARMON 0xFC0A8000 -+#define MCF_RTC_DAYS 0xFC0A8002 -+#define MCF_RTC_HOURMIN 0xFC0A8004 -+#define MCF_RTC_SECONDS 0xFC0A8006 -+#define MCF_RTC_ALRM_YRMON 0xFC0A8008 -+#define MCF_RTC_ALRM_DAYS 0xFC0A800A -+#define MCF_RTC_ALRM_HM 0xFC0A800C -+#define MCF_RTC_ALRM_SEC 0xFC0A800E -+#define MCF_RTC_CR 0xFC0A8010 -+#define MCF_RTC_SR 0xFC0A8012 -+#define MCF_RTC_ISR 0xFC0A8014 -+#define MCF_RTC_IER 0xFC0A8016 -+#define MCF_RTC_COUNT_DN 0xFC0A8018 -+#define MCF_RTC_CFG_DATA 0xFC0A8020 -+#define MCF_RTC_DST_HOUR 0xFC0A8022 -+#define MCF_RTC_DST_MON 0xFC0A8024 -+#define MCF_RTC_DST_DAY 0xFC0A8026 -+#define MCF_RTC_COMPEN 0xFC0A8028 -+#define MCF_RTC_UP_CNTRH 0xFC0A8032 -+#define MCF_RTC_UP_CNTRL 0xFC0A8034 -+ -+#define MCF_RTC_STANDBY_RAM_START 0xFC0A8040 -+#define MCF_RTC_STANDBY_RAM_END 0xFC0A8040 -+ -+/* Bit definitions and macros for MCF_RTC_YEARMON */ -+ -+#define MCF_RTC_YEARMON_YEAR_RD(x) (((x) & 0xFF00) >> 8) -+#define MCF_RTC_YEARMON_MON_RD(x) ((x) & 0x00FF) -+#define MCF_RTC_YEARMON_YEAR_SET(x) (((x) & 0x00FF) << 8) -+#define MCF_RTC_YEARMON_MON_SET(x) ((x) & 0x000F) -+ -+/* Bit definitions and macros for MCF_RTC_DAYS */ -+#define MCF_RTC_DAYS_DAYWEEK_RD(x) (((x) & 0xFF00) >> 8) -+#define MCF_RTC_DAYS_DAY_RD(x) ((x) & 0x00FF) -+#define MCF_RTC_DAYS_DAYWEEK_SET(x) (((x) & 0x0007) << 8) -+#define MCF_RTC_DAYS_DAY_SET(x) ((x) & 0x001F) -+ -+/* Bit definitions and macros for MCF_RTC_HOURMIN */ -+#define MCF_RTC_HOURMIN_HOURS_RD(x) (((x) & 0xFF00) >> 8) -+#define MCF_RTC_HOURMIN_MINUTES_RD(x) ((x) & 0x00FF) -+#define MCF_RTC_HOURMIN_HOURS_SET(x) (((x) & 0x001F) << 8) -+#define MCF_RTC_HOURMIN_MINUTES_SET(x) ((x) & 0x003F) -+ -+/* Bit definitions and macros for MCF_RTC_SECONDS */ -+#define MCF_RTC_SECONDS_SECONDS_RD(x) ((x) & 0x00FF) -+#define MCF_RTC_SECONDS_SECONDS_SET(x) (((x) & 0x003F) << 0) -+ -+/* Bit definitions and macros for MCF_RTC_CR */ -+#define MCF_RTC_CR_WP 0x0002 -+ -+/* Bit definitions and macros for MCF_RTC_ISR */ -+#define MCF_RTC_ISR_STW 0x0002 -+#define MCF_RTC_ISR_ALM 0x0004 -+#define MCF_RTC_ISR_DAY 0x0008 -+#define MCF_RTC_ISR_HR 0x0010 -+#define MCF_RTC_ISR_MIN 0x0020 -+#define MCF_RTC_ISR_1HZ 0x0040 -+#define MCF_RTC_ISR_2HZ 0x0080 -+#define MCF_RTC_ISR_SAM0 0x0100 -+#define MCF_RTC_ISR_SAM1 0x0200 -+#define MCF_RTC_ISR_SAM2 0x0400 -+#define MCF_RTC_ISR_SAM3 0x0800 -+#define MCF_RTC_ISR_SAM4 0x1000 -+#define MCF_RTC_ISR_SAM5 0x2000 -+#define MCF_RTC_ISR_SAM6 0x4000 -+#define MCF_RTC_ISR_SAM7 0x8000 -+ -+/* Bit definitions and macros for MCF_RTC_IER */ -+#define MCF_RTC_IER_STW 0x0002 -+#define MCF_RTC_IER_ALM 0x0004 -+#define MCF_RTC_IER_DAY 0x0008 -+#define MCF_RTC_IER_HR 0x0010 -+#define MCF_RTC_IER_MIN 0x0020 -+#define MCF_RTC_IER_1HZ 0x0040 -+#define MCF_RTC_IER_2HZ 0x0080 -+#define MCF_RTC_IER_SAM0 0x0100 -+#define MCF_RTC_IER_SAM1 0x0200 -+#define MCF_RTC_IER_SAM2 0x0400 -+#define MCF_RTC_IER_SAM3 0x0800 -+#define MCF_RTC_IER_SAM4 0x1000 -+#define MCF_RTC_IER_SAM5 0x2000 -+#define MCF_RTC_IER_SAM6 0x4000 -+#define MCF_RTC_IER_SAM7 0x8000 -+ -+/* Bit definitions and macros for MCF_RTC_CFG_DATA */ -+#define MCF_RTC_CFG_DATA_OSCBYP 0x0010 -+#define MCF_RTC_CFG_DATA_OSCEN 0x0008 -+ -+/* Bit definitions and macros for MCF_RTC_SR */ -+#define MCF_RTC_SR_INVALID 0x0001 -+#define MCF_RTC_SR_WPE 0x0010 -+ -+/* Interrupt source */ -+#define MCFINT_RTC (64+64+26) -+/*********************************************************************/ -+ -+#endif ---- /dev/null -+++ b/arch/m68k/include/asm/mcf5441x_scm.h -@@ -0,0 +1,33 @@ -+/* -+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved. -+ * -+ * This is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ */ -+#ifndef __MCF5441X_SCM_H__ -+#define __MCF5441X_SCM_H__ -+ -+/********************************************************************* -+* -+* System Control Module (SCM) -+* -+*********************************************************************/ -+ -+/* Core Watchdog(CW) Register read/write macros */ -+#define MCF_SCM_CWCR MCF_REG16(0xFC040016) /* CW Control Register */ -+#define MCF_SCM_CWSR MCF_REG08(0xFC04001B) /* CW Service Register */ -+ -+/* CW Bit definitions and macros for SWCR */ -+#define MCF_SCM_CWCR_RO (0x8000) /* CWCR is read-only */ -+#define MCF_SCM_CWCR_CWRWR (0x0100) /* CW run when halted */ -+#define MCF_SCM_CWCR_CWE (0x0080) /* CW timer enable */ -+#define MCF_SCM_CWCR_CWRI(x) (((x) & 0x03) << 5) /* CW reset/interrupt */ -+#define MCF_SCM_CWCR_CWT(x) (((x) & 0x1F) << 0) /* CW time-out period */ -+ -+#define MCF_GPT_MAX_TIMEOUT 17 -+/********************************************************************/ -+ -+#endif /* __MCF5441X_SCM_H__ */ ---- /dev/null -+++ b/arch/m68k/include/asm/mcf5441x_sdramc.h -@@ -0,0 +1,141 @@ -+/* -+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved. -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by the -+ * Free Software Foundation; either version 2 of the License, or (at your -+ * option) any later version. -+ */ -+ -+#ifndef __MCF5441X_SDRAMC_H__ -+#define __MCF5441X_SDRAMC_H__ -+ -+/********************************************************************* -+* -+* SDRAM Controller (SDRAMC) -+* -+*********************************************************************/ -+ -+/* Register read/write macros */ -+/* SDRAM Mode/Extended Mode Register */ -+#define MCF_SDRAMC_SDMR (*(vuint32 *)(0xFC0B8000)) -+/* SDRAM Control Register */ -+#define MCF_SDRAMC_SDCR (*(vuint32 *)(0xFC0B8004)) -+/* SDRAM Configuration Register 1 */ -+#define MCF_SDRAMC_SDCFG1 (*(vuint32 *)(0xFC0B8008)) -+/* SDRAM Configuration Register 2 */ -+#define MCF_SDRAMC_SDCFG2 (*(vuint32 *)(0xFC0B800C)) -+/* SDRAM Chip Select Register */ -+#define MCF_SDRAMC_SDCS0 (*(vuint32 *)(0xFC0B8110)) -+/* SDRAM Chip Select Register */ -+#define MCF_SDRAMC_SDCS1 (*(vuint32 *)(0xFC0B8114)) -+ -+/* Parameterized register read/write macros for multiple registers */ -+/* SDRAM Chip Select Register */ -+#define MCF_SDRAMC_SDCS(x) (*(vuint32 *)(0xFC0B8110+((x)*0x004))) -+ -+/* Bit definitions and macros for SDMR */ -+#define MCF_SDRAMC_SDMR_DDR2_AD(x) (((x)&0x00003FFF)) /* Address for DDR2 */ -+#define MCF_SDRAMC_SDMR_CMD (0x00010000) /* Command */ -+#define MCF_SDRAMC_SDMR_AD(x) (((x)&0x00000FFF)<<18) /* Address */ -+#define MCF_SDRAMC_SDMR_BK(x) (((x)&0x00000003)<<30) /* Bank Address */ -+#define MCF_SDRAMC_SDMR_BK_LMR (0x00000000) -+#define MCF_SDRAMC_SDMR_BK_LEMR (0x40000000) -+ -+/* Bit definitions and macros for SDCR */ -+#define MCF_SDRAMC_SDCR_DPD (0x00000001) /* Deep Power-Down Mode */ -+#define MCF_SDRAMC_SDCR_IPALL (0x00000002) /* Initiate Precharge All */ -+#define MCF_SDRAMC_SDCR_IREF (0x00000004) /* Initiate Refresh */ -+#define MCF_SDRAMC_SDCR_DQS_OE(x) (((x)&0x00000003)<<10) /* DQS Output Enable */ -+#define MCF_SDRAMC_SDCR_MEM_PS (0x00002000) /* Data Port Size */ -+/* Periodic Refresh Counter */ -+#define MCF_SDRAMC_SDCR_REF_CNT(x) (((x)&0x0000003F)<<16) -+#define MCF_SDRAMC_SDCR_OE_RULE (0x00400000) /* Drive Rule Selection */ -+/* Internal Address Mux Select */ -+#define MCF_SDRAMC_SDCR_ADDR_MUX(x) (((x)&0x00000003)<<24) -+#define MCF_SDRAMC_SDCR_DDR2_MODE (0x08000000) /* DDR2 Mode Select */ -+#define MCF_SDRAMC_SDCR_REF_EN (0x10000000) /* Refresh Enable */ -+#define MCF_SDRAMC_SDCR_DDR_MODE (0x20000000) /* DDR Mode Select */ -+/* Clock Enable */ -+#define MCF_SDRAMC_SDCR_CKE (0x40000000) -+/* SDRAM Mode Register Programming Enable */ -+#define MCF_SDRAMC_SDCR_MODE_EN (0x80000000) -+#define MCF_SDRAMC_SDCR_DQS_OE_BOTH (0x00000C00) -+ -+/* Bit definitions and macros for SDCFG1 */ -+/* Write Latency */ -+#define MCF_SDRAMC_SDCFG1_WT_LAT(x) (((x)&0x00000007)<<4) -+/* Refresh to active delay */ -+#define MCF_SDRAMC_SDCFG1_REF2ACT(x) (((x)&0x0000000F)<<8) -+/* Precharge to active delay */ -+#define MCF_SDRAMC_SDCFG1_PRE2ACT(x) (((x)&0x00000007)<<12) -+/* Active to read/write delay */ -+#define MCF_SDRAMC_SDCFG1_ACT2RW(x) (((x)&0x00000007)<<16) -+/* Read CAS Latency */ -+#define MCF_SDRAMC_SDCFG1_RD_LAT(x) (((x)&0x0000000F)<<20) -+/* Single write to read/write/precharge delay */ -+#define MCF_SDRAMC_SDCFG1_SWT2RWP(x) (((x)&0x00000007)<<24) -+/* Single read to read/write/precharge delay */ -+#define MCF_SDRAMC_SDCFG1_SRD2RWP(x) (((x)&0x0000000F)<<28) -+ -+/* Bit definitions and macros for SDCFG2 */ -+/* Burst Length */ -+#define MCF_SDRAMC_SDCFG2_BL(x) (((x)&0x0000000F)<<16) -+/* Burst read to write delay */ -+#define MCF_SDRAMC_SDCFG2_BRD2W(x) (((x)&0x0000000F)<<20) -+/* Burst write to read/write/precharge delay */ -+#define MCF_SDRAMC_SDCFG2_BWT2RWP(x) (((x)&0x0000000F)<<24) -+/* Burst read to read/precharge delay */ -+#define MCF_SDRAMC_SDCFG2_BRD2RP(x) (((x)&0x0000000F)<<28) -+ -+/* Bit definitions and macros for SDCS group */ -+/* Chip-Select Size */ -+#define MCF_SDRAMC_SDCS_CSSZ(x) (((x)&0x0000001F)) -+/* Chip-Select Base Address */ -+#define MCF_SDRAMC_SDCS_CSBA(x) (((x)&0x00000FFF)<<20) -+#define MCF_SDRAMC_SDCS_BA(x) ((x)&0xFFF00000) -+#define MCF_SDRAMC_SDCS_CSSZ_DISABLE (0x00000000) -+#define MCF_SDRAMC_SDCS_CSSZ_1MBYTE (0x00000013) -+#define MCF_SDRAMC_SDCS_CSSZ_2MBYTE (0x00000014) -+#define MCF_SDRAMC_SDCS_CSSZ_4MBYTE (0x00000015) -+#define MCF_SDRAMC_SDCS_CSSZ_8MBYTE (0x00000016) -+#define MCF_SDRAMC_SDCS_CSSZ_16MBYTE (0x00000017) -+#define MCF_SDRAMC_SDCS_CSSZ_32MBYTE (0x00000018) -+#define MCF_SDRAMC_SDCS_CSSZ_64MBYTE (0x00000019) -+#define MCF_SDRAMC_SDCS_CSSZ_128MBYTE (0x0000001A) -+#define MCF_SDRAMC_SDCS_CSSZ_256MBYTE (0x0000001B) -+#define MCF_SDRAMC_SDCS_CSSZ_512MBYTE (0x0000001C) -+#define MCF_SDRAMC_SDCS_CSSZ_1GBYTE (0x0000001D) -+#define MCF_SDRAMC_SDCS_CSSZ_2GBYTE (0x0000001E) -+#define MCF_SDRAMC_SDCS_CSSZ_4GBYTE (0x0000001F) -+ -+/* Bit definitions and macros for SDCS0 */ -+/* Chip-Select Size */ -+#define MCF_SDRAMC_SDCS0_CSSZ(x) (((x)&0x0000001F)) -+/* Chip-Select Base Address */ -+#define MCF_SDRAMC_SDCS0_CSBA(x) (((x)&0x00000FFF)<<20) -+#define MCF_SDRAMC_SDCS0_BA(x) ((x)&0xFFF00000) -+#define MCF_SDRAMC_SDCS0_CSSZ_DISABLE (0x00000000) -+#define MCF_SDRAMC_SDCS0_CSSZ_1MBYTE (0x00000013) -+#define MCF_SDRAMC_SDCS0_CSSZ_2MBYTE (0x00000014) -+#define MCF_SDRAMC_SDCS0_CSSZ_4MBYTE (0x00000015) -+#define MCF_SDRAMC_SDCS0_CSSZ_8MBYTE (0x00000016) -+#define MCF_SDRAMC_SDCS0_CSSZ_16MBYTE (0x00000017) -+#define MCF_SDRAMC_SDCS0_CSSZ_32MBYTE (0x00000018) -+#define MCF_SDRAMC_SDCS0_CSSZ_64MBYTE (0x00000019) -+#define MCF_SDRAMC_SDCS0_CSSZ_128MBYTE (0x0000001A) -+#define MCF_SDRAMC_SDCS0_CSSZ_256MBYTE (0x0000001B) -+#define MCF_SDRAMC_SDCS0_CSSZ_512MBYTE (0x0000001C) -+#define MCF_SDRAMC_SDCS0_CSSZ_1GBYTE (0x0000001D) -+#define MCF_SDRAMC_SDCS0_CSSZ_2GBYTE (0x0000001E) -+#define MCF_SDRAMC_SDCS0_CSSZ_4GBYTE (0x0000001F) -+ -+/* Bit definitions and macros for SDCS1 */ -+/* Chip-Select Size */ -+#define MCF_SDRAMC_SDCS1_CSSZ(x) (((x)&0x0000001F)) -+/* Chip-Select Base Address */ -+#define MCF_SDRAMC_SDCS1_CSBA(x) (((x)&0x00000FFF)<<20) -+ -+/********************************************************************/ -+ -+#endif /* __MCF5441X_SDRAMC_H__ */ ---- /dev/null -+++ b/arch/m68k/include/asm/mcf5441x_xbs.h -@@ -0,0 +1,77 @@ -+/* -+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. All Rights Reserved. -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License as published by the -+ * Free Software Foundation; either version 2 of the License, or (at your -+ * option) any later version. -+ */ -+ -+#ifndef __MCF5441X_XBS_H__ -+#define __MCF5441X_XBS_H__ -+ -+/* -+ * Crossbar Switch (XBS) -+ */ -+ -+/* Register read/write macros */ -+#define MCF_XBS_PRS0 MCF_REG32(0xFC004000) /* DRAM */ -+#define MCF_XBS_CRS0 MCF_REG32(0xFC004010) -+#define MCF_XBS_PRS1 MCF_REG32(0xFC004100) /* Flexbus Priority */ -+#define MCF_XBS_CRS1 MCF_REG32(0xFC004110) /* Flexbus Control */ -+#define MCF_XBS_PRS2 MCF_REG32(0xFC004200) /* SDRam Priority */ -+#define MCF_XBS_CRS2 MCF_REG32(0xFC004210) /* SDRam Control */ -+#define MCF_XBS_PRS3 MCF_REG32(0xFC004300) /* ATA Priority */ -+#define MCF_XBS_CRS4 MCF_REG32(0xFC004410) /* SRAM Control */ -+#define MCF_XBS_PRS6 MCF_REG32(0xFC004600) /* Slave6 Priority */ -+#define MCF_XBS_CRS6 MCF_REG32(0xFC004610) /* Slave6 Control */ -+#define MCF_XBS_PRS7 MCF_REG32(0xFC004700) /* Other Priority */ -+#define MCF_XBS_CRS7 MCF_REG32(0xFC004710) /* Other Control */ -+ -+/* Priorities */ -+#define MCF_XBS_PRI_1 0 /* Level 1 (highest) */ -+#define MCF_XBS_PRI_2 1 /* Level 2 */ -+#define MCF_XBS_PRI_3 2 /* Level 3 */ -+#define MCF_XBS_PRI_4 3 /* Level 4 */ -+#define MCF_XBS_PRI_5 4 /* Level 5 */ -+#define MCF_XBS_PRI_6 5 /* Level 6 */ -+#define MCF_XBS_PRI_7 6 /* Level 7 (lowest) */ -+#define MCF_XBS_PRI_MASK 7 /* Mask (Not a valid level) */ -+ -+/* Priority Register (PRSn) Defs */ -+#define MCF_XBS_PRS_MACRO(m, p) ((p)<<((m)<<2)) -+#define MCF_XBS_PRS_M0(p) MCF_XBS_PRS_MACRO(0, p) /* Coldfire Core */ -+#define MCF_XBS_PRS_M1(p) MCF_XBS_PRS_MACRO(1, p) /* eDMA */ -+#define MCF_XBS_PRS_M2(p) MCF_XBS_PRS_MACRO(2, p) /* FEC0 */ -+#define MCF_XBS_PRS_M3(p) MCF_XBS_PRS_MACRO(3, p) /* FEC1 */ -+#define MCF_XBS_PRS_M4(p) MCF_XBS_PRS_MACRO(4, p) /* Master 4 */ -+#define MCF_XBS_PRS_M5(p) MCF_XBS_PRS_MACRO(5, p) /* PCI */ -+#define MCF_XBS_PRS_M6(p) MCF_XBS_PRS_MACRO(6, p) /* USB OTG */ -+#define MCF_XBS_PRS_M7(p) MCF_XBS_PRS_MACRO(7, p) /* Serial Boot */ -+ -+/* Control Register (CRSn) Defs */ -+#define MCF_XBS_CRS_RO 0x80000000 /* Read Only */ -+#define MCF_XBS_CRS_ARB 0x00000100 /* Arbitration Mode */ -+#define MCF_XBS_CRS_PCTL 0x00000030 /* Parking Control */ -+#define MCF_XBS_CRS_PARK 0x00000007 /* Park Location */ -+ -+/* MCF_XBS_CRS_ARB Defs */ -+#define MCF_ABS_CRS_ARB_FIXED 0x00000000 /* Fixed priority */ -+#define MCF_ABS_CRS_ARB_ROUND 0x00000100 /* Round Robin priority */ -+ -+/* MCF_XBS_CRS_PCTL Defs */ -+#define MCF_ABS_CRS_PCTL_PARK 0x00000000 /* Park on the defined PARK */ -+#define MCF_ABS_CRS_PCTL_LAST 0x00000010 /* Park on the last master */ -+#define MCF_ABS_CRS_PCTL_NONE 0x00000020 /* Don't park */ -+ -+/* MCF_XBS_CRS_PARK Defs */ -+#define MCF_ABS_CRS_PARK_M0 0x00000000 /* Park on Coldfire Core */ -+#define MCF_ABS_CRS_PARK_M1 0x00000001 /* Park on eDMA */ -+#define MCF_ABS_CRS_PARK_M2 0x00000002 /* Park on FEC0 */ -+#define MCF_ABS_CRS_PARK_M3 0x00000003 /* Park on FEC1 */ -+#define MCF_ABS_CRS_PARK_M4 0x00000004 /* Park on Reserved */ -+#define MCF_ABS_CRS_PARK_M5 0x00000005 /* Park on PCI */ -+#define MCF_ABS_CRS_PARK_M6 0x00000006 /* Park on USB OTG */ -+#define MCF_ABS_CRS_PARK_M7 0x00000007 /* Park on Serial Boot */ -+ -+#endif /* __MCF5441X_XBS_H__ */ |