Skip to contentSkip to conversation

Add Qualcomm Technologies, Inc. Talos EVK SMARC support

PATCH Superseded Sudarshan Shetty 3 participants 10 messages Nov 7, 2025 – Dec 15, 2025

Subsystems (3)

v6 of 16 Superseded Latest is v16 →

lore
Share & tools
lore
#0 lore raw

v6 cover Add Qualcomm Technologies, Inc. Talos EVK SMARC support

Hi all,

This patch series adds device tree binding and board support for the Qualcomm Technologies, Inc. Talos EVK SMARC platform based on the QCS615 SoC.

The first patch introduces the DT binding entry for the Talos EVK SMARC board, and the second patch adds the corresponding DTS files for the platform.

Note:
USB(usb_1_dwc3) supports host-only mode based on the switch SW1 on the SoM, which is purely a hardware controlled as USB-ID and USB-VBUS is not connected the switching cannot be handled from SW. Hence from SW Host-only mode is supported on Linux boot up.

Changes in v6:
- Clarified description of talos-evk-cb.dtsi to explain that it defines common carrier board interfaces shared between HDMI and LVDS variants, And It’s a single carrier board. HDMI and LVDS share the same DSI interface, and only one can be active at a time depending on a DIP switch.
- Added missing newlines before 'status' and between the last property and subnode (suggested by Konrad).
- Updated commit messages for clarity.

Changes in v5:
- Updated commit message. (suggested by Krzysztof)
- Introduced generic node name for can, dp, hdmi-bridge. (suggested by Krzysztof)
- Introduced talos-evk-cb.dtsi, which has common carrier board interfaces.
- No functional change in bindings file.

Changes in v4:
- Updated product name to full form per Krzysztof’s feedback in dt-binding comment.
- Hook up the ADV7535 DSI-to-HDMI bridge to base DTS file.
- Add DP connector node and MDSS DisplayPort controller.
- Added USB note in the cover letter for maintainers' awareness.

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 (Krzysztof)
- Fixed subject and commit message to use imperative mood.

Thanks,
Sudarshan

Sudarshan Shetty (2):
dt-bindings: arm: qcom: talos-evk: Add QCS615 Talos EVK SMARC platform
arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board

 .../devicetree/bindings/arm/qcom.yaml         |   1 +
 arch/arm64/boot/dts/qcom/Makefile             |   1 +
 arch/arm64/boot/dts/qcom/talos-evk-cb.dtsi    |  56 +++
 arch/arm64/boot/dts/qcom/talos-evk-som.dtsi   | 443 ++++++++++++++++++
 arch/arm64/boot/dts/qcom/talos-evk.dts        |  89 ++++
 5 files changed, 590 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-cb.dtsi
 create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-som.dtsi
 create mode 100644 arch/arm64/boot/dts/qcom/talos-evk.dts
Signature · 1 line
2.34.1
#1 lore raw

PATCH v6 1/2 dt-bindings: arm: qcom: talos-evk: Add QCS615 Talos EVK SMARC platform

Add binding support for the Qualcomm Technologies, Inc. Talos EVK SMARC platform based on the QCS615 SoC.

---
 Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
 1 file changed, 1 insertion(+)
Documentation/devicetree/bindings/arm/qcom.yaml +1 -0
index 0a3222d6f368..a323be3d2ba2 100644
@@ -862,6 +862,7 @@ properties:
       - items:
           - enum:
               - qcom,qcs615-ride
+              - qcom,talos-evk
           - const: qcom,qcs615
           - const: qcom,sm6150
 
Signature · 1 line
2.34.1
#2 lore raw

PATCH v6 2/2 arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board

In reply to Sudarshan Shetty

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-cb.

The Talos EVK platform supports multiple display configurations HDMI and LVDS that share a common carrier board design. Both configurations use the same base carrier board hardware, while the display output is selected through hardware configuration options (DIP switch selection).

To avoid duplication, introduce a new include file, talos-evk-cb.dtsi, which defines interfaces and peripherals that are common to both display variants.

