drm/msm/dsi: Use pinctrl in DSI driver
Subsystems (4)
PATCH 1/1 drm/msm/dsi: Use pinctrl in DSI driver
Some targets use pinctrl framework to configure some pins. This change allows DSI driver to set default and sleep pinctrl status.
Signed-off-by Hai Li <[email protected]>
--- Documentation/devicetree/bindings/drm/msm/dsi.txt | 7 +++++++ drivers/gpu/drm/msm/dsi/dsi_host.c | 12 ++++++++++++ 2 files changed, 19 insertions(+)
Documentation/devicetree/bindings/drm/msm/dsi.txt +7 -0
@@ -38,6 +38,9 @@ Optional properties: driving a 2-DSI panel whose 2 links need receive command simultaneously. - interrupt-parent: phandle to the MDP block if the interrupt signal is routed through MDP block +- pinctrl-names: the pin control state names; should contain "default" +- pinctrl-0: the default pinctrl state (active) +- pinctrl-n: the "sleep" pinctrl state DSI PHY: Required properties:
@@ -94,6 +97,10 @@ Example: qcom,master-dsi; qcom,sync-dual-dsi; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&mdss_dsi_active>; + pinctrl-1 = <&mdss_dsi_suspend>; + panel: panel@0 { compatible = "sharp,lq101r1sx01"; reg = <0>;
drivers/gpu/drm/msm/dsi/dsi_host.c +12 -0
@@ -20,6 +20,7 @@#include <linux/of_device.h> #include <linux/of_gpio.h> #include <linux/of_irq.h> +#include <linux/pinctrl/consumer.h> #include <linux/regulator/consumer.h> #include <linux/spinlock.h> #include <video/mipi_display.h>
@@ -1919,6 +1920,13 @@ int msm_dsi_host_power_on(struct mipi_dsi_host *host) goto fail_disable_reg; } + ret =pinctrl_pm_select_default_state (&msm_host->pdev->dev); +if (ret) { +pr_err ("%s: failed to set pinctrl default state, %d\n" , + __func__, ret); + goto fail_disable_clk; + } +dsi_timing_setup (msm_host);dsi_sw_reset (msm_host);dsi_ctrl_config (msm_host, true, clk_pre, clk_post);
@@ -1931,6 +1939,8 @@ int msm_dsi_host_power_on(struct mipi_dsi_host *host)return 0 ; +fail_disable_clk: +dsi_clk_ctrl (msm_host,0 ); fail_disable_reg:dsi_host_regulator_disable (msm_host); unlock_ret:
@@ -1953,6 +1963,8 @@ int msm_dsi_host_power_off(struct mipi_dsi_host *host)if (msm_host->disp_en_gpio)gpiod_set_value (msm_host->disp_en_gpio,0 ); +pinctrl_pm_select_sleep_state (&msm_host->pdev->dev); +msm_dsi_manager_phy_disable (msm_host->id);dsi_clk_ctrl (msm_host,0 );
Signature · 7 lines
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, hosted by The Linux Foundation _______________________________________________ dri-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/dri-devel