summaryrefslogtreecommitdiffstats
path: root/drivers/soc/bcm/brcmstb/Kconfig
diff options
context:
space:
mode:
authorBrian Norris <computersforpeace@gmail.com>2017-06-15 21:37:31 +0200
committerFlorian Fainelli <f.fainelli@gmail.com>2017-09-25 20:46:48 +0200
commit0b741b8234c86065fb6954d32d427b3f7e14756f (patch)
tree1c72f51ff869ecef858ede9fffb582494bdd7e9d /drivers/soc/bcm/brcmstb/Kconfig
parentdt-bindings: ARM: brcmstb: Update Broadcom STB Power Management binding (diff)
downloadlinux-0b741b8234c86065fb6954d32d427b3f7e14756f.tar.xz
linux-0b741b8234c86065fb6954d32d427b3f7e14756f.zip
soc: bcm: brcmstb: Add support for S2/S3/S5 suspend states (ARM)
This commit adds support for the Broadcom STB S2/S3/S5 suspend states on ARM based SoCs. This requires quite a lot of code in order to deal with the different HW blocks that need to be quiesced during suspend: - DDR PHY SHIM - DDR memory controller and sequencer - control processor The final steps of the suspend execute in an on-chip SRAM and there is a little bit of assembly code in order to shut down the DDR PHY PLL and then go into a wfi loop until a wake-up even occurs. Conversely the resume part involves waiting for the DDR PHY PLL to come back up and resume executions where we left. For S3, because of our memory hashing (actual hashing code not included for simplicity, and is bypassed) we need to relocate the writable variables (stack) into SRAM shortly before suspending in order to leave the DRAM untouched and create a reliable hash of its contents. This code has been contributed by Brian Norris initially and has been incrementally fixed and updated to support new chips by a lot of people. Signed-off-by: Brian Norris <computersforpeace@gmail.com> Signed-off-by: Markus Mayer <mmayer@broadcom.com> Signed-off-by: Justin Chen <justinpopo6@gmail.com> Signed-off-by: Gareth Powell <gpowell@broadcom.com> Signed-off-by: Doug Berger <opendmb@gmail.com> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Diffstat (limited to 'drivers/soc/bcm/brcmstb/Kconfig')
-rw-r--r--drivers/soc/bcm/brcmstb/Kconfig10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/soc/bcm/brcmstb/Kconfig b/drivers/soc/bcm/brcmstb/Kconfig
new file mode 100644
index 000000000000..4425430119fe
--- /dev/null
+++ b/drivers/soc/bcm/brcmstb/Kconfig
@@ -0,0 +1,10 @@
+if SOC_BRCMSTB
+
+config BRCMSTB_PM
+ bool "Support suspend/resume for STB platforms"
+ default y
+ depends on PM
+ depends on ARCH_BRCMSTB
+ select ARM_CPU_SUSPEND if ARM
+
+endif # SOC_BRCMSTB