From b54107cfa32cb52fd3bfc805d95d136e2fab52a2 Mon Sep 17 00:00:00 2001 From: Yuan Zhao Date: Wed, 15 Jul 2020 17:03:39 +0800 Subject: [PATCH] disp: msm: dsi: add a new PWM pinctrl configure The default PWM gpio pin mode was not right for PWM backlight control. If needs to use PWM backlight, must config the gpio pinctrl. Change-Id: I5fd6b947d379b53ef4c358be1b935a2ad4970f99 Signed-off-by: Yuan Zhao --- msm/dsi/dsi_panel.c | 16 ++++++++++++++++ msm/dsi/dsi_panel.h | 1 + 2 files changed, 17 insertions(+) diff --git a/msm/dsi/dsi_panel.c b/msm/dsi/dsi_panel.c index 2bb185888a..49dcfd36ae 100644 --- a/msm/dsi/dsi_panel.c +++ b/msm/dsi/dsi_panel.c @@ -477,6 +477,14 @@ static int dsi_panel_pinctrl_init(struct dsi_panel *panel) goto error; } + panel->pinctrl.pwm_pin = + pinctrl_lookup_state(panel->pinctrl.pinctrl, "pwm_pin"); + + if (IS_ERR_OR_NULL(panel->pinctrl.pwm_pin)) { + panel->pinctrl.pwm_pin = NULL; + DSI_DEBUG("failed to get pinctrl pwm_pin"); + } + error: return rc; } @@ -649,6 +657,14 @@ static int dsi_panel_pwm_register(struct dsi_panel *panel) return rc; } + if (panel->pinctrl.pwm_pin) { + rc = pinctrl_select_state(panel->pinctrl.pinctrl, + panel->pinctrl.pwm_pin); + if (rc) + DSI_ERR("[%s] failed to set pwm pinctrl, rc=%d\n", + panel->name, rc); + } + return 0; } diff --git a/msm/dsi/dsi_panel.h b/msm/dsi/dsi_panel.h index d5f08704b8..58c19ee1f3 100644 --- a/msm/dsi/dsi_panel.h +++ b/msm/dsi/dsi_panel.h @@ -97,6 +97,7 @@ struct dsi_pinctrl_info { struct pinctrl *pinctrl; struct pinctrl_state *active; struct pinctrl_state *suspend; + struct pinctrl_state *pwm_pin; }; struct dsi_panel_phy_props {