From: Tony Lindgren <tony@atomide.com>
To: linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org
Cc: Peter De Schrijver <pdeschrijver@nvidia.com>,
Samuel Ortiz <sameo@linux.intel.com>,
Lee Jones <lee.jones@linaro.org>
Subject: [PATCH 1/4] mfd: twl4030-power: Add recommended idle configuration
Date: Wed, 23 Apr 2014 17:40:27 -0700 [thread overview]
Message-ID: <1398300030-7386-2-git-send-email-tony@atomide.com> (raw)
In-Reply-To: <1398300030-7386-1-git-send-email-tony@atomide.com>
These settings are based on the "Recommended Sleep Sequences for
the Zoom Platform" pdf at:
http://omappedia.com/wiki/File:Recommended_Sleep_Sequences_Zoom.pdf
These settings assume most of the regulators are under control of
Linux, and cuts off VDD1 and VDD2 during off-idle as Linux cannot
do it.
For any board specific changes to these, let's patch them in as
changes to the generic data in the follow-up patches. This keeps
the board specific changes small.
Note that this does not consider the twl5030 errata 27. That
can be added later on after it has been tested.
Cc: Peter De Schrijver <pdeschrijver@nvidia.com>
Cc: Samuel Ortiz <sameo@linux.intel.com>
Cc: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
.../devicetree/bindings/mfd/twl4030-power.txt | 4 +
drivers/mfd/twl4030-power.c | 165 +++++++++++++++++++++
2 files changed, 169 insertions(+)
diff --git a/Documentation/devicetree/bindings/mfd/twl4030-power.txt b/Documentation/devicetree/bindings/mfd/twl4030-power.txt
index b906116..bbd6603 100644
--- a/Documentation/devicetree/bindings/mfd/twl4030-power.txt
+++ b/Documentation/devicetree/bindings/mfd/twl4030-power.txt
@@ -8,10 +8,14 @@ Required properties:
- compatible : must be one of the following
"ti,twl4030-power"
"ti,twl4030-power-reset"
+ "ti,twl4030-power-idle"
The use of ti,twl4030-power-reset is recommended at least on
3530 that needs a special configuration for warm reset to work.
+When using ti,twl4030-power-idle, the TI recommended configuration
+for idle modes is loaded to the tlw4030 PMIC.
+
Optional properties:
- ti,use_poweroff: With this flag, the chip will initiates an ACTIVE-to-OFF or
SLEEP-to-OFF transition when the system poweroffs.
diff --git a/drivers/mfd/twl4030-power.c b/drivers/mfd/twl4030-power.c
index 1db0560..89a8528 100644
--- a/drivers/mfd/twl4030-power.c
+++ b/drivers/mfd/twl4030-power.c
@@ -595,11 +595,176 @@ static struct twl4030_power_data omap3_reset = {
.resource_config = omap3_rconfig,
};
+/* Recommended generic default idle configuration for off-idle */
+
+/* Broadcast message to put res to sleep */
+static struct twl4030_ins omap3_idle_sleep_on_seq[] = {
+ { MSG_BROADCAST(DEV_GRP_NULL, RES_GRP_ALL, RES_TYPE_ALL,
+ 0, RES_STATE_SLEEP), 2 },
+};
+
+static struct twl4030_script omap3_idle_sleep_on_script = {
+ .script = omap3_idle_sleep_on_seq,
+ .size = ARRAY_SIZE(omap3_idle_sleep_on_seq),
+ .flags = TWL4030_SLEEP_SCRIPT,
+};
+
+/* Broadcast message to put res to active */
+static struct twl4030_ins omap3_idle_wakeup_p12_seq[] = {
+ { MSG_BROADCAST(DEV_GRP_NULL, RES_GRP_ALL, RES_TYPE_ALL,
+ 0, RES_STATE_ACTIVE), 2 },
+ };
+
+static struct twl4030_script omap3_idle_wakeup_p12_script = {
+ .script = omap3_idle_wakeup_p12_seq,
+ .size = ARRAY_SIZE(omap3_idle_wakeup_p12_seq),
+ .flags = TWL4030_WAKEUP12_SCRIPT,
+};
+
+/* Broadcast message to put res to active */
+static struct twl4030_ins omap3_idle_wakeup_p3_seq[] = {
+ { MSG_SINGULAR(DEV_GRP_NULL, RES_CLKEN, RES_STATE_ACTIVE), 0x37 },
+ { MSG_BROADCAST(DEV_GRP_NULL, RES_GRP_ALL, RES_TYPE_ALL,
+ 0, RES_STATE_ACTIVE), 2 },
+};
+
+static struct twl4030_script omap3_idle_wakeup_p3_script = {
+ .script = omap3_idle_wakeup_p3_seq,
+ .size = ARRAY_SIZE(omap3_idle_wakeup_p3_seq),
+ .flags = TWL4030_WAKEUP3_SCRIPT,
+};
+
+static struct twl4030_script omap3_idle_wrst_script = {
+ .script = omap3_wrst_seq,
+ .size = ARRAY_SIZE(omap3_wrst_seq),
+ .flags = TWL4030_WRST_SCRIPT,
+};
+
+static struct twl4030_script *omap3_idle_scripts[] = {
+ &omap3_idle_wakeup_p12_script,
+ &omap3_idle_wakeup_p3_script,
+ &omap3_idle_wrst_script,
+ &omap3_idle_sleep_on_script,
+};
+
+/*
+ * Usable values for .remap_sleep and .remap_off
+ * Based on table "5.3.3 Resource Operating modes"
+ */
+enum {
+ TWL_REMAP_OFF = 0,
+ TWL_REMAP_SLEEP = 8,
+ TWL_REMAP_ACTIVE = 9,
+};
+
+#define TWL_DEV_GRP_P123 (DEV_GRP_P1 | DEV_GRP_P2 | DEV_GRP_P3)
+
+/*
+ * Recommended configuration based on "Recommended Sleep
+ * Sequences for the Zoom Platform":
+ * http://omappedia.com/wiki/File:Recommended_Sleep_Sequences_Zoom.pdf
+ */
+static struct twl4030_resconfig omap3_idle_rconfig[] = {
+ { .resource = RES_VAUX1, .devgroup = DEV_GRP_NULL,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VAUX2, .devgroup = DEV_GRP_NULL,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VAUX3, .devgroup = DEV_GRP_NULL,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VAUX4, .devgroup = DEV_GRP_NULL,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VMMC1, .devgroup = DEV_GRP_NULL,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VMMC2, .devgroup = DEV_GRP_NULL,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VPLL1, .devgroup = DEV_GRP_P1,
+ .type = 3, .type2 = 1, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_OFF, },
+ { .resource = RES_VPLL2, .devgroup = DEV_GRP_P1,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VSIM, .devgroup = DEV_GRP_NULL,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VDAC, .devgroup = DEV_GRP_NULL,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VINTANA1, .devgroup = TWL_DEV_GRP_P123,
+ .type = 1, .type2 = 2, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VINTANA2, .devgroup = TWL_DEV_GRP_P123,
+ .type = 0, .type2 = 2, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VINTDIG, .devgroup = TWL_DEV_GRP_P123,
+ .type = 1, .type2 = 2, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VIO, .devgroup = TWL_DEV_GRP_P123,
+ .type = 2, .type2 = 2, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VDD1, .devgroup = DEV_GRP_P1,
+ .type = 4, .type2 = 1, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_OFF, },
+ { .resource = RES_VDD2, .devgroup = DEV_GRP_P1,
+ .type = 3, .type2 = 1, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_OFF, },
+ { .resource = RES_VUSB_1V5, .devgroup = DEV_GRP_NULL,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VUSB_1V8, .devgroup = DEV_GRP_NULL,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VUSB_3V1, .devgroup = TWL_DEV_GRP_P123,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ /* Resource #20 USB charge pump skipped */
+ { .resource = RES_REGEN, .devgroup = TWL_DEV_GRP_P123,
+ .type = 2, .type2 = 1, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_NRES_PWRON, .devgroup = TWL_DEV_GRP_P123,
+ .type = 0, .type2 = 1, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP },
+ { .resource = RES_CLKEN, .devgroup = TWL_DEV_GRP_P123,
+ .type = 3, .type2 = 2, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_SYSEN, .devgroup = TWL_DEV_GRP_P123,
+ .type = 6, .type2 = -1, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_HFCLKOUT, .devgroup = DEV_GRP_P3,
+ .type = 0, .type2 = 2, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_32KCLKOUT, .devgroup = TWL_DEV_GRP_P123,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_RESET, .devgroup = TWL_DEV_GRP_P123,
+ .type = 6, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_MAIN_REF, .devgroup = TWL_DEV_GRP_P123,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { /* Terminator */ },
+};
+
+static struct twl4030_power_data omap3_idle = {
+ .scripts = omap3_idle_scripts,
+ .num = ARRAY_SIZE(omap3_idle_scripts),
+ .resource_config = omap3_idle_rconfig,
+};
+
static struct of_device_id twl4030_power_of_match[] = {
{
.compatible = "ti,twl4030-power-reset",
.data = &omap3_reset,
},
+ {
+ .compatible = "ti,twl4030-power-idle",
+ .data = &omap3_idle,
+ },
{ },
};
MODULE_DEVICE_TABLE(of, twl4030_power_of_match);
--
1.8.1.1
WARNING: multiple messages have this Message-ID (diff)
From: tony@atomide.com (Tony Lindgren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/4] mfd: twl4030-power: Add recommended idle configuration
Date: Wed, 23 Apr 2014 17:40:27 -0700 [thread overview]
Message-ID: <1398300030-7386-2-git-send-email-tony@atomide.com> (raw)
In-Reply-To: <1398300030-7386-1-git-send-email-tony@atomide.com>
These settings are based on the "Recommended Sleep Sequences for
the Zoom Platform" pdf at:
http://omappedia.com/wiki/File:Recommended_Sleep_Sequences_Zoom.pdf
These settings assume most of the regulators are under control of
Linux, and cuts off VDD1 and VDD2 during off-idle as Linux cannot
do it.
For any board specific changes to these, let's patch them in as
changes to the generic data in the follow-up patches. This keeps
the board specific changes small.
Note that this does not consider the twl5030 errata 27. That
can be added later on after it has been tested.
Cc: Peter De Schrijver <pdeschrijver@nvidia.com>
Cc: Samuel Ortiz <sameo@linux.intel.com>
Cc: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
.../devicetree/bindings/mfd/twl4030-power.txt | 4 +
drivers/mfd/twl4030-power.c | 165 +++++++++++++++++++++
2 files changed, 169 insertions(+)
diff --git a/Documentation/devicetree/bindings/mfd/twl4030-power.txt b/Documentation/devicetree/bindings/mfd/twl4030-power.txt
index b906116..bbd6603 100644
--- a/Documentation/devicetree/bindings/mfd/twl4030-power.txt
+++ b/Documentation/devicetree/bindings/mfd/twl4030-power.txt
@@ -8,10 +8,14 @@ Required properties:
- compatible : must be one of the following
"ti,twl4030-power"
"ti,twl4030-power-reset"
+ "ti,twl4030-power-idle"
The use of ti,twl4030-power-reset is recommended at least on
3530 that needs a special configuration for warm reset to work.
+When using ti,twl4030-power-idle, the TI recommended configuration
+for idle modes is loaded to the tlw4030 PMIC.
+
Optional properties:
- ti,use_poweroff: With this flag, the chip will initiates an ACTIVE-to-OFF or
SLEEP-to-OFF transition when the system poweroffs.
diff --git a/drivers/mfd/twl4030-power.c b/drivers/mfd/twl4030-power.c
index 1db0560..89a8528 100644
--- a/drivers/mfd/twl4030-power.c
+++ b/drivers/mfd/twl4030-power.c
@@ -595,11 +595,176 @@ static struct twl4030_power_data omap3_reset = {
.resource_config = omap3_rconfig,
};
+/* Recommended generic default idle configuration for off-idle */
+
+/* Broadcast message to put res to sleep */
+static struct twl4030_ins omap3_idle_sleep_on_seq[] = {
+ { MSG_BROADCAST(DEV_GRP_NULL, RES_GRP_ALL, RES_TYPE_ALL,
+ 0, RES_STATE_SLEEP), 2 },
+};
+
+static struct twl4030_script omap3_idle_sleep_on_script = {
+ .script = omap3_idle_sleep_on_seq,
+ .size = ARRAY_SIZE(omap3_idle_sleep_on_seq),
+ .flags = TWL4030_SLEEP_SCRIPT,
+};
+
+/* Broadcast message to put res to active */
+static struct twl4030_ins omap3_idle_wakeup_p12_seq[] = {
+ { MSG_BROADCAST(DEV_GRP_NULL, RES_GRP_ALL, RES_TYPE_ALL,
+ 0, RES_STATE_ACTIVE), 2 },
+ };
+
+static struct twl4030_script omap3_idle_wakeup_p12_script = {
+ .script = omap3_idle_wakeup_p12_seq,
+ .size = ARRAY_SIZE(omap3_idle_wakeup_p12_seq),
+ .flags = TWL4030_WAKEUP12_SCRIPT,
+};
+
+/* Broadcast message to put res to active */
+static struct twl4030_ins omap3_idle_wakeup_p3_seq[] = {
+ { MSG_SINGULAR(DEV_GRP_NULL, RES_CLKEN, RES_STATE_ACTIVE), 0x37 },
+ { MSG_BROADCAST(DEV_GRP_NULL, RES_GRP_ALL, RES_TYPE_ALL,
+ 0, RES_STATE_ACTIVE), 2 },
+};
+
+static struct twl4030_script omap3_idle_wakeup_p3_script = {
+ .script = omap3_idle_wakeup_p3_seq,
+ .size = ARRAY_SIZE(omap3_idle_wakeup_p3_seq),
+ .flags = TWL4030_WAKEUP3_SCRIPT,
+};
+
+static struct twl4030_script omap3_idle_wrst_script = {
+ .script = omap3_wrst_seq,
+ .size = ARRAY_SIZE(omap3_wrst_seq),
+ .flags = TWL4030_WRST_SCRIPT,
+};
+
+static struct twl4030_script *omap3_idle_scripts[] = {
+ &omap3_idle_wakeup_p12_script,
+ &omap3_idle_wakeup_p3_script,
+ &omap3_idle_wrst_script,
+ &omap3_idle_sleep_on_script,
+};
+
+/*
+ * Usable values for .remap_sleep and .remap_off
+ * Based on table "5.3.3 Resource Operating modes"
+ */
+enum {
+ TWL_REMAP_OFF = 0,
+ TWL_REMAP_SLEEP = 8,
+ TWL_REMAP_ACTIVE = 9,
+};
+
+#define TWL_DEV_GRP_P123 (DEV_GRP_P1 | DEV_GRP_P2 | DEV_GRP_P3)
+
+/*
+ * Recommended configuration based on "Recommended Sleep
+ * Sequences for the Zoom Platform":
+ * http://omappedia.com/wiki/File:Recommended_Sleep_Sequences_Zoom.pdf
+ */
+static struct twl4030_resconfig omap3_idle_rconfig[] = {
+ { .resource = RES_VAUX1, .devgroup = DEV_GRP_NULL,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VAUX2, .devgroup = DEV_GRP_NULL,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VAUX3, .devgroup = DEV_GRP_NULL,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VAUX4, .devgroup = DEV_GRP_NULL,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VMMC1, .devgroup = DEV_GRP_NULL,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VMMC2, .devgroup = DEV_GRP_NULL,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VPLL1, .devgroup = DEV_GRP_P1,
+ .type = 3, .type2 = 1, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_OFF, },
+ { .resource = RES_VPLL2, .devgroup = DEV_GRP_P1,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VSIM, .devgroup = DEV_GRP_NULL,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VDAC, .devgroup = DEV_GRP_NULL,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VINTANA1, .devgroup = TWL_DEV_GRP_P123,
+ .type = 1, .type2 = 2, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VINTANA2, .devgroup = TWL_DEV_GRP_P123,
+ .type = 0, .type2 = 2, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VINTDIG, .devgroup = TWL_DEV_GRP_P123,
+ .type = 1, .type2 = 2, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VIO, .devgroup = TWL_DEV_GRP_P123,
+ .type = 2, .type2 = 2, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VDD1, .devgroup = DEV_GRP_P1,
+ .type = 4, .type2 = 1, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_OFF, },
+ { .resource = RES_VDD2, .devgroup = DEV_GRP_P1,
+ .type = 3, .type2 = 1, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_OFF, },
+ { .resource = RES_VUSB_1V5, .devgroup = DEV_GRP_NULL,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VUSB_1V8, .devgroup = DEV_GRP_NULL,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_VUSB_3V1, .devgroup = TWL_DEV_GRP_P123,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ /* Resource #20 USB charge pump skipped */
+ { .resource = RES_REGEN, .devgroup = TWL_DEV_GRP_P123,
+ .type = 2, .type2 = 1, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_NRES_PWRON, .devgroup = TWL_DEV_GRP_P123,
+ .type = 0, .type2 = 1, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP },
+ { .resource = RES_CLKEN, .devgroup = TWL_DEV_GRP_P123,
+ .type = 3, .type2 = 2, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_SYSEN, .devgroup = TWL_DEV_GRP_P123,
+ .type = 6, .type2 = -1, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_HFCLKOUT, .devgroup = DEV_GRP_P3,
+ .type = 0, .type2 = 2, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_32KCLKOUT, .devgroup = TWL_DEV_GRP_P123,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_RESET, .devgroup = TWL_DEV_GRP_P123,
+ .type = 6, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { .resource = RES_MAIN_REF, .devgroup = TWL_DEV_GRP_P123,
+ .type = 0, .type2 = 0, .remap_off = TWL_REMAP_OFF,
+ .remap_sleep = TWL_REMAP_SLEEP, },
+ { /* Terminator */ },
+};
+
+static struct twl4030_power_data omap3_idle = {
+ .scripts = omap3_idle_scripts,
+ .num = ARRAY_SIZE(omap3_idle_scripts),
+ .resource_config = omap3_idle_rconfig,
+};
+
static struct of_device_id twl4030_power_of_match[] = {
{
.compatible = "ti,twl4030-power-reset",
.data = &omap3_reset,
},
+ {
+ .compatible = "ti,twl4030-power-idle",
+ .data = &omap3_idle,
+ },
{ },
};
MODULE_DEVICE_TABLE(of, twl4030_power_of_match);
--
1.8.1.1
next prev parent reply other threads:[~2014-04-24 0:40 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-24 0:40 [PATCH 0/4] mfd: twl4030-power: Enable off-idle configuration when booted with device tree Tony Lindgren
2014-04-24 0:40 ` Tony Lindgren
2014-04-24 0:40 ` Tony Lindgren [this message]
2014-04-24 0:40 ` [PATCH 1/4] mfd: twl4030-power: Add recommended idle configuration Tony Lindgren
2014-04-28 11:41 ` Lee Jones
2014-04-28 11:41 ` Lee Jones
2014-04-28 15:33 ` Tony Lindgren
2014-04-28 15:33 ` Tony Lindgren
2014-04-28 15:42 ` Lee Jones
2014-04-28 15:42 ` Lee Jones
2014-04-24 0:40 ` [PATCH 2/4] mfd: twl4030-power: Add support for board specific configuration Tony Lindgren
2014-04-24 0:40 ` Tony Lindgren
2014-04-28 11:47 ` Lee Jones
2014-04-28 11:47 ` Lee Jones
2014-04-28 15:36 ` Tony Lindgren
2014-04-28 15:36 ` Tony Lindgren
2014-04-24 0:40 ` [PATCH 3/4] mfd: twl4030power: Add a configuration to turn off oscillator during off-idle Tony Lindgren
2014-04-24 0:40 ` Tony Lindgren
2014-04-28 11:48 ` Lee Jones
2014-04-28 11:48 ` Lee Jones
2014-04-24 0:40 ` [PATCH 4/4] ARM: dts: Enable twl4030 off-idle configuration for selected omaps Tony Lindgren
2014-04-24 0:40 ` Tony Lindgren
2014-04-24 0:49 ` [PATCH 1a/4] mfd: twl4030-power: Add generic reset configuration Tony Lindgren
2014-04-24 0:49 ` Tony Lindgren
2014-04-28 11:37 ` Lee Jones
2014-04-28 11:37 ` Lee Jones
2014-04-28 16:01 ` Tony Lindgren
2014-04-28 16:01 ` Tony Lindgren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1398300030-7386-2-git-send-email-tony@atomide.com \
--to=tony@atomide.com \
--cc=lee.jones@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=pdeschrijver@nvidia.com \
--cc=sameo@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.