mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-08 21:22:09 -04:00
dsi_pwr: Keep one regulator always on
Some panels must let ldo always on. We must add "qcom,supply-always-on" in "qcom,panel-supply-entry". Change-Id: I81669aa225df0abde26e407c391c56412ee7a109 Signed-off-by: houdz1 <houdz1@motorola.com> Reviewed-on: https://gerrit.mot.com/1822732 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Reviewed-by: Yeqing Wang <wangyq13@motorola.com> Reviewed-by: Huosheng Liao <liaohs@motorola.com> Reviewed-by: Shanshan Dai <daiss1@motorola.com> Tested-by: Jira Key Submit-Approved: Jira Key
This commit is contained in:
parent
524826043f
commit
02cf7cde50
2 changed files with 16 additions and 0 deletions
|
|
@ -22,6 +22,7 @@ static int dsi_pwr_parse_supply_node(struct dsi_parser_utils *utils,
|
|||
int i = 0;
|
||||
u32 tmp = 0;
|
||||
struct device_node *node = NULL;
|
||||
bool is_always_on = FALSE;
|
||||
|
||||
dsi_for_each_child_node(root, node) {
|
||||
const char *st = NULL;
|
||||
|
|
@ -112,6 +113,14 @@ static int dsi_pwr_parse_supply_node(struct dsi_parser_utils *utils,
|
|||
regs->vregs[i].post_off_sleep = tmp;
|
||||
}
|
||||
|
||||
is_always_on = utils->read_bool(node, "qcom,supply-always-on");
|
||||
if (!is_always_on) {
|
||||
DSI_DEBUG("qcom,supply-always-on not specified\n");
|
||||
} else {
|
||||
regs->vregs[i].is_always_on = is_always_on;
|
||||
DSI_INFO("%s: always-on is specified\n", regs->vregs[i].vreg_name);
|
||||
}
|
||||
|
||||
DSI_DEBUG("[%s] minv=%d maxv=%d, en_load=%d, dis_load=%d\n",
|
||||
regs->vregs[i].vreg_name,
|
||||
regs->vregs[i].min_voltage,
|
||||
|
|
@ -206,6 +215,12 @@ static int dsi_pwr_enable_vregs(struct dsi_regulator_info *regs, bool enable)
|
|||
pre_off_ms = vreg->pre_off_sleep;
|
||||
post_off_ms = vreg->post_off_sleep;
|
||||
|
||||
if (vreg->is_always_on)
|
||||
{
|
||||
DSI_INFO("%s is always on\n", vreg->vreg_name);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (pre_off_ms)
|
||||
usleep_range((pre_off_ms * 1000),
|
||||
(pre_off_ms * 1000) + 10);
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ struct dsi_vreg {
|
|||
u32 post_on_sleep;
|
||||
u32 pre_off_sleep;
|
||||
u32 post_off_sleep;
|
||||
bool is_always_on;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in a new issue