diff options
Diffstat (limited to 'debian/patches/bugfix/arm/ARM-dts-sun8i-h3-add-sy8106a-to-orange-pi-plus.patch')
-rw-r--r-- | debian/patches/bugfix/arm/ARM-dts-sun8i-h3-add-sy8106a-to-orange-pi-plus.patch | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/debian/patches/bugfix/arm/ARM-dts-sun8i-h3-add-sy8106a-to-orange-pi-plus.patch b/debian/patches/bugfix/arm/ARM-dts-sun8i-h3-add-sy8106a-to-orange-pi-plus.patch new file mode 100644 index 000000000..1329c9390 --- /dev/null +++ b/debian/patches/bugfix/arm/ARM-dts-sun8i-h3-add-sy8106a-to-orange-pi-plus.patch @@ -0,0 +1,77 @@ +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>; + }; |