linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V2] OMAP2+: SR Layer Cleanup.
@ 2011-04-08  6:14 Shweta Gulati
  2011-05-10  0:22 ` Menon, Nishanth
  0 siblings, 1 reply; 3+ messages in thread
From: Shweta Gulati @ 2011-04-08  6:14 UTC (permalink / raw)
  To: linux-arm-kernel

As a part of Voltage Layer Cleanup Patches,
submitted by Kevin Hilman, Voltage domain
Information is removed from hwmod,
So the patch removes 'vdd_name' info from omap_hwmod
and adds that info into dev_attr as SR code uses vdd_name
to get voltagedomain sructure info.

Tested on OMAP3630 SDP and OMAP4430 SDP Board

Signed-off-by: Shweta Gulati <shweta.gulati@ti.com>
---
 V2:
  Rebased on latest 'pm-wip/voltdm_a' branch.

 arch/arm/mach-omap2/omap_hwmod_3xxx_data.c   |   17 +++++++++++++----
 arch/arm/mach-omap2/omap_hwmod_44xx_data.c   |   19 ++++++++++++++++---
 arch/arm/mach-omap2/smartreflex.h            |   10 ++++++++++
 arch/arm/mach-omap2/sr_device.c              |   11 +++++++----
 arch/arm/plat-omap/include/plat/omap_hwmod.h |    1 -
 5 files changed, 46 insertions(+), 12 deletions(-)

diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index 3cd91ac..6a704bd 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -29,6 +29,7 @@
 
 #include "omap_hwmod_common_data.h"
 
+#include "smartreflex.h"
 #include "prm-regbits-34xx.h"
 #include "cm-regbits-34xx.h"
 #include "wd_timer.h"
@@ -2904,6 +2905,10 @@ static struct omap_hwmod_class omap36xx_smartreflex_hwmod_class = {
 };
 
 /* SR1 */
+static struct omap_sr_dev_attr sr1_dev_attr = {
+	.voltdm_name   = "mpu_iva",
+};
+
 static struct omap_hwmod_ocp_if *omap3_sr1_slaves[] = {
 	&omap3_l4_core__sr1,
 };
@@ -2912,7 +2917,6 @@ static struct omap_hwmod omap34xx_sr1_hwmod = {
 	.name		= "sr1_hwmod",
 	.class		= &omap34xx_smartreflex_hwmod_class,
 	.main_clk	= "sr1_fck",
-	.vdd_name	= "mpu_iva",
 	.prcm		= {
 		.omap2 = {
 			.prcm_reg_id = 1,
@@ -2924,6 +2928,7 @@ static struct omap_hwmod omap34xx_sr1_hwmod = {
 	},
 	.slaves		= omap3_sr1_slaves,
 	.slaves_cnt	= ARRAY_SIZE(omap3_sr1_slaves),
+	.dev_attr       = &sr1_dev_attr,
 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES2 |
 					CHIP_IS_OMAP3430ES3_0 |
 					CHIP_IS_OMAP3430ES3_1),
@@ -2934,7 +2939,6 @@ static struct omap_hwmod omap36xx_sr1_hwmod = {
 	.name		= "sr1_hwmod",
 	.class		= &omap36xx_smartreflex_hwmod_class,
 	.main_clk	= "sr1_fck",
-	.vdd_name	= "mpu_iva",
 	.prcm		= {
 		.omap2 = {
 			.prcm_reg_id = 1,
@@ -2946,10 +2950,15 @@ static struct omap_hwmod omap36xx_sr1_hwmod = {
 	},
 	.slaves		= omap3_sr1_slaves,
 	.slaves_cnt	= ARRAY_SIZE(omap3_sr1_slaves),
+	.dev_attr       = &sr1_dev_attr,
 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP3630ES1),
 };
 
 /* SR2 */
+static struct omap_sr_dev_attr sr2_dev_attr = {
+	.voltdm_name    = "core",
+};
+
 static struct omap_hwmod_ocp_if *omap3_sr2_slaves[] = {
 	&omap3_l4_core__sr2,
 };
@@ -2958,7 +2967,6 @@ static struct omap_hwmod omap34xx_sr2_hwmod = {
 	.name		= "sr2_hwmod",
 	.class		= &omap34xx_smartreflex_hwmod_class,
 	.main_clk	= "sr2_fck",
-	.vdd_name	= "core",
 	.prcm		= {
 		.omap2 = {
 			.prcm_reg_id = 1,
@@ -2970,6 +2978,7 @@ static struct omap_hwmod omap34xx_sr2_hwmod = {
 	},
 	.slaves		= omap3_sr2_slaves,
 	.slaves_cnt	= ARRAY_SIZE(omap3_sr2_slaves),
+	.dev_attr       = &sr2_dev_attr,
 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES2 |
 					CHIP_IS_OMAP3430ES3_0 |
 					CHIP_IS_OMAP3430ES3_1),
@@ -2980,7 +2989,6 @@ static struct omap_hwmod omap36xx_sr2_hwmod = {
 	.name		= "sr2_hwmod",
 	.class		= &omap36xx_smartreflex_hwmod_class,
 	.main_clk	= "sr2_fck",
-	.vdd_name	= "core",
 	.prcm		= {
 		.omap2 = {
 			.prcm_reg_id = 1,
@@ -2992,6 +3000,7 @@ static struct omap_hwmod omap36xx_sr2_hwmod = {
 	},
 	.slaves		= omap3_sr2_slaves,
 	.slaves_cnt	= ARRAY_SIZE(omap3_sr2_slaves),
+	.dev_attr       = &sr2_dev_attr,
 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP3630ES1),
 };
 
diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
index 3e88dd3..1331b39 100644
--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
@@ -30,6 +30,7 @@
 
 #include "omap_hwmod_common_data.h"
 
+#include "smartreflex.h"
 #include "cm1_44xx.h"
 #include "cm2_44xx.h"
 #include "prm44xx.h"
@@ -3775,6 +3776,10 @@ static struct omap_hwmod_class omap44xx_smartreflex_hwmod_class = {
 };
 
 /* smartreflex_core */
+static struct omap_sr_dev_attr sr_core_dev_attr = {
+	.voltdm_name   = "core",
+};
+
 static struct omap_hwmod omap44xx_smartreflex_core_hwmod;
 static struct omap_hwmod_irq_info omap44xx_smartreflex_core_irqs[] = {
 	{ .irq = 19 + OMAP44XX_IRQ_GIC_START },
@@ -3809,7 +3814,6 @@ static struct omap_hwmod omap44xx_smartreflex_core_hwmod = {
 	.mpu_irqs	= omap44xx_smartreflex_core_irqs,
 	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_smartreflex_core_irqs),
 	.main_clk	= "smartreflex_core_fck",
-	.vdd_name	= "core",
 	.prcm = {
 		.omap4 = {
 			.clkctrl_reg = OMAP4430_CM_ALWON_SR_CORE_CLKCTRL,
@@ -3817,10 +3821,15 @@ static struct omap_hwmod omap44xx_smartreflex_core_hwmod = {
 	},
 	.slaves		= omap44xx_smartreflex_core_slaves,
 	.slaves_cnt	= ARRAY_SIZE(omap44xx_smartreflex_core_slaves),
+	.dev_attr       = &sr_core_dev_attr,
 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
 
 /* smartreflex_iva */
+static struct omap_sr_dev_attr sr_iva_dev_attr = {
+	.voltdm_name   = "iva",
+};
+
 static struct omap_hwmod omap44xx_smartreflex_iva_hwmod;
 static struct omap_hwmod_irq_info omap44xx_smartreflex_iva_irqs[] = {
 	{ .irq = 102 + OMAP44XX_IRQ_GIC_START },
@@ -3855,7 +3864,6 @@ static struct omap_hwmod omap44xx_smartreflex_iva_hwmod = {
 	.mpu_irqs	= omap44xx_smartreflex_iva_irqs,
 	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_smartreflex_iva_irqs),
 	.main_clk	= "smartreflex_iva_fck",
-	.vdd_name	= "iva",
 	.prcm = {
 		.omap4 = {
 			.clkctrl_reg = OMAP4430_CM_ALWON_SR_IVA_CLKCTRL,
@@ -3863,10 +3871,15 @@ static struct omap_hwmod omap44xx_smartreflex_iva_hwmod = {
 	},
 	.slaves		= omap44xx_smartreflex_iva_slaves,
 	.slaves_cnt	= ARRAY_SIZE(omap44xx_smartreflex_iva_slaves),
+	.dev_attr       = &sr_iva_dev_attr,
 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
 
 /* smartreflex_mpu */
+static struct omap_sr_dev_attr sr_mpu_dev_attr = {
+	.voltdm_name   = "mpu",
+};
+
 static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod;
 static struct omap_hwmod_irq_info omap44xx_smartreflex_mpu_irqs[] = {
 	{ .irq = 18 + OMAP44XX_IRQ_GIC_START },
@@ -3901,7 +3914,6 @@ static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod = {
 	.mpu_irqs	= omap44xx_smartreflex_mpu_irqs,
 	.mpu_irqs_cnt	= ARRAY_SIZE(omap44xx_smartreflex_mpu_irqs),
 	.main_clk	= "smartreflex_mpu_fck",
-	.vdd_name	= "mpu",
 	.prcm = {
 		.omap4 = {
 			.clkctrl_reg = OMAP4430_CM_ALWON_SR_MPU_CLKCTRL,
@@ -3909,6 +3921,7 @@ static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod = {
 	},
 	.slaves		= omap44xx_smartreflex_mpu_slaves,
 	.slaves_cnt	= ARRAY_SIZE(omap44xx_smartreflex_mpu_slaves),
+	.dev_attr       = &sr_mpu_dev_attr,
 	.omap_chip	= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
 };
 
diff --git a/arch/arm/mach-omap2/smartreflex.h b/arch/arm/mach-omap2/smartreflex.h
index 5f35b9e..9a7f770 100644
--- a/arch/arm/mach-omap2/smartreflex.h
+++ b/arch/arm/mach-omap2/smartreflex.h
@@ -197,6 +197,16 @@ struct omap_sr_nvalue_table {
 };
 
 /**
+ * struct omap_sr_dev_attr - Smartreflex Device attribute.
+ *
+ * @voltdm_name:       Name of voltdomain of SR instance
+ */
+
+struct omap_sr_dev_attr {
+	const char      *voltdm_name;
+};
+
+/**
  * struct omap_sr_data - Smartreflex platform data.
  *
  * @ip_type:		Smartreflex IP type.
diff --git a/arch/arm/mach-omap2/sr_device.c b/arch/arm/mach-omap2/sr_device.c
index 2782d3f..65b2aae 100644
--- a/arch/arm/mach-omap2/sr_device.c
+++ b/arch/arm/mach-omap2/sr_device.c
@@ -82,6 +82,7 @@ static int sr_dev_init(struct omap_hwmod *oh, void *user)
 	struct omap_sr_data *sr_data;
 	struct omap_device *od;
 	struct omap_volt_data *volt_data;
+	struct omap_sr_dev_attr *sr_dev_attr;
 	char *name = "smartreflex";
 	static int i;
 
@@ -92,9 +93,11 @@ static int sr_dev_init(struct omap_hwmod *oh, void *user)
 		return -ENOMEM;
 	}
 
-	if (!oh->vdd_name) {
+	sr_dev_attr = (struct omap_sr_dev_attr *)oh->dev_attr;
+	if (!sr_dev_attr->voltdm_name) {
 		pr_err("%s: No voltage domain specified for %s."
-			"Cannot initialize\n", __func__, oh->name);
+				"Cannot initialize\n", __func__,
+					sr_dev_attr->voltdm_name);
 		goto exit;
 	}
 
@@ -102,10 +105,10 @@ static int sr_dev_init(struct omap_hwmod *oh, void *user)
 	sr_data->senn_mod = 0x1;
 	sr_data->senp_mod = 0x1;
 
-	sr_data->voltdm = voltdm_lookup(oh->vdd_name);
+	sr_data->voltdm = voltdm_lookup(sr_dev_attr->voltdm_name);
 	if (IS_ERR(sr_data->voltdm)) {
 		pr_err("%s: Unable to get voltage domain pointer for VDD %s\n",
-			__func__, oh->vdd_name);
+			__func__, sr_dev_attr->voltdm_name);
 		goto exit;
 	}
 
diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h
index a5fa7c1..39d809a 100644
--- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
+++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
@@ -519,7 +519,6 @@ struct omap_hwmod {
 	const char			*main_clk;
 	struct clk			*_clk;
 	struct omap_hwmod_opt_clk	*opt_clks;
-	char				*vdd_name;
 	struct omap_hwmod_ocp_if	**masters; /* connect to *_IA */
 	struct omap_hwmod_ocp_if	**slaves;  /* connect to *_TA */
 	void				*dev_attr;
-- 
1.7.0.4

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH V2] OMAP2+: SR Layer Cleanup.
  2011-04-08  6:14 [PATCH V2] OMAP2+: SR Layer Cleanup Shweta Gulati
@ 2011-05-10  0:22 ` Menon, Nishanth
  2011-05-10  4:33   ` Gulati, Shweta
  0 siblings, 1 reply; 3+ messages in thread
From: Menon, Nishanth @ 2011-05-10  0:22 UTC (permalink / raw)
  To: linux-arm-kernel

might be a bit late, but seeing that Kevin has'nt picked this up yet,
a couple of cosmetic comments
I think it might be great if it could be folded into one of kevin's patches.
else,
$subject - OMAP3+ and could you drop the .?

On Fri, Apr 8, 2011 at 01:14, Shweta Gulati <shweta.gulati@ti.com> wrote:
> As a part of Voltage Layer Cleanup Patches,
> submitted by Kevin Hilman, Voltage domain
> Information is removed from hwmod,
> So the patch removes 'vdd_name' info from omap_hwmod
> and adds that info into dev_attr as SR code uses vdd_name
> to get voltagedomain sructure info.
word wrap cleanup a bit, also please indicate the issue you see if the
patch is not applied.

Regards,
Nishanth Menon


>
> Tested on OMAP3630 SDP and OMAP4430 SDP Board
>
> Signed-off-by: Shweta Gulati <shweta.gulati@ti.com>



> ---
> ?V2:
> ?Rebased on latest 'pm-wip/voltdm_a' branch.
>
> ?arch/arm/mach-omap2/omap_hwmod_3xxx_data.c ? | ? 17 +++++++++++++----
> ?arch/arm/mach-omap2/omap_hwmod_44xx_data.c ? | ? 19 ++++++++++++++++---
> ?arch/arm/mach-omap2/smartreflex.h ? ? ? ? ? ?| ? 10 ++++++++++
> ?arch/arm/mach-omap2/sr_device.c ? ? ? ? ? ? ?| ? 11 +++++++----
> ?arch/arm/plat-omap/include/plat/omap_hwmod.h | ? ?1 -
> ?5 files changed, 46 insertions(+), 12 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> index 3cd91ac..6a704bd 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> +++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
> @@ -29,6 +29,7 @@
>
> ?#include "omap_hwmod_common_data.h"
>
> +#include "smartreflex.h"
> ?#include "prm-regbits-34xx.h"
> ?#include "cm-regbits-34xx.h"
> ?#include "wd_timer.h"
> @@ -2904,6 +2905,10 @@ static struct omap_hwmod_class omap36xx_smartreflex_hwmod_class = {
> ?};
>
> ?/* SR1 */
> +static struct omap_sr_dev_attr sr1_dev_attr = {
> + ? ? ? .voltdm_name ? = "mpu_iva",
> +};
> +
> ?static struct omap_hwmod_ocp_if *omap3_sr1_slaves[] = {
> ? ? ? ?&omap3_l4_core__sr1,
> ?};
> @@ -2912,7 +2917,6 @@ static struct omap_hwmod omap34xx_sr1_hwmod = {
> ? ? ? ?.name ? ? ? ? ? = "sr1_hwmod",
> ? ? ? ?.class ? ? ? ? ?= &omap34xx_smartreflex_hwmod_class,
> ? ? ? ?.main_clk ? ? ? = "sr1_fck",
> - ? ? ? .vdd_name ? ? ? = "mpu_iva",
> ? ? ? ?.prcm ? ? ? ? ? = {
> ? ? ? ? ? ? ? ?.omap2 = {
> ? ? ? ? ? ? ? ? ? ? ? ?.prcm_reg_id = 1,
> @@ -2924,6 +2928,7 @@ static struct omap_hwmod omap34xx_sr1_hwmod = {
> ? ? ? ?},
> ? ? ? ?.slaves ? ? ? ? = omap3_sr1_slaves,
> ? ? ? ?.slaves_cnt ? ? = ARRAY_SIZE(omap3_sr1_slaves),
> + ? ? ? .dev_attr ? ? ? = &sr1_dev_attr,
> ? ? ? ?.omap_chip ? ? ?= OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES2 |
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?CHIP_IS_OMAP3430ES3_0 |
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?CHIP_IS_OMAP3430ES3_1),
> @@ -2934,7 +2939,6 @@ static struct omap_hwmod omap36xx_sr1_hwmod = {
> ? ? ? ?.name ? ? ? ? ? = "sr1_hwmod",
> ? ? ? ?.class ? ? ? ? ?= &omap36xx_smartreflex_hwmod_class,
> ? ? ? ?.main_clk ? ? ? = "sr1_fck",
> - ? ? ? .vdd_name ? ? ? = "mpu_iva",
> ? ? ? ?.prcm ? ? ? ? ? = {
> ? ? ? ? ? ? ? ?.omap2 = {
> ? ? ? ? ? ? ? ? ? ? ? ?.prcm_reg_id = 1,
> @@ -2946,10 +2950,15 @@ static struct omap_hwmod omap36xx_sr1_hwmod = {
> ? ? ? ?},
> ? ? ? ?.slaves ? ? ? ? = omap3_sr1_slaves,
> ? ? ? ?.slaves_cnt ? ? = ARRAY_SIZE(omap3_sr1_slaves),
> + ? ? ? .dev_attr ? ? ? = &sr1_dev_attr,
> ? ? ? ?.omap_chip ? ? ?= OMAP_CHIP_INIT(CHIP_IS_OMAP3630ES1),
> ?};
>
> ?/* SR2 */
> +static struct omap_sr_dev_attr sr2_dev_attr = {
> + ? ? ? .voltdm_name ? ?= "core",
> +};
> +
> ?static struct omap_hwmod_ocp_if *omap3_sr2_slaves[] = {
> ? ? ? ?&omap3_l4_core__sr2,
> ?};
> @@ -2958,7 +2967,6 @@ static struct omap_hwmod omap34xx_sr2_hwmod = {
> ? ? ? ?.name ? ? ? ? ? = "sr2_hwmod",
> ? ? ? ?.class ? ? ? ? ?= &omap34xx_smartreflex_hwmod_class,
> ? ? ? ?.main_clk ? ? ? = "sr2_fck",
> - ? ? ? .vdd_name ? ? ? = "core",
> ? ? ? ?.prcm ? ? ? ? ? = {
> ? ? ? ? ? ? ? ?.omap2 = {
> ? ? ? ? ? ? ? ? ? ? ? ?.prcm_reg_id = 1,
> @@ -2970,6 +2978,7 @@ static struct omap_hwmod omap34xx_sr2_hwmod = {
> ? ? ? ?},
> ? ? ? ?.slaves ? ? ? ? = omap3_sr2_slaves,
> ? ? ? ?.slaves_cnt ? ? = ARRAY_SIZE(omap3_sr2_slaves),
> + ? ? ? .dev_attr ? ? ? = &sr2_dev_attr,
> ? ? ? ?.omap_chip ? ? ?= OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES2 |
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?CHIP_IS_OMAP3430ES3_0 |
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?CHIP_IS_OMAP3430ES3_1),
> @@ -2980,7 +2989,6 @@ static struct omap_hwmod omap36xx_sr2_hwmod = {
> ? ? ? ?.name ? ? ? ? ? = "sr2_hwmod",
> ? ? ? ?.class ? ? ? ? ?= &omap36xx_smartreflex_hwmod_class,
> ? ? ? ?.main_clk ? ? ? = "sr2_fck",
> - ? ? ? .vdd_name ? ? ? = "core",
> ? ? ? ?.prcm ? ? ? ? ? = {
> ? ? ? ? ? ? ? ?.omap2 = {
> ? ? ? ? ? ? ? ? ? ? ? ?.prcm_reg_id = 1,
> @@ -2992,6 +3000,7 @@ static struct omap_hwmod omap36xx_sr2_hwmod = {
> ? ? ? ?},
> ? ? ? ?.slaves ? ? ? ? = omap3_sr2_slaves,
> ? ? ? ?.slaves_cnt ? ? = ARRAY_SIZE(omap3_sr2_slaves),
> + ? ? ? .dev_attr ? ? ? = &sr2_dev_attr,
> ? ? ? ?.omap_chip ? ? ?= OMAP_CHIP_INIT(CHIP_IS_OMAP3630ES1),
> ?};
>
> diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> index 3e88dd3..1331b39 100644
> --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
> @@ -30,6 +30,7 @@
>
> ?#include "omap_hwmod_common_data.h"
>
> +#include "smartreflex.h"
> ?#include "cm1_44xx.h"
> ?#include "cm2_44xx.h"
> ?#include "prm44xx.h"
> @@ -3775,6 +3776,10 @@ static struct omap_hwmod_class omap44xx_smartreflex_hwmod_class = {
> ?};
>
> ?/* smartreflex_core */
> +static struct omap_sr_dev_attr sr_core_dev_attr = {
> + ? ? ? .voltdm_name ? = "core",
> +};
> +
> ?static struct omap_hwmod omap44xx_smartreflex_core_hwmod;
> ?static struct omap_hwmod_irq_info omap44xx_smartreflex_core_irqs[] = {
> ? ? ? ?{ .irq = 19 + OMAP44XX_IRQ_GIC_START },
> @@ -3809,7 +3814,6 @@ static struct omap_hwmod omap44xx_smartreflex_core_hwmod = {
> ? ? ? ?.mpu_irqs ? ? ? = omap44xx_smartreflex_core_irqs,
> ? ? ? ?.mpu_irqs_cnt ? = ARRAY_SIZE(omap44xx_smartreflex_core_irqs),
> ? ? ? ?.main_clk ? ? ? = "smartreflex_core_fck",
> - ? ? ? .vdd_name ? ? ? = "core",
> ? ? ? ?.prcm = {
> ? ? ? ? ? ? ? ?.omap4 = {
> ? ? ? ? ? ? ? ? ? ? ? ?.clkctrl_reg = OMAP4430_CM_ALWON_SR_CORE_CLKCTRL,
> @@ -3817,10 +3821,15 @@ static struct omap_hwmod omap44xx_smartreflex_core_hwmod = {
> ? ? ? ?},
> ? ? ? ?.slaves ? ? ? ? = omap44xx_smartreflex_core_slaves,
> ? ? ? ?.slaves_cnt ? ? = ARRAY_SIZE(omap44xx_smartreflex_core_slaves),
> + ? ? ? .dev_attr ? ? ? = &sr_core_dev_attr,
> ? ? ? ?.omap_chip ? ? ?= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> ?};
>
> ?/* smartreflex_iva */
> +static struct omap_sr_dev_attr sr_iva_dev_attr = {
> + ? ? ? .voltdm_name ? = "iva",
> +};
> +
> ?static struct omap_hwmod omap44xx_smartreflex_iva_hwmod;
> ?static struct omap_hwmod_irq_info omap44xx_smartreflex_iva_irqs[] = {
> ? ? ? ?{ .irq = 102 + OMAP44XX_IRQ_GIC_START },
> @@ -3855,7 +3864,6 @@ static struct omap_hwmod omap44xx_smartreflex_iva_hwmod = {
> ? ? ? ?.mpu_irqs ? ? ? = omap44xx_smartreflex_iva_irqs,
> ? ? ? ?.mpu_irqs_cnt ? = ARRAY_SIZE(omap44xx_smartreflex_iva_irqs),
> ? ? ? ?.main_clk ? ? ? = "smartreflex_iva_fck",
> - ? ? ? .vdd_name ? ? ? = "iva",
> ? ? ? ?.prcm = {
> ? ? ? ? ? ? ? ?.omap4 = {
> ? ? ? ? ? ? ? ? ? ? ? ?.clkctrl_reg = OMAP4430_CM_ALWON_SR_IVA_CLKCTRL,
> @@ -3863,10 +3871,15 @@ static struct omap_hwmod omap44xx_smartreflex_iva_hwmod = {
> ? ? ? ?},
> ? ? ? ?.slaves ? ? ? ? = omap44xx_smartreflex_iva_slaves,
> ? ? ? ?.slaves_cnt ? ? = ARRAY_SIZE(omap44xx_smartreflex_iva_slaves),
> + ? ? ? .dev_attr ? ? ? = &sr_iva_dev_attr,
> ? ? ? ?.omap_chip ? ? ?= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> ?};
>
> ?/* smartreflex_mpu */
> +static struct omap_sr_dev_attr sr_mpu_dev_attr = {
> + ? ? ? .voltdm_name ? = "mpu",
> +};
> +
> ?static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod;
> ?static struct omap_hwmod_irq_info omap44xx_smartreflex_mpu_irqs[] = {
> ? ? ? ?{ .irq = 18 + OMAP44XX_IRQ_GIC_START },
> @@ -3901,7 +3914,6 @@ static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod = {
> ? ? ? ?.mpu_irqs ? ? ? = omap44xx_smartreflex_mpu_irqs,
> ? ? ? ?.mpu_irqs_cnt ? = ARRAY_SIZE(omap44xx_smartreflex_mpu_irqs),
> ? ? ? ?.main_clk ? ? ? = "smartreflex_mpu_fck",
> - ? ? ? .vdd_name ? ? ? = "mpu",
> ? ? ? ?.prcm = {
> ? ? ? ? ? ? ? ?.omap4 = {
> ? ? ? ? ? ? ? ? ? ? ? ?.clkctrl_reg = OMAP4430_CM_ALWON_SR_MPU_CLKCTRL,
> @@ -3909,6 +3921,7 @@ static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod = {
> ? ? ? ?},
> ? ? ? ?.slaves ? ? ? ? = omap44xx_smartreflex_mpu_slaves,
> ? ? ? ?.slaves_cnt ? ? = ARRAY_SIZE(omap44xx_smartreflex_mpu_slaves),
> + ? ? ? .dev_attr ? ? ? = &sr_mpu_dev_attr,
> ? ? ? ?.omap_chip ? ? ?= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
> ?};
>
> diff --git a/arch/arm/mach-omap2/smartreflex.h b/arch/arm/mach-omap2/smartreflex.h
> index 5f35b9e..9a7f770 100644
> --- a/arch/arm/mach-omap2/smartreflex.h
> +++ b/arch/arm/mach-omap2/smartreflex.h
> @@ -197,6 +197,16 @@ struct omap_sr_nvalue_table {
> ?};
>
> ?/**
> + * struct omap_sr_dev_attr - Smartreflex Device attribute.
> + *
> + * @voltdm_name: ? ? ? Name of voltdomain of SR instance
> + */
> +
> +struct omap_sr_dev_attr {
> + ? ? ? const char ? ? ?*voltdm_name;
> +};
> +
> +/**
> ?* struct omap_sr_data - Smartreflex platform data.
> ?*
> ?* @ip_type: ? ? ? ? ? Smartreflex IP type.
> diff --git a/arch/arm/mach-omap2/sr_device.c b/arch/arm/mach-omap2/sr_device.c
> index 2782d3f..65b2aae 100644
> --- a/arch/arm/mach-omap2/sr_device.c
> +++ b/arch/arm/mach-omap2/sr_device.c
> @@ -82,6 +82,7 @@ static int sr_dev_init(struct omap_hwmod *oh, void *user)
> ? ? ? ?struct omap_sr_data *sr_data;
> ? ? ? ?struct omap_device *od;
> ? ? ? ?struct omap_volt_data *volt_data;
> + ? ? ? struct omap_sr_dev_attr *sr_dev_attr;
> ? ? ? ?char *name = "smartreflex";
> ? ? ? ?static int i;
>
> @@ -92,9 +93,11 @@ static int sr_dev_init(struct omap_hwmod *oh, void *user)
> ? ? ? ? ? ? ? ?return -ENOMEM;
> ? ? ? ?}
>
> - ? ? ? if (!oh->vdd_name) {
> + ? ? ? sr_dev_attr = (struct omap_sr_dev_attr *)oh->dev_attr;
> + ? ? ? if (!sr_dev_attr->voltdm_name) {
> ? ? ? ? ? ? ? ?pr_err("%s: No voltage domain specified for %s."
> - ? ? ? ? ? ? ? ? ? ? ? "Cannot initialize\n", __func__, oh->name);
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "Cannot initialize\n", __func__,
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? sr_dev_attr->voltdm_name);
> ? ? ? ? ? ? ? ?goto exit;
> ? ? ? ?}
>
> @@ -102,10 +105,10 @@ static int sr_dev_init(struct omap_hwmod *oh, void *user)
> ? ? ? ?sr_data->senn_mod = 0x1;
> ? ? ? ?sr_data->senp_mod = 0x1;
>
> - ? ? ? sr_data->voltdm = voltdm_lookup(oh->vdd_name);
> + ? ? ? sr_data->voltdm = voltdm_lookup(sr_dev_attr->voltdm_name);
> ? ? ? ?if (IS_ERR(sr_data->voltdm)) {
> ? ? ? ? ? ? ? ?pr_err("%s: Unable to get voltage domain pointer for VDD %s\n",
> - ? ? ? ? ? ? ? ? ? ? ? __func__, oh->vdd_name);
> + ? ? ? ? ? ? ? ? ? ? ? __func__, sr_dev_attr->voltdm_name);
> ? ? ? ? ? ? ? ?goto exit;
> ? ? ? ?}
>
> diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> index a5fa7c1..39d809a 100644
> --- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
> +++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
> @@ -519,7 +519,6 @@ struct omap_hwmod {
> ? ? ? ?const char ? ? ? ? ? ? ? ? ? ? ?*main_clk;
> ? ? ? ?struct clk ? ? ? ? ? ? ? ? ? ? ?*_clk;
> ? ? ? ?struct omap_hwmod_opt_clk ? ? ? *opt_clks;
> - ? ? ? char ? ? ? ? ? ? ? ? ? ? ? ? ? ?*vdd_name;
> ? ? ? ?struct omap_hwmod_ocp_if ? ? ? ?**masters; /* connect to *_IA */
> ? ? ? ?struct omap_hwmod_ocp_if ? ? ? ?**slaves; ?/* connect to *_TA */
> ? ? ? ?void ? ? ? ? ? ? ? ? ? ? ? ? ? ?*dev_attr;
> --
> 1.7.0.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at ?http://vger.kernel.org/majordomo-info.html
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH V2] OMAP2+: SR Layer Cleanup.
  2011-05-10  0:22 ` Menon, Nishanth
