]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - board/karo/common/fdt.c
karo: tx: get LCD backlight polarity from DT
[karo-tx-uboot.git] / board / karo / common / fdt.c
index 979804d45c055a22236d37411de27a294182143b..a6d1951fd1b5f3ab95d308e1b9144c9945b73b52 100644 (file)
@@ -819,3 +819,28 @@ u8 karo_fdt_get_lvds_channels(const void *blob)
        }
        return lvds_chan_mask;
 }
+
+int karo_fdt_get_backlight_polarity(const void *blob)
+{
+       int off = fdt_path_offset(blob, "/backlight");
+       const struct fdt_property *prop;
+       int len;
+
+       if (off < 0) {
+               printf("/backlight node not found in DT\n");
+               return off;
+       }
+
+       prop = fdt_get_property(blob, off, "pwms", &len);
+       if (!prop)
+               printf("'pwms' property not found\n");
+       else
+               debug("'pwms' property has len %d\n", len);
+
+       len /= sizeof(u32);
+       if (prop && len > 3) {
+               const u32 *data = (const u32 *)prop->data;
+               return fdt32_to_cpu(data[3]) == 0;
+       }
+       return 0;
+}