[PATCH 4/9] regulator: twl: Make twl-regulator driver extract data from DT

2011-09-27 Thread Rajendra Nayak
Modify the twl regulator driver to extract the regulator_init_data from
device tree when passed, instead of getting it through platform_data
structures (on non-DT builds)

Signed-off-by: Rajendra Nayak rna...@ti.com
---
 drivers/regulator/twl-regulator.c |  117 -
 1 files changed, 76 insertions(+), 41 deletions(-)

diff --git a/drivers/regulator/twl-regulator.c 
b/drivers/regulator/twl-regulator.c
index f696287..ddb5ad1 100644
--- a/drivers/regulator/twl-regulator.c
+++ b/drivers/regulator/twl-regulator.c
@@ -14,8 +14,10 @@
 #include linux/err.h
 #include linux/delay.h
 #include linux/platform_device.h
+#include linux/of.h
 #include linux/regulator/driver.h
 #include linux/regulator/machine.h
+#include linux/regulator/of_regulator.h
 #include linux/i2c/twl.h
 
 
@@ -58,6 +60,9 @@ struct twlreg_info {
 
/* chip specific features */
unsigned long   features;
+#ifdef CONFIG_OF
+   charcompatible[128];
+#endif
 };
 
 
@@ -839,13 +844,14 @@ static struct regulator_ops twlsmps_ops = {
TWL_FIXED_LDO(label, offset, mVolts, 0x0, turnon_delay, \
0x0, TWL6030, twl6030fixed_ops)
 
-#define TWL4030_ADJUSTABLE_LDO(label, offset, num, turnon_delay, remap_conf) { 
\
+#define TWL4030_ADJUSTABLE_LDO(label, offset, num, turnon_delay, remap_conf, 
comp) { \
.base = offset, \
.id = num, \
.table_len = ARRAY_SIZE(label##_VSEL_table), \
.table = label##_VSEL_table, \
.delay = turnon_delay, \
.remap = remap_conf, \
+   .compatible = comp, \
.desc = { \
.name = #label, \
.id = TWL4030_REG_##label, \
@@ -856,10 +862,11 @@ static struct regulator_ops twlsmps_ops = {
}, \
}
 
-#define TWL6030_ADJUSTABLE_LDO(label, offset, min_mVolts, max_mVolts) { \
+#define TWL6030_ADJUSTABLE_LDO(label, offset, min_mVolts, max_mVolts, comp) { \
.base = offset, \
.min_mV = min_mVolts, \
.max_mV = max_mVolts, \
+   .compatible = comp, \
.desc = { \
.name = #label, \
.id = TWL6030_REG_##label, \
@@ -870,10 +877,11 @@ static struct regulator_ops twlsmps_ops = {
}, \
}
 
-#define TWL6025_ADJUSTABLE_LDO(label, offset, min_mVolts, max_mVolts) { \
+#define TWL6025_ADJUSTABLE_LDO(label, offset, min_mVolts, max_mVolts, comp) { \
.base = offset, \
.min_mV = min_mVolts, \
.max_mV = max_mVolts, \
+   .compatible = comp, \
.desc = { \
.name = #label, \
.id = TWL6025_REG_##label, \
@@ -932,23 +940,23 @@ static struct regulator_ops twlsmps_ops = {
  * software control over them after boot.
  */
 static struct twlreg_info twl_regs[] = {
-   TWL4030_ADJUSTABLE_LDO(VAUX1, 0x17, 1, 100, 0x08),
-   TWL4030_ADJUSTABLE_LDO(VAUX2_4030, 0x1b, 2, 100, 0x08),
-   TWL4030_ADJUSTABLE_LDO(VAUX2, 0x1b, 2, 100, 0x08),
-   TWL4030_ADJUSTABLE_LDO(VAUX3, 0x1f, 3, 100, 0x08),
-   TWL4030_ADJUSTABLE_LDO(VAUX4, 0x23, 4, 100, 0x08),
-   TWL4030_ADJUSTABLE_LDO(VMMC1, 0x27, 5, 100, 0x08),
-   TWL4030_ADJUSTABLE_LDO(VMMC2, 0x2b, 6, 100, 0x08),
-   TWL4030_ADJUSTABLE_LDO(VPLL1, 0x2f, 7, 100, 0x00),
-   TWL4030_ADJUSTABLE_LDO(VPLL2, 0x33, 8, 100, 0x08),
-   TWL4030_ADJUSTABLE_LDO(VSIM, 0x37, 9, 100, 0x00),
-   TWL4030_ADJUSTABLE_LDO(VDAC, 0x3b, 10, 100, 0x08),
+   TWL4030_ADJUSTABLE_LDO(VAUX1, 0x17, 1, 100, 0x08, ti,twl4030-vaux1),
+   TWL4030_ADJUSTABLE_LDO(VAUX2_4030, 0x1b, 2, 100, 0x08, 
ti,twl4030-vaux2),
+   TWL4030_ADJUSTABLE_LDO(VAUX2, 0x1b, 2, 100, 0x08, ti,twl5030-vaux2),
+   TWL4030_ADJUSTABLE_LDO(VAUX3, 0x1f, 3, 100, 0x08, ti,twl4030-vaux3),
+   TWL4030_ADJUSTABLE_LDO(VAUX4, 0x23, 4, 100, 0x08, ti,twl4030-vaux4),
+   TWL4030_ADJUSTABLE_LDO(VMMC1, 0x27, 5, 100, 0x08, ti,twl4030-vmmc1),
+   TWL4030_ADJUSTABLE_LDO(VMMC2, 0x2b, 6, 100, 0x08, ti,twl4030-vmmc2),
+   TWL4030_ADJUSTABLE_LDO(VPLL1, 0x2f, 7, 100, 0x00, ti,twl4030-vpll1),
+   TWL4030_ADJUSTABLE_LDO(VPLL2, 0x33, 8, 100, 0x08, ti,twl4030-vpll2),
+   TWL4030_ADJUSTABLE_LDO(VSIM, 0x37, 9, 100, 0x00, ti,twl4030-vsim),
+   TWL4030_ADJUSTABLE_LDO(VDAC, 0x3b, 10, 100, 0x08, ti,twl4030-vdac),
TWL4030_FIXED_LDO(VINTANA1, 0x3f, 1500, 11, 100, 0x08),
-   TWL4030_ADJUSTABLE_LDO(VINTANA2, 0x43, 12, 100, 0x08),
+   TWL4030_ADJUSTABLE_LDO(VINTANA2, 0x43, 12, 100, 0x08, 
ti,twl4030-vintana2),
TWL4030_FIXED_LDO(VINTDIG, 0x47, 1500, 13, 100, 0x08),
-   TWL4030_ADJUSTABLE_LDO(VIO, 0x4b, 14, 1000, 0x08),
-   TWL4030_ADJUSTABLE_LDO(VDD1, 0x55, 15, 1000, 0x08),
-   TWL4030_ADJUSTABLE_LDO(VDD2, 0x63, 16, 1000, 0x08),
+   TWL4030_ADJUSTABLE_LDO(VIO, 0x4b, 14, 1000, 0x08, ti,twl4030-vio),
+   TWL4030_ADJUSTABLE_LDO(VDD1, 0x55, 15, 1000, 0x08, ti,twl4030-vdd1),
+   TWL4030_ADJUSTABLE_LDO(VDD2, 0x63, 16, 1000, 0x08, 

Re: [PATCH 4/9] regulator: twl: Make twl-regulator driver extract data from DT

2011-09-27 Thread Mark Brown
On Tue, Sep 27, 2011 at 03:42:47PM +0530, Rajendra Nayak wrote:

 +#ifdef CONFIG_OF
 + charcompatible[128];
 +#endif

Might it not be better to just make this a pointer to const char?
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 4/9] regulator: twl: Make twl-regulator driver extract data from DT

2011-09-27 Thread Rajendra Nayak

On Tuesday 27 September 2011 05:44 PM, Mark Brown wrote:

On Tue, Sep 27, 2011 at 03:42:47PM +0530, Rajendra Nayak wrote:


+#ifdef CONFIG_OF
+   charcompatible[128];
+#endif


Might it not be better to just make this a pointer to const char?


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