The initial device tree includes basic support for:
- CPU and memory
- UART
- GPIOs
- Regulators
- PMIC
- Early console
- AT24MAC602 EEPROM
- MCP2515 SPI to CAN
- ADV7535 DSI-to-HDMI bridge
- DisplayPort

---
 arch/arm64/boot/dts/qcom/Makefile           |   1 +
 arch/arm64/boot/dts/qcom/talos-evk-cb.dtsi  |  56 +++
 arch/arm64/boot/dts/qcom/talos-evk-som.dtsi | 443 ++++++++++++++++++++
 arch/arm64/boot/dts/qcom/talos-evk.dts      |  89 ++++
 4 files changed, 589 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-cb.dtsi
 create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-som.dtsi
 create mode 100644 arch/arm64/boot/dts/qcom/talos-evk.dts
arch/arm64/boot/dts/qcom/Makefile +1 -0
index 5b52f9e4e5f3..282d744acd73 100644
@@ -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
arch/arm64/boot/dts/qcom/talos-evk-cb.dtsi new file +55 -0

55 lines not on this page · raw message

arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +443 -0

443 lines not on this page · raw message

arch/arm64/boot/dts/qcom/talos-evk.dts new file +89 -0

89 lines not on this page · raw message

Signature · 1 line
2.34.1
#3 lore raw

Re: [PATCH v6 2/2] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board

Quoted 1 line · Sudarshan Shetty

Introduce the device tree support for the QCS615-based talos-evk

You can't introduce DT _support_. It's either introducing a DT or supporting.

Quoted 3 lines

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-cb.

are those the actual names? I'd say, the platform is composed of the SoM (following some standard or not) and a Carrier Board.

Quoted 2 lines

The Talos EVK platform supports multiple display configurations HDMI and LVDS that share a common carrier board design.

Other way, the Carrier Board supports several (not multiple) display configurations.

Quoted 3 lines

Both configurations use the same base carrier board hardware, while the display output is selected through hardware configuration options (DIP switch selection).

drop the "hardware configuration options". DIP-switch is enough.

Quoted 2 lines

To avoid duplication, introduce a new include file,

s/introduce/use/

Quoted 2 lines

talos-evk-cb.dtsi, which defines interfaces and peripherals that are common to both display variants.

... and two DTs, cb-hdmi and cb-lvds, describing the selected configuration.

Quoted 2 lines

The initial device tree includes basic support for:

Can any of them be non-basic?

Quoted 10 lines

- CPU and memory
- UART
- GPIOs
- Regulators
- PMIC
- Early console
- AT24MAC602 EEPROM
- MCP2515 SPI to CAN
- ADV7535 DSI-to-HDMI bridge
- DisplayPort

What else is present as a part of the platform? Are we missing something?

Quoted 305 lines
---
 arch/arm64/boot/dts/qcom/Makefile           |   1 +
 arch/arm64/boot/dts/qcom/talos-evk-cb.dtsi  |  56 +++
 arch/arm64/boot/dts/qcom/talos-evk-som.dtsi | 443 ++++++++++++++++++++
 arch/arm64/boot/dts/qcom/talos-evk.dts      |  89 ++++
 4 files changed, 589 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-cb.dtsi
 create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-som.dtsi
 create mode 100644 arch/arm64/boot/dts/qcom/talos-evk.dts
arch/arm64/boot/dts/qcom/Makefile +1 -0
index 5b52f9e4e5f3..282d744acd73 100644
@@ -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
arch/arm64/boot/dts/qcom/talos-evk-cb.dtsi new file +55 -0
new file mode 100644
index 000000000000..81d15ee4f366
@@ -0,0 +1,55 @@
+// 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;
+	};
+
+	dp-connector {
+		compatible = "dp-connector";
+		label = "DP0";
+		type = "full-size";
+
+		hpd-gpios = <&tlmm 104 GPIO_ACTIVE_HIGH>;
+
+		port {
+			dp0_connector_in: endpoint {
+				remote-endpoint = <&mdss_dp0_out>;
+			};
+		};
+	};
+};
+
+&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";
+};
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +214 -0
new file mode 100644
index 000000000000..9e6198892c11
@@ -0,0 +1,443 @@
+// 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>;
+		};
+	};
+
+	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 {

arch/arm64/boot/dts/qcom/talos-evk-som.dtsi line 224

Quoted 10 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +10 -0
+			regulator-name = "vreg_l17a";
+			regulator-min-microvolt = <2950000>;
+			regulator-max-microvolt = <3312000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+		};
+	};
+};
+
+&i2c5 {
+	status = "okay";

No clock-frequency? Why not add one, disabling the warning?

Quoted 32 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +32 -0
+
+	eeprom@57 {
+		compatible = "atmel,24c02";
+		reg = <0x57>;
+		pagesize = <16>;
+	};
+
+	eeprom@5f {
+		compatible = "atmel,24mac602";
+		reg = <0x5f>;
+		pagesize = <16>;
+	};
+};
+
+&mdss {
+	status = "okay";
+};
+
+&mdss_dp0 {
+	status = "okay";
+};
+
+&mdss_dp0_out {
+	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000>;
+	remote-endpoint = <&dp0_connector_in>;
+};
+
+&mdss_dp_phy {
+	vdda-phy-supply = <&vreg_l11a>;
+	vdda-pll-supply = <&vreg_l5a>;
+
+	status = "okay";

arch/arm64/boot/dts/qcom/talos-evk-som.dtsi line 266

Quoted 10 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +10 -0
+};
+
+&mdss_dsi0 {
+	vdda-supply = <&vreg_l11a>;
+
+	status = "okay";
+};
+
+&mdss_dsi0_out {
+	remote-endpoint = <&adv7535_in>;

If ADV7535 isn't a part of the SoM, why is this property here?

Quoted 28 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +28 -0
+	data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+	vdds-supply = <&vreg_l5a>;
+
+	status = "okay";
+};
+
+&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 {

arch/arm64/boot/dts/qcom/talos-evk-som.dtsi line 304

Quoted 10 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +10 -0
+		pins = "gpio10";
+		function = "normal";
+		output-enable;
+		power-source = <0>;
+	};
+};
+
+&qupv3_id_0 {
+	status = "okay";
+};

Is there a need to also enable GPI_DMA?

Quoted 97 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +94 -0
+
+&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";
+
+	can@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";
+};

arch/arm64/boot/dts/qcom/talos-evk-som.dtsi line 408

Quoted 10 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +10 -0
+
+&usb_1 {
+	status = "okay";
+};
+
+&usb_1_dwc3 {
+	dr_mode = "host";
+};
+
+&usb_hsphy_2 {

So, the labels are usb_1_hsphy, but usb_hsphy_2? That's not logical, please fix one of them. Then please fix the order of nodes here.

Quoted 133 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +35 -0
+	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";
+};
arch/arm64/boot/dts/qcom/talos-evk.dts new file +89 -0
new file mode 100644
index 000000000000..b694dda422a8
@@ -0,0 +1,89 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+/dts-v1/;
+
+#include "talos-evk-cb.dtsi"
+
+/ {
+	hdmi-out {
+		compatible = "hdmi-connector";
+		type = "d";
+
+		port {
+			hdmi_con_out: endpoint {
+				remote-endpoint = <&adv7535_out>;
+			};
+		};
+	};
+
+	vreg_v5p0_out: regulator-v5p0-out {
+		compatible = "regulator-fixed";
+		regulator-name = "vreg-v5p0-out";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		regulator-boot-on;
+		regulator-always-on;
+		/* Powered by system 20V rail (USBC_VBUS_IN) */
+	};
+
+	vreg_v3p3_out: regulator-v3p3-out {
+		compatible = "regulator-fixed";
+		regulator-name = "vreg-v3p3-out";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		vin-supply = <&vreg_v5p0_out>;
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	vreg_v1p8_out: regulator-v1p8-out {
+		compatible = "regulator-fixed";
+		regulator-name = "vreg-v1p8-out";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		vin-supply = <&vreg_v5p0_out>;
+		regulator-boot-on;
+		regulator-always-on;
+	};
+};
+
+&i2c1 {
+	clock-frequency = <400000>;
+
+	status = "okay";
+
+	bridge: bridge@3d {
+		compatible = "adi,adv7535";
+		reg = <0x3d>;
+		avdd-supply = <&vreg_v1p8_out>;
+		dvdd-supply = <&vreg_v1p8_out>;
+		pvdd-supply = <&vreg_v1p8_out>;
+		a2vdd-supply = <&vreg_v1p8_out>;
+		v3p3-supply = <&vreg_v3p3_out>;
+		interrupts-extended = <&tlmm 26 IRQ_TYPE_LEVEL_LOW>;
+		adi,dsi-lanes = <4>;
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				adv7535_in: endpoint {
+					remote-endpoint = <&mdss_dsi0_out>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+
+				adv7535_out: endpoint {
+					remote-endpoint = <&hdmi_con_out>;
+				};
+			};
+		};
+	};
+};
Signature · 1 line
2.34.1
Signature · 2 lines
With best wishes
Dmitry
maintainer
#4 lore raw

Re: [PATCH v6 2/2] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board

Quoted 6 lines · Dmitry Baryshkov
Quoted 1 line · Sudarshan Shetty

Introduce the device tree support for the QCS615-based talos-evk

You can't introduce DT _support_. It's either introducing a DT or supporting.

Quoted 7 lines
Quoted 3 lines

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-cb.

are those the actual names? I'd say, the platform is composed of the SoM (following some standard or not) and a Carrier Board.

That's likely accurate, but in the patch the "carrier board" includes the talos-evk-som.dtsi. So, while what you say probably is correct, "talos-evk-cb.dtsi" describes what I believe is actually the EVK.

Regards,
Bjorn

#5 lore raw

Re: [PATCH v6 2/2] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board

In reply to Dmitry Baryshkov
Quoted 5 lines · Dmitry Baryshkov
Quoted 1 line · Sudarshan Shetty

Introduce the device tree support for the QCS615-based talos-evk

You can't introduce DT _support_. It's either introducing a DT or supporting.

Understood, will take care in v7 patch.

Quoted 7 lines
Quoted 4 lines

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-cb.

are those the actual names? I'd say, the platform is composed of the SoM (following some standard or not) and a Carrier Board.

Okay, will update.

Quoted 6 lines
Quoted 3 lines

The Talos EVK platform supports multiple display configurations HDMI and LVDS that share a common carrier board design.

Other way, the Carrier Board supports several (not multiple) display configurations.

Okay, will update in v7 patch.

Quoted 6 lines
Quoted 4 lines

Both configurations use the same base carrier board hardware, while the display output is selected through hardware configuration options (DIP switch selection).

drop the "hardware configuration options". DIP-switch is enough.

Okay.

Quoted 5 lines
Quoted 3 lines

To avoid duplication, introduce a new include file,

s/introduce/use/

Okay.

Quoted 6 lines
Quoted 3 lines

talos-evk-cb.dtsi, which defines interfaces and peripherals that are common to both display variants.

... and two DTs, cb-hdmi and cb-lvds, describing the selected configuration.

Okay, will take care in v7 patch.

Quoted 5 lines
Quoted 3 lines

The initial device tree includes basic support for:

Can any of them be non-basic?

No.

Quoted 12 lines
Quoted 11 lines

- CPU and memory
- UART
- GPIOs
- Regulators
- PMIC
- Early console
- AT24MAC602 EEPROM
- MCP2515 SPI to CAN
- ADV7535 DSI-to-HDMI bridge
- DisplayPort

Quoted 2 lines

What else is present as a part of the platform? Are we missing something?

Ethernet, Wi-Fi/BT is still in development phase.
Will update in upcoming patches.

Quoted 310 lines
Quoted 310 lines
---
 arch/arm64/boot/dts/qcom/Makefile           |   1 +
 arch/arm64/boot/dts/qcom/talos-evk-cb.dtsi  |  56 +++
 arch/arm64/boot/dts/qcom/talos-evk-som.dtsi | 443 ++++++++++++++++++++
 arch/arm64/boot/dts/qcom/talos-evk.dts      |  89 ++++
 4 files changed, 589 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-cb.dtsi
 create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-som.dtsi
 create mode 100644 arch/arm64/boot/dts/qcom/talos-evk.dts
