1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0 2724ba675SRob Herring/dts-v1/; 3724ba675SRob Herring 4724ba675SRob Herring#include <dt-bindings/interrupt-controller/arm-gic.h> 5724ba675SRob Herring#include <dt-bindings/clock/qcom,gcc-msm8960.h> 6724ba675SRob Herring#include <dt-bindings/reset/qcom,gcc-msm8960.h> 7724ba675SRob Herring#include <dt-bindings/clock/qcom,lcc-msm8960.h> 8724ba675SRob Herring#include <dt-bindings/mfd/qcom-rpm.h> 9724ba675SRob Herring#include <dt-bindings/soc/qcom,gsbi.h> 10724ba675SRob Herring 11724ba675SRob Herring/ { 12724ba675SRob Herring #address-cells = <1>; 13724ba675SRob Herring #size-cells = <1>; 14724ba675SRob Herring model = "Qualcomm MSM8960"; 15724ba675SRob Herring compatible = "qcom,msm8960"; 16724ba675SRob Herring interrupt-parent = <&intc>; 17724ba675SRob Herring 18724ba675SRob Herring cpus { 19724ba675SRob Herring #address-cells = <1>; 20724ba675SRob Herring #size-cells = <0>; 21724ba675SRob Herring interrupts = <GIC_PPI 14 0x304>; 22724ba675SRob Herring 23724ba675SRob Herring cpu@0 { 24724ba675SRob Herring compatible = "qcom,krait"; 25724ba675SRob Herring enable-method = "qcom,kpss-acc-v1"; 26724ba675SRob Herring device_type = "cpu"; 27724ba675SRob Herring reg = <0>; 28*7b49c9cfSKrzysztof Kozlowski next-level-cache = <&l2>; 29724ba675SRob Herring qcom,acc = <&acc0>; 30724ba675SRob Herring qcom,saw = <&saw0>; 31724ba675SRob Herring }; 32724ba675SRob Herring 33724ba675SRob Herring cpu@1 { 34724ba675SRob Herring compatible = "qcom,krait"; 35724ba675SRob Herring enable-method = "qcom,kpss-acc-v1"; 36724ba675SRob Herring device_type = "cpu"; 37724ba675SRob Herring reg = <1>; 38*7b49c9cfSKrzysztof Kozlowski next-level-cache = <&l2>; 39724ba675SRob Herring qcom,acc = <&acc1>; 40724ba675SRob Herring qcom,saw = <&saw1>; 41724ba675SRob Herring }; 42724ba675SRob Herring 43*7b49c9cfSKrzysztof Kozlowski l2: l2-cache { 44724ba675SRob Herring compatible = "cache"; 45724ba675SRob Herring cache-level = <2>; 466c1561fbSLinus Torvalds cache-unified; 47724ba675SRob Herring }; 48724ba675SRob Herring }; 49724ba675SRob Herring 50c1842643SDavid Heidelberg memory@80000000 { 51724ba675SRob Herring device_type = "memory"; 52c1842643SDavid Heidelberg reg = <0x80000000 0>; 53724ba675SRob Herring }; 54724ba675SRob Herring 55724ba675SRob Herring cpu-pmu { 56724ba675SRob Herring compatible = "qcom,krait-pmu"; 57724ba675SRob Herring interrupts = <GIC_PPI 10 0x304>; 58724ba675SRob Herring qcom,no-pc-write; 59724ba675SRob Herring }; 60724ba675SRob Herring 61724ba675SRob Herring clocks { 62724ba675SRob Herring cxo_board: cxo_board { 63724ba675SRob Herring compatible = "fixed-clock"; 64724ba675SRob Herring #clock-cells = <0>; 65724ba675SRob Herring clock-frequency = <19200000>; 66724ba675SRob Herring clock-output-names = "cxo_board"; 67724ba675SRob Herring }; 68724ba675SRob Herring 69724ba675SRob Herring pxo_board: pxo_board { 70724ba675SRob Herring compatible = "fixed-clock"; 71724ba675SRob Herring #clock-cells = <0>; 72724ba675SRob Herring clock-frequency = <27000000>; 73724ba675SRob Herring clock-output-names = "pxo_board"; 74724ba675SRob Herring }; 75724ba675SRob Herring 76724ba675SRob Herring sleep_clk: sleep_clk { 77724ba675SRob Herring compatible = "fixed-clock"; 78724ba675SRob Herring #clock-cells = <0>; 79724ba675SRob Herring clock-frequency = <32768>; 80724ba675SRob Herring clock-output-names = "sleep_clk"; 81724ba675SRob Herring }; 82724ba675SRob Herring }; 83724ba675SRob Herring 84724ba675SRob Herring /* Temporary fixed regulator */ 85724ba675SRob Herring vsdcc_fixed: vsdcc-regulator { 86724ba675SRob Herring compatible = "regulator-fixed"; 87724ba675SRob Herring regulator-name = "SDCC Power"; 88724ba675SRob Herring regulator-min-microvolt = <2700000>; 89724ba675SRob Herring regulator-max-microvolt = <2700000>; 90724ba675SRob Herring regulator-always-on; 91724ba675SRob Herring }; 92724ba675SRob Herring 93724ba675SRob Herring soc: soc { 94724ba675SRob Herring #address-cells = <1>; 95724ba675SRob Herring #size-cells = <1>; 96724ba675SRob Herring ranges; 97724ba675SRob Herring compatible = "simple-bus"; 98724ba675SRob Herring 99724ba675SRob Herring intc: interrupt-controller@2000000 { 100724ba675SRob Herring compatible = "qcom,msm-qgic2"; 101724ba675SRob Herring interrupt-controller; 102724ba675SRob Herring #interrupt-cells = <3>; 103724ba675SRob Herring reg = <0x02000000 0x1000>, 104724ba675SRob Herring <0x02002000 0x1000>; 105724ba675SRob Herring }; 106724ba675SRob Herring 107724ba675SRob Herring timer@200a000 { 108724ba675SRob Herring compatible = "qcom,kpss-wdt-msm8960", "qcom,kpss-timer", 109724ba675SRob Herring "qcom,msm-timer"; 110724ba675SRob Herring interrupts = <GIC_PPI 1 0x301>, 111724ba675SRob Herring <GIC_PPI 2 0x301>, 112724ba675SRob Herring <GIC_PPI 3 0x301>; 113724ba675SRob Herring reg = <0x0200a000 0x100>; 114724ba675SRob Herring clock-frequency = <27000000>; 115724ba675SRob Herring cpu-offset = <0x80000>; 116724ba675SRob Herring }; 117724ba675SRob Herring 118724ba675SRob Herring msmgpio: pinctrl@800000 { 119724ba675SRob Herring compatible = "qcom,msm8960-pinctrl"; 120724ba675SRob Herring gpio-controller; 121724ba675SRob Herring gpio-ranges = <&msmgpio 0 0 152>; 122724ba675SRob Herring #gpio-cells = <2>; 123724ba675SRob Herring interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 124724ba675SRob Herring interrupt-controller; 125724ba675SRob Herring #interrupt-cells = <2>; 126724ba675SRob Herring reg = <0x800000 0x4000>; 127724ba675SRob Herring }; 128724ba675SRob Herring 129724ba675SRob Herring gcc: clock-controller@900000 { 130724ba675SRob Herring compatible = "qcom,gcc-msm8960"; 131724ba675SRob Herring #clock-cells = <1>; 132724ba675SRob Herring #reset-cells = <1>; 133724ba675SRob Herring reg = <0x900000 0x4000>; 134724ba675SRob Herring clocks = <&cxo_board>, 135724ba675SRob Herring <&pxo_board>, 136724ba675SRob Herring <&lcc PLL4>; 137724ba675SRob Herring clock-names = "cxo", "pxo", "pll4"; 138724ba675SRob Herring }; 139724ba675SRob Herring 140724ba675SRob Herring lcc: clock-controller@28000000 { 141724ba675SRob Herring compatible = "qcom,lcc-msm8960"; 142724ba675SRob Herring reg = <0x28000000 0x1000>; 143724ba675SRob Herring #clock-cells = <1>; 144724ba675SRob Herring #reset-cells = <1>; 145724ba675SRob Herring clocks = <&pxo_board>, 146724ba675SRob Herring <&gcc PLL4_VOTE>, 147724ba675SRob Herring <0>, 148724ba675SRob Herring <0>, <0>, 149724ba675SRob Herring <0>, <0>, 150724ba675SRob Herring <0>; 151724ba675SRob Herring clock-names = "pxo", 152724ba675SRob Herring "pll4_vote", 153724ba675SRob Herring "mi2s_codec_clk", 154724ba675SRob Herring "codec_i2s_mic_codec_clk", 155724ba675SRob Herring "spare_i2s_mic_codec_clk", 156724ba675SRob Herring "codec_i2s_spkr_codec_clk", 157724ba675SRob Herring "spare_i2s_spkr_codec_clk", 158724ba675SRob Herring "pcm_codec_clk"; 159724ba675SRob Herring }; 160724ba675SRob Herring 161724ba675SRob Herring clock-controller@4000000 { 162724ba675SRob Herring compatible = "qcom,mmcc-msm8960"; 163724ba675SRob Herring reg = <0x4000000 0x1000>; 164724ba675SRob Herring #clock-cells = <1>; 165724ba675SRob Herring #power-domain-cells = <1>; 166724ba675SRob Herring #reset-cells = <1>; 167724ba675SRob Herring clocks = <&pxo_board>, 168724ba675SRob Herring <&gcc PLL3>, 169724ba675SRob Herring <&gcc PLL8_VOTE>, 170724ba675SRob Herring <0>, 171724ba675SRob Herring <0>, 172724ba675SRob Herring <0>, 173724ba675SRob Herring <0>, 174724ba675SRob Herring <0>; 175724ba675SRob Herring clock-names = "pxo", 176724ba675SRob Herring "pll3", 177724ba675SRob Herring "pll8_vote", 178724ba675SRob Herring "dsi1pll", 179724ba675SRob Herring "dsi1pllbyte", 180724ba675SRob Herring "dsi2pll", 181724ba675SRob Herring "dsi2pllbyte", 182724ba675SRob Herring "hdmipll"; 183724ba675SRob Herring }; 184724ba675SRob Herring 185724ba675SRob Herring l2cc: clock-controller@2011000 { 186724ba675SRob Herring compatible = "qcom,kpss-gcc-msm8960", "qcom,kpss-gcc", "syscon"; 187724ba675SRob Herring reg = <0x2011000 0x1000>; 188724ba675SRob Herring clocks = <&gcc PLL8_VOTE>, <&pxo_board>; 189724ba675SRob Herring clock-names = "pll8_vote", "pxo"; 190724ba675SRob Herring #clock-cells = <0>; 191724ba675SRob Herring }; 192724ba675SRob Herring 193724ba675SRob Herring rpm: rpm@108000 { 194724ba675SRob Herring compatible = "qcom,rpm-msm8960"; 195724ba675SRob Herring reg = <0x108000 0x1000>; 196724ba675SRob Herring qcom,ipc = <&l2cc 0x8 2>; 197724ba675SRob Herring 198724ba675SRob Herring interrupts = <GIC_SPI 19 IRQ_TYPE_EDGE_RISING>, 199724ba675SRob Herring <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>, 200724ba675SRob Herring <GIC_SPI 22 IRQ_TYPE_EDGE_RISING>; 201724ba675SRob Herring interrupt-names = "ack", "err", "wakeup"; 202724ba675SRob Herring }; 203724ba675SRob Herring 204724ba675SRob Herring acc0: clock-controller@2088000 { 205724ba675SRob Herring compatible = "qcom,kpss-acc-v1"; 206724ba675SRob Herring reg = <0x02088000 0x1000>, <0x02008000 0x1000>; 207724ba675SRob Herring clocks = <&gcc PLL8_VOTE>, <&pxo_board>; 208724ba675SRob Herring clock-names = "pll8_vote", "pxo"; 209724ba675SRob Herring clock-output-names = "acpu0_aux"; 210724ba675SRob Herring #clock-cells = <0>; 211724ba675SRob Herring }; 212724ba675SRob Herring 213724ba675SRob Herring acc1: clock-controller@2098000 { 214724ba675SRob Herring compatible = "qcom,kpss-acc-v1"; 215724ba675SRob Herring reg = <0x02098000 0x1000>, <0x02008000 0x1000>; 216724ba675SRob Herring clocks = <&gcc PLL8_VOTE>, <&pxo_board>; 217724ba675SRob Herring clock-names = "pll8_vote", "pxo"; 218724ba675SRob Herring clock-output-names = "acpu1_aux"; 219724ba675SRob Herring #clock-cells = <0>; 220724ba675SRob Herring }; 221724ba675SRob Herring 22234725e24SDmitry Baryshkov saw0: power-manager@2089000 { 2239f77f78bSDmitry Baryshkov compatible = "qcom,msm8960-saw2-cpu", "qcom,saw2"; 224724ba675SRob Herring reg = <0x02089000 0x1000>, <0x02009000 0x1000>; 225378cc1b3SDmitry Baryshkov 226378cc1b3SDmitry Baryshkov saw0_vreg: regulator { 227378cc1b3SDmitry Baryshkov regulator-min-microvolt = <850000>; 228378cc1b3SDmitry Baryshkov regulator-max-microvolt = <1300000>; 229378cc1b3SDmitry Baryshkov }; 230724ba675SRob Herring }; 231724ba675SRob Herring 23234725e24SDmitry Baryshkov saw1: power-manager@2099000 { 2339f77f78bSDmitry Baryshkov compatible = "qcom,msm8960-saw2-cpu", "qcom,saw2"; 234724ba675SRob Herring reg = <0x02099000 0x1000>, <0x02009000 0x1000>; 235378cc1b3SDmitry Baryshkov 236378cc1b3SDmitry Baryshkov saw1_vreg: regulator { 237378cc1b3SDmitry Baryshkov regulator-min-microvolt = <850000>; 238378cc1b3SDmitry Baryshkov regulator-max-microvolt = <1300000>; 239378cc1b3SDmitry Baryshkov }; 240724ba675SRob Herring }; 241724ba675SRob Herring 242724ba675SRob Herring gsbi5: gsbi@16400000 { 243724ba675SRob Herring compatible = "qcom,gsbi-v1.0.0"; 244724ba675SRob Herring cell-index = <5>; 245724ba675SRob Herring reg = <0x16400000 0x100>; 246724ba675SRob Herring clocks = <&gcc GSBI5_H_CLK>; 247724ba675SRob Herring clock-names = "iface"; 248724ba675SRob Herring #address-cells = <1>; 249724ba675SRob Herring #size-cells = <1>; 250724ba675SRob Herring ranges; 251724ba675SRob Herring 252724ba675SRob Herring syscon-tcsr = <&tcsr>; 253724ba675SRob Herring 254724ba675SRob Herring gsbi5_serial: serial@16440000 { 255724ba675SRob Herring compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm"; 256724ba675SRob Herring reg = <0x16440000 0x1000>, 257724ba675SRob Herring <0x16400000 0x1000>; 258724ba675SRob Herring interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; 259724ba675SRob Herring clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>; 260724ba675SRob Herring clock-names = "core", "iface"; 261724ba675SRob Herring status = "disabled"; 262724ba675SRob Herring }; 263724ba675SRob Herring }; 264724ba675SRob Herring 2655c903b85SDmitry Baryshkov ssbi: ssbi@500000 { 266724ba675SRob Herring compatible = "qcom,ssbi"; 267724ba675SRob Herring reg = <0x500000 0x1000>; 268724ba675SRob Herring qcom,controller-type = "pmic-arbiter"; 269724ba675SRob Herring }; 270724ba675SRob Herring 271724ba675SRob Herring rng@1a500000 { 272724ba675SRob Herring compatible = "qcom,prng"; 273724ba675SRob Herring reg = <0x1a500000 0x200>; 274724ba675SRob Herring clocks = <&gcc PRNG_CLK>; 275724ba675SRob Herring clock-names = "core"; 276724ba675SRob Herring }; 277724ba675SRob Herring 278724ba675SRob Herring sdcc3: mmc@12180000 { 279724ba675SRob Herring compatible = "arm,pl18x", "arm,primecell"; 280724ba675SRob Herring arm,primecell-periphid = <0x00051180>; 281724ba675SRob Herring status = "disabled"; 282724ba675SRob Herring reg = <0x12180000 0x8000>; 283724ba675SRob Herring interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>; 284724ba675SRob Herring clocks = <&gcc SDC3_CLK>, <&gcc SDC3_H_CLK>; 285724ba675SRob Herring clock-names = "mclk", "apb_pclk"; 286724ba675SRob Herring bus-width = <4>; 287724ba675SRob Herring cap-sd-highspeed; 288724ba675SRob Herring cap-mmc-highspeed; 289724ba675SRob Herring max-frequency = <192000000>; 290724ba675SRob Herring no-1-8-v; 291724ba675SRob Herring vmmc-supply = <&vsdcc_fixed>; 292724ba675SRob Herring }; 293724ba675SRob Herring 294724ba675SRob Herring sdcc1: mmc@12400000 { 295724ba675SRob Herring status = "disabled"; 296724ba675SRob Herring compatible = "arm,pl18x", "arm,primecell"; 297724ba675SRob Herring arm,primecell-periphid = <0x00051180>; 298724ba675SRob Herring reg = <0x12400000 0x8000>; 299724ba675SRob Herring interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>; 300724ba675SRob Herring clocks = <&gcc SDC1_CLK>, <&gcc SDC1_H_CLK>; 301724ba675SRob Herring clock-names = "mclk", "apb_pclk"; 302724ba675SRob Herring bus-width = <8>; 303724ba675SRob Herring max-frequency = <96000000>; 304724ba675SRob Herring non-removable; 305724ba675SRob Herring cap-sd-highspeed; 306724ba675SRob Herring cap-mmc-highspeed; 307724ba675SRob Herring vmmc-supply = <&vsdcc_fixed>; 308724ba675SRob Herring }; 309724ba675SRob Herring 310724ba675SRob Herring tcsr: syscon@1a400000 { 311724ba675SRob Herring compatible = "qcom,tcsr-msm8960", "syscon"; 312724ba675SRob Herring reg = <0x1a400000 0x100>; 313724ba675SRob Herring }; 314724ba675SRob Herring 315724ba675SRob Herring gsbi1: gsbi@16000000 { 316724ba675SRob Herring compatible = "qcom,gsbi-v1.0.0"; 317724ba675SRob Herring cell-index = <1>; 318724ba675SRob Herring reg = <0x16000000 0x100>; 319724ba675SRob Herring clocks = <&gcc GSBI1_H_CLK>; 320724ba675SRob Herring clock-names = "iface"; 321724ba675SRob Herring #address-cells = <1>; 322724ba675SRob Herring #size-cells = <1>; 323724ba675SRob Herring ranges; 324724ba675SRob Herring 325724ba675SRob Herring gsbi1_spi: spi@16080000 { 326724ba675SRob Herring compatible = "qcom,spi-qup-v1.1.1"; 327724ba675SRob Herring #address-cells = <1>; 328724ba675SRob Herring #size-cells = <0>; 329724ba675SRob Herring reg = <0x16080000 0x1000>; 330724ba675SRob Herring interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; 331724ba675SRob Herring cs-gpios = <&msmgpio 8 0>; 332724ba675SRob Herring 333724ba675SRob Herring clocks = <&gcc GSBI1_QUP_CLK>, <&gcc GSBI1_H_CLK>; 334724ba675SRob Herring clock-names = "core", "iface"; 335724ba675SRob Herring status = "disabled"; 336724ba675SRob Herring }; 337724ba675SRob Herring }; 338724ba675SRob Herring 339724ba675SRob Herring usb1: usb@12500000 { 340724ba675SRob Herring compatible = "qcom,ci-hdrc"; 341724ba675SRob Herring reg = <0x12500000 0x200>, 342724ba675SRob Herring <0x12500200 0x200>; 343724ba675SRob Herring interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 344724ba675SRob Herring clocks = <&gcc USB_HS1_XCVR_CLK>, <&gcc USB_HS1_H_CLK>; 345724ba675SRob Herring clock-names = "core", "iface"; 346724ba675SRob Herring assigned-clocks = <&gcc USB_HS1_XCVR_CLK>; 347724ba675SRob Herring assigned-clock-rates = <60000000>; 348724ba675SRob Herring resets = <&gcc USB_HS1_RESET>; 349724ba675SRob Herring reset-names = "core"; 350724ba675SRob Herring phy_type = "ulpi"; 351724ba675SRob Herring ahb-burst-config = <0>; 352724ba675SRob Herring phys = <&usb_hs1_phy>; 353724ba675SRob Herring phy-names = "usb-phy"; 354724ba675SRob Herring #reset-cells = <1>; 355724ba675SRob Herring status = "disabled"; 356724ba675SRob Herring 357724ba675SRob Herring ulpi { 358724ba675SRob Herring usb_hs1_phy: phy { 359724ba675SRob Herring compatible = "qcom,usb-hs-phy-msm8960", 360724ba675SRob Herring "qcom,usb-hs-phy"; 361724ba675SRob Herring clocks = <&sleep_clk>, <&cxo_board>; 362724ba675SRob Herring clock-names = "sleep", "ref"; 363724ba675SRob Herring resets = <&usb1 0>; 364724ba675SRob Herring reset-names = "por"; 365724ba675SRob Herring #phy-cells = <0>; 366724ba675SRob Herring }; 367724ba675SRob Herring }; 368724ba675SRob Herring }; 3691cf63136SRudraksha Gupta 3701cf63136SRudraksha Gupta gsbi3: gsbi@16200000 { 3711cf63136SRudraksha Gupta compatible = "qcom,gsbi-v1.0.0"; 3721cf63136SRudraksha Gupta reg = <0x16200000 0x100>; 3731cf63136SRudraksha Gupta ranges; 3741cf63136SRudraksha Gupta cell-index = <3>; 3751cf63136SRudraksha Gupta clocks = <&gcc GSBI3_H_CLK>; 3761cf63136SRudraksha Gupta clock-names = "iface"; 3771cf63136SRudraksha Gupta #address-cells = <1>; 3781cf63136SRudraksha Gupta #size-cells = <1>; 3791cf63136SRudraksha Gupta status = "disabled"; 3801cf63136SRudraksha Gupta 3811cf63136SRudraksha Gupta gsbi3_i2c: i2c@16280000 { 3821cf63136SRudraksha Gupta compatible = "qcom,i2c-qup-v1.1.1"; 3831cf63136SRudraksha Gupta reg = <0x16280000 0x1000>; 3841cf63136SRudraksha Gupta pinctrl-0 = <&i2c3_default_state>; 3851cf63136SRudraksha Gupta pinctrl-1 = <&i2c3_sleep_state>; 3861cf63136SRudraksha Gupta pinctrl-names = "default", "sleep"; 3871cf63136SRudraksha Gupta interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>; 3881cf63136SRudraksha Gupta clocks = <&gcc GSBI3_QUP_CLK>, 3891cf63136SRudraksha Gupta <&gcc GSBI3_H_CLK>; 3901cf63136SRudraksha Gupta clock-names = "core", "iface"; 3911cf63136SRudraksha Gupta #address-cells = <1>; 3921cf63136SRudraksha Gupta #size-cells = <0>; 3931cf63136SRudraksha Gupta status = "disabled"; 394724ba675SRob Herring }; 395724ba675SRob Herring }; 3961cf63136SRudraksha Gupta }; 3971cf63136SRudraksha Gupta}; 3981cf63136SRudraksha Gupta#include "qcom-msm8960-pins.dtsi" 399