clk: renesas: Switch to fdtdec_get_addr_size_auto_noparent() on Gen2
authorMarek Vasut <marek.vasut+renesas@gmail.com>
Sat, 21 Mar 2020 15:45:29 +0000 (16:45 +0100)
committermarex <marex@desktop.lan>
Mon, 30 Mar 2020 01:49:23 +0000 (03:49 +0200)
The fdtdec_get_addr() does not take into account values set in #address-cells
and #size-cells , but assumes them to be 1 for 32bit systems and 2 for 64bit
systems. This is true for most DTs, however there are exceptions. Switch to
fdtdec_get_addr_size_auto_noparent(), which takes the #address/size-cells
values into consideration, otherwise the reset controller node register
offset is incorrectly parsed.

Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
drivers/clk/renesas/clk-rcar-gen2.c

index 13111b341af50ee2206d39f11d52ca66c51de0e0..bfd7620dae1f52f40d359e00d849e78336824c6f 100644 (file)
@@ -291,7 +291,8 @@ int gen2_clk_probe(struct udevice *dev)
        if (ret < 0)
                return ret;
 
-       rst_base = fdtdec_get_addr(gd->fdt_blob, ret, "reg");
+       rst_base = fdtdec_get_addr_size_auto_noparent(gd->fdt_blob, ret, "reg",
+                                                     0, NULL, false);
        if (rst_base == FDT_ADDR_T_NONE)
                return -EINVAL;