1*0e8011faSEmmanuel Vadot// SPDX-License-Identifier: BSD-3-Clause 2*0e8011faSEmmanuel Vadot/* 3*0e8011faSEmmanuel Vadot * Copyright (c) 2023-2024, Qualcomm Innovation Center, Inc. All rights reserved. 4*0e8011faSEmmanuel Vadot */ 5*0e8011faSEmmanuel Vadot 6*0e8011faSEmmanuel Vadot/dts-v1/; 7*0e8011faSEmmanuel Vadot 8*0e8011faSEmmanuel Vadot#include <dt-bindings/leds/common.h> 9*0e8011faSEmmanuel Vadot#include "qcs8550-aim300.dtsi" 10*0e8011faSEmmanuel Vadot#include "pm8010.dtsi" 11*0e8011faSEmmanuel Vadot#include "pmr735d_a.dtsi" 12*0e8011faSEmmanuel Vadot#include "pmr735d_b.dtsi" 13*0e8011faSEmmanuel Vadot 14*0e8011faSEmmanuel Vadot/ { 15*0e8011faSEmmanuel Vadot model = "Qualcomm Technologies, Inc. QCS8550 AIM300 AIOT"; 16*0e8011faSEmmanuel Vadot compatible = "qcom,qcs8550-aim300-aiot", "qcom,qcs8550-aim300", "qcom,qcs8550", 17*0e8011faSEmmanuel Vadot "qcom,sm8550"; 18*0e8011faSEmmanuel Vadot 19*0e8011faSEmmanuel Vadot aliases { 20*0e8011faSEmmanuel Vadot serial0 = &uart7; 21*0e8011faSEmmanuel Vadot }; 22*0e8011faSEmmanuel Vadot 23*0e8011faSEmmanuel Vadot chosen { 24*0e8011faSEmmanuel Vadot stdout-path = "serial0:115200n8"; 25*0e8011faSEmmanuel Vadot }; 26*0e8011faSEmmanuel Vadot 27*0e8011faSEmmanuel Vadot gpio-keys { 28*0e8011faSEmmanuel Vadot compatible = "gpio-keys"; 29*0e8011faSEmmanuel Vadot 30*0e8011faSEmmanuel Vadot pinctrl-0 = <&volume_up_n>; 31*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 32*0e8011faSEmmanuel Vadot 33*0e8011faSEmmanuel Vadot key-volume-up { 34*0e8011faSEmmanuel Vadot label = "Volume Up"; 35*0e8011faSEmmanuel Vadot debounce-interval = <15>; 36*0e8011faSEmmanuel Vadot gpios = <&pm8550_gpios 6 GPIO_ACTIVE_LOW>; 37*0e8011faSEmmanuel Vadot linux,code = <KEY_VOLUMEUP>; 38*0e8011faSEmmanuel Vadot linux,can-disable; 39*0e8011faSEmmanuel Vadot wakeup-source; 40*0e8011faSEmmanuel Vadot }; 41*0e8011faSEmmanuel Vadot }; 42*0e8011faSEmmanuel Vadot 43*0e8011faSEmmanuel Vadot pmic-glink { 44*0e8011faSEmmanuel Vadot compatible = "qcom,sm8550-pmic-glink", "qcom,pmic-glink"; 45*0e8011faSEmmanuel Vadot #address-cells = <1>; 46*0e8011faSEmmanuel Vadot #size-cells = <0>; 47*0e8011faSEmmanuel Vadot orientation-gpios = <&tlmm 11 GPIO_ACTIVE_HIGH>; 48*0e8011faSEmmanuel Vadot 49*0e8011faSEmmanuel Vadot connector@0 { 50*0e8011faSEmmanuel Vadot compatible = "usb-c-connector"; 51*0e8011faSEmmanuel Vadot reg = <0>; 52*0e8011faSEmmanuel Vadot power-role = "dual"; 53*0e8011faSEmmanuel Vadot data-role = "dual"; 54*0e8011faSEmmanuel Vadot 55*0e8011faSEmmanuel Vadot ports { 56*0e8011faSEmmanuel Vadot #address-cells = <1>; 57*0e8011faSEmmanuel Vadot #size-cells = <0>; 58*0e8011faSEmmanuel Vadot 59*0e8011faSEmmanuel Vadot port@0 { 60*0e8011faSEmmanuel Vadot reg = <0>; 61*0e8011faSEmmanuel Vadot 62*0e8011faSEmmanuel Vadot pmic_glink_hs_in: endpoint { 63*0e8011faSEmmanuel Vadot remote-endpoint = <&usb_1_dwc3_hs>; 64*0e8011faSEmmanuel Vadot }; 65*0e8011faSEmmanuel Vadot }; 66*0e8011faSEmmanuel Vadot 67*0e8011faSEmmanuel Vadot port@1 { 68*0e8011faSEmmanuel Vadot reg = <1>; 69*0e8011faSEmmanuel Vadot 70*0e8011faSEmmanuel Vadot pmic_glink_ss_in: endpoint { 71*0e8011faSEmmanuel Vadot remote-endpoint = <&redriver_ss_out>; 72*0e8011faSEmmanuel Vadot }; 73*0e8011faSEmmanuel Vadot }; 74*0e8011faSEmmanuel Vadot 75*0e8011faSEmmanuel Vadot port@2 { 76*0e8011faSEmmanuel Vadot reg = <2>; 77*0e8011faSEmmanuel Vadot 78*0e8011faSEmmanuel Vadot pmic_glink_sbu: endpoint { 79*0e8011faSEmmanuel Vadot remote-endpoint = <&fsa4480_sbu_mux>; 80*0e8011faSEmmanuel Vadot }; 81*0e8011faSEmmanuel Vadot }; 82*0e8011faSEmmanuel Vadot }; 83*0e8011faSEmmanuel Vadot }; 84*0e8011faSEmmanuel Vadot }; 85*0e8011faSEmmanuel Vadot 86*0e8011faSEmmanuel Vadot vph_pwr: regulator-vph-pwr { 87*0e8011faSEmmanuel Vadot compatible = "regulator-fixed"; 88*0e8011faSEmmanuel Vadot regulator-name = "vph_pwr"; 89*0e8011faSEmmanuel Vadot regulator-min-microvolt = <3700000>; 90*0e8011faSEmmanuel Vadot regulator-max-microvolt = <3700000>; 91*0e8011faSEmmanuel Vadot 92*0e8011faSEmmanuel Vadot regulator-always-on; 93*0e8011faSEmmanuel Vadot regulator-boot-on; 94*0e8011faSEmmanuel Vadot }; 95*0e8011faSEmmanuel Vadot}; 96*0e8011faSEmmanuel Vadot 97*0e8011faSEmmanuel Vadot&apps_rsc { 98*0e8011faSEmmanuel Vadot regulators-0 { 99*0e8011faSEmmanuel Vadot vdd-bob1-supply = <&vph_pwr>; 100*0e8011faSEmmanuel Vadot vdd-bob2-supply = <&vph_pwr>; 101*0e8011faSEmmanuel Vadot }; 102*0e8011faSEmmanuel Vadot 103*0e8011faSEmmanuel Vadot regulators-3 { 104*0e8011faSEmmanuel Vadot vdd-s4-supply = <&vph_pwr>; 105*0e8011faSEmmanuel Vadot vdd-s5-supply = <&vph_pwr>; 106*0e8011faSEmmanuel Vadot }; 107*0e8011faSEmmanuel Vadot 108*0e8011faSEmmanuel Vadot regulators-4 { 109*0e8011faSEmmanuel Vadot vdd-s4-supply = <&vph_pwr>; 110*0e8011faSEmmanuel Vadot }; 111*0e8011faSEmmanuel Vadot 112*0e8011faSEmmanuel Vadot regulators-5 { 113*0e8011faSEmmanuel Vadot vdd-s1-supply = <&vph_pwr>; 114*0e8011faSEmmanuel Vadot vdd-s2-supply = <&vph_pwr>; 115*0e8011faSEmmanuel Vadot vdd-s3-supply = <&vph_pwr>; 116*0e8011faSEmmanuel Vadot vdd-s4-supply = <&vph_pwr>; 117*0e8011faSEmmanuel Vadot vdd-s5-supply = <&vph_pwr>; 118*0e8011faSEmmanuel Vadot vdd-s6-supply = <&vph_pwr>; 119*0e8011faSEmmanuel Vadot }; 120*0e8011faSEmmanuel Vadot}; 121*0e8011faSEmmanuel Vadot 122*0e8011faSEmmanuel Vadot&i2c_hub_2 { 123*0e8011faSEmmanuel Vadot status = "okay"; 124*0e8011faSEmmanuel Vadot 125*0e8011faSEmmanuel Vadot typec-mux@42 { 126*0e8011faSEmmanuel Vadot compatible = "fcs,fsa4480"; 127*0e8011faSEmmanuel Vadot reg = <0x42>; 128*0e8011faSEmmanuel Vadot 129*0e8011faSEmmanuel Vadot vcc-supply = <&vreg_bob1>; 130*0e8011faSEmmanuel Vadot 131*0e8011faSEmmanuel Vadot mode-switch; 132*0e8011faSEmmanuel Vadot orientation-switch; 133*0e8011faSEmmanuel Vadot 134*0e8011faSEmmanuel Vadot port { 135*0e8011faSEmmanuel Vadot fsa4480_sbu_mux: endpoint { 136*0e8011faSEmmanuel Vadot remote-endpoint = <&pmic_glink_sbu>; 137*0e8011faSEmmanuel Vadot }; 138*0e8011faSEmmanuel Vadot }; 139*0e8011faSEmmanuel Vadot }; 140*0e8011faSEmmanuel Vadot 141*0e8011faSEmmanuel Vadot typec-retimer@1c { 142*0e8011faSEmmanuel Vadot compatible = "onnn,nb7vpq904m"; 143*0e8011faSEmmanuel Vadot reg = <0x1c>; 144*0e8011faSEmmanuel Vadot 145*0e8011faSEmmanuel Vadot vcc-supply = <&vreg_l15b_1p8>; 146*0e8011faSEmmanuel Vadot 147*0e8011faSEmmanuel Vadot orientation-switch; 148*0e8011faSEmmanuel Vadot retimer-switch; 149*0e8011faSEmmanuel Vadot 150*0e8011faSEmmanuel Vadot ports { 151*0e8011faSEmmanuel Vadot #address-cells = <1>; 152*0e8011faSEmmanuel Vadot #size-cells = <0>; 153*0e8011faSEmmanuel Vadot 154*0e8011faSEmmanuel Vadot port@0 { 155*0e8011faSEmmanuel Vadot reg = <0>; 156*0e8011faSEmmanuel Vadot 157*0e8011faSEmmanuel Vadot redriver_ss_out: endpoint { 158*0e8011faSEmmanuel Vadot remote-endpoint = <&pmic_glink_ss_in>; 159*0e8011faSEmmanuel Vadot }; 160*0e8011faSEmmanuel Vadot }; 161*0e8011faSEmmanuel Vadot 162*0e8011faSEmmanuel Vadot port@1 { 163*0e8011faSEmmanuel Vadot reg = <1>; 164*0e8011faSEmmanuel Vadot 165*0e8011faSEmmanuel Vadot redriver_ss_in: endpoint { 166*0e8011faSEmmanuel Vadot data-lanes = <3 2 1 0>; 167*0e8011faSEmmanuel Vadot remote-endpoint = <&usb_dp_qmpphy_out>; 168*0e8011faSEmmanuel Vadot }; 169*0e8011faSEmmanuel Vadot }; 170*0e8011faSEmmanuel Vadot }; 171*0e8011faSEmmanuel Vadot }; 172*0e8011faSEmmanuel Vadot}; 173*0e8011faSEmmanuel Vadot 174*0e8011faSEmmanuel Vadot&mdss_dsi0 { 175*0e8011faSEmmanuel Vadot status = "okay"; 176*0e8011faSEmmanuel Vadot 177*0e8011faSEmmanuel Vadot panel@0 { 178*0e8011faSEmmanuel Vadot compatible = "visionox,vtdr6130"; 179*0e8011faSEmmanuel Vadot reg = <0>; 180*0e8011faSEmmanuel Vadot 181*0e8011faSEmmanuel Vadot pinctrl-0 = <&dsi_active>, <&te_default>; 182*0e8011faSEmmanuel Vadot pinctrl-1 = <&dsi_suspend>, <&te_default>; 183*0e8011faSEmmanuel Vadot pinctrl-names = "default", "sleep"; 184*0e8011faSEmmanuel Vadot 185*0e8011faSEmmanuel Vadot reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>; 186*0e8011faSEmmanuel Vadot 187*0e8011faSEmmanuel Vadot vci-supply = <&vreg_l13b_3p0>; 188*0e8011faSEmmanuel Vadot vdd-supply = <&vreg_l11b_1p2>; 189*0e8011faSEmmanuel Vadot vddio-supply = <&vreg_l12b_1p8>; 190*0e8011faSEmmanuel Vadot 191*0e8011faSEmmanuel Vadot port { 192*0e8011faSEmmanuel Vadot panel0_in: endpoint { 193*0e8011faSEmmanuel Vadot remote-endpoint = <&mdss_dsi0_out>; 194*0e8011faSEmmanuel Vadot }; 195*0e8011faSEmmanuel Vadot }; 196*0e8011faSEmmanuel Vadot }; 197*0e8011faSEmmanuel Vadot}; 198*0e8011faSEmmanuel Vadot 199*0e8011faSEmmanuel Vadot&mdss_dsi0_out { 200*0e8011faSEmmanuel Vadot remote-endpoint = <&panel0_in>; 201*0e8011faSEmmanuel Vadot data-lanes = <0 1 2 3>; 202*0e8011faSEmmanuel Vadot}; 203*0e8011faSEmmanuel Vadot 204*0e8011faSEmmanuel Vadot&mdss_dsi0_phy { 205*0e8011faSEmmanuel Vadot status = "okay"; 206*0e8011faSEmmanuel Vadot}; 207*0e8011faSEmmanuel Vadot 208*0e8011faSEmmanuel Vadot&pcie0 { 209*0e8011faSEmmanuel Vadot status = "okay"; 210*0e8011faSEmmanuel Vadot}; 211*0e8011faSEmmanuel Vadot 212*0e8011faSEmmanuel Vadot&pcie0_phy { 213*0e8011faSEmmanuel Vadot status = "okay"; 214*0e8011faSEmmanuel Vadot}; 215*0e8011faSEmmanuel Vadot 216*0e8011faSEmmanuel Vadot&pcie1 { 217*0e8011faSEmmanuel Vadot status = "okay"; 218*0e8011faSEmmanuel Vadot}; 219*0e8011faSEmmanuel Vadot 220*0e8011faSEmmanuel Vadot&pcie1_phy { 221*0e8011faSEmmanuel Vadot status = "okay"; 222*0e8011faSEmmanuel Vadot}; 223*0e8011faSEmmanuel Vadot 224*0e8011faSEmmanuel Vadot&pm8550_gpios { 225*0e8011faSEmmanuel Vadot volume_up_n: volume-up-n-state { 226*0e8011faSEmmanuel Vadot pins = "gpio6"; 227*0e8011faSEmmanuel Vadot function = "normal"; 228*0e8011faSEmmanuel Vadot power-source = <1>; 229*0e8011faSEmmanuel Vadot bias-pull-up; 230*0e8011faSEmmanuel Vadot input-enable; 231*0e8011faSEmmanuel Vadot }; 232*0e8011faSEmmanuel Vadot}; 233*0e8011faSEmmanuel Vadot 234*0e8011faSEmmanuel Vadot&pon_pwrkey { 235*0e8011faSEmmanuel Vadot status = "okay"; 236*0e8011faSEmmanuel Vadot}; 237*0e8011faSEmmanuel Vadot 238*0e8011faSEmmanuel Vadot&pon_resin { 239*0e8011faSEmmanuel Vadot linux,code = <KEY_VOLUMEDOWN>; 240*0e8011faSEmmanuel Vadot 241*0e8011faSEmmanuel Vadot status = "okay"; 242*0e8011faSEmmanuel Vadot}; 243*0e8011faSEmmanuel Vadot 244*0e8011faSEmmanuel Vadot&qupv3_id_0 { 245*0e8011faSEmmanuel Vadot status = "okay"; 246*0e8011faSEmmanuel Vadot}; 247*0e8011faSEmmanuel Vadot 248*0e8011faSEmmanuel Vadot&remoteproc_adsp { 249*0e8011faSEmmanuel Vadot firmware-name = "qcom/qcs8550/adsp.mbn", 250*0e8011faSEmmanuel Vadot "qcom/qcs8550/adsp_dtb.mbn"; 251*0e8011faSEmmanuel Vadot status = "okay"; 252*0e8011faSEmmanuel Vadot}; 253*0e8011faSEmmanuel Vadot 254*0e8011faSEmmanuel Vadot&remoteproc_cdsp { 255*0e8011faSEmmanuel Vadot firmware-name = "qcom/qcs8550/cdsp.mbn", 256*0e8011faSEmmanuel Vadot "qcom/qcs8550/cdsp_dtb.mbn"; 257*0e8011faSEmmanuel Vadot status = "okay"; 258*0e8011faSEmmanuel Vadot}; 259*0e8011faSEmmanuel Vadot 260*0e8011faSEmmanuel Vadot&swr1 { 261*0e8011faSEmmanuel Vadot status = "okay"; 262*0e8011faSEmmanuel Vadot}; 263*0e8011faSEmmanuel Vadot 264*0e8011faSEmmanuel Vadot&swr2 { 265*0e8011faSEmmanuel Vadot status = "okay"; 266*0e8011faSEmmanuel Vadot}; 267*0e8011faSEmmanuel Vadot 268*0e8011faSEmmanuel Vadot&tlmm { 269*0e8011faSEmmanuel Vadot gpio-reserved-ranges = <32 8>; 270*0e8011faSEmmanuel Vadot 271*0e8011faSEmmanuel Vadot dsi_active: dsi-active-state { 272*0e8011faSEmmanuel Vadot pins = "gpio133"; 273*0e8011faSEmmanuel Vadot function = "gpio"; 274*0e8011faSEmmanuel Vadot drive-strength = <8>; 275*0e8011faSEmmanuel Vadot bias-disable; 276*0e8011faSEmmanuel Vadot }; 277*0e8011faSEmmanuel Vadot 278*0e8011faSEmmanuel Vadot dsi_suspend: dsi-suspend-state { 279*0e8011faSEmmanuel Vadot pins = "gpio133"; 280*0e8011faSEmmanuel Vadot function = "gpio"; 281*0e8011faSEmmanuel Vadot drive-strength = <2>; 282*0e8011faSEmmanuel Vadot bias-pull-down; 283*0e8011faSEmmanuel Vadot }; 284*0e8011faSEmmanuel Vadot 285*0e8011faSEmmanuel Vadot te_default: te-default-state { 286*0e8011faSEmmanuel Vadot pins = "gpio86"; 287*0e8011faSEmmanuel Vadot function = "mdp_vsync"; 288*0e8011faSEmmanuel Vadot drive-strength = <2>; 289*0e8011faSEmmanuel Vadot bias-pull-down; 290*0e8011faSEmmanuel Vadot }; 291*0e8011faSEmmanuel Vadot}; 292*0e8011faSEmmanuel Vadot 293*0e8011faSEmmanuel Vadot&uart7 { 294*0e8011faSEmmanuel Vadot status = "okay"; 295*0e8011faSEmmanuel Vadot}; 296*0e8011faSEmmanuel Vadot 297*0e8011faSEmmanuel Vadot&usb_1 { 298*0e8011faSEmmanuel Vadot status = "okay"; 299*0e8011faSEmmanuel Vadot}; 300*0e8011faSEmmanuel Vadot 301*0e8011faSEmmanuel Vadot&usb_1_dwc3_hs { 302*0e8011faSEmmanuel Vadot remote-endpoint = <&pmic_glink_hs_in>; 303*0e8011faSEmmanuel Vadot}; 304*0e8011faSEmmanuel Vadot 305*0e8011faSEmmanuel Vadot&usb_1_hsphy { 306*0e8011faSEmmanuel Vadot status = "okay"; 307*0e8011faSEmmanuel Vadot}; 308*0e8011faSEmmanuel Vadot 309*0e8011faSEmmanuel Vadot&usb_dp_qmpphy { 310*0e8011faSEmmanuel Vadot status = "okay"; 311*0e8011faSEmmanuel Vadot}; 312*0e8011faSEmmanuel Vadot 313*0e8011faSEmmanuel Vadot&usb_dp_qmpphy_out { 314*0e8011faSEmmanuel Vadot remote-endpoint = <&redriver_ss_in>; 315*0e8011faSEmmanuel Vadot}; 316