* [PATCH v11 0/4] Add Qualcomm Technologies, Inc. Talos EVK SMARC support
@ 2026-01-09 9:52 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
` (4 more replies)
0 siblings, 5 replies; 18+ messages in thread
From: Sudarshan Shetty @ 2026-01-09 9:52 UTC (permalink / raw)
To: andersson, konradybcio
Cc: robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel,
Sudarshan Shetty
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=y, Size: 4929 bytes --]
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 v11:
- Fixed inconsistent USB PHY node naming in qcs615-ride.dts to
align with the expected naming convention. (suggested by
yuanjiey)
- Reordered properties in property-n and property-names for
consistency across DT files.
- Removed unnecessary output-low from the bt_en_state node.
- Used a &label_reference for hdmi_connector.
- Added pcieport0 device node, which is required for WLAN to
power on.
- No functional change in bindings file.
Changes in v10:
- This series extends the gpio-backlight driver and its DT bindings
to support multiple control GPIOs. (suggested by Dmitry)
- Addressed DT node labeling feedback.
- Polished overall device tree structure and minor formattings.
- Corrected pinctrl configuration for the active-low PERST# pin.
- Includes a fix for inconsistent USB PHY node naming in
talos.dtsi. (suggested by Dmitry)
- Enabled WiFi and Bluetooth functionality.
- Updated commit message.
- No functional change in bindings file.
Changes in v9:
- The updates in the following patch url is taken care in this
patch series.
https://lists.freedesktop.org/archives/dri-devel/2025-November/534473.html
- Ignore v8 patch
Changes in v8:
- This patch series depends on the below url
https://lists.freedesktop.org/archives/dri-devel/2025-November/534473.html
- Moved the contents of `talos-evk-cb.dtsi` to `talos-evk.dtsi`
which will describe all the standard configuration of the EVK.
- Introduced 'talos-evk-lvds-auo,g133han01.dtso' which has overlay
to disable HDMI and adds the LVDS-related on top of the base
dts file. (suggested by Bjorn)
- Ethernet and Wi-Fi/BT are not (yet) supported.
- Updated commit message.
- No functional change in bindings file.
Changes in v7:
- Added i2c clock frequency for i2c5 node.
- Moved adv7535 controller section to talos-evk.dts file.
- Reorder the usb nodes.
- GPI_DMA nodes added in the device tree files.
- No functional change in bindings file.
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,
Anusha
Sudarshan Shetty (4):
dt-bindings: arm: qcom: talos-evk: Add QCS615 Talos EVK SMARC platform
arm64: dts: qcom: talos: Fix inconsistent USB PHY node naming
arm64: dts: qcom: qcs615-ride: Fix USB PHY label reference
arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board
.../devicetree/bindings/arm/qcom.yaml | 1 +
arch/arm64/boot/dts/qcom/Makefile | 4 +
arch/arm64/boot/dts/qcom/qcs615-ride.dts | 2 +-
.../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 ++++
arch/arm64/boot/dts/qcom/talos.dtsi | 4 +-
7 files changed, 889 insertions(+), 3 deletions(-)
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
--
2.34.1
^ permalink raw reply [flat|nested] 18+ messages in thread* [PATCH v11 1/4] dt-bindings: arm: qcom: talos-evk: Add QCS615 Talos EVK SMARC platform 2026-01-09 9:52 [PATCH v11 0/4] Add Qualcomm Technologies, Inc. Talos EVK SMARC support Sudarshan Shetty @ 2026-01-09 9:52 ` Sudarshan Shetty 2026-01-09 9:52 ` [PATCH v11 2/4] arm64: dts: qcom: talos: Fix inconsistent USB PHY node naming Sudarshan Shetty ` (3 subsequent siblings) 4 siblings, 0 replies; 18+ messages in thread From: Sudarshan Shetty @ 2026-01-09 9:52 UTC (permalink / raw) To: andersson, konradybcio Cc: robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel, Sudarshan Shetty, Krzysztof Kozlowski Add binding support for the Qualcomm Technologies, Inc. Talos EVK SMARC platform based on the QCS615 SoC. Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> 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 4eb0a7a9ee4a..c081746636d1 100644 --- a/Documentation/devicetree/bindings/arm/qcom.yaml +++ b/Documentation/devicetree/bindings/arm/qcom.yaml @@ -876,6 +876,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] 18+ messages in thread
* [PATCH v11 2/4] arm64: dts: qcom: talos: Fix inconsistent USB PHY node naming 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 ` Sudarshan Shetty 2026-01-09 9:52 ` [PATCH v11 3/4] arm64: dts: qcom: qcs615-ride: Fix USB PHY label reference Sudarshan Shetty ` (2 subsequent siblings) 4 siblings, 0 replies; 18+ messages in thread From: Sudarshan Shetty @ 2026-01-09 9:52 UTC (permalink / raw) To: andersson, konradybcio Cc: robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel, Sudarshan Shetty, Dmitry Baryshkov The USB PHY nodes has inconsistent labels as 'usb_1_hspy' and 'usb_hsphy_2'. This patch renames them to follow a consistent naming scheme. No functional changes, only label renaming. Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com> --- arch/arm64/boot/dts/qcom/talos.dtsi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/talos.dtsi b/arch/arm64/boot/dts/qcom/talos.dtsi index 95d26e313622..c7dc507a50b5 100644 --- a/arch/arm64/boot/dts/qcom/talos.dtsi +++ b/arch/arm64/boot/dts/qcom/talos.dtsi @@ -4304,7 +4304,7 @@ osm_l3: interconnect@18321000 { #interconnect-cells = <1>; }; - usb_1_hsphy: phy@88e2000 { + usb_hsphy_1: phy@88e2000 { compatible = "qcom,qcs615-qusb2-phy"; reg = <0x0 0x88e2000 0x0 0x180>; @@ -4412,7 +4412,7 @@ usb_1_dwc3: usb@a600000 { iommus = <&apps_smmu 0x140 0x0>; interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>; - phys = <&usb_1_hsphy>, <&usb_qmpphy>; + phys = <&usb_hsphy_1>, <&usb_qmpphy>; phy-names = "usb2-phy", "usb3-phy"; snps,dis-u1-entry-quirk; -- 2.34.1 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v11 3/4] arm64: dts: qcom: qcs615-ride: Fix USB PHY label reference 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 ` Sudarshan Shetty 2026-01-09 9:59 ` Konrad Dybcio 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 15:31 ` [PATCH v11 0/4] Add Qualcomm Technologies, Inc. Talos EVK SMARC support Rob Herring 4 siblings, 1 reply; 18+ messages in thread From: Sudarshan Shetty @ 2026-01-09 9:52 UTC (permalink / raw) To: andersson, konradybcio Cc: robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel, Sudarshan Shetty Update the USB high-speed PHY label from 'usb_1_hsphy' to 'usb_hsphy_1' to maintain consistency with the naming convention used in talos.dtsi, where the second PHY is labeled 'usb_hsphy_2'. No functional changes, only label renaming. Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com> --- arch/arm64/boot/dts/qcom/qcs615-ride.dts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/qcs615-ride.dts b/arch/arm64/boot/dts/qcom/qcs615-ride.dts index be67eb173046..0ca6b50a6de1 100644 --- a/arch/arm64/boot/dts/qcom/qcs615-ride.dts +++ b/arch/arm64/boot/dts/qcom/qcs615-ride.dts @@ -609,7 +609,7 @@ bluetooth { }; }; -&usb_1_hsphy { +&usb_hsphy_1 { vdd-supply = <&vreg_l5a>; vdda-pll-supply = <&vreg_l12a>; vdda-phy-dpdm-supply = <&vreg_l13a>; -- 2.34.1 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH v11 3/4] arm64: dts: qcom: qcs615-ride: Fix USB PHY label reference 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 0 siblings, 1 reply; 18+ messages in thread From: Konrad Dybcio @ 2026-01-09 9:59 UTC (permalink / raw) To: Sudarshan Shetty, andersson, konradybcio Cc: robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel On 1/9/26 10:52 AM, Sudarshan Shetty wrote: > Update the USB high-speed PHY label from 'usb_1_hsphy' to > 'usb_hsphy_1' to maintain consistency with the naming > convention used in talos.dtsi, where the second PHY is > labeled 'usb_hsphy_2'. > > No functional changes, only label renaming. > > Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com> > --- > arch/arm64/boot/dts/qcom/qcs615-ride.dts | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/qcom/qcs615-ride.dts b/arch/arm64/boot/dts/qcom/qcs615-ride.dts > index be67eb173046..0ca6b50a6de1 100644 > --- a/arch/arm64/boot/dts/qcom/qcs615-ride.dts > +++ b/arch/arm64/boot/dts/qcom/qcs615-ride.dts > @@ -609,7 +609,7 @@ bluetooth { > }; > }; > > -&usb_1_hsphy { > +&usb_hsphy_1 { > vdd-supply = <&vreg_l5a>; > vdda-pll-supply = <&vreg_l12a>; > vdda-phy-dpdm-supply = <&vreg_l13a>; This must be squashed with patch 2, otherwise patch 2 is going to cause a build failure which must not happen at any point in the git history (to make bisecting possible) Konrad ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v11 3/4] arm64: dts: qcom: qcs615-ride: Fix USB PHY label reference 2026-01-09 9:59 ` Konrad Dybcio @ 2026-01-14 5:23 ` tessolveupstream 0 siblings, 0 replies; 18+ messages in thread From: tessolveupstream @ 2026-01-14 5:23 UTC (permalink / raw) To: Konrad Dybcio, andersson, konradybcio Cc: robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel On 09-01-2026 15:29, Konrad Dybcio wrote: > On 1/9/26 10:52 AM, Sudarshan Shetty wrote: >> Update the USB high-speed PHY label from 'usb_1_hsphy' to >> 'usb_hsphy_1' to maintain consistency with the naming >> convention used in talos.dtsi, where the second PHY is >> labeled 'usb_hsphy_2'. >> >> No functional changes, only label renaming. >> >> Signed-off-by: Sudarshan Shetty <tessolveupstream@gmail.com> >> --- >> arch/arm64/boot/dts/qcom/qcs615-ride.dts | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/arch/arm64/boot/dts/qcom/qcs615-ride.dts b/arch/arm64/boot/dts/qcom/qcs615-ride.dts >> index be67eb173046..0ca6b50a6de1 100644 >> --- a/arch/arm64/boot/dts/qcom/qcs615-ride.dts >> +++ b/arch/arm64/boot/dts/qcom/qcs615-ride.dts >> @@ -609,7 +609,7 @@ bluetooth { >> }; >> }; >> >> -&usb_1_hsphy { >> +&usb_hsphy_1 { >> vdd-supply = <&vreg_l5a>; >> vdda-pll-supply = <&vreg_l12a>; >> vdda-phy-dpdm-supply = <&vreg_l13a>; > > This must be squashed with patch 2, otherwise patch 2 is going to > cause a build failure which must not happen at any point in the > git history (to make bisecting possible) > Okay, I will squash these changes with patch 2 in the next patch series. > Konrad ^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH v11 4/4] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board 2026-01-09 9:52 [PATCH v11 0/4] Add Qualcomm Technologies, Inc. Talos EVK SMARC support Sudarshan Shetty ` (2 preceding siblings ...) 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:52 ` Sudarshan Shetty 2026-01-12 3:18 ` yuanjiey 2026-01-15 13:17 ` Qian Zhang 2026-01-12 15:31 ` [PATCH v11 0/4] Add Qualcomm Technologies, Inc. Talos EVK SMARC support Rob Herring 4 siblings, 2 replies; 18+ messages in thread From: Sudarshan Shetty @ 2026-01-09 9:52 UTC (permalink / raw) To: andersson, konradybcio Cc: robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel, Sudarshan Shetty, Dmitry Baryshkov 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>; + 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>; + enable-active-high; + pinctrl-0 = <&wifi_reg_en_pins_state>; + pinctrl-names = "default"; + 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>; + }; + }; +}; + +&gpi_dma0 { + status = "okay"; +}; + +&gpi_dma1 { + status = "okay"; +}; + +&i2c5 { + clock-frequency = <400000>; + status = "okay"; + + 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_dsi0 { + vdda-supply = <&vreg_l11a>; + status = "okay"; +}; + +&mdss_dsi0_phy { + vcca-supply = <&vreg_l5a>; + status = "okay"; +}; + +&pcie { + perst-gpios = <&tlmm 89 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"; +}; + +&pcie_port0 { + wifi@0 { + compatible = "pci17cb,1103"; + reg = <0x10000 0x0 0x0 0x0 0x0>; + + qcom,calibration-variant = "QC_QCS615_Ride"; + + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; + vddaon-supply = <&vreg_pmu_aon_0p59>; + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; + vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>; + vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>; + vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>; + }; +}; + +&pm8150_gpios { + usb2_en: usb2-en-state { + pins = "gpio10"; + 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"; + + can@0 { + compatible = "microchip,mcp2515"; + reg = <0>; + clocks = <&can_osc>; + interrupts-extended = <&tlmm 87 IRQ_TYPE_LEVEL_LOW>; + spi-max-frequency = <10000000>; + vdd-supply = <&vreg_v3p3_can>; + xceiver-supply = <&vreg_v5p0_can>; + }; +}; + +&tlmm { + bt_en_state: bt-en-state { + pins = "gpio85"; + function = "gpio"; + bias-pull-down; + }; + + pcie_default_state: pcie-default-state { + clkreq-pins { + pins = "gpio90"; + function = "pcie_clk_req"; + drive-strength = <2>; + bias-pull-up; + }; + + perst-pins { + pins = "gpio89"; + function = "gpio"; + drive-strength = <2>; + bias-disable; + }; + + wake-pins { + pins = "gpio100"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + wifi_reg_en_pins_state: wifi-reg-en-pins-state { + pins = "gpio91"; + function = "gpio"; + drive-strength = <8>; + output-high; + bias-pull-up; + }; + + wlan_en_state: wlan-en-state { + pins = "gpio84"; + function = "gpio"; + drive-strength = <16>; + bias-pull-down; + output-low; + }; +}; + +&uart0 { + status = "okay"; +}; + +&uart7 { + status = "okay"; + + bluetooth { + compatible = "qcom,wcn6855-bt"; + firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv"; + + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; + vddaon-supply = <&vreg_pmu_aon_0p59>; + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; + vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>; + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; + vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>; + }; +}; + +&usb_1 { + status = "okay"; +}; + +&usb_1_dwc3 { + dr_mode = "host"; +}; + +&usb_hsphy_1 { + 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"; +}; + +&usb_hsphy_2 { + 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_qmpphy_2 { + vdda-phy-supply = <&vreg_l11a>; + vdda-pll-supply = <&vreg_l5a>; + + status = "okay"; +}; + +&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..af100e22beee --- /dev/null +++ b/arch/arm64/boot/dts/qcom/talos-evk.dts @@ -0,0 +1,139 @@ +// 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; + }; + + dp0-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>; + }; + }; + }; + + hdmi_connector: hdmi-out { + compatible = "hdmi-connector"; + type = "d"; + + port { + hdmi_con_out: endpoint { + remote-endpoint = <&adv7535_out>; + }; + }; + }; + + 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; + }; + + 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_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) */ + }; +}; + +&i2c1 { + clock-frequency = <400000>; + status = "okay"; + + hdmi_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>; + }; + }; + }; + }; +}; + +&mdss_dsi0_out { + remote-endpoint = <&adv7535_in>; + data-lanes = <0 1 2 3>; +}; + +&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] 18+ messages in thread
* Re: [PATCH v11 4/4] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board 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 1 sibling, 1 reply; 18+ messages in thread From: yuanjiey @ 2026-01-12 3:18 UTC (permalink / raw) To: Sudarshan Shetty Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel On Fri, Jan 09, 2026 at 03:22:20PM +0530, 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 { power-supply, if be optional, need to modify dt-binding file. otherwise we will meet binding check error. > + 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>; ti,dsi-lanes, ti,lvds-format, ti,lvds-bpp, do we need these property? I don't see these property be used from kernel 6.6 to kernel 6.19. Thanks, Yuanjie > + 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>; > + 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>; > + enable-active-high; > + pinctrl-0 = <&wifi_reg_en_pins_state>; > + pinctrl-names = "default"; > + 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>; > + }; > + }; > +}; > + > +&gpi_dma0 { > + status = "okay"; > +}; > + > +&gpi_dma1 { > + status = "okay"; > +}; > + > +&i2c5 { > + clock-frequency = <400000>; > + status = "okay"; > + > + 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_dsi0 { > + vdda-supply = <&vreg_l11a>; > + status = "okay"; > +}; > + > +&mdss_dsi0_phy { > + vcca-supply = <&vreg_l5a>; > + status = "okay"; > +}; > + > +&pcie { > + perst-gpios = <&tlmm 89 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"; > +}; > + > +&pcie_port0 { > + wifi@0 { > + compatible = "pci17cb,1103"; > + reg = <0x10000 0x0 0x0 0x0 0x0>; > + > + qcom,calibration-variant = "QC_QCS615_Ride"; > + > + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; > + vddaon-supply = <&vreg_pmu_aon_0p59>; > + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; > + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; > + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; > + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; > + vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>; > + vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>; > + vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>; > + }; > +}; > + > +&pm8150_gpios { > + usb2_en: usb2-en-state { > + pins = "gpio10"; > + 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"; > + > + can@0 { > + compatible = "microchip,mcp2515"; > + reg = <0>; > + clocks = <&can_osc>; > + interrupts-extended = <&tlmm 87 IRQ_TYPE_LEVEL_LOW>; > + spi-max-frequency = <10000000>; > + vdd-supply = <&vreg_v3p3_can>; > + xceiver-supply = <&vreg_v5p0_can>; > + }; > +}; > + > +&tlmm { > + bt_en_state: bt-en-state { > + pins = "gpio85"; > + function = "gpio"; > + bias-pull-down; > + }; > + > + pcie_default_state: pcie-default-state { > + clkreq-pins { > + pins = "gpio90"; > + function = "pcie_clk_req"; > + drive-strength = <2>; > + bias-pull-up; > + }; > + > + perst-pins { > + pins = "gpio89"; > + function = "gpio"; > + drive-strength = <2>; > + bias-disable; > + }; > + > + wake-pins { > + pins = "gpio100"; > + function = "gpio"; > + drive-strength = <2>; > + bias-pull-up; > + }; > + }; > + > + wifi_reg_en_pins_state: wifi-reg-en-pins-state { > + pins = "gpio91"; > + function = "gpio"; > + drive-strength = <8>; > + output-high; > + bias-pull-up; > + }; > + > + wlan_en_state: wlan-en-state { > + pins = "gpio84"; > + function = "gpio"; > + drive-strength = <16>; > + bias-pull-down; > + output-low; > + }; > +}; > + > +&uart0 { > + status = "okay"; > +}; > + > +&uart7 { > + status = "okay"; > + > + bluetooth { > + compatible = "qcom,wcn6855-bt"; > + firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv"; > + > + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; > + vddaon-supply = <&vreg_pmu_aon_0p59>; > + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; > + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; > + vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>; > + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; > + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; > + vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>; > + }; > +}; > + > +&usb_1 { > + status = "okay"; > +}; > + > +&usb_1_dwc3 { > + dr_mode = "host"; > +}; > + > +&usb_hsphy_1 { > + 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"; > +}; > + > +&usb_hsphy_2 { > + 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_qmpphy_2 { > + vdda-phy-supply = <&vreg_l11a>; > + vdda-pll-supply = <&vreg_l5a>; > + > + status = "okay"; > +}; > + > +&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..af100e22beee > --- /dev/null > +++ b/arch/arm64/boot/dts/qcom/talos-evk.dts > @@ -0,0 +1,139 @@ > +// 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; > + }; > + > + dp0-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>; > + }; > + }; > + }; > + > + hdmi_connector: hdmi-out { > + compatible = "hdmi-connector"; > + type = "d"; > + > + port { > + hdmi_con_out: endpoint { > + remote-endpoint = <&adv7535_out>; > + }; > + }; > + }; > + > + 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; > + }; > + > + 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_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) */ > + }; > +}; > + > +&i2c1 { > + clock-frequency = <400000>; > + status = "okay"; > + > + hdmi_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>; > + }; > + }; > + }; > + }; > +}; > + > +&mdss_dsi0_out { > + remote-endpoint = <&adv7535_in>; > + data-lanes = <0 1 2 3>; > +}; > + > +&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 [flat|nested] 18+ messages in thread
* Re: [PATCH v11 4/4] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board 2026-01-12 3:18 ` yuanjiey @ 2026-01-14 9:02 ` tessolveupstream 0 siblings, 0 replies; 18+ messages in thread From: tessolveupstream @ 2026-01-14 9:02 UTC (permalink / raw) To: yuanjiey Cc: andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel On 12-01-2026 08:48, yuanjiey wrote: > On Fri, Jan 09, 2026 at 03:22:20PM +0530, 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 { > power-supply, if be optional, need to modify dt-binding file. > otherwise we will meet binding check error. Okay, got it. I will make necessary changes in the next patchset so that the binding check passes. > >> + 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>; > > ti,dsi-lanes, ti,lvds-format, ti,lvds-bpp, do we need these property? > I don't see these property be used from kernel 6.6 to kernel 6.19. > Will drop these ti,dsi-lanes, ti,lvds-format, and ti,lvds-bpp properties in the next patchset. > > Thanks, > Yuanjie > > >> + 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>; >> + 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>; >> + enable-active-high; >> + pinctrl-0 = <&wifi_reg_en_pins_state>; >> + pinctrl-names = "default"; >> + 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>; >> + }; >> + }; >> +}; >> + >> +&gpi_dma0 { >> + status = "okay"; >> +}; >> + >> +&gpi_dma1 { >> + status = "okay"; >> +}; >> + >> +&i2c5 { >> + clock-frequency = <400000>; >> + status = "okay"; >> + >> + 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_dsi0 { >> + vdda-supply = <&vreg_l11a>; >> + status = "okay"; >> +}; >> + >> +&mdss_dsi0_phy { >> + vcca-supply = <&vreg_l5a>; >> + status = "okay"; >> +}; >> + >> +&pcie { >> + perst-gpios = <&tlmm 89 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"; >> +}; >> + >> +&pcie_port0 { >> + wifi@0 { >> + compatible = "pci17cb,1103"; >> + reg = <0x10000 0x0 0x0 0x0 0x0>; >> + >> + qcom,calibration-variant = "QC_QCS615_Ride"; >> + >> + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; >> + vddaon-supply = <&vreg_pmu_aon_0p59>; >> + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; >> + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; >> + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; >> + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; >> + vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>; >> + vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>; >> + vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>; >> + }; >> +}; >> + >> +&pm8150_gpios { >> + usb2_en: usb2-en-state { >> + pins = "gpio10"; >> + 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"; >> + >> + can@0 { >> + compatible = "microchip,mcp2515"; >> + reg = <0>; >> + clocks = <&can_osc>; >> + interrupts-extended = <&tlmm 87 IRQ_TYPE_LEVEL_LOW>; >> + spi-max-frequency = <10000000>; >> + vdd-supply = <&vreg_v3p3_can>; >> + xceiver-supply = <&vreg_v5p0_can>; >> + }; >> +}; >> + >> +&tlmm { >> + bt_en_state: bt-en-state { >> + pins = "gpio85"; >> + function = "gpio"; >> + bias-pull-down; >> + }; >> + >> + pcie_default_state: pcie-default-state { >> + clkreq-pins { >> + pins = "gpio90"; >> + function = "pcie_clk_req"; >> + drive-strength = <2>; >> + bias-pull-up; >> + }; >> + >> + perst-pins { >> + pins = "gpio89"; >> + function = "gpio"; >> + drive-strength = <2>; >> + bias-disable; >> + }; >> + >> + wake-pins { >> + pins = "gpio100"; >> + function = "gpio"; >> + drive-strength = <2>; >> + bias-pull-up; >> + }; >> + }; >> + >> + wifi_reg_en_pins_state: wifi-reg-en-pins-state { >> + pins = "gpio91"; >> + function = "gpio"; >> + drive-strength = <8>; >> + output-high; >> + bias-pull-up; >> + }; >> + >> + wlan_en_state: wlan-en-state { >> + pins = "gpio84"; >> + function = "gpio"; >> + drive-strength = <16>; >> + bias-pull-down; >> + output-low; >> + }; >> +}; >> + >> +&uart0 { >> + status = "okay"; >> +}; >> + >> +&uart7 { >> + status = "okay"; >> + >> + bluetooth { >> + compatible = "qcom,wcn6855-bt"; >> + firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv"; >> + >> + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; >> + vddaon-supply = <&vreg_pmu_aon_0p59>; >> + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; >> + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; >> + vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>; >> + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; >> + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; >> + vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>; >> + }; >> +}; >> + >> +&usb_1 { >> + status = "okay"; >> +}; >> + >> +&usb_1_dwc3 { >> + dr_mode = "host"; >> +}; >> + >> +&usb_hsphy_1 { >> + 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"; >> +}; >> + >> +&usb_hsphy_2 { >> + 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_qmpphy_2 { >> + vdda-phy-supply = <&vreg_l11a>; >> + vdda-pll-supply = <&vreg_l5a>; >> + >> + status = "okay"; >> +}; >> + >> +&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..af100e22beee >> --- /dev/null >> +++ b/arch/arm64/boot/dts/qcom/talos-evk.dts >> @@ -0,0 +1,139 @@ >> +// 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; >> + }; >> + >> + dp0-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>; >> + }; >> + }; >> + }; >> + >> + hdmi_connector: hdmi-out { >> + compatible = "hdmi-connector"; >> + type = "d"; >> + >> + port { >> + hdmi_con_out: endpoint { >> + remote-endpoint = <&adv7535_out>; >> + }; >> + }; >> + }; >> + >> + 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; >> + }; >> + >> + 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_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) */ >> + }; >> +}; >> + >> +&i2c1 { >> + clock-frequency = <400000>; >> + status = "okay"; >> + >> + hdmi_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>; >> + }; >> + }; >> + }; >> + }; >> +}; >> + >> +&mdss_dsi0_out { >> + remote-endpoint = <&adv7535_in>; >> + data-lanes = <0 1 2 3>; >> +}; >> + >> +&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 [flat|nested] 18+ messages in thread
* Re: [PATCH v11 4/4] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board 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-15 13:17 ` Qian Zhang 2026-01-16 6:58 ` tessolveupstream 1 sibling, 1 reply; 18+ messages in thread From: Qian Zhang @ 2026-01-15 13:17 UTC (permalink / raw) To: Sudarshan Shetty, andersson, konradybcio Cc: robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel, Dmitry Baryshkov 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? > + > +&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>; > + }; > + }; > +}; > + > +&gpi_dma0 { > + status = "okay"; > +}; > + > +&gpi_dma1 { > + status = "okay"; > +}; > + > +&i2c5 { > + clock-frequency = <400000>; > + status = "okay"; > + > + 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_dsi0 { > + vdda-supply = <&vreg_l11a>; > + status = "okay"; > +}; > + > +&mdss_dsi0_phy { > + vcca-supply = <&vreg_l5a>; > + status = "okay"; > +}; > + > +&pcie { > + perst-gpios = <&tlmm 89 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"; > +}; > + > +&pcie_port0 { > + wifi@0 { > + compatible = "pci17cb,1103"; This style of writing is not very readable. > + reg = <0x10000 0x0 0x0 0x0 0x0>; > + > + qcom,calibration-variant = "QC_QCS615_Ride"; > + > + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; > + vddaon-supply = <&vreg_pmu_aon_0p59>; > + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; > + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; > + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; > + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; > + vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>; > + vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>; > + vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>; > + }; > +}; > + > +&pm8150_gpios { > + usb2_en: usb2-en-state { > + pins = "gpio10"; > + 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"; > + > + can@0 { > + compatible = "microchip,mcp2515"; > + reg = <0>; > + clocks = <&can_osc>; > + interrupts-extended = <&tlmm 87 IRQ_TYPE_LEVEL_LOW>; > + spi-max-frequency = <10000000>; > + vdd-supply = <&vreg_v3p3_can>; > + xceiver-supply = <&vreg_v5p0_can>; > + }; > +}; > + > +&tlmm { > + bt_en_state: bt-en-state { > + pins = "gpio85"; > + function = "gpio"; > + bias-pull-down; > + }; > + > + pcie_default_state: pcie-default-state { > + clkreq-pins { > + pins = "gpio90"; > + function = "pcie_clk_req"; > + drive-strength = <2>; > + bias-pull-up; > + }; > + > + perst-pins { > + pins = "gpio89"; > + function = "gpio"; > + drive-strength = <2>; > + bias-disable; > + }; > + > + wake-pins { > + pins = "gpio100"; > + function = "gpio"; > + drive-strength = <2>; > + bias-pull-up; > + }; > + }; > + > + wifi_reg_en_pins_state: wifi-reg-en-pins-state { > + pins = "gpio91"; > + function = "gpio"; > + drive-strength = <8>; > + output-high; > + bias-pull-up; > + }; > + > + wlan_en_state: wlan-en-state { > + pins = "gpio84"; > + function = "gpio"; > + drive-strength = <16>; > + bias-pull-down; > + output-low; > + }; > +}; > + > +&uart0 { > + status = "okay"; > +}; > + > +&uart7 { > + status = "okay"; > + > + bluetooth { > + compatible = "qcom,wcn6855-bt"; > + firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv"; > + > + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; > + vddaon-supply = <&vreg_pmu_aon_0p59>; > + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; > + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; > + vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>; > + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; > + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; > + vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>; > + }; > +}; > + > +&usb_1 { > + status = "okay"; > +}; > + > +&usb_1_dwc3 { > + dr_mode = "host"; > +}; > + > +&usb_hsphy_1 { > + 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"; > +}; > + > +&usb_hsphy_2 { > + 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_qmpphy_2 { > + vdda-phy-supply = <&vreg_l11a>; > + vdda-pll-supply = <&vreg_l5a>; > + > + status = "okay"; > +}; > + > +&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..af100e22beee > --- /dev/null > +++ b/arch/arm64/boot/dts/qcom/talos-evk.dts > @@ -0,0 +1,139 @@ > +// 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; > + }; > + > + dp0-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>; > + }; > + }; > + }; > + > + hdmi_connector: hdmi-out { > + compatible = "hdmi-connector"; > + type = "d"; > + > + port { > + hdmi_con_out: endpoint { > + remote-endpoint = <&adv7535_out>; > + }; > + }; > + }; > + > + 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; > + }; > + > + 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_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) */ > + }; > +}; > + > +&i2c1 { > + clock-frequency = <400000>; > + status = "okay"; > + > + hdmi_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>; > + }; > + }; > + }; > + }; > +}; > + > +&mdss_dsi0_out { > + remote-endpoint = <&adv7535_in>; > + data-lanes = <0 1 2 3>; > +}; > + > +&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"; > +}; ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v11 4/4] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board 2026-01-15 13:17 ` Qian Zhang @ 2026-01-16 6:58 ` tessolveupstream 2026-01-16 7:56 ` Dmitry Baryshkov 0 siblings, 1 reply; 18+ messages in thread From: tessolveupstream @ 2026-01-16 6:58 UTC (permalink / raw) To: Qian Zhang, andersson, konradybcio Cc: robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel, Dmitry Baryshkov 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; }; >> + >> +&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>; >> + }; >> + }; >> +}; >> + >> +&gpi_dma0 { >> + status = "okay"; >> +}; >> + >> +&gpi_dma1 { >> + status = "okay"; >> +}; >> + >> +&i2c5 { >> + clock-frequency = <400000>; >> + status = "okay"; >> + >> + 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_dsi0 { >> + vdda-supply = <&vreg_l11a>; >> + status = "okay"; >> +}; >> + >> +&mdss_dsi0_phy { >> + vcca-supply = <&vreg_l5a>; >> + status = "okay"; >> +}; >> + >> +&pcie { >> + perst-gpios = <&tlmm 89 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"; >> +}; >> + >> +&pcie_port0 { >> + wifi@0 { >> + compatible = "pci17cb,1103"; > > This style of writing is not very readable. > >> + reg = <0x10000 0x0 0x0 0x0 0x0>; >> + >> + qcom,calibration-variant = "QC_QCS615_Ride"; >> + >> + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; >> + vddaon-supply = <&vreg_pmu_aon_0p59>; >> + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; >> + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; >> + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; >> + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; >> + vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>; >> + vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>; >> + vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>; >> + }; >> +}; >> + >> +&pm8150_gpios { >> + usb2_en: usb2-en-state { >> + pins = "gpio10"; >> + 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"; >> + >> + can@0 { >> + compatible = "microchip,mcp2515"; >> + reg = <0>; >> + clocks = <&can_osc>; >> + interrupts-extended = <&tlmm 87 IRQ_TYPE_LEVEL_LOW>; >> + spi-max-frequency = <10000000>; >> + vdd-supply = <&vreg_v3p3_can>; >> + xceiver-supply = <&vreg_v5p0_can>; >> + }; >> +}; >> + >> +&tlmm { >> + bt_en_state: bt-en-state { >> + pins = "gpio85"; >> + function = "gpio"; >> + bias-pull-down; >> + }; >> + >> + pcie_default_state: pcie-default-state { >> + clkreq-pins { >> + pins = "gpio90"; >> + function = "pcie_clk_req"; >> + drive-strength = <2>; >> + bias-pull-up; >> + }; >> + >> + perst-pins { >> + pins = "gpio89"; >> + function = "gpio"; >> + drive-strength = <2>; >> + bias-disable; >> + }; >> + >> + wake-pins { >> + pins = "gpio100"; >> + function = "gpio"; >> + drive-strength = <2>; >> + bias-pull-up; >> + }; >> + }; >> + >> + wifi_reg_en_pins_state: wifi-reg-en-pins-state { >> + pins = "gpio91"; >> + function = "gpio"; >> + drive-strength = <8>; >> + output-high; >> + bias-pull-up; >> + }; >> + >> + wlan_en_state: wlan-en-state { >> + pins = "gpio84"; >> + function = "gpio"; >> + drive-strength = <16>; >> + bias-pull-down; >> + output-low; >> + }; >> +}; >> + >> +&uart0 { >> + status = "okay"; >> +}; >> + >> +&uart7 { >> + status = "okay"; >> + >> + bluetooth { >> + compatible = "qcom,wcn6855-bt"; >> + firmware-name = "QCA6698/hpnv21", "QCA6698/hpbtfw21.tlv"; >> + >> + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>; >> + vddaon-supply = <&vreg_pmu_aon_0p59>; >> + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>; >> + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>; >> + vddbtcmx-supply = <&vreg_pmu_btcmx_0p85>; >> + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>; >> + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>; >> + vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>; >> + }; >> +}; >> + >> +&usb_1 { >> + status = "okay"; >> +}; >> + >> +&usb_1_dwc3 { >> + dr_mode = "host"; >> +}; >> + >> +&usb_hsphy_1 { >> + 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"; >> +}; >> + >> +&usb_hsphy_2 { >> + 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_qmpphy_2 { >> + vdda-phy-supply = <&vreg_l11a>; >> + vdda-pll-supply = <&vreg_l5a>; >> + >> + status = "okay"; >> +}; >> + >> +&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..af100e22beee >> --- /dev/null >> +++ b/arch/arm64/boot/dts/qcom/talos-evk.dts >> @@ -0,0 +1,139 @@ >> +// 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; >> + }; >> + >> + dp0-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>; >> + }; >> + }; >> + }; >> + >> + hdmi_connector: hdmi-out { >> + compatible = "hdmi-connector"; >> + type = "d"; >> + >> + port { >> + hdmi_con_out: endpoint { >> + remote-endpoint = <&adv7535_out>; >> + }; >> + }; >> + }; >> + >> + 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; >> + }; >> + >> + 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_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) */ >> + }; >> +}; >> + >> +&i2c1 { >> + clock-frequency = <400000>; >> + status = "okay"; >> + >> + hdmi_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>; >> + }; >> + }; >> + }; >> + }; >> +}; >> + >> +&mdss_dsi0_out { >> + remote-endpoint = <&adv7535_in>; >> + data-lanes = <0 1 2 3>; >> +}; >> + >> +&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"; >> +}; > ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v11 4/4] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board 2026-01-16 6:58 ` tessolveupstream @ 2026-01-16 7:56 ` Dmitry Baryshkov 2026-01-16 11:27 ` tessolveupstream 0 siblings, 1 reply; 18+ messages in thread From: Dmitry Baryshkov @ 2026-01-16 7:56 UTC (permalink / raw) To: tessolveupstream Cc: Qian Zhang, andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel 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. -- With best wishes Dmitry ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v11 4/4] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board 2026-01-16 7:56 ` Dmitry Baryshkov @ 2026-01-16 11:27 ` tessolveupstream 2026-01-16 11:49 ` Dmitry Baryshkov 0 siblings, 1 reply; 18+ messages in thread From: tessolveupstream @ 2026-01-16 11:27 UTC (permalink / raw) To: Dmitry Baryshkov Cc: Qian Zhang, andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel 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. ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v11 4/4] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board 2026-01-16 11:27 ` tessolveupstream @ 2026-01-16 11:49 ` Dmitry Baryshkov 2026-01-20 11:03 ` tessolveupstream 0 siblings, 1 reply; 18+ messages in thread From: Dmitry Baryshkov @ 2026-01-16 11:49 UTC (permalink / raw) To: tessolveupstream Cc: Qian Zhang, andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel On Fri, Jan 16, 2026 at 04:57:42PM +0530, tessolveupstream@gmail.com wrote: > > > 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. And gpiolib-shared.c should be able to support that. > > I described them as two separate regulator-fixed nodes since they > are different chips with different voltages. okay. > > 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. Why do you need an alternative? > > In AF68E module, 3.85V regulator powers VDD_PA_5G and 1.8V regulator > powers VDD_PA_2G. Do they power up the WCN6855 itself or some external PA present on the module? In the former case, those regulators should be consumed by the PMU, in the latter case, by the WiFi node. Anyway, they should not be left as always-on / boot-on. -- With best wishes Dmitry ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v11 4/4] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board 2026-01-16 11:49 ` Dmitry Baryshkov @ 2026-01-20 11:03 ` tessolveupstream 2026-01-20 22:57 ` Dmitry Baryshkov 0 siblings, 1 reply; 18+ messages in thread From: tessolveupstream @ 2026-01-20 11:03 UTC (permalink / raw) To: Dmitry Baryshkov Cc: Qian Zhang, andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel On 16-01-2026 17:19, Dmitry Baryshkov wrote: > On Fri, Jan 16, 2026 at 04:57:42PM +0530, tessolveupstream@gmail.com wrote: >> >> >> 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. > > And gpiolib-shared.c should be able to support that. > >> >> I described them as two separate regulator-fixed nodes since they >> are different chips with different voltages. > > okay. > >> >> 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. > > Why do you need an alternative? > >> >> In AF68E module, 3.85V regulator powers VDD_PA_5G and 1.8V regulator >> powers VDD_PA_2G. > > Do they power up the WCN6855 itself or some external PA present on the > module? In the former case, those regulators should be consumed by the > PMU, in the latter case, by the WiFi node. Anyway, they should not be > left as always-on / boot-on. > On this board, the GPIO-controlled regulators power the WCN6855 WiFi module itself (not an external PA). To model this correctly, I updated the device tree like this: a) I added a single upstream fixed regulator, wifi_vin, which represents the GPIO enable line (tlmm 91). This is the only node marked always-on, so the enable GPIO stays asserted. b) The downstream rails wifi_1p8v and wifi_3p85v are now defined as fixed regulators that depend on wifi_vin using vin-supply. They no longer control the GPIO directly. c) These two rails are then explicitly connected as supplies to the WiFi device node (wifi@0) using: 1. vddpaa-supply = <&wifi_3p85v>; 2. vddpab-supply = <&wifi_1p8v>; With this change, the regulators are not left as generic always-on/ boot-on supplies without a consumer. Instead, the WiFi device node consumes the rails, which matches the real hardware wiring: the GPIO enables power to the WCN6855 rails. Please find the updated changes below - could you please confirm whether this aligns with your expectations? diff --git a/arch/arm64/boot/dts/qcom/talos-evk-som.dtsi b/arch/arm64/boot/dts/qcom/talos-evk-som.dtsi index 95ed335bcb08..f37159af2375 100644 --- a/arch/arm64/boot/dts/qcom/talos-evk-som.dtsi +++ b/arch/arm64/boot/dts/qcom/talos-evk-som.dtsi @@ -146,29 +146,41 @@ vreg_pmu_pcie_1p8: ldo9 { }; }; - wifi_1p8v: regulator-wifi-1p8v { + /* Downstream rails controlled by the same GPIO */ + wifi_1p8v: regulator-1p8v { compatible = "regulator-fixed"; + regulator-name = "wifi_1p8v"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; - 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; + + vin-supply = <&wifi_vin>; }; - wifi_3p85v: regulator-wifi-3p85v { + wifi_3p85v: regulator-3p85v { compatible = "regulator-fixed"; + regulator-name = "wifi_3p85v"; regulator-min-microvolt = <3850000>; regulator-max-microvolt = <3850000>; - gpio = <&tlmm 91 GPIO_ACTIVE_HIGH>; + + vin-supply = <&wifi_vin>; + }; + + /* Upstream supply */ + wifi_vin: regulator-wifi-en { + compatible = "regulator-fixed"; + + regulator-name = "wifi_vin"; + regulator-min-microvolt = <3850000>; + regulator-max-microvolt = <3850000>; + enable-active-high; + gpio = <&tlmm 91 GPIO_ACTIVE_HIGH>; + pinctrl-0 = <&wifi_reg_en_pins_state>; pinctrl-names = "default"; - regulator-boot-on; + regulator-always-on; }; }; @@ -413,6 +425,9 @@ wifi@0 { vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>; vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>; vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>; + vddpaa-supply = <&wifi_3p85v>; + vddpab-supply = <&wifi_1p8v>; + }; }; ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH v11 4/4] arm64: dts: qcom: talos-evk: Add support for QCS615 talos evk board 2026-01-20 11:03 ` tessolveupstream @ 2026-01-20 22:57 ` Dmitry Baryshkov 0 siblings, 0 replies; 18+ messages in thread From: Dmitry Baryshkov @ 2026-01-20 22:57 UTC (permalink / raw) To: tessolveupstream Cc: Qian Zhang, andersson, konradybcio, robh, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel On Tue, Jan 20, 2026 at 04:33:28PM +0530, tessolveupstream@gmail.com wrote: > > > On 16-01-2026 17:19, Dmitry Baryshkov wrote: > > On Fri, Jan 16, 2026 at 04:57:42PM +0530, tessolveupstream@gmail.com wrote: > >> > >> > >> 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. > > > > And gpiolib-shared.c should be able to support that. > > > >> > >> I described them as two separate regulator-fixed nodes since they > >> are different chips with different voltages. > > > > okay. > > > >> > >> 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. > > > > Why do you need an alternative? > > > >> > >> In AF68E module, 3.85V regulator powers VDD_PA_5G and 1.8V regulator > >> powers VDD_PA_2G. > > > > Do they power up the WCN6855 itself or some external PA present on the > > module? In the former case, those regulators should be consumed by the > > PMU, in the latter case, by the WiFi node. Anyway, they should not be > > left as always-on / boot-on. > > > > On this board, the GPIO-controlled regulators power the WCN6855 > WiFi module itself (not an external PA). To model this correctly, > I updated the device tree like this: > > a) I added a single upstream fixed regulator, wifi_vin, which > represents the GPIO enable line (tlmm 91). This is the only node > marked always-on, so the enable GPIO stays asserted. Why? Is there such a regulator on the device? Why is it always-on? What if the user wants to turn WiFi off? If you have consumers, why do you need always-on at all? > b) The downstream rails wifi_1p8v and wifi_3p85v are now defined as > fixed regulators that depend on wifi_vin using vin-supply. They > no longer control the GPIO directly. Why? Does the shared GPIO mechanism fail here? If so, how? > c) These two rails are then explicitly connected as supplies to the > WiFi device node (wifi@0) using: > 1. vddpaa-supply = <&wifi_3p85v>; > 2. vddpab-supply = <&wifi_1p8v>; Are those documented? Which pin is this regulator connected to? > > With this change, the regulators are not left as generic always-on/ > boot-on supplies without a consumer. Instead, the WiFi device node > consumes the rails, which matches the real hardware wiring: the GPIO > enables power to the WCN6855 rails. > > Please find the updated changes below - could you please confirm > whether this aligns with your expectations? > > diff --git a/arch/arm64/boot/dts/qcom/talos-evk-som.dtsi b/arch/arm64/boot/dts/qcom/talos-evk-som.dtsi > index 95ed335bcb08..f37159af2375 100644 > --- a/arch/arm64/boot/dts/qcom/talos-evk-som.dtsi > +++ b/arch/arm64/boot/dts/qcom/talos-evk-som.dtsi > @@ -146,29 +146,41 @@ vreg_pmu_pcie_1p8: ldo9 { > }; > }; > > - wifi_1p8v: regulator-wifi-1p8v { > + /* Downstream rails controlled by the same GPIO */ > + wifi_1p8v: regulator-1p8v { > compatible = "regulator-fixed"; > + > regulator-name = "wifi_1p8v"; > regulator-min-microvolt = <1800000>; > regulator-max-microvolt = <1800000>; > - 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; > + > + vin-supply = <&wifi_vin>; > }; > > - wifi_3p85v: regulator-wifi-3p85v { > + wifi_3p85v: regulator-3p85v { > compatible = "regulator-fixed"; > + > regulator-name = "wifi_3p85v"; > regulator-min-microvolt = <3850000>; > regulator-max-microvolt = <3850000>; > - gpio = <&tlmm 91 GPIO_ACTIVE_HIGH>; > + > + vin-supply = <&wifi_vin>; > + }; > + > + /* Upstream supply */ > + wifi_vin: regulator-wifi-en { > + compatible = "regulator-fixed"; > + > + regulator-name = "wifi_vin"; > + regulator-min-microvolt = <3850000>; > + regulator-max-microvolt = <3850000>; > + > enable-active-high; > + gpio = <&tlmm 91 GPIO_ACTIVE_HIGH>; > + > pinctrl-0 = <&wifi_reg_en_pins_state>; > pinctrl-names = "default"; > - regulator-boot-on; > + > regulator-always-on; > }; > }; > @@ -413,6 +425,9 @@ wifi@0 { > vddrfa1p8-supply = <&vreg_pmu_rfa_1p7>; > vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>; > vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>; > + vddpaa-supply = <&wifi_3p85v>; > + vddpab-supply = <&wifi_1p8v>; > + > }; > }; > > > > -- With best wishes Dmitry ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v11 0/4] Add Qualcomm Technologies, Inc. Talos EVK SMARC support 2026-01-09 9:52 [PATCH v11 0/4] Add Qualcomm Technologies, Inc. Talos EVK SMARC support Sudarshan Shetty ` (3 preceding siblings ...) 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 15:31 ` Rob Herring 2026-01-14 5:29 ` tessolveupstream 4 siblings, 1 reply; 18+ messages in thread From: Rob Herring @ 2026-01-12 15:31 UTC (permalink / raw) To: Sudarshan Shetty Cc: andersson, konradybcio, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel On Fri, Jan 09, 2026 at 03:22:16PM +0530, Sudarshan Shetty wrote: > Hi all, From the mail headers: > Content-Type: text/plain; charset=y > Content-Transfer-Encoding: 8bit When git-send-email prompts you for which encoding to use, the correct answer is not 'y'. The default utf-8 is correct, so just hit enter. IIRC, newer git versions fixed this. Rob ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v11 0/4] Add Qualcomm Technologies, Inc. Talos EVK SMARC support 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 0 siblings, 0 replies; 18+ messages in thread From: tessolveupstream @ 2026-01-14 5:29 UTC (permalink / raw) To: Rob Herring Cc: andersson, konradybcio, krzk+dt, conor+dt, linux-arm-msm, devicetree, linux-kernel On 12-01-2026 21:01, Rob Herring wrote: > On Fri, Jan 09, 2026 at 03:22:16PM +0530, Sudarshan Shetty wrote: >> Hi all, > > From the mail headers: >> Content-Type: text/plain; charset=y >> Content-Transfer-Encoding: 8bit > > When git-send-email prompts you for which encoding to use, the correct > answer is not 'y'. The default utf-8 is correct, so just hit enter. > IIRC, newer git versions fixed this. > Okay, got it. > Rob ^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2026-01-20 22:58 UTC | newest] Thread overview: 18+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 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 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
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox