1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0 2*724ba675SRob Herring/dts-v1/; 3*724ba675SRob Herring 4*724ba675SRob Herring#include <dt-bindings/interrupt-controller/arm-gic.h> 5*724ba675SRob Herring#include <dt-bindings/clock/qcom,gcc-msm8960.h> 6*724ba675SRob Herring#include <dt-bindings/reset/qcom,gcc-msm8960.h> 7*724ba675SRob Herring#include <dt-bindings/clock/qcom,lcc-msm8960.h> 8*724ba675SRob Herring#include <dt-bindings/mfd/qcom-rpm.h> 9*724ba675SRob Herring#include <dt-bindings/soc/qcom,gsbi.h> 10*724ba675SRob Herring 11*724ba675SRob Herring/ { 12*724ba675SRob Herring #address-cells = <1>; 13*724ba675SRob Herring #size-cells = <1>; 14*724ba675SRob Herring model = "Qualcomm MSM8960"; 15*724ba675SRob Herring compatible = "qcom,msm8960"; 16*724ba675SRob Herring interrupt-parent = <&intc>; 17*724ba675SRob Herring 18*724ba675SRob Herring cpus { 19*724ba675SRob Herring #address-cells = <1>; 20*724ba675SRob Herring #size-cells = <0>; 21*724ba675SRob Herring interrupts = <GIC_PPI 14 0x304>; 22*724ba675SRob Herring 23*724ba675SRob Herring cpu@0 { 24*724ba675SRob Herring compatible = "qcom,krait"; 25*724ba675SRob Herring enable-method = "qcom,kpss-acc-v1"; 26*724ba675SRob Herring device_type = "cpu"; 27*724ba675SRob Herring reg = <0>; 28*724ba675SRob Herring next-level-cache = <&L2>; 29*724ba675SRob Herring qcom,acc = <&acc0>; 30*724ba675SRob Herring qcom,saw = <&saw0>; 31*724ba675SRob Herring }; 32*724ba675SRob Herring 33*724ba675SRob Herring cpu@1 { 34*724ba675SRob Herring compatible = "qcom,krait"; 35*724ba675SRob Herring enable-method = "qcom,kpss-acc-v1"; 36*724ba675SRob Herring device_type = "cpu"; 37*724ba675SRob Herring reg = <1>; 38*724ba675SRob Herring next-level-cache = <&L2>; 39*724ba675SRob Herring qcom,acc = <&acc1>; 40*724ba675SRob Herring qcom,saw = <&saw1>; 41*724ba675SRob Herring }; 42*724ba675SRob Herring 43*724ba675SRob Herring L2: l2-cache { 44*724ba675SRob Herring compatible = "cache"; 45*724ba675SRob Herring cache-level = <2>; 46*724ba675SRob Herring }; 47*724ba675SRob Herring }; 48*724ba675SRob Herring 49*724ba675SRob Herring memory { 50*724ba675SRob Herring device_type = "memory"; 51*724ba675SRob Herring reg = <0x0 0x0>; 52*724ba675SRob Herring }; 53*724ba675SRob Herring 54*724ba675SRob Herring cpu-pmu { 55*724ba675SRob Herring compatible = "qcom,krait-pmu"; 56*724ba675SRob Herring interrupts = <GIC_PPI 10 0x304>; 57*724ba675SRob Herring qcom,no-pc-write; 58*724ba675SRob Herring }; 59*724ba675SRob Herring 60*724ba675SRob Herring clocks { 61*724ba675SRob Herring cxo_board: cxo_board { 62*724ba675SRob Herring compatible = "fixed-clock"; 63*724ba675SRob Herring #clock-cells = <0>; 64*724ba675SRob Herring clock-frequency = <19200000>; 65*724ba675SRob Herring clock-output-names = "cxo_board"; 66*724ba675SRob Herring }; 67*724ba675SRob Herring 68*724ba675SRob Herring pxo_board: pxo_board { 69*724ba675SRob Herring compatible = "fixed-clock"; 70*724ba675SRob Herring #clock-cells = <0>; 71*724ba675SRob Herring clock-frequency = <27000000>; 72*724ba675SRob Herring clock-output-names = "pxo_board"; 73*724ba675SRob Herring }; 74*724ba675SRob Herring 75*724ba675SRob Herring sleep_clk: sleep_clk { 76*724ba675SRob Herring compatible = "fixed-clock"; 77*724ba675SRob Herring #clock-cells = <0>; 78*724ba675SRob Herring clock-frequency = <32768>; 79*724ba675SRob Herring clock-output-names = "sleep_clk"; 80*724ba675SRob Herring }; 81*724ba675SRob Herring }; 82*724ba675SRob Herring 83*724ba675SRob Herring /* Temporary fixed regulator */ 84*724ba675SRob Herring vsdcc_fixed: vsdcc-regulator { 85*724ba675SRob Herring compatible = "regulator-fixed"; 86*724ba675SRob Herring regulator-name = "SDCC Power"; 87*724ba675SRob Herring regulator-min-microvolt = <2700000>; 88*724ba675SRob Herring regulator-max-microvolt = <2700000>; 89*724ba675SRob Herring regulator-always-on; 90*724ba675SRob Herring }; 91*724ba675SRob Herring 92*724ba675SRob Herring soc: soc { 93*724ba675SRob Herring #address-cells = <1>; 94*724ba675SRob Herring #size-cells = <1>; 95*724ba675SRob Herring ranges; 96*724ba675SRob Herring compatible = "simple-bus"; 97*724ba675SRob Herring 98*724ba675SRob Herring intc: interrupt-controller@2000000 { 99*724ba675SRob Herring compatible = "qcom,msm-qgic2"; 100*724ba675SRob Herring interrupt-controller; 101*724ba675SRob Herring #interrupt-cells = <3>; 102*724ba675SRob Herring reg = <0x02000000 0x1000>, 103*724ba675SRob Herring <0x02002000 0x1000>; 104*724ba675SRob Herring }; 105*724ba675SRob Herring 106*724ba675SRob Herring timer@200a000 { 107*724ba675SRob Herring compatible = "qcom,kpss-wdt-msm8960", "qcom,kpss-timer", 108*724ba675SRob Herring "qcom,msm-timer"; 109*724ba675SRob Herring interrupts = <GIC_PPI 1 0x301>, 110*724ba675SRob Herring <GIC_PPI 2 0x301>, 111*724ba675SRob Herring <GIC_PPI 3 0x301>; 112*724ba675SRob Herring reg = <0x0200a000 0x100>; 113*724ba675SRob Herring clock-frequency = <27000000>; 114*724ba675SRob Herring cpu-offset = <0x80000>; 115*724ba675SRob Herring }; 116*724ba675SRob Herring 117*724ba675SRob Herring msmgpio: pinctrl@800000 { 118*724ba675SRob Herring compatible = "qcom,msm8960-pinctrl"; 119*724ba675SRob Herring gpio-controller; 120*724ba675SRob Herring gpio-ranges = <&msmgpio 0 0 152>; 121*724ba675SRob Herring #gpio-cells = <2>; 122*724ba675SRob Herring interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 123*724ba675SRob Herring interrupt-controller; 124*724ba675SRob Herring #interrupt-cells = <2>; 125*724ba675SRob Herring reg = <0x800000 0x4000>; 126*724ba675SRob Herring }; 127*724ba675SRob Herring 128*724ba675SRob Herring gcc: clock-controller@900000 { 129*724ba675SRob Herring compatible = "qcom,gcc-msm8960"; 130*724ba675SRob Herring #clock-cells = <1>; 131*724ba675SRob Herring #power-domain-cells = <1>; 132*724ba675SRob Herring #reset-cells = <1>; 133*724ba675SRob Herring reg = <0x900000 0x4000>; 134*724ba675SRob Herring clocks = <&cxo_board>, 135*724ba675SRob Herring <&pxo_board>, 136*724ba675SRob Herring <&lcc PLL4>; 137*724ba675SRob Herring clock-names = "cxo", "pxo", "pll4"; 138*724ba675SRob Herring }; 139*724ba675SRob Herring 140*724ba675SRob Herring lcc: clock-controller@28000000 { 141*724ba675SRob Herring compatible = "qcom,lcc-msm8960"; 142*724ba675SRob Herring reg = <0x28000000 0x1000>; 143*724ba675SRob Herring #clock-cells = <1>; 144*724ba675SRob Herring #reset-cells = <1>; 145*724ba675SRob Herring clocks = <&pxo_board>, 146*724ba675SRob Herring <&gcc PLL4_VOTE>, 147*724ba675SRob Herring <0>, 148*724ba675SRob Herring <0>, <0>, 149*724ba675SRob Herring <0>, <0>, 150*724ba675SRob Herring <0>; 151*724ba675SRob Herring clock-names = "pxo", 152*724ba675SRob Herring "pll4_vote", 153*724ba675SRob Herring "mi2s_codec_clk", 154*724ba675SRob Herring "codec_i2s_mic_codec_clk", 155*724ba675SRob Herring "spare_i2s_mic_codec_clk", 156*724ba675SRob Herring "codec_i2s_spkr_codec_clk", 157*724ba675SRob Herring "spare_i2s_spkr_codec_clk", 158*724ba675SRob Herring "pcm_codec_clk"; 159*724ba675SRob Herring }; 160*724ba675SRob Herring 161*724ba675SRob Herring clock-controller@4000000 { 162*724ba675SRob Herring compatible = "qcom,mmcc-msm8960"; 163*724ba675SRob Herring reg = <0x4000000 0x1000>; 164*724ba675SRob Herring #clock-cells = <1>; 165*724ba675SRob Herring #power-domain-cells = <1>; 166*724ba675SRob Herring #reset-cells = <1>; 167*724ba675SRob Herring clocks = <&pxo_board>, 168*724ba675SRob Herring <&gcc PLL3>, 169*724ba675SRob Herring <&gcc PLL8_VOTE>, 170*724ba675SRob Herring <0>, 171*724ba675SRob Herring <0>, 172*724ba675SRob Herring <0>, 173*724ba675SRob Herring <0>, 174*724ba675SRob Herring <0>; 175*724ba675SRob Herring clock-names = "pxo", 176*724ba675SRob Herring "pll3", 177*724ba675SRob Herring "pll8_vote", 178*724ba675SRob Herring "dsi1pll", 179*724ba675SRob Herring "dsi1pllbyte", 180*724ba675SRob Herring "dsi2pll", 181*724ba675SRob Herring "dsi2pllbyte", 182*724ba675SRob Herring "hdmipll"; 183*724ba675SRob Herring }; 184*724ba675SRob Herring 185*724ba675SRob Herring l2cc: clock-controller@2011000 { 186*724ba675SRob Herring compatible = "qcom,kpss-gcc-msm8960", "qcom,kpss-gcc", "syscon"; 187*724ba675SRob Herring reg = <0x2011000 0x1000>; 188*724ba675SRob Herring clocks = <&gcc PLL8_VOTE>, <&pxo_board>; 189*724ba675SRob Herring clock-names = "pll8_vote", "pxo"; 190*724ba675SRob Herring #clock-cells = <0>; 191*724ba675SRob Herring }; 192*724ba675SRob Herring 193*724ba675SRob Herring rpm: rpm@108000 { 194*724ba675SRob Herring compatible = "qcom,rpm-msm8960"; 195*724ba675SRob Herring reg = <0x108000 0x1000>; 196*724ba675SRob Herring qcom,ipc = <&l2cc 0x8 2>; 197*724ba675SRob Herring 198*724ba675SRob Herring interrupts = <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>, 199*724ba675SRob Herring <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>, 200*724ba675SRob Herring <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>; 201*724ba675SRob Herring interrupt-names = "ack", "err", "wakeup"; 202*724ba675SRob Herring 203*724ba675SRob Herring regulators { 204*724ba675SRob Herring compatible = "qcom,rpm-pm8921-regulators"; 205*724ba675SRob Herring }; 206*724ba675SRob Herring }; 207*724ba675SRob Herring 208*724ba675SRob Herring acc0: clock-controller@2088000 { 209*724ba675SRob Herring compatible = "qcom,kpss-acc-v1"; 210*724ba675SRob Herring reg = <0x02088000 0x1000>, <0x02008000 0x1000>; 211*724ba675SRob Herring clocks = <&gcc PLL8_VOTE>, <&pxo_board>; 212*724ba675SRob Herring clock-names = "pll8_vote", "pxo"; 213*724ba675SRob Herring clock-output-names = "acpu0_aux"; 214*724ba675SRob Herring #clock-cells = <0>; 215*724ba675SRob Herring }; 216*724ba675SRob Herring 217*724ba675SRob Herring acc1: clock-controller@2098000 { 218*724ba675SRob Herring compatible = "qcom,kpss-acc-v1"; 219*724ba675SRob Herring reg = <0x02098000 0x1000>, <0x02008000 0x1000>; 220*724ba675SRob Herring clocks = <&gcc PLL8_VOTE>, <&pxo_board>; 221*724ba675SRob Herring clock-names = "pll8_vote", "pxo"; 222*724ba675SRob Herring clock-output-names = "acpu1_aux"; 223*724ba675SRob Herring #clock-cells = <0>; 224*724ba675SRob Herring }; 225*724ba675SRob Herring 226*724ba675SRob Herring saw0: regulator@2089000 { 227*724ba675SRob Herring compatible = "qcom,saw2"; 228*724ba675SRob Herring reg = <0x02089000 0x1000>, <0x02009000 0x1000>; 229*724ba675SRob Herring regulator; 230*724ba675SRob Herring }; 231*724ba675SRob Herring 232*724ba675SRob Herring saw1: regulator@2099000 { 233*724ba675SRob Herring compatible = "qcom,saw2"; 234*724ba675SRob Herring reg = <0x02099000 0x1000>, <0x02009000 0x1000>; 235*724ba675SRob Herring regulator; 236*724ba675SRob Herring }; 237*724ba675SRob Herring 238*724ba675SRob Herring gsbi5: gsbi@16400000 { 239*724ba675SRob Herring compatible = "qcom,gsbi-v1.0.0"; 240*724ba675SRob Herring cell-index = <5>; 241*724ba675SRob Herring reg = <0x16400000 0x100>; 242*724ba675SRob Herring clocks = <&gcc GSBI5_H_CLK>; 243*724ba675SRob Herring clock-names = "iface"; 244*724ba675SRob Herring #address-cells = <1>; 245*724ba675SRob Herring #size-cells = <1>; 246*724ba675SRob Herring ranges; 247*724ba675SRob Herring 248*724ba675SRob Herring syscon-tcsr = <&tcsr>; 249*724ba675SRob Herring 250*724ba675SRob Herring gsbi5_serial: serial@16440000 { 251*724ba675SRob Herring compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; 252*724ba675SRob Herring reg = <0x16440000 0x1000>, 253*724ba675SRob Herring <0x16400000 0x1000>; 254*724ba675SRob Herring interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 255*724ba675SRob Herring clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>; 256*724ba675SRob Herring clock-names = "core", "iface"; 257*724ba675SRob Herring status = "disabled"; 258*724ba675SRob Herring }; 259*724ba675SRob Herring }; 260*724ba675SRob Herring 261*724ba675SRob Herring ssbi@500000 { 262*724ba675SRob Herring compatible = "qcom,ssbi"; 263*724ba675SRob Herring reg = <0x500000 0x1000>; 264*724ba675SRob Herring qcom,controller-type = "pmic-arbiter"; 265*724ba675SRob Herring 266*724ba675SRob Herring pmicintc: pmic { 267*724ba675SRob Herring compatible = "qcom,pm8921"; 268*724ba675SRob Herring interrupt-parent = <&msmgpio>; 269*724ba675SRob Herring interrupts = <104 IRQ_TYPE_LEVEL_LOW>; 270*724ba675SRob Herring #interrupt-cells = <2>; 271*724ba675SRob Herring interrupt-controller; 272*724ba675SRob Herring #address-cells = <1>; 273*724ba675SRob Herring #size-cells = <0>; 274*724ba675SRob Herring 275*724ba675SRob Herring pwrkey@1c { 276*724ba675SRob Herring compatible = "qcom,pm8921-pwrkey"; 277*724ba675SRob Herring reg = <0x1c>; 278*724ba675SRob Herring interrupt-parent = <&pmicintc>; 279*724ba675SRob Herring interrupts = <50 IRQ_TYPE_EDGE_RISING>, 280*724ba675SRob Herring <51 IRQ_TYPE_EDGE_RISING>; 281*724ba675SRob Herring debounce = <15625>; 282*724ba675SRob Herring pull-up; 283*724ba675SRob Herring }; 284*724ba675SRob Herring 285*724ba675SRob Herring keypad@148 { 286*724ba675SRob Herring compatible = "qcom,pm8921-keypad"; 287*724ba675SRob Herring reg = <0x148>; 288*724ba675SRob Herring interrupt-parent = <&pmicintc>; 289*724ba675SRob Herring interrupts = <74 IRQ_TYPE_EDGE_RISING>, 290*724ba675SRob Herring <75 IRQ_TYPE_EDGE_RISING>; 291*724ba675SRob Herring debounce = <15>; 292*724ba675SRob Herring scan-delay = <32>; 293*724ba675SRob Herring row-hold = <91500>; 294*724ba675SRob Herring }; 295*724ba675SRob Herring 296*724ba675SRob Herring rtc@11d { 297*724ba675SRob Herring compatible = "qcom,pm8921-rtc"; 298*724ba675SRob Herring interrupt-parent = <&pmicintc>; 299*724ba675SRob Herring interrupts = <39 IRQ_TYPE_EDGE_RISING>; 300*724ba675SRob Herring reg = <0x11d>; 301*724ba675SRob Herring allow-set-time; 302*724ba675SRob Herring }; 303*724ba675SRob Herring }; 304*724ba675SRob Herring }; 305*724ba675SRob Herring 306*724ba675SRob Herring rng@1a500000 { 307*724ba675SRob Herring compatible = "qcom,prng"; 308*724ba675SRob Herring reg = <0x1a500000 0x200>; 309*724ba675SRob Herring clocks = <&gcc PRNG_CLK>; 310*724ba675SRob Herring clock-names = "core"; 311*724ba675SRob Herring }; 312*724ba675SRob Herring 313*724ba675SRob Herring sdcc3: mmc@12180000 { 314*724ba675SRob Herring compatible = "arm,pl18x", "arm,primecell"; 315*724ba675SRob Herring arm,primecell-periphid = <0x00051180>; 316*724ba675SRob Herring status = "disabled"; 317*724ba675SRob Herring reg = <0x12180000 0x8000>; 318*724ba675SRob Herring interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; 319*724ba675SRob Herring clocks = <&gcc SDC3_CLK>, <&gcc SDC3_H_CLK>; 320*724ba675SRob Herring clock-names = "mclk", "apb_pclk"; 321*724ba675SRob Herring bus-width = <4>; 322*724ba675SRob Herring cap-sd-highspeed; 323*724ba675SRob Herring cap-mmc-highspeed; 324*724ba675SRob Herring max-frequency = <192000000>; 325*724ba675SRob Herring no-1-8-v; 326*724ba675SRob Herring vmmc-supply = <&vsdcc_fixed>; 327*724ba675SRob Herring }; 328*724ba675SRob Herring 329*724ba675SRob Herring sdcc1: mmc@12400000 { 330*724ba675SRob Herring status = "disabled"; 331*724ba675SRob Herring compatible = "arm,pl18x", "arm,primecell"; 332*724ba675SRob Herring arm,primecell-periphid = <0x00051180>; 333*724ba675SRob Herring reg = <0x12400000 0x8000>; 334*724ba675SRob Herring interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; 335*724ba675SRob Herring clocks = <&gcc SDC1_CLK>, <&gcc SDC1_H_CLK>; 336*724ba675SRob Herring clock-names = "mclk", "apb_pclk"; 337*724ba675SRob Herring bus-width = <8>; 338*724ba675SRob Herring max-frequency = <96000000>; 339*724ba675SRob Herring non-removable; 340*724ba675SRob Herring cap-sd-highspeed; 341*724ba675SRob Herring cap-mmc-highspeed; 342*724ba675SRob Herring vmmc-supply = <&vsdcc_fixed>; 343*724ba675SRob Herring }; 344*724ba675SRob Herring 345*724ba675SRob Herring tcsr: syscon@1a400000 { 346*724ba675SRob Herring compatible = "qcom,tcsr-msm8960", "syscon"; 347*724ba675SRob Herring reg = <0x1a400000 0x100>; 348*724ba675SRob Herring }; 349*724ba675SRob Herring 350*724ba675SRob Herring gsbi1: gsbi@16000000 { 351*724ba675SRob Herring compatible = "qcom,gsbi-v1.0.0"; 352*724ba675SRob Herring cell-index = <1>; 353*724ba675SRob Herring reg = <0x16000000 0x100>; 354*724ba675SRob Herring clocks = <&gcc GSBI1_H_CLK>; 355*724ba675SRob Herring clock-names = "iface"; 356*724ba675SRob Herring #address-cells = <1>; 357*724ba675SRob Herring #size-cells = <1>; 358*724ba675SRob Herring ranges; 359*724ba675SRob Herring 360*724ba675SRob Herring gsbi1_spi: spi@16080000 { 361*724ba675SRob Herring compatible = "qcom,spi-qup-v1.1.1"; 362*724ba675SRob Herring #address-cells = <1>; 363*724ba675SRob Herring #size-cells = <0>; 364*724ba675SRob Herring reg = <0x16080000 0x1000>; 365*724ba675SRob Herring interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; 366*724ba675SRob Herring spi-max-frequency = <24000000>; 367*724ba675SRob Herring cs-gpios = <&msmgpio 8 0>; 368*724ba675SRob Herring 369*724ba675SRob Herring clocks = <&gcc GSBI1_QUP_CLK>, <&gcc GSBI1_H_CLK>; 370*724ba675SRob Herring clock-names = "core", "iface"; 371*724ba675SRob Herring status = "disabled"; 372*724ba675SRob Herring }; 373*724ba675SRob Herring }; 374*724ba675SRob Herring 375*724ba675SRob Herring usb1: usb@12500000 { 376*724ba675SRob Herring compatible = "qcom,ci-hdrc"; 377*724ba675SRob Herring reg = <0x12500000 0x200>, 378*724ba675SRob Herring <0x12500200 0x200>; 379*724ba675SRob Herring interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 380*724ba675SRob Herring clocks = <&gcc USB_HS1_XCVR_CLK>, <&gcc USB_HS1_H_CLK>; 381*724ba675SRob Herring clock-names = "core", "iface"; 382*724ba675SRob Herring assigned-clocks = <&gcc USB_HS1_XCVR_CLK>; 383*724ba675SRob Herring assigned-clock-rates = <60000000>; 384*724ba675SRob Herring resets = <&gcc USB_HS1_RESET>; 385*724ba675SRob Herring reset-names = "core"; 386*724ba675SRob Herring phy_type = "ulpi"; 387*724ba675SRob Herring ahb-burst-config = <0>; 388*724ba675SRob Herring phys = <&usb_hs1_phy>; 389*724ba675SRob Herring phy-names = "usb-phy"; 390*724ba675SRob Herring #reset-cells = <1>; 391*724ba675SRob Herring status = "disabled"; 392*724ba675SRob Herring 393*724ba675SRob Herring ulpi { 394*724ba675SRob Herring usb_hs1_phy: phy { 395*724ba675SRob Herring compatible = "qcom,usb-hs-phy-msm8960", 396*724ba675SRob Herring "qcom,usb-hs-phy"; 397*724ba675SRob Herring clocks = <&sleep_clk>, <&cxo_board>; 398*724ba675SRob Herring clock-names = "sleep", "ref"; 399*724ba675SRob Herring resets = <&usb1 0>; 400*724ba675SRob Herring reset-names = "por"; 401*724ba675SRob Herring #phy-cells = <0>; 402*724ba675SRob Herring }; 403*724ba675SRob Herring }; 404*724ba675SRob Herring }; 405*724ba675SRob Herring }; 406*724ba675SRob Herring}; 407