diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/cpufreq/omap-cpufreq.c | 7 | ||||
| -rw-r--r-- | drivers/leds/leds-lm3530.c | 6 | ||||
| -rw-r--r-- | drivers/mfd/tps65910.c | 21 | ||||
| -rw-r--r-- | drivers/power/bq27x00_battery.c | 1 | ||||
| -rw-r--r-- | drivers/video/omap2/omapfb/omapfb-main.c | 31 |
5 files changed, 59 insertions, 7 deletions
diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c index 0279d18a57f..3bdb1d9c786 100644 --- a/drivers/cpufreq/omap-cpufreq.c +++ b/drivers/cpufreq/omap-cpufreq.c @@ -246,16 +246,19 @@ static struct cpufreq_driver omap_driver = { static int omap_cpufreq_probe(struct platform_device *pdev) { + printk ("%s: OLIO: Entered\n", __FUNCTION__); + mpu_dev = get_cpu_device(0); if (!mpu_dev) { pr_warning("%s: unable to get the mpu device\n", __func__); return -EINVAL; } - mpu_reg = regulator_get(mpu_dev, "vcc"); + mpu_reg = regulator_get(mpu_dev, "vdd_mpu_iva"); /* OLIO: Orig "vcc" */ if (IS_ERR(mpu_reg)) { - pr_warning("%s: unable to get MPU regulator\n", __func__); + pr_warning("%s: unable to get MPU regulator, will try again in a bit\n", __func__); mpu_reg = NULL; + return -EPROBE_DEFER; } else { /* * Ensure physical regulator is present. diff --git a/drivers/leds/leds-lm3530.c b/drivers/leds/leds-lm3530.c index fda0efb4f88..89499d369ea 100644 --- a/drivers/leds/leds-lm3530.c +++ b/drivers/leds/leds-lm3530.c @@ -449,7 +449,11 @@ static int lm3530_probe(struct i2c_client *client, i2c_set_clientdata(client, drvdata); - drvdata->regulator = devm_regulator_get(&client->dev, "vin"); + /* OLIO: The regulator name should be passed through the platform_data + * structure. Fixme. + */ + + drvdata->regulator = devm_regulator_get(&client->dev, "vdds_dsi"); if (IS_ERR(drvdata->regulator)) { dev_err(&client->dev, "regulator get failed\n"); err = PTR_ERR(drvdata->regulator); diff --git a/drivers/mfd/tps65910.c b/drivers/mfd/tps65910.c index 1e7ef2a2e35..0e0412b3bfb 100644 --- a/drivers/mfd/tps65910.c +++ b/drivers/mfd/tps65910.c @@ -363,8 +363,13 @@ static int tps65910_sleepinit(struct tps65910 *tps65910, dev = tps65910->dev; - if (!pmic_pdata->en_dev_slp) - return 0; + /* set polarity of SLLEEPSIG requst ot enter OFF mode */ + ret = tps65910_reg_set_bits(tps65910, TPS65910_DEVCTRL2, + DEVCTRL2_SLEEPSIG_POL_MASK); + if (ret < 0) { + dev_err(dev, "set sleepsig_pol failed: %d\n", ret); + goto err_sleep_init; + } /* * set polarity of SLLEEPSIG requst to enter OFF mode @@ -385,6 +390,18 @@ static int tps65910_sleepinit(struct tps65910 *tps65910, goto err_sleep_init; } + ret = tps65910_reg_set_bits(tps65910, TPS65910_SLEEP_KEEP_RES_ON, + SLEEP_KEEP_RES_ON_CLKOUT32K_KEEPON_MASK); + if (ret < 0) { + dev_err(dev, "set sleep_keep_res_on failed: %d\n", ret); + goto err_sleep_init; + } + +/* Return if there is no sleep keepon data. */ +/* This can't really happen... */ +/* if (pmic_pdata.slp_keepon) */ +/* return 0; */ + if (pmic_pdata->slp_keepon.therm_keepon) { ret = tps65910_reg_set_bits(tps65910, TPS65910_SLEEP_KEEP_RES_ON, diff --git a/drivers/power/bq27x00_battery.c b/drivers/power/bq27x00_battery.c index 646ed08b95c..c26859a2f84 100644 --- a/drivers/power/bq27x00_battery.c +++ b/drivers/power/bq27x00_battery.c @@ -1430,6 +1430,7 @@ static irqreturn_t bq27x00_chg_isr(int irq, void *dev) { wake_lock_timeout(&chg_wake_lock, msecs_to_jiffies(500)); /* dev_dbg(ps->dev, "%s: Updating battery status\n", __func__); Don't do i/o in interrupt! */ + bq27x00_external_power_changed(ps); return IRQ_HANDLED; diff --git a/drivers/video/omap2/omapfb/omapfb-main.c b/drivers/video/omap2/omapfb/omapfb-main.c index 13733c8bb1b..98c645429bd 100644 --- a/drivers/video/omap2/omapfb/omapfb-main.c +++ b/drivers/video/omap2/omapfb/omapfb-main.c @@ -2640,8 +2640,8 @@ static int omapfb_probe(struct platform_device *pdev) r = omapfb_init_display(fbdev, def_display); if (r) { dev_err(fbdev->dev, - "failed to initialize default " - "display\n"); + "failed to initialize default " + "display\n"); goto cleanup; } } @@ -2687,9 +2687,36 @@ static int __exit omapfb_remove(struct platform_device *pdev) return 0; } +/* Need to add suspend / wake pair of functions here. + * All we really need is for the suspend function to clear the screen + * to black. + */ + +static int omapfb_suspend (struct platform_device * pdev, pm_message_t state) +{ + struct omapfb2_device *fbdev = platform_get_drvdata(pdev); + struct fb_info * fbi; + + fbi = fbdev->fbs[0]; + + if (fbi != NULL) + omapfb_clear_fb(fbi); + + return 0; +} + +static int omapfb_resume (struct platform_device * pdev) +{ + /* No need to do anything, I think */ + + return 0; +} + static struct platform_driver omapfb_driver = { .probe = omapfb_probe, .remove = __exit_p(omapfb_remove), + .suspend = omapfb_suspend, + .resume = omapfb_resume, .driver = { .name = "omapfb", .owner = THIS_MODULE, |