Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 87c01737 authored by Lennert Buytenhek's avatar Lennert Buytenhek Committed by Russell King
Browse files

[ARM] 3671/1: ep93xx: add cirrus logic edb9315 support



Patch from Lennert Buytenhek

This patch adds support for the Cirrus Logic EDB9315, an evaluation
board based on the Cirrus Logic EP9315 SoC, with 64M RAM, two USB host
ports, audio in/out, three serial ports, 10/100 ethernet, and IDE, VGA,
and LCD interfaces.

Signed-off-by: default avatarLennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent c17fad11
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -9,6 +9,12 @@ config CRUNCH

comment "EP93xx Platforms"

config MACH_EDB9315
	bool "Support Cirrus Logic EDB9315"
	help
	  Say 'Y' here if you want your kernel to support the Cirrus
	  Logic EDB9315 Evaluation Board.

config MACH_GESBC9312
	bool "Support Glomation GESBC-9312-sx"
	help
+1 −0
Original line number Diff line number Diff line
@@ -6,5 +6,6 @@ obj-m :=
obj-n			:=
obj-			:=

obj-$(CONFIG_MACH_EDB9315)	+= edb9315.o
obj-$(CONFIG_MACH_GESBC9312)	+= gesbc9312.o
obj-$(CONFIG_MACH_TS72XX)	+= ts72xx.o
+62 −0
Original line number Diff line number Diff line
/*
 * arch/arm/mach-ep93xx/edb9315.c
 * Cirrus Logic EDB9315 support.
 *
 * Copyright (C) 2006 Lennert Buytenhek <buytenh@wantstofly.org>
 *
 * 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/config.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/mm.h>
#include <linux/sched.h>
#include <linux/interrupt.h>
#include <linux/ioport.h>
#include <linux/mtd/physmap.h>
#include <linux/platform_device.h>
#include <asm/io.h>
#include <asm/hardware.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>

static struct physmap_flash_data edb9315_flash_data = {
	.width		= 4,
};

static struct resource edb9315_flash_resource = {
	.start		= 0x60000000,
	.end		= 0x61ffffff,
	.flags		= IORESOURCE_MEM,
};

static struct platform_device edb9315_flash = {
	.name		= "physmap-flash",
	.id		= 0,
	.dev		= {
		.platform_data	= &edb9315_flash_data,
	},
	.num_resources	= 1,
	.resource	= &edb9315_flash_resource,
};

static void __init edb9315_init_machine(void)
{
	ep93xx_init_devices();
	platform_device_register(&edb9315_flash);
}

MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board")
	/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
	.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	= edb9315_init_machine,
MACHINE_END