diff options
| -rw-r--r-- | arch/arm/mach-omap2/board-omap3h1.c | 63 | ||||
| -rw-r--r-- | drivers/leds/leds-lm3530.c | 19 | ||||
| -rw-r--r-- | drivers/regulator/tps65910-regulator.c | 2 | 
3 files changed, 57 insertions, 27 deletions
| diff --git a/arch/arm/mach-omap2/board-omap3h1.c b/arch/arm/mach-omap2/board-omap3h1.c index d0ac1d16311..5505b893ddc 100644 --- a/arch/arm/mach-omap2/board-omap3h1.c +++ b/arch/arm/mach-omap2/board-omap3h1.c @@ -171,8 +171,8 @@ static struct lm3530_platform_data omap3h1_backlight_platform_data = {  	//.pwm_pol_hi = true,  	//.als_avrg_time = LM3530_ALS_AVRG_TIME_512ms,  	.brt_ramp_law = 0, -	.brt_ramp_fall = LM3530_RAMP_TIME_1s, -	.brt_ramp_rise = LM3530_RAMP_TIME_1s, +	.brt_ramp_fall = LM3530_RAMP_TIME_130ms, /* LM3530_RAMP_TIME_1s, */ +	.brt_ramp_rise = LM3530_RAMP_TIME_130ms, /* LM3530_RAMP_TIME_1s, */  	//.als1_resistor_sel = LM3530_ALS_IMPD_13_53kOhm,  	//.als2_resistor_sel = LM3530_ALS_IMPD_Z,  	//.als_vmin = 730,	    /* mV */ @@ -232,7 +232,9 @@ static struct platform_device nop_phy_device = {   */  static struct regulator_init_data omap3h1_vbat_data = { -	.constraints.always_on = true, +    .constraints.always_on = true, +    .constraints.valid_modes_mask = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY, +    .constraints.valid_ops_mask = REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS,  };  static struct fixed_voltage_config omap3h1_vbat_pdata = { @@ -255,7 +257,8 @@ static struct platform_device omap3h1_vbat = {  static struct regulator_init_data tps65910_dummy = {  	.supply_regulator = "VBAT", -    .constraints.always_on  = true, +    .constraints.always_on  = false, +    /* .constraints.valid_ops_mask = REGULATOR_CHANGE_STATUS, */  };  /* --------------------------------------------------------------------------- */ @@ -270,7 +273,7 @@ static struct regulator_init_data tps65910_touch3 = {          .min_uV            = 3300000,          .max_uV            = 3300000,          .valid_modes_mask  = REGULATOR_MODE_NORMAL, -        .valid_ops_mask    = REGULATOR_CHANGE_VOLTAGE, +        .valid_ops_mask    = REGULATOR_CHANGE_VOLTAGE | REGULATOR_CHANGE_STATUS,          .always_on         = true,          .apply_uV		   = true,      }, @@ -289,8 +292,10 @@ static struct regulator_init_data tps65910_vibrator = {      .constraints = {          .min_uV            = 3300000,          .max_uV            = 3300000, -        .valid_modes_mask  = REGULATOR_MODE_NORMAL, -        .valid_ops_mask    = REGULATOR_CHANGE_VOLTAGE, +        .valid_modes_mask  = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY, +        .valid_ops_mask    = REGULATOR_CHANGE_VOLTAGE |  +                             REGULATOR_CHANGE_MODE | +                             REGULATOR_CHANGE_STATUS,          .always_on         = true,          .apply_uV		   = true,      }, @@ -308,8 +313,10 @@ static struct regulator_init_data tps65910_3v3 = {      .constraints = {          .min_uV            = 3300000,          .max_uV            = 3300000, -        .valid_modes_mask  = REGULATOR_MODE_NORMAL, -        .valid_ops_mask    = REGULATOR_CHANGE_VOLTAGE, +        .valid_modes_mask  = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY, +        .valid_ops_mask    = REGULATOR_CHANGE_VOLTAGE |  +                             REGULATOR_CHANGE_MODE    |  +                             REGULATOR_CHANGE_STATUS,          .always_on         = true,          .apply_uV		   = true,      }, @@ -317,6 +324,9 @@ static struct regulator_init_data tps65910_3v3 = {  /* --------------------------------------------------------------------------- */ +/* This regulator must not be allowed to change status, doing so causes        + * reboots to fail. Not sure why that is. --mfj + */  static struct regulator_consumer_supply tps65910_1v8_supply[] = {      REGULATOR_SUPPLY("vdds_dsi", "omapdss"), @@ -330,7 +340,7 @@ static struct regulator_init_data tps65910_1v8 = {          .max_uV            = 1800000,          .valid_modes_mask  = REGULATOR_MODE_NORMAL,          .valid_ops_mask    = REGULATOR_CHANGE_VOLTAGE, -        .always_on         = true, +        .always_on         = false,          .apply_uV		   = true,      },      .num_consumer_supplies = ARRAY_SIZE(tps65910_1v8_supply), @@ -347,9 +357,9 @@ static struct regulator_init_data tps65910_vpll = {      .constraints = {          .min_uV            = 1800000,          .max_uV            = 1800000, -        .valid_modes_mask  = REGULATOR_MODE_NORMAL, -        .valid_ops_mask    = REGULATOR_CHANGE_VOLTAGE, -        .always_on         = true, +        .valid_modes_mask  = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY,  +        .valid_ops_mask    = REGULATOR_CHANGE_VOLTAGE | REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, +        .always_on         = false,          .apply_uV		   = true,      },      .num_consumer_supplies = ARRAY_SIZE(tps65910_vpll_supply), @@ -368,9 +378,9 @@ static struct regulator_init_data tps65910_touch = {      .constraints = {          .min_uV            = 1800000,          .max_uV            = 1800000, -        .valid_modes_mask  = REGULATOR_MODE_NORMAL, -        .valid_ops_mask    = REGULATOR_CHANGE_VOLTAGE, -        .always_on         = true, +        .valid_modes_mask  = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY, +        .valid_ops_mask    = REGULATOR_CHANGE_VOLTAGE | REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, +        .always_on         = false,          .apply_uV		   = true,      },      .num_consumer_supplies = ARRAY_SIZE(tps65910_touch_supply), @@ -389,9 +399,9 @@ static struct regulator_init_data tps65910_accel = {      .constraints = {          .min_uV            = 1800000,          .max_uV            = 1800000, -        .valid_modes_mask  = REGULATOR_MODE_NORMAL, -        .valid_ops_mask    = REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, -        .always_on         = true, +        .valid_modes_mask  = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY, +        .valid_ops_mask    = REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, +        .always_on         = false,          .apply_uV		   = true,      },      .num_consumer_supplies = ARRAY_SIZE(tps65910_accel_supply), @@ -410,9 +420,9 @@ static struct regulator_init_data tps65910_vdd1 = {          .name              = "vdd_mpu",          .min_uV            = 900000,          .max_uV            = 1350000, -        .valid_modes_mask  = REGULATOR_MODE_NORMAL, -        .valid_ops_mask    = REGULATOR_CHANGE_VOLTAGE, -        //.always_on       = 1, +        .valid_modes_mask  = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY, +        .valid_ops_mask    = REGULATOR_CHANGE_VOLTAGE | REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, +        .always_on         = false,      },      .num_consumer_supplies = ARRAY_SIZE(tps65910_vdd1_supply),      .consumer_supplies     = tps65910_vdd1_supply, @@ -430,9 +440,9 @@ static struct regulator_init_data tps65910_vdd2 = {          .name              = "vdd_core",          .min_uV            = 900000,          .max_uV            = 1200000, -        .valid_modes_mask  = REGULATOR_MODE_NORMAL, -        .valid_ops_mask    = REGULATOR_CHANGE_VOLTAGE, -        //.always_on       = 1, +        .valid_modes_mask  = REGULATOR_MODE_NORMAL | REGULATOR_MODE_STANDBY, +        .valid_ops_mask    = REGULATOR_CHANGE_VOLTAGE | REGULATOR_CHANGE_MODE | REGULATOR_CHANGE_STATUS, +        .always_on         = false,      },      .num_consumer_supplies = ARRAY_SIZE(tps65910_vdd2_supply),      .consumer_supplies     = tps65910_vdd2_supply, @@ -464,7 +474,8 @@ static struct tps65910_board omap3h1_tps65910_pdata = {      .tps65910_pmic_init_data[TPS65910_REG_VDAC]     = &tps65910_dummy,      .tps65910_pmic_init_data[TPS65910_REG_VAUX1]    = &tps65910_dummy, /* 2v85 */      .tps65910_pmic_init_data[TPS65910_REG_VDD3]     = &tps65910_dummy, - +     +    .pm_off = true,  };  static struct i2c_board_info __initdata omap3h1_i2c1_board_info[] = { diff --git a/drivers/leds/leds-lm3530.c b/drivers/leds/leds-lm3530.c index a036a19040f..c3182fae12e 100644 --- a/drivers/leds/leds-lm3530.c +++ b/drivers/leds/leds-lm3530.c @@ -486,6 +486,24 @@ static int lm3530_remove(struct i2c_client *client)  	return 0;  } + +/*************************************************************************** + * lm3530_shutdown - make sure brightness is set to 0 + *  + * The PMIC of the Olio H1 can't provide the power needed by the lm3530,  + * in other words, it does it's own power management. This means we need  + * to shut off power usage. Brightness of 0 should do this. + */ + +static void lm3530_shutdown(struct i2c_client *client) +{ +	struct lm3530_data *drvdata = i2c_get_clientdata(client); + +    lm3530_brightness_set(&(drvdata->led_dev), LED_OFF); + +	return; +} +  static const struct i2c_device_id lm3530_id[] = {  	{LM3530_NAME, 0},  	{} @@ -495,6 +513,7 @@ MODULE_DEVICE_TABLE(i2c, lm3530_id);  static struct i2c_driver lm3530_i2c_driver = {  	.probe = lm3530_probe,  	.remove = lm3530_remove, +    .shutdown = lm3530_shutdown,  	.id_table = lm3530_id,  	.driver = {  		.name = LM3530_NAME, diff --git a/drivers/regulator/tps65910-regulator.c b/drivers/regulator/tps65910-regulator.c index 45c16447744..035eb750e28 100644 --- a/drivers/regulator/tps65910-regulator.c +++ b/drivers/regulator/tps65910-regulator.c @@ -906,7 +906,7 @@ static int tps65910_set_ext_sleep_config(struct tps65910_reg *pmic,  		}  		ret = tps65910_reg_write(pmic->mfd, sr_reg_add, 0);  		if (ret < 0) { -			dev_err(mfd->dev, "Error in settting sr register\n"); +			dev_err(mfd->dev, "Error in setting sr register\n");  			return ret;  		}  	} |