fdt: allow fdtdec_get_addr_size_*() to translate addresses

Some code may want to read reg values from DT, but from nodes that aren't
associated with DM devices, so using dev_get_addr_index() isn't
appropriate. In this case, fdtdec_get_addr_size_*() are the functions to
use. However, "translation" (via the chain of ranges properties in parent
nodes) may still be desirable. Add a function parameter to request that,
and implement it. Update all call sites to default to the original
behaviour.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Squashed in build fix from Stephen:
Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Stephen Warren
2016-08-05 09:47:51 -06:00
committed by Simon Glass
parent 11e44fc6bd
commit 6e06acb732
8 changed files with 36 additions and 17 deletions

View File

@@ -1146,7 +1146,8 @@ static const struct eth_ops cpsw_eth_ops = {
static inline fdt_addr_t cpsw_get_addr_by_node(const void *fdt, int node)
{
return fdtdec_get_addr_size_auto_noparent(fdt, node, "reg", 0, NULL);
return fdtdec_get_addr_size_auto_noparent(fdt, node, "reg", 0, NULL,
false);
}
static int cpsw_eth_ofdata_to_platdata(struct udevice *dev)