From 6e9b4cd96b31b3b63596350e3d13b74d93bcc161 Mon Sep 17 00:00:00 2001 From: Shivaraj Shetty Date: Fri, 26 Sep 2014 12:08:01 +0530 Subject: [PATCH] clk: qcom: mdss: add DSI PLL clock driver support for msm8909 Add changes for DSI PLL clock driver support for msm8909. Add the compatibility string of the DSI PLL handle so that the detection and support of DSI PLL driver for 8909 happens dynamically. Change-Id: If1fb96982433f90c5b82dda8686b7284825bcd09 Signed-off-by: Shivaraj Shetty --- Documentation/devicetree/bindings/fb/mdss-pll.txt | 13 +++++++++++-- drivers/clk/msm/mdss/mdss-dsi-pll-28lpm.c | 3 ++- drivers/clk/msm/mdss/mdss-pll.c | 4 ++++ drivers/clk/msm/mdss/mdss-pll.h | 1 + 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/fb/mdss-pll.txt b/Documentation/devicetree/bindings/fb/mdss-pll.txt index ad06323bfba5..1a8b17579bd0 100644 --- a/Documentation/devicetree/bindings/fb/mdss-pll.txt +++ b/Documentation/devicetree/bindings/fb/mdss-pll.txt @@ -5,12 +5,18 @@ are compatable with MIPI display serial interface specification, HDMI and edp. Required properties: -- compatible: Compatible name used in the driver +- compatible: Compatible name used in the driver. Should be one of: + "qcom,mdss_dsi_pll_8916", "qcom,mdss_dsi_pll_8939", + "qcom,mdss_dsi_pll_8974", "qcom,mdss_dsi_pll_8994", + "qcom,mdss_dsi_pll_8994", "qcom,mdss_dsi_pll_8909", + "qcom,mdss_hdmi_pll", "qcom,mdss_hdmi_pll_8994" - cell-index: Specifies the controller used - reg: offset and length of the register set for the device. - reg-names : names to refer to register sets related to this device - gdsc-supply: Phandle for gdsc regulator device node. - vddio-supply: Phandle for vddio regulator device node. +- clocks: List of Phandles for clock device nodes + needed by the device. - clock-names: List of clock names needed by the device. - clock-rate: List of clock rates in Hz. @@ -36,7 +42,7 @@ Optional properties: Example: mdss_dsi0_pll: qcom,mdss_dsi_pll@fd922A00 { - compatible = "qcom,mdss_dsi_pll"; + compatible = "qcom,mdss_dsi_pll_8974"; label = "MDSS DSI 0 PLL"; cell-index = <0>; @@ -47,6 +53,9 @@ Example: vddio-supply = <&pm8941_l12>; vcca-supply = <&pm8941_l28>; + clocks = <&clock_gcc clk_gcc_mdss_mdp_clk>, + <&clock_gcc clk_gcc_mdss_ahb_clk>, + <&clock_gcc clk_gcc_mdss_axi_clk>; clock-names = "mdp_core_clk", "iface_clk", "bus_clk"; clock-rate = <0>, <0>, <0>; diff --git a/drivers/clk/msm/mdss/mdss-dsi-pll-28lpm.c b/drivers/clk/msm/mdss/mdss-dsi-pll-28lpm.c index 4e998e139943..2c8e93670c80 100644 --- a/drivers/clk/msm/mdss/mdss-dsi-pll-28lpm.c +++ b/drivers/clk/msm/mdss/mdss-dsi-pll-28lpm.c @@ -286,7 +286,8 @@ int dsi_pll_clock_register_lpm(struct platform_device *pdev, byte_mux_clk_ops.prepare = dsi_pll_mux_prepare; if (pll_res->target_id == MDSS_PLL_TARGET_8916 || - pll_res->target_id == MDSS_PLL_TARGET_8939) { + pll_res->target_id == MDSS_PLL_TARGET_8939 || + pll_res->target_id == MDSS_PLL_TARGET_8909) { rc = of_msm_clock_register(pdev->dev.of_node, mdss_dsi_pllcc_8916, ARRAY_SIZE(mdss_dsi_pllcc_8916)); if (rc) { diff --git a/drivers/clk/msm/mdss/mdss-pll.c b/drivers/clk/msm/mdss/mdss-pll.c index d5119cc548c0..093c93cbf72b 100644 --- a/drivers/clk/msm/mdss/mdss-pll.c +++ b/drivers/clk/msm/mdss/mdss-pll.c @@ -133,6 +133,9 @@ static int mdss_pll_resource_parse(struct platform_device *pdev, } else if (!strcmp(compatible_stream, "qcom,mdss_dsi_pll_8939")) { pll_res->pll_interface_type = MDSS_DSI_PLL_LPM; pll_res->target_id = MDSS_PLL_TARGET_8939; + } else if (!strcmp(compatible_stream, "qcom,mdss_dsi_pll_8909")) { + pll_res->pll_interface_type = MDSS_DSI_PLL_LPM; + pll_res->target_id = MDSS_PLL_TARGET_8909; } else if (!strcmp(compatible_stream, "qcom,mdss_dsi_pll_8974")) { pll_res->pll_interface_type = MDSS_DSI_PLL_HPM; pll_res->target_id = MDSS_PLL_TARGET_8974; @@ -365,6 +368,7 @@ static const struct of_device_id mdss_pll_dt_match[] = { {.compatible = "qcom,mdss_hdmi_pll_8994"}, {.compatible = "qcom,mdss_dsi_pll_8916"}, {.compatible = "qcom,mdss_dsi_pll_8939"}, + {.compatible = "qcom,mdss_dsi_pll_8909"}, {.compatible = "qcom,mdss_edp_pll"}, {.compatible = "qcom,mdss_hdmi_pll"}, {} diff --git a/drivers/clk/msm/mdss/mdss-pll.h b/drivers/clk/msm/mdss/mdss-pll.h index 20642a9270f0..6092e332ed1d 100644 --- a/drivers/clk/msm/mdss/mdss-pll.h +++ b/drivers/clk/msm/mdss/mdss-pll.h @@ -42,6 +42,7 @@ enum { MDSS_PLL_TARGET_8994, MDSS_PLL_TARGET_8916, MDSS_PLL_TARGET_8939, + MDSS_PLL_TARGET_8909, }; struct mdss_pll_resources {