linux/drivers/soc
Brian Norris 0b741b8234 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>
2017-09-25 11:46:48 -07:00
..
actions soc: actions: owl-sps: Factor out owl_sps_set_pg() for power-gating 2017-06-23 17:43:27 +02:00
amlogic soc: Add Amlogic SoC Information driver 2017-07-28 09:25:07 -07:00
atmel ARM: at91: add armv7m SoC detection 2017-06-02 10:11:49 +02:00
bcm soc: bcm: brcmstb: Add support for S2/S3/S5 suspend states (ARM) 2017-09-25 11:46:48 -07:00
dove soc: dove: constify reset_control_ops structures 2017-01-27 17:52:57 +01:00
fsl soc: Convert to using %pOF instead of full_name 2017-08-16 21:32:36 +02:00
imx soc: imx: gpcv2: fix regulator deferred probe 2017-08-05 11:12:20 +08:00
lantiq MIPS: lantiq: Add a GPHY driver which uses the RCU syscon-mfd 2017-09-04 21:19:02 +02:00
mediatek - add mt7623a smp support 2017-08-18 23:27:22 +02:00
qcom ARM: SoC driver updates for v4.14 2017-09-10 20:40:00 -07:00
renesas Renesas ARM Based SoC Drivers Updates for v4.14 2017-08-16 21:55:03 +02:00
rockchip soc: rockchip: power-domain: add power domain support for rk3366 2017-07-20 22:42:19 +02:00
samsung Samsung soc drivers changes for v4.14 2017-08-23 21:46:12 +02:00
sunxi drivers: soc: sunxi: add support for A64 and its SRAM C 2017-08-18 14:30:21 +08:00
tegra soc/tegra: fuse: Add missing semi-colon 2017-08-23 11:54:27 +02:00
ti soc: ti: knav: Add a NULL pointer check for kdev in knav_pool_create 2017-08-21 09:19:50 +02:00
ux500 ARM: ux500: move soc_id driver to drivers/soc 2016-07-12 11:24:09 +02:00
versatile soc: versatile: remove unnecessary static in realview_soc_probe() 2017-08-16 22:28:27 +02:00
zte soc: zte: Restrict SOC_ZTE to ARCH_ZX or COMPILE_TEST 2017-07-27 13:12:34 +02:00
Kconfig soc: Add Amlogic SoC Information driver 2017-07-28 09:25:07 -07:00
Makefile Merge branch '4.14-features' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2017-09-15 20:43:33 -07:00