Add support for Recore (#5351)
* Add support for Recore Signed-off-by: Elias Bakken <elias@iagent.no> * Add board maintainter to boad config Signed-off-by: Elias Bakken <elias@iagent.no> --------- Signed-off-by: Elias Bakken <elias@iagent.no>
This commit is contained in:
parent
5ae7a4c40e
commit
2aec6c23e6
@ -1,7 +1,26 @@
|
||||
# Allwinner A64 quad core 1GB RAM SoC GBE
|
||||
BOARD_NAME="Recore"
|
||||
# Allwinner A64 quad core 1GB RAM SoC GBE for 3D printers
|
||||
BOARD_NAME="Iagent Recore"
|
||||
BOARDFAMILY="sun50iw1"
|
||||
BOARD_MAINTAINER=""
|
||||
BOOTCONFIG="pine64_plus_defconfig"
|
||||
KERNEL_TARGET="current,edge"
|
||||
FULL_DESKTOP="no"
|
||||
BOOTCONFIG="recore_defconfig"
|
||||
KERNEL_TARGET="legacy,current"
|
||||
MODULES="g_serial"
|
||||
BOOT_LOGO="yes"
|
||||
BOARD_MAINTAINER="eliasbakken"
|
||||
|
||||
function post_family_config__shrink_atf() {
|
||||
echo "🍰Shrink ATF"
|
||||
declare -g ATF_TARGET_MAP="PLAT=$ATF_PLAT DEBUG=0 SUNXI_PSCI_USE_SCPI=0 bl31;;build/$ATF_PLAT/release/bl31.bin"
|
||||
|
||||
echo "🍰Compile without SCP binary"
|
||||
UBOOT_TARGET_MAP="SCP=/dev/null;;u-boot-sunxi-with-spl.bin"
|
||||
}
|
||||
|
||||
function format_partitions__make_boot_ro() {
|
||||
echo "🍰Making boot partition ro"
|
||||
sed -i 's:/boot ext4 defaults,commit=600,errors=remount-ro:/boot ext4 ro,defaults:' $SDCARD/etc/fstab
|
||||
}
|
||||
|
||||
function extension_finish_config__enable_plymouth() {
|
||||
echo "🍰Enable Plymouth on minimal build"
|
||||
PLYMOUTH=yes
|
||||
}
|
||||
|
||||
@ -0,0 +1,612 @@
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile
|
||||
index 7dcf90b32..8be674369 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/Makefile
|
||||
+++ b/arch/arm64/boot/dts/allwinner/Makefile
|
||||
@@ -20,6 +20,10 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.2.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab-early-adopter.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb
|
||||
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-recore.dtb
|
||||
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-recore-a5.dtb
|
||||
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-recore-a6.dtb
|
||||
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-recore-a7.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a100-allwinner-perf1.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-bananapi-m2-plus.dtb
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-recore-a5.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-recore-a5.dts
|
||||
new file mode 100644
|
||||
index 000000000..1920172d3
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-recore-a5.dts
|
||||
@@ -0,0 +1,65 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "sun50i-a64-recore.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "Recore-A5";
|
||||
+ compatible = "iagent,recore-a5", "allwinner,sun50i-a64";
|
||||
+
|
||||
+ e0-consumer {
|
||||
+ compatible = "custom,reg-userspace-consumer";
|
||||
+ regulator-name = "e0-consumer";
|
||||
+ controlled-supply = <®_aldo1>;
|
||||
+ };
|
||||
+
|
||||
+ e1-consumer {
|
||||
+ compatible = "custom,reg-userspace-consumer";
|
||||
+ regulator-name = "e1-consumer";
|
||||
+ controlled-supply = <®_aldo2>;
|
||||
+ };
|
||||
+
|
||||
+ e2-consumer {
|
||||
+ compatible = "custom,reg-userspace-consumer";
|
||||
+ regulator-name = "e2-consumer";
|
||||
+ controlled-supply = <®_dldo3>;
|
||||
+ };
|
||||
+
|
||||
+ e3-consumer {
|
||||
+ compatible = "custom,reg-userspace-consumer";
|
||||
+ regulator-name = "e3-consumer";
|
||||
+ controlled-supply = <®_dldo4>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+®_aldo1 {
|
||||
+ regulator-min-microvolt = <700000>;
|
||||
+ regulator-max-microvolt = <700000>;
|
||||
+ regulator-name = "vcc-vref-e0";
|
||||
+};
|
||||
+
|
||||
+®_aldo2 {
|
||||
+ regulator-min-microvolt = <3200000>;
|
||||
+ regulator-max-microvolt = <3200000>;
|
||||
+ regulator-name = "vcc-vref-e1";
|
||||
+};
|
||||
+
|
||||
+®_dldo3 {
|
||||
+ regulator-min-microvolt = <700000>;
|
||||
+ regulator-max-microvolt = <700000>;
|
||||
+ regulator-name = "vcc-vref-e2";
|
||||
+};
|
||||
+
|
||||
+®_dldo4 {
|
||||
+ regulator-min-microvolt = <700000>;
|
||||
+ regulator-max-microvolt = <700000>;
|
||||
+ regulator-name = "vcc-vref-e3";
|
||||
+};
|
||||
+
|
||||
+/* STM32 */
|
||||
+&uart4 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart4_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
\ No newline at end of file
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-recore-a6.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-recore-a6.dts
|
||||
new file mode 100644
|
||||
index 000000000..c5be6e937
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-recore-a6.dts
|
||||
@@ -0,0 +1,22 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "sun50i-a64-recore.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "Recore-A6";
|
||||
+ compatible = "iagent,recore-a6", "allwinner,sun50i-a64";
|
||||
+};
|
||||
+
|
||||
+®_aldo1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc-ext";
|
||||
+};
|
||||
+&uart4 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart4_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-recore-a7.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-recore-a7.dts
|
||||
new file mode 100644
|
||||
index 000000000..5cf1bcca7
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-recore-a7.dts
|
||||
@@ -0,0 +1,41 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "sun50i-a64-recore.dtsi"
|
||||
+#include <dt-bindings/usb/pd.h>
|
||||
+
|
||||
+/ {
|
||||
+ model = "Recore-A7";
|
||||
+ compatible = "iagent,recore-a7", "allwinner,sun50i-a64";
|
||||
+};
|
||||
+
|
||||
+®_usb1_vbus3 {
|
||||
+ gpio = <&pio 3 5 GPIO_ACTIVE_HIGH> ; /* PD5 */
|
||||
+};
|
||||
+
|
||||
+®_usb1_vbus4 {
|
||||
+ gpio = <&pio 3 6 GPIO_ACTIVE_HIGH> ; /* PD6 */
|
||||
+};
|
||||
+
|
||||
+®_aldo1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc-ext";
|
||||
+};
|
||||
+
|
||||
+/* Set over current to lowest value: 35 A = 700 mV */
|
||||
+®_dldo2 {
|
||||
+ regulator-min-microvolt = <700000>;
|
||||
+ regulator-max-microvolt = <700000>;
|
||||
+};
|
||||
+
|
||||
+&usbphy {
|
||||
+ usb0_id_det-gpios = <&pio 4 7 GPIO_ACTIVE_LOW>;
|
||||
+};
|
||||
+&uart2 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart2_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-recore.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-recore.dts
|
||||
new file mode 100644
|
||||
index 000000000..5cf1bcca7
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-recore.dts
|
||||
@@ -0,0 +1,31 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "sun50i-a64-recore.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "Recore-all";
|
||||
+ compatible = "iagent,recore-all", "allwinner,sun50i-a64";
|
||||
+
|
||||
+ reg_usb1_vbus5: usb1-vbus5 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "usb1-vbus5";
|
||||
+ gpio = <&pio 3 5 GPIO_ACTIVE_HIGH> ; /* PD5 */
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ enable-active-high;
|
||||
+ vin-supply = <®_5v>;
|
||||
+ };
|
||||
+ reg_usb1_vbus6: usb1-vbus6 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "usb1-vbus6";
|
||||
+ gpio = <&pio 3 6 GPIO_ACTIVE_HIGH> ; /* PD6 */
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ enable-active-high;
|
||||
+ vin-supply = <®_5v>;
|
||||
+ };
|
||||
+};
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-recore.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-recore.dtsi
|
||||
new file mode 100644
|
||||
index 000000000..89fcf8ccb
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-recore.dtsi
|
||||
@@ -0,0 +1,407 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "sun50i-a64.dtsi"
|
||||
+#include "sun50i-a64-cpu-opp.dtsi"
|
||||
+
|
||||
+#include <dt-bindings/gpio/gpio.h>
|
||||
+#include <dt-bindings/leds/common.h>
|
||||
+
|
||||
+/ {
|
||||
+ aliases {
|
||||
+ ethernet0 = &emac;
|
||||
+ serial0 = &uart0;
|
||||
+ };
|
||||
+
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
+ hdmi-connector {
|
||||
+ compatible = "hdmi-connector";
|
||||
+ type = "a";
|
||||
+
|
||||
+ port {
|
||||
+ hdmi_con_in: endpoint {
|
||||
+ remote-endpoint = <&hdmi_out_con>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+ leds {
|
||||
+ compatible = "gpio-leds";
|
||||
+
|
||||
+ heartbeat-led {
|
||||
+ label = "recore:white:heartbeat";
|
||||
+ gpios = <&pio 1 7 GPIO_ACTIVE_HIGH>;
|
||||
+ linux,default-trigger = "heartbeat";
|
||||
+ function = LED_FUNCTION_STATUS;
|
||||
+ color = <LED_COLOR_ID_WHITE>;
|
||||
+ };
|
||||
+
|
||||
+ emmc-led {
|
||||
+ label = "recore:white:emmc";
|
||||
+ gpios = <&pio 1 5 GPIO_ACTIVE_HIGH>;
|
||||
+ linux,default-trigger = "mmc0";
|
||||
+ };
|
||||
+
|
||||
+ cpu-led {
|
||||
+ label = "recore:white:cpu";
|
||||
+ gpios = <&pio 1 6 GPIO_ACTIVE_HIGH>;
|
||||
+ linux,default-trigger = "activity";
|
||||
+ };
|
||||
+
|
||||
+ usb-led {
|
||||
+ label = "recore:white:usb";
|
||||
+ function = LED_FUNCTION_USB;
|
||||
+ gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>;
|
||||
+ trigger-sources = <&ohci1>, <&ehci1>;
|
||||
+ linux,default-trigger = "usb-host";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ reg_5v: 5v-buck {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "5v-buck";
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ };
|
||||
+
|
||||
+ reg_usb1_vbus1: usb1-vbus1 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "usb1-vbus1";
|
||||
+ gpio = <&pio 7 0 GPIO_ACTIVE_HIGH> ; /* PH0 */
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ enable-active-high;
|
||||
+ };
|
||||
+
|
||||
+ reg_usb1_vbus2: usb1-vbus2 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "usb1-vbus2";
|
||||
+ gpio = <&pio 7 1 GPIO_ACTIVE_HIGH> ; /* PH1 */
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ enable-active-high;
|
||||
+ };
|
||||
+
|
||||
+ reg_usb1_vbus3: usb1-vbus3 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "usb1-vbus3";
|
||||
+ gpio = <&pio 7 2 GPIO_ACTIVE_HIGH> ; /* PH2 */
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ enable-active-high;
|
||||
+ vin-supply = <®_5v>;
|
||||
+ };
|
||||
+
|
||||
+ reg_usb1_vbus4: usb1-vbus4 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "usb1-vbus4";
|
||||
+ gpio = <&pio 7 3 GPIO_ACTIVE_HIGH> ; /* PH3 */
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ startup-delay-us = <100000>;
|
||||
+ regulator-always-on;
|
||||
+ enable-active-high;
|
||||
+ vin-supply = <®_5v>;
|
||||
+ };
|
||||
+
|
||||
+ reg_hdmi_vbus: hdmi-vbus {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "hdmi-vbus";
|
||||
+ gpio = <&pio 6 9 GPIO_ACTIVE_HIGH> ; /* PG9 */
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ enable-active-high;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&de {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&cpu0 {
|
||||
+ cpu-supply = <®_dcdc2>;
|
||||
+};
|
||||
+
|
||||
+&cpu1 {
|
||||
+ cpu-supply = <®_dcdc2>;
|
||||
+};
|
||||
+
|
||||
+&cpu2 {
|
||||
+ cpu-supply = <®_dcdc2>;
|
||||
+};
|
||||
+
|
||||
+&cpu3 {
|
||||
+ cpu-supply = <®_dcdc2>;
|
||||
+};
|
||||
+
|
||||
+&emac {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&rgmii_pins>;
|
||||
+ phy-mode = "rgmii-txid";
|
||||
+ phy-handle = <&ext_rgmii_phy>;
|
||||
+ phy-supply = <®_dcdc1>;
|
||||
+ phy-io-supply = <®_dcdc1>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&hdmi {
|
||||
+ hvcc-supply = <®_dldo1>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&hdmi_out {
|
||||
+ hdmi_out_con: endpoint {
|
||||
+ remote-endpoint = <&hdmi_con_in>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&mdio {
|
||||
+ ext_rgmii_phy: ethernet-phy@1 {
|
||||
+ compatible = "ethernet-phy-ieee802.3-c22";
|
||||
+ reg = <7>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&mixer0 {
|
||||
+ status = "disabled";
|
||||
+};
|
||||
+
|
||||
+&tcon0 {
|
||||
+ status = "disabled";
|
||||
+};
|
||||
+
|
||||
+&mmc2 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&mmc2_pins>/*, <&mmc2_ds_pin>*/;
|
||||
+ vmmc-supply = <®_dcdc1>;
|
||||
+ vqmmc-supply = <®_eldo1>;
|
||||
+ non-removable;
|
||||
+ bus-width = <8>;
|
||||
+ cap-mmc-hw-reset;
|
||||
+ mmc-hs200-1_8v;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ohci0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ohci1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ehci0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ehci1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pio {
|
||||
+ vcc-pb-supply = <®_dcdc1>;
|
||||
+ vcc-pc-supply = <®_eldo1>;
|
||||
+ vcc-pd-supply = <®_dcdc1>;
|
||||
+ vcc-pe-supply = <®_dcdc1>;
|
||||
+ vcc-pf-supply = <®_dcdc1>;
|
||||
+ vcc-pg-supply = <®_dcdc1>;
|
||||
+ vcc-ph-supply = <®_dcdc1>;
|
||||
+ vcc-pl-supply = <®_dcdc1>;
|
||||
+};
|
||||
+
|
||||
+&r_rsb {
|
||||
+ status = "okay";
|
||||
+ axp803: pmic@3a3 {
|
||||
+ compatible = "x-powers,axp803";
|
||||
+ reg = <0x3a3>;
|
||||
+ interrupt-parent = <&r_intc>;
|
||||
+ interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+#include "axp803.dtsi"
|
||||
+
|
||||
+&ac_power_supply {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&battery_power_supply {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+®_dc1sw {
|
||||
+ regulator-always-on;
|
||||
+ regulator-name = "vcc-phy";
|
||||
+ regulator-enable-ramp-delay = <100000>;
|
||||
+};
|
||||
+
|
||||
+®_dcdc1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc-3v3";
|
||||
+};
|
||||
+
|
||||
+®_dcdc2 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1040000>;
|
||||
+ regulator-max-microvolt = <1300000>;
|
||||
+ regulator-name = "vdd-cpux";
|
||||
+};
|
||||
+
|
||||
+®_dcdc5 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1360000>;
|
||||
+ regulator-max-microvolt = <1360000>;
|
||||
+ regulator-name = "vcc-dram";
|
||||
+};
|
||||
+
|
||||
+®_dcdc6 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1100000>;
|
||||
+ regulator-max-microvolt = <1100000>;
|
||||
+ regulator-name = "vdd-sys";
|
||||
+};
|
||||
+
|
||||
+®_aldo3 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3000000>;
|
||||
+ regulator-max-microvolt = <3000000>;
|
||||
+ regulator-name = "vcc-pll-avcc";
|
||||
+};
|
||||
+
|
||||
+®_dldo1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc-hdmi";
|
||||
+};
|
||||
+
|
||||
+/* Set over current to lowest value: 35 A = 700 mV, 50 A = 1000 mV */
|
||||
+®_dldo2 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1000000>;
|
||||
+ regulator-max-microvolt = <1000000>;
|
||||
+ regulator-name = "current-control";
|
||||
+};
|
||||
+
|
||||
+®_eldo1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-name = "emmc-io";
|
||||
+};
|
||||
+
|
||||
+®_fldo1 {
|
||||
+ regulator-name = "vdd-hsic";
|
||||
+ status = "disabled";
|
||||
+};
|
||||
+
|
||||
+®_fldo2 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1100000>;
|
||||
+ regulator-max-microvolt = <1100000>;
|
||||
+ regulator-name = "vdd-cpus";
|
||||
+};
|
||||
+
|
||||
+&gpio0_ldo {
|
||||
+ function = "ldo";
|
||||
+};
|
||||
+
|
||||
+&gpio1_ldo {
|
||||
+ function = "ldo";
|
||||
+};
|
||||
+
|
||||
+®_ldo_io0 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc-ref";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+®_ldo_io1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc-iref";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+®_rtc_ldo {
|
||||
+ regulator-name = "vcc-rtc";
|
||||
+};
|
||||
+
|
||||
+&simplefb_hdmi {
|
||||
+ vcc-hdmi-supply = <®_hdmi_vbus>;
|
||||
+};
|
||||
+
|
||||
+/* Debug port */
|
||||
+&uart0 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart0_pb_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+/* AR100 null-modem */
|
||||
+&uart1 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart1_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_otg {
|
||||
+ dr_mode = "peripheral";
|
||||
+ vcc-supply = <®_dcdc1>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_power_supply {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usbphy {
|
||||
+ usb0_vbus_power-supply = <&usb_power_supply>;
|
||||
+ vcc-supply = <®_dcdc1>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+&cpu0 {
|
||||
+ /delete-property/ cpu-idle-states;
|
||||
+};
|
||||
+
|
||||
+&cpu1 {
|
||||
+ /delete-property/ cpu-idle-states;
|
||||
+};
|
||||
+
|
||||
+&cpu2 {
|
||||
+ /delete-property/ cpu-idle-states;
|
||||
+};
|
||||
+
|
||||
+&cpu3 {
|
||||
+ /delete-property/ cpu-idle-states;
|
||||
+};
|
||||
+
|
||||
+/ {
|
||||
+ cpus {
|
||||
+ /delete-node/ idle-states;
|
||||
+ };
|
||||
+ /delete-node/ scpi;
|
||||
+};
|
||||
+
|
||||
+&mbus{
|
||||
+ status="disabled";
|
||||
+};
|
||||
+
|
||||
+&mali {
|
||||
+ assigned-clock-rates = <297000000>;
|
||||
+};
|
||||
@ -0,0 +1,612 @@
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile
|
||||
index 7dcf90b32..8be674369 100644
|
||||
--- a/arch/arm64/boot/dts/allwinner/Makefile
|
||||
+++ b/arch/arm64/boot/dts/allwinner/Makefile
|
||||
@@ -20,6 +20,10 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinephone-1.2.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-pinetab-early-adopter.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-sopine-baseboard.dtb
|
||||
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-recore.dtb
|
||||
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-recore-a5.dtb
|
||||
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-recore-a6.dtb
|
||||
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-recore-a7.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a64-teres-i.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-a100-allwinner-perf1.dtb
|
||||
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h5-bananapi-m2-plus.dtb
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-recore-a5.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-recore-a5.dts
|
||||
new file mode 100644
|
||||
index 000000000..1920172d3
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-recore-a5.dts
|
||||
@@ -0,0 +1,65 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "sun50i-a64-recore.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "Recore-A5";
|
||||
+ compatible = "iagent,recore-a5", "allwinner,sun50i-a64";
|
||||
+
|
||||
+ e0-consumer {
|
||||
+ compatible = "custom,reg-userspace-consumer";
|
||||
+ regulator-name = "e0-consumer";
|
||||
+ controlled-supply = <®_aldo1>;
|
||||
+ };
|
||||
+
|
||||
+ e1-consumer {
|
||||
+ compatible = "custom,reg-userspace-consumer";
|
||||
+ regulator-name = "e1-consumer";
|
||||
+ controlled-supply = <®_aldo2>;
|
||||
+ };
|
||||
+
|
||||
+ e2-consumer {
|
||||
+ compatible = "custom,reg-userspace-consumer";
|
||||
+ regulator-name = "e2-consumer";
|
||||
+ controlled-supply = <®_dldo3>;
|
||||
+ };
|
||||
+
|
||||
+ e3-consumer {
|
||||
+ compatible = "custom,reg-userspace-consumer";
|
||||
+ regulator-name = "e3-consumer";
|
||||
+ controlled-supply = <®_dldo4>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+®_aldo1 {
|
||||
+ regulator-min-microvolt = <700000>;
|
||||
+ regulator-max-microvolt = <700000>;
|
||||
+ regulator-name = "vcc-vref-e0";
|
||||
+};
|
||||
+
|
||||
+®_aldo2 {
|
||||
+ regulator-min-microvolt = <3200000>;
|
||||
+ regulator-max-microvolt = <3200000>;
|
||||
+ regulator-name = "vcc-vref-e1";
|
||||
+};
|
||||
+
|
||||
+®_dldo3 {
|
||||
+ regulator-min-microvolt = <700000>;
|
||||
+ regulator-max-microvolt = <700000>;
|
||||
+ regulator-name = "vcc-vref-e2";
|
||||
+};
|
||||
+
|
||||
+®_dldo4 {
|
||||
+ regulator-min-microvolt = <700000>;
|
||||
+ regulator-max-microvolt = <700000>;
|
||||
+ regulator-name = "vcc-vref-e3";
|
||||
+};
|
||||
+
|
||||
+/* STM32 */
|
||||
+&uart4 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart4_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
\ No newline at end of file
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-recore-a6.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-recore-a6.dts
|
||||
new file mode 100644
|
||||
index 000000000..c5be6e937
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-recore-a6.dts
|
||||
@@ -0,0 +1,22 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "sun50i-a64-recore.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "Recore-A6";
|
||||
+ compatible = "iagent,recore-a6", "allwinner,sun50i-a64";
|
||||
+};
|
||||
+
|
||||
+®_aldo1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc-ext";
|
||||
+};
|
||||
+&uart4 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart4_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-recore-a7.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-recore-a7.dts
|
||||
new file mode 100644
|
||||
index 000000000..5cf1bcca7
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-recore-a7.dts
|
||||
@@ -0,0 +1,41 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "sun50i-a64-recore.dtsi"
|
||||
+#include <dt-bindings/usb/pd.h>
|
||||
+
|
||||
+/ {
|
||||
+ model = "Recore-A7";
|
||||
+ compatible = "iagent,recore-a7", "allwinner,sun50i-a64";
|
||||
+};
|
||||
+
|
||||
+®_usb1_vbus3 {
|
||||
+ gpio = <&pio 3 5 GPIO_ACTIVE_HIGH> ; /* PD5 */
|
||||
+};
|
||||
+
|
||||
+®_usb1_vbus4 {
|
||||
+ gpio = <&pio 3 6 GPIO_ACTIVE_HIGH> ; /* PD6 */
|
||||
+};
|
||||
+
|
||||
+®_aldo1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc-ext";
|
||||
+};
|
||||
+
|
||||
+/* Set over current to lowest value: 35 A = 700 mV */
|
||||
+®_dldo2 {
|
||||
+ regulator-min-microvolt = <700000>;
|
||||
+ regulator-max-microvolt = <700000>;
|
||||
+};
|
||||
+
|
||||
+&usbphy {
|
||||
+ usb0_id_det-gpios = <&pio 4 7 GPIO_ACTIVE_LOW>;
|
||||
+};
|
||||
+&uart2 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart2_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-recore.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-recore.dts
|
||||
new file mode 100644
|
||||
index 000000000..5cf1bcca7
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-recore.dts
|
||||
@@ -0,0 +1,31 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "sun50i-a64-recore.dtsi"
|
||||
+
|
||||
+/ {
|
||||
+ model = "Recore-all";
|
||||
+ compatible = "iagent,recore-all", "allwinner,sun50i-a64";
|
||||
+
|
||||
+ reg_usb1_vbus5: usb1-vbus5 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "usb1-vbus5";
|
||||
+ gpio = <&pio 3 5 GPIO_ACTIVE_HIGH> ; /* PD5 */
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ enable-active-high;
|
||||
+ vin-supply = <®_5v>;
|
||||
+ };
|
||||
+ reg_usb1_vbus6: usb1-vbus6 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "usb1-vbus6";
|
||||
+ gpio = <&pio 3 6 GPIO_ACTIVE_HIGH> ; /* PD6 */
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ enable-active-high;
|
||||
+ vin-supply = <®_5v>;
|
||||
+ };
|
||||
+};
|
||||
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-recore.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-recore.dtsi
|
||||
new file mode 100644
|
||||
index 000000000..89fcf8ccb
|
||||
--- /dev/null
|
||||
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-recore.dtsi
|
||||
@@ -0,0 +1,407 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "sun50i-a64.dtsi"
|
||||
+#include "sun50i-a64-cpu-opp.dtsi"
|
||||
+
|
||||
+#include <dt-bindings/gpio/gpio.h>
|
||||
+#include <dt-bindings/leds/common.h>
|
||||
+
|
||||
+/ {
|
||||
+ aliases {
|
||||
+ ethernet0 = &emac;
|
||||
+ serial0 = &uart0;
|
||||
+ };
|
||||
+
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
+ hdmi-connector {
|
||||
+ compatible = "hdmi-connector";
|
||||
+ type = "a";
|
||||
+
|
||||
+ port {
|
||||
+ hdmi_con_in: endpoint {
|
||||
+ remote-endpoint = <&hdmi_out_con>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+ leds {
|
||||
+ compatible = "gpio-leds";
|
||||
+
|
||||
+ heartbeat-led {
|
||||
+ label = "recore:white:heartbeat";
|
||||
+ gpios = <&pio 1 7 GPIO_ACTIVE_HIGH>;
|
||||
+ linux,default-trigger = "heartbeat";
|
||||
+ function = LED_FUNCTION_STATUS;
|
||||
+ color = <LED_COLOR_ID_WHITE>;
|
||||
+ };
|
||||
+
|
||||
+ emmc-led {
|
||||
+ label = "recore:white:emmc";
|
||||
+ gpios = <&pio 1 5 GPIO_ACTIVE_HIGH>;
|
||||
+ linux,default-trigger = "mmc0";
|
||||
+ };
|
||||
+
|
||||
+ cpu-led {
|
||||
+ label = "recore:white:cpu";
|
||||
+ gpios = <&pio 1 6 GPIO_ACTIVE_HIGH>;
|
||||
+ linux,default-trigger = "activity";
|
||||
+ };
|
||||
+
|
||||
+ usb-led {
|
||||
+ label = "recore:white:usb";
|
||||
+ function = LED_FUNCTION_USB;
|
||||
+ gpios = <&pio 1 4 GPIO_ACTIVE_HIGH>;
|
||||
+ trigger-sources = <&ohci1>, <&ehci1>;
|
||||
+ linux,default-trigger = "usb-host";
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ reg_5v: 5v-buck {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "5v-buck";
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ };
|
||||
+
|
||||
+ reg_usb1_vbus1: usb1-vbus1 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "usb1-vbus1";
|
||||
+ gpio = <&pio 7 0 GPIO_ACTIVE_HIGH> ; /* PH0 */
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ enable-active-high;
|
||||
+ };
|
||||
+
|
||||
+ reg_usb1_vbus2: usb1-vbus2 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "usb1-vbus2";
|
||||
+ gpio = <&pio 7 1 GPIO_ACTIVE_HIGH> ; /* PH1 */
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ enable-active-high;
|
||||
+ };
|
||||
+
|
||||
+ reg_usb1_vbus3: usb1-vbus3 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "usb1-vbus3";
|
||||
+ gpio = <&pio 7 2 GPIO_ACTIVE_HIGH> ; /* PH2 */
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ enable-active-high;
|
||||
+ vin-supply = <®_5v>;
|
||||
+ };
|
||||
+
|
||||
+ reg_usb1_vbus4: usb1-vbus4 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "usb1-vbus4";
|
||||
+ gpio = <&pio 7 3 GPIO_ACTIVE_HIGH> ; /* PH3 */
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ startup-delay-us = <100000>;
|
||||
+ regulator-always-on;
|
||||
+ enable-active-high;
|
||||
+ vin-supply = <®_5v>;
|
||||
+ };
|
||||
+
|
||||
+ reg_hdmi_vbus: hdmi-vbus {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "hdmi-vbus";
|
||||
+ gpio = <&pio 6 9 GPIO_ACTIVE_HIGH> ; /* PG9 */
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ enable-active-high;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&de {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&cpu0 {
|
||||
+ cpu-supply = <®_dcdc2>;
|
||||
+};
|
||||
+
|
||||
+&cpu1 {
|
||||
+ cpu-supply = <®_dcdc2>;
|
||||
+};
|
||||
+
|
||||
+&cpu2 {
|
||||
+ cpu-supply = <®_dcdc2>;
|
||||
+};
|
||||
+
|
||||
+&cpu3 {
|
||||
+ cpu-supply = <®_dcdc2>;
|
||||
+};
|
||||
+
|
||||
+&emac {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&rgmii_pins>;
|
||||
+ phy-mode = "rgmii-txid";
|
||||
+ phy-handle = <&ext_rgmii_phy>;
|
||||
+ phy-supply = <®_dcdc1>;
|
||||
+ phy-io-supply = <®_dcdc1>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&hdmi {
|
||||
+ hvcc-supply = <®_dldo1>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&hdmi_out {
|
||||
+ hdmi_out_con: endpoint {
|
||||
+ remote-endpoint = <&hdmi_con_in>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&mdio {
|
||||
+ ext_rgmii_phy: ethernet-phy@1 {
|
||||
+ compatible = "ethernet-phy-ieee802.3-c22";
|
||||
+ reg = <7>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&mixer0 {
|
||||
+ status = "disabled";
|
||||
+};
|
||||
+
|
||||
+&tcon0 {
|
||||
+ status = "disabled";
|
||||
+};
|
||||
+
|
||||
+&mmc2 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&mmc2_pins>/*, <&mmc2_ds_pin>*/;
|
||||
+ vmmc-supply = <®_dcdc1>;
|
||||
+ vqmmc-supply = <®_eldo1>;
|
||||
+ non-removable;
|
||||
+ bus-width = <8>;
|
||||
+ cap-mmc-hw-reset;
|
||||
+ mmc-hs200-1_8v;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ohci0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ohci1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ehci0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ehci1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&pio {
|
||||
+ vcc-pb-supply = <®_dcdc1>;
|
||||
+ vcc-pc-supply = <®_eldo1>;
|
||||
+ vcc-pd-supply = <®_dcdc1>;
|
||||
+ vcc-pe-supply = <®_dcdc1>;
|
||||
+ vcc-pf-supply = <®_dcdc1>;
|
||||
+ vcc-pg-supply = <®_dcdc1>;
|
||||
+ vcc-ph-supply = <®_dcdc1>;
|
||||
+ vcc-pl-supply = <®_dcdc1>;
|
||||
+};
|
||||
+
|
||||
+&r_rsb {
|
||||
+ status = "okay";
|
||||
+ axp803: pmic@3a3 {
|
||||
+ compatible = "x-powers,axp803";
|
||||
+ reg = <0x3a3>;
|
||||
+ interrupt-parent = <&r_intc>;
|
||||
+ interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+#include "axp803.dtsi"
|
||||
+
|
||||
+&ac_power_supply {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&battery_power_supply {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+®_dc1sw {
|
||||
+ regulator-always-on;
|
||||
+ regulator-name = "vcc-phy";
|
||||
+ regulator-enable-ramp-delay = <100000>;
|
||||
+};
|
||||
+
|
||||
+®_dcdc1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc-3v3";
|
||||
+};
|
||||
+
|
||||
+®_dcdc2 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1040000>;
|
||||
+ regulator-max-microvolt = <1300000>;
|
||||
+ regulator-name = "vdd-cpux";
|
||||
+};
|
||||
+
|
||||
+®_dcdc5 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1360000>;
|
||||
+ regulator-max-microvolt = <1360000>;
|
||||
+ regulator-name = "vcc-dram";
|
||||
+};
|
||||
+
|
||||
+®_dcdc6 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1100000>;
|
||||
+ regulator-max-microvolt = <1100000>;
|
||||
+ regulator-name = "vdd-sys";
|
||||
+};
|
||||
+
|
||||
+®_aldo3 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3000000>;
|
||||
+ regulator-max-microvolt = <3000000>;
|
||||
+ regulator-name = "vcc-pll-avcc";
|
||||
+};
|
||||
+
|
||||
+®_dldo1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc-hdmi";
|
||||
+};
|
||||
+
|
||||
+/* Set over current to lowest value: 35 A = 700 mV, 50 A = 1000 mV */
|
||||
+®_dldo2 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1000000>;
|
||||
+ regulator-max-microvolt = <1000000>;
|
||||
+ regulator-name = "current-control";
|
||||
+};
|
||||
+
|
||||
+®_eldo1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-name = "emmc-io";
|
||||
+};
|
||||
+
|
||||
+®_fldo1 {
|
||||
+ regulator-name = "vdd-hsic";
|
||||
+ status = "disabled";
|
||||
+};
|
||||
+
|
||||
+®_fldo2 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1100000>;
|
||||
+ regulator-max-microvolt = <1100000>;
|
||||
+ regulator-name = "vdd-cpus";
|
||||
+};
|
||||
+
|
||||
+&gpio0_ldo {
|
||||
+ function = "ldo";
|
||||
+};
|
||||
+
|
||||
+&gpio1_ldo {
|
||||
+ function = "ldo";
|
||||
+};
|
||||
+
|
||||
+®_ldo_io0 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc-ref";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+®_ldo_io1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc-iref";
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+®_rtc_ldo {
|
||||
+ regulator-name = "vcc-rtc";
|
||||
+};
|
||||
+
|
||||
+&simplefb_hdmi {
|
||||
+ vcc-hdmi-supply = <®_hdmi_vbus>;
|
||||
+};
|
||||
+
|
||||
+/* Debug port */
|
||||
+&uart0 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart0_pb_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+/* AR100 null-modem */
|
||||
+&uart1 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart1_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_otg {
|
||||
+ dr_mode = "peripheral";
|
||||
+ vcc-supply = <®_dcdc1>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_power_supply {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usbphy {
|
||||
+ usb0_vbus_power-supply = <&usb_power_supply>;
|
||||
+ vcc-supply = <®_dcdc1>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+&cpu0 {
|
||||
+ /delete-property/ cpu-idle-states;
|
||||
+};
|
||||
+
|
||||
+&cpu1 {
|
||||
+ /delete-property/ cpu-idle-states;
|
||||
+};
|
||||
+
|
||||
+&cpu2 {
|
||||
+ /delete-property/ cpu-idle-states;
|
||||
+};
|
||||
+
|
||||
+&cpu3 {
|
||||
+ /delete-property/ cpu-idle-states;
|
||||
+};
|
||||
+
|
||||
+/ {
|
||||
+ cpus {
|
||||
+ /delete-node/ idle-states;
|
||||
+ };
|
||||
+ /delete-node/ scpi;
|
||||
+};
|
||||
+
|
||||
+&mbus{
|
||||
+ status="disabled";
|
||||
+};
|
||||
+
|
||||
+&mali {
|
||||
+ assigned-clock-rates = <297000000>;
|
||||
+};
|
||||
342
patch/u-boot/u-boot-sunxi/allwinner-add-support-for-Recore.patch
Normal file
342
patch/u-boot/u-boot-sunxi/allwinner-add-support-for-Recore.patch
Normal file
@ -0,0 +1,342 @@
|
||||
From a275e2cb3bfddc445f7f9c83d92e48830b57faf6 Mon Sep 17 00:00:00 2001
|
||||
From: Elias Bakken <elias@iagent.no>
|
||||
Date: Tue, 7 Feb 2023 21:56:20 +0100
|
||||
Subject: [PATCH] Add support for Recore
|
||||
|
||||
---
|
||||
arch/arm/dts/Makefile | 1 +
|
||||
arch/arm/dts/sun50i-a64-recore.dts | 257 +++++++++++++++++++++++++++++
|
||||
configs/recore_defconfig | 22 +++
|
||||
3 files changed, 280 insertions(+)
|
||||
create mode 100644 arch/arm/dts/sun50i-a64-recore.dts
|
||||
create mode 100644 configs/recore_defconfig
|
||||
|
||||
diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
|
||||
index a7e0d9f6c0..2b981c0c8b 100644
|
||||
--- a/arch/arm/dts/Makefile
|
||||
+++ b/arch/arm/dts/Makefile
|
||||
@@ -718,6 +718,7 @@ dtb-$(CONFIG_MACH_SUN50I) += \
|
||||
sun50i-a64-pinephone-1.1.dtb \
|
||||
sun50i-a64-pinephone-1.2.dtb \
|
||||
sun50i-a64-pinetab.dtb \
|
||||
+ sun50i-a64-recore.dtb \
|
||||
sun50i-a64-sopine-baseboard.dtb \
|
||||
sun50i-a64-teres-i.dtb
|
||||
dtb-$(CONFIG_MACH_SUN9I) += \
|
||||
diff --git a/arch/arm/dts/sun50i-a64-recore.dts b/arch/arm/dts/sun50i-a64-recore.dts
|
||||
new file mode 100644
|
||||
index 0000000000..2d29fe1556
|
||||
--- /dev/null
|
||||
+++ b/arch/arm/dts/sun50i-a64-recore.dts
|
||||
@@ -0,0 +1,271 @@
|
||||
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
+// Copyright (c) 2016 ARM Ltd.
|
||||
+
|
||||
+/dts-v1/;
|
||||
+
|
||||
+#include "sun50i-a64.dtsi"
|
||||
+#include "sun50i-a64-cpu-opp.dtsi"
|
||||
+
|
||||
+#include <dt-bindings/gpio/gpio.h>
|
||||
+
|
||||
+/ {
|
||||
+ model = "Recore-u-boot";
|
||||
+ compatible = "recore", "allwinner,sun50i-a64";
|
||||
+
|
||||
+ aliases {
|
||||
+ ethernet0 = &emac;
|
||||
+ serial0 = &uart0;
|
||||
+ serial1 = &uart1;
|
||||
+ serial2 = &uart2;
|
||||
+ serial3 = &uart3;
|
||||
+ serial4 = &uart4;
|
||||
+ };
|
||||
+
|
||||
+ chosen {
|
||||
+ stdout-path = "serial0:115200n8";
|
||||
+ };
|
||||
+
|
||||
+ hdmi-connector {
|
||||
+ compatible = "hdmi-connector";
|
||||
+ type = "a";
|
||||
+
|
||||
+ port {
|
||||
+ hdmi_con_in: endpoint {
|
||||
+ remote-endpoint = <&hdmi_out_con>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+
|
||||
+ reg_usb1_vbus1: usb1-vbus1 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "usb1-vbus1";
|
||||
+ gpio = <&pio 7 0 GPIO_ACTIVE_HIGH>; /* PH0 */
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ enable-active-high;
|
||||
+ };
|
||||
+
|
||||
+ reg_usb1_vbus2: usb1-vbus2 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "usb1-vbus2";
|
||||
+ gpio = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ enable-active-high;
|
||||
+ };
|
||||
+
|
||||
+ reg_usb1_vbus3: usb1-vbus3 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "usb1-vbus3";
|
||||
+ gpio = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ enable-active-high;
|
||||
+ };
|
||||
+
|
||||
+ reg_usb1_vbus4: usb1-vbus4 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "usb1-vbus4";
|
||||
+ gpio = <&pio 7 3 GPIO_ACTIVE_HIGH>; /* PH3 */
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ enable-active-high;
|
||||
+ };
|
||||
+
|
||||
+ reg_usb1_vbus5: usb1-vbus5 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "usb1-vbus5";
|
||||
+ gpio = <&pio 3 5 GPIO_ACTIVE_HIGH>; /* PD5 */
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ enable-active-high;
|
||||
+ };
|
||||
+
|
||||
+ reg_usb1_vbus6: usb1-vbus6 {
|
||||
+ compatible = "regulator-fixed";
|
||||
+ regulator-name = "usb1-vbus6";
|
||||
+ gpio = <&pio 3 6 GPIO_ACTIVE_HIGH> ; /* PD6 */
|
||||
+ regulator-min-microvolt = <5000000>;
|
||||
+ regulator-max-microvolt = <5000000>;
|
||||
+ regulator-always-on;
|
||||
+ regulator-boot-on;
|
||||
+ enable-active-high;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&de {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&hdmi {
|
||||
+ hvcc-supply = <®_dldo1>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&hdmi_out {
|
||||
+ hdmi_out_con: endpoint {
|
||||
+ remote-endpoint = <&hdmi_con_in>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&emac {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&rgmii_pins>;
|
||||
+ phy-mode = "rgmii";
|
||||
+ phy-handle = <&ext_rgmii_phy>;
|
||||
+ phy-supply = <®_dc1sw>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&mdio {
|
||||
+ ext_rgmii_phy: ethernet-phy@1 {
|
||||
+ compatible = "ethernet-phy-ieee802.3-c22";
|
||||
+ reg = <7>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+&mmc2 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>;
|
||||
+ vmmc-supply = <®_dcdc1>;
|
||||
+ vqmmc-supply = <®_eldo1>;
|
||||
+ non-removable;
|
||||
+ cap-mmc-hw-reset;
|
||||
+ bus-width = <8>;
|
||||
+ status = "okay";
|
||||
+ mmc-hs200-1_8v;
|
||||
+ max-frequency = <100000000>;
|
||||
+};
|
||||
+
|
||||
+&ohci0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ohci1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ehci0 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&ehci1 {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&r_rsb {
|
||||
+ status = "okay";
|
||||
+
|
||||
+ axp803: pmic@3a3 {
|
||||
+ compatible = "x-powers,axp803";
|
||||
+ reg = <0x3a3>;
|
||||
+ interrupt-parent = <&r_intc>;
|
||||
+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
+#include "axp803.dtsi"
|
||||
+
|
||||
+®_aldo3 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3000000>;
|
||||
+ regulator-max-microvolt = <3000000>;
|
||||
+ regulator-name = "vcc-pll-avcc";
|
||||
+};
|
||||
+
|
||||
+®_dc1sw {
|
||||
+ regulator-always-on;
|
||||
+ regulator-name = "vcc-phy";
|
||||
+};
|
||||
+
|
||||
+®_dcdc1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc-3v3";
|
||||
+};
|
||||
+
|
||||
+®_dcdc2 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1040000>;
|
||||
+ regulator-max-microvolt = <1300000>;
|
||||
+ regulator-name = "vdd-cpux";
|
||||
+};
|
||||
+
|
||||
+®_dcdc5 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1360000>;
|
||||
+ regulator-max-microvolt = <1360000>;
|
||||
+ regulator-name = "vcc-dram";
|
||||
+};
|
||||
+
|
||||
+®_dcdc6 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1100000>;
|
||||
+ regulator-max-microvolt = <1100000>;
|
||||
+ regulator-name = "vdd-sys";
|
||||
+};
|
||||
+
|
||||
+®_dldo1 {
|
||||
+ regulator-min-microvolt = <3300000>;
|
||||
+ regulator-max-microvolt = <3300000>;
|
||||
+ regulator-name = "vcc-hdmi";
|
||||
+};
|
||||
+
|
||||
+®_eldo1 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1800000>;
|
||||
+ regulator-max-microvolt = <1800000>;
|
||||
+ regulator-name = "cpvdd";
|
||||
+};
|
||||
+
|
||||
+®_fldo2 {
|
||||
+ regulator-always-on;
|
||||
+ regulator-min-microvolt = <1100000>;
|
||||
+ regulator-max-microvolt = <1100000>;
|
||||
+ regulator-name = "vdd-cpus";
|
||||
+};
|
||||
+
|
||||
+®_rtc_ldo {
|
||||
+ regulator-name = "vcc-rtc";
|
||||
+};
|
||||
+
|
||||
+&simplefb_hdmi {
|
||||
+ vcc-hdmi-supply = <®_dldo1>;
|
||||
+};
|
||||
+
|
||||
+&spdif {
|
||||
+ status = "disabled";
|
||||
+};
|
||||
+
|
||||
+&uart0 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&uart0_pb_pins>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_otg {
|
||||
+ dr_mode = "peripheral";
|
||||
+ vcc-supply = <®_dcdc1>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usb_power_supply {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
+&usbphy {
|
||||
+ usb0_vbus_power-supply = <&usb_power_supply>;
|
||||
+ vcc-supply = <®_dcdc1>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
diff --git a/configs/recore_defconfig b/configs/recore_defconfig
|
||||
new file mode 100644
|
||||
index 0000000000..6ed99805ab
|
||||
--- /dev/null
|
||||
+++ b/configs/recore_defconfig
|
||||
@@ -0,0 +1,32 @@
|
||||
+CONFIG_ARM=y
|
||||
+CONFIG_ARCH_SUNXI=y
|
||||
+CONFIG_SPL=y
|
||||
+CONFIG_MACH_SUN50I=y
|
||||
+CONFIG_MMC=y
|
||||
+CONFIG_MMC_SUNXI_SLOT_EXTRA=2
|
||||
+CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
|
||||
+CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-recore"
|
||||
+CONFIG_OF_LIST="sun50i-a64-recore"
|
||||
+CONFIG_DM_VIDEO=y
|
||||
+CONFIG_PHY_REALTEK=y
|
||||
+CONFIG_SUN8I_EMAC=y
|
||||
+CONFIG_USB_EHCI_HCD=y
|
||||
+CONFIG_USB_OHCI_HCD=y
|
||||
+CONFIG_ENV_IS_NOWHERE=y
|
||||
+#CONFIG_ENV_IS_IN_MMC=y
|
||||
+CONFIG_SPL_STACK=0x54000
|
||||
+CONFIG_SYS_PBSIZE=1024
|
||||
+CONFIG_SYS_BOOTM_LEN=0x2000000
|
||||
+CONFIG_SUPPORT_EMMC_BOOT=y
|
||||
+CONFIG_LED=y
|
||||
+CONFIG_LED_GPIO=y
|
||||
+CONFIG_SPLASH_SCREEN_ALIGN=y
|
||||
+CONFIG_VIDEO_LOGO=y
|
||||
+CONFIG_SPLASH_SCREEN=y
|
||||
+CONFIG_BMP_16BPP=y
|
||||
+CONFIG_BMP_24BPP=y
|
||||
+CONFIG_BMP_32BPP=y
|
||||
+CONFIG_VIDEO_BMP_RLE8=y
|
||||
+CONFIG_DM_REGULATOR=y
|
||||
+CONFIG_DM_REGULATOR_FIXED=y
|
||||
+CONFIG_CMD_REGULATOR=y
|
||||
--
|
||||
2.30.2
|
||||
Loading…
Reference in New Issue
Block a user