Commit 18b4788b authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'omap-for-v4.17/am-pm-signed' of...

Merge tag 'omap-for-v4.17/am-pm-signed' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/soc

Pull "Add am335x and am437x PM code for v4.17" from Tony Lindgren:

This series of changes from Dave Gerlach adds the PM related
code to allow low-power suspend states. The code consists of
the SoC specific assembly code and a related PM driver.

* tag 'omap-for-v4.17/am-pm-signed' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  soc: ti: Add pm33xx driver for basic suspend support
  ARM: OMAP2+: pm33xx-core: Add platform code needed for PM
  ARM: OMAP2+: Introduce low-level suspend code for AM43XX
  ARM: OMAP2+: Introduce low-level suspend code for AM33XX
parents 6f566c4f afe761f8
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -13,6 +13,13 @@ Required properties:
Optional properties:
- sram:	Phandle to the ocmcram node

am335x and am437x only:
- pm-sram: Phandles to ocmcram nodes to be used for power management.
	   First should be type 'protect-exec' for the driver to use to copy
	   and run PM functions, second should be regular pool to be used for
	   data region for code. See Documentation/devicetree/bindings/sram/sram.txt
	   for more details.

Examples:

- For an OMAP5 SMP system:
@@ -36,3 +43,12 @@ mpu {
    compatible = "ti,omap3-mpu";
    ti,hwmods = "mpu";
};

- For an AM335x system:

mpu {
	compatible = "ti,omap3-mpu";
	ti,hwmods = "mpu";
	pm-sram = <&pm_sram_code
		   &pm_sram_data>;
};
+1 −0
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ config SOC_AM43XX
	select ARM_ERRATA_754322
	select ARM_ERRATA_775420
	select OMAP_INTERCONNECT
	select ARM_CPU_SUSPEND if PM

config SOC_DRA7XX
	bool "TI DRA7XX"
+16 −0
Original line number Diff line number Diff line
@@ -88,6 +88,8 @@ omap-4-5-pm-common += pm44xx.o
obj-$(CONFIG_ARCH_OMAP4)		+= $(omap-4-5-pm-common)
obj-$(CONFIG_SOC_OMAP5)			+= $(omap-4-5-pm-common)
obj-$(CONFIG_SOC_DRA7XX)		+= $(omap-4-5-pm-common)
obj-$(CONFIG_SOC_AM33XX)		+= pm33xx-core.o sleep33xx.o
obj-$(CONFIG_SOC_AM43XX)		+= pm33xx-core.o sleep43xx.o
obj-$(CONFIG_PM_DEBUG)			+= pm-debug.o

obj-$(CONFIG_POWER_AVS_OMAP)		+= sr_device.o
@@ -95,6 +97,8 @@ obj-$(CONFIG_POWER_AVS_OMAP_CLASS3) += smartreflex-class3.o

AFLAGS_sleep24xx.o			:=-Wa,-march=armv6
AFLAGS_sleep34xx.o			:=-Wa,-march=armv7-a$(plus_sec)
AFLAGS_sleep33xx.o			:=-Wa,-march=armv7-a$(plus_sec)
AFLAGS_sleep43xx.o			:=-Wa,-march=armv7-a$(plus_sec)

endif

@@ -232,3 +236,15 @@ obj-y += $(omap-hsmmc-m) $(omap-hsmmc-y)
obj-y					+= omap_phy_internal.o

obj-$(CONFIG_MACH_OMAP2_TUSB6010)	+= usb-tusb6010.o

arch/arm/mach-omap2/pm-asm-offsets.s: arch/arm/mach-omap2/pm-asm-offsets.c
	$(call if_changed_dep,cc_s_c)

include/generated/ti-pm-asm-offsets.h: arch/arm/mach-omap2/pm-asm-offsets.s FORCE
	$(call filechk,offsets,__TI_PM_ASM_OFFSETS_H__)

# For rule to generate ti-emif-asm-offsets.h dependency
include drivers/memory/Makefile.asm-offsets

arch/arm/mach-omap2/sleep33xx.o: include/generated/ti-pm-asm-offsets.h include/generated/ti-emif-asm-offsets.h
arch/arm/mach-omap2/sleep43xx.o: include/generated/ti-pm-asm-offsets.h include/generated/ti-emif-asm-offsets.h
+7 −0
Original line number Diff line number Diff line
@@ -77,6 +77,13 @@ static inline int omap4_pm_init_early(void)
}
#endif

#if defined(CONFIG_PM) && (defined(CONFIG_SOC_AM33XX) || \
	defined(CONFIG_SOC_AM43XX))
void amx3_common_pm_init(void);
#else
static inline void amx3_common_pm_init(void) { }
#endif

extern void omap2_init_common_infrastructure(void);

extern void omap_init_time(void);
+2 −0
Original line number Diff line number Diff line
@@ -622,6 +622,7 @@ void __init am33xx_init_early(void)
void __init am33xx_init_late(void)
{
	omap_common_late_init();
	amx3_common_pm_init();
}
#endif

@@ -646,6 +647,7 @@ void __init am43xx_init_late(void)
{
	omap_common_late_init();
	omap2_clk_enable_autoidle_all();
	amx3_common_pm_init();
}
#endif

Loading