diff options
author | Tom Rini <trini@konsulko.com> | 2017-03-23 12:19:07 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2017-03-23 12:19:07 -0400 |
commit | d0ffda8ed208ff2957cd09ccc37e2d6dff81523e (patch) | |
tree | 25977d0f0a3879b5a145c642748dce7e54b3e8b4 /drivers/core/regmap.c | |
parent | 5877d8f398de26617be6f1f57bc30c49e9f90ebb (diff) | |
parent | 55bc080e799ac18802a791bd5ce5d83a136da6e3 (diff) |
Merge git://git.denx.de/u-boot-dm
Diffstat (limited to 'drivers/core/regmap.c')
-rw-r--r-- | drivers/core/regmap.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/core/regmap.c b/drivers/core/regmap.c index 833cd78e848..3bec3df9b6e 100644 --- a/drivers/core/regmap.c +++ b/drivers/core/regmap.c @@ -70,6 +70,7 @@ int regmap_init_mem(struct udevice *dev, struct regmap **mapp) int addr_len, size_len, both_len; int parent; int len; + int index; parent = dev_of_offset(dev->parent); addr_len = fdt_address_cells(blob, parent); @@ -86,13 +87,14 @@ int regmap_init_mem(struct udevice *dev, struct regmap **mapp) if (!map) return -ENOMEM; - map->base = fdtdec_get_number(cell, addr_len); - - for (range = map->range; count > 0; - count--, cell += both_len, range++) { - range->start = fdtdec_get_number(cell, addr_len); - range->size = fdtdec_get_number(cell + addr_len, size_len); + for (range = map->range, index = 0; count > 0; + count--, cell += both_len, range++, index++) { + fdt_size_t sz; + range->start = fdtdec_get_addr_size_fixed(blob, dev->of_offset, + "reg", index, addr_len, size_len, &sz, true); + range->size = sz; } + map->base = map->range[0].start; *mapp = map; |