From: Johan Jonker <jbx6244@gmail.com>
To: dario.binacchi@amarulasolutions.com,
michael@amarulasolutions.com, sjg@chromium.org,
philipp.tomsich@vrull.eu, kever.yang@rock-chips.com
Cc: u-boot@lists.denx.de, yifeng.zhao@rock-chips.com
Subject: [PATCH v7 19/23] drivers: use devfdt_get_addr_index_ptr when cast to pointer
Date: Fri, 10 Mar 2023 17:46:23 +0100 [thread overview]
Message-ID: <4d310c92-9ef1-86f4-990a-8c534fbd50ea@gmail.com> (raw)
In-Reply-To: <4caa17bc-6d32-5b07-68f3-f5ced40bfcbb@gmail.com>
The fdt_addr_t and phys_addr_t size have been decoupled. A 32bit CPU
can expect 64-bit data from the device tree parser, so use
devfdt_get_addr_index_ptr instead of the devfdt_get_addr_index function
in the various files in the drivers directory that cast to a pointer.
Signed-off-by: Johan Jonker <jbx6244@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
Changed V6:
use -EINVAL on return
drop cast
---
drivers/clk/clk-hsdk-cgu.c | 4 ++--
drivers/ddr/altera/sdram_gen5.c | 4 ++--
drivers/mmc/xenon_sdhci.c | 2 +-
drivers/net/mvpp2.c | 24 ++++++++++++------------
drivers/pci/pcie_dw_mvebu.c | 4 ++--
drivers/pci/pcie_imx.c | 4 ++--
drivers/pci/pcie_layerscape_ep.c | 8 ++++----
drivers/phy/marvell/comphy_core.c | 12 ++++++------
drivers/spi/cadence_qspi.c | 2 +-
drivers/usb/musb-new/ti-musb.c | 2 +-
10 files changed, 33 insertions(+), 33 deletions(-)
diff --git a/drivers/clk/clk-hsdk-cgu.c b/drivers/clk/clk-hsdk-cgu.c
index 26b0aa9a..e28543ef 100644
--- a/drivers/clk/clk-hsdk-cgu.c
+++ b/drivers/clk/clk-hsdk-cgu.c
@@ -753,11 +753,11 @@ static int hsdk_cgu_clk_probe(struct udevice *dev)
else
hsdk_clk->map = hsdk_4xd_clk_map;
- hsdk_clk->cgu_regs = (void __iomem *)devfdt_get_addr_index(dev, 0);
+ hsdk_clk->cgu_regs = devfdt_get_addr_index_ptr(dev, 0);
if (!hsdk_clk->cgu_regs)
return -EINVAL;
- hsdk_clk->creg_regs = (void __iomem *)devfdt_get_addr_index(dev, 1);
+ hsdk_clk->creg_regs = devfdt_get_addr_index_ptr(dev, 1);
if (!hsdk_clk->creg_regs)
return -EINVAL;
diff --git a/drivers/ddr/altera/sdram_gen5.c b/drivers/ddr/altera/sdram_gen5.c
index 8d3ce495..34d2a278 100644
--- a/drivers/ddr/altera/sdram_gen5.c
+++ b/drivers/ddr/altera/sdram_gen5.c
@@ -567,9 +567,9 @@ static int altera_gen5_sdram_of_to_plat(struct udevice *dev)
{
struct altera_gen5_sdram_plat *plat = dev_get_plat(dev);
- plat->sdr = (struct socfpga_sdr *)devfdt_get_addr_index(dev, 0);
+ plat->sdr = devfdt_get_addr_index_ptr(dev, 0);
if (!plat->sdr)
- return -ENODEV;
+ return -EINVAL;
return 0;
}
diff --git a/drivers/mmc/xenon_sdhci.c b/drivers/mmc/xenon_sdhci.c
index 2f880509..16ac84a2 100644
--- a/drivers/mmc/xenon_sdhci.c
+++ b/drivers/mmc/xenon_sdhci.c
@@ -537,7 +537,7 @@ static int xenon_sdhci_of_to_plat(struct udevice *dev)
host->ioaddr = dev_read_addr_ptr(dev);
if (device_is_compatible(dev, "marvell,armada-3700-sdhci"))
- priv->pad_ctrl_reg = (void *)devfdt_get_addr_index(dev, 1);
+ priv->pad_ctrl_reg = devfdt_get_addr_index_ptr(dev, 1);
name = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "marvell,pad-type",
NULL);
diff --git a/drivers/net/mvpp2.c b/drivers/net/mvpp2.c
index 1bad50d3..a4be8497 100644
--- a/drivers/net/mvpp2.c
+++ b/drivers/net/mvpp2.c
@@ -5349,18 +5349,18 @@ static int mvpp2_base_probe(struct udevice *dev)
}
/* Save base addresses for later use */
- priv->base = (void *)devfdt_get_addr_index(dev, 0);
- if (IS_ERR(priv->base))
- return PTR_ERR(priv->base);
+ priv->base = devfdt_get_addr_index_ptr(dev, 0);
+ if (!priv->base)
+ return -EINVAL;
if (priv->hw_version == MVPP21) {
- priv->lms_base = (void *)devfdt_get_addr_index(dev, 1);
- if (IS_ERR(priv->lms_base))
- return PTR_ERR(priv->lms_base);
+ priv->lms_base = devfdt_get_addr_index_ptr(dev, 1);
+ if (!priv->lms_base)
+ return -EINVAL;
} else {
- priv->iface_base = (void *)devfdt_get_addr_index(dev, 1);
- if (IS_ERR(priv->iface_base))
- return PTR_ERR(priv->iface_base);
+ priv->iface_base = devfdt_get_addr_index_ptr(dev, 1);
+ if (!priv->iface_base)
+ return -EINVAL;
/* Store common base addresses for all ports */
priv->mpcs_base = priv->iface_base + MVPP22_MPCS;
@@ -5399,10 +5399,10 @@ static int mvpp2_probe(struct udevice *dev)
if (priv->hw_version == MVPP21) {
int priv_common_regs_num = 2;
- port->base = (void __iomem *)devfdt_get_addr_index(
+ port->base = devfdt_get_addr_index_ptr(
dev->parent, priv_common_regs_num + port->id);
- if (IS_ERR(port->base))
- return PTR_ERR(port->base);
+ if (!port->base)
+ return -EINVAL;
} else {
port->gop_id = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev),
"gop-port-id", -1);
diff --git a/drivers/pci/pcie_dw_mvebu.c b/drivers/pci/pcie_dw_mvebu.c
index 3b2ada54..c41f3f15 100644
--- a/drivers/pci/pcie_dw_mvebu.c
+++ b/drivers/pci/pcie_dw_mvebu.c
@@ -564,8 +564,8 @@ static int pcie_dw_mvebu_of_to_plat(struct udevice *dev)
struct pcie_dw_mvebu *pcie = dev_get_priv(dev);
/* Get the controller base address */
- pcie->ctrl_base = (void *)devfdt_get_addr_index(dev, 0);
- if ((fdt_addr_t)pcie->ctrl_base == FDT_ADDR_T_NONE)
+ pcie->ctrl_base = devfdt_get_addr_index_ptr(dev, 0);
+ if (!pcie->ctrl_base)
return -EINVAL;
/* Get the config space base address and size */
diff --git a/drivers/pci/pcie_imx.c b/drivers/pci/pcie_imx.c
index da484664..4a18b0e0 100644
--- a/drivers/pci/pcie_imx.c
+++ b/drivers/pci/pcie_imx.c
@@ -751,8 +751,8 @@ static int imx_pcie_of_to_plat(struct udevice *dev)
{
struct imx_pcie_priv *priv = dev_get_priv(dev);
- priv->dbi_base = (void __iomem *)devfdt_get_addr_index(dev, 0);
- priv->cfg_base = (void __iomem *)devfdt_get_addr_index(dev, 1);
+ priv->dbi_base = devfdt_get_addr_index_ptr(dev, 0);
+ priv->cfg_base = devfdt_get_addr_index_ptr(dev, 1);
if (!priv->dbi_base || !priv->cfg_base)
return -EINVAL;
diff --git a/drivers/pci/pcie_layerscape_ep.c b/drivers/pci/pcie_layerscape_ep.c
index ff26a5cd..83f7eebd 100644
--- a/drivers/pci/pcie_layerscape_ep.c
+++ b/drivers/pci/pcie_layerscape_ep.c
@@ -250,13 +250,13 @@ static int ls_pcie_ep_probe(struct udevice *dev)
pcie_ep->pcie = pcie;
- pcie->dbi = (void __iomem *)devfdt_get_addr_index(dev, 0);
+ pcie->dbi = devfdt_get_addr_index_ptr(dev, 0);
if (!pcie->dbi)
- return -ENOMEM;
+ return -EINVAL;
- pcie->ctrl = (void __iomem *)devfdt_get_addr_index(dev, 1);
+ pcie->ctrl = devfdt_get_addr_index_ptr(dev, 1);
if (!pcie->ctrl)
- return -ENOMEM;
+ return -EINVAL;
ret = fdt_get_named_resource(gd->fdt_blob, dev_of_offset(dev),
"reg", "reg-names",
diff --git a/drivers/phy/marvell/comphy_core.c b/drivers/phy/marvell/comphy_core.c
index df2460db..7272dfb9 100644
--- a/drivers/phy/marvell/comphy_core.c
+++ b/drivers/phy/marvell/comphy_core.c
@@ -88,13 +88,13 @@ static int comphy_probe(struct udevice *dev)
int res;
/* Save base addresses for later use */
- chip_cfg->comphy_base_addr = (void *)devfdt_get_addr_index(dev, 0);
- if (IS_ERR(chip_cfg->comphy_base_addr))
- return PTR_ERR(chip_cfg->comphy_base_addr);
+ chip_cfg->comphy_base_addr = devfdt_get_addr_index_ptr(dev, 0);
+ if (!chip_cfg->comphy_base_addr)
+ return -EINVAL;
- chip_cfg->hpipe3_base_addr = (void *)devfdt_get_addr_index(dev, 1);
- if (IS_ERR(chip_cfg->hpipe3_base_addr))
- return PTR_ERR(chip_cfg->hpipe3_base_addr);
+ chip_cfg->hpipe3_base_addr = devfdt_get_addr_index_ptr(dev, 1);
+ if (!chip_cfg->hpipe3_base_addr)
+ return -EINVAL;
if (device_is_compatible(dev, "marvell,comphy-a3700")) {
chip_cfg->comphy_init_map = comphy_a3700_init_serdes_map;
diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c
index 6a52676a..92e80506 100644
--- a/drivers/spi/cadence_qspi.c
+++ b/drivers/spi/cadence_qspi.c
@@ -383,7 +383,7 @@ static int cadence_spi_of_to_plat(struct udevice *bus)
struct cadence_spi_priv *priv = dev_get_priv(bus);
ofnode subnode;
- plat->regbase = (void *)devfdt_get_addr_index(bus, 0);
+ plat->regbase = devfdt_get_addr_index_ptr(bus, 0);
plat->ahbbase = devfdt_get_addr_size_index_ptr(bus, 1, &plat->ahbsize);
plat->is_decoded_cs = dev_read_bool(bus, "cdns,is-decoded-cs");
plat->fifo_depth = dev_read_u32_default(bus, "cdns,fifo-depth", 128);
diff --git a/drivers/usb/musb-new/ti-musb.c b/drivers/usb/musb-new/ti-musb.c
index 91042935..3be3f93d 100644
--- a/drivers/usb/musb-new/ti-musb.c
+++ b/drivers/usb/musb-new/ti-musb.c
@@ -88,7 +88,7 @@ static int ti_musb_of_to_plat(struct udevice *dev)
int usb_index;
struct musb_hdrc_config *musb_config;
- plat->base = (void *)devfdt_get_addr_index(dev, 1);
+ plat->base = devfdt_get_addr_index_ptr(dev, 1);
phys = fdtdec_lookup_phandle(fdt, node, "phys");
ctrl_mod = fdtdec_lookup_phandle(fdt, phys, "ti,ctrl_mod");
--
2.20.1
next prev parent reply other threads:[~2023-03-10 16:46 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-10 16:36 [PATCH v7 00/23] Fixes for Rockchip NFC driver part 1 Johan Jonker
2023-03-10 16:40 ` [PATCH v7 01/23] mtd: nand: raw: rockchip_nfc: use dev_read_addr_ptr Johan Jonker
2023-03-10 16:42 ` Michael Nazzareno Trimarchi
2023-03-10 16:40 ` [PATCH v7 02/23] mtd: nand: raw: rockchip_nfc: remove the compatible string "rockchip,rk3308-nfc" Johan Jonker
2023-03-10 16:40 ` [PATCH v7 03/23] mtd: nand: raw: rockchip_nfc: add layout structure Johan Jonker
2023-03-10 16:41 ` [PATCH v7 04/23] mtd: nand: raw: rockchip_nfc: add flash_node to chip structure Johan Jonker
2023-03-10 16:41 ` [PATCH v7 05/23] mtd: nand: raw: rockchip_nfc: fix oobfree offset and description Johan Jonker
2023-03-10 16:41 ` [PATCH v7 06/23] mtd: nand: add support for the Sandisk SDTNQGAMA chip Johan Jonker
2023-03-10 16:41 ` [PATCH v7 07/23] rockchip: adc: rockchip-saradc: use dev_read_addr_ptr Johan Jonker
2023-03-10 16:42 ` [PATCH v7 08/23] rockchip: timer: dw-apb-timer: use reg variable with phys_addr_t size Johan Jonker
2023-03-10 16:42 ` [PATCH v7 10/23] include: dm: ofnode: fix headers Johan Jonker
2023-03-10 16:42 ` [PATCH v7 11/23] core: remap: fix regmap_init_mem_plat() reg size handeling Johan Jonker
2023-03-11 1:37 ` Simon Glass
2023-03-12 12:21 ` Johan Jonker
2023-03-13 3:10 ` Simon Glass
2023-03-10 16:43 ` [PATCH v7 12/23] rockchip: rk3288: syscon_rk3288: store syscon platdata in regmap Johan Jonker
2023-03-10 16:44 ` [PATCH v7 13/23] core: fdtaddr: add devfdt_get_addr_size_index_ptr function Johan Jonker
2023-03-11 1:37 ` Simon Glass
2023-03-10 16:45 ` [PATCH v7 14/23] core: read: add dev_read_addr_index_ptr function Johan Jonker
2023-03-10 16:45 ` [PATCH v7 15/23] spi: spi-aspeed-smc: use devfdt_get_addr_index_ptr Johan Jonker
2023-03-10 16:45 ` [PATCH v7 16/23] drivers: use dev_read_addr_index_ptr when cast to pointer Johan Jonker
2023-03-11 1:37 ` Simon Glass
2023-03-10 16:45 ` [PATCH v7 17/23] drivers: use dev_read_addr_ptr " Johan Jonker
2023-03-10 16:46 ` [PATCH v7 18/23] drivers: use devfdt_get_addr_size_index_ptr " Johan Jonker
2023-03-10 16:46 ` Johan Jonker [this message]
2023-03-10 16:46 ` [PATCH v7 20/23] drivers: use devfdt_get_addr_ptr " Johan Jonker
2023-03-10 16:46 ` [PATCH v7 21/23] drivers: fix debug string with fdt_addr_t input Johan Jonker
2023-03-10 16:47 ` [PATCH v7 22/23] arm: stm32mp: spl: fix function " Johan Jonker
2023-03-11 1:37 ` Simon Glass
2023-03-10 16:47 ` [PATCH v7 23/23] include: fdtdec: decouple fdt_addr_t and phys_addr_t size Johan Jonker
2023-03-10 16:50 ` [RESEND PATCH v7 09/23] rockchip: pwm: rk_pwm: use reg variable with " Johan Jonker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4d310c92-9ef1-86f4-990a-8c534fbd50ea@gmail.com \
--to=jbx6244@gmail.com \
--cc=dario.binacchi@amarulasolutions.com \
--cc=kever.yang@rock-chips.com \
--cc=michael@amarulasolutions.com \
--cc=philipp.tomsich@vrull.eu \
--cc=sjg@chromium.org \
--cc=u-boot@lists.denx.de \
--cc=yifeng.zhao@rock-chips.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox