* [PATCH v3 1/2] arm64: dts: allwinner: h616: orangepi-zero2w: add 24-pin expansion overlay
@ 2026-09-23 11:20 Vladimir
2026-09-23 11:20 ` [PATCH v3 2/2] arm64: dts: allwinner: h616: orangepi-zero2w: add SDIO WiFi/BT (AW859A) Vladimir
2026-09-23 11:56 ` [PATCH v3 1/2] arm64: dts: allwinner: h616: orangepi-zero2w: add 24-pin expansion overlay Andre Przywara
0 siblings, 2 replies; 5+ messages in thread
From: Vladimir @ 2026-09-23 11:20 UTC (permalink / raw)
To: Chen-Yu Tsai, Jernej Skrabec, Samuel Holland
Cc: linux-sunxi, linux-arm-kernel, devicetree
The optional 24-pin expansion board carries two buttons on LRADC channel 0
and an IR receiver. Keep them out of the base board .dts: with the board
detached the LRADC input and the IR receiver pin are not driven and float,
which can produce phantom key presses and interrupt storms.
Provide them as a devicetree overlay instead, following the existing
sun8i-orangepi-zero-interface-board.dtso approach.
Tested on: OrangePi Zero 2W (Allwinner H618) with the 24-pin expansion board.
Signed-off-by: Vladimir <anykey196@gmail.com>
---
arch/arm64/boot/dts/allwinner/Makefile | 2 +
.../sun50i-h618-orangepi-zero2w-24pin.dtso | 42 +++++++++++++++++++
2 files changed, 44 insertions(+)
create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w-24pin.dtso
diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile
index d1f768dd646..e4576030276 100644
--- a/arch/arm64/boot/dts/allwinner/Makefile
+++ b/arch/arm64/boot/dts/allwinner/Makefile
@@ -57,6 +57,8 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-orangepi-zero2.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-x96-mate.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-longanpi-3h.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-orangepi-zero2w.dtb
+dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-orangepi-zero2w-24pin.dtb
+sun50i-h618-orangepi-zero2w-24pin-dtbs := sun50i-h618-orangepi-zero2w.dtb sun50i-h618-orangepi-zero2w-24pin.dtbo
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-orangepi-zero3.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-transpeed-8k618-t.dtb
dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-yuzukihd-chameleon.dtb
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w-24pin.dtso b/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w-24pin.dtso
new file mode 100644
index 00000000000..2d7e98e4b66
--- /dev/null
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w-24pin.dtso
@@ -0,0 +1,42 @@
+// SPDX-License-Identifier: (GPL-2.0-or-later OR X11)
+/*
+ * Device tree overlay for the Orange Pi Zero 2W 24-pin expansion board.
+ *
+ * The expansion board provides two buttons wired to LRADC channel 0 and an
+ * IR receiver. These are only present when the board is attached, so they
+ * are deliberately kept out of the base .dts: on a bare board the LRADC
+ * input and the IR receiver pin are not driven and float, which can cause
+ * phantom key presses and interrupt storms.
+ *
+ * Apply on top of:
+ * arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/input/input.h>
+
+&lradc {
+ vref-supply = <®_vcc3v3>;
+ status = "okay";
+ wakeup-source;
+
+ button-1000 {
+ label = "KEY_1";
+ linux,code = <KEY_1>;
+ channel = <0>;
+ voltage = <1000000>;
+ };
+
+ button-1600 {
+ label = "KEY_ENTER";
+ linux,code = <KEY_ENTER>;
+ channel = <0>;
+ voltage = <1600000>;
+ };
+};
+
+&ir {
+ status = "okay";
+};
--
2.55.0.windows.3
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v3 2/2] arm64: dts: allwinner: h616: orangepi-zero2w: add SDIO WiFi/BT (AW859A)
2026-09-23 11:20 [PATCH v3 1/2] arm64: dts: allwinner: h616: orangepi-zero2w: add 24-pin expansion overlay Vladimir
@ 2026-09-23 11:20 ` Vladimir
2026-09-23 13:58 ` Andre Przywara
2026-09-23 11:56 ` [PATCH v3 1/2] arm64: dts: allwinner: h616: orangepi-zero2w: add 24-pin expansion overlay Andre Przywara
1 sibling, 1 reply; 5+ messages in thread
From: Vladimir @ 2026-09-23 11:20 UTC (permalink / raw)
To: Chen-Yu Tsai, Jernej Skrabec, Samuel Holland
Cc: linux-sunxi, linux-arm-kernel, devicetree
Enable the SDIO bus (mmc1) and power the on-board AW859A (UWE5622)
WiFi/BT combo through an mmc-pwrseq-simple that resets WL_REG_ON (PG18) and
gates the RTC 32 kHz fanout clock (PG10), with the 3.3 V and 1.8 V supplies.
The pwrseq clock must be named "ext_clock" (what mmc-pwrseq-simple requests)
and its output pin must be muxed to the clock function, as done for the other
H616/H618 boards.
Tested on: OrangePi Zero 2W (Allwinner H618) with the out-of-tree uwe5622 driver.
Signed-off-by: Vladimir <anykey196@gmail.com>
---
.../allwinner/sun50i-h618-orangepi-zero2w.dts | 42 +++++++++++++++++++
1 file changed, 42 insertions(+)
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts b/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts
index ff9b40352a5..39f580af15b 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts
+++ b/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts
@@ -189,3 +189,45 @@ &usbphy {
usb1_vbus-supply = <®_vcc5v>;
status = "okay";
};
+
+/ {
+ reg_vcc33_wifi: vcc33-wifi {
+ /* Always-on 3.3V regulator for WiFi and BT */
+ compatible = "regulator-fixed";
+ regulator-name = "vcc33-wifi";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ vin-supply = <®_vcc5v>;
+ };
+
+ reg_vcc_wifi_io: vcc-wifi-io {
+ /* Always-on 1.8V regulator for WiFi and BT IO */
+ compatible = "regulator-fixed";
+ regulator-name = "vcc-wifi-io";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ vin-supply = <®_vcc33_wifi>;
+ };
+
+ wifi_pwrseq: wifi-pwrseq {
+ compatible = "mmc-pwrseq-simple";
+ clocks = <&rtc CLK_OSC32K_FANOUT>;
+ clock-names = "ext_clock";
+ pinctrl-names = "default";
+ pinctrl-0 = <&x32clk_fanout_pin>;
+ reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>; /* PG18 */
+ post-power-on-delay-ms = <200>;
+ };
+};
+
+&mmc1 {
+ vmmc-supply = <®_vcc33_wifi>;
+ vqmmc-supply = <®_vcc_wifi_io>;
+ mmc-pwrseq = <&wifi_pwrseq>;
+ bus-width = <4>;
+ non-removable;
+ mmc-ddr-1_8v;
+ status = "okay";
+};
--
2.55.0.windows.3
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v3 1/2] arm64: dts: allwinner: h616: orangepi-zero2w: add 24-pin expansion overlay
2026-09-23 11:20 [PATCH v3 1/2] arm64: dts: allwinner: h616: orangepi-zero2w: add 24-pin expansion overlay Vladimir
2026-09-23 11:20 ` [PATCH v3 2/2] arm64: dts: allwinner: h616: orangepi-zero2w: add SDIO WiFi/BT (AW859A) Vladimir
@ 2026-09-23 11:56 ` Andre Przywara
1 sibling, 0 replies; 5+ messages in thread
From: Andre Przywara @ 2026-09-23 11:56 UTC (permalink / raw)
To: Vladimir, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland
Cc: linux-sunxi, linux-arm-kernel, devicetree
Hi Vladimir,
thanks for your patches, but please do not send new revisions that
quickly! The kernel doc says to leave *at least* 24 hours between
respins, but I would wait even longer: we are all humans, mostly
hobbyists, so please give all the reviewers some time to have a look!
Thanks,
Andre
On 9/23/26 13:20, Vladimir wrote:
> The optional 24-pin expansion board carries two buttons on LRADC channel 0
> and an IR receiver. Keep them out of the base board .dts: with the board
> detached the LRADC input and the IR receiver pin are not driven and float,
> which can produce phantom key presses and interrupt storms.
>
> Provide them as a devicetree overlay instead, following the existing
> sun8i-orangepi-zero-interface-board.dtso approach.
>
> Tested on: OrangePi Zero 2W (Allwinner H618) with the 24-pin expansion board.
>
> Signed-off-by: Vladimir <anykey196@gmail.com>
> ---
> arch/arm64/boot/dts/allwinner/Makefile | 2 +
> .../sun50i-h618-orangepi-zero2w-24pin.dtso | 42 +++++++++++++++++++
> 2 files changed, 44 insertions(+)
> create mode 100644 arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w-24pin.dtso
>
> diff --git a/arch/arm64/boot/dts/allwinner/Makefile b/arch/arm64/boot/dts/allwinner/Makefile
> index d1f768dd646..e4576030276 100644
> --- a/arch/arm64/boot/dts/allwinner/Makefile
> +++ b/arch/arm64/boot/dts/allwinner/Makefile
> @@ -57,6 +57,8 @@ dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-orangepi-zero2.dtb
> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h616-x96-mate.dtb
> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-longanpi-3h.dtb
> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-orangepi-zero2w.dtb
> +dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-orangepi-zero2w-24pin.dtb
> +sun50i-h618-orangepi-zero2w-24pin-dtbs := sun50i-h618-orangepi-zero2w.dtb sun50i-h618-orangepi-zero2w-24pin.dtbo
> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-orangepi-zero3.dtb
> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-transpeed-8k618-t.dtb
> dtb-$(CONFIG_ARCH_SUNXI) += sun50i-h618-yuzukihd-chameleon.dtb
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w-24pin.dtso b/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w-24pin.dtso
> new file mode 100644
> index 00000000000..2d7e98e4b66
> --- /dev/null
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w-24pin.dtso
> @@ -0,0 +1,42 @@
> +// SPDX-License-Identifier: (GPL-2.0-or-later OR X11)
> +/*
> + * Device tree overlay for the Orange Pi Zero 2W 24-pin expansion board.
> + *
> + * The expansion board provides two buttons wired to LRADC channel 0 and an
> + * IR receiver. These are only present when the board is attached, so they
> + * are deliberately kept out of the base .dts: on a bare board the LRADC
> + * input and the IR receiver pin are not driven and float, which can cause
> + * phantom key presses and interrupt storms.
> + *
> + * Apply on top of:
> + * arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts
> + */
> +
> +/dts-v1/;
> +/plugin/;
> +
> +#include <dt-bindings/input/input.h>
> +
> +&lradc {
> + vref-supply = <®_vcc3v3>;
> + status = "okay";
> + wakeup-source;
> +
> + button-1000 {
> + label = "KEY_1";
> + linux,code = <KEY_1>;
> + channel = <0>;
> + voltage = <1000000>;
> + };
> +
> + button-1600 {
> + label = "KEY_ENTER";
> + linux,code = <KEY_ENTER>;
> + channel = <0>;
> + voltage = <1600000>;
> + };
> +};
> +
> +&ir {
> + status = "okay";
> +};
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3 2/2] arm64: dts: allwinner: h616: orangepi-zero2w: add SDIO WiFi/BT (AW859A)
2026-09-23 11:20 ` [PATCH v3 2/2] arm64: dts: allwinner: h616: orangepi-zero2w: add SDIO WiFi/BT (AW859A) Vladimir
@ 2026-09-23 13:58 ` Andre Przywara
2026-09-24 14:42 ` Влад СВН
0 siblings, 1 reply; 5+ messages in thread
From: Andre Przywara @ 2026-09-23 13:58 UTC (permalink / raw)
To: Vladimir, Chen-Yu Tsai, Jernej Skrabec, Samuel Holland
Cc: linux-sunxi, linux-arm-kernel, devicetree
Hi,
your threading looks somewhat off, and you are missing a cover letter,
so I am a bit lost in here. But just jumping in here:
On 9/23/26 13:20, Vladimir wrote:
> Enable the SDIO bus (mmc1) and power the on-board AW859A (UWE5622)
> WiFi/BT combo through an mmc-pwrseq-simple that resets WL_REG_ON (PG18) and
> gates the RTC 32 kHz fanout clock (PG10), with the 3.3 V and 1.8 V supplies.
>
> The pwrseq clock must be named "ext_clock" (what mmc-pwrseq-simple requests)
> and its output pin must be muxed to the clock function, as done for the other
> H616/H618 boards.
>
> Tested on: OrangePi Zero 2W (Allwinner H618) with the out-of-tree uwe5622 driver.
>
> Signed-off-by: Vladimir <anykey196@gmail.com>
> ---
> .../allwinner/sun50i-h618-orangepi-zero2w.dts | 42 +++++++++++++++++++
> 1 file changed, 42 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts b/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts
> index ff9b40352a5..39f580af15b 100644
> --- a/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts
> +++ b/arch/arm64/boot/dts/allwinner/sun50i-h618-orangepi-zero2w.dts
> @@ -189,3 +189,45 @@ &usbphy {
> usb1_vbus-supply = <®_vcc5v>;
> status = "okay";
> };
> +
> +/ {
> + reg_vcc33_wifi: vcc33-wifi {
> + /* Always-on 3.3V regulator for WiFi and BT */
Why is this a separate regulator? Looking at the schematics, the WiFi
chip seems supplied by VCC-WIFI, which is connected to DCDCE/VDD33,
which is already modelled as reg_vcc3v3, in the .dts file.
> + compatible = "regulator-fixed";
> + regulator-name = "vcc33-wifi";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-always-on;
> + vin-supply = <®_vcc5v>;
> + };
> +
> + reg_vcc_wifi_io: vcc-wifi-io {
> + /* Always-on 1.8V regulator for WiFi and BT IO */
Same here, VCC-WIFI-IO, which is supplied by aldo1. It's naturally the
same voltage as the PortG supply, already specified in the "pio" node.
So I think those two regulators can go, and ...
> + compatible = "regulator-fixed";
> + regulator-name = "vcc-wifi-io";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-always-on;
> + vin-supply = <®_vcc33_wifi>;
> + };
> +
> + wifi_pwrseq: wifi-pwrseq {
> + compatible = "mmc-pwrseq-simple";
> + clocks = <&rtc CLK_OSC32K_FANOUT>;
> + clock-names = "ext_clock";
> + pinctrl-names = "default";
> + pinctrl-0 = <&x32clk_fanout_pin>;
> + reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>; /* PG18 */
> + post-power-on-delay-ms = <200>;
> + };
> +};
> +
> +&mmc1 {
> + vmmc-supply = <®_vcc33_wifi>;
> + vqmmc-supply = <®_vcc_wifi_io>;
... be replaced here with ®_vcc3v3 and &aldo1, respectively.
And this is all depending on that we actually make DT changes for
devices which don't have a binding, and for which we don't specify a
child node in here.
Cheers,
Andre
> + mmc-pwrseq = <&wifi_pwrseq>;
> + bus-width = <4>;
> + non-removable;
> + mmc-ddr-1_8v;
> + status = "okay";> +};
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3 2/2] arm64: dts: allwinner: h616: orangepi-zero2w: add SDIO WiFi/BT (AW859A)
2026-09-23 13:58 ` Andre Przywara
@ 2026-09-24 14:42 ` Влад СВН
0 siblings, 0 replies; 5+ messages in thread
From: Влад СВН @ 2026-09-24 14:42 UTC (permalink / raw)
To: Andre Przywara
Cc: Chen-Yu Tsai, Jernej Skrabec, Samuel Holland, linux-sunxi,
linux-arm-kernel, devicetree
I'd better rework my patch and letter, do more testing and then resend it.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-09-24 14:42 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-23 11:20 [PATCH v3 1/2] arm64: dts: allwinner: h616: orangepi-zero2w: add 24-pin expansion overlay Vladimir
2026-09-23 11:20 ` [PATCH v3 2/2] arm64: dts: allwinner: h616: orangepi-zero2w: add SDIO WiFi/BT (AW859A) Vladimir
2026-09-23 13:58 ` Andre Przywara
2026-09-24 14:42 ` Влад СВН
2026-09-23 11:56 ` [PATCH v3 1/2] arm64: dts: allwinner: h616: orangepi-zero2w: add 24-pin expansion overlay Andre Przywara
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox