From mboxrd@z Thu Jan 1 00:00:00 1970 From: Simon Glass Date: Thu, 22 Jan 2015 14:25:40 -0700 Subject: [U-Boot] [PATCH v3 1/4] dm: introduce dev_get_addr interface In-Reply-To: <1421838596-4176-2-git-send-email-Peng.Fan@freescale.com> References: <1421838596-4176-1-git-send-email-Peng.Fan@freescale.com> <1421838596-4176-2-git-send-email-Peng.Fan@freescale.com> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi, On 21 January 2015 at 04:09, Peng Fan wrote: > Abstracting dev_get_addr can improve drivers that want to > get device's address. > > Signed-off-by: Peng Fan > --- > drivers/core/device.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/drivers/core/device.c b/drivers/core/device.c > index 963b16f..0ba5c76 100644 > --- a/drivers/core/device.c > +++ b/drivers/core/device.c > @@ -12,6 +12,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -390,3 +391,21 @@ ulong dev_get_of_data(struct udevice *dev) > { > return dev->of_id->data; > } > + > +#ifdef CONFIG_OF_CONTROL > +void *dev_get_addr(struct udevice *dev) My approach so far has been to use a ulong for the device address (e.g. in platform data) and only use a pointer when we know the type (e.g. struct disp_ctlr *), typically in driver-private data. So do you think it would be better to return FDT_ADDR_T_NONE? > +{ > + fdt_addr_t addr; > + > + addr = fdtdec_get_addr(gd->fdt_blob, dev->of_offset, "reg"); > + if (addr == FDT_ADDR_T_NONE) > + return NULL; > + else > + return (void *)addr; > +} > +#else > +void *dev_get_addr(struct udevice *dev) > +{ > + return NULL; > +} > +#endif > -- > 1.8.4 > > Regards, Simon