From e160f7d430f163bc42757aff3bf2bcac0a459f02 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Tue, 17 Jan 2017 16:52:55 -0700 Subject: dm: core: Replace of_offset with accessor 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 --- drivers/spi/cadence_qspi.c | 2 +- drivers/spi/davinci_spi.c | 2 +- drivers/spi/designware_spi.c | 2 +- drivers/spi/exynos_spi.c | 2 +- drivers/spi/fsl_dspi.c | 2 +- drivers/spi/fsl_qspi.c | 2 +- drivers/spi/ich.c | 6 +++--- drivers/spi/mvebu_a3700_spi.c | 4 ++-- drivers/spi/omap3_spi.c | 2 +- drivers/spi/pic32_spi.c | 10 +++++----- drivers/spi/rk_spi.c | 2 +- drivers/spi/soft_spi.c | 2 +- drivers/spi/spi-uclass.c | 7 ++++--- drivers/spi/stm32_qspi.c | 2 +- drivers/spi/tegra114_spi.c | 2 +- drivers/spi/tegra20_sflash.c | 2 +- drivers/spi/tegra20_slink.c | 2 +- drivers/spi/tegra210_qspi.c | 2 +- drivers/spi/ti_qspi.c | 2 +- drivers/spi/zynq_qspi.c | 2 +- drivers/spi/zynq_spi.c | 2 +- 21 files changed, 31 insertions(+), 30 deletions(-) (limited to 'drivers/spi') diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c index f16f90d..9a6e41f 100644 --- a/drivers/spi/cadence_qspi.c +++ b/drivers/spi/cadence_qspi.c @@ -282,7 +282,7 @@ static int cadence_spi_ofdata_to_platdata(struct udevice *bus) { struct cadence_spi_platdata *plat = bus->platdata; const void *blob = gd->fdt_blob; - int node = bus->of_offset; + int node = dev_of_offset(bus); int subnode; u32 data[4]; int ret; diff --git a/drivers/spi/davinci_spi.c b/drivers/spi/davinci_spi.c index 20aa99a..65d37b0 100644 --- a/drivers/spi/davinci_spi.c +++ b/drivers/spi/davinci_spi.c @@ -540,7 +540,7 @@ static int davinci_ofdata_to_platadata(struct udevice *bus) { struct davinci_spi_slave *ds = dev_get_priv(bus); const void *blob = gd->fdt_blob; - int node = bus->of_offset; + int node = dev_of_offset(bus); ds->regs = dev_map_physmem(bus, sizeof(struct davinci_spi_regs)); if (!ds->regs) { diff --git a/drivers/spi/designware_spi.c b/drivers/spi/designware_spi.c index 24a6e98..9d5e29c 100644 --- a/drivers/spi/designware_spi.c +++ b/drivers/spi/designware_spi.c @@ -132,7 +132,7 @@ static int dw_spi_ofdata_to_platdata(struct udevice *bus) { struct dw_spi_platdata *plat = bus->platdata; const void *blob = gd->fdt_blob; - int node = bus->of_offset; + int node = dev_of_offset(bus); plat->regs = (struct dw_spi *)dev_get_addr(bus); diff --git a/drivers/spi/exynos_spi.c b/drivers/spi/exynos_spi.c index 44948c3..aa0784c 100644 --- a/drivers/spi/exynos_spi.c +++ b/drivers/spi/exynos_spi.c @@ -253,7 +253,7 @@ static int exynos_spi_ofdata_to_platdata(struct udevice *bus) { struct exynos_spi_platdata *plat = bus->platdata; const void *blob = gd->fdt_blob; - int node = bus->of_offset; + int node = dev_of_offset(bus); plat->regs = (struct exynos_spi *)dev_get_addr(bus); plat->periph_id = pinmux_decode_periph_id(blob, node); diff --git a/drivers/spi/fsl_dspi.c b/drivers/spi/fsl_dspi.c index f213587..e09985e 100644 --- a/drivers/spi/fsl_dspi.c +++ b/drivers/spi/fsl_dspi.c @@ -646,7 +646,7 @@ static int fsl_dspi_ofdata_to_platdata(struct udevice *bus) fdt_addr_t addr; struct fsl_dspi_platdata *plat = bus->platdata; const void *blob = gd->fdt_blob; - int node = bus->of_offset; + int node = dev_of_offset(bus); if (fdtdec_get_bool(blob, node, "big-endian")) plat->flags |= DSPI_FLAG_REGMAP_ENDIAN_BIG; diff --git a/drivers/spi/fsl_qspi.c b/drivers/spi/fsl_qspi.c index 4d378c2..b2a0583 100644 --- a/drivers/spi/fsl_qspi.c +++ b/drivers/spi/fsl_qspi.c @@ -1078,7 +1078,7 @@ static int fsl_qspi_ofdata_to_platdata(struct udevice *bus) struct fdt_resource res_regs, res_mem; struct fsl_qspi_platdata *plat = bus->platdata; const void *blob = gd->fdt_blob; - int node = bus->of_offset; + int node = dev_of_offset(bus); int ret, flash_num = 0, subnode; if (fdtdec_get_bool(blob, node, "big-endian")) diff --git a/drivers/spi/ich.c b/drivers/spi/ich.c index caf0103..893fe33 100644 --- a/drivers/spi/ich.c +++ b/drivers/spi/ich.c @@ -658,14 +658,14 @@ static int ich_spi_child_pre_probe(struct udevice *dev) static int ich_spi_ofdata_to_platdata(struct udevice *dev) { struct ich_spi_platdata *plat = dev_get_platdata(dev); + int node = dev_of_offset(dev); int ret; - ret = fdt_node_check_compatible(gd->fdt_blob, dev->of_offset, - "intel,ich7-spi"); + ret = fdt_node_check_compatible(gd->fdt_blob, node, "intel,ich7-spi"); if (ret == 0) { plat->ich_version = ICHV_7; } else { - ret = fdt_node_check_compatible(gd->fdt_blob, dev->of_offset, + ret = fdt_node_check_compatible(gd->fdt_blob, node, "intel,ich9-spi"); if (ret == 0) plat->ich_version = ICHV_9; diff --git a/drivers/spi/mvebu_a3700_spi.c b/drivers/spi/mvebu_a3700_spi.c index 7c58c36..ee847e4 100644 --- a/drivers/spi/mvebu_a3700_spi.c +++ b/drivers/spi/mvebu_a3700_spi.c @@ -261,9 +261,9 @@ static int mvebu_spi_ofdata_to_platdata(struct udevice *bus) * it should be used to read the input clock and the DT property * can be removed. */ - plat->clock = fdtdec_get_int(gd->fdt_blob, bus->of_offset, + plat->clock = fdtdec_get_int(gd->fdt_blob, dev_of_offset(bus), "clock-frequency", 160000); - plat->frequency = fdtdec_get_int(gd->fdt_blob, bus->of_offset, + plat->frequency = fdtdec_get_int(gd->fdt_blob, dev_of_offset(bus), "spi-max-frequency", 40000); return 0; diff --git a/drivers/spi/omap3_spi.c b/drivers/spi/omap3_spi.c index 60e9d6e..8a89450 100644 --- a/drivers/spi/omap3_spi.c +++ b/drivers/spi/omap3_spi.c @@ -627,7 +627,7 @@ static int omap3_spi_probe(struct udevice *dev) { struct omap3_spi_priv *priv = dev_get_priv(dev); const void *blob = gd->fdt_blob; - int node = dev->of_offset; + int node = dev_of_offset(dev); struct omap2_mcspi_platform_config* data = (struct omap2_mcspi_platform_config*)dev_get_driver_data(dev); diff --git a/drivers/spi/pic32_spi.c b/drivers/spi/pic32_spi.c index 25ca1f3..78d78bc 100644 --- a/drivers/spi/pic32_spi.c +++ b/drivers/spi/pic32_spi.c @@ -377,13 +377,14 @@ static int pic32_spi_probe(struct udevice *bus) { struct pic32_spi_priv *priv = dev_get_priv(bus); struct dm_spi_bus *dm_spi = dev_get_uclass_priv(bus); + int node = dev_of_offset(bus); struct udevice *clkdev; fdt_addr_t addr; fdt_size_t size; int ret; debug("%s: %d, bus: %i\n", __func__, __LINE__, bus->seq); - addr = fdtdec_get_addr_size(gd->fdt_blob, bus->of_offset, "reg", &size); + addr = fdtdec_get_addr_size(gd->fdt_blob, node, "reg", &size); if (addr == FDT_ADDR_T_NONE) return -EINVAL; @@ -391,8 +392,8 @@ static int pic32_spi_probe(struct udevice *bus) if (!priv->regs) return -EINVAL; - dm_spi->max_hz = fdtdec_get_int(gd->fdt_blob, bus->of_offset, - "spi-max-frequency", 250000000); + dm_spi->max_hz = fdtdec_get_int(gd->fdt_blob, node, "spi-max-frequency", + 250000000); /* get clock rate */ ret = clk_get_by_index(bus, 0, &clkdev); if (ret < 0) { @@ -413,8 +414,7 @@ static int pic32_spi_probe(struct udevice *bus) * of the ongoing transfer. To avoid this sort of error we will drive * /CS manually by toggling cs-gpio pins. */ - ret = gpio_request_by_name_nodev(gd->fdt_blob, bus->of_offset, - "cs-gpios", 0, + ret = gpio_request_by_name_nodev(gd->fdt_blob, node, "cs-gpios", 0, &priv->cs_gpio, GPIOD_IS_OUT); if (ret) { printf("pic32-spi: error, cs-gpios not found\n"); diff --git a/drivers/spi/rk_spi.c b/drivers/spi/rk_spi.c index 15cf0bd..3e44f17 100644 --- a/drivers/spi/rk_spi.c +++ b/drivers/spi/rk_spi.c @@ -164,7 +164,7 @@ static int rockchip_spi_ofdata_to_platdata(struct udevice *bus) struct rockchip_spi_platdata *plat = dev_get_platdata(bus); struct rockchip_spi_priv *priv = dev_get_priv(bus); const void *blob = gd->fdt_blob; - int node = bus->of_offset; + int node = dev_of_offset(bus); int ret; plat->base = dev_get_addr(bus); diff --git a/drivers/spi/soft_spi.c b/drivers/spi/soft_spi.c index d23dc81..1690cd7 100644 --- a/drivers/spi/soft_spi.c +++ b/drivers/spi/soft_spi.c @@ -202,7 +202,7 @@ static int soft_spi_ofdata_to_platdata(struct udevice *dev) { struct soft_spi_platdata *plat = dev->platdata; const void *blob = gd->fdt_blob; - int node = dev->of_offset; + int node = dev_of_offset(dev); plat->spi_delay_us = fdtdec_get_int(blob, node, "spi-delay-us", 0); diff --git a/drivers/spi/spi-uclass.c b/drivers/spi/spi-uclass.c index 1ab5b75..ac17da0 100644 --- a/drivers/spi/spi-uclass.c +++ b/drivers/spi/spi-uclass.c @@ -113,10 +113,11 @@ static int spi_child_post_bind(struct udevice *dev) { struct dm_spi_slave_platdata *plat = dev_get_parent_platdata(dev); - if (dev->of_offset == -1) + if (dev_of_offset(dev) == -1) return 0; - return spi_slave_ofdata_to_platdata(gd->fdt_blob, dev->of_offset, plat); + return spi_slave_ofdata_to_platdata(gd->fdt_blob, dev_of_offset(dev), + plat); } #endif @@ -125,7 +126,7 @@ static int spi_post_probe(struct udevice *bus) #if !CONFIG_IS_ENABLED(OF_PLATDATA) struct dm_spi_bus *spi = dev_get_uclass_priv(bus); - spi->max_hz = fdtdec_get_int(gd->fdt_blob, bus->of_offset, + spi->max_hz = fdtdec_get_int(gd->fdt_blob, dev_of_offset(bus), "spi-max-frequency", 0); #endif #if defined(CONFIG_NEEDS_MANUAL_RELOC) diff --git a/drivers/spi/stm32_qspi.c b/drivers/spi/stm32_qspi.c index 123a1f3..05358eb 100644 --- a/drivers/spi/stm32_qspi.c +++ b/drivers/spi/stm32_qspi.c @@ -411,7 +411,7 @@ static int stm32_qspi_ofdata_to_platdata(struct udevice *bus) struct fdt_resource res_regs, res_mem; struct stm32_qspi_platdata *plat = bus->platdata; const void *blob = gd->fdt_blob; - int node = bus->of_offset; + int node = dev_of_offset(bus); int ret; ret = fdt_get_named_resource(blob, node, "reg", "reg-names", diff --git a/drivers/spi/tegra114_spi.c b/drivers/spi/tegra114_spi.c index 509afba..897409c 100644 --- a/drivers/spi/tegra114_spi.c +++ b/drivers/spi/tegra114_spi.c @@ -101,7 +101,7 @@ static int tegra114_spi_ofdata_to_platdata(struct udevice *bus) { struct tegra_spi_platdata *plat = bus->platdata; const void *blob = gd->fdt_blob; - int node = bus->of_offset; + int node = dev_of_offset(bus); plat->base = dev_get_addr(bus); plat->periph_id = clock_decode_periph_id(blob, node); diff --git a/drivers/spi/tegra20_sflash.c b/drivers/spi/tegra20_sflash.c index ce3a2d3..ecbf4c1 100644 --- a/drivers/spi/tegra20_sflash.c +++ b/drivers/spi/tegra20_sflash.c @@ -88,7 +88,7 @@ static int tegra20_sflash_ofdata_to_platdata(struct udevice *bus) { struct tegra_spi_platdata *plat = bus->platdata; const void *blob = gd->fdt_blob; - int node = bus->of_offset; + int node = dev_of_offset(bus); plat->base = dev_get_addr(bus); plat->periph_id = clock_decode_periph_id(blob, node); diff --git a/drivers/spi/tegra20_slink.c b/drivers/spi/tegra20_slink.c index e1da23b..1d99a1e 100644 --- a/drivers/spi/tegra20_slink.c +++ b/drivers/spi/tegra20_slink.c @@ -94,7 +94,7 @@ static int tegra30_spi_ofdata_to_platdata(struct udevice *bus) { struct tegra_spi_platdata *plat = bus->platdata; const void *blob = gd->fdt_blob; - int node = bus->of_offset; + int node = dev_of_offset(bus); plat->base = dev_get_addr(bus); plat->periph_id = clock_decode_periph_id(blob, node); diff --git a/drivers/spi/tegra210_qspi.c b/drivers/spi/tegra210_qspi.c index 026cff0..1e094cb 100644 --- a/drivers/spi/tegra210_qspi.c +++ b/drivers/spi/tegra210_qspi.c @@ -97,7 +97,7 @@ static int tegra210_qspi_ofdata_to_platdata(struct udevice *bus) { struct tegra_spi_platdata *plat = bus->platdata; const void *blob = gd->fdt_blob; - int node = bus->of_offset; + int node = dev_of_offset(bus); plat->base = dev_get_addr(bus); plat->periph_id = clock_decode_periph_id(blob, node); diff --git a/drivers/spi/ti_qspi.c b/drivers/spi/ti_qspi.c index 6f9f983..79955d7 100644 --- a/drivers/spi/ti_qspi.c +++ b/drivers/spi/ti_qspi.c @@ -553,7 +553,7 @@ static int ti_qspi_ofdata_to_platdata(struct udevice *bus) { struct ti_qspi_priv *priv = dev_get_priv(bus); const void *blob = gd->fdt_blob; - int node = bus->of_offset; + int node = dev_of_offset(bus); fdt_addr_t addr; void *mmap; diff --git a/drivers/spi/zynq_qspi.c b/drivers/spi/zynq_qspi.c index b98663c..255e02f 100644 --- a/drivers/spi/zynq_qspi.c +++ b/drivers/spi/zynq_qspi.c @@ -101,7 +101,7 @@ static int zynq_qspi_ofdata_to_platdata(struct udevice *bus) { struct zynq_qspi_platdata *plat = bus->platdata; const void *blob = gd->fdt_blob; - int node = bus->of_offset; + int node = dev_of_offset(bus); plat->regs = (struct zynq_qspi_regs *)fdtdec_get_addr(blob, node, "reg"); diff --git a/drivers/spi/zynq_spi.c b/drivers/spi/zynq_spi.c index 15ca271..5a9b1f0 100644 --- a/drivers/spi/zynq_spi.c +++ b/drivers/spi/zynq_spi.c @@ -71,7 +71,7 @@ static int zynq_spi_ofdata_to_platdata(struct udevice *bus) { struct zynq_spi_platdata *plat = bus->platdata; const void *blob = gd->fdt_blob; - int node = bus->of_offset; + int node = dev_of_offset(bus); plat->regs = (struct zynq_spi_regs *)dev_get_addr(bus); -- cgit v1.1