From mboxrd@z Thu Jan 1 00:00:00 1970 From: Philipp Tomsich Date: Mon, 11 Sep 2017 11:18:10 +0200 Subject: [U-Boot] [PATCH v2 04/19] dm: core: add dev_read_addr_ptr() In-Reply-To: <1505121512-23283-1-git-send-email-philipp.tomsich@theobroma-systems.com> References: <1505121512-23283-1-git-send-email-philipp.tomsich@theobroma-systems.com> Message-ID: <1505121512-23283-5-git-send-email-philipp.tomsich@theobroma-systems.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 Acked-by: Philipp Tomsich --- 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; +} + 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) -- 2.1.4