78 lines
2.4 KiB
Diff
78 lines
2.4 KiB
Diff
From: Jorik Jonker <jorik@kippendief.biz>
|
|
Date: Sat, 29 Sep 2018 15:18:30 +0200
|
|
Subject: ARM: dts: sun8i-h3: add sy8106a to orange pi plus
|
|
Origin: https://git.kernel.org/linus/e98d72d98a25890308941080d3a17b4c77e3f460
|
|
|
|
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(+)
|
|
|
|
Index: linux/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
|
|
===================================================================
|
|
--- linux.orig/arch/arm/boot/dts/sun8i-h3-orangepi-plus.dts
|
|
+++ linux/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>;
|
|
};
|