2008-11-28 22:56:45 +09:00
/*
2008-12-08 14:32:03 +09:00
* Renesas Technology Europe RSK + Support .
2008-11-28 22:56:45 +09:00
*
2008-12-08 14:32:03 +09:00
* Copyright ( C ) 2008 Paul Mundt
2008-11-28 22:56:45 +09:00
* Copyright ( C ) 2008 Peter Griffin < pgriffin @ mpc - data . co . uk >
*
* 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/mtd/mtd.h>
# include <linux/mtd/partitions.h>
# include <linux/mtd/physmap.h>
# include <linux/mtd/map.h>
2012-06-27 00:50:07 +02:00
# include <linux/regulator/fixed.h>
# include <linux/regulator/machine.h>
2008-11-28 22:56:45 +09:00
# include <asm/machvec.h>
# include <asm/io.h>
2012-06-27 00:50:07 +02:00
/* Dummy supplies, where voltage doesn't matter */
static struct regulator_consumer_supply dummy_supplies [ ] = {
REGULATOR_SUPPLY ( " vddvario " , " smsc911x " ) ,
REGULATOR_SUPPLY ( " vdd33a " , " smsc911x " ) ,
} ;
2008-12-08 14:32:03 +09:00
static struct mtd_partition rsk_partitions [ ] = {
2008-11-28 22:56:45 +09:00
{
. 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 = {
2012-01-12 13:47:42 +09:00
. parts = rsk_partitions ,
. nr_parts = ARRAY_SIZE ( rsk_partitions ) ,
. width = 2 ,
2008-11-28 22:56:45 +09:00
} ;
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 ,
} ,
} ;
2008-12-08 14:32:03 +09:00
static struct platform_device * rsk_devices [ ] __initdata = {
2008-11-28 22:56:45 +09:00
& flash_device ,
} ;
2008-12-08 14:32:03 +09:00
static int __init rsk_devices_setup ( void )
2008-11-28 22:56:45 +09:00
{
2012-06-27 00:50:07 +02:00
regulator_register_fixed ( 0 , dummy_supplies , ARRAY_SIZE ( dummy_supplies ) ) ;
2008-12-08 14:32:03 +09:00
return platform_add_devices ( rsk_devices ,
ARRAY_SIZE ( rsk_devices ) ) ;
2008-11-28 22:56:45 +09:00
}
2008-12-08 14:32:03 +09:00
device_initcall ( rsk_devices_setup ) ;
2008-11-28 22:56:45 +09:00
/*
* The Machine Vector
*/
2008-12-08 14:32:03 +09:00
static struct sh_machine_vector mv_rsk __initmv = {
. mv_name = " RSK+ " ,
2008-11-28 22:56:45 +09:00
} ;