Skip to contentSkip to conversation

omap: rx51: Set regulator V28 always on

RFC In review Jarkko Nikula 2 participants 2 messages Jun 23, 2010 – Jul 5, 2010

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

RFC 1/1 omap: rx51: Set regulator V28 always on

It seems that the battery cover sensor in Nokia N900 is powered from the V28 domain. Now if this regulator is disabled it causes that the gpio 160 reads only zero which effectively causes uSD removal detection.

Currently the bootloader enabled V28 is kept on but this may change in the future according to comment in
drivers/regulator/core.c: regulator_has_full_constraints.

Also if there are any consumers on the V28 domain doing regulator_enable regulator_disable cycle the V28 will be disabled after that.

Prepare for these by defining the V28 as always_on regulator.

---
This can be tested easily by setting full regulator constraints. Then the regulator framework will disable in a late_initcall all the regulators with zero use count and that don't have always_on flag set.

void __init rx51_peripherals_init(void)
{
+ regulator_has_full_constraints();
rx51_i2c_init();
board_onenand_init();
board_smc91x_init();

---
 arch/arm/mach-omap2/board-rx51-peripherals.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
arch/arm/mach-omap2/board-rx51-peripherals.c +1 -0
index abdf321..aeeb91d 100644
@@ -362,6 +362,7 @@ static struct regulator_init_data rx51_vaux1 = {
 		.name			= "V28",
 		.min_uV			= 2800000,
 		.max_uV			= 2800000,
+		.always_on		= true, /* due battery cover sensor */
 		.valid_modes_mask	= REGULATOR_MODE_NORMAL
 					| REGULATOR_MODE_STANDBY,
 		.valid_ops_mask		= REGULATOR_CHANGE_MODE
Signature · 1 line
1.7.1