mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [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 = <&reg_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 = <&reg_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 = <&reg_vbus_5v>;
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	hub_2_0: hub@1 {
+		compatible = "usb2109,2817";
+		reg = <1>;
+		vdd-supply = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_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 = <&reg_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®