diff options
author | Peng Fan <Peng.Fan@freescale.com> | 2015-02-10 14:46:32 +0800 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2015-02-12 15:17:29 -0700 |
commit | c9cac3f8413c1f67d1e1b7a1770e584584107cd2 (patch) | |
tree | 5e9344a29ff68938b6901a7b7a1ca7db53e92617 | |
parent | be9891c52d5472156949a3137be5f48355fd3f29 (diff) | |
download | u-boot-imx-c9cac3f8413c1f67d1e1b7a1770e584584107cd2.zip u-boot-imx-c9cac3f8413c1f67d1e1b7a1770e584584107cd2.tar.gz u-boot-imx-c9cac3f8413c1f67d1e1b7a1770e584584107cd2.tar.bz2 |
dm: introduce dev_get_addr interface
Abstracting dev_get_addr can improve drivers that want to
get device's address.
Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
Acked-by: Igor Grinberg <grinberg@compulab.co.il>
Acked-by: Simon Glass <sjg@chromium.org>
-rw-r--r-- | drivers/core/device.c | 12 | ||||
-rw-r--r-- | include/dm/device.h | 10 |
2 files changed, 22 insertions, 0 deletions
diff --git a/drivers/core/device.c b/drivers/core/device.c index b73d3b8..73c3e07 100644 --- a/drivers/core/device.c +++ b/drivers/core/device.c @@ -449,3 +449,15 @@ enum uclass_id device_get_uclass_id(struct udevice *dev) { return dev->uclass->uc_drv->id; } + +#ifdef CONFIG_OF_CONTROL +fdt_addr_t dev_get_addr(struct udevice *dev) +{ + return fdtdec_get_addr(gd->fdt_blob, dev->of_offset, "reg"); +} +#else +fdt_addr_t dev_get_addr(struct udevice *dev) +{ + return FDT_ADDR_T_NONE; +} +#endif diff --git a/include/dm/device.h b/include/dm/device.h index 81afa8c..7a48eb8 100644 --- a/include/dm/device.h +++ b/include/dm/device.h @@ -12,6 +12,7 @@ #define _DM_DEVICE_H #include <dm/uclass-id.h> +#include <fdtdec.h> #include <linker_lists.h> #include <linux/list.h> @@ -351,4 +352,13 @@ int device_find_first_child(struct udevice *parent, struct udevice **devp); */ int device_find_next_child(struct udevice **devp); +/** + * dev_get_addr() - Get the reg property of a device + * + * @dev: Pointer to a device + * + * @return addr + */ +fdt_addr_t dev_get_addr(struct udevice *dev); + #endif |