Skip to contentSkip to conversation

ARM: OMAP4: register V1V8, V2V1 regulators

PATCH New Peter Ujfalusi 2 participants 5 messages May 9, 2012

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

v2 cover ARM: OMAP4: register V1V8, V2V1 regulators

Hello,

Changes since v1:
- rebased on 3.4-rc6

Original intro message:

This series adds common configuration for the V1V8, V2V1 regulators from twl6030. These regulators are commonly used to feed the twl6040 audio IC on OMAP4 based boards (SDP4430, PandaBoards).

The regulator support for the twl6040 MFD driver will be going via MFD tree to avoid cross tree issues.

Regards,
Peter
---
Peter Ujfalusi (3):
OMAP4: twl-common: Add twl6030 V1V8, V2V1 SMPS common configuration
OMAP: 4430SDP: Use common configuration for V1V8, V2V1 supplies
OMAP: omap4panda: Use common configuration for V1V8, V2V1 supplies

 arch/arm/mach-omap2/board-4430sdp.c    |    4 ++-
 arch/arm/mach-omap2/board-omap4panda.c |    4 ++-
 arch/arm/mach-omap2/twl-common.c       |   43 ++++++++++++++++++++++++++++++++
 arch/arm/mach-omap2/twl-common.h       |    2 +
 4 files changed, 51 insertions(+), 2 deletions(-)
Signature · 1 line
1.7.8.6
#1 lore raw

PATCH v2 1/3 OMAP4: twl-common: Add twl6030 V1V8, V2V1 SMPS common configuration

V1V8 supply from twl6030 commonly used as VIO for the machine. V2V1 is adviced to supply the twl6040, and also to feed the twl6030's VCXIO_IN, and VDAC_IN inputs.
Create the common regulator configurations for these regulators:
Make the V2V1 as supply_regulator for VCXIO, VDAC.
Add twl6040 (1-004b) as consumer for V1V8, and V2V1.

---
 arch/arm/mach-omap2/twl-common.c |   43 ++++++++++++++++++++++++++++++++++++++
 arch/arm/mach-omap2/twl-common.h |    2 +
 2 files changed, 45 insertions(+), 0 deletions(-)
arch/arm/mach-omap2/twl-common.c +43 -0
index 7a7b893..342fb2c 100644
@@ -201,6 +201,7 @@ static struct regulator_init_data omap4_vdac_idata = {
 		.valid_ops_mask		= REGULATOR_CHANGE_MODE
 					| REGULATOR_CHANGE_STATUS,
 	},
+	.supply_regulator	= "V2V1",
 };
 
 static struct regulator_init_data omap4_vaux2_idata = {
@@ -291,6 +292,7 @@ static struct regulator_init_data omap4_vcxio_idata = {
 	},
 	.num_consumer_supplies	= ARRAY_SIZE(omap4_vcxio_supply),
 	.consumer_supplies	= omap4_vcxio_supply,
+	.supply_regulator	= "V2V1",
 };
 
 static struct regulator_init_data omap4_vusb_idata = {
@@ -310,6 +312,41 @@ static struct regulator_init_data omap4_clk32kg_idata = {
 	},
 };
 
+static struct regulator_consumer_supply omap4_v1v8_supply[] = {
+	REGULATOR_SUPPLY("vio", "1-004b"),
+};
+
+static struct regulator_init_data omap4_v1v8_idata = {
+	.constraints = {
+		.min_uV			= 1800000,
+		.max_uV			= 1800000,
+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
+					| REGULATOR_MODE_STANDBY,
+		.valid_ops_mask		= REGULATOR_CHANGE_MODE
+					| REGULATOR_CHANGE_STATUS,
+		.always_on		= true,
+	},
+	.num_consumer_supplies	= ARRAY_SIZE(omap4_v1v8_supply),
+	.consumer_supplies	= omap4_v1v8_supply,
+};
+
+static struct regulator_consumer_supply omap4_v2v1_supply[] = {
+	REGULATOR_SUPPLY("v2v1", "1-004b"),
+};
+
+static struct regulator_init_data omap4_v2v1_idata = {
+	.constraints = {
+		.min_uV			= 2100000,
+		.max_uV			= 2100000,
+		.valid_modes_mask	= REGULATOR_MODE_NORMAL
+					| REGULATOR_MODE_STANDBY,
+		.valid_ops_mask		= REGULATOR_CHANGE_MODE
+					| REGULATOR_CHANGE_STATUS,
+	},
+	.num_consumer_supplies	= ARRAY_SIZE(omap4_v2v1_supply),
+	.consumer_supplies	= omap4_v2v1_supply,
+};
+
 void __init omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,
 				  u32 pdata_flags, u32 regulators_flags)
 {
@@ -350,5 +387,11 @@ void __init omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,
 	if (regulators_flags & TWL_COMMON_REGULATOR_CLK32KG &&
 	    !pmic_data->clk32kg)
 		pmic_data->clk32kg = &omap4_clk32kg_idata;
+
+	if (regulators_flags & TWL_COMMON_REGULATOR_V1V8 && !pmic_data->v1v8)
+		pmic_data->v1v8 = &omap4_v1v8_idata;
+
+	if (regulators_flags & TWL_COMMON_REGULATOR_V2V1 && !pmic_data->v2v1)
+		pmic_data->v2v1 = &omap4_v2v1_idata;
 }
 #endif /* CONFIG_ARCH_OMAP4 */
arch/arm/mach-omap2/twl-common.h +2 -0
index 0962748..8fe71cf 100644
@@ -22,6 +22,8 @@
 #define TWL_COMMON_REGULATOR_VCXIO	(1 << 8)
 #define TWL_COMMON_REGULATOR_VUSB	(1 << 9)
 #define TWL_COMMON_REGULATOR_CLK32KG	(1 << 10)
+#define TWL_COMMON_REGULATOR_V1V8	(1 << 11)
+#define TWL_COMMON_REGULATOR_V2V1	(1 << 12)
 
 /* TWL4030 LDO regulators */
 #define TWL_COMMON_REGULATOR_VPLL1	(1 << 4)
Signature · 1 line
1.7.8.6
#2 lore raw

PATCH v2 2/3 OMAP: 4430SDP: Use common configuration for V1V8, V2V1 supplies

In reply to Peter Ujfalusi

These supplies going to be needed for the twl6040 driver.

---
 arch/arm/mach-omap2/board-4430sdp.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)
arch/arm/mach-omap2/board-4430sdp.c +3 -1
index 130ab00..c8d38bd 100644
@@ -615,7 +615,9 @@ static int __init omap4_i2c_init(void)
 			TWL_COMMON_REGULATOR_VANA |
 			TWL_COMMON_REGULATOR_VCXIO |
 			TWL_COMMON_REGULATOR_VUSB |
-			TWL_COMMON_REGULATOR_CLK32KG);
+			TWL_COMMON_REGULATOR_CLK32KG |
+			TWL_COMMON_REGULATOR_V1V8 |
+			TWL_COMMON_REGULATOR_V2V1);
 	omap4_pmic_init("twl6030", &sdp4430_twldata,
 			&twl6040_data, OMAP44XX_IRQ_SYS_2N);
 	omap_register_i2c_bus(2, 400, NULL, 0);
Signature · 1 line
1.7.8.6
#3 lore raw

PATCH v2 3/3 OMAP: omap4panda: Use common configuration for V1V8, V2V1 supplies

In reply to Peter Ujfalusi

These supplies going to be needed for the twl6040 driver.

---
 arch/arm/mach-omap2/board-omap4panda.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)
arch/arm/mach-omap2/board-omap4panda.c +3 -1
index 1b782ba..c47feed 100644
@@ -323,7 +323,9 @@ static int __init omap4_panda_i2c_init(void)
 			TWL_COMMON_REGULATOR_VANA |
 			TWL_COMMON_REGULATOR_VCXIO |
 			TWL_COMMON_REGULATOR_VUSB |
-			TWL_COMMON_REGULATOR_CLK32KG);
+			TWL_COMMON_REGULATOR_CLK32KG |
+			TWL_COMMON_REGULATOR_V1V8 |
+			TWL_COMMON_REGULATOR_V2V1);
 	omap4_pmic_init("twl6030", &omap4_panda_twldata,
 			&twl6040_data, OMAP44XX_IRQ_SYS_2N);
 	omap_register_i2c_bus(2, 400, NULL, 0);
Signature · 1 line
1.7.8.6
maintainer
#4 lore raw

v2 cover ARM: OMAP4: register V1V8, V2V1 regulators

In reply to Peter Ujfalusi
Quoted 5 lines · Peter Ujfalusi

Hello,

Changes since v1:
- rebased on 3.4-rc6

Quoted 8 lines

Original intro message:

This series adds common configuration for the V1V8, V2V1 regulators from twl6030. These regulators are commonly used to feed the twl6040 audio IC on OMAP4 based boards (SDP4430, PandaBoards).

The regulator support for the twl6040 MFD driver will be going via MFD tree to avoid cross tree issues.

Thanks applying into board branch.

Tony