ARM: dts: exynos: Add CPU OPPs for Exynos4412 Prime
authorBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Thu, 29 Dec 2016 13:36:51 +0000 (14:36 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 8 Oct 2017 08:26:02 +0000 (10:26 +0200)
[ Upstream commit 80b7a2e2498bcffb1a79980dfbeb7a1275577b28 ]

Add CPU operating points for Exynos4412 Prime (it supports
additional 1704MHz & 1600MHz OPPs and 1500MHz OPP is just
a regular non-turbo OPP on this SoC).  Also update relevant
cooling maps to account for new OPPs.

ODROID-X2/U2/U3 boards use Exynos4412 Prime SoC version so
update their board files accordingly.

Based on Hardkernel's kernel for ODROID-X2/U2/U3 boards.

Cc: Doug Anderson <dianders@chromium.org>
Cc: Andreas Faerber <afaerber@suse.de>
Cc: Thomas Abraham <thomas.ab@samsung.com>
Cc: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
Cc: Ben Gamari <ben@smart-cactus.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/arm/boot/dts/exynos4412-odroid-common.dtsi
arch/arm/boot/dts/exynos4412-odroidu3.dts
arch/arm/boot/dts/exynos4412-odroidx2.dts
arch/arm/boot/dts/exynos4412-prime.dtsi [new file with mode: 0644]
arch/arm/boot/dts/exynos4412.dtsi

index 8aa19ba..5282d69 100644 (file)
        thermal-zones {
                cpu_thermal: cpu-thermal {
                        cooling-maps {
-                               map0 {
+                               cooling_map0: map0 {
                                     /* Corresponds to 800MHz at freq_table */
                                     cooling-device = <&cpu0 7 7>;
                                };
-                               map1 {
+                               cooling_map1: map1 {
                                     /* Corresponds to 200MHz at freq_table */
                                     cooling-device = <&cpu0 13 13>;
                               };
index 99634c5..7504a5a 100644 (file)
@@ -13,6 +13,7 @@
 
 /dts-v1/;
 #include "exynos4412-odroid-common.dtsi"
+#include "exynos4412-prime.dtsi"
 
 / {
        model = "Hardkernel ODROID-U3 board based on Exynos4412";
                        cooling-maps {
                                map0 {
                                     trip = <&cpu_alert1>;
-                                    cooling-device = <&cpu0 7 7>;
+                                    cooling-device = <&cpu0 9 9>;
                                };
                                map1 {
                                     trip = <&cpu_alert2>;
-                                    cooling-device = <&cpu0 13 13>;
+                                    cooling-device = <&cpu0 15 15>;
                                };
                                map2 {
                                     trip = <&cpu_alert0>;
index 4d22885..d6e92eb 100644 (file)
@@ -12,6 +12,7 @@
 */
 
 #include "exynos4412-odroidx.dts"
+#include "exynos4412-prime.dtsi"
 
 / {
        model = "Hardkernel ODROID-X2 board based on Exynos4412";
diff --git a/arch/arm/boot/dts/exynos4412-prime.dtsi b/arch/arm/boot/dts/exynos4412-prime.dtsi
new file mode 100644 (file)
index 0000000..e75bc17
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Samsung's Exynos4412 Prime SoC device tree source
+ *
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ *             http://www.samsung.com
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+/*
+ * Exynos4412 Prime SoC revision supports higher CPU frequencies than
+ * non-Prime version.  Therefore we need to update OPPs table and
+ * thermal maps accordingly.
+ */
+
+&cpu0_opp_1500 {
+       /delete-property/turbo-mode;
+};
+
+&cpu0_opp_table {
+       opp@1600000000 {
+               opp-hz = /bits/ 64 <1600000000>;
+               opp-microvolt = <1350000>;
+               clock-latency-ns = <200000>;
+       };
+       opp@1704000000 {
+               opp-hz = /bits/ 64 <1704000000>;
+               opp-microvolt = <1350000>;
+               clock-latency-ns = <200000>;
+       };
+};
+
+&cooling_map0 {
+       cooling-device = <&cpu0 9 9>;
+};
+
+&cooling_map1 {
+       cooling-device = <&cpu0 15 15>;
+};
index 40beede..3ebdf01 100644 (file)
                        opp-microvolt = <1287500>;
                        clock-latency-ns = <200000>;
                };
-               opp@1500000000 {
+               cpu0_opp_1500: opp@1500000000 {
                        opp-hz = /bits/ 64 <1500000000>;
                        opp-microvolt = <1350000>;
                        clock-latency-ns = <200000>;