diff mbox series

[3/3] misc: atsha204a: fix i2c address readout from DTS

Message ID 20211221161721.153396-4-adrian.fiergolski@fastree3d.com
State Superseded
Delegated to: Stefan Roese
Headers show
Series misc: atsha204a: bug fixes | expand

Commit Message

Adrian Fiergolski Dec. 21, 2021, 4:17 p.m. UTC
This patch replaces use fdtdec_get_addr with recommended fdtdec_get_addr_size_auto_parent.

Signed-off-by: Adrian Fiergolski <adrian.fiergolski@fastree3d.com>
---
 drivers/misc/atsha204a-i2c.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Marek Behún Dec. 21, 2021, 5:52 p.m. UTC | #1
On Tue, 21 Dec 2021 17:17:22 +0100
Adrian Fiergolski <adrian.fiergolski@fastree3d.com> wrote:

> This patch replaces use fdtdec_get_addr with recommended fdtdec_get_addr_size_auto_parent.

And why is that required?

If at all, I would rather change it to simple dev_read_addr().

Marek
Adrian Fiergolski Jan. 11, 2022, 5:56 p.m. UTC | #2
Hi Marek,

Thank you for your review.

On 21.12.2021 18:52, Marek Behún wrote:
> On Tue, 21 Dec 2021 17:17:22 +0100
> Adrian Fiergolski <adrian.fiergolski@fastree3d.com> wrote:
>
>> This patch replaces use fdtdec_get_addr with recommended fdtdec_get_addr_size_auto_parent.
> And why is that required?
I didn't debug why exactly, but it didn't work with my embedded system 
based on ZynqMP (64bit). I might guess it's related to the fact that, 
quoting documentation, "This variant hard-codes the number of cells used 
to represent the address and size based on sizeof(fdt_addr_t) and 
sizeof(fdt_size_t)".
> If at all, I would rather change it to simple dev_read_addr().

Good idea, it's much cleaner. I have just confirmed it works as well. I 
will share the new version of the patches.

Adrian
diff mbox series

Patch

diff --git a/drivers/misc/atsha204a-i2c.c b/drivers/misc/atsha204a-i2c.c
index d264477927..1008b914c2 100644
--- a/drivers/misc/atsha204a-i2c.c
+++ b/drivers/misc/atsha204a-i2c.c
@@ -388,7 +388,7 @@  static int atsha204a_of_to_plat(struct udevice *dev)
 	fdt_addr_t *priv = dev_get_priv(dev);
 	fdt_addr_t addr;
 
-	addr = fdtdec_get_addr(gd->fdt_blob, dev_of_offset(dev), "reg");
+	addr = fdtdec_get_addr_size_auto_noparent(gd->fdt_blob, dev_of_offset(dev), "reg", 0, NULL, false);
 	if (addr == FDT_ADDR_T_NONE) {
 		debug("Can't get ATSHA204A I2C base address\n");
 		return -ENXIO;