arch/arm64/boot/dts/qcom/Makefile +1 -0
index 5b52f9e4e5f3..282d744acd73 100644
@@ -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
arch/arm64/boot/dts/qcom/talos-evk-cb.dtsi new file +55 -0
new file mode 100644
index 000000000000..81d15ee4f366
@@ -0,0 +1,55 @@
+// 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;
+	};
+
+	dp-connector {
+		compatible = "dp-connector";
+		label = "DP0";
+		type = "full-size";
+
+		hpd-gpios = <&tlmm 104 GPIO_ACTIVE_HIGH>;
+
+		port {
+			dp0_connector_in: endpoint {
+				remote-endpoint = <&mdss_dp0_out>;
+			};
+		};
+	};
+};
+
+&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";
+};
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +218 -0
new file mode 100644
index 000000000000..9e6198892c11
@@ -0,0 +1,443 @@
+// 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>;
+		};
+	};
+
+	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>;
Quoted 8 lines

arch/arm64/boot/dts/qcom/talos-evk-som.dtsi line 224

Quoted 6 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +6 -0
+		};
+	};
+};
+
+&i2c5 {
+	status = "okay";

No clock-frequency? Why not add one, disabling the warning?

Understood, We will update in v7 patch.

Quoted 37 lines
Quoted 37 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +36 -0
+
+	eeprom@57 {
+		compatible = "atmel,24c02";
+		reg = <0x57>;
+		pagesize = <16>;
+	};
+
+	eeprom@5f {
+		compatible = "atmel,24mac602";
+		reg = <0x5f>;
+		pagesize = <16>;
+	};
+};
+
+&mdss {
+	status = "okay";
+};
+
+&mdss_dp0 {
+	status = "okay";
+};
+
+&mdss_dp0_out {
+	link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000>;
+	remote-endpoint = <&dp0_connector_in>;
+};
+
+&mdss_dp_phy {
+	vdda-phy-supply = <&vreg_l11a>;
+	vdda-pll-supply = <&vreg_l5a>;
+
+	status = "okay";
+};
+
+&mdss_dsi0 {
+	vdda-supply = <&vreg_l11a>;
Quoted 8 lines

arch/arm64/boot/dts/qcom/talos-evk-som.dtsi line 266

Quoted 6 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +6 -0
+
+	status = "okay";
+};
+
+&mdss_dsi0_out {
+	remote-endpoint = <&adv7535_in>;

If ADV7535 isn't a part of the SoM, why is this property here?

Okay, will move to talos-evk.dts file.

Quoted 33 lines
Quoted 33 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +32 -0
+	data-lanes = <0 1 2 3>;
+};
+
+&mdss_dsi0_phy {
+	vdds-supply = <&vreg_l5a>;
+
+	status = "okay";
+};
+
+&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>;
Quoted 8 lines

arch/arm64/boot/dts/qcom/talos-evk-som.dtsi line 304

Quoted 6 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +6 -0
+	};
+};
+
+&qupv3_id_0 {
+	status = "okay";
+};

Is there a need to also enable GPI_DMA?

Yes, will enable gpi_dma0 & gpi_dma1 in v7 patch.

Quoted 103 lines
Quoted 103 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +99 -0
+
+&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";
+
+	can@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";
+};
+
Quoted 8 lines

arch/arm64/boot/dts/qcom/talos-evk-som.dtsi line 408

Quoted 5 lines

+&usb_1_dwc3 {

arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +4 -0
+	dr_mode = "host";
+};
+
+&usb_hsphy_2 {

So, the labels are usb_1_hsphy, but usb_hsphy_2? That's not logical, please fix one of them. Then please fix the order of nodes here.

The node names come directly from the included talos.dtsi, where they are defined as usb_1_hsphy & usb_hsphy_2.
To avoid breaking inherited definitions, we kept the same labels in our board DTS.
However, I will reorder the nodes so they appear in a logical and consistent sequence.

Quoted 135 lines
Quoted 134 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +35 -0
+	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";
+};
arch/arm64/boot/dts/qcom/talos-evk.dts new file +89 -0
new file mode 100644
index 000000000000..b694dda422a8
@@ -0,0 +1,89 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+/dts-v1/;
+
+#include "talos-evk-cb.dtsi"
+
+/ {
+	hdmi-out {
+		compatible = "hdmi-connector";
+		type = "d";
+
+		port {
+			hdmi_con_out: endpoint {
+				remote-endpoint = <&adv7535_out>;
+			};
+		};
+	};
+
+	vreg_v5p0_out: regulator-v5p0-out {
+		compatible = "regulator-fixed";
+		regulator-name = "vreg-v5p0-out";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		regulator-boot-on;
+		regulator-always-on;
+		/* Powered by system 20V rail (USBC_VBUS_IN) */
+	};
+
+	vreg_v3p3_out: regulator-v3p3-out {
+		compatible = "regulator-fixed";
+		regulator-name = "vreg-v3p3-out";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		vin-supply = <&vreg_v5p0_out>;
+		regulator-boot-on;
+		regulator-always-on;
+	};
+
+	vreg_v1p8_out: regulator-v1p8-out {
+		compatible = "regulator-fixed";
+		regulator-name = "vreg-v1p8-out";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		vin-supply = <&vreg_v5p0_out>;
+		regulator-boot-on;
+		regulator-always-on;
+	};
+};
+
+&i2c1 {
+	clock-frequency = <400000>;
+
+	status = "okay";
+
+	bridge: bridge@3d {
+		compatible = "adi,adv7535";
+		reg = <0x3d>;
+		avdd-supply = <&vreg_v1p8_out>;
+		dvdd-supply = <&vreg_v1p8_out>;
+		pvdd-supply = <&vreg_v1p8_out>;
+		a2vdd-supply = <&vreg_v1p8_out>;
+		v3p3-supply = <&vreg_v3p3_out>;
+		interrupts-extended = <&tlmm 26 IRQ_TYPE_LEVEL_LOW>;
+		adi,dsi-lanes = <4>;
+
+		ports {
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			port@0 {
+				reg = <0>;
+
+				adv7535_in: endpoint {
+					remote-endpoint = <&mdss_dsi0_out>;
+				};
+			};
+
+			port@1 {
+				reg = <1>;
+
+				adv7535_out: endpoint {
+					remote-endpoint = <&hdmi_con_out>;
+				};
+			};
+		};
+	};
+};
Signature · 1 line
2.34.1
#6 lore raw

Re: [PATCH v6 2/2] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board

Quoted 39 lines · On Tue, 18 Nov 2025 at 12:16, <[email protected]> wrote:
Quoted 26 lines · Dmitry Baryshkov
Quoted 24 lines · Sudarshan Shetty
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +24 -0
+
+&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";
+};
+
Quoted 8 lines

arch/arm64/boot/dts/qcom/talos-evk-som.dtsi line 408

Quoted 5 lines

+&usb_1_dwc3 {

arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +4 -0
+    dr_mode = "host";
+};
+
+&usb_hsphy_2 {

So, the labels are usb_1_hsphy, but usb_hsphy_2? That's not logical, please fix one of them. Then please fix the order of nodes here.

Quoted 4 lines

The node names come directly from the included talos.dtsi, where they are defined as usb_1_hsphy & usb_hsphy_2.
To avoid breaking inherited definitions, we kept the same labels in our board DTS.

Please fix them in the base DT.

Quoted 2 lines

However, I will reorder the nodes so they appear in a logical and consistent sequence.

This is a prerequisite, no questions.

Signature · 2 lines
With best wishes
Dmitry
#7 lore raw

Re: [PATCH v6 2/2] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board

Quoted 40 lines · Dmitry Baryshkov
Quoted 39 lines · On Tue, 18 Nov 2025 at 12:16, <[email protected]> wrote:
Quoted 34 lines · Dmitry Baryshkov
Quoted 19 lines · Sudarshan Shetty
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +19 -0
+
+&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";
+};

arch/arm64/boot/dts/qcom/talos-evk-som.dtsi line 408

