* [PATCH 0/4] riscv: dts: spacemit: Enable USB and PCIe for K3 CoM260
@ 2026-09-28 23:18 Jennifer Berringer
2026-09-28 23:18 ` [PATCH 1/4] riscv: dts: spacemit: k3-com260: keep dldo4 enabled Jennifer Berringer
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Jennifer Berringer @ 2026-09-28 23:18 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Yixun Lan,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti
Cc: devicetree, linux-riscv, spacemit, linux-kernel, James Morris,
Jennifer Berringer
This patchset enables USB 2.0, USB 3.0, PCIe, and rfkill for the K3
CoM260 Dev Kit board. This board has 4x USB 3.0 Type-A ports and three
M.2 slots which may be used for two NVMe drives, Wi-Fi, and Bluetooth.
The USB Type-C DRD port is not enabled here because the necessary
drivers have not yet been posted.
This is based on spacemit/dt-for-next. The USB patch depends on [1] and
the PCIe patch depends on [2], which in turn depends on [3] and [4].
[1] https://lore.kernel.org/spacemit/20260928205012.3689405-1-aurelien@aurel32.net/
[2] https://lore.kernel.org/spacemit/20260727094726.890179-1-inochiama@gmail.com/
[3] https://lore.kernel.org/linux-phy/20260923023304.78428-1-inochiama@gmail.com/
[4] https://lore.kernel.org/spacemit/20260923015016.64069-1-inochiama@gmail.com/
James Morris (1):
riscv: dts: spacemit: k3-com260: keep dldo4 enabled
Jennifer Berringer (3):
riscv: dts: spacemit: k3-com260-ifx: Add USB nodes
riscv: dts: spacemit: k3-com260-ifx: Add PCIe nodes
riscv: dts: spacemit: k3-com260-ifx: Add rfkill nodes
.../riscv/boot/dts/spacemit/k3-com260-ifx.dts | 122 ++++++++++++++++++
arch/riscv/boot/dts/spacemit/k3-com260.dtsi | 1 +
arch/riscv/boot/dts/spacemit/k3-pinctrl.dtsi | 33 +++++
3 files changed, 156 insertions(+)
base-commit: 4947ee60bf48caddf5caefc08dbbc84d09fbbc6b
prerequisite-message-id: <20260727094726.890179-1-inochiama@gmail.com>
--
2.55.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/4] riscv: dts: spacemit: k3-com260: keep dldo4 enabled
2026-09-28 23:18 [PATCH 0/4] riscv: dts: spacemit: Enable USB and PCIe for K3 CoM260 Jennifer Berringer
@ 2026-09-28 23:18 ` Jennifer Berringer
2026-09-28 23:18 ` [PATCH 2/4] riscv: dts: spacemit: k3-com260-ifx: Add USB nodes Jennifer Berringer
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Jennifer Berringer @ 2026-09-28 23:18 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Yixun Lan,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti
Cc: devicetree, linux-riscv, spacemit, linux-kernel, James Morris,
Jennifer Berringer
From: James Morris <jmorris@namei.org>
dldo4 on the P1 PMIC is marked regulator-boot-on, but has no consumer
described in the device tree. The regulator core can therefore disable
the firmware-enabled rail during unused-regulator cleanup.
Enabling pcie4_rc on a K3 CoM260 Dev Kit without this change while the
board's included RTL8852BE module is connected to the M.2 E-key slot
results in CPU hard-lock, as seen in kernel log:
[ 32.521536] dldo4: disabling
[ 48.125823] watchdog: CPU3: Watchdog detected hard LOCKUP on cpu 4
[ 64.125829] watchdog: BUG: soft lockup - CPU#1 stuck for 26s!
[ 64.125926] Hardware name: SpacemiT K3 CoM260 IFX (DT)
[ 64.125928] epc : smp_call_function_many_cond+0x158/0x740
[ 64.125938] ra : smp_call_function_many_cond+0x11a/0x740
GitHub Copilot assisted with diagnosis and build and test automation, and
changelog drafting.
Fixes: cfe5c91cb73c ("riscv: dts: spacemit: k3: Initial support for CoM260-IFX board")
Assisted-by: GitHub-Copilot:gpt-sol-5.6
Signed-off-by: James Morris <jmorris@namei.org> (Microsoft)
Signed-off-by: Jennifer Berringer <jberring@redhat.com>
---
arch/riscv/boot/dts/spacemit/k3-com260.dtsi | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/riscv/boot/dts/spacemit/k3-com260.dtsi b/arch/riscv/boot/dts/spacemit/k3-com260.dtsi
index 92dea86397798..054bfff7413a3 100644
--- a/arch/riscv/boot/dts/spacemit/k3-com260.dtsi
+++ b/arch/riscv/boot/dts/spacemit/k3-com260.dtsi
@@ -187,6 +187,7 @@ dldo3: dldo3 {
dldo4: dldo4 {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
+ regulator-always-on;
regulator-boot-on;
};
--
2.55.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/4] riscv: dts: spacemit: k3-com260-ifx: Add USB nodes
2026-09-28 23:18 [PATCH 0/4] riscv: dts: spacemit: Enable USB and PCIe for K3 CoM260 Jennifer Berringer
2026-09-28 23:18 ` [PATCH 1/4] riscv: dts: spacemit: k3-com260: keep dldo4 enabled Jennifer Berringer
@ 2026-09-28 23:18 ` Jennifer Berringer
2026-09-28 23:18 ` [PATCH 3/4] riscv: dts: spacemit: k3-com260-ifx: Add PCIe nodes Jennifer Berringer
2026-09-28 23:18 ` [PATCH 4/4] riscv: dts: spacemit: k3-com260-ifx: Add rfkill nodes Jennifer Berringer
3 siblings, 0 replies; 5+ messages in thread
From: Jennifer Berringer @ 2026-09-28 23:18 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Yixun Lan,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti
Cc: devicetree, linux-riscv, spacemit, linux-kernel, James Morris,
Jennifer Berringer
K3 CoM260 IFX uses usb3b for a VL817 hub providing 4x USB 3.0 ports and
usb2_host for Bluetooth through the M.2 E-Key slot.
Signed-off-by: Jennifer Berringer <jberring@redhat.com>
---
.../riscv/boot/dts/spacemit/k3-com260-ifx.dts | 63 +++++++++++++++++++
1 file changed, 63 insertions(+)
diff --git a/arch/riscv/boot/dts/spacemit/k3-com260-ifx.dts b/arch/riscv/boot/dts/spacemit/k3-com260-ifx.dts
index a5c08a7a781a9..a4dfa25c837fe 100644
--- a/arch/riscv/boot/dts/spacemit/k3-com260-ifx.dts
+++ b/arch/riscv/boot/dts/spacemit/k3-com260-ifx.dts
@@ -3,6 +3,7 @@
* Copyright (c) 2026 SpacemiT (Hangzhou) Technology Co. Ltd
* Copyright (c) 2026 Yixun Lan <dlan@kernel.org>
*/
+#include <dt-bindings/phy/phy.h>
#include "k3-com260.dtsi"
@@ -18,6 +19,31 @@ aliases {
chosen {
stdout-path = "serial0:115200n8";
};
+
+ reg_hub_5v: regulator-usb3-hub-5v {
+ compatible = "regulator-fixed";
+ regulator-name = "USB30_HUB";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-boot-on;
+ regulator-always-on;
+ vin-supply = <®_5v_sys>;
+ };
+
+ reg_vbus_5v: regulator-usb3-vbus-5v {
+ compatible = "regulator-fixed";
+ regulator-name = "USB30_VBUS";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ vin-supply = <®_5v_sys>;
+ gpio = <&gpio K3_GPIO(67) GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+ };
+};
+
+&combophy {
+ spacemit,apmu = <&syscon_apmu 0x14>;
+ status = "okay";
};
&i2c1 {
@@ -35,6 +61,43 @@ eeprom@50 {
};
};
+&usb2_host {
+ status = "okay";
+};
+
+&usb2_phy {
+ status = "okay";
+};
+
+&usb3b {
+ phys = <&usb3b_u2phy>, <&combophy 2 PHY_TYPE_USB3>;
+ phy-names = "usb2-phy", "usb3-phy";
+ status = "okay";
+ vbus-supply = <®_vbus_5v>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ hub_2_0: hub@1 {
+ compatible = "usb2109,2817";
+ reg = <1>;
+ vdd-supply = <®_hub_5v>;
+ peer-hub = <&hub_3_0>;
+ reset-gpios = <&gpio K3_GPIO(53) GPIO_ACTIVE_LOW>;
+ };
+
+ hub_3_0: hub@2 {
+ compatible = "usb2109,817";
+ reg = <2>;
+ vdd-supply = <®_hub_5v>;
+ peer-hub = <&hub_2_0>;
+ reset-gpios = <&gpio K3_GPIO(53) GPIO_ACTIVE_LOW>;
+ };
+};
+
+&usb3b_u2phy {
+ status = "okay";
+};
+
&sdhci0 {
pinctrl-names = "default","uhs";
pinctrl-0 = <&mmc1_cfg>;
--
2.55.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 3/4] riscv: dts: spacemit: k3-com260-ifx: Add PCIe nodes
2026-09-28 23:18 [PATCH 0/4] riscv: dts: spacemit: Enable USB and PCIe for K3 CoM260 Jennifer Berringer
2026-09-28 23:18 ` [PATCH 1/4] riscv: dts: spacemit: k3-com260: keep dldo4 enabled Jennifer Berringer
2026-09-28 23:18 ` [PATCH 2/4] riscv: dts: spacemit: k3-com260-ifx: Add USB nodes Jennifer Berringer
@ 2026-09-28 23:18 ` Jennifer Berringer
2026-09-28 23:18 ` [PATCH 4/4] riscv: dts: spacemit: k3-com260-ifx: Add rfkill nodes Jennifer Berringer
3 siblings, 0 replies; 5+ messages in thread
From: Jennifer Berringer @ 2026-09-28 23:18 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Yixun Lan,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti
Cc: devicetree, linux-riscv, spacemit, linux-kernel, James Morris,
Jennifer Berringer
K3 CoM260 Dev Kit uses PCIe for three M.2 slots:
- M.2 M-key 2280: PCIe 3.0 x4 (pcie0_rc)
- M.2 M-key 2230: PCIe 3.0 x1+1 (pcie3_rc)
- M.2 E-key 2230: PCIe 3.0 x1 (pcie4_rc)
The M.2 M-key 2230 slot is connected to two PCIe lanes, with lane 0
on combo phy 4 and lane 1 on combo phy 3. The K3 combo phy cannot be
configured to use these as one PCIe 3.0 x2 device; treat this slot as x1
only instead.
The E-key slot has an RTL8852BE WiFi+BT NIC installed from factory.
Signed-off-by: Jennifer Berringer <jberring@redhat.com>
---
.../riscv/boot/dts/spacemit/k3-com260-ifx.dts | 45 +++++++++++++++++++
arch/riscv/boot/dts/spacemit/k3-pinctrl.dtsi | 33 ++++++++++++++
2 files changed, 78 insertions(+)
diff --git a/arch/riscv/boot/dts/spacemit/k3-com260-ifx.dts b/arch/riscv/boot/dts/spacemit/k3-com260-ifx.dts
index a4dfa25c837fe..01e286cb05797 100644
--- a/arch/riscv/boot/dts/spacemit/k3-com260-ifx.dts
+++ b/arch/riscv/boot/dts/spacemit/k3-com260-ifx.dts
@@ -39,6 +39,14 @@ reg_vbus_5v: regulator-usb3-vbus-5v {
gpio = <&gpio K3_GPIO(67) GPIO_ACTIVE_HIGH>;
enable-active-high;
};
+
+ reg_aux_vcc3v3: regulator-aux-vcc3v3 {
+ compatible = "regulator-fixed";
+ regulator-name = "AUX_VCC3V3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ };
};
&combophy {
@@ -61,6 +69,43 @@ eeprom@50 {
};
};
+&pcie0_rc {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie0_1_cfg>;
+ num-lanes = <4>;
+ status = "okay";
+
+ pcie@0 {
+ vpcie3v3-supply = <®_aux_vcc3v3>;
+ phys = <&combophy 0 PHY_TYPE_PCIE>,
+ <&combophy 1 PHY_TYPE_PCIE>;
+ };
+};
+
+&pcie3_rc {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie3_0_cfg>;
+ num-lanes = <1>;
+ status = "okay";
+
+ pcie@0 {
+ vpcie3v3-supply = <®_aux_vcc3v3>;
+ phys = <&combophy 4 PHY_TYPE_PCIE>;
+ };
+};
+
+&pcie4_rc {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pcie4_1_cfg>;
+ num-lanes = <1>;
+ status = "okay";
+
+ pcie@0 {
+ vpcie3v3-supply = <®_aux_vcc3v3>;
+ phys = <&combophy 5 PHY_TYPE_PCIE>;
+ };
+};
+
&usb2_host {
status = "okay";
};
diff --git a/arch/riscv/boot/dts/spacemit/k3-pinctrl.dtsi b/arch/riscv/boot/dts/spacemit/k3-pinctrl.dtsi
index 1b19979f150ce..36f7780860f50 100644
--- a/arch/riscv/boot/dts/spacemit/k3-pinctrl.dtsi
+++ b/arch/riscv/boot/dts/spacemit/k3-pinctrl.dtsi
@@ -800,6 +800,17 @@ pcie0-0-pins {
};
};
+ pcie0_1_cfg: pcie0-1-cfg {
+ pcie0-0-pins {
+ pinmux = <K3_PADCONF(79, 5)>, /* pcie0 perst */
+ <K3_PADCONF(81, 5)>; /* pcie0 clkreq */
+
+ bias-pull-up = <1>;
+ drive-strength = <38>;
+ power-source = <3300>;
+ };
+ };
+
pcie2_0_cfg: pcie2-0-cfg {
pcie2-0-pins {
pinmux = <K3_PADCONF(25, 4)>, /* pcie2 perst */
@@ -810,6 +821,17 @@ pcie2-0-pins {
};
};
+ pcie3_0_cfg: pcie3-0-cfg {
+ pcie3-0-pins {
+ pinmux = <K3_PADCONF(3, 4)>, /* pcie3 perst */
+ <K3_PADCONF(5, 4)>; /* pcie3 clkreq */
+
+ bias-pull-up = <1>;
+ drive-strength = <38>;
+ power-source = <3300>;
+ };
+ };
+
pcie4_0_cfg: pcie4-0-cfg {
pcie4-0-pins {
pinmux = <K3_PADCONF(76, 5)>, /* pcie4 perst */
@@ -821,4 +843,15 @@ pcie4-0-pins {
power-source = <1800>;
};
};
+
+ pcie4_1_cfg: pcie4-1-cfg {
+ pcie4-0-pins {
+ pinmux = <K3_PADCONF(76, 5)>, /* pcie4 perst */
+ <K3_PADCONF(78, 5)>; /* pcie4 clkreq */
+
+ bias-pull-up = <1>;
+ drive-strength = <38>;
+ power-source = <3300>;
+ };
+ };
};
--
2.55.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 4/4] riscv: dts: spacemit: k3-com260-ifx: Add rfkill nodes
2026-09-28 23:18 [PATCH 0/4] riscv: dts: spacemit: Enable USB and PCIe for K3 CoM260 Jennifer Berringer
` (2 preceding siblings ...)
2026-09-28 23:18 ` [PATCH 3/4] riscv: dts: spacemit: k3-com260-ifx: Add PCIe nodes Jennifer Berringer
@ 2026-09-28 23:18 ` Jennifer Berringer
3 siblings, 0 replies; 5+ messages in thread
From: Jennifer Berringer @ 2026-09-28 23:18 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Yixun Lan,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti
Cc: devicetree, linux-riscv, spacemit, linux-kernel, James Morris,
Jennifer Berringer
K3 CoM260 IFX has an M.2 E-key slot for wireless. Add rfkill nodes for
the GPIOs that control the slot's W_DISABLE1# and W_DISABLE2# pins for
WLAN and Bluetooth.
Signed-off-by: Jennifer Berringer <jberring@redhat.com>
---
arch/riscv/boot/dts/spacemit/k3-com260-ifx.dts | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/arch/riscv/boot/dts/spacemit/k3-com260-ifx.dts b/arch/riscv/boot/dts/spacemit/k3-com260-ifx.dts
index 01e286cb05797..cd878340e5add 100644
--- a/arch/riscv/boot/dts/spacemit/k3-com260-ifx.dts
+++ b/arch/riscv/boot/dts/spacemit/k3-com260-ifx.dts
@@ -47,6 +47,20 @@ reg_aux_vcc3v3: regulator-aux-vcc3v3 {
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
+
+ rfkill-pcie-wlan {
+ compatible = "rfkill-gpio";
+ label = "rfkill-pcie-wlan";
+ radio-type = "wlan";
+ shutdown-gpios = <&gpio K3_GPIO(73) GPIO_ACTIVE_LOW>;
+ };
+
+ rfkill-usb-bt {
+ compatible = "rfkill-gpio";
+ label = "rfkill-usb-bt";
+ radio-type = "bluetooth";
+ shutdown-gpios = <&gpio K3_GPIO(57) GPIO_ACTIVE_LOW>;
+ };
};
&combophy {
--
2.55.0
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-09-28 23:19 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-28 23:18 [PATCH 0/4] riscv: dts: spacemit: Enable USB and PCIe for K3 CoM260 Jennifer Berringer
2026-09-28 23:18 ` [PATCH 1/4] riscv: dts: spacemit: k3-com260: keep dldo4 enabled Jennifer Berringer
2026-09-28 23:18 ` [PATCH 2/4] riscv: dts: spacemit: k3-com260-ifx: Add USB nodes Jennifer Berringer
2026-09-28 23:18 ` [PATCH 3/4] riscv: dts: spacemit: k3-com260-ifx: Add PCIe nodes Jennifer Berringer
2026-09-28 23:18 ` [PATCH 4/4] riscv: dts: spacemit: k3-com260-ifx: Add rfkill nodes Jennifer Berringer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®