1*5238f4e7SLoic Poulain// SPDX-License-Identifier: BSD-3-Clause 2*5238f4e7SLoic Poulain/* 3*5238f4e7SLoic Poulain * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. 4*5238f4e7SLoic Poulain */ 5*5238f4e7SLoic Poulain 6*5238f4e7SLoic Poulain#include <dt-bindings/regulator/qcom,rpmh-regulator.h> 7*5238f4e7SLoic Poulain 8*5238f4e7SLoic Poulain#include "monaco.dtsi" 9*5238f4e7SLoic Poulain#include "monaco-pmics.dtsi" 10*5238f4e7SLoic Poulain 11*5238f4e7SLoic Poulain/ { 12*5238f4e7SLoic Poulain /* This comes from a PMIC handled within the SAIL domain */ 13*5238f4e7SLoic Poulain vreg_s2s: vreg-s2s { 14*5238f4e7SLoic Poulain compatible = "regulator-fixed"; 15*5238f4e7SLoic Poulain regulator-name = "vreg_s2s"; 16*5238f4e7SLoic Poulain 17*5238f4e7SLoic Poulain regulator-min-microvolt = <1800000>; 18*5238f4e7SLoic Poulain regulator-max-microvolt = <1800000>; 19*5238f4e7SLoic Poulain }; 20*5238f4e7SLoic Poulain}; 21*5238f4e7SLoic Poulain 22*5238f4e7SLoic Poulain&apps_rsc { 23*5238f4e7SLoic Poulain regulators-0 { 24*5238f4e7SLoic Poulain compatible = "qcom,pmm8654au-rpmh-regulators"; 25*5238f4e7SLoic Poulain qcom,pmic-id = "a"; 26*5238f4e7SLoic Poulain 27*5238f4e7SLoic Poulain vreg_l3a: ldo3 { 28*5238f4e7SLoic Poulain regulator-name = "vreg_l3a"; 29*5238f4e7SLoic Poulain regulator-min-microvolt = <1200000>; 30*5238f4e7SLoic Poulain regulator-max-microvolt = <1200000>; 31*5238f4e7SLoic Poulain regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 32*5238f4e7SLoic Poulain regulator-allow-set-load; 33*5238f4e7SLoic Poulain regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>; 34*5238f4e7SLoic Poulain regulator-always-on; 35*5238f4e7SLoic Poulain }; 36*5238f4e7SLoic Poulain 37*5238f4e7SLoic Poulain vreg_l4a: ldo4 { 38*5238f4e7SLoic Poulain regulator-name = "vreg_l4a"; 39*5238f4e7SLoic Poulain regulator-min-microvolt = <880000>; 40*5238f4e7SLoic Poulain regulator-max-microvolt = <912000>; 41*5238f4e7SLoic Poulain regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 42*5238f4e7SLoic Poulain regulator-allow-set-load; 43*5238f4e7SLoic Poulain regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>; 44*5238f4e7SLoic Poulain }; 45*5238f4e7SLoic Poulain 46*5238f4e7SLoic Poulain vreg_l5a: ldo5 { 47*5238f4e7SLoic Poulain regulator-name = "vreg_l5a"; 48*5238f4e7SLoic Poulain regulator-min-microvolt = <1200000>; 49*5238f4e7SLoic Poulain regulator-max-microvolt = <1200000>; 50*5238f4e7SLoic Poulain regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 51*5238f4e7SLoic Poulain regulator-allow-set-load; 52*5238f4e7SLoic Poulain regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>; 53*5238f4e7SLoic Poulain }; 54*5238f4e7SLoic Poulain 55*5238f4e7SLoic Poulain vreg_l6a: ldo6 { 56*5238f4e7SLoic Poulain regulator-name = "vreg_l6a"; 57*5238f4e7SLoic Poulain regulator-min-microvolt = <880000>; 58*5238f4e7SLoic Poulain regulator-max-microvolt = <912000>; 59*5238f4e7SLoic Poulain regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 60*5238f4e7SLoic Poulain regulator-allow-set-load; 61*5238f4e7SLoic Poulain regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>; 62*5238f4e7SLoic Poulain }; 63*5238f4e7SLoic Poulain 64*5238f4e7SLoic Poulain vreg_l7a: ldo7 { 65*5238f4e7SLoic Poulain regulator-name = "vreg_l7a"; 66*5238f4e7SLoic Poulain regulator-min-microvolt = <880000>; 67*5238f4e7SLoic Poulain regulator-max-microvolt = <912000>; 68*5238f4e7SLoic Poulain regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 69*5238f4e7SLoic Poulain regulator-allow-set-load; 70*5238f4e7SLoic Poulain regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>; 71*5238f4e7SLoic Poulain }; 72*5238f4e7SLoic Poulain 73*5238f4e7SLoic Poulain vreg_l8a: ldo8 { 74*5238f4e7SLoic Poulain regulator-name = "vreg_l8a"; 75*5238f4e7SLoic Poulain regulator-min-microvolt = <2504000>; 76*5238f4e7SLoic Poulain regulator-max-microvolt = <2960000>; 77*5238f4e7SLoic Poulain regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 78*5238f4e7SLoic Poulain regulator-allow-set-load; 79*5238f4e7SLoic Poulain regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>; 80*5238f4e7SLoic Poulain }; 81*5238f4e7SLoic Poulain 82*5238f4e7SLoic Poulain vreg_l9a: ldo9 { 83*5238f4e7SLoic Poulain regulator-name = "vreg_l9a"; 84*5238f4e7SLoic Poulain regulator-min-microvolt = <2970000>; 85*5238f4e7SLoic Poulain regulator-max-microvolt = <3072000>; 86*5238f4e7SLoic Poulain regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 87*5238f4e7SLoic Poulain regulator-allow-set-load; 88*5238f4e7SLoic Poulain regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>; 89*5238f4e7SLoic Poulain }; 90*5238f4e7SLoic Poulain }; 91*5238f4e7SLoic Poulain 92*5238f4e7SLoic Poulain regulators-1 { 93*5238f4e7SLoic Poulain compatible = "qcom,pmm8654au-rpmh-regulators"; 94*5238f4e7SLoic Poulain qcom,pmic-id = "c"; 95*5238f4e7SLoic Poulain 96*5238f4e7SLoic Poulain vreg_s5c: smps5 { /* LPDDR VDD2H */ 97*5238f4e7SLoic Poulain regulator-name = "vreg_s5c"; 98*5238f4e7SLoic Poulain regulator-min-microvolt = <1104000>; 99*5238f4e7SLoic Poulain regulator-max-microvolt = <1104000>; 100*5238f4e7SLoic Poulain regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 101*5238f4e7SLoic Poulain }; 102*5238f4e7SLoic Poulain 103*5238f4e7SLoic Poulain vreg_l1c: ldo1 { /* LPDDR VDDQ */ 104*5238f4e7SLoic Poulain regulator-name = "vreg_l1c"; 105*5238f4e7SLoic Poulain regulator-min-microvolt = <300000>; 106*5238f4e7SLoic Poulain regulator-max-microvolt = <512000>; 107*5238f4e7SLoic Poulain regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 108*5238f4e7SLoic Poulain regulator-allow-set-load; 109*5238f4e7SLoic Poulain regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>; 110*5238f4e7SLoic Poulain }; 111*5238f4e7SLoic Poulain 112*5238f4e7SLoic Poulain vreg_l2c: ldo2 { /* LPDDR VDD2L */ 113*5238f4e7SLoic Poulain regulator-name = "vreg_l2c"; 114*5238f4e7SLoic Poulain regulator-min-microvolt = <900000>; 115*5238f4e7SLoic Poulain regulator-max-microvolt = <904000>; 116*5238f4e7SLoic Poulain regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 117*5238f4e7SLoic Poulain regulator-allow-set-load; 118*5238f4e7SLoic Poulain regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>; 119*5238f4e7SLoic Poulain }; 120*5238f4e7SLoic Poulain 121*5238f4e7SLoic Poulain vreg_l4c: ldo4 { 122*5238f4e7SLoic Poulain regulator-name = "vreg_l4c"; 123*5238f4e7SLoic Poulain regulator-min-microvolt = <1200000>; 124*5238f4e7SLoic Poulain regulator-max-microvolt = <1200000>; 125*5238f4e7SLoic Poulain regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 126*5238f4e7SLoic Poulain regulator-allow-set-load; 127*5238f4e7SLoic Poulain regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>; 128*5238f4e7SLoic Poulain }; 129*5238f4e7SLoic Poulain 130*5238f4e7SLoic Poulain vreg_l7c: ldo7 { 131*5238f4e7SLoic Poulain regulator-name = "vreg_l7c"; 132*5238f4e7SLoic Poulain regulator-min-microvolt = <1800000>; 133*5238f4e7SLoic Poulain regulator-max-microvolt = <1800000>; 134*5238f4e7SLoic Poulain regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 135*5238f4e7SLoic Poulain regulator-allow-set-load; 136*5238f4e7SLoic Poulain regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>; 137*5238f4e7SLoic Poulain }; 138*5238f4e7SLoic Poulain 139*5238f4e7SLoic Poulain vreg_l8c: ldo8 { /* LPDDR VDD1 */ 140*5238f4e7SLoic Poulain regulator-name = "vreg_l8c"; 141*5238f4e7SLoic Poulain regulator-min-microvolt = <1800000>; 142*5238f4e7SLoic Poulain regulator-max-microvolt = <1800000>; 143*5238f4e7SLoic Poulain regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 144*5238f4e7SLoic Poulain regulator-allow-set-load; 145*5238f4e7SLoic Poulain regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>; 146*5238f4e7SLoic Poulain }; 147*5238f4e7SLoic Poulain 148*5238f4e7SLoic Poulain vreg_l9c: ldo9 { /* QFPROM */ 149*5238f4e7SLoic Poulain regulator-name = "vreg_l9c"; 150*5238f4e7SLoic Poulain regulator-min-microvolt = <1800000>; 151*5238f4e7SLoic Poulain regulator-max-microvolt = <1800000>; 152*5238f4e7SLoic Poulain regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; 153*5238f4e7SLoic Poulain regulator-allow-set-load; 154*5238f4e7SLoic Poulain regulator-allowed-modes = <RPMH_REGULATOR_MODE_HPM>; 155*5238f4e7SLoic Poulain }; 156*5238f4e7SLoic Poulain }; 157*5238f4e7SLoic Poulain}; 158*5238f4e7SLoic Poulain 159*5238f4e7SLoic Poulain&mdss_dp0 { 160*5238f4e7SLoic Poulain pinctrl-0 = <&dp_hpd>; 161*5238f4e7SLoic Poulain pinctrl-names = "default"; 162*5238f4e7SLoic Poulain}; 163*5238f4e7SLoic Poulain 164*5238f4e7SLoic Poulain&mdss_dp0_phy { 165*5238f4e7SLoic Poulain vdda-phy-supply = <&vreg_l5a>; 166*5238f4e7SLoic Poulain vdda-pll-supply = <&vreg_l4a>; 167*5238f4e7SLoic Poulain}; 168*5238f4e7SLoic Poulain 169*5238f4e7SLoic Poulain&mdss_dsi0 { 170*5238f4e7SLoic Poulain vdda-supply = <&vreg_l5a>; 171*5238f4e7SLoic Poulain}; 172*5238f4e7SLoic Poulain 173*5238f4e7SLoic Poulain&mdss_dsi0_phy { 174*5238f4e7SLoic Poulain vdds-supply = <&vreg_l4a>; 175*5238f4e7SLoic Poulain}; 176*5238f4e7SLoic Poulain 177*5238f4e7SLoic Poulain&gpi_dma0 { 178*5238f4e7SLoic Poulain status = "okay"; 179*5238f4e7SLoic Poulain}; 180*5238f4e7SLoic Poulain 181*5238f4e7SLoic Poulain&gpi_dma1 { 182*5238f4e7SLoic Poulain status = "okay"; 183*5238f4e7SLoic Poulain}; 184*5238f4e7SLoic Poulain 185*5238f4e7SLoic Poulain&gpu { 186*5238f4e7SLoic Poulain status = "okay"; 187*5238f4e7SLoic Poulain}; 188*5238f4e7SLoic Poulain 189*5238f4e7SLoic Poulain&gpu_zap_shader { 190*5238f4e7SLoic Poulain firmware-name = "qcom/qcs8300/a623_zap.mbn"; 191*5238f4e7SLoic Poulain}; 192*5238f4e7SLoic Poulain 193*5238f4e7SLoic Poulain&iris { 194*5238f4e7SLoic Poulain status = "okay"; 195*5238f4e7SLoic Poulain}; 196*5238f4e7SLoic Poulain 197*5238f4e7SLoic Poulain/* PCIe0 Gen4 x2 */ 198*5238f4e7SLoic Poulain&pcie0 { 199*5238f4e7SLoic Poulain iommu-map = <0x0 &pcie_smmu 0x0000 0x1>, 200*5238f4e7SLoic Poulain <0x100 &pcie_smmu 0x0001 0x1>, 201*5238f4e7SLoic Poulain <0x200 &pcie_smmu 0x0007 0x1>, 202*5238f4e7SLoic Poulain <0x208 &pcie_smmu 0x0002 0x1>, 203*5238f4e7SLoic Poulain <0x210 &pcie_smmu 0x0003 0x1>, 204*5238f4e7SLoic Poulain <0x218 &pcie_smmu 0x0004 0x1>, 205*5238f4e7SLoic Poulain <0x300 &pcie_smmu 0x0005 0x1>, 206*5238f4e7SLoic Poulain <0x400 &pcie_smmu 0x0006 0x1>; 207*5238f4e7SLoic Poulain 208*5238f4e7SLoic Poulain status = "okay"; 209*5238f4e7SLoic Poulain}; 210*5238f4e7SLoic Poulain 211*5238f4e7SLoic Poulain&pcie0_phy { 212*5238f4e7SLoic Poulain vdda-phy-supply = <&vreg_l6a>; 213*5238f4e7SLoic Poulain vdda-pll-supply = <&vreg_l5a>; 214*5238f4e7SLoic Poulain 215*5238f4e7SLoic Poulain status = "okay"; 216*5238f4e7SLoic Poulain}; 217*5238f4e7SLoic Poulain 218*5238f4e7SLoic Poulain/* PCIe1 Gen4 x4 */ 219*5238f4e7SLoic Poulain&pcie1 { 220*5238f4e7SLoic Poulain status = "okay"; 221*5238f4e7SLoic Poulain}; 222*5238f4e7SLoic Poulain 223*5238f4e7SLoic Poulain&pcie1_phy { 224*5238f4e7SLoic Poulain vdda-phy-supply = <&vreg_l6a>; 225*5238f4e7SLoic Poulain vdda-pll-supply = <&vreg_l5a>; 226*5238f4e7SLoic Poulain 227*5238f4e7SLoic Poulain status = "okay"; 228*5238f4e7SLoic Poulain}; 229*5238f4e7SLoic Poulain 230*5238f4e7SLoic Poulain&qupv3_id_0 { 231*5238f4e7SLoic Poulain firmware-name = "qcom/qcs8300/qupv3fw.elf"; 232*5238f4e7SLoic Poulain 233*5238f4e7SLoic Poulain status = "okay"; 234*5238f4e7SLoic Poulain}; 235*5238f4e7SLoic Poulain 236*5238f4e7SLoic Poulain&qupv3_id_1 { 237*5238f4e7SLoic Poulain firmware-name = "qcom/qcs8300/qupv3fw.elf"; 238*5238f4e7SLoic Poulain status = "okay"; 239*5238f4e7SLoic Poulain}; 240*5238f4e7SLoic Poulain 241*5238f4e7SLoic Poulain/* There is a HW/FW issue preventing proper REFGEN hardware voting 242*5238f4e7SLoic Poulain * for the USB2 HS PHY. As a workaround, we force REFGEN to stay 243*5238f4e7SLoic Poulain * always‑on in software, matching initial bootloader config. 244*5238f4e7SLoic Poulain */ 245*5238f4e7SLoic Poulain&refgen { 246*5238f4e7SLoic Poulain regulator-always-on; 247*5238f4e7SLoic Poulain}; 248*5238f4e7SLoic Poulain 249*5238f4e7SLoic Poulain&remoteproc_adsp { 250*5238f4e7SLoic Poulain firmware-name = "qcom/qcs8300/adsp.mbn"; 251*5238f4e7SLoic Poulain 252*5238f4e7SLoic Poulain status = "okay"; 253*5238f4e7SLoic Poulain}; 254*5238f4e7SLoic Poulain 255*5238f4e7SLoic Poulain&remoteproc_cdsp { 256*5238f4e7SLoic Poulain firmware-name = "qcom/qcs8300/cdsp0.mbn"; 257*5238f4e7SLoic Poulain 258*5238f4e7SLoic Poulain status = "okay"; 259*5238f4e7SLoic Poulain}; 260*5238f4e7SLoic Poulain 261*5238f4e7SLoic Poulain&remoteproc_gpdsp { 262*5238f4e7SLoic Poulain firmware-name = "qcom/qcs8300/gpdsp0.mbn"; 263*5238f4e7SLoic Poulain 264*5238f4e7SLoic Poulain status = "okay"; 265*5238f4e7SLoic Poulain}; 266*5238f4e7SLoic Poulain 267*5238f4e7SLoic Poulain/* OnSom eMMC */ 268*5238f4e7SLoic Poulain&sdhc_1 { 269*5238f4e7SLoic Poulain vmmc-supply = <&vreg_l8a>; 270*5238f4e7SLoic Poulain vqmmc-supply = <&vreg_s2s>; 271*5238f4e7SLoic Poulain 272*5238f4e7SLoic Poulain bus-width = <8>; 273*5238f4e7SLoic Poulain mmc-ddr-1_8v; 274*5238f4e7SLoic Poulain mmc-hs200-1_8v; 275*5238f4e7SLoic Poulain mmc-hs400-1_8v; 276*5238f4e7SLoic Poulain mmc-hs400-enhanced-strobe; 277*5238f4e7SLoic Poulain 278*5238f4e7SLoic Poulain no-sd; 279*5238f4e7SLoic Poulain no-sdio; 280*5238f4e7SLoic Poulain non-removable; 281*5238f4e7SLoic Poulain 282*5238f4e7SLoic Poulain status = "okay"; 283*5238f4e7SLoic Poulain}; 284*5238f4e7SLoic Poulain 285*5238f4e7SLoic Poulain/* Ethernet/SGMII */ 286*5238f4e7SLoic Poulain&serdes0 { 287*5238f4e7SLoic Poulain phy-supply = <&vreg_l5a>; 288*5238f4e7SLoic Poulain 289*5238f4e7SLoic Poulain status = "okay"; 290*5238f4e7SLoic Poulain}; 291*5238f4e7SLoic Poulain 292*5238f4e7SLoic Poulain&tlmm { 293*5238f4e7SLoic Poulain dp_hpd: dp-hpd-state { 294*5238f4e7SLoic Poulain pins = "gpio94"; 295*5238f4e7SLoic Poulain function = "edp0_hot"; 296*5238f4e7SLoic Poulain bias-disable; 297*5238f4e7SLoic Poulain }; 298*5238f4e7SLoic Poulain}; 299*5238f4e7SLoic Poulain 300*5238f4e7SLoic Poulain/* USB0 HS + SS */ 301*5238f4e7SLoic Poulain&usb_1_hsphy { 302*5238f4e7SLoic Poulain vdda-pll-supply = <&vreg_l7a>; 303*5238f4e7SLoic Poulain vdda18-supply = <&vreg_l7c>; 304*5238f4e7SLoic Poulain vdda33-supply = <&vreg_l9a>; 305*5238f4e7SLoic Poulain 306*5238f4e7SLoic Poulain status = "okay"; 307*5238f4e7SLoic Poulain}; 308*5238f4e7SLoic Poulain 309*5238f4e7SLoic Poulain&usb_qmpphy { 310*5238f4e7SLoic Poulain vdda-phy-supply = <&vreg_l7a>; 311*5238f4e7SLoic Poulain vdda-pll-supply = <&vreg_l5a>; 312*5238f4e7SLoic Poulain 313*5238f4e7SLoic Poulain status = "okay"; 314*5238f4e7SLoic Poulain}; 315*5238f4e7SLoic Poulain 316*5238f4e7SLoic Poulain/* USB1 HS */ 317*5238f4e7SLoic Poulain&usb_2_hsphy { 318*5238f4e7SLoic Poulain vdda-pll-supply = <&vreg_l7a>; 319*5238f4e7SLoic Poulain vdda18-supply = <&vreg_l7c>; 320*5238f4e7SLoic Poulain vdda33-supply = <&vreg_l9a>; 321*5238f4e7SLoic Poulain 322*5238f4e7SLoic Poulain status = "okay"; 323*5238f4e7SLoic Poulain}; 324