Created
January 25, 2025 13:48
-
-
Save apritzel/8f6bb2f900a38a406e1aa2b312806c23 to your computer and use it in GitHub Desktop.
Liontron H-A133L U-Boot board support, on top of posted A133 patches
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
commit 3a4c07b5f6db324a27b16e40d4185479752401b5 | |
Author: Andre Przywara <[email protected]> | |
Date: Wed Jan 8 00:36:38 2025 +0000 | |
add first Liontron-A133 board support | |
diff --git a/configs/liontron-h-a133l_defconfig b/configs/liontron-h-a133l_defconfig | |
new file mode 100644 | |
index 00000000000..bb8a1cdfb57 | |
--- /dev/null | |
+++ b/configs/liontron-h-a133l_defconfig | |
@@ -0,0 +1,44 @@ | |
+CONFIG_ARM=y | |
+CONFIG_ARCH_SUNXI=y | |
+CONFIG_DEFAULT_DEVICE_TREE="allwinner/sun50i-a133-liontron-h-a133l" | |
+CONFIG_SPL=y | |
+CONFIG_DRAM_SUNXI_DX_ODT=0x7070707 | |
+CONFIG_DRAM_SUNXI_DX_DRI=0xd0d0d0d | |
+CONFIG_DRAM_SUNXI_CA_DRI=0xe0e | |
+CONFIG_DRAM_SUNXI_PARA0=0xd0a050c | |
+CONFIG_DRAM_SUNXI_PARA1=0x310a | |
+CONFIG_DRAM_SUNXI_PARA2=0x8000000 | |
+CONFIG_DRAM_SUNXI_MR0=0 | |
+CONFIG_DRAM_SUNXI_MR1=0x34 | |
+CONFIG_DRAM_SUNXI_MR2=0x1b | |
+CONFIG_DRAM_SUNXI_MR3=0x33 | |
+CONFIG_DRAM_SUNXI_MR4=0x3 | |
+CONFIG_DRAM_SUNXI_MR11=0x4 | |
+CONFIG_DRAM_SUNXI_MR12=0x72 | |
+CONFIG_DRAM_SUNXI_MR13=0x0 | |
+CONFIG_DRAM_SUNXI_MR14=0x7 | |
+CONFIG_DRAM_SUNXI_TPR1=0x26 | |
+CONFIG_DRAM_SUNXI_TPR2=0x6060606 | |
+CONFIG_DRAM_SUNXI_TPR3=0x84040404 | |
+CONFIG_DRAM_SUNXI_TPR6=0x48000000 | |
+CONFIG_DRAM_SUNXI_TPR10=0x273333 | |
+CONFIG_DRAM_SUNXI_TPR11=0x231d151c | |
+CONFIG_DRAM_SUNXI_TPR12=0x1212110e | |
+CONFIG_DRAM_SUNXI_TPR13=0x7521 | |
+CONFIG_DRAM_SUNXI_TPR14=0x2023211f | |
+CONFIG_MACH_SUN50I_A133=y | |
+CONFIG_DRAM_CLK=792 | |
+CONFIG_MMC_SUNXI_SLOT_EXTRA=2 | |
+CONFIG_SUNXI_DRAM_A133_LPDDR4=y | |
+CONFIG_R_I2C_ENABLE=y | |
+# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set | |
+CONFIG_SPL_I2C=y | |
+CONFIG_SPL_SYS_I2C_LEGACY=y | |
+CONFIG_SYS_I2C_MVTWSI=y | |
+CONFIG_SYS_I2C_SLAVE=0x7f | |
+CONFIG_SYS_I2C_SPEED=400000 | |
+CONFIG_AXP803_POWER=y | |
+CONFIG_AXP_DCDC5_VOLT=1100 | |
+CONFIG_SUPPORT_EMMC_BOOT=y | |
+CONFIG_USB_EHCI_HCD=y | |
+CONFIG_USB_OHCI_HCD=y | |
diff --git a/dts/upstream/src/arm64/allwinner/sun50i-a133-liontron-h-a133l.dts b/dts/upstream/src/arm64/allwinner/sun50i-a133-liontron-h-a133l.dts | |
new file mode 100644 | |
index 00000000000..ded58dbc470 | |
--- /dev/null | |
+++ b/dts/upstream/src/arm64/allwinner/sun50i-a133-liontron-h-a133l.dts | |
@@ -0,0 +1,253 @@ | |
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT) | |
+/* | |
+ * Copyright (c) 2025 Arm Ltd. | |
+ */ | |
+ | |
+/dts-v1/; | |
+ | |
+#include "sun50i-a100.dtsi" | |
+ | |
+#include <dt-bindings/gpio/gpio.h> | |
+ | |
+/{ | |
+ model = "Liontron H-A133L"; | |
+ compatible = "liontron,h-a133l", "allwinner,sun50i-a100"; | |
+ | |
+ aliases { | |
+ serial0 = &uart0; | |
+ }; | |
+ | |
+ chosen { | |
+ stdout-path = "serial0:115200n8"; | |
+ }; | |
+ | |
+ reg_vcc5v: vcc5v { | |
+ /* board wide 5V supply from a 12V->5V regulator */ | |
+ compatible = "regulator-fixed"; | |
+ regulator-name = "vcc-5v"; | |
+ regulator-min-microvolt = <5000000>; | |
+ regulator-max-microvolt = <5000000>; | |
+ regulator-always-on; | |
+ }; | |
+ | |
+ reg_vcc3v3: vcc3v3 { | |
+ /* 3.3V dummy supply for the SD card */ | |
+ compatible = "regulator-fixed"; | |
+ regulator-name = "vcc-3v3"; | |
+ regulator-min-microvolt = <3300000>; | |
+ regulator-max-microvolt = <3300000>; | |
+ vin-supply = <®_vcc5v>; | |
+ regulator-always-on; | |
+ }; | |
+}; | |
+ | |
+&cpu0 { | |
+ cpu-supply = <®_dcdc2>; | |
+}; | |
+ | |
+&ehci0 { | |
+ status = "okay"; | |
+}; | |
+ | |
+&ehci1 { | |
+ status = "okay"; | |
+}; | |
+ | |
+&mmc0 { | |
+ vmmc-supply = <®_dcdc1>; | |
+ cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ | |
+ bus-width = <4>; | |
+ status = "okay"; | |
+}; | |
+ | |
+&mmc2 { | |
+ vmmc-supply = <®_dcdc1>; | |
+ vqmmc-supply = <®_eldo1>; | |
+ cap-mmc-hw-reset; | |
+ non-removable; | |
+ bus-width = <8>; | |
+ status = "okay"; | |
+}; | |
+ | |
+&ohci0 { | |
+ status = "okay"; | |
+}; | |
+ | |
+&ohci1 { | |
+ status = "okay"; | |
+}; | |
+ | |
+/* | |
+&pio { | |
+ vcc-pb-supply = <®_dcdc1>; | |
+ vcc-pc-supply = <®_eldo1>; | |
+ vcc-pd-supply = <®_dcdc1>; | |
+ vcc-pe-supply = <®_dldo2>; | |
+ vcc-pf-supply = <®_dcdc1>; | |
+ vcc-pg-supply = <®_dldo1>; | |
+ vcc-ph-supply = <®_dcdc1>; | |
+}; | |
+*/ | |
+ | |
+&r_pio { | |
+ /* | |
+ * FIXME: We can't add that supply for now since it would | |
+ * create a circular dependency between pinctrl, the regulator | |
+ * and the RSB Bus. | |
+ * | |
+ * vcc-pl-supply = <®_aldo3>; | |
+ */ | |
+}; | |
+ | |
+&r_i2c0 { | |
+ status = "okay"; | |
+ | |
+ axp803: pmic@34 { | |
+ compatible = "x-powers,axp803"; | |
+ reg = <0x34>; | |
+ interrupt-parent = <&r_intc>; | |
+ interrupts = <0 IRQ_TYPE_LEVEL_LOW>; | |
+ x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */ | |
+ }; | |
+}; | |
+ | |
+#include "axp803.dtsi" | |
+ | |
+&ac_power_supply { | |
+ status = "okay"; | |
+}; | |
+ | |
+/* | |
+®_aldo1 { | |
+ regulator-always-on; | |
+ regulator-min-microvolt = <1800000>; | |
+ regulator-max-microvolt = <1800000>; | |
+ regulator-name = "vcc-pll-avcc"; | |
+}; | |
+ | |
+®_aldo2 { | |
+ regulator-always-on; | |
+ regulator-min-microvolt = <1800000>; | |
+ regulator-max-microvolt = <1800000>; | |
+ regulator-name = "vcc-dram-1"; | |
+}; | |
+ | |
+®_aldo3 { | |
+ regulator-always-on; | |
+ regulator-min-microvolt = <3300000>; | |
+ regulator-max-microvolt = <3300000>; | |
+ regulator-name = "vcc-usb-pl"; | |
+}; | |
+*/ | |
+ | |
+®_dcdc1 { | |
+ regulator-always-on; | |
+ regulator-min-microvolt = <3300000>; | |
+ regulator-max-microvolt = <3300000>; | |
+ regulator-name = "vcc-io-usb-pd-emmc-nand-card"; | |
+}; | |
+ | |
+®_dcdc2 { | |
+ regulator-always-on; | |
+ regulator-min-microvolt = <810000>; | |
+ regulator-max-microvolt = <1200000>; | |
+ regulator-name = "vdd-cpux"; | |
+}; | |
+ | |
+/* DCDC3 is polyphased with DCDC2 */ | |
+ | |
+/* | |
+®_dcdc4 { | |
+ regulator-always-on; | |
+ regulator-min-microvolt = <950000>; | |
+ regulator-max-microvolt = <950000>; | |
+ regulator-name = "vdd-sys-usb-dram"; | |
+}; | |
+*/ | |
+ | |
+®_dcdc5 { | |
+ regulator-always-on; | |
+ regulator-min-microvolt = <1100000>; | |
+ regulator-max-microvolt = <1100000>; | |
+ regulator-name = "vcc-dram"; | |
+}; | |
+ | |
+/* | |
+®_dldo1 { | |
+ regulator-min-microvolt = <3300000>; | |
+ regulator-max-microvolt = <3300000>; | |
+ regulator-name = "vcc-pg-dcxo-wifi"; | |
+}; | |
+ | |
+®_dldo2 { | |
+ regulator-min-microvolt = <1800000>; | |
+ regulator-max-microvolt = <2800000>; | |
+ regulator-name = "vcc-pe-csi"; | |
+}; | |
+ | |
+®_dldo3 { | |
+ regulator-min-microvolt = <1800000>; | |
+ regulator-max-microvolt = <3300000>; | |
+ regulator-name = "ldo-avdd-csi"; | |
+}; | |
+ | |
+®_dldo4 { | |
+ regulator-min-microvolt = <1800000>; | |
+ regulator-max-microvolt = <2800000>; | |
+ regulator-name = "avcc-csi"; | |
+}; | |
+*/ | |
+ | |
+®_eldo1 { | |
+ regulator-min-microvolt = <1800000>; | |
+ regulator-max-microvolt = <1800000>; | |
+ regulator-name = "vcc-pc-lvds-csi-efuse-emmc-nand"; | |
+}; | |
+ | |
+/* | |
+®_eldo2 { | |
+ regulator-min-microvolt = <1200000>; | |
+ regulator-max-microvolt = <1800000>; | |
+ regulator-name = "dvdd-csi"; | |
+}; | |
+ | |
+®_eldo3 { | |
+ regulator-min-microvolt = <1800000>; | |
+ regulator-max-microvolt = <1800000>; | |
+ regulator-name = "vcc-mipi-lcd"; | |
+}; | |
+ | |
+®_fldo1 { | |
+ regulator-always-on; | |
+ regulator-min-microvolt = <900000>; | |
+ regulator-max-microvolt = <900000>; | |
+ regulator-name = "vdd-cpus-usb"; | |
+}; | |
+ | |
+®_ldo_io0 { | |
+ regulator-min-microvolt = <3300000>; | |
+ regulator-max-microvolt = <3300000>; | |
+ regulator-name = "vcc-ctp"; | |
+ status = "okay"; | |
+}; | |
+*/ | |
+ | |
+®_drivevbus { | |
+ regulator-name = "usb0-vbus"; | |
+ status = "okay"; | |
+}; | |
+ | |
+&uart0 { | |
+ pinctrl-names = "default"; | |
+ pinctrl-0 = <&uart0_pb_pins>; | |
+ status = "okay"; | |
+}; | |
+ | |
+&usb_otg { | |
+ dr_mode = "host"; /* USB A type receptable */ | |
+ status = "okay"; | |
+}; | |
+ | |
+&usbphy { | |
+ status = "okay"; | |
+}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment