|
@@ -561,6 +561,32 @@ static struct regulator_ops twl4030smps_ops = {
|
|
|
.get_voltage = twl4030smps_get_voltage,
|
|
|
};
|
|
|
|
|
|
+static int twl6030coresmps_set_voltage(struct regulator_dev *rdev, int min_uV,
|
|
|
+ int max_uV, unsigned *selector)
|
|
|
+{
|
|
|
+ struct twlreg_info *info = rdev_get_drvdata(rdev);
|
|
|
+
|
|
|
+ if (info->set_voltage)
|
|
|
+ return info->set_voltage(info->data, min_uV);
|
|
|
+
|
|
|
+ return -ENODEV;
|
|
|
+}
|
|
|
+
|
|
|
+static int twl6030coresmps_get_voltage(struct regulator_dev *rdev)
|
|
|
+{
|
|
|
+ struct twlreg_info *info = rdev_get_drvdata(rdev);
|
|
|
+
|
|
|
+ if (info->get_voltage)
|
|
|
+ return info->get_voltage(info->data);
|
|
|
+
|
|
|
+ return -ENODEV;
|
|
|
+}
|
|
|
+
|
|
|
+static struct regulator_ops twl6030coresmps_ops = {
|
|
|
+ .set_voltage = twl6030coresmps_set_voltage,
|
|
|
+ .get_voltage = twl6030coresmps_get_voltage,
|
|
|
+};
|
|
|
+
|
|
|
static int twl6030ldo_list_voltage(struct regulator_dev *rdev, unsigned index)
|
|
|
{
|
|
|
struct twlreg_info *info = rdev_get_drvdata(rdev);
|
|
@@ -926,6 +952,16 @@ static struct regulator_ops twlsmps_ops = {
|
|
|
}, \
|
|
|
}
|
|
|
|
|
|
+#define TWL6030_ADJUSTABLE_SMPS(label) { \
|
|
|
+ .desc = { \
|
|
|
+ .name = #label, \
|
|
|
+ .id = TWL6030_REG_##label, \
|
|
|
+ .ops = &twl6030coresmps_ops, \
|
|
|
+ .type = REGULATOR_VOLTAGE, \
|
|
|
+ .owner = THIS_MODULE, \
|
|
|
+ }, \
|
|
|
+ }
|
|
|
+
|
|
|
#define TWL6030_ADJUSTABLE_LDO(label, offset, min_mVolts, max_mVolts) { \
|
|
|
.base = offset, \
|
|
|
.min_mV = min_mVolts, \
|
|
@@ -1027,6 +1063,9 @@ static struct twlreg_info twl_regs[] = {
|
|
|
/* 6030 REG with base as PMC Slave Misc : 0x0030 */
|
|
|
/* Turnon-delay and remap configuration values for 6030 are not
|
|
|
verified since the specification is not public */
|
|
|
+ TWL6030_ADJUSTABLE_SMPS(VDD1),
|
|
|
+ TWL6030_ADJUSTABLE_SMPS(VDD2),
|
|
|
+ TWL6030_ADJUSTABLE_SMPS(VDD3),
|
|
|
TWL6030_ADJUSTABLE_LDO(VAUX1_6030, 0x54, 1000, 3300),
|
|
|
TWL6030_ADJUSTABLE_LDO(VAUX2_6030, 0x58, 1000, 3300),
|
|
|
TWL6030_ADJUSTABLE_LDO(VAUX3_6030, 0x5c, 1000, 3300),
|