Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e1cb367d authored by Ezequiel Garcia's avatar Ezequiel Garcia Committed by Jason Cooper
Browse files

ARM: kirkwood: Add standby support



Implements standby support for Kirkwood SoC. When the SoC enters
standby state the memory PM units are disabled, the DDR is set
in self-refresh mode, and the CPU is set in WFI.

At this point there's no clock gating, as that is considered each
driver's task.

Signed-off-by: default avatarSimon Guinot <sguinot@lacie.com>
Signed-off-by: default avatarEzequiel Garcia <ezequiel.garcia@free-electrons.com>
Signed-off-by: default avatarJason Cooper <jason@lakedaemon.net>
parent 272b98c6
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
obj-y				+= common.o pcie.o
obj-$(CONFIG_KIRKWOOD_LEGACY)	+= irq.o mpp.o
obj-$(CONFIG_PM)		+= pm.o

obj-$(CONFIG_MACH_D2NET_V2)		+= d2net_v2-setup.o lacie_v2-common.o
obj-$(CONFIG_MACH_NET2BIG_V2)		+= netxbig_v2-setup.o lacie_v2-common.o
obj-$(CONFIG_MACH_NET5BIG_V2)		+= netxbig_v2-setup.o lacie_v2-common.o
+1 −0
Original line number Diff line number Diff line
@@ -101,6 +101,7 @@ static void __init kirkwood_dt_init(void)
	/* Setup clocks for legacy devices */
	kirkwood_legacy_clk_init();

	kirkwood_pm_init();
	kirkwood_cpuidle_init();

#ifdef CONFIG_KEXEC
+1 −0
Original line number Diff line number Diff line
@@ -721,6 +721,7 @@ void __init kirkwood_init(void)
	kirkwood_xor1_init();
	kirkwood_crypto_init();

	kirkwood_pm_init();
	kirkwood_cpuidle_init();
#ifdef CONFIG_KEXEC
	kexec_reinit = kirkwood_enable_pcie;
+6 −0
Original line number Diff line number Diff line
@@ -58,6 +58,12 @@ void kirkwood_cpufreq_init(void);
void kirkwood_restart(enum reboot_mode, const char *);
void kirkwood_clk_init(void);

#ifdef CONFIG_PM
void kirkwood_pm_init(void);
#else
static inline void kirkwood_pm_init(void) {};
#endif

/* board init functions for boards not fully converted to fdt */
#ifdef CONFIG_MACH_MV88F6281GTW_GE_DT
void mv88f6281gtw_ge_init(void);
+2 −0
Original line number Diff line number Diff line
@@ -78,4 +78,6 @@
#define CGC_TDM			(1 << 20)
#define CGC_RESERVED		(0x6 << 21)

#define MEMORY_PM_CTRL		(BRIDGE_VIRT_BASE + 0x118)

#endif
Loading