dm: core: Introduce dev_read_alias_highest_id()
authorMichal Simek <michal.simek@xilinx.com>
Thu, 31 Jan 2019 15:30:59 +0000 (16:30 +0100)
committerHeiko Schocher <hs@denx.de>
Fri, 8 Feb 2019 05:25:32 +0000 (06:25 +0100)
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>
drivers/core/read.c
include/dm/read.h

index 3c46b3674ed616f3593933309c06c872b83fc836..6bda077a34b9ce46e5b2456bd14762f950d60f62 100644 (file)
@@ -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);
+}
index 389e30e7fb448f3da00e6ccff45d037257d1ec2e..60b727cbd82153637230b40cbc709724de83ba8f 100644 (file)
@@ -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 */
 
 /**