ARM: OMAP2+: pm33xx-core: Add cpuidle_ops for am335x/am437x
authorDave Gerlach <d-gerlach@ti.com>
Fri, 13 Dec 2019 03:07:52 +0000 (21:07 -0600)
committerTony Lindgren <tony@atomide.com>
Thu, 27 Feb 2020 17:27:26 +0000 (09:27 -0800)
commit06ee7a950b6a342cd79590e7243bdda850141967
treeec8b5b0bc4a0b4a0c39ae813e6fc50e3d4693a84
parentb749ebe77d6c251d3a049d43f7e43781409c969c
ARM: OMAP2+: pm33xx-core: Add cpuidle_ops for am335x/am437x

am335x and am437x can now make use of the generic cpuidle-arm driver.
This requires that we define init and suspend ops to be passed set as
the cpuidle ops for the SoC. These ops are invoked directly at the last
stage of the cpuidle-arm driver in order to allow low level platform
code to run and bring the CPU the rest of the way into it's desired idle
state. It is required that the CPUIDLE_METHOD_OF_DECLARE be called from
code that is built in so define these ops in pm33xx-core where the
always built-in portion of the PM code for these SoCs lives.

Additionally, although an soc_suspend function is already exposed by the
pm33xx platform code, it contains additional operations needed for full
SoC suspend beyond what is needed for a relatively simple CPU suspend
needed during cpuidle. To get around this introduce cpu_suspend ops to
be used by the am335x and am437x PM driver for the last stage of cpuidle
path.

Acked-by: Santosh Shilimkar <ssantosh@kernel.org>
Signed-off-by: Dave Gerlach <d-gerlach@ti.com>
Acked-by: Santosh Shilimkar <ssantosh@kernel.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/pm33xx-core.c
include/linux/platform_data/pm33xx.h