summaryrefslogtreecommitdiff
path: root/include/linux/platform_data/pm33xx.h
diff options
context:
space:
mode:
authorDave Gerlach <d-gerlach@ti.com>2019-12-12 21:07:53 -0600
committerTony Lindgren <tony@atomide.com>2020-02-27 09:27:27 -0800
commit65880ab160838e0764138894ef4450abdbed4af5 (patch)
treeea35636572f1026b2107266a1ffa66fbbf20db24 /include/linux/platform_data/pm33xx.h
parent06ee7a950b6a342cd79590e7243bdda850141967 (diff)
ARM: OMAP2+: pm33xx-core: Extend platform_data ops for cpuidle
In order for am335x and am437x to properly enter deeper c-states in cpuidle they must always call into the sleep33/43xx suspend code and also sometimes invoke the wkup_m3_ipc driver. These are both controlled by the pm33xx module so we must provide a method for the platform code to call back into the module when it is available as the core cpuidle ops that are invoked by the cpuidle-arm driver must remain as built in. Extend the init platform op to take an idle function as an argument so that we can use this to call into the pm33xx module for c-states that need it. Also add a deinit op so we can unregister this idle function from the PM core when the pm33xx module gets unloaded. Acked-by: Santosh Shilimkar <ssantosh@kernel.org> Signed-off-by: Dave Gerlach <d-gerlach@ti.com> Acked-by: Santosh Shilimkar <ssantosh@kernel.org> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'include/linux/platform_data/pm33xx.h')
-rw-r--r--include/linux/platform_data/pm33xx.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/platform_data/pm33xx.h b/include/linux/platform_data/pm33xx.h
index 8e59f2db2adc..644af1d89cfa 100644
--- a/include/linux/platform_data/pm33xx.h
+++ b/include/linux/platform_data/pm33xx.h
@@ -46,7 +46,8 @@ struct am33xx_pm_sram_addr {
};
struct am33xx_pm_platform_data {
- int (*init)(void);
+ int (*init)(int (*idle)(u32 wfi_flags));
+ int (*deinit)(void);
int (*soc_suspend)(unsigned int state, int (*fn)(unsigned long),
unsigned long args);
int (*cpu_suspend)(int (*fn)(unsigned long), unsigned long args);