aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-ep93xx
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-ep93xx')
-rw-r--r--arch/arm/mach-ep93xx/Kconfig6
-rw-r--r--arch/arm/mach-ep93xx/Makefile1
-rw-r--r--arch/arm/mach-ep93xx/edb9307a.c67
3 files changed, 74 insertions, 0 deletions
diff --git a/arch/arm/mach-ep93xx/Kconfig b/arch/arm/mach-ep93xx/Kconfig
index 5a1b8c05c958..56bddcef6905 100644
--- a/arch/arm/mach-ep93xx/Kconfig
+++ b/arch/arm/mach-ep93xx/Kconfig
@@ -33,6 +33,12 @@ config MACH_EDB9307
33 Say 'Y' here if you want your kernel to support the Cirrus 33 Say 'Y' here if you want your kernel to support the Cirrus
34 Logic EDB9307 Evaluation Board. 34 Logic EDB9307 Evaluation Board.
35 35
36config MACH_EDB9307A
37 bool "Support Cirrus Logic EDB9307A"
38 help
39 Say 'Y' here if you want your kernel to support the Cirrus
40 Logic EDB9307A Evaluation Board.
41
36config MACH_EDB9312 42config MACH_EDB9312
37 bool "Support Cirrus Logic EDB9312" 43 bool "Support Cirrus Logic EDB9312"
38 help 44 help
diff --git a/arch/arm/mach-ep93xx/Makefile b/arch/arm/mach-ep93xx/Makefile
index c1252ca9648e..944e42d51646 100644
--- a/arch/arm/mach-ep93xx/Makefile
+++ b/arch/arm/mach-ep93xx/Makefile
@@ -10,6 +10,7 @@ obj-$(CONFIG_MACH_ADSSPHERE) += adssphere.o
10obj-$(CONFIG_MACH_EDB9302) += edb9302.o 10obj-$(CONFIG_MACH_EDB9302) += edb9302.o
11obj-$(CONFIG_MACH_EDB9302A) += edb9302a.o 11obj-$(CONFIG_MACH_EDB9302A) += edb9302a.o
12obj-$(CONFIG_MACH_EDB9307) += edb9307.o 12obj-$(CONFIG_MACH_EDB9307) += edb9307.o
13obj-$(CONFIG_MACH_EDB9307A) += edb9307a.o
13obj-$(CONFIG_MACH_EDB9312) += edb9312.o 14obj-$(CONFIG_MACH_EDB9312) += edb9312.o
14obj-$(CONFIG_MACH_EDB9315) += edb9315.o 15obj-$(CONFIG_MACH_EDB9315) += edb9315.o
15obj-$(CONFIG_MACH_EDB9315A) += edb9315a.o 16obj-$(CONFIG_MACH_EDB9315A) += edb9315a.o
diff --git a/arch/arm/mach-ep93xx/edb9307a.c b/arch/arm/mach-ep93xx/edb9307a.c
new file mode 100644
index 000000000000..bbbe4c1fd502
--- /dev/null
+++ b/arch/arm/mach-ep93xx/edb9307a.c
@@ -0,0 +1,67 @@
1/*
2 * arch/arm/mach-ep93xx/edb9307a.c
3 * Cirrus Logic EDB9307A support.
4 *
5 * Copyright (C) 2008 H Hartley Sweeten <hsweeten@visionengravers.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or (at
10 * your option) any later version.
11 */
12
13#include <linux/kernel.h>
14#include <linux/init.h>
15#include <linux/mm.h>
16#include <linux/sched.h>
17#include <linux/interrupt.h>
18#include <linux/ioport.h>
19#include <linux/mtd/physmap.h>
20#include <linux/platform_device.h>
21#include <linux/io.h>
22#include <mach/hardware.h>
23#include <asm/mach-types.h>
24#include <asm/mach/arch.h>
25
26static struct physmap_flash_data edb9307a_flash_data = {
27 .width = 2,
28};
29
30static struct resource edb9307a_flash_resource = {
31 .start = EP93XX_CS6_PHYS_BASE,
32 .end = EP93XX_CS6_PHYS_BASE + SZ_16M - 1,
33 .flags = IORESOURCE_MEM,
34};
35
36static struct platform_device edb9307a_flash = {
37 .name = "physmap-flash",
38 .id = 0,
39 .dev = {
40 .platform_data = &edb9307a_flash_data,
41 },
42 .num_resources = 1,
43 .resource = &edb9307a_flash_resource,
44};
45
46static struct ep93xx_eth_data edb9307a_eth_data = {
47 .phy_id = 1,
48};
49
50static void __init edb9307a_init_machine(void)
51{
52 ep93xx_init_devices();
53 platform_device_register(&edb9307a_flash);
54
55 ep93xx_register_eth(&edb9307a_eth_data, 1);
56}
57
58MACHINE_START(EDB9307A, "Cirrus Logic EDB9307A Evaluation Board")
59 /* Maintainer: H Hartley Sweeten <hsweeten@visionengravers.com> */
60 .phys_io = EP93XX_APB_PHYS_BASE,
61 .io_pg_offst = ((EP93XX_APB_VIRT_BASE) >> 18) & 0xfffc,
62 .boot_params = EP93XX_SDCE0_PHYS_BASE + 0x100,
63 .map_io = ep93xx_map_io,
64 .init_irq = ep93xx_init_irq,
65 .timer = &ep93xx_timer,
66 .init_machine = edb9307a_init_machine,
67MACHINE_END