mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-08-01 15:07:49 +00:00
u-boot: use upstream patches for Orange Pi 3
This commit is contained in:
parent
1ba1387293
commit
8ec0106864
1391
projects/Allwinner/devices/H6/patches/u-boot/001-backports.patch
Normal file
1391
projects/Allwinner/devices/H6/patches/u-boot/001-backports.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,111 +1,17 @@
|
|||||||
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
|
--- a/arch/arm/dts/sun50i-h6-orangepi-3.dts 2019-11-26 07:49:45.449465112 +0100
|
||||||
index 0e2ffdb87f..ad60ae0179 100644
|
+++ b/arch/arm/dts/sun50i-h6-orangepi-3.dts 2019-11-26 07:55:56.414722853 +0100
|
||||||
--- a/arch/arm/dts/Makefile
|
@@ -15,6 +15,7 @@
|
||||||
+++ b/arch/arm/dts/Makefile
|
aliases {
|
||||||
@@ -467,6 +467,7 @@ dtb-$(CONFIG_MACH_SUN50I_H5) += \
|
serial0 = &uart0;
|
||||||
sun50i-h5-orangepi-prime.dtb \
|
serial1 = &uart1;
|
||||||
sun50i-h5-orangepi-zero-plus2.dtb
|
|
||||||
dtb-$(CONFIG_MACH_SUN50I_H6) += \
|
|
||||||
+ sun50i-h6-orangepi-3.dtb \
|
|
||||||
sun50i-h6-beelink-gs1.dtb \
|
|
||||||
sun50i-h6-orangepi-lite2.dtb \
|
|
||||||
sun50i-h6-orangepi-one-plus.dtb \
|
|
||||||
sun50i-h6-pine-h64.dtb
|
|
||||||
diff --git a/arch/arm/dts/sun50i-h6-orangepi-3.dts b/arch/arm/dts/sun50i-h6-orangepi-3.dts
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..8070adc39b
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/arch/arm/dts/sun50i-h6-orangepi-3.dts
|
|
||||||
@@ -0,0 +1,326 @@
|
|
||||||
+// SPDX-License-Identifier: (GPL-2.0+ or MIT)
|
|
||||||
+/*
|
|
||||||
+ * Copyright (C) 2019 Ondřej Jirman <megous@megous.com>
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+/dts-v1/;
|
|
||||||
+
|
|
||||||
+#include "sun50i-h6.dtsi"
|
|
||||||
+
|
|
||||||
+#include <dt-bindings/gpio/gpio.h>
|
|
||||||
+
|
|
||||||
+/ {
|
|
||||||
+ model = "OrangePi 3";
|
|
||||||
+ compatible = "xunlong,orangepi-3", "allwinner,sun50i-h6";
|
|
||||||
+
|
|
||||||
+ aliases {
|
|
||||||
+ serial0 = &uart0;
|
|
||||||
+ serial1 = &uart1;
|
|
||||||
+ ethernet0 = &emac;
|
+ ethernet0 = &emac;
|
||||||
+ };
|
};
|
||||||
+
|
|
||||||
+ chosen {
|
chosen {
|
||||||
+ stdout-path = "serial0:115200n8";
|
@@ -84,6 +85,27 @@
|
||||||
+ };
|
reset-gpios = <&r_pio 1 3 GPIO_ACTIVE_LOW>; /* PM3 */
|
||||||
+
|
post-power-on-delay-ms = <200>;
|
||||||
+ 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_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>;
|
|
||||||
+ regulator-always-on;
|
|
||||||
+ vin-supply = <®_vcc5v>;
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ 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>;
|
|
||||||
+ };
|
|
||||||
+
|
+
|
||||||
+ /*
|
+ /*
|
||||||
+ * The board uses 2.5V RGMII signalling. Power sequence to enable
|
+ * The board uses 2.5V RGMII signalling. Power sequence to enable
|
||||||
@ -127,24 +33,13 @@ index 0000000000..8070adc39b
|
|||||||
+ */
|
+ */
|
||||||
+ vin-supply = <®_aldo2>; /* GMAC-3V3 */
|
+ vin-supply = <®_aldo2>; /* GMAC-3V3 */
|
||||||
+ };
|
+ };
|
||||||
+};
|
};
|
||||||
+
|
|
||||||
+&cpu0 {
|
&cpu0 {
|
||||||
+ cpu-supply = <®_dcdca>;
|
@@ -102,6 +124,17 @@
|
||||||
+};
|
status = "okay";
|
||||||
+
|
};
|
||||||
+&de {
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&ehci0 {
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&ehci3 {
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&emac {
|
+&emac {
|
||||||
+ pinctrl-names = "default";
|
+ pinctrl-names = "default";
|
||||||
+ pinctrl-0 = <&ext_rgmii_pins>;
|
+ pinctrl-0 = <&ext_rgmii_pins>;
|
||||||
@ -156,16 +51,13 @@ index 0000000000..8070adc39b
|
|||||||
+ status = "okay";
|
+ status = "okay";
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+&hdmi {
|
&hdmi {
|
||||||
+ status = "okay";
|
status = "okay";
|
||||||
+};
|
};
|
||||||
+
|
@@ -112,6 +145,17 @@
|
||||||
+&hdmi_out {
|
};
|
||||||
+ hdmi_out_con: endpoint {
|
};
|
||||||
+ remote-endpoint = <&hdmi_con_in>;
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&mdio {
|
+&mdio {
|
||||||
+ ext_rgmii_phy: ethernet-phy@1 {
|
+ ext_rgmii_phy: ethernet-phy@1 {
|
||||||
+ compatible = "ethernet-phy-ieee802.3-c22";
|
+ compatible = "ethernet-phy-ieee802.3-c22";
|
||||||
@ -177,13 +69,13 @@ index 0000000000..8070adc39b
|
|||||||
+ };
|
+ };
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+&mmc0 {
|
&mmc0 {
|
||||||
+ vmmc-supply = <®_cldo1>;
|
vmmc-supply = <®_cldo1>;
|
||||||
+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
|
cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
|
||||||
+ bus-width = <4>;
|
@@ -136,6 +180,16 @@
|
||||||
+ status = "okay";
|
};
|
||||||
+};
|
};
|
||||||
+
|
|
||||||
+&mmc2 {
|
+&mmc2 {
|
||||||
+ pinctrl-names = "default";
|
+ pinctrl-names = "default";
|
||||||
+ pinctrl-0 = <&mmc2_pins>;
|
+ pinctrl-0 = <&mmc2_pins>;
|
||||||
@ -194,173 +86,6 @@ index 0000000000..8070adc39b
|
|||||||
+ status = "okay";
|
+ status = "okay";
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+&ohci0 {
|
&ohci0 {
|
||||||
+ status = "okay";
|
status = "okay";
|
||||||
+};
|
};
|
||||||
+
|
|
||||||
+&ohci3 {
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&pio {
|
|
||||||
+ vcc-pc-supply = <®_bldo2>;
|
|
||||||
+ vcc-pd-supply = <®_cldo1>;
|
|
||||||
+ vcc-pg-supply = <®_vcc_wifi_io>;
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&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";
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ bldo3 {
|
|
||||||
+ /* unused */
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ 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-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 */
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+ };
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&uart0 {
|
|
||||||
+ pinctrl-names = "default";
|
|
||||||
+ pinctrl-0 = <&uart0_ph_pins>;
|
|
||||||
+ status = "okay";
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
+&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";
|
|
||||||
+};
|
|
||||||
diff --git a/configs/orangepi_3_defconfig b/configs/orangepi_3_defconfig
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000000..9a9cd28142
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/configs/orangepi_3_defconfig
|
|
||||||
@@ -0,0 +1,15 @@
|
|
||||||
+CONFIG_ARM=y
|
|
||||||
+CONFIG_ARCH_SUNXI=y
|
|
||||||
+CONFIG_SPL=y
|
|
||||||
+CONFIG_MACH_SUN50I_H6=y
|
|
||||||
+CONFIG_SUNXI_DRAM_H6_LPDDR3=y
|
|
||||||
+CONFIG_MMC0_CD_PIN="PF6"
|
|
||||||
+# CONFIG_PSCI_RESET is not set
|
|
||||||
+CONFIG_MMC_SUNXI_SLOT_EXTRA=2
|
|
||||||
+CONFIG_NR_DRAM_BANKS=1
|
|
||||||
+# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
|
|
||||||
+CONFIG_SPL_TEXT_BASE=0x20060
|
|
||||||
+# CONFIG_CMD_FLASH is not set
|
|
||||||
+# CONFIG_SPL_DOS_PARTITION is not set
|
|
||||||
+# CONFIG_SPL_EFI_PARTITION is not set
|
|
||||||
+CONFIG_DEFAULT_DEVICE_TREE="sun50i-h6-orangepi-3"
|
|
||||||
|
@ -29,7 +29,7 @@ index 528fb909d5..c463aca190 100644
|
|||||||
sun50i-h5-orangepi-zero-plus2.dtb
|
sun50i-h5-orangepi-zero-plus2.dtb
|
||||||
dtb-$(CONFIG_MACH_SUN50I_H6) += \
|
dtb-$(CONFIG_MACH_SUN50I_H6) += \
|
||||||
+ sun50i-h6-eachlink-h6-mini.dtb \
|
+ sun50i-h6-eachlink-h6-mini.dtb \
|
||||||
sun50i-h6-orangepi-3.dtb \
|
sun50i-h6-beelink-gs1.dtb \
|
||||||
sun50i-h6-orangepi-lite2.dtb \
|
sun50i-h6-orangepi-lite2.dtb \
|
||||||
sun50i-h6-orangepi-one-plus.dtb \
|
sun50i-h6-orangepi-one-plus.dtb \
|
||||||
diff --git a/arch/arm/dts/sun50i-h6-eachlink-h6-mini.dts b/arch/arm/dts/sun50i-h6-eachlink-h6-mini.dts
|
diff --git a/arch/arm/dts/sun50i-h6-eachlink-h6-mini.dts b/arch/arm/dts/sun50i-h6-eachlink-h6-mini.dts
|
||||||
|
@ -1,60 +0,0 @@
|
|||||||
From c7e886b9f2a39fe2ce98a16c6e7359171bac8c65 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Andre Heider <a.heider@gmail.com>
|
|
||||||
Date: Sun, 17 Nov 2019 20:24:43 +0100
|
|
||||||
Subject: [PATCH] sunxi: board: fixup the BT address for Orange Pi 3
|
|
||||||
|
|
||||||
The BCM4345C5 of the Orange Pi 3 ships with the controller default
|
|
||||||
address. Fix it up so it can function properly.
|
|
||||||
|
|
||||||
The used address is "ethaddr" with the LSB flipped.
|
|
||||||
|
|
||||||
Signed-off-by: Andre Heider <a.heider@gmail.com>
|
|
||||||
---
|
|
||||||
board/sunxi/board.c | 24 ++++++++++++++++++++++++
|
|
||||||
1 file changed, 24 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/board/sunxi/board.c b/board/sunxi/board.c
|
|
||||||
index e3b2d13892..a0e08dc9b8 100644
|
|
||||||
--- a/board/sunxi/board.c
|
|
||||||
+++ b/board/sunxi/board.c
|
|
||||||
@@ -864,6 +864,28 @@ int misc_init_r(void)
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static void fixup_bdaddr(void *blob)
|
|
||||||
+{
|
|
||||||
+#if defined(CONFIG_MACH_SUN50I_H6)
|
|
||||||
+ uchar mac[ETH_ALEN], bdaddr[ETH_ALEN];
|
|
||||||
+ int i;
|
|
||||||
+
|
|
||||||
+ if (!of_machine_is_compatible("xunlong,orangepi-3"))
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ if (!eth_env_get_enetaddr("ethaddr", mac))
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ for (i = 0; i < sizeof(mac); ++i)
|
|
||||||
+ bdaddr[i] = mac[ETH_ALEN - i - 1];
|
|
||||||
+
|
|
||||||
+ bdaddr[0] ^= 0x01;
|
|
||||||
+
|
|
||||||
+ do_fixup_by_compat(blob, "brcm,bcm4345c5",
|
|
||||||
+ "local-bd-address", bdaddr, ETH_ALEN, 1);
|
|
||||||
+#endif
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
int ft_board_setup(void *blob, bd_t *bd)
|
|
||||||
{
|
|
||||||
int __maybe_unused r;
|
|
||||||
@@ -874,6 +896,8 @@ int ft_board_setup(void *blob, bd_t *bd)
|
|
||||||
*/
|
|
||||||
setup_environment(blob);
|
|
||||||
|
|
||||||
+ fixup_bdaddr(blob);
|
|
||||||
+
|
|
||||||
#ifdef CONFIG_VIDEO_DT_SIMPLEFB
|
|
||||||
r = sunxi_simplefb_setup(blob);
|
|
||||||
if (r)
|
|
||||||
--
|
|
||||||
2.24.0
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user