diff options
author | Balaji T K <balajitk@ti.com> | 2011-02-10 08:14:50 -0500 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2011-03-23 05:41:48 -0400 |
commit | 8e6de4a30294809420ac9a974b4f28b38ebdb38f (patch) | |
tree | 959d2347144addb920e80ffbf0950d1bcd9a2437 /drivers/regulator | |
parent | dae2db30c114cd0dec59b4130c315c9cce351741 (diff) |
regulator: twl: add clk32kg to twl-regulator
In OMAP4 Blaze and Panda, 32KHz clock to WLAN is supplied from Phoenix
TWL6030. The 32KHz clock state (ON/OFF) is configured in
CLK32KG_CFG_[GRP, TRANS, STATE] register. This follows the same register
programming model as other regulators in TWL6030. So add CLK32KG as pseudo
regulator.
Signed-off-by: Balaji T K <balajitk@ti.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'drivers/regulator')
-rw-r--r-- | drivers/regulator/twl-regulator.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/drivers/regulator/twl-regulator.c b/drivers/regulator/twl-regulator.c index bd332cf1cc3f..6a292852a358 100644 --- a/drivers/regulator/twl-regulator.c +++ b/drivers/regulator/twl-regulator.c | |||
@@ -475,6 +475,13 @@ static struct regulator_ops twlfixed_ops = { | |||
475 | .get_status = twlreg_get_status, | 475 | .get_status = twlreg_get_status, |
476 | }; | 476 | }; |
477 | 477 | ||
478 | static struct regulator_ops twl6030_fixed_resource = { | ||
479 | .enable = twlreg_enable, | ||
480 | .disable = twlreg_disable, | ||
481 | .is_enabled = twlreg_is_enabled, | ||
482 | .get_status = twlreg_get_status, | ||
483 | }; | ||
484 | |||
478 | /*----------------------------------------------------------------------*/ | 485 | /*----------------------------------------------------------------------*/ |
479 | 486 | ||
480 | #define TWL4030_FIXED_LDO(label, offset, mVolts, num, turnon_delay, \ | 487 | #define TWL4030_FIXED_LDO(label, offset, mVolts, num, turnon_delay, \ |
@@ -538,6 +545,20 @@ static struct regulator_ops twlfixed_ops = { | |||
538 | }, \ | 545 | }, \ |
539 | } | 546 | } |
540 | 547 | ||
548 | #define TWL6030_FIXED_RESOURCE(label, offset, num, turnon_delay, remap_conf) { \ | ||
549 | .base = offset, \ | ||
550 | .id = num, \ | ||
551 | .delay = turnon_delay, \ | ||
552 | .remap = remap_conf, \ | ||
553 | .desc = { \ | ||
554 | .name = #label, \ | ||
555 | .id = TWL6030_REG_##label, \ | ||
556 | .ops = &twl6030_fixed_resource, \ | ||
557 | .type = REGULATOR_VOLTAGE, \ | ||
558 | .owner = THIS_MODULE, \ | ||
559 | }, \ | ||
560 | } | ||
561 | |||
541 | /* | 562 | /* |
542 | * We list regulators here if systems need some level of | 563 | * We list regulators here if systems need some level of |
543 | * software control over them after boot. | 564 | * software control over them after boot. |
@@ -577,7 +598,8 @@ static struct twlreg_info twl_regs[] = { | |||
577 | TWL6030_FIXED_LDO(VANA, 0x50, 2100, 15, 0, 0x21), | 598 | TWL6030_FIXED_LDO(VANA, 0x50, 2100, 15, 0, 0x21), |
578 | TWL6030_FIXED_LDO(VCXIO, 0x60, 1800, 16, 0, 0x21), | 599 | TWL6030_FIXED_LDO(VCXIO, 0x60, 1800, 16, 0, 0x21), |
579 | TWL6030_FIXED_LDO(VDAC, 0x64, 1800, 17, 0, 0x21), | 600 | TWL6030_FIXED_LDO(VDAC, 0x64, 1800, 17, 0, 0x21), |
580 | TWL6030_FIXED_LDO(VUSB, 0x70, 3300, 18, 0, 0x21) | 601 | TWL6030_FIXED_LDO(VUSB, 0x70, 3300, 18, 0, 0x21), |
602 | TWL6030_FIXED_RESOURCE(CLK32KG, 0x8C, 48, 0, 0x21), | ||
581 | }; | 603 | }; |
582 | 604 | ||
583 | static int __devinit twlreg_probe(struct platform_device *pdev) | 605 | static int __devinit twlreg_probe(struct platform_device *pdev) |