linux-stable/drivers/soc/samsung
Peter Griffin 0b7c607502 soc: samsung: exynos-pmu: Add regmap support for SoCs that protect PMU regs
Some Exynos based SoCs like Tensor gs101 protect the PMU registers for
security hardening reasons so that they are only write accessible in el3
via an SMC call.

As most Exynos drivers that need to write PMU registers currently obtain a
regmap via syscon (phys, pinctrl, watchdog). Support for the above usecase
is implemented in this driver using a custom regmap similar to syscon to
handle the SMC call. Platforms that don't secure PMU registers, get a mmio
regmap like before. As regmaps abstract out the underlying register access
changes to the leaf drivers are minimal.

A new API exynos_get_pmu_regmap_by_phandle() is provided for leaf drivers
that currently use syscon_regmap_lookup_by_phandle(). This also handles
deferred probing.

Tested-by: Sam Protsenko <semen.protsenko@linaro.org>
Tested-by: Alexey Klimov <alexey.klimov@linaro.org>
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Link: https://lore.kernel.org/r/20240220220613.797068-2-peter.griffin@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
2024-02-25 11:39:23 +01:00
..
Kconfig soc: samsung: exynos-pmu: Add regmap support for SoCs that protect PMU regs 2024-02-25 11:39:23 +01:00
Makefile soc: samsung: Move power-domain driver to the genpd dir 2023-07-14 10:40:56 +02:00
exynos-asv.c soc: samsung: exynos-chipid: convert to driver and merge exynos-asv 2021-01-03 17:08:45 +01:00
exynos-asv.h soc: samsung: exynos-chipid: convert to driver and merge exynos-asv 2021-01-03 17:08:45 +01:00
exynos-chipid.c soc: samsung: exynos-chipid: add exynosautov920 SoC support 2023-11-15 13:42:50 +01:00
exynos-pmu.c soc: samsung: exynos-pmu: Add regmap support for SoCs that protect PMU regs 2024-02-25 11:39:23 +01:00
exynos-pmu.h soc: samsung: exynos-pmu: Add regmap support for SoCs that protect PMU regs 2024-02-25 11:39:23 +01:00
exynos-regulator-coupler.c soc: samsung: exynos-regulator-coupler: Add simple voltage coupler for Exynos5800 2020-07-22 22:33:57 +02:00
exynos-usi.c soc: samsung: Add USI driver 2021-12-18 11:55:56 +01:00
exynos4-pmu.c soc: samsung: exynos-pmu: Re-introduce Exynos4212 support 2023-05-09 19:49:37 +02:00
exynos3250-pmu.c soc: samsung: Rename Samsung and Exynos to lowercase 2020-01-07 20:46:31 +01:00
exynos5250-pmu.c soc: samsung: Rename Samsung and Exynos to lowercase 2020-01-07 20:46:31 +01:00
exynos5420-pmu.c soc: samsung: Rename Samsung and Exynos to lowercase 2020-01-07 20:46:31 +01:00
exynos5422-asv.c soc: samsung: exynos-chipid: convert to a module 2021-09-29 15:50:34 +02:00
exynos5422-asv.h soc: samsung: Add Exynos Adaptive Supply Voltage driver 2019-10-28 17:59:33 +01:00
s3c-pm-check.c soc: samsung: s3c-pm-check: Fix incorrectly named variable 'val' 2020-11-03 21:37:45 +01:00