dtoverlay: Add dt_node_is_enabled
authorPhil Elwell <phil@raspberrypi.org>
Wed, 15 Mar 2017 13:26:38 +0000 (13:26 +0000)
committerpopcornmix <popcornmix@gmail.com>
Tue, 21 Mar 2017 20:55:48 +0000 (20:55 +0000)
helpers/dtoverlay/dtoverlay.c
helpers/dtoverlay/dtoverlay.h

index 2a3fca07fbd66c41edbc13ca9919609c975c5f1f..22c30947588c71314670571e34079d2c5a0c0221 100644 (file)
@@ -1579,7 +1579,7 @@ int dtoverlay_find_symbol(DTBLOB_T *dtb, const char *symbol_name)
 }
 
 int dtoverlay_find_matching_node(DTBLOB_T *dtb, const char **node_names,
-                                int pos)
+                                 int pos)
 {
    while (1)
    {
@@ -1605,6 +1605,19 @@ int dtoverlay_find_matching_node(DTBLOB_T *dtb, const char **node_names,
    return -1;
 }
 
+int dtoverlay_node_is_enabled(DTBLOB_T *dtb, int pos)
+{
+   if (pos >= 0)
+   {
+      const void *prop = dtoverlay_get_property(dtb, pos, "status", NULL);
+      if (prop &&
+          ((strcmp((const char *)prop, "okay") == 0) ||
+           (strcmp((const char *)prop, "ok") == 0)))
+         return 1;
+   }
+   return 0;
+}
+
 const void *dtoverlay_get_property(DTBLOB_T *dtb, int pos, const char *prop_name, int *prop_len)
 {
    return fdt_getprop(dtb->fdt, pos, prop_name, prop_len);
index 63f00cfb41e2cf3cfa1fc6a9a1b87059b261e374..217f5b95fd63b0a095c250cc63f055ab659297d8 100644 (file)
@@ -173,6 +173,8 @@ int dtoverlay_find_symbol(DTBLOB_T *dtb, const char *symbol_name);
 int dtoverlay_find_matching_node(DTBLOB_T *dtb, const char **node_names,
                                  int pos);
 
+int dtoverlay_node_is_enabled(DTBLOB_T *dtb, int pos);
+
 const void *dtoverlay_get_property(DTBLOB_T *dtb, int pos,
                                    const char *prop_name, int *prop_len);