diff options
Diffstat (limited to 'arch/blackfin/mach-bf533/boards/ezkit.c')
| -rw-r--r-- | arch/blackfin/mach-bf533/boards/ezkit.c | 115 | 
1 files changed, 113 insertions, 2 deletions
diff --git a/arch/blackfin/mach-bf533/boards/ezkit.c b/arch/blackfin/mach-bf533/boards/ezkit.c index 08cd0969de4..4e3e511bf14 100644 --- a/arch/blackfin/mach-bf533/boards/ezkit.c +++ b/arch/blackfin/mach-bf533/boards/ezkit.c @@ -32,6 +32,7 @@  #include <linux/platform_device.h>  #include <linux/mtd/mtd.h>  #include <linux/mtd/partitions.h> +#include <linux/mtd/plat-ram.h>  #include <linux/spi/spi.h>  #include <linux/spi/flash.h>  #if defined(CONFIG_USB_ISP1362_HCD) || defined(CONFIG_USB_ISP1362_HCD_MODULE) @@ -86,6 +87,101 @@ static struct platform_device smc91x_device = {  };  #endif +#if defined(CONFIG_MTD_PSD4256G) || defined(CONFIG_MTD_PSD4256G_MODULE) +static const char *map_probes[] = { +	"stm_flash", +	NULL, +}; + +static struct platdata_mtd_ram stm_pri_data_a = { +	.mapname    = "Flash A Primary", +	.map_probes = map_probes, +	.bankwidth  = 2, +}; + +static struct resource stm_pri_resource_a = { +	.start = 0x20000000, +	.end   = 0x200fffff, +	.flags = IORESOURCE_MEM, +}; + +static struct platform_device stm_pri_device_a = { +	.name          = "mtd-ram", +	.id            = 0, +	.dev = { +		.platform_data = &stm_pri_data_a, +	}, +	.num_resources = 1, +	.resource      = &stm_pri_resource_a, +}; + +static struct platdata_mtd_ram stm_pri_data_b = { +	.mapname    = "Flash B Primary", +	.map_probes = map_probes, +	.bankwidth  = 2, +}; + +static struct resource stm_pri_resource_b = { +	.start = 0x20100000, +	.end   = 0x201fffff, +	.flags = IORESOURCE_MEM, +}; + +static struct platform_device stm_pri_device_b = { +	.name          = "mtd-ram", +	.id            = 4, +	.dev = { +		.platform_data = &stm_pri_data_b, +	}, +	.num_resources = 1, +	.resource      = &stm_pri_resource_b, +}; +#endif + +#if defined(CONFIG_MTD_PLATRAM) || defined(CONFIG_MTD_PLATRAM_MODULE) +static struct platdata_mtd_ram sram_data_a = { +	.mapname   = "Flash A SRAM", +	.bankwidth = 2, +}; + +static struct resource sram_resource_a = { +	.start = 0x20240000, +	.end   = 0x2024ffff, +	.flags = IORESOURCE_MEM, +}; + +static struct platform_device sram_device_a = { +	.name          = "mtd-ram", +	.id            = 8, +	.dev = { +		.platform_data = &sram_data_a, +	}, +	.num_resources = 1, +	.resource      = &sram_resource_a, +}; + +static struct platdata_mtd_ram sram_data_b = { +	.mapname   = "Flash B SRAM", +	.bankwidth = 2, +}; + +static struct resource sram_resource_b = { +	.start = 0x202c0000, +	.end   = 0x202cffff, +	.flags = IORESOURCE_MEM, +}; + +static struct platform_device sram_device_b = { +	.name          = "mtd-ram", +	.id            = 9, +	.dev = { +		.platform_data = &sram_data_b, +	}, +	.num_resources = 1, +	.resource      = &sram_resource_b, +}; +#endif +  #if defined(CONFIG_MTD_M25P80) || defined(CONFIG_MTD_M25P80_MODULE)  static struct mtd_partition bfin_spi_flash_partitions[] = {  	{ @@ -118,7 +214,7 @@ static struct bfin5xx_spi_chip spi_flash_chip_info = {  };  #endif -#if defined(CONFIG_SPI_ADC_BF533) || defined(CONFIG_SPI_ADC_BF533_MODULE) +#if defined(CONFIG_BFIN_SPI_ADC) || defined(CONFIG_BFIN_SPI_ADC_MODULE)  /* SPI ADC chip */  static struct bfin5xx_spi_chip spi_adc_chip_info = {  	.enable_dma = 1,         /* use dma transfer with this chip*/ @@ -154,7 +250,7 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {  	},  #endif -#if defined(CONFIG_SPI_ADC_BF533) || defined(CONFIG_SPI_ADC_BF533_MODULE) +#if defined(CONFIG_BFIN_SPI_ADC) || defined(CONFIG_BFIN_SPI_ADC_MODULE)  	{  		.modalias = "bfin_spi_adc", /* Name of spi_driver for this device */  		.max_speed_hz = 6250000,     /* max spi clock (SCK) speed in HZ */ @@ -196,6 +292,11 @@ static struct resource bfin_spi0_resource[] = {  	[1] = {  		.start = CH_SPI,  		.end   = CH_SPI, +		.flags = IORESOURCE_DMA, +	}, +	[2] = { +		.start = IRQ_SPI, +		.end   = IRQ_SPI,  		.flags = IORESOURCE_IRQ,  	}  }; @@ -352,6 +453,16 @@ static struct platform_device *ezkit_devices[] __initdata = {  	&bfin_dpmc, +#if defined(CONFIG_MTD_PSD4256G) || defined(CONFIG_MTD_PSD4256G_MODULE) +	&stm_pri_device_a, +	&stm_pri_device_b, +#endif + +#if defined(CONFIG_MTD_PLATRAM) || defined(CONFIG_MTD_PLATRAM_MODULE) +	&sram_device_a, +	&sram_device_b, +#endif +  #if defined(CONFIG_SMC91X) || defined(CONFIG_SMC91X_MODULE)  	&smc91x_device,  #endif  |