618 lines
13 KiB
Plaintext
618 lines
13 KiB
Plaintext
// 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";
|
||
};
|