Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8e6de4a3 authored by Balaji T K's avatar Balaji T K Committed by Samuel Ortiz
Browse files

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: default avatarBalaji T K <balajitk@ti.com>
Acked-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent dae2db30
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -864,6 +864,10 @@ add_children(struct twl4030_platform_data *pdata, unsigned long features)
		child = add_regulator(TWL6030_REG_VAUX3_6030, pdata->vaux3);
		child = add_regulator(TWL6030_REG_VAUX3_6030, pdata->vaux3);
		if (IS_ERR(child))
		if (IS_ERR(child))
			return PTR_ERR(child);
			return PTR_ERR(child);

		child = add_regulator(TWL6030_REG_CLK32KG, pdata->clk32kg);
		if (IS_ERR(child))
			return PTR_ERR(child);
	}
	}


	if (twl_has_bci() && pdata->bci &&
	if (twl_has_bci() && pdata->bci &&
+23 −1
Original line number Original line Diff line number Diff line
@@ -475,6 +475,13 @@ static struct regulator_ops twlfixed_ops = {
	.get_status	= twlreg_get_status,
	.get_status	= twlreg_get_status,
};
};


static struct regulator_ops twl6030_fixed_resource = {
	.enable		= twlreg_enable,
	.disable	= twlreg_disable,
	.is_enabled	= twlreg_is_enabled,
	.get_status	= twlreg_get_status,
};

/*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/


#define TWL4030_FIXED_LDO(label, offset, mVolts, num, turnon_delay, \
#define TWL4030_FIXED_LDO(label, offset, mVolts, num, turnon_delay, \
@@ -538,6 +545,20 @@ static struct regulator_ops twlfixed_ops = {
		}, \
		}, \
	}
	}


#define TWL6030_FIXED_RESOURCE(label, offset, num, turnon_delay, remap_conf) { \
	.base = offset, \
	.id = num, \
	.delay = turnon_delay, \
	.remap = remap_conf, \
	.desc = { \
		.name = #label, \
		.id = TWL6030_REG_##label, \
		.ops = &twl6030_fixed_resource, \
		.type = REGULATOR_VOLTAGE, \
		.owner = THIS_MODULE, \
		}, \
	}

/*
/*
 * We list regulators here if systems need some level of
 * We list regulators here if systems need some level of
 * software control over them after boot.
 * software control over them after boot.
@@ -577,7 +598,8 @@ static struct twlreg_info twl_regs[] = {
	TWL6030_FIXED_LDO(VANA, 0x50, 2100, 15, 0, 0x21),
	TWL6030_FIXED_LDO(VANA, 0x50, 2100, 15, 0, 0x21),
	TWL6030_FIXED_LDO(VCXIO, 0x60, 1800, 16, 0, 0x21),
	TWL6030_FIXED_LDO(VCXIO, 0x60, 1800, 16, 0, 0x21),
	TWL6030_FIXED_LDO(VDAC, 0x64, 1800, 17, 0, 0x21),
	TWL6030_FIXED_LDO(VDAC, 0x64, 1800, 17, 0, 0x21),
	TWL6030_FIXED_LDO(VUSB, 0x70, 3300, 18, 0, 0x21)
	TWL6030_FIXED_LDO(VUSB, 0x70, 3300, 18, 0, 0x21),
	TWL6030_FIXED_RESOURCE(CLK32KG, 0x8C, 48, 0, 0x21),
};
};


static int __devinit twlreg_probe(struct platform_device *pdev)
static int __devinit twlreg_probe(struct platform_device *pdev)
+2 −0
Original line number Original line Diff line number Diff line
@@ -698,6 +698,7 @@ struct twl4030_platform_data {
	struct regulator_init_data              *vana;
	struct regulator_init_data              *vana;
	struct regulator_init_data              *vcxio;
	struct regulator_init_data              *vcxio;
	struct regulator_init_data              *vusb;
	struct regulator_init_data              *vusb;
	struct regulator_init_data		*clk32kg;
};
};


/*----------------------------------------------------------------------*/
/*----------------------------------------------------------------------*/
@@ -777,5 +778,6 @@ static inline int twl4030charger_usb_en(int enable) { return 0; }


/* INTERNAL LDOs */
/* INTERNAL LDOs */
#define TWL6030_REG_VRTC	47
#define TWL6030_REG_VRTC	47
#define TWL6030_REG_CLK32KG	48


#endif /* End of __TWL4030_H */
#endif /* End of __TWL4030_H */