0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
0003 */
0004
0005 #include <dt-bindings/interrupt-controller/arm-gic.h>
0006 #include <dt-bindings/clock/qcom,gcc-msm8994.h>
0007 #include <dt-bindings/clock/qcom,mmcc-msm8994.h>
0008 #include <dt-bindings/clock/qcom,rpmcc.h>
0009 #include <dt-bindings/power/qcom-rpmpd.h>
0010
0011 / {
0012 interrupt-parent = <&intc>;
0013
0014 #address-cells = <2>;
0015 #size-cells = <2>;
0016
0017 aliases {
0018 mmc1 = &sdhc1;
0019 mmc2 = &sdhc2;
0020 };
0021
0022 chosen { };
0023
0024 clocks {
0025 xo_board: xo-board {
0026 compatible = "fixed-clock";
0027 #clock-cells = <0>;
0028 clock-frequency = <19200000>;
0029 clock-output-names = "xo_board";
0030 };
0031
0032 sleep_clk: sleep-clk {
0033 compatible = "fixed-clock";
0034 #clock-cells = <0>;
0035 clock-frequency = <32768>;
0036 clock-output-names = "sleep_clk";
0037 };
0038 };
0039
0040 cpus {
0041 #address-cells = <2>;
0042 #size-cells = <0>;
0043
0044 CPU0: cpu@0 {
0045 device_type = "cpu";
0046 compatible = "arm,cortex-a53";
0047 reg = <0x0 0x0>;
0048 enable-method = "psci";
0049 next-level-cache = <&L2_0>;
0050 L2_0: l2-cache {
0051 compatible = "cache";
0052 cache-level = <2>;
0053 };
0054 };
0055
0056 CPU1: cpu@1 {
0057 device_type = "cpu";
0058 compatible = "arm,cortex-a53";
0059 reg = <0x0 0x1>;
0060 enable-method = "psci";
0061 next-level-cache = <&L2_0>;
0062 };
0063
0064 CPU2: cpu@2 {
0065 device_type = "cpu";
0066 compatible = "arm,cortex-a53";
0067 reg = <0x0 0x2>;
0068 enable-method = "psci";
0069 next-level-cache = <&L2_0>;
0070 };
0071
0072 CPU3: cpu@3 {
0073 device_type = "cpu";
0074 compatible = "arm,cortex-a53";
0075 reg = <0x0 0x3>;
0076 enable-method = "psci";
0077 next-level-cache = <&L2_0>;
0078 };
0079
0080 CPU4: cpu@100 {
0081 device_type = "cpu";
0082 compatible = "arm,cortex-a57";
0083 reg = <0x0 0x100>;
0084 enable-method = "psci";
0085 next-level-cache = <&L2_1>;
0086 L2_1: l2-cache {
0087 compatible = "cache";
0088 cache-level = <2>;
0089 };
0090 };
0091
0092 CPU5: cpu@101 {
0093 device_type = "cpu";
0094 compatible = "arm,cortex-a57";
0095 reg = <0x0 0x101>;
0096 enable-method = "psci";
0097 next-level-cache = <&L2_1>;
0098 };
0099
0100 CPU6: cpu@102 {
0101 device_type = "cpu";
0102 compatible = "arm,cortex-a57";
0103 reg = <0x0 0x102>;
0104 enable-method = "psci";
0105 next-level-cache = <&L2_1>;
0106 };
0107
0108 CPU7: cpu@103 {
0109 device_type = "cpu";
0110 compatible = "arm,cortex-a57";
0111 reg = <0x0 0x103>;
0112 enable-method = "psci";
0113 next-level-cache = <&L2_1>;
0114 };
0115
0116 cpu-map {
0117 cluster0 {
0118 core0 {
0119 cpu = <&CPU0>;
0120 };
0121
0122 core1 {
0123 cpu = <&CPU1>;
0124 };
0125
0126 core2 {
0127 cpu = <&CPU2>;
0128 };
0129
0130 core3 {
0131 cpu = <&CPU3>;
0132 };
0133 };
0134
0135 cluster1 {
0136 core0 {
0137 cpu = <&CPU4>;
0138 };
0139
0140 core1 {
0141 cpu = <&CPU5>;
0142 };
0143
0144 cpu6_map: core2 {
0145 cpu = <&CPU6>;
0146 };
0147
0148 cpu7_map: core3 {
0149 cpu = <&CPU7>;
0150 };
0151 };
0152 };
0153 };
0154
0155 firmware {
0156 scm {
0157 compatible = "qcom,scm-msm8994", "qcom,scm";
0158 };
0159 };
0160
0161 memory@80000000 {
0162 device_type = "memory";
0163 /* We expect the bootloader to fill in the reg */
0164 reg = <0 0x80000000 0 0>;
0165 };
0166
0167 tcsr_mutex: hwlock {
0168 compatible = "qcom,tcsr-mutex";
0169 syscon = <&tcsr_mutex_regs 0 0x80>;
0170 #hwlock-cells = <1>;
0171 };
0172
0173 pmu {
0174 compatible = "arm,cortex-a53-pmu";
0175 interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4)| IRQ_TYPE_LEVEL_HIGH)>;
0176 };
0177
0178 psci {
0179 compatible = "arm,psci-0.2";
0180 method = "hvc";
0181 };
0182
0183 reserved-memory {
0184 #address-cells = <2>;
0185 #size-cells = <2>;
0186 ranges;
0187
0188 dfps_data_mem: dfps_data_mem@3400000 {
0189 reg = <0 0x03400000 0 0x1000>;
0190 no-map;
0191 };
0192
0193 cont_splash_mem: memory@3401000 {
0194 reg = <0 0x03401000 0 0x2200000>;
0195 no-map;
0196 };
0197
0198 smem_mem: smem_region@6a00000 {
0199 reg = <0 0x06a00000 0 0x200000>;
0200 no-map;
0201 };
0202
0203 mpss_mem: memory@7000000 {
0204 reg = <0 0x07000000 0 0x5a00000>;
0205 no-map;
0206 };
0207
0208 peripheral_region: memory@ca00000 {
0209 reg = <0 0x0ca00000 0 0x1f00000>;
0210 no-map;
0211 };
0212
0213 rmtfs_mem: memory@c6400000 {
0214 compatible = "qcom,rmtfs-mem";
0215 reg = <0 0xc6400000 0 0x180000>;
0216 no-map;
0217
0218 qcom,client-id = <1>;
0219 };
0220
0221 mba_mem: memory@c6700000 {
0222 reg = <0 0xc6700000 0 0x100000>;
0223 no-map;
0224 };
0225
0226 audio_mem: memory@c7000000 {
0227 reg = <0 0xc7000000 0 0x800000>;
0228 no-map;
0229 };
0230
0231 adsp_mem: memory@c9400000 {
0232 reg = <0 0xc9400000 0 0x3f00000>;
0233 no-map;
0234 };
0235 };
0236
0237 smd {
0238 compatible = "qcom,smd";
0239 rpm {
0240 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
0241 qcom,ipc = <&apcs 8 0>;
0242 qcom,smd-edge = <15>;
0243 qcom,remote-pid = <6>;
0244
0245 rpm_requests: rpm-requests {
0246 compatible = "qcom,rpm-msm8994";
0247 qcom,smd-channels = "rpm_requests";
0248
0249 rpmcc: rpmcc {
0250 compatible = "qcom,rpmcc-msm8994", "qcom,rpmcc";
0251 #clock-cells = <1>;
0252 };
0253
0254 rpmpd: power-controller {
0255 compatible = "qcom,msm8994-rpmpd";
0256 #power-domain-cells = <1>;
0257 operating-points-v2 = <&rpmpd_opp_table>;
0258
0259 rpmpd_opp_table: opp-table {
0260 compatible = "operating-points-v2";
0261
0262 rpmpd_opp_ret: opp1 {
0263 opp-level = <1>;
0264 };
0265 rpmpd_opp_svs_krait: opp2 {
0266 opp-level = <2>;
0267 };
0268 rpmpd_opp_svs_soc: opp3 {
0269 opp-level = <3>;
0270 };
0271 rpmpd_opp_nom: opp4 {
0272 opp-level = <4>;
0273 };
0274 rpmpd_opp_turbo: opp5 {
0275 opp-level = <5>;
0276 };
0277 rpmpd_opp_super_turbo: opp6 {
0278 opp-level = <6>;
0279 };
0280 };
0281 };
0282 };
0283 };
0284 };
0285
0286 smem {
0287 compatible = "qcom,smem";
0288 memory-region = <&smem_mem>;
0289 qcom,rpm-msg-ram = <&rpm_msg_ram>;
0290 hwlocks = <&tcsr_mutex 3>;
0291 };
0292
0293 smp2p-lpass {
0294 compatible = "qcom,smp2p";
0295 qcom,smem = <443>, <429>;
0296
0297 interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
0298
0299 qcom,ipc = <&apcs 8 10>;
0300
0301 qcom,local-pid = <0>;
0302 qcom,remote-pid = <2>;
0303
0304 adsp_smp2p_out: master-kernel {
0305 qcom,entry-name = "master-kernel";
0306 #qcom,smem-state-cells = <1>;
0307 };
0308
0309 adsp_smp2p_in: slave-kernel {
0310 qcom,entry-name = "slave-kernel";
0311
0312 interrupt-controller;
0313 #interrupt-cells = <2>;
0314 };
0315 };
0316
0317 smp2p-modem {
0318 compatible = "qcom,smp2p";
0319 qcom,smem = <435>, <428>;
0320
0321 interrupt-parent = <&intc>;
0322 interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
0323
0324 qcom,ipc = <&apcs 8 14>;
0325
0326 qcom,local-pid = <0>;
0327 qcom,remote-pid = <1>;
0328
0329 modem_smp2p_out: master-kernel {
0330 qcom,entry-name = "master-kernel";
0331 #qcom,smem-state-cells = <1>;
0332 };
0333
0334 modem_smp2p_in: slave-kernel {
0335 qcom,entry-name = "slave-kernel";
0336
0337 interrupt-controller;
0338 #interrupt-cells = <2>;
0339 };
0340 };
0341
0342 soc: soc {
0343
0344 #address-cells = <1>;
0345 #size-cells = <1>;
0346 ranges = <0 0 0 0xffffffff>;
0347 compatible = "simple-bus";
0348
0349 intc: interrupt-controller@f9000000 {
0350 compatible = "qcom,msm-qgic2";
0351 interrupt-controller;
0352 #interrupt-cells = <3>;
0353 reg = <0xf9000000 0x1000>,
0354 <0xf9002000 0x1000>;
0355 };
0356
0357 apcs: mailbox@f900d000 {
0358 compatible = "qcom,msm8994-apcs-kpss-global", "syscon";
0359 reg = <0xf900d000 0x2000>;
0360 #mbox-cells = <1>;
0361 };
0362
0363 watchdog@f9017000 {
0364 compatible = "qcom,apss-wdt-msm8994", "qcom,kpss-wdt";
0365 reg = <0xf9017000 0x1000>;
0366 interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>,
0367 <GIC_SPI 4 IRQ_TYPE_EDGE_RISING>;
0368 clocks = <&sleep_clk>;
0369 timeout-sec = <10>;
0370 };
0371
0372 timer@f9020000 {
0373 #address-cells = <1>;
0374 #size-cells = <1>;
0375 ranges;
0376 compatible = "arm,armv7-timer-mem";
0377 reg = <0xf9020000 0x1000>;
0378
0379 frame@f9021000 {
0380 frame-number = <0>;
0381 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
0382 <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
0383 reg = <0xf9021000 0x1000>,
0384 <0xf9022000 0x1000>;
0385 };
0386
0387 frame@f9023000 {
0388 frame-number = <1>;
0389 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
0390 reg = <0xf9023000 0x1000>;
0391 status = "disabled";
0392 };
0393
0394 frame@f9024000 {
0395 frame-number = <2>;
0396 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
0397 reg = <0xf9024000 0x1000>;
0398 status = "disabled";
0399 };
0400
0401 frame@f9025000 {
0402 frame-number = <3>;
0403 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
0404 reg = <0xf9025000 0x1000>;
0405 status = "disabled";
0406 };
0407
0408 frame@f9026000 {
0409 frame-number = <4>;
0410 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
0411 reg = <0xf9026000 0x1000>;
0412 status = "disabled";
0413 };
0414
0415 frame@f9027000 {
0416 frame-number = <5>;
0417 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
0418 reg = <0xf9027000 0x1000>;
0419 status = "disabled";
0420 };
0421
0422 frame@f9028000 {
0423 frame-number = <6>;
0424 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
0425 reg = <0xf9028000 0x1000>;
0426 status = "disabled";
0427 };
0428 };
0429
0430 usb3: usb@f92f8800 {
0431 compatible = "qcom,msm8994-dwc3", "qcom,dwc3";
0432 reg = <0xf92f8800 0x400>;
0433 #address-cells = <1>;
0434 #size-cells = <1>;
0435 ranges;
0436
0437 clocks = <&gcc GCC_USB30_MASTER_CLK>,
0438 <&gcc GCC_SYS_NOC_USB3_AXI_CLK>,
0439 <&gcc GCC_USB30_SLEEP_CLK>,
0440 <&gcc GCC_USB30_MOCK_UTMI_CLK>;
0441 clock-names = "core",
0442 "iface",
0443 "sleep",
0444 "mock_utmi";
0445
0446 assigned-clocks = <&gcc GCC_USB30_MOCK_UTMI_CLK>,
0447 <&gcc GCC_USB30_MASTER_CLK>;
0448 assigned-clock-rates = <19200000>, <120000000>;
0449
0450 power-domains = <&gcc USB30_GDSC>;
0451 qcom,select-utmi-as-pipe-clk;
0452
0453 usb@f9200000 {
0454 compatible = "snps,dwc3";
0455 reg = <0xf9200000 0xcc00>;
0456 interrupts = <0 131 IRQ_TYPE_LEVEL_HIGH>;
0457 snps,dis_u2_susphy_quirk;
0458 snps,dis_enblslpm_quirk;
0459 maximum-speed = "high-speed";
0460 dr_mode = "peripheral";
0461 };
0462 };
0463
0464 sdhc1: mmc@f9824900 {
0465 compatible = "qcom,msm8994-sdhci", "qcom,sdhci-msm-v4";
0466 reg = <0xf9824900 0x1a0>, <0xf9824000 0x800>;
0467 reg-names = "hc_mem", "core_mem";
0468
0469 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
0470 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
0471 interrupt-names = "hc_irq", "pwr_irq";
0472
0473 clocks = <&gcc GCC_SDCC1_AHB_CLK>,
0474 <&gcc GCC_SDCC1_APPS_CLK>,
0475 <&xo_board>;
0476 clock-names = "iface", "core", "xo";
0477
0478 pinctrl-names = "default", "sleep";
0479 pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>;
0480 pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>;
0481
0482 bus-width = <8>;
0483 non-removable;
0484 status = "disabled";
0485 };
0486
0487 sdhc2: mmc@f98a4900 {
0488 compatible = "qcom,msm8994-sdhci", "qcom,sdhci-msm-v4";
0489 reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>;
0490 reg-names = "hc_mem", "core_mem";
0491
0492 interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
0493 <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
0494 interrupt-names = "hc_irq", "pwr_irq";
0495
0496 clocks = <&gcc GCC_SDCC2_AHB_CLK>,
0497 <&gcc GCC_SDCC2_APPS_CLK>,
0498 <&xo_board>;
0499 clock-names = "iface", "core", "xo";
0500
0501 pinctrl-names = "default", "sleep";
0502 pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>;
0503 pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;
0504
0505 cd-gpios = <&tlmm 100 0>;
0506 bus-width = <4>;
0507 status = "disabled";
0508 };
0509
0510 blsp1_dma: dma-controller@f9904000 {
0511 compatible = "qcom,bam-v1.7.0";
0512 reg = <0xf9904000 0x19000>;
0513 interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
0514 clocks = <&gcc GCC_BLSP1_AHB_CLK>;
0515 clock-names = "bam_clk";
0516 #dma-cells = <1>;
0517 qcom,ee = <0>;
0518 qcom,controlled-remotely;
0519 num-channels = <24>;
0520 qcom,num-ees = <4>;
0521 };
0522
0523 blsp1_uart2: serial@f991e000 {
0524 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
0525 reg = <0xf991e000 0x1000>;
0526 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
0527 clock-names = "core", "iface";
0528 clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>,
0529 <&gcc GCC_BLSP1_AHB_CLK>;
0530 pinctrl-names = "default", "sleep";
0531 pinctrl-0 = <&blsp1_uart2_default>;
0532 pinctrl-1 = <&blsp1_uart2_sleep>;
0533 status = "disabled";
0534 };
0535
0536 blsp1_i2c1: i2c@f9923000 {
0537 compatible = "qcom,i2c-qup-v2.2.1";
0538 reg = <0xf9923000 0x500>;
0539 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
0540 clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
0541 <&gcc GCC_BLSP1_AHB_CLK>;
0542 clock-names = "core", "iface";
0543 clock-frequency = <400000>;
0544 dmas = <&blsp1_dma 12>, <&blsp1_dma 13>;
0545 dma-names = "tx", "rx";
0546 pinctrl-names = "default", "sleep";
0547 pinctrl-0 = <&i2c1_default>;
0548 pinctrl-1 = <&i2c1_sleep>;
0549 #address-cells = <1>;
0550 #size-cells = <0>;
0551 status = "disabled";
0552 };
0553
0554 blsp1_spi1: spi@f9923000 {
0555 compatible = "qcom,spi-qup-v2.2.1";
0556 reg = <0xf9923000 0x500>;
0557 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
0558 clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
0559 <&gcc GCC_BLSP1_AHB_CLK>;
0560 clock-names = "core", "iface";
0561 spi-max-frequency = <19200000>;
0562 dmas = <&blsp1_dma 12>, <&blsp1_dma 13>;
0563 dma-names = "tx", "rx";
0564 pinctrl-names = "default", "sleep";
0565 pinctrl-0 = <&blsp1_spi1_default>;
0566 pinctrl-1 = <&blsp1_spi1_sleep>;
0567 #address-cells = <1>;
0568 #size-cells = <0>;
0569 status = "disabled";
0570 };
0571
0572 blsp1_i2c2: i2c@f9924000 {
0573 compatible = "qcom,i2c-qup-v2.2.1";
0574 reg = <0xf9924000 0x500>;
0575 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
0576 clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
0577 <&gcc GCC_BLSP1_AHB_CLK>;
0578 clock-names = "core", "iface";
0579 clock-frequency = <400000>;
0580 dmas = <&blsp1_dma 14>, <&blsp1_dma 15>;
0581 dma-names = "tx", "rx";
0582 pinctrl-names = "default", "sleep";
0583 pinctrl-0 = <&i2c2_default>;
0584 pinctrl-1 = <&i2c2_sleep>;
0585 #address-cells = <1>;
0586 #size-cells = <0>;
0587 status = "disabled";
0588 };
0589
0590 /* I2C3 doesn't exist */
0591
0592 blsp1_i2c4: i2c@f9926000 {
0593 compatible = "qcom,i2c-qup-v2.2.1";
0594 reg = <0xf9926000 0x500>;
0595 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
0596 clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
0597 <&gcc GCC_BLSP1_AHB_CLK>;
0598 clock-names = "core", "iface";
0599 clock-frequency = <400000>;
0600 dmas = <&blsp1_dma 18>, <&blsp1_dma 19>;
0601 dma-names = "tx", "rx";
0602 pinctrl-names = "default", "sleep";
0603 pinctrl-0 = <&i2c4_default>;
0604 pinctrl-1 = <&i2c4_sleep>;
0605 #address-cells = <1>;
0606 #size-cells = <0>;
0607 status = "disabled";
0608 };
0609
0610 blsp1_i2c5: i2c@f9927000 {
0611 compatible = "qcom,i2c-qup-v2.2.1";
0612 reg = <0xf9927000 0x500>;
0613 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
0614 clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>,
0615 <&gcc GCC_BLSP1_AHB_CLK>;
0616 clock-names = "core", "iface";
0617 clock-frequency = <400000>;
0618 dmas = <&blsp2_dma 20>, <&blsp2_dma 21>;
0619 dma-names = "tx", "rx";
0620 pinctrl-names = "default", "sleep";
0621 pinctrl-0 = <&i2c5_default>;
0622 pinctrl-1 = <&i2c5_sleep>;
0623 #address-cells = <1>;
0624 #size-cells = <0>;
0625 status = "disabled";
0626 };
0627
0628 blsp1_i2c6: i2c@f9928000 {
0629 compatible = "qcom,i2c-qup-v2.2.1";
0630 reg = <0xf9928000 0x500>;
0631 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
0632 clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>,
0633 <&gcc GCC_BLSP1_AHB_CLK>;
0634 clock-names = "core", "iface";
0635 clock-frequency = <400000>;
0636 dmas = <&blsp1_dma 22>, <&blsp1_dma 23>;
0637 dma-names = "tx", "rx";
0638 pinctrl-names = "default", "sleep";
0639 pinctrl-0 = <&i2c6_default>;
0640 pinctrl-1 = <&i2c6_sleep>;
0641 #address-cells = <1>;
0642 #size-cells = <0>;
0643 status = "disabled";
0644 };
0645
0646 blsp2_dma: dma-controller@f9944000 {
0647 compatible = "qcom,bam-v1.7.0";
0648 reg = <0xf9944000 0x19000>;
0649 interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
0650 clocks = <&gcc GCC_BLSP2_AHB_CLK>;
0651 clock-names = "bam_clk";
0652 #dma-cells = <1>;
0653 qcom,ee = <0>;
0654 qcom,controlled-remotely;
0655 num-channels = <24>;
0656 qcom,num-ees = <4>;
0657 };
0658
0659 blsp2_uart2: serial@f995e000 {
0660 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
0661 reg = <0xf995e000 0x1000>;
0662 interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
0663 clock-names = "core", "iface";
0664 clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>,
0665 <&gcc GCC_BLSP2_AHB_CLK>;
0666 dmas = <&blsp2_dma 2>, <&blsp2_dma 3>;
0667 dma-names = "tx", "rx";
0668 pinctrl-names = "default", "sleep";
0669 pinctrl-0 = <&blsp2_uart2_default>;
0670 pinctrl-1 = <&blsp2_uart2_sleep>;
0671 status = "disabled";
0672 };
0673
0674 blsp2_i2c1: i2c@f9963000 {
0675 compatible = "qcom,i2c-qup-v2.2.1";
0676 reg = <0xf9963000 0x500>;
0677 interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
0678 clocks = <&gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>,
0679 <&gcc GCC_BLSP2_AHB_CLK>;
0680 clock-names = "core", "iface";
0681 clock-frequency = <400000>;
0682 dmas = <&blsp2_dma 12>, <&blsp2_dma 13>;
0683 dma-names = "tx", "rx";
0684 pinctrl-names = "default", "sleep";
0685 pinctrl-0 = <&i2c7_default>;
0686 pinctrl-1 = <&i2c7_sleep>;
0687 #address-cells = <1>;
0688 #size-cells = <0>;
0689 status = "disabled";
0690 };
0691
0692 blsp2_spi4: spi@f9966000 {
0693 compatible = "qcom,spi-qup-v2.2.1";
0694 reg = <0xf9966000 0x500>;
0695 interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
0696 clocks = <&gcc GCC_BLSP2_QUP4_SPI_APPS_CLK>,
0697 <&gcc GCC_BLSP2_AHB_CLK>;
0698 clock-names = "core", "iface";
0699 spi-max-frequency = <19200000>;
0700 dmas = <&blsp2_dma 18>, <&blsp2_dma 19>;
0701 dma-names = "tx", "rx";
0702 pinctrl-names = "default", "sleep";
0703 pinctrl-0 = <&blsp2_spi10_default>;
0704 pinctrl-1 = <&blsp2_spi10_sleep>;
0705 #address-cells = <1>;
0706 #size-cells = <0>;
0707 status = "disabled";
0708 };
0709
0710 blsp2_i2c5: i2c@f9967000 {
0711 compatible = "qcom,i2c-qup-v2.2.1";
0712 reg = <0xf9967000 0x500>;
0713 interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
0714 clocks = <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>,
0715 <&gcc GCC_BLSP2_AHB_CLK>;
0716 clock-names = "core", "iface";
0717 clock-frequency = <355000>;
0718 dmas = <&blsp2_dma 20>, <&blsp2_dma 21>;
0719 dma-names = "tx", "rx";
0720 pinctrl-names = "default", "sleep";
0721 pinctrl-0 = <&i2c11_default>;
0722 pinctrl-1 = <&i2c11_sleep>;
0723 #address-cells = <1>;
0724 #size-cells = <0>;
0725 status = "disabled";
0726 };
0727
0728 gcc: clock-controller@fc400000 {
0729 compatible = "qcom,gcc-msm8994";
0730 #clock-cells = <1>;
0731 #reset-cells = <1>;
0732 #power-domain-cells = <1>;
0733 reg = <0xfc400000 0x2000>;
0734
0735 clock-names = "xo", "sleep";
0736 clocks = <&xo_board>, <&sleep_clk>;
0737 };
0738
0739 rpm_msg_ram: sram@fc428000 {
0740 compatible = "qcom,rpm-msg-ram";
0741 reg = <0xfc428000 0x4000>;
0742 };
0743
0744 restart@fc4ab000 {
0745 compatible = "qcom,pshold";
0746 reg = <0xfc4ab000 0x4>;
0747 };
0748
0749 spmi_bus: spmi@fc4c0000 {
0750 compatible = "qcom,spmi-pmic-arb";
0751 reg = <0xfc4cf000 0x1000>,
0752 <0xfc4cb000 0x1000>,
0753 <0xfc4ca000 0x1000>;
0754 reg-names = "core", "intr", "cnfg";
0755 interrupt-names = "periph_irq";
0756 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
0757 qcom,ee = <0>;
0758 qcom,channel = <0>;
0759 #address-cells = <2>;
0760 #size-cells = <0>;
0761 interrupt-controller;
0762 #interrupt-cells = <4>;
0763 };
0764
0765 tcsr_mutex_regs: syscon@fd484000 {
0766 compatible = "syscon";
0767 reg = <0xfd484000 0x2000>;
0768 };
0769
0770 tlmm: pinctrl@fd510000 {
0771 compatible = "qcom,msm8994-pinctrl";
0772 reg = <0xfd510000 0x4000>;
0773 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
0774 gpio-controller;
0775 gpio-ranges = <&tlmm 0 0 146>;
0776 #gpio-cells = <2>;
0777 interrupt-controller;
0778 #interrupt-cells = <2>;
0779
0780 blsp1_uart2_default: blsp1-uart2-default {
0781 function = "blsp_uart2";
0782 pins = "gpio4", "gpio5";
0783 drive-strength = <16>;
0784 bias-disable;
0785 };
0786
0787 blsp1_uart2_sleep: blsp1-uart2-sleep {
0788 function = "gpio";
0789 pins = "gpio4", "gpio5";
0790 drive-strength = <2>;
0791 bias-pull-down;
0792 };
0793
0794 blsp2_uart2_default: blsp2-uart2-default {
0795 function = "blsp_uart8";
0796 pins = "gpio45", "gpio46",
0797 "gpio47", "gpio48";
0798 drive-strength = <16>;
0799 bias-disable;
0800 };
0801
0802 blsp2_uart2_sleep: blsp2-uart2-sleep {
0803 function = "gpio";
0804 pins = "gpio45", "gpio46",
0805 "gpio47", "gpio48";
0806 drive-strength = <2>;
0807 bias-disable;
0808 };
0809
0810 i2c1_default: i2c1-default {
0811 function = "blsp_i2c1";
0812 pins = "gpio2", "gpio3";
0813 drive-strength = <2>;
0814 bias-disable;
0815 };
0816
0817 i2c1_sleep: i2c1-sleep {
0818 function = "gpio";
0819 pins = "gpio2", "gpio3";
0820 drive-strength = <2>;
0821 bias-disable;
0822 };
0823
0824 i2c2_default: i2c2-default {
0825 function = "blsp_i2c2";
0826 pins = "gpio6", "gpio7";
0827 drive-strength = <2>;
0828 bias-disable;
0829 };
0830
0831 i2c2_sleep: i2c2-sleep {
0832 function = "gpio";
0833 pins = "gpio6", "gpio7";
0834 drive-strength = <2>;
0835 bias-disable;
0836 };
0837
0838 i2c4_default: i2c4-default {
0839 function = "blsp_i2c4";
0840 pins = "gpio19", "gpio20";
0841 drive-strength = <2>;
0842 bias-disable;
0843 };
0844
0845 i2c4_sleep: i2c4-sleep {
0846 function = "gpio";
0847 pins = "gpio19", "gpio20";
0848 drive-strength = <2>;
0849 bias-pull-down;
0850 input-enable;
0851 };
0852
0853 i2c5_default: i2c5-default {
0854 function = "blsp_i2c5";
0855 pins = "gpio23", "gpio24";
0856 drive-strength = <2>;
0857 bias-disable;
0858 };
0859
0860 i2c5_sleep: i2c5-sleep {
0861 function = "gpio";
0862 pins = "gpio23", "gpio24";
0863 drive-strength = <2>;
0864 bias-disable;
0865 };
0866
0867 i2c6_default: i2c6-default {
0868 function = "blsp_i2c6";
0869 pins = "gpio28", "gpio27";
0870 drive-strength = <2>;
0871 bias-disable;
0872 };
0873
0874 i2c6_sleep: i2c6-sleep {
0875 function = "gpio";
0876 pins = "gpio28", "gpio27";
0877 drive-strength = <2>;
0878 bias-disable;
0879 };
0880
0881 i2c7_default: i2c7-default {
0882 function = "blsp_i2c7";
0883 pins = "gpio44", "gpio43";
0884 drive-strength = <2>;
0885 bias-disable;
0886 };
0887
0888 i2c7_sleep: i2c7-sleep {
0889 function = "gpio";
0890 pins = "gpio44", "gpio43";
0891 drive-strength = <2>;
0892 bias-disable;
0893 };
0894
0895 blsp2_spi10_default: blsp2-spi10-default {
0896 default {
0897 function = "blsp_spi10";
0898 pins = "gpio53", "gpio54", "gpio55";
0899 drive-strength = <10>;
0900 bias-pull-down;
0901 };
0902 cs {
0903 function = "gpio";
0904 pins = "gpio55";
0905 drive-strength = <2>;
0906 bias-disable;
0907 };
0908 };
0909
0910 blsp2_spi10_sleep: blsp2-spi10-sleep {
0911 pins = "gpio53", "gpio54", "gpio55";
0912 drive-strength = <2>;
0913 bias-disable;
0914 };
0915
0916 i2c11_default: i2c11-default {
0917 function = "blsp_i2c11";
0918 pins = "gpio83", "gpio84";
0919 drive-strength = <2>;
0920 bias-disable;
0921 };
0922
0923 i2c11_sleep: i2c11-sleep {
0924 function = "gpio";
0925 pins = "gpio83", "gpio84";
0926 drive-strength = <2>;
0927 bias-disable;
0928 };
0929
0930 blsp1_spi1_default: blsp1-spi1-default {
0931 default {
0932 function = "blsp_spi1";
0933 pins = "gpio0", "gpio1", "gpio3";
0934 drive-strength = <10>;
0935 bias-pull-down;
0936 };
0937 cs {
0938 function = "gpio";
0939 pins = "gpio8";
0940 drive-strength = <2>;
0941 bias-disable;
0942 };
0943 };
0944
0945 blsp1_spi1_sleep: blsp1-spi1-sleep {
0946 pins = "gpio0", "gpio1", "gpio3";
0947 drive-strength = <2>;
0948 bias-disable;
0949 };
0950
0951 sdc1_clk_on: clk-on {
0952 pins = "sdc1_clk";
0953 bias-disable;
0954 drive-strength = <16>;
0955 };
0956
0957 sdc1_clk_off: clk-off {
0958 pins = "sdc1_clk";
0959 bias-disable;
0960 drive-strength = <2>;
0961 };
0962
0963 sdc1_cmd_on: cmd-on {
0964 pins = "sdc1_cmd";
0965 bias-pull-up;
0966 drive-strength = <8>;
0967 };
0968
0969 sdc1_cmd_off: cmd-off {
0970 pins = "sdc1_cmd";
0971 bias-pull-up;
0972 drive-strength = <2>;
0973 };
0974
0975 sdc1_data_on: data-on {
0976 pins = "sdc1_data";
0977 bias-pull-up;
0978 drive-strength = <8>;
0979 };
0980
0981 sdc1_data_off: data-off {
0982 pins = "sdc1_data";
0983 bias-pull-up;
0984 drive-strength = <2>;
0985 };
0986
0987 sdc1_rclk_on: rclk-on {
0988 pins = "sdc1_rclk";
0989 bias-pull-down;
0990 };
0991
0992 sdc1_rclk_off: rclk-off {
0993 pins = "sdc1_rclk";
0994 bias-pull-down;
0995 };
0996
0997 sdc2_clk_on: sdc2-clk-on {
0998 pins = "sdc2_clk";
0999 bias-disable;
1000 drive-strength = <10>;
1001 };
1002
1003 sdc2_clk_off: sdc2-clk-off {
1004 pins = "sdc2_clk";
1005 bias-disable;
1006 drive-strength = <2>;
1007 };
1008
1009 sdc2_cmd_on: sdc2-cmd-on {
1010 pins = "sdc2_cmd";
1011 bias-pull-up;
1012 drive-strength = <10>;
1013 };
1014
1015 sdc2_cmd_off: sdc2-cmd-off {
1016 pins = "sdc2_cmd";
1017 bias-pull-up;
1018 drive-strength = <2>;
1019 };
1020
1021 sdc2_data_on: sdc2-data-on {
1022 pins = "sdc2_data";
1023 bias-pull-up;
1024 drive-strength = <10>;
1025 };
1026
1027 sdc2_data_off: sdc2-data-off {
1028 pins = "sdc2_data";
1029 bias-pull-up;
1030 drive-strength = <2>;
1031 };
1032 };
1033
1034 mmcc: clock-controller@fd8c0000 {
1035 compatible = "qcom,mmcc-msm8994";
1036 reg = <0xfd8c0000 0x5200>;
1037 #clock-cells = <1>;
1038 #reset-cells = <1>;
1039 #power-domain-cells = <1>;
1040
1041 clock-names = "xo",
1042 "gpll0",
1043 "mmssnoc_ahb",
1044 "oxili_gfx3d_clk_src",
1045 "dsi0pll",
1046 "dsi0pllbyte",
1047 "dsi1pll",
1048 "dsi1pllbyte",
1049 "hdmipll";
1050 clocks = <&xo_board>,
1051 <&gcc GPLL0_OUT_MMSSCC>,
1052 <&rpmcc RPM_SMD_MMSSNOC_AHB_CLK>,
1053 <&rpmcc RPM_SMD_GFX3D_CLK_SRC>,
1054 <0>,
1055 <0>,
1056 <0>,
1057 <0>,
1058 <0>;
1059
1060 assigned-clocks = <&mmcc MMPLL0_PLL>,
1061 <&mmcc MMPLL1_PLL>,
1062 <&mmcc MMPLL3_PLL>,
1063 <&mmcc MMPLL4_PLL>,
1064 <&mmcc MMPLL5_PLL>;
1065 assigned-clock-rates = <800000000>,
1066 <1167000000>,
1067 <1020000000>,
1068 <960000000>,
1069 <600000000>;
1070 };
1071
1072 ocmem: sram@fdd00000 {
1073 compatible = "qcom,msm8974-ocmem";
1074 reg = <0xfdd00000 0x2000>,
1075 <0xfec00000 0x200000>;
1076 reg-names = "ctrl", "mem";
1077 ranges = <0 0xfec00000 0x200000>;
1078 clocks = <&rpmcc RPM_SMD_OCMEMGX_CLK>,
1079 <&mmcc OCMEMCX_OCMEMNOC_CLK>;
1080 clock-names = "core", "iface";
1081
1082 #address-cells = <1>;
1083 #size-cells = <1>;
1084
1085 gmu_sram: gmu-sram@0 {
1086 reg = <0x0 0x180000>;
1087 };
1088 };
1089 };
1090
1091 timer: timer {
1092 compatible = "arm,armv8-timer";
1093 interrupts = <GIC_PPI 2 0xff08>,
1094 <GIC_PPI 3 0xff08>,
1095 <GIC_PPI 4 0xff08>,
1096 <GIC_PPI 1 0xff08>;
1097 };
1098
1099 vph_pwr: vph-pwr-regulator {
1100 compatible = "regulator-fixed";
1101 regulator-name = "vph_pwr";
1102
1103 regulator-min-microvolt = <3600000>;
1104 regulator-max-microvolt = <3600000>;
1105
1106 regulator-always-on;
1107 };
1108 };
1109