Files
linux-kernel/linux-7.2.3/arch/arm64/boot/dts/qcom/talos-evk-som.dtsi
T
2026-09-06 12:53:21 -06:00

618 lines
13 KiB
Devicetree
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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 {
i2c1 = &i2c1;
i2c5 = &i2c5;
mmc0 = &sdhc_1;
serial0 = &uart0;
serial1 = &uart7;
spi6 = &spi6;
};
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>;
};
};
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>;
};
regulator-usb2-vbus {
compatible = "regulator-fixed";
regulator-name = "USB2_VBUS";
gpio = <&pm8150_gpios 10 GPIO_ACTIVE_HIGH>;
pinctrl-0 = <&usb2_en>;
pinctrl-names = "default";
enable-active-high;
regulator-always-on;
};
vreg_v3p3_can: regulator-v3p3-can {
compatible = "regulator-fixed";
regulator-name = "vreg-v3p3-can";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
vreg_v5p0_can: regulator-v5p0-can {
compatible = "regulator-fixed";
regulator-name = "vreg-v5p0-can";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-boot-on;
regulator-always-on;
};
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";
};
};
};
};
&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;
};
cam1_reset_default: cam1-reset-default-state {
pins = "gpio29";
function = "gpio";
drive-strength = <2>;
bias-disable;
};
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-pull-down;
};
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-up;
};
};
&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>;
};
};
/*
* USB0 routing and EDL mode:
*
* The USB0 controller’s HS differential pair is switched (manually)
* between the Micro-USB port for EDL/ADB and the on-board USB 3.0 hub.
*
* During EDL (Emergency Download) mode, the HS lines are explicitly
* routed to the Micro-USB port to allow the SoC to enter device mode
* for flashing.
*
* After EDL the switch is normally toggled so the HS lines stay
* connected to the hub’s Type-A downstream ports, leaving no electrical
* path to the Micro-USB connector — therefore USB0 runs host-only in
* normal runtime and device mode must not be advertised.
*
* USB0 is configured host-only in the base device tree; a separate
* device-tree overlay enables the Micro-USB peripheral configuration for
* ADB. For ADB to work during normal runtime the DIP switch SW1 must be
* manually toggled to the off position (reconnecting the HS pair to the
* Micro-USB port).
*/
&usb_1 {
dr_mode = "host";
status = "okay";
};
&usb_1_hsphy {
vdd-supply = <&vreg_l5a>;
vdda-pll-supply = <&vreg_l12a>;
vdda-phy-dpdm-supply = <&vreg_l13a>;
status = "okay";
};
&usb_2 {
dr_mode = "host";
status = "okay";
};
&usb_2_hsphy {
vdd-supply = <&vreg_l5a>;
vdda-pll-supply = <&vreg_l12a>;
vdda-phy-dpdm-supply = <&vreg_l13a>;
status = "okay";
};
&usb_qmpphy {
vdda-phy-supply = <&vreg_l5a>;
vdda-pll-supply = <&vreg_l12a>;
status = "okay";
};
&usb_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";
};