dm: core: Replace of_offset with accessor (part 2)
At present devices use a simple integer offset to record the device tree node associated with the device. In preparation for supporting a live device tree, which uses a node pointer instead, refactor existing code to access this field through an inline function. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
a771a04f2e
commit
da409ccc4a
@ -852,7 +852,7 @@ static int rk3188_dmc_ofdata_to_platdata(struct udevice *dev)
|
||||
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
|
||||
struct rk3188_sdram_params *params = dev_get_platdata(dev);
|
||||
const void *blob = gd->fdt_blob;
|
||||
int node = dev->of_offset;
|
||||
int node = dev_of_offset(dev);
|
||||
int ret;
|
||||
|
||||
/* rk3188 supports only one-channel */
|
||||
|
@ -1128,7 +1128,7 @@ static int rk3399_dmc_ofdata_to_platdata(struct udevice *dev)
|
||||
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
|
||||
struct rockchip_dmc_plat *plat = dev_get_platdata(dev);
|
||||
const void *blob = gd->fdt_blob;
|
||||
int node = dev->of_offset;
|
||||
int node = dev_of_offset(dev);
|
||||
int ret;
|
||||
|
||||
ret = fdtdec_get_int_array(blob, node, "rockchip,sdram-params",
|
||||
|
@ -31,9 +31,9 @@ static int dwc_ahci_ofdata_to_platdata(struct udevice *dev)
|
||||
struct scsi_platdata *plat = dev_get_platdata(dev);
|
||||
fdt_addr_t addr;
|
||||
|
||||
plat->max_id = fdtdec_get_uint(gd->fdt_blob, dev->of_offset, "max-id",
|
||||
CONFIG_SYS_SCSI_MAX_SCSI_ID);
|
||||
plat->max_lun = fdtdec_get_uint(gd->fdt_blob, dev->of_offset,
|
||||
plat->max_id = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev),
|
||||
"max-id", CONFIG_SYS_SCSI_MAX_SCSI_ID);
|
||||
plat->max_lun = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev),
|
||||
"max-lun", CONFIG_SYS_SCSI_MAX_LUN);
|
||||
|
||||
priv->base = map_physmem(devfdt_get_addr(dev), sizeof(void *),
|
||||
|
@ -466,7 +466,7 @@ static int zynq_clk_probe(struct udevice *dev)
|
||||
}
|
||||
#endif
|
||||
|
||||
priv->ps_clk_freq = fdtdec_get_uint(gd->fdt_blob, dev->of_offset,
|
||||
priv->ps_clk_freq = fdtdec_get_uint(gd->fdt_blob, dev_of_offset(dev),
|
||||
"ps-clk-frequency", 33333333UL);
|
||||
|
||||
return 0;
|
||||
|
@ -90,8 +90,9 @@ int regmap_init_mem(struct udevice *dev, struct regmap **mapp)
|
||||
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->start = fdtdec_get_addr_size_fixed(blob,
|
||||
dev_of_offset(dev), "reg", index, addr_len,
|
||||
size_len, &sz, true);
|
||||
range->size = sz;
|
||||
}
|
||||
map->base = map->range[0].start;
|
||||
|
@ -59,8 +59,8 @@ static int psci_probe(struct udevice *dev)
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
const char *method;
|
||||
|
||||
method = fdt_stringlist_get(gd->fdt_blob, dev->of_offset, "method", 0,
|
||||
NULL);
|
||||
method = fdt_stringlist_get(gd->fdt_blob, dev_of_offset(dev), "method",
|
||||
0, NULL);
|
||||
if (!method) {
|
||||
printf("missing \"method\" property\n");
|
||||
return -ENXIO;
|
||||
|
@ -129,7 +129,7 @@ static int ich6_gpio_probe(struct udevice *dev)
|
||||
bank->io_sel = plat->base_addr + 4;
|
||||
bank->lvl = plat->base_addr + 8;
|
||||
|
||||
prop = fdt_getprop(gd->fdt_blob, dev->of_offset,
|
||||
prop = fdt_getprop(gd->fdt_blob, dev_of_offset(dev),
|
||||
"use-lvl-write-cache", NULL);
|
||||
if (prop)
|
||||
bank->use_lvl_write_cache = true;
|
||||
|
@ -198,7 +198,7 @@ int mmc_bind(struct udevice *dev, struct mmc *mmc, const struct mmc_config *cfg)
|
||||
|
||||
#ifndef CONFIG_SPL_BUILD
|
||||
/* Use the fixed index with aliase node's index */
|
||||
fdtdec_get_alias_seq(gd->fdt_blob, "mmc", dev->of_offset, &devnum);
|
||||
fdtdec_get_alias_seq(gd->fdt_blob, "mmc", dev_of_offset(dev), &devnum);
|
||||
#endif
|
||||
|
||||
ret = blk_create_devicef(dev, "mmc_blk", "blk", IF_TYPE_MMC,
|
||||
|
@ -139,7 +139,7 @@ static int sdhci_cdns_probe(struct udevice *dev)
|
||||
host->ioaddr = plat->hrs_addr + SDHCI_CDNS_SRS_BASE;
|
||||
host->quirks |= SDHCI_QUIRK_WAIT_SEND_CMD;
|
||||
|
||||
ret = sdhci_cdns_phy_init(plat, gd->fdt_blob, dev->of_offset);
|
||||
ret = sdhci_cdns_phy_init(plat, gd->fdt_blob, dev_of_offset(dev));
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
@ -83,7 +83,7 @@ static int arasan_sdhci_ofdata_to_platdata(struct udevice *dev)
|
||||
host->name = dev->name;
|
||||
host->ioaddr = (void *)devfdt_get_addr(dev);
|
||||
|
||||
plat->f_max = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
|
||||
plat->f_max = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev),
|
||||
"max-frequency", CONFIG_ZYNQ_SDHCI_MAX_FREQ);
|
||||
|
||||
return 0;
|
||||
|
@ -860,7 +860,7 @@ struct phy_device *phy_connect(struct mii_dev *bus, int addr,
|
||||
#ifdef CONFIG_PHY_FIXED
|
||||
int sn;
|
||||
const char *name;
|
||||
sn = fdt_first_subnode(gd->fdt_blob, dev->of_offset);
|
||||
sn = fdt_first_subnode(gd->fdt_blob, dev_of_offset(dev));
|
||||
while (sn > 0) {
|
||||
name = fdt_get_name(gd->fdt_blob, sn, NULL);
|
||||
if (name != NULL && strcmp(name, "fixed-link") == 0) {
|
||||
|
@ -174,7 +174,7 @@ static int dp83867_of_init(struct phy_device *phydev)
|
||||
{
|
||||
struct dp83867_private *dp83867 = phydev->priv;
|
||||
struct udevice *dev = phydev->dev;
|
||||
int node = dev->of_offset;
|
||||
int node = dev_of_offset(dev);
|
||||
const void *fdt = gd->fdt_blob;
|
||||
|
||||
if (fdtdec_get_bool(fdt, node, "ti,max-output-impedance"))
|
||||
|
@ -820,7 +820,7 @@ static int sun8i_emac_eth_ofdata_to_platdata(struct udevice *dev)
|
||||
parse_phy_pins(dev);
|
||||
|
||||
#ifdef CONFIG_DM_GPIO
|
||||
if (fdtdec_get_bool(gd->fdt_blob, dev->of_offset,
|
||||
if (fdtdec_get_bool(gd->fdt_blob, dev_of_offset(dev),
|
||||
"snps,reset-active-low"))
|
||||
reset_flags |= GPIOD_ACTIVE_LOW;
|
||||
|
||||
@ -828,7 +828,7 @@ static int sun8i_emac_eth_ofdata_to_platdata(struct udevice *dev)
|
||||
&priv->reset_gpio, reset_flags);
|
||||
|
||||
if (ret == 0) {
|
||||
ret = fdtdec_get_int_array(gd->fdt_blob, dev->of_offset,
|
||||
ret = fdtdec_get_int_array(gd->fdt_blob, dev_of_offset(dev),
|
||||
"snps,reset-delays-us",
|
||||
sun8i_pdata->reset_delays, 3);
|
||||
} else if (ret == -ENOENT) {
|
||||
|
@ -296,7 +296,7 @@ static void *get_reg(struct udevice *dev, const char *name)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
cell = fdt_getprop(gd->fdt_blob, dev->of_offset, name,
|
||||
cell = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), name,
|
||||
&len);
|
||||
if (len < 2*sizeof(fdt32_t)) {
|
||||
error("offset not available for %s\n", name);
|
||||
|
@ -364,7 +364,7 @@ static int at91_pinctrl_set_state(struct udevice *dev, struct udevice *config)
|
||||
{
|
||||
struct at91_pinctrl_priv *priv = dev_get_priv(dev);
|
||||
const void *blob = gd->fdt_blob;
|
||||
int node = config->of_offset;
|
||||
int node = dev_of_offset(config);
|
||||
u32 cells[MAX_PINMUX_ENTRIES];
|
||||
const u32 *list = cells;
|
||||
u32 bank, pin;
|
||||
|
@ -79,7 +79,8 @@ static int single_set_state(struct udevice *dev,
|
||||
const struct single_fdt_pin_cfg *prop;
|
||||
int len;
|
||||
|
||||
prop = fdt_getprop(fdt, config->of_offset, "pinctrl-single,pins", &len);
|
||||
prop = fdt_getprop(fdt, dev_of_offset(config), "pinctrl-single,pins",
|
||||
&len);
|
||||
if (prop) {
|
||||
dev_dbg(dev, "configuring pins for %s\n", config->name);
|
||||
if (len % sizeof(struct single_fdt_pin_cfg)) {
|
||||
@ -100,10 +101,10 @@ static int single_ofdata_to_platdata(struct udevice *dev)
|
||||
int res;
|
||||
struct single_pdata *pdata = dev->platdata;
|
||||
|
||||
pdata->width = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
|
||||
pdata->width = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev),
|
||||
"pinctrl-single,register-width", 0);
|
||||
|
||||
res = fdtdec_get_int_array(gd->fdt_blob, dev->of_offset,
|
||||
res = fdtdec_get_int_array(gd->fdt_blob, dev_of_offset(dev),
|
||||
"reg", of_reg, 2);
|
||||
if (res)
|
||||
return res;
|
||||
@ -116,7 +117,7 @@ static int single_ofdata_to_platdata(struct udevice *dev)
|
||||
}
|
||||
pdata->base = addr;
|
||||
|
||||
pdata->mask = fdtdec_get_int(gd->fdt_blob, dev->of_offset,
|
||||
pdata->mask = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev),
|
||||
"pinctrl-single,function-mask",
|
||||
0xffffffff);
|
||||
return 0;
|
||||
|
@ -101,7 +101,7 @@ static int stm32_pinctrl_set_state_simple(struct udevice *dev,
|
||||
int rv, len;
|
||||
|
||||
/* Get node pinctrl-0 */
|
||||
rv = fdtdec_parse_phandle_with_args(gd->fdt_blob, periph->of_offset,
|
||||
rv = fdtdec_parse_phandle_with_args(gd->fdt_blob, dev_of_offset(periph),
|
||||
"pinctrl-0", 0, 0, 0, &args);
|
||||
if (rv)
|
||||
return rv;
|
||||
|
@ -370,7 +370,7 @@ static int rk3188_pinctrl_get_periph_id(struct udevice *dev,
|
||||
u32 cell[3];
|
||||
int ret;
|
||||
|
||||
ret = fdtdec_get_int_array(gd->fdt_blob, periph->of_offset,
|
||||
ret = fdtdec_get_int_array(gd->fdt_blob, dev_of_offset(periph),
|
||||
"interrupts", cell, ARRAY_SIZE(cell));
|
||||
if (ret < 0)
|
||||
return -EINVAL;
|
||||
@ -516,7 +516,7 @@ static int rk3188_pinctrl_set_state(struct udevice *dev, struct udevice *config)
|
||||
u32 cell[60], *ptr;
|
||||
|
||||
debug("%s: %s %s\n", __func__, dev->name, config->name);
|
||||
ret = fdtdec_get_int_array_count(blob, config->of_offset,
|
||||
ret = fdtdec_get_int_array_count(blob, dev_of_offset(config),
|
||||
"rockchip,pins", cell,
|
||||
ARRAY_SIZE(cell));
|
||||
if (ret < 0) {
|
||||
|
@ -347,7 +347,7 @@ static int rk3328_pinctrl_get_periph_id(struct udevice *dev,
|
||||
u32 cell[3];
|
||||
int ret;
|
||||
|
||||
ret = fdtdec_get_int_array(gd->fdt_blob, periph->of_offset,
|
||||
ret = fdtdec_get_int_array(gd->fdt_blob, dev_of_offset(periph),
|
||||
"interrupts", cell, ARRAY_SIZE(cell));
|
||||
if (ret < 0)
|
||||
return -EINVAL;
|
||||
|
@ -104,7 +104,7 @@ int stm32_sdram_init(struct udevice *dev)
|
||||
static int stm32_fmc_ofdata_to_platdata(struct udevice *dev)
|
||||
{
|
||||
int ret;
|
||||
int node = dev->of_offset;
|
||||
int node = dev_of_offset(dev);
|
||||
const void *blob = gd->fdt_blob;
|
||||
struct stm32_sdram_params *params = dev_get_platdata(dev);
|
||||
|
||||
|
@ -416,7 +416,7 @@ static int lpuart_serial_ofdata_to_platdata(struct udevice *dev)
|
||||
{
|
||||
struct lpuart_serial_platdata *plat = dev->platdata;
|
||||
const void *blob = gd->fdt_blob;
|
||||
int node = dev->of_offset;
|
||||
int node = dev_of_offset(dev);
|
||||
fdt_addr_t addr;
|
||||
|
||||
addr = devfdt_get_addr(dev);
|
||||
|
@ -574,8 +574,8 @@ static void *map_syscon_chipselects(struct udevice *bus)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
cell = fdt_getprop(gd->fdt_blob, bus->of_offset, "syscon-chipselects",
|
||||
&len);
|
||||
cell = fdt_getprop(gd->fdt_blob, dev_of_offset(bus),
|
||||
"syscon-chipselects", &len);
|
||||
if (len < 2*sizeof(fdt32_t)) {
|
||||
debug("%s: offset not available\n", __func__);
|
||||
return NULL;
|
||||
|
@ -51,7 +51,7 @@ static int arc_timer_probe(struct udevice *dev)
|
||||
struct arc_timer_priv *priv = dev_get_priv(dev);
|
||||
|
||||
/* Get registers offset and size */
|
||||
id = fdtdec_get_int(gd->fdt_blob, dev->of_offset, "reg", -1);
|
||||
id = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev), "reg", -1);
|
||||
if (id < 0)
|
||||
return -EINVAL;
|
||||
|
||||
|
@ -497,7 +497,7 @@ static int atmel_hlcdc_ofdata_to_platdata(struct udevice *dev)
|
||||
{
|
||||
struct atmel_hlcdc_priv *priv = dev_get_priv(dev);
|
||||
const void *blob = gd->fdt_blob;
|
||||
int node = dev->of_offset;
|
||||
int node = dev_of_offset(dev);
|
||||
|
||||
priv->regs = (struct atmel_hlcd_regs *)devfdt_get_addr(dev);
|
||||
if (!priv->regs) {
|
||||
@ -505,7 +505,7 @@ static int atmel_hlcdc_ofdata_to_platdata(struct udevice *dev)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (fdtdec_decode_display_timing(blob, dev->of_offset,
|
||||
if (fdtdec_decode_display_timing(blob, dev_of_offset(dev),
|
||||
0, &priv->timing)) {
|
||||
debug("%s: Failed to decode display timing\n", __func__);
|
||||
return -EINVAL;
|
||||
|
Loading…
Reference in New Issue
Block a user