SoC updates for omaps for v4.19 merge window
These changes are mostly PM related changes for am335x and am437x to support RTC only suspend mode. Some of the clock and driver related chances are still pending so it's not yet fully functional. Also included is a change for PM debug sysfs entry to use DEFINE_SHOW_ATTRIBUTE. -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEEkgNvrZJU/QSQYIcQG9Q+yVyrpXMFAltF9jwRHHRvbnlAYXRv bWlkZS5jb20ACgkQG9Q+yVyrpXND+A/+Is28Eudbo9KvOtNA6Pebk2uT2sIUcBB8 a+j71jHALGpMKk7XpgBwsCgA+Fn7MRtERS+9MFyganXl9Ug0i3T1h725sEAQo6ok 4dItC+BzCjOkbJuwGQB1KvmCKeouF7qjYG2Jgy54AljAHZtDW0tbgC9S6o0xvfJN p5zN4WMgomSoKFfoCkrzeQQblg5fUJU6BuK0zHBPVRNKSF2T1THZiUUrF1QWvmbM /L8/TRqpkngzZfj2dhv/Ja9WxR9MUzbeciwiiF+5j9Yu5+PcUO/OYN7P9i/nM9J3 G/kTyCALTagVqia84Q+llitkUwlbXkC83BSAgWFVXEIbDmDALhya2KtApePkTP5j n9NceSuuOmKEA/4uq2jR89sTbd3UC9zYNlEu2R0qcrpSo+4N3Q4Pp9LsrN52g8M/ bG0t53YC+vFM+GUhVTxKs2zH1amJRHlPvMqmSJQksY0o/QJFxTFOFdGh9nfhYetq ci3c8Ljv0MF2TuiGnG6FOOyax7pyap7oxOZfUuxwkCIhXgQs9UIcQy3e5s8if4F2 5brWdWuvqJPWWIyv9IF0yfT5IA44LJpO+UbZLmUHcPucH1gkJSai8GFJKXttfyQx Mw5sn/QUQoTHCd+NSocHirr0iPg2OqHNtHJlRdqrV2gx2hT9878gIwqnWUeXyUM4 3SzrsXUWtik= =Px9o -----END PGP SIGNATURE----- Merge tag 'omap-for-v4.19/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/soc SoC updates for omaps for v4.19 merge window These changes are mostly PM related changes for am335x and am437x to support RTC only suspend mode. Some of the clock and driver related chances are still pending so it's not yet fully functional. Also included is a change for PM debug sysfs entry to use DEFINE_SHOW_ATTRIBUTE. * tag 'omap-for-v4.19/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP2+: sleep33/43xx: Add RTC-Mode support ARM: OMAP2+: sleep33/43xx: Make sleep actions configurable ARM: OMAP2+: reuse DEFINE_SHOW_ATTRIBUTE() macro ARM: hwmod: RTC: Don't assume lock/unlock will be called with irq enabled Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
commit
edc07c0012
8 changed files with 229 additions and 49 deletions
|
|
@ -12,6 +12,29 @@
|
|||
#include <linux/kbuild.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
/*
|
||||
* WFI Flags for sleep code control
|
||||
*
|
||||
* These flags allow PM code to exclude certain operations from happening
|
||||
* in the low level ASM code found in sleep33xx.S and sleep43xx.S
|
||||
*
|
||||
* WFI_FLAG_FLUSH_CACHE: Flush the ARM caches and disable caching. Only
|
||||
* needed when MPU will lose context.
|
||||
* WFI_FLAG_SELF_REFRESH: Let EMIF place DDR memory into self-refresh and
|
||||
* disable EMIF.
|
||||
* WFI_FLAG_SAVE_EMIF: Save context of all EMIF registers and restore in
|
||||
* resume path. Only needed if PER domain loses context
|
||||
* and must also have WFI_FLAG_SELF_REFRESH set.
|
||||
* WFI_FLAG_WAKE_M3: Disable MPU clock or clockdomain to cause wkup_m3 to
|
||||
* execute when WFI instruction executes.
|
||||
* WFI_FLAG_RTC_ONLY: Configure the RTC to enter RTC+DDR mode.
|
||||
*/
|
||||
#define WFI_FLAG_FLUSH_CACHE BIT(0)
|
||||
#define WFI_FLAG_SELF_REFRESH BIT(1)
|
||||
#define WFI_FLAG_SAVE_EMIF BIT(2)
|
||||
#define WFI_FLAG_WAKE_M3 BIT(3)
|
||||
#define WFI_FLAG_RTC_ONLY BIT(4)
|
||||
|
||||
#ifndef __ASSEMBLER__
|
||||
struct am33xx_pm_sram_addr {
|
||||
void (*do_wfi)(void);
|
||||
|
|
@ -19,12 +42,15 @@ struct am33xx_pm_sram_addr {
|
|||
unsigned long *resume_offset;
|
||||
unsigned long *emif_sram_table;
|
||||
unsigned long *ro_sram_data;
|
||||
unsigned long resume_address;
|
||||
};
|
||||
|
||||
struct am33xx_pm_platform_data {
|
||||
int (*init)(void);
|
||||
int (*soc_suspend)(unsigned int state, int (*fn)(unsigned long));
|
||||
int (*soc_suspend)(unsigned int state, int (*fn)(unsigned long),
|
||||
unsigned long args);
|
||||
struct am33xx_pm_sram_addr *(*get_sram_addrs)(void);
|
||||
void __iomem *(*get_rtc_base_addr)(void);
|
||||
};
|
||||
|
||||
struct am33xx_pm_sram_data {
|
||||
|
|
@ -36,6 +62,7 @@ struct am33xx_pm_sram_data {
|
|||
struct am33xx_pm_ro_sram_data {
|
||||
u32 amx3_pm_sram_data_virt;
|
||||
u32 amx3_pm_sram_data_phys;
|
||||
void __iomem *rtc_base_virt;
|
||||
} __packed __aligned(8);
|
||||
|
||||
#endif /* __ASSEMBLER__ */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue