diff options
Diffstat (limited to 'arch/arm/mach-ks8695')
-rw-r--r-- | arch/arm/mach-ks8695/Kconfig | 5 | ||||
-rw-r--r-- | arch/arm/mach-ks8695/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/mach-ks8695/board-micrel.c | 60 |
3 files changed, 66 insertions, 0 deletions
diff --git a/arch/arm/mach-ks8695/Kconfig b/arch/arm/mach-ks8695/Kconfig index 44d14aa..ce1cf8d 100644 --- a/arch/arm/mach-ks8695/Kconfig +++ b/arch/arm/mach-ks8695/Kconfig @@ -2,6 +2,11 @@ if ARCH_KS8695 menu "Kendin/Micrel KS8695 Implementations" +config MACH_KS8695 + bool "KS8695 development board" + help + Say 'Y' here if you want your kernel to run on the original + Kendin-Micrel KS8695 development board. endmenu diff --git a/arch/arm/mach-ks8695/Makefile b/arch/arm/mach-ks8695/Makefile index 0a0f496..56b7d33 100644 --- a/arch/arm/mach-ks8695/Makefile +++ b/arch/arm/mach-ks8695/Makefile @@ -12,3 +12,4 @@ obj- := #obj-$(CONFIG_PCI) += pci.o # Board-specific support +obj-$(CONFIG_MACH_KS8695) += board-micrel.o diff --git a/arch/arm/mach-ks8695/board-micrel.c b/arch/arm/mach-ks8695/board-micrel.c new file mode 100644 index 0000000..8fc0edb --- /dev/null +++ b/arch/arm/mach-ks8695/board-micrel.c @@ -0,0 +1,60 @@ +/* + * arch/arm/mach-ks8695/board-micrel.c + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include <linux/kernel.h> +#include <linux/types.h> +#include <linux/interrupt.h> +#include <linux/init.h> +#include <linux/platform_device.h> + +#include <asm/mach-types.h> + +#include <asm/mach/arch.h> +#include <asm/mach/map.h> +#include <asm/mach/irq.h> + +#include <asm/arch/devices.h> + +#include "generic.h" + +#ifdef CONFIG_PCI +static int __init micrel_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) +{ + return KS8695_IRQ_EXTERN0; +} + +static struct ks8695_pci_cfg micrel_pci = { + .mode = KS8695_MODE_MINIPCI, + .map_irq = micrel_pci_map_irq, +}; +#endif + + +static void micrel_init(void) +{ + printk(KERN_INFO "Micrel KS8695 Development Board initializing\n"); + +#ifdef CONFIG_PCI + ks8695_init_pci(&micrel_pci); +#endif + + /* Add devices */ + ks8695_add_device_wan(); /* eth0 = WAN */ + ks8695_add_device_lan(); /* eth1 = LAN */ +} + +MACHINE_START(KS8695, "KS8695 Centaur Development Board") + /* Maintainer: Micrel Semiconductor Inc. */ + .phys_io = KS8695_IO_PA, + .io_pg_offst = (KS8695_IO_VA >> 18) & 0xfffc, + .boot_params = KS8695_SDRAM_PA + 0x100, + .map_io = ks8695_map_io, + .init_irq = ks8695_init_irq, + .init_machine = micrel_init, + .timer = &ks8695_timer, +MACHINE_END |