* [PATCH v2 2/4] riscv: dts: spacemit: k3: add rfkill node for Bluetooth on Pico-ITX board
[not found] <20260729172450.1660418-1-aurelien@aurel32.net>
@ 2026-07-29 17:20 ` Aurelien Jarno
2026-07-29 17:20 ` [PATCH v2 3/4] riscv: dts: spacemit: k3: add USB3 B and C controllers for " Aurelien Jarno
2026-07-29 17:20 ` [PATCH v2 4/4] riscv: dts: spacemit: k3: add rfkill node for WLAN Aurelien Jarno
2 siblings, 0 replies; 4+ messages in thread
From: Aurelien Jarno @ 2026-07-29 17:20 UTC (permalink / raw)
To: linux-kernel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti,
Yixun Lan
Cc: Aurelien Jarno, Anirudh Srinivasan,
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.
Tested-by: Anirudh Srinivasan <asrinivasan@oss.tenstorrent.com>
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 b084a35aa00e3..6a60fae1f8b50 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 related [flat|nested] 4+ messages in thread
* [PATCH v2 3/4] riscv: dts: spacemit: k3: add USB3 B and C controllers for Pico-ITX board
[not found] <20260729172450.1660418-1-aurelien@aurel32.net>
2026-07-29 17:20 ` [PATCH v2 2/4] riscv: dts: spacemit: k3: add rfkill node for Bluetooth on Pico-ITX board Aurelien Jarno
@ 2026-07-29 17:20 ` Aurelien Jarno
2026-07-29 17:33 ` sashiko-bot
2026-07-29 17:20 ` [PATCH v2 4/4] riscv: dts: spacemit: k3: add rfkill node for WLAN Aurelien Jarno
2 siblings, 1 reply; 4+ messages in thread
From: Aurelien Jarno @ 2026-07-29 17:20 UTC (permalink / raw)
To: linux-kernel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Yixun Lan, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti
Cc: Aurelien Jarno, Anirudh Srinivasan,
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, the two corresponding USB2 PHY nodes and
the two corresponding USB3 PHY nodes, and enable them on the K3 Pico-ITX
board.
Tested-by: Anirudh Srinivasan <asrinivasan@oss.tenstorrent.com>
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 | 66 ++++++++++++++++++++
2 files changed, 84 insertions(+)
diff --git a/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts b/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
index 6a60fae1f8b50..37d3422af32ac 100644
--- a/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
+++ b/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
@@ -330,6 +330,24 @@ &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";
+};
+
&usb3d_u2phy {
status = "okay";
};
diff --git a/arch/riscv/boot/dts/spacemit/k3.dtsi b/arch/riscv/boot/dts/spacemit/k3.dtsi
index 0eb24fac4733e..b786f119d4f95 100644
--- a/arch/riscv/boot/dts/spacemit/k3.dtsi
+++ b/arch/riscv/boot/dts/spacemit/k3.dtsi
@@ -441,6 +441,72 @@ 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>,
+ <&combophy 2 PHY_TYPE_USB3>;
+ 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>,
+ <&combophy 3 PHY_TYPE_USB3>;
+ 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";
+ };
+
usb3d: usb@81a00000 {
compatible = "spacemit,k3-dwc3";
reg = <0x0 0x81a00000 0x0 0x10000>;
--
2.53.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 4/4] riscv: dts: spacemit: k3: add rfkill node for WLAN
[not found] <20260729172450.1660418-1-aurelien@aurel32.net>
2026-07-29 17:20 ` [PATCH v2 2/4] riscv: dts: spacemit: k3: add rfkill node for Bluetooth on Pico-ITX board Aurelien Jarno
2026-07-29 17:20 ` [PATCH v2 3/4] riscv: dts: spacemit: k3: add USB3 B and C controllers for " Aurelien Jarno
@ 2026-07-29 17:20 ` Aurelien Jarno
2 siblings, 0 replies; 4+ messages in thread
From: Aurelien Jarno @ 2026-07-29 17:20 UTC (permalink / raw)
To: linux-kernel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Yixun Lan, Paul Walmsley, Palmer Dabbelt, Albert Ou,
Alexandre Ghiti
Cc: Aurelien Jarno, Anirudh Srinivasan,
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.
Tested-by: Anirudh Srinivasan <asrinivasan@oss.tenstorrent.com>
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 37d3422af32ac..d1e53cfbc9030 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 related [flat|nested] 4+ messages in thread
* Re: [PATCH v2 3/4] riscv: dts: spacemit: k3: add USB3 B and C controllers for Pico-ITX board
2026-07-29 17:20 ` [PATCH v2 3/4] riscv: dts: spacemit: k3: add USB3 B and C controllers for " Aurelien Jarno
@ 2026-07-29 17:33 ` sashiko-bot
0 siblings, 0 replies; 4+ messages in thread
From: sashiko-bot @ 2026-07-29 17:33 UTC (permalink / raw)
To: Aurelien Jarno; +Cc: devicetree, conor+dt, robh
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Mismatch between the length of the `phys` and `phy-names` properties in the `usb3b` and `usb3c` device tree nodes.
--
--- Patch [3]: [PATCH v2 3/4] riscv: dts: spacemit: k3: add USB3 B and C controllers for Pico-ITX board ---
commit 2aa9a6448bde1ee249cba54ddbed1021d4ace1cc
Author: Aurelien Jarno <aurelien@aurel32.net>
riscv: dts: spacemit: k3: add USB3 B and C controllers for Pico-ITX board
This commit adds the USB3 B and C controller nodes and their corresponding
USB2 and USB3 PHY nodes to the SpacemiT K3 SoC device tree. It also enables
them on the K3 Pico-ITX board in USB 2 mode.
> diff --git a/arch/riscv/boot/dts/spacemit/k3.dtsi b/arch/riscv/boot/dts/spacemit/k3.dtsi
> index 0eb24fac4733e..b786f119d4f95 100644
> --- a/arch/riscv/boot/dts/spacemit/k3.dtsi
> +++ b/arch/riscv/boot/dts/spacemit/k3.dtsi
[ ... ]
> + usb3b: usb@81400000 {
> + compatible = "spacemit,k3-dwc3";
> + reg = <0x0 0x81400000 0x0 0x10000>;
[ ... ]
> + 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>,
> + <&combophy 2 PHY_TYPE_USB3>;
> + phy-names = "usb2-phy";
[Severity: Medium]
Does this mismatch between the array lengths of phys and phy-names cause
dtbs_check schema validation to fail? The phys property defines two items,
but phy-names only lists "usb2-phy", omitting "usb3-phy".
Without "usb3-phy" in the phy-names list, devm_phy_get(dev, "usb3-phy")
in the DWC3 core driver will fail. While the current Pico-ITX board limits
this controller to high-speed mode, does this omission bypass USB3 PHY
initialization and break SuperSpeed functionality for any future generic
boards using this SoC-level .dtsi?
> + phy_type = "utmi";
[ ... ]
> + usb3c: usb@81700000 {
> + compatible = "spacemit,k3-dwc3";
> + reg = <0x0 0x81700000 0x0 0x10000>;
[ ... ]
> + 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>,
> + <&combophy 3 PHY_TYPE_USB3>;
> + phy-names = "usb2-phy";
[Severity: Medium]
Similarly here, does omitting "usb3-phy" from the phy-names array also
break USB3 PHY power-on and initialization for the usb3c controller on
future boards?
> + phy_type = "utmi";
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260729172450.1660418-1-aurelien@aurel32.net?part=3
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-07-29 17:33 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20260729172450.1660418-1-aurelien@aurel32.net>
2026-07-29 17:20 ` [PATCH v2 2/4] riscv: dts: spacemit: k3: add rfkill node for Bluetooth on Pico-ITX board Aurelien Jarno
2026-07-29 17:20 ` [PATCH v2 3/4] riscv: dts: spacemit: k3: add USB3 B and C controllers for " Aurelien Jarno
2026-07-29 17:33 ` sashiko-bot
2026-07-29 17:20 ` [PATCH v2 4/4] riscv: dts: spacemit: k3: add rfkill node for WLAN Aurelien Jarno
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox