xref: /OK3568_Linux_fs/kernel/arch/arc/boot/dts/abilis_tb10x.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0-only
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * Abilis Systems TB10X SOC device tree
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun * Copyright (C) Abilis Systems 2013
6*4882a593Smuzhiyun *
7*4882a593Smuzhiyun * Author: Christian Ruppert <christian.ruppert@abilis.com>
8*4882a593Smuzhiyun */
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun/ {
12*4882a593Smuzhiyun	compatible		= "abilis,arc-tb10x";
13*4882a593Smuzhiyun	#address-cells		= <1>;
14*4882a593Smuzhiyun	#size-cells		= <1>;
15*4882a593Smuzhiyun
16*4882a593Smuzhiyun	cpus {
17*4882a593Smuzhiyun		#address-cells = <1>;
18*4882a593Smuzhiyun		#size-cells = <0>;
19*4882a593Smuzhiyun		cpu@0 {
20*4882a593Smuzhiyun			device_type = "cpu";
21*4882a593Smuzhiyun			compatible = "snps,arc770d";
22*4882a593Smuzhiyun			reg = <0>;
23*4882a593Smuzhiyun		};
24*4882a593Smuzhiyun	};
25*4882a593Smuzhiyun
26*4882a593Smuzhiyun	/* TIMER0 with interrupt for clockevent */
27*4882a593Smuzhiyun	timer0 {
28*4882a593Smuzhiyun		compatible = "snps,arc-timer";
29*4882a593Smuzhiyun		interrupts = <3>;
30*4882a593Smuzhiyun		interrupt-parent = <&intc>;
31*4882a593Smuzhiyun		clocks = <&cpu_clk>;
32*4882a593Smuzhiyun	};
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun	/* TIMER1 for free running clocksource */
35*4882a593Smuzhiyun	timer1 {
36*4882a593Smuzhiyun		compatible = "snps,arc-timer";
37*4882a593Smuzhiyun		clocks = <&cpu_clk>;
38*4882a593Smuzhiyun	};
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun	soc100 {
41*4882a593Smuzhiyun		#address-cells	= <1>;
42*4882a593Smuzhiyun		#size-cells	= <1>;
43*4882a593Smuzhiyun		device_type	= "soc";
44*4882a593Smuzhiyun		ranges		= <0xfe000000 0xfe000000 0x02000000
45*4882a593Smuzhiyun				0x000f0000 0x000f0000 0x00010000>;
46*4882a593Smuzhiyun		compatible	= "abilis,tb10x", "simple-bus";
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun		pll0: oscillator {
49*4882a593Smuzhiyun			compatible = "fixed-clock";
50*4882a593Smuzhiyun			#clock-cells = <0>;
51*4882a593Smuzhiyun			clock-output-names = "pll0";
52*4882a593Smuzhiyun		};
53*4882a593Smuzhiyun		cpu_clk: clkdiv_cpu {
54*4882a593Smuzhiyun			compatible = "fixed-factor-clock";
55*4882a593Smuzhiyun			#clock-cells = <0>;
56*4882a593Smuzhiyun			clocks = <&pll0>;
57*4882a593Smuzhiyun			clock-output-names = "cpu_clk";
58*4882a593Smuzhiyun		};
59*4882a593Smuzhiyun		ahb_clk: clkdiv_ahb {
60*4882a593Smuzhiyun			compatible = "fixed-factor-clock";
61*4882a593Smuzhiyun			#clock-cells = <0>;
62*4882a593Smuzhiyun			clocks = <&pll0>;
63*4882a593Smuzhiyun			clock-output-names = "ahb_clk";
64*4882a593Smuzhiyun		};
65*4882a593Smuzhiyun
66*4882a593Smuzhiyun		iomux: iomux@ff10601c {
67*4882a593Smuzhiyun			compatible = "abilis,tb10x-iomux";
68*4882a593Smuzhiyun			#gpio-range-cells = <3>;
69*4882a593Smuzhiyun			reg = <0xff10601c 0x4>;
70*4882a593Smuzhiyun		};
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun		intc: interrupt-controller {
73*4882a593Smuzhiyun			compatible = "snps,arc700-intc";
74*4882a593Smuzhiyun			interrupt-controller;
75*4882a593Smuzhiyun			#interrupt-cells = <1>;
76*4882a593Smuzhiyun		};
77*4882a593Smuzhiyun		tb10x_ictl: pic@fe002000 {
78*4882a593Smuzhiyun			compatible = "abilis,tb10x-ictl";
79*4882a593Smuzhiyun			reg = <0xfe002000 0x20>;
80*4882a593Smuzhiyun			interrupt-controller;
81*4882a593Smuzhiyun			#interrupt-cells = <2>;
82*4882a593Smuzhiyun			interrupt-parent = <&intc>;
83*4882a593Smuzhiyun			interrupts = <5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
84*4882a593Smuzhiyun					20 21 22 23 24 25 26 27 28 29 30 31>;
85*4882a593Smuzhiyun		};
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun		uart@ff100000 {
88*4882a593Smuzhiyun			compatible = "snps,dw-apb-uart";
89*4882a593Smuzhiyun			reg = <0xff100000 0x100>;
90*4882a593Smuzhiyun			clock-frequency = <166666666>;
91*4882a593Smuzhiyun			interrupts = <25 8>;
92*4882a593Smuzhiyun			reg-shift = <2>;
93*4882a593Smuzhiyun			reg-io-width = <4>;
94*4882a593Smuzhiyun			interrupt-parent = <&tb10x_ictl>;
95*4882a593Smuzhiyun		};
96*4882a593Smuzhiyun		ethernet@fe100000 {
97*4882a593Smuzhiyun			compatible = "snps,dwmac-3.70a","snps,dwmac";
98*4882a593Smuzhiyun			reg = <0xfe100000 0x1058>;
99*4882a593Smuzhiyun			interrupt-parent = <&tb10x_ictl>;
100*4882a593Smuzhiyun			interrupts = <6 8>;
101*4882a593Smuzhiyun			interrupt-names = "macirq";
102*4882a593Smuzhiyun			clocks = <&ahb_clk>;
103*4882a593Smuzhiyun			clock-names = "stmmaceth";
104*4882a593Smuzhiyun		};
105*4882a593Smuzhiyun		dma@fe000000 {
106*4882a593Smuzhiyun			compatible = "snps,dma-spear1340";
107*4882a593Smuzhiyun			reg = <0xfe000000 0x400>;
108*4882a593Smuzhiyun			interrupt-parent = <&tb10x_ictl>;
109*4882a593Smuzhiyun			interrupts = <14 8>;
110*4882a593Smuzhiyun			dma-channels = <6>;
111*4882a593Smuzhiyun			dma-requests = <0>;
112*4882a593Smuzhiyun			dma-masters = <1>;
113*4882a593Smuzhiyun			#dma-cells = <3>;
114*4882a593Smuzhiyun			chan_allocation_order = <0>;
115*4882a593Smuzhiyun			chan_priority = <1>;
116*4882a593Smuzhiyun			block_size = <0x7ff>;
117*4882a593Smuzhiyun			data-width = <4>;
118*4882a593Smuzhiyun			clocks = <&ahb_clk>;
119*4882a593Smuzhiyun			clock-names = "hclk";
120*4882a593Smuzhiyun			multi-block = <1 1 1 1 1 1>;
121*4882a593Smuzhiyun		};
122*4882a593Smuzhiyun
123*4882a593Smuzhiyun		i2c0: i2c@ff120000 {
124*4882a593Smuzhiyun			#address-cells = <1>;
125*4882a593Smuzhiyun			#size-cells = <0>;
126*4882a593Smuzhiyun			compatible = "snps,designware-i2c";
127*4882a593Smuzhiyun			reg = <0xff120000 0x1000>;
128*4882a593Smuzhiyun			interrupt-parent = <&tb10x_ictl>;
129*4882a593Smuzhiyun			interrupts = <12 8>;
130*4882a593Smuzhiyun			clocks = <&ahb_clk>;
131*4882a593Smuzhiyun		};
132*4882a593Smuzhiyun		i2c1: i2c@ff121000 {
133*4882a593Smuzhiyun			#address-cells = <1>;
134*4882a593Smuzhiyun			#size-cells = <0>;
135*4882a593Smuzhiyun			compatible = "snps,designware-i2c";
136*4882a593Smuzhiyun			reg = <0xff121000 0x1000>;
137*4882a593Smuzhiyun			interrupt-parent = <&tb10x_ictl>;
138*4882a593Smuzhiyun			interrupts = <12 8>;
139*4882a593Smuzhiyun			clocks = <&ahb_clk>;
140*4882a593Smuzhiyun		};
141*4882a593Smuzhiyun		i2c2: i2c@ff122000 {
142*4882a593Smuzhiyun			#address-cells = <1>;
143*4882a593Smuzhiyun			#size-cells = <0>;
144*4882a593Smuzhiyun			compatible = "snps,designware-i2c";
145*4882a593Smuzhiyun			reg = <0xff122000 0x1000>;
146*4882a593Smuzhiyun			interrupt-parent = <&tb10x_ictl>;
147*4882a593Smuzhiyun			interrupts = <12 8>;
148*4882a593Smuzhiyun			clocks = <&ahb_clk>;
149*4882a593Smuzhiyun		};
150*4882a593Smuzhiyun		i2c3: i2c@ff123000 {
151*4882a593Smuzhiyun			#address-cells = <1>;
152*4882a593Smuzhiyun			#size-cells = <0>;
153*4882a593Smuzhiyun			compatible = "snps,designware-i2c";
154*4882a593Smuzhiyun			reg = <0xff123000 0x1000>;
155*4882a593Smuzhiyun			interrupt-parent = <&tb10x_ictl>;
156*4882a593Smuzhiyun			interrupts = <12 8>;
157*4882a593Smuzhiyun			clocks = <&ahb_clk>;
158*4882a593Smuzhiyun		};
159*4882a593Smuzhiyun		i2c4: i2c@ff124000 {
160*4882a593Smuzhiyun			#address-cells = <1>;
161*4882a593Smuzhiyun			#size-cells = <0>;
162*4882a593Smuzhiyun			compatible = "snps,designware-i2c";
163*4882a593Smuzhiyun			reg = <0xff124000 0x1000>;
164*4882a593Smuzhiyun			interrupt-parent = <&tb10x_ictl>;
165*4882a593Smuzhiyun			interrupts = <12 8>;
166*4882a593Smuzhiyun			clocks = <&ahb_clk>;
167*4882a593Smuzhiyun		};
168*4882a593Smuzhiyun
169*4882a593Smuzhiyun		spi0: spi@fe010000 {
170*4882a593Smuzhiyun			#address-cells = <1>;
171*4882a593Smuzhiyun			#size-cells = <0>;
172*4882a593Smuzhiyun			cell-index = <0>;
173*4882a593Smuzhiyun			compatible = "abilis,tb100-spi";
174*4882a593Smuzhiyun			num-cs = <1>;
175*4882a593Smuzhiyun			reg = <0xfe010000 0x20>;
176*4882a593Smuzhiyun			interrupt-parent = <&tb10x_ictl>;
177*4882a593Smuzhiyun			interrupts = <26 8>;
178*4882a593Smuzhiyun			clocks = <&ahb_clk>;
179*4882a593Smuzhiyun		};
180*4882a593Smuzhiyun		spi1: spi@fe011000 {
181*4882a593Smuzhiyun			#address-cells = <1>;
182*4882a593Smuzhiyun			#size-cells = <0>;
183*4882a593Smuzhiyun			cell-index = <1>;
184*4882a593Smuzhiyun			compatible = "abilis,tb100-spi";
185*4882a593Smuzhiyun			num-cs = <2>;
186*4882a593Smuzhiyun			reg = <0xfe011000 0x20>;
187*4882a593Smuzhiyun			interrupt-parent = <&tb10x_ictl>;
188*4882a593Smuzhiyun			interrupts = <10 8>;
189*4882a593Smuzhiyun			clocks = <&ahb_clk>;
190*4882a593Smuzhiyun		};
191*4882a593Smuzhiyun
192*4882a593Smuzhiyun		tb10x_tsm: tb10x-tsm@ff316000 {
193*4882a593Smuzhiyun			compatible = "abilis,tb100-tsm";
194*4882a593Smuzhiyun			reg = <0xff316000 0x400>;
195*4882a593Smuzhiyun			interrupt-parent = <&tb10x_ictl>;
196*4882a593Smuzhiyun			interrupts = <17 8>;
197*4882a593Smuzhiyun			output-clkdiv = <4>;
198*4882a593Smuzhiyun			global-packet-delay = <0x21>;
199*4882a593Smuzhiyun			port-packet-delay = <0>;
200*4882a593Smuzhiyun		};
201*4882a593Smuzhiyun		tb10x_stream_proc: tb10x-stream-proc {
202*4882a593Smuzhiyun			compatible = "abilis,tb100-streamproc";
203*4882a593Smuzhiyun			reg =   <0xfff00000 0x200>,
204*4882a593Smuzhiyun				<0x000f0000 0x10000>,
205*4882a593Smuzhiyun				<0xfff00200 0x105>,
206*4882a593Smuzhiyun				<0xff10600c 0x1>,
207*4882a593Smuzhiyun				<0xfe001018 0x1>;
208*4882a593Smuzhiyun			reg-names =     "mbox",
209*4882a593Smuzhiyun					"sp_iccm",
210*4882a593Smuzhiyun					"mbox_irq",
211*4882a593Smuzhiyun					"cpuctrl",
212*4882a593Smuzhiyun					"a6it_int_force";
213*4882a593Smuzhiyun			interrupt-parent = <&tb10x_ictl>;
214*4882a593Smuzhiyun			interrupts = <20 2>, <19 2>;
215*4882a593Smuzhiyun			interrupt-names = "cmd_irq", "event_irq";
216*4882a593Smuzhiyun		};
217*4882a593Smuzhiyun		tb10x_mdsc0: tb10x-mdscr@ff300000 {
218*4882a593Smuzhiyun			compatible = "abilis,tb100-mdscr";
219*4882a593Smuzhiyun			reg = <0xff300000 0x7000>;
220*4882a593Smuzhiyun			tb100-mdscr-manage-tsin;
221*4882a593Smuzhiyun		};
222*4882a593Smuzhiyun		tb10x_mscr0: tb10x-mdscr@ff307000 {
223*4882a593Smuzhiyun			compatible = "abilis,tb100-mdscr";
224*4882a593Smuzhiyun			reg = <0xff307000 0x7000>;
225*4882a593Smuzhiyun		};
226*4882a593Smuzhiyun		tb10x_scr0: tb10x-mdscr@ff30e000 {
227*4882a593Smuzhiyun			compatible = "abilis,tb100-mdscr";
228*4882a593Smuzhiyun			reg = <0xff30e000 0x4000>;
229*4882a593Smuzhiyun			tb100-mdscr-manage-tsin;
230*4882a593Smuzhiyun		};
231*4882a593Smuzhiyun		tb10x_scr1: tb10x-mdscr@ff312000 {
232*4882a593Smuzhiyun			compatible = "abilis,tb100-mdscr";
233*4882a593Smuzhiyun			reg = <0xff312000 0x4000>;
234*4882a593Smuzhiyun			tb100-mdscr-manage-tsin;
235*4882a593Smuzhiyun		};
236*4882a593Smuzhiyun		tb10x_wfb: tb10x-wfb@ff319000 {
237*4882a593Smuzhiyun			compatible = "abilis,tb100-wfb";
238*4882a593Smuzhiyun			reg = <0xff319000 0x1000>;
239*4882a593Smuzhiyun			interrupt-parent = <&tb10x_ictl>;
240*4882a593Smuzhiyun			interrupts = <16 8>;
241*4882a593Smuzhiyun		};
242*4882a593Smuzhiyun	};
243*4882a593Smuzhiyun};
244