Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 201408
b: refs/heads/master
c: 16bcf78
h: refs/heads/master
v: v3
  • Loading branch information
Hartley Sweeten authored and Russell King committed Jun 16, 2010
1 parent c53f26c commit 43da703
Show file tree
Hide file tree
Showing 9 changed files with 60 additions and 150 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 6ea4b7418dfd07dc76d20a3c3bf632ee7b59a2c4
refs/heads/master: 16bcf78f8cac9cc3057c6ce3800490cb6e684ce8
24 changes: 1 addition & 23 deletions trunk/arch/arm/mach-ep93xx/adssphere.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,43 +13,21 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/mtd/physmap.h>

#include <mach/hardware.h>

#include <asm/mach-types.h>
#include <asm/mach/arch.h>


static struct physmap_flash_data adssphere_flash_data = {
.width = 4,
};

static struct resource adssphere_flash_resource = {
.start = EP93XX_CS6_PHYS_BASE,
.end = EP93XX_CS6_PHYS_BASE + SZ_32M - 1,
.flags = IORESOURCE_MEM,
};

static struct platform_device adssphere_flash = {
.name = "physmap-flash",
.id = 0,
.dev = {
.platform_data = &adssphere_flash_data,
},
.num_resources = 1,
.resource = &adssphere_flash_resource,
};

static struct ep93xx_eth_data __initdata adssphere_eth_data = {
.phy_id = 1,
};

static void __init adssphere_init_machine(void)
{
ep93xx_init_devices();
platform_device_register(&adssphere_flash);

ep93xx_register_flash(4, EP93XX_CS6_PHYS_BASE, SZ_32M);
ep93xx_register_eth(&adssphere_eth_data, 1);
}

Expand Down
38 changes: 38 additions & 0 deletions trunk/arch/arm/mach-ep93xx/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
#include <linux/termios.h>
#include <linux/amba/bus.h>
#include <linux/amba/serial.h>
#include <linux/mtd/physmap.h>
#include <linux/i2c.h>
#include <linux/i2c-gpio.h>
#include <linux/spi/spi.h>
Expand Down Expand Up @@ -347,6 +348,43 @@ static struct platform_device ep93xx_ohci_device = {
};


/*************************************************************************
* EP93xx physmap'ed flash
*************************************************************************/
static struct physmap_flash_data ep93xx_flash_data;

static struct resource ep93xx_flash_resource = {
.flags = IORESOURCE_MEM,
};

static struct platform_device ep93xx_flash = {
.name = "physmap-flash",
.id = 0,
.dev = {
.platform_data = &ep93xx_flash_data,
},
.num_resources = 1,
.resource = &ep93xx_flash_resource,
};

/**
* ep93xx_register_flash() - Register the external flash device.
* @width: bank width in octets
* @start: resource start address
* @size: resource size
*/
void __init ep93xx_register_flash(unsigned int width,
resource_size_t start, resource_size_t size)
{
ep93xx_flash_data.width = width;

ep93xx_flash_resource.start = start;
ep93xx_flash_resource.end = start + size - 1;

platform_device_register(&ep93xx_flash);
}


/*************************************************************************
* EP93xx ethernet peripheral handling
*************************************************************************/
Expand Down
31 changes: 2 additions & 29 deletions trunk/arch/arm/mach-ep93xx/edb93xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/mtd/physmap.h>
#include <linux/gpio.h>
#include <linux/i2c.h>
#include <linux/i2c-gpio.h>
Expand All @@ -38,39 +37,13 @@
#include <asm/mach/arch.h>


static struct physmap_flash_data edb93xx_flash_data;

static struct resource edb93xx_flash_resource = {
.flags = IORESOURCE_MEM,
};

static struct platform_device edb93xx_flash = {
.name = "physmap-flash",
.id = 0,
.dev = {
.platform_data = &edb93xx_flash_data,
},
.num_resources = 1,
.resource = &edb93xx_flash_resource,
};

static void __init __edb93xx_register_flash(unsigned int width,
resource_size_t start, resource_size_t size)
{
edb93xx_flash_data.width = width;
edb93xx_flash_resource.start = start;
edb93xx_flash_resource.end = start + size - 1;

platform_device_register(&edb93xx_flash);
}

static void __init edb93xx_register_flash(void)
{
if (machine_is_edb9307() || machine_is_edb9312() ||
machine_is_edb9315()) {
__edb93xx_register_flash(4, EP93XX_CS6_PHYS_BASE, SZ_32M);
ep93xx_register_flash(4, EP93XX_CS6_PHYS_BASE, SZ_32M);
} else {
__edb93xx_register_flash(2, EP93XX_CS6_PHYS_BASE, SZ_16M);
ep93xx_register_flash(2, EP93XX_CS6_PHYS_BASE, SZ_16M);
}
}

Expand Down
24 changes: 1 addition & 23 deletions trunk/arch/arm/mach-ep93xx/gesbc9312.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,43 +13,21 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/mtd/physmap.h>

#include <mach/hardware.h>

#include <asm/mach-types.h>
#include <asm/mach/arch.h>


static struct physmap_flash_data gesbc9312_flash_data = {
.width = 4,
};

static struct resource gesbc9312_flash_resource = {
.start = EP93XX_CS6_PHYS_BASE,
.end = EP93XX_CS6_PHYS_BASE + SZ_8M - 1,
.flags = IORESOURCE_MEM,
};

static struct platform_device gesbc9312_flash = {
.name = "physmap-flash",
.id = 0,
.dev = {
.platform_data = &gesbc9312_flash_data,
},
.num_resources = 1,
.resource = &gesbc9312_flash_resource,
};

static struct ep93xx_eth_data __initdata gesbc9312_eth_data = {
.phy_id = 1,
};

