On 09/11/2017 10:04 PM, Philipp Tomsich wrote: > The dev_read_addr_ptr() mimics the behaviour of the devfdt_get_addr_ptr(), > retrieving the first address of the node's reg-property and returning > it as a pointer (or NULL on failure). > > Signed-off-by: Philipp Tomsich <philipp.toms...@theobroma-systems.com> > Acked-by: Philipp Tomsich <philipp.toms...@theobroma-systems.com> > --- > > Changes in v3: None > Changes in v2: > - implements the dev_read_addr_ptr() function > > drivers/core/read.c | 7 +++++++ > include/dm/read.h | 15 +++++++++++++++ > 2 files changed, 22 insertions(+) > > diff --git a/drivers/core/read.c b/drivers/core/read.c > index 6acb333..065589a 100644 > --- a/drivers/core/read.c > +++ b/drivers/core/read.c > @@ -57,6 +57,13 @@ fdt_addr_t dev_read_addr(struct udevice *dev) > return dev_read_addr_index(dev, 0); > } > > +void *dev_read_addr_ptr(struct udevice *dev) > +{ > + fdt_addr_t addr = dev_read_addr(dev); > + > + return (addr == FDT_ADDR_T_NONE) ? NULL : (void *)addr;
Hello Philipp, this line produces a compiler warning: sandbox: + sandbox + return (addr == FDT_ADDR_T_NONE) ? NULL : (void *)addr; + ^ w+drivers/core/read.c: In function ?dev_read_addr_ptr?: w+drivers/core/read.c:64:44: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] Could you, please, provide a follow-up patch. Regards Heinrich > +} > + > fdt_addr_t dev_read_addr_size(struct udevice *dev, const char *property, > fdt_size_t *sizep) > { > diff --git a/include/dm/read.h b/include/dm/read.h > index 49d69c9..e7f7125 100644 > --- a/include/dm/read.h > +++ b/include/dm/read.h > @@ -113,6 +113,16 @@ fdt_addr_t dev_read_addr_index(struct udevice *dev, int > index); > fdt_addr_t dev_read_addr(struct udevice *dev); > > /** > + * dev_read_addr_ptr() - Get the reg property of a device > + * as a pointer > + * > + * @dev: Device to read from > + * > + * @return pointer or NULL if not found > + */ > +void *dev_read_addr_ptr(struct udevice *dev); > + > +/** > * dev_read_addr_size() - get address and size from a device property > * > * This does no address translation. It simply reads an property that > contains > @@ -417,6 +427,11 @@ static inline fdt_addr_t dev_read_addr(struct udevice > *dev) > return devfdt_get_addr(dev); > } > > +static inline void *dev_read_addr_ptr(struct udevice *dev) > +{ > + return devfdt_get_addr_ptr(dev); > +} > + > static inline fdt_addr_t dev_read_addr_size(struct udevice *dev, > const char *propname, > fdt_size_t *sizep) > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot