mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	sh: RSK+ 7203 board support.
This adds initial support for the RTE RSK+ SH7203 board. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
		
							parent
							
								
									2cd1e31859
								
							
						
					
					
						commit
						3787aa112c
					
				
					 5 changed files with 133 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -477,6 +477,10 @@ config SH_RTS7751R2D
 | 
			
		|||
	  Select RTS7751R2D if configuring for a Renesas Technology
 | 
			
		||||
	  Sales SH-Graphics board.
 | 
			
		||||
 | 
			
		||||
config SH_RSK7203
 | 
			
		||||
	bool "RSK7203"
 | 
			
		||||
	depends on CPU_SUBTYPE_SH7203
 | 
			
		||||
 | 
			
		||||
config SH_SDK7780
 | 
			
		||||
	bool "SDK7780R3"
 | 
			
		||||
	depends on CPU_SUBTYPE_SH7780
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -121,6 +121,7 @@ machdir-$(CONFIG_SH_HIGHLANDER)			+= renesas/r7780rp
 | 
			
		|||
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_SH4202_MICRODEV)		+= superh/microdev
 | 
			
		||||
machdir-$(CONFIG_SH_LANDISK)			+= landisk
 | 
			
		||||
machdir-$(CONFIG_SH_TITAN)			+= titan
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										1
									
								
								arch/sh/boards/renesas/rsk7203/Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								arch/sh/boards/renesas/rsk7203/Makefile
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
obj-y	:= setup.o
 | 
			
		||||
							
								
								
									
										126
									
								
								arch/sh/boards/renesas/rsk7203/setup.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										126
									
								
								arch/sh/boards/renesas/rsk7203/setup.c
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,126 @@
 | 
			
		|||
/*
 | 
			
		||||
 * Renesas Technology Europe RSK+ 7203 Support.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 2008 Paul Mundt
 | 
			
		||||
 *
 | 
			
		||||
 * 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/mtd/mtd.h>
 | 
			
		||||
#include <linux/mtd/partitions.h>
 | 
			
		||||
#include <linux/mtd/physmap.h>
 | 
			
		||||
#include <linux/mtd/map.h>
 | 
			
		||||
#include <asm/machvec.h>
 | 
			
		||||
#include <asm/io.h>
 | 
			
		||||
 | 
			
		||||
static struct resource smc911x_resources[] = {
 | 
			
		||||
	[0] = {
 | 
			
		||||
		.start		= 0x24000000,
 | 
			
		||||
		.end		= 0x24000000 + 0x100,
 | 
			
		||||
		.flags		= IORESOURCE_MEM,
 | 
			
		||||
	},
 | 
			
		||||
	[1] = {
 | 
			
		||||
		.start		= 64,
 | 
			
		||||
		.end		= 64,
 | 
			
		||||
		.flags		= IORESOURCE_IRQ,
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static struct platform_device smc911x_device = {
 | 
			
		||||
	.name		= "smc911x",
 | 
			
		||||
	.id		= -1,
 | 
			
		||||
	.num_resources	= ARRAY_SIZE(smc911x_resources),
 | 
			
		||||
	.resource	= smc911x_resources,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static const char *probes[] = { "cmdlinepart", NULL };
 | 
			
		||||
 | 
			
		||||
static struct mtd_partition *parsed_partitions;
 | 
			
		||||
 | 
			
		||||
static struct mtd_partition rsk7203_partitions[] = {
 | 
			
		||||
	{
 | 
			
		||||
		.name		= "Bootloader",
 | 
			
		||||
		.offset		= 0x00000000,
 | 
			
		||||
		.size		= 0x00040000,
 | 
			
		||||
		.mask_flags	= MTD_WRITEABLE,
 | 
			
		||||
	}, {
 | 
			
		||||
		.name		= "Kernel",
 | 
			
		||||
		.offset		= MTDPART_OFS_NXTBLK,
 | 
			
		||||
		.size		= 0x001c0000,
 | 
			
		||||
	}, {
 | 
			
		||||
		.name		= "Flash_FS",
 | 
			
		||||
		.offset		= MTDPART_OFS_NXTBLK,
 | 
			
		||||
		.size		= MTDPART_SIZ_FULL,
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static struct physmap_flash_data flash_data = {
 | 
			
		||||
	.width		= 2,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static struct resource flash_resource = {
 | 
			
		||||
	.start		= 0x20000000,
 | 
			
		||||
	.end		= 0x20400000,
 | 
			
		||||
	.flags		= IORESOURCE_MEM,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static struct platform_device flash_device = {
 | 
			
		||||
	.name		= "physmap-flash",
 | 
			
		||||
	.id		= -1,
 | 
			
		||||
	.resource	= &flash_resource,
 | 
			
		||||
	.num_resources	= 1,
 | 
			
		||||
	.dev		= {
 | 
			
		||||
		.platform_data = &flash_data,
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static struct mtd_info *flash_mtd;
 | 
			
		||||
 | 
			
		||||
static struct map_info rsk7203_flash_map = {
 | 
			
		||||
	.name		= "RSK+ Flash",
 | 
			
		||||
	.size		= 0x400000,
 | 
			
		||||
	.bankwidth	= 2,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static void __init set_mtd_partitions(void)
 | 
			
		||||
{
 | 
			
		||||
	int nr_parts = 0;
 | 
			
		||||
 | 
			
		||||
	simple_map_init(&rsk7203_flash_map);
 | 
			
		||||
	flash_mtd = do_map_probe("cfi_probe", &rsk7203_flash_map);
 | 
			
		||||
	nr_parts = parse_mtd_partitions(flash_mtd, probes,
 | 
			
		||||
					&parsed_partitions, 0);
 | 
			
		||||
	/* If there is no partition table, used the hard coded table */
 | 
			
		||||
	if (nr_parts <= 0) {
 | 
			
		||||
		flash_data.parts = rsk7203_partitions;
 | 
			
		||||
		flash_data.nr_parts = ARRAY_SIZE(rsk7203_partitions);
 | 
			
		||||
	} else {
 | 
			
		||||
		flash_data.nr_parts = nr_parts;
 | 
			
		||||
		flash_data.parts = parsed_partitions;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
static struct platform_device *rsk7203_devices[] __initdata = {
 | 
			
		||||
	&smc911x_device,
 | 
			
		||||
	&flash_device,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static int __init rsk7203_devices_setup(void)
 | 
			
		||||
{
 | 
			
		||||
	set_mtd_partitions();
 | 
			
		||||
	return platform_add_devices(rsk7203_devices,
 | 
			
		||||
				    ARRAY_SIZE(rsk7203_devices));
 | 
			
		||||
}
 | 
			
		||||
device_initcall(rsk7203_devices_setup);
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * The Machine Vector
 | 
			
		||||
 */
 | 
			
		||||
static struct sh_machine_vector mv_rsk7203 __initmv = {
 | 
			
		||||
	.mv_name        = "RSK+7203",
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -46,3 +46,4 @@ R2D_1			RTS7751R2D_1
 | 
			
		|||
CAYMAN			SH_CAYMAN
 | 
			
		||||
SDK7780			SH_SDK7780
 | 
			
		||||
MIGOR			SH_MIGOR
 | 
			
		||||
RSK7203			SH_RSK7203
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue