xref: /freebsd/sys/contrib/device-tree/src/arm64/qcom/msm8976.dtsi (revision cb7aa33ac6cd46a5434798e50363136e64f3ae98)
18bab661aSEmmanuel Vadot// SPDX-License-Identifier: BSD-3-Clause
28bab661aSEmmanuel Vadot/*
38bab661aSEmmanuel Vadot * Copyright (c) 2016-2022, AngeloGioacchino Del Regno
48bab661aSEmmanuel Vadot *                          <angelogioacchino.delregno@collabora.com>
58bab661aSEmmanuel Vadot * Copyright (c) 2022, Konrad Dybcio <konrad.dybcio@somainline.org>
68bab661aSEmmanuel Vadot * Copyright (c) 2022, Marijn Suijten <marijn.suijten@somainline.org>
78bab661aSEmmanuel Vadot */
88bab661aSEmmanuel Vadot
98bab661aSEmmanuel Vadot#include <dt-bindings/clock/qcom,gcc-msm8976.h>
108bab661aSEmmanuel Vadot#include <dt-bindings/clock/qcom,rpmcc.h>
118bab661aSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
128bab661aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
138bab661aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
148bab661aSEmmanuel Vadot#include <dt-bindings/power/qcom-rpmpd.h>
158bab661aSEmmanuel Vadot
168bab661aSEmmanuel Vadot/ {
178bab661aSEmmanuel Vadot	interrupt-parent = <&intc>;
188bab661aSEmmanuel Vadot	#address-cells = <2>;
198bab661aSEmmanuel Vadot	#size-cells = <2>;
208bab661aSEmmanuel Vadot
218bab661aSEmmanuel Vadot	chosen { };
228bab661aSEmmanuel Vadot
238bab661aSEmmanuel Vadot	cpus {
248bab661aSEmmanuel Vadot		#address-cells = <1>;
258bab661aSEmmanuel Vadot		#size-cells = <0>;
268bab661aSEmmanuel Vadot
278bab661aSEmmanuel Vadot		CPU0: cpu@0 {
288bab661aSEmmanuel Vadot			device_type = "cpu";
298bab661aSEmmanuel Vadot			compatible = "arm,cortex-a53";
308bab661aSEmmanuel Vadot			reg = <0x0>;
318bab661aSEmmanuel Vadot			enable-method = "psci";
328bab661aSEmmanuel Vadot			cpu-idle-states = <&little_cpu_sleep_0>;
338bab661aSEmmanuel Vadot			capacity-dmips-mhz = <573>;
348bab661aSEmmanuel Vadot			next-level-cache = <&l2_0>;
358bab661aSEmmanuel Vadot			#cooling-cells = <2>;
368bab661aSEmmanuel Vadot		};
378bab661aSEmmanuel Vadot
388bab661aSEmmanuel Vadot		CPU1: cpu@1 {
398bab661aSEmmanuel Vadot			device_type = "cpu";
408bab661aSEmmanuel Vadot			compatible = "arm,cortex-a53";
418bab661aSEmmanuel Vadot			reg = <0x1>;
428bab661aSEmmanuel Vadot			enable-method = "psci";
438bab661aSEmmanuel Vadot			cpu-idle-states = <&little_cpu_sleep_0>;
448bab661aSEmmanuel Vadot			capacity-dmips-mhz = <573>;
458bab661aSEmmanuel Vadot			next-level-cache = <&l2_0>;
468bab661aSEmmanuel Vadot			#cooling-cells = <2>;
478bab661aSEmmanuel Vadot		};
488bab661aSEmmanuel Vadot
498bab661aSEmmanuel Vadot		CPU2: cpu@2 {
508bab661aSEmmanuel Vadot			device_type = "cpu";
518bab661aSEmmanuel Vadot			compatible = "arm,cortex-a53";
528bab661aSEmmanuel Vadot			reg = <0x2>;
538bab661aSEmmanuel Vadot			enable-method = "psci";
548bab661aSEmmanuel Vadot			cpu-idle-states = <&little_cpu_sleep_0>;
558bab661aSEmmanuel Vadot			capacity-dmips-mhz = <573>;
568bab661aSEmmanuel Vadot			next-level-cache = <&l2_0>;
578bab661aSEmmanuel Vadot			#cooling-cells = <2>;
588bab661aSEmmanuel Vadot		};
598bab661aSEmmanuel Vadot
608bab661aSEmmanuel Vadot		CPU3: cpu@3 {
618bab661aSEmmanuel Vadot			device_type = "cpu";
628bab661aSEmmanuel Vadot			compatible = "arm,cortex-a53";
638bab661aSEmmanuel Vadot			reg = <0x3>;
648bab661aSEmmanuel Vadot			enable-method = "psci";
658bab661aSEmmanuel Vadot			cpu-idle-states = <&little_cpu_sleep_0>;
668bab661aSEmmanuel Vadot			capacity-dmips-mhz = <573>;
678bab661aSEmmanuel Vadot			next-level-cache = <&l2_0>;
688bab661aSEmmanuel Vadot			#cooling-cells = <2>;
698bab661aSEmmanuel Vadot		};
708bab661aSEmmanuel Vadot
718bab661aSEmmanuel Vadot		CPU4: cpu@100 {
728bab661aSEmmanuel Vadot			device_type = "cpu";
738bab661aSEmmanuel Vadot			compatible = "arm,cortex-a72";
748bab661aSEmmanuel Vadot			reg = <0x100>;
758bab661aSEmmanuel Vadot			enable-method = "psci";
768bab661aSEmmanuel Vadot			cpu-idle-states = <&big_cpu_sleep_0 &big_cpu_sleep_1>;
778bab661aSEmmanuel Vadot			capacity-dmips-mhz = <1024>;
788bab661aSEmmanuel Vadot			next-level-cache = <&l2_1>;
798bab661aSEmmanuel Vadot			#cooling-cells = <2>;
808bab661aSEmmanuel Vadot		};
818bab661aSEmmanuel Vadot
828bab661aSEmmanuel Vadot		CPU5: cpu@101 {
838bab661aSEmmanuel Vadot			device_type = "cpu";
848bab661aSEmmanuel Vadot			compatible = "arm,cortex-a72";
858bab661aSEmmanuel Vadot			reg = <0x101>;
868bab661aSEmmanuel Vadot			enable-method = "psci";
878bab661aSEmmanuel Vadot			cpu-idle-states = <&big_cpu_sleep_0 &big_cpu_sleep_1>;
888bab661aSEmmanuel Vadot			capacity-dmips-mhz = <1024>;
898bab661aSEmmanuel Vadot			next-level-cache = <&l2_1>;
908bab661aSEmmanuel Vadot			#cooling-cells = <2>;
918bab661aSEmmanuel Vadot		};
928bab661aSEmmanuel Vadot
938bab661aSEmmanuel Vadot		CPU6: cpu@102 {
948bab661aSEmmanuel Vadot			device_type = "cpu";
958bab661aSEmmanuel Vadot			compatible = "arm,cortex-a72";
968bab661aSEmmanuel Vadot			reg = <0x102>;
978bab661aSEmmanuel Vadot			enable-method = "psci";
988bab661aSEmmanuel Vadot			cpu-idle-states = <&big_cpu_sleep_0 &big_cpu_sleep_1>;
998bab661aSEmmanuel Vadot			capacity-dmips-mhz = <1024>;
1008bab661aSEmmanuel Vadot			next-level-cache = <&l2_1>;
1018bab661aSEmmanuel Vadot			#cooling-cells = <2>;
1028bab661aSEmmanuel Vadot		};
1038bab661aSEmmanuel Vadot
1048bab661aSEmmanuel Vadot		CPU7: cpu@103 {
1058bab661aSEmmanuel Vadot			device_type = "cpu";
1068bab661aSEmmanuel Vadot			compatible = "arm,cortex-a72";
1078bab661aSEmmanuel Vadot			reg = <0x103>;
1088bab661aSEmmanuel Vadot			enable-method = "psci";
1098bab661aSEmmanuel Vadot			cpu-idle-states = <&big_cpu_sleep_0 &big_cpu_sleep_1>;
1108bab661aSEmmanuel Vadot			capacity-dmips-mhz = <1024>;
1118bab661aSEmmanuel Vadot			next-level-cache = <&l2_1>;
1128bab661aSEmmanuel Vadot			#cooling-cells = <2>;
1138bab661aSEmmanuel Vadot		};
1148bab661aSEmmanuel Vadot
1158bab661aSEmmanuel Vadot		cpu-map {
1168bab661aSEmmanuel Vadot			cluster0 {
1178bab661aSEmmanuel Vadot				core0 {
1188bab661aSEmmanuel Vadot					cpu = <&CPU0>;
1198bab661aSEmmanuel Vadot				};
1208bab661aSEmmanuel Vadot
1218bab661aSEmmanuel Vadot				core1 {
1228bab661aSEmmanuel Vadot					cpu = <&CPU1>;
1238bab661aSEmmanuel Vadot				};
1248bab661aSEmmanuel Vadot
1258bab661aSEmmanuel Vadot				core2 {
1268bab661aSEmmanuel Vadot					cpu = <&CPU2>;
1278bab661aSEmmanuel Vadot				};
1288bab661aSEmmanuel Vadot
1298bab661aSEmmanuel Vadot				core3 {
1308bab661aSEmmanuel Vadot					cpu = <&CPU3>;
1318bab661aSEmmanuel Vadot				};
1328bab661aSEmmanuel Vadot			};
1338bab661aSEmmanuel Vadot
1348bab661aSEmmanuel Vadot			cluster1 {
1358bab661aSEmmanuel Vadot				core0 {
1368bab661aSEmmanuel Vadot					cpu = <&CPU4>;
1378bab661aSEmmanuel Vadot				};
1388bab661aSEmmanuel Vadot
1398bab661aSEmmanuel Vadot				core1 {
1408bab661aSEmmanuel Vadot					cpu = <&CPU5>;
1418bab661aSEmmanuel Vadot				};
1428bab661aSEmmanuel Vadot
1438bab661aSEmmanuel Vadot				core2 {
1448bab661aSEmmanuel Vadot					cpu = <&CPU6>;
1458bab661aSEmmanuel Vadot				};
1468bab661aSEmmanuel Vadot
1478bab661aSEmmanuel Vadot				core3 {
1488bab661aSEmmanuel Vadot					cpu = <&CPU7>;
1498bab661aSEmmanuel Vadot				};
1508bab661aSEmmanuel Vadot			};
1518bab661aSEmmanuel Vadot		};
1528bab661aSEmmanuel Vadot
1538bab661aSEmmanuel Vadot		idle-states {
1548bab661aSEmmanuel Vadot			entry-method = "psci";
1558bab661aSEmmanuel Vadot
1568bab661aSEmmanuel Vadot			little_cpu_sleep_0: cpu-sleep-0-0 {
1578bab661aSEmmanuel Vadot				compatible = "arm,idle-state";
1588bab661aSEmmanuel Vadot				idle-state-name = "little-power-collapse";
1598bab661aSEmmanuel Vadot				arm,psci-suspend-param = <0x40000003>;
1608bab661aSEmmanuel Vadot				entry-latency-us = <181>;
1618bab661aSEmmanuel Vadot				exit-latency-us = <149>;
1628bab661aSEmmanuel Vadot				min-residency-us = <703>;
1638bab661aSEmmanuel Vadot				local-timer-stop;
1648bab661aSEmmanuel Vadot			};
1658bab661aSEmmanuel Vadot
1668bab661aSEmmanuel Vadot			big_cpu_sleep_0: cpu-sleep-1-0 {
1678bab661aSEmmanuel Vadot				compatible = "arm,idle-state";
1688bab661aSEmmanuel Vadot				idle-state-name = "big-retention";
1698bab661aSEmmanuel Vadot				arm,psci-suspend-param = <0x00000002>;
1708bab661aSEmmanuel Vadot				entry-latency-us = <142>;
1718bab661aSEmmanuel Vadot				exit-latency-us = <99>;
1728bab661aSEmmanuel Vadot				min-residency-us = <242>;
1738bab661aSEmmanuel Vadot			};
1748bab661aSEmmanuel Vadot
1758bab661aSEmmanuel Vadot			big_cpu_sleep_1: cpu-sleep-1-1 {
1768bab661aSEmmanuel Vadot				compatible = "arm,idle-state";
1778bab661aSEmmanuel Vadot				idle-state-name = "big-power-collapse";
1788bab661aSEmmanuel Vadot				arm,psci-suspend-param = <0x40000003>;
1798bab661aSEmmanuel Vadot				entry-latency-us = <158>;
1808bab661aSEmmanuel Vadot				exit-latency-us = <144>;
1818bab661aSEmmanuel Vadot				min-residency-us = <863>;
1828bab661aSEmmanuel Vadot				local-timer-stop;
1838bab661aSEmmanuel Vadot			};
1848bab661aSEmmanuel Vadot		};
1858bab661aSEmmanuel Vadot
1868bab661aSEmmanuel Vadot		l2_0: l2-cache0 {
1878bab661aSEmmanuel Vadot			compatible = "cache";
1888bab661aSEmmanuel Vadot			cache-level = <2>;
1898bab661aSEmmanuel Vadot		};
1908bab661aSEmmanuel Vadot
1918bab661aSEmmanuel Vadot		l2_1: l2-cache1 {
1928bab661aSEmmanuel Vadot			compatible = "cache";
1938bab661aSEmmanuel Vadot			cache-level = <2>;
1948bab661aSEmmanuel Vadot		};
1958bab661aSEmmanuel Vadot	};
1968bab661aSEmmanuel Vadot
1978bab661aSEmmanuel Vadot	firmware {
1988bab661aSEmmanuel Vadot		scm: scm {
1998bab661aSEmmanuel Vadot			compatible = "qcom,scm-msm8976", "qcom,scm";
2008bab661aSEmmanuel Vadot			clocks = <&gcc GCC_CRYPTO_CLK>,
2018bab661aSEmmanuel Vadot				 <&gcc GCC_CRYPTO_AXI_CLK>,
2028bab661aSEmmanuel Vadot				 <&gcc GCC_CRYPTO_AHB_CLK>;
2038bab661aSEmmanuel Vadot			clock-names = "core", "bus", "iface";
2048bab661aSEmmanuel Vadot			#reset-cells = <1>;
2058bab661aSEmmanuel Vadot
2068bab661aSEmmanuel Vadot			qcom,dload-mode = <&tcsr 0x6100>;
2078bab661aSEmmanuel Vadot		};
2088bab661aSEmmanuel Vadot	};
2098bab661aSEmmanuel Vadot
2108bab661aSEmmanuel Vadot	memory@80000000 {
2118bab661aSEmmanuel Vadot		device_type = "memory";
2128bab661aSEmmanuel Vadot		/* We expect the bootloader to fill in the size */
2138bab661aSEmmanuel Vadot		reg = <0x0 0x80000000 0x0 0x0>;
2148bab661aSEmmanuel Vadot	};
2158bab661aSEmmanuel Vadot
2168bab661aSEmmanuel Vadot	pmu: pmu {
2178bab661aSEmmanuel Vadot		compatible = "arm,armv8-pmuv3";
2188bab661aSEmmanuel Vadot		interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
2198bab661aSEmmanuel Vadot	};
2208bab661aSEmmanuel Vadot
2218bab661aSEmmanuel Vadot	psci {
2228bab661aSEmmanuel Vadot		compatible = "arm,psci-1.0";
2238bab661aSEmmanuel Vadot		method = "smc";
2248bab661aSEmmanuel Vadot	};
2258bab661aSEmmanuel Vadot
2268bab661aSEmmanuel Vadot	reserved-memory {
2278bab661aSEmmanuel Vadot		#address-cells = <2>;
2288bab661aSEmmanuel Vadot		#size-cells = <2>;
2298bab661aSEmmanuel Vadot		ranges;
2308bab661aSEmmanuel Vadot
2318bab661aSEmmanuel Vadot		ext-region@85b00000 {
2328bab661aSEmmanuel Vadot			reg = <0x0 0x85b00000 0x0 0x500000>;
2338bab661aSEmmanuel Vadot			no-map;
2348bab661aSEmmanuel Vadot		};
2358bab661aSEmmanuel Vadot
2368bab661aSEmmanuel Vadot		smem@86300000 {
2378bab661aSEmmanuel Vadot			compatible = "qcom,smem";
2388bab661aSEmmanuel Vadot			reg = <0x0 0x86300000 0x0 0x100000>;
2398bab661aSEmmanuel Vadot			no-map;
2408bab661aSEmmanuel Vadot
2418bab661aSEmmanuel Vadot			hwlocks = <&tcsr_mutex 3>;
2428bab661aSEmmanuel Vadot			qcom,rpm-msg-ram = <&rpm_msg_ram>;
2438bab661aSEmmanuel Vadot		};
2448bab661aSEmmanuel Vadot
2458bab661aSEmmanuel Vadot		reserved@86400000 {
2468bab661aSEmmanuel Vadot			reg = <0x0 0x86400000 0x0 0x800000>;
2478bab661aSEmmanuel Vadot			no-map;
2488bab661aSEmmanuel Vadot		};
2498bab661aSEmmanuel Vadot
2508bab661aSEmmanuel Vadot		mpss_mem: mpss@86c00000 {
2518bab661aSEmmanuel Vadot			reg = <0x0 0x86c00000 0x0 0x5600000>;
2528bab661aSEmmanuel Vadot			no-map;
2538bab661aSEmmanuel Vadot		};
2548bab661aSEmmanuel Vadot
2558bab661aSEmmanuel Vadot		lpass_mem: lpass@8c200000 {
2568bab661aSEmmanuel Vadot			reg = <0x0 0x8c200000 0x0 0x1800000>;
2578bab661aSEmmanuel Vadot			no-map;
2588bab661aSEmmanuel Vadot		};
2598bab661aSEmmanuel Vadot
2608bab661aSEmmanuel Vadot		venus_mem: memory@8da00000 {
2618bab661aSEmmanuel Vadot			reg = <0x0 0x8da00000 0x0 0x2600000>;
2628bab661aSEmmanuel Vadot			no-map;
2638bab661aSEmmanuel Vadot		};
2648bab661aSEmmanuel Vadot
2658bab661aSEmmanuel Vadot		tz-apps@8dd00000 {
2668bab661aSEmmanuel Vadot			reg = <0x0 0x8dd00000 0x0 0x1400000>;
2678bab661aSEmmanuel Vadot			no-map;
2688bab661aSEmmanuel Vadot		};
2698bab661aSEmmanuel Vadot	};
2708bab661aSEmmanuel Vadot
2718bab661aSEmmanuel Vadot	smp2p-hexagon {
2728bab661aSEmmanuel Vadot		compatible = "qcom,smp2p";
2738bab661aSEmmanuel Vadot		interrupts = <GIC_SPI 291 IRQ_TYPE_EDGE_RISING>;
2748bab661aSEmmanuel Vadot		qcom,ipc = <&apcs 8 10>;
2758bab661aSEmmanuel Vadot
2768bab661aSEmmanuel Vadot		qcom,local-pid = <0>;
2778bab661aSEmmanuel Vadot		qcom,remote-pid = <2>;
2788bab661aSEmmanuel Vadot		qcom,smem = <443>, <429>;
2798bab661aSEmmanuel Vadot
2808bab661aSEmmanuel Vadot		adsp_smp2p_out: master-kernel {
2818bab661aSEmmanuel Vadot			qcom,entry-name = "master-kernel";
2828bab661aSEmmanuel Vadot
2838bab661aSEmmanuel Vadot			#qcom,smem-state-cells = <1>;
2848bab661aSEmmanuel Vadot		};
2858bab661aSEmmanuel Vadot
2868bab661aSEmmanuel Vadot		adsp_smp2p_in: slave-kernel {
2878bab661aSEmmanuel Vadot			qcom,entry-name = "slave-kernel";
2888bab661aSEmmanuel Vadot
2898bab661aSEmmanuel Vadot			interrupt-controller;
2908bab661aSEmmanuel Vadot			#interrupt-cells = <2>;
2918bab661aSEmmanuel Vadot		};
2928bab661aSEmmanuel Vadot	};
2938bab661aSEmmanuel Vadot
2948bab661aSEmmanuel Vadot	smp2p-modem {
2958bab661aSEmmanuel Vadot		compatible = "qcom,smp2p";
2968bab661aSEmmanuel Vadot		interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
2978bab661aSEmmanuel Vadot		qcom,ipc = <&apcs 8 13>;
2988bab661aSEmmanuel Vadot
2998bab661aSEmmanuel Vadot		qcom,local-pid = <0>;
3008bab661aSEmmanuel Vadot		qcom,remote-pid = <1>;
3018bab661aSEmmanuel Vadot		qcom,smem = <435>, <428>;
3028bab661aSEmmanuel Vadot
3038bab661aSEmmanuel Vadot		modem_smp2p_out: master-kernel {
3048bab661aSEmmanuel Vadot			qcom,entry-name = "master-kernel";
3058bab661aSEmmanuel Vadot
3068bab661aSEmmanuel Vadot			#qcom,smem-state-cells = <1>;
3078bab661aSEmmanuel Vadot		};
3088bab661aSEmmanuel Vadot
3098bab661aSEmmanuel Vadot		modem_smp2p_in: slave-kernel {
3108bab661aSEmmanuel Vadot			qcom,entry-name = "slave-kernel";
3118bab661aSEmmanuel Vadot
3128bab661aSEmmanuel Vadot			interrupt-controller;
3138bab661aSEmmanuel Vadot			#interrupt-cells = <2>;
3148bab661aSEmmanuel Vadot		};
3158bab661aSEmmanuel Vadot	};
3168bab661aSEmmanuel Vadot
3178bab661aSEmmanuel Vadot	smp2p-wcnss {
3188bab661aSEmmanuel Vadot		compatible = "qcom,smp2p";
3198bab661aSEmmanuel Vadot		interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
3208bab661aSEmmanuel Vadot		qcom,ipc = <&apcs 8 17>;
3218bab661aSEmmanuel Vadot
3228bab661aSEmmanuel Vadot		qcom,local-pid = <0>;
3238bab661aSEmmanuel Vadot		qcom,remote-pid = <4>;
3248bab661aSEmmanuel Vadot		qcom,smem = <451>, <431>;
3258bab661aSEmmanuel Vadot
3268bab661aSEmmanuel Vadot		wcnss_smp2p_out: master-kernel {
3278bab661aSEmmanuel Vadot			qcom,entry-name = "master-kernel";
3288bab661aSEmmanuel Vadot
3298bab661aSEmmanuel Vadot			#qcom,smem-state-cells = <1>;
3308bab661aSEmmanuel Vadot		};
3318bab661aSEmmanuel Vadot
3328bab661aSEmmanuel Vadot		wcnss_smp2p_in: slave-kernel {
3338bab661aSEmmanuel Vadot			qcom,entry-name = "slave-kernel";
3348bab661aSEmmanuel Vadot
3358bab661aSEmmanuel Vadot			interrupt-controller;
3368bab661aSEmmanuel Vadot			#interrupt-cells = <2>;
3378bab661aSEmmanuel Vadot		};
3388bab661aSEmmanuel Vadot	};
3398bab661aSEmmanuel Vadot
3408bab661aSEmmanuel Vadot	smd {
3418bab661aSEmmanuel Vadot		compatible = "qcom,smd";
3428bab661aSEmmanuel Vadot
3438bab661aSEmmanuel Vadot		rpm {
3448bab661aSEmmanuel Vadot			interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
3458bab661aSEmmanuel Vadot			qcom,ipc = <&apcs 8 0>;
3468bab661aSEmmanuel Vadot			qcom,smd-edge = <15>;
3478bab661aSEmmanuel Vadot
3488bab661aSEmmanuel Vadot			rpm_requests: rpm-requests {
3498bab661aSEmmanuel Vadot				compatible = "qcom,rpm-msm8976";
3508bab661aSEmmanuel Vadot				qcom,smd-channels = "rpm_requests";
3518bab661aSEmmanuel Vadot
3528bab661aSEmmanuel Vadot				rpmcc: clock-controller {
3538bab661aSEmmanuel Vadot					compatible = "qcom,rpmcc-msm8976", "qcom,rpmcc";
3548bab661aSEmmanuel Vadot					#clock-cells = <1>;
3558bab661aSEmmanuel Vadot				};
3568bab661aSEmmanuel Vadot
3578bab661aSEmmanuel Vadot				rpmpd: power-controller {
3588bab661aSEmmanuel Vadot					compatible = "qcom,msm8976-rpmpd";
3598bab661aSEmmanuel Vadot					#power-domain-cells = <1>;
3608bab661aSEmmanuel Vadot					operating-points-v2 = <&rpmpd_opp_table>;
3618bab661aSEmmanuel Vadot
3628bab661aSEmmanuel Vadot					rpmpd_opp_table: opp-table {
3638bab661aSEmmanuel Vadot						compatible = "operating-points-v2";
3648bab661aSEmmanuel Vadot
3658bab661aSEmmanuel Vadot						rpmpd_opp_ret: opp1 {
3668bab661aSEmmanuel Vadot							opp-level = <RPM_SMD_LEVEL_RETENTION>;
3678bab661aSEmmanuel Vadot						};
3688bab661aSEmmanuel Vadot
3698bab661aSEmmanuel Vadot						rpmpd_opp_ret_plus: opp2 {
3708bab661aSEmmanuel Vadot							opp-level = <RPM_SMD_LEVEL_RETENTION_PLUS>;
3718bab661aSEmmanuel Vadot						};
3728bab661aSEmmanuel Vadot
3738bab661aSEmmanuel Vadot						rpmpd_opp_min_svs: opp3 {
3748bab661aSEmmanuel Vadot							opp-level = <RPM_SMD_LEVEL_MIN_SVS>;
3758bab661aSEmmanuel Vadot						};
3768bab661aSEmmanuel Vadot
3778bab661aSEmmanuel Vadot						rpmpd_opp_low_svs: opp4 {
3788bab661aSEmmanuel Vadot							opp-level = <RPM_SMD_LEVEL_LOW_SVS>;
3798bab661aSEmmanuel Vadot						};
3808bab661aSEmmanuel Vadot
3818bab661aSEmmanuel Vadot						rpmpd_opp_svs: opp5 {
3828bab661aSEmmanuel Vadot							opp-level = <RPM_SMD_LEVEL_SVS>;
3838bab661aSEmmanuel Vadot						};
3848bab661aSEmmanuel Vadot
3858bab661aSEmmanuel Vadot						rpmpd_opp_svs_plus: opp6 {
3868bab661aSEmmanuel Vadot							opp-level = <RPM_SMD_LEVEL_SVS_PLUS>;
3878bab661aSEmmanuel Vadot						};
3888bab661aSEmmanuel Vadot
3898bab661aSEmmanuel Vadot						rpmpd_opp_nom: opp7 {
3908bab661aSEmmanuel Vadot							opp-level = <RPM_SMD_LEVEL_NOM>;
3918bab661aSEmmanuel Vadot						};
3928bab661aSEmmanuel Vadot
3938bab661aSEmmanuel Vadot						rpmpd_opp_nom_plus: opp8 {
3948bab661aSEmmanuel Vadot							opp-level = <RPM_SMD_LEVEL_NOM_PLUS>;
3958bab661aSEmmanuel Vadot						};
3968bab661aSEmmanuel Vadot
3978bab661aSEmmanuel Vadot						rpmpd_opp_turbo: opp9 {
3988bab661aSEmmanuel Vadot							opp-level = <RPM_SMD_LEVEL_TURBO>;
3998bab661aSEmmanuel Vadot						};
4008bab661aSEmmanuel Vadot
4018bab661aSEmmanuel Vadot						rpmpd_opp_turbo_no_cpr: opp10 {
4028bab661aSEmmanuel Vadot							opp-level = <RPM_SMD_LEVEL_TURBO_NO_CPR>;
4038bab661aSEmmanuel Vadot						};
4048bab661aSEmmanuel Vadot
4058bab661aSEmmanuel Vadot						rpmpd_opp_turbo_high: opp111 {
4068bab661aSEmmanuel Vadot							opp-level = <RPM_SMD_LEVEL_TURBO_HIGH>;
4078bab661aSEmmanuel Vadot						};
4088bab661aSEmmanuel Vadot					};
4098bab661aSEmmanuel Vadot				};
4108bab661aSEmmanuel Vadot			};
4118bab661aSEmmanuel Vadot		};
4128bab661aSEmmanuel Vadot	};
4138bab661aSEmmanuel Vadot
4148bab661aSEmmanuel Vadot	smsm {
4158bab661aSEmmanuel Vadot		compatible = "qcom,smsm";
4168bab661aSEmmanuel Vadot
4178bab661aSEmmanuel Vadot		#address-cells = <1>;
4188bab661aSEmmanuel Vadot		#size-cells = <0>;
4198bab661aSEmmanuel Vadot
4208bab661aSEmmanuel Vadot		qcom,ipc-1 = <&apcs 8 12>;
4218bab661aSEmmanuel Vadot		qcom,ipc-2 = <&apcs 8 9>;
4228bab661aSEmmanuel Vadot		qcom,ipc-3 = <&apcs 8 18>;
4238bab661aSEmmanuel Vadot
4248bab661aSEmmanuel Vadot		apps_smsm: apps@0 {
4258bab661aSEmmanuel Vadot			reg = <0>;
4268bab661aSEmmanuel Vadot			#qcom,smem-state-cells = <1>;
4278bab661aSEmmanuel Vadot		};
4288bab661aSEmmanuel Vadot
4298bab661aSEmmanuel Vadot		hexagon_smsm: hexagon@1 {
4308bab661aSEmmanuel Vadot			reg = <1>;
4318bab661aSEmmanuel Vadot			interrupts = <0 290 IRQ_TYPE_EDGE_RISING>;
4328bab661aSEmmanuel Vadot
4338bab661aSEmmanuel Vadot			interrupt-controller;
4348bab661aSEmmanuel Vadot			#interrupt-cells = <2>;
4358bab661aSEmmanuel Vadot		};
4368bab661aSEmmanuel Vadot
4378bab661aSEmmanuel Vadot		wcnss_smsm: wcnss@6 {
4388bab661aSEmmanuel Vadot			reg = <6>;
4398bab661aSEmmanuel Vadot			interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>;
4408bab661aSEmmanuel Vadot
4418bab661aSEmmanuel Vadot			interrupt-controller;
4428bab661aSEmmanuel Vadot			#interrupt-cells = <2>;
4438bab661aSEmmanuel Vadot		};
4448bab661aSEmmanuel Vadot	};
4458bab661aSEmmanuel Vadot
4468bab661aSEmmanuel Vadot	soc: soc@0 {
4478bab661aSEmmanuel Vadot		#address-cells = <1>;
4488bab661aSEmmanuel Vadot		#size-cells = <1>;
4498bab661aSEmmanuel Vadot		ranges = <0 0 0 0xffffffff>;
4508bab661aSEmmanuel Vadot		compatible = "simple-bus";
4518bab661aSEmmanuel Vadot
4528bab661aSEmmanuel Vadot		rng@22000 {
4538bab661aSEmmanuel Vadot			compatible = "qcom,prng";
4548bab661aSEmmanuel Vadot			reg = <0x00022000 0x140>;
4558bab661aSEmmanuel Vadot			clocks = <&gcc GCC_PRNG_AHB_CLK>;
4568bab661aSEmmanuel Vadot			clock-names = "core";
4578bab661aSEmmanuel Vadot		};
4588bab661aSEmmanuel Vadot
4598bab661aSEmmanuel Vadot		rpm_msg_ram: sram@60000 {
4608bab661aSEmmanuel Vadot			compatible = "qcom,rpm-msg-ram";
4618bab661aSEmmanuel Vadot			reg = <0x00060000 0x8000>;
4628bab661aSEmmanuel Vadot		};
4638bab661aSEmmanuel Vadot
4648bab661aSEmmanuel Vadot		usb_hs_phy: phy@6c000 {
4658bab661aSEmmanuel Vadot			compatible = "qcom,usb-hs-28nm-femtophy";
4668bab661aSEmmanuel Vadot			reg = <0x0006c000 0x200>;
4678bab661aSEmmanuel Vadot			#phy-cells = <0>;
4688bab661aSEmmanuel Vadot			clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
4698bab661aSEmmanuel Vadot				 <&gcc GCC_USB_HS_PHY_CFG_AHB_CLK>,
4708bab661aSEmmanuel Vadot				 <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
4718bab661aSEmmanuel Vadot			clock-names = "ref", "ahb", "sleep";
4728bab661aSEmmanuel Vadot			resets = <&gcc RST_QUSB2_PHY_BCR>,
4738bab661aSEmmanuel Vadot				 <&gcc RST_USB2_HS_PHY_ONLY_BCR>;
4748bab661aSEmmanuel Vadot			reset-names = "phy", "por";
4758bab661aSEmmanuel Vadot			status = "disabled";
4768bab661aSEmmanuel Vadot		};
4778bab661aSEmmanuel Vadot
4788bab661aSEmmanuel Vadot		qfprom: qfprom@a4000 {
4798bab661aSEmmanuel Vadot			compatible = "qcom,msm8976-qfprom", "qcom,qfprom";
4808bab661aSEmmanuel Vadot			reg = <0x000a4000 0x1000>;
4818bab661aSEmmanuel Vadot			#address-cells = <1>;
4828bab661aSEmmanuel Vadot			#size-cells = <1>;
4838bab661aSEmmanuel Vadot
484*cb7aa33aSEmmanuel Vadot			tsens_base1: base1@218 {
485*cb7aa33aSEmmanuel Vadot				reg = <0x218 1>;
486*cb7aa33aSEmmanuel Vadot				bits = <0 8>;
487*cb7aa33aSEmmanuel Vadot			};
488*cb7aa33aSEmmanuel Vadot
489*cb7aa33aSEmmanuel Vadot			tsens_s0_p1: s0-p1@219 {
490*cb7aa33aSEmmanuel Vadot				reg = <0x219 0x1>;
491*cb7aa33aSEmmanuel Vadot				bits = <0 6>;
492*cb7aa33aSEmmanuel Vadot			};
493*cb7aa33aSEmmanuel Vadot
494*cb7aa33aSEmmanuel Vadot			tsens_s0_p2: s0-p2@219 {
495*cb7aa33aSEmmanuel Vadot				reg = <0x219 0x2>;
496*cb7aa33aSEmmanuel Vadot				bits = <6 6>;
497*cb7aa33aSEmmanuel Vadot			};
498*cb7aa33aSEmmanuel Vadot
499*cb7aa33aSEmmanuel Vadot			tsens_s1_p1: s1-p1@21a {
500*cb7aa33aSEmmanuel Vadot				reg = <0x21a 0x2>;
501*cb7aa33aSEmmanuel Vadot				bits = <4 6>;
502*cb7aa33aSEmmanuel Vadot			};
503*cb7aa33aSEmmanuel Vadot
504*cb7aa33aSEmmanuel Vadot			tsens_s1_p2: s1-p2@21b {
505*cb7aa33aSEmmanuel Vadot				reg = <0x21b 0x1>;
506*cb7aa33aSEmmanuel Vadot				bits = <2 6>;
507*cb7aa33aSEmmanuel Vadot			};
508*cb7aa33aSEmmanuel Vadot
509*cb7aa33aSEmmanuel Vadot			tsens_s2_p1: s2-p1@21c {
510*cb7aa33aSEmmanuel Vadot				reg = <0x21c 0x1>;
511*cb7aa33aSEmmanuel Vadot				bits = <0 6>;
512*cb7aa33aSEmmanuel Vadot			};
513*cb7aa33aSEmmanuel Vadot
514*cb7aa33aSEmmanuel Vadot			tsens_s2_p2: s2-p2@21c {
515*cb7aa33aSEmmanuel Vadot				reg = <0x21c 0x2>;
516*cb7aa33aSEmmanuel Vadot				bits = <6 6>;
517*cb7aa33aSEmmanuel Vadot			};
518*cb7aa33aSEmmanuel Vadot
519*cb7aa33aSEmmanuel Vadot			tsens_s3_p1: s3-p1@21d {
520*cb7aa33aSEmmanuel Vadot				reg = <0x21d 0x2>;
521*cb7aa33aSEmmanuel Vadot				bits = <4 6>;
522*cb7aa33aSEmmanuel Vadot			};
523*cb7aa33aSEmmanuel Vadot
524*cb7aa33aSEmmanuel Vadot			tsens_s3_p2: s3-p2@21e {
525*cb7aa33aSEmmanuel Vadot				reg = <0x21e 0x1>;
526*cb7aa33aSEmmanuel Vadot				bits = <2 6>;
527*cb7aa33aSEmmanuel Vadot			};
528*cb7aa33aSEmmanuel Vadot
529*cb7aa33aSEmmanuel Vadot			tsens_base2: base2@220 {
530*cb7aa33aSEmmanuel Vadot				reg = <0x220 1>;
531*cb7aa33aSEmmanuel Vadot				bits = <0 8>;
532*cb7aa33aSEmmanuel Vadot			};
533*cb7aa33aSEmmanuel Vadot
534*cb7aa33aSEmmanuel Vadot			tsens_s4_p1: s4-p1@221 {
535*cb7aa33aSEmmanuel Vadot				reg = <0x221 0x1>;
536*cb7aa33aSEmmanuel Vadot				bits = <0 6>;
537*cb7aa33aSEmmanuel Vadot			};
538*cb7aa33aSEmmanuel Vadot
539*cb7aa33aSEmmanuel Vadot			tsens_s4_p2: s4-p2@221 {
540*cb7aa33aSEmmanuel Vadot				reg = <0x221 0x2>;
541*cb7aa33aSEmmanuel Vadot				bits = <6 6>;
542*cb7aa33aSEmmanuel Vadot			};
543*cb7aa33aSEmmanuel Vadot
544*cb7aa33aSEmmanuel Vadot			tsens_s5_p1: s5-p1@222 {
545*cb7aa33aSEmmanuel Vadot				reg = <0x222 0x2>;
546*cb7aa33aSEmmanuel Vadot				bits = <4 6>;
547*cb7aa33aSEmmanuel Vadot			};
548*cb7aa33aSEmmanuel Vadot
549*cb7aa33aSEmmanuel Vadot			tsens_s5_p2: s5-p2@223 {
550*cb7aa33aSEmmanuel Vadot				reg = <0x224 0x1>;
551*cb7aa33aSEmmanuel Vadot				bits = <2 6>;
552*cb7aa33aSEmmanuel Vadot			};
553*cb7aa33aSEmmanuel Vadot
554*cb7aa33aSEmmanuel Vadot			tsens_s6_p1: s6-p1@224 {
555*cb7aa33aSEmmanuel Vadot				reg = <0x224 0x1>;
556*cb7aa33aSEmmanuel Vadot				bits = <0 6>;
557*cb7aa33aSEmmanuel Vadot			};
558*cb7aa33aSEmmanuel Vadot
559*cb7aa33aSEmmanuel Vadot			tsens_s6_p2: s6-p2@224 {
560*cb7aa33aSEmmanuel Vadot				reg = <0x224 0x2>;
561*cb7aa33aSEmmanuel Vadot				bits = <6 6>;
562*cb7aa33aSEmmanuel Vadot			};
563*cb7aa33aSEmmanuel Vadot
564*cb7aa33aSEmmanuel Vadot			tsens_s7_p1: s7-p1@225 {
565*cb7aa33aSEmmanuel Vadot				reg = <0x225 0x2>;
566*cb7aa33aSEmmanuel Vadot				bits = <4 6>;
567*cb7aa33aSEmmanuel Vadot			};
568*cb7aa33aSEmmanuel Vadot
569*cb7aa33aSEmmanuel Vadot			tsens_s7_p2: s7-p2@226 {
570*cb7aa33aSEmmanuel Vadot				reg = <0x226 0x2>;
571*cb7aa33aSEmmanuel Vadot				bits = <2 6>;
572*cb7aa33aSEmmanuel Vadot			};
573*cb7aa33aSEmmanuel Vadot
574*cb7aa33aSEmmanuel Vadot			tsens_mode: mode@228 {
575*cb7aa33aSEmmanuel Vadot				reg = <0x228 1>;
576*cb7aa33aSEmmanuel Vadot				bits = <0 3>;
577*cb7aa33aSEmmanuel Vadot			};
578*cb7aa33aSEmmanuel Vadot
579*cb7aa33aSEmmanuel Vadot			tsens_s8_p1: s8-p1@228 {
580*cb7aa33aSEmmanuel Vadot				reg = <0x228 0x2>;
581*cb7aa33aSEmmanuel Vadot				bits = <3 6>;
582*cb7aa33aSEmmanuel Vadot			};
583*cb7aa33aSEmmanuel Vadot
584*cb7aa33aSEmmanuel Vadot			tsens_s8_p2: s8-p2@229 {
585*cb7aa33aSEmmanuel Vadot				reg = <0x229 0x1>;
586*cb7aa33aSEmmanuel Vadot				bits = <1 6>;
587*cb7aa33aSEmmanuel Vadot			};
588*cb7aa33aSEmmanuel Vadot
589*cb7aa33aSEmmanuel Vadot			tsens_s9_p1: s9-p1@229 {
590*cb7aa33aSEmmanuel Vadot				reg = <0x229 0x2>;
591*cb7aa33aSEmmanuel Vadot				bits = <7 6>;
592*cb7aa33aSEmmanuel Vadot			};
593*cb7aa33aSEmmanuel Vadot
594*cb7aa33aSEmmanuel Vadot			tsens_s9_p2: s9-p2@22a {
595*cb7aa33aSEmmanuel Vadot				reg = <0x22a 0x2>;
596*cb7aa33aSEmmanuel Vadot				bits = <5 6>;
597*cb7aa33aSEmmanuel Vadot			};
598*cb7aa33aSEmmanuel Vadot
599*cb7aa33aSEmmanuel Vadot			tsens_s10_p1: s10-p1@22b {
600*cb7aa33aSEmmanuel Vadot				reg = <0x22b 0x2>;
601*cb7aa33aSEmmanuel Vadot				bits = <3 6>;
602*cb7aa33aSEmmanuel Vadot			};
603*cb7aa33aSEmmanuel Vadot
604*cb7aa33aSEmmanuel Vadot			tsens_s10_p2: s10-p2@22c {
605*cb7aa33aSEmmanuel Vadot				reg = <0x22c 0x1>;
606*cb7aa33aSEmmanuel Vadot				bits = <1 6>;
6078bab661aSEmmanuel Vadot			};
6088bab661aSEmmanuel Vadot		};
6098bab661aSEmmanuel Vadot
6108bab661aSEmmanuel Vadot		tsens: thermal-sensor@4a9000 {
6118bab661aSEmmanuel Vadot			compatible = "qcom,msm8976-tsens", "qcom,tsens-v1";
6128bab661aSEmmanuel Vadot			reg = <0x004a9000 0x1000>, /* TM */
6138bab661aSEmmanuel Vadot			      <0x004a8000 0x1000>; /* SROT */
6148bab661aSEmmanuel Vadot			interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
6158bab661aSEmmanuel Vadot			interrupt-names = "uplow";
616*cb7aa33aSEmmanuel Vadot			nvmem-cells = <&tsens_mode>,
617*cb7aa33aSEmmanuel Vadot				      <&tsens_base1>, <&tsens_base2>,
618*cb7aa33aSEmmanuel Vadot				      <&tsens_s0_p1>, <&tsens_s0_p2>,
619*cb7aa33aSEmmanuel Vadot				      <&tsens_s1_p1>, <&tsens_s1_p2>,
620*cb7aa33aSEmmanuel Vadot				      <&tsens_s2_p1>, <&tsens_s2_p2>,
621*cb7aa33aSEmmanuel Vadot				      <&tsens_s3_p1>, <&tsens_s3_p2>,
622*cb7aa33aSEmmanuel Vadot				      <&tsens_s4_p1>, <&tsens_s4_p2>,
623*cb7aa33aSEmmanuel Vadot				      <&tsens_s5_p1>, <&tsens_s5_p2>,
624*cb7aa33aSEmmanuel Vadot				      <&tsens_s6_p1>, <&tsens_s6_p2>,
625*cb7aa33aSEmmanuel Vadot				      <&tsens_s7_p1>, <&tsens_s7_p2>,
626*cb7aa33aSEmmanuel Vadot				      <&tsens_s8_p1>, <&tsens_s8_p2>,
627*cb7aa33aSEmmanuel Vadot				      <&tsens_s9_p1>, <&tsens_s9_p2>,
628*cb7aa33aSEmmanuel Vadot				      <&tsens_s10_p1>, <&tsens_s10_p2>;
629*cb7aa33aSEmmanuel Vadot			nvmem-cell-names = "mode",
630*cb7aa33aSEmmanuel Vadot					   "base1", "base2",
631*cb7aa33aSEmmanuel Vadot					   "s0_p1", "s0_p2",
632*cb7aa33aSEmmanuel Vadot					   "s1_p1", "s1_p2",
633*cb7aa33aSEmmanuel Vadot					   "s2_p1", "s2_p2",
634*cb7aa33aSEmmanuel Vadot					   "s3_p1", "s3_p2",
635*cb7aa33aSEmmanuel Vadot					   "s4_p1", "s4_p2",
636*cb7aa33aSEmmanuel Vadot					   "s5_p1", "s5_p2",
637*cb7aa33aSEmmanuel Vadot					   "s6_p1", "s6_p2",
638*cb7aa33aSEmmanuel Vadot					   "s7_p1", "s7_p2",
639*cb7aa33aSEmmanuel Vadot					   "s8_p1", "s8_p2",
640*cb7aa33aSEmmanuel Vadot					   "s9_p1", "s9_p2",
641*cb7aa33aSEmmanuel Vadot					   "s10_p1", "s10_p2";
6428bab661aSEmmanuel Vadot			#qcom,sensors = <11>;
6438bab661aSEmmanuel Vadot			#thermal-sensor-cells = <1>;
6448bab661aSEmmanuel Vadot		};
6458bab661aSEmmanuel Vadot
6468bab661aSEmmanuel Vadot		tlmm: pinctrl@1000000 {
6478bab661aSEmmanuel Vadot			compatible = "qcom,msm8976-pinctrl";
6488bab661aSEmmanuel Vadot			reg = <0x01000000 0x300000>;
6498bab661aSEmmanuel Vadot			interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
6508bab661aSEmmanuel Vadot			#gpio-cells = <2>;
6518bab661aSEmmanuel Vadot			gpio-controller;
6528bab661aSEmmanuel Vadot			gpio-ranges = <&tlmm 0 0 145>;
6538bab661aSEmmanuel Vadot			interrupt-controller;
6548bab661aSEmmanuel Vadot			#interrupt-cells = <2>;
6558bab661aSEmmanuel Vadot
6568bab661aSEmmanuel Vadot			spi1_default: spi0-default-state {
6578bab661aSEmmanuel Vadot				spi-pins {
6588bab661aSEmmanuel Vadot					pins = "gpio0", "gpio1", "gpio3";
6598bab661aSEmmanuel Vadot					function = "blsp_spi1";
6608bab661aSEmmanuel Vadot					drive-strength = <12>;
6618bab661aSEmmanuel Vadot					bias-disable;
6628bab661aSEmmanuel Vadot				};
6638bab661aSEmmanuel Vadot
6648bab661aSEmmanuel Vadot				cs-pins {
6658bab661aSEmmanuel Vadot					pins = "gpio2";
6668bab661aSEmmanuel Vadot					function = "blsp_spi1";
6678bab661aSEmmanuel Vadot					drive-strength = <2>;
6688bab661aSEmmanuel Vadot					bias-disable;
6698bab661aSEmmanuel Vadot				};
6708bab661aSEmmanuel Vadot			};
6718bab661aSEmmanuel Vadot
6728bab661aSEmmanuel Vadot			spi1_sleep: spi0-sleep-state {
6738bab661aSEmmanuel Vadot				spi-pins {
6748bab661aSEmmanuel Vadot					pins = "gpio0", "gpio1", "gpio3";
6758bab661aSEmmanuel Vadot					function = "gpio";
6768bab661aSEmmanuel Vadot					drive-strength = <2>;
6778bab661aSEmmanuel Vadot					bias-pull-down;
6788bab661aSEmmanuel Vadot				};
6798bab661aSEmmanuel Vadot
6808bab661aSEmmanuel Vadot				cs-pins {
6818bab661aSEmmanuel Vadot					pins = "gpio2";
6828bab661aSEmmanuel Vadot					function = "gpio";
6838bab661aSEmmanuel Vadot					drive-strength = <2>;
6848bab661aSEmmanuel Vadot					bias-disable;
6858bab661aSEmmanuel Vadot				};
6868bab661aSEmmanuel Vadot			};
6878bab661aSEmmanuel Vadot
6888bab661aSEmmanuel Vadot			blsp1_i2c2_default: blsp1-i2c2-default-state {
6898bab661aSEmmanuel Vadot				pins = "gpio6", "gpio7";
6908bab661aSEmmanuel Vadot				function = "blsp_i2c2";
6918bab661aSEmmanuel Vadot				drive-strength = <2>;
6928bab661aSEmmanuel Vadot				bias-disable;
6938bab661aSEmmanuel Vadot			};
6948bab661aSEmmanuel Vadot
6958bab661aSEmmanuel Vadot			blsp1_i2c2_sleep: blsp1-i2c2-sleep-state {
6968bab661aSEmmanuel Vadot				pins = "gpio6", "gpio7";
6978bab661aSEmmanuel Vadot				function = "gpio";
6988bab661aSEmmanuel Vadot				drive-strength = <2>;
6998bab661aSEmmanuel Vadot				bias-disable;
7008bab661aSEmmanuel Vadot			};
7018bab661aSEmmanuel Vadot
7028bab661aSEmmanuel Vadot			blsp1_i2c4_default: blsp1-i2c4-default-state {
7038bab661aSEmmanuel Vadot				pins = "gpio14", "gpio15";
7048bab661aSEmmanuel Vadot				function = "blsp_i2c4";
7058bab661aSEmmanuel Vadot				drive-strength = <2>;
7068bab661aSEmmanuel Vadot				bias-disable;
7078bab661aSEmmanuel Vadot			};
7088bab661aSEmmanuel Vadot
7098bab661aSEmmanuel Vadot			blsp1_i2c4_sleep: blsp1-i2c4-sleep-state {
7108bab661aSEmmanuel Vadot				pins = "gpio14", "gpio15";
7118bab661aSEmmanuel Vadot				function = "gpio";
7128bab661aSEmmanuel Vadot				drive-strength = <2>;
7138bab661aSEmmanuel Vadot				bias-disable;
7148bab661aSEmmanuel Vadot			};
7158bab661aSEmmanuel Vadot
7168bab661aSEmmanuel Vadot			blsp2_uart2_active: blsp2-uart2-active-state {
7178bab661aSEmmanuel Vadot				pins = "gpio20", "gpio21";
7188bab661aSEmmanuel Vadot				function = "blsp_uart6";
7198bab661aSEmmanuel Vadot				drive-strength = <4>;
7208bab661aSEmmanuel Vadot				bias-disable;
7218bab661aSEmmanuel Vadot			};
7228bab661aSEmmanuel Vadot
7238bab661aSEmmanuel Vadot			blsp2_uart2_sleep: blsp2-uart2-sleep-state {
7248bab661aSEmmanuel Vadot				pins = "gpio20", "gpio21";
7258bab661aSEmmanuel Vadot				function = "gpio";
7268bab661aSEmmanuel Vadot				drive-strength = <2>;
7278bab661aSEmmanuel Vadot				bias-disable;
7288bab661aSEmmanuel Vadot			};
7298bab661aSEmmanuel Vadot
7308bab661aSEmmanuel Vadot			/* 4 (not 6!) interfaces per QUP, BLSP2 indexes are numbered (n)+4 */
7318bab661aSEmmanuel Vadot			blsp2_i2c2_default: blsp2-i2c2-default-state {
7328bab661aSEmmanuel Vadot				pins = "gpio22", "gpio23";
7338bab661aSEmmanuel Vadot				function = "blsp_i2c6";
7348bab661aSEmmanuel Vadot				drive-strength = <2>;
7358bab661aSEmmanuel Vadot				bias-disable;
7368bab661aSEmmanuel Vadot			};
7378bab661aSEmmanuel Vadot
7388bab661aSEmmanuel Vadot			blsp2_i2c2_sleep: blsp2-i2c2-sleep-state {
7398bab661aSEmmanuel Vadot				pins = "gpio22", "gpio23";
7408bab661aSEmmanuel Vadot				function = "gpio";
7418bab661aSEmmanuel Vadot				drive-strength = <2>;
7428bab661aSEmmanuel Vadot				bias-disable;
7438bab661aSEmmanuel Vadot			};
7448bab661aSEmmanuel Vadot
7458bab661aSEmmanuel Vadot			blsp2_i2c4_default: blsp2-i2c4-default-state {
7468bab661aSEmmanuel Vadot				pins = "gpio18", "gpio19";
7478bab661aSEmmanuel Vadot				function = "blsp_i2c8";
7488bab661aSEmmanuel Vadot				drive-strength = <2>;
7498bab661aSEmmanuel Vadot				bias-disable;
7508bab661aSEmmanuel Vadot			};
7518bab661aSEmmanuel Vadot
7528bab661aSEmmanuel Vadot			blsp2_i2c4_sleep: blsp2-i2c4-sleep-state {
7538bab661aSEmmanuel Vadot				pins = "gpio18", "gpio19";
7548bab661aSEmmanuel Vadot				function = "gpio";
7558bab661aSEmmanuel Vadot				drive-strength = <2>;
7568bab661aSEmmanuel Vadot				bias-disable;
7578bab661aSEmmanuel Vadot			};
7588bab661aSEmmanuel Vadot		};
7598bab661aSEmmanuel Vadot
7608bab661aSEmmanuel Vadot		gcc: clock-controller@1800000 {
7618bab661aSEmmanuel Vadot			compatible = "qcom,gcc-msm8976";
7628bab661aSEmmanuel Vadot			reg = <0x01800000 0x80000>;
7638bab661aSEmmanuel Vadot			#clock-cells = <1>;
7648bab661aSEmmanuel Vadot			#reset-cells = <1>;
7658bab661aSEmmanuel Vadot			#power-domain-cells = <1>;
7668bab661aSEmmanuel Vadot
7678bab661aSEmmanuel Vadot			assigned-clocks = <&gcc GPLL3>;
7688bab661aSEmmanuel Vadot			assigned-clock-rates = <1100000000>;
7698bab661aSEmmanuel Vadot
7708bab661aSEmmanuel Vadot			clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
7718bab661aSEmmanuel Vadot				 <&rpmcc RPM_SMD_XO_A_CLK_SRC>,
7728bab661aSEmmanuel Vadot				 <0>,
7738bab661aSEmmanuel Vadot				 <0>,
7748bab661aSEmmanuel Vadot				 <0>,
7758bab661aSEmmanuel Vadot				 <0>;
7768bab661aSEmmanuel Vadot			clock-names = "xo",
7778bab661aSEmmanuel Vadot				      "xo_a",
7788bab661aSEmmanuel Vadot				      "dsi0pll",
7798bab661aSEmmanuel Vadot				      "dsi0pllbyte",
7808bab661aSEmmanuel Vadot				      "dsi1pll",
7818bab661aSEmmanuel Vadot				      "dsi1pllbyte";
7828bab661aSEmmanuel Vadot		};
7838bab661aSEmmanuel Vadot
7848bab661aSEmmanuel Vadot		tcsr_mutex: hwlock@1905000 {
7858bab661aSEmmanuel Vadot			compatible = "qcom,tcsr-mutex";
7868bab661aSEmmanuel Vadot			reg = <0x01905000 0x20000>;
7878bab661aSEmmanuel Vadot			#hwlock-cells = <1>;
7888bab661aSEmmanuel Vadot		};
7898bab661aSEmmanuel Vadot
7908bab661aSEmmanuel Vadot		tcsr: syscon@1937000 {
7918bab661aSEmmanuel Vadot			compatible = "qcom,msm8976-tcsr", "syscon";
7928bab661aSEmmanuel Vadot			reg = <0x01937000 0x30000>;
7938bab661aSEmmanuel Vadot		};
7948bab661aSEmmanuel Vadot
7958bab661aSEmmanuel Vadot		spmi_bus: spmi@200f000 {
7968bab661aSEmmanuel Vadot			compatible = "qcom,spmi-pmic-arb";
7978bab661aSEmmanuel Vadot			reg = <0x0200f000 0x1000>,
7988bab661aSEmmanuel Vadot			      <0x02400000 0x800000>,
7998bab661aSEmmanuel Vadot			      <0x02c00000 0x800000>,
8008bab661aSEmmanuel Vadot			      <0x03800000 0x200000>,
8018bab661aSEmmanuel Vadot			      <0x0200a000 0x2100>;
8028bab661aSEmmanuel Vadot			reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
8038bab661aSEmmanuel Vadot			interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
8048bab661aSEmmanuel Vadot			interrupt-names = "periph_irq";
8058bab661aSEmmanuel Vadot			qcom,channel = <0>;
8068bab661aSEmmanuel Vadot			qcom,ee = <0>;
8078bab661aSEmmanuel Vadot
8088bab661aSEmmanuel Vadot			#address-cells = <2>;
8098bab661aSEmmanuel Vadot			#size-cells = <0>;
8108bab661aSEmmanuel Vadot			interrupt-controller;
8118bab661aSEmmanuel Vadot			#interrupt-cells = <4>;
8128bab661aSEmmanuel Vadot			cell-index = <0>;
8138bab661aSEmmanuel Vadot		};
8148bab661aSEmmanuel Vadot
8158bab661aSEmmanuel Vadot		sdhc_1: mmc@7824000 {
8168bab661aSEmmanuel Vadot			compatible = "qcom,msm8976-sdhci", "qcom,sdhci-msm-v4";
8178bab661aSEmmanuel Vadot			reg = <0x07824900 0x500>, <0x07824000 0x800>;
8188bab661aSEmmanuel Vadot			reg-names = "hc", "core";
8198bab661aSEmmanuel Vadot
8208bab661aSEmmanuel Vadot			interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
8218bab661aSEmmanuel Vadot				     <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
8228bab661aSEmmanuel Vadot			interrupt-names = "hc_irq", "pwr_irq";
8238bab661aSEmmanuel Vadot
8248bab661aSEmmanuel Vadot			clocks = <&gcc GCC_SDCC1_AHB_CLK>,
8258bab661aSEmmanuel Vadot				 <&gcc GCC_SDCC1_APPS_CLK>,
8268bab661aSEmmanuel Vadot				 <&rpmcc RPM_SMD_XO_CLK_SRC>;
8278bab661aSEmmanuel Vadot			clock-names = "iface", "core", "xo";
8288bab661aSEmmanuel Vadot			status = "disabled";
8298bab661aSEmmanuel Vadot		};
8308bab661aSEmmanuel Vadot
8318bab661aSEmmanuel Vadot		sdhc_2: mmc@7864000 {
8328bab661aSEmmanuel Vadot			compatible = "qcom,msm8976-sdhci", "qcom,sdhci-msm-v4";
8338bab661aSEmmanuel Vadot			reg = <0x07864900 0x11c>, <0x07864000 0x800>;
8348bab661aSEmmanuel Vadot			reg-names = "hc", "core";
8358bab661aSEmmanuel Vadot
8368bab661aSEmmanuel Vadot			interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
8378bab661aSEmmanuel Vadot				     <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
8388bab661aSEmmanuel Vadot			interrupt-names = "hc_irq", "pwr_irq";
8398bab661aSEmmanuel Vadot
8408bab661aSEmmanuel Vadot			clocks = <&gcc GCC_SDCC2_AHB_CLK>,
8418bab661aSEmmanuel Vadot				 <&gcc GCC_SDCC2_APPS_CLK>,
8428bab661aSEmmanuel Vadot				 <&rpmcc RPM_SMD_XO_CLK_SRC>;
8438bab661aSEmmanuel Vadot			clock-names = "iface", "core", "xo";
8448bab661aSEmmanuel Vadot			status = "disabled";
8458bab661aSEmmanuel Vadot		};
8468bab661aSEmmanuel Vadot
8478bab661aSEmmanuel Vadot		blsp1_dma: dma-controller@7884000 {
8488bab661aSEmmanuel Vadot			compatible = "qcom,bam-v1.7.0";
8498bab661aSEmmanuel Vadot			reg = <0x07884000 0x1f000>;
8508bab661aSEmmanuel Vadot			interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
8518bab661aSEmmanuel Vadot			clocks = <&gcc GCC_BLSP1_AHB_CLK>;
8528bab661aSEmmanuel Vadot			clock-names = "bam_clk";
8538bab661aSEmmanuel Vadot			#dma-cells = <1>;
8548bab661aSEmmanuel Vadot			qcom,ee = <0>;
8558bab661aSEmmanuel Vadot		};
8568bab661aSEmmanuel Vadot
8578bab661aSEmmanuel Vadot		blsp1_uart1: serial@78af000 {
8588bab661aSEmmanuel Vadot			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
8598bab661aSEmmanuel Vadot			reg = <0x078af000 0x200>;
8608bab661aSEmmanuel Vadot			interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
8618bab661aSEmmanuel Vadot			clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
8628bab661aSEmmanuel Vadot			clock-names = "core", "iface";
8638bab661aSEmmanuel Vadot			dmas = <&blsp1_dma 0>, <&blsp1_dma 1>;
8648bab661aSEmmanuel Vadot			dma-names = "tx", "rx";
8658bab661aSEmmanuel Vadot			status = "disabled";
8668bab661aSEmmanuel Vadot		};
8678bab661aSEmmanuel Vadot
8688bab661aSEmmanuel Vadot		blsp1_uart2: serial@78b0000 {
8698bab661aSEmmanuel Vadot			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
8708bab661aSEmmanuel Vadot			reg = <0x078b0000 0x200>;
8718bab661aSEmmanuel Vadot			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
8728bab661aSEmmanuel Vadot			clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
8738bab661aSEmmanuel Vadot			clock-names = "core", "iface";
8748bab661aSEmmanuel Vadot			dmas = <&blsp1_dma 2>, <&blsp1_dma 3>;
8758bab661aSEmmanuel Vadot			dma-names = "tx", "rx";
8768bab661aSEmmanuel Vadot			status = "disabled";
8778bab661aSEmmanuel Vadot		};
8788bab661aSEmmanuel Vadot
8798bab661aSEmmanuel Vadot		blsp1_spi1: spi@78b5000 {
8808bab661aSEmmanuel Vadot			compatible = "qcom,spi-qup-v2.2.1";
8818bab661aSEmmanuel Vadot			reg = <0x078b5000 0x500>;
8828bab661aSEmmanuel Vadot			interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
8838bab661aSEmmanuel Vadot			clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
8848bab661aSEmmanuel Vadot			clock-names = "core", "iface";
8858bab661aSEmmanuel Vadot			dmas = <&blsp1_dma 4>, <&blsp1_dma 5>;
8868bab661aSEmmanuel Vadot			dma-names = "tx", "rx";
8878bab661aSEmmanuel Vadot			pinctrl-names = "default", "sleep";
8888bab661aSEmmanuel Vadot			pinctrl-0 = <&spi1_default>;
8898bab661aSEmmanuel Vadot			pinctrl-1 = <&spi1_sleep>;
8908bab661aSEmmanuel Vadot			#address-cells = <1>;
8918bab661aSEmmanuel Vadot			#size-cells = <0>;
8928bab661aSEmmanuel Vadot			status = "disabled";
8938bab661aSEmmanuel Vadot		};
8948bab661aSEmmanuel Vadot
8958bab661aSEmmanuel Vadot		blsp1_i2c2: i2c@78b6000 {
8968bab661aSEmmanuel Vadot			compatible = "qcom,i2c-qup-v2.2.1";
8978bab661aSEmmanuel Vadot			reg = <0x078b6000 0x500>;
8988bab661aSEmmanuel Vadot			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
8998bab661aSEmmanuel Vadot			clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
9008bab661aSEmmanuel Vadot			clock-names = "core", "iface";
9018bab661aSEmmanuel Vadot			clock-frequency = <400000>;
9028bab661aSEmmanuel Vadot			dmas = <&blsp1_dma 6>, <&blsp1_dma 7>;
9038bab661aSEmmanuel Vadot			dma-names = "tx", "rx";
9048bab661aSEmmanuel Vadot			pinctrl-names = "default", "sleep";
9058bab661aSEmmanuel Vadot			pinctrl-0 = <&blsp1_i2c2_default>;
9068bab661aSEmmanuel Vadot			pinctrl-1 = <&blsp1_i2c2_default>;
9078bab661aSEmmanuel Vadot			#address-cells = <1>;
9088bab661aSEmmanuel Vadot			#size-cells = <0>;
9098bab661aSEmmanuel Vadot			status = "disabled";
9108bab661aSEmmanuel Vadot		};
9118bab661aSEmmanuel Vadot
9128bab661aSEmmanuel Vadot		blsp1_i2c4: i2c@78b8000 {
9138bab661aSEmmanuel Vadot			compatible = "qcom,i2c-qup-v2.2.1";
9148bab661aSEmmanuel Vadot			reg = <0x078b8000 0x500>;
9158bab661aSEmmanuel Vadot			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
9168bab661aSEmmanuel Vadot			clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
9178bab661aSEmmanuel Vadot			clock-names = "core", "iface";
9188bab661aSEmmanuel Vadot			clock-frequency = <400000>;
9198bab661aSEmmanuel Vadot			dmas = <&blsp1_dma 10>, <&blsp1_dma 11>;
9208bab661aSEmmanuel Vadot			dma-names = "tx", "rx";
9218bab661aSEmmanuel Vadot			pinctrl-names = "default", "sleep";
9228bab661aSEmmanuel Vadot			pinctrl-0 = <&blsp1_i2c4_default>;
9238bab661aSEmmanuel Vadot			pinctrl-1 = <&blsp1_i2c4_sleep>;
9248bab661aSEmmanuel Vadot			#address-cells = <1>;
9258bab661aSEmmanuel Vadot			#size-cells = <0>;
9268bab661aSEmmanuel Vadot			status = "disabled";
9278bab661aSEmmanuel Vadot		};
9288bab661aSEmmanuel Vadot
9298bab661aSEmmanuel Vadot		otg: usb@78db000 {
9308bab661aSEmmanuel Vadot			compatible = "qcom,ci-hdrc";
9318bab661aSEmmanuel Vadot			reg = <0x078db000 0x200>,
9328bab661aSEmmanuel Vadot			      <0x078db200 0x200>;
9338bab661aSEmmanuel Vadot			interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
9348bab661aSEmmanuel Vadot				     <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
9358bab661aSEmmanuel Vadot			clocks = <&gcc GCC_USB_HS_AHB_CLK>, <&gcc GCC_USB_HS_SYSTEM_CLK>;
9368bab661aSEmmanuel Vadot			clock-names = "iface", "core";
9378bab661aSEmmanuel Vadot			assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
9388bab661aSEmmanuel Vadot			assigned-clock-rates = <80000000>;
9398bab661aSEmmanuel Vadot			resets = <&gcc RST_USB_HS_BCR>;
9408bab661aSEmmanuel Vadot			reset-names = "core";
9418bab661aSEmmanuel Vadot			ahb-burst-config = <0>;
9428bab661aSEmmanuel Vadot			dr_mode = "peripheral";
9438bab661aSEmmanuel Vadot			phy_type = "ulpi";
9448bab661aSEmmanuel Vadot			phy-names = "usb-phy";
9458bab661aSEmmanuel Vadot			phys = <&usb_hs_phy>;
9468bab661aSEmmanuel Vadot			status = "disabled";
9478bab661aSEmmanuel Vadot			#reset-cells = <1>;
9488bab661aSEmmanuel Vadot		};
9498bab661aSEmmanuel Vadot
9508bab661aSEmmanuel Vadot		sdhc_3: mmc@7a24000 {
9518bab661aSEmmanuel Vadot			compatible = "qcom,msm8976-sdhci", "qcom,sdhci-msm-v4";
9528bab661aSEmmanuel Vadot			reg = <0x07a24900 0x11c>, <0x07a24000 0x800>;
9538bab661aSEmmanuel Vadot			reg-names = "hc", "core";
9548bab661aSEmmanuel Vadot
9558bab661aSEmmanuel Vadot			interrupts = <GIC_SPI 295 IRQ_TYPE_LEVEL_HIGH>,
9568bab661aSEmmanuel Vadot				     <GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>;
9578bab661aSEmmanuel Vadot			interrupt-names = "hc_irq", "pwr_irq";
9588bab661aSEmmanuel Vadot
9598bab661aSEmmanuel Vadot			clocks = <&gcc GCC_SDCC3_AHB_CLK>,
9608bab661aSEmmanuel Vadot				 <&gcc GCC_SDCC3_APPS_CLK>,
9618bab661aSEmmanuel Vadot				 <&rpmcc RPM_SMD_XO_CLK_SRC>;
9628bab661aSEmmanuel Vadot			clock-names = "iface", "core", "xo";
9638bab661aSEmmanuel Vadot
9648bab661aSEmmanuel Vadot			status = "disabled";
9658bab661aSEmmanuel Vadot		};
9668bab661aSEmmanuel Vadot
9678bab661aSEmmanuel Vadot		blsp2_dma: dma-controller@7ac4000 {
9688bab661aSEmmanuel Vadot			compatible = "qcom,bam-v1.7.0";
9698bab661aSEmmanuel Vadot			reg = <0x07ac4000 0x1f000>;
9708bab661aSEmmanuel Vadot			interrupts = <GIC_SPI 239 IRQ_TYPE_LEVEL_HIGH>;
9718bab661aSEmmanuel Vadot			clocks = <&gcc GCC_BLSP2_AHB_CLK>;
9728bab661aSEmmanuel Vadot			clock-names = "bam_clk";
9738bab661aSEmmanuel Vadot			#dma-cells = <1>;
9748bab661aSEmmanuel Vadot			qcom,ee = <0>;
9758bab661aSEmmanuel Vadot		};
9768bab661aSEmmanuel Vadot
9778bab661aSEmmanuel Vadot		blsp2_uart2: serial@7af0000 {
9788bab661aSEmmanuel Vadot			compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
9798bab661aSEmmanuel Vadot			reg = <0x07af0000 0x200>;
9808bab661aSEmmanuel Vadot			interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>;
9818bab661aSEmmanuel Vadot			clocks = <&gcc GCC_BLSP2_UART2_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
9828bab661aSEmmanuel Vadot			clock-names = "core", "iface";
9838bab661aSEmmanuel Vadot			dmas = <&blsp2_dma 0>, <&blsp2_dma 1>;
9848bab661aSEmmanuel Vadot			dma-names = "tx", "rx";
9858bab661aSEmmanuel Vadot			status = "disabled";
9868bab661aSEmmanuel Vadot		};
9878bab661aSEmmanuel Vadot
9888bab661aSEmmanuel Vadot		blsp2_i2c2: i2c@7af6000 {
9898bab661aSEmmanuel Vadot			compatible = "qcom,i2c-qup-v2.2.1";
9908bab661aSEmmanuel Vadot			reg = <0x07af6000 0x600>;
9918bab661aSEmmanuel Vadot			interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
9928bab661aSEmmanuel Vadot			clocks = <&gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
9938bab661aSEmmanuel Vadot			clock-names = "core", "iface";
9948bab661aSEmmanuel Vadot			clock-frequency = <400000>;
9958bab661aSEmmanuel Vadot			dmas = <&blsp2_dma 6>, <&blsp2_dma 7>;
9968bab661aSEmmanuel Vadot			dma-names = "tx", "rx";
9978bab661aSEmmanuel Vadot			pinctrl-names = "default", "sleep";
9988bab661aSEmmanuel Vadot			pinctrl-0 = <&blsp2_i2c2_default>;
9998bab661aSEmmanuel Vadot			pinctrl-1 = <&blsp2_i2c2_sleep>;
10008bab661aSEmmanuel Vadot			#address-cells = <1>;
10018bab661aSEmmanuel Vadot			#size-cells = <0>;
10028bab661aSEmmanuel Vadot			status = "disabled";
10038bab661aSEmmanuel Vadot		};
10048bab661aSEmmanuel Vadot
10058bab661aSEmmanuel Vadot		blsp2_i2c4: i2c@7af8000 {
10068bab661aSEmmanuel Vadot			compatible = "qcom,i2c-qup-v2.2.1";
10078bab661aSEmmanuel Vadot			reg = <0x07af8000 0x600>;
10088bab661aSEmmanuel Vadot			interrupts = <GIC_SPI 302 IRQ_TYPE_LEVEL_HIGH>;
10098bab661aSEmmanuel Vadot			clocks = <&gcc GCC_BLSP2_QUP4_I2C_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>;
10108bab661aSEmmanuel Vadot			clock-names = "core", "iface";
10118bab661aSEmmanuel Vadot			clock-frequency = <400000>;
10128bab661aSEmmanuel Vadot			dmas = <&blsp2_dma 10>, <&blsp2_dma 11>;
10138bab661aSEmmanuel Vadot			dma-names = "tx", "rx";
10148bab661aSEmmanuel Vadot			pinctrl-names = "default", "sleep";
10158bab661aSEmmanuel Vadot			pinctrl-0 = <&blsp2_i2c4_default>;
10168bab661aSEmmanuel Vadot			pinctrl-1 = <&blsp2_i2c4_sleep>;
10178bab661aSEmmanuel Vadot			#address-cells = <1>;
10188bab661aSEmmanuel Vadot			#size-cells = <0>;
10198bab661aSEmmanuel Vadot			status = "disabled";
10208bab661aSEmmanuel Vadot		};
10218bab661aSEmmanuel Vadot
10228bab661aSEmmanuel Vadot		intc: interrupt-controller@b000000 {
10238bab661aSEmmanuel Vadot			compatible = "qcom,msm-qgic2";
10248bab661aSEmmanuel Vadot			reg = <0x0b000000 0x1000>, <0x0b002000 0x1000>;
10258bab661aSEmmanuel Vadot			interrupt-controller;
10268bab661aSEmmanuel Vadot			#interrupt-cells = <3>;
10278bab661aSEmmanuel Vadot		};
10288bab661aSEmmanuel Vadot
10298bab661aSEmmanuel Vadot		apcs: mailbox@b011000 {
10308bab661aSEmmanuel Vadot			compatible = "qcom,msm8976-apcs-kpss-global", "syscon";
10318bab661aSEmmanuel Vadot			reg = <0x0b011000 0x1000>;
10328bab661aSEmmanuel Vadot			#mbox-cells = <1>;
10338bab661aSEmmanuel Vadot		};
10348bab661aSEmmanuel Vadot
10358bab661aSEmmanuel Vadot		timer@b120000 {
10368bab661aSEmmanuel Vadot			compatible = "arm,armv7-timer-mem";
10378bab661aSEmmanuel Vadot			reg = <0x0b120000 0x1000>;
10388bab661aSEmmanuel Vadot			#address-cells = <1>;
10398bab661aSEmmanuel Vadot			#size-cells = <1>;
10408bab661aSEmmanuel Vadot			ranges;
10418bab661aSEmmanuel Vadot			clock-frequency = <19200000>;
10428bab661aSEmmanuel Vadot
10438bab661aSEmmanuel Vadot			frame@b121000 {
10448bab661aSEmmanuel Vadot				reg = <0x0b121000 0x1000>, <0x0b122000 0x1000>;
10458bab661aSEmmanuel Vadot				interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
10468bab661aSEmmanuel Vadot					     <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
10478bab661aSEmmanuel Vadot				frame-number = <0>;
10488bab661aSEmmanuel Vadot			};
10498bab661aSEmmanuel Vadot
10508bab661aSEmmanuel Vadot			frame@b123000 {
10518bab661aSEmmanuel Vadot				reg = <0x0b123000 0x1000>;
10528bab661aSEmmanuel Vadot				interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
10538bab661aSEmmanuel Vadot				frame-number = <1>;
10548bab661aSEmmanuel Vadot				status = "disabled";
10558bab661aSEmmanuel Vadot			};
10568bab661aSEmmanuel Vadot
10578bab661aSEmmanuel Vadot			frame@b124000 {
10588bab661aSEmmanuel Vadot				reg = <0x0b124000 0x1000>;
10598bab661aSEmmanuel Vadot				interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
10608bab661aSEmmanuel Vadot				frame-number = <2>;
10618bab661aSEmmanuel Vadot				status = "disabled";
10628bab661aSEmmanuel Vadot			};
10638bab661aSEmmanuel Vadot
10648bab661aSEmmanuel Vadot			frame@b125000 {
10658bab661aSEmmanuel Vadot				reg = <0x0b125000 0x1000>;
10668bab661aSEmmanuel Vadot				interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
10678bab661aSEmmanuel Vadot				frame-number = <3>;
10688bab661aSEmmanuel Vadot				status = "disabled";
10698bab661aSEmmanuel Vadot			};
10708bab661aSEmmanuel Vadot
10718bab661aSEmmanuel Vadot			frame@b126000 {
10728bab661aSEmmanuel Vadot				reg = <0x0b126000 0x1000>;
10738bab661aSEmmanuel Vadot				interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
10748bab661aSEmmanuel Vadot				frame-number = <4>;
10758bab661aSEmmanuel Vadot				status = "disabled";
10768bab661aSEmmanuel Vadot			};
10778bab661aSEmmanuel Vadot
10788bab661aSEmmanuel Vadot			frame@b127000 {
10798bab661aSEmmanuel Vadot				reg = <0x0b127000 0x1000>;
10808bab661aSEmmanuel Vadot				interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
10818bab661aSEmmanuel Vadot				frame-number = <5>;
10828bab661aSEmmanuel Vadot				status = "disabled";
10838bab661aSEmmanuel Vadot			};
10848bab661aSEmmanuel Vadot
10858bab661aSEmmanuel Vadot			frame@b128000 {
10868bab661aSEmmanuel Vadot				reg = <0x0b128000 0x1000>;
10878bab661aSEmmanuel Vadot				interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
10888bab661aSEmmanuel Vadot				frame-number = <6>;
10898bab661aSEmmanuel Vadot				status = "disabled";
10908bab661aSEmmanuel Vadot			};
10918bab661aSEmmanuel Vadot		};
10928bab661aSEmmanuel Vadot
10938bab661aSEmmanuel Vadot		imem: sram@8600000 {
10948bab661aSEmmanuel Vadot			compatible = "qcom,msm8976-imem", "syscon", "simple-mfd";
10958bab661aSEmmanuel Vadot			reg = <0x08600000 0x1000>;
10968bab661aSEmmanuel Vadot			#address-cells = <1>;
10978bab661aSEmmanuel Vadot			#size-cells = <1>;
10988bab661aSEmmanuel Vadot
10998bab661aSEmmanuel Vadot			ranges = <0 0x08600000 0x1000>;
11008bab661aSEmmanuel Vadot
11018bab661aSEmmanuel Vadot			pil-reloc@94c {
11028bab661aSEmmanuel Vadot				compatible = "qcom,pil-reloc-info";
11038bab661aSEmmanuel Vadot				reg = <0x94c 0xc8>;
11048bab661aSEmmanuel Vadot			};
11058bab661aSEmmanuel Vadot		};
11068bab661aSEmmanuel Vadot	};
11078bab661aSEmmanuel Vadot
11088bab661aSEmmanuel Vadot	thermal-zones {
11098bab661aSEmmanuel Vadot		aoss0-thermal {
11108bab661aSEmmanuel Vadot			polling-delay-passive = <250>;
11118bab661aSEmmanuel Vadot			polling-delay = <1000>;
11128bab661aSEmmanuel Vadot
11138bab661aSEmmanuel Vadot			thermal-sensors = <&tsens 0>;
11148bab661aSEmmanuel Vadot
11158bab661aSEmmanuel Vadot			trips {
11168bab661aSEmmanuel Vadot				aoss0_alert0: trip-point0 {
11178bab661aSEmmanuel Vadot					temperature = <75000>;
11188bab661aSEmmanuel Vadot					hysteresis = <2000>;
11198bab661aSEmmanuel Vadot					type = "hot";
11208bab661aSEmmanuel Vadot				};
11218bab661aSEmmanuel Vadot			};
11228bab661aSEmmanuel Vadot		};
11238bab661aSEmmanuel Vadot
11248bab661aSEmmanuel Vadot		modem-thermal {
11258bab661aSEmmanuel Vadot			polling-delay-passive = <250>;
11268bab661aSEmmanuel Vadot			polling-delay = <1000>;
11278bab661aSEmmanuel Vadot
11288bab661aSEmmanuel Vadot			thermal-sensors = <&tsens 1>;
11298bab661aSEmmanuel Vadot			trips {
11308bab661aSEmmanuel Vadot				modem_alert0: trip-point0 {
11318bab661aSEmmanuel Vadot					temperature = <75000>;
11328bab661aSEmmanuel Vadot					hysteresis = <2000>;
11338bab661aSEmmanuel Vadot					type = "hot";
11348bab661aSEmmanuel Vadot				};
11358bab661aSEmmanuel Vadot			};
11368bab661aSEmmanuel Vadot		};
11378bab661aSEmmanuel Vadot
11388bab661aSEmmanuel Vadot		qdsp-thermal {
11398bab661aSEmmanuel Vadot			polling-delay-passive = <250>;
11408bab661aSEmmanuel Vadot			polling-delay = <1000>;
11418bab661aSEmmanuel Vadot
11428bab661aSEmmanuel Vadot			thermal-sensors = <&tsens 2>;
11438bab661aSEmmanuel Vadot			trips {
11448bab661aSEmmanuel Vadot				qdsp_alert0: trip-point0 {
11458bab661aSEmmanuel Vadot					temperature = <75000>;
11468bab661aSEmmanuel Vadot					hysteresis = <2000>;
11478bab661aSEmmanuel Vadot					type = "hot";
11488bab661aSEmmanuel Vadot				};
11498bab661aSEmmanuel Vadot			};
11508bab661aSEmmanuel Vadot		};
11518bab661aSEmmanuel Vadot
11528bab661aSEmmanuel Vadot		cam-isp-thermal {
11538bab661aSEmmanuel Vadot			polling-delay-passive = <250>;
11548bab661aSEmmanuel Vadot			polling-delay = <1000>;
11558bab661aSEmmanuel Vadot
11568bab661aSEmmanuel Vadot			thermal-sensors = <&tsens 3>;
11578bab661aSEmmanuel Vadot			trips {
11588bab661aSEmmanuel Vadot				cam_isp_alert0: trip-point0 {
11598bab661aSEmmanuel Vadot					temperature = <75000>;
11608bab661aSEmmanuel Vadot					hysteresis = <2000>;
11618bab661aSEmmanuel Vadot					type = "hot";
11628bab661aSEmmanuel Vadot				};
11638bab661aSEmmanuel Vadot			};
11648bab661aSEmmanuel Vadot		};
11658bab661aSEmmanuel Vadot
11668bab661aSEmmanuel Vadot		cpu4-thermal {
11678bab661aSEmmanuel Vadot			polling-delay-passive = <250>;
11688bab661aSEmmanuel Vadot			polling-delay = <1000>;
11698bab661aSEmmanuel Vadot			thermal-sensors = <&tsens 4>;
11708bab661aSEmmanuel Vadot
11718bab661aSEmmanuel Vadot			trips {
11728bab661aSEmmanuel Vadot				cpu4_alert0: trip-point0 {
11738bab661aSEmmanuel Vadot					temperature = <50000>;
11748bab661aSEmmanuel Vadot					hysteresis = <2000>;
11758bab661aSEmmanuel Vadot					type = "hot";
11768bab661aSEmmanuel Vadot				};
11778bab661aSEmmanuel Vadot				cpu4_alert1: trip-point1 {
11788bab661aSEmmanuel Vadot					temperature = <55000>;
11798bab661aSEmmanuel Vadot					hysteresis = <2000>;
11808bab661aSEmmanuel Vadot					type = "passive";
11818bab661aSEmmanuel Vadot				};
11828bab661aSEmmanuel Vadot				cpu4_crit: cpu-crit {
11838bab661aSEmmanuel Vadot					temperature = <75000>;
11848bab661aSEmmanuel Vadot					hysteresis = <2000>;
11858bab661aSEmmanuel Vadot					type = "critical";
11868bab661aSEmmanuel Vadot				};
11878bab661aSEmmanuel Vadot			};
11888bab661aSEmmanuel Vadot		};
11898bab661aSEmmanuel Vadot
11908bab661aSEmmanuel Vadot		cpu5-thermal {
11918bab661aSEmmanuel Vadot			polling-delay-passive = <250>;
11928bab661aSEmmanuel Vadot			polling-delay = <1000>;
11938bab661aSEmmanuel Vadot			thermal-sensors = <&tsens 5>;
11948bab661aSEmmanuel Vadot
11958bab661aSEmmanuel Vadot			trips {
11968bab661aSEmmanuel Vadot				cpu5_alert0: trip-point0 {
11978bab661aSEmmanuel Vadot					temperature = <50000>;
11988bab661aSEmmanuel Vadot					hysteresis = <2000>;
11998bab661aSEmmanuel Vadot					type = "hot";
12008bab661aSEmmanuel Vadot				};
12018bab661aSEmmanuel Vadot				cpu5_alert1: trip-point1 {
12028bab661aSEmmanuel Vadot					temperature = <55000>;
12038bab661aSEmmanuel Vadot					hysteresis = <2000>;
12048bab661aSEmmanuel Vadot					type = "passive";
12058bab661aSEmmanuel Vadot				};
12068bab661aSEmmanuel Vadot				cpu5_crit: cpu-crit {
12078bab661aSEmmanuel Vadot					temperature = <75000>;
12088bab661aSEmmanuel Vadot					hysteresis = <2000>;
12098bab661aSEmmanuel Vadot					type = "critical";
12108bab661aSEmmanuel Vadot				};
12118bab661aSEmmanuel Vadot			};
12128bab661aSEmmanuel Vadot		};
12138bab661aSEmmanuel Vadot
12148bab661aSEmmanuel Vadot		cpu6-thermal {
12158bab661aSEmmanuel Vadot			polling-delay-passive = <250>;
12168bab661aSEmmanuel Vadot			polling-delay = <1000>;
12178bab661aSEmmanuel Vadot			thermal-sensors = <&tsens 6>;
12188bab661aSEmmanuel Vadot
12198bab661aSEmmanuel Vadot			trips {
12208bab661aSEmmanuel Vadot				cpu6_alert0: trip-point0 {
12218bab661aSEmmanuel Vadot					temperature = <50000>;
12228bab661aSEmmanuel Vadot					hysteresis = <2000>;
12238bab661aSEmmanuel Vadot					type = "hot";
12248bab661aSEmmanuel Vadot				};
12258bab661aSEmmanuel Vadot				cpu6_alert1: trip-point1 {
12268bab661aSEmmanuel Vadot					temperature = <55000>;
12278bab661aSEmmanuel Vadot					hysteresis = <2000>;
12288bab661aSEmmanuel Vadot					type = "passive";
12298bab661aSEmmanuel Vadot				};
12308bab661aSEmmanuel Vadot				cpu6_crit: cpu-crit {
12318bab661aSEmmanuel Vadot					temperature = <75000>;
12328bab661aSEmmanuel Vadot					hysteresis = <2000>;
12338bab661aSEmmanuel Vadot					type = "critical";
12348bab661aSEmmanuel Vadot				};
12358bab661aSEmmanuel Vadot			};
12368bab661aSEmmanuel Vadot		};
12378bab661aSEmmanuel Vadot
12388bab661aSEmmanuel Vadot		cpu7-thermal {
12398bab661aSEmmanuel Vadot			polling-delay-passive = <250>;
12408bab661aSEmmanuel Vadot			polling-delay = <1000>;
12418bab661aSEmmanuel Vadot			thermal-sensors = <&tsens 7>;
12428bab661aSEmmanuel Vadot
12438bab661aSEmmanuel Vadot			trips {
12448bab661aSEmmanuel Vadot				cpu7_alert0: trip-point0 {
12458bab661aSEmmanuel Vadot					temperature = <50000>;
12468bab661aSEmmanuel Vadot					hysteresis = <2000>;
12478bab661aSEmmanuel Vadot					type = "hot";
12488bab661aSEmmanuel Vadot				};
12498bab661aSEmmanuel Vadot				cpu7_alert1: trip-point1 {
12508bab661aSEmmanuel Vadot					temperature = <55000>;
12518bab661aSEmmanuel Vadot					hysteresis = <2000>;
12528bab661aSEmmanuel Vadot					type = "passive";
12538bab661aSEmmanuel Vadot				};
12548bab661aSEmmanuel Vadot				cpu7_crit: cpu-crit {
12558bab661aSEmmanuel Vadot					temperature = <75000>;
12568bab661aSEmmanuel Vadot					hysteresis = <2000>;
12578bab661aSEmmanuel Vadot					type = "critical";
12588bab661aSEmmanuel Vadot				};
12598bab661aSEmmanuel Vadot			};
12608bab661aSEmmanuel Vadot		};
12618bab661aSEmmanuel Vadot
12628bab661aSEmmanuel Vadot		big-l2-thermal {
12638bab661aSEmmanuel Vadot			polling-delay-passive = <250>;
12648bab661aSEmmanuel Vadot			polling-delay = <1000>;
12658bab661aSEmmanuel Vadot			thermal-sensors = <&tsens 8>;
12668bab661aSEmmanuel Vadot
12678bab661aSEmmanuel Vadot			trips {
12688bab661aSEmmanuel Vadot				l2_alert0: trip-point0 {
12698bab661aSEmmanuel Vadot					temperature = <50000>;
12708bab661aSEmmanuel Vadot					hysteresis = <2000>;
12718bab661aSEmmanuel Vadot					type = "hot";
12728bab661aSEmmanuel Vadot				};
12738bab661aSEmmanuel Vadot				l2_alert1: trip-point1 {
12748bab661aSEmmanuel Vadot					temperature = <55000>;
12758bab661aSEmmanuel Vadot					hysteresis = <2000>;
12768bab661aSEmmanuel Vadot					type = "passive";
12778bab661aSEmmanuel Vadot				};
12788bab661aSEmmanuel Vadot				l2_crit: l2-crit {
12798bab661aSEmmanuel Vadot					temperature = <75000>;
12808bab661aSEmmanuel Vadot					hysteresis = <2000>;
12818bab661aSEmmanuel Vadot					type = "critical";
12828bab661aSEmmanuel Vadot				};
12838bab661aSEmmanuel Vadot			};
12848bab661aSEmmanuel Vadot		};
12858bab661aSEmmanuel Vadot
12868bab661aSEmmanuel Vadot		cpu0-thermal {
12878bab661aSEmmanuel Vadot			polling-delay-passive = <250>;
12888bab661aSEmmanuel Vadot			polling-delay = <1000>;
12898bab661aSEmmanuel Vadot			thermal-sensors = <&tsens 9>;
12908bab661aSEmmanuel Vadot
12918bab661aSEmmanuel Vadot			trips {
12928bab661aSEmmanuel Vadot				cpu0_alert0: trip-point0 {
12938bab661aSEmmanuel Vadot					temperature = <50000>;
12948bab661aSEmmanuel Vadot					hysteresis = <2000>;
12958bab661aSEmmanuel Vadot					type = "hot";
12968bab661aSEmmanuel Vadot				};
12978bab661aSEmmanuel Vadot				cpu0_alert1: trip-point1 {
12988bab661aSEmmanuel Vadot					temperature = <55000>;
12998bab661aSEmmanuel Vadot					hysteresis = <2000>;
13008bab661aSEmmanuel Vadot					type = "passive";
13018bab661aSEmmanuel Vadot				};
13028bab661aSEmmanuel Vadot				cpu0_crit: cpu-crit {
13038bab661aSEmmanuel Vadot					temperature = <75000>;
13048bab661aSEmmanuel Vadot					hysteresis = <2000>;
13058bab661aSEmmanuel Vadot					type = "critical";
13068bab661aSEmmanuel Vadot				};
13078bab661aSEmmanuel Vadot			};
13088bab661aSEmmanuel Vadot		};
13098bab661aSEmmanuel Vadot
13108bab661aSEmmanuel Vadot		gpu-thermal {
13118bab661aSEmmanuel Vadot			polling-delay-passive = <250>;
13128bab661aSEmmanuel Vadot			polling-delay = <1000>;
13138bab661aSEmmanuel Vadot			thermal-sensors = <&tsens 10>;
13148bab661aSEmmanuel Vadot
13158bab661aSEmmanuel Vadot			trips {
13168bab661aSEmmanuel Vadot				gpu_alert0: trip-point0 {
13178bab661aSEmmanuel Vadot					temperature = <50000>;
13188bab661aSEmmanuel Vadot					hysteresis = <2000>;
13198bab661aSEmmanuel Vadot					type = "hot";
13208bab661aSEmmanuel Vadot				};
13218bab661aSEmmanuel Vadot				gpu_alert1: trip-point1 {
13228bab661aSEmmanuel Vadot					temperature = <55000>;
13238bab661aSEmmanuel Vadot					hysteresis = <2000>;
13248bab661aSEmmanuel Vadot					type = "passive";
13258bab661aSEmmanuel Vadot				};
13268bab661aSEmmanuel Vadot				gpu_crit: gpu-crit {
13278bab661aSEmmanuel Vadot					temperature = <75000>;
13288bab661aSEmmanuel Vadot					hysteresis = <2000>;
13298bab661aSEmmanuel Vadot					type = "critical";
13308bab661aSEmmanuel Vadot				};
13318bab661aSEmmanuel Vadot			};
13328bab661aSEmmanuel Vadot		};
13338bab661aSEmmanuel Vadot	};
13348bab661aSEmmanuel Vadot
13358bab661aSEmmanuel Vadot	timer {
13368bab661aSEmmanuel Vadot		compatible = "arm,armv8-timer";
13378bab661aSEmmanuel Vadot		interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
13388bab661aSEmmanuel Vadot			     <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
13398bab661aSEmmanuel Vadot			     <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
13408bab661aSEmmanuel Vadot			     <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
13418bab661aSEmmanuel Vadot		clock-frequency = <19200000>;
13428bab661aSEmmanuel Vadot	};
13438bab661aSEmmanuel Vadot};
1344