* [PATCH 0/4] Enable Bluetooth and WiFi rfkill on K3 Pico ITX
@ 2026-07-16 21:19 Aurelien Jarno
2026-07-16 21:19 ` [PATCH 1/4] riscv: defconfig: enable RFKILL and RFKILL_GPIO Aurelien Jarno
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Aurelien Jarno @ 2026-07-16 21:19 UTC (permalink / raw)
To: linux-kernel, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti, Yixun Lan
Cc: Anirudh Srinivasan, Aurelien Jarno,
open list:RISC-V ARCHITECTURE:Keyword:riscv,
open list:RISC-V SPACEMIT SoC Support:Keyword:spacemit
This patchset enables Bluetooth through USB on the K3 Pico ITX board and adds the
rfkill nodes for Bluetooth and WiFi so that the devices can be activated.
Note that the patch 4 is only useful with the following patch series:
- https://lore.kernel.org/spacemit/20260709040027.958400-1-inochiama@gmail.com/
- https://lore.kernel.org/spacemit/20260703021024.495433-1-inochiama@gmail.com/
- https://lore.kernel.org/spacemit/20260709040415.977784-1-inochiama@gmail.com/
- https://lore.kernel.org/spacemit/20260715-rtw89-spacemit-k3-v1-0-e577bc63706b@oss.tenstorrent.com/
Aurelien Jarno (4):
riscv: defconfig: enable RFKILL and RFKILL_GPIO
riscv: dts: spacemit: k3: add rfkill node for Bluetooth on Pico-ITX
board
riscv: dts: spacemit: k3: add USB3 B and C controllers for Pico-ITX
board
riscv: dts: spacemit: k3: add rfkill node for WLAN on Pico-ITX board
arch/riscv/boot/dts/spacemit/k3-pico-itx.dts | 32 ++++++++++
arch/riscv/boot/dts/spacemit/k3.dtsi | 65 ++++++++++++++++++++
arch/riscv/configs/defconfig | 2 +
3 files changed, 99 insertions(+)
--
2.53.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/4] riscv: defconfig: enable RFKILL and RFKILL_GPIO
2026-07-16 21:19 [PATCH 0/4] Enable Bluetooth and WiFi rfkill on K3 Pico ITX Aurelien Jarno
@ 2026-07-16 21:19 ` Aurelien Jarno
2026-07-16 21:19 ` [PATCH 2/4] riscv: dts: spacemit: k3: add rfkill node for Bluetooth on Pico-ITX board Aurelien Jarno
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Aurelien Jarno @ 2026-07-16 21:19 UTC (permalink / raw)
To: linux-kernel, Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti
Cc: Anirudh Srinivasan, Aurelien Jarno, open list:RISC-V ARCHITECTURE
The SpacemiT K3 Pico-ITX requires RFKILL_GPIO to enable Bluetooth and
WLAN.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
arch/riscv/configs/defconfig | 2 ++
1 file changed, 2 insertions(+)
diff --git a/arch/riscv/configs/defconfig b/arch/riscv/configs/defconfig
index 04ae305d5511b..ed6b854065c0f 100644
--- a/arch/riscv/configs/defconfig
+++ b/arch/riscv/configs/defconfig
@@ -100,6 +100,8 @@ CONFIG_NET_CLS_CGROUP=m
CONFIG_NETLINK_DIAG=y
CONFIG_CGROUP_NET_PRIO=y
CONFIG_CAN=m
+CONFIG_RFKILL=m
+CONFIG_RFKILL_GPIO=m
CONFIG_NET_9P=y
CONFIG_NET_9P_VIRTIO=y
CONFIG_PCI=y
--
2.53.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/4] riscv: dts: spacemit: k3: add rfkill node for Bluetooth on Pico-ITX board
2026-07-16 21:19 [PATCH 0/4] Enable Bluetooth and WiFi rfkill on K3 Pico ITX Aurelien Jarno
2026-07-16 21:19 ` [PATCH 1/4] riscv: defconfig: enable RFKILL and RFKILL_GPIO Aurelien Jarno
@ 2026-07-16 21:19 ` Aurelien Jarno
2026-07-16 21:19 ` [PATCH 3/4] riscv: dts: spacemit: k3: add USB3 B and C controllers for " Aurelien Jarno
2026-07-16 21:19 ` [PATCH 4/4] riscv: dts: spacemit: k3: add rfkill node for WLAN on " Aurelien Jarno
3 siblings, 0 replies; 5+ messages in thread
From: Aurelien Jarno @ 2026-07-16 21:19 UTC (permalink / raw)
To: linux-kernel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Yixun Lan, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti
Cc: Anirudh Srinivasan, Aurelien Jarno,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list:RISC-V ARCHITECTURE,
open list:RISC-V SPACEMIT SoC Support
On the K3 PICO-ITX board, by default the GPIO pin that connects to the
RTL8852BE Bluetooth enable signal is driven low, resulting in
impossibility to use Bluetooth. Add a DT node to expose it as an RFKILL
device, which lets the Bluetooth driver or userspace toggle it as
required.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
arch/riscv/boot/dts/spacemit/k3-pico-itx.dts | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts b/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
index 48b71cc419f09..4aa7d56fb7568 100644
--- a/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
+++ b/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
@@ -43,6 +43,13 @@ reg_aux_vcc5v: regulator-aux-vcc5v {
regulator-max-microvolt = <5000000>;
regulator-always-on;
};
+
+ rfkill-usb-bt {
+ compatible = "rfkill-gpio";
+ label = "rfkill-usb-bt";
+ radio-type = "bluetooth";
+ shutdown-gpios = <&gpio 0 30 GPIO_ACTIVE_HIGH>;
+ };
};
&i2c2 {
--
2.53.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 3/4] riscv: dts: spacemit: k3: add USB3 B and C controllers for Pico-ITX board
2026-07-16 21:19 [PATCH 0/4] Enable Bluetooth and WiFi rfkill on K3 Pico ITX Aurelien Jarno
2026-07-16 21:19 ` [PATCH 1/4] riscv: defconfig: enable RFKILL and RFKILL_GPIO Aurelien Jarno
2026-07-16 21:19 ` [PATCH 2/4] riscv: dts: spacemit: k3: add rfkill node for Bluetooth on Pico-ITX board Aurelien Jarno
@ 2026-07-16 21:19 ` Aurelien Jarno
2026-07-16 21:19 ` [PATCH 4/4] riscv: dts: spacemit: k3: add rfkill node for WLAN on " Aurelien Jarno
3 siblings, 0 replies; 5+ messages in thread
From: Aurelien Jarno @ 2026-07-16 21:19 UTC (permalink / raw)
To: linux-kernel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Yixun Lan, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti
Cc: Anirudh Srinivasan, Aurelien Jarno,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list:RISC-V ARCHITECTURE,
open list:RISC-V SPACEMIT SoC Support
The SpacemiT K3 has 4 USB3 controllers labelled A to D.
On the K3 Pico-ITX board, the controllers B and C are used in USB 2 mode
only respectively for the M.2 B-Key slot and for the RTL8852BE Bluetooth
controller.
Add the two controller nodes and the two corresponding USB2 PHY nodes
(the PCIe/USB3 combo PHY driver is not yet merged) and enable them on
the K3 Pico-ITX board.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
arch/riscv/boot/dts/spacemit/k3-pico-itx.dts | 18 ++++++
arch/riscv/boot/dts/spacemit/k3.dtsi | 65 ++++++++++++++++++++
2 files changed, 83 insertions(+)
diff --git a/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts b/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
index 4aa7d56fb7568..011a35e6372e1 100644
--- a/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
+++ b/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
@@ -325,3 +325,21 @@ hub@1 {
&usb2_phy {
status = "okay";
};
+
+&usb3b {
+ maximum-speed = "high-speed";
+ status = "okay";
+};
+
+&usb3b_u2phy {
+ status = "okay";
+};
+
+&usb3c {
+ maximum-speed = "high-speed";
+ status = "okay";
+};
+
+&usb3c_u2phy {
+ status = "okay";
+};
diff --git a/arch/riscv/boot/dts/spacemit/k3.dtsi b/arch/riscv/boot/dts/spacemit/k3.dtsi
index fc46e34465e47..b14bd8a164537 100644
--- a/arch/riscv/boot/dts/spacemit/k3.dtsi
+++ b/arch/riscv/boot/dts/spacemit/k3.dtsi
@@ -7,6 +7,7 @@
#include <dt-bindings/clock/spacemit,k3-clocks.h>
#include <dt-bindings/reset/spacemit,k3-resets.h>
#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/phy/phy.h>
/dts-v1/;
@@ -438,6 +439,70 @@ soc: soc {
dma-noncoherent;
ranges;
+ usb3b: usb@81400000 {
+ compatible = "spacemit,k3-dwc3";
+ reg = <0x0 0x81400000 0x0 0x10000>;
+ interrupts = <125 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&saplic>;
+ clocks = <&syscon_apmu CLK_APMU_USB3_PORTB_BUS>;
+ clock-names = "usbdrd30";
+ resets = <&syscon_apmu RESET_APMU_USB3_B_AHB>,
+ <&syscon_apmu RESET_APMU_USB3_B_VCC>,
+ <&syscon_apmu RESET_APMU_USB3_B_PHY>;
+ reset-names = "ahb", "vcc", "phy";
+ phys = <&usb3b_u2phy>;
+ phy-names = "usb2-phy";
+ phy_type = "utmi";
+ snps,dis_enblslpm_quirk;
+ snps,dis_u2_susphy_quirk;
+ snps,dis_u3_susphy_quirk;
+ snps,dis-del-phy-power-chg-quirk;
+ snps,dis-tx-ipgap-linecheck-quirk;
+ snps,parkmode-disable-ss-quirk;
+ dr_mode = "host";
+ status = "disabled";
+ };
+
+ usb3b_u2phy: phy@81500000 {
+ compatible = "spacemit,k3-usb2-phy";
+ reg = <0x0 0x81500000 0x0 0x200>;
+ clocks = <&syscon_apmu CLK_APMU_USB3_PORTB_BUS>;
+ #phy-cells = <0>;
+ status = "disabled";
+ };
+
+ usb3c: usb@81700000 {
+ compatible = "spacemit,k3-dwc3";
+ reg = <0x0 0x81700000 0x0 0x10000>;
+ interrupts = <148 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&saplic>;
+ clocks = <&syscon_apmu CLK_APMU_USB3_PORTC_BUS>;
+ clock-names = "usbdrd30";
+ resets = <&syscon_apmu RESET_APMU_USB3_C_AHB>,
+ <&syscon_apmu RESET_APMU_USB3_C_VCC>,
+ <&syscon_apmu RESET_APMU_USB3_C_PHY>;
+ reset-names = "ahb", "vcc", "phy";
+ phys = <&usb3c_u2phy>;
+ phy-names = "usb2-phy";
+ phy_type = "utmi";
+ snps,dis_enblslpm_quirk;
+ snps,dis_u2_susphy_quirk;
+ snps,dis_u3_susphy_quirk;
+ snps,dis-del-phy-power-chg-quirk;
+ snps,dis-tx-ipgap-linecheck-quirk;
+ snps,parkmode-disable-ss-quirk;
+ dr_mode = "host";
+ status = "disabled";
+ };
+
+ usb3c_u2phy: phy@81800000 {
+ compatible = "spacemit,k3-usb2-phy";
+ reg = <0x0 0x81800000 0x0 0x200>;
+ clocks = <&syscon_apmu CLK_APMU_USB3_PORTC_BUS>;
+ #phy-cells = <0>;
+ status = "disabled";
+ };
+
usb2_host: usb@c0a00000 {
compatible = "spacemit,k3-dwc3";
reg = <0x0 0xc0a00000 0x0 0x10000>;
--
2.53.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 4/4] riscv: dts: spacemit: k3: add rfkill node for WLAN on Pico-ITX board
2026-07-16 21:19 [PATCH 0/4] Enable Bluetooth and WiFi rfkill on K3 Pico ITX Aurelien Jarno
` (2 preceding siblings ...)
2026-07-16 21:19 ` [PATCH 3/4] riscv: dts: spacemit: k3: add USB3 B and C controllers for " Aurelien Jarno
@ 2026-07-16 21:19 ` Aurelien Jarno
3 siblings, 0 replies; 5+ messages in thread
From: Aurelien Jarno @ 2026-07-16 21:19 UTC (permalink / raw)
To: linux-kernel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Yixun Lan, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti
Cc: Anirudh Srinivasan, Aurelien Jarno,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
open list:RISC-V ARCHITECTURE,
open list:RISC-V SPACEMIT SoC Support
By default the GPIO pin that connects to the RTL8852BE WLAN enable
signal is driven low, resulting in impossibility to connect to any
network. Add a DT node to expose it as an RFKILL device, which lets the
WiFi driver or userspace toggle it as required.
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
arch/riscv/boot/dts/spacemit/k3-pico-itx.dts | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts b/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
index 011a35e6372e1..328f4c2cd7e14 100644
--- a/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
+++ b/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
@@ -44,6 +44,13 @@ reg_aux_vcc5v: regulator-aux-vcc5v {
regulator-always-on;
};
+ rfkill-pcie-wlan {
+ compatible = "rfkill-gpio";
+ label = "rfkill-pcie-wlan";
+ radio-type = "wlan";
+ shutdown-gpios = <&gpio 1 3 GPIO_ACTIVE_HIGH>;
+ };
+
rfkill-usb-bt {
compatible = "rfkill-gpio";
label = "rfkill-usb-bt";
--
2.53.0
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-07-16 21:33 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-16 21:19 [PATCH 0/4] Enable Bluetooth and WiFi rfkill on K3 Pico ITX Aurelien Jarno
2026-07-16 21:19 ` [PATCH 1/4] riscv: defconfig: enable RFKILL and RFKILL_GPIO Aurelien Jarno
2026-07-16 21:19 ` [PATCH 2/4] riscv: dts: spacemit: k3: add rfkill node for Bluetooth on Pico-ITX board Aurelien Jarno
2026-07-16 21:19 ` [PATCH 3/4] riscv: dts: spacemit: k3: add USB3 B and C controllers for " Aurelien Jarno
2026-07-16 21:19 ` [PATCH 4/4] riscv: dts: spacemit: k3: add rfkill node for WLAN on " Aurelien Jarno
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome