1*feec3441SCraig Tatlor// SPDX-License-Identifier: GPL-2.0-only 2*feec3441SCraig Tatlor/* 3*feec3441SCraig Tatlor * Copyright (c) 2018, Craig Tatlor. 4*feec3441SCraig Tatlor * Copyright (c) 2020, Alexey Minnekhanov <alexey.min@gmail.com> 5*feec3441SCraig Tatlor */ 6*feec3441SCraig Tatlor 7*feec3441SCraig Tatlor#include <dt-bindings/interrupt-controller/arm-gic.h> 8*feec3441SCraig Tatlor#include <dt-bindings/clock/qcom,gcc-sdm660.h> 9*feec3441SCraig Tatlor 10*feec3441SCraig Tatlor/ { 11*feec3441SCraig Tatlor interrupt-parent = <&intc>; 12*feec3441SCraig Tatlor 13*feec3441SCraig Tatlor #address-cells = <2>; 14*feec3441SCraig Tatlor #size-cells = <2>; 15*feec3441SCraig Tatlor 16*feec3441SCraig Tatlor chosen { }; 17*feec3441SCraig Tatlor 18*feec3441SCraig Tatlor clocks { 19*feec3441SCraig Tatlor xo_board: xo_board { 20*feec3441SCraig Tatlor compatible = "fixed-clock"; 21*feec3441SCraig Tatlor #clock-cells = <0>; 22*feec3441SCraig Tatlor clock-frequency = <19200000>; 23*feec3441SCraig Tatlor clock-output-names = "xo_board"; 24*feec3441SCraig Tatlor }; 25*feec3441SCraig Tatlor 26*feec3441SCraig Tatlor sleep_clk: sleep_clk { 27*feec3441SCraig Tatlor compatible = "fixed-clock"; 28*feec3441SCraig Tatlor #clock-cells = <0>; 29*feec3441SCraig Tatlor clock-frequency = <32764>; 30*feec3441SCraig Tatlor clock-output-names = "sleep_clk"; 31*feec3441SCraig Tatlor }; 32*feec3441SCraig Tatlor }; 33*feec3441SCraig Tatlor 34*feec3441SCraig Tatlor cpus { 35*feec3441SCraig Tatlor #address-cells = <2>; 36*feec3441SCraig Tatlor #size-cells = <0>; 37*feec3441SCraig Tatlor 38*feec3441SCraig Tatlor CPU0: cpu@100 { 39*feec3441SCraig Tatlor device_type = "cpu"; 40*feec3441SCraig Tatlor compatible = "qcom,kryo260"; 41*feec3441SCraig Tatlor reg = <0x0 0x100>; 42*feec3441SCraig Tatlor enable-method = "psci"; 43*feec3441SCraig Tatlor capacity-dmips-mhz = <1024>; 44*feec3441SCraig Tatlor next-level-cache = <&L2_1>; 45*feec3441SCraig Tatlor L2_1: l2-cache { 46*feec3441SCraig Tatlor compatible = "cache"; 47*feec3441SCraig Tatlor cache-level = <2>; 48*feec3441SCraig Tatlor }; 49*feec3441SCraig Tatlor L1_I_100: l1-icache { 50*feec3441SCraig Tatlor compatible = "cache"; 51*feec3441SCraig Tatlor }; 52*feec3441SCraig Tatlor L1_D_100: l1-dcache { 53*feec3441SCraig Tatlor compatible = "cache"; 54*feec3441SCraig Tatlor }; 55*feec3441SCraig Tatlor }; 56*feec3441SCraig Tatlor 57*feec3441SCraig Tatlor CPU1: cpu@101 { 58*feec3441SCraig Tatlor device_type = "cpu"; 59*feec3441SCraig Tatlor compatible = "qcom,kryo260"; 60*feec3441SCraig Tatlor reg = <0x0 0x101>; 61*feec3441SCraig Tatlor enable-method = "psci"; 62*feec3441SCraig Tatlor capacity-dmips-mhz = <1024>; 63*feec3441SCraig Tatlor next-level-cache = <&L2_1>; 64*feec3441SCraig Tatlor L1_I_101: l1-icache { 65*feec3441SCraig Tatlor compatible = "cache"; 66*feec3441SCraig Tatlor }; 67*feec3441SCraig Tatlor L1_D_101: l1-dcache { 68*feec3441SCraig Tatlor compatible = "cache"; 69*feec3441SCraig Tatlor }; 70*feec3441SCraig Tatlor }; 71*feec3441SCraig Tatlor 72*feec3441SCraig Tatlor CPU2: cpu@102 { 73*feec3441SCraig Tatlor device_type = "cpu"; 74*feec3441SCraig Tatlor compatible = "qcom,kryo260"; 75*feec3441SCraig Tatlor reg = <0x0 0x102>; 76*feec3441SCraig Tatlor enable-method = "psci"; 77*feec3441SCraig Tatlor capacity-dmips-mhz = <1024>; 78*feec3441SCraig Tatlor next-level-cache = <&L2_1>; 79*feec3441SCraig Tatlor L1_I_102: l1-icache { 80*feec3441SCraig Tatlor compatible = "cache"; 81*feec3441SCraig Tatlor }; 82*feec3441SCraig Tatlor L1_D_102: l1-dcache { 83*feec3441SCraig Tatlor compatible = "cache"; 84*feec3441SCraig Tatlor }; 85*feec3441SCraig Tatlor }; 86*feec3441SCraig Tatlor 87*feec3441SCraig Tatlor CPU3: cpu@103 { 88*feec3441SCraig Tatlor device_type = "cpu"; 89*feec3441SCraig Tatlor compatible = "qcom,kryo260"; 90*feec3441SCraig Tatlor reg = <0x0 0x103>; 91*feec3441SCraig Tatlor enable-method = "psci"; 92*feec3441SCraig Tatlor capacity-dmips-mhz = <1024>; 93*feec3441SCraig Tatlor next-level-cache = <&L2_1>; 94*feec3441SCraig Tatlor L1_I_103: l1-icache { 95*feec3441SCraig Tatlor compatible = "cache"; 96*feec3441SCraig Tatlor }; 97*feec3441SCraig Tatlor L1_D_103: l1-dcache { 98*feec3441SCraig Tatlor compatible = "cache"; 99*feec3441SCraig Tatlor }; 100*feec3441SCraig Tatlor }; 101*feec3441SCraig Tatlor 102*feec3441SCraig Tatlor CPU4: cpu@0 { 103*feec3441SCraig Tatlor device_type = "cpu"; 104*feec3441SCraig Tatlor compatible = "qcom,kryo260"; 105*feec3441SCraig Tatlor reg = <0x0 0x0>; 106*feec3441SCraig Tatlor enable-method = "psci"; 107*feec3441SCraig Tatlor capacity-dmips-mhz = <640>; 108*feec3441SCraig Tatlor next-level-cache = <&L2_0>; 109*feec3441SCraig Tatlor L2_0: l2-cache { 110*feec3441SCraig Tatlor compatible = "cache"; 111*feec3441SCraig Tatlor cache-level = <2>; 112*feec3441SCraig Tatlor }; 113*feec3441SCraig Tatlor L1_I_0: l1-icache { 114*feec3441SCraig Tatlor compatible = "cache"; 115*feec3441SCraig Tatlor }; 116*feec3441SCraig Tatlor L1_D_0: l1-dcache { 117*feec3441SCraig Tatlor compatible = "cache"; 118*feec3441SCraig Tatlor }; 119*feec3441SCraig Tatlor }; 120*feec3441SCraig Tatlor 121*feec3441SCraig Tatlor CPU5: cpu@1 { 122*feec3441SCraig Tatlor device_type = "cpu"; 123*feec3441SCraig Tatlor compatible = "qcom,kryo260"; 124*feec3441SCraig Tatlor reg = <0x0 0x1>; 125*feec3441SCraig Tatlor enable-method = "psci"; 126*feec3441SCraig Tatlor capacity-dmips-mhz = <640>; 127*feec3441SCraig Tatlor next-level-cache = <&L2_0>; 128*feec3441SCraig Tatlor L1_I_1: l1-icache { 129*feec3441SCraig Tatlor compatible = "cache"; 130*feec3441SCraig Tatlor }; 131*feec3441SCraig Tatlor L1_D_1: l1-dcache { 132*feec3441SCraig Tatlor compatible = "cache"; 133*feec3441SCraig Tatlor }; 134*feec3441SCraig Tatlor }; 135*feec3441SCraig Tatlor 136*feec3441SCraig Tatlor CPU6: cpu@2 { 137*feec3441SCraig Tatlor device_type = "cpu"; 138*feec3441SCraig Tatlor compatible = "qcom,kryo260"; 139*feec3441SCraig Tatlor reg = <0x0 0x2>; 140*feec3441SCraig Tatlor enable-method = "psci"; 141*feec3441SCraig Tatlor capacity-dmips-mhz = <640>; 142*feec3441SCraig Tatlor next-level-cache = <&L2_0>; 143*feec3441SCraig Tatlor L1_I_2: l1-icache { 144*feec3441SCraig Tatlor compatible = "cache"; 145*feec3441SCraig Tatlor }; 146*feec3441SCraig Tatlor L1_D_2: l1-dcache { 147*feec3441SCraig Tatlor compatible = "cache"; 148*feec3441SCraig Tatlor }; 149*feec3441SCraig Tatlor }; 150*feec3441SCraig Tatlor 151*feec3441SCraig Tatlor CPU7: cpu@3 { 152*feec3441SCraig Tatlor device_type = "cpu"; 153*feec3441SCraig Tatlor compatible = "qcom,kryo260"; 154*feec3441SCraig Tatlor reg = <0x0 0x3>; 155*feec3441SCraig Tatlor enable-method = "psci"; 156*feec3441SCraig Tatlor capacity-dmips-mhz = <640>; 157*feec3441SCraig Tatlor next-level-cache = <&L2_0>; 158*feec3441SCraig Tatlor L1_I_3: l1-icache { 159*feec3441SCraig Tatlor compatible = "cache"; 160*feec3441SCraig Tatlor }; 161*feec3441SCraig Tatlor L1_D_3: l1-dcache { 162*feec3441SCraig Tatlor compatible = "cache"; 163*feec3441SCraig Tatlor }; 164*feec3441SCraig Tatlor }; 165*feec3441SCraig Tatlor 166*feec3441SCraig Tatlor cpu-map { 167*feec3441SCraig Tatlor cluster0 { 168*feec3441SCraig Tatlor core0 { 169*feec3441SCraig Tatlor cpu = <&CPU4>; 170*feec3441SCraig Tatlor }; 171*feec3441SCraig Tatlor 172*feec3441SCraig Tatlor core1 { 173*feec3441SCraig Tatlor cpu = <&CPU5>; 174*feec3441SCraig Tatlor }; 175*feec3441SCraig Tatlor 176*feec3441SCraig Tatlor core2 { 177*feec3441SCraig Tatlor cpu = <&CPU6>; 178*feec3441SCraig Tatlor }; 179*feec3441SCraig Tatlor 180*feec3441SCraig Tatlor core3 { 181*feec3441SCraig Tatlor cpu = <&CPU7>; 182*feec3441SCraig Tatlor }; 183*feec3441SCraig Tatlor }; 184*feec3441SCraig Tatlor 185*feec3441SCraig Tatlor cluster1 { 186*feec3441SCraig Tatlor core0 { 187*feec3441SCraig Tatlor cpu = <&CPU0>; 188*feec3441SCraig Tatlor }; 189*feec3441SCraig Tatlor 190*feec3441SCraig Tatlor core1 { 191*feec3441SCraig Tatlor cpu = <&CPU1>; 192*feec3441SCraig Tatlor }; 193*feec3441SCraig Tatlor 194*feec3441SCraig Tatlor core2 { 195*feec3441SCraig Tatlor cpu = <&CPU2>; 196*feec3441SCraig Tatlor }; 197*feec3441SCraig Tatlor 198*feec3441SCraig Tatlor core3 { 199*feec3441SCraig Tatlor cpu = <&CPU3>; 200*feec3441SCraig Tatlor }; 201*feec3441SCraig Tatlor }; 202*feec3441SCraig Tatlor }; 203*feec3441SCraig Tatlor }; 204*feec3441SCraig Tatlor 205*feec3441SCraig Tatlor firmware { 206*feec3441SCraig Tatlor scm { 207*feec3441SCraig Tatlor compatible = "qcom,scm"; 208*feec3441SCraig Tatlor }; 209*feec3441SCraig Tatlor }; 210*feec3441SCraig Tatlor 211*feec3441SCraig Tatlor memory { 212*feec3441SCraig Tatlor device_type = "memory"; 213*feec3441SCraig Tatlor /* We expect the bootloader to fill in the reg */ 214*feec3441SCraig Tatlor reg = <0 0 0 0>; 215*feec3441SCraig Tatlor }; 216*feec3441SCraig Tatlor 217*feec3441SCraig Tatlor psci { 218*feec3441SCraig Tatlor compatible = "arm,psci-1.0"; 219*feec3441SCraig Tatlor method = "smc"; 220*feec3441SCraig Tatlor }; 221*feec3441SCraig Tatlor 222*feec3441SCraig Tatlor timer { 223*feec3441SCraig Tatlor compatible = "arm,armv8-timer"; 224*feec3441SCraig Tatlor interrupts = <GIC_PPI 1 IRQ_TYPE_LEVEL_LOW>, 225*feec3441SCraig Tatlor <GIC_PPI 2 IRQ_TYPE_LEVEL_LOW>, 226*feec3441SCraig Tatlor <GIC_PPI 3 IRQ_TYPE_LEVEL_LOW>, 227*feec3441SCraig Tatlor <GIC_PPI 0 IRQ_TYPE_LEVEL_LOW>; 228*feec3441SCraig Tatlor }; 229*feec3441SCraig Tatlor 230*feec3441SCraig Tatlor soc: soc { 231*feec3441SCraig Tatlor #address-cells = <1>; 232*feec3441SCraig Tatlor #size-cells = <1>; 233*feec3441SCraig Tatlor ranges = <0 0 0 0xffffffff>; 234*feec3441SCraig Tatlor compatible = "simple-bus"; 235*feec3441SCraig Tatlor 236*feec3441SCraig Tatlor gcc: clock-controller@100000 { 237*feec3441SCraig Tatlor compatible = "qcom,gcc-sdm660"; 238*feec3441SCraig Tatlor #clock-cells = <1>; 239*feec3441SCraig Tatlor #reset-cells = <1>; 240*feec3441SCraig Tatlor #power-domain-cells = <1>; 241*feec3441SCraig Tatlor reg = <0x00100000 0x94000>; 242*feec3441SCraig Tatlor }; 243*feec3441SCraig Tatlor 244*feec3441SCraig Tatlor tlmm: pinctrl@3100000 { 245*feec3441SCraig Tatlor compatible = "qcom,sdm660-pinctrl"; 246*feec3441SCraig Tatlor reg = <0x03100000 0x400000>, 247*feec3441SCraig Tatlor <0x03500000 0x400000>, 248*feec3441SCraig Tatlor <0x03900000 0x400000>; 249*feec3441SCraig Tatlor reg-names = "south", "center", "north"; 250*feec3441SCraig Tatlor interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; 251*feec3441SCraig Tatlor gpio-controller; 252*feec3441SCraig Tatlor gpio-ranges = <&tlmm 0 0 114>; 253*feec3441SCraig Tatlor #gpio-cells = <2>; 254*feec3441SCraig Tatlor interrupt-controller; 255*feec3441SCraig Tatlor #interrupt-cells = <2>; 256*feec3441SCraig Tatlor 257*feec3441SCraig Tatlor uart_console_active: uart_console_active { 258*feec3441SCraig Tatlor pinmux { 259*feec3441SCraig Tatlor pins = "gpio4", "gpio5"; 260*feec3441SCraig Tatlor function = "blsp_uart2"; 261*feec3441SCraig Tatlor }; 262*feec3441SCraig Tatlor 263*feec3441SCraig Tatlor pinconf { 264*feec3441SCraig Tatlor pins = "gpio4", "gpio5"; 265*feec3441SCraig Tatlor drive-strength = <2>; 266*feec3441SCraig Tatlor bias-disable; 267*feec3441SCraig Tatlor }; 268*feec3441SCraig Tatlor }; 269*feec3441SCraig Tatlor }; 270*feec3441SCraig Tatlor 271*feec3441SCraig Tatlor spmi_bus: spmi@800f000 { 272*feec3441SCraig Tatlor compatible = "qcom,spmi-pmic-arb"; 273*feec3441SCraig Tatlor reg = <0x0800f000 0x1000>, 274*feec3441SCraig Tatlor <0x08400000 0x1000000>, 275*feec3441SCraig Tatlor <0x09400000 0x1000000>, 276*feec3441SCraig Tatlor <0x0a400000 0x220000>, 277*feec3441SCraig Tatlor <0x0800a000 0x3000>; 278*feec3441SCraig Tatlor reg-names = "core", "chnls", "obsrvr", "intr", "cnfg"; 279*feec3441SCraig Tatlor interrupt-names = "periph_irq"; 280*feec3441SCraig Tatlor interrupts = <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>; 281*feec3441SCraig Tatlor qcom,ee = <0>; 282*feec3441SCraig Tatlor qcom,channel = <0>; 283*feec3441SCraig Tatlor #address-cells = <2>; 284*feec3441SCraig Tatlor #size-cells = <0>; 285*feec3441SCraig Tatlor interrupt-controller; 286*feec3441SCraig Tatlor #interrupt-cells = <4>; 287*feec3441SCraig Tatlor cell-index = <0>; 288*feec3441SCraig Tatlor }; 289*feec3441SCraig Tatlor 290*feec3441SCraig Tatlor blsp1_uart2: serial@c170000 { 291*feec3441SCraig Tatlor compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; 292*feec3441SCraig Tatlor reg = <0x0c170000 0x1000>; 293*feec3441SCraig Tatlor interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>; 294*feec3441SCraig Tatlor clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, 295*feec3441SCraig Tatlor <&gcc GCC_BLSP1_AHB_CLK>; 296*feec3441SCraig Tatlor clock-names = "core", "iface"; 297*feec3441SCraig Tatlor status = "disabled"; 298*feec3441SCraig Tatlor }; 299*feec3441SCraig Tatlor 300*feec3441SCraig Tatlor timer@17920000 { 301*feec3441SCraig Tatlor #address-cells = <1>; 302*feec3441SCraig Tatlor #size-cells = <1>; 303*feec3441SCraig Tatlor ranges; 304*feec3441SCraig Tatlor compatible = "arm,armv7-timer-mem"; 305*feec3441SCraig Tatlor reg = <0x17920000 0x1000>; 306*feec3441SCraig Tatlor 307*feec3441SCraig Tatlor frame@17921000 { 308*feec3441SCraig Tatlor frame-number = <0>; 309*feec3441SCraig Tatlor interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>, 310*feec3441SCraig Tatlor <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; 311*feec3441SCraig Tatlor reg = <0x17921000 0x1000>, 312*feec3441SCraig Tatlor <0x17922000 0x1000>; 313*feec3441SCraig Tatlor }; 314*feec3441SCraig Tatlor 315*feec3441SCraig Tatlor frame@17923000 { 316*feec3441SCraig Tatlor frame-number = <1>; 317*feec3441SCraig Tatlor interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 318*feec3441SCraig Tatlor reg = <0x17923000 0x1000>; 319*feec3441SCraig Tatlor status = "disabled"; 320*feec3441SCraig Tatlor }; 321*feec3441SCraig Tatlor 322*feec3441SCraig Tatlor frame@17924000 { 323*feec3441SCraig Tatlor frame-number = <2>; 324*feec3441SCraig Tatlor interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>; 325*feec3441SCraig Tatlor reg = <0x17924000 0x1000>; 326*feec3441SCraig Tatlor status = "disabled"; 327*feec3441SCraig Tatlor }; 328*feec3441SCraig Tatlor 329*feec3441SCraig Tatlor frame@17925000 { 330*feec3441SCraig Tatlor frame-number = <3>; 331*feec3441SCraig Tatlor interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>; 332*feec3441SCraig Tatlor reg = <0x17925000 0x1000>; 333*feec3441SCraig Tatlor status = "disabled"; 334*feec3441SCraig Tatlor }; 335*feec3441SCraig Tatlor 336*feec3441SCraig Tatlor frame@17926000 { 337*feec3441SCraig Tatlor frame-number = <4>; 338*feec3441SCraig Tatlor interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 339*feec3441SCraig Tatlor reg = <0x17926000 0x1000>; 340*feec3441SCraig Tatlor status = "disabled"; 341*feec3441SCraig Tatlor }; 342*feec3441SCraig Tatlor 343*feec3441SCraig Tatlor frame@17927000 { 344*feec3441SCraig Tatlor frame-number = <5>; 345*feec3441SCraig Tatlor interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>; 346*feec3441SCraig Tatlor reg = <0x17927000 0x1000>; 347*feec3441SCraig Tatlor status = "disabled"; 348*feec3441SCraig Tatlor }; 349*feec3441SCraig Tatlor 350*feec3441SCraig Tatlor frame@17928000 { 351*feec3441SCraig Tatlor frame-number = <6>; 352*feec3441SCraig Tatlor interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; 353*feec3441SCraig Tatlor reg = <0x17928000 0x1000>; 354*feec3441SCraig Tatlor status = "disabled"; 355*feec3441SCraig Tatlor }; 356*feec3441SCraig Tatlor }; 357*feec3441SCraig Tatlor 358*feec3441SCraig Tatlor intc: interrupt-controller@17a00000 { 359*feec3441SCraig Tatlor compatible = "arm,gic-v3"; 360*feec3441SCraig Tatlor reg = <0x17a00000 0x10000>, 361*feec3441SCraig Tatlor <0x17b00000 0x100000>; 362*feec3441SCraig Tatlor #interrupt-cells = <3>; 363*feec3441SCraig Tatlor #address-cells = <1>; 364*feec3441SCraig Tatlor #size-cells = <1>; 365*feec3441SCraig Tatlor ranges; 366*feec3441SCraig Tatlor interrupt-controller; 367*feec3441SCraig Tatlor #redistributor-regions = <1>; 368*feec3441SCraig Tatlor redistributor-stride = <0x0 0x20000>; 369*feec3441SCraig Tatlor interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 370*feec3441SCraig Tatlor }; 371*feec3441SCraig Tatlor }; 372*feec3441SCraig Tatlor}; 373