]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
mtd: cfi_flash: Make live-tree compatible
authorMario Six <mario.six@gdsys.cc>
Wed, 28 Mar 2018 12:38:41 +0000 (14:38 +0200)
committerStefan Roese <sr@denx.de>
Mon, 16 Apr 2018 07:55:59 +0000 (09:55 +0200)
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>
drivers/mtd/cfi_flash.c

index da44e6184e9c9fc496f49ec99977e1196cd5edf4..e5509fe35399a6d313447066a566ea7948528fc7 100644 (file)
@@ -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;