dev_read_addr returns a fdt_addr_t and not a pointer type. Replace dev_read_addr by dev_read_addr_ptr. Check that base pointer is valid.
Signed-off-by: Francois Berder <[email protected]> --- drivers/clk/qcom/clock-qcom.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/drivers/clk/qcom/clock-qcom.c b/drivers/clk/qcom/clock-qcom.c index 6b46d9db744..e238b76d42e 100644 --- a/drivers/clk/qcom/clock-qcom.c +++ b/drivers/clk/qcom/clock-qcom.c @@ -489,8 +489,14 @@ static const struct reset_ops qcom_reset_ops = { static int qcom_reset_probe(struct udevice *dev) { + void *base; + + base = dev_read_addr_ptr(dev); + if (!base) + return -EINVAL; + /* Set our priv pointer to the base address */ - dev_set_priv(dev, (void *)dev_read_addr(dev)); + dev_set_priv(dev, base); return 0; } @@ -564,8 +570,14 @@ static const struct power_domain_ops qcom_power_ops = { static int qcom_power_probe(struct udevice *dev) { + void *base; + + base = dev_read_addr_ptr(dev); + if (!base) + return -EINVAL; + /* Set our priv pointer to the base address */ - dev_set_priv(dev, (void *)dev_read_addr(dev)); + dev_set_priv(dev, base); return 0; } -- 2.43.0

