cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

qcom-msm8974.dtsi (41420B)


      1// SPDX-License-Identifier: GPL-2.0
      2/dts-v1/;
      3
      4#include <dt-bindings/interconnect/qcom,msm8974.h>
      5#include <dt-bindings/interrupt-controller/arm-gic.h>
      6#include <dt-bindings/clock/qcom,gcc-msm8974.h>
      7#include <dt-bindings/clock/qcom,mmcc-msm8974.h>
      8#include <dt-bindings/clock/qcom,rpmcc.h>
      9#include <dt-bindings/reset/qcom,gcc-msm8974.h>
     10#include <dt-bindings/gpio/gpio.h>
     11
     12/ {
     13	#address-cells = <1>;
     14	#size-cells = <1>;
     15	interrupt-parent = <&intc>;
     16
     17	clocks {
     18		xo_board: xo_board {
     19			compatible = "fixed-clock";
     20			#clock-cells = <0>;
     21			clock-frequency = <19200000>;
     22		};
     23
     24		sleep_clk: sleep_clk {
     25			compatible = "fixed-clock";
     26			#clock-cells = <0>;
     27			clock-frequency = <32768>;
     28		};
     29	};
     30
     31	cpus {
     32		#address-cells = <1>;
     33		#size-cells = <0>;
     34		interrupts = <GIC_PPI 9 0xf04>;
     35
     36		CPU0: cpu@0 {
     37			compatible = "qcom,krait";
     38			enable-method = "qcom,kpss-acc-v2";
     39			device_type = "cpu";
     40			reg = <0>;
     41			next-level-cache = <&L2>;
     42			qcom,acc = <&acc0>;
     43			qcom,saw = <&saw0>;
     44			cpu-idle-states = <&CPU_SPC>;
     45		};
     46
     47		CPU1: cpu@1 {
     48			compatible = "qcom,krait";
     49			enable-method = "qcom,kpss-acc-v2";
     50			device_type = "cpu";
     51			reg = <1>;
     52			next-level-cache = <&L2>;
     53			qcom,acc = <&acc1>;
     54			qcom,saw = <&saw1>;
     55			cpu-idle-states = <&CPU_SPC>;
     56		};
     57
     58		CPU2: cpu@2 {
     59			compatible = "qcom,krait";
     60			enable-method = "qcom,kpss-acc-v2";
     61			device_type = "cpu";
     62			reg = <2>;
     63			next-level-cache = <&L2>;
     64			qcom,acc = <&acc2>;
     65			qcom,saw = <&saw2>;
     66			cpu-idle-states = <&CPU_SPC>;
     67		};
     68
     69		CPU3: cpu@3 {
     70			compatible = "qcom,krait";
     71			enable-method = "qcom,kpss-acc-v2";
     72			device_type = "cpu";
     73			reg = <3>;
     74			next-level-cache = <&L2>;
     75			qcom,acc = <&acc3>;
     76			qcom,saw = <&saw3>;
     77			cpu-idle-states = <&CPU_SPC>;
     78		};
     79
     80		L2: l2-cache {
     81			compatible = "cache";
     82			cache-level = <2>;
     83			qcom,saw = <&saw_l2>;
     84		};
     85
     86		idle-states {
     87			CPU_SPC: spc {
     88				compatible = "qcom,idle-state-spc",
     89						"arm,idle-state";
     90				entry-latency-us = <150>;
     91				exit-latency-us = <200>;
     92				min-residency-us = <2000>;
     93			};
     94		};
     95	};
     96
     97	firmware {
     98		scm {
     99			compatible = "qcom,scm";
    100			clocks = <&gcc GCC_CE1_CLK>, <&gcc GCC_CE1_AXI_CLK>, <&gcc GCC_CE1_AHB_CLK>;
    101			clock-names = "core", "bus", "iface";
    102		};
    103	};
    104
    105	memory {
    106		device_type = "memory";
    107		reg = <0x0 0x0>;
    108	};
    109
    110	pmu {
    111		compatible = "qcom,krait-pmu";
    112		interrupts = <GIC_PPI 7 0xf04>;
    113	};
    114
    115	reserved-memory {
    116		#address-cells = <1>;
    117		#size-cells = <1>;
    118		ranges;
    119
    120		mpss_region: mpss@8000000 {
    121			reg = <0x08000000 0x5100000>;
    122			no-map;
    123		};
    124
    125		mba_region: mba@d100000 {
    126			reg = <0x0d100000 0x100000>;
    127			no-map;
    128		};
    129
    130		wcnss_region: wcnss@d200000 {
    131			reg = <0x0d200000 0xa00000>;
    132			no-map;
    133		};
    134
    135		adsp_region: adsp@dc00000 {
    136			reg = <0x0dc00000 0x1900000>;
    137			no-map;
    138		};
    139
    140		venus_region: memory@f500000 {
    141			reg = <0x0f500000 0x500000>;
    142			no-map;
    143		};
    144
    145		smem_region: smem@fa00000 {
    146			reg = <0xfa00000 0x200000>;
    147			no-map;
    148		};
    149
    150		tz_region: memory@fc00000 {
    151			reg = <0x0fc00000 0x160000>;
    152			no-map;
    153		};
    154
    155		rfsa_mem: memory@fd60000 {
    156			reg = <0x0fd60000 0x20000>;
    157			no-map;
    158		};
    159
    160		rmtfs@fd80000 {
    161			compatible = "qcom,rmtfs-mem";
    162			reg = <0x0fd80000 0x180000>;
    163			no-map;
    164
    165			qcom,client-id = <1>;
    166		};
    167	};
    168
    169	smem {
    170		compatible = "qcom,smem";
    171
    172		memory-region = <&smem_region>;
    173		qcom,rpm-msg-ram = <&rpm_msg_ram>;
    174
    175		hwlocks = <&tcsr_mutex 3>;
    176	};
    177
    178	smp2p-adsp {
    179		compatible = "qcom,smp2p";
    180		qcom,smem = <443>, <429>;
    181
    182		interrupt-parent = <&intc>;
    183		interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
    184
    185		qcom,ipc = <&apcs 8 10>;
    186
    187		qcom,local-pid = <0>;
    188		qcom,remote-pid = <2>;
    189
    190		adsp_smp2p_out: master-kernel {
    191			qcom,entry-name = "master-kernel";
    192			#qcom,smem-state-cells = <1>;
    193		};
    194
    195		adsp_smp2p_in: slave-kernel {
    196			qcom,entry-name = "slave-kernel";
    197
    198			interrupt-controller;
    199			#interrupt-cells = <2>;
    200		};
    201	};
    202
    203	smp2p-modem {
    204		compatible = "qcom,smp2p";
    205		qcom,smem = <435>, <428>;
    206
    207		interrupt-parent = <&intc>;
    208		interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
    209
    210		qcom,ipc = <&apcs 8 14>;
    211
    212		qcom,local-pid = <0>;
    213		qcom,remote-pid = <1>;
    214
    215		modem_smp2p_out: master-kernel {
    216			qcom,entry-name = "master-kernel";
    217			#qcom,smem-state-cells = <1>;
    218		};
    219
    220		modem_smp2p_in: slave-kernel {
    221			qcom,entry-name = "slave-kernel";
    222
    223			interrupt-controller;
    224			#interrupt-cells = <2>;
    225		};
    226	};
    227
    228	smp2p-wcnss {
    229		compatible = "qcom,smp2p";
    230		qcom,smem = <451>, <431>;
    231
    232		interrupt-parent = <&intc>;
    233		interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
    234
    235		qcom,ipc = <&apcs 8 18>;
    236
    237		qcom,local-pid = <0>;
    238		qcom,remote-pid = <4>;
    239
    240		wcnss_smp2p_out: master-kernel {
    241			qcom,entry-name = "master-kernel";
    242
    243			#qcom,smem-state-cells = <1>;
    244		};
    245
    246		wcnss_smp2p_in: slave-kernel {
    247			qcom,entry-name = "slave-kernel";
    248
    249			interrupt-controller;
    250			#interrupt-cells = <2>;
    251		};
    252	};
    253
    254	smsm {
    255		compatible = "qcom,smsm";
    256
    257		#address-cells = <1>;
    258		#size-cells = <0>;
    259
    260		qcom,ipc-1 = <&apcs 8 13>;
    261		qcom,ipc-2 = <&apcs 8 9>;
    262		qcom,ipc-3 = <&apcs 8 19>;
    263
    264		apps_smsm: apps@0 {
    265			reg = <0>;
    266
    267			#qcom,smem-state-cells = <1>;
    268		};
    269
    270		modem_smsm: modem@1 {
    271			reg = <1>;
    272			interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
    273
    274			interrupt-controller;
    275			#interrupt-cells = <2>;
    276		};
    277
    278		adsp_smsm: adsp@2 {
    279			reg = <2>;
    280			interrupts = <GIC_SPI 157 IRQ_TYPE_EDGE_RISING>;
    281
    282			interrupt-controller;
    283			#interrupt-cells = <2>;
    284		};
    285
    286		wcnss_smsm: wcnss@7 {
    287			reg = <7>;
    288			interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>;
    289
    290			interrupt-controller;
    291			#interrupt-cells = <2>;
    292		};
    293	};
    294
    295	smd {
    296		compatible = "qcom,smd";
    297
    298		rpm {
    299			interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
    300			qcom,ipc = <&apcs 8 0>;
    301			qcom,smd-edge = <15>;
    302
    303			rpm_requests: rpm_requests {
    304				compatible = "qcom,rpm-msm8974";
    305				qcom,smd-channels = "rpm_requests";
    306
    307				rpmcc: clock-controller {
    308					compatible = "qcom,rpmcc-msm8974", "qcom,rpmcc";
    309					#clock-cells = <1>;
    310				};
    311			};
    312		};
    313	};
    314
    315	soc: soc {
    316		#address-cells = <1>;
    317		#size-cells = <1>;
    318		ranges;
    319		compatible = "simple-bus";
    320
    321		intc: interrupt-controller@f9000000 {
    322			compatible = "qcom,msm-qgic2";
    323			interrupt-controller;
    324			#interrupt-cells = <3>;
    325			reg = <0xf9000000 0x1000>,
    326			      <0xf9002000 0x1000>;
    327		};
    328
    329		apcs: syscon@f9011000 {
    330			compatible = "syscon";
    331			reg = <0xf9011000 0x1000>;
    332		};
    333
    334		timer@f9020000 {
    335			#address-cells = <1>;
    336			#size-cells = <1>;
    337			ranges;
    338			compatible = "arm,armv7-timer-mem";
    339			reg = <0xf9020000 0x1000>;
    340			clock-frequency = <19200000>;
    341
    342			frame@f9021000 {
    343				frame-number = <0>;
    344				interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
    345					     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
    346				reg = <0xf9021000 0x1000>,
    347				      <0xf9022000 0x1000>;
    348			};
    349
    350			frame@f9023000 {
    351				frame-number = <1>;
    352				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
    353				reg = <0xf9023000 0x1000>;
    354				status = "disabled";
    355			};
    356
    357			frame@f9024000 {
    358				frame-number = <2>;
    359				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
    360				reg = <0xf9024000 0x1000>;
    361				status = "disabled";
    362			};
    363
    364			frame@f9025000 {
    365				frame-number = <3>;
    366				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
    367				reg = <0xf9025000 0x1000>;
    368				status = "disabled";
    369			};
    370
    371			frame@f9026000 {
    372				frame-number = <4>;
    373				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
    374				reg = <0xf9026000 0x1000>;
    375				status = "disabled";
    376			};
    377
    378			frame@f9027000 {
    379				frame-number = <5>;
    380				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
    381				reg = <0xf9027000 0x1000>;
    382				status = "disabled";
    383			};
    384
    385			frame@f9028000 {
    386				frame-number = <6>;
    387				interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
    388				reg = <0xf9028000 0x1000>;
    389				status = "disabled";
    390			};
    391		};
    392
    393		saw0: power-controller@f9089000 {
    394			compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
    395			reg = <0xf9089000 0x1000>, <0xf9009000 0x1000>;
    396		};
    397
    398		saw1: power-controller@f9099000 {
    399			compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
    400			reg = <0xf9099000 0x1000>, <0xf9009000 0x1000>;
    401		};
    402
    403		saw2: power-controller@f90a9000 {
    404			compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
    405			reg = <0xf90a9000 0x1000>, <0xf9009000 0x1000>;
    406		};
    407
    408		saw3: power-controller@f90b9000 {
    409			compatible = "qcom,msm8974-saw2-v2.1-cpu", "qcom,saw2";
    410			reg = <0xf90b9000 0x1000>, <0xf9009000 0x1000>;
    411		};
    412
    413		saw_l2: power-controller@f9012000 {
    414			compatible = "qcom,saw2";
    415			reg = <0xf9012000 0x1000>;
    416			regulator;
    417		};
    418
    419		acc0: clock-controller@f9088000 {
    420			compatible = "qcom,kpss-acc-v2";
    421			reg = <0xf9088000 0x1000>, <0xf9008000 0x1000>;
    422		};
    423
    424		acc1: clock-controller@f9098000 {
    425			compatible = "qcom,kpss-acc-v2";
    426			reg = <0xf9098000 0x1000>, <0xf9008000 0x1000>;
    427		};
    428
    429		acc2: clock-controller@f90a8000 {
    430			compatible = "qcom,kpss-acc-v2";
    431			reg = <0xf90a8000 0x1000>, <0xf9008000 0x1000>;
    432		};
    433
    434		acc3: clock-controller@f90b8000 {
    435			compatible = "qcom,kpss-acc-v2";
    436			reg = <0xf90b8000 0x1000>, <0xf9008000 0x1000>;
    437		};
    438
    439		sdhc_1: sdhci@f9824900 {
    440			compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
    441			reg = <0xf9824900 0x11c>, <0xf9824000 0x800>;
    442			reg-names = "hc_mem", "core_mem";
    443			interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
    444				     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
    445			interrupt-names = "hc_irq", "pwr_irq";
    446			clocks = <&gcc GCC_SDCC1_APPS_CLK>,
    447				 <&gcc GCC_SDCC1_AHB_CLK>,
    448				 <&xo_board>;
    449			clock-names = "core", "iface", "xo";
    450			bus-width = <8>;
    451			non-removable;
    452
    453			status = "disabled";
    454		};
    455
    456		sdhc_3: sdhci@f9864900 {
    457			compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
    458			reg = <0xf9864900 0x11c>, <0xf9864000 0x800>;
    459			reg-names = "hc_mem", "core_mem";
    460			interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>,
    461				     <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
    462			interrupt-names = "hc_irq", "pwr_irq";
    463			clocks = <&gcc GCC_SDCC3_APPS_CLK>,
    464				 <&gcc GCC_SDCC3_AHB_CLK>,
    465				 <&xo_board>;
    466			clock-names = "core", "iface", "xo";
    467			bus-width = <4>;
    468
    469			#address-cells = <1>;
    470			#size-cells = <0>;
    471
    472			status = "disabled";
    473		};
    474
    475		sdhc_2: sdhci@f98a4900 {
    476			compatible = "qcom,msm8974-sdhci", "qcom,sdhci-msm-v4";
    477			reg = <0xf98a4900 0x11c>, <0xf98a4000 0x800>;
    478			reg-names = "hc_mem", "core_mem";
    479			interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
    480				     <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
    481			interrupt-names = "hc_irq", "pwr_irq";
    482			clocks = <&gcc GCC_SDCC2_APPS_CLK>,
    483				 <&gcc GCC_SDCC2_AHB_CLK>,
    484				 <&xo_board>;
    485			clock-names = "core", "iface", "xo";
    486			bus-width = <4>;
    487
    488			#address-cells = <1>;
    489			#size-cells = <0>;
    490
    491			status = "disabled";
    492		};
    493
    494		blsp1_uart1: serial@f991d000 {
    495			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
    496			reg = <0xf991d000 0x1000>;
    497			interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
    498			clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
    499			clock-names = "core", "iface";
    500			status = "disabled";
    501		};
    502
    503		blsp1_uart2: serial@f991e000 {
    504			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
    505			reg = <0xf991e000 0x1000>;
    506			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
    507			clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
    508			clock-names = "core", "iface";
    509			status = "disabled";
    510		};
    511
    512		blsp1_i2c1: i2c@f9923000 {
    513			status = "disabled";
    514			compatible = "qcom,i2c-qup-v2.1.1";
    515			reg = <0xf9923000 0x1000>;
    516			interrupts = <0 95 IRQ_TYPE_LEVEL_HIGH>;
    517			clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
    518			clock-names = "core", "iface";
    519			pinctrl-names = "default", "sleep";
    520			pinctrl-0 = <&blsp1_i2c1_default>;
    521			pinctrl-1 = <&blsp1_i2c1_sleep>;
    522			#address-cells = <1>;
    523			#size-cells = <0>;
    524		};
    525
    526		blsp1_i2c2: i2c@f9924000 {
    527			status = "disabled";
    528			compatible = "qcom,i2c-qup-v2.1.1";
    529			reg = <0xf9924000 0x1000>;
    530			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
    531			clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
    532			clock-names = "core", "iface";
    533			pinctrl-names = "default", "sleep";
    534			pinctrl-0 = <&blsp1_i2c2_default>;
    535			pinctrl-1 = <&blsp1_i2c2_sleep>;
    536			#address-cells = <1>;
    537			#size-cells = <0>;
    538		};
    539
    540		blsp1_i2c3: i2c@f9925000 {
    541			status = "disabled";
    542			compatible = "qcom,i2c-qup-v2.1.1";
    543			reg = <0xf9925000 0x1000>;
    544			interrupts = <0 97 IRQ_TYPE_LEVEL_HIGH>;
    545			clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
    546			clock-names = "core", "iface";
    547			pinctrl-names = "default", "sleep";
    548			pinctrl-0 = <&blsp1_i2c3_default>;
    549			pinctrl-1 = <&blsp1_i2c3_sleep>;
    550			#address-cells = <1>;
    551			#size-cells = <0>;
    552		};
    553
    554		blsp1_i2c6: i2c@f9928000 {
    555			status = "disabled";
    556			compatible = "qcom,i2c-qup-v2.1.1";
    557			reg = <0xf9928000 0x1000>;
    558			interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
    559			clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
    560			clock-names = "core", "iface";
    561			pinctrl-names = "default", "sleep";
    562			pinctrl-0 = <&blsp1_i2c6_default>;
    563			pinctrl-1 = <&blsp1_i2c6_sleep>;
    564			#address-cells = <1>;
    565			#size-cells = <0>;
    566		};
    567
    568		blsp2_dma: dma-controller@f9944000 {
    569			compatible = "qcom,bam-v1.4.0";
    570			reg = <0xf9944000 0x19000>;
    571			interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
    572			clocks = <&gcc GCC_BLSP2_AHB_CLK>;
    573			clock-names = "bam_clk";
    574			#dma-cells = <1>;
    575			qcom,ee = <0>;
    576		};
    577
    578		blsp2_uart1: serial@f995d000 {
    579			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
    580			reg = <0xf995d000 0x1000>;
    581			interrupts = <GIC_SPI 113 IRQ_TYPE_NONE>;
    582			clocks = <&gcc GCC_BLSP2_UART1_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
    583			clock-names = "core", "iface";
    584			status = "disabled";
    585		};
    586
    587		blsp2_uart2: serial@f995e000 {
    588			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
    589			reg = <0xf995e000 0x1000>;
    590			interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
    591			clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
    592			clock-names = "core", "iface";
    593			status = "disabled";
    594		};
    595
    596		blsp2_uart4: serial@f9960000 {
    597			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
    598			reg = <0xf9960000 0x1000>;
    599			interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
    600			clocks = <&gcc GCC_BLSP2_UART4_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
    601			clock-names = "core", "iface";
    602			status = "disabled";
    603		};
    604
    605		blsp2_i2c2: i2c@f9964000 {
    606			status = "disabled";
    607			compatible = "qcom,i2c-qup-v2.1.1";
    608			reg = <0xf9964000 0x1000>;
    609			interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
    610			clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
    611			clock-names = "core", "iface";
    612			pinctrl-names = "default", "sleep";
    613			pinctrl-0 = <&blsp2_i2c2_default>;
    614			pinctrl-1 = <&blsp2_i2c2_sleep>;
    615			#address-cells = <1>;
    616			#size-cells = <0>;
    617		};
    618
    619		blsp2_i2c5: i2c@f9967000 {
    620			status = "disabled";
    621			compatible = "qcom,i2c-qup-v2.1.1";
    622			reg = <0xf9967000 0x1000>;
    623			interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
    624			clocks = <&gcc GCC_BLSP2_QUP5_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
    625			clock-names = "core", "iface";
    626			dmas = <&blsp2_dma 20>, <&blsp2_dma 21>;
    627			dma-names = "tx", "rx";
    628			pinctrl-names = "default", "sleep";
    629			pinctrl-0 = <&blsp2_i2c5_default>;
    630			pinctrl-1 = <&blsp2_i2c5_sleep>;
    631			#address-cells = <1>;
    632			#size-cells = <0>;
    633		};
    634
    635		blsp2_i2c6: i2c@f9968000 {
    636			status = "disabled";
    637			compatible = "qcom,i2c-qup-v2.1.1";
    638			reg = <0xf9968000 0x1000>;
    639			interrupts = <0 106 IRQ_TYPE_LEVEL_HIGH>;
    640			clocks = <&gcc GCC_BLSP2_QUP6_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
    641			clock-names = "core", "iface";
    642			#address-cells = <1>;
    643			#size-cells = <0>;
    644		};
    645
    646		otg: usb@f9a55000 {
    647			compatible = "qcom,ci-hdrc";
    648			reg = <0xf9a55000 0x200>,
    649			      <0xf9a55200 0x200>;
    650			interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>;
    651			clocks = <&gcc GCC_USB_HS_AHB_CLK>,
    652				 <&gcc GCC_USB_HS_SYSTEM_CLK>;
    653			clock-names = "iface", "core";
    654			assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
    655			assigned-clock-rates = <75000000>;
    656			resets = <&gcc GCC_USB_HS_BCR>;
    657			reset-names = "core";
    658			phy_type = "ulpi";
    659			dr_mode = "otg";
    660			ahb-burst-config = <0>;
    661			phy-names = "usb-phy";
    662			status = "disabled";
    663			#reset-cells = <1>;
    664
    665			ulpi {
    666				usb_hs1_phy: phy@a {
    667					compatible = "qcom,usb-hs-phy-msm8974",
    668						     "qcom,usb-hs-phy";
    669					#phy-cells = <0>;
    670					clocks = <&xo_board>, <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
    671					clock-names = "ref", "sleep";
    672					resets = <&gcc GCC_USB2A_PHY_BCR>, <&otg 0>;
    673					reset-names = "phy", "por";
    674					status = "disabled";
    675				};
    676
    677				usb_hs2_phy: phy@b {
    678					compatible = "qcom,usb-hs-phy-msm8974",
    679						     "qcom,usb-hs-phy";
    680					#phy-cells = <0>;
    681					clocks = <&xo_board>, <&gcc GCC_USB2B_PHY_SLEEP_CLK>;
    682					clock-names = "ref", "sleep";
    683					resets = <&gcc GCC_USB2B_PHY_BCR>, <&otg 1>;
    684					reset-names = "phy", "por";
    685					status = "disabled";
    686				};
    687			};
    688		};
    689
    690		rng@f9bff000 {
    691			compatible = "qcom,prng";
    692			reg = <0xf9bff000 0x200>;
    693			clocks = <&gcc GCC_PRNG_AHB_CLK>;
    694			clock-names = "core";
    695		};
    696
    697		pronto: remoteproc@fb21b000 {
    698			compatible = "qcom,pronto-v2-pil", "qcom,pronto";
    699			reg = <0xfb204000 0x2000>, <0xfb202000 0x1000>, <0xfb21b000 0x3000>;
    700			reg-names = "ccu", "dxe", "pmu";
    701
    702			memory-region = <&wcnss_region>;
    703
    704			interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
    705					      <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
    706					      <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
    707					      <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
    708					      <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
    709			interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
    710
    711			qcom,smem-states = <&wcnss_smp2p_out 0>;
    712			qcom,smem-state-names = "stop";
    713
    714			status = "disabled";
    715
    716			iris {
    717				compatible = "qcom,wcn3680";
    718
    719				clocks = <&rpmcc RPM_SMD_CXO_A2>;
    720				clock-names = "xo";
    721			};
    722
    723			smd-edge {
    724				interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
    725
    726				qcom,ipc = <&apcs 8 17>;
    727				qcom,smd-edge = <6>;
    728
    729				wcnss {
    730					compatible = "qcom,wcnss";
    731					qcom,smd-channels = "WCNSS_CTRL";
    732					status = "disabled";
    733
    734					qcom,mmio = <&pronto>;
    735
    736					bt {
    737						compatible = "qcom,wcnss-bt";
    738					};
    739
    740					wifi {
    741						compatible = "qcom,wcnss-wlan";
    742
    743						interrupts = <GIC_SPI 145 IRQ_TYPE_EDGE_RISING>,
    744							     <GIC_SPI 146 IRQ_TYPE_EDGE_RISING>;
    745						interrupt-names = "tx", "rx";
    746
    747						qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
    748						qcom,smem-state-names = "tx-enable",
    749									"tx-rings-empty";
    750					};
    751				};
    752			};
    753		};
    754
    755		etf@fc307000 {
    756			compatible = "arm,coresight-tmc", "arm,primecell";
    757			reg = <0xfc307000 0x1000>;
    758
    759			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
    760			clock-names = "apb_pclk", "atclk";
    761
    762			out-ports {
    763				port {
    764					etf_out: endpoint {
    765						remote-endpoint = <&replicator_in>;
    766					};
    767				};
    768			};
    769
    770			in-ports {
    771				port {
    772					etf_in: endpoint {
    773						remote-endpoint = <&merger_out>;
    774					};
    775				};
    776			};
    777		};
    778
    779		tpiu@fc318000 {
    780			compatible = "arm,coresight-tpiu", "arm,primecell";
    781			reg = <0xfc318000 0x1000>;
    782
    783			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
    784			clock-names = "apb_pclk", "atclk";
    785
    786			in-ports {
    787				port {
    788					tpiu_in: endpoint {
    789						remote-endpoint = <&replicator_out1>;
    790					};
    791				 };
    792			};
    793		};
    794
    795		funnel@fc31a000 {
    796			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
    797			reg = <0xfc31a000 0x1000>;
    798
    799			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
    800			clock-names = "apb_pclk", "atclk";
    801
    802			in-ports {
    803				#address-cells = <1>;
    804				#size-cells = <0>;
    805
    806				/*
    807				 * Not described input ports:
    808				 * 0 - not-connected
    809				 * 1 - connected trought funnel to Multimedia CPU
    810				 * 2 - connected to Wireless CPU
    811				 * 3 - not-connected
    812				 * 4 - not-connected
    813				 * 6 - not-connected
    814				 * 7 - connected to STM
    815				 */
    816				port@5 {
    817					reg = <5>;
    818					funnel1_in5: endpoint {
    819						remote-endpoint = <&kpss_out>;
    820					};
    821				};
    822			};
    823
    824			out-ports {
    825				port {
    826					funnel1_out: endpoint {
    827						remote-endpoint = <&merger_in1>;
    828					};
    829				};
    830			};
    831		};
    832
    833		funnel@fc31b000 {
    834			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
    835			reg = <0xfc31b000 0x1000>;
    836
    837			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
    838			clock-names = "apb_pclk", "atclk";
    839
    840			in-ports {
    841				#address-cells = <1>;
    842				#size-cells = <0>;
    843
    844				/*
    845				 * Not described input ports:
    846				 * 0 - connected trought funnel to Audio, Modem and
    847				 *     Resource and Power Manager CPU's
    848				 * 2...7 - not-connected
    849				 */
    850				port@1 {
    851					reg = <1>;
    852					merger_in1: endpoint {
    853						remote-endpoint = <&funnel1_out>;
    854					};
    855				};
    856			};
    857
    858			out-ports {
    859				port {
    860					merger_out: endpoint {
    861						remote-endpoint = <&etf_in>;
    862					};
    863				};
    864			};
    865		};
    866
    867		replicator@fc31c000 {
    868			compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
    869			reg = <0xfc31c000 0x1000>;
    870
    871			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
    872			clock-names = "apb_pclk", "atclk";
    873
    874			out-ports {
    875				#address-cells = <1>;
    876				#size-cells = <0>;
    877
    878				port@0 {
    879					reg = <0>;
    880					replicator_out0: endpoint {
    881						remote-endpoint = <&etr_in>;
    882					};
    883				};
    884				port@1 {
    885					reg = <1>;
    886					replicator_out1: endpoint {
    887						remote-endpoint = <&tpiu_in>;
    888					};
    889				};
    890			};
    891
    892			in-ports {
    893				port {
    894					replicator_in: endpoint {
    895						remote-endpoint = <&etf_out>;
    896					};
    897				};
    898			};
    899		};
    900
    901		etr@fc322000 {
    902			compatible = "arm,coresight-tmc", "arm,primecell";
    903			reg = <0xfc322000 0x1000>;
    904
    905			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
    906			clock-names = "apb_pclk", "atclk";
    907
    908			in-ports {
    909				port {
    910					etr_in: endpoint {
    911						remote-endpoint = <&replicator_out0>;
    912					};
    913				};
    914			};
    915		};
    916
    917		etm@fc33c000 {
    918			compatible = "arm,coresight-etm4x", "arm,primecell";
    919			reg = <0xfc33c000 0x1000>;
    920
    921			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
    922			clock-names = "apb_pclk", "atclk";
    923
    924			cpu = <&CPU0>;
    925
    926			out-ports {
    927				port {
    928					etm0_out: endpoint {
    929						remote-endpoint = <&kpss_in0>;
    930					};
    931				};
    932			};
    933		};
    934
    935		etm@fc33d000 {
    936			compatible = "arm,coresight-etm4x", "arm,primecell";
    937			reg = <0xfc33d000 0x1000>;
    938
    939			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
    940			clock-names = "apb_pclk", "atclk";
    941
    942			cpu = <&CPU1>;
    943
    944			out-ports {
    945				port {
    946					etm1_out: endpoint {
    947						remote-endpoint = <&kpss_in1>;
    948					};
    949				};
    950			};
    951		};
    952
    953		etm@fc33e000 {
    954			compatible = "arm,coresight-etm4x", "arm,primecell";
    955			reg = <0xfc33e000 0x1000>;
    956
    957			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
    958			clock-names = "apb_pclk", "atclk";
    959
    960			cpu = <&CPU2>;
    961
    962			out-ports {
    963				port {
    964					etm2_out: endpoint {
    965						remote-endpoint = <&kpss_in2>;
    966					};
    967				};
    968			};
    969		};
    970
    971		etm@fc33f000 {
    972			compatible = "arm,coresight-etm4x", "arm,primecell";
    973			reg = <0xfc33f000 0x1000>;
    974
    975			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
    976			clock-names = "apb_pclk", "atclk";
    977
    978			cpu = <&CPU3>;
    979
    980			out-ports {
    981				port {
    982					etm3_out: endpoint {
    983						remote-endpoint = <&kpss_in3>;
    984					};
    985				};
    986			};
    987		};
    988
    989		/* KPSS funnel, only 4 inputs are used */
    990		funnel@fc345000 {
    991			compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
    992			reg = <0xfc345000 0x1000>;
    993
    994			clocks = <&rpmcc RPM_SMD_QDSS_CLK>, <&rpmcc RPM_SMD_QDSS_A_CLK>;
    995			clock-names = "apb_pclk", "atclk";
    996
    997			in-ports {
    998				#address-cells = <1>;
    999				#size-cells = <0>;
   1000
   1001				port@0 {
   1002					reg = <0>;
   1003					kpss_in0: endpoint {
   1004						remote-endpoint = <&etm0_out>;
   1005					};
   1006				};
   1007				port@1 {
   1008					reg = <1>;
   1009					kpss_in1: endpoint {
   1010						remote-endpoint = <&etm1_out>;
   1011					};
   1012				};
   1013				port@2 {
   1014					reg = <2>;
   1015					kpss_in2: endpoint {
   1016						remote-endpoint = <&etm2_out>;
   1017					};
   1018				};
   1019				port@3 {
   1020					reg = <3>;
   1021					kpss_in3: endpoint {
   1022						remote-endpoint = <&etm3_out>;
   1023					};
   1024				};
   1025			};
   1026
   1027			out-ports {
   1028				port {
   1029					kpss_out: endpoint {
   1030						remote-endpoint = <&funnel1_in5>;
   1031					};
   1032				};
   1033			};
   1034		};
   1035
   1036		gcc: clock-controller@fc400000 {
   1037			compatible = "qcom,gcc-msm8974";
   1038			#clock-cells = <1>;
   1039			#reset-cells = <1>;
   1040			#power-domain-cells = <1>;
   1041			reg = <0xfc400000 0x4000>;
   1042		};
   1043
   1044		rpm_msg_ram: memory@fc428000 {
   1045			compatible = "qcom,rpm-msg-ram";
   1046			reg = <0xfc428000 0x4000>;
   1047		};
   1048
   1049		bimc: interconnect@fc380000 {
   1050			reg = <0xfc380000 0x6a000>;
   1051			compatible = "qcom,msm8974-bimc";
   1052			#interconnect-cells = <1>;
   1053			clock-names = "bus", "bus_a";
   1054			clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
   1055			         <&rpmcc RPM_SMD_BIMC_A_CLK>;
   1056		};
   1057
   1058		snoc: interconnect@fc460000 {
   1059			reg = <0xfc460000 0x4000>;
   1060			compatible = "qcom,msm8974-snoc";
   1061			#interconnect-cells = <1>;
   1062			clock-names = "bus", "bus_a";
   1063			clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
   1064			         <&rpmcc RPM_SMD_SNOC_A_CLK>;
   1065		};
   1066
   1067		pnoc: interconnect@fc468000 {
   1068			reg = <0xfc468000 0x4000>;
   1069			compatible = "qcom,msm8974-pnoc";
   1070			#interconnect-cells = <1>;
   1071			clock-names = "bus", "bus_a";
   1072			clocks = <&rpmcc RPM_SMD_PNOC_CLK>,
   1073			         <&rpmcc RPM_SMD_PNOC_A_CLK>;
   1074		};
   1075
   1076		ocmemnoc: interconnect@fc470000 {
   1077			reg = <0xfc470000 0x4000>;
   1078			compatible = "qcom,msm8974-ocmemnoc";
   1079			#interconnect-cells = <1>;
   1080			clock-names = "bus", "bus_a";
   1081			clocks = <&rpmcc RPM_SMD_OCMEMGX_CLK>,
   1082			         <&rpmcc RPM_SMD_OCMEMGX_A_CLK>;
   1083		};
   1084
   1085		mmssnoc: interconnect@fc478000 {
   1086			reg = <0xfc478000 0x4000>;
   1087			compatible = "qcom,msm8974-mmssnoc";
   1088			#interconnect-cells = <1>;
   1089			clock-names = "bus", "bus_a";
   1090			clocks = <&mmcc MMSS_S0_AXI_CLK>,
   1091			         <&mmcc MMSS_S0_AXI_CLK>;
   1092		};
   1093
   1094		cnoc: interconnect@fc480000 {
   1095			reg = <0xfc480000 0x4000>;
   1096			compatible = "qcom,msm8974-cnoc";
   1097			#interconnect-cells = <1>;
   1098			clock-names = "bus", "bus_a";
   1099			clocks = <&rpmcc RPM_SMD_CNOC_CLK>,
   1100			         <&rpmcc RPM_SMD_CNOC_A_CLK>;
   1101		};
   1102
   1103		tsens: thermal-sensor@fc4a9000 {
   1104			compatible = "qcom,msm8974-tsens";
   1105			reg = <0xfc4a9000 0x1000>, /* TM */
   1106			      <0xfc4a8000 0x1000>; /* SROT */
   1107			nvmem-cells = <&tsens_calib>, <&tsens_backup>;
   1108			nvmem-cell-names = "calib", "calib_backup";
   1109			#qcom,sensors = <11>;
   1110			interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
   1111			interrupt-names = "uplow";
   1112			#thermal-sensor-cells = <1>;
   1113		};
   1114
   1115		restart@fc4ab000 {
   1116			compatible = "qcom,pshold";
   1117			reg = <0xfc4ab000 0x4>;
   1118		};
   1119
   1120		qfprom: qfprom@fc4bc000 {
   1121			#address-cells = <1>;
   1122			#size-cells = <1>;
   1123			compatible = "qcom,qfprom";
   1124			reg = <0xfc4bc000 0x1000>;
   1125			tsens_calib: calib@d0 {
   1126				reg = <0xd0 0x18>;
   1127			};
   1128			tsens_backup: backup@440 {
   1129				reg = <0x440 0x10>;
   1130			};
   1131		};
   1132
   1133		spmi_bus: spmi@fc4cf000 {
   1134			compatible = "qcom,spmi-pmic-arb";
   1135			reg-names = "core", "intr", "cnfg";
   1136			reg = <0xfc4cf000 0x1000>,
   1137			      <0xfc4cb000 0x1000>,
   1138			      <0xfc4ca000 0x1000>;
   1139			interrupt-names = "periph_irq";
   1140			interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
   1141			qcom,ee = <0>;
   1142			qcom,channel = <0>;
   1143			#address-cells = <2>;
   1144			#size-cells = <0>;
   1145			interrupt-controller;
   1146			#interrupt-cells = <4>;
   1147		};
   1148
   1149		remoteproc_mss: remoteproc@fc880000 {
   1150			compatible = "qcom,msm8974-mss-pil";
   1151			reg = <0xfc880000 0x100>, <0xfc820000 0x020>;
   1152			reg-names = "qdsp6", "rmb";
   1153
   1154			interrupts-extended = <&intc GIC_SPI 24 IRQ_TYPE_EDGE_RISING>,
   1155					      <&modem_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
   1156					      <&modem_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
   1157					      <&modem_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
   1158					      <&modem_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
   1159			interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
   1160
   1161			clocks = <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
   1162				 <&gcc GCC_MSS_CFG_AHB_CLK>,
   1163				 <&gcc GCC_BOOT_ROM_AHB_CLK>,
   1164				 <&xo_board>;
   1165			clock-names = "iface", "bus", "mem", "xo";
   1166
   1167			resets = <&gcc GCC_MSS_RESTART>;
   1168			reset-names = "mss_restart";
   1169
   1170			qcom,halt-regs = <&tcsr_mutex_block 0x1180 0x1200 0x1280>;
   1171
   1172			qcom,smem-states = <&modem_smp2p_out 0>;
   1173			qcom,smem-state-names = "stop";
   1174
   1175			mba {
   1176				memory-region = <&mba_region>;
   1177			};
   1178
   1179			mpss {
   1180				memory-region = <&mpss_region>;
   1181			};
   1182
   1183			smd-edge {
   1184				interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
   1185
   1186				qcom,ipc = <&apcs 8 12>;
   1187				qcom,smd-edge = <0>;
   1188
   1189				label = "modem";
   1190			};
   1191		};
   1192
   1193		tcsr_mutex_block: syscon@fd484000 {
   1194			compatible = "syscon";
   1195			reg = <0xfd484000 0x2000>;
   1196		};
   1197
   1198		tcsr: syscon@fd4a0000 {
   1199			compatible = "syscon";
   1200			reg = <0xfd4a0000 0x10000>;
   1201		};
   1202
   1203		tlmm: pinctrl@fd510000 {
   1204			compatible = "qcom,msm8974-pinctrl";
   1205			reg = <0xfd510000 0x4000>;
   1206			gpio-controller;
   1207			gpio-ranges = <&tlmm 0 0 146>;
   1208			#gpio-cells = <2>;
   1209			interrupt-controller;
   1210			#interrupt-cells = <2>;
   1211			interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
   1212
   1213			sdc1_off: sdc1-off {
   1214				clk {
   1215					pins = "sdc1_clk";
   1216					bias-disable;
   1217					drive-strength = <2>;
   1218				};
   1219
   1220				cmd {
   1221					pins = "sdc1_cmd";
   1222					bias-pull-up;
   1223					drive-strength = <2>;
   1224				};
   1225
   1226				data {
   1227					pins = "sdc1_data";
   1228					bias-pull-up;
   1229					drive-strength = <2>;
   1230				};
   1231			};
   1232
   1233			sdc2_off: sdc2-off {
   1234				clk {
   1235					pins = "sdc2_clk";
   1236					bias-disable;
   1237					drive-strength = <2>;
   1238				};
   1239
   1240				cmd {
   1241					pins = "sdc2_cmd";
   1242					bias-pull-up;
   1243					drive-strength = <2>;
   1244				};
   1245
   1246				data {
   1247					pins = "sdc2_data";
   1248					bias-pull-up;
   1249					drive-strength = <2>;
   1250				};
   1251
   1252				cd {
   1253					pins = "gpio54";
   1254					bias-disable;
   1255					drive-strength = <2>;
   1256				};
   1257			};
   1258
   1259			blsp1_uart2_active: blsp1-uart2-active {
   1260				rx {
   1261					pins = "gpio5";
   1262					function = "blsp_uart2";
   1263					drive-strength = <2>;
   1264					bias-pull-up;
   1265				};
   1266
   1267				tx {
   1268					pins = "gpio4";
   1269					function = "blsp_uart2";
   1270					drive-strength = <4>;
   1271					bias-disable;
   1272				};
   1273			};
   1274
   1275			blsp2_uart1_active: blsp2-uart1-active {
   1276				tx-rts {
   1277					pins = "gpio41", "gpio44";
   1278					function = "blsp_uart7";
   1279					drive-strength = <2>;
   1280					bias-disable;
   1281				};
   1282
   1283				rx-cts {
   1284					pins = "gpio42", "gpio43";
   1285					function = "blsp_uart7";
   1286					drive-strength = <2>;
   1287					bias-pull-up;
   1288				};
   1289			};
   1290
   1291			blsp2_uart1_sleep: blsp2-uart1-sleep {
   1292				pins = "gpio41", "gpio42", "gpio43", "gpio44";
   1293				function = "gpio";
   1294				drive-strength = <2>;
   1295				bias-pull-down;
   1296			};
   1297
   1298			blsp2_uart4_active: blsp2-uart4-active {
   1299				tx-rts {
   1300					pins = "gpio53", "gpio56";
   1301					function = "blsp_uart10";
   1302					drive-strength = <2>;
   1303					bias-disable;
   1304				};
   1305
   1306				rx-cts {
   1307					pins = "gpio54", "gpio55";
   1308					function = "blsp_uart10";
   1309					drive-strength = <2>;
   1310					bias-pull-up;
   1311				};
   1312			};
   1313
   1314			blsp1_i2c1_default: blsp1-i2c1-default {
   1315				pins = "gpio2", "gpio3";
   1316				function = "blsp_i2c1";
   1317				drive-strength = <2>;
   1318				bias-disable;
   1319			};
   1320
   1321			blsp1_i2c1_sleep: blsp1-i2c1-sleep {
   1322				pins = "gpio2", "gpio3";
   1323				function = "blsp_i2c1";
   1324				drive-strength = <2>;
   1325				bias-pull-up;
   1326			};
   1327
   1328			blsp1_i2c2_default: blsp1-i2c2-default {
   1329				pins = "gpio6", "gpio7";
   1330				function = "blsp_i2c2";
   1331				drive-strength = <2>;
   1332				bias-disable;
   1333			};
   1334
   1335			blsp1_i2c2_sleep: blsp1-i2c2-sleep {
   1336				pins = "gpio6", "gpio7";
   1337				function = "blsp_i2c2";
   1338				drive-strength = <2>;
   1339				bias-pull-up;
   1340			};
   1341
   1342			blsp1_i2c3_default: blsp1-i2c3-default {
   1343				pins = "gpio10", "gpio11";
   1344				function = "blsp_i2c3";
   1345				drive-strength = <2>;
   1346				bias-disable;
   1347			};
   1348
   1349			blsp1_i2c3_sleep: blsp1-i2c3-sleep {
   1350				pins = "gpio10", "gpio11";
   1351				function = "blsp_i2c3";
   1352				drive-strength = <2>;
   1353				bias-pull-up;
   1354			};
   1355
   1356			/* BLSP1_I2C4 info is missing */
   1357
   1358			/* BLSP1_I2C5 info is missing */
   1359
   1360			blsp1_i2c6_default: blsp1-i2c6-default {
   1361				pins = "gpio29", "gpio30";
   1362				function = "blsp_i2c6";
   1363				drive-strength = <2>;
   1364				bias-disable;
   1365			};
   1366
   1367			blsp1_i2c6_sleep: blsp1-i2c6-sleep {
   1368				pins = "gpio29", "gpio30";
   1369				function = "blsp_i2c6";
   1370				drive-strength = <2>;
   1371				bias-pull-up;
   1372			};
   1373			/* 6 interfaces per QUP, BLSP2 indexes are numbered (n)+6 */
   1374
   1375			/* BLSP2_I2C1 info is missing */
   1376
   1377			blsp2_i2c2_default: blsp2-i2c2-default {
   1378				pins = "gpio47", "gpio48";
   1379				function = "blsp_i2c8";
   1380				drive-strength = <2>;
   1381				bias-disable;
   1382			};
   1383
   1384			blsp2_i2c2_sleep: blsp2-i2c2-sleep {
   1385				pins = "gpio47", "gpio48";
   1386				function = "blsp_i2c8";
   1387				drive-strength = <2>;
   1388				bias-pull-up;
   1389			};
   1390
   1391			/* BLSP2_I2C3 info is missing */
   1392
   1393			/* BLSP2_I2C4 info is missing */
   1394
   1395			blsp2_i2c5_default: blsp2-i2c5-default {
   1396				pins = "gpio83", "gpio84";
   1397				function = "blsp_i2c11";
   1398				drive-strength = <2>;
   1399				bias-disable;
   1400			};
   1401
   1402			blsp2_i2c5_sleep: blsp2-i2c5-sleep {
   1403				pins = "gpio83", "gpio84";
   1404				function = "blsp_i2c11";
   1405				drive-strength = <2>;
   1406				bias-pull-up;
   1407			};
   1408
   1409			/* BLSP2_I2C6 info is missing - nobody uses it though? */
   1410
   1411			spi8_default: spi8_default {
   1412				mosi {
   1413					pins = "gpio45";
   1414					function = "blsp_spi8";
   1415				};
   1416				miso {
   1417					pins = "gpio46";
   1418					function = "blsp_spi8";
   1419				};
   1420				cs {
   1421					pins = "gpio47";
   1422					function = "blsp_spi8";
   1423				};
   1424				clk {
   1425					pins = "gpio48";
   1426					function = "blsp_spi8";
   1427				};
   1428			};
   1429		};
   1430
   1431		mmcc: clock-controller@fd8c0000 {
   1432			compatible = "qcom,mmcc-msm8974";
   1433			#clock-cells = <1>;
   1434			#reset-cells = <1>;
   1435			#power-domain-cells = <1>;
   1436			reg = <0xfd8c0000 0x6000>;
   1437		};
   1438
   1439		mdss: mdss@fd900000 {
   1440			compatible = "qcom,mdss";
   1441			reg = <0xfd900000 0x100>, <0xfd924000 0x1000>;
   1442			reg-names = "mdss_phys", "vbif_phys";
   1443
   1444			power-domains = <&mmcc MDSS_GDSC>;
   1445
   1446			clocks = <&mmcc MDSS_AHB_CLK>,
   1447				 <&mmcc MDSS_AXI_CLK>,
   1448				 <&mmcc MDSS_VSYNC_CLK>;
   1449			clock-names = "iface", "bus", "vsync";
   1450
   1451			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
   1452
   1453			interrupt-controller;
   1454			#interrupt-cells = <1>;
   1455
   1456			status = "disabled";
   1457
   1458			#address-cells = <1>;
   1459			#size-cells = <1>;
   1460			ranges;
   1461
   1462			mdp: mdp@fd900000 {
   1463				compatible = "qcom,mdp5";
   1464				reg = <0xfd900100 0x22000>;
   1465				reg-names = "mdp_phys";
   1466
   1467				interrupt-parent = <&mdss>;
   1468				interrupts = <0>;
   1469
   1470				clocks = <&mmcc MDSS_AHB_CLK>,
   1471					 <&mmcc MDSS_AXI_CLK>,
   1472					 <&mmcc MDSS_MDP_CLK>,
   1473					 <&mmcc MDSS_VSYNC_CLK>;
   1474				clock-names = "iface", "bus", "core", "vsync";
   1475
   1476				interconnects = <&mmssnoc MNOC_MAS_MDP_PORT0 &bimc BIMC_SLV_EBI_CH0>;
   1477				interconnect-names = "mdp0-mem";
   1478
   1479				ports {
   1480					#address-cells = <1>;
   1481					#size-cells = <0>;
   1482
   1483					port@0 {
   1484						reg = <0>;
   1485						mdp5_intf1_out: endpoint {
   1486							remote-endpoint = <&dsi0_in>;
   1487						};
   1488					};
   1489				};
   1490			};
   1491
   1492			dsi0: dsi@fd922800 {
   1493				compatible = "qcom,mdss-dsi-ctrl";
   1494				reg = <0xfd922800 0x1f8>;
   1495				reg-names = "dsi_ctrl";
   1496
   1497				interrupt-parent = <&mdss>;
   1498				interrupts = <4>;
   1499
   1500				assigned-clocks = <&mmcc BYTE0_CLK_SRC>, <&mmcc PCLK0_CLK_SRC>;
   1501				assigned-clock-parents = <&dsi0_phy 0>, <&dsi0_phy 1>;
   1502
   1503				clocks = <&mmcc MDSS_MDP_CLK>,
   1504					 <&mmcc MDSS_AHB_CLK>,
   1505					 <&mmcc MDSS_AXI_CLK>,
   1506					 <&mmcc MDSS_BYTE0_CLK>,
   1507					 <&mmcc MDSS_PCLK0_CLK>,
   1508					 <&mmcc MDSS_ESC0_CLK>,
   1509					 <&mmcc MMSS_MISC_AHB_CLK>;
   1510				clock-names = "mdp_core",
   1511					      "iface",
   1512					      "bus",
   1513					      "byte",
   1514					      "pixel",
   1515					      "core",
   1516					      "core_mmss";
   1517
   1518				phys = <&dsi0_phy>;
   1519				phy-names = "dsi-phy";
   1520
   1521				status = "disabled";
   1522
   1523				#address-cells = <1>;
   1524				#size-cells = <0>;
   1525
   1526				ports {
   1527					#address-cells = <1>;
   1528					#size-cells = <0>;
   1529
   1530					port@0 {
   1531						reg = <0>;
   1532						dsi0_in: endpoint {
   1533							remote-endpoint = <&mdp5_intf1_out>;
   1534						};
   1535					};
   1536
   1537					port@1 {
   1538						reg = <1>;
   1539						dsi0_out: endpoint {
   1540						};
   1541					};
   1542				};
   1543			};
   1544
   1545			dsi0_phy: dsi-phy@fd922a00 {
   1546				compatible = "qcom,dsi-phy-28nm-hpm";
   1547				reg = <0xfd922a00 0xd4>,
   1548				      <0xfd922b00 0x280>,
   1549				      <0xfd922d80 0x30>;
   1550				reg-names = "dsi_pll",
   1551					    "dsi_phy",
   1552					    "dsi_phy_regulator";
   1553
   1554				#clock-cells = <1>;
   1555				#phy-cells = <0>;
   1556
   1557				clocks = <&mmcc MDSS_AHB_CLK>, <&xo_board>;
   1558				clock-names = "iface", "ref";
   1559
   1560				status = "disabled";
   1561			};
   1562		};
   1563
   1564		gpu: adreno@fdb00000 {
   1565			compatible = "qcom,adreno-330.1", "qcom,adreno";
   1566			reg = <0xfdb00000 0x10000>;
   1567			reg-names = "kgsl_3d0_reg_memory";
   1568
   1569			interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
   1570			interrupt-names = "kgsl_3d0_irq";
   1571
   1572			clocks = <&mmcc OXILI_GFX3D_CLK>,
   1573				 <&mmcc OXILICX_AHB_CLK>,
   1574				 <&mmcc OXILICX_AXI_CLK>;
   1575			clock-names = "core", "iface", "mem_iface";
   1576
   1577			sram = <&gmu_sram>;
   1578			power-domains = <&mmcc OXILICX_GDSC>;
   1579			operating-points-v2 = <&gpu_opp_table>;
   1580
   1581			interconnects = <&mmssnoc MNOC_MAS_GRAPHICS_3D &bimc BIMC_SLV_EBI_CH0>,
   1582					<&ocmemnoc OCMEM_VNOC_MAS_GFX3D &ocmemnoc OCMEM_SLV_OCMEM>;
   1583			interconnect-names = "gfx-mem", "ocmem";
   1584
   1585			// iommus = <&gpu_iommu 0>;
   1586
   1587			status = "disabled";
   1588
   1589			gpu_opp_table: opp_table {
   1590				compatible = "operating-points-v2";
   1591
   1592				opp-320000000 {
   1593					opp-hz = /bits/ 64 <320000000>;
   1594				};
   1595
   1596				opp-200000000 {
   1597					opp-hz = /bits/ 64 <200000000>;
   1598				};
   1599
   1600				opp-27000000 {
   1601					opp-hz = /bits/ 64 <27000000>;
   1602				};
   1603			};
   1604		};
   1605
   1606		ocmem@fdd00000 {
   1607			compatible = "qcom,msm8974-ocmem";
   1608			reg = <0xfdd00000 0x2000>,
   1609			      <0xfec00000 0x180000>;
   1610			reg-names = "ctrl", "mem";
   1611			clocks = <&rpmcc RPM_SMD_OCMEMGX_CLK>,
   1612				 <&mmcc OCMEMCX_OCMEMNOC_CLK>;
   1613			clock-names = "core", "iface";
   1614
   1615			#address-cells = <1>;
   1616			#size-cells = <1>;
   1617
   1618			gmu_sram: gmu-sram@0 {
   1619				reg = <0x0 0x100000>;
   1620			};
   1621		};
   1622
   1623		remoteproc_adsp: remoteproc@fe200000 {
   1624			compatible = "qcom,msm8974-adsp-pil";
   1625			reg = <0xfe200000 0x100>;
   1626
   1627			interrupts-extended = <&intc GIC_SPI 162 IRQ_TYPE_EDGE_RISING>,
   1628					       <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
   1629					       <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
   1630					       <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
   1631					       <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
   1632			interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
   1633
   1634			clocks = <&xo_board>;
   1635			clock-names = "xo";
   1636
   1637			memory-region = <&adsp_region>;
   1638
   1639			qcom,smem-states = <&adsp_smp2p_out 0>;
   1640			qcom,smem-state-names = "stop";
   1641
   1642			smd-edge {
   1643				interrupts = <GIC_SPI 156 IRQ_TYPE_EDGE_RISING>;
   1644
   1645				qcom,ipc = <&apcs 8 8>;
   1646				qcom,smd-edge = <1>;
   1647				label = "lpass";
   1648				#address-cells = <1>;
   1649				#size-cells = <0>;
   1650			};
   1651		};
   1652
   1653		imem: imem@fe805000 {
   1654			compatible = "syscon", "simple-mfd";
   1655			reg = <0xfe805000 0x1000>;
   1656
   1657			reboot-mode {
   1658				compatible = "syscon-reboot-mode";
   1659				offset = <0x65c>;
   1660			};
   1661		};
   1662	};
   1663
   1664	tcsr_mutex: tcsr-mutex {
   1665		compatible = "qcom,tcsr-mutex";
   1666		syscon = <&tcsr_mutex_block 0 0x80>;
   1667
   1668		#hwlock-cells = <1>;
   1669	};
   1670
   1671	thermal-zones {
   1672		cpu0-thermal {
   1673			polling-delay-passive = <250>;
   1674			polling-delay = <1000>;
   1675
   1676			thermal-sensors = <&tsens 5>;
   1677
   1678			trips {
   1679				cpu_alert0: trip0 {
   1680					temperature = <75000>;
   1681					hysteresis = <2000>;
   1682					type = "passive";
   1683				};
   1684				cpu_crit0: trip1 {
   1685					temperature = <110000>;
   1686					hysteresis = <2000>;
   1687					type = "critical";
   1688				};
   1689			};
   1690		};
   1691
   1692		cpu1-thermal {
   1693			polling-delay-passive = <250>;
   1694			polling-delay = <1000>;
   1695
   1696			thermal-sensors = <&tsens 6>;
   1697
   1698			trips {
   1699				cpu_alert1: trip0 {
   1700					temperature = <75000>;
   1701					hysteresis = <2000>;
   1702					type = "passive";
   1703				};
   1704				cpu_crit1: trip1 {
   1705					temperature = <110000>;
   1706					hysteresis = <2000>;
   1707					type = "critical";
   1708				};
   1709			};
   1710		};
   1711
   1712		cpu2-thermal {
   1713			polling-delay-passive = <250>;
   1714			polling-delay = <1000>;
   1715
   1716			thermal-sensors = <&tsens 7>;
   1717
   1718			trips {
   1719				cpu_alert2: trip0 {
   1720					temperature = <75000>;
   1721					hysteresis = <2000>;
   1722					type = "passive";
   1723				};
   1724				cpu_crit2: trip1 {
   1725					temperature = <110000>;
   1726					hysteresis = <2000>;
   1727					type = "critical";
   1728				};
   1729			};
   1730		};
   1731
   1732		cpu3-thermal {
   1733			polling-delay-passive = <250>;
   1734			polling-delay = <1000>;
   1735
   1736			thermal-sensors = <&tsens 8>;
   1737
   1738			trips {
   1739				cpu_alert3: trip0 {
   1740					temperature = <75000>;
   1741					hysteresis = <2000>;
   1742					type = "passive";
   1743				};
   1744				cpu_crit3: trip1 {
   1745					temperature = <110000>;
   1746					hysteresis = <2000>;
   1747					type = "critical";
   1748				};
   1749			};
   1750		};
   1751
   1752		q6-dsp-thermal {
   1753			polling-delay-passive = <250>;
   1754			polling-delay = <1000>;
   1755
   1756			thermal-sensors = <&tsens 1>;
   1757
   1758			trips {
   1759				q6_dsp_alert0: trip-point0 {
   1760					temperature = <90000>;
   1761					hysteresis = <2000>;
   1762					type = "hot";
   1763				};
   1764			};
   1765		};
   1766
   1767		modemtx-thermal {
   1768			polling-delay-passive = <250>;
   1769			polling-delay = <1000>;
   1770
   1771			thermal-sensors = <&tsens 2>;
   1772
   1773			trips {
   1774				modemtx_alert0: trip-point0 {
   1775					temperature = <90000>;
   1776					hysteresis = <2000>;
   1777					type = "hot";
   1778				};
   1779			};
   1780		};
   1781
   1782		video-thermal {
   1783			polling-delay-passive = <250>;
   1784			polling-delay = <1000>;
   1785
   1786			thermal-sensors = <&tsens 3>;
   1787
   1788			trips {
   1789				video_alert0: trip-point0 {
   1790					temperature = <95000>;
   1791					hysteresis = <2000>;
   1792					type = "hot";
   1793				};
   1794			};
   1795		};
   1796
   1797		wlan-thermal {
   1798			polling-delay-passive = <250>;
   1799			polling-delay = <1000>;
   1800
   1801			thermal-sensors = <&tsens 4>;
   1802
   1803			trips {
   1804				wlan_alert0: trip-point0 {
   1805					temperature = <105000>;
   1806					hysteresis = <2000>;
   1807					type = "hot";
   1808				};
   1809			};
   1810		};
   1811
   1812		gpu-top-thermal {
   1813			polling-delay-passive = <250>;
   1814			polling-delay = <1000>;
   1815
   1816			thermal-sensors = <&tsens 9>;
   1817
   1818			trips {
   1819				gpu1_alert0: trip-point0 {
   1820					temperature = <90000>;
   1821					hysteresis = <2000>;
   1822					type = "hot";
   1823				};
   1824			};
   1825		};
   1826
   1827		gpu-bottom-thermal {
   1828			polling-delay-passive = <250>;
   1829			polling-delay = <1000>;
   1830
   1831			thermal-sensors = <&tsens 10>;
   1832
   1833			trips {
   1834				gpu2_alert0: trip-point0 {
   1835					temperature = <90000>;
   1836					hysteresis = <2000>;
   1837					type = "hot";
   1838				};
   1839			};
   1840		};
   1841	};
   1842
   1843	timer {
   1844		compatible = "arm,armv7-timer";
   1845		interrupts = <GIC_PPI 2 0xf08>,
   1846			     <GIC_PPI 3 0xf08>,
   1847			     <GIC_PPI 4 0xf08>,
   1848			     <GIC_PPI 1 0xf08>;
   1849		clock-frequency = <19200000>;
   1850	};
   1851
   1852	vreg_boost: vreg-boost {
   1853		compatible = "regulator-fixed";
   1854
   1855		regulator-name = "vreg-boost";
   1856		regulator-min-microvolt = <3150000>;
   1857		regulator-max-microvolt = <3150000>;
   1858
   1859		regulator-always-on;
   1860		regulator-boot-on;
   1861
   1862		gpio = <&pm8941_gpios 21 GPIO_ACTIVE_HIGH>;
   1863		enable-active-high;
   1864
   1865		pinctrl-names = "default";
   1866		pinctrl-0 = <&boost_bypass_n_pin>;
   1867	};
   1868
   1869	vreg_vph_pwr: vreg-vph-pwr {
   1870		compatible = "regulator-fixed";
   1871		regulator-name = "vph-pwr";
   1872
   1873		regulator-min-microvolt = <3600000>;
   1874		regulator-max-microvolt = <3600000>;
   1875
   1876		regulator-always-on;
   1877	};
   1878};