1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
6 #include <dt-bindings/arm/coresight-cti-dt.h>
7 #include <dt-bindings/clock/qcom,gcc-msm8916.h>
8 #include <dt-bindings/clock/qcom,rpmcc.h>
9 #include <dt-bindings/interconnect/qcom,msm8916.h>
10 #include <dt-bindings/interrupt-controller/arm-gic.h>
11 #include <dt-bindings/power/qcom-rpmpd.h>
12 #include <dt-bindings/reset/qcom,gcc-msm8916.h>
13 #include <dt-bindings/soc/qcom,apr.h>
14 #include <dt-bindings/thermal/thermal.h>
17 interrupt-parent = <&intc>;
25 device_type = "memory";
26 /* We expect the bootloader to fill in the reg */
27 reg = <0 0x80000000 0 0>;
36 reg = <0x0 0x86000000 0x0 0x300000>;
41 compatible = "qcom,smem";
42 reg = <0x0 0x86300000 0x0 0x100000>;
45 hwlocks = <&tcsr_mutex 3>;
46 qcom,rpm-msg-ram = <&rpm_msg_ram>;
50 reg = <0x0 0x86400000 0x0 0x100000>;
55 reg = <0x0 0x86500000 0x0 0x180000>;
60 reg = <0x0 0x86680000 0x0 0x80000>;
65 compatible = "qcom,rmtfs-mem";
66 reg = <0x0 0x86700000 0x0 0xe0000>;
73 reg = <0x0 0x867e0000 0x0 0x20000>;
77 mpss_mem: mpss@86800000 {
79 * The memory region for the mpss firmware is generally
80 * relocatable and could be allocated dynamically.
81 * However, many firmware versions tend to fail when
82 * loaded to some special addresses, so it is hard to
83 * define reliable alloc-ranges.
85 * alignment = <0x0 0x400000>;
86 * alloc-ranges = <0x0 0x86800000 0x0 0x8000000>;
88 reg = <0x0 0x86800000 0x0 0>; /* size is device-specific */
94 size = <0x0 0x600000>;
95 alignment = <0x0 0x100000>;
96 alloc-ranges = <0x0 0x86800000 0x0 0x8000000>;
102 size = <0x0 0x500000>;
103 alignment = <0x0 0x100000>;
104 alloc-ranges = <0x0 0x86800000 0x0 0x8000000>;
110 size = <0x0 0x100000>;
111 alignment = <0x0 0x100000>;
112 alloc-ranges = <0x0 0x86800000 0x0 0x8000000>;
120 compatible = "fixed-clock";
122 clock-frequency = <19200000>;
125 sleep_clk: sleep-clk {
126 compatible = "fixed-clock";
128 clock-frequency = <32768>;
133 #address-cells = <1>;
138 compatible = "arm,cortex-a53";
140 next-level-cache = <&L2_0>;
141 enable-method = "psci";
143 operating-points-v2 = <&cpu_opp_table>;
144 #cooling-cells = <2>;
145 power-domains = <&CPU_PD0>;
146 power-domain-names = "psci";
147 qcom,acc = <&cpu0_acc>;
148 qcom,saw = <&cpu0_saw>;
153 compatible = "arm,cortex-a53";
155 next-level-cache = <&L2_0>;
156 enable-method = "psci";
158 operating-points-v2 = <&cpu_opp_table>;
159 #cooling-cells = <2>;
160 power-domains = <&CPU_PD1>;
161 power-domain-names = "psci";
162 qcom,acc = <&cpu1_acc>;
163 qcom,saw = <&cpu1_saw>;
168 compatible = "arm,cortex-a53";
170 next-level-cache = <&L2_0>;
171 enable-method = "psci";
173 operating-points-v2 = <&cpu_opp_table>;
174 #cooling-cells = <2>;
175 power-domains = <&CPU_PD2>;
176 power-domain-names = "psci";
177 qcom,acc = <&cpu2_acc>;
178 qcom,saw = <&cpu2_saw>;
183 compatible = "arm,cortex-a53";
185 next-level-cache = <&L2_0>;
186 enable-method = "psci";
188 operating-points-v2 = <&cpu_opp_table>;
189 #cooling-cells = <2>;
190 power-domains = <&CPU_PD3>;
191 power-domain-names = "psci";
192 qcom,acc = <&cpu3_acc>;
193 qcom,saw = <&cpu3_saw>;
197 compatible = "cache";
203 entry-method = "psci";
205 CPU_SLEEP_0: cpu-sleep-0 {
206 compatible = "arm,idle-state";
207 idle-state-name = "standalone-power-collapse";
208 arm,psci-suspend-param = <0x40000002>;
209 entry-latency-us = <130>;
210 exit-latency-us = <150>;
211 min-residency-us = <2000>;
218 CLUSTER_RET: cluster-retention {
219 compatible = "domain-idle-state";
220 arm,psci-suspend-param = <0x41000012>;
221 entry-latency-us = <500>;
222 exit-latency-us = <500>;
223 min-residency-us = <2000>;
226 CLUSTER_PWRDN: cluster-gdhs {
227 compatible = "domain-idle-state";
228 arm,psci-suspend-param = <0x41000032>;
229 entry-latency-us = <2000>;
230 exit-latency-us = <2000>;
231 min-residency-us = <6000>;
236 cpu_opp_table: opp-table-cpu {
237 compatible = "operating-points-v2";
241 opp-hz = /bits/ 64 <200000000>;
244 opp-hz = /bits/ 64 <400000000>;
247 opp-hz = /bits/ 64 <800000000>;
250 opp-hz = /bits/ 64 <998400000>;
256 compatible = "qcom,scm-msm8916", "qcom,scm";
257 clocks = <&gcc GCC_CRYPTO_CLK>,
258 <&gcc GCC_CRYPTO_AXI_CLK>,
259 <&gcc GCC_CRYPTO_AHB_CLK>;
260 clock-names = "core", "bus", "iface";
263 qcom,dload-mode = <&tcsr 0x6100>;
268 compatible = "arm,cortex-a53-pmu";
269 interrupts = <GIC_PPI 7 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
273 compatible = "arm,psci-1.0";
276 CPU_PD0: power-domain-cpu0 {
277 #power-domain-cells = <0>;
278 power-domains = <&CLUSTER_PD>;
279 domain-idle-states = <&CPU_SLEEP_0>;
282 CPU_PD1: power-domain-cpu1 {
283 #power-domain-cells = <0>;
284 power-domains = <&CLUSTER_PD>;
285 domain-idle-states = <&CPU_SLEEP_0>;
288 CPU_PD2: power-domain-cpu2 {
289 #power-domain-cells = <0>;
290 power-domains = <&CLUSTER_PD>;
291 domain-idle-states = <&CPU_SLEEP_0>;
294 CPU_PD3: power-domain-cpu3 {
295 #power-domain-cells = <0>;
296 power-domains = <&CLUSTER_PD>;
297 domain-idle-states = <&CPU_SLEEP_0>;
300 CLUSTER_PD: power-domain-cluster {
301 #power-domain-cells = <0>;
302 domain-idle-states = <&CLUSTER_RET>, <&CLUSTER_PWRDN>;
307 compatible = "qcom,msm8916-rpm-proc", "qcom,rpm-proc";
310 interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
311 qcom,ipc = <&apcs 8 0>;
312 qcom,smd-edge = <15>;
314 rpm_requests: rpm-requests {
315 compatible = "qcom,rpm-msm8916";
316 qcom,smd-channels = "rpm_requests";
318 rpmcc: clock-controller {
319 compatible = "qcom,rpmcc-msm8916", "qcom,rpmcc";
321 clocks = <&xo_board>;
325 rpmpd: power-controller {
326 compatible = "qcom,msm8916-rpmpd";
327 #power-domain-cells = <1>;
328 operating-points-v2 = <&rpmpd_opp_table>;
330 rpmpd_opp_table: opp-table {
331 compatible = "operating-points-v2";
333 rpmpd_opp_ret: opp1 {
336 rpmpd_opp_svs_krait: opp2 {
339 rpmpd_opp_svs_soc: opp3 {
342 rpmpd_opp_nom: opp4 {
345 rpmpd_opp_turbo: opp5 {
348 rpmpd_opp_super_turbo: opp6 {
358 compatible = "qcom,smp2p";
359 qcom,smem = <435>, <428>;
361 interrupts = <GIC_SPI 27 IRQ_TYPE_EDGE_RISING>;
363 qcom,ipc = <&apcs 8 14>;
365 qcom,local-pid = <0>;
366 qcom,remote-pid = <1>;
368 hexagon_smp2p_out: master-kernel {
369 qcom,entry-name = "master-kernel";
371 #qcom,smem-state-cells = <1>;
374 hexagon_smp2p_in: slave-kernel {
375 qcom,entry-name = "slave-kernel";
377 interrupt-controller;
378 #interrupt-cells = <2>;
383 compatible = "qcom,smp2p";
384 qcom,smem = <451>, <431>;
386 interrupts = <GIC_SPI 143 IRQ_TYPE_EDGE_RISING>;
388 qcom,ipc = <&apcs 8 18>;
390 qcom,local-pid = <0>;
391 qcom,remote-pid = <4>;
393 wcnss_smp2p_out: master-kernel {
394 qcom,entry-name = "master-kernel";
396 #qcom,smem-state-cells = <1>;
399 wcnss_smp2p_in: slave-kernel {
400 qcom,entry-name = "slave-kernel";
402 interrupt-controller;
403 #interrupt-cells = <2>;
408 compatible = "qcom,smsm";
410 #address-cells = <1>;
413 qcom,ipc-1 = <&apcs 8 13>;
414 qcom,ipc-3 = <&apcs 8 19>;
419 #qcom,smem-state-cells = <1>;
422 hexagon_smsm: hexagon@1 {
424 interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
426 interrupt-controller;
427 #interrupt-cells = <2>;
430 wcnss_smsm: wcnss@6 {
432 interrupts = <GIC_SPI 144 IRQ_TYPE_EDGE_RISING>;
434 interrupt-controller;
435 #interrupt-cells = <2>;
440 #address-cells = <1>;
442 ranges = <0 0 0 0xffffffff>;
443 compatible = "simple-bus";
446 compatible = "qcom,prng";
447 reg = <0x00022000 0x200>;
448 clocks = <&gcc GCC_PRNG_AHB_CLK>;
449 clock-names = "core";
453 compatible = "qcom,pshold";
454 reg = <0x004ab000 0x4>;
457 qfprom: qfprom@5c000 {
458 compatible = "qcom,msm8916-qfprom", "qcom,qfprom";
459 reg = <0x0005c000 0x1000>;
460 #address-cells = <1>;
463 tsens_base1: base1@d0 {
468 tsens_s0_p1: s0-p1@d0 {
473 tsens_s0_p2: s0-p2@d1 {
478 tsens_s1_p1: s1-p1@d2 {
482 tsens_s1_p2: s1-p2@d2 {
486 tsens_s2_p1: s2-p1@d3 {
491 tsens_s2_p2: s2-p2@d4 {
496 // no tsens with hw_id 3
498 tsens_s4_p1: s4-p1@d4 {
503 tsens_s4_p2: s4-p2@d5 {
508 tsens_s5_p1: s5-p1@d5 {
513 tsens_s5_p2: s5-p2@d6 {
518 tsens_base2: base2@d7 {
523 tsens_mode: mode@ef {
529 rpm_msg_ram: sram@60000 {
530 compatible = "qcom,rpm-msg-ram";
531 reg = <0x00060000 0x8000>;
535 compatible = "qcom,msm8916-rpm-stats";
536 reg = <0x00290000 0x10000>;
539 bimc: interconnect@400000 {
540 compatible = "qcom,msm8916-bimc";
541 reg = <0x00400000 0x62000>;
542 #interconnect-cells = <1>;
545 tsens: thermal-sensor@4a9000 {
546 compatible = "qcom,msm8916-tsens", "qcom,tsens-v0_1";
547 reg = <0x004a9000 0x1000>, /* TM */
548 <0x004a8000 0x1000>; /* SROT */
551 nvmem-cells = <&tsens_mode>,
552 <&tsens_base1>, <&tsens_base2>,
553 <&tsens_s0_p1>, <&tsens_s0_p2>,
554 <&tsens_s1_p1>, <&tsens_s1_p2>,
555 <&tsens_s2_p1>, <&tsens_s2_p2>,
556 <&tsens_s4_p1>, <&tsens_s4_p2>,
557 <&tsens_s5_p1>, <&tsens_s5_p2>;
558 nvmem-cell-names = "mode",
566 interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
567 interrupt-names = "uplow";
568 #thermal-sensor-cells = <1>;
571 pcnoc: interconnect@500000 {
572 compatible = "qcom,msm8916-pcnoc";
573 reg = <0x00500000 0x11000>;
574 #interconnect-cells = <1>;
577 snoc: interconnect@580000 {
578 compatible = "qcom,msm8916-snoc";
579 reg = <0x00580000 0x14000>;
580 #interconnect-cells = <1>;
584 compatible = "arm,coresight-stm", "arm,primecell";
585 reg = <0x00802000 0x1000>,
586 <0x09280000 0x180000>;
587 reg-names = "stm-base", "stm-stimulus-base";
589 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
590 clock-names = "apb_pclk", "atclk";
597 remote-endpoint = <&funnel0_in7>;
604 /* CTI 0 - TMC connections */
606 compatible = "arm,coresight-cti", "arm,primecell";
607 reg = <0x00810000 0x1000>;
609 clocks = <&rpmcc RPM_QDSS_CLK>;
610 clock-names = "apb_pclk";
615 /* CTI 1 - TPIU connections */
617 compatible = "arm,coresight-cti", "arm,primecell";
618 reg = <0x00811000 0x1000>;
620 clocks = <&rpmcc RPM_QDSS_CLK>;
621 clock-names = "apb_pclk";
626 /* CTIs 2-11 - no information - not instantiated */
629 compatible = "arm,coresight-tpiu", "arm,primecell";
630 reg = <0x00820000 0x1000>;
632 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
633 clock-names = "apb_pclk", "atclk";
640 remote-endpoint = <&replicator_out1>;
646 funnel0: funnel@821000 {
647 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
648 reg = <0x00821000 0x1000>;
650 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
651 clock-names = "apb_pclk", "atclk";
656 #address-cells = <1>;
660 * Not described input ports:
661 * 0 - connected to Resource and Power Manger CPU ETM
663 * 2 - connected to Modem CPU ETM
666 * 6 - connected trought funnel to Wireless CPU ETM
667 * 7 - connected to STM component
672 funnel0_in4: endpoint {
673 remote-endpoint = <&funnel1_out>;
679 funnel0_in7: endpoint {
680 remote-endpoint = <&stm_out>;
687 funnel0_out: endpoint {
688 remote-endpoint = <&etf_in>;
694 replicator: replicator@824000 {
695 compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
696 reg = <0x00824000 0x1000>;
698 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
699 clock-names = "apb_pclk", "atclk";
704 #address-cells = <1>;
709 replicator_out0: endpoint {
710 remote-endpoint = <&etr_in>;
715 replicator_out1: endpoint {
716 remote-endpoint = <&tpiu_in>;
723 replicator_in: endpoint {
724 remote-endpoint = <&etf_out>;
731 compatible = "arm,coresight-tmc", "arm,primecell";
732 reg = <0x00825000 0x1000>;
734 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
735 clock-names = "apb_pclk", "atclk";
742 remote-endpoint = <&funnel0_out>;
750 remote-endpoint = <&replicator_in>;
757 compatible = "arm,coresight-tmc", "arm,primecell";
758 reg = <0x00826000 0x1000>;
760 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
761 clock-names = "apb_pclk", "atclk";
768 remote-endpoint = <&replicator_out0>;
774 funnel1: funnel@841000 { /* APSS funnel only 4 inputs are used */
775 compatible = "arm,coresight-dynamic-funnel", "arm,primecell";
776 reg = <0x00841000 0x1000>;
778 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
779 clock-names = "apb_pclk", "atclk";
784 #address-cells = <1>;
789 funnel1_in0: endpoint {
790 remote-endpoint = <&etm0_out>;
795 funnel1_in1: endpoint {
796 remote-endpoint = <&etm1_out>;
801 funnel1_in2: endpoint {
802 remote-endpoint = <&etm2_out>;
807 funnel1_in3: endpoint {
808 remote-endpoint = <&etm3_out>;
815 funnel1_out: endpoint {
816 remote-endpoint = <&funnel0_in4>;
822 debug0: debug@850000 {
823 compatible = "arm,coresight-cpu-debug", "arm,primecell";
824 reg = <0x00850000 0x1000>;
825 clocks = <&rpmcc RPM_QDSS_CLK>;
826 clock-names = "apb_pclk";
831 debug1: debug@852000 {
832 compatible = "arm,coresight-cpu-debug", "arm,primecell";
833 reg = <0x00852000 0x1000>;
834 clocks = <&rpmcc RPM_QDSS_CLK>;
835 clock-names = "apb_pclk";
840 debug2: debug@854000 {
841 compatible = "arm,coresight-cpu-debug", "arm,primecell";
842 reg = <0x00854000 0x1000>;
843 clocks = <&rpmcc RPM_QDSS_CLK>;
844 clock-names = "apb_pclk";
849 debug3: debug@856000 {
850 compatible = "arm,coresight-cpu-debug", "arm,primecell";
851 reg = <0x00856000 0x1000>;
852 clocks = <&rpmcc RPM_QDSS_CLK>;
853 clock-names = "apb_pclk";
858 /* Core CTIs; CTIs 12-15 */
861 compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
863 reg = <0x00858000 0x1000>;
865 clocks = <&rpmcc RPM_QDSS_CLK>;
866 clock-names = "apb_pclk";
869 arm,cs-dev-assoc = <&etm0>;
876 compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
878 reg = <0x00859000 0x1000>;
880 clocks = <&rpmcc RPM_QDSS_CLK>;
881 clock-names = "apb_pclk";
884 arm,cs-dev-assoc = <&etm1>;
891 compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
893 reg = <0x0085a000 0x1000>;
895 clocks = <&rpmcc RPM_QDSS_CLK>;
896 clock-names = "apb_pclk";
899 arm,cs-dev-assoc = <&etm2>;
906 compatible = "arm,coresight-cti-v8-arch", "arm,coresight-cti",
908 reg = <0x0085b000 0x1000>;
910 clocks = <&rpmcc RPM_QDSS_CLK>;
911 clock-names = "apb_pclk";
914 arm,cs-dev-assoc = <&etm3>;
920 compatible = "arm,coresight-etm4x", "arm,primecell";
921 reg = <0x0085c000 0x1000>;
923 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
924 clock-names = "apb_pclk", "atclk";
925 arm,coresight-loses-context-with-cpu;
934 remote-endpoint = <&funnel1_in0>;
941 compatible = "arm,coresight-etm4x", "arm,primecell";
942 reg = <0x0085d000 0x1000>;
944 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
945 clock-names = "apb_pclk", "atclk";
946 arm,coresight-loses-context-with-cpu;
955 remote-endpoint = <&funnel1_in1>;
962 compatible = "arm,coresight-etm4x", "arm,primecell";
963 reg = <0x0085e000 0x1000>;
965 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
966 clock-names = "apb_pclk", "atclk";
967 arm,coresight-loses-context-with-cpu;
976 remote-endpoint = <&funnel1_in2>;
983 compatible = "arm,coresight-etm4x", "arm,primecell";
984 reg = <0x0085f000 0x1000>;
986 clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
987 clock-names = "apb_pclk", "atclk";
988 arm,coresight-loses-context-with-cpu;
997 remote-endpoint = <&funnel1_in3>;
1003 tlmm: pinctrl@1000000 {
1004 compatible = "qcom,msm8916-pinctrl";
1005 reg = <0x01000000 0x300000>;
1006 interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
1008 gpio-ranges = <&tlmm 0 0 122>;
1010 interrupt-controller;
1011 #interrupt-cells = <2>;
1013 blsp_i2c1_default: blsp-i2c1-default-state {
1014 pins = "gpio2", "gpio3";
1015 function = "blsp_i2c1";
1016 drive-strength = <2>;
1020 blsp_i2c1_sleep: blsp-i2c1-sleep-state {
1021 pins = "gpio2", "gpio3";
1023 drive-strength = <2>;
1027 blsp_i2c2_default: blsp-i2c2-default-state {
1028 pins = "gpio6", "gpio7";
1029 function = "blsp_i2c2";
1030 drive-strength = <2>;
1034 blsp_i2c2_sleep: blsp-i2c2-sleep-state {
1035 pins = "gpio6", "gpio7";
1037 drive-strength = <2>;
1041 blsp_i2c3_default: blsp-i2c3-default-state {
1042 pins = "gpio10", "gpio11";
1043 function = "blsp_i2c3";
1044 drive-strength = <2>;
1048 blsp_i2c3_sleep: blsp-i2c3-sleep-state {
1049 pins = "gpio10", "gpio11";
1051 drive-strength = <2>;
1055 blsp_i2c4_default: blsp-i2c4-default-state {
1056 pins = "gpio14", "gpio15";
1057 function = "blsp_i2c4";
1058 drive-strength = <2>;
1062 blsp_i2c4_sleep: blsp-i2c4-sleep-state {
1063 pins = "gpio14", "gpio15";
1065 drive-strength = <2>;
1069 blsp_i2c5_default: blsp-i2c5-default-state {
1070 pins = "gpio18", "gpio19";
1071 function = "blsp_i2c5";
1072 drive-strength = <2>;
1076 blsp_i2c5_sleep: blsp-i2c5-sleep-state {
1077 pins = "gpio18", "gpio19";
1079 drive-strength = <2>;
1083 blsp_i2c6_default: blsp-i2c6-default-state {
1084 pins = "gpio22", "gpio23";
1085 function = "blsp_i2c6";
1086 drive-strength = <2>;
1090 blsp_i2c6_sleep: blsp-i2c6-sleep-state {
1091 pins = "gpio22", "gpio23";
1093 drive-strength = <2>;
1097 blsp_spi1_default: blsp-spi1-default-state {
1099 pins = "gpio0", "gpio1", "gpio3";
1100 function = "blsp_spi1";
1101 drive-strength = <12>;
1107 drive-strength = <16>;
1113 blsp_spi1_sleep: blsp-spi1-sleep-state {
1114 pins = "gpio0", "gpio1", "gpio2", "gpio3";
1116 drive-strength = <2>;
1120 blsp_spi2_default: blsp-spi2-default-state {
1122 pins = "gpio4", "gpio5", "gpio7";
1123 function = "blsp_spi2";
1124 drive-strength = <12>;
1130 drive-strength = <16>;
1136 blsp_spi2_sleep: blsp-spi2-sleep-state {
1137 pins = "gpio4", "gpio5", "gpio6", "gpio7";
1139 drive-strength = <2>;
1143 blsp_spi3_default: blsp-spi3-default-state {
1145 pins = "gpio8", "gpio9", "gpio11";
1146 function = "blsp_spi3";
1147 drive-strength = <12>;
1153 drive-strength = <16>;
1159 blsp_spi3_sleep: blsp-spi3-sleep-state {
1160 pins = "gpio8", "gpio9", "gpio10", "gpio11";
1162 drive-strength = <2>;
1166 blsp_spi4_default: blsp-spi4-default-state {
1168 pins = "gpio12", "gpio13", "gpio15";
1169 function = "blsp_spi4";
1170 drive-strength = <12>;
1176 drive-strength = <16>;
1182 blsp_spi4_sleep: blsp-spi4-sleep-state {
1183 pins = "gpio12", "gpio13", "gpio14", "gpio15";
1185 drive-strength = <2>;
1189 blsp_spi5_default: blsp-spi5-default-state {
1191 pins = "gpio16", "gpio17", "gpio19";
1192 function = "blsp_spi5";
1193 drive-strength = <12>;
1199 drive-strength = <16>;
1205 blsp_spi5_sleep: blsp-spi5-sleep-state {
1206 pins = "gpio16", "gpio17", "gpio18", "gpio19";
1208 drive-strength = <2>;
1212 blsp_spi6_default: blsp-spi6-default-state {
1214 pins = "gpio20", "gpio21", "gpio23";
1215 function = "blsp_spi6";
1216 drive-strength = <12>;
1222 drive-strength = <16>;
1228 blsp_spi6_sleep: blsp-spi6-sleep-state {
1229 pins = "gpio20", "gpio21", "gpio22", "gpio23";
1231 drive-strength = <2>;
1235 blsp_uart1_default: blsp-uart1-default-state {
1236 /* TX, RX, CTS_N, RTS_N */
1237 pins = "gpio0", "gpio1", "gpio2", "gpio3";
1238 function = "blsp_uart1";
1239 drive-strength = <16>;
1243 blsp_uart1_sleep: blsp-uart1-sleep-state {
1244 pins = "gpio0", "gpio1", "gpio2", "gpio3";
1246 drive-strength = <2>;
1250 blsp_uart2_default: blsp-uart2-default-state {
1251 pins = "gpio4", "gpio5";
1252 function = "blsp_uart2";
1253 drive-strength = <16>;
1257 blsp_uart2_sleep: blsp-uart2-sleep-state {
1258 pins = "gpio4", "gpio5";
1260 drive-strength = <2>;
1264 camera_front_default: camera-front-default-state {
1268 drive-strength = <16>;
1274 drive-strength = <16>;
1279 function = "cam_mclk1";
1280 drive-strength = <16>;
1285 camera_rear_default: camera-rear-default-state {
1289 drive-strength = <16>;
1295 drive-strength = <16>;
1300 function = "cam_mclk0";
1301 drive-strength = <16>;
1306 cci0_default: cci0-default-state {
1307 pins = "gpio29", "gpio30";
1308 function = "cci_i2c";
1309 drive-strength = <16>;
1313 cdc_dmic_default: cdc-dmic-default-state {
1316 function = "dmic0_clk";
1317 drive-strength = <8>;
1321 function = "dmic0_data";
1322 drive-strength = <8>;
1326 cdc_dmic_sleep: cdc-dmic-sleep-state {
1329 function = "dmic0_clk";
1330 drive-strength = <2>;
1335 function = "dmic0_data";
1336 drive-strength = <2>;
1341 cdc_pdm_default: cdc-pdm-default-state {
1342 pins = "gpio63", "gpio64", "gpio65", "gpio66",
1344 function = "cdc_pdm0";
1345 drive-strength = <8>;
1349 cdc_pdm_sleep: cdc-pdm-sleep-state {
1350 pins = "gpio63", "gpio64", "gpio65", "gpio66",
1352 function = "cdc_pdm0";
1353 drive-strength = <2>;
1357 pri_mi2s_default: mi2s-pri-default-state {
1358 pins = "gpio113", "gpio114", "gpio115", "gpio116";
1359 function = "pri_mi2s";
1360 drive-strength = <8>;
1364 pri_mi2s_sleep: mi2s-pri-sleep-state {
1365 pins = "gpio113", "gpio114", "gpio115", "gpio116";
1366 function = "pri_mi2s";
1367 drive-strength = <2>;
1371 pri_mi2s_mclk_default: mi2s-pri-mclk-default-state {
1373 function = "pri_mi2s";
1374 drive-strength = <8>;
1378 pri_mi2s_mclk_sleep: mi2s-pri-mclk-sleep-state {
1380 function = "pri_mi2s";
1381 drive-strength = <2>;
1385 pri_mi2s_ws_default: mi2s-pri-ws-default-state {
1387 function = "pri_mi2s_ws";
1388 drive-strength = <8>;
1392 pri_mi2s_ws_sleep: mi2s-pri-ws-sleep-state {
1394 function = "pri_mi2s_ws";
1395 drive-strength = <2>;
1399 sec_mi2s_default: mi2s-sec-default-state {
1400 pins = "gpio112", "gpio117", "gpio118", "gpio119";
1401 function = "sec_mi2s";
1402 drive-strength = <8>;
1406 sec_mi2s_sleep: mi2s-sec-sleep-state {
1407 pins = "gpio112", "gpio117", "gpio118", "gpio119";
1408 function = "sec_mi2s";
1409 drive-strength = <2>;
1413 sdc1_default: sdc1-default-state {
1417 drive-strength = <16>;
1422 drive-strength = <10>;
1427 drive-strength = <10>;
1431 sdc1_sleep: sdc1-sleep-state {
1435 drive-strength = <2>;
1440 drive-strength = <2>;
1445 drive-strength = <2>;
1449 sdc2_default: sdc2-default-state {
1453 drive-strength = <16>;
1458 drive-strength = <10>;
1463 drive-strength = <10>;
1467 sdc2_sleep: sdc2-sleep-state {
1471 drive-strength = <2>;
1476 drive-strength = <2>;
1481 drive-strength = <2>;
1485 wcss_wlan_default: wcss-wlan-default-state {
1486 pins = "gpio40", "gpio41", "gpio42", "gpio43", "gpio44";
1487 function = "wcss_wlan";
1488 drive-strength = <6>;
1493 gcc: clock-controller@1800000 {
1494 compatible = "qcom,gcc-msm8916";
1497 #power-domain-cells = <1>;
1498 reg = <0x01800000 0x80000>;
1499 clocks = <&xo_board>,
1515 tcsr_mutex: hwlock@1905000 {
1516 compatible = "qcom,tcsr-mutex";
1517 reg = <0x01905000 0x20000>;
1518 #hwlock-cells = <1>;
1521 tcsr: syscon@1937000 {
1522 compatible = "qcom,tcsr-msm8916", "syscon";
1523 reg = <0x01937000 0x30000>;
1526 mdss: display-subsystem@1a00000 {
1527 status = "disabled";
1528 compatible = "qcom,mdss";
1529 reg = <0x01a00000 0x1000>,
1530 <0x01ac8000 0x3000>;
1531 reg-names = "mdss_phys", "vbif_phys";
1533 power-domains = <&gcc MDSS_GDSC>;
1535 clocks = <&gcc GCC_MDSS_AHB_CLK>,
1536 <&gcc GCC_MDSS_AXI_CLK>,
1537 <&gcc GCC_MDSS_VSYNC_CLK>;
1538 clock-names = "iface",
1542 interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
1544 interrupt-controller;
1545 #interrupt-cells = <1>;
1547 #address-cells = <1>;
1551 mdss_mdp: display-controller@1a01000 {
1552 compatible = "qcom,msm8916-mdp5", "qcom,mdp5";
1553 reg = <0x01a01000 0x89000>;
1554 reg-names = "mdp_phys";
1556 interrupt-parent = <&mdss>;
1559 clocks = <&gcc GCC_MDSS_AHB_CLK>,
1560 <&gcc GCC_MDSS_AXI_CLK>,
1561 <&gcc GCC_MDSS_MDP_CLK>,
1562 <&gcc GCC_MDSS_VSYNC_CLK>;
1563 clock-names = "iface",
1568 iommus = <&apps_iommu 4>;
1571 #address-cells = <1>;
1576 mdss_mdp_intf1_out: endpoint {
1577 remote-endpoint = <&mdss_dsi0_in>;
1583 mdss_dsi0: dsi@1a98000 {
1584 compatible = "qcom,msm8916-dsi-ctrl",
1585 "qcom,mdss-dsi-ctrl";
1586 reg = <0x01a98000 0x25c>;
1587 reg-names = "dsi_ctrl";
1589 interrupt-parent = <&mdss>;
1592 assigned-clocks = <&gcc BYTE0_CLK_SRC>,
1593 <&gcc PCLK0_CLK_SRC>;
1594 assigned-clock-parents = <&mdss_dsi0_phy 0>,
1597 clocks = <&gcc GCC_MDSS_MDP_CLK>,
1598 <&gcc GCC_MDSS_AHB_CLK>,
1599 <&gcc GCC_MDSS_AXI_CLK>,
1600 <&gcc GCC_MDSS_BYTE0_CLK>,
1601 <&gcc GCC_MDSS_PCLK0_CLK>,
1602 <&gcc GCC_MDSS_ESC0_CLK>;
1603 clock-names = "mdp_core",
1609 phys = <&mdss_dsi0_phy>;
1611 #address-cells = <1>;
1615 #address-cells = <1>;
1620 mdss_dsi0_in: endpoint {
1621 remote-endpoint = <&mdss_mdp_intf1_out>;
1627 mdss_dsi0_out: endpoint {
1633 mdss_dsi0_phy: phy@1a98300 {
1634 compatible = "qcom,dsi-phy-28nm-lp";
1635 reg = <0x01a98300 0xd4>,
1638 reg-names = "dsi_pll",
1640 "dsi_phy_regulator";
1645 clocks = <&gcc GCC_MDSS_AHB_CLK>,
1647 clock-names = "iface", "ref";
1651 camss: camss@1b0ac00 {
1652 compatible = "qcom,msm8916-camss";
1653 reg = <0x01b0ac00 0x200>,
1661 <0x01b10000 0x1000>;
1662 reg-names = "csiphy0",
1671 interrupts = <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>,
1672 <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>,
1673 <GIC_SPI 51 IRQ_TYPE_EDGE_RISING>,
1674 <GIC_SPI 52 IRQ_TYPE_EDGE_RISING>,
1675 <GIC_SPI 55 IRQ_TYPE_EDGE_RISING>,
1676 <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>;
1677 interrupt-names = "csiphy0",
1683 power-domains = <&gcc VFE_GDSC>;
1684 clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>,
1685 <&gcc GCC_CAMSS_ISPIF_AHB_CLK>,
1686 <&gcc GCC_CAMSS_CSI0PHYTIMER_CLK>,
1687 <&gcc GCC_CAMSS_CSI1PHYTIMER_CLK>,
1688 <&gcc GCC_CAMSS_CSI0_AHB_CLK>,
1689 <&gcc GCC_CAMSS_CSI0_CLK>,
1690 <&gcc GCC_CAMSS_CSI0PHY_CLK>,
1691 <&gcc GCC_CAMSS_CSI0PIX_CLK>,
1692 <&gcc GCC_CAMSS_CSI0RDI_CLK>,
1693 <&gcc GCC_CAMSS_CSI1_AHB_CLK>,
1694 <&gcc GCC_CAMSS_CSI1_CLK>,
1695 <&gcc GCC_CAMSS_CSI1PHY_CLK>,
1696 <&gcc GCC_CAMSS_CSI1PIX_CLK>,
1697 <&gcc GCC_CAMSS_CSI1RDI_CLK>,
1698 <&gcc GCC_CAMSS_AHB_CLK>,
1699 <&gcc GCC_CAMSS_VFE0_CLK>,
1700 <&gcc GCC_CAMSS_CSI_VFE0_CLK>,
1701 <&gcc GCC_CAMSS_VFE_AHB_CLK>,
1702 <&gcc GCC_CAMSS_VFE_AXI_CLK>;
1703 clock-names = "top_ahb",
1722 iommus = <&apps_iommu 3>;
1723 status = "disabled";
1725 #address-cells = <1>;
1739 compatible = "qcom,msm8916-cci", "qcom,msm8226-cci";
1740 #address-cells = <1>;
1742 reg = <0x01b0c000 0x1000>;
1743 interrupts = <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
1744 clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>,
1745 <&gcc GCC_CAMSS_CCI_AHB_CLK>,
1746 <&gcc GCC_CAMSS_CCI_CLK>,
1747 <&gcc GCC_CAMSS_AHB_CLK>;
1748 clock-names = "camss_top_ahb", "cci_ahb",
1750 assigned-clocks = <&gcc GCC_CAMSS_CCI_AHB_CLK>,
1751 <&gcc GCC_CAMSS_CCI_CLK>;
1752 assigned-clock-rates = <80000000>, <19200000>;
1753 pinctrl-names = "default";
1754 pinctrl-0 = <&cci0_default>;
1755 status = "disabled";
1757 cci_i2c0: i2c-bus@0 {
1759 clock-frequency = <400000>;
1760 #address-cells = <1>;
1766 compatible = "qcom,adreno-306.0", "qcom,adreno";
1767 reg = <0x01c00000 0x20000>;
1768 reg-names = "kgsl_3d0_reg_memory";
1769 interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
1770 interrupt-names = "kgsl_3d0_irq";
1779 <&gcc GCC_OXILI_GFX3D_CLK>,
1780 <&gcc GCC_OXILI_AHB_CLK>,
1781 <&gcc GCC_OXILI_GMEM_CLK>,
1782 <&gcc GCC_BIMC_GFX_CLK>,
1783 <&gcc GCC_BIMC_GPU_CLK>,
1784 <&gcc GFX3D_CLK_SRC>;
1785 power-domains = <&gcc OXILI_GDSC>;
1786 operating-points-v2 = <&gpu_opp_table>;
1787 iommus = <&gpu_iommu 1>, <&gpu_iommu 2>;
1788 status = "disabled";
1790 gpu_opp_table: opp-table {
1791 compatible = "operating-points-v2";
1794 opp-hz = /bits/ 64 <400000000>;
1797 opp-hz = /bits/ 64 <19200000>;
1802 venus: video-codec@1d00000 {
1803 compatible = "qcom,msm8916-venus";
1804 reg = <0x01d00000 0xff000>;
1805 interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
1806 power-domains = <&gcc VENUS_GDSC>;
1807 clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
1808 <&gcc GCC_VENUS0_AHB_CLK>,
1809 <&gcc GCC_VENUS0_AXI_CLK>;
1810 clock-names = "core", "iface", "bus";
1811 iommus = <&apps_iommu 5>;
1812 memory-region = <&venus_mem>;
1813 status = "disabled";
1816 compatible = "venus-decoder";
1820 compatible = "venus-encoder";
1824 apps_iommu: iommu@1ef0000 {
1825 #address-cells = <1>;
1828 compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
1829 ranges = <0 0x01e20000 0x20000>;
1830 reg = <0x01ef0000 0x3000>;
1831 clocks = <&gcc GCC_SMMU_CFG_CLK>,
1832 <&gcc GCC_APSS_TCU_CLK>;
1833 clock-names = "iface", "bus";
1834 qcom,iommu-secure-id = <17>;
1838 compatible = "qcom,msm-iommu-v1-sec";
1839 reg = <0x3000 0x1000>;
1840 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
1845 compatible = "qcom,msm-iommu-v1-ns";
1846 reg = <0x4000 0x1000>;
1847 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
1852 compatible = "qcom,msm-iommu-v1-sec";
1853 reg = <0x5000 0x1000>;
1854 interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
1858 gpu_iommu: iommu@1f08000 {
1859 #address-cells = <1>;
1862 compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
1863 ranges = <0 0x01f08000 0x10000>;
1864 clocks = <&gcc GCC_SMMU_CFG_CLK>,
1865 <&gcc GCC_GFX_TCU_CLK>;
1866 clock-names = "iface", "bus";
1867 qcom,iommu-secure-id = <18>;
1871 compatible = "qcom,msm-iommu-v1-ns";
1872 reg = <0x1000 0x1000>;
1873 interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
1878 compatible = "qcom,msm-iommu-v1-ns";
1879 reg = <0x2000 0x1000>;
1880 interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>;
1884 spmi_bus: spmi@200f000 {
1885 compatible = "qcom,spmi-pmic-arb";
1886 reg = <0x0200f000 0x001000>,
1887 <0x02400000 0x400000>,
1888 <0x02c00000 0x400000>,
1889 <0x03800000 0x200000>,
1890 <0x0200a000 0x002100>;
1891 reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
1892 interrupt-names = "periph_irq";
1893 interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
1896 #address-cells = <2>;
1898 interrupt-controller;
1899 #interrupt-cells = <4>;
1902 bam_dmux_dma: dma-controller@4044000 {
1903 compatible = "qcom,bam-v1.7.0";
1904 reg = <0x04044000 0x19000>;
1905 interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
1911 qcom,powered-remotely;
1913 status = "disabled";
1916 mpss: remoteproc@4080000 {
1917 compatible = "qcom,msm8916-mss-pil";
1918 reg = <0x04080000 0x100>,
1921 reg-names = "qdsp6", "rmb";
1923 interrupts-extended = <&intc GIC_SPI 24 IRQ_TYPE_EDGE_RISING>,
1924 <&hexagon_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
1925 <&hexagon_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
1926 <&hexagon_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
1927 <&hexagon_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
1928 interrupt-names = "wdog", "fatal", "ready",
1929 "handover", "stop-ack";
1931 power-domains = <&rpmpd MSM8916_VDDCX>,
1932 <&rpmpd MSM8916_VDDMX>;
1933 power-domain-names = "cx", "mx";
1935 clocks = <&gcc GCC_MSS_CFG_AHB_CLK>,
1936 <&gcc GCC_MSS_Q6_BIMC_AXI_CLK>,
1937 <&gcc GCC_BOOT_ROM_AHB_CLK>,
1939 clock-names = "iface", "bus", "mem", "xo";
1941 qcom,smem-states = <&hexagon_smp2p_out 0>;
1942 qcom,smem-state-names = "stop";
1945 reset-names = "mss_restart";
1947 qcom,halt-regs = <&tcsr 0x18000 0x19000 0x1a000>;
1949 status = "disabled";
1952 memory-region = <&mba_mem>;
1956 memory-region = <&mpss_mem>;
1959 bam_dmux: bam-dmux {
1960 compatible = "qcom,bam-dmux";
1962 interrupt-parent = <&hexagon_smsm>;
1963 interrupts = <1 IRQ_TYPE_EDGE_BOTH>, <11 IRQ_TYPE_EDGE_BOTH>;
1964 interrupt-names = "pc", "pc-ack";
1966 qcom,smem-states = <&apps_smsm 1>, <&apps_smsm 11>;
1967 qcom,smem-state-names = "pc", "pc-ack";
1969 dmas = <&bam_dmux_dma 4>, <&bam_dmux_dma 5>;
1970 dma-names = "tx", "rx";
1972 status = "disabled";
1976 interrupts = <GIC_SPI 25 IRQ_TYPE_EDGE_RISING>;
1978 qcom,smd-edge = <0>;
1979 qcom,ipc = <&apcs 8 12>;
1980 qcom,remote-pid = <1>;
1985 compatible = "qcom,apr-v2";
1986 qcom,smd-channels = "apr_audio_svc";
1987 qcom,domain = <APR_DOMAIN_ADSP>;
1988 #address-cells = <1>;
1990 status = "disabled";
1993 compatible = "qcom,q6core";
1994 reg = <APR_SVC_ADSP_CORE>;
1998 compatible = "qcom,q6afe";
1999 reg = <APR_SVC_AFE>;
2002 compatible = "qcom,q6afe-dais";
2003 #address-cells = <1>;
2005 #sound-dai-cells = <1>;
2010 compatible = "qcom,q6asm";
2011 reg = <APR_SVC_ASM>;
2014 compatible = "qcom,q6asm-dais";
2015 #address-cells = <1>;
2017 #sound-dai-cells = <1>;
2022 compatible = "qcom,q6adm";
2023 reg = <APR_SVC_ADM>;
2025 q6routing: routing {
2026 compatible = "qcom,q6adm-routing";
2027 #sound-dai-cells = <0>;
2033 compatible = "qcom,fastrpc";
2034 qcom,smd-channels = "fastrpcsmd-apps-dsp";
2036 qcom,non-secure-domain;
2038 #address-cells = <1>;
2042 compatible = "qcom,fastrpc-compute-cb";
2049 sound: sound@7702000 {
2050 status = "disabled";
2051 compatible = "qcom,apq8016-sbc-sndcard";
2052 reg = <0x07702000 0x4>, <0x07702004 0x4>;
2053 reg-names = "mic-iomux", "spkr-iomux";
2056 lpass: audio-controller@7708000 {
2057 status = "disabled";
2058 compatible = "qcom,apq8016-lpass-cpu";
2061 * Note: Unlike the name would suggest, the SEC_I2S_CLK
2062 * is actually only used by Tertiary MI2S while
2063 * Primary/Secondary MI2S both use the PRI_I2S_CLK.
2065 clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
2066 <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
2067 <&gcc GCC_ULTAUDIO_LPAIF_PRI_I2S_CLK>,
2068 <&gcc GCC_ULTAUDIO_LPAIF_SEC_I2S_CLK>,
2069 <&gcc GCC_ULTAUDIO_LPAIF_AUX_I2S_CLK>,
2070 <&gcc GCC_ULTAUDIO_PCNOC_MPORT_CLK>,
2071 <&gcc GCC_ULTAUDIO_PCNOC_SWAY_CLK>;
2073 clock-names = "ahbix-clk",
2080 #sound-dai-cells = <1>;
2082 interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
2083 interrupt-names = "lpass-irq-lpaif";
2084 reg = <0x07708000 0x10000>;
2085 reg-names = "lpass-lpaif";
2087 #address-cells = <1>;
2091 lpass_codec: audio-codec@771c000 {
2092 compatible = "qcom,msm8916-wcd-digital-codec";
2093 reg = <0x0771c000 0x400>;
2094 clocks = <&gcc GCC_ULTAUDIO_AHBFABRIC_IXFABRIC_CLK>,
2095 <&gcc GCC_CODEC_DIGCODEC_CLK>;
2096 clock-names = "ahbix-clk", "mclk";
2097 #sound-dai-cells = <1>;
2098 status = "disabled";
2101 sdhc_1: mmc@7824900 {
2102 compatible = "qcom,msm8916-sdhci", "qcom,sdhci-msm-v4";
2103 reg = <0x07824900 0x11c>, <0x07824000 0x800>;
2104 reg-names = "hc", "core";
2106 interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>,
2107 <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
2108 interrupt-names = "hc_irq", "pwr_irq";
2109 clocks = <&gcc GCC_SDCC1_AHB_CLK>,
2110 <&gcc GCC_SDCC1_APPS_CLK>,
2112 clock-names = "iface", "core", "xo";
2113 pinctrl-0 = <&sdc1_default>;
2114 pinctrl-1 = <&sdc1_sleep>;
2115 pinctrl-names = "default", "sleep";
2119 status = "disabled";
2122 sdhc_2: mmc@7864900 {
2123 compatible = "qcom,msm8916-sdhci", "qcom,sdhci-msm-v4";
2124 reg = <0x07864900 0x11c>, <0x07864000 0x800>;
2125 reg-names = "hc", "core";
2127 interrupts = <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>,
2128 <GIC_SPI 221 IRQ_TYPE_LEVEL_HIGH>;
2129 interrupt-names = "hc_irq", "pwr_irq";
2130 clocks = <&gcc GCC_SDCC2_AHB_CLK>,
2131 <&gcc GCC_SDCC2_APPS_CLK>,
2133 clock-names = "iface", "core", "xo";
2134 pinctrl-0 = <&sdc2_default>;
2135 pinctrl-1 = <&sdc2_sleep>;
2136 pinctrl-names = "default", "sleep";
2138 status = "disabled";
2141 blsp_dma: dma-controller@7884000 {
2142 compatible = "qcom,bam-v1.7.0";
2143 reg = <0x07884000 0x23000>;
2144 interrupts = <GIC_SPI 238 IRQ_TYPE_LEVEL_HIGH>;
2145 clocks = <&gcc GCC_BLSP1_AHB_CLK>;
2146 clock-names = "bam_clk";
2149 qcom,controlled-remotely;
2152 blsp_uart1: serial@78af000 {
2153 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
2154 reg = <0x078af000 0x200>;
2155 interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
2156 clocks = <&gcc GCC_BLSP1_UART1_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
2157 clock-names = "core", "iface";
2158 dmas = <&blsp_dma 0>, <&blsp_dma 1>;
2159 dma-names = "tx", "rx";
2160 pinctrl-names = "default", "sleep";
2161 pinctrl-0 = <&blsp_uart1_default>;
2162 pinctrl-1 = <&blsp_uart1_sleep>;
2163 status = "disabled";
2166 blsp_uart2: serial@78b0000 {
2167 compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm";
2168 reg = <0x078b0000 0x200>;
2169 interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
2170 clocks = <&gcc GCC_BLSP1_UART2_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>;
2171 clock-names = "core", "iface";
2172 dmas = <&blsp_dma 2>, <&blsp_dma 3>;
2173 dma-names = "tx", "rx";
2174 pinctrl-names = "default", "sleep";
2175 pinctrl-0 = <&blsp_uart2_default>;
2176 pinctrl-1 = <&blsp_uart2_sleep>;
2177 status = "disabled";
2180 blsp_i2c1: i2c@78b5000 {
2181 compatible = "qcom,i2c-qup-v2.2.1";
2182 reg = <0x078b5000 0x500>;
2183 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
2184 clocks = <&gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>,
2185 <&gcc GCC_BLSP1_AHB_CLK>;
2186 clock-names = "core", "iface";
2187 dmas = <&blsp_dma 4>, <&blsp_dma 5>;
2188 dma-names = "tx", "rx";
2189 pinctrl-names = "default", "sleep";
2190 pinctrl-0 = <&blsp_i2c1_default>;
2191 pinctrl-1 = <&blsp_i2c1_sleep>;
2192 #address-cells = <1>;
2194 status = "disabled";
2197 blsp_spi1: spi@78b5000 {
2198 compatible = "qcom,spi-qup-v2.2.1";
2199 reg = <0x078b5000 0x500>;
2200 interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
2201 clocks = <&gcc GCC_BLSP1_QUP1_SPI_APPS_CLK>,
2202 <&gcc GCC_BLSP1_AHB_CLK>;
2203 clock-names = "core", "iface";
2204 dmas = <&blsp_dma 4>, <&blsp_dma 5>;
2205 dma-names = "tx", "rx";
2206 pinctrl-names = "default", "sleep";
2207 pinctrl-0 = <&blsp_spi1_default>;
2208 pinctrl-1 = <&blsp_spi1_sleep>;
2209 #address-cells = <1>;
2211 status = "disabled";
2214 blsp_i2c2: i2c@78b6000 {
2215 compatible = "qcom,i2c-qup-v2.2.1";
2216 reg = <0x078b6000 0x500>;
2217 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
2218 clocks = <&gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>,
2219 <&gcc GCC_BLSP1_AHB_CLK>;
2220 clock-names = "core", "iface";
2221 dmas = <&blsp_dma 6>, <&blsp_dma 7>;
2222 dma-names = "tx", "rx";
2223 pinctrl-names = "default", "sleep";
2224 pinctrl-0 = <&blsp_i2c2_default>;
2225 pinctrl-1 = <&blsp_i2c2_sleep>;
2226 #address-cells = <1>;
2228 status = "disabled";
2231 blsp_spi2: spi@78b6000 {
2232 compatible = "qcom,spi-qup-v2.2.1";
2233 reg = <0x078b6000 0x500>;
2234 interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
2235 clocks = <&gcc GCC_BLSP1_QUP2_SPI_APPS_CLK>,
2236 <&gcc GCC_BLSP1_AHB_CLK>;
2237 clock-names = "core", "iface";
2238 dmas = <&blsp_dma 6>, <&blsp_dma 7>;
2239 dma-names = "tx", "rx";
2240 pinctrl-names = "default", "sleep";
2241 pinctrl-0 = <&blsp_spi2_default>;
2242 pinctrl-1 = <&blsp_spi2_sleep>;
2243 #address-cells = <1>;
2245 status = "disabled";
2248 blsp_i2c3: i2c@78b7000 {
2249 compatible = "qcom,i2c-qup-v2.2.1";
2250 reg = <0x078b7000 0x500>;
2251 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
2252 clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>,
2253 <&gcc GCC_BLSP1_AHB_CLK>;
2254 clock-names = "core", "iface";
2255 dmas = <&blsp_dma 8>, <&blsp_dma 9>;
2256 dma-names = "tx", "rx";
2257 pinctrl-names = "default", "sleep";
2258 pinctrl-0 = <&blsp_i2c3_default>;
2259 pinctrl-1 = <&blsp_i2c3_sleep>;
2260 #address-cells = <1>;
2262 status = "disabled";
2265 blsp_spi3: spi@78b7000 {
2266 compatible = "qcom,spi-qup-v2.2.1";
2267 reg = <0x078b7000 0x500>;
2268 interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
2269 clocks = <&gcc GCC_BLSP1_QUP3_SPI_APPS_CLK>,
2270 <&gcc GCC_BLSP1_AHB_CLK>;
2271 clock-names = "core", "iface";
2272 dmas = <&blsp_dma 8>, <&blsp_dma 9>;
2273 dma-names = "tx", "rx";
2274 pinctrl-names = "default", "sleep";
2275 pinctrl-0 = <&blsp_spi3_default>;
2276 pinctrl-1 = <&blsp_spi3_sleep>;
2277 #address-cells = <1>;
2279 status = "disabled";
2282 blsp_i2c4: i2c@78b8000 {
2283 compatible = "qcom,i2c-qup-v2.2.1";
2284 reg = <0x078b8000 0x500>;
2285 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
2286 clocks = <&gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>,
2287 <&gcc GCC_BLSP1_AHB_CLK>;
2288 clock-names = "core", "iface";
2289 dmas = <&blsp_dma 10>, <&blsp_dma 11>;
2290 dma-names = "tx", "rx";
2291 pinctrl-names = "default", "sleep";
2292 pinctrl-0 = <&blsp_i2c4_default>;
2293 pinctrl-1 = <&blsp_i2c4_sleep>;
2294 #address-cells = <1>;
2296 status = "disabled";
2299 blsp_spi4: spi@78b8000 {
2300 compatible = "qcom,spi-qup-v2.2.1";
2301 reg = <0x078b8000 0x500>;
2302 interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
2303 clocks = <&gcc GCC_BLSP1_QUP4_SPI_APPS_CLK>,
2304 <&gcc GCC_BLSP1_AHB_CLK>;
2305 clock-names = "core", "iface";
2306 dmas = <&blsp_dma 10>, <&blsp_dma 11>;
2307 dma-names = "tx", "rx";
2308 pinctrl-names = "default", "sleep";
2309 pinctrl-0 = <&blsp_spi4_default>;
2310 pinctrl-1 = <&blsp_spi4_sleep>;
2311 #address-cells = <1>;
2313 status = "disabled";
2316 blsp_i2c5: i2c@78b9000 {
2317 compatible = "qcom,i2c-qup-v2.2.1";
2318 reg = <0x078b9000 0x500>;
2319 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
2320 clocks = <&gcc GCC_BLSP1_QUP5_I2C_APPS_CLK>,
2321 <&gcc GCC_BLSP1_AHB_CLK>;
2322 clock-names = "core", "iface";
2323 dmas = <&blsp_dma 12>, <&blsp_dma 13>;
2324 dma-names = "tx", "rx";
2325 pinctrl-names = "default", "sleep";
2326 pinctrl-0 = <&blsp_i2c5_default>;
2327 pinctrl-1 = <&blsp_i2c5_sleep>;
2328 #address-cells = <1>;
2330 status = "disabled";
2333 blsp_spi5: spi@78b9000 {
2334 compatible = "qcom,spi-qup-v2.2.1";
2335 reg = <0x078b9000 0x500>;
2336 interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
2337 clocks = <&gcc GCC_BLSP1_QUP5_SPI_APPS_CLK>,
2338 <&gcc GCC_BLSP1_AHB_CLK>;
2339 clock-names = "core", "iface";
2340 dmas = <&blsp_dma 12>, <&blsp_dma 13>;
2341 dma-names = "tx", "rx";
2342 pinctrl-names = "default", "sleep";
2343 pinctrl-0 = <&blsp_spi5_default>;
2344 pinctrl-1 = <&blsp_spi5_sleep>;
2345 #address-cells = <1>;
2347 status = "disabled";
2350 blsp_i2c6: i2c@78ba000 {
2351 compatible = "qcom,i2c-qup-v2.2.1";
2352 reg = <0x078ba000 0x500>;
2353 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
2354 clocks = <&gcc GCC_BLSP1_QUP6_I2C_APPS_CLK>,
2355 <&gcc GCC_BLSP1_AHB_CLK>;
2356 clock-names = "core", "iface";
2357 dmas = <&blsp_dma 14>, <&blsp_dma 15>;
2358 dma-names = "tx", "rx";
2359 pinctrl-names = "default", "sleep";
2360 pinctrl-0 = <&blsp_i2c6_default>;
2361 pinctrl-1 = <&blsp_i2c6_sleep>;
2362 #address-cells = <1>;
2364 status = "disabled";
2367 blsp_spi6: spi@78ba000 {
2368 compatible = "qcom,spi-qup-v2.2.1";
2369 reg = <0x078ba000 0x500>;
2370 interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
2371 clocks = <&gcc GCC_BLSP1_QUP6_SPI_APPS_CLK>,
2372 <&gcc GCC_BLSP1_AHB_CLK>;
2373 clock-names = "core", "iface";
2374 dmas = <&blsp_dma 14>, <&blsp_dma 15>;
2375 dma-names = "tx", "rx";
2376 pinctrl-names = "default", "sleep";
2377 pinctrl-0 = <&blsp_spi6_default>;
2378 pinctrl-1 = <&blsp_spi6_sleep>;
2379 #address-cells = <1>;
2381 status = "disabled";
2385 compatible = "qcom,ci-hdrc";
2386 reg = <0x078d9000 0x200>,
2388 interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
2389 <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
2390 clocks = <&gcc GCC_USB_HS_AHB_CLK>,
2391 <&gcc GCC_USB_HS_SYSTEM_CLK>;
2392 clock-names = "iface", "core";
2393 assigned-clocks = <&gcc GCC_USB_HS_SYSTEM_CLK>;
2394 assigned-clock-rates = <80000000>;
2395 resets = <&gcc GCC_USB_HS_BCR>;
2396 reset-names = "core";
2402 ahb-burst-config = <0>;
2403 phy-names = "usb-phy";
2404 phys = <&usb_hs_phy>;
2405 status = "disabled";
2410 compatible = "qcom,usb-hs-phy-msm8916",
2413 clocks = <&xo_board>, <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
2414 clock-names = "ref", "sleep";
2415 resets = <&gcc GCC_USB2A_PHY_BCR>, <&usb 0>;
2416 reset-names = "phy", "por";
2417 qcom,init-seq = /bits/ 8 <0x0 0x44>,
2425 wcnss: remoteproc@a204000 {
2426 compatible = "qcom,pronto-v2-pil", "qcom,pronto";
2427 reg = <0x0a204000 0x2000>, <0x0a202000 0x1000>, <0x0a21b000 0x3000>;
2428 reg-names = "ccu", "dxe", "pmu";
2430 memory-region = <&wcnss_mem>;
2432 interrupts-extended = <&intc GIC_SPI 149 IRQ_TYPE_EDGE_RISING>,
2433 <&wcnss_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
2434 <&wcnss_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
2435 <&wcnss_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
2436 <&wcnss_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
2437 interrupt-names = "wdog", "fatal", "ready", "handover", "stop-ack";
2439 power-domains = <&rpmpd MSM8916_VDDCX>,
2440 <&rpmpd MSM8916_VDDMX>;
2441 power-domain-names = "cx", "mx";
2443 qcom,smem-states = <&wcnss_smp2p_out 0>;
2444 qcom,smem-state-names = "stop";
2446 pinctrl-names = "default";
2447 pinctrl-0 = <&wcss_wlan_default>;
2449 status = "disabled";
2452 /* Separate chip, compatible is board-specific */
2453 clocks = <&rpmcc RPM_SMD_RF_CLK2>;
2458 interrupts = <GIC_SPI 142 IRQ_TYPE_EDGE_RISING>;
2460 qcom,ipc = <&apcs 8 17>;
2461 qcom,smd-edge = <6>;
2462 qcom,remote-pid = <4>;
2467 compatible = "qcom,wcnss";
2468 qcom,smd-channels = "WCNSS_CTRL";
2470 qcom,mmio = <&wcnss>;
2472 wcnss_bt: bluetooth {
2473 compatible = "qcom,wcnss-bt";
2477 compatible = "qcom,wcnss-wlan";
2479 interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
2480 <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
2481 interrupt-names = "tx", "rx";
2483 qcom,smem-states = <&apps_smsm 10>, <&apps_smsm 9>;
2484 qcom,smem-state-names = "tx-enable", "tx-rings-empty";
2490 intc: interrupt-controller@b000000 {
2491 compatible = "qcom,msm-qgic2";
2492 interrupt-controller;
2493 #interrupt-cells = <3>;
2494 reg = <0x0b000000 0x1000>, <0x0b002000 0x2000>,
2495 <0x0b001000 0x1000>, <0x0b004000 0x2000>;
2496 interrupts = <GIC_PPI 0 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
2499 apcs: mailbox@b011000 {
2500 compatible = "qcom,msm8916-apcs-kpss-global", "syscon";
2501 reg = <0x0b011000 0x1000>;
2503 clocks = <&a53pll>, <&gcc GPLL0_VOTE>;
2504 clock-names = "pll", "aux";
2508 a53pll: clock@b016000 {
2509 compatible = "qcom,msm8916-a53pll";
2510 reg = <0x0b016000 0x40>;
2512 clocks = <&xo_board>;
2517 #address-cells = <1>;
2520 compatible = "arm,armv7-timer-mem";
2521 reg = <0x0b020000 0x1000>;
2522 clock-frequency = <19200000>;
2526 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
2527 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
2528 reg = <0x0b021000 0x1000>,
2529 <0x0b022000 0x1000>;
2534 interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
2535 reg = <0x0b023000 0x1000>;
2536 status = "disabled";
2541 interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
2542 reg = <0x0b024000 0x1000>;
2543 status = "disabled";
2548 interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
2549 reg = <0x0b025000 0x1000>;
2550 status = "disabled";
2555 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
2556 reg = <0x0b026000 0x1000>;
2557 status = "disabled";
2562 interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
2563 reg = <0x0b027000 0x1000>;
2564 status = "disabled";
2569 interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
2570 reg = <0x0b028000 0x1000>;
2571 status = "disabled";
2575 cpu0_acc: power-manager@b088000 {
2576 compatible = "qcom,msm8916-acc";
2577 reg = <0x0b088000 0x1000>;
2578 status = "reserved"; /* Controlled by PSCI firmware */
2581 cpu0_saw: power-manager@b089000 {
2582 compatible = "qcom,msm8916-saw2-v3.0-cpu", "qcom,saw2";
2583 reg = <0x0b089000 0x1000>;
2584 status = "reserved"; /* Controlled by PSCI firmware */
2587 cpu1_acc: power-manager@b098000 {
2588 compatible = "qcom,msm8916-acc";
2589 reg = <0x0b098000 0x1000>;
2590 status = "reserved"; /* Controlled by PSCI firmware */
2593 cpu1_saw: power-manager@b099000 {
2594 compatible = "qcom,msm8916-saw2-v3.0-cpu", "qcom,saw2";
2595 reg = <0x0b099000 0x1000>;
2596 status = "reserved"; /* Controlled by PSCI firmware */
2599 cpu2_acc: power-manager@b0a8000 {
2600 compatible = "qcom,msm8916-acc";
2601 reg = <0x0b0a8000 0x1000>;
2602 status = "reserved"; /* Controlled by PSCI firmware */
2605 cpu2_saw: power-manager@b0a9000 {
2606 compatible = "qcom,msm8916-saw2-v3.0-cpu", "qcom,saw2";
2607 reg = <0x0b0a9000 0x1000>;
2608 status = "reserved"; /* Controlled by PSCI firmware */
2611 cpu3_acc: power-manager@b0b8000 {
2612 compatible = "qcom,msm8916-acc";
2613 reg = <0x0b0b8000 0x1000>;
2614 status = "reserved"; /* Controlled by PSCI firmware */
2617 cpu3_saw: power-manager@b0b9000 {
2618 compatible = "qcom,msm8916-saw2-v3.0-cpu", "qcom,saw2";
2619 reg = <0x0b0b9000 0x1000>;
2620 status = "reserved"; /* Controlled by PSCI firmware */
2626 polling-delay-passive = <250>;
2627 polling-delay = <1000>;
2629 thermal-sensors = <&tsens 5>;
2632 cpu0_1_alert0: trip-point0 {
2633 temperature = <75000>;
2634 hysteresis = <2000>;
2637 cpu0_1_crit: cpu-crit {
2638 temperature = <110000>;
2639 hysteresis = <2000>;
2646 trip = <&cpu0_1_alert0>;
2647 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2648 <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2649 <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2650 <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2656 polling-delay-passive = <250>;
2657 polling-delay = <1000>;
2659 thermal-sensors = <&tsens 4>;
2662 cpu2_3_alert0: trip-point0 {
2663 temperature = <75000>;
2664 hysteresis = <2000>;
2667 cpu2_3_crit: cpu-crit {
2668 temperature = <110000>;
2669 hysteresis = <2000>;
2676 trip = <&cpu2_3_alert0>;
2677 cooling-device = <&CPU0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2678 <&CPU1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2679 <&CPU2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2680 <&CPU3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2686 polling-delay-passive = <250>;
2687 polling-delay = <1000>;
2689 thermal-sensors = <&tsens 2>;
2692 gpu_alert0: trip-point0 {
2693 temperature = <75000>;
2694 hysteresis = <2000>;
2697 gpu_crit: gpu-crit {
2698 temperature = <95000>;
2699 hysteresis = <2000>;
2706 polling-delay-passive = <250>;
2707 polling-delay = <1000>;
2709 thermal-sensors = <&tsens 1>;
2712 cam_alert0: trip-point0 {
2713 temperature = <75000>;
2714 hysteresis = <2000>;
2721 polling-delay-passive = <250>;
2722 polling-delay = <1000>;
2724 thermal-sensors = <&tsens 0>;
2727 modem_alert0: trip-point0 {
2728 temperature = <85000>;
2729 hysteresis = <2000>;
2737 compatible = "arm,armv8-timer";
2738 interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
2739 <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
2740 <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
2741 <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;