From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Marvin Wewer 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 --- 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 = <®_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 = <®_bldo1>; vcc-ph-supply = <®_cldo3>; /* via VCC-IO */ vcc-pi-supply = <®_cldo3>; vcc-pj-supply = <®_cldo4>; vcc-pk-supply = <®_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 = <®_aldo3>; */ vcc-pm-supply = <®_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 = <®_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 = <®_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 = <®_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