Hi Sunxi maintainers and members, Now that required drivers are merged we can contibute on DVFS support for Allwinner H6. This serie is based on Yangtao Li serie[0] and Ondřej Jirman work[1]. Most of the OPP tables are taken from original vendor kernel[2]. Plus there are new CPU frequencies at 1.6GHz, 1.7GHz and 1.8GHz. I wrote a simple script to randomly set a frequency during a random time[3]. This script is quite stressfull and set some high frequency without checking temperature. This can result on behavior that whould not occurs with the real cpufreq framework. As Maxime point out I also tested with cpufreq-ljt-stress-test (found here https://github.com/ssvb/cpuburn-arm). This script doesn't trigger any issue. I also test that that offlining CPU0 and doing DVFS on other CPUs works. As CPU regulator is only set for CPU0. The GPU devfreq was drop as the regulator is still not properly drive by panfrost driver[4]. I will re-introduce it later. Ondřej Jirman has an Orange Pi 3, Jernej has a PineH64 and a Tanix TX6 boards and I have a Beelink GS1 board so I have enable these boards. But CPU Devfreq is really touchy has it depends on: board design, SoC speed_grade and environement which can affect thermal cooling and have different behavior for different user. If people can test this serie and give feedback, I will try to introduce this in LibreElec tree, so LE community can test it. Thanks, Clément 0: https://patchwork.kernel.org/cover/10815117/ 1: https://megous.com/git/linux/log/?h=ths-5.7 2: https://github.com/orangepi-xunlong/OrangePiH6_Linux4_9/blob/master/arch/arm64/boot/dts/sunxi/sun50iw6p1.dtsi#L345-L517 3: https://gist.github.com/clementperon/55a055dae3f13bbd14fb39c0069fe2e2 4: https://patchwork.kernel.org/patch/11486893/ Changes since v2 (thanks to Maxime Ripard): - Change Orange Pi boards to Orange Pi 3 - Change soc speed nvmem node name - Fix device tree warnings - Drop GPU opp tables Changes since v1 (thanks to Ondřej Jirman): - Remove Polling thermal - Add Orange Pi boards - Remove minimal voltage change for Beelink GS1 - Add ramp-deplay for GPU and CPU regulators - Push to thermal point to 85°C (Allwinner set them to 100°C and 115°C) - Added 1.6GHz and 1.7GHz to OPP table. Clément Péron (6): arm64: configs: Enable sun50i cpufreq nvmem arm64: dts: allwinner: h6: Enable CPU opp tables for Beelink GS1 arm64: dts: allwinner: h6: Enable CPU opp tables for Orange Pi 3 arm64: dts: allwinner: h6: Enable CPU opp tables for Tanix TX6 arm64: dts: allwinner: Sort Pine H64 device-tree nodes arm64: dts: allwinner: h6: Enable CPU and GPU opp tables for Pine H64 Ondrej Jirman (1): arm64: dts: allwinner: h6: Add CPU Operating Performance Points table .../dts/allwinner/sun50i-h6-beelink-gs1.dts | 9 +- .../boot/dts/allwinner/sun50i-h6-cpu-opp.dtsi | 121 ++++++++++++++++++ .../dts/allwinner/sun50i-h6-orangepi-3.dts | 3 + .../boot/dts/allwinner/sun50i-h6-pine-h64.dts | 41 +++--- .../dts/allwinner/sun50i-h6-tanix-tx6.dts | 13 ++ arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi | 4 + arch/arm64/configs/defconfig | 1 + 7 files changed, 174 insertions(+), 18 deletions(-) create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h6-cpu-opp.dtsi -- 2.20.1