From 45c78162f30b32e6dc9be5c59ea508e7a589b526 Mon Sep 17 00:00:00 2001 From: Andy Yan Date: Tue, 22 May 2018 20:16:10 +0800 Subject: [PATCH] dm: regmap: use devfdt_get_addr_size_index get reg fdtdec_get_addr_size() hard-codes the number of cells used to represent an address or size in DT. This is incorrect in many cases depending on the DT binding for a particular node or property (e.g. it is incorrect for the "reg" property). In most cases, DT parsing code must use the properties #address-cells and #size-cells to parse addres properties. Change-Id: I736cf41f48eaac5d6b82510a037f447ff874a9e4 Signed-off-by: Andy Yan --- drivers/core/regmap.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/core/regmap.c b/drivers/core/regmap.c index 0f1d30820c..1f9d8b4a3e 100644 --- a/drivers/core/regmap.c +++ b/drivers/core/regmap.c @@ -96,9 +96,7 @@ int regmap_init_mem(struct udevice *dev, struct regmap **mapp) range->start = r.start; range->size = r.end - r.start + 1; } else { - range->start = fdtdec_get_addr_size_fixed(gd->fdt_blob, - dev_of_offset(dev), "reg", index, - addr_len, size_len, &sz, true); + range->start = devfdt_get_addr_size_index(dev, index, &sz); range->size = sz; } }