Index: linux-2.6.17-rc1/arch/arm/mach-ep93xx/Kconfig =================================================================== --- linux-2.6.17-rc1.orig/arch/arm/mach-ep93xx/Kconfig +++ linux-2.6.17-rc1/arch/arm/mach-ep93xx/Kconfig @@ -21,6 +21,12 @@ config MACH_GESBC9312 Say 'Y' here if you want your kernel to support the Glomation GESBC-9312-sx board. +config MACH_MICRO9 + bool "Support Contec Hypercontrol Micro9" + help + Say 'Y' here if you want your kernel to support the + Contec Hypercontrol Micro9 development board. + config MACH_TS72XX bool "Support Technologic Systems TS-72xx SBC" help Index: linux-2.6.17-rc1/arch/arm/mach-ep93xx/Makefile =================================================================== --- linux-2.6.17-rc1.orig/arch/arm/mach-ep93xx/Makefile +++ linux-2.6.17-rc1/arch/arm/mach-ep93xx/Makefile @@ -8,4 +8,5 @@ obj- := obj-$(CONFIG_MACH_EDB9315) += edb9315.o obj-$(CONFIG_MACH_GESBC9312) += gesbc9312.o +obj-$(CONFIG_MACH_MICRO9) += micro9.o obj-$(CONFIG_MACH_TS72XX) += ts72xx.o Index: linux-2.6.17-rc1/arch/arm/mach-ep93xx/micro9.c =================================================================== --- /dev/null +++ linux-2.6.17-rc1/arch/arm/mach-ep93xx/micro9.c @@ -0,0 +1,89 @@ +/* + * linux/arch/arm/mach-ep93xx/micro9.c + * + * Copyright (C) 2004 Contec Steuerungstechnik & Automation GmbH + * Manfred Gruber + * + * 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. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include + +static void __init micro9_init_machine(void) +{ + ep93xx_init_devices(); + + physmap_configure(0x10000000 , SZ_64M , 4, NULL); + + /* + * CAN memory, can't be used by other things. + */ + if (!request_mem_region(MICRO9_CAN1_IO_START, MICRO9_CAN1_IO_LEN, + "OKI CAN 1")) { + printk(KERN_ERR "OKI CAN1: unable to reserve memory for " + "OKI can1 controller\n"); + } + + if (!request_mem_region(MICRO9_CAN2_IO_START, MICRO9_CAN2_IO_LEN, + "OKI CAN 2")) { + printk(KERN_ERR "OKI CAN2: unable to reserve memory for " + "OKI can2 controller\n"); + } + +#ifdef CONFIG_MICRO9_FPGA_EXTENSION_BOARD + /* + * FPGA extension board. + */ + if (!request_mem_region(FPGA_IO_START_1, FPGA_IO_LEN_1, "FPGA 1")) { + printk(KERN_ERR "FPGA: unable to reserve memory 1 for " + "Micro9 FPGA extension board\n"); + } + + if (!request_mem_region(FPGA_IO_START_2, FPGA_IO_LEN_2, "FPGA 2")) { + printk(KERN_ERR "FPGA: unable to reserve memory 2 for " + "Micro9 FPGA extension board\n"); + } +#endif +} + +MACHINE_START(MICRO9, "Contec Hypercontrol Micro9") + /* Maintainer: Manfred Gruber */ + .phys_io = EP93XX_APB_PHYS_BASE, + .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc, + .boot_params = 0x00000100, + .map_io = ep93xx_map_io, + .init_irq = ep93xx_init_irq, + .timer = &ep93xx_timer, + .init_machine = micro9_init_machine, +MACHINE_END Index: linux-2.6.17-rc1/include/asm-arm/arch-ep93xx/hardware.h =================================================================== --- linux-2.6.17-rc1.orig/include/asm-arm/arch-ep93xx/hardware.h +++ linux-2.6.17-rc1/include/asm-arm/arch-ep93xx/hardware.h @@ -9,4 +9,5 @@ #include "platform.h" #include "gesbc9312.h" +#include "micro9.h" #include "ts72xx.h" Index: linux-2.6.17-rc1/include/asm-arm/arch-ep93xx/micro9.h =================================================================== --- /dev/null +++ linux-2.6.17-rc1/include/asm-arm/arch-ep93xx/micro9.h @@ -0,0 +1,8 @@ +/* + * linux/include/asm-arm/arch-ep93xx/micro9.h + */ + +#define MICRO9_CAN1_IO_START 0x20000000 +#define MICRO9_CAN1_IO_LEN 0x01000000 +#define MICRO9_CAN2_IO_START 0x21000000 +#define MICRO9_CAN2_IO_LEN 0x01000000