mbox series

[v6,0/2] Add regmap support to exynos-pmu for protected PMU regs

Message ID 20240220220613.797068-1-peter.griffin@linaro.org (mailing list archive)
Headers show
Series Add regmap support to exynos-pmu for protected PMU regs | expand

Message

Peter Griffin Feb. 20, 2024, 10:06 p.m. UTC
Hi folks,

This is a v6 of the series to add support for protected PMU registers found
on gs101 and derivative SoCs. In v2 and later it was re-worked to be based
on a regmap abstraction that I think leads to a much neater overall
solution.

The advantage of the regmap abstraction is that most leaf drivers that
read/write PMU registers need minimal changes.

Example of Exynos drivers that require PMU register access are:
* watchdog
* usb phy
* mipi phy
* ufs phy

This series has been tested on Pixel 6 Oriole / gs101 (by me), exynos850
(by Sam) and odroid xu3 (exynos 5422) by Alexey. That confirms that both
the regmap mmio parts and regmap SMC parts are working correctly.

The expectation is this series would be merged via Krzysztofs Samsung Exynos
tree.

regards,

Peter

Changes since v5:
 - Update kerneldoc comment property -> propname 

Changes since v4:
 - Use same argument names as in struct regmap_config
 - Remove inline keyword and rely on compiler
 - Update kerneldoc wording
 - property -> propname argument rename
 - reverse Xmas tree
 - Only call of_node_put() when of_parse_phandle() is called
 - Collect tags

Changes since v3:
 - Fix PMUALIVE_MASK
 - Add TENSOR_ prefix
 - clear SET_BITS bits on each loop iteration
 - change set_bit to set_bits func name
 - Fix some alignment
 - Add missing return on dev_err_probe
 - Reduce indentation in loop

Changes since v2
 - Add select REGMAP to Kconfig
 - Add constant for SET/CLEAR bits
 - Replace kerneldoc with one line comment
 - Fix kerneldoc for EXPORT_SYMBOL_GPL funcs
 - remove superfluous extern keyword
 - dev_err_probe() on probe error
 - shorten regmcfg name
 - no compatibles inside probe, use match data
 - don't mix declarations with/without initializations
 - tensor_sec_reg_read() use mmio to avoid access restrictions
 - Collect up Reviewed-by
 - const for regmap_config structs

Changes since v1:
 - Refactor to use custom regmap to abstract SMC register access (Sam / Guenter)
 - Add deferred probing support (Saravana / Krzysztof)

v5 lore: https://lore.kernel.org/all/20240219204238.356942-1-peter.griffin@linaro.org/
v4 lore: https://lore.kernel.org/all/20240208161700.268570-1-peter.griffin@linaro.org/
v3 lore: https://lore.kernel.org/all/20240202145731.4082033-1-peter.griffin@linaro.org/
v2 lore: https://lore.kernel.org/lkml/20240129211912.3068411-1-peter.griffin@linaro.org/
v1 lore: https://lore.kernel.org/all/20240122225710.1952066-1-peter.griffin@linaro.org/

Peter Griffin (2):
  soc: samsung: exynos-pmu: Add regmap support for SoCs that protect PMU
    regs
  watchdog: s3c2410_wdt: use exynos_get_pmu_regmap_by_phandle() for PMU
    regs

 drivers/soc/samsung/Kconfig            |   1 +
 drivers/soc/samsung/exynos-pmu.c       | 235 ++++++++++++++++++++++++-
 drivers/soc/samsung/exynos-pmu.h       |   1 +
 drivers/watchdog/Kconfig               |   1 -
 drivers/watchdog/s3c2410_wdt.c         |   8 +-
 include/linux/soc/samsung/exynos-pmu.h |  11 +-
 6 files changed, 249 insertions(+), 8 deletions(-)

Comments

Krzysztof Kozlowski Feb. 25, 2024, 10:41 a.m. UTC | #1
On Tue, 20 Feb 2024 22:06:11 +0000, Peter Griffin wrote:
> This is a v6 of the series to add support for protected PMU registers found
> on gs101 and derivative SoCs. In v2 and later it was re-worked to be based
> on a regmap abstraction that I think leads to a much neater overall
> solution.
> 
> The advantage of the regmap abstraction is that most leaf drivers that
> read/write PMU registers need minimal changes.
> 
> [...]

Applied, thanks!

[1/2] soc: samsung: exynos-pmu: Add regmap support for SoCs that protect PMU regs
      https://git.kernel.org/krzk/linux/c/0b7c6075022ccff529318597dc6b165dd6a25c8f
[2/2] watchdog: s3c2410_wdt: use exynos_get_pmu_regmap_by_phandle() for PMU regs
      https://git.kernel.org/krzk/linux/c/746f0770f916e6c48e422d6a34e67eae16707f0e

Best regards,