Linux Audio

Check our new training course

Loading...
v5.4
  1// SPDX-License-Identifier: GPL-2.0
  2/dts-v1/;
  3
  4#include <dt-bindings/interrupt-controller/arm-gic.h>
  5#include <dt-bindings/clock/qcom,gcc-ipq806x.h>
  6#include <dt-bindings/clock/qcom,lcc-ipq806x.h>
  7#include <dt-bindings/gpio/gpio.h>
  8#include <dt-bindings/reset/qcom,gcc-ipq806x.h>
  9#include <dt-bindings/soc/qcom,gsbi.h>
 10#include <dt-bindings/interrupt-controller/arm-gic.h>
 11
 12/ {
 13	#address-cells = <1>;
 14	#size-cells = <1>;
 15	model = "Qualcomm IPQ8064";
 16	compatible = "qcom,ipq8064";
 17	interrupt-parent = <&intc>;
 18
 19	cpus {
 20		#address-cells = <1>;
 21		#size-cells = <0>;
 22
 23		cpu@0 {
 24			compatible = "qcom,krait";
 25			enable-method = "qcom,kpss-acc-v1";
 26			device_type = "cpu";
 27			reg = <0>;
 28			next-level-cache = <&L2>;
 29			qcom,acc = <&acc0>;
 30			qcom,saw = <&saw0>;
 31		};
 32
 33		cpu@1 {
 34			compatible = "qcom,krait";
 35			enable-method = "qcom,kpss-acc-v1";
 36			device_type = "cpu";
 37			reg = <1>;
 38			next-level-cache = <&L2>;
 39			qcom,acc = <&acc1>;
 40			qcom,saw = <&saw1>;
 41		};
 42
 43		L2: l2-cache {
 44			compatible = "cache";
 45			cache-level = <2>;
 46		};
 47	};
 48
 49	memory {
 50		device_type = "memory";
 51		reg = <0x0 0x0>;
 52	};
 53
 54	cpu-pmu {
 55		compatible = "qcom,krait-pmu";
 56		interrupts = <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(2) |
 57					  IRQ_TYPE_LEVEL_HIGH)>;
 58	};
 59
 60	reserved-memory {
 61		#address-cells = <1>;
 62		#size-cells = <1>;
 63		ranges;
 64
 65		nss@40000000 {
 66			reg = <0x40000000 0x1000000>;
 67			no-map;
 68		};
 69
 70		smem@41000000 {
 71			reg = <0x41000000 0x200000>;
 72			no-map;
 73		};
 74	};
 75
 76	clocks {
 77		cxo_board {
 78			compatible = "fixed-clock";
 79			#clock-cells = <0>;
 80			clock-frequency = <25000000>;
 81		};
 82
 83		pxo_board {
 84			compatible = "fixed-clock";
 85			#clock-cells = <0>;
 86			clock-frequency = <25000000>;
 87		};
 88
 89		sleep_clk: sleep_clk {
 90			compatible = "fixed-clock";
 91			clock-frequency = <32768>;
 92			#clock-cells = <0>;
 93		};
 94	};
 95
 96	soc: soc {
 97		#address-cells = <1>;
 98		#size-cells = <1>;
 99		ranges;
100		compatible = "simple-bus";
101
102		lpass@28100000 {
103			compatible = "qcom,lpass-cpu";
104			status = "disabled";
105			clocks = <&lcc AHBIX_CLK>,
106					<&lcc MI2S_OSR_CLK>,
107					<&lcc MI2S_BIT_CLK>;
108			clock-names = "ahbix-clk",
109					"mi2s-osr-clk",
110					"mi2s-bit-clk";
111			interrupts = <GIC_SPI 85 IRQ_TYPE_EDGE_RISING>;
112			interrupt-names = "lpass-irq-lpaif";
113			reg = <0x28100000 0x10000>;
114			reg-names = "lpass-lpaif";
115		};
116
117		qcom_pinmux: pinmux@800000 {
118			compatible = "qcom,ipq8064-pinctrl";
119			reg = <0x800000 0x4000>;
120
121			gpio-controller;
122			#gpio-cells = <2>;
123			interrupt-controller;
124			#interrupt-cells = <2>;
125			interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
126
127			pcie0_pins: pcie0_pinmux {
128				mux {
129					pins = "gpio3";
130					function = "pcie1_rst";
131					drive-strength = <12>;
132					bias-disable;
133				};
134			};
135
136			pcie1_pins: pcie1_pinmux {
137				mux {
138					pins = "gpio48";
139					function = "pcie2_rst";
140					drive-strength = <12>;
141					bias-disable;
142				};
143			};
144
145			pcie2_pins: pcie2_pinmux {
146				mux {
147					pins = "gpio63";
148					function = "pcie3_rst";
149					drive-strength = <12>;
150					bias-disable;
151				};
152			};
153
154			spi_pins: spi_pins {
155				mux {
156					pins = "gpio18", "gpio19", "gpio21";
157					function = "gsbi5";
158					drive-strength = <10>;
159					bias-none;
160				};
161			};
162
163			leds_pins: leds_pins {
164				mux {
165					pins = "gpio7", "gpio8", "gpio9",
166					       "gpio26", "gpio53";
167					function = "gpio";
168					drive-strength = <2>;
169					bias-pull-down;
170					output-low;
171				};
172			};
173
174			buttons_pins: buttons_pins {
175				mux {
176					pins = "gpio54";
177					drive-strength = <2>;
178					bias-pull-up;
179				};
180			};
181		};
182
183		intc: interrupt-controller@2000000 {
184			compatible = "qcom,msm-qgic2";
185			interrupt-controller;
186			#interrupt-cells = <3>;
187			reg = <0x02000000 0x1000>,
188			      <0x02002000 0x1000>;
189		};
190
191		timer@200a000 {
192			compatible = "qcom,kpss-timer",
193				     "qcom,kpss-wdt-ipq8064", "qcom,msm-timer";
194			interrupts = <GIC_PPI 1 (GIC_CPU_MASK_SIMPLE(2) |
195						 IRQ_TYPE_EDGE_RISING)>,
196				     <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(2) |
197						 IRQ_TYPE_EDGE_RISING)>,
198				     <GIC_PPI 3 (GIC_CPU_MASK_SIMPLE(2) |
199						 IRQ_TYPE_EDGE_RISING)>,
200				     <GIC_PPI 4 (GIC_CPU_MASK_SIMPLE(2) |
201						 IRQ_TYPE_EDGE_RISING)>,
202				     <GIC_PPI 5 (GIC_CPU_MASK_SIMPLE(2) |
203						 IRQ_TYPE_EDGE_RISING)>;
204			reg = <0x0200a000 0x100>;
205			clock-frequency = <25000000>,
206					  <32768>;
207			clocks = <&sleep_clk>;
208			clock-names = "sleep";
209			cpu-offset = <0x80000>;
210		};
211
212		acc0: clock-controller@2088000 {
213			compatible = "qcom,kpss-acc-v1";
214			reg = <0x02088000 0x1000>, <0x02008000 0x1000>;
215		};
216
217		acc1: clock-controller@2098000 {
218			compatible = "qcom,kpss-acc-v1";
219			reg = <0x02098000 0x1000>, <0x02008000 0x1000>;
220		};
221
222		saw0: regulator@2089000 {
223			compatible = "qcom,saw2";
224			reg = <0x02089000 0x1000>, <0x02009000 0x1000>;
225			regulator;
226		};
227
228		saw1: regulator@2099000 {
229			compatible = "qcom,saw2";
230			reg = <0x02099000 0x1000>, <0x02009000 0x1000>;
231			regulator;
232		};
233
234		gsbi2: gsbi@12480000 {
235			compatible = "qcom,gsbi-v1.0.0";
236			cell-index = <2>;
237			reg = <0x12480000 0x100>;
238			clocks = <&gcc GSBI2_H_CLK>;
239			clock-names = "iface";
240			#address-cells = <1>;
241			#size-cells = <1>;
242			ranges;
243			status = "disabled";
244
245			syscon-tcsr = <&tcsr>;
246
247			serial@12490000 {
248				compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
249				reg = <0x12490000 0x1000>,
250				      <0x12480000 0x1000>;
251				interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>;
252				clocks = <&gcc GSBI2_UART_CLK>, <&gcc GSBI2_H_CLK>;
253				clock-names = "core", "iface";
254				status = "disabled";
255			};
256
257			i2c@124a0000 {
258				compatible = "qcom,i2c-qup-v1.1.1";
259				reg = <0x124a0000 0x1000>;
260				interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>;
261
262				clocks = <&gcc GSBI2_QUP_CLK>, <&gcc GSBI2_H_CLK>;
263				clock-names = "core", "iface";
264				status = "disabled";
265
266				#address-cells = <1>;
267				#size-cells = <0>;
268			};
269
270		};
271
272		gsbi4: gsbi@16300000 {
273			compatible = "qcom,gsbi-v1.0.0";
274			cell-index = <4>;
275			reg = <0x16300000 0x100>;
276			clocks = <&gcc GSBI4_H_CLK>;
277			clock-names = "iface";
278			#address-cells = <1>;
279			#size-cells = <1>;
280			ranges;
281			status = "disabled";
282
283			syscon-tcsr = <&tcsr>;
284
285			gsbi4_serial: serial@16340000 {
286				compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
287				reg = <0x16340000 0x1000>,
288				      <0x16300000 0x1000>;
289				interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
290				clocks = <&gcc GSBI4_UART_CLK>, <&gcc GSBI4_H_CLK>;
291				clock-names = "core", "iface";
292				status = "disabled";
293			};
294
295			i2c@16380000 {
296				compatible = "qcom,i2c-qup-v1.1.1";
297				reg = <0x16380000 0x1000>;
298				interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
299
300				clocks = <&gcc GSBI4_QUP_CLK>, <&gcc GSBI4_H_CLK>;
301				clock-names = "core", "iface";
302				status = "disabled";
303
304				#address-cells = <1>;
305				#size-cells = <0>;
306			};
307		};
308
309		gsbi5: gsbi@1a200000 {
310			compatible = "qcom,gsbi-v1.0.0";
311			cell-index = <5>;
312			reg = <0x1a200000 0x100>;
313			clocks = <&gcc GSBI5_H_CLK>;
314			clock-names = "iface";
315			#address-cells = <1>;
316			#size-cells = <1>;
317			ranges;
318			status = "disabled";
319
320			syscon-tcsr = <&tcsr>;
321
322			serial@1a240000 {
323				compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
324				reg = <0x1a240000 0x1000>,
325				      <0x1a200000 0x1000>;
326				interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
327				clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>;
328				clock-names = "core", "iface";
329				status = "disabled";
330			};
331
332			i2c@1a280000 {
333				compatible = "qcom,i2c-qup-v1.1.1";
334				reg = <0x1a280000 0x1000>;
335				interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
336
337				clocks = <&gcc GSBI5_QUP_CLK>, <&gcc GSBI5_H_CLK>;
338				clock-names = "core", "iface";
339				status = "disabled";
340
341				#address-cells = <1>;
342				#size-cells = <0>;
343			};
344
345			spi@1a280000 {
346				compatible = "qcom,spi-qup-v1.1.1";
347				reg = <0x1a280000 0x1000>;
348				interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
349
350				clocks = <&gcc GSBI5_QUP_CLK>, <&gcc GSBI5_H_CLK>;
351				clock-names = "core", "iface";
352				status = "disabled";
353
354				#address-cells = <1>;
355				#size-cells = <0>;
356			};
357		};
358
359		gsbi7: gsbi@16600000 {
360			status = "disabled";
361			compatible = "qcom,gsbi-v1.0.0";
362			cell-index = <7>;
363			reg = <0x16600000 0x100>;
364			clocks = <&gcc GSBI7_H_CLK>;
365			clock-names = "iface";
366			#address-cells = <1>;
367			#size-cells = <1>;
368			ranges;
369			syscon-tcsr = <&tcsr>;
370
371			gsbi7_serial: serial@16640000 {
372				compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
373				reg = <0x16640000 0x1000>,
374				      <0x16600000 0x1000>;
375				interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
376				clocks = <&gcc GSBI7_UART_CLK>, <&gcc GSBI7_H_CLK>;
377				clock-names = "core", "iface";
378				status = "disabled";
379			};
380		};
381
382		sata_phy: sata-phy@1b400000 {
383			compatible = "qcom,ipq806x-sata-phy";
384			reg = <0x1b400000 0x200>;
385
386			clocks = <&gcc SATA_PHY_CFG_CLK>;
387			clock-names = "cfg";
388
389			#phy-cells = <0>;
390			status = "disabled";
391		};
392
393		sata@29000000 {
394			compatible = "qcom,ipq806x-ahci", "generic-ahci";
395			reg = <0x29000000 0x180>;
396
397			interrupts = <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>;
398
399			clocks = <&gcc SFAB_SATA_S_H_CLK>,
400				 <&gcc SATA_H_CLK>,
401				 <&gcc SATA_A_CLK>,
402				 <&gcc SATA_RXOOB_CLK>,
403				 <&gcc SATA_PMALIVE_CLK>;
404			clock-names = "slave_face", "iface", "core",
405					"rxoob", "pmalive";
406
407			assigned-clocks = <&gcc SATA_RXOOB_CLK>, <&gcc SATA_PMALIVE_CLK>;
408			assigned-clock-rates = <100000000>, <100000000>;
409
410			phys = <&sata_phy>;
411			phy-names = "sata-phy";
412			status = "disabled";
413		};
414
415		qcom,ssbi@500000 {
416			compatible = "qcom,ssbi";
417			reg = <0x00500000 0x1000>;
418			qcom,controller-type = "pmic-arbiter";
419		};
420
421		gcc: clock-controller@900000 {
422			compatible = "qcom,gcc-ipq8064";
423			reg = <0x00900000 0x4000>;
424			#clock-cells = <1>;
425			#reset-cells = <1>;
426		};
427
428		tcsr: syscon@1a400000 {
429			compatible = "qcom,tcsr-ipq8064", "syscon";
430			reg = <0x1a400000 0x100>;
431		};
432
433		lcc: clock-controller@28000000 {
434			compatible = "qcom,lcc-ipq8064";
435			reg = <0x28000000 0x1000>;
436			#clock-cells = <1>;
437			#reset-cells = <1>;
438		};
439
440		pcie0: pci@1b500000 {
441			compatible = "qcom,pcie-ipq8064";
442			reg = <0x1b500000 0x1000
443			       0x1b502000 0x80
444			       0x1b600000 0x100
445			       0x0ff00000 0x100000>;
446			reg-names = "dbi", "elbi", "parf", "config";
447			device_type = "pci";
448			linux,pci-domain = <0>;
449			bus-range = <0x00 0xff>;
450			num-lanes = <1>;
451			#address-cells = <3>;
452			#size-cells = <2>;
453
454			ranges = <0x81000000 0 0x0fe00000 0x0fe00000 0 0x00100000   /* downstream I/O */
455				  0x82000000 0 0x08000000 0x08000000 0 0x07e00000>; /* non-prefetchable memory */
456
457			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
458			interrupt-names = "msi";
459			#interrupt-cells = <1>;
460			interrupt-map-mask = <0 0 0 0x7>;
461			interrupt-map = <0 0 0 1 &intc 0 36 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
462					<0 0 0 2 &intc 0 37 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
463					<0 0 0 3 &intc 0 38 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
464					<0 0 0 4 &intc 0 39 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
465
466			clocks = <&gcc PCIE_A_CLK>,
467				 <&gcc PCIE_H_CLK>,
468				 <&gcc PCIE_PHY_CLK>,
469				 <&gcc PCIE_AUX_CLK>,
470				 <&gcc PCIE_ALT_REF_CLK>;
471			clock-names = "core", "iface", "phy", "aux", "ref";
472
473			assigned-clocks = <&gcc PCIE_ALT_REF_CLK>;
474			assigned-clock-rates = <100000000>;
475
476			resets = <&gcc PCIE_ACLK_RESET>,
477				 <&gcc PCIE_HCLK_RESET>,
478				 <&gcc PCIE_POR_RESET>,
479				 <&gcc PCIE_PCI_RESET>,
480				 <&gcc PCIE_PHY_RESET>,
481				 <&gcc PCIE_EXT_RESET>;
482			reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
483
484			pinctrl-0 = <&pcie0_pins>;
485			pinctrl-names = "default";
486
487			status = "disabled";
488			perst-gpio = <&qcom_pinmux 3 GPIO_ACTIVE_LOW>;
489		};
490
491		pcie1: pci@1b700000 {
492			compatible = "qcom,pcie-ipq8064";
493			reg = <0x1b700000 0x1000
494			       0x1b702000 0x80
495			       0x1b800000 0x100
496			       0x31f00000 0x100000>;
497			reg-names = "dbi", "elbi", "parf", "config";
498			device_type = "pci";
499			linux,pci-domain = <1>;
500			bus-range = <0x00 0xff>;
501			num-lanes = <1>;
502			#address-cells = <3>;
503			#size-cells = <2>;
504
505			ranges = <0x81000000 0 0x31e00000 0x31e00000 0 0x00100000   /* downstream I/O */
506				  0x82000000 0 0x2e000000 0x2e000000 0 0x03e00000>; /* non-prefetchable memory */
507
508			interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
509			interrupt-names = "msi";
510			#interrupt-cells = <1>;
511			interrupt-map-mask = <0 0 0 0x7>;
512			interrupt-map = <0 0 0 1 &intc 0 58 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
513					<0 0 0 2 &intc 0 59 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
514					<0 0 0 3 &intc 0 60 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
515					<0 0 0 4 &intc 0 61 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
516
517			clocks = <&gcc PCIE_1_A_CLK>,
518				 <&gcc PCIE_1_H_CLK>,
519				 <&gcc PCIE_1_PHY_CLK>,
520				 <&gcc PCIE_1_AUX_CLK>,
521				 <&gcc PCIE_1_ALT_REF_CLK>;
522			clock-names = "core", "iface", "phy", "aux", "ref";
523
524			assigned-clocks = <&gcc PCIE_1_ALT_REF_CLK>;
525			assigned-clock-rates = <100000000>;
526
527			resets = <&gcc PCIE_1_ACLK_RESET>,
528				 <&gcc PCIE_1_HCLK_RESET>,
529				 <&gcc PCIE_1_POR_RESET>,
530				 <&gcc PCIE_1_PCI_RESET>,
531				 <&gcc PCIE_1_PHY_RESET>,
532				 <&gcc PCIE_1_EXT_RESET>;
533			reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
534
535			pinctrl-0 = <&pcie1_pins>;
536			pinctrl-names = "default";
537
538			status = "disabled";
539			perst-gpio = <&qcom_pinmux 48 GPIO_ACTIVE_LOW>;
540		};
541
542		pcie2: pci@1b900000 {
543			compatible = "qcom,pcie-ipq8064";
544			reg = <0x1b900000 0x1000
545			       0x1b902000 0x80
546			       0x1ba00000 0x100
547			       0x35f00000 0x100000>;
548			reg-names = "dbi", "elbi", "parf", "config";
549			device_type = "pci";
550			linux,pci-domain = <2>;
551			bus-range = <0x00 0xff>;
552			num-lanes = <1>;
553			#address-cells = <3>;
554			#size-cells = <2>;
555
556			ranges = <0x81000000 0 0x35e00000 0x35e00000 0 0x00100000   /* downstream I/O */
557				  0x82000000 0 0x32000000 0x32000000 0 0x03e00000>; /* non-prefetchable memory */
558
559			interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
560			interrupt-names = "msi";
561			#interrupt-cells = <1>;
562			interrupt-map-mask = <0 0 0 0x7>;
563			interrupt-map = <0 0 0 1 &intc 0 72 IRQ_TYPE_LEVEL_HIGH>, /* int_a */
564					<0 0 0 2 &intc 0 73 IRQ_TYPE_LEVEL_HIGH>, /* int_b */
565					<0 0 0 3 &intc 0 74 IRQ_TYPE_LEVEL_HIGH>, /* int_c */
566					<0 0 0 4 &intc 0 75 IRQ_TYPE_LEVEL_HIGH>; /* int_d */
567
568			clocks = <&gcc PCIE_2_A_CLK>,
569				 <&gcc PCIE_2_H_CLK>,
570				 <&gcc PCIE_2_PHY_CLK>,
571				 <&gcc PCIE_2_AUX_CLK>,
572				 <&gcc PCIE_2_ALT_REF_CLK>;
573			clock-names = "core", "iface", "phy", "aux", "ref";
574
575			assigned-clocks = <&gcc PCIE_2_ALT_REF_CLK>;
576			assigned-clock-rates = <100000000>;
577
578			resets = <&gcc PCIE_2_ACLK_RESET>,
579				 <&gcc PCIE_2_HCLK_RESET>,
580				 <&gcc PCIE_2_POR_RESET>,
581				 <&gcc PCIE_2_PCI_RESET>,
582				 <&gcc PCIE_2_PHY_RESET>,
583				 <&gcc PCIE_2_EXT_RESET>;
584			reset-names = "axi", "ahb", "por", "pci", "phy", "ext";
585
586			pinctrl-0 = <&pcie2_pins>;
587			pinctrl-names = "default";
588
589			status = "disabled";
590			perst-gpio = <&qcom_pinmux 63 GPIO_ACTIVE_LOW>;
591		};
592
593		vsdcc_fixed: vsdcc-regulator {
594			compatible = "regulator-fixed";
595			regulator-name = "SDCC Power";
596			regulator-min-microvolt = <3300000>;
597			regulator-max-microvolt = <3300000>;
598			regulator-always-on;
599		};
600
601		sdcc1bam:dma@12402000 {
602			compatible = "qcom,bam-v1.3.0";
603			reg = <0x12402000 0x8000>;
604			interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
605			clocks = <&gcc SDC1_H_CLK>;
606			clock-names = "bam_clk";
607			#dma-cells = <1>;
608			qcom,ee = <0>;
609		};
610
611		sdcc3bam:dma@12182000 {
612			compatible = "qcom,bam-v1.3.0";
613			reg = <0x12182000 0x8000>;
614			interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
615			clocks = <&gcc SDC3_H_CLK>;
616			clock-names = "bam_clk";
617			#dma-cells = <1>;
618			qcom,ee = <0>;
619		};
620
621		amba {
622			compatible = "simple-bus";
623			#address-cells = <1>;
624			#size-cells = <1>;
625			ranges;
626
627			sdcc@12400000 {
628				status          = "disabled";
629				compatible      = "arm,pl18x", "arm,primecell";
630				arm,primecell-periphid = <0x00051180>;
631				reg             = <0x12400000 0x2000>;
632				interrupts      = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
633				interrupt-names = "cmd_irq";
634				clocks          = <&gcc SDC1_CLK>, <&gcc SDC1_H_CLK>;
635				clock-names     = "mclk", "apb_pclk";
636				bus-width       = <8>;
637				max-frequency   = <96000000>;
638				non-removable;
639				cap-sd-highspeed;
640				cap-mmc-highspeed;
641				mmc-ddr-1_8v;
642				vmmc-supply = <&vsdcc_fixed>;
643				dmas = <&sdcc1bam 2>, <&sdcc1bam 1>;
644				dma-names = "tx", "rx";
645			};
646
647			sdcc@12180000 {
648				compatible      = "arm,pl18x", "arm,primecell";
649				arm,primecell-periphid = <0x00051180>;
650				status          = "disabled";
651				reg             = <0x12180000 0x2000>;
652				interrupts      = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
653				interrupt-names = "cmd_irq";
654				clocks          = <&gcc SDC3_CLK>, <&gcc SDC3_H_CLK>;
655				clock-names     = "mclk", "apb_pclk";
656				bus-width       = <8>;
657				cap-sd-highspeed;
658				cap-mmc-highspeed;
659				max-frequency   = <192000000>;
660				#mmc-ddr-1_8v;
661				sd-uhs-sdr104;
662				sd-uhs-ddr50;
663				vqmmc-supply = <&vsdcc_fixed>;
664				dmas = <&sdcc3bam 2>, <&sdcc3bam 1>;
665				dma-names = "tx", "rx";
666			};
667		};
668	};
669};
v4.6
 
  1/dts-v1/;
  2
  3#include "skeleton.dtsi"
  4#include <dt-bindings/clock/qcom,gcc-ipq806x.h>
  5#include <dt-bindings/clock/qcom,lcc-ipq806x.h>
 
 
  6#include <dt-bindings/soc/qcom,gsbi.h>
 
  7
  8/ {
 
 
  9	model = "Qualcomm IPQ8064";
 10	compatible = "qcom,ipq8064";
 11	interrupt-parent = <&intc>;
 12
 13	cpus {
 14		#address-cells = <1>;
 15		#size-cells = <0>;
 16
 17		cpu@0 {
 18			compatible = "qcom,krait";
 19			enable-method = "qcom,kpss-acc-v1";
 20			device_type = "cpu";
 21			reg = <0>;
 22			next-level-cache = <&L2>;
 23			qcom,acc = <&acc0>;
 24			qcom,saw = <&saw0>;
 25		};
 26
 27		cpu@1 {
 28			compatible = "qcom,krait";
 29			enable-method = "qcom,kpss-acc-v1";
 30			device_type = "cpu";
 31			reg = <1>;
 32			next-level-cache = <&L2>;
 33			qcom,acc = <&acc1>;
 34			qcom,saw = <&saw1>;
 35		};
 36
 37		L2: l2-cache {
 38			compatible = "cache";
 39			cache-level = <2>;
 40		};
 41	};
 42
 
 
 
 
 
 43	cpu-pmu {
 44		compatible = "qcom,krait-pmu";
 45		interrupts = <1 10 0x304>;
 
 46	};
 47
 48	reserved-memory {
 49		#address-cells = <1>;
 50		#size-cells = <1>;
 51		ranges;
 52
 53		nss@40000000 {
 54			reg = <0x40000000 0x1000000>;
 55			no-map;
 56		};
 57
 58		smem@41000000 {
 59			reg = <0x41000000 0x200000>;
 60			no-map;
 61		};
 62	};
 63
 64	clocks {
 65		cxo_board {
 66			compatible = "fixed-clock";
 67			#clock-cells = <0>;
 68			clock-frequency = <19200000>;
 69		};
 70
 71		pxo_board {
 72			compatible = "fixed-clock";
 73			#clock-cells = <0>;
 74			clock-frequency = <27000000>;
 75		};
 76
 77		sleep_clk: sleep_clk {
 78			compatible = "fixed-clock";
 79			clock-frequency = <32768>;
 80			#clock-cells = <0>;
 81		};
 82	};
 83
 84	soc: soc {
 85		#address-cells = <1>;
 86		#size-cells = <1>;
 87		ranges;
 88		compatible = "simple-bus";
 89
 90		lpass@28100000 {
 91			compatible = "qcom,lpass-cpu";
 92			status = "disabled";
 93			clocks = <&lcc AHBIX_CLK>,
 94					<&lcc MI2S_OSR_CLK>,
 95					<&lcc MI2S_BIT_CLK>;
 96			clock-names = "ahbix-clk",
 97					"mi2s-osr-clk",
 98					"mi2s-bit-clk";
 99			interrupts = <0 85 1>;
100			interrupt-names = "lpass-irq-lpaif";
101			reg = <0x28100000 0x10000>;
102			reg-names = "lpass-lpaif";
103		};
104
105		qcom_pinmux: pinmux@800000 {
106			compatible = "qcom,ipq8064-pinctrl";
107			reg = <0x800000 0x4000>;
108
109			gpio-controller;
110			#gpio-cells = <2>;
111			interrupt-controller;
112			#interrupt-cells = <2>;
113			interrupts = <0 16 0x4>;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
114		};
115
116		intc: interrupt-controller@2000000 {
117			compatible = "qcom,msm-qgic2";
118			interrupt-controller;
119			#interrupt-cells = <3>;
120			reg = <0x02000000 0x1000>,
121			      <0x02002000 0x1000>;
122		};
123
124		timer@200a000 {
125			compatible = "qcom,kpss-timer", "qcom,msm-timer";
126			interrupts = <1 1 0x301>,
127				     <1 2 0x301>,
128				     <1 3 0x301>,
129				     <1 4 0x301>,
130				     <1 5 0x301>;
 
 
 
 
 
 
131			reg = <0x0200a000 0x100>;
132			clock-frequency = <25000000>,
133					  <32768>;
134			clocks = <&sleep_clk>;
135			clock-names = "sleep";
136			cpu-offset = <0x80000>;
137		};
138
139		acc0: clock-controller@2088000 {
140			compatible = "qcom,kpss-acc-v1";
141			reg = <0x02088000 0x1000>, <0x02008000 0x1000>;
142		};
143
144		acc1: clock-controller@2098000 {
145			compatible = "qcom,kpss-acc-v1";
146			reg = <0x02098000 0x1000>, <0x02008000 0x1000>;
147		};
148
149		saw0: regulator@2089000 {
150			compatible = "qcom,saw2";
151			reg = <0x02089000 0x1000>, <0x02009000 0x1000>;
152			regulator;
153		};
154
155		saw1: regulator@2099000 {
156			compatible = "qcom,saw2";
157			reg = <0x02099000 0x1000>, <0x02009000 0x1000>;
158			regulator;
159		};
160
161		gsbi2: gsbi@12480000 {
162			compatible = "qcom,gsbi-v1.0.0";
163			cell-index = <2>;
164			reg = <0x12480000 0x100>;
165			clocks = <&gcc GSBI2_H_CLK>;
166			clock-names = "iface";
167			#address-cells = <1>;
168			#size-cells = <1>;
169			ranges;
170			status = "disabled";
171
172			syscon-tcsr = <&tcsr>;
173
174			serial@12490000 {
175				compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
176				reg = <0x12490000 0x1000>,
177				      <0x12480000 0x1000>;
178				interrupts = <0 195 0x0>;
179				clocks = <&gcc GSBI2_UART_CLK>, <&gcc GSBI2_H_CLK>;
180				clock-names = "core", "iface";
181				status = "disabled";
182			};
183
184			i2c@124a0000 {
185				compatible = "qcom,i2c-qup-v1.1.1";
186				reg = <0x124a0000 0x1000>;
187				interrupts = <0 196 0>;
188
189				clocks = <&gcc GSBI2_QUP_CLK>, <&gcc GSBI2_H_CLK>;
190				clock-names = "core", "iface";
191				status = "disabled";
192
193				#address-cells = <1>;
194				#size-cells = <0>;
195			};
196
197		};
198
199		gsbi4: gsbi@16300000 {
200			compatible = "qcom,gsbi-v1.0.0";
201			cell-index = <4>;
202			reg = <0x16300000 0x100>;
203			clocks = <&gcc GSBI4_H_CLK>;
204			clock-names = "iface";
205			#address-cells = <1>;
206			#size-cells = <1>;
207			ranges;
208			status = "disabled";
209
210			syscon-tcsr = <&tcsr>;
211
212			gsbi4_serial: serial@16340000 {
213				compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
214				reg = <0x16340000 0x1000>,
215				      <0x16300000 0x1000>;
216				interrupts = <0 152 0x0>;
217				clocks = <&gcc GSBI4_UART_CLK>, <&gcc GSBI4_H_CLK>;
218				clock-names = "core", "iface";
219				status = "disabled";
220			};
221
222			i2c@16380000 {
223				compatible = "qcom,i2c-qup-v1.1.1";
224				reg = <0x16380000 0x1000>;
225				interrupts = <0 153 0>;
226
227				clocks = <&gcc GSBI4_QUP_CLK>, <&gcc GSBI4_H_CLK>;
228				clock-names = "core", "iface";
229				status = "disabled";
230
231				#address-cells = <1>;
232				#size-cells = <0>;
233			};
234		};
235
236		gsbi5: gsbi@1a200000 {
237			compatible = "qcom,gsbi-v1.0.0";
238			cell-index = <5>;
239			reg = <0x1a200000 0x100>;
240			clocks = <&gcc GSBI5_H_CLK>;
241			clock-names = "iface";
242			#address-cells = <1>;
243			#size-cells = <1>;
244			ranges;
245			status = "disabled";
246
247			syscon-tcsr = <&tcsr>;
248
249			serial@1a240000 {
250				compatible = "qcom,msm-uartdm-v1.3", "qcom,msm-uartdm";
251				reg = <0x1a240000 0x1000>,
252				      <0x1a200000 0x1000>;
253				interrupts = <0 154 0x0>;
254				clocks = <&gcc GSBI5_UART_CLK>, <&gcc GSBI5_H_CLK>;
255				clock-names = "core", "iface";
256				status = "disabled";
257			};
258
259			i2c@1a280000 {
260				compatible = "qcom,i2c-qup-v1.1.1";
261				reg = <0x1a280000 0x1000>;
262				interrupts = <0 155 0>;
263
264				clocks = <&gcc GSBI5_QUP_CLK>, <&gcc GSBI5_H_CLK>;
265				clock-names = "core", "iface";
266				status = "disabled";
267
268				#address-cells = <1>;
269				#size-cells = <0>;
270			};
271
272			spi@1a280000 {
273				compatible = "qcom,spi-qup-v1.1.1";
274				reg = <0x1a280000 0x1000>;
275				interrupts = <0 155 0>;
276
277				clocks = <&gcc GSBI5_QUP_CLK>, <&gcc GSBI5_H_CLK>;
278				clock-names = "core", "iface";
279				status = "disabled";
280
281				#address-cells = <1>;
282				#size-cells = <0>;
283			};
284		};
285
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
286		sata_phy: sata-phy@1b400000 {
287			compatible = "qcom,ipq806x-sata-phy";
288			reg = <0x1b400000 0x200>;
289
290			clocks = <&gcc SATA_PHY_CFG_CLK>;
291			clock-names = "cfg";
292
293			#phy-cells = <0>;
294			status = "disabled";
295		};
296
297		sata@29000000 {
298			compatible = "qcom,ipq806x-ahci", "generic-ahci";
299			reg = <0x29000000 0x180>;
300
301			interrupts = <0 209 0x0>;
302
303			clocks = <&gcc SFAB_SATA_S_H_CLK>,
304				 <&gcc SATA_H_CLK>,
305				 <&gcc SATA_A_CLK>,
306				 <&gcc SATA_RXOOB_CLK>,
307				 <&gcc SATA_PMALIVE_CLK>;
308			clock-names = "slave_face", "iface", "core",
309					"rxoob", "pmalive";
310
311			assigned-clocks = <&gcc SATA_RXOOB_CLK>, <&gcc SATA_PMALIVE_CLK>;
312			assigned-clock-rates = <100000000>, <100000000>;
313
314			phys = <&sata_phy>;
315			phy-names = "sata-phy";
316			status = "disabled";
317		};
318
319		qcom,ssbi@500000 {
320			compatible = "qcom,ssbi";
321			reg = <0x00500000 0x1000>;
322			qcom,controller-type = "pmic-arbiter";
323		};
324
325		gcc: clock-controller@900000 {
326			compatible = "qcom,gcc-ipq8064";
327			reg = <0x00900000 0x4000>;
328			#clock-cells = <1>;
329			#reset-cells = <1>;
330		};
331
332		tcsr: syscon@1a400000 {
333			compatible = "qcom,tcsr-ipq8064", "syscon";
334			reg = <0x1a400000 0x100>;
335		};
336
337		lcc: clock-controller@28000000 {
338			compatible = "qcom,lcc-ipq8064";
339			reg = <0x28000000 0x1000>;
340			#clock-cells = <1>;
341			#reset-cells = <1>;
342		};
343
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
344	};
345};