msm: Display: Add support for backlight control on 8930 chipset.
Register the PMIC WLED trigger driver to control the backlight level
on 8930 chipset.
CRs-fixed: 339310
Change-Id: Ia73625cfeaa18f2515c81a4c128f98f9fb5c0b32
Signed-off-by: Chandan Uddaraju <chandanu@codeaurora.org>
diff --git a/drivers/leds/leds-pm8xxx.c b/drivers/leds/leds-pm8xxx.c
index 6770ec8..fa42c2c 100644
--- a/drivers/leds/leds-pm8xxx.c
+++ b/drivers/leds/leds-pm8xxx.c
@@ -71,7 +71,7 @@
#define WLED_OP_FDBCK_MASK 0x1C
#define WLED_OP_FDBCK_BIT_SHFT 0x02
-#define WLED_MAX_LEVEL 100
+#define WLED_MAX_LEVEL 255
#define WLED_8_BIT_MASK 0xFF
#define WLED_8_BIT_SHFT 0x08
#define WLED_MAX_DUTY_CYCLE 0xFFF
diff --git a/drivers/video/msm/mipi_novatek.c b/drivers/video/msm/mipi_novatek.c
index ed0dee4..0070757 100644
--- a/drivers/video/msm/mipi_novatek.c
+++ b/drivers/video/msm/mipi_novatek.c
@@ -14,6 +14,7 @@
#ifdef CONFIG_SPI_QUP
#include <linux/spi/spi.h>
#endif
+#include <linux/leds.h>
#include "msm_fb.h"
#include "mipi_dsi.h"
#include "mipi_novatek.h"
@@ -26,6 +27,8 @@
static struct dsi_buf novatek_rx_buf;
static int mipi_novatek_lcd_init(void);
+static int wled_trigger_initialized;
+
#define MIPI_DSI_NOVATEK_SPI_DEVICE_NAME "dsi_novatek_3d_panel_spi"
#define HPCI_FPGA_READ_CMD 0x84
#define HPCI_FPGA_WRITE_CMD 0x04
@@ -427,12 +430,17 @@
return 0;
}
-
+DEFINE_LED_TRIGGER(bkl_led_trigger);
static void mipi_novatek_set_backlight(struct msm_fb_data_type *mfd)
{
struct mipi_panel_info *mipi;
+ if ((mipi_novatek_pdata->enable_wled_bl_ctrl)
+ && (wled_trigger_initialized)) {
+ led_trigger_event(bkl_led_trigger, mfd->bl_level);
+ return;
+ }
mipi = &mfd->panel_info.mipi;
mutex_lock(&mfd->dma->ov_mutex);
@@ -639,6 +647,10 @@
pr_info("%s: SUCCESS (SPI)\n", __func__);
#endif
+ led_trigger_register_simple("bkl_trigger", &bkl_led_trigger);
+ pr_info("%s: SUCCESS (WLED TRIGGER)\n", __func__);
+ wled_trigger_initialized = 1;
+
mipi_dsi_buf_alloc(&novatek_tx_buf, DSI_BUF_SIZE);
mipi_dsi_buf_alloc(&novatek_rx_buf, DSI_BUF_SIZE);