armbian-build/patch/u-boot/sunxi-dev-u-boot-a523/arm64-dts-sun55i-a527-cubie-a5e-enable-spi0-pcie-combophy.patch

142 lines
3.5 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Marvin Wewer <mwewer37@proton.me>
Date: Sat, 25 Oct 2025 16:50:43 +0000
Subject: arm64: dts: allwinner: sun55i-a527-cubie-a5e: Enable SPI0 and PCIe with ComboPHY
Signed-off-by: Marvin Wewer <mwewer37@proton.me>
---
dts/upstream/src/arm64/allwinner/sun55i-a527-cubie-a5e.dts | 84 ++++++++++
1 file changed, 84 insertions(+)
diff --git a/dts/upstream/src/arm64/allwinner/sun55i-a527-cubie-a5e.dts b/dts/upstream/src/arm64/allwinner/sun55i-a527-cubie-a5e.dts
index 111111111111..222222222222 100644
--- a/dts/upstream/src/arm64/allwinner/sun55i-a527-cubie-a5e.dts
+++ b/dts/upstream/src/arm64/allwinner/sun55i-a527-cubie-a5e.dts
@@ -43,10 +43,34 @@
regulator-max-microvolt = <5000000>;
vin-supply = <&reg_vcc5v>;
gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
enable-active-high;
};
+
+ reg_pcie_vcc3v3: regulator-pcie-vcc3v3 {
+ compatible = "regulator-fixed";
+ regulator-name = "pcie-pwren";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpio = <&r_pio 0 11 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ regulator-always-on;
+ regulator-boot-on;
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie_pwren_pins>;
+ };
+
+ reg_vcc_3v3: vcc-3v3 {
+ compatible = "regulator-fixed";
+ regulator-name = "vcc-3v3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ gpio = <&r_pio 0 7 GPIO_ACTIVE_HIGH>;
+ regulator-always-on;
+ regulator-boot-on;
+ enable-active-high;
+ };
};
&ehci0 {
status = "okay";
};
@@ -102,10 +126,34 @@
vcc-pg-supply = <&reg_bldo1>;
vcc-ph-supply = <&reg_cldo3>; /* via VCC-IO */
vcc-pi-supply = <&reg_cldo3>;
vcc-pj-supply = <&reg_cldo4>;
vcc-pk-supply = <&reg_cldo1>;
+
+ pcie0_pins_ph: pcie0-ph {
+ pins = "PH19";
+ function = "pcie0";
+ allwinner,pinmux = <6>;
+ drive-strength = <20>;
+ bias-pull-up;
+ power-source = <3300>;
+ };
+
+ spi0_pins: spi0-pins {
+ pins = "PC2","PC4", "PC12";
+ allwinner,pinmux = <4>;
+ function = "spi0";
+ drive-strength = <10>;
+ };
+
+ spi0_cs_pin: spi0-cs0-pin {
+ pins = "PC3";
+ allwinner,pinmux = <4>;
+ function = "spi0";
+ drive-strength = <10>;
+ bias-pull-up; /* cs, hold, wp should be pulled up */
+ };
};
&r_i2c0 {
status = "okay";
@@ -280,18 +328,53 @@
* Specifying the supply would create a circular dependency.
*
* vcc-pl-supply = <&reg_aldo3>;
*/
vcc-pm-supply = <&reg_aldo3>;
+
+ pcie_pwren_pins: pcie-pwren-pins {
+ allwinner,pins = "PL11";
+ function = "gpio_out";
+ allwinner,pinmux = <1>;
+ drive-strength = <10>;
+ bias-disable; //bias-pull-up; or bias-pull-down;
+ };
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pb_pins>;
status = "okay";
};
+&combophy {
+ select3v3-supply = <&reg_vcc_3v3>;
+ status = "okay";
+};
+
+&spi0 {
+ pinctrl-0 = <&spi0_pins>, <&spi0_cs_pin>;
+ pinctrl-names = "default";
+ status = "okay";
+ w25q128: flash@0 {
+ compatible = "winbond,w25q128fw", "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <24000000>;
+ vcc-supply = <&reg_cldo1>;
+ status = "okay";
+ };
+};
+
+&pcie {
+ reset-gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>;
+ wake-gpios = <&pio 7 12 GPIO_ACTIVE_HIGH>;
+ num-lanes = <1>;
+ slot-3v3-supply = <&reg_pcie_vcc3v3>;
+ switch-sel-gpios = <&pio 1 6 GPIO_ACTIVE_HIGH>;
+ status = "okay";
+};
+
&usb_otg {
/*
* The USB-C port is the primary power supply, so in this configuration
* relies on the other end of the USB cable to supply the VBUS power.
* So use this port in peripheral mode.
--
Armbian