mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-24 08:22:48 +02:00
[adm5120] fix flash driver, it should work on RB150 as well
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@9418 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
72551879bd
commit
f9d0822cd1
@ -140,6 +140,7 @@ static unsigned char rb133c_vlans[6] __initdata = {
|
|||||||
static unsigned char rb15x_vlans[6] __initdata = {
|
static unsigned char rb15x_vlans[6] __initdata = {
|
||||||
/* FIXME: untested */
|
/* FIXME: untested */
|
||||||
0x41, 0x42, 0x44, 0x48, 0x50, 0x00
|
0x41, 0x42, 0x44, 0x48, 0x50, 0x00
|
||||||
|
};
|
||||||
|
|
||||||
static unsigned char rb192_vlans[6] __initdata = {
|
static unsigned char rb192_vlans[6] __initdata = {
|
||||||
/* FIXME: untested */
|
/* FIXME: untested */
|
||||||
@ -261,6 +262,8 @@ static void __init rb150_setup(void)
|
|||||||
adm5120_nand_data.ctrl.cmd_ctrl = rb150_nand_cmd_ctrl;
|
adm5120_nand_data.ctrl.cmd_ctrl = rb150_nand_cmd_ctrl;
|
||||||
adm5120_nand_data.ctrl.dev_ready = rb150_nand_ready;
|
adm5120_nand_data.ctrl.dev_ready = rb150_nand_ready;
|
||||||
|
|
||||||
|
adm5120_flash0_data.window_size = 512*1024;
|
||||||
|
|
||||||
rb1xx_flash_setup();
|
rb1xx_flash_setup();
|
||||||
rb1xx_mac_setup();
|
rb1xx_mac_setup();
|
||||||
}
|
}
|
||||||
|
@ -244,7 +244,7 @@ static int adm5120_flash_initinfo(struct adm5120_flash_info *info,
|
|||||||
struct map_info *map = &info->amap.map;
|
struct map_info *map = &info->amap.map;
|
||||||
struct adm5120_flash_platform_data *pdata = dev->dev.platform_data;
|
struct adm5120_flash_platform_data *pdata = dev->dev.platform_data;
|
||||||
struct flash_desc *fdesc;
|
struct flash_desc *fdesc;
|
||||||
u32 t;
|
u32 t = 0;
|
||||||
|
|
||||||
map->name = dev->dev.bus_id;
|
map->name = dev->dev.bus_id;
|
||||||
|
|
||||||
@ -255,12 +255,18 @@ static int adm5120_flash_initinfo(struct adm5120_flash_info *info,
|
|||||||
|
|
||||||
fdesc = &flash_descs[dev->id];
|
fdesc = &flash_descs[dev->id];
|
||||||
|
|
||||||
|
if (pdata)
|
||||||
|
info->amap.window_size = pdata->window_size;
|
||||||
|
|
||||||
|
if (info->amap.window_size == 0) {
|
||||||
/* get memory window size */
|
/* get memory window size */
|
||||||
t = SW_READ_REG(MEMCTRL) >> fdesc->srs_shift;
|
t = SW_READ_REG(MEMCTRL) >> fdesc->srs_shift;
|
||||||
t &= MEMCTRL_SRS_MASK;
|
t &= MEMCTRL_SRS_MASK;
|
||||||
info->amap.window_size = flash_sizes[t];
|
info->amap.window_size = flash_sizes[t];
|
||||||
|
}
|
||||||
|
|
||||||
if (info->amap.window_size == 0) {
|
if (info->amap.window_size == 0) {
|
||||||
MAP_ERR(map, "invalid flash size detected\n");
|
MAP_ERR(map, "unable to determine window size\n");
|
||||||
goto err_out;
|
goto err_out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
struct adm5120_flash_platform_data {
|
struct adm5120_flash_platform_data {
|
||||||
void (*set_vpp)(struct map_info *, int);
|
void (*set_vpp)(struct map_info *, int);
|
||||||
void (*switch_bank)(unsigned);
|
void (*switch_bank)(unsigned);
|
||||||
|
u32 window_size;
|
||||||
#ifdef CONFIG_MTD_PARTITIONS
|
#ifdef CONFIG_MTD_PARTITIONS
|
||||||
unsigned int nr_parts;
|
unsigned int nr_parts;
|
||||||
struct mtd_partition *parts;
|
struct mtd_partition *parts;
|
||||||
|
Loading…
Reference in New Issue
Block a user