提交 8bfeb33c 编写于 作者: M Mario Six 提交者: Stefan Roese

mtd: cfi_flash: Make live-tree compatible

Make the cfi_flash driver compatible with a live device tree.
Signed-off-by: NMario Six <mario.six@gdsys.cc>
Signed-off-by: NStefan Roese <sr@denx.de>
上级 ebca902a
......@@ -2461,27 +2461,28 @@ unsigned long flash_init(void)
#ifdef CONFIG_CFI_FLASH /* for driver model */
static int cfi_flash_probe(struct udevice *dev)
{
void *blob = (void *)gd->fdt_blob;
int node = dev_of_offset(dev);
const fdt32_t *cell;
phys_addr_t addr;
int parent, addrc, sizec;
int addrc, sizec;
int len, idx;
parent = fdt_parent_offset(blob, node);
fdt_support_default_count_cells(blob, parent, &addrc, &sizec);
/* decode regs, there may be multiple reg tuples. */
cell = fdt_getprop(blob, node, "reg", &len);
addrc = dev_read_addr_cells(dev);
sizec = dev_read_size_cells(dev);
/* decode regs; there may be multiple reg tuples. */
cell = dev_read_prop(dev, "reg", &len);
if (!cell)
return -ENOENT;
idx = 0;
len /= sizeof(fdt32_t);
while (idx < len) {
addr = fdt_translate_address((void *)blob,
node, cell + idx);
phys_addr_t addr;
addr = dev_translate_address(dev, cell + idx);
flash_info[cfi_flash_num_flash_banks].dev = dev;
flash_info[cfi_flash_num_flash_banks].base = addr;
cfi_flash_num_flash_banks++;
idx += addrc + sizec;
}
gd->bd->bi_flashstart = flash_info[0].base;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册