mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
mtd: cfi_flash: Make live-tree compatible
Make the cfi_flash driver compatible with a live device tree. Signed-off-by: Mario Six <mario.six@gdsys.cc> Signed-off-by: Stefan Roese <sr@denx.de>
This commit is contained in:
parent
ebca902aeb
commit
8bfeb33c46
1 changed files with 11 additions and 10 deletions
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue