Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 // Copyright (c) 2018, Linaro Limited
0003 
0004 #include <dt-bindings/interrupt-controller/arm-gic.h>
0005 #include <dt-bindings/clock/qcom,gcc-qcs404.h>
0006 #include <dt-bindings/clock/qcom,turingcc-qcs404.h>
0007 #include <dt-bindings/clock/qcom,rpmcc.h>
0008 #include <dt-bindings/power/qcom-rpmpd.h>
0009 #include <dt-bindings/thermal/thermal.h>
0010 
0011 / {
0012         interrupt-parent = <&intc>;
0013 
0014         #address-cells = <2>;
0015         #size-cells = <2>;
0016 
0017         chosen { };
0018 
0019         clocks {
0020                 xo_board: xo-board {
0021                         compatible = "fixed-clock";
0022                         #clock-cells = <0>;
0023                         clock-frequency = <19200000>;
0024                 };
0025 
0026                 sleep_clk: sleep-clk {
0027                         compatible = "fixed-clock";
0028                         #clock-cells = <0>;
0029                         clock-frequency = <32768>;
0030                 };
0031         };
0032 
0033         cpus {
0034                 #address-cells = <1>;
0035                 #size-cells = <0>;
0036 
0037                 CPU0: cpu@100 {
0038                         device_type = "cpu";
0039                         compatible = "arm,cortex-a53";
0040                         reg = <0x100>;
0041                         enable-method = "psci";
0042                         cpu-idle-states = <&CPU_SLEEP_0>;
0043                         next-level-cache = <&L2_0>;
0044                         #cooling-cells = <2>;
0045                         clocks = <&apcs_glb>;
0046                         operating-points-v2 = <&cpu_opp_table>;
0047                         power-domains = <&cpr>;
0048                         power-domain-names = "cpr";
0049                 };
0050 
0051                 CPU1: cpu@101 {
0052                         device_type = "cpu";
0053                         compatible = "arm,cortex-a53";
0054                         reg = <0x101>;
0055                         enable-method = "psci";
0056                         cpu-idle-states = <&CPU_SLEEP_0>;
0057                         next-level-cache = <&L2_0>;
0058                         #cooling-cells = <2>;
0059                         clocks = <&apcs_glb>;
0060                         operating-points-v2 = <&cpu_opp_table>;
0061                         power-domains = <&cpr>;
0062                         power-domain-names = "cpr";
0063                 };
0064 
0065                 CPU2: cpu@102 {
0066                         device_type = "cpu";
0067                         compatible = "arm,cortex-a53";
0068                         reg = <0x102>;
0069                         enable-method = "psci";
0070                         cpu-idle-states = <&CPU_SLEEP_0>;
0071                         next-level-cache = <&L2_0>;
0072                         #cooling-cells = <2>;
0073                         clocks = <&apcs_glb>;
0074                         operating-points-v2 = <&cpu_opp_table>;
0075                         power-domains = <&cpr>;
0076                         power-domain-names = "cpr";
0077                 };
0078 
0079                 CPU3: cpu@103 {
0080                         device_type = "cpu";
0081                         compatible = "arm,cortex-a53";
0082                         reg = <0x103>;
0083                         enable-method = "psci";
0084                         cpu-idle-states = <&CPU_SLEEP_0>;
0085                         next-level-cache = <&L2_0>;
0086                         #cooling-cells = <2>;
0087                         clocks = <&apcs_glb>;
0088                         operating-points-v2 = <&cpu_opp_table>;
0089                         power-domains = <&cpr>;
0090                         power-domain-names = "cpr";
0091                 };
0092 
0093                 L2_0: l2-cache {
0094                         compatible = "cache";
0095                         cache-level = <2>;
0096                 };
0097 
0098                 idle-states {
0099                         entry-method = "psci";
0100 
0101                         CPU_SLEEP_0: cpu-sleep-0 {
0102                                 compatible = "arm,idle-state";
0103                                 idle-state-name = "standalone-power-collapse";
0104                                 arm,psci-suspend-param = <0x40000003>;
0105                                 entry-latency-us = <125>;
0106                                 exit-latency-us = <180>;
0107                                 min-residency-us = <595>;
0108                                 local-timer-stop;
0109                         };
0110                 };
0111         };
0112 
0113         cpu_opp_table: opp-table-cpu {
0114                 compatible = "operating-points-v2-kryo-cpu";
0115                 opp-shared;
0116 
0117                 opp-1094400000 {
0118                         opp-hz = /bits/ 64 <1094400000>;
0119                         required-opps = <&cpr_opp1>;
0120                 };
0121                 opp-1248000000 {
0122                         opp-hz = /bits/ 64 <1248000000>;
0123                         required-opps = <&cpr_opp2>;
0124                 };
0125                 opp-1401600000 {
0126                         opp-hz = /bits/ 64 <1401600000>;
0127                         required-opps = <&cpr_opp3>;
0128                 };
0129         };
0130 
0131         cpr_opp_table: opp-table-cpr {
0132                 compatible = "operating-points-v2-qcom-level";
0133 
0134                 cpr_opp1: opp1 {
0135                         opp-level = <1>;
0136                         qcom,opp-fuse-level = <1>;
0137                 };
0138                 cpr_opp2: opp2 {
0139                         opp-level = <2>;
0140                         qcom,opp-fuse-level = <2>;
0141                 };
0142                 cpr_opp3: opp3 {
0143                         opp-level = <3>;
0144                         qcom,opp-fuse-level = <3>;
0145                 };
0146         };
0147 
0148         firmware {
0149                 scm: scm {
0150                         compatible = "qcom,scm-qcs404", "qcom,scm";
0151                         #reset-cells = <1>;
0152                 };
0153         };
0154 
0155         memory@80000000 {
0156                 device_type = "memory";
0157                 /* We expect the bootloader to fill in the size */
0158                 reg = <0 0x80000000 0 0>;
0159         };
0160 
0161         psci {
0162                 compatible = "arm,psci-1.0";
0163                 method = "smc";
0164         };
0165 
0166         reserved-memory {
0167                 #address-cells = <2>;
0168                 #size-cells = <2>;
0169                 ranges;
0170 
0171                 tz_apps_mem: memory@85900000 {
0172                         reg = <0 0x85900000 0 0x500000>;
0173                         no-map;
0174                 };
0175 
0176                 xbl_mem: memory@85e00000 {
0177                         reg = <0 0x85e00000 0 0x100000>;
0178                         no-map;
0179                 };
0180 
0181                 smem_region: memory@85f00000 {
0182                         reg = <0 0x85f00000 0 0x200000>;
0183                         no-map;
0184                 };
0185 
0186                 tz_mem: memory@86100000 {
0187                         reg = <0 0x86100000 0 0x300000>;
0188                         no-map;
0189                 };
0190 
0191                 wlan_fw_mem: memory@86400000 {
0192                         reg = <0 0x86400000 0 0x1100000>;
0193                         no-map;
0194                 };
0195 
0196                 adsp_fw_mem: memory@87500000 {
0197                         reg = <0 0x87500000 0 0x1a00000>;
0198                         no-map;
0199                 };
0200 
0201                 cdsp_fw_mem: memory@88f00000 {
0202                         reg = <0 0x88f00000 0 0x600000>;
0203                         no-map;
0204                 };
0205 
0206                 wlan_msa_mem: memory@89500000 {
0207                         reg = <0 0x89500000 0 0x100000>;
0208                         no-map;
0209                 };
0210 
0211                 uefi_mem: memory@9f800000 {
0212                         reg = <0 0x9f800000 0 0x800000>;
0213                         no-map;
0214                 };
0215         };
0216 
0217         rpm-glink {
0218                 compatible = "qcom,glink-rpm";
0219 
0220                 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
0221                 qcom,rpm-msg-ram = <&rpm_msg_ram>;
0222                 mboxes = <&apcs_glb 0>;
0223 
0224                 rpm_requests: glink-channel {
0225                         compatible = "qcom,rpm-qcs404";
0226                         qcom,glink-channels = "rpm_requests";
0227 
0228                         rpmcc: clock-controller {
0229                                 compatible = "qcom,rpmcc-qcs404", "qcom,rpmcc";
0230                                 #clock-cells = <1>;
0231                         };
0232 
0233                         rpmpd: power-controller {
0234                                 compatible = "qcom,qcs404-rpmpd";
0235                                 #power-domain-cells = <1>;
0236                                 operating-points-v2 = <&rpmpd_opp_table>;
0237 
0238                                 rpmpd_opp_table: opp-table {
0239                                         compatible = "operating-points-v2";
0240 
0241                                         rpmpd_opp_ret: opp1 {
0242                                                 opp-level = <16>;
0243                                         };
0244 
0245                                         rpmpd_opp_ret_plus: opp2 {
0246                                                 opp-level = <32>;
0247                                         };
0248 
0249                                         rpmpd_opp_min_svs: opp3 {
0250                                                 opp-level = <48>;
0251                                         };
0252 
0253                                         rpmpd_opp_low_svs: opp4 {
0254                                                 opp-level = <64>;
0255                                         };
0256 
0257                                         rpmpd_opp_svs: opp5 {
0258                                                 opp-level = <128>;
0259                                         };
0260 
0261                                         rpmpd_opp_svs_plus: opp6 {
0262                                                 opp-level = <192>;
0263                                         };
0264 
0265                                         rpmpd_opp_nom: opp7 {
0266                                                 opp-level = <256>;
0267                                         };
0268 
0269                                         rpmpd_opp_nom_plus: opp8 {
0270                                                 opp-level = <320>;
0271                                         };
0272 
0273                                         rpmpd_opp_turbo: opp9 {
0274                                                 opp-level = <384>;
0275                                         };
0276 
0277                                         rpmpd_opp_turbo_no_cpr: opp10 {
0278                                                 opp-level = <416>;
0279                                         };
0280 
0281                                         rpmpd_opp_turbo_plus: opp11 {
0282                                                 opp-level = <512>;
0283                                         };
0284                                 };
0285                         };
0286                 };
0287         };
0288 
0289         smem {
0290                 compatible = "qcom,smem";
0291 
0292                 memory-region = <&smem_region>;
0293                 qcom,rpm-msg-ram = <&rpm_msg_ram>;
0294 
0295                 hwlocks = <&tcsr_mutex 3>;
0296         };
0297 
0298         tcsr_mutex: hwlock {
0299                 compatible = "qcom,tcsr-mutex";
0300                 syscon = <&tcsr_mutex_regs 0 0x1000>;
0301                 #hwlock-cells = <1>;
0302         };
0303 
0304         soc: soc@0 {
0305                 #address-cells = <1>;
0306                 #size-cells = <1>;
0307                 ranges = <0 0 0 0xffffffff>;
0308                 compatible = "simple-bus";
0309 
0310                 turingcc: clock-controller@800000 {
0311                         compatible = "qcom,qcs404-turingcc";
0312                         reg = <0x00800000 0x30000>;
0313                         clocks = <&gcc GCC_CDSP_CFG_AHB_CLK>;
0314 
0315                         #clock-cells = <1>;
0316                         #reset-cells = <1>;
0317 
0318                         status = "disabled";
0319                 };
0320 
0321                 rpm_msg_ram: sram@60000 {
0322                         compatible = "qcom,rpm-msg-ram";
0323                         reg = <0x00060000 0x6000>;
0324                 };
0325 
0326                 usb3_phy: phy@78000 {
0327                         compatible = "qcom,usb-ss-28nm-phy";
0328                         reg = <0x00078000 0x400>;
0329                         #phy-cells = <0>;
0330                         clocks = <&rpmcc RPM_SMD_LN_BB_CLK>,
0331                                  <&gcc GCC_USB_HS_PHY_CFG_AHB_CLK>,
0332                                  <&gcc GCC_USB3_PHY_PIPE_CLK>;
0333                         clock-names = "ref", "ahb", "pipe";
0334                         resets = <&gcc GCC_USB3_PHY_BCR>,
0335                                  <&gcc GCC_USB3PHY_PHY_BCR>;
0336                         reset-names = "com", "phy";
0337                         status = "disabled";
0338                 };
0339 
0340                 usb2_phy_prim: phy@7a000 {
0341                         compatible = "qcom,usb-hs-28nm-femtophy";
0342                         reg = <0x0007a000 0x200>;
0343                         #phy-cells = <0>;
0344                         clocks = <&rpmcc RPM_SMD_LN_BB_CLK>,
0345                                  <&gcc GCC_USB_HS_PHY_CFG_AHB_CLK>,
0346                                  <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
0347                         clock-names = "ref", "ahb", "sleep";
0348                         resets = <&gcc GCC_USB_HS_PHY_CFG_AHB_BCR>,
0349                                  <&gcc GCC_USB2A_PHY_BCR>;
0350                         reset-names = "phy", "por";
0351                         status = "disabled";
0352                 };
0353 
0354                 usb2_phy_sec: phy@7c000 {
0355                         compatible = "qcom,usb-hs-28nm-femtophy";
0356                         reg = <0x0007c000 0x200>;
0357                         #phy-cells = <0>;
0358                         clocks = <&rpmcc RPM_SMD_LN_BB_CLK>,
0359                                  <&gcc GCC_USB_HS_PHY_CFG_AHB_CLK>,
0360                                  <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
0361                         clock-names = "ref", "ahb", "sleep";
0362                         resets = <&gcc GCC_QUSB2_PHY_BCR>,
0363                                  <&gcc GCC_USB2_HS_PHY_ONLY_BCR>;
0364                         reset-names = "phy", "por";
0365                         status = "disabled";
0366                 };
0367 
0368                 qfprom: qfprom@a4000 {
0369                         compatible = "qcom,qcs404-qfprom", "qcom,qfprom";
0370                         reg = <0x000a4000 0x1000>;
0371                         #address-cells = <1>;
0372                         #size-cells = <1>;
0373                         tsens_caldata: caldata@d0 {
0374                                 reg = <0x1f8 0x14>;
0375                         };
0376                         cpr_efuse_speedbin: speedbin@13c {
0377                                 reg = <0x13c 0x4>;
0378                                 bits = <2 3>;
0379                         };
0380                         cpr_efuse_quot_offset1: qoffset1@231 {
0381                                 reg = <0x231 0x4>;
0382                                 bits = <4 7>;
0383                         };
0384                         cpr_efuse_quot_offset2: qoffset2@232 {
0385                                 reg = <0x232 0x4>;
0386                                 bits = <3 7>;
0387                         };
0388                         cpr_efuse_quot_offset3: qoffset3@233 {
0389                                 reg = <0x233 0x4>;
0390                                 bits = <2 7>;
0391                         };
0392                         cpr_efuse_init_voltage1: ivoltage1@229 {
0393                                 reg = <0x229 0x4>;
0394                                 bits = <4 6>;
0395                         };
0396                         cpr_efuse_init_voltage2: ivoltage2@22a {
0397                                 reg = <0x22a 0x4>;
0398                                 bits = <2 6>;
0399                         };
0400                         cpr_efuse_init_voltage3: ivoltage3@22b {
0401                                 reg = <0x22b 0x4>;
0402                                 bits = <0 6>;
0403                         };
0404                         cpr_efuse_quot1: quot1@22b {
0405                                 reg = <0x22b 0x4>;
0406                                 bits = <6 12>;
0407                         };
0408                         cpr_efuse_quot2: quot2@22d {
0409                                 reg = <0x22d 0x4>;
0410                                 bits = <2 12>;
0411                         };
0412                         cpr_efuse_quot3: quot3@230 {
0413                                 reg = <0x230 0x4>;
0414                                 bits = <0 12>;
0415                         };
0416                         cpr_efuse_ring1: ring1@228 {
0417                                 reg = <0x228 0x4>;
0418                                 bits = <0 3>;
0419                         };
0420                         cpr_efuse_ring2: ring2@228 {
0421                                 reg = <0x228 0x4>;
0422                                 bits = <4 3>;
0423                         };
0424                         cpr_efuse_ring3: ring3@229 {
0425                                 reg = <0x229 0x4>;
0426                                 bits = <0 3>;
0427                         };
0428                         cpr_efuse_revision: revision@218 {
0429                                 reg = <0x218 0x4>;
0430                                 bits = <3 3>;
0431                         };
0432                 };
0433 
0434                 rng: rng@e3000 {
0435                         compatible = "qcom,prng-ee";
0436                         reg = <0x000e3000 0x1000>;
0437                         clocks = <&gcc GCC_PRNG_AHB_CLK>;
0438                         clock-names = "core";
0439                 };
0440 
0441                 bimc: interconnect@400000 {
0442                         reg = <0x00400000 0x80000>;
0443                         compatible = "qcom,qcs404-bimc";
0444                         #interconnect-cells = <1>;
0445                         clock-names = "bus", "bus_a";
0446                         clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
0447                                 <&rpmcc RPM_SMD_BIMC_A_CLK>;
0448                 };
0449 
0450                 tsens: thermal-sensor@4a9000 {
0451                         compatible = "qcom,qcs404-tsens", "qcom,tsens-v1";
0452                         reg = <0x004a9000 0x1000>, /* TM */
0453                               <0x004a8000 0x1000>; /* SROT */
0454                         nvmem-cells = <&tsens_caldata>;
0455                         nvmem-cell-names = "calib";
0456                         #qcom,sensors = <10>;
0457                         interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
0458                         interrupt-names = "uplow";
0459                         #thermal-sensor-cells = <1>;
0460                 };
0461 
0462                 pcnoc: interconnect@500000 {
0463                         reg = <0x00500000 0x15080>;
0464                         compatible = "qcom,qcs404-pcnoc";
0465                         #interconnect-cells = <1>;
0466                         clock-names = "bus", "bus_a";
0467                         clocks = <&rpmcc RPM_SMD_PNOC_CLK>,
0468                                 <&rpmcc RPM_SMD_PNOC_A_CLK>;
0469                 };
0470 
0471                 snoc: interconnect@580000 {
0472                         reg = <0x00580000 0x23080>;
0473                         compatible = "qcom,qcs404-snoc";
0474                         #interconnect-cells = <1>;
0475                         clock-names = "bus", "bus_a";
0476                         clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
0477                                 <&rpmcc RPM_SMD_SNOC_A_CLK>;
0478                 };
0479 
0480                 remoteproc_cdsp: remoteproc@b00000 {
0481                         compatible = "qcom,qcs404-cdsp-pas";
0482                         reg = <0x00b00000 0x4040>;
0483 
0484                         interrupts-extended = <&intc GIC_SPI 229 IRQ_TYPE_EDGE_RISING>,
0485                                               <&cdsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
0486                                               <&cdsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
0487                                               <&cdsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
0488                                               <&cdsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
0489                         interrupt-names = "wdog", "fatal", "ready",
0490                                           "handover", "stop-ack";
0491 
0492                         clocks = <&xo_board>,
0493                                  <&gcc GCC_CDSP_CFG_AHB_CLK>,
0494                                  <&gcc GCC_CDSP_TBU_CLK>,
0495                                  <&gcc GCC_BIMC_CDSP_CLK>,
0496                                  <&turingcc TURING_WRAPPER_AON_CLK>,
0497                                  <&turingcc TURING_Q6SS_AHBS_AON_CLK>,
0498                                  <&turingcc TURING_Q6SS_AHBM_AON_CLK>,
0499                                  <&turingcc TURING_Q6SS_Q6_AXIM_CLK>;
0500                         clock-names = "xo",
0501                                       "sway",
0502                                       "tbu",
0503                                       "bimc",
0504                                       "ahb_aon",
0505                                       "q6ss_slave",
0506                                       "q6ss_master",
0507                                       "q6_axim";
0508 
0509                         resets = <&gcc GCC_CDSP_RESTART>;
0510                         reset-names = "restart";
0511 
0512                         qcom,halt-regs = <&tcsr 0x19004>;
0513 
0514                         memory-region = <&cdsp_fw_mem>;
0515 
0516                         qcom,smem-states = <&cdsp_smp2p_out 0>;
0517                         qcom,smem-state-names = "stop";
0518 
0519                         status = "disabled";
0520 
0521                         glink-edge {
0522                                 interrupts = <GIC_SPI 141 IRQ_TYPE_EDGE_RISING>;
0523 
0524                                 qcom,remote-pid = <5>;
0525                                 mboxes = <&apcs_glb 12>;
0526 
0527                                 label = "cdsp";
0528                         };
0529                 };
0530 
0531                 usb3: usb@7678800 {
0532                         compatible = "qcom,qcs404-dwc3", "qcom,dwc3";
0533                         reg = <0x07678800 0x400>;
0534                         #address-cells = <1>;
0535                         #size-cells = <1>;
0536                         ranges;
0537                         clocks = <&gcc GCC_USB30_MASTER_CLK>,
0538                                  <&gcc GCC_SYS_NOC_USB3_CLK>,
0539                                  <&gcc GCC_USB30_SLEEP_CLK>,
0540                                  <&gcc GCC_USB30_MOCK_UTMI_CLK>;
0541                         clock-names = "core", "iface", "sleep", "mock_utmi";
0542                         assigned-clocks = <&gcc GCC_USB20_MOCK_UTMI_CLK>,
0543                                           <&gcc GCC_USB30_MASTER_CLK>;
0544                         assigned-clock-rates = <19200000>, <200000000>;
0545                         status = "disabled";
0546 
0547                         usb3_dwc3: usb@7580000 {
0548                                 compatible = "snps,dwc3";
0549                                 reg = <0x07580000 0xcd00>;
0550                                 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
0551                                 phys = <&usb2_phy_prim>, <&usb3_phy>;
0552                                 phy-names = "usb2-phy", "usb3-phy";
0553                                 snps,has-lpm-erratum;
0554                                 snps,hird-threshold = /bits/ 8 <0x10>;
0555                                 snps,usb3_lpm_capable;
0556                                 dr_mode = "otg";
0557                         };
0558                 };
0559 
0560                 usb2: usb@79b8800 {
0561                         compatible = "qcom,qcs404-dwc3", "qcom,dwc3";
0562                         reg = <0x079b8800 0x400>;
0563                         #address-cells = <1>;
0564                         #size-cells = <1>;
0565                         ranges;
0566                         clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>,
0567                                  <&gcc GCC_PCNOC_USB2_CLK>,
0568                                  <&gcc GCC_USB_HS_INACTIVITY_TIMERS_CLK>,
0569                                  <&gcc GCC_USB20_MOCK_UTMI_CLK>;
0570                         clock-names = "core", "iface", "sleep", "mock_utmi";
0571                         assigned-clocks = <&gcc GCC_USB20_MOCK_UTMI_CLK>,
0572                                           <&gcc GCC_USB_HS_SYSTEM_CLK>;
0573                         assigned-clock-rates = <19200000>, <133333333>;
0574                         status = "disabled";
0575 
0576                         usb@78c0000 {
0577                                 compatible = "snps,dwc3";
0578                                 reg = <0x078c0000 0xcc00>;
0579                                 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
0580                                 phys = <&usb2_phy_sec>;
0581                                 phy-names = "usb2-phy";
0582                                 snps,has-lpm-erratum;
0583                                 snps,hird-threshold = /bits/ 8 <0x10>;
0584                                 snps,usb3_lpm_capable;
0585                                 dr_mode = "peripheral";
0586                         };
0587                 };
0588 
0589                 tlmm: pinctrl@1000000 {
0590                         compatible = "qcom,qcs404-pinctrl";
0591                         reg = <0x01000000 0x200000>,
0592                               <0x01300000 0x200000>,
0593                               <0x07b00000 0x200000>;
0594                         reg-names = "south", "north", "east";
0595                         interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
0596                         gpio-ranges = <&tlmm 0 0 120>;
0597                         gpio-controller;
0598                         #gpio-cells = <2>;
0599                         interrupt-controller;
0600                         #interrupt-cells = <2>;
0601 
0602                         blsp1_i2c0_default: blsp1-i2c0-default {
0603                                 pins = "gpio32", "gpio33";
0604                                 function = "blsp_i2c0";
0605                         };
0606 
0607                         blsp1_i2c1_default: blsp1-i2c1-default {
0608                                 pins = "gpio24", "gpio25";
0609                                 function = "blsp_i2c1";
0610                         };
0611 
0612                         blsp1_i2c2_default: blsp1-i2c2-default {
0613                                 sda {
0614                                         pins = "gpio19";
0615                                         function = "blsp_i2c_sda_a2";
0616                                 };
0617 
0618                                 scl {
0619                                         pins = "gpio20";
0620                                         function = "blsp_i2c_scl_a2";
0621                                 };
0622                         };
0623 
0624                         blsp1_i2c3_default: blsp1-i2c3-default {
0625                                 pins = "gpio84", "gpio85";
0626                                 function = "blsp_i2c3";
0627                         };
0628 
0629                         blsp1_i2c4_default: blsp1-i2c4-default {
0630                                 pins = "gpio117", "gpio118";
0631                                 function = "blsp_i2c4";
0632                         };
0633 
0634                         blsp1_uart0_default: blsp1-uart0-default {
0635                                 pins = "gpio30", "gpio31", "gpio32", "gpio33";
0636                                 function = "blsp_uart0";
0637                         };
0638 
0639                         blsp1_uart1_default: blsp1-uart1-default {
0640                                 pins = "gpio22", "gpio23";
0641                                 function = "blsp_uart1";
0642                         };
0643 
0644                         blsp1_uart2_default: blsp1-uart2-default {
0645                                 rx {
0646                                         pins = "gpio18";
0647                                         function = "blsp_uart_rx_a2";
0648                                 };
0649 
0650                                 tx {
0651                                         pins = "gpio17";
0652                                         function = "blsp_uart_tx_a2";
0653                                 };
0654                         };
0655 
0656                         blsp1_uart3_default: blsp1-uart3-default {
0657                                 pins = "gpio82", "gpio83", "gpio84", "gpio85";
0658                                 function = "blsp_uart3";
0659                         };
0660 
0661                         blsp2_i2c0_default: blsp2-i2c0-default {
0662                                 pins = "gpio28", "gpio29";
0663                                 function = "blsp_i2c5";
0664                         };
0665 
0666                         blsp1_spi0_default: blsp1-spi0-default {
0667                                 pins = "gpio30", "gpio31", "gpio32", "gpio33";
0668                                 function = "blsp_spi0";
0669                         };
0670 
0671                         blsp1_spi1_default: blsp1-spi1-default {
0672                                 mosi {
0673                                         pins = "gpio22";
0674                                         function = "blsp_spi_mosi_a1";
0675                                 };
0676 
0677                                 miso {
0678                                         pins = "gpio23";
0679                                         function = "blsp_spi_miso_a1";
0680                                 };
0681 
0682                                 cs_n {
0683                                         pins = "gpio24";
0684                                         function = "blsp_spi_cs_n_a1";
0685                                 };
0686 
0687                                 clk {
0688                                         pins = "gpio25";
0689                                         function = "blsp_spi_clk_a1";
0690                                 };
0691                         };
0692 
0693                         blsp1_spi2_default: blsp1-spi2-default {
0694                                 pins = "gpio17", "gpio18", "gpio19", "gpio20";
0695                                 function = "blsp_spi2";
0696                         };
0697 
0698                         blsp1_spi3_default: blsp1-spi3-default {
0699                                 pins = "gpio82", "gpio83", "gpio84", "gpio85";
0700                                 function = "blsp_spi3";
0701                         };
0702 
0703                         blsp1_spi4_default: blsp1-spi4-default {
0704                                 pins = "gpio37", "gpio38", "gpio117", "gpio118";
0705                                 function = "blsp_spi4";
0706                         };
0707 
0708                         blsp2_spi0_default: blsp2-spi0-default {
0709                                 pins = "gpio26", "gpio27", "gpio28", "gpio29";
0710                                 function = "blsp_spi5";
0711                         };
0712 
0713                         blsp2_uart0_default: blsp2-uart0-default {
0714                                 pins = "gpio26", "gpio27", "gpio28", "gpio29";
0715                                 function = "blsp_uart5";
0716                         };
0717                 };
0718 
0719                 gcc: clock-controller@1800000 {
0720                         compatible = "qcom,gcc-qcs404";
0721                         reg = <0x01800000 0x80000>;
0722                         #clock-cells = <1>;
0723                         #reset-cells = <1>;
0724 
0725                         assigned-clocks = <&gcc GCC_APSS_AHB_CLK_SRC>;
0726                         assigned-clock-rates = <19200000>;
0727                 };
0728 
0729                 tcsr_mutex_regs: syscon@1905000 {
0730                         compatible = "syscon";
0731                         reg = <0x01905000 0x20000>;
0732                 };
0733 
0734                 tcsr: syscon@1937000 {
0735                         compatible = "syscon";
0736                         reg = <0x01937000 0x25000>;
0737                 };
0738 
0739                 sram@290000 {
0740                         compatible = "qcom,rpm-stats";
0741                         reg = <0x00290000 0x10000>;
0742                 };
0743 
0744                 spmi_bus: spmi@200f000 {
0745                         compatible = "qcom,spmi-pmic-arb";
0746                         reg = <0x0200f000 0x001000>,
0747                               <0x02400000 0x800000>,
0748                               <0x02c00000 0x800000>,
0749                               <0x03800000 0x200000>,
0750                               <0x0200a000 0x002100>;
0751                         reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
0752                         interrupt-names = "periph_irq";
0753                         interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
0754                         qcom,ee = <0>;
0755                         qcom,channel = <0>;
0756                         #address-cells = <2>;
0757                         #size-cells = <0>;
0758                         interrupt-controller;
0759                         #interrupt-cells = <4>;
0760                 };
0761 
0762                 remoteproc_wcss: remoteproc@7400000 {
0763                         compatible = "qcom,qcs404-wcss-pas";
0764                         reg = <0x07400000 0x4040>;
0765 
0766                         interrupts-extended = <&intc GIC_SPI 153 IRQ_TYPE_EDGE_RISING>,
0767                                               <&wcss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
0768                                               <&wcss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
0769                                               <&wcss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
0770                                               <&wcss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
0771                         interrupt-names = "wdog", "fatal", "ready",
0772                                           "handover", "stop-ack";
0773 
0774                         clocks = <&xo_board>;
0775                         clock-names = "xo";
0776 
0777                         memory-region = <&wlan_fw_mem>;
0778 
0779                         qcom,smem-states = <&wcss_smp2p_out 0>;
0780                         qcom,smem-state-names = "stop";
0781 
0782                         status = "disabled";
0783 
0784                         glink-edge {
0785                                 interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
0786 
0787                                 qcom,remote-pid = <1>;
0788                                 mboxes = <&apcs_glb 16>;
0789 
0790                                 label = "wcss";
0791                         };
0792                 };
0793 
0794                 pcie_phy: phy@7786000 {
0795                         compatible = "qcom,qcs404-pcie2-phy", "qcom,pcie2-phy";
0796                         reg = <0x07786000 0xb8>;
0797 
0798                         clocks = <&gcc GCC_PCIE_0_PIPE_CLK>;
0799                         resets = <&gcc GCC_PCIEPHY_0_PHY_BCR>,
0800                                  <&gcc 21>;
0801                         reset-names = "phy", "pipe";
0802 
0803                         clock-output-names = "pcie_0_pipe_clk";
0804                         #phy-cells = <0>;
0805 
0806                         status = "disabled";
0807                 };
0808 
0809                 sdcc1: mmc@7804000 {
0810                         compatible = "qcom,qcs404-sdhci", "qcom,sdhci-msm-v5";
0811                         reg = <0x07804000 0x1000>, <0x7805000 0x1000>;
0812                         reg-names = "hc", "cqhci";
0813 
0814                         interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
0815                                      <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
0816                         interrupt-names = "hc_irq", "pwr_irq";
0817 
0818                         clocks = <&gcc GCC_SDCC1_AHB_CLK>,
0819                                  <&gcc GCC_SDCC1_APPS_CLK>,
0820                                  <&xo_board>;
0821                         clock-names = "iface", "core", "xo";
0822 
0823                         status = "disabled";
0824                 };
0825 
0826                 blsp1_dma: dma-controller@7884000 {
0827                         compatible = "qcom,bam-v1.7.0";
0828                         reg = <0x07884000 0x25000>;
0829                         interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
0830                         clocks = <&gcc GCC_BLSP1_AHB_CLK>;
0831                         clock-names = "bam_clk";
0832                         #dma-cells = <1>;
0833                         qcom,ee = <0>;
0834                         status = "okay";
0835                 };
0836 
0837                 blsp1_uart0: serial@78af000 {
0838                         compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
0839                         reg = <0x078af000 0x200>;
0840                         interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
0841                         clocks = <&gcc GCC_BLSP1_UART0_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
0842                         clock-names = "core", "iface";
0843                         dmas = <&blsp1_dma 0>, <&blsp1_dma 1>;
0844                         dma-names = "tx", "rx";
0845                         pinctrl-names = "default";
0846                         pinctrl-0 = <&blsp1_uart0_default>;
0847                         status = "disabled";
0848                 };
0849 
0850                 blsp1_uart1: serial@78b0000 {
0851                         compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
0852                         reg = <0x078b0000 0x200>;
0853                         interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
0854                         clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
0855                         clock-names = "core", "iface";
0856                         dmas = <&blsp1_dma 2>, <&blsp1_dma 3>;
0857                         dma-names = "tx", "rx";
0858                         pinctrl-names = "default";
0859                         pinctrl-0 = <&blsp1_uart1_default>;
0860                         status = "disabled";
0861                 };
0862 
0863                 blsp1_uart2: serial@78b1000 {
0864                         compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
0865                         reg = <0x078b1000 0x200>;
0866                         interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
0867                         clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
0868                         clock-names = "core", "iface";
0869                         dmas = <&blsp1_dma 4>, <&blsp1_dma 5>;
0870                         dma-names = "tx", "rx";
0871                         pinctrl-names = "default";
0872                         pinctrl-0 = <&blsp1_uart2_default>;
0873                         status = "okay";
0874                 };
0875 
0876                 ethernet: ethernet@7a80000 {
0877                         compatible = "qcom,qcs404-ethqos";
0878                         reg = <0x07a80000 0x10000>,
0879                                 <0x07a96000 0x100>;
0880                         reg-names = "stmmaceth", "rgmii";
0881                         clock-names = "stmmaceth", "pclk", "ptp_ref", "rgmii";
0882                         clocks = <&gcc GCC_ETH_AXI_CLK>,
0883                                 <&gcc GCC_ETH_SLAVE_AHB_CLK>,
0884                                 <&gcc GCC_ETH_PTP_CLK>,
0885                                 <&gcc GCC_ETH_RGMII_CLK>;
0886                         interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
0887                                         <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
0888                         interrupt-names = "macirq", "eth_lpi";
0889 
0890                         snps,tso;
0891                         rx-fifo-depth = <4096>;
0892                         tx-fifo-depth = <4096>;
0893 
0894                         status = "disabled";
0895                 };
0896 
0897                 wifi: wifi@a000000 {
0898                         compatible = "qcom,wcn3990-wifi";
0899                         reg = <0xa000000 0x800000>;
0900                         reg-names = "membase";
0901                         memory-region = <&wlan_msa_mem>;
0902                         interrupts = <GIC_SPI 277 IRQ_TYPE_LEVEL_HIGH>,
0903                                      <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>,
0904                                      <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>,
0905                                      <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>,
0906                                      <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH>,
0907                                      <GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
0908                                      <GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>,
0909                                      <GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>,
0910                                      <GIC_SPI 285 IRQ_TYPE_LEVEL_HIGH>,
0911                                      <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>,
0912                                      <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>,
0913                                      <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
0914                         status = "disabled";
0915                 };
0916 
0917                 blsp1_uart3: serial@78b2000 {
0918                         compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
0919                         reg = <0x078b2000 0x200>;
0920                         interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
0921                         clocks = <&gcc GCC_BLSP1_UART3_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
0922                         clock-names = "core", "iface";
0923                         dmas = <&blsp1_dma 6>, <&blsp1_dma 7>;
0924                         dma-names = "tx", "rx";
0925                         pinctrl-names = "default";
0926                         pinctrl-0 = <&blsp1_uart3_default>;
0927                         status = "disabled";
0928                 };
0929 
0930                 blsp1_i2c0: i2c@78b5000 {
0931                         compatible = "qcom,i2c-qup-v2.2.1";
0932                         reg = <0x078b5000 0x600>;
0933                         interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
0934                         clocks = <&gcc GCC_BLSP1_QUP0_I2C_APPS_CLK>,
0935                                  <&gcc GCC_BLSP1_AHB_CLK>;
0936                         clock-names = "core", "iface";
0937                         pinctrl-names = "default";
0938                         pinctrl-0 = <&blsp1_i2c0_default>;
0939                         #address-cells = <1>;
0940                         #size-cells = <0>;
0941                         status = "disabled";
0942                 };
0943 
0944                 blsp1_spi0: spi@78b5000 {
0945                         compatible = "qcom,spi-qup-v2.2.1";
0946                         reg = <0x078b5000 0x600>;
0947                         interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
0948                         clocks = <&gcc GCC_BLSP1_QUP0_SPI_APPS_CLK>,
0949                                  <&gcc GCC_BLSP1_AHB_CLK>;
0950                         clock-names = "core", "iface";
0951                         pinctrl-names = "default";
0952                         pinctrl-0 = <&blsp1_spi0_default>;
0953                         #address-cells = <1>;
0954                         #size-cells = <0>;
0955                         status = "disabled";
0956                 };
0957 
0958                 blsp1_i2c1: i2c@78b6000 {
0959                         compatible = "qcom,i2c-qup-v2.2.1";
0960                         reg = <0x078b6000 0x600>;
0961                         interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
0962                         clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
0963                                  <&gcc GCC_BLSP1_AHB_CLK>;
0964                         clock-names = "core", "iface";
0965                         pinctrl-names = "default";
0966                         pinctrl-0 = <&blsp1_i2c1_default>;
0967                         #address-cells = <1>;
0968                         #size-cells = <0>;
0969                         status = "disabled";
0970                 };
0971 
0972                 blsp1_spi1: spi@78b6000 {
0973                         compatible = "qcom,spi-qup-v2.2.1";
0974                         reg = <0x078b6000 0x600>;
0975                         interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
0976                         clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
0977                                  <&gcc GCC_BLSP1_AHB_CLK>;
0978                         clock-names = "core", "iface";
0979                         pinctrl-names = "default";
0980                         pinctrl-0 = <&blsp1_spi1_default>;
0981                         #address-cells = <1>;
0982                         #size-cells = <0>;
0983                         status = "disabled";
0984                 };
0985 
0986                 blsp1_i2c2: i2c@78b7000 {
0987                         compatible = "qcom,i2c-qup-v2.2.1";
0988                         reg = <0x078b7000 0x600>;
0989                         interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
0990                         clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
0991                                  <&gcc GCC_BLSP1_AHB_CLK>;
0992                         clock-names = "core", "iface";
0993                         pinctrl-names = "default";
0994                         pinctrl-0 = <&blsp1_i2c2_default>;
0995                         #address-cells = <1>;
0996                         #size-cells = <0>;
0997                         status = "disabled";
0998                 };
0999 
1000                 blsp1_spi2: spi@78b7000 {
1001                         compatible = "qcom,spi-qup-v2.2.1";
1002                         reg = <0x078b7000 0x600>;
1003                         interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
1004                         clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
1005                                  <&gcc GCC_BLSP1_AHB_CLK>;
1006                         clock-names = "core", "iface";
1007                         pinctrl-names = "default";
1008                         pinctrl-0 = <&blsp1_spi2_default>;
1009                         #address-cells = <1>;
1010                         #size-cells = <0>;
1011                         status = "disabled";
1012                 };
1013 
1014                 blsp1_i2c3: i2c@78b8000 {
1015                         compatible = "qcom,i2c-qup-v2.2.1";
1016                         reg = <0x078b8000 0x600>;
1017                         interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1018                         clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
1019                                  <&gcc GCC_BLSP1_AHB_CLK>;
1020                         clock-names = "core", "iface";
1021                         pinctrl-names = "default";
1022                         pinctrl-0 = <&blsp1_i2c3_default>;
1023                         #address-cells = <1>;
1024                         #size-cells = <0>;
1025                         status = "disabled";
1026                 };
1027 
1028                 blsp1_spi3: spi@78b8000 {
1029                         compatible = "qcom,spi-qup-v2.2.1";
1030                         reg = <0x078b8000 0x600>;
1031                         interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
1032                         clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
1033                                  <&gcc GCC_BLSP1_AHB_CLK>;
1034                         clock-names = "core", "iface";
1035                         pinctrl-names = "default";
1036                         pinctrl-0 = <&blsp1_spi3_default>;
1037                         #address-cells = <1>;
1038                         #size-cells = <0>;
1039                         status = "disabled";
1040                 };
1041 
1042                 blsp1_i2c4: i2c@78b9000 {
1043                         compatible = "qcom,i2c-qup-v2.2.1";
1044                         reg = <0x078b9000 0x600>;
1045                         interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
1046                         clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
1047                                  <&gcc GCC_BLSP1_AHB_CLK>;
1048                         clock-names = "core", "iface";
1049                         pinctrl-names = "default";
1050                         pinctrl-0 = <&blsp1_i2c4_default>;
1051                         #address-cells = <1>;
1052                         #size-cells = <0>;
1053                         status = "disabled";
1054                 };
1055 
1056                 blsp1_spi4: spi@78b9000 {
1057                         compatible = "qcom,spi-qup-v2.2.1";
1058                         reg = <0x078b9000 0x600>;
1059                         interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
1060                         clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
1061                                  <&gcc GCC_BLSP1_AHB_CLK>;
1062                         clock-names = "core", "iface";
1063                         pinctrl-names = "default";
1064                         pinctrl-0 = <&blsp1_spi4_default>;
1065                         #address-cells = <1>;
1066                         #size-cells = <0>;
1067                         status = "disabled";
1068                 };
1069 
1070                 blsp2_dma: dma-controller@7ac4000 {
1071                         compatible = "qcom,bam-v1.7.0";
1072                         reg = <0x07ac4000 0x17000>;
1073                         interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
1074                         clocks = <&gcc GCC_BLSP2_AHB_CLK>;
1075                         clock-names = "bam_clk";
1076                         #dma-cells = <1>;
1077                         qcom,ee = <0>;
1078                         status = "disabled";
1079                 };
1080 
1081                 blsp2_uart0: serial@7aef000 {
1082                         compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
1083                         reg = <0x07aef000 0x200>;
1084                         interrupts = <GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>;
1085                         clocks = <&gcc GCC_BLSP2_UART0_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
1086                         clock-names = "core", "iface";
1087                         dmas = <&blsp2_dma 0>, <&blsp2_dma 1>;
1088                         dma-names = "tx", "rx";
1089                         pinctrl-names = "default";
1090                         pinctrl-0 = <&blsp2_uart0_default>;
1091                         status = "disabled";
1092                 };
1093 
1094                 blsp2_i2c0: i2c@7af5000 {
1095                         compatible = "qcom,i2c-qup-v2.2.1";
1096                         reg = <0x07af5000 0x600>;
1097                         interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
1098                         clocks = <&gcc GCC_BLSP2_QUP0_I2C_APPS_CLK>,
1099                                  <&gcc GCC_BLSP2_AHB_CLK>;
1100                         clock-names = "core", "iface";
1101                         pinctrl-names = "default";
1102                         pinctrl-0 = <&blsp2_i2c0_default>;
1103                         #address-cells = <1>;
1104                         #size-cells = <0>;
1105                         status = "disabled";
1106                 };
1107 
1108                 blsp2_spi0: spi@7af5000 {
1109                         compatible = "qcom,spi-qup-v2.2.1";
1110                         reg = <0x07af5000 0x600>;
1111                         interrupts = <GIC_SPI 299 IRQ_TYPE_LEVEL_HIGH>;
1112                         clocks = <&gcc GCC_BLSP2_QUP0_SPI_APPS_CLK>,
1113                                  <&gcc GCC_BLSP2_AHB_CLK>;
1114                         clock-names = "core", "iface";
1115                         pinctrl-names = "default";
1116                         pinctrl-0 = <&blsp2_spi0_default>;
1117                         #address-cells = <1>;
1118                         #size-cells = <0>;
1119                         status = "disabled";
1120                 };
1121 
1122                 sram@8600000 {
1123                         compatible = "qcom,qcs404-imem", "syscon", "simple-mfd";
1124                         reg = <0x08600000 0x1000>;
1125 
1126                         #address-cells = <1>;
1127                         #size-cells = <1>;
1128 
1129                         ranges = <0 0x08600000 0x1000>;
1130 
1131                         pil-reloc@94c {
1132                                 compatible = "qcom,pil-reloc-info";
1133                                 reg = <0x94c 0xc8>;
1134                         };
1135                 };
1136 
1137                 intc: interrupt-controller@b000000 {
1138                         compatible = "qcom,msm-qgic2";
1139                         interrupt-controller;
1140                         #interrupt-cells = <3>;
1141                         reg = <0x0b000000 0x1000>,
1142                               <0x0b002000 0x1000>;
1143                 };
1144 
1145                 apcs_glb: mailbox@b011000 {
1146                         compatible = "qcom,qcs404-apcs-apps-global", "syscon";
1147                         reg = <0x0b011000 0x1000>;
1148                         #mbox-cells = <1>;
1149                         clocks = <&apcs_hfpll>, <&gcc GCC_GPLL0_AO_OUT_MAIN>;
1150                         clock-names = "pll", "aux";
1151                         #clock-cells = <0>;
1152                 };
1153 
1154                 apcs_hfpll: clock-controller@b016000 {
1155                         compatible = "qcom,hfpll";
1156                         reg = <0x0b016000 0x30>;
1157                         #clock-cells = <0>;
1158                         clock-output-names = "apcs_hfpll";
1159                         clocks = <&xo_board>;
1160                         clock-names = "xo";
1161                 };
1162 
1163                 watchdog@b017000 {
1164                         compatible = "qcom,apss-wdt-qcs404", "qcom,kpss-wdt";
1165                         reg = <0x0b017000 0x1000>;
1166                         clocks = <&sleep_clk>;
1167                 };
1168 
1169                 cpr: power-controller@b018000 {
1170                         compatible = "qcom,qcs404-cpr", "qcom,cpr";
1171                         reg = <0x0b018000 0x1000>;
1172                         interrupts = <0 15 IRQ_TYPE_EDGE_RISING>;
1173                         clocks = <&xo_board>;
1174                         clock-names = "ref";
1175                         vdd-apc-supply = <&pms405_s3>;
1176                         #power-domain-cells = <0>;
1177                         operating-points-v2 = <&cpr_opp_table>;
1178                         acc-syscon = <&tcsr>;
1179 
1180                         nvmem-cells = <&cpr_efuse_quot_offset1>,
1181                                 <&cpr_efuse_quot_offset2>,
1182                                 <&cpr_efuse_quot_offset3>,
1183                                 <&cpr_efuse_init_voltage1>,
1184                                 <&cpr_efuse_init_voltage2>,
1185                                 <&cpr_efuse_init_voltage3>,
1186                                 <&cpr_efuse_quot1>,
1187                                 <&cpr_efuse_quot2>,
1188                                 <&cpr_efuse_quot3>,
1189                                 <&cpr_efuse_ring1>,
1190                                 <&cpr_efuse_ring2>,
1191                                 <&cpr_efuse_ring3>,
1192                                 <&cpr_efuse_revision>;
1193                         nvmem-cell-names = "cpr_quotient_offset1",
1194                                 "cpr_quotient_offset2",
1195                                 "cpr_quotient_offset3",
1196                                 "cpr_init_voltage1",
1197                                 "cpr_init_voltage2",
1198                                 "cpr_init_voltage3",
1199                                 "cpr_quotient1",
1200                                 "cpr_quotient2",
1201                                 "cpr_quotient3",
1202                                 "cpr_ring_osc1",
1203                                 "cpr_ring_osc2",
1204                                 "cpr_ring_osc3",
1205                                 "cpr_fuse_revision";
1206                 };
1207 
1208                 timer@b120000 {
1209                         #address-cells = <1>;
1210                         #size-cells = <1>;
1211                         ranges;
1212                         compatible = "arm,armv7-timer-mem";
1213                         reg = <0x0b120000 0x1000>;
1214                         clock-frequency = <19200000>;
1215 
1216                         frame@b121000 {
1217                                 frame-number = <0>;
1218                                 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
1219                                              <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
1220                                 reg = <0x0b121000 0x1000>,
1221                                       <0x0b122000 0x1000>;
1222                         };
1223 
1224                         frame@b123000 {
1225                                 frame-number = <1>;
1226                                 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
1227                                 reg = <0x0b123000 0x1000>;
1228                                 status = "disabled";
1229                         };
1230 
1231                         frame@b124000 {
1232                                 frame-number = <2>;
1233                                 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
1234                                 reg = <0x0b124000 0x1000>;
1235                                 status = "disabled";
1236                         };
1237 
1238                         frame@b125000 {
1239                                 frame-number = <3>;
1240                                 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
1241                                 reg = <0x0b125000 0x1000>;
1242                                 status = "disabled";
1243                         };
1244 
1245                         frame@b126000 {
1246                                 frame-number = <4>;
1247                                 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
1248                                 reg = <0x0b126000 0x1000>;
1249                                 status = "disabled";
1250                         };
1251 
1252                         frame@b127000 {
1253                                 frame-number = <5>;
1254                                 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
1255                                 reg = <0xb127000 0x1000>;
1256                                 status = "disabled";
1257                         };
1258 
1259                         frame@b128000 {
1260                                 frame-number = <6>;
1261                                 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
1262                                 reg = <0x0b128000 0x1000>;
1263                                 status = "disabled";
1264                         };
1265                 };
1266 
1267                 remoteproc_adsp: remoteproc@c700000 {
1268                         compatible = "qcom,qcs404-adsp-pas";
1269                         reg = <0x0c700000 0x4040>;
1270 
1271                         interrupts-extended = <&intc GIC_SPI 293 IRQ_TYPE_EDGE_RISING>,
1272                                               <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1273                                               <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1274                                               <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1275                                               <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
1276                         interrupt-names = "wdog", "fatal", "ready",
1277                                           "handover", "stop-ack";
1278 
1279                         clocks = <&xo_board>;
1280                         clock-names = "xo";
1281 
1282                         memory-region = <&adsp_fw_mem>;
1283 
1284                         qcom,smem-states = <&adsp_smp2p_out 0>;
1285                         qcom,smem-state-names = "stop";
1286 
1287                         status = "disabled";
1288 
1289                         glink-edge {
1290                                 interrupts = <GIC_SPI 289 IRQ_TYPE_EDGE_RISING>;
1291 
1292                                 qcom,remote-pid = <2>;
1293                                 mboxes = <&apcs_glb 8>;
1294 
1295                                 label = "adsp";
1296                         };
1297                 };
1298 
1299                 pcie: pci@10000000 {
1300                         compatible = "qcom,pcie-qcs404", "snps,dw-pcie";
1301                         reg =  <0x10000000 0xf1d>,
1302                                <0x10000f20 0xa8>,
1303                                <0x07780000 0x2000>,
1304                                <0x10001000 0x2000>;
1305                         reg-names = "dbi", "elbi", "parf", "config";
1306                         device_type = "pci";
1307                         linux,pci-domain = <0>;
1308                         bus-range = <0x00 0xff>;
1309                         num-lanes = <1>;
1310                         #address-cells = <3>;
1311                         #size-cells = <2>;
1312 
1313                         ranges = <0x81000000 0 0          0x10003000 0 0x00010000>, /* I/O */
1314                                  <0x82000000 0 0x10013000 0x10013000 0 0x007ed000>; /* memory */
1315 
1316                         interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
1317                         interrupt-names = "msi";
1318                         #interrupt-cells = <1>;
1319                         interrupt-map-mask = <0 0 0 0x7>;
1320                         interrupt-map = <0 0 0 1 &intc GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
1321                                         <0 0 0 2 &intc GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
1322                                         <0 0 0 3 &intc GIC_SPI 267 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
1323                                         <0 0 0 4 &intc GIC_SPI 268 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
1324                         clocks = <&gcc GCC_PCIE_0_CFG_AHB_CLK>,
1325                                  <&gcc GCC_PCIE_0_AUX_CLK>,
1326                                  <&gcc GCC_PCIE_0_MSTR_AXI_CLK>,
1327                                  <&gcc GCC_PCIE_0_SLV_AXI_CLK>;
1328                         clock-names = "iface", "aux", "master_bus", "slave_bus";
1329 
1330                         resets = <&gcc 18>,
1331                                  <&gcc 17>,
1332                                  <&gcc 15>,
1333                                  <&gcc 19>,
1334                                  <&gcc GCC_PCIE_0_BCR>,
1335                                  <&gcc 16>;
1336                         reset-names = "axi_m",
1337                                       "axi_s",
1338                                       "axi_m_sticky",
1339                                       "pipe_sticky",
1340                                       "pwr",
1341                                       "ahb";
1342 
1343                         phys = <&pcie_phy>;
1344                         phy-names = "pciephy";
1345 
1346                         status = "disabled";
1347                 };
1348         };
1349 
1350         timer {
1351                 compatible = "arm,armv8-timer";
1352                 interrupts = <GIC_PPI 2 0xff08>,
1353                              <GIC_PPI 3 0xff08>,
1354                              <GIC_PPI 4 0xff08>,
1355                              <GIC_PPI 1 0xff08>;
1356         };
1357 
1358         smp2p-adsp {
1359                 compatible = "qcom,smp2p";
1360                 qcom,smem = <443>, <429>;
1361                 interrupts = <GIC_SPI 291 IRQ_TYPE_EDGE_RISING>;
1362                 mboxes = <&apcs_glb 10>;
1363                 qcom,local-pid = <0>;
1364                 qcom,remote-pid = <2>;
1365 
1366                 adsp_smp2p_out: master-kernel {
1367                         qcom,entry-name = "master-kernel";
1368                         #qcom,smem-state-cells = <1>;
1369                 };
1370 
1371                 adsp_smp2p_in: slave-kernel {
1372                         qcom,entry-name = "slave-kernel";
1373                         interrupt-controller;
1374                         #interrupt-cells = <2>;
1375                 };
1376         };
1377 
1378         smp2p-cdsp {
1379                 compatible = "qcom,smp2p";
1380                 qcom,smem = <94>, <432>;
1381                 interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
1382                 mboxes = <&apcs_glb 14>;
1383                 qcom,local-pid = <0>;
1384                 qcom,remote-pid = <5>;
1385 
1386                 cdsp_smp2p_out: master-kernel {
1387                         qcom,entry-name = "master-kernel";
1388                         #qcom,smem-state-cells = <1>;
1389                 };
1390 
1391                 cdsp_smp2p_in: slave-kernel {
1392                         qcom,entry-name = "slave-kernel";
1393                         interrupt-controller;
1394                         #interrupt-cells = <2>;
1395                 };
1396         };
1397 
1398         smp2p-wcss {
1399                 compatible = "qcom,smp2p";
1400                 qcom,smem = <435>, <428>;
1401                 interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
1402                 mboxes = <&apcs_glb 18>;
1403                 qcom,local-pid = <0>;
1404                 qcom,remote-pid = <1>;
1405 
1406                 wcss_smp2p_out: master-kernel {
1407                         qcom,entry-name = "master-kernel";
1408                         #qcom,smem-state-cells = <1>;
1409                 };
1410 
1411                 wcss_smp2p_in: slave-kernel {
1412                         qcom,entry-name = "slave-kernel";
1413                         interrupt-controller;
1414                         #interrupt-cells = <2>;
1415                 };
1416         };
1417 
1418         thermal-zones {
1419                 aoss-thermal {
1420                         polling-delay-passive = <250>;
1421                         polling-delay = <1000>;
1422 
1423                         thermal-sensors = <&tsens 0>;
1424 
1425                         trips {
1426                                 aoss_alert0: trip-point0 {
1427                                         temperature = <105000>;
1428                                         hysteresis = <2000>;
1429                                         type = "hot";
1430                                 };
1431                         };
1432                 };
1433 
1434                 q6-hvx-thermal {
1435                         polling-delay-passive = <250>;
1436                         polling-delay = <1000>;
1437 
1438                         thermal-sensors = <&tsens 1>;
1439 
1440                         trips {
1441                                 q6_hvx_alert0: trip-point0 {
1442                                         temperature = <105000>;
1443                                         hysteresis = <2000>;
1444                                         type = "hot";
1445                                 };
1446                         };
1447                 };
1448 
1449                 lpass-thermal {
1450                         polling-delay-passive = <250>;
1451                         polling-delay = <1000>;
1452 
1453                         thermal-sensors = <&tsens 2>;
1454 
1455                         trips {
1456                                 lpass_alert0: trip-point0 {
1457                                         temperature = <105000>;
1458                                         hysteresis = <2000>;
1459                                         type = "hot";
1460                                 };
1461                         };
1462                 };
1463 
1464                 wlan-thermal {
1465                         polling-delay-passive = <250>;
1466                         polling-delay = <1000>;
1467 
1468                         thermal-sensors = <&tsens 3>;
1469 
1470                         trips {
1471                                 wlan_alert0: trip-point0 {
1472                                         temperature = <105000>;
1473                                         hysteresis = <2000>;
1474                                         type = "hot";
1475                                 };
1476                         };
1477                 };
1478 
1479                 cluster-thermal {
1480                         polling-delay-passive = <250>;
1481                         polling-delay = <1000>;
1482 
1483                         thermal-sensors = <&tsens 4>;
1484 
1485                         trips {
1486                                 cluster_alert0: trip-point0 {
1487                                         temperature = <95000>;
1488                                         hysteresis = <2000>;
1489                                         type = "hot";
1490                                 };
1491                                 cluster_alert1: trip-point1 {
1492                                         temperature = <105000>;
1493                                         hysteresis = <2000>;
1494                                         type = "passive";
1495                                 };
1496                                 cluster_crit: cluster_crit {
1497                                         temperature = <120000>;
1498                                         hysteresis = <2000>;
1499                                         type = "critical";
1500                                 };
1501                         };
1502                         cooling-maps {
1503                                 map0 {
1504                                         trip = <&cluster_alert1>;
1505                                         cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1506                                                        <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1507                                                        <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1508                                                        <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1509                                 };
1510                         };
1511                 };
1512 
1513                 cpu0-thermal {
1514                         polling-delay-passive = <250>;
1515                         polling-delay = <1000>;
1516 
1517                         thermal-sensors = <&tsens 5>;
1518 
1519                         trips {
1520                                 cpu0_alert0: trip-point0 {
1521                                         temperature = <95000>;
1522                                         hysteresis = <2000>;
1523                                         type = "hot";
1524                                 };
1525                                 cpu0_alert1: trip-point1 {
1526                                         temperature = <105000>;
1527                                         hysteresis = <2000>;
1528                                         type = "passive";
1529                                 };
1530                                 cpu0_crit: cpu_crit {
1531                                         temperature = <120000>;
1532                                         hysteresis = <2000>;
1533                                         type = "critical";
1534                                 };
1535                         };
1536                         cooling-maps {
1537                                 map0 {
1538                                         trip = <&cpu0_alert1>;
1539                                         cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1540                                                        <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1541                                                        <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1542                                                        <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1543                                 };
1544                         };
1545                 };
1546 
1547                 cpu1-thermal {
1548                         polling-delay-passive = <250>;
1549                         polling-delay = <1000>;
1550 
1551                         thermal-sensors = <&tsens 6>;
1552 
1553                         trips {
1554                                 cpu1_alert0: trip-point0 {
1555                                         temperature = <95000>;
1556                                         hysteresis = <2000>;
1557                                         type = "hot";
1558                                 };
1559                                 cpu1_alert1: trip-point1 {
1560                                         temperature = <105000>;
1561                                         hysteresis = <2000>;
1562                                         type = "passive";
1563                                 };
1564                                 cpu1_crit: cpu_crit {
1565                                         temperature = <120000>;
1566                                         hysteresis = <2000>;
1567                                         type = "critical";
1568                                 };
1569                         };
1570                         cooling-maps {
1571                                 map0 {
1572                                         trip = <&cpu1_alert1>;
1573                                         cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1574                                                        <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1575                                                        <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1576                                                        <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1577                                 };
1578                         };
1579                 };
1580 
1581                 cpu2-thermal {
1582                         polling-delay-passive = <250>;
1583                         polling-delay = <1000>;
1584 
1585                         thermal-sensors = <&tsens 7>;
1586 
1587                         trips {
1588                                 cpu2_alert0: trip-point0 {
1589                                         temperature = <95000>;
1590                                         hysteresis = <2000>;
1591                                         type = "hot";
1592                                 };
1593                                 cpu2_alert1: trip-point1 {
1594                                         temperature = <105000>;
1595                                         hysteresis = <2000>;
1596                                         type = "passive";
1597                                 };
1598                                 cpu2_crit: cpu_crit {
1599                                         temperature = <120000>;
1600                                         hysteresis = <2000>;
1601                                         type = "critical";
1602                                 };
1603                         };
1604                         cooling-maps {
1605                                 map0 {
1606                                         trip = <&cpu2_alert1>;
1607                                         cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1608                                                        <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1609                                                        <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1610                                                        <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1611                                 };
1612                         };
1613                 };
1614 
1615                 cpu3-thermal {
1616                         polling-delay-passive = <250>;
1617                         polling-delay = <1000>;
1618 
1619                         thermal-sensors = <&tsens 8>;
1620 
1621                         trips {
1622                                 cpu3_alert0: trip-point0 {
1623                                         temperature = <95000>;
1624                                         hysteresis = <2000>;
1625                                         type = "hot";
1626                                 };
1627                                 cpu3_alert1: trip-point1 {
1628                                         temperature = <105000>;
1629                                         hysteresis = <2000>;
1630                                         type = "passive";
1631                                 };
1632                                 cpu3_crit: cpu_crit {
1633                                         temperature = <120000>;
1634                                         hysteresis = <2000>;
1635                                         type = "critical";
1636                                 };
1637                         };
1638                         cooling-maps {
1639                                 map0 {
1640                                         trip = <&cpu3_alert1>;
1641                                         cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1642                                                        <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1643                                                        <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
1644                                                        <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
1645                                 };
1646                         };
1647                 };
1648 
1649                 gpu-thermal {
1650                         polling-delay-passive = <250>;
1651                         polling-delay = <1000>;
1652 
1653                         thermal-sensors = <&tsens 9>;
1654 
1655                         trips {
1656                                 gpu_alert0: trip-point0 {
1657                                         temperature = <95000>;
1658                                         hysteresis = <2000>;
1659                                         type = "hot";
1660                                 };
1661                         };
1662                 };
1663         };
1664 };