target: msm8953: Add PWM support to msm8953 target
Add PWM support for PMI632 on msm8953 target to enable
display in lk.
Change-Id: I80059e4c762e3f8545f6c0c131298c98d1ffbdef
Signed-off-by: Rashi Bindra <rbindra@codeaurora.org>
diff --git a/project/msm8953.mk b/project/msm8953.mk
index a7a5f72..f14a49b 100644
--- a/project/msm8953.mk
+++ b/project/msm8953.mk
@@ -29,7 +29,7 @@
endif
ENABLE_SMD_SUPPORT := 1
-#ENABLE_PWM_SUPPORT := true
+ENABLE_PWM_SUPPORT := true
#DEFINES += WITH_DEBUG_DCC=1
DEFINES += WITH_DEBUG_LOG_BUF=1
diff --git a/target/msm8953/target_display.c b/target/msm8953/target_display.c
index 10a2356..f276f64 100644
--- a/target/msm8953/target_display.c
+++ b/target/msm8953/target_display.c
@@ -60,6 +60,8 @@
#define STRENGTH_SIZE_IN_BYTES 10
#define REGULATOR_SIZE_IN_BYTES 5
#define LANE_SIZE_IN_BYTES 20
+#define PWM_DUTY_US 13
+#define PWM_PERIOD_US 27
/*---------------------------------------------------------------------------*/
/* GPIO configuration */
/*---------------------------------------------------------------------------*/
@@ -127,11 +129,24 @@
pm8x41_wled_config_slave_id(slave_id);
if (target_get_pmic() == PMIC_IS_PMI632) {
qpnp_lcdb_enable(enable);
- }
- else {
+ } else {
qpnp_wled_enable_backlight(enable);
qpnp_ibb_enable(enable);
}
+
+ return NO_ERROR;
+}
+
+static int pwm_backlight_ctrl(uint8_t enable)
+{
+ if(enable) {
+ pm_pwm_enable(false);
+ pm_pwm_config(PWM_DUTY_US, PWM_PERIOD_US);
+ pm_pwm_enable(true);
+ } else {
+ pm_pwm_enable(false);
+ }
+
return NO_ERROR;
}
@@ -142,8 +157,11 @@
if (bl->bl_interface_type == BL_DCS)
return ret;
- ret = wled_backlight_ctrl(enable);
-
+ if(target_get_pmic() == PMIC_IS_PMI632) {
+ ret = pwm_backlight_ctrl(enable);
+ } else {
+ ret = wled_backlight_ctrl(enable);
+ }
return ret;
}