From: tessolveupstream@gmail.com
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: Qian Zhang <qian.zhang@oss.qualcomm.com>,
andersson@kernel.org, konradybcio@kernel.org, robh@kernel.org,
krzk+dt@kernel.org, conor+dt@kernel.org,
linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v11 4/4] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board
Date: Fri, 16 Jan 2026 16:57:42 +0530 [thread overview]
Message-ID: <3eba04f8-fd1e-46f7-a674-510ed6f48ed2@gmail.com> (raw)
In-Reply-To: <ei3zvx47jubvgrz25pemfeu6zt5be6dduqpllp5qyhbhqblvnp@c2tqv7hyicii>
On 16-01-2026 13:26, Dmitry Baryshkov wrote:
> On Fri, Jan 16, 2026 at 12:28:22PM +0530, tessolveupstream@gmail.com wrote:
>>
>>
>> On 15-01-2026 18:47, Qian Zhang wrote:
>>>
>>>
>>> On 1/9/2026 5:52 PM, Sudarshan Shetty wrote:
>>>> Add the device tree for the QCS615-based Talos EVK platform. The
>>>> platform is composed of a System-on-Module following the SMARC
>>>> standard, and a Carrier Board.
>>>>
>>>> The Carrier Board supports several display configurations, HDMI and
>>>> LVDS. Both configurations use the same base hardware, with the display
>>>> selection controlled by a DIP switch.
>>>>
>>>> Use a DTBO file, talos-evk-lvds-auo,g133han01.dtso, which defines an
>>>> overlay that disables HDMI and adds LVDS. The DTs file talos-evk
>>>> can describe the HDMI display configurations.
>>>>
>>>> The initial device tree includes support for:
>>>> - CPU and memory
>>>> - UART
>>>> - GPIOs
>>>> - Regulators
>>>> - PMIC
>>>> - Early console
>>>> - AT24MAC602 EEPROM
>>>> - MCP2515 SPI to CAN
>>>> - ADV7535 DSI-to-HDMI bridge
>>>> - DisplayPort interface
>>>> - SN65DSI84ZXHR DSI-to-LVDS bridge
>>>> - Wi-Fi/BT
>>>>
>>>> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
>>>> Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com>
>>>> ---
>>>> arch/arm64/boot/dts/qcom/Makefile | 4 +
>>>> .../qcom/talos-evk-lvds-auo,g133han01.dtso | 126 ++++
>>>> arch/arm64/boot/dts/qcom/talos-evk-som.dtsi | 616 ++++++++++++++++++
>>>> arch/arm64/boot/dts/qcom/talos-evk.dts | 139 ++++
>>>> 4 files changed, 885 insertions(+)
>>>> create mode 100644 arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso
>>>> 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 76cf0115a00a..289b651ef0c5 100644
>>>> --- a/arch/arm64/boot/dts/qcom/Makefile
>>>> +++ b/arch/arm64/boot/dts/qcom/Makefile
>>>> @@ -324,6 +324,10 @@ 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
>>>> +talos-evk-lvds-auo,g133han01-dtbs := \
>>>> + talos-evk.dtb talos-evk-lvds-auo,g133han01.dtbo
>>>> +dtb-$(CONFIG_ARCH_QCOM) += talos-evk-lvds-auo,g133han01.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-lvds-auo,g133han01.dtso b/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso
>>>> new file mode 100644
>>>> index 000000000000..ad058cf4cd93
>>>> --- /dev/null
>>>> +++ b/arch/arm64/boot/dts/qcom/talos-evk-lvds-auo,g133han01.dtso
>>>> @@ -0,0 +1,126 @@
>>>> +// SPDX-License-Identifier: BSD-3-Clause
>>>> +/*
>>>> + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
>>>> + */
>>>> +/dts-v1/;
>>>> +/plugin/;
>>>> +
>>>> +#include <dt-bindings/gpio/gpio.h>
>>>> +
>>>> +&{/} {
>>>> + backlight: backlight {
>>>> + compatible = "gpio-backlight";
>>>> + gpios = <&tlmm 59 GPIO_ACTIVE_HIGH>,
>>>> + <&tlmm 115 GPIO_ACTIVE_HIGH>;
>>>> + default-on;
>>>> + };
>>>> +
>>>> + panel-lvds {
>>>> + compatible = "auo,g133han01";
>>>> +
>>>> + ports {
>>>> + #address-cells = <1>;
>>>> + #size-cells = <0>;
>>>> +
>>>> + /* LVDS A (Odd pixels) */
>>>> + port@0 {
>>>> + reg = <0>;
>>>> + dual-lvds-odd-pixels;
>>>> +
>>>> + lvds_panel_out_a: endpoint {
>>>> + remote-endpoint = <&sn65dsi84_out_a>;
>>>> + };
>>>> + };
>>>> +
>>>> + /* LVDS B (Even pixels) */
>>>> + port@1 {
>>>> + reg = <1>;
>>>> + dual-lvds-even-pixels;
>>>> +
>>>> + lvds_panel_out_b: endpoint {
>>>> + remote-endpoint = <&sn65dsi84_out_b>;
>>>> + };
>>>> + };
>>>> + };
>>>> + };
>>>> +};
>>>> +
>>>> +&hdmi_connector {
>>>> + status = "disabled";
>>>> +};
>>>> +
>>>> +&i2c1 {
>>>> + clock-frequency = <400000>;
>>>> +
>>>> + status = "okay";
>>>> +
>>>> + hdmi_bridge: bridge@3d {
>>>> + status = "disabled";
>>>> + };
>>>> +
>>>> + lvds_bridge: bridge@2c {
>>>> + compatible = "ti,sn65dsi84";
>>>> + reg = <0x2c>;
>>>> + enable-gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>;
>>>> + ti,dsi-lanes = <4>;
>>>> + ti,lvds-format = "jeida-24";
>>>> + ti,lvds-bpp = <24>;
>>>> +
>>>> + ports {
>>>> + #address-cells = <1>;
>>>> + #size-cells = <0>;
>>>> +
>>>> + port@0 {
>>>> + reg = <0>;
>>>> +
>>>> + sn65dsi84_in: endpoint {
>>>> + data-lanes = <1 2 3 4>;
>>>> + remote-endpoint = <&mdss_dsi0_out>;
>>>> + };
>>>> + };
>>>> +
>>>> + port@2 {
>>>> + reg = <2>;
>>>> +
>>>> + sn65dsi84_out_a: endpoint {
>>>> + data-lanes = <1 2 3 4>;
>>>> + remote-endpoint = <&lvds_panel_out_a>;
>>>> + };
>>>> + };
>>>> +
>>>> + port@3 {
>>>> + reg = <3>;
>>>> +
>>>> + sn65dsi84_out_b: endpoint {
>>>> + data-lanes = <1 2 3 4>;
>>>> + remote-endpoint = <&lvds_panel_out_b>;
>>>> + };
>>>> + };
>>>> + };
>>>> + };
>>>> +};
>>>> +
>>>> +&mdss_dsi0 {
>>>> + vdda-supply = <&vreg_l11a>;
>>>> +
>>>> + status = "okay";
>>>> +};
>>>> +
>>>> +&mdss_dsi0_out {
>>>> + remote-endpoint = <&sn65dsi84_in>;
>>>> + data-lanes = <0 1 2 3>;
>>>> +};
>>>> +
>>>> +&tlmm {
>>>> + lcd_bklt_en: lcd-bklt-en-state {
>>>> + pins = "gpio115";
>>>> + function = "gpio";
>>>> + bias-disable;
>>>> + };
>>>> +
>>>> + lcd_bklt_pwm: lcd-bklt-pwm-state {
>>>> + pins = "gpio59";
>>>> + function = "gpio";
>>>> + bias-disable;
>>>> + };
>>>> +};
>>>> 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..95ed335bcb08
>>>> --- /dev/null
>>>> +++ b/arch/arm64/boot/dts/qcom/talos-evk-som.dtsi
>>>> @@ -0,0 +1,616 @@
>>>> +// 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 "talos.dtsi"
>>>> +#include "pm8150.dtsi"
>>>> +/ {
>>>> + aliases {
>>>> + mmc0 = &sdhc_1;
>>>> + serial0 = &uart0;
>>>> + serial1 = &uart7;
>>>> + };
>>>> +
>>>> + chosen {
>>>> + stdout-path = "serial0:115200n8";
>>>> + };
>>>> +
>>>> + clocks {
>>>> + can_osc: can-oscillator {
>>>> + compatible = "fixed-clock";
>>>> + clock-frequency = <20000000>;
>>>> + #clock-cells = <0>;
>>>> + };
>>>> +
>>>> + 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_conn_1p8: regulator-conn-1p8 {
>>>> + compatible = "regulator-fixed";
>>>> + regulator-name = "vreg_conn_1p8";
>>>> + startup-delay-us = <4000>;
>>>> + enable-active-high;
>>>> + gpio = <&pm8150_gpios 1 GPIO_ACTIVE_HIGH>;
>>>> + };
>>>> +
>>>> + vreg_conn_pa: regulator-conn-pa {
>>>> + compatible = "regulator-fixed";
>>>> + regulator-name = "vreg_conn_pa";
>>>> + startup-delay-us = <4000>;
>>>> + enable-active-high;
>>>> + gpio = <&pm8150_gpios 6 GPIO_ACTIVE_HIGH>;
>>>> + };
>>>> +
>>>> + 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;
>>>> + };
>>>> +
>>>> + wcn6855-pmu {
>>>> + compatible = "qcom,wcn6855-pmu";
>>>> +
>>>> + pinctrl-0 = <&bt_en_state>, <&wlan_en_state>;
>>>> + pinctrl-names = "default";
>>>> +
>>>> + bt-enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
>>>> + wlan-enable-gpios = <&tlmm 84 GPIO_ACTIVE_HIGH>;
>>>> +
>>>> + vddio-supply = <&vreg_conn_pa>;
>>>> + vddaon-supply = <&vreg_s5a>;
>>>> + vddpmu-supply = <&vreg_conn_1p8>;
>>>> + vddpmumx-supply = <&vreg_conn_1p8>;
>>>> + vddpmucx-supply = <&vreg_conn_pa>;
>>>> + vddrfa0p95-supply = <&vreg_s5a>;
>>>> + vddrfa1p3-supply = <&vreg_s6a>;
>>>> + vddrfa1p9-supply = <&vreg_l15a>;
>>>> + vddpcie1p3-supply = <&vreg_s6a>;
>>>> + vddpcie1p9-supply = <&vreg_l15a>;
>>>> +
>>>> + regulators {
>>>> + vreg_pmu_rfa_cmn: ldo0 {
>>>> + regulator-name = "vreg_pmu_rfa_cmn";
>>>> + };
>>>> +
>>>> + vreg_pmu_aon_0p59: ldo1 {
>>>> + regulator-name = "vreg_pmu_aon_0p59";
>>>> + };
>>>> +
>>>> + vreg_pmu_wlcx_0p8: ldo2 {
>>>> + regulator-name = "vreg_pmu_wlcx_0p8";
>>>> + };
>>>> +
>>>> + vreg_pmu_wlmx_0p85: ldo3 {
>>>> + regulator-name = "vreg_pmu_wlmx_0p85";
>>>> + };
>>>> +
>>>> + vreg_pmu_btcmx_0p85: ldo4 {
>>>> + regulator-name = "vreg_pmu_btcmx_0p85";
>>>> + };
>>>> +
>>>> + vreg_pmu_rfa_0p8: ldo5 {
>>>> + regulator-name = "vreg_pmu_rfa_0p8";
>>>> + };
>>>> +
>>>> + vreg_pmu_rfa_1p2: ldo6 {
>>>> + regulator-name = "vreg_pmu_rfa_1p2";
>>>> + };
>>>> +
>>>> + vreg_pmu_rfa_1p7: ldo7 {
>>>> + regulator-name = "vreg_pmu_rfa_1p7";
>>>> + };
>>>> +
>>>> + vreg_pmu_pcie_0p9: ldo8 {
>>>> + regulator-name = "vreg_pmu_pcie_0p9";
>>>> + };
>>>> +
>>>> + vreg_pmu_pcie_1p8: ldo9 {
>>>> + regulator-name = "vreg_pmu_pcie_1p8";
>>>> + };
>>>> + };
>>>> + };
>>>> +
>>>> + wifi_1p8v: regulator-wifi-1p8v {
>>>> + compatible = "regulator-fixed";
>>>> + regulator-name = "wifi_1p8v";
>>>> + regulator-min-microvolt = <1800000>;
>>>> + regulator-max-microvolt = <1800000>;
>>>> + gpio = <&tlmm 91 GPIO_ACTIVE_HIGH>;
>>> Please check this pin number
>>>> + enable-active-high;
>>>> + pinctrl-0 = <&wifi_reg_en_pins_state>;
>>>> + pinctrl-names = "default";
>>>> + regulator-boot-on;
>>>> + regulator-always-on;
>>>> + };
>>>> +
>>>> + wifi_3p85v: regulator-wifi-3p85v {
>>>> + compatible = "regulator-fixed";
>>>> + regulator-name = "wifi_3p85v";
>>>> + regulator-min-microvolt = <3850000>;
>>>> + regulator-max-microvolt = <3850000>;
>>>> + gpio = <&tlmm 91 GPIO_ACTIVE_HIGH>;
>>> Please check this pin number
>>>> + enable-active-high;
>>>> + pinctrl-0 = <&wifi_reg_en_pins_state>;
>>>> + pinctrl-names = "default";
>>>> + regulator-boot-on;
>>>> + regulator-always-on;
>>>> + };
>>>> +};
>>>
>>> Are these two node necessary?
>>>
>>
>> On this board, GPIO91 is wired as a common enable for both WiFi
>> power rails: WiFi 1.8V and WiFi 3.85V.
>> I currently modeled them as two regulator-fixed nodes because these
>> are two distinct rails.
>> Would you prefer modelling a single regulator node that controls the
>> shared GPIO as below:
>>
>> wifi_en: regulator-wifi-en {
>> compatible = "regulator-fixed";
>> regulator-name = "wifi_en";
>> gpio = <&tlmm 91 GPIO_ACTIVE_HIGH>;
>> enable-active-high;
>> pinctrl-0 = <&wifi_reg_en_pins_state>;
>> pinctrl-names = "default";
>> regulator-boot-on;
>> regulator-always-on;
>> };
>
> What is the voltage of this regulator? What does it represent? What
> should be represented in the DT?
>
> BTW: what is powered on by those regulators? I don't see them being
> wired to the PMU.
>
There are two separate TPS62130RGTR regulator ICs on the board:
One provides 1.8V and Another provides 3.85V.
Both regulators use the same enable signal (SOC_GPIO_91_S4A_1P8 -
GPIO91), which connects to their EN pins.
When GPIO91 goes high, both regulators switch on at the same
time.
I described them as two separate regulator-fixed nodes since they
are different chips with different voltages.
As an alternative, I suggested representing them as a single node
(based on the review comment from Qian Zhang) if you only want to
show the shared GPIO enable control instead of the individual
voltage rails.
In AF68E module, 3.85V regulator powers VDD_PA_5G and 1.8V regulator
powers VDD_PA_2G.
next prev parent reply other threads:[~2026-01-16 11:27 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-09 9:52 [PATCH v11 0/4] Add Qualcomm Technologies, Inc. Talos EVK SMARC support Sudarshan Shetty
2026-01-09 9:52 ` [PATCH v11 1/4] dt-bindings: arm: qcom: talos-evk: Add QCS615 Talos EVK SMARC platform Sudarshan Shetty
2026-01-09 9:52 ` [PATCH v11 2/4] arm64: dts: qcom: talos: Fix inconsistent USB PHY node naming Sudarshan Shetty
2026-01-09 9:52 ` [PATCH v11 3/4] arm64: dts: qcom: qcs615-ride: Fix USB PHY label reference Sudarshan Shetty
2026-01-09 9:59 ` Konrad Dybcio
2026-01-14 5:23 ` tessolveupstream
2026-01-09 9:52 ` [PATCH v11 4/4] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board Sudarshan Shetty
2026-01-12 3:18 ` yuanjiey
2026-01-14 9:02 ` tessolveupstream
2026-01-15 13:17 ` Qian Zhang
2026-01-16 6:58 ` tessolveupstream
2026-01-16 7:56 ` Dmitry Baryshkov
2026-01-16 11:27 ` tessolveupstream [this message]
2026-01-16 11:49 ` Dmitry Baryshkov
2026-01-20 11:03 ` tessolveupstream
2026-01-20 22:57 ` Dmitry Baryshkov
2026-01-12 15:31 ` [PATCH v11 0/4] Add Qualcomm Technologies, Inc. Talos EVK SMARC support Rob Herring
2026-01-14 5:29 ` tessolveupstream
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3eba04f8-fd1e-46f7-a674-510ed6f48ed2@gmail.com \
--to=tessolveupstream@gmail.com \
--cc=andersson@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dmitry.baryshkov@oss.qualcomm.com \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=qian.zhang@oss.qualcomm.com \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox