81 lines
2.4 KiB
Diff
81 lines
2.4 KiB
Diff
|
From e98d72d98a25890308941080d3a17b4c77e3f460 Mon Sep 17 00:00:00 2001
|
||
|
From: Jorik Jonker <jorik@kippendief.biz>
|
||
|
Date: Sat, 29 Sep 2018 15:18:30 +0200
|
||
|
Subject: [PATCH] ARM: dts: sun8i-h3: add sy8106a to orange pi plus
|
||
|
|
||
|
The Orange Pi Plus board lacks voltage scaling capabilities in its
|
||
|
current form. This results in random freezes during boot when cpufreq is
|
||
|
enabled, probably due to wrong voltages.
|
||
|
|
||
|
This patch (more or less copy/paste from 06139c) does the following
|
||
|
things on this board:
|
||
|
- enable r_i2c
|
||
|
- add sy8106a to the r_i2c bus
|
||
|
- have the sy8106a regulate VDD of cpu
|
||
|
|
||
|
Since the Orange Pi Plus has the same PMU setup as the Orange Pi PC, I
|
||
|
simply took min/max/fixed/ramp from the latter DTS. In that file the
|
||
|
origin of the values are described by the following comment:
|
||
|
|
||
|
"The datasheet uses 1.1V as the minimum value of VDD-CPUX,
|
||
|
however both the Armbian DVFS table and the official one
|
||
|
have operating points with voltage under 1.1V, and both
|
||
|
DVFS table are known to work properly at the lowest
|
||
|
operating point.
|
||
|
Use 1.0V as the minimum voltage instead."
|
||
|
|
||
|
I have tested this on patch two Orange Pi Plus boards, by running a
|
||
|
kernel with this patch and do intermettent runs of cpuburn while
|
||
|
monitoring voltage, frequency and temperature. The board runs stable
|
||
|
across its operatiing points while showing a reasonable (< 40C)
|
||
|
temperature. My Orange Pi PC, when put to the same test, yields similar
|
||
|
stable results.
|
||
|
|
||
|
Signed-off-by: Jorik Jonker <jorik@kippendief.biz>
|
||
|
Signed-off-by: Maxime Ripard <maxime.ripard@bootlin.com>
|
||
|
---
|
||
|
arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts | 20 ++++++++++++++++++++
|
||
|
1 file changed, 20 insertions(+)
|
||
|
|
||
|
diff --git a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
|
||
|
index b403e5d787cb..ac8438c2cff1 100644
|
||
|
--- a/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
|
||
|
+++ b/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
|
||
|
@@ -74,6 +74,10 @@
|
||
|
};
|
||
|
};
|
||
|
|
||
|
+&cpu0 {
|
||
|
+ cpu-supply = <®_vdd_cpux>;
|
||
|
+};
|
||
|
+
|
||
|
&ehci3 {
|
||
|
status = "okay";
|
||
|
};
|
||
|
@@ -119,6 +123,22 @@
|
||
|
};
|
||
|
};
|
||
|
|
||
|
+&r_i2c {
|
||
|
+ status = "okay";
|
||
|
+
|
||
|
+ reg_vdd_cpux: regulator@65 {
|
||
|
+ compatible = "silergy,sy8106a";
|
||
|
+ reg = <0x65>;
|
||
|
+ regulator-name = "vdd-cpux";
|
||
|
+ silergy,fixed-microvolt = <1200000>;
|
||
|
+ regulator-min-microvolt = <1000000>;
|
||
|
+ regulator-max-microvolt = <1400000>;
|
||
|
+ regulator-ramp-delay = <200>;
|
||
|
+ regulator-boot-on;
|
||
|
+ regulator-always-on;
|
||
|
+ };
|
||
|
+};
|
||
|
+
|
||
|
&usbphy {
|
||
|
usb3_vbus-supply = <®_usb3_vbus>;
|
||
|
};
|
||
|
--
|
||
|
2.20.1
|
||
|
|