karo: common: remove '_' from DT property names
authorLothar Waßmann <LW@KARO-electronics.de>
Thu, 9 May 2019 13:41:59 +0000 (15:41 +0200)
committerLothar Waßmann <LW@KARO-electronics.de>
Thu, 9 May 2019 13:41:59 +0000 (15:41 +0200)
DT property names should not contain underscores but dashes as word
delimiters. The DT files in Linux have been updated to reflect this.
For compatibility with older DTBs support both variants of certain
property names.

board/karo/common/fdt.c

index 65b6a86..7f6ac56 100644 (file)
@@ -385,11 +385,15 @@ void karo_fdt_fixup_flexcan(void *blob, int xcvr_present)
                if (karo_fdt_flexcan_enabled(blob)) {
                        if (!is_lvds()) {
                                debug("Changing LCD to use 23bits only\n");
+                               karo_fdt_set_lcd_pins(blob, "lcdif-23bit-pins-a");
+                               /* handle legacy alias name */
                                karo_fdt_set_lcd_pins(blob, "lcdif_23bit_pins_a");
                                xcvr_status = NULL;
                        }
                } else if (!is_lvds()) {
                        debug("Changing LCD to use 24bits\n");
+                       karo_fdt_set_lcd_pins(blob, "lcdif-24bit-pins-a");
+                       /* handle legacy alias name */
                        karo_fdt_set_lcd_pins(blob, "lcdif_24bit_pins_a");
                }
        } else {
@@ -400,8 +404,11 @@ void karo_fdt_fixup_flexcan(void *blob, int xcvr_present)
                off = fdt_path_offset(blob, "can1");
                if (off >= 0)
                        fdt_delprop(blob, off, "xceiver-supply");
-               if (!is_lvds())
+               if (!is_lvds()) {
+                       karo_fdt_set_lcd_pins(blob, "lcdif-24bit-pins-a");
+                       /* handle legacy alias name */
                        karo_fdt_set_lcd_pins(blob, "lcdif_24bit_pins_a");
+               }
        }
 
        if (otg_mode && strcasecmp(otg_mode, "host") == 0)
@@ -409,9 +416,12 @@ void karo_fdt_fixup_flexcan(void *blob, int xcvr_present)
 
        if (xcvr_status) {
                debug("Disabling CAN XCVR\n");
-               ret = fdt_find_and_setprop(blob, "reg_can_xcvr", "status",
+               ret = fdt_find_and_setprop(blob, "reg-can-xcvr", "status",
                                        xcvr_status, strlen(xcvr_status) + 1, 1);
-               if (ret)
+               if (ret == -FDT_ERR_NOTFOUND)
+                       ret = fdt_find_and_setprop(blob, "reg_can_xcvr", "status",
+                                                  xcvr_status, strlen(xcvr_status) + 1, 1);
+               if (ret != -FDT_ERR_NOTFOUND)
                        printf("Failed to disable CAN transceiver switch: %s\n",
                                fdt_strerror(ret));
        }