msm: board-8930: add gpio-controlled backlight function
The function pointer is passed to driver to turn on/off backlight to
avoid garbage display.
CRs-fixed: 408728
Change-Id: Ibb218246bd3414b7004289e5afd0594a186374f1
Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org>
diff --git a/arch/arm/mach-msm/board-8930-display.c b/arch/arm/mach-msm/board-8930-display.c
index a0bfabf..2c3eea44 100644
--- a/arch/arm/mach-msm/board-8930-display.c
+++ b/arch/arm/mach-msm/board-8930-display.c
@@ -132,6 +132,15 @@
};
static bool dsi_power_on;
+static struct mipi_dsi_panel_platform_data novatek_pdata;
+static void pm8917_gpio_set_backlight(int bl_level)
+{
+ int gpio24 = PM8917_GPIO_PM_TO_SYS(24);
+ if (bl_level > 0)
+ gpio_set_value_cansleep(gpio24, 1);
+ else
+ gpio_set_value_cansleep(gpio24, 0);
+}
/*
* TODO: When physical 8930/PM8038 hardware becomes
@@ -214,9 +223,13 @@
rc);
return -ENODEV;
}
+ gpio_set_value_cansleep(gpio24, 0);
+ novatek_pdata.gpio_set_backlight =
+ pm8917_gpio_set_backlight;
}
dsi_power_on = true;
}
+
if (on) {
rc = regulator_set_optimum_mode(reg_l8, 100000);
if (rc < 0) {
@@ -256,8 +269,6 @@
gpio_set_value(DISP_RST_GPIO, 1);
gpio_set_value(DISP_3D_2D_MODE, 1);
usleep(20);
- if (socinfo_get_pmic_model() == PMIC_MODEL_PM8917)
- gpio_set_value_cansleep(gpio24, 1);
} else {
gpio_set_value(DISP_RST_GPIO, 0);
@@ -294,8 +305,6 @@
}
gpio_set_value(DISP_3D_2D_MODE, 0);
usleep(20);
- if (socinfo_get_pmic_model() == PMIC_MODEL_PM8917)
- gpio_set_value_cansleep(gpio24, 0);
}
return 0;
}