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/11132381/ [4] https://patchwork.kernel.org/patch/11316495/ [5] https://patchwork.kernel.org/patch/11284617/ changes since v5: - Add CONFIG_NVMEM dependency in SVS Kconfig. - Apply the latest dev_pm_opp_adjust_voltage() from [1] in SVS driver. - Add dev_pm_opp_put(opp) after calling dev_pm_opp_get_voltage(opp). - Fix multi-line comment style. - Add #define w/bit for magic constants. - Replace "int svs_is_supported()" with "bool svs_is_supported()". - Use default/max size for allocating memories to opp_volts/init02_volts/volts/opp_freqs/freqs_pct in struct svs_bank. - Name "main" instead of "main_clk" in SVS nodes for getting SVS clk. - In SVS binding document, remove fourth parameter of GIC interrupts. - Use '-' in node names. 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 | 2075 +++++++++++++++++ include/linux/power/mtk_svs.h | 23 + 7 files changed, 2242 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