@ 2011-05-10  4:33   ` Gulati, Shweta
  0 siblings, 0 replies; 3+ messages in thread
From: Gulati, Shweta @ 2011-05-10  4:33 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

On Tue, May 10, 2011 at 5:52 AM, Menon, Nishanth <nm@ti.com> wrote:
> might be a bit late, but seeing that Kevin has'nt picked this up yet,
> a couple of cosmetic comments
> I think it might be great if it could be folded into one of kevin's patches.
> else,
> $subject - OMAP3+ and could you drop the .?
Will correct the Subject line
> On Fri, Apr 8, 2011 at 01:14, Shweta Gulati <shweta.gulati@ti.com> wrote:
>> As a part of Voltage Layer Cleanup Patches,
>> submitted by Kevin Hilman, Voltage domain
>> Information is removed from hwmod,
>> So the patch removes 'vdd_name' info from omap_hwmod
>> and adds that info into dev_attr as SR code uses vdd_name
>> to get voltagedomain sructure info.
> word wrap cleanup a bit, also please indicate the issue you see if the
> patch is not applied.
Would Rephrase the commit log.
> Regards,
> Nishanth Menon
>
>
>>
>> Tested on OMAP3630 SDP and OMAP4430 SDP Board
>>
>> Signed-off-by: Shweta Gulati <shweta.gulati@ti.com>
>
>
>
>> ---
>> ?V2:
>> ?Rebased on latest 'pm-wip/voltdm_a' branch.
>>
>> ?arch/arm/mach-omap2/omap_hwmod_3xxx_data.c ? | ? 17 +++++++++++++----
>> ?arch/arm/mach-omap2/omap_hwmod_44xx_data.c ? | ? 19 ++++++++++++++++---
>> ?arch/arm/mach-omap2/smartreflex.h ? ? ? ? ? ?| ? 10 ++++++++++
>> ?arch/arm/mach-omap2/sr_device.c ? ? ? ? ? ? ?| ? 11 +++++++----
>> ?arch/arm/plat-omap/include/plat/omap_hwmod.h | ? ?1 -
>> ?5 files changed, 46 insertions(+), 12 deletions(-)
>>
>> diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
>> index 3cd91ac..6a704bd 100644
>> --- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
>> +++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
>> @@ -29,6 +29,7 @@
>>
>> ?#include "omap_hwmod_common_data.h"
>>
>> +#include "smartreflex.h"
>> ?#include "prm-regbits-34xx.h"
>> ?#include "cm-regbits-34xx.h"
>> ?#include "wd_timer.h"
>> @@ -2904,6 +2905,10 @@ static struct omap_hwmod_class omap36xx_smartreflex_hwmod_class = {
>> ?};
>>
>> ?/* SR1 */
>> +static struct omap_sr_dev_attr sr1_dev_attr = {
>> + ? ? ? .voltdm_name ? = "mpu_iva",
>> +};
>> +
>> ?static struct omap_hwmod_ocp_if *omap3_sr1_slaves[] = {
>> ? ? ? ?&omap3_l4_core__sr1,
>> ?};
>> @@ -2912,7 +2917,6 @@ static struct omap_hwmod omap34xx_sr1_hwmod = {
>> ? ? ? ?.name ? ? ? ? ? = "sr1_hwmod",
>> ? ? ? ?.class ? ? ? ? ?= &omap34xx_smartreflex_hwmod_class,
>> ? ? ? ?.main_clk ? ? ? = "sr1_fck",
>> - ? ? ? .vdd_name ? ? ? = "mpu_iva",
>> ? ? ? ?.prcm ? ? ? ? ? = {
>> ? ? ? ? ? ? ? ?.omap2 = {
>> ? ? ? ? ? ? ? ? ? ? ? ?.prcm_reg_id = 1,
>> @@ -2924,6 +2928,7 @@ static struct omap_hwmod omap34xx_sr1_hwmod = {
>> ? ? ? ?},
>> ? ? ? ?.slaves ? ? ? ? = omap3_sr1_slaves,
>> ? ? ? ?.slaves_cnt ? ? = ARRAY_SIZE(omap3_sr1_slaves),
>> + ? ? ? .dev_attr ? ? ? = &sr1_dev_attr,
>> ? ? ? ?.omap_chip ? ? ?= OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES2 |
>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?CHIP_IS_OMAP3430ES3_0 |
>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?CHIP_IS_OMAP3430ES3_1),
>> @@ -2934,7 +2939,6 @@ static struct omap_hwmod omap36xx_sr1_hwmod = {
>> ? ? ? ?.name ? ? ? ? ? = "sr1_hwmod",
>> ? ? ? ?.class ? ? ? ? ?= &omap36xx_smartreflex_hwmod_class,
>> ? ? ? ?.main_clk ? ? ? = "sr1_fck",
>> - ? ? ? .vdd_name ? ? ? = "mpu_iva",
>> ? ? ? ?.prcm ? ? ? ? ? = {
>> ? ? ? ? ? ? ? ?.omap2 = {
>> ? ? ? ? ? ? ? ? ? ? ? ?.prcm_reg_id = 1,
>> @@ -2946,10 +2950,15 @@ static struct omap_hwmod omap36xx_sr1_hwmod = {
>> ? ? ? ?},
>> ? ? ? ?.slaves ? ? ? ? = omap3_sr1_slaves,
>> ? ? ? ?.slaves_cnt ? ? = ARRAY_SIZE(omap3_sr1_slaves),
>> + ? ? ? .dev_attr ? ? ? = &sr1_dev_attr,
>> ? ? ? ?.omap_chip ? ? ?= OMAP_CHIP_INIT(CHIP_IS_OMAP3630ES1),
>> ?};
>>
>> ?/* SR2 */
>> +static struct omap_sr_dev_attr sr2_dev_attr = {
>> + ? ? ? .voltdm_name ? ?= "core",
>> +};
>> +
>> ?static struct omap_hwmod_ocp_if *omap3_sr2_slaves[] = {
>> ? ? ? ?&omap3_l4_core__sr2,
>> ?};
>> @@ -2958,7 +2967,6 @@ static struct omap_hwmod omap34xx_sr2_hwmod = {
>> ? ? ? ?.name ? ? ? ? ? = "sr2_hwmod",
>> ? ? ? ?.class ? ? ? ? ?= &omap34xx_smartreflex_hwmod_class,
>> ? ? ? ?.main_clk ? ? ? = "sr2_fck",
>> - ? ? ? .vdd_name ? ? ? = "core",
>> ? ? ? ?.prcm ? ? ? ? ? = {
>> ? ? ? ? ? ? ? ?.omap2 = {
>> ? ? ? ? ? ? ? ? ? ? ? ?.prcm_reg_id = 1,
>> @@ -2970,6 +2978,7 @@ static struct omap_hwmod omap34xx_sr2_hwmod = {
>> ? ? ? ?},
>> ? ? ? ?.slaves ? ? ? ? = omap3_sr2_slaves,
>> ? ? ? ?.slaves_cnt ? ? = ARRAY_SIZE(omap3_sr2_slaves),
>> + ? ? ? .dev_attr ? ? ? = &sr2_dev_attr,
>> ? ? ? ?.omap_chip ? ? ?= OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES2 |
>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?CHIP_IS_OMAP3430ES3_0 |
>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?CHIP_IS_OMAP3430ES3_1),
>> @@ -2980,7 +2989,6 @@ static struct omap_hwmod omap36xx_sr2_hwmod = {
>> ? ? ? ?.name ? ? ? ? ? = "sr2_hwmod",
>> ? ? ? ?.class ? ? ? ? ?= &omap36xx_smartreflex_hwmod_class,
>> ? ? ? ?.main_clk ? ? ? = "sr2_fck",
>> - ? ? ? .vdd_name ? ? ? = "core",
>> ? ? ? ?.prcm ? ? ? ? ? = {
>> ? ? ? ? ? ? ? ?.omap2 = {
>> ? ? ? ? ? ? ? ? ? ? ? ?.prcm_reg_id = 1,
>> @@ -2992,6 +3000,7 @@ static struct omap_hwmod omap36xx_sr2_hwmod = {
>> ? ? ? ?},
>> ? ? ? ?.slaves ? ? ? ? = omap3_sr2_slaves,
>> ? ? ? ?.slaves_cnt ? ? = ARRAY_SIZE(omap3_sr2_slaves),
>> + ? ? ? .dev_attr ? ? ? = &sr2_dev_attr,
>> ? ? ? ?.omap_chip ? ? ?= OMAP_CHIP_INIT(CHIP_IS_OMAP3630ES1),
>> ?};
>>
>> diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
>> index 3e88dd3..1331b39 100644
>> --- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
>> +++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
>> @@ -30,6 +30,7 @@
>>
>> ?#include "omap_hwmod_common_data.h"
>>
>> +#include "smartreflex.h"
>> ?#include "cm1_44xx.h"
>> ?#include "cm2_44xx.h"
>> ?#include "prm44xx.h"
>> @@ -3775,6 +3776,10 @@ static struct omap_hwmod_class omap44xx_smartreflex_hwmod_class = {
>> ?};
>>
>> ?/* smartreflex_core */
>> +static struct omap_sr_dev_attr sr_core_dev_attr = {
>> + ? ? ? .voltdm_name ? = "core",
>> +};
>> +
>> ?static struct omap_hwmod omap44xx_smartreflex_core_hwmod;
>> ?static struct omap_hwmod_irq_info omap44xx_smartreflex_core_irqs[] = {
>> ? ? ? ?{ .irq = 19 + OMAP44XX_IRQ_GIC_START },
>> @@ -3809,7 +3814,6 @@ static struct omap_hwmod omap44xx_smartreflex_core_hwmod = {
>> ? ? ? ?.mpu_irqs ? ? ? = omap44xx_smartreflex_core_irqs,
>> ? ? ? ?.mpu_irqs_cnt ? = ARRAY_SIZE(omap44xx_smartreflex_core_irqs),
>> ? ? ? ?.main_clk ? ? ? = "smartreflex_core_fck",
>> - ? ? ? .vdd_name ? ? ? = "core",
>> ? ? ? ?.prcm = {
>> ? ? ? ? ? ? ? ?.omap4 = {
>> ? ? ? ? ? ? ? ? ? ? ? ?.clkctrl_reg = OMAP4430_CM_ALWON_SR_CORE_CLKCTRL,
>> @@ -3817,10 +3821,15 @@ static struct omap_hwmod omap44xx_smartreflex_core_hwmod = {
>> ? ? ? ?},
>> ? ? ? ?.slaves ? ? ? ? = omap44xx_smartreflex_core_slaves,
>> ? ? ? ?.slaves_cnt ? ? = ARRAY_SIZE(omap44xx_smartreflex_core_slaves),
>> + ? ? ? .dev_attr ? ? ? = &sr_core_dev_attr,
>> ? ? ? ?.omap_chip ? ? ?= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
>> ?};
>>
>> ?/* smartreflex_iva */
>> +static struct omap_sr_dev_attr sr_iva_dev_attr = {
>> + ? ? ? .voltdm_name ? = "iva",
>> +};
>> +
>> ?static struct omap_hwmod omap44xx_smartreflex_iva_hwmod;
>> ?static struct omap_hwmod_irq_info omap44xx_smartreflex_iva_irqs[] = {
>> ? ? ? ?{ .irq = 102 + OMAP44XX_IRQ_GIC_START },
>> @@ -3855,7 +3864,6 @@ static struct omap_hwmod omap44xx_smartreflex_iva_hwmod = {
>> ? ? ? ?.mpu_irqs ? ? ? = omap44xx_smartreflex_iva_irqs,
>> ? ? ? ?.mpu_irqs_cnt ? = ARRAY_SIZE(omap44xx_smartreflex_iva_irqs),
>> ? ? ? ?.main_clk ? ? ? = "smartreflex_iva_fck",
>> - ? ? ? .vdd_name ? ? ? = "iva",
>> ? ? ? ?.prcm = {
>> ? ? ? ? ? ? ? ?.omap4 = {
>> ? ? ? ? ? ? ? ? ? ? ? ?.clkctrl_reg = OMAP4430_CM_ALWON_SR_IVA_CLKCTRL,
>> @@ -3863,10 +3871,15 @@ static struct omap_hwmod omap44xx_smartreflex_iva_hwmod = {
>> ? ? ? ?},
>> ? ? ? ?.slaves ? ? ? ? = omap44xx_smartreflex_iva_slaves,
>> ? ? ? ?.slaves_cnt ? ? = ARRAY_SIZE(omap44xx_smartreflex_iva_slaves),
>> + ? ? ? .dev_attr ? ? ? = &sr_iva_dev_attr,
>> ? ? ? ?.omap_chip ? ? ?= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
>> ?};
>>
>> ?/* smartreflex_mpu */
>> +static struct omap_sr_dev_attr sr_mpu_dev_attr = {
>> + ? ? ? .voltdm_name ? = "mpu",
>> +};
>> +
>> ?static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod;
>> ?static struct omap_hwmod_irq_info omap44xx_smartreflex_mpu_irqs[] = {
>> ? ? ? ?{ .irq = 18 + OMAP44XX_IRQ_GIC_START },
>> @@ -3901,7 +3914,6 @@ static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod = {
>> ? ? ? ?.mpu_irqs ? ? ? = omap44xx_smartreflex_mpu_irqs,
>> ? ? ? ?.mpu_irqs_cnt ? = ARRAY_SIZE(omap44xx_smartreflex_mpu_irqs),
>> ? ? ? ?.main_clk ? ? ? = "smartreflex_mpu_fck",
>> - ? ? ? .vdd_name ? ? ? = "mpu",
>> ? ? ? ?.prcm = {
>> ? ? ? ? ? ? ? ?.omap4 = {
>> ? ? ? ? ? ? ? ? ? ? ? ?.clkctrl_reg = OMAP4430_CM_ALWON_SR_MPU_CLKCTRL,
>> @@ -3909,6 +3921,7 @@ static struct omap_hwmod omap44xx_smartreflex_mpu_hwmod = {
>> ? ? ? ?},
>> ? ? ? ?.slaves ? ? ? ? = omap44xx_smartreflex_mpu_slaves,
>> ? ? ? ?.slaves_cnt ? ? = ARRAY_SIZE(omap44xx_smartreflex_mpu_slaves),
>> + ? ? ? .dev_attr ? ? ? = &sr_mpu_dev_attr,
>> ? ? ? ?.omap_chip ? ? ?= OMAP_CHIP_INIT(CHIP_IS_OMAP4430),
>> ?};
>>
>> diff --git a/arch/arm/mach-omap2/smartreflex.h b/arch/arm/mach-omap2/smartreflex.h
>> index 5f35b9e..9a7f770 100644
>> --- a/arch/arm/mach-omap2/smartreflex.h
>> +++ b/arch/arm/mach-omap2/smartreflex.h
>> @@ -197,6 +197,16 @@ struct omap_sr_nvalue_table {
>> ?};
>>
>> ?/**
>> + * struct omap_sr_dev_attr - Smartreflex Device attribute.
>> + *
>> + * @voltdm_name: ? ? ? Name of voltdomain of SR instance
>> + */
>> +
>> +struct omap_sr_dev_attr {
>> + ? ? ? const char ? ? ?*voltdm_name;
>> +};
>> +
>> +/**
>> ?* struct omap_sr_data - Smartreflex platform data.
>> ?*
>> ?* @ip_type: ? ? ? ? ? Smartreflex IP type.
>> diff --git a/arch/arm/mach-omap2/sr_device.c b/arch/arm/mach-omap2/sr_device.c
>> index 2782d3f..65b2aae 100644
>> --- a/arch/arm/mach-omap2/sr_device.c
>> +++ b/arch/arm/mach-omap2/sr_device.c
>> @@ -82,6 +82,7 @@ static int sr_dev_init(struct omap_hwmod *oh, void *user)
>> ? ? ? ?struct omap_sr_data *sr_data;
>> ? ? ? ?struct omap_device *od;
>> ? ? ? ?struct omap_volt_data *volt_data;
>> + ? ? ? struct omap_sr_dev_attr *sr_dev_attr;
>> ? ? ? ?char *name = "smartreflex";
>> ? ? ? ?static int i;
>>
>> @@ -92,9 +93,11 @@ static int sr_dev_init(struct omap_hwmod *oh, void *user)
>> ? ? ? ? ? ? ? ?return -ENOMEM;
>> ? ? ? ?}
>>
>> - ? ? ? if (!oh->vdd_name) {
>> + ? ? ? sr_dev_attr = (struct omap_sr_dev_attr *)oh->dev_attr;
>> + ? ? ? if (!sr_dev_attr->voltdm_name) {
>> ? ? ? ? ? ? ? ?pr_err("%s: No voltage domain specified for %s."
>> - ? ? ? ? ? ? ? ? ? ? ? "Cannot initialize\n", __func__, oh->name);
>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "Cannot initialize\n", __func__,
>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? sr_dev_attr->voltdm_name);
>> ? ? ? ? ? ? ? ?goto exit;
>> ? ? ? ?}
>>
>> @@ -102,10 +105,10 @@ static int sr_dev_init(struct omap_hwmod *oh, void *user)
>> ? ? ? ?sr_data->senn_mod = 0x1;
>> ? ? ? ?sr_data->senp_mod = 0x1;
>>
>> - ? ? ? sr_data->voltdm = voltdm_lookup(oh->vdd_name);
>> + ? ? ? sr_data->voltdm = voltdm_lookup(sr_dev_attr->voltdm_name);
>> ? ? ? ?if (IS_ERR(sr_data->voltdm)) {
>> ? ? ? ? ? ? ? ?pr_err("%s: Unable to get voltage domain pointer for VDD %s\n",
>> - ? ? ? ? ? ? ? ? ? ? ? __func__, oh->vdd_name);
>> + ? ? ? ? ? ? ? ? ? ? ? __func__, sr_dev_attr->voltdm_name);
>> ? ? ? ? ? ? ? ?goto exit;
>> ? ? ? ?}
>>
>> diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h
>> index a5fa7c1..39d809a 100644
>> --- a/arch/arm/plat-omap/include/plat/omap_hwmod.h
>> +++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h
>> @@ -519,7 +519,6 @@ struct omap_hwmod {
>> ? ? ? ?const char ? ? ? ? ? ? ? ? ? ? ?*main_clk;
>> ? ? ? ?struct clk ? ? ? ? ? ? ? ? ? ? ?*_clk;
>> ? ? ? ?struct omap_hwmod_opt_clk ? ? ? *opt_clks;
>> - ? ? ? char ? ? ? ? ? ? ? ? ? ? ? ? ? ?*vdd_name;
>> ? ? ? ?struct omap_hwmod_ocp_if ? ? ? ?**masters; /* connect to *_IA */
>> ? ? ? ?struct omap_hwmod_ocp_if ? ? ? ?**slaves; ?/* connect to *_TA */
>> ? ? ? ?void ? ? ? ? ? ? ? ? ? ? ? ? ? ?*dev_attr;
>> --
>> 1.7.0.4
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
>> the body of a message to majordomo at vger.kernel.org
>> More majordomo info at ?http://vger.kernel.org/majordomo-info.html
>>
>



-- 
Thanks,
Regards,
Shweta

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-05-10  4:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-08  6:14 [PATCH V2] OMAP2+: SR Layer Cleanup Shweta Gulati
2011-05-10  0:22 ` Menon, Nishanth
2011-05-10  4:33   ` Gulati, Shweta

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).