1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun/* Copyright (c) 2013-2016, The Linux Foundation. All rights reserved. 3*4882a593Smuzhiyun */ 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h> 6*4882a593Smuzhiyun#include <dt-bindings/clock/qcom,gcc-msm8994.h> 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun/ { 9*4882a593Smuzhiyun interrupt-parent = <&intc>; 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #address-cells = <2>; 12*4882a593Smuzhiyun #size-cells = <2>; 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun chosen { }; 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun clocks { 17*4882a593Smuzhiyun xo_board: xo-board { 18*4882a593Smuzhiyun compatible = "fixed-clock"; 19*4882a593Smuzhiyun #clock-cells = <0>; 20*4882a593Smuzhiyun clock-frequency = <19200000>; 21*4882a593Smuzhiyun clock-output-names = "xo_board"; 22*4882a593Smuzhiyun }; 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun sleep_clk: sleep-clk { 25*4882a593Smuzhiyun compatible = "fixed-clock"; 26*4882a593Smuzhiyun #clock-cells = <0>; 27*4882a593Smuzhiyun clock-frequency = <32768>; 28*4882a593Smuzhiyun clock-output-names = "sleep_clk"; 29*4882a593Smuzhiyun }; 30*4882a593Smuzhiyun }; 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun cpus { 33*4882a593Smuzhiyun #address-cells = <2>; 34*4882a593Smuzhiyun #size-cells = <0>; 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun CPU0: cpu@0 { 37*4882a593Smuzhiyun device_type = "cpu"; 38*4882a593Smuzhiyun compatible = "arm,cortex-a53"; 39*4882a593Smuzhiyun reg = <0x0 0x0>; 40*4882a593Smuzhiyun enable-method = "psci"; 41*4882a593Smuzhiyun next-level-cache = <&L2_0>; 42*4882a593Smuzhiyun L2_0: l2-cache { 43*4882a593Smuzhiyun compatible = "cache"; 44*4882a593Smuzhiyun cache-level = <2>; 45*4882a593Smuzhiyun }; 46*4882a593Smuzhiyun }; 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun CPU1: cpu@1 { 49*4882a593Smuzhiyun device_type = "cpu"; 50*4882a593Smuzhiyun compatible = "arm,cortex-a53"; 51*4882a593Smuzhiyun reg = <0x0 0x1>; 52*4882a593Smuzhiyun enable-method = "psci"; 53*4882a593Smuzhiyun next-level-cache = <&L2_0>; 54*4882a593Smuzhiyun }; 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun CPU2: cpu@2 { 57*4882a593Smuzhiyun device_type = "cpu"; 58*4882a593Smuzhiyun compatible = "arm,cortex-a53"; 59*4882a593Smuzhiyun reg = <0x0 0x2>; 60*4882a593Smuzhiyun enable-method = "psci"; 61*4882a593Smuzhiyun next-level-cache = <&L2_0>; 62*4882a593Smuzhiyun }; 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun CPU3: cpu@3 { 65*4882a593Smuzhiyun device_type = "cpu"; 66*4882a593Smuzhiyun compatible = "arm,cortex-a53"; 67*4882a593Smuzhiyun reg = <0x0 0x3>; 68*4882a593Smuzhiyun enable-method = "psci"; 69*4882a593Smuzhiyun next-level-cache = <&L2_0>; 70*4882a593Smuzhiyun }; 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun CPU4: cpu@100 { 73*4882a593Smuzhiyun device_type = "cpu"; 74*4882a593Smuzhiyun compatible = "arm,cortex-a57"; 75*4882a593Smuzhiyun reg = <0x0 0x100>; 76*4882a593Smuzhiyun enable-method = "psci"; 77*4882a593Smuzhiyun next-level-cache = <&L2_1>; 78*4882a593Smuzhiyun L2_1: l2-cache { 79*4882a593Smuzhiyun compatible = "cache"; 80*4882a593Smuzhiyun cache-level = <2>; 81*4882a593Smuzhiyun }; 82*4882a593Smuzhiyun }; 83*4882a593Smuzhiyun 84*4882a593Smuzhiyun CPU5: cpu@101 { 85*4882a593Smuzhiyun device_type = "cpu"; 86*4882a593Smuzhiyun compatible = "arm,cortex-a57"; 87*4882a593Smuzhiyun reg = <0x0 0x101>; 88*4882a593Smuzhiyun enable-method = "psci"; 89*4882a593Smuzhiyun next-level-cache = <&L2_1>; 90*4882a593Smuzhiyun }; 91*4882a593Smuzhiyun 92*4882a593Smuzhiyun CPU6: cpu@102 { 93*4882a593Smuzhiyun device_type = "cpu"; 94*4882a593Smuzhiyun compatible = "arm,cortex-a57"; 95*4882a593Smuzhiyun reg = <0x0 0x102>; 96*4882a593Smuzhiyun enable-method = "psci"; 97*4882a593Smuzhiyun next-level-cache = <&L2_1>; 98*4882a593Smuzhiyun }; 99*4882a593Smuzhiyun 100*4882a593Smuzhiyun CPU7: cpu@103 { 101*4882a593Smuzhiyun device_type = "cpu"; 102*4882a593Smuzhiyun compatible = "arm,cortex-a57"; 103*4882a593Smuzhiyun reg = <0x0 0x103>; 104*4882a593Smuzhiyun enable-method = "psci"; 105*4882a593Smuzhiyun next-level-cache = <&L2_1>; 106*4882a593Smuzhiyun }; 107*4882a593Smuzhiyun 108*4882a593Smuzhiyun cpu-map { 109*4882a593Smuzhiyun cluster0 { 110*4882a593Smuzhiyun core0 { 111*4882a593Smuzhiyun cpu = <&CPU0>; 112*4882a593Smuzhiyun }; 113*4882a593Smuzhiyun 114*4882a593Smuzhiyun core1 { 115*4882a593Smuzhiyun cpu = <&CPU1>; 116*4882a593Smuzhiyun }; 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun core2 { 119*4882a593Smuzhiyun cpu = <&CPU2>; 120*4882a593Smuzhiyun }; 121*4882a593Smuzhiyun 122*4882a593Smuzhiyun core3 { 123*4882a593Smuzhiyun cpu = <&CPU3>; 124*4882a593Smuzhiyun }; 125*4882a593Smuzhiyun }; 126*4882a593Smuzhiyun 127*4882a593Smuzhiyun cluster1 { 128*4882a593Smuzhiyun core0 { 129*4882a593Smuzhiyun cpu = <&CPU4>; 130*4882a593Smuzhiyun }; 131*4882a593Smuzhiyun 132*4882a593Smuzhiyun core1 { 133*4882a593Smuzhiyun cpu = <&CPU5>; 134*4882a593Smuzhiyun }; 135*4882a593Smuzhiyun 136*4882a593Smuzhiyun core2 { 137*4882a593Smuzhiyun cpu = <&CPU6>; 138*4882a593Smuzhiyun }; 139*4882a593Smuzhiyun 140*4882a593Smuzhiyun core3 { 141*4882a593Smuzhiyun cpu = <&CPU7>; 142*4882a593Smuzhiyun }; 143*4882a593Smuzhiyun }; 144*4882a593Smuzhiyun }; 145*4882a593Smuzhiyun }; 146*4882a593Smuzhiyun 147*4882a593Smuzhiyun firmware { 148*4882a593Smuzhiyun scm { 149*4882a593Smuzhiyun compatible = "qcom,scm-msm8994", "qcom,scm"; 150*4882a593Smuzhiyun }; 151*4882a593Smuzhiyun }; 152*4882a593Smuzhiyun 153*4882a593Smuzhiyun memory { 154*4882a593Smuzhiyun device_type = "memory"; 155*4882a593Smuzhiyun /* We expect the bootloader to fill in the reg */ 156*4882a593Smuzhiyun reg = <0 0 0 0>; 157*4882a593Smuzhiyun }; 158*4882a593Smuzhiyun 159*4882a593Smuzhiyun pmu { 160*4882a593Smuzhiyun compatible = "arm,cortex-a53-pmu"; 161*4882a593Smuzhiyun interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4)| IRQ_TYPE_LEVEL_HIGH)>; 162*4882a593Smuzhiyun }; 163*4882a593Smuzhiyun 164*4882a593Smuzhiyun psci { 165*4882a593Smuzhiyun compatible = "arm,psci-0.2"; 166*4882a593Smuzhiyun method = "hvc"; 167*4882a593Smuzhiyun }; 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun reserved-memory { 170*4882a593Smuzhiyun #address-cells = <2>; 171*4882a593Smuzhiyun #size-cells = <2>; 172*4882a593Smuzhiyun ranges; 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun smem_mem: smem_region@6a00000 { 175*4882a593Smuzhiyun reg = <0x0 0x6a00000 0x0 0x200000>; 176*4882a593Smuzhiyun no-map; 177*4882a593Smuzhiyun }; 178*4882a593Smuzhiyun }; 179*4882a593Smuzhiyun 180*4882a593Smuzhiyun smd { 181*4882a593Smuzhiyun compatible = "qcom,smd"; 182*4882a593Smuzhiyun rpm { 183*4882a593Smuzhiyun interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>; 184*4882a593Smuzhiyun qcom,ipc = <&apcs 8 0>; 185*4882a593Smuzhiyun qcom,smd-edge = <15>; 186*4882a593Smuzhiyun qcom,local-pid = <0>; 187*4882a593Smuzhiyun qcom,remote-pid = <6>; 188*4882a593Smuzhiyun 189*4882a593Smuzhiyun rpm_requests: rpm-requests { 190*4882a593Smuzhiyun compatible = "qcom,rpm-msm8994"; 191*4882a593Smuzhiyun qcom,smd-channels = "rpm_requests"; 192*4882a593Smuzhiyun 193*4882a593Smuzhiyun rpmcc: rpmcc { 194*4882a593Smuzhiyun compatible = "qcom,rpmcc-msm8994"; 195*4882a593Smuzhiyun #clock-cells = <1>; 196*4882a593Smuzhiyun }; 197*4882a593Smuzhiyun }; 198*4882a593Smuzhiyun }; 199*4882a593Smuzhiyun }; 200*4882a593Smuzhiyun 201*4882a593Smuzhiyun smem { 202*4882a593Smuzhiyun compatible = "qcom,smem"; 203*4882a593Smuzhiyun memory-region = <&smem_mem>; 204*4882a593Smuzhiyun qcom,rpm-msg-ram = <&rpm_msg_ram>; 205*4882a593Smuzhiyun hwlocks = <&tcsr_mutex 3>; 206*4882a593Smuzhiyun }; 207*4882a593Smuzhiyun 208*4882a593Smuzhiyun soc: soc { 209*4882a593Smuzhiyun 210*4882a593Smuzhiyun #address-cells = <1>; 211*4882a593Smuzhiyun #size-cells = <1>; 212*4882a593Smuzhiyun ranges = <0 0 0 0xffffffff>; 213*4882a593Smuzhiyun compatible = "simple-bus"; 214*4882a593Smuzhiyun 215*4882a593Smuzhiyun intc: interrupt-controller@f9000000 { 216*4882a593Smuzhiyun compatible = "qcom,msm-qgic2"; 217*4882a593Smuzhiyun interrupt-controller; 218*4882a593Smuzhiyun #interrupt-cells = <3>; 219*4882a593Smuzhiyun reg = <0xf9000000 0x1000>, 220*4882a593Smuzhiyun <0xf9002000 0x1000>; 221*4882a593Smuzhiyun }; 222*4882a593Smuzhiyun 223*4882a593Smuzhiyun apcs: mailbox@f900d000 { 224*4882a593Smuzhiyun compatible = "qcom,msm8994-apcs-kpss-global", "syscon"; 225*4882a593Smuzhiyun reg = <0xf900d000 0x2000>; 226*4882a593Smuzhiyun #mbox-cells = <1>; 227*4882a593Smuzhiyun }; 228*4882a593Smuzhiyun 229*4882a593Smuzhiyun timer@f9020000 { 230*4882a593Smuzhiyun #address-cells = <1>; 231*4882a593Smuzhiyun #size-cells = <1>; 232*4882a593Smuzhiyun ranges; 233*4882a593Smuzhiyun compatible = "arm,armv7-timer-mem"; 234*4882a593Smuzhiyun reg = <0xf9020000 0x1000>; 235*4882a593Smuzhiyun 236*4882a593Smuzhiyun frame@f9021000 { 237*4882a593Smuzhiyun frame-number = <0>; 238*4882a593Smuzhiyun interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, 239*4882a593Smuzhiyun <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>; 240*4882a593Smuzhiyun reg = <0xf9021000 0x1000>, 241*4882a593Smuzhiyun <0xf9022000 0x1000>; 242*4882a593Smuzhiyun }; 243*4882a593Smuzhiyun 244*4882a593Smuzhiyun frame@f9023000 { 245*4882a593Smuzhiyun frame-number = <1>; 246*4882a593Smuzhiyun interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 247*4882a593Smuzhiyun reg = <0xf9023000 0x1000>; 248*4882a593Smuzhiyun status = "disabled"; 249*4882a593Smuzhiyun }; 250*4882a593Smuzhiyun 251*4882a593Smuzhiyun frame@f9024000 { 252*4882a593Smuzhiyun frame-number = <2>; 253*4882a593Smuzhiyun interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 254*4882a593Smuzhiyun reg = <0xf9024000 0x1000>; 255*4882a593Smuzhiyun status = "disabled"; 256*4882a593Smuzhiyun }; 257*4882a593Smuzhiyun 258*4882a593Smuzhiyun frame@f9025000 { 259*4882a593Smuzhiyun frame-number = <3>; 260*4882a593Smuzhiyun interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 261*4882a593Smuzhiyun reg = <0xf9025000 0x1000>; 262*4882a593Smuzhiyun status = "disabled"; 263*4882a593Smuzhiyun }; 264*4882a593Smuzhiyun 265*4882a593Smuzhiyun frame@f9026000 { 266*4882a593Smuzhiyun frame-number = <4>; 267*4882a593Smuzhiyun interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 268*4882a593Smuzhiyun reg = <0xf9026000 0x1000>; 269*4882a593Smuzhiyun status = "disabled"; 270*4882a593Smuzhiyun }; 271*4882a593Smuzhiyun 272*4882a593Smuzhiyun frame@f9027000 { 273*4882a593Smuzhiyun frame-number = <5>; 274*4882a593Smuzhiyun interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 275*4882a593Smuzhiyun reg = <0xf9027000 0x1000>; 276*4882a593Smuzhiyun status = "disabled"; 277*4882a593Smuzhiyun }; 278*4882a593Smuzhiyun 279*4882a593Smuzhiyun frame@f9028000 { 280*4882a593Smuzhiyun frame-number = <6>; 281*4882a593Smuzhiyun interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 282*4882a593Smuzhiyun reg = <0xf9028000 0x1000>; 283*4882a593Smuzhiyun status = "disabled"; 284*4882a593Smuzhiyun }; 285*4882a593Smuzhiyun }; 286*4882a593Smuzhiyun 287*4882a593Smuzhiyun sdhc1: sdhci@f9824900 { 288*4882a593Smuzhiyun compatible = "qcom,sdhci-msm-v4"; 289*4882a593Smuzhiyun reg = <0xf9824900 0x1a0>, <0xf9824000 0x800>; 290*4882a593Smuzhiyun reg-names = "hc_mem", "core_mem"; 291*4882a593Smuzhiyun 292*4882a593Smuzhiyun interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>, 293*4882a593Smuzhiyun <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>; 294*4882a593Smuzhiyun interrupt-names = "hc_irq", "pwr_irq"; 295*4882a593Smuzhiyun 296*4882a593Smuzhiyun clocks = <&gcc GCC_SDCC1_APPS_CLK>, 297*4882a593Smuzhiyun <&gcc GCC_SDCC1_AHB_CLK>, 298*4882a593Smuzhiyun <&xo_board>; 299*4882a593Smuzhiyun clock-names = "core", "iface", "xo"; 300*4882a593Smuzhiyun 301*4882a593Smuzhiyun pinctrl-names = "default", "sleep"; 302*4882a593Smuzhiyun pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on &sdc1_rclk_on>; 303*4882a593Smuzhiyun pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off &sdc1_rclk_off>; 304*4882a593Smuzhiyun 305*4882a593Smuzhiyun bus-width = <8>; 306*4882a593Smuzhiyun non-removable; 307*4882a593Smuzhiyun status = "disabled"; 308*4882a593Smuzhiyun }; 309*4882a593Smuzhiyun 310*4882a593Smuzhiyun blsp1_dma: dma@f9904000 { 311*4882a593Smuzhiyun compatible = "qcom,bam-v1.7.0"; 312*4882a593Smuzhiyun reg = <0xf9904000 0x19000>; 313*4882a593Smuzhiyun interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>; 314*4882a593Smuzhiyun clocks = <&gcc GCC_BLSP1_AHB_CLK>; 315*4882a593Smuzhiyun clock-names = "bam_clk"; 316*4882a593Smuzhiyun #dma-cells = <1>; 317*4882a593Smuzhiyun qcom,ee = <0>; 318*4882a593Smuzhiyun qcom,controlled-remotely; 319*4882a593Smuzhiyun num-channels = <24>; 320*4882a593Smuzhiyun qcom,num-ees = <4>; 321*4882a593Smuzhiyun }; 322*4882a593Smuzhiyun 323*4882a593Smuzhiyun blsp1_uart2: serial@f991e000 { 324*4882a593Smuzhiyun compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 325*4882a593Smuzhiyun reg = <0xf991e000 0x1000>; 326*4882a593Smuzhiyun interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 327*4882a593Smuzhiyun clock-names = "core", "iface"; 328*4882a593Smuzhiyun clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, 329*4882a593Smuzhiyun <&gcc GCC_BLSP1_AHB_CLK>; 330*4882a593Smuzhiyun pinctrl-names = "default", "sleep"; 331*4882a593Smuzhiyun pinctrl-0 = <&blsp1_uart2_default>; 332*4882a593Smuzhiyun pinctrl-1 = <&blsp1_uart2_sleep>; 333*4882a593Smuzhiyun status = "disabled"; 334*4882a593Smuzhiyun }; 335*4882a593Smuzhiyun 336*4882a593Smuzhiyun blsp_i2c1: i2c@f9923000 { 337*4882a593Smuzhiyun compatible = "qcom,i2c-qup-v2.2.1"; 338*4882a593Smuzhiyun reg = <0xf9923000 0x500>; 339*4882a593Smuzhiyun interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 340*4882a593Smuzhiyun clocks = <&gcc GCC_BLSP1_AHB_CLK>, 341*4882a593Smuzhiyun <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>; 342*4882a593Smuzhiyun clock-names = "iface", "core"; 343*4882a593Smuzhiyun clock-frequency = <400000>; 344*4882a593Smuzhiyun pinctrl-names = "default", "sleep"; 345*4882a593Smuzhiyun pinctrl-0 = <&i2c1_default>; 346*4882a593Smuzhiyun pinctrl-1 = <&i2c1_sleep>; 347*4882a593Smuzhiyun #address-cells = <1>; 348*4882a593Smuzhiyun #size-cells = <0>; 349*4882a593Smuzhiyun status = "disabled"; 350*4882a593Smuzhiyun }; 351*4882a593Smuzhiyun 352*4882a593Smuzhiyun blsp_spi0: spi@f9923000 { 353*4882a593Smuzhiyun compatible = "qcom,spi-qup-v2.2.1"; 354*4882a593Smuzhiyun reg = <0xf9923000 0x500>; 355*4882a593Smuzhiyun interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 356*4882a593Smuzhiyun clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>, 357*4882a593Smuzhiyun <&gcc GCC_BLSP1_AHB_CLK>; 358*4882a593Smuzhiyun clock-names = "core", "iface"; 359*4882a593Smuzhiyun spi-max-frequency = <19200000>; 360*4882a593Smuzhiyun dmas = <&blsp1_dma 12>, <&blsp1_dma 13>; 361*4882a593Smuzhiyun dma-names = "tx", "rx"; 362*4882a593Smuzhiyun pinctrl-names = "default", "sleep"; 363*4882a593Smuzhiyun pinctrl-0 = <&blsp1_spi0_default>; 364*4882a593Smuzhiyun pinctrl-1 = <&blsp1_spi0_sleep>; 365*4882a593Smuzhiyun #address-cells = <1>; 366*4882a593Smuzhiyun #size-cells = <0>; 367*4882a593Smuzhiyun status = "disabled"; 368*4882a593Smuzhiyun }; 369*4882a593Smuzhiyun 370*4882a593Smuzhiyun blsp_i2c2: i2c@f9924000 { 371*4882a593Smuzhiyun compatible = "qcom,i2c-qup-v2.2.1"; 372*4882a593Smuzhiyun reg = <0xf9924000 0x500>; 373*4882a593Smuzhiyun interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>; 374*4882a593Smuzhiyun clocks = <&gcc GCC_BLSP1_AHB_CLK>, 375*4882a593Smuzhiyun <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>; 376*4882a593Smuzhiyun clock-names = "iface", "core"; 377*4882a593Smuzhiyun clock-frequency = <355000>; 378*4882a593Smuzhiyun dmas = <&blsp1_dma 14>, <&blsp1_dma 15>; 379*4882a593Smuzhiyun dma-names = "tx", "rx"; 380*4882a593Smuzhiyun pinctrl-names = "default", "sleep"; 381*4882a593Smuzhiyun pinctrl-0 = <&i2c2_default>; 382*4882a593Smuzhiyun pinctrl-1 = <&i2c2_sleep>; 383*4882a593Smuzhiyun #address-cells = <1>; 384*4882a593Smuzhiyun #size-cells = <0>; 385*4882a593Smuzhiyun status = "disabled"; 386*4882a593Smuzhiyun }; 387*4882a593Smuzhiyun 388*4882a593Smuzhiyun /* I2C3 doesn't exist */ 389*4882a593Smuzhiyun 390*4882a593Smuzhiyun blsp_i2c4: i2c@f9926000 { 391*4882a593Smuzhiyun compatible = "qcom,i2c-qup-v2.2.1"; 392*4882a593Smuzhiyun reg = <0xf9926000 0x500>; 393*4882a593Smuzhiyun interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; 394*4882a593Smuzhiyun clocks = <&gcc GCC_BLSP1_AHB_CLK>, 395*4882a593Smuzhiyun <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>; 396*4882a593Smuzhiyun clock-names = "iface", "core"; 397*4882a593Smuzhiyun clock-frequency = <355000>; 398*4882a593Smuzhiyun pinctrl-names = "default", "sleep"; 399*4882a593Smuzhiyun pinctrl-0 = <&i2c4_default>; 400*4882a593Smuzhiyun pinctrl-1 = <&i2c4_sleep>; 401*4882a593Smuzhiyun #address-cells = <1>; 402*4882a593Smuzhiyun #size-cells = <0>; 403*4882a593Smuzhiyun status = "disabled"; 404*4882a593Smuzhiyun }; 405*4882a593Smuzhiyun 406*4882a593Smuzhiyun blsp2_dma: dma@f9944000 { 407*4882a593Smuzhiyun compatible = "qcom,bam-v1.7.0"; 408*4882a593Smuzhiyun reg = <0xf9944000 0x19000>; 409*4882a593Smuzhiyun interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>; 410*4882a593Smuzhiyun clocks = <&gcc GCC_BLSP2_AHB_CLK>; 411*4882a593Smuzhiyun clock-names = "bam_clk"; 412*4882a593Smuzhiyun #dma-cells = <1>; 413*4882a593Smuzhiyun qcom,ee = <0>; 414*4882a593Smuzhiyun qcom,controlled-remotely; 415*4882a593Smuzhiyun num-channels = <24>; 416*4882a593Smuzhiyun qcom,num-ees = <4>; 417*4882a593Smuzhiyun }; 418*4882a593Smuzhiyun 419*4882a593Smuzhiyun /* According to downstream kernels, i2c6 420*4882a593Smuzhiyun * comes before i2c5 address-wise... 421*4882a593Smuzhiyun */ 422*4882a593Smuzhiyun 423*4882a593Smuzhiyun blsp_i2c6: i2c@f9928000 { 424*4882a593Smuzhiyun compatible = "qcom,i2c-qup-v2.2.1"; 425*4882a593Smuzhiyun reg = <0xf9928000 0x500>; 426*4882a593Smuzhiyun interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 427*4882a593Smuzhiyun clocks = <&gcc GCC_BLSP1_AHB_CLK>, 428*4882a593Smuzhiyun <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>; 429*4882a593Smuzhiyun clock-names = "iface", "core"; 430*4882a593Smuzhiyun clock-frequency = <355000>; 431*4882a593Smuzhiyun dmas = <&blsp1_dma 22>, <&blsp1_dma 23>; 432*4882a593Smuzhiyun dma-names = "tx", "rx"; 433*4882a593Smuzhiyun pinctrl-names = "default", "sleep"; 434*4882a593Smuzhiyun pinctrl-0 = <&i2c6_default>; 435*4882a593Smuzhiyun pinctrl-1 = <&i2c6_sleep>; 436*4882a593Smuzhiyun #address-cells = <1>; 437*4882a593Smuzhiyun #size-cells = <0>; 438*4882a593Smuzhiyun status = "disabled"; 439*4882a593Smuzhiyun }; 440*4882a593Smuzhiyun 441*4882a593Smuzhiyun blsp2_uart2: serial@f995e000 { 442*4882a593Smuzhiyun compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 443*4882a593Smuzhiyun reg = <0xf995e000 0x1000>; 444*4882a593Smuzhiyun interrupts = <GIC_SPI 146 IRQ_TYPE_EDGE_FALLING>; 445*4882a593Smuzhiyun clock-names = "core", "iface"; 446*4882a593Smuzhiyun clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>, 447*4882a593Smuzhiyun <&gcc GCC_BLSP2_AHB_CLK>; 448*4882a593Smuzhiyun dmas = <&blsp2_dma 2>, <&blsp2_dma 3>; 449*4882a593Smuzhiyun dma-names = "tx", "rx"; 450*4882a593Smuzhiyun pinctrl-names = "default", "sleep"; 451*4882a593Smuzhiyun pinctrl-0 = <&blsp2_uart2_default>; 452*4882a593Smuzhiyun pinctrl-1 = <&blsp2_uart2_sleep>; 453*4882a593Smuzhiyun status = "disabled"; 454*4882a593Smuzhiyun }; 455*4882a593Smuzhiyun 456*4882a593Smuzhiyun blsp_i2c5: i2c@f9967000 { 457*4882a593Smuzhiyun compatible = "qcom,i2c-qup-v2.2.1"; 458*4882a593Smuzhiyun reg = <0xf9967000 0x500>; 459*4882a593Smuzhiyun interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; 460*4882a593Smuzhiyun clocks = <&gcc GCC_BLSP2_AHB_CLK>, 461*4882a593Smuzhiyun <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>; 462*4882a593Smuzhiyun clock-names = "iface", "core"; 463*4882a593Smuzhiyun clock-frequency = <355000>; 464*4882a593Smuzhiyun dmas = <&blsp2_dma 20>, <&blsp2_dma 21>; 465*4882a593Smuzhiyun dma-names = "tx", "rx"; 466*4882a593Smuzhiyun pinctrl-names = "default", "sleep"; 467*4882a593Smuzhiyun pinctrl-0 = <&i2c5_default>; 468*4882a593Smuzhiyun pinctrl-1 = <&i2c5_sleep>; 469*4882a593Smuzhiyun #address-cells = <1>; 470*4882a593Smuzhiyun #size-cells = <0>; 471*4882a593Smuzhiyun status = "disabled"; 472*4882a593Smuzhiyun }; 473*4882a593Smuzhiyun 474*4882a593Smuzhiyun gcc: clock-controller@fc400000 { 475*4882a593Smuzhiyun compatible = "qcom,gcc-msm8994"; 476*4882a593Smuzhiyun #clock-cells = <1>; 477*4882a593Smuzhiyun #reset-cells = <1>; 478*4882a593Smuzhiyun #power-domain-cells = <1>; 479*4882a593Smuzhiyun reg = <0xfc400000 0x2000>; 480*4882a593Smuzhiyun }; 481*4882a593Smuzhiyun 482*4882a593Smuzhiyun rpm_msg_ram: memory@fc428000 { 483*4882a593Smuzhiyun compatible = "qcom,rpm-msg-ram"; 484*4882a593Smuzhiyun reg = <0xfc428000 0x4000>; 485*4882a593Smuzhiyun }; 486*4882a593Smuzhiyun 487*4882a593Smuzhiyun restart@fc4ab000 { 488*4882a593Smuzhiyun compatible = "qcom,pshold"; 489*4882a593Smuzhiyun reg = <0xfc4ab000 0x4>; 490*4882a593Smuzhiyun }; 491*4882a593Smuzhiyun 492*4882a593Smuzhiyun spmi_bus: spmi@fc4c0000 { 493*4882a593Smuzhiyun compatible = "qcom,spmi-pmic-arb"; 494*4882a593Smuzhiyun reg = <0xfc4cf000 0x1000>, 495*4882a593Smuzhiyun <0xfc4cb000 0x1000>, 496*4882a593Smuzhiyun <0xfc4ca000 0x1000>; 497*4882a593Smuzhiyun reg-names = "core", "intr", "cnfg"; 498*4882a593Smuzhiyun interrupt-names = "periph_irq"; 499*4882a593Smuzhiyun interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>; 500*4882a593Smuzhiyun qcom,ee = <0>; 501*4882a593Smuzhiyun qcom,channel = <0>; 502*4882a593Smuzhiyun #address-cells = <2>; 503*4882a593Smuzhiyun #size-cells = <0>; 504*4882a593Smuzhiyun interrupt-controller; 505*4882a593Smuzhiyun #interrupt-cells = <4>; 506*4882a593Smuzhiyun }; 507*4882a593Smuzhiyun 508*4882a593Smuzhiyun tcsr_mutex_regs: syscon@fd484000 { 509*4882a593Smuzhiyun compatible = "syscon"; 510*4882a593Smuzhiyun reg = <0xfd484000 0x2000>; 511*4882a593Smuzhiyun }; 512*4882a593Smuzhiyun 513*4882a593Smuzhiyun tlmm: pinctrl@fd510000 { 514*4882a593Smuzhiyun compatible = "qcom,msm8994-pinctrl"; 515*4882a593Smuzhiyun reg = <0xfd510000 0x4000>; 516*4882a593Smuzhiyun interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; 517*4882a593Smuzhiyun gpio-controller; 518*4882a593Smuzhiyun gpio-ranges = <&tlmm 0 0 146>; 519*4882a593Smuzhiyun #gpio-cells = <2>; 520*4882a593Smuzhiyun interrupt-controller; 521*4882a593Smuzhiyun #interrupt-cells = <2>; 522*4882a593Smuzhiyun 523*4882a593Smuzhiyun blsp1_uart2_default: blsp1-uart2-default { 524*4882a593Smuzhiyun function = "blsp_uart2"; 525*4882a593Smuzhiyun pins = "gpio4", "gpio5"; 526*4882a593Smuzhiyun drive-strength = <16>; 527*4882a593Smuzhiyun bias-disable; 528*4882a593Smuzhiyun }; 529*4882a593Smuzhiyun 530*4882a593Smuzhiyun blsp1_uart2_sleep: blsp1-uart2-sleep { 531*4882a593Smuzhiyun function = "gpio"; 532*4882a593Smuzhiyun pins = "gpio4", "gpio5"; 533*4882a593Smuzhiyun drive-strength = <2>; 534*4882a593Smuzhiyun bias-pull-down; 535*4882a593Smuzhiyun }; 536*4882a593Smuzhiyun 537*4882a593Smuzhiyun blsp2_uart2_default: blsp2-uart2-default { 538*4882a593Smuzhiyun function = "blsp_uart8"; 539*4882a593Smuzhiyun pins = "gpio45", "gpio46"; 540*4882a593Smuzhiyun drive-strength = <2>; 541*4882a593Smuzhiyun bias-disable; 542*4882a593Smuzhiyun }; 543*4882a593Smuzhiyun 544*4882a593Smuzhiyun blsp2_uart2_sleep: blsp2-uart2-sleep { 545*4882a593Smuzhiyun function = "gpio"; 546*4882a593Smuzhiyun pins = "gpio45", "gpio46"; 547*4882a593Smuzhiyun drive-strength = <2>; 548*4882a593Smuzhiyun bias-pull-down; 549*4882a593Smuzhiyun }; 550*4882a593Smuzhiyun 551*4882a593Smuzhiyun i2c1_default: i2c1-default { 552*4882a593Smuzhiyun function = "blsp_i2c1"; 553*4882a593Smuzhiyun pins = "gpio2", "gpio3"; 554*4882a593Smuzhiyun drive-strength = <2>; 555*4882a593Smuzhiyun bias-disable; 556*4882a593Smuzhiyun }; 557*4882a593Smuzhiyun 558*4882a593Smuzhiyun i2c1_sleep: i2c1-sleep { 559*4882a593Smuzhiyun function = "gpio"; 560*4882a593Smuzhiyun pins = "gpio2", "gpio3"; 561*4882a593Smuzhiyun drive-strength = <2>; 562*4882a593Smuzhiyun bias-disable; 563*4882a593Smuzhiyun }; 564*4882a593Smuzhiyun 565*4882a593Smuzhiyun i2c2_default: i2c2-default { 566*4882a593Smuzhiyun function = "blsp_i2c2"; 567*4882a593Smuzhiyun pins = "gpio6", "gpio7"; 568*4882a593Smuzhiyun drive-strength = <2>; 569*4882a593Smuzhiyun bias-disable; 570*4882a593Smuzhiyun }; 571*4882a593Smuzhiyun 572*4882a593Smuzhiyun i2c2_sleep: i2c2-sleep { 573*4882a593Smuzhiyun function = "gpio"; 574*4882a593Smuzhiyun pins = "gpio6", "gpio7"; 575*4882a593Smuzhiyun drive-strength = <2>; 576*4882a593Smuzhiyun bias-disable; 577*4882a593Smuzhiyun }; 578*4882a593Smuzhiyun 579*4882a593Smuzhiyun i2c4_default: i2c4-default { 580*4882a593Smuzhiyun function = "blsp_i2c4"; 581*4882a593Smuzhiyun pins = "gpio19", "gpio20"; 582*4882a593Smuzhiyun drive-strength = <2>; 583*4882a593Smuzhiyun bias-disable; 584*4882a593Smuzhiyun }; 585*4882a593Smuzhiyun 586*4882a593Smuzhiyun i2c4_sleep: i2c4-sleep { 587*4882a593Smuzhiyun function = "gpio"; 588*4882a593Smuzhiyun pins = "gpio19", "gpio20"; 589*4882a593Smuzhiyun drive-strength = <2>; 590*4882a593Smuzhiyun bias-pull-down; 591*4882a593Smuzhiyun input-enable; 592*4882a593Smuzhiyun }; 593*4882a593Smuzhiyun 594*4882a593Smuzhiyun i2c5_default: i2c5-default { 595*4882a593Smuzhiyun function = "blsp_i2c5"; 596*4882a593Smuzhiyun pins = "gpio23", "gpio24"; 597*4882a593Smuzhiyun drive-strength = <2>; 598*4882a593Smuzhiyun bias-disable; 599*4882a593Smuzhiyun }; 600*4882a593Smuzhiyun 601*4882a593Smuzhiyun i2c5_sleep: i2c5-sleep { 602*4882a593Smuzhiyun function = "gpio"; 603*4882a593Smuzhiyun pins = "gpio23", "gpio24"; 604*4882a593Smuzhiyun drive-strength = <2>; 605*4882a593Smuzhiyun bias-disable; 606*4882a593Smuzhiyun }; 607*4882a593Smuzhiyun 608*4882a593Smuzhiyun i2c6_default: i2c6-default { 609*4882a593Smuzhiyun function = "blsp_i2c6"; 610*4882a593Smuzhiyun pins = "gpio28", "gpio27"; 611*4882a593Smuzhiyun drive-strength = <2>; 612*4882a593Smuzhiyun bias-disable; 613*4882a593Smuzhiyun }; 614*4882a593Smuzhiyun 615*4882a593Smuzhiyun i2c6_sleep: i2c6-sleep { 616*4882a593Smuzhiyun function = "gpio"; 617*4882a593Smuzhiyun pins = "gpio28", "gpio27"; 618*4882a593Smuzhiyun drive-strength = <2>; 619*4882a593Smuzhiyun bias-disable; 620*4882a593Smuzhiyun }; 621*4882a593Smuzhiyun 622*4882a593Smuzhiyun blsp1_spi0_default: blsp1-spi0-default { 623*4882a593Smuzhiyun default { 624*4882a593Smuzhiyun function = "blsp_spi1"; 625*4882a593Smuzhiyun pins = "gpio0", "gpio1", "gpio3"; 626*4882a593Smuzhiyun drive-strength = <10>; 627*4882a593Smuzhiyun bias-pull-down; 628*4882a593Smuzhiyun }; 629*4882a593Smuzhiyun cs { 630*4882a593Smuzhiyun function = "gpio"; 631*4882a593Smuzhiyun pins = "gpio8"; 632*4882a593Smuzhiyun drive-strength = <2>; 633*4882a593Smuzhiyun bias-disable; 634*4882a593Smuzhiyun }; 635*4882a593Smuzhiyun }; 636*4882a593Smuzhiyun 637*4882a593Smuzhiyun blsp1_spi0_sleep: blsp1-spi0-sleep { 638*4882a593Smuzhiyun pins = "gpio0", "gpio1", "gpio3"; 639*4882a593Smuzhiyun drive-strength = <2>; 640*4882a593Smuzhiyun bias-disable; 641*4882a593Smuzhiyun }; 642*4882a593Smuzhiyun 643*4882a593Smuzhiyun sdc1_clk_on: clk-on { 644*4882a593Smuzhiyun pins = "sdc1_clk"; 645*4882a593Smuzhiyun bias-disable; 646*4882a593Smuzhiyun drive-strength = <16>; 647*4882a593Smuzhiyun }; 648*4882a593Smuzhiyun 649*4882a593Smuzhiyun sdc1_clk_off: clk-off { 650*4882a593Smuzhiyun pins = "sdc1_clk"; 651*4882a593Smuzhiyun bias-disable; 652*4882a593Smuzhiyun drive-strength = <2>; 653*4882a593Smuzhiyun }; 654*4882a593Smuzhiyun 655*4882a593Smuzhiyun sdc1_cmd_on: cmd-on { 656*4882a593Smuzhiyun pins = "sdc1_cmd"; 657*4882a593Smuzhiyun bias-pull-up; 658*4882a593Smuzhiyun drive-strength = <8>; 659*4882a593Smuzhiyun }; 660*4882a593Smuzhiyun 661*4882a593Smuzhiyun sdc1_cmd_off: cmd-off { 662*4882a593Smuzhiyun pins = "sdc1_cmd"; 663*4882a593Smuzhiyun bias-pull-up; 664*4882a593Smuzhiyun drive-strength = <2>; 665*4882a593Smuzhiyun }; 666*4882a593Smuzhiyun 667*4882a593Smuzhiyun sdc1_data_on: data-on { 668*4882a593Smuzhiyun pins = "sdc1_data"; 669*4882a593Smuzhiyun bias-pull-up; 670*4882a593Smuzhiyun drive-strength = <8>; 671*4882a593Smuzhiyun }; 672*4882a593Smuzhiyun 673*4882a593Smuzhiyun sdc1_data_off: data-off { 674*4882a593Smuzhiyun pins = "sdc1_data"; 675*4882a593Smuzhiyun bias-pull-up; 676*4882a593Smuzhiyun drive-strength = <2>; 677*4882a593Smuzhiyun }; 678*4882a593Smuzhiyun 679*4882a593Smuzhiyun sdc1_rclk_on: rclk-on { 680*4882a593Smuzhiyun pins = "sdc1_rclk"; 681*4882a593Smuzhiyun bias-pull-down; 682*4882a593Smuzhiyun }; 683*4882a593Smuzhiyun 684*4882a593Smuzhiyun sdc1_rclk_off: rclk-off { 685*4882a593Smuzhiyun pins = "sdc1_rclk"; 686*4882a593Smuzhiyun bias-pull-down; 687*4882a593Smuzhiyun }; 688*4882a593Smuzhiyun }; 689*4882a593Smuzhiyun }; 690*4882a593Smuzhiyun 691*4882a593Smuzhiyun tcsr_mutex: hwlock { 692*4882a593Smuzhiyun compatible = "qcom,tcsr-mutex"; 693*4882a593Smuzhiyun syscon = <&tcsr_mutex_regs 0 0x80>; 694*4882a593Smuzhiyun #hwlock-cells = <1>; 695*4882a593Smuzhiyun }; 696*4882a593Smuzhiyun 697*4882a593Smuzhiyun timer { 698*4882a593Smuzhiyun compatible = "arm,armv8-timer"; 699*4882a593Smuzhiyun interrupts = <GIC_PPI 2 0xff08>, 700*4882a593Smuzhiyun <GIC_PPI 3 0xff08>, 701*4882a593Smuzhiyun <GIC_PPI 4 0xff08>, 702*4882a593Smuzhiyun <GIC_PPI 1 0xff08>; 703*4882a593Smuzhiyun }; 704*4882a593Smuzhiyun 705*4882a593Smuzhiyun vreg_vph_pwr: vreg-vph-pwr { 706*4882a593Smuzhiyun compatible = "regulator-fixed"; 707*4882a593Smuzhiyun regulator-name = "vph-pwr"; 708*4882a593Smuzhiyun 709*4882a593Smuzhiyun regulator-min-microvolt = <3600000>; 710*4882a593Smuzhiyun regulator-max-microvolt = <3600000>; 711*4882a593Smuzhiyun 712*4882a593Smuzhiyun regulator-always-on; 713*4882a593Smuzhiyun }; 714*4882a593Smuzhiyun}; 715*4882a593Smuzhiyun 716