dsi: add new backlight control type I2C

dsi:
Add new backlight I2C.
Can't use WLED type, because WLED type don't consider if backlight
device is inited later then panel.

Change-Id: I1dcb4e10eaaecca8da4d44e384b1e49fb351693c
Signed-off-by: wangyq13 <wangyq13@lenovo.com>
Reviewed-on: https://gerrit.mot.com/1621694
SLTApproved: Slta Waiver
SME-Granted: SME Approvals Granted
Tested-by: Jira Key
Reviewed-by: Hua Tan <tanhua1@motorola.com>
Reviewed-by: Jing Hu <hujing3@lenovo.com>
Reviewed-by: Dezhen Hou <houdz1@motorola.com>
Reviewed-by: Guobin Zhang <zhanggb@motorola.com>
Submit-Approved: Jira Key
Signed-off-by: tanhua1 <tanhua1@lenovo.com>
Reviewed-on: https://gerrit.mot.com/1949835
Reviewed-by: Xiangpo Zhao <zhaoxp3@motorola.com>
Reviewed-on: https://gerrit.mot.com/2045804
Reviewed-by: Zhihong Kang <kangzh@motorola.com>
Reviewed-by: Huosheng Liao <liaohs@motorola.com>
This commit is contained in:
wangyq13 2020-06-15 17:42:36 +08:00 • committed by tongkun1
commit 83a97f26b2
2 changed files with 17 additions and 0 deletions

View file

@ -856,6 +856,12 @@ int dsi_panel_set_backlight(struct dsi_panel *panel, u32 bl_lvl)
case DSI_BACKLIGHT_PWM:
rc = dsi_panel_update_pwm_backlight(panel, bl_lvl);
break;
case DSI_BACKLIGHT_I2C:
if (!(bl->raw_bd))
bl->raw_bd = backlight_device_get_by_type(BACKLIGHT_RAW);
else
rc = backlight_device_set_brightness(bl->raw_bd, bl_lvl);
break;
default:
DSI_ERR("Backlight type(%d) not supported\n", bl->type);
rc = -ENOTSUPP;
@ -878,6 +884,10 @@ static u32 dsi_panel_get_brightness(struct dsi_backlight_config *bl)
if (bd->ops && bd->ops->get_brightness)
cur_bl_level = bd->ops->get_brightness(bd);
break;
case DSI_BACKLIGHT_I2C:
if (bd && bd->ops && bd->ops->get_brightness)
cur_bl_level = bd->ops->get_brightness(bd);
break;
case DSI_BACKLIGHT_DCS:
case DSI_BACKLIGHT_EXTERNAL:
case DSI_BACKLIGHT_PWM:
@ -1139,6 +1149,8 @@ static int dsi_panel_bl_register(struct dsi_panel *panel)
break;
case DSI_BACKLIGHT_DCS:
break;
case DSI_BACKLIGHT_I2C:
break;
case DSI_BACKLIGHT_DUMMY:
break;
case DSI_BACKLIGHT_EXTERNAL:
@ -1176,6 +1188,8 @@ static int dsi_panel_bl_unregister(struct dsi_panel *panel)
break;
case DSI_BACKLIGHT_DCS:
break;
case DSI_BACKLIGHT_I2C:
break;
case DSI_BACKLIGHT_DUMMY:
break;
case DSI_BACKLIGHT_EXTERNAL:
@ -2905,6 +2919,8 @@ static int dsi_panel_parse_bl_config(struct dsi_panel *panel)
panel->bl_config.type = DSI_BACKLIGHT_DUMMY;
} else if (!strcmp(bl_type, "bl_ctrl_external")) {
panel->bl_config.type = DSI_BACKLIGHT_EXTERNAL;
} else if (!strcmp(bl_type, "bl_ctrl_i2c")) {
panel->bl_config.type = DSI_BACKLIGHT_I2C;
} else {
DSI_DEBUG("[%s] bl-pmic-control-type unknown-%s\n",
panel->name, bl_type);

View file

@ -82,6 +82,7 @@ enum dsi_backlight_type {
DSI_BACKLIGHT_DCS,
DSI_BACKLIGHT_DUMMY,
DSI_BACKLIGHT_EXTERNAL,
DSI_BACKLIGHT_I2C,
DSI_BACKLIGHT_UNKNOWN,
DSI_BACKLIGHT_MAX,
};