[PATCH v7 0/3] PM / AVS: SVS: Introduce SVS engine

From: Roger Lu
Date: Mon Mar 16 2020 - 03:24:37 EST


1. SVS driver use OPP adjust event in [1] to update OPP table voltage part.
2. SVS dts node refers to CPU opp table [2] and GPU opp table [3].
3. SVS and thermal dts use the same thermal efuse [4].
4. SVS dts needs PMIC regulator [5].

[1] https://patchwork.kernel.org/patch/11193513/
[2] https://patchwork.kernel.org/patch/11304935/
[3] https://patchwork.kernel.org/patch/11423009/
[4] https://patchwork.kernel.org/patch/11316495/
[5] https://patchwork.kernel.org/patch/11284617/

pending discussion on v7:
- SVS sub-node architecture pending discussion in below patch.
https://lore.kernel.org/patchwork/patch/1175994/

changes since v6:
- svs_isr_handler() function is merged into svs_isr().
- In svs_isr(), we find which bank fires interrupt first and check this bank
is suspended or not secondly.
- Use memdup_user_nul() instead of copy_from_user().
- Use U32_MAX instead of "(u32)-1.
- SVS needs to do resume after thermal resume in system suspend flow.
Therefore, change SVS pm_ops to prepare/complete.
- Add high temperature voltages compensation codes.
- Add irqflags in "struct svs_platform" for supporting different SVS HW setting.
- Set signed-off voltages to system when system suspend.
- Add SVS HW reset flag for future SVS HW support.
- Coding style refinement.

Roger Lu (3):
dt-bindings: soc: add mtk svs dt-bindings
arm64: dts: mt8183: add svs device information
PM / AVS: SVS: Introduce SVS engine

.../devicetree/bindings/power/mtk-svs.txt | 76 +
arch/arm64/boot/dts/mediatek/mt8183-evb.dts | 16 +
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 41 +
drivers/power/avs/Kconfig | 10 +
drivers/power/avs/Makefile | 1 +
drivers/power/avs/mtk_svs.c | 2074 +++++++++++++++++
include/linux/power/mtk_svs.h | 23 +
7 files changed, 2241 insertions(+)
create mode 100644 Documentation/devicetree/bindings/power/mtk-svs.txt
create mode 100644 drivers/power/avs/mtk_svs.c
create mode 100644 include/linux/power/mtk_svs.h