1
0
Fork 0

Add Orange Pi 5 Ultra WiFi/BT support and tart_defconfig

- Enable SDIO WiFi (brcmfmac) via mmc@fe2d0000 with mmc-pwrseq
- Enable Bluetooth (brcm,bcm43438-bt) via uart7 serdev node
- Create tart_defconfig based on android_orangepi5_defconfig
- PIN mappings from jimmyhon/linux max-wifi branch (GPIO2 PC5 WIFI_REG_ON,
  GPIO4 PC4 BT_REG_ON, SDIO sdiom0_pins, UART7 uart7m0_xfer + ctsn/rtsn)
This commit is contained in:
Brendan Szymanski 2026-07-12 18:16:41 -04:00
parent a55f311433
commit a72eba56bd
2 changed files with 10472 additions and 0 deletions

View file

@ -1,4 +1,5 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT) // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
// Copyright (C) 2026 Brendan Szymanski <hello@bscubed.dev>
/dts-v1/; /dts-v1/;
@ -7,6 +8,17 @@
#include "rk3588-orangepi-5.dtsi" #include "rk3588-orangepi-5.dtsi"
/ { / {
sdio_pwrseq: sdio-pwrseq {
compatible = "mmc-pwrseq-simple";
clock-names = "ext_clock";
clocks = <&hym8563>;
pinctrl-0 = <&wifi_enable_h>;
pinctrl-names = "default";
post-power-on-delay-ms = <200>;
power-off-delay-us = <5000000>;
reset-gpios = <&gpio2 RK_PC5 GPIO_ACTIVE_LOW>;
};
vcc5v0_usb30_otg: vcc5v0-usb30-otg-regulator { vcc5v0_usb30_otg: vcc5v0-usb30-otg-regulator {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
enable-active-high; enable-active-high;
@ -87,6 +99,32 @@
rockchip,pins = <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>; rockchip,pins = <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
}; };
}; };
wireless-bluetooth {
bt_reg_on: bt-reg-on {
rockchip,pins = <4 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
};
bt_wake_host: bt-wake-host {
rockchip,pins = <0 RK_PA0 RK_FUNC_GPIO &pcfg_pull_down>;
};
host_wake_bt: host-wake-bt {
rockchip,pins = <4 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
wifi {
wifi_enable_h: wifi-enable-h {
rockchip,pins =
<2 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>;
};
wifi_host_wake_irq: wifi-host-wake-irq {
rockchip,pins =
<0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_down>;
};
};
}; };
&pwm4 { &pwm4 {
@ -141,3 +179,56 @@
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&usb_host_pwren>; pinctrl-0 = <&usb_host_pwren>;
}; };
&sdio {
#address-cells = <1>;
bus-width = <4>;
cap-sd-highspeed;
cap-sdio-irq;
disable-wp;
keep-power-in-suspend;
max-frequency = <150000000>;
mmc-pwrseq = <&sdio_pwrseq>;
non-removable;
no-mmc;
no-sd;
pinctrl-names = "default";
pinctrl-0 = <&sdiom0_pins>;
sd-uhs-sdr104;
#size-cells = <0>;
vmmc-supply = <&vcc_3v3_s3>;
vqmmc-supply = <&vcc_1v8_s3>;
status = "okay";
brcmf: wifi@1 {
compatible = "brcm,bcm4329-fmac";
reg = <1>;
interrupt-parent = <&gpio0>;
interrupts = <RK_PB0 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "host-wake";
pinctrl-0 = <&wifi_host_wake_irq>;
pinctrl-names = "default";
};
};
&uart7 {
pinctrl-names = "default";
pinctrl-0 = <&uart7m0_xfer &uart7m0_ctsn &uart7m0_rtsn>;
uart-has-rtscts;
status = "okay";
bluetooth {
compatible = "brcm,bcm43438-bt";
clocks = <&hym8563>;
clock-names = "lpo";
device-wakeup-gpios = <&gpio4 RK_PC5 GPIO_ACTIVE_HIGH>;
interrupt-parent = <&gpio0>;
interrupts = <RK_PA0 IRQ_TYPE_EDGE_FALLING>;
interrupt-names = "host-wakeup";
pinctrl-names = "default";
pinctrl-0 = <&bt_reg_on>, <&host_wake_bt>, <&bt_wake_host>;
shutdown-gpios = <&gpio4 RK_PC4 GPIO_ACTIVE_HIGH>;
vbat-supply = <&vcc_3v3_s3>;
vddio-supply = <&vcc_1v8_s3>;
};
};

File diff suppressed because it is too large Load diff