mirror-linux/arch/arm64/boot/dts/qcom/talos-evk-som.dtsi

618 lines
13 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// 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 controllers 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 hubs 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";
};