diff --git a/charger/Android.mk b/charger/Android.mk
index 0f5e55f..0492ad9 100644
--- a/charger/Android.mk
+++ b/charger/Android.mk
@@ -7,6 +7,15 @@
 LOCAL_C_INCLUDES := \
     system/core/healthd \
     bootable/recovery
+ifneq ($(BACKLIGHT_PATH),)
+    LOCAL_CFLAGS += -DHEALTHD_BACKLIGHT_PATH=\"$(BACKLIGHT_PATH)\"
+endif
+ifneq ($(SECONDARY_BACKLIGHT_PATH),)
+    LOCAL_CFLAGS += -DHEALTHD_SECONDARY_BACKLIGHT_PATH=\"$(SECONDARY_BACKLIGHT_PATH)\"
+endif
+ifneq ($(HEALTHD_BACKLIGHT_LEVEL),)
+    LOCAL_CFLAGS += -DHEALTHD_BACKLIGHT_LEVEL=$(HEALTHD_BACKLIGHT_LEVEL)
+endif
 include $(BUILD_STATIC_LIBRARY)
 
 include $(CLEAR_VARS)
diff --git a/charger/healthd_board_cm.cpp b/charger/healthd_board_cm.cpp
index c5aa3e6..8d38e5a 100644
--- a/charger/healthd_board_cm.cpp
+++ b/charger/healthd_board_cm.cpp
@@ -365,9 +365,49 @@
 {
 }
 
+#ifdef HEALTHD_BACKLIGHT_PATH
+#ifndef HEALTHD_BACKLIGHT_LEVEL
+#define HEALTHD_BACKLIGHT_LEVEL 100
+#endif
+
+void healthd_board_mode_charger_set_backlight(bool on)
+{
+    int fd;
+    char buffer[10];
+
+    memset(buffer, '\0', sizeof(buffer));
+    fd = open(HEALTHD_BACKLIGHT_PATH, O_RDWR);
+    if (fd < 0) {
+        LOGE("Could not open backlight node : %s\n", strerror(errno));
+        return;
+    }
+    LOGV("Enabling backlight\n");
+    snprintf(buffer, sizeof(buffer), "%d\n", on ? HEALTHD_BACKLIGHT_LEVEL : 0);
+    if (write(fd, buffer, strlen(buffer)) < 0) {
+        LOGE("Could not write to backlight : %s\n", strerror(errno));
+    }
+    close(fd);
+
+#ifdef HEALTHD_SECONDARY_BACKLIGHT_PATH
+    fd = open(HEALTHD_SECONDARY_BACKLIGHT_PATH, O_RDWR);
+    if (fd < 0) {
+        LOGE("Could not open second backlight node : %s\n", strerror(errno));
+        return;
+    }
+    LOGV("Enabling secondary backlight\n");
+    if (write(fd, buffer, strlen(buffer)) < 0) {
+        LOGE("Could not write to second backlight : %s\n", strerror(errno));
+        return;
+    }
+    close(fd);
+#endif
+}
+
+#else
 void healthd_board_mode_charger_set_backlight(bool)
 {
 }
+#endif
 
 void healthd_board_mode_charger_init(void)
 {
