blob: 2ee1b121686ae6fc101dc2d86a39a1d2eba35cef [file] [log] [blame]
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2020-2021, Linaro Limited
*/
/dts-v1/;
#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include "sm8350.dtsi"
/ {
model = "Qualcomm Technologies, Inc. SM8350 HDK";
compatible = "qcom,sm8350-hdk", "qcom,sm8350";
aliases {
serial0 = &uart2;
};
chosen {
stdout-path = "serial0:115200n8";
};
hdmi-connector {
compatible = "hdmi-connector";
type = "a";
port {
hdmi_con: endpoint {
remote-endpoint = <&lt9611_out>;
};
};
};
pmic-glink {
compatible = "qcom,sm8350-pmic-glink", "qcom,pmic-glink";
#address-cells = <1>;
#size-cells = <0>;
connector@0 {
compatible = "usb-c-connector";
reg = <0>;
power-role = "dual";
data-role = "dual";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
pmic_glink_hs_in: endpoint {
remote-endpoint = <&usb_1_dwc3_hs>;
};
};
port@1 {
reg = <1>;
pmic_glink_ss_in: endpoint {
remote-endpoint = <&usb_1_dwc3_ss>;
};
};
};
};
};
vph_pwr: vph-pwr-regulator {
compatible = "regulator-fixed";
regulator-name = "vph_pwr";
regulator-min-microvolt = <3700000>;
regulator-max-microvolt = <3700000>;
regulator-always-on;
regulator-boot-on;
};
lt9611_1v2: lt9611-1v2-regulator {
compatible = "regulator-fixed";
regulator-name = "LT9611_1V2";
vin-supply = <&vph_pwr>;
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
gpio = <&tlmm 49 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-boot-on;
};
lt9611_3v3: lt9611-3v3-regulator {
compatible = "regulator-fixed";
regulator-name = "LT9611_3V3";
vin-supply = <&vreg_bob>;
gpio = <&tlmm 47 GPIO_ACTIVE_HIGH>;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
enable-active-high;
regulator-boot-on;
regulator-always-on;
};
};
&adsp {
status = "okay";
firmware-name = "qcom/sm8350/adsp.mbn";
};
&apps_rsc {
regulators-0 {
compatible = "qcom,pm8350-rpmh-regulators";
qcom,pmic-id = "b";
vdd-s1-supply = <&vph_pwr>;
vdd-s2-supply = <&vph_pwr>;
vdd-s3-supply = <&vph_pwr>;
vdd-s4-supply = <&vph_pwr>;
vdd-s5-supply = <&vph_pwr>;
vdd-s6-supply = <&vph_pwr>;
vdd-s7-supply = <&vph_pwr>;
vdd-s8-supply = <&vph_pwr>;
vdd-s9-supply = <&vph_pwr>;
vdd-s10-supply = <&vph_pwr>;
vdd-s11-supply = <&vph_pwr>;
vdd-s12-supply = <&vph_pwr>;
vdd-l1-l4-supply = <&vreg_s11b_0p95>;
vdd-l2-l7-supply = <&vreg_bob>;
vdd-l3-l5-supply = <&vreg_bob>;
vdd-l6-l9-l10-supply = <&vreg_s11b_0p95>;
vreg_s10b_1p8: smps10 {
regulator-name = "vreg_s10b_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s11b_0p95: smps11 {
regulator-name = "vreg_s11b_0p95";
regulator-min-microvolt = <952000>;
regulator-max-microvolt = <952000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_s12b_1p25: smps12 {
regulator-name = "vreg_s12b_1p25";
regulator-min-microvolt = <1256000>;
regulator-max-microvolt = <1256000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l1b_0p88: ldo1 {
regulator-name = "vreg_l1b_0p88";
regulator-min-microvolt = <912000>;
regulator-max-microvolt = <920000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2b_3p07: ldo2 {
regulator-name = "vreg_l2b_3p07";
regulator-min-microvolt = <3072000>;
regulator-max-microvolt = <3072000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l3b_0p9: ldo3 {
regulator-name = "vreg_l3b_0p9";
regulator-min-microvolt = <904000>;
regulator-max-microvolt = <904000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l5b_0p88: ldo5 {
regulator-name = "vreg_l5b_0p88";
regulator-min-microvolt = <880000>;
regulator-max-microvolt = <888000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6b_1p2: ldo6 {
regulator-name = "vreg_l6b_1p2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1208000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l7b_2p96: ldo7 {
regulator-name = "vreg_l7b_2p96";
regulator-min-microvolt = <2504000>;
regulator-max-microvolt = <2504000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
vreg_l9b_1p2: ldo9 {
regulator-name = "vreg_l9b_1p2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
regulator-allow-set-load;
regulator-allowed-modes = <RPMH_REGULATOR_MODE_LPM
RPMH_REGULATOR_MODE_HPM>;
};
};
regulators-1 {
compatible = "qcom,pm8350c-rpmh-regulators";
qcom,pmic-id = "c";
vdd-s1-supply = <&vph_pwr>;
vdd-s2-supply = <&vph_pwr>;
vdd-s3-supply = <&vph_pwr>;
vdd-s4-supply = <&vph_pwr>;
vdd-s5-supply = <&vph_pwr>;
vdd-s6-supply = <&vph_pwr>;
vdd-s7-supply = <&vph_pwr>;
vdd-s8-supply = <&vph_pwr>;
vdd-s9-supply = <&vph_pwr>;
vdd-s10-supply = <&vph_pwr>;
vdd-l1-l12-supply = <&vreg_s1c_1p86>;
vdd-l2-l8-supply = <&vreg_s1c_1p86>;
vdd-l3-l4-l5-l7-l13-supply = <&vreg_bob>;
vdd-l6-l9-l11-supply = <&vreg_bob>;
vdd-l10-supply = <&vreg_s12b_1p25>;
vdd-bob-supply = <&vph_pwr>;
vreg_s1c_1p86: smps1 {
regulator-name = "vreg_s1c_1p86";
regulator-min-microvolt = <1856000>;
regulator-max-microvolt = <1880000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_bob: bob {
regulator-name = "vreg_bob";
regulator-min-microvolt = <3008000>;
regulator-max-microvolt = <3960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
};
vreg_l1c_1p8: ldo1 {
regulator-name = "vreg_l1c_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l2c_1p8: ldo2 {
regulator-name = "vreg_l2c_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l6c_1p8: ldo6 {
regulator-name = "vreg_l6c_1p8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2960000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l9c_2p96: ldo9 {
regulator-name = "vreg_l9c_2p96";
regulator-min-microvolt = <2960000>;
regulator-max-microvolt = <3008000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
vreg_l10c_1p2: ldo10 {
regulator-name = "vreg_l10c_1p2";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
};
};
};
&cdsp {
status = "okay";
firmware-name = "qcom/sm8350/cdsp.mbn";
};
&dispcc {
status = "okay";
};
&mdss_dsi0 {
vdda-supply = <&vreg_l6b_1p2>;
status = "okay";
ports {
port@1 {
endpoint {
remote-endpoint = <&lt9611_a>;
data-lanes = <0 1 2 3>;
};
};
};
};
&mdss_dsi0_phy {
vdds-supply = <&vreg_l5b_0p88>;
status = "okay";
};
&gpi_dma1 {
status = "okay";
};
&gpu {
status = "okay";
zap-shader {
firmware-name = "qcom/sm8350/a660_zap.mbn";
};
};
&i2c15 {
clock-frequency = <400000>;
status = "okay";
lt9611_codec: hdmi-bridge@2b {
compatible = "lontium,lt9611uxc";
reg = <0x2b>;
interrupts-extended = <&tlmm 50 IRQ_TYPE_EDGE_FALLING>;
reset-gpios = <&tlmm 48 GPIO_ACTIVE_HIGH>;
vdd-supply = <&lt9611_1v2>;
vcc-supply = <&lt9611_3v3>;
pinctrl-names = "default";
pinctrl-0 = <&lt9611_state>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
lt9611_a: endpoint {
remote-endpoint = <&mdss_dsi0_out>;
};
};
port@2 {
reg = <2>;
lt9611_out: endpoint {
remote-endpoint = <&hdmi_con>;
};
};
};
};
};
&mdss {
status = "okay";
};
&mdss_mdp {
status = "okay";
};
&mpss {
status = "okay";
firmware-name = "qcom/sm8350/modem.mbn";
};
&pcie0 {
pinctrl-names = "default";
pinctrl-0 = <&pcie0_default_state>;
perst-gpios = <&tlmm 94 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 96 GPIO_ACTIVE_HIGH>;
status = "okay";
};
&pcie0_phy {
vdda-phy-supply = <&vreg_l5b_0p88>;
vdda-pll-supply = <&vreg_l6b_1p2>;
status = "okay";
};
&pcie1 {
perst-gpios = <&tlmm 97 GPIO_ACTIVE_LOW>;
wake-gpios = <&tlmm 99 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pcie1_default_state>;
status = "okay";
};
&pcie1_phy {
status = "okay";
vdda-phy-supply = <&vreg_l5b_0p88>;
vdda-pll-supply = <&vreg_l6b_1p2>;
};
&qupv3_id_0 {
status = "okay";
};
&qupv3_id_2 {
status = "okay";
};
&slpi {
status = "okay";
firmware-name = "qcom/sm8350/slpi.mbn";
};
&tlmm {
gpio-reserved-ranges = <52 8>;
gpio-line-names =
"APPS_I2C_SDA", /* GPIO_0 */
"APPS_I2C_SCL",
"FSA_INT_N",
"USER_LED3_EN",
"SMBUS_SDA_1P8",
"SMBUS_SCL_1P8",
"2M2_3P3_EN",
"ALERT_DUAL_M2_N",
"EXP_UART_CTS",
"EXP_UART_RFR",
"EXP_UART_TX", /* GPIO_10 */
"EXP_UART_RX",
"NC",
"NC",
"RCM_MARKER1",
"WSA0_EN",
"CAM1_RESET_N",
"CAM0_RESET_N",
"DEBUG_UART_TX",
"DEBUG_UART_RX",
"TS_I2C_SDA", /* GPIO_20 */
"TS_I2C_SCL",
"TS_RESET_N",
"TS_INT_N",
"DISP0_RESET_N",
"DISP1_RESET_N",
"ETH_RESET",
"RCM_MARKER2",
"CAM_DC_MIPI_MUX_EN",
"CAM_DC_MIPI_MUX_SEL",
"AFC_PHY_TA_D_PLUS", /* GPIO_30 */
"AFC_PHY_TA_D_MINUS",
"PM8008_1_IRQ",
"PM8008_1_RESET_N",
"PM8008_2_IRQ",
"PM8008_2_RESET_N",
"CAM_DC_I3C_SDA",
"CAM_DC_I3C_SCL",
"FP_INT_N",
"FP_WUHB_INT_N",
"SMB_SPMI_DATA", /* GPIO_40 */
"SMB_SPMI_CLK",
"USB_HUB_RESET",
"FORCE_USB_BOOT",
"LRF_IRQ",
"NC",
"IMU2_INT",
"HDMI_3P3_EN",
"HDMI_RSTN",
"HDMI_1P2_EN",
"HDMI_INT", /* GPIO_50 */
"USB1_ID",
"FP_SPI_MISO",
"FP_SPI_MOSI",
"FP_SPI_CLK",
"FP_SPI_CS_N",
"NFC_ESE_SPI_MISO",
"NFC_ESE_SPI_MOSI",
"NFC_ESE_SPI_CLK",
"NFC_ESE_SPI_CS",
"NFC_I2C_SDA", /* GPIO_60 */
"NFC_I2C_SCLC",
"NFC_EN",
"NFC_CLK_REQ",
"HST_WLAN_EN",
"HST_BT_EN",
"HST_SW_CTRL",
"NC",
"HST_BT_UART_CTS",
"HST_BT_UART_RFR",
"HST_BT_UART_TX", /* GPIO_70 */
"HST_BT_UART_RX",
"CAM_DC_SPI0_MISO",
"CAM_DC_SPI0_MOSI",
"CAM_DC_SPI0_CLK",
"CAM_DC_SPI0_CS_N",
"CAM_DC_SPI1_MISO",
"CAM_DC_SPI1_MOSI",
"CAM_DC_SPI1_CLK",
"CAM_DC_SPI1_CS_N",
"HALL_INT_N", /* GPIO_80 */
"USB_PHY_PS",
"MDP_VSYNC_P",
"MDP_VSYNC_S",
"ETH_3P3_EN",
"RADAR_INT",
"NFC_DWL_REQ",
"SM_GPIO_87",
"WCD_RESET_N",
"ALSP_INT_N",
"PRESS_INT", /* GPIO_90 */
"SAR_INT_N",
"SD_CARD_DET_N",
"NC",
"PCIE0_RESET_N",
"PCIE0_CLK_REQ_N",
"PCIE0_WAKE_N",
"PCIE1_RESET_N",
"PCIE1_CLK_REQ_N",
"PCIE1_WAKE_N",
"CAM_MCLK0", /* GPIO_100 */
"CAM_MCLK1",
"CAM_MCLK2",
"CAM_MCLK3",
"CAM_MCLK4",
"CAM_MCLK5",
"CAM2_RESET_N",
"CCI_I2C0_SDA",
"CCI_I2C0_SCL",
"CCI_I2C1_SDA",
"CCI_I2C1_SCL", /* GPIO_110 */
"CCI_I2C2_SDA",
"CCI_I2C2_SCL",
"CCI_I2C3_SDA",
"CCI_I2C3_SCL",
"CAM5_RESET_N",
"CAM4_RESET_N",
"CAM3_RESET_N",
"IMU1_INT",
"MAG_INT_N",
"MI2S2_I2S_SCK", /* GPIO_120 */
"MI2S2_I2S_DAT0",
"MI2S2_I2S_WS",
"HIFI_DAC_I2S_MCLK",
"MI2S2_I2S_DAT1",
"HIFI_DAC_I2S_SCK",
"HIFI_DAC_I2S_DAT0",
"NC",
"HIFI_DAC_I2S_WS",
"HST_BT_WLAN_SLIMBUS_CLK",
"HST_BT_WLAN_SLIMBUS_DAT0", /* GPIO_130 */
"BT_LED_EN",
"WLAN_LED_EN",
"NC",
"NC",
"NC",
"UIM2_PRESENT",
"NC",
"NC",
"NC",
"UIM1_PRESENT", /* GPIO_140 */
"NC",
"SM_RFFE0_DATA",
"NC",
"SM_RFFE1_DATA",
"SM_MSS_GRFC4",
"SM_MSS_GRFC5",
"SM_MSS_GRFC6",
"SM_MSS_GRFC7",
"SM_RFFE4_CLK",
"SM_RFFE4_DATA", /* GPIO_150 */
"WLAN_COEX_UART1_RX",
"WLAN_COEX_UART1_TX",
"HST_SW_CTRL",
"DSI0_STATUS",
"DSI1_STATUS",
"APPS_PBL_BOOT_SPEED_1",
"APPS_BOOT_FROM_ROM",
"APPS_PBL_BOOT_SPEED_0",
"QLINK0_REQ",
"QLINK0_EN", /* GPIO_160 */
"QLINK0_WMSS_RESET_N",
"NC",
"NC",
"NC",
"NC",
"NC",
"NC",
"WCD_SWR_TX_CLK",
"WCD_SWR_TX_DATA0",
"WCD_SWR_TX_DATA1", /* GPIO_170 */
"WCD_SWR_RX_CLK",
"WCD_SWR_RX_DATA0",
"WCD_SWR_RX_DATA1",
"DMIC01_CLK",
"DMIC01_DATA",
"DMIC23_CLK",
"DMIC23_DATA",
"WSA_SWR_CLK",
"WSA_SWR_DATA",
"DMIC45_CLK", /* GPIO_180 */
"DMIC45_DATA",
"WCD_SWR_TX_DATA2",
"SENSOR_I3C_SDA",
"SENSOR_I3C_SCL",
"CAM_OIS0_I3C_SDA",
"CAM_OIS0_I3C_SCL",
"IMU_SPI_MISO",
"IMU_SPI_MOSI",
"IMU_SPI_CLK",
"IMU_SPI_CS_N", /* GPIO_190 */
"MAG_I2C_SDA",
"MAG_I2C_SCL",
"SENSOR_I2C_SDA",
"SENSOR_I2C_SCL",
"RADAR_SPI_MISO",
"RADAR_SPI_MOSI",
"RADAR_SPI_CLK",
"RADAR_SPI_CS_N",
"HST_BLE_UART_TX",
"HST_BLE_UART_RX", /* GPIO_200 */
"HST_WLAN_UART_TX",
"HST_WLAN_UART_RX";
pcie0_default_state: pcie0-default-state {
perst-pins {
pins = "gpio94";
function = "gpio";
drive-strength = <2>;
bias-pull-down;
};
clkreq-pins {
pins = "gpio95";
function = "pcie0_clkreqn";
drive-strength = <2>;
bias-pull-up;
};
wake-pins {
pins = "gpio96";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
};
};
pcie1_default_state: pcie1-default-state {
perst-pins {
pins = "gpio97";
function = "gpio";
drive-strength = <2>;
bias-pull-down;
};
clkreq-pins {
pins = "gpio98";
function = "pcie1_clkreqn";
drive-strength = <2>;
bias-pull-up;
};
wake-pins {
pins = "gpio99";
function = "gpio";
drive-strength = <2>;
bias-pull-up;
};
};
};
&uart2 {
status = "okay";
};
&ufs_mem_hc {
status = "okay";
reset-gpios = <&tlmm 203 GPIO_ACTIVE_LOW>;
vcc-supply = <&vreg_l7b_2p96>;
vcc-max-microamp = <800000>;
vccq-supply = <&vreg_l9b_1p2>;
vccq-max-microamp = <900000>;
};
&ufs_mem_phy {
status = "okay";
vdda-phy-supply = <&vreg_l5b_0p88>;
vdda-pll-supply = <&vreg_l6b_1p2>;
};
&usb_1 {
status = "okay";
};
&usb_1_dwc3 {
dr_mode = "otg";
usb-role-switch;
};
&usb_1_dwc3_hs {
remote-endpoint = <&pmic_glink_hs_in>;
};
&usb_1_dwc3_ss {
remote-endpoint = <&pmic_glink_ss_in>;
};
&usb_1_hsphy {
status = "okay";
vdda-pll-supply = <&vreg_l5b_0p88>;
vdda18-supply = <&vreg_l1c_1p8>;
vdda33-supply = <&vreg_l2b_3p07>;
};
&usb_1_qmpphy {
status = "okay";
vdda-phy-supply = <&vreg_l6b_1p2>;
vdda-pll-supply = <&vreg_l1b_0p88>;
};
&usb_2 {
status = "okay";
};
&usb_2_dwc3 {
dr_mode = "host";
pinctrl-names = "default";
pinctrl-0 = <&usb_hub_enabled_state>;
};
&usb_2_hsphy {
status = "okay";
vdda-pll-supply = <&vreg_l5b_0p88>;
vdda18-supply = <&vreg_l1c_1p8>;
vdda33-supply = <&vreg_l2b_3p07>;
};
&usb_2_qmpphy {
status = "okay";
vdda-phy-supply = <&vreg_l6b_1p2>;
vdda-pll-supply = <&vreg_l5b_0p88>;
};
/* PINCTRL - additions to nodes defined in sm8350.dtsi */
&tlmm {
usb_hub_enabled_state: usb-hub-enabled-state {
pins = "gpio42";
function = "gpio";
drive-strength = <2>;
output-low;
};
lt9611_state: lt9611-state {
rst-pins {
pins = "gpio48";
function = "gpio";
output-high;
input-disable;
};
irq-pins {
pins = "gpio50";
function = "gpio";
bias-disable;
};
};
};