[PATCH v6 00/14] NVIDIA Tegra memory and power management changes for 5.14

From: Dmitry Osipenko
Date: Mon May 31 2021 - 22:33:37 EST


This series:

1. Adds CPU/core voltage bump before system is rebooted.
2. Adds new devm_tegra_core_dev_init_opp_table() helper and switches
Tegra memory drivers to use it.
3. Adds compile-testing support to the Tegra memory drivers.
4. Adds Tegra SoC core power domain support.

Changelog:

v6: - Fixed another compile-test trouble reported for v5. I double checked
the clk stubs this time and compiled them locally.

- Moved the Kconfig properties required for the core power domain
to the PMC Kconfig entry. This was suggested by Thierry Reding.

v5: - Fixed compile-test warning reported for v3 which happened due to
copy-paste typo around new tegra210_clk_emc_attach() stub.

v4: - Fixed misplaced prototypes of tegra_pmc_core_domain_state_synced(),
which I noticed only after sending out v3. This fixes building with
!CONFIG_PM_SLEEP.

v3: - Dropped "Detach coupled regulator before coupling count is dropped"
patch that was added in v2 since it missed regulator locking and
it should be more reasonable to add a new generic hook for syncing
before detaching. For now it's optional to sync Tegra SoC regulators
before detaching since it's not something that happens in practice,
hence it's more optimal to simply drop that feature.

- Added more stubs for T210 clk driver which should fix compile-testing
problem reported for v2 by kernel robot.

- Added COMMON_CLK for COMPILE_TEST of memory drivers since for
today the problem of compile-testing of legacy platforms that use
HAVE_LEGACY_CLK isn't solved, we will be able to remove it after
fixing the legacy platforms.

- Factored out new PMC driver state syncing feature into a separate
patch "pmc: Add driver state syncing", which was requested by
Ulf Hansson in a review comment to v2.

- Added r-b from Ulf Hansson to the PMC binding-update patch that he
gave to v2.

v2: - Added more clk stubs that should fix build error reported by the
kernel bot to v1 for the T210 memory driver.

- Added r-b from Krzysztof Kozlowski to the memory patches.

- Added back voltage restore on detaching of coupled regulators to
the T20 regulator coupler which previously got missed by accident.

- Added new patch:

regulator: core: Detach coupled regulator before coupling count is dropped

It fixes skipped voltage balancing on detaching of regulators which I
happened to notice due to the recent regression of the MAX77620 driver
that made driver to re-probe and detach coupled regulators.

v1: - Merged previous patches into this single series.

- Added ack from Rob Herring to the core domain DT binding patch.

- Implemented suggestions that were given by Krzysztof Kozlowski:

- Factored out soc_is_tegra() stub into standalone patch.
- Updated tags of the "Fix compilation warnings on 64bit platforms"
patch, added reported-by from lkp robot and removed suggested-by
from Nathan Chancellor.
- Switched to use use BIT() macro.

- Added r-b from Krzysztof Kozlowski to "Enable compile testing for
all drivers" patch.

- Added r-b from Nathan Chancellor.

- Dropped voltage floor/ceiling from devm_tegra_core_dev_init_opp_table()
since only memory drivers now need to initialize voltage vote and they
don't need floor/ceil. This was suggested by Viresh Kumar.

Dmitry Osipenko (14):
regulator: core: Add regulator_sync_voltage_rdev()
soc/tegra: regulators: Bump voltages on system reboot
soc/tegra: Add stub for soc_is_tegra()
soc/tegra: Add devm_tegra_core_dev_init_opp_table()
soc/tegra: fuse: Add stubs needed for compile-testing
clk: tegra: Add stubs needed for compile-testing
memory: tegra: Fix compilation warnings on 64bit platforms
memory: tegra: Enable compile testing for all drivers
memory: tegra20-emc: Use devm_tegra_core_dev_init_opp_table()
memory: tegra30-emc: Use devm_tegra_core_dev_init_opp_table()
dt-bindings: soc: tegra-pmc: Document core power domain
soc/tegra: pmc: Add core power domain
soc/tegra: pmc: Add driver state syncing
soc/tegra: regulators: Support core domain state syncing

.../arm/tegra/nvidia,tegra20-pmc.yaml | 35 +++++
drivers/memory/tegra/Kconfig | 16 +-
drivers/memory/tegra/tegra124-emc.c | 4 +-
drivers/memory/tegra/tegra20-emc.c | 48 +-----
drivers/memory/tegra/tegra30-emc.c | 52 +-----
drivers/regulator/core.c | 23 +++
drivers/soc/tegra/Kconfig | 2 +
drivers/soc/tegra/common.c | 97 ++++++++++++
drivers/soc/tegra/pmc.c | 148 +++++++++++++++++-
drivers/soc/tegra/regulators-tegra20.c | 94 ++++++++++-
drivers/soc/tegra/regulators-tegra30.c | 93 ++++++++++-
include/linux/clk/tegra.h | 100 +++++++++---
include/linux/regulator/driver.h | 1 +
include/soc/tegra/common.h | 31 ++++
include/soc/tegra/fuse.h | 20 ++-
include/soc/tegra/pmc.h | 7 +
16 files changed, 640 insertions(+), 131 deletions(-)

--
2.30.2