* [PATCH v3 0/2] arm64: dts: qcom: Add support for QCS615 Talos EVK platform
@ 2025-10-14 12:02 Sudarshan Shetty
2025-10-14 12:02 ` [PATCH v3 1/2] dt-bindings: arm: qcom: Add QCS615 Talos EVK SMARC platform Sudarshan Shetty
2025-10-14 12:02 ` [PATCH v3 2/2] arm64: dts: qcom: Add support for QCS615 talos evk board Sudarshan Shetty
0 siblings, 2 replies; 9+ messages in thread
From: Sudarshan Shetty @ 2025-10-14 12:02 UTC (permalink / raw)
To: andersson, Dmitry Baryshkov, Krzysztof Kozlowski, Rob Herring,
Conor Dooley
Cc: konradybcio, krzk+dt, linux-arm-msm, devicetree, linux-kernel,
tessolveupstream
Hi all,
This patch series adds initial device tree and binding support for the
QCS615-based Talos EVK SMARC platform.
The Talos EVK is based on the QCS615 SoC and follows the SMARC
standard, consisting of a SoM and a carrier board. The SoM integrates
the SoC, PMIC, and GPIO interfaces, while the carrier board provides
peripherals such as UART, USB, and CAN for evaluation and development.
---
### Changes in v3:
- Addressed comments from Dmitry regarding USB1 `dr_mode` and added a DTS comment.
- No functional change in bindings file.
### Changes in v2:
- Renamed compatible to "qcom,talos-evk" (suggested by Dmitry/Bjorn)
- Merged enum entry with existing `qcs615-ride` block (suggested by Krzysztof)
- Fixed subject and commit message to use imperative mood.
---
### Patch summary:
1. **dt-bindings: arm: qcom: Add Talos EVK SMARC platform**
2. **arm64: dts: qcom: Add support for QCS615 Talos EVK board**
---
Best regards,
Sudarshan Shetty
Tessolve
---
**[PATCH v3 1/2]** — `dt-bindings: arm: qcom: Add Talos EVK SMARC platform`
**[PATCH v3 2/2]** — `arm64: dts: qcom: Add support for QCS615 Talos EVK board`
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v3 1/2] dt-bindings: arm: qcom: Add QCS615 Talos EVK SMARC platform
2025-10-14 12:02 [PATCH v3 0/2] arm64: dts: qcom: Add support for QCS615 Talos EVK platform Sudarshan Shetty
@ 2025-10-14 12:02 ` Sudarshan Shetty
2025-10-17 5:13 ` Krzysztof Kozlowski
2025-10-14 12:02 ` [PATCH v3 2/2] arm64: dts: qcom: Add support for QCS615 talos evk board Sudarshan Shetty
1 sibling, 1 reply; 9+ messages in thread
From: Sudarshan Shetty @ 2025-10-14 12:02 UTC (permalink / raw)
To: andersson
Cc: konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree,
linux-kernel, tessolveupstream
Add binding support for the QCS615-based Talos EVK SMARC platform.
Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com>
---
Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index 0a3222d6f368..a323be3d2ba2 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -862,6 +862,7 @@ properties:
- items:
- enum:
- qcom,qcs615-ride
+ - qcom,talos-evk
- const: qcom,qcs615
- const: qcom,sm6150
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v3 2/2] arm64: dts: qcom: Add support for QCS615 talos evk board
2025-10-14 12:02 [PATCH v3 0/2] arm64: dts: qcom: Add support for QCS615 Talos EVK platform Sudarshan Shetty
2025-10-14 12:02 ` [PATCH v3 1/2] dt-bindings: arm: qcom: Add QCS615 Talos EVK SMARC platform Sudarshan Shetty
@ 2025-10-14 12:02 ` Sudarshan Shetty
2025-10-14 22:15 ` Dmitry Baryshkov
2025-10-17 13:21 ` Krzysztof Kozlowski
1 sibling, 2 replies; 9+ messages in thread
From: Sudarshan Shetty @ 2025-10-14 12:02 UTC (permalink / raw)
To: andersson
Cc: konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree,
linux-kernel, tessolveupstream
Introduce the device tree support for the QCS615-based talos-evk
platform, which follows the SMARC (Smart Mobility ARChitecture)
standard. The platform is composed of two main hardware
components: the talos-evk-som and the talos-evk carrier board.
The talos-evk-som is a compact System on Module that integrates the
QCS615 SoC, PMIC, and essential GPIO connectivity. It follows the
SMARC standard, which defines a modular form factor allowing the SoM
to be paired with different carrier boards for varied applications.
The talos-evk is one such carrier board, designed for evaluation
and development purposes. It provides additional peripherals
such as UART, USB, and other interfaces to enable rapid
prototyping and hardware bring-up.
This initial device tree provides the basic configuration needed
to boot the platform to a UART shell. Further patches will extend
support for additional peripherals and subsystems.
The initial device tree includes basic support for:
- CPU and memory
- UART
- GPIOs
- Regulators
- PMIC
- Early console
- AT24MAC602 EEPROM
- MCP2515 SPI to CAN
QCS615 talos-evk uses a Quectel AF68E WiFi/BT module (PCIe for
WiFi and UART for Bluetooth), which is different from the RIDE
platform. Plan to enable these in a follow-up patch series.
Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi | 435 ++++++++++++++++++++
arch/arm64/boot/dts/qcom/talos-evk.dts | 42 ++
3 files changed, 478 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-som.dtsi
create mode 100644 arch/arm64/boot/dts/qcom/talos-evk.dts
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 5b52f9e4e5f3..282d744acd73 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -305,6 +305,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8650-mtp.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8650-qrd.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8750-mtp.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8750-qrd.dtb
+dtb-$(CONFIG_ARCH_QCOM) += talos-evk.dtb
x1e001de-devkit-el2-dtbs := x1e001de-devkit.dtb x1-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += x1e001de-devkit.dtb x1e001de-devkit-el2.dtb
x1e78100-lenovo-thinkpad-t14s-el2-dtbs := x1e78100-lenovo-thinkpad-t14s.dtb x1-el2.dtbo
diff --git a/arch/arm64/boot/dts/qcom/talos-evk-som.dtsi b/arch/arm64/boot/dts/qcom/talos-evk-som.dtsi
new file mode 100644
index 000000000000..55ec8034103d
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/talos-evk-som.dtsi
@@ -0,0 +1,435 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+#include "sm6150.dtsi"
+#include "pm8150.dtsi"
+/ {
+ aliases {
+ mmc0 = &sdhc_1;
+ serial0 = &uart0;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ clocks {
+ sleep_clk: sleep-clk {
+ compatible = "fixed-clock";
+ clock-frequency = <32764>;
+ #clock-cells = <0>;
+ };
+
+ xo_board_clk: xo-board-clk {
+ compatible = "fixed-clock";
+ clock-frequency = <38400000>;
+ #clock-cells = <0>;
+ };
+ };
+
+ extcon_usb_1: extcon-usb-1 {
+ compatible = "linux,extcon-usb-gpio";
+ vbus-gpio = <&pm8150_gpios 6 GPIO_ACTIVE_HIGH>;
+ id-gpio = <&pm8150_gpios 7 GPIO_ACTIVE_HIGH>;
+ pinctrl-0 = <&usb1_vbus_det_default &usb1_id_det_default>;
+ pinctrl-names = "default";
+ };
+
+ regulator-usb2-vbus {
+ compatible = "regulator-fixed";
+ regulator-name = "USB2_VBUS";
+ gpio = <&pm8150_gpios 10 GPIO_ACTIVE_HIGH>;
+ pinctrl-0 = <&usb2_en>;
+ pinctrl-names = "default";
+ enable-active-high;
+ regulator-always-on;
+ };
+
+ vreg_v3p3_can: regulator-v3p3-can {
+ compatible = "regulator-fixed";
+ regulator-name = "vreg-v3p3-can";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+
+ vreg_v5p0_can: regulator-v5p0-can {
+ compatible = "regulator-fixed";
+ regulator-name = "vreg-v5p0-can";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-boot-on;
+ regulator-always-on;
+ };
+};
+
+&apps_rsc {
+ regulators-0 {
+ compatible = "qcom,pm8150-rpmh-regulators";
+ qcom,pmic-id = "a";
+
+ vreg_s3a: smps3 {
+ regulator-name = "vreg_s3a";
+ regulator-min-microvolt = <600000>;
+ regulator-max-microvolt = <650000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s4a: smps4 {
+ regulator-name = "vreg_s4a";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1829000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s5a: smps5 {
+ regulator-name = "vreg_s5a";
+ regulator-min-microvolt = <1896000>;
+ regulator-max-microvolt = <2040000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s6a: smps6 {
+ regulator-name = "vreg_s6a";
+ regulator-min-microvolt = <1304000>;
+ regulator-max-microvolt = <1404000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1a: ldo1 {
+ regulator-name = "vreg_l1a";
+ regulator-min-microvolt = <488000>;
+ regulator-max-microvolt = <852000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2a: ldo2 {
+ regulator-name = "vreg_l2a";
+ regulator-min-microvolt = <1650000>;
+ regulator-max-microvolt = <3100000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3a: ldo3 {
+ regulator-name = "vreg_l3a";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1248000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l5a: ldo5 {
+ regulator-name = "vreg_l5a";
+ regulator-min-microvolt = <875000>;
+ regulator-max-microvolt = <975000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l7a: ldo7 {
+ regulator-name = "vreg_l7a";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1900000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l8a: ldo8 {
+ regulator-name = "vreg_l8a";
+ regulator-min-microvolt = <1150000>;
+ regulator-max-microvolt = <1350000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l10a: ldo10 {
+ regulator-name = "vreg_l10a";
+ regulator-min-microvolt = <2950000>;
+ regulator-max-microvolt = <3312000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l11a: ldo11 {
+ regulator-name = "vreg_l11a";
+ regulator-min-microvolt = <1232000>;
+ regulator-max-microvolt = <1260000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l12a: ldo12 {
+ regulator-name = "vreg_l12a";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1890000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l13a: ldo13 {
+ regulator-name = "vreg_l13a";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3230000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l15a: ldo15 {
+ regulator-name = "vreg_l15a";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1904000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l16a: ldo16 {
+ regulator-name = "vreg_l16a";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3312000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_LPM>;
+ regulator-allow-set-load;
+ regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
+ RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l17a: ldo17 {
+ regulator-name = "vreg_l17a";
+ regulator-min-microvolt = <2950000>;
+ regulator-max-microvolt = <3312000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+};
+
+&i2c5 {
+ status = "okay";
+
+ eeprom@57 {
+ compatible = "atmel,24c02";
+ reg = <0x57>;
+ pagesize = <16>;
+ };
+
+ eeprom@5f {
+ compatible = "atmel,24mac602";
+ reg = <0x5f>;
+ pagesize = <16>;
+ };
+};
+
+&pcie {
+ perst-gpios = <&tlmm 101 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 100 GPIO_ACTIVE_HIGH>;
+
+ pinctrl-0 = <&pcie_default_state>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie_phy {
+ vdda-phy-supply = <&vreg_l5a>;
+ vdda-pll-supply = <&vreg_l12a>;
+
+ status = "okay";
+};
+
+&pm8150_gpios {
+ usb2_en: usb2-en-state {
+ pins = "gpio10";
+ function = "normal";
+ output-enable;
+ power-source = <0>;
+ };
+
+ usb1_vbus_det_default: usb1-vbus-det-default-state {
+ pins = "gpio6";
+ function = "normal";
+ output-enable;
+ power-source = <0>;
+ };
+
+ usb1_id_det_default: usb1-id-det-default-state {
+ pins = "gpio7";
+ function = "normal";
+ output-enable;
+ power-source = <0>;
+ };
+};
+
+&qupv3_id_0 {
+ status = "okay";
+};
+
+&qupv3_id_1 {
+ status = "okay";
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/qcs615/adsp.mbn";
+
+ status = "okay";
+};
+
+&remoteproc_cdsp {
+ firmware-name = "qcom/qcs615/cdsp.mbn";
+
+ status = "okay";
+};
+
+&sdhc_1 {
+ pinctrl-0 = <&sdc1_state_on>;
+ pinctrl-1 = <&sdc1_state_off>;
+ pinctrl-names = "default", "sleep";
+
+ bus-width = <8>;
+ mmc-ddr-1_8v;
+ mmc-hs200-1_8v;
+ mmc-hs400-1_8v;
+ mmc-hs400-enhanced-strobe;
+ vmmc-supply = <&vreg_l17a>;
+ vqmmc-supply = <&vreg_s4a>;
+
+ non-removable;
+ no-sd;
+ no-sdio;
+
+ status = "okay";
+};
+
+&spi6 {
+ status = "okay";
+
+ mcp2515@0 {
+ compatible = "microchip,mcp2515";
+ reg = <0>;
+ clock-frequency = <20000000>;
+ interrupts-extended = <&tlmm 87 IRQ_TYPE_LEVEL_LOW>;
+ spi-max-frequency = <10000000>;
+ vdd-supply = <&vreg_v3p3_can>;
+ xceiver-supply = <&vreg_v5p0_can>;
+ };
+};
+
+&tlmm {
+ pcie_default_state: pcie-default-state {
+ clkreq-pins {
+ pins = "gpio90";
+ function = "pcie_clk_req";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ perst-pins {
+ pins = "gpio101";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ wake-pins {
+ pins = "gpio100";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+};
+
+&uart0 {
+ status = "okay";
+};
+
+&usb_1_hsphy {
+ vdd-supply = <&vreg_l5a>;
+ vdda-pll-supply = <&vreg_l12a>;
+ vdda-phy-dpdm-supply = <&vreg_l13a>;
+
+ status = "okay";
+};
+
+&usb_qmpphy {
+ vdda-phy-supply = <&vreg_l5a>;
+ vdda-pll-supply = <&vreg_l12a>;
+
+ status = "okay";
+};
+
+&usb_1 {
+ status = "okay";
+};
+
+/*
+ * USB1 port supports both host and device modes.
+ * By default, it operates in device mode.
+ * To enable host mode, set switch SW1 to 'ON' position on the SoM.
+ */
+
+&usb_1_dwc3 {
+ dr_mode = "otg";
+ extcon = <&extcon_usb_1>;
+};
+
+&usb_hsphy_2 {
+ vdd-supply = <&vreg_l5a>;
+ vdda-pll-supply = <&vreg_l12a>;
+ vdda-phy-dpdm-supply = <&vreg_l13a>;
+
+ status = "okay";
+};
+
+&usb_2 {
+ status = "okay";
+};
+
+&usb_2_dwc3 {
+ dr_mode = "host";
+};
+
+&ufs_mem_hc {
+ reset-gpios = <&tlmm 123 GPIO_ACTIVE_LOW>;
+ vcc-supply = <&vreg_l17a>;
+ vcc-max-microamp = <600000>;
+ vccq2-supply = <&vreg_s4a>;
+ vccq2-max-microamp = <600000>;
+
+ status = "okay";
+};
+
+&ufs_mem_phy {
+ vdda-phy-supply = <&vreg_l5a>;
+ vdda-pll-supply = <&vreg_l12a>;
+
+ status = "okay";
+};
+
+&venus {
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/qcom/talos-evk.dts b/arch/arm64/boot/dts/qcom/talos-evk.dts
new file mode 100644
index 000000000000..25057f4f6a91
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/talos-evk.dts
@@ -0,0 +1,41 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+/dts-v1/;
+
+#include "talos-evk-som.dtsi"
+
+/ {
+ model = "Qualcomm QCS615 IQ 615 EVK";
+ compatible = "qcom,talos-evk", "qcom,qcs615", "qcom,sm6150";
+ chassis-type = "embedded";
+
+ aliases {
+ mmc1 = &sdhc_2;
+ };
+};
+
+&pon_pwrkey {
+ status = "okay";
+};
+
+&pon_resin {
+ linux,code = <KEY_VOLUMEDOWN>;
+
+ status = "okay";
+};
+
+&sdhc_2 {
+ pinctrl-0 = <&sdc2_state_on>;
+ pinctrl-1 = <&sdc2_state_off>;
+ pinctrl-names = "default", "sleep";
+
+ bus-width = <4>;
+ cd-gpios = <&tlmm 99 GPIO_ACTIVE_LOW>;
+
+ vmmc-supply = <&vreg_l10a>;
+ vqmmc-supply = <&vreg_s4a>;
+
+ status = "okay";
+};
--
2.34.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v3 2/2] arm64: dts: qcom: Add support for QCS615 talos evk board
2025-10-14 12:02 ` [PATCH v3 2/2] arm64: dts: qcom: Add support for QCS615 talos evk board Sudarshan Shetty
@ 2025-10-14 22:15 ` Dmitry Baryshkov
2025-10-16 12:19 ` Tessolve Upstream
2025-10-17 13:21 ` Krzysztof Kozlowski
1 sibling, 1 reply; 9+ messages in thread
From: Dmitry Baryshkov @ 2025-10-14 22:15 UTC (permalink / raw)
To: Sudarshan Shetty
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
devicetree, linux-kernel
On Tue, Oct 14, 2025 at 05:32:23PM +0530, Sudarshan Shetty wrote:
> Introduce the device tree support for the QCS615-based talos-evk
> platform, which follows the SMARC (Smart Mobility ARChitecture)
> standard. The platform is composed of two main hardware
> components: the talos-evk-som and the talos-evk carrier board.
>
> The talos-evk-som is a compact System on Module that integrates the
> QCS615 SoC, PMIC, and essential GPIO connectivity. It follows the
> SMARC standard, which defines a modular form factor allowing the SoM
> to be paired with different carrier boards for varied applications.
>
> The talos-evk is one such carrier board, designed for evaluation
> and development purposes. It provides additional peripherals
> such as UART, USB, and other interfaces to enable rapid
> prototyping and hardware bring-up.
>
> This initial device tree provides the basic configuration needed
> to boot the platform to a UART shell. Further patches will extend
> support for additional peripherals and subsystems.
>
> The initial device tree includes basic support for:
>
> - CPU and memory
>
> - UART
>
> - GPIOs
>
> - Regulators
>
> - PMIC
>
> - Early console
>
> - AT24MAC602 EEPROM
>
> - MCP2515 SPI to CAN
>
> QCS615 talos-evk uses a Quectel AF68E WiFi/BT module (PCIe for
> WiFi and UART for Bluetooth), which is different from the RIDE
> platform. Plan to enable these in a follow-up patch series.
>
> Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> arch/arm64/boot/dts/qcom/talos-evk-som.dtsi | 435 ++++++++++++++++++++
> arch/arm64/boot/dts/qcom/talos-evk.dts | 42 ++
> 3 files changed, 478 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-som.dtsi
> create mode 100644 arch/arm64/boot/dts/qcom/talos-evk.dts
>
> +
> + extcon_usb_1: extcon-usb-1 {
> + compatible = "linux,extcon-usb-gpio";
> + vbus-gpio = <&pm8150_gpios 6 GPIO_ACTIVE_HIGH>;
> + id-gpio = <&pm8150_gpios 7 GPIO_ACTIVE_HIGH>;
> + pinctrl-0 = <&usb1_vbus_det_default &usb1_id_det_default>;
> + pinctrl-names = "default";
> + };
Given that we are trying to switch to flattened DWC3 nodes and we are
not going to support extcon in such a configuration (commit aeb0169217eb
("usb: dwc3: qcom: Remove extcon functionality from glue layer")), I
don't think this is a way to go. Please add a proper
gpio-usb-b-connector node.
Also... This is not correct if SW1 is switched to the USB-Host. The ID
is still connected to the micro-USB port and so it might generate some
unpredicted interference. Unfortunately, DT isn't well-fitting for
describing board options and SW1 is definitely an SoM option. Depending
on its position the EVK should either use this gpio-usb-b-connector or
an onboard USB hub (which ideally should also be described in DT). So,
it feels like you need two different DT files, one for each SW1
position.
> +
> +&pm8150_gpios {
> + usb2_en: usb2-en-state {
> + pins = "gpio10";
> + function = "normal";
> + output-enable;
> + power-source = <0>;
> + };
> +
> + usb1_vbus_det_default: usb1-vbus-det-default-state {
> + pins = "gpio6";
> + function = "normal";
> + output-enable;
> + power-source = <0>;
> + };
> +
> + usb1_id_det_default: usb1-id-det-default-state {
> + pins = "gpio7";
> + function = "normal";
> + output-enable;
> + power-source = <0>;
> + };
Do you want to also describe gpio8 here?
> +};
> +
[...]
> +&usb_1_hsphy {
> + vdd-supply = <&vreg_l5a>;
> + vdda-pll-supply = <&vreg_l12a>;
> + vdda-phy-dpdm-supply = <&vreg_l13a>;
> +
> + status = "okay";
> +};
> +
> +&usb_qmpphy {
> + vdda-phy-supply = <&vreg_l5a>;
> + vdda-pll-supply = <&vreg_l12a>;
> +
> + status = "okay";
> +};
> +
> +&usb_1 {
> + status = "okay";
> +};
> +
> +/*
> + * USB1 port supports both host and device modes.
> + * By default, it operates in device mode.
> + * To enable host mode, set switch SW1 to 'ON' position on the SoM.
Is it device mode or is it an OTG mode? I don't have carrier board
schematics, so I don't see if it is possible to enable VBUS on the
micro-USB or not.
> + */
> +
> +&usb_1_dwc3 {
> + dr_mode = "otg";
JFYI: it's a default and can be omitted. Only host / peripheral needs to
be specified explicitly.
> + extcon = <&extcon_usb_1>;
> +};
> +
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 2/2] arm64: dts: qcom: Add support for QCS615 talos evk board
2025-10-14 22:15 ` Dmitry Baryshkov
@ 2025-10-16 12:19 ` Tessolve Upstream
0 siblings, 0 replies; 9+ messages in thread
From: Tessolve Upstream @ 2025-10-16 12:19 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm,
devicetree, linux-kernel
On 15/10/25 03:45, Dmitry Baryshkov wrote:
> On Tue, Oct 14, 2025 at 05:32:23PM +0530, Sudarshan Shetty wrote:
>> Introduce the device tree support for the QCS615-based talos-evk
>> platform, which follows the SMARC (Smart Mobility ARChitecture)
>> standard. The platform is composed of two main hardware
>> components: the talos-evk-som and the talos-evk carrier board.
>>
>> The talos-evk-som is a compact System on Module that integrates the
>> QCS615 SoC, PMIC, and essential GPIO connectivity. It follows the
>> SMARC standard, which defines a modular form factor allowing the SoM
>> to be paired with different carrier boards for varied applications.
>>
>> The talos-evk is one such carrier board, designed for evaluation
>> and development purposes. It provides additional peripherals
>> such as UART, USB, and other interfaces to enable rapid
>> prototyping and hardware bring-up.
>>
>> This initial device tree provides the basic configuration needed
>> to boot the platform to a UART shell. Further patches will extend
>> support for additional peripherals and subsystems.
>>
>> The initial device tree includes basic support for:
>>
>> - CPU and memory
>>
>> - UART
>>
>> - GPIOs
>>
>> - Regulators
>>
>> - PMIC
>>
>> - Early console
>>
>> - AT24MAC602 EEPROM
>>
>> - MCP2515 SPI to CAN
>>
>> QCS615 talos-evk uses a Quectel AF68E WiFi/BT module (PCIe for
>> WiFi and UART for Bluetooth), which is different from the RIDE
>> platform. Plan to enable these in a follow-up patch series.
>>
>> Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com>
>> ---
>> arch/arm64/boot/dts/qcom/Makefile | 1 +
>> arch/arm64/boot/dts/qcom/talos-evk-som.dtsi | 435 ++++++++++++++++++++
>> arch/arm64/boot/dts/qcom/talos-evk.dts | 42 ++
>> 3 files changed, 478 insertions(+)
>> create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-som.dtsi
>> create mode 100644 arch/arm64/boot/dts/qcom/talos-evk.dts
>>
>> +
>> + extcon_usb_1: extcon-usb-1 {
>> + compatible = "linux,extcon-usb-gpio";
>> + vbus-gpio = <&pm8150_gpios 6 GPIO_ACTIVE_HIGH>;
>> + id-gpio = <&pm8150_gpios 7 GPIO_ACTIVE_HIGH>;
>> + pinctrl-0 = <&usb1_vbus_det_default &usb1_id_det_default>;
>> + pinctrl-names = "default";
>> + };
>
> Given that we are trying to switch to flattened DWC3 nodes and we are
> not going to support extcon in such a configuration (commit aeb0169217eb
> ("usb: dwc3: qcom: Remove extcon functionality from glue layer")), I
> don't think this is a way to go. Please add a proper
> gpio-usb-b-connector node.
>
> Also... This is not correct if SW1 is switched to the USB-Host. The ID
> is still connected to the micro-USB port and so it might generate some
> unpredicted interference. Unfortunately, DT isn't well-fitting for
> describing board options and SW1 is definitely an SoM option. Depending
> on its position the EVK should either use this gpio-usb-b-connector or
> an onboard USB hub (which ideally should also be described in DT). So,
> it feels like you need two different DT files, one for each SW1
> position.
Thanks for the review.
The USB1 port on this board supports both host and device roles,
selectable using the SW1 switch on the SoM.
The board does not have VBUS or ID detect GPIOs — role selection
is purely manual via the hardware switch
The VBUS 5 V is sourced from the fixed 5 V rail (V5P0_OUT), which is
always on and not controlled by GPIO or regulator.
As suggested,
it feels like need two different DT files, one for each SW1 position.
talos-evk-som.dtsi - device-only mode
talos-evk-usbhost.dts - host-only mode
will it be okay to proceed with above scenario?
>
>> +
>> +&pm8150_gpios {
>> + usb2_en: usb2-en-state {
>> + pins = "gpio10";
>> + function = "normal";
>> + output-enable;
>> + power-source = <0>;
>> + };
>> +
>> + usb1_vbus_det_default: usb1-vbus-det-default-state {
>> + pins = "gpio6";
>> + function = "normal";
>> + output-enable;
>> + power-source = <0>;
>> + };
>> +
>> + usb1_id_det_default: usb1-id-det-default-state {
>> + pins = "gpio7";
>> + function = "normal";
>> + output-enable;
>> + power-source = <0>;
>> + };
>
> Do you want to also describe gpio8 here?
>
>> +};
>> +
>
>
> [...]
>
>> +&usb_1_hsphy {
>> + vdd-supply = <&vreg_l5a>;
>> + vdda-pll-supply = <&vreg_l12a>;
>> + vdda-phy-dpdm-supply = <&vreg_l13a>;
>> +
>> + status = "okay";
>> +};
>> +
>> +&usb_qmpphy {
>> + vdda-phy-supply = <&vreg_l5a>;
>> + vdda-pll-supply = <&vreg_l12a>;
>> +
>> + status = "okay";
>> +};
>> +
>> +&usb_1 {
>> + status = "okay";
>> +};
>> +
>> +/*
>> + * USB1 port supports both host and device modes.
>> + * By default, it operates in device mode.
>> + * To enable host mode, set switch SW1 to 'ON' position on the SoM.
>
> Is it device mode or is it an OTG mode? I don't have carrier board
> schematics, so I don't see if it is possible to enable VBUS on the
> micro-USB or not.
The board default in device mode.
The USB1 port role is determined entirely by the hardware
switch SW1 on the SoM:
There are no ID or VBUS detect pins, so dynamic OTG switching is
not possible. dr_mode in the DTS is therefore set explicitly to
"peripheral" for device mode or "host" for host mode.
>
>> + */
>> +
>> +&usb_1_dwc3 {
>> + dr_mode = "otg";
>
> JFYI: it's a default and can be omitted. Only host / peripheral needs to
> be specified explicitly.
Sure, will update in v4 patch accordingly,
>
>> + extcon = <&extcon_usb_1>;
>> +};
>> +
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 1/2] dt-bindings: arm: qcom: Add QCS615 Talos EVK SMARC platform
2025-10-14 12:02 ` [PATCH v3 1/2] dt-bindings: arm: qcom: Add QCS615 Talos EVK SMARC platform Sudarshan Shetty
@ 2025-10-17 5:13 ` Krzysztof Kozlowski
2025-10-22 9:58 ` Tessolve Upstream
0 siblings, 1 reply; 9+ messages in thread
From: Krzysztof Kozlowski @ 2025-10-17 5:13 UTC (permalink / raw)
To: Sudarshan Shetty, andersson
Cc: konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree,
linux-kernel
On 14/10/2025 14:02, Sudarshan Shetty wrote:
> Add binding support for the QCS615-based Talos EVK SMARC platform.
>
Nothing here nor in DTS commit tells me who made talos evk. Please use
full names of products, e.g. "Samsung Talos EVK SMARC".
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 2/2] arm64: dts: qcom: Add support for QCS615 talos evk board
2025-10-14 12:02 ` [PATCH v3 2/2] arm64: dts: qcom: Add support for QCS615 talos evk board Sudarshan Shetty
2025-10-14 22:15 ` Dmitry Baryshkov
@ 2025-10-17 13:21 ` Krzysztof Kozlowski
2025-10-22 9:57 ` Tessolve Upstream
1 sibling, 1 reply; 9+ messages in thread
From: Krzysztof Kozlowski @ 2025-10-17 13:21 UTC (permalink / raw)
To: Sudarshan Shetty, andersson
Cc: konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree,
linux-kernel
On 14/10/2025 14:02, Sudarshan Shetty wrote:
> Introduce the device tree support for the QCS615-based talos-evk
> platform, which follows the SMARC (Smart Mobility ARChitecture)
> standard. The platform is composed of two main hardware
> components: the talos-evk-som and the talos-evk carrier board.
>
> The talos-evk-som is a compact System on Module that integrates the
> QCS615 SoC, PMIC, and essential GPIO connectivity. It follows the
> SMARC standard, which defines a modular form factor allowing the SoM
> to be paired with different carrier boards for varied applications.
You already sent next patch so this is simply incomplete. Please squash
other work here.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 2/2] arm64: dts: qcom: Add support for QCS615 talos evk board
2025-10-17 13:21 ` Krzysztof Kozlowski
@ 2025-10-22 9:57 ` Tessolve Upstream
0 siblings, 0 replies; 9+ messages in thread
From: Tessolve Upstream @ 2025-10-22 9:57 UTC (permalink / raw)
To: Krzysztof Kozlowski, andersson
Cc: konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree,
linux-kernel
On 17/10/25 18:51, Krzysztof Kozlowski wrote:
> On 14/10/2025 14:02, Sudarshan Shetty wrote:
>> Introduce the device tree support for the QCS615-based talos-evk
>> platform, which follows the SMARC (Smart Mobility ARChitecture)
>> standard. The platform is composed of two main hardware
>> components: the talos-evk-som and the talos-evk carrier board.
>>
>> The talos-evk-som is a compact System on Module that integrates the
>> QCS615 SoC, PMIC, and essential GPIO connectivity. It follows the
>> SMARC standard, which defines a modular form factor allowing the SoM
>> to be paired with different carrier boards for varied applications.
>
> You already sent next patch so this is simply incomplete. Please squash
> other work here.
Understood!
Will squash other work here in v4 patch.
>
> Best regards,
> Krzysztof
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v3 1/2] dt-bindings: arm: qcom: Add QCS615 Talos EVK SMARC platform
2025-10-17 5:13 ` Krzysztof Kozlowski
@ 2025-10-22 9:58 ` Tessolve Upstream
0 siblings, 0 replies; 9+ messages in thread
From: Tessolve Upstream @ 2025-10-22 9:58 UTC (permalink / raw)
To: Krzysztof Kozlowski, andersson
Cc: konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree,
linux-kernel
On 17/10/25 10:43, Krzysztof Kozlowski wrote:
> On 14/10/2025 14:02, Sudarshan Shetty wrote:
>> Add binding support for the QCS615-based Talos EVK SMARC platform.
>>
>
> Nothing here nor in DTS commit tells me who made talos evk. Please use
> full names of products, e.g. "Samsung Talos EVK SMARC".
Thanks for the feedback!
Sure will update in v4 patch.
>
>
> Best regards,
> Krzysztof
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-10-22 9:58 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-14 12:02 [PATCH v3 0/2] arm64: dts: qcom: Add support for QCS615 Talos EVK platform Sudarshan Shetty
2025-10-14 12:02 ` [PATCH v3 1/2] dt-bindings: arm: qcom: Add QCS615 Talos EVK SMARC platform Sudarshan Shetty
2025-10-17 5:13 ` Krzysztof Kozlowski
2025-10-22 9:58 ` Tessolve Upstream
2025-10-14 12:02 ` [PATCH v3 2/2] arm64: dts: qcom: Add support for QCS615 talos evk board Sudarshan Shetty
2025-10-14 22:15 ` Dmitry Baryshkov
2025-10-16 12:19 ` Tessolve Upstream
2025-10-17 13:21 ` Krzysztof Kozlowski
2025-10-22 9:57 ` Tessolve Upstream
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).