Commit d35812368a590ebe1a5c92199a1a57ce3e80722e

Authored by Masahiro Yamada
Committed by Tom Rini
1 parent 5ccc2c2130

regmap: change regmap_init_mem() to take ofnode instead udevice

Currently, regmap_init_mem() takes a udevice. This requires the node
has already been associated with a device. It prevents syscon/regmap
from behaving like those in Linux.

Change the first argumenet to take a device node.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Neil Armstrong <narmstrong@baylibre.com>
Reviewed-by: Simon Glass <sjg@chromium.org>

Showing 13 changed files with 18 additions and 19 deletions Side-by-side Diff

arch/arm/mach-aspeed/ast2500/sdram_ast2500.c
... ... @@ -391,7 +391,7 @@
391 391 struct regmap *map;
392 392 int ret;
393 393  
394   - ret = regmap_init_mem(dev, &map);
  394 + ret = regmap_init_mem(dev_ofnode(dev), &map);
395 395 if (ret)
396 396 return ret;
397 397  
drivers/core/regmap.c
... ... @@ -50,7 +50,7 @@
50 50 return 0;
51 51 }
52 52 #else
53   -int regmap_init_mem(struct udevice *dev, struct regmap **mapp)
  53 +int regmap_init_mem(ofnode node, struct regmap **mapp)
54 54 {
55 55 struct regmap_range *range;
56 56 struct regmap *map;
57 57  
58 58  
... ... @@ -58,14 +58,13 @@
58 58 int addr_len, size_len, both_len;
59 59 int len;
60 60 int index;
61   - ofnode node = dev_ofnode(dev);
62 61 struct resource r;
63 62  
64   - addr_len = dev_read_simple_addr_cells(dev->parent);
65   - size_len = dev_read_simple_size_cells(dev->parent);
  63 + addr_len = ofnode_read_simple_addr_cells(ofnode_get_parent(node));
  64 + size_len = ofnode_read_simple_size_cells(ofnode_get_parent(node));
66 65 both_len = addr_len + size_len;
67 66  
68   - len = dev_read_size(dev, "reg");
  67 + len = ofnode_read_size(node, "reg");
69 68 if (len < 0)
70 69 return len;
71 70 len /= sizeof(fdt32_t);
... ... @@ -86,7 +85,7 @@
86 85 range->size = r.end - r.start + 1;
87 86 } else {
88 87 range->start = fdtdec_get_addr_size_fixed(gd->fdt_blob,
89   - dev_of_offset(dev), "reg", index,
  88 + ofnode_to_offset(node), "reg", index,
90 89 addr_len, size_len, &sz, true);
91 90 range->size = sz;
92 91 }
drivers/core/syscon-uclass.c
... ... @@ -40,7 +40,7 @@
40 40 return regmap_init_mem_platdata(dev, plat->reg, ARRAY_SIZE(plat->reg),
41 41 &priv->regmap);
42 42 #else
43   - return regmap_init_mem(dev, &priv->regmap);
  43 + return regmap_init_mem(dev_ofnode(dev), &priv->regmap);
44 44 #endif
45 45 }
46 46  
drivers/phy/meson-gxl-usb2.c
... ... @@ -192,7 +192,7 @@
192 192 struct phy_meson_gxl_usb2_priv *priv = dev_get_priv(dev);
193 193 int ret;
194 194  
195   - ret = regmap_init_mem(dev, &priv->regmap);
  195 + ret = regmap_init_mem(dev_ofnode(dev), &priv->regmap);
196 196 if (ret)
197 197 return ret;
198 198  
drivers/phy/meson-gxl-usb3.c
... ... @@ -163,7 +163,7 @@
163 163 struct phy_meson_gxl_usb3_priv *priv = dev_get_priv(dev);
164 164 int ret;
165 165  
166   - ret = regmap_init_mem(dev, &priv->regmap);
  166 + ret = regmap_init_mem(dev_ofnode(dev), &priv->regmap);
167 167 if (ret)
168 168 return ret;
169 169  
drivers/ram/rockchip/dmc-rk3368.c
... ... @@ -877,7 +877,7 @@
877 877 #if !CONFIG_IS_ENABLED(OF_PLATDATA)
878 878 struct rk3368_sdram_params *plat = dev_get_platdata(dev);
879 879  
880   - ret = regmap_init_mem(dev, &plat->map);
  880 + ret = regmap_init_mem(dev_ofnode(dev), &plat->map);
881 881 if (ret)
882 882 return ret;
883 883 #endif
drivers/ram/rockchip/sdram_rk3188.c
... ... @@ -839,7 +839,7 @@
839 839 printf("%s: Cannot read rockchip,sdram-params\n", __func__);
840 840 return -EINVAL;
841 841 }
842   - ret = regmap_init_mem(dev, &params->map);
  842 + ret = regmap_init_mem(dev_ofnode(dev), &params->map);
843 843 if (ret)
844 844 return ret;
845 845 #endif
drivers/ram/rockchip/sdram_rk322x.c
... ... @@ -743,7 +743,7 @@
743 743 printf("%s: Cannot read rockchip,sdram-params\n", __func__);
744 744 return -EINVAL;
745 745 }
746   - ret = regmap_init_mem(dev, &params->map);
  746 + ret = regmap_init_mem(dev_ofnode(dev), &params->map);
747 747 if (ret)
748 748 return ret;
749 749 #endif
drivers/ram/rockchip/sdram_rk3288.c
... ... @@ -1000,7 +1000,7 @@
1000 1000  
1001 1001 priv->is_veyron = !fdt_node_check_compatible(blob, 0, "google,veyron");
1002 1002 #endif
1003   - ret = regmap_init_mem(dev, &params->map);
  1003 + ret = regmap_init_mem(dev_ofnode(dev), &params->map);
1004 1004 if (ret)
1005 1005 return ret;
1006 1006 #endif
drivers/ram/rockchip/sdram_rk3399.c
... ... @@ -1098,7 +1098,7 @@
1098 1098 __func__, ret);
1099 1099 return ret;
1100 1100 }
1101   - ret = regmap_init_mem(dev, &plat->map);
  1101 + ret = regmap_init_mem(dev_ofnode(dev), &plat->map);
1102 1102 if (ret)
1103 1103 printf("%s: regmap failed %d\n", __func__, ret);
1104 1104  
drivers/ram/stm32mp1/stm32mp1_ram.c
... ... @@ -146,7 +146,7 @@
146 146 debug("STM32MP1 DDR probe\n");
147 147 priv->dev = dev;
148 148  
149   - ret = regmap_init_mem(dev, &map);
  149 + ret = regmap_init_mem(dev_ofnode(dev), &map);
150 150 if (ret)
151 151 return ret;
152 152  
drivers/reset/reset-meson.c
... ... @@ -76,7 +76,7 @@
76 76 {
77 77 struct meson_reset_priv *priv = dev_get_priv(dev);
78 78  
79   - return regmap_init_mem(dev, &priv->regmap);
  79 + return regmap_init_mem(dev_ofnode(dev), &priv->regmap);
80 80 }
81 81  
82 82 U_BOOT_DRIVER(meson_reset) = {
... ... @@ -47,10 +47,10 @@
47 47 *
48 48 * Use regmap_uninit() to free it.
49 49 *
50   - * @dev: Device that uses this map
  50 + * @node: Device node that uses this map
51 51 * @mapp: Returns allocated map
52 52 */
53   -int regmap_init_mem(struct udevice *dev, struct regmap **mapp);
  53 +int regmap_init_mem(ofnode node, struct regmap **mapp);
54 54  
55 55 /**
56 56 * regmap_init_mem_platdata() - Set up a new memory register map for of-platdata