mirror of
https://github.com/Fishwaldo/build.git
synced 2025-03-25 00:01:35 +00:00
* [sunxi-dev][h6]update orangepi lite2 dts file patch * [sunxi-dev][h6]update patch for sun50i-h6.dtsi * [sunxi-dev][h6] new operation voltage table of allwinner h6 The correct operation voltages are find out after many reboots and test (over 20+). the original 1.16v@1.64/1.8GHz was too high since standard cell voltage of 28nm@HPC is 0.9v, h6 got overheat very quickly over 110 Celsius and then system hangs, a power-cycle off is needed to reset soc. I use 'stress -c 4' to do pressure test, with a medium size passive heatsink on top of h6. The pressure test proves that the soc has about 4 watt power consuming that is much lesser than original 6~7.x watt when running at 1.8GHz(orangepi lite2 with usb Ethernet rtl8153 and usb hub, wifi is connected but not used). Soc runs much more stable and does not get overheat easily under heavy load with new opp table. * [sunxi-dev][h6] orangepi lite2 wifi fix bcm43455-fmac is buggy, reset to bcm4329-fmac
350 lines
7.6 KiB
Diff
350 lines
7.6 KiB
Diff
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-lite2.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-lite2.dts
|
|
index e098a2475..6c481b547 100644
|
|
--- a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-lite2.dts
|
|
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-lite2.dts
|
|
@@ -3,9 +3,344 @@
|
|
* Copyright (C) 2018 Jagan Teki <jagan@openedev.com>
|
|
*/
|
|
|
|
-#include "sun50i-h6-orangepi.dtsi"
|
|
+/dts-v1/;
|
|
+
|
|
+#include "sun50i-h6.dtsi"
|
|
+
|
|
+#include <dt-bindings/gpio/gpio.h>
|
|
|
|
/ {
|
|
model = "OrangePi Lite2";
|
|
compatible = "xunlong,orangepi-lite2", "allwinner,sun50i-h6";
|
|
+
|
|
+ aliases {
|
|
+ serial0 = &uart0; /* debug */
|
|
+ serial1 = &uart1; /* BT-UART */
|
|
+ };
|
|
+
|
|
+ chosen {
|
|
+ stdout-path = "serial0:115200n8";
|
|
+ };
|
|
+
|
|
+ connector {
|
|
+ compatible = "hdmi-connector";
|
|
+ type = "a";
|
|
+ ddc-supply = <®_ddc>;
|
|
+
|
|
+ port {
|
|
+ hdmi_con_in: endpoint {
|
|
+ remote-endpoint = <&hdmi_out_con>;
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+
|
|
+ leds {
|
|
+ compatible = "gpio-leds";
|
|
+
|
|
+ power {
|
|
+ label = "orangepi:red:power";
|
|
+ gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
|
|
+ default-state = "on";
|
|
+ };
|
|
+
|
|
+ status {
|
|
+ label = "orangepi:green:status";
|
|
+ gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */
|
|
+ };
|
|
+ };
|
|
+
|
|
+ reg_ddc: ddc-io {
|
|
+ compatible = "regulator-fixed";
|
|
+ regulator-name = "ddc-io";
|
|
+ regulator-min-microvolt = <5000000>;
|
|
+ regulator-max-microvolt = <5000000>;
|
|
+ enable-active-high;
|
|
+ gpio = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */
|
|
+ };
|
|
+
|
|
+ reg_vcc5v: vcc5v {
|
|
+ /* board wide 5V supply directly from the DC jack */
|
|
+ compatible = "regulator-fixed";
|
|
+ regulator-name = "vcc-5v";
|
|
+ regulator-min-microvolt = <5000000>;
|
|
+ regulator-max-microvolt = <5000000>;
|
|
+ regulator-always-on;
|
|
+ };
|
|
+
|
|
+ reg_usb_vbus: vbus {
|
|
+ compatible = "regulator-fixed";
|
|
+ regulator-name = "usb-vbus";
|
|
+ regulator-min-microvolt = <5000000>;
|
|
+ regulator-max-microvolt = <5000000>;
|
|
+ startup-delay-us = <100000>;
|
|
+ gpio = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 USB0-DRVVBUS */
|
|
+ enable-active-high;
|
|
+ };
|
|
+
|
|
+ wifi_pwrseq: wifi_pwrseq {
|
|
+ compatible = "mmc-pwrseq-simple";
|
|
+ clocks = <&rtc 1>;
|
|
+ clock-names = "ext_clock";
|
|
+ reset-gpios = <&r_pio 1 3 GPIO_ACTIVE_LOW>; /* PM3 */
|
|
+ post-power-on-delay-ms = <200>;
|
|
+ };
|
|
+};
|
|
+
|
|
+&cpu0 {
|
|
+ cpu-supply = <®_dcdca>;
|
|
+};
|
|
+
|
|
+&de {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&hdmi {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&hdmi_out {
|
|
+ hdmi_out_con: endpoint {
|
|
+ remote-endpoint = <&hdmi_con_in>;
|
|
+ };
|
|
+};
|
|
+
|
|
+&mmc0 {
|
|
+ vmmc-supply = <®_cldo1>;
|
|
+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
|
|
+ bus-width = <4>;
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&mmc1 {
|
|
+ vmmc-supply = <®_cldo2>;
|
|
+ vqmmc-supply = <®_bldo3>;
|
|
+ mmc-pwrseq = <&wifi_pwrseq>;
|
|
+ bus-width = <4>;
|
|
+ non-removable;
|
|
+ status = "okay";
|
|
+
|
|
+ brcm: sdio-wifi@1 {
|
|
+ reg = <1>;
|
|
+ compatible = "brcm,bcm4329-fmac";
|
|
+ interrupt-parent = <&r_pio>;
|
|
+ interrupts = <1 0 IRQ_TYPE_LEVEL_LOW>; /* PM0 */
|
|
+ interrupt-names = "host-wake";
|
|
+ };
|
|
+};
|
|
+
|
|
+&pio {
|
|
+ vcc-pc-supply = <®_bldo2>;
|
|
+ vcc-pd-supply = <®_cldo1>;
|
|
+ vcc-pg-supply = <®_bldo3>;
|
|
+};
|
|
+
|
|
+&r_i2c {
|
|
+ status = "okay";
|
|
+
|
|
+ axp805: pmic@36 {
|
|
+ compatible = "x-powers,axp805", "x-powers,axp806";
|
|
+ reg = <0x36>;
|
|
+ interrupt-parent = <&r_intc>;
|
|
+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
|
+ interrupt-controller;
|
|
+ #interrupt-cells = <1>;
|
|
+ x-powers,self-working-mode;
|
|
+ vina-supply = <®_vcc5v>;
|
|
+ vinb-supply = <®_vcc5v>;
|
|
+ vinc-supply = <®_vcc5v>;
|
|
+ vind-supply = <®_vcc5v>;
|
|
+ vine-supply = <®_vcc5v>;
|
|
+ aldoin-supply = <®_vcc5v>;
|
|
+ bldoin-supply = <®_vcc5v>;
|
|
+ cldoin-supply = <®_vcc5v>;
|
|
+
|
|
+ regulators {
|
|
+ reg_aldo1: aldo1 {
|
|
+ regulator-always-on;
|
|
+ regulator-min-microvolt = <3300000>;
|
|
+ regulator-max-microvolt = <3300000>;
|
|
+ regulator-name = "vcc-pl-led-ir";
|
|
+ };
|
|
+
|
|
+ reg_aldo2: aldo2 {
|
|
+ regulator-min-microvolt = <3300000>;
|
|
+ regulator-max-microvolt = <3300000>;
|
|
+ regulator-name = "vcc33-audio-tv-ephy-mac";
|
|
+ };
|
|
+
|
|
+ /* ALDO3 is shorted to CLDO1 */
|
|
+ reg_aldo3: aldo3 {
|
|
+ regulator-always-on;
|
|
+ regulator-min-microvolt = <3300000>;
|
|
+ regulator-max-microvolt = <3300000>;
|
|
+ regulator-name = "vcc33-io-pd-emmc-sd-usb-uart-1";
|
|
+ };
|
|
+
|
|
+ reg_bldo1: bldo1 {
|
|
+ regulator-always-on;
|
|
+ regulator-min-microvolt = <1800000>;
|
|
+ regulator-max-microvolt = <1800000>;
|
|
+ regulator-name = "vcc18-dram-bias-pll";
|
|
+ };
|
|
+
|
|
+ reg_bldo2: bldo2 {
|
|
+ regulator-always-on;
|
|
+ regulator-min-microvolt = <1800000>;
|
|
+ regulator-max-microvolt = <1800000>;
|
|
+ regulator-name = "vcc-efuse-pcie-hdmi-pc";
|
|
+ };
|
|
+
|
|
+ reg_bldo3: bldo3 {
|
|
+ regulator-always-on;
|
|
+ regulator-min-microvolt = <1800000>;
|
|
+ regulator-max-microvolt = <1800000>;
|
|
+ regulator-name = "vcc-dcxoio";
|
|
+ };
|
|
+
|
|
+ bldo4 {
|
|
+ /* unused */
|
|
+ };
|
|
+
|
|
+ reg_cldo1: cldo1 {
|
|
+ regulator-always-on;
|
|
+ regulator-min-microvolt = <3300000>;
|
|
+ regulator-max-microvolt = <3300000>;
|
|
+ regulator-name = "vcc33-io-pd-emmc-sd-usb-uart-2";
|
|
+ };
|
|
+
|
|
+ reg_cldo2: cldo2 {
|
|
+ /*
|
|
+ * This regulator is connected with CLDO3.
|
|
+ * Before the kernel can support synchronized
|
|
+ * enable of coupled regulators, keep them
|
|
+ * both always on as a ugly hack.
|
|
+ */
|
|
+ regulator-always-on;
|
|
+ regulator-min-microvolt = <3300000>;
|
|
+ regulator-max-microvolt = <3300000>;
|
|
+ regulator-name = "vcc-wifi-1";
|
|
+ };
|
|
+
|
|
+ reg_cldo3: cldo3 {
|
|
+ /*
|
|
+ * This regulator is connected with CLDO2.
|
|
+ * See the comments for CLDO2.
|
|
+ */
|
|
+ regulator-always-on;
|
|
+ regulator-min-microvolt = <3300000>;
|
|
+ regulator-max-microvolt = <3300000>;
|
|
+ regulator-name = "vcc-wifi-2";
|
|
+ };
|
|
+
|
|
+ reg_dcdca: dcdca {
|
|
+ regulator-always-on;
|
|
+ regulator-min-microvolt = <800000>;
|
|
+ regulator-max-microvolt = <1160000>;
|
|
+ regulator-name = "vdd-cpu";
|
|
+ };
|
|
+
|
|
+ reg_dcdcc: dcdcc {
|
|
+ regulator-min-microvolt = <810000>;
|
|
+ regulator-max-microvolt = <1080000>;
|
|
+ regulator-name = "vdd-gpu";
|
|
+ };
|
|
+
|
|
+ reg_dcdcd: dcdcd {
|
|
+ regulator-always-on;
|
|
+ regulator-min-microvolt = <960000>;
|
|
+ regulator-max-microvolt = <960000>;
|
|
+ regulator-name = "vdd-sys";
|
|
+ };
|
|
+
|
|
+ reg_dcdce: dcdce {
|
|
+ regulator-always-on;
|
|
+ regulator-min-microvolt = <1200000>;
|
|
+ regulator-max-microvolt = <1200000>;
|
|
+ regulator-name = "vcc-dram";
|
|
+ };
|
|
+
|
|
+ sw {
|
|
+ /* unused */
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+};
|
|
+
|
|
+&spi0 {
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&spi0_pins>;
|
|
+ status = "disabled";
|
|
+};
|
|
+
|
|
+&uart0 {
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&uart0_ph_pins>;
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+/* There's the BT part of the AP6255 connected to that UART */
|
|
+&uart1 {
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
|
|
+ uart-has-rtscts;
|
|
+ status = "okay";
|
|
+
|
|
+ bluetooth {
|
|
+ compatible = "brcm,bcm4345c5";
|
|
+ clocks = <&rtc 1>;
|
|
+ clock-names = "lpo";
|
|
+ device-wakeup-gpios = <&r_pio 1 2 GPIO_ACTIVE_HIGH>; /* PM2 */
|
|
+ host-wakeup-gpios = <&r_pio 1 1 GPIO_ACTIVE_HIGH>; /* PM1 */
|
|
+ shutdown-gpios = <&r_pio 1 4 GPIO_ACTIVE_HIGH>; /* PM4 */
|
|
+ max-speed = <1500000>;
|
|
+ };
|
|
+};
|
|
+
|
|
+&uart3 {
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&uart3_pins>, <&uart3_rts_cts_pins>;
|
|
+ uart-has-rtscts;
|
|
+ status = "disabled";
|
|
+};
|
|
+
|
|
+&usb2otg {
|
|
+ /*
|
|
+ * This board doesn't have a controllable VBUS even though it
|
|
+ * does have an ID pin. Using it as anything but a USB host is
|
|
+ * unsafe.
|
|
+ */
|
|
+ dr_mode = "host";
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&usb2phy {
|
|
+ usb0_id_det-gpios = <&pio 2 6 GPIO_ACTIVE_HIGH>; /* PC6 */
|
|
+ usb0_vbus-supply = <®_vcc5v>;
|
|
+ usb3_vbus-supply = <®_vcc5v>;
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&ehci0 {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&ohci0 {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&ehci3 {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&ohci3 {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&usb3phy {
|
|
+ phy-supply = <®_usb_vbus>;
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&dwc3 {
|
|
+ status = "okay";
|
|
};
|