xref: /OK3568_Linux_fs/kernel/arch/arm64/boot/dts/marvell/armada-ap810-ap0.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Copyright (C) 2017 Marvell Technology Group Ltd.
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun * Device Tree file for Marvell Armada AP810.
6*4882a593Smuzhiyun */
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h>
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun/dts-v1/;
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun/ {
13*4882a593Smuzhiyun	model = "Marvell Armada AP810";
14*4882a593Smuzhiyun	compatible = "marvell,armada-ap810";
15*4882a593Smuzhiyun	#address-cells = <2>;
16*4882a593Smuzhiyun	#size-cells = <2>;
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun	aliases {
19*4882a593Smuzhiyun		serial0 = &uart0_ap0;
20*4882a593Smuzhiyun		serial1 = &uart1_ap0;
21*4882a593Smuzhiyun	};
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun	psci {
24*4882a593Smuzhiyun		compatible = "arm,psci-0.2";
25*4882a593Smuzhiyun		method = "smc";
26*4882a593Smuzhiyun	};
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun	ap810-ap0 {
29*4882a593Smuzhiyun		#address-cells = <2>;
30*4882a593Smuzhiyun		#size-cells = <2>;
31*4882a593Smuzhiyun		compatible = "simple-bus";
32*4882a593Smuzhiyun		interrupt-parent = <&gic>;
33*4882a593Smuzhiyun		ranges;
34*4882a593Smuzhiyun
35*4882a593Smuzhiyun		config-space@e8000000 {
36*4882a593Smuzhiyun			#address-cells = <1>;
37*4882a593Smuzhiyun			#size-cells = <1>;
38*4882a593Smuzhiyun			compatible = "simple-bus";
39*4882a593Smuzhiyun			ranges = <0x0 0x0 0xe8000000 0x4000000>;
40*4882a593Smuzhiyun			interrupt-parent = <&gic>;
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun			gic: interrupt-controller@3000000 {
43*4882a593Smuzhiyun				compatible = "arm,gic-v3";
44*4882a593Smuzhiyun				#interrupt-cells = <3>;
45*4882a593Smuzhiyun				#address-cells = <1>;
46*4882a593Smuzhiyun				#size-cells = <1>;
47*4882a593Smuzhiyun				interrupt-controller;
48*4882a593Smuzhiyun				interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
49*4882a593Smuzhiyun				ranges;
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun				reg = <0x3000000 0x10000>,	/* GICD */
52*4882a593Smuzhiyun				      <0x3060000 0x100000>,	/* GICR */
53*4882a593Smuzhiyun				      <0x00c0000 0x2000>,	/* GICC */
54*4882a593Smuzhiyun				      <0x00d0000 0x1000>,	/* GICH */
55*4882a593Smuzhiyun				      <0x00e0000 0x2000>;	/* GICV */
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun				gic_its_ap0: interrupt-controller@3040000 {
58*4882a593Smuzhiyun					compatible = "arm,gic-v3-its";
59*4882a593Smuzhiyun					msi-controller;
60*4882a593Smuzhiyun					#msi-cells = <1>;
61*4882a593Smuzhiyun					reg = <0x3040000 0x20000>;
62*4882a593Smuzhiyun				};
63*4882a593Smuzhiyun			};
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun			timer {
66*4882a593Smuzhiyun				compatible = "arm,armv8-timer";
67*4882a593Smuzhiyun				interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
68*4882a593Smuzhiyun					     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
69*4882a593Smuzhiyun					     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
70*4882a593Smuzhiyun					     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
71*4882a593Smuzhiyun			};
72*4882a593Smuzhiyun
73*4882a593Smuzhiyun			xor@400000 {
74*4882a593Smuzhiyun				compatible = "marvell,armada-7k-xor", "marvell,xor-v2";
75*4882a593Smuzhiyun				reg = <0x400000 0x1000>,
76*4882a593Smuzhiyun				      <0x410000 0x1000>;
77*4882a593Smuzhiyun				msi-parent = <&gic_its_ap0 0xa0>;
78*4882a593Smuzhiyun				dma-coherent;
79*4882a593Smuzhiyun			};
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun			xor@420000 {
82*4882a593Smuzhiyun				compatible = "marvell,armada-7k-xor", "marvell,xor-v2";
83*4882a593Smuzhiyun				reg = <0x420000 0x1000>,
84*4882a593Smuzhiyun				      <0x430000 0x1000>;
85*4882a593Smuzhiyun				msi-parent = <&gic_its_ap0 0xa1>;
86*4882a593Smuzhiyun				dma-coherent;
87*4882a593Smuzhiyun			};
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun			xor@440000 {
90*4882a593Smuzhiyun				compatible = "marvell,armada-7k-xor", "marvell,xor-v2";
91*4882a593Smuzhiyun				reg = <0x440000 0x1000>,
92*4882a593Smuzhiyun				      <0x450000 0x1000>;
93*4882a593Smuzhiyun				msi-parent = <&gic_its_ap0 0xa2>;
94*4882a593Smuzhiyun				dma-coherent;
95*4882a593Smuzhiyun			};
96*4882a593Smuzhiyun
97*4882a593Smuzhiyun			xor@460000 {
98*4882a593Smuzhiyun				compatible = "marvell,armada-7k-xor", "marvell,xor-v2";
99*4882a593Smuzhiyun				reg = <0x460000 0x1000>,
100*4882a593Smuzhiyun				      <0x470000 0x1000>;
101*4882a593Smuzhiyun				msi-parent = <&gic_its_ap0 0xa3>;
102*4882a593Smuzhiyun				dma-coherent;
103*4882a593Smuzhiyun			};
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun			uart0_ap0: serial@512000 {
106*4882a593Smuzhiyun				compatible = "snps,dw-apb-uart";
107*4882a593Smuzhiyun				reg = <0x512000 0x100>;
108*4882a593Smuzhiyun				reg-shift = <2>;
109*4882a593Smuzhiyun				interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
110*4882a593Smuzhiyun				reg-io-width = <1>;
111*4882a593Smuzhiyun				status = "disabled";
112*4882a593Smuzhiyun			};
113*4882a593Smuzhiyun
114*4882a593Smuzhiyun			uart1_ap0: serial@512100 {
115*4882a593Smuzhiyun				compatible = "snps,dw-apb-uart";
116*4882a593Smuzhiyun				reg = <0x512100 0x100>;
117*4882a593Smuzhiyun				reg-shift = <2>;
118*4882a593Smuzhiyun				interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
119*4882a593Smuzhiyun				reg-io-width = <1>;
120*4882a593Smuzhiyun				status = "disabled";
121*4882a593Smuzhiyun			};
122*4882a593Smuzhiyun		};
123*4882a593Smuzhiyun	};
124*4882a593Smuzhiyun};
125