]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
karo: fdt: don't enable can xcvr if it was not enabled beforehand
authorLothar Waßmann <LW@KARO-electronics.de>
Thu, 9 Jan 2014 10:50:12 +0000 (11:50 +0100)
committerLothar Waßmann <LW@KARO-electronics.de>
Thu, 9 Jan 2014 10:50:12 +0000 (11:50 +0100)
board/karo/common/fdt.c

index 2a0c9c1ad6130a17f193bc922418b7e69d55efac..b58bec5f56607113c4749a40ed91eb445228ddad 100644 (file)
@@ -382,13 +382,13 @@ static inline void karo_fdt_set_lcd_pins(void *blob, const char *name)
 void karo_fdt_fixup_flexcan(void *blob, int xcvr_present)
 {
        int ret;
-       const char *xcvr_status = "disabled";
+       const char *xcvr_status = xcvr_present ? "disabled" : NULL;
 
 #ifndef CONFIG_SYS_LVDS_IF
        if (xcvr_present) {
                if (karo_fdt_flexcan_enabled(blob)) {
                        karo_fdt_set_lcd_pins(blob, "lcdif_23bit_pins_a");
-                       xcvr_status = "okay";
+                       xcvr_status = NULL;
                } else {
                        karo_fdt_set_lcd_pins(blob, "lcdif_24bit_pins_a");
                }
@@ -401,12 +401,14 @@ void karo_fdt_fixup_flexcan(void *blob, int xcvr_present)
                karo_fdt_set_lcd_pins(blob, "lcdif_24bit_pins_a");
        }
 #endif
-       debug("Disabling CAN XCVR\n");
-       ret = fdt_find_and_setprop(blob, "reg_can_xcvr", "status",
-                               xcvr_status, strlen(xcvr_status) + 1, 1);
-       if (ret)
-               printf("Failed to disable CAN transceiver switch: %s\n",
-                       fdt_strerror(ret));
+       if (xcvr_status) {
+               debug("Disabling CAN XCVR\n");
+               ret = fdt_find_and_setprop(blob, "reg_can_xcvr", "status",
+                                       xcvr_status, strlen(xcvr_status) + 1, 1);
+               if (ret)
+                       printf("Failed to disable CAN transceiver switch: %s\n",
+                               fdt_strerror(ret));
+       }
 }
 
 void karo_fdt_del_prop(void *blob, const char *compat, phys_addr_t offs,