diff options
| author | Michal Simek <michal.simek@xilinx.com> | 2019-01-31 16:30:59 +0100 |
|---|---|---|
| committer | Heiko Schocher <hs@denx.de> | 2019-02-08 06:25:32 +0100 |
| commit | 83e4c7e9ffa57fe4116967999c223c952a46a78a (patch) | |
| tree | e02bb6b75e64b116d0d9011a1762e033000004ea | |
| parent | 003c9dc89176cacc9996f737d08490805e29582e (diff) | |
dm: core: Introduce dev_read_alias_highest_id()
It is wrapper for calling of_alias_get_highest_id() when live tree is
enabled and fdtdec_get_alias_highest_id() if not.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Reviewed-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
| -rw-r--r-- | drivers/core/read.c | 8 | ||||
| -rw-r--r-- | include/dm/read.h | 16 |
2 files changed, 24 insertions, 0 deletions
diff --git a/drivers/core/read.c b/drivers/core/read.c index 3c46b3674ed..6bda077a34b 100644 --- a/drivers/core/read.c +++ b/drivers/core/read.c @@ -264,3 +264,11 @@ u64 dev_translate_address(struct udevice *dev, const fdt32_t *in_addr) { return ofnode_translate_address(dev_ofnode(dev), in_addr); } + +int dev_read_alias_highest_id(const char *stem) +{ + if (of_live_active()) + return of_alias_get_highest_id(stem); + + return fdtdec_get_alias_highest_id(gd->fdt_blob, stem); +} diff --git a/include/dm/read.h b/include/dm/read.h index 389e30e7fb4..60b727cbd82 100644 --- a/include/dm/read.h +++ b/include/dm/read.h @@ -510,6 +510,17 @@ int dev_read_resource_byname(struct udevice *dev, const char *name, * @return the translated address; OF_BAD_ADDR on error */ u64 dev_translate_address(struct udevice *dev, const fdt32_t *in_addr); + +/** + * dev_read_alias_highest_id - Get highest alias id for the given stem + * @stem: Alias stem to be examined + * + * The function travels the lookup table to get the highest alias id for the + * given alias stem. + * @return alias ID, if found, else -1 + */ +int dev_read_alias_highest_id(const char *stem); + #else /* CONFIG_DM_DEV_READ_INLINE is enabled */ static inline int dev_read_u32(struct udevice *dev, @@ -740,6 +751,11 @@ static inline u64 dev_translate_address(struct udevice *dev, const fdt32_t *in_a return ofnode_translate_address(dev_ofnode(dev), in_addr); } +static inline int dev_read_alias_highest_id(const char *stem) +{ + return fdtdec_get_alias_highest_id(gd->fdt_blob, stem); +} + #endif /* CONFIG_DM_DEV_READ_INLINE */ /** |