static void __init gesbc9312_init_machine(void)
{
ep93xx_init_devices();
platform_device_register(&gesbc9312_flash);

ep93xx_register_flash(4, EP93XX_CS6_PHYS_BASE, SZ_8M);
ep93xx_register_eth(&gesbc9312_eth_data, 0);
}

Expand Down
3 changes: 3 additions & 0 deletions trunk/arch/arm/mach-ep93xx/include/mach/platform.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ static inline void ep93xx_devcfg_clear_bits(unsigned int bits)

unsigned int ep93xx_chip_revision(void);

void ep93xx_register_flash(unsigned int width,
resource_size_t start, resource_size_t size);

void ep93xx_register_eth(struct ep93xx_eth_data *data, int copy_addr);
void ep93xx_register_i2c(struct i2c_gpio_platform_data *data,
struct i2c_board_info *devices, int num);
Expand Down
37 changes: 9 additions & 28 deletions trunk/arch/arm/mach-ep93xx/micro9.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/mtd/physmap.h>
#include <linux/io.h>

#include <mach/hardware.h>
Expand All @@ -31,31 +30,6 @@
* Micro9-Lite uses a separate MTD map driver for flash support
* Micro9-Slim has up to 64MB of either 32-bit or 16-bit flash on CS1
*************************************************************************/
static struct physmap_flash_data micro9_flash_data;

static struct resource micro9_flash_resource = {
.start = EP93XX_CS1_PHYS_BASE,
.end = EP93XX_CS1_PHYS_BASE + SZ_64M - 1,
.flags = IORESOURCE_MEM,
};

static struct platform_device micro9_flash = {
.name = "physmap-flash",
.id = 0,
.dev = {
.platform_data = &micro9_flash_data,
},
.num_resources = 1,
.resource = &micro9_flash_resource,
};

static void __init __micro9_register_flash(unsigned int width)
{
micro9_flash_data.width = width;

platform_device_register(&micro9_flash);
}

static unsigned int __init micro9_detect_bootwidth(void)
{
u32 v;
Expand All @@ -70,10 +44,17 @@ static unsigned int __init micro9_detect_bootwidth(void)

static void __init micro9_register_flash(void)
{
unsigned int width;

if (machine_is_micro9())
__micro9_register_flash(4);
width = 4;
else if (machine_is_micro9m() || machine_is_micro9s())
__micro9_register_flash(micro9_detect_bootwidth());
width = micro9_detect_bootwidth();
else
width = 0;

if (width)
ep93xx_register_flash(width, EP93XX_CS1_PHYS_BASE, SZ_64M);
}


Expand Down
24 changes: 1 addition & 23 deletions trunk/arch/arm/mach-ep93xx/simone.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/mtd/physmap.h>
#include <linux/gpio.h>
#include <linux/i2c.h>
#include <linux/i2c-gpio.h>
Expand All @@ -29,26 +28,6 @@
#include <asm/mach-types.h>
#include <asm/mach/arch.h>

static struct physmap_flash_data simone_flash_data = {
.width = 2,
};

static struct resource simone_flash_resource = {
.start = EP93XX_CS6_PHYS_BASE,
.end = EP93XX_CS6_PHYS_BASE + SZ_8M - 1,
.flags = IORESOURCE_MEM,
};

static struct platform_device simone_flash = {
.name = "physmap-flash",
.id = 0,
.num_resources = 1,
.resource = &simone_flash_resource,
.dev = {
.platform_data = &simone_flash_data,
},
};

static struct ep93xx_eth_data __initdata simone_eth_data = {
.phy_id = 1,
};
Expand Down Expand Up @@ -77,8 +56,7 @@ static struct i2c_board_info __initdata simone_i2c_board_info[] = {
static void __init simone_init_machine(void)
{
ep93xx_init_devices();

platform_device_register(&simone_flash);
ep93xx_register_flash(2, EP93XX_CS6_PHYS_BASE, SZ_8M);
ep93xx_register_eth(&simone_eth_data, 1);
ep93xx_register_fb(&simone_fb_info);
ep93xx_register_i2c(&simone_i2c_gpio_data, simone_i2c_board_info,
Expand Down
27 changes: 4 additions & 23 deletions trunk/arch/arm/mach-ep93xx/ts72xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
#include <linux/platform_device.h>
#include <linux/io.h>
#include <linux/m48t86.h>
#include <linux/mtd/physmap.h>
#include <linux/mtd/nand.h>
#include <linux/mtd/partitions.h>

Expand Down Expand Up @@ -173,31 +172,13 @@ static struct platform_device ts72xx_nand_flash = {
};


/*************************************************************************
* NOR flash (TS-7200 only)
*************************************************************************/
static struct physmap_flash_data ts72xx_nor_data = {
.width = 2,
};

static struct resource ts72xx_nor_resource = {
.start = EP93XX_CS6_PHYS_BASE,
.end = EP93XX_CS6_PHYS_BASE + SZ_16M - 1,
.flags = IORESOURCE_MEM,
};

static struct platform_device ts72xx_nor_flash = {
.name = "physmap-flash",
.id = 0,
.dev.platform_data = &ts72xx_nor_data,
.resource = &ts72xx_nor_resource,
.num_resources = 1,
};

static void __init ts72xx_register_flash(void)
{
/*
* TS7200 has NOR flash all other TS72xx board have NAND flash.
*/
if (board_is_ts7200()) {
platform_device_register(&ts72xx_nor_flash);
ep93xx_register_flash(2, EP93XX_CS6_PHYS_BASE, SZ_16M);
} else {
resource_size_t start;

Expand Down

0 comments on commit 43da703

Please sign in to comment.