From 688644d2385b9a64d4bce5627e526486bb180ef2 Mon Sep 17 00:00:00 2001 From: Patrick Yavitz Date: Sat, 31 Jan 2026 08:12:58 -0500 Subject: [PATCH] Update OrangePi 3 LTS linux DTS Signed-off-by: Patrick Yavitz --- .../dt/sun50i-h6-orangepi-3-lts.dts | 405 +++++++++++++++++ ...dd-initial-support-for-orangepi3-lts.patch | 430 ------------------ patch/kernel/archive/sunxi-6.12/series.conf | 1 - .../dt_64/sun50i-h6-orangepi-3-lts.dts | 108 ++--- 4 files changed, 462 insertions(+), 482 deletions(-) create mode 100644 patch/kernel/archive/sunxi-6.12/dt/sun50i-h6-orangepi-3-lts.dts delete mode 100644 patch/kernel/archive/sunxi-6.12/patches.armbian/add-initial-support-for-orangepi3-lts.patch diff --git a/patch/kernel/archive/sunxi-6.12/dt/sun50i-h6-orangepi-3-lts.dts b/patch/kernel/archive/sunxi-6.12/dt/sun50i-h6-orangepi-3-lts.dts new file mode 100644 index 0000000000..101d86ac16 --- /dev/null +++ b/patch/kernel/archive/sunxi-6.12/dt/sun50i-h6-orangepi-3-lts.dts @@ -0,0 +1,405 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +// Copyright (C) 2019 Ondřej Jirman +// Copyright (C) 2023 Jernej Skrabec +// Edited by Patrick Yavitz + +/dts-v1/; + +#include "sun50i-h6.dtsi" +#include "sun50i-h6-cpu-opp.dtsi" + +#include + +/ { + model = "OrangePi 3 LTS"; + compatible = "xunlong,orangepi-3-lts", "allwinner,sun50i-h6"; + + aliases { + ethernet0 = &emac; + serial0 = &uart0; + }; + + chosen { + stdout-path = "serial0:115200n8"; + kaslr-seed = <0xfeedbeef 0xc0def00d>; + }; + + connector { + compatible = "hdmi-connector"; + ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */ + type = "a"; + + port { + hdmi_con_in: endpoint { + remote-endpoint = <&hdmi_out_con>; + }; + }; + }; + + ext_osc32k: ext-osc32k-clk { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <32768>; + clock-output-names = "ext_osc32k"; + }; + + leds { + compatible = "gpio-leds"; + + led-0 { + label = "orangepi:red:status"; + gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ + linux,default-trigger = "heartbeat"; + }; + + led-1 { + label = "orangepi:green:power"; + gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */ + linux,default-trigger = "default-on"; + }; + }; + + 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_vcc33_wifi: vcc33-wifi { + /* Always on 3.3V regulator for WiFi and BT */ + compatible = "regulator-fixed"; + enable-active-high; + regulator-name = "vcc33-wifi"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + gpio = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */ + }; + + reg_vcc_wifi_io: vcc-wifi-io { + /* Always on 1.8V/300mA regulator for WiFi and BT IO */ + compatible = "regulator-fixed"; + regulator-always-on; + regulator-name = "vcc-wifi-io"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + vin-supply = <®_vcc33_wifi>; + }; + + sdio_pwrseq: sdio-pwrseq { + compatible = "mmc-pwrseq-simple"; + clocks = <&rtc CLK_OSC32K_FANOUT>; + clock-names = "ext_clock"; + post-power-on-delay-ms = <200>; + reset-gpios = <&r_pio 1 3 GPIO_ACTIVE_LOW>, /* PM3 */ + <&r_pio 1 4 GPIO_ACTIVE_LOW>; /* PM4 */ + }; +}; + +&ac200_codec { + avcc-supply = <®_aldo2>; + status = "okay"; +}; + +&ac200_pwm_clk { + status = "okay"; +}; + +&analog { + status = "okay"; +}; + +&cpu0 { + cpu-supply = <®_dcdca>; +}; + +&de { + status = "okay"; +}; + +&dwc3 { + status = "okay"; +}; + +&ehci0 { + status = "okay"; +}; + +&ehci3 { + status = "okay"; +}; + +&emac { + status = "okay"; + pinctrl-0 = <&ext_rgmii_pins>; + pinctrl-names = "default"; + phy-mode = "rgmii"; + phy-handle = <&ext_rgmii_phy>; + allwinner,tx-delay-ps = <700>; + allwinner,rx-delay-ps = <1700>; +}; + +&gpu { + mali-supply = <®_dcdcc>; + status = "okay"; +}; + +&hdmi { + status = "okay"; +}; + +&hdmi_out { + hdmi_out_con: endpoint { + remote-endpoint = <&hdmi_con_in>; + }; +}; + +&i2c3 { + status = "okay"; +}; + +&i2s1 { + status = "okay"; +}; + +&i2s3 { + status = "okay"; +}; + +&mdio { + ext_rgmii_phy: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <1>; + + reset-gpios = <&pio 3 14 GPIO_ACTIVE_LOW>; /* PD14 */ + reset-assert-us = <15000>; + reset-deassert-us = <40000>; + }; +}; + +&mmc0 { + status = "okay"; + bus-width = <4>; + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ + vmmc-supply = <®_cldo1>; +}; + +&mmc1 { + status = "okay"; + bus-width = <4>; + non-removable; + mmc-pwrseq = <&sdio_pwrseq>; + vmmc-supply = <®_vcc33_wifi>; + vqmmc-supply = <®_vcc_wifi_io>; + + sdio: wifi@1 { + reg = <1>; + }; +}; + +&mmc2 { + status = "okay"; + bus-width = <8>; + cap-mmc-hw-reset; + non-removable; + vmmc-supply = <®_cldo1>; + vqmmc-supply = <®_bldo2>; +}; + +&ohci0 { + status = "okay"; +}; + +&ohci3 { + status = "okay"; +}; + +&pio { + vcc-pc-supply = <®_bldo2>; + vcc-pd-supply = <®_cldo1>; + vcc-pg-supply = <®_vcc_wifi_io>; +}; + +&pwm { + status = "okay"; +}; + +&r_i2c { + status = "okay"; + + axp805: pmic@36 { + compatible = "x-powers,axp805", "x-powers,axp806"; + reg = <0x36>; + interrupt-parent = <&r_intc>; + interrupts = ; + 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-always-on; + regulator-enable-ramp-delay = <100000>; + 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-pm-pg-dcxoio-wifi"; + }; + + 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"; + }; + + cldo2 { + /* unused */ + }; + + cldo3 { + /* unused */ + }; + + reg_dcdca: dcdca { + regulator-always-on; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <1160000>; + regulator-ramp-delay = <2500>; + regulator-name = "vdd-cpu"; + }; + + reg_dcdcc: dcdcc { + regulator-enable-ramp-delay = <32000>; + regulator-min-microvolt = <810000>; + regulator-max-microvolt = <1080000>; + regulator-ramp-delay = <2500>; + 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 */ + }; + }; + }; +}; + +&r_ir { + status = "okay"; +}; + +&rtc { + clocks = <&ext_osc32k>; +}; + +&r_pio { + vcc-pm-supply = <®_bldo3>; +}; + +&sound_hdmi { + status = "okay"; +}; + +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0_ph_pins>; + status = "okay"; +}; + +/* Bluetooth */ +&uart1 { + pinctrl-names = "default"; + pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; + uart-has-rtscts; + status = "okay"; + + bluetooth { + compatible = "allwinner,sunxi-btlpm"; + bt_wake = <&r_pio 1 1 GPIO_ACTIVE_HIGH>; /* PM1 */ + bt_hostwake = <&r_pio 1 2 GPIO_ACTIVE_HIGH>; /* PM2 */ + }; +}; + +&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 15 GPIO_ACTIVE_HIGH>; /* PC15 */ + usb0_vbus-supply = <®_vcc5v>; + usb3_vbus-supply = <®_vcc5v>; + status = "okay"; +}; + +&usb3phy { + status = "okay"; +}; diff --git a/patch/kernel/archive/sunxi-6.12/patches.armbian/add-initial-support-for-orangepi3-lts.patch b/patch/kernel/archive/sunxi-6.12/patches.armbian/add-initial-support-for-orangepi3-lts.patch deleted file mode 100644 index c41b702815..0000000000 --- a/patch/kernel/archive/sunxi-6.12/patches.armbian/add-initial-support-for-orangepi3-lts.patch +++ /dev/null @@ -1,430 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: The-going <48602507+The-going@users.noreply.github.com> -Date: Sat, 16 Apr 2022 11:51:35 +0300 -Subject: add initial support for orangepi3-lts - ---- - arch/arm64/boot/dts/allwinner/Makefile | 1 + - arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3-lts.dts | 399 ++++++++++ - 2 files changed, 400 insertions(+) - -diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile -index 111111111111..222222222222 100644 ---- a/arch/arm64/boot/dts/allwinner/Makefile -+++ b/arch/arm64/boot/dts/allwinner/Makefile -@@ -43,6 +43,7 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-orangepi-zero-plus2.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-beelink-gs1.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-3.dtb -+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-3-lts.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-lite2.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-orangepi-one-plus.dtb - dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h6-pine-h64.dtb -diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3-lts.dts b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3-lts.dts -new file mode 100644 -index 000000000000..111111111111 ---- /dev/null -+++ b/arch/arm64/boot/dts/allwinner/sun50i-h6-orangepi-3-lts.dts -@@ -0,0 +1,399 @@ -+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) -+// Copyright (C) 2023 Jernej Skrabec -+// Copyright (C) 2019 Ondřej Jirman -+ -+/dts-v1/; -+ -+#include "sun50i-h6.dtsi" -+#include "sun50i-h6-cpu-opp.dtsi" -+ -+#include -+ -+/ { -+ model = "OrangePi 3 LTS"; -+ compatible = "xunlong,orangepi-3-lts", "allwinner,sun50i-h6"; -+ -+ aliases { -+ ethernet0 = &emac; -+ serial0 = &uart0; -+ }; -+ -+ chosen { -+ stdout-path = "serial0:115200n8"; -+ }; -+ -+ connector { -+ compatible = "hdmi-connector"; -+ ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */ -+ type = "a"; -+ -+ port { -+ hdmi_con_in: endpoint { -+ remote-endpoint = <&hdmi_out_con>; -+ }; -+ }; -+ }; -+ -+ ext_osc32k: ext_osc32k_clk { -+ #clock-cells = <0>; -+ compatible = "fixed-clock"; -+ clock-frequency = <32768>; -+ clock-output-names = "ext_osc32k"; -+ }; -+ -+ leds { -+ compatible = "gpio-leds"; -+ -+ status { -+ label = "green-led"; -+ gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */ -+ default-state = "on"; -+ }; -+ -+ power { -+ label = "red-led"; -+ gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ -+ }; -+ }; -+ -+ 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_gmac_3v3: gmac-3v3 { -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc-gmac-3v3"; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ startup-delay-us = <150000>; -+ gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; -+ enable-active-high; -+ }; -+ -+ reg_vcc33_wifi: vcc33-wifi { -+ /* Always on 3.3V regulator for WiFi and BT */ -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc33-wifi"; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ enable-active-high; -+ gpio = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */ -+ }; -+ -+ reg_vcc_wifi_io: vcc-wifi-io { -+ /* Always on 1.8V/300mA regulator for WiFi and BT IO */ -+ compatible = "regulator-fixed"; -+ regulator-name = "vcc-wifi-io"; -+ regulator-min-microvolt = <1800000>; -+ regulator-max-microvolt = <1800000>; -+ regulator-always-on; -+ vin-supply = <®_vcc33_wifi>; -+ }; -+ -+ 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>; -+ }; -+}; -+ -+&ac200_codec { -+ avcc-supply = <®_aldo2>; -+ status = "okay"; -+}; -+ -+&ac200_pwm_clk { -+ status = "okay"; -+}; -+ -+&analog { -+ status = "okay"; -+}; -+ -+&cpu0 { -+ cpu-supply = <®_dcdca>; -+}; -+ -+&de { -+ status = "okay"; -+}; -+ -+&dwc3 { -+ status = "okay"; -+}; -+ -+&ehci0 { -+ status = "okay"; -+}; -+ -+&ehci3 { -+ status = "okay"; -+}; -+ -+&emac { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&ext_rgmii_pins>; -+ phy-mode = "rgmii-id"; -+ phy-handle = <&ext_rgmii_phy>; -+ phy-supply = <®_gmac_3v3>; -+ allwinner,rx-delay-ps = <200>; -+ allwinner,tx-delay-ps = <300>; -+ status = "okay"; -+}; -+ -+&gpu { -+ mali-supply = <®_dcdcc>; -+ status = "okay"; -+}; -+ -+&hdmi { -+ hvcc-supply = <®_bldo2>; -+ status = "okay"; -+}; -+ -+&hdmi_out { -+ hdmi_out_con: endpoint { -+ remote-endpoint = <&hdmi_con_in>; -+ }; -+}; -+ -+&i2c3 { -+ status = "okay"; -+}; -+ -+&i2s1 { -+ status = "okay"; -+}; -+ -+&i2s3 { -+ status = "okay"; -+}; -+ -+&mdio { -+ ext_rgmii_phy: ethernet-phy@1 { -+ compatible = "ethernet-phy-ieee802.3-c22"; -+ reg = <1>; -+ motorcomm,clk-out-frequency-hz = <125000000>; -+ reset-gpios = <&pio 3 14 GPIO_ACTIVE_LOW>; /* PD14 */ -+ reset-assert-us = <15000>; -+ reset-deassert-us = <40000>; -+ }; -+}; -+ -+&mmc0 { -+ vmmc-supply = <®_cldo1>; -+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ -+ bus-width = <4>; -+ status = "okay"; -+}; -+ -+&mmc1 { -+ vmmc-supply = <®_vcc33_wifi>; -+ vqmmc-supply = <®_vcc_wifi_io>; -+ mmc-pwrseq = <&wifi_pwrseq>; -+ bus-width = <4>; -+ non-removable; -+ status = "okay"; -+}; -+ -+&mmc2 { -+ vmmc-supply = <®_cldo1>; -+ vqmmc-supply = <®_bldo2>; -+ bus-width = <8>; -+ non-removable; -+ cap-mmc-hw-reset; -+ mmc-hs200-1_8v; -+ status = "okay"; -+}; -+ -+&ohci0 { -+ status = "okay"; -+}; -+ -+&ohci3 { -+ status = "okay"; -+}; -+ -+&pio { -+ vcc-pc-supply = <®_bldo2>; -+ vcc-pd-supply = <®_cldo1>; -+ vcc-pg-supply = <®_vcc_wifi_io>; -+}; -+ -+&pwm { -+ status = "okay"; -+}; -+ -+&r_ir { -+ status = "okay"; -+}; -+ -+&r_i2c { -+ status = "okay"; -+ -+ axp805: pmic@36 { -+ compatible = "x-powers,axp805", "x-powers,axp806"; -+ reg = <0x36>; -+ interrupt-parent = <&r_intc>; -+ interrupts = ; -+ 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-always-on; -+ regulator-min-microvolt = <3300000>; -+ regulator-max-microvolt = <3300000>; -+ regulator-name = "vcc33-audio-tv-ephy-mac"; -+ regulator-enable-ramp-delay = <100000>; -+ }; -+ -+ /* 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-pm-pg-dcxoio-wifi"; -+ }; -+ -+ 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"; -+ }; -+ -+ cldo2 { -+ /* unused */ -+ }; -+ -+ cldo3 { -+ /* unused */ -+ }; -+ -+ reg_dcdca: dcdca { -+ regulator-always-on; -+ regulator-min-microvolt = <800000>; -+ regulator-max-microvolt = <1160000>; -+ regulator-ramp-delay = <2500>; -+ regulator-name = "vdd-cpu"; -+ }; -+ -+ reg_dcdcc: dcdcc { -+ regulator-enable-ramp-delay = <32000>; -+ regulator-min-microvolt = <810000>; -+ regulator-max-microvolt = <1080000>; -+ regulator-ramp-delay = <2500>; -+ 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 */ -+ }; -+ }; -+ }; -+}; -+ -+&rtc { -+ clocks = <&ext_osc32k>; -+}; -+ -+&sound_hdmi { -+ status = "okay"; -+}; -+ -+&uart0 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart0_ph_pins>; -+ status = "okay"; -+}; -+ -+&uart1 { -+ pinctrl-names = "default"; -+ pinctrl-0 = <&uart1_pins>, <&uart1_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 15 GPIO_ACTIVE_HIGH>; /* PC15 */ -+ usb0_vbus-supply = <®_vcc5v>; -+ usb3_vbus-supply = <®_vcc5v>; -+ status = "okay"; -+}; -+ -+&usb3phy { -+ status = "okay"; -+}; --- -Armbian - diff --git a/patch/kernel/archive/sunxi-6.12/series.conf b/patch/kernel/archive/sunxi-6.12/series.conf index 29d05498ff..2a3299aef4 100644 --- a/patch/kernel/archive/sunxi-6.12/series.conf +++ b/patch/kernel/archive/sunxi-6.12/series.conf @@ -455,7 +455,6 @@ patches.armbian/arm64-dts-allwinner-h6-add-AC200-codec-nodes.patch patches.armbian/arm64-dts-allwinner-h6-enable-AC200-codec.patch patches.armbian/add-nodes-for-sunxi-info-sunxi-addr-and-sunxi-dump-reg.patch - patches.armbian/add-initial-support-for-orangepi3-lts.patch patches.armbian/Add-wifi-nodes-for-Inovato-Quadra.patch patches.armbian/arm64-dts-h616-add-wifi-support-for-orange-pi-zero-2-and-zero3.patch patches.armbian/arm64-dts-sun50i-h618-orangepi-zero3-Enable-GPU-mali.patch diff --git a/patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h6-orangepi-3-lts.dts b/patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h6-orangepi-3-lts.dts index dd6b4e1526..101d86ac16 100644 --- a/patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h6-orangepi-3-lts.dts +++ b/patch/kernel/archive/sunxi-6.18/dt_64/sun50i-h6-orangepi-3-lts.dts @@ -1,6 +1,7 @@ // SPDX-License-Identifier: (GPL-2.0+ OR MIT) -// Copyright (C) 2023 Jernej Skrabec // Copyright (C) 2019 Ondřej Jirman +// Copyright (C) 2023 Jernej Skrabec +// Edited by Patrick Yavitz /dts-v1/; @@ -20,6 +21,7 @@ chosen { stdout-path = "serial0:115200n8"; + kaslr-seed = <0xfeedbeef 0xc0def00d>; }; connector { @@ -34,7 +36,7 @@ }; }; - ext_osc32k: ext_osc32k_clk { + ext_osc32k: ext-osc32k-clk { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <32768>; @@ -44,15 +46,16 @@ leds { compatible = "gpio-leds"; - status { - label = "green-led"; - gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */ - default-state = "on"; + led-0 { + label = "orangepi:red:status"; + gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ + linux,default-trigger = "heartbeat"; }; - power { - label = "red-led"; - gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ + led-1 { + label = "orangepi:green:power"; + gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */ + linux,default-trigger = "default-on"; }; }; @@ -65,42 +68,33 @@ regulator-always-on; }; - reg_gmac_3v3: gmac-3v3 { - compatible = "regulator-fixed"; - regulator-name = "vcc-gmac-3v3"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - startup-delay-us = <150000>; - gpio = <&pio 3 6 GPIO_ACTIVE_HIGH>; - enable-active-high; - }; - reg_vcc33_wifi: vcc33-wifi { /* Always on 3.3V regulator for WiFi and BT */ compatible = "regulator-fixed"; + enable-active-high; regulator-name = "vcc33-wifi"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; - enable-active-high; gpio = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */ }; reg_vcc_wifi_io: vcc-wifi-io { /* Always on 1.8V/300mA regulator for WiFi and BT IO */ compatible = "regulator-fixed"; + regulator-always-on; regulator-name = "vcc-wifi-io"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; - regulator-always-on; vin-supply = <®_vcc33_wifi>; }; - wifi_pwrseq: wifi-pwrseq { + sdio_pwrseq: sdio-pwrseq { compatible = "mmc-pwrseq-simple"; - clocks = <&rtc 1>; + clocks = <&rtc CLK_OSC32K_FANOUT>; clock-names = "ext_clock"; - reset-gpios = <&r_pio 1 3 GPIO_ACTIVE_LOW>; /* PM3 */ post-power-on-delay-ms = <200>; + reset-gpios = <&r_pio 1 3 GPIO_ACTIVE_LOW>, /* PM3 */ + <&r_pio 1 4 GPIO_ACTIVE_LOW>; /* PM4 */ }; }; @@ -138,14 +132,13 @@ }; &emac { - pinctrl-names = "default"; - pinctrl-0 = <&ext_rgmii_pins>; - phy-mode = "rgmii-id"; - phy-handle = <&ext_rgmii_phy>; - phy-supply = <®_gmac_3v3>; - allwinner,rx-delay-ps = <200>; - allwinner,tx-delay-ps = <300>; status = "okay"; + pinctrl-0 = <&ext_rgmii_pins>; + pinctrl-names = "default"; + phy-mode = "rgmii"; + phy-handle = <&ext_rgmii_phy>; + allwinner,tx-delay-ps = <700>; + allwinner,rx-delay-ps = <1700>; }; &gpu { @@ -154,7 +147,6 @@ }; &hdmi { - hvcc-supply = <®_bldo2>; status = "okay"; }; @@ -180,7 +172,7 @@ ext_rgmii_phy: ethernet-phy@1 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <1>; - motorcomm,clk-out-frequency-hz = <125000000>; + reset-gpios = <&pio 3 14 GPIO_ACTIVE_LOW>; /* PD14 */ reset-assert-us = <15000>; reset-deassert-us = <40000>; @@ -188,29 +180,32 @@ }; &mmc0 { - vmmc-supply = <®_cldo1>; - cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ - bus-width = <4>; status = "okay"; + bus-width = <4>; + cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ + vmmc-supply = <®_cldo1>; }; &mmc1 { - vmmc-supply = <®_vcc33_wifi>; - vqmmc-supply = <®_vcc_wifi_io>; - mmc-pwrseq = <&wifi_pwrseq>; + status = "okay"; bus-width = <4>; non-removable; - status = "okay"; + mmc-pwrseq = <&sdio_pwrseq>; + vmmc-supply = <®_vcc33_wifi>; + vqmmc-supply = <®_vcc_wifi_io>; + + sdio: wifi@1 { + reg = <1>; + }; }; &mmc2 { + status = "okay"; + bus-width = <8>; + cap-mmc-hw-reset; + non-removable; vmmc-supply = <®_cldo1>; vqmmc-supply = <®_bldo2>; - bus-width = <8>; - non-removable; - cap-mmc-hw-reset; - mmc-hs200-1_8v; - status = "okay"; }; &ohci0 { @@ -231,10 +226,6 @@ status = "okay"; }; -&r_ir { - status = "okay"; -}; - &r_i2c { status = "okay"; @@ -265,10 +256,10 @@ reg_aldo2: aldo2 { regulator-always-on; + regulator-enable-ramp-delay = <100000>; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-name = "vcc33-audio-tv-ephy-mac"; - regulator-enable-ramp-delay = <100000>; }; /* ALDO3 is shorted to CLDO1 */ @@ -356,10 +347,18 @@ }; }; +&r_ir { + status = "okay"; +}; + &rtc { clocks = <&ext_osc32k>; }; +&r_pio { + vcc-pm-supply = <®_bldo3>; +}; + &sound_hdmi { status = "okay"; }; @@ -370,11 +369,18 @@ status = "okay"; }; +/* Bluetooth */ &uart1 { pinctrl-names = "default"; pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; uart-has-rtscts; - status = "disabled"; + status = "okay"; + + bluetooth { + compatible = "allwinner,sunxi-btlpm"; + bt_wake = <&r_pio 1 1 GPIO_ACTIVE_HIGH>; /* PM1 */ + bt_hostwake = <&r_pio 1 2 GPIO_ACTIVE_HIGH>; /* PM2 */ + }; }; &usb2otg {