ARM: dts: exynos: Add missing CPU frequencies for Exynos5422/5800
authorBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Tue, 10 Dec 2019 11:40:27 +0000 (12:40 +0100)
committerKrzysztof Kozlowski <krzk@kernel.org>
Wed, 11 Dec 2019 18:18:03 +0000 (19:18 +0100)
Add missing 2.0GHz, 1.9GHz & 1.8GHz OPPs (for A15 cores) and 1.4GHz
OPP (for A7 cores).  Also update common Odroid-XU3 Lite/XU3/XU4
thermal cooling maps to account for new OPPs.

Since some new OPPs are not available on all Exynos5422/5800 boards
modify dts files for Odroid XU3 Lite (limited to 1.8 GHz / 1.3 GHz) &
Peach Pi (limited to 2.0 GHz / 1.3 GHz) accordingly.

This patch uses maximum voltages for new OPPs. This is a temporary
solution till proper Exynos ASV support is added.

Also while at it fix the number of cooling down steps for big cores
(should be 11 instead of 12 on Odroid XU3 Lite and 14 on XU3/XU4).

Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
[mszyprow: rebased onto v5.5-rc1 and adapted to recent dts changes,
 fixed removal of the 1.4GHz OPP for A7s on Peach-Pi]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
arch/arm/boot/dts/exynos5422-odroidhc1.dts
arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi
arch/arm/boot/dts/exynos5422-odroidxu3-lite.dts
arch/arm/boot/dts/exynos5800-peach-pi.dts
arch/arm/boot/dts/exynos5800.dtsi

index d271e75488262679ee748dea7eccd3c814847f03..f163206265bbd3c022f89881f61c14820b8cd09e 100644 (file)
                                 */
                                map1 {
                                        trip = <&cpu0_alert1>;
-                                       cooling-device = <&cpu0 3 7>,
-                                                        <&cpu1 3 7>,
-                                                        <&cpu2 3 7>,
-                                                        <&cpu3 3 7>,
-                                                        <&cpu4 3 12>,
-                                                        <&cpu5 3 12>,
-                                                        <&cpu6 3 12>,
-                                                        <&cpu7 3 12>;
+                                       cooling-device = <&cpu0 3 8>,
+                                                        <&cpu1 3 8>,
+                                                        <&cpu2 3 8>,
+                                                        <&cpu3 3 8>,
+                                                        <&cpu4 3 14>,
+                                                        <&cpu5 3 14>,
+                                                        <&cpu6 3 14>,
+                                                        <&cpu7 3 14>;
                                };
                        };
                };
                                };
                                map1 {
                                        trip = <&cpu1_alert1>;
-                                       cooling-device = <&cpu0 3 7>,
-                                                        <&cpu1 3 7>,
-                                                        <&cpu2 3 7>,
-                                                        <&cpu3 3 7>,
-                                                        <&cpu4 3 12>,
-                                                        <&cpu5 3 12>,
-                                                        <&cpu6 3 12>,
-                                                        <&cpu7 3 12>;
+                                       cooling-device = <&cpu0 3 8>,
+                                                        <&cpu1 3 8>,
+                                                        <&cpu2 3 8>,
+                                                        <&cpu3 3 8>,
+                                                        <&cpu4 3 14>,
+                                                        <&cpu5 3 14>,
+                                                        <&cpu6 3 14>,
+                                                        <&cpu7 3 14>;
                                };
                        };
                };
                                };
                                map1 {
                                        trip = <&cpu2_alert1>;
-                                       cooling-device = <&cpu0 3 7>,
-                                                        <&cpu1 3 7>,
-                                                        <&cpu2 3 7>,
-                                                        <&cpu3 3 7>,
-                                                        <&cpu4 3 12>,
-                                                        <&cpu5 3 12>,
-                                                        <&cpu6 3 12>,
-                                                        <&cpu7 3 12>;
+                                       cooling-device = <&cpu0 3 8>,
+                                                        <&cpu1 3 8>,
+                                                        <&cpu2 3 8>,
+                                                        <&cpu3 3 8>,
+                                                        <&cpu4 3 14>,
+                                                        <&cpu5 3 14>,
+                                                        <&cpu6 3 14>,
+                                                        <&cpu7 3 14>;
                                };
                        };
                };
                                };
                                map1 {
                                        trip = <&cpu3_alert1>;
-                                       cooling-device = <&cpu0 3 7>,
-                                                        <&cpu1 3 7>,
-                                                        <&cpu2 3 7>,
-                                                        <&cpu3 3 7>,
-                                                        <&cpu4 3 12>,
-                                                        <&cpu5 3 12>,
-                                                        <&cpu6 3 12>,
-                                                        <&cpu7 3 12>;
+                                       cooling-device = <&cpu0 3 8>,
+                                                        <&cpu1 3 8>,
+                                                        <&cpu2 3 8>,
+                                                        <&cpu3 3 8>,
+                                                        <&cpu4 3 14>,
+                                                        <&cpu5 3 14>,
+                                                        <&cpu6 3 14>,
+                                                        <&cpu7 3 14>;
                                };
                        };
                };
index 8388720374932d29459fd5ad0095d0c38dc553db..1865a708b49f1835304f1aac73a8a0fd74cfc202 100644 (file)
                                /*
                                 * When reaching cpu0_alert3, reduce CPU
                                 * by 2 steps. On Exynos5422/5800 that would
-                                * be: 1600 MHz and 1100 MHz.
+                                * (usually) be: 1800 MHz and 1200 MHz.
                                 */
                                map3 {
                                        trip = <&cpu0_alert3>;
                                };
                                /*
                                 * When reaching cpu0_alert4, reduce CPU
-                                * further, down to 600 MHz (12 steps for big,
-                                * 7 steps for LITTLE).
+                                * further, down to 600 MHz (14 steps for big,
+                                * 8 steps for LITTLE).
                                 */
-                               map4 {
+                               cpu0_cooling_map4: map4 {
                                        trip = <&cpu0_alert4>;
-                                       cooling-device = <&cpu0 3 7>,
-                                                        <&cpu1 3 7>,
-                                                        <&cpu2 3 7>,
-                                                        <&cpu3 3 7>,
-                                                        <&cpu4 3 12>,
-                                                        <&cpu5 3 12>,
-                                                        <&cpu6 3 12>,
-                                                        <&cpu7 3 12>;
+                                       cooling-device = <&cpu0 3 8>,
+                                                        <&cpu1 3 8>,
+                                                        <&cpu2 3 8>,
+                                                        <&cpu3 3 8>,
+                                                        <&cpu4 3 14>,
+                                                        <&cpu5 3 14>,
+                                                        <&cpu6 3 14>,
+                                                        <&cpu7 3 14>;
                                };
                        };
                };
                                                         <&cpu6 0 2>,
                                                         <&cpu7 0 2>;
                                };
-                               map4 {
+                               cpu1_cooling_map4: map4 {
                                        trip = <&cpu1_alert4>;
-                                       cooling-device = <&cpu0 3 7>,
-                                                        <&cpu1 3 7>,
-                                                        <&cpu2 3 7>,
-                                                        <&cpu3 3 7>,
-                                                        <&cpu4 3 12>,
-                                                        <&cpu5 3 12>,
-                                                        <&cpu6 3 12>,
-                                                        <&cpu7 3 12>;
+                                       cooling-device = <&cpu0 3 8>,
+                                                        <&cpu1 3 8>,
+                                                        <&cpu2 3 8>,
+                                                        <&cpu3 3 8>,
+                                                        <&cpu4 3 14>,
+                                                        <&cpu5 3 14>,
+                                                        <&cpu6 3 14>,
+                                                        <&cpu7 3 14>;
                                };
                        };
                };
                                                         <&cpu6 0 2>,
                                                         <&cpu7 0 2>;
                                };
-                               map4 {
+                               cpu2_cooling_map4: map4 {
                                        trip = <&cpu2_alert4>;
-                                       cooling-device = <&cpu0 3 7>,
-                                                        <&cpu1 3 7>,
-                                                        <&cpu2 3 7>,
-                                                        <&cpu3 3 7>,
-                                                        <&cpu4 3 12>,
-                                                        <&cpu5 3 12>,
-                                                        <&cpu6 3 12>,
-                                                        <&cpu7 3 12>;
+                                       cooling-device = <&cpu0 3 8>,
+                                                        <&cpu1 3 8>,
+                                                        <&cpu2 3 8>,
+                                                        <&cpu3 3 8>,
+                                                        <&cpu4 3 14>,
+                                                        <&cpu5 3 14>,
+                                                        <&cpu6 3 14>,
+                                                        <&cpu7 3 14>;
                                };
                        };
                };
                                                         <&cpu6 0 2>,
                                                         <&cpu7 0 2>;
                                };
-                               map4 {
+                               cpu3_cooling_map4: map4 {
                                        trip = <&cpu3_alert4>;
-                                       cooling-device = <&cpu0 3 7>,
-                                                        <&cpu1 3 7>,
-                                                        <&cpu2 3 7>,
-                                                        <&cpu3 3 7>,
-                                                        <&cpu4 3 12>,
-                                                        <&cpu5 3 12>,
-                                                        <&cpu6 3 12>,
-                                                        <&cpu7 3 12>;
+                                       cooling-device = <&cpu0 3 8>,
+                                                        <&cpu1 3 8>,
+                                                        <&cpu2 3 8>,
+                                                        <&cpu3 3 8>,
+                                                        <&cpu4 3 14>,
+                                                        <&cpu5 3 14>,
+                                                        <&cpu6 3 14>,
+                                                        <&cpu7 3 14>;
                                };
                        };
                };
index a31ca2ef750f9ea13e1972800aee96bc86679d55..98feecad5489c3ccde12d2eacf5d836d2ae8d334 100644 (file)
        samsung,asv-bin = <2>;
 };
 
+/*
+ * Odroid XU3-Lite board uses SoC revision with lower maximum frequencies
+ * than Odroid XU3/XU4 boards: 1.8 GHz for A15 cores & 1.3 GHz for A7 cores.
+ * Therefore we need to update OPPs tables and thermal maps accordingly.
+ */
+&cluster_a15_opp_table {
+       /delete-node/opp-2000000000;
+       /delete-node/opp-1900000000;
+};
+
+&cluster_a7_opp_table {
+       /delete-node/opp-1400000000;
+};
+
+&cpu0_cooling_map4 {
+       cooling-device = <&cpu0 3 7>,
+                        <&cpu1 3 7>,
+                        <&cpu2 3 7>,
+                        <&cpu3 3 7>,
+                        <&cpu4 3 12>,
+                        <&cpu5 3 12>,
+                        <&cpu6 3 12>,
+                        <&cpu7 3 12>;
+};
+
+&cpu1_cooling_map4 {
+       cooling-device = <&cpu0 3 7>,
+                        <&cpu1 3 7>,
+                        <&cpu2 3 7>,
+                        <&cpu3 3 7>,
+                        <&cpu4 3 12>,
+                        <&cpu5 3 12>,
+                        <&cpu6 3 12>,
+                        <&cpu7 3 12>;
+};
+
+&cpu2_cooling_map4 {
+       cooling-device = <&cpu0 3 7>,
+                        <&cpu1 3 7>,
+                        <&cpu2 3 7>,
+                        <&cpu3 3 7>,
+                        <&cpu4 3 12>,
+                        <&cpu5 3 12>,
+                        <&cpu6 3 12>,
+                        <&cpu7 3 12>;
+};
+
+&cpu3_cooling_map4 {
+       cooling-device = <&cpu0 3 7>,
+                        <&cpu1 3 7>,
+                        <&cpu2 3 7>,
+                        <&cpu3 3 7>,
+                        <&cpu4 3 12>,
+                        <&cpu5 3 12>,
+                        <&cpu6 3 12>,
+                        <&cpu7 3 12>;
+};
+
 &pwm {
        /*
         * PWM 0 -- fan
index c1e38139ce4fbe2cd86b2021545bf82403d096eb..60ab0effe474669117b4dc314a390e5d4ad539b5 100644 (file)
        assigned-clock-parents = <&clock CLK_MAU_EPLL>;
 };
 
+/*
+ * Peach Pi board uses SoC revision with lower maximum frequency for A7 cores
+ * (1.3 GHz instead of 1.4 GHz) than Odroid XU3/XU4 boards.  Thus we need to
+ * update A7 OPPs table accordingly.
+ */
+&cluster_a7_opp_table {
+       /delete-node/opp-1400000000;
+};
+
 &cpu0 {
        cpu-supply = <&buck2_reg>;
 };
index 1be7eb60439af697adb094ad4f88840de6033862..b4fd53496450d65350cc4452cafdb90bb4f847f2 100644 (file)
 };
 
 &cluster_a15_opp_table {
+       opp-2000000000 {
+               opp-hz = /bits/ 64 <2000000000>;
+               opp-microvolt = <1312500>;
+               clock-latency-ns = <140000>;
+       };
+       opp-1900000000 {
+               opp-hz = /bits/ 64 <1900000000>;
+               opp-microvolt = <1262500>;
+               clock-latency-ns = <140000>;
+       };
+       opp-1800000000 {
+               opp-hz = /bits/ 64 <1800000000>;
+               opp-microvolt = <1237500>;
+               clock-latency-ns = <140000>;
+       };
        opp-1700000000 {
                opp-microvolt = <1250000 1250000 1500000>;
        };
 };
 
 &cluster_a7_opp_table {
+       opp-1400000000 {
+               opp-hz = /bits/ 64 <1400000000>;
+               opp-microvolt = <1275000>;
+               clock-latency-ns = <140000>;
+       };
        opp-1300000000 {
                opp-microvolt = <1250000>;
        };