===================================================================
@@ -416,14 +416,35 @@
return err;
}
- return 0;
+
+ /* Set the remap sleep cmd */
+ err = twl_i2c_read_u8(TWL4030_MODULE_PM_RECEIVER, &remap,
+ rconfig_addr + REMAP_OFFSET);
+ if (err < 0) {
+ printk(KERN_ERR "TWL4030 Resource %d remap could not read\n",
+ rconfig->resource);
+ return err;
+ }
+
+ if (rconfig->remap_sleep >= 0) {
+ remap &= ~SLEEP_STATE_MASK;
+ remap |= rconfig->remap_sleep;
+ }
+
+ err = twl_i2c_write_u8(TWL4030_MODULE_PM_RECEIVER, remap,
+ rconfig_addr + REMAP_OFFSET);
+ if (err < 0) {
+ pr_err("TWL4030 failed to program remap sleep cmd \n");
+ return err;
+ }
+
+ return err;
}
static int __init load_twl4030_script(struct twl4030_script *tscript,
u8 address)
{
int err;
- static int order;
/* Make sure the script isn't going beyond last valid address (0x3f) */
if ((address + tscript->size) > END_OF_SCRIPT) {
@@ -444,7 +465,6 @@
err = twl4030_config_wakeup12_sequence(address);
if (err)
goto out;
- order = 1;
}
if (tscript->flags & TWL4030_WAKEUP3_SCRIPT) {
err = twl4030_config_wakeup3_sequence(address);
@@ -452,10 +472,6 @@
goto out;
}
if (tscript->flags & TWL4030_SLEEP_SCRIPT)
- if (order)
- pr_warning("TWL4030: Bad order of scripts (sleep "\
- "script before wakeup) Leads to boot"\
- "failure on some boards\n");
err = twl4030_config_sleep_sequence(address);
out:
return err;