Quoted 10 lines
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +10 -0
+
+&usb_1 {
+    status = "okay";
+};
+
+&usb_1_dwc3 {
+    dr_mode = "host";
+};
+
+&usb_hsphy_2 {

So, the labels are usb_1_hsphy, but usb_hsphy_2? That's not logical, please fix one of them. Then please fix the order of nodes here.

Quoted 7 lines
Quoted 4 lines

The node names come directly from the included talos.dtsi, where they are defined as usb_1_hsphy & usb_hsphy_2.
To avoid breaking inherited definitions, we kept the same labels in our board DTS.

Please fix them in the base DT.

The inconsistent naming originates from talos.dtsi, which is
outside the scope of this patch series. Modifying these labels
in our board DTS would break the inherited node references
from talos.dtsi. >> However, I will reorder the nodes so they appear in a logical and

Quoted 4 lines
Quoted 1 line

consistent sequence.

This is a prerequisite, no questions.

#8 lore raw

Re: [PATCH v6 2/2] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board

Quoted 48 lines · Anusha Ajithkumar
Quoted 45 lines · Dmitry Baryshkov
Quoted 43 lines · On Tue, 18 Nov 2025 at 12:16, <[email protected]> wrote:
Quoted 26 lines · Dmitry Baryshkov
Quoted 24 lines · Sudarshan Shetty
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +24 -0
+
+&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";
+};
+
Quoted 8 lines

arch/arm64/boot/dts/qcom/talos-evk-som.dtsi line 408

Quoted 5 lines

+&usb_1_dwc3 {

arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +4 -0
+    dr_mode = "host";
+};
+
+&usb_hsphy_2 {

So, the labels are usb_1_hsphy, but usb_hsphy_2? That's not logical, please fix one of them. Then please fix the order of nodes here.

The node names come directly from the included talos.dtsi, where they are defined as usb_1_hsphy & usb_hsphy_2.
To avoid breaking inherited definitions, we kept the same labels in our board DTS.

Quoted 7 lines
Quoted 2 lines

Please fix them in the base DT.

The inconsistent naming originates from talos.dtsi, which is
outside the scope of this patch series. Modifying these labels
in our board DTS would break the inherited node references
from talos.dtsi. >> However, I will reorder the nodes so they appear in a logical and

Please fix the base DT. There is no such thing as "out of scope".

Quoted 5 lines
Quoted 4 lines
Quoted 1 line

consistent sequence.

This is a prerequisite, no questions.

Signature · 2 lines
With best wishes
Dmitry
#9 lore raw

Re: [PATCH v6 2/2] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board

Quoted 52 lines · Dmitry Baryshkov
Quoted 51 lines · Anusha Ajithkumar
Quoted 47 lines · Dmitry Baryshkov
Quoted 39 lines · On Tue, 18 Nov 2025 at 12:16, <[email protected]> wrote:
Quoted 26 lines · Dmitry Baryshkov
Quoted 24 lines · Sudarshan Shetty
arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +24 -0
+
+&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";
+};
+
Quoted 8 lines

arch/arm64/boot/dts/qcom/talos-evk-som.dtsi line 408

Quoted 5 lines

+&usb_1_dwc3 {

arch/arm64/boot/dts/qcom/talos-evk-som.dtsi new file +4 -0
+    dr_mode = "host";
+};
+
+&usb_hsphy_2 {

So, the labels are usb_1_hsphy, but usb_hsphy_2? That's not logical, please fix one of them. Then please fix the order of nodes here.

Quoted 4 lines

The node names come directly from the included talos.dtsi, where they are defined as usb_1_hsphy & usb_hsphy_2.
To avoid breaking inherited definitions, we kept the same labels in our board DTS.

Please fix them in the base DT.

Quoted 7 lines
Quoted 4 lines

The inconsistent naming originates from talos.dtsi, which is
outside the scope of this patch series. Modifying these labels
in our board DTS would break the inherited node references
from talos.dtsi. >> However, I will reorder the nodes so they appear in a logical and

Please fix the base DT. There is no such thing as "out of scope".

Okay, will take care in the next patch.

Quoted 6 lines
Quoted 5 lines
Quoted 4 lines
Quoted 1 line

consistent sequence.

This is a prerequisite, no questions.