diff mbox

[1/9] OMAP: DSS2: Change DSI platform device name from "omapdss_dsi1" to "omapdss_dsi"

Message ID 1307447098.1858.31.camel@deskari (mailing list archive)
State Rejected
Delegated to: Tomi Valkeinen
Headers show

Commit Message

Tomi Valkeinen June 7, 2011, 11:44 a.m. UTC
Hi Mark,

Waking up this old thread again.

On Wed, 2011-05-11 at 14:12 +0200, Mark Brown wrote:
> On Wed, May 11, 2011 at 12:23:45PM +0300, Tomi Valkeinen wrote:
> 
> > So how should the regulator be set up?
> 
> You need to create a new regulator of some kind and then provide a way
> for machines to set the supply_regulator in the init_data.

What should this "new regulator of some kind" be? I was trying out with
fixed regulator, but I'm not quite sure if that's good here.

I don't want a full controllable regulator, but just a virtual "route"
regulator, which mirrors the state of the parent regulator.

(Well, I don't actually want that, I want to dynamically add some
REGULATOR_SUPPLYs to an existing regulator, but afaik that's not
possible.)

Can the fixed regulator be used like that?

Using a new regulator like this also means that there is a dependency
between the new regulator and the used source supply. I haven't solved
this yet, as the twl driver seems to add the regulators at some later
stage.

Below is my test patch for reference. It doesn't do the work in a common
file, so it's just for testing.

 Tomi



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

Comments

Mark Brown June 7, 2011, 12:08 p.m. UTC | #1
On Tue, Jun 07, 2011 at 02:44:58PM +0300, Tomi Valkeinen wrote:
> On Wed, 2011-05-11 at 14:12 +0200, Mark Brown wrote:
> > On Wed, May 11, 2011 at 12:23:45PM +0300, Tomi Valkeinen wrote:

> > You need to create a new regulator of some kind and then provide a way
> > for machines to set the supply_regulator in the init_data.

> What should this "new regulator of some kind" be? I was trying out with
> fixed regulator, but I'm not quite sure if that's good here.

It should be a regulator that does what you want.

> I don't want a full controllable regulator, but just a virtual "route"
> regulator, which mirrors the state of the parent regulator.

If it's not doing what you want then make a new one.

> Using a new regulator like this also means that there is a dependency
> between the new regulator and the used source supply. I haven't solved
> this yet, as the twl driver seems to add the regulators at some later
> stage.

I'm sorry but I can't parse what you're saying here at all.
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" 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/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index 2647a95..fb477f1 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -22,6 +22,7 @@ 
 #include <linux/i2c/twl.h>
 #include <linux/gpio_keys.h>
 #include <linux/regulator/machine.h>
+#include <linux/regulator/fixed.h>
 #include <linux/leds.h>
 #include <linux/leds_pwm.h>
 
@@ -277,10 +278,47 @@  static int omap_ethernet_init(void)
 	return status;
 }
 
+static struct regulator_consumer_supply fixed_supply[] = {
+	REGULATOR_SUPPLY("vdds_dsi", "omapdss_dss"),
+	REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
+};
+
+static struct regulator_init_data fixed_reg_init_data = {
+	.supply_regulator = "VCXIO",
+	.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(fixed_supply),
+	.consumer_supplies      = fixed_supply,
+};
+
+static struct fixed_voltage_config omap_dss_fixed_reg_data = {
+	.gpio = -EINVAL,
+	.supply_name = "dss-regulator",
+	.init_data = &fixed_reg_init_data,
+	.enabled_at_boot = 1,
+	.microvolts = 1800000,
+};
+
+static struct platform_device omap_dss_fixed_reg_device = {
+	.name   = "reg-fixed-voltage",
+	.id     = 3,
+	.dev    = {
+		.platform_data  = &omap_dss_fixed_reg_data,
+	},
+};
+
 static struct platform_device *sdp4430_devices[] __initdata = {
 	&sdp4430_gpio_keys_device,
 	&sdp4430_leds_gpio,
 	&sdp4430_leds_pwm,
+	&omap_dss_fixed_reg_device,
 };
 
 static struct omap_board_config_kernel sdp4430_config[] __initdata = {
@@ -339,8 +377,6 @@  static struct regulator_consumer_supply sdp4430_vmmc_supply[] = {
 	},
 };
 static struct regulator_consumer_supply sdp4430_vcxio_supply[] = {
-	REGULATOR_SUPPLY("vdds_dsi", "omapdss_dss"),
-	REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
 };
 
 static int omap4_twl6030_hsmmc_late_init(struct device *dev)