diff -ur linux-orange-pi-4.13.orig/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts linux-orange-pi-4.13/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts --- linux-orange-pi-4.13.orig/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts 2017-08-10 15:21:44.000000000 +0200 +++ linux-orange-pi-4.13/arch/arm/boot/dts/sun4i-a10-olinuxino-lime.dts 2018-12-08 20:52:27.358382734 +0100 @@ -82,11 +82,19 @@ */ operating-points = < /* kHz uV */ - 912000 1350000 - 864000 1300000 - 624000 1250000 + 1008000 1400000 + 960000 1350000 + 912000 1300000 + 864000 1275000 + 816000 1250000 + 720000 1225000 + 624000 1200000 + 528000 1175000 + 480000 1150000 + 336000 1125000 + 240000 1100000 >; - cooling-max-level = <2>; + cooling-max-level = <10>; }; &ehci0 { diff -ur linux-orange-pi-4.13.orig/arch/arm/boot/dts/sun4i-a10.dtsi linux-orange-pi-4.13/arch/arm/boot/dts/sun4i-a10.dtsi --- linux-orange-pi-4.13.orig/arch/arm/boot/dts/sun4i-a10.dtsi 2017-08-10 15:21:44.000000000 +0200 +++ linux-orange-pi-4.13/arch/arm/boot/dts/sun4i-a10.dtsi 2018-12-08 20:47:18.773048912 +0100 @@ -116,13 +116,17 @@ operating-points = < /* kHz uV */ 1008000 1400000 - 912000 1350000 - 864000 1300000 - 624000 1250000 + 960000 1360000 + 912000 1300000 + 864000 1250000 + 720000 1200000 + 528000 1100000 + 312000 1050000 + 144000 1000000 >; #cooling-cells = <2>; cooling-min-level = <0>; - cooling-max-level = <3>; + cooling-max-level = <7>; }; }; @@ -143,14 +147,14 @@ trips { cpu_alert0: cpu_alert0 { /* milliCelsius */ - temperature = <850000>; + temperature = <750000>; hysteresis = <2000>; type = "passive"; }; cpu_crit: cpu_crit { /* milliCelsius */ - temperature = <100000>; + temperature = <900000>; hysteresis = <2000>; type = "critical"; }; diff -ur linux-orange-pi-4.13.orig/arch/arm/boot/dts/sun7i-a20-bananapi.dts linux-orange-pi-4.13/arch/arm/boot/dts/sun7i-a20-bananapi.dts --- linux-orange-pi-4.13.orig/arch/arm/boot/dts/sun7i-a20-bananapi.dts 2017-08-10 15:21:44.000000000 +0200 +++ linux-orange-pi-4.13/arch/arm/boot/dts/sun7i-a20-bananapi.dts 2018-12-08 20:49:16.380443117 +0100 @@ -99,13 +99,15 @@ cpu-supply = <®_dcdc2>; operating-points = < /* kHz uV */ - 960000 1400000 - 912000 1400000 - 864000 1350000 - 720000 1250000 - 528000 1150000 - 312000 1100000 - 144000 1050000 + 1104000 1450000 + 1008000 1400000 + 960000 1400000 + 912000 1300000 + 816000 1250000 + 720000 1200000 + 528000 1100000 + 336000 1050000 + 240000 1000000 >; }; diff -ur linux-orange-pi-4.13.orig/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts linux-orange-pi-4.13/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts --- linux-orange-pi-4.13.orig/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts 2017-08-10 15:21:44.000000000 +0200 +++ linux-orange-pi-4.13/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts 2018-12-08 20:36:23.847988246 +0100 @@ -111,6 +111,7 @@ status = "okay"; axp209: pmic@34 { + compatible = "x-powers,axp209"; reg = <0x34>; interrupt-parent = <&nmi_intc>; interrupts = <0 IRQ_TYPE_LEVEL_LOW>; @@ -192,7 +193,7 @@ ®_dcdc2 { regulator-always-on; regulator-min-microvolt = <1000000>; - regulator-max-microvolt = <1400000>; + regulator-max-microvolt = <1500000>; regulator-name = "vdd-cpu"; }; @@ -229,6 +230,10 @@ regulator-name = "vddio-csi1"; }; +&cpu0 { + cpu-supply = <®_dcdc2>; +}; + ®_usb0_vbus { pinctrl-0 = <&usb0_vbus_pin_lime2>; gpio = <&pio 2 17 GPIO_ACTIVE_HIGH>; diff -ur linux-orange-pi-4.13.orig/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts linux-orange-pi-4.13/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts --- linux-orange-pi-4.13.orig/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts 2017-08-10 15:21:44.000000000 +0200 +++ linux-orange-pi-4.13/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts 2018-12-08 20:51:19.254793410 +0100 @@ -118,6 +118,7 @@ status = "okay"; axp209: pmic@34 { + compatible = "x-powers,axp209"; reg = <0x34>; interrupt-parent = <&nmi_intc>; interrupts = <0 IRQ_TYPE_LEVEL_LOW>; @@ -259,7 +260,7 @@ ®_dcdc2 { regulator-always-on; regulator-min-microvolt = <1000000>; - regulator-max-microvolt = <1400000>; + regulator-max-microvolt = <1500000>; regulator-name = "vdd-cpu"; }; @@ -270,6 +271,10 @@ regulator-name = "vdd-int-dll"; }; +®_ldo1 { + regulator-name = "vdd-rtc"; +}; + ®_ldo2 { regulator-always-on; regulator-min-microvolt = <3000000>; @@ -277,6 +282,21 @@ regulator-name = "avcc"; }; +&cpu0 { + cpu-supply = <®_dcdc2>; + operating-points = < + 1104000 1450000 + 1008000 1400000 + 960000 1350000 + 912000 1300000 + 816000 1250000 + 720000 1200000 + 528000 1100000 + 336000 1050000 + 240000 1000000 + >; +}; + ®_ahci_5v { status = "okay"; }; diff -ur linux-orange-pi-4.13.orig/arch/arm/boot/dts/sun7i-a20.dtsi linux-orange-pi-4.13/arch/arm/boot/dts/sun7i-a20.dtsi --- linux-orange-pi-4.13.orig/arch/arm/boot/dts/sun7i-a20.dtsi 2017-08-10 15:21:44.000000000 +0200 +++ linux-orange-pi-4.13/arch/arm/boot/dts/sun7i-a20.dtsi 2018-12-08 20:40:43.218426283 +0100 @@ -106,17 +106,22 @@ clock-latency = <244144>; /* 8 32k periods */ operating-points = < /* kHz uV */ - 960000 1400000 - 912000 1400000 - 864000 1300000 - 720000 1200000 - 528000 1100000 - 312000 1000000 - 144000 1000000 + 1104000 1450000 + 1056000 1425000 + 1008000 1425000 + 960000 1375000 + 912000 1350000 + 816000 1300000 + 720000 1250000 + 624000 1200000 + 528000 1175000 + 432000 1150000 + 336000 1125000 + 240000 1100000 >; #cooling-cells = <2>; cooling-min-level = <0>; - cooling-max-level = <6>; + cooling-max-level = <11>; }; cpu@1 { @@ -143,14 +148,14 @@ trips { cpu_alert0: cpu_alert0 { /* milliCelsius */ - temperature = <75000>; + temperature = <60000>; hysteresis = <2000>; type = "passive"; }; cpu_crit: cpu_crit { /* milliCelsius */ - temperature = <100000>; + temperature = <90000>; hysteresis = <2000>; type = "critical"; }; diff -ur linux-orange-pi-4.13.orig/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts linux-orange-pi-4.13/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts --- linux-orange-pi-4.13.orig/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts 2017-08-10 15:21:44.000000000 +0200 +++ linux-orange-pi-4.13/arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dts 2017-12-28 11:53:35.961045613 +0100 @@ -49,10 +49,12 @@ #include #include +#include / { model = "Xunlong Orange Pi Zero"; - compatible = "xunlong,orangepi-zero", "allwinner,sun8i-h2-plus"; + //compatible = "xunlong,orangepi-zero", "allwinner,sun8i-h2-plus"; + compatible = "xunlong,orangepi-zero", "allwinner,sun8i-h3"; aliases { serial0 = &uart0; @@ -94,8 +96,101 @@ reset-gpios = <&r_pio 0 7 GPIO_ACTIVE_LOW>; post-power-on-delay-ms = <200>; }; + + vdd_cpux: gpio-regulator { + compatible = "regulator-gpio"; + + regulator-name = "vdd-cpux"; + regulator-type = "voltage"; + regulator-boot-on; + regulator-always-on; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1300000>; + regulator-ramp-delay = <50>; /* 4ms */ + + gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; + gpios-states = <0x1>; + states = <1100000 0x0 + 1300000 0x1>; + }; +}; + +&cpu0 { + operating-points = < + /*1464000 1300000 + 1440000 1300000 + 1416000 1300000 */ + 1392000 1300000 + 1368000 1300000 + 1344000 1300000 + 1320000 1300000 + 1296000 1300000 + 1248000 1300000 + 1200000 1300000 + 1152000 1300000 + 1104000 1300000 + 1056000 1300000 + 1008000 1300000 + 960000 1300000 + 912000 1300000 + 816000 1100000 + 720000 1100000 + 624000 1100000 + 480000 1100000 + 240000 1100000 + 120000 1100000 + >; + #cooling-cells = <2>; + cooling-min-level = <0>; + cooling-max-level = <18>; + cpu0-supply = <&vdd_cpux>; +}; + +&cpu_thermal { + trips { + cpu_warm: cpu_warm { + temperature = <75000>; + hysteresis = <2000>; + type = "passive"; + }; + cpu_hot: cpu_hot { + temperature = <85000>; + hysteresis = <2000>; + type = "passive"; + }; + /* + cpu_very_hot: cpu_very_hot { + temperature = <90000>; + hysteresis = <2000>; + type = "passive"; + }; + */ + cpu_crit: cpu_crit { + temperature = <105000>; + hysteresis = <2000>; + type = "critical"; + }; + }; + + cooling-maps { + cpu_warm_limit_cpu { + trip = <&cpu_warm>; + cooling-device = <&cpu0 THERMAL_NO_LIMIT 7>; + }; + cpu_hot_limit_cpu { + trip = <&cpu_hot>; + cooling-device = <&cpu0 8 THERMAL_NO_LIMIT>; + }; + /* + cpu_very_hot_limit_cpu { + trip = <&cpu_very_hot>; + cooling-device = <&cpu0 5 THERMAL_NO_LIMIT>; + }; + */ + }; }; + &ehci0 { status = "okay"; }; diff -ur linux-orange-pi-4.13.orig/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts linux-orange-pi-4.13/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts --- linux-orange-pi-4.13.orig/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts 2017-08-10 15:21:44.000000000 +0200 +++ linux-orange-pi-4.13/arch/arm/boot/dts/sun8i-h3-orangepi-pc.dts 2017-12-28 15:48:36.430995655 +0100 @@ -108,46 +109,59 @@ &cpu0 { operating-points = < /* kHz uV */ - 1368000 1400000 - 1344000 1400000 - 1296000 1340000 - 1248000 1340000 - 1224000 1340000 - 1200000 1320000 - 1152000 1320000 - 1104000 1320000 - 1056000 1320000 - 1008000 1200000 - 960000 1200000 - 816000 1100000 - 648000 1100000 - 480000 1100000 - 240000 1100000 - 120000 1100000 + 1608000 1500000 + 1584000 1500000 + 1560000 1500000 + 1536000 1500000 + 1512000 1480000 + 1488000 1460000 + 1464000 1440000 + 1440000 1420000 + 1416000 1400000 + 1392000 1380000 + 1368000 1360000 + 1344000 1340000 + 1320000 1320000 + 1296000 1300000 + 1248000 1280000 + 1200000 1260000 + 1152000 1240000 + 1104000 1220000 + 1056000 1200000 + 1008000 1180000 + 960000 1160000 + 912000 1140000 + 816000 1120000 + 720000 1100000 + 624000 1080000 + 480000 1060000 + 240000 1040000 >; #cooling-cells = <2>; cooling-min-level = <0>; - cooling-max-level = <15>; + cooling-max-level = <26>; cpu0-supply = <&vdd_cpu>; }; &cpu_thermal { trips { cpu_warm: cpu_warm { - temperature = <65000>; + temperature = <75000>; hysteresis = <2000>; type = "passive"; }; cpu_hot: cpu_hot { - temperature = <75000>; + temperature = <85000>; hysteresis = <2000>; type = "passive"; }; +/* cpu_very_hot: cpu_very_hot { temperature = <90000>; hysteresis = <2000>; type = "passive"; }; +*/ cpu_crit: cpu_crit { temperature = <105000>; hysteresis = <2000>; @@ -161,16 +176,18 @@ cooling-maps { cpu_warm_limit_cpu { trip = <&cpu_warm>; - cooling-device = <&cpu0 THERMAL_NO_LIMIT 10>; + cooling-device = <&cpu0 THERMAL_NO_LIMIT 15>; }; cpu_hot_limit_cpu { trip = <&cpu_hot>; - cooling-device = <&cpu0 12 12>; + cooling-device = <&cpu0 16 THERMAL_NO_LIMIT>; }; +/* cpu_very_hot_limit_cpu { trip = <&cpu_very_hot>; cooling-device = <&cpu0 14 THERMAL_NO_LIMIT>; }; +*/ }; }; @@ -247,7 +264,7 @@ compatible = "silergy,sy8106a"; reg = <0x65>; regulator-min-microvolt = <1000000>; - regulator-max-microvolt = <1400000>; + regulator-max-microvolt = <1500000>; regulator-ramp-delay = <200>; regulator-boot-on; regulator-always-on; diff -ur linux-orange-pi-4.14.orig/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts linux-orange-pi-4.14-rc8/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts --- linux-orange-pi-4.14.orig/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts 2017-11-11 22:41:46.000000000 +0100 +++ linux-orange-pi-4.14-rc8/arch/arm64/boot/dts/allwinner/sun50i-h5-orangepi-prime.dts 2017-11-18 14:21:22.237701570 +0100 @@ -48,6 +48,8 @@ #include #include +#include +#include / { model = "Xunlong Orange Pi Prime"; @@ -120,6 +122,88 @@ }; }; +&cpu0 { + operating-points = < + /* kHz uV */ + /*1608000 1500000 + 1584000 1500000 + 1560000 1500000 + 1536000 1500000 + 1512000 1490000 + 1488000 1480000 + 1464000 1460000 + 1440000 1440000 + 1416000 1420000 + 1392000 1400000 + 1368000 1360000 + 1344000 1340000 */ + 1320000 1320000 + 1296000 1300000 + 1248000 1280000 + 1200000 1260000 + 1152000 1240000 + 1104000 1220000 + 1056000 1200000 + 1008000 1180000 + 960000 1160000 + 912000 1140000 + 816000 1120000 + 720000 1100000 + 624000 1080000 + 480000 1060000 + 240000 1040000 + 120000 1020000 + >; + #cooling-cells = <2>; + cooling-min-level = <0>; + cooling-max-level = <15>; + cpu0-supply = <&vdd_cpu>; +}; + +&cpu_thermal { + trips { + cpu_warm: cpu_warm { + temperature = <75000>; + hysteresis = <2000>; + type = "passive"; + }; + cpu_hot: cpu_hot { + temperature = <85000>; + hysteresis = <2000>; + type = "passive"; + }; +/* + cpu_very_hot: cpu_very_hot { + temperature = <90000>; + hysteresis = <2000>; + type = "passive"; + }; +*/ + cpu_crit: cpu_crit { + temperature = <105000>; + hysteresis = <2000>; + type = "critical"; + }; + }; + + cooling-maps { + cpu_warm_limit_cpu { + trip = <&cpu_warm>; + cooling-device = <&cpu0 THERMAL_NO_LIMIT 4>; // 0==MAX FREQUENCY + }; + cpu_hot_limit_cpu { + trip = <&cpu_hot>; + cooling-device = <&cpu0 5 THERMAL_NO_LIMIT>; + }; +/* + cpu_very_hot_limit_cpu { + trip = <&cpu_very_hot>; + cooling-device = <&cpu0 14 THERMAL_NO_LIMIT>; + }; +*/ + }; +}; + &codec { allwinner,audio-routing = "Line Out", "LINEOUT", @@ -201,6 +285,24 @@ status = "okay"; }; +&r_i2c { + status = "okay"; + + vdd_cpu: regulator@65 { + compatible = "silergy,sy8106a"; + reg = <0x65>; + regulator-min-microvolt = <1000000>; + regulator-max-microvolt = <1500000>; + regulator-ramp-delay = <200>; + regulator-boot-on; + regulator-always-on; + }; +}; + +&sound_hdmi { + status = "okay"; +}; + &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_pins_a>;