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