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

Commit 04e917b6 authored by Yusuke Goda's avatar Yusuke Goda Committed by Paul Mundt
Browse files

sh: Add support Renesas Solutions AP-325RXA board



This board is SH7723 base board.

This has SCIF, LCDC, USB Host controler, NOR/NAND Flash, Sound,
Ether and other.

This patch supports SCIF, NOR Flash.

Signed-off-by: default avatarYusuke Goda <goda.yusuke@renesas.com>
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 42fd3b14
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -502,6 +502,13 @@ config SH_MIGOR
	  Select Migo-R if configuring for the SH7722 Migo-R platform
          by Renesas System Solutions Asia Pte. Ltd.

config SH_AP325RXA
	bool "AP-325RXA"
	select CPU_SUBTYPE_SH7723
	help
	  Renesas "AP-325RXA" support.
	  Compatible with ALGO SYSTEM CO.,LTD. "AP-320A"

config SH_EDOSK7705
	bool "EDOSK7705"
	depends on CPU_SUBTYPE_SH7705
+1 −0
Original line number Diff line number Diff line
@@ -122,6 +122,7 @@ machdir-$(CONFIG_SH_MIGOR) += renesas/migor
machdir-$(CONFIG_SH_SDK7780)			+= renesas/sdk7780
machdir-$(CONFIG_SH_X3PROTO)			+= renesas/x3proto
machdir-$(CONFIG_SH_RSK7203)			+= renesas/rsk7203
machdir-$(CONFIG_SH_AP325RXA)			+= renesas/ap325rxa
machdir-$(CONFIG_SH_SH4202_MICRODEV)		+= superh/microdev
machdir-$(CONFIG_SH_LANDISK)			+= landisk
machdir-$(CONFIG_SH_TITAN)			+= titan
+1 −0
Original line number Diff line number Diff line
obj-y	:= setup.o
+108 −0
Original line number Diff line number Diff line
/*
 * Renesas - AP-325RXA
 * (Compatible with Algo System ., LTD. - AP-320A)
 *
 * Copyright (C) 2008 Renesas Solutions Corp.
 * Author : Yusuke Goda <goda.yuske@renesas.com>
 *
 * 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/device.h>
#include <linux/platform_device.h>
#include <linux/mtd/physmap.h>
#include <linux/delay.h>
#include <asm/io.h>

static struct resource smc9118_resources[] = {
	[0] = {
		.start	= 0xb6080000,
		.end	= 0xb60fffff,
		.flags	= IORESOURCE_MEM,
	},
	[1] = {
		.start	= 35,
		.end	= 35,
		.flags	= IORESOURCE_IRQ,
	}
};

static struct platform_device smc9118_device = {
	.name		= "smc911x",
	.id		= -1,
	.num_resources	= ARRAY_SIZE(smc9118_resources),
	.resource	= smc9118_resources,
};

static struct mtd_partition ap325rxa_nor_flash_partitions[] = {
	{
		 .name = "uboot",
		 .offset = 0,
		 .size = (1 * 1024 * 1024),
		 .mask_flags = MTD_WRITEABLE,	/* Read-only */
	}, {
		 .name = "kernel",
		 .offset = MTDPART_OFS_APPEND,
		 .size = (2 * 1024 * 1024),
	}, {
		 .name = "other",
		 .offset = MTDPART_OFS_APPEND,
		 .size = MTDPART_SIZ_FULL,
	},
};

static struct physmap_flash_data ap325rxa_nor_flash_data = {
	.width		= 2,
	.parts		= ap325rxa_nor_flash_partitions,
	.nr_parts	= ARRAY_SIZE(ap325rxa_nor_flash_partitions),
};

static struct resource ap325rxa_nor_flash_resources[] = {
	[0] = {
		.name	= "NOR Flash",
		.start	= 0x00000000,
		.end	= 0x00ffffff,
		.flags	= IORESOURCE_MEM,
	}
};

static struct platform_device ap325rxa_nor_flash_device = {
	.name		= "physmap-flash",
	.resource	= ap325rxa_nor_flash_resources,
	.num_resources	= ARRAY_SIZE(ap325rxa_nor_flash_resources),
	.dev		= {
		.platform_data = &ap325rxa_nor_flash_data,
	},
};

static struct platform_device *ap325rxa_devices[] __initdata = {
	&smc9118_device,
	&ap325rxa_nor_flash_device
};

static int __init ap325rxa_devices_setup(void)
{
	return platform_add_devices(ap325rxa_devices,
				ARRAY_SIZE(ap325rxa_devices));
}
device_initcall(ap325rxa_devices_setup);

#define MSTPCR0		(0xA4150030)
#define MSTPCR2		(0xA4150038)

static void __init ap325rxa_setup(char **cmdline_p)
{
	/* enable VEU0 + VEU1 */
	ctrl_outl(ctrl_inl(MSTPCR2) & ~0x00000044, MSTPCR2);	/* bit 2 + 6 */

	/* enable MERAM */
	ctrl_outl(ctrl_inl(MSTPCR0) & ~0x00000001, MSTPCR0);	/* bit 0 */
}

static struct sh_machine_vector mv_ap325rxa __initmv = {
	.mv_name = "AP-325RXA",
	.mv_setup = ap325rxa_setup,
};
+947 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading