diff options
author | Phil Edworthy <phil.edworthy@renesas.com> | 2012-05-10 09:26:53 +0100 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2012-05-10 17:20:01 +0900 |
commit | b6397435ec676271bd7fa1de9e62633718a754c1 (patch) | |
tree | 85eda93d621e4b2edf2b79891c43fe94e3b3af99 /arch/sh/boards | |
parent | 0b25b7c8cba83fa8c02fbf38eb905996f2455dd0 (diff) | |
download | linux-3.10-b6397435ec676271bd7fa1de9e62633718a754c1.tar.gz linux-3.10-b6397435ec676271bd7fa1de9e62633718a754c1.tar.bz2 linux-3.10-b6397435ec676271bd7fa1de9e62633718a754c1.zip |
sh: Add RSK2+SH7269 board
The RSK2+SH7269 board uses the SH7269 processor. It is often
referred to as just rsk7269. NOR Flash, SDRAM, serial, USB Host and
ethernet are working.
Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/boards')
-rw-r--r-- | arch/sh/boards/Kconfig | 3 | ||||
-rw-r--r-- | arch/sh/boards/mach-rsk/Kconfig | 5 | ||||
-rw-r--r-- | arch/sh/boards/mach-rsk/Makefile | 1 | ||||
-rw-r--r-- | arch/sh/boards/mach-rsk/devices-rsk7269.c | 60 |
4 files changed, 68 insertions, 1 deletions
diff --git a/arch/sh/boards/Kconfig b/arch/sh/boards/Kconfig index ee92f429ca2..7ee04984b8f 100644 --- a/arch/sh/boards/Kconfig +++ b/arch/sh/boards/Kconfig @@ -133,7 +133,8 @@ config SH_RTS7751R2D config SH_RSK bool "Renesas Starter Kit" - depends on CPU_SUBTYPE_SH7201 || CPU_SUBTYPE_SH7203 || CPU_SUBTYPE_SH7264 + depends on CPU_SUBTYPE_SH7201 || CPU_SUBTYPE_SH7203 || \ + CPU_SUBTYPE_SH7264 || CPU_SUBTYPE_SH7269 help Select this option if configuring for any of the RSK+ MCU evaluation platforms. diff --git a/arch/sh/boards/mach-rsk/Kconfig b/arch/sh/boards/mach-rsk/Kconfig index 4315af51164..458a11ffd02 100644 --- a/arch/sh/boards/mach-rsk/Kconfig +++ b/arch/sh/boards/mach-rsk/Kconfig @@ -18,6 +18,11 @@ config SH_RSK7264 select ARCH_REQUIRE_GPIOLIB depends on CPU_SUBTYPE_SH7264 +config SH_RSK7269 + bool "RSK2+SH7269" + select ARCH_REQUIRE_GPIOLIB + depends on CPU_SUBTYPE_SH7269 + endchoice endif diff --git a/arch/sh/boards/mach-rsk/Makefile b/arch/sh/boards/mach-rsk/Makefile index bae6ae45aba..6a4e1b538a6 100644 --- a/arch/sh/boards/mach-rsk/Makefile +++ b/arch/sh/boards/mach-rsk/Makefile @@ -1,3 +1,4 @@ obj-y := setup.o obj-$(CONFIG_SH_RSK7203) += devices-rsk7203.o obj-$(CONFIG_SH_RSK7264) += devices-rsk7264.o +obj-$(CONFIG_SH_RSK7269) += devices-rsk7269.o diff --git a/arch/sh/boards/mach-rsk/devices-rsk7269.c b/arch/sh/boards/mach-rsk/devices-rsk7269.c new file mode 100644 index 00000000000..4a544591d6f --- /dev/null +++ b/arch/sh/boards/mach-rsk/devices-rsk7269.c @@ -0,0 +1,60 @@ +/* + * RSK+SH7269 Support + * + * Copyright (C) 2012 Renesas Electronics Europe Ltd + * Copyright (C) 2012 Phil Edworthy + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive + * for more details. + */ +#include <linux/init.h> +#include <linux/types.h> +#include <linux/platform_device.h> +#include <linux/interrupt.h> +#include <linux/input.h> +#include <linux/smsc911x.h> +#include <linux/gpio.h> +#include <asm/machvec.h> +#include <asm/io.h> + +static struct smsc911x_platform_config smsc911x_config = { + .phy_interface = PHY_INTERFACE_MODE_MII, + .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, + .irq_type = SMSC911X_IRQ_TYPE_PUSH_PULL, + .flags = SMSC911X_USE_16BIT | SMSC911X_SWAP_FIFO, +}; + +static struct resource smsc911x_resources[] = { + [0] = { + .start = 0x24000000, + .end = 0x240000ff, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = 85, + .end = 85, + .flags = IORESOURCE_IRQ, + }, +}; + +static struct platform_device smsc911x_device = { + .name = "smsc911x", + .id = -1, + .num_resources = ARRAY_SIZE(smsc911x_resources), + .resource = smsc911x_resources, + .dev = { + .platform_data = &smsc911x_config, + }, +}; + +static struct platform_device *rsk7269_devices[] __initdata = { + &smsc911x_device, +}; + +static int __init rsk7269_devices_setup(void) +{ + return platform_add_devices(rsk7269_devices, + ARRAY_SIZE(rsk7269_devices)); +} +device_initcall(rsk7269_devices_setup); |