Author: gonzo
Date: Thu Apr  2 02:43:48 2015
New Revision: 280978
URL: https://svnweb.freebsd.org/changeset/base/280978

Log:
  Handle multiple "gpio-leds"-compatible nodes
  
  There are cases when gpioled nodes in DTS come from different sources
  (e.g. standard Beaglebone Black LEDs in main DTS + shield LEDs in
  overlay DTS) so instead of handling only first compatible node go
  through all child nodes

Modified:
  head/sys/dev/gpio/gpioled.c

Modified: head/sys/dev/gpio/gpioled.c
==============================================================================
--- head/sys/dev/gpio/gpioled.c Thu Apr  2 02:14:58 2015        (r280977)
+++ head/sys/dev/gpio/gpioled.c Thu Apr  2 02:43:48 2015        (r280978)
@@ -106,15 +106,16 @@ gpioled_identify(driver_t *driver, devic
        root = OF_finddevice("/");
        if (root == 0)
                return;
-       leds = fdt_find_compatible(root, "gpio-leds", 1);
-       if (leds == 0)
-               return;
-       /* Traverse the 'gpio-leds' node and add its children. */
-       for (child = OF_child(leds); child != 0; child = OF_peer(child)) {
-               if (!OF_hasprop(child, "gpios"))
-                       continue;
-               if (ofw_gpiobus_add_fdt_child(bus, driver->name, child) == NULL)
+       for (leds = OF_child(root); leds != 0; leds = OF_peer(leds)) {
+               if (!fdt_is_compatible_strict(leds, "gpio-leds"))
                        continue;
+               /* Traverse the 'gpio-leds' node and add its children. */
+               for (child = OF_child(leds); child != 0; child = 
OF_peer(child)) {
+                       if (!OF_hasprop(child, "gpios"))
+                               continue;
+                       if (ofw_gpiobus_add_fdt_child(bus, driver->name, child) 
== NULL)
+                               continue;
+               }
        }
 }
 #endif
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to