linux/drivers/soc/samsung
Peter Griffin 78b72897a5 soc: samsung: exynos-pmu: Enable CPU Idle for gs101
Register cpu pm notifiers for gs101 which call the
gs101_cpu_pmu_online/offline callbacks which in turn program the ACPM
C2 hint. This hint is required to actually enter the C2 idle state in
addition to the PSCI calls due to limitations in the el3mon/ACPM firmware.

A couple of corner cases are handled, namely when the system is rebooting
or suspending we ignore the request. Additionally the request is ignored if
the CPU is in CPU hot plug. Some common code is refactored so that it can
be called from both the CPU hot plug callbacks and CPU PM notifier taking
into account that CPU PM notifiers are called with IRQs disabled whereas
CPU hotplug callbacks are not.

Additionally due to CPU PM notifiers using raw_spinlock the locking is
updated to use raw_spinlock variants, this includes updating the pmu_regs
regmap to use .use_raw_spinlock = true and additionally creating and
registering a custom  pmu-intr-gen regmap instead of using the regmap
provided by syscon.

Note: this patch has a runtime dependency on adding 'local-timer-stop' dt
property to the CPU nodes. This informs the time framework to switch to a
broadcast timer as the local timer will be shutdown. Without that DT
property specified the system hangs in early boot with this patch applied.

Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Link: https://lore.kernel.org/r/20250717-gs101-cpuidle-v7-1-33d51770114b@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
2025-08-11 09:04:54 +02:00
..
Kconfig soc: samsung: exynos-pmu: Add regmap support for SoCs that protect PMU regs 2024-02-25 11:39:23 +01:00
Makefile
exynos-asv.c soc: samsung: include linux/array_size.h where needed 2025-03-06 19:10:17 +01:00
exynos-asv.h
exynos-chipid.c Samsung mach/soc changes for v6.15 2025-03-19 22:39:12 +01:00
exynos-pmu.c soc: samsung: exynos-pmu: Enable CPU Idle for gs101 2025-08-11 09:04:54 +02:00
exynos-pmu.h soc: samsung: exynos-pmu: enable CPU hotplug support for gs101 2025-05-13 10:02:29 +02:00
exynos-regulator-coupler.c
exynos-usi.c soc: samsung: usi: prevent wrong bits inversion during unconfiguring 2025-04-14 08:51:18 +02:00
exynos4-pmu.c
exynos3250-pmu.c soc: samsung: include linux/array_size.h where needed 2025-03-06 19:10:17 +01:00
exynos5250-pmu.c soc: samsung: include linux/array_size.h where needed 2025-03-06 19:10:17 +01:00
exynos5420-pmu.c soc: samsung: include linux/array_size.h where needed 2025-03-06 19:10:17 +01:00
exynos5422-asv.c
exynos5422-asv.h
s3c-pm-check.c