diff mbox

[v6,08/13] clk: qcom: gdsc: Add GDSCs in msm8916 GCC

Message ID 1437549069-29655-9-git-send-email-rnayak@codeaurora.org (mailing list archive)
State New, archived
Delegated to: Andy Gross
Headers show

Commit Message

Rajendra Nayak July 22, 2015, 7:11 a.m. UTC
Add all data for the GDSCs which are part of msm8916 GCC block.

Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org>
---
 drivers/clk/qcom/Kconfig                     |  1 +
 drivers/clk/qcom/gcc-msm8916.c               | 52 ++++++++++++++++++++++++++++
 include/dt-bindings/clock/qcom,gcc-msm8916.h |  8 +++++
 3 files changed, 61 insertions(+)

Comments

Stephen Boyd July 23, 2015, 1:07 a.m. UTC | #1
On 07/22/2015 12:11 AM, Rajendra Nayak wrote:
> @@ -2562,6 +2563,47 @@ static struct clk_branch gcc_venus0_vcodec0_clk = {
>   	},
>   };
>   
> +static struct gdsc venus_gdsc = {
> +	.gdscr = 0x4c018,
> +	.pd = {
> +		.name = "venus",
> +	},
> +	.pwrsts = PWRDM_OFF_ON,
> +};
> +
> +static struct gdsc mdss_gdsc = {
> +	.gdscr = 0x4d078,
> +	.pd = {
> +		.name = "mdss",
> +	},
> +	.pwrsts = PWRDM_OFF_ON,
> +};
> +
> +static struct gdsc jpeg_gdsc = {
> +	.gdscr = 0x5701c,
> +	.pd = {
> +		.name = "jpeg",
> +	},
> +	.pwrsts = PWRDM_OFF_ON,
> +};
> +
> +static struct gdsc vfe_gdsc = {
> +	.gdscr = 0x58034,
> +	.pd = {
> +		.name = "vfe",
> +	},
> +	.pwrsts = PWRDM_OFF_ON,

Is this supposed to tbe PWRSTS_OFF_ON?

> +};
> +
> +static struct gdsc oxili_gdsc = {
> +	.gdscr = 0x5901c,
> +	.pd = {
> +		.name = "oxili",
> +	},
> +	.root_con_id = "gfx3d_clk_src",
> +	.pwrsts = PWRDM_OFF_ON,
> +};
> +
Rajendra Nayak July 23, 2015, 8:36 a.m. UTC | #2
On 07/23/2015 06:37 AM, Stephen Boyd wrote:
> On 07/22/2015 12:11 AM, Rajendra Nayak wrote:
>> @@ -2562,6 +2563,47 @@ static struct clk_branch gcc_venus0_vcodec0_clk
>> = {
>>       },
>>   };
>> +static struct gdsc venus_gdsc = {
>> +    .gdscr = 0x4c018,
>> +    .pd = {
>> +        .name = "venus",
>> +    },
>> +    .pwrsts = PWRDM_OFF_ON,
>> +};
>> +
>> +static struct gdsc mdss_gdsc = {
>> +    .gdscr = 0x4d078,
>> +    .pd = {
>> +        .name = "mdss",
>> +    },
>> +    .pwrsts = PWRDM_OFF_ON,
>> +};
>> +
>> +static struct gdsc jpeg_gdsc = {
>> +    .gdscr = 0x5701c,
>> +    .pd = {
>> +        .name = "jpeg",
>> +    },
>> +    .pwrsts = PWRDM_OFF_ON,
>> +};
>> +
>> +static struct gdsc vfe_gdsc = {
>> +    .gdscr = 0x58034,
>> +    .pd = {
>> +        .name = "vfe",
>> +    },
>> +    .pwrsts = PWRDM_OFF_ON,
>
> Is this supposed to tbe PWRSTS_OFF_ON?

indeed, will fix.

--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/clk/qcom/Kconfig b/drivers/clk/qcom/Kconfig
index a7c2eea..0fad2eb 100644
--- a/drivers/clk/qcom/Kconfig
+++ b/drivers/clk/qcom/Kconfig
@@ -54,6 +54,7 @@  config MSM_GCC_8660
 
 config MSM_GCC_8916
 	tristate "MSM8916 Global Clock Controller"
+	select QCOM_GDSC
 	depends on COMMON_CLK_QCOM
 	help
 	  Support for the global clock controller on msm8916 devices.
diff --git a/drivers/clk/qcom/gcc-msm8916.c b/drivers/clk/qcom/gcc-msm8916.c
index c66f7bc..991a1cf 100644
--- a/drivers/clk/qcom/gcc-msm8916.c
+++ b/drivers/clk/qcom/gcc-msm8916.c
@@ -31,6 +31,7 @@ 
 #include "clk-rcg.h"
 #include "clk-branch.h"
 #include "reset.h"
+#include "gdsc.h"
 
 enum {
 	P_XO,
@@ -2562,6 +2563,47 @@  static struct clk_branch gcc_venus0_vcodec0_clk = {
 	},
 };
 
+static struct gdsc venus_gdsc = {
+	.gdscr = 0x4c018,
+	.pd = {
+		.name = "venus",
+	},
+	.pwrsts = PWRDM_OFF_ON,
+};
+
+static struct gdsc mdss_gdsc = {
+	.gdscr = 0x4d078,
+	.pd = {
+		.name = "mdss",
+	},
+	.pwrsts = PWRDM_OFF_ON,
+};
+
+static struct gdsc jpeg_gdsc = {
+	.gdscr = 0x5701c,
+	.pd = {
+		.name = "jpeg",
+	},
+	.pwrsts = PWRDM_OFF_ON,
+};
+
+static struct gdsc vfe_gdsc = {
+	.gdscr = 0x58034,
+	.pd = {
+		.name = "vfe",
+	},
+	.pwrsts = PWRDM_OFF_ON,
+};
+
+static struct gdsc oxili_gdsc = {
+	.gdscr = 0x5901c,
+	.pd = {
+		.name = "oxili",
+	},
+	.root_con_id = "gfx3d_clk_src",
+	.pwrsts = PWRDM_OFF_ON,
+};
+
 static struct clk_regmap *gcc_msm8916_clocks[] = {
 	[GPLL0] = &gpll0.clkr,
 	[GPLL0_VOTE] = &gpll0_vote,
@@ -2703,6 +2745,14 @@  static struct clk_regmap *gcc_msm8916_clocks[] = {
 	[GCC_VENUS0_VCODEC0_CLK] = &gcc_venus0_vcodec0_clk.clkr,
 };
 
+static struct gdsc *gcc_msm8916_gdscs[] = {
+	[VENUS_GDSC] = &venus_gdsc,
+	[MDSS_GDSC] = &mdss_gdsc,
+	[JPEG_GDSC] = &jpeg_gdsc,
+	[VFE_GDSC] = &vfe_gdsc,
+	[OXILI_GDSC] = &oxili_gdsc,
+};
+
 static const struct qcom_reset_map gcc_msm8916_resets[] = {
 	[GCC_BLSP1_BCR] = { 0x01000 },
 	[GCC_BLSP1_QUP1_BCR] = { 0x02000 },
@@ -2810,6 +2860,8 @@  static const struct qcom_cc_desc gcc_msm8916_desc = {
 	.num_clks = ARRAY_SIZE(gcc_msm8916_clocks),
 	.resets = gcc_msm8916_resets,
 	.num_resets = ARRAY_SIZE(gcc_msm8916_resets),
+	.gdscs = gcc_msm8916_gdscs,
+	.num_gdscs = ARRAY_SIZE(gcc_msm8916_gdscs),
 };
 
 static const struct of_device_id gcc_msm8916_match_table[] = {
diff --git a/include/dt-bindings/clock/qcom,gcc-msm8916.h b/include/dt-bindings/clock/qcom,gcc-msm8916.h
index e430f64..11566c5 100644
--- a/include/dt-bindings/clock/qcom,gcc-msm8916.h
+++ b/include/dt-bindings/clock/qcom,gcc-msm8916.h
@@ -153,4 +153,12 @@ 
 #define GCC_VENUS0_AXI_CLK			136
 #define GCC_VENUS0_VCODEC0_CLK			137
 
+/* Indexes for GDSCs */
+#define BIMC_GDSC				0
+#define VENUS_GDSC				1
+#define MDSS_GDSC				2
+#define JPEG_GDSC				3
+#define VFE_GDSC				4
+#define OXILI_GDSC				5
+
 #endif