1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Abilis Systems TB100 SOC device tree
4 *
5 * Copyright (C) Abilis Systems 2013
6 *
7 * Author: Christian Ruppert <christian.ruppert@abilis.com>
8 */
9
10/include/ "abilis_tb10x.dtsi"
11
12
13/ {
14	soc100 {
15		bus-frequency	= <166666666>;
16
17		pll0: oscillator {
18			clock-frequency  = <1000000000>;
19		};
20		cpu_clk: clkdiv_cpu {
21			clock-mult = <1>;
22			clock-div = <2>;
23		};
24		ahb_clk: clkdiv_ahb {
25			clock-mult = <1>;
26			clock-div = <6>;
27		};
28
29		iomux: iomux@ff10601c {
30			/* Port 1 */
31			pctl_tsin_s0: pctl-tsin-s0 {   /* Serial TS-in 0 */
32				abilis,function = "mis0";
33			};
34			pctl_tsin_s1: pctl-tsin-s1 {   /* Serial TS-in 1 */
35				abilis,function = "mis1";
36			};
37			pctl_gpio_a: pctl-gpio-a {     /* GPIO bank A */
38				abilis,function = "gpioa";
39			};
40			pctl_tsin_p1: pctl-tsin-p1 {   /* Parallel TS-in 1 */
41				abilis,function = "mip1";
42			};
43			/* Port 2 */
44			pctl_tsin_s2: pctl-tsin-s2 {   /* Serial TS-in 2 */
45				abilis,function = "mis2";
46			};
47			pctl_tsin_s3: pctl-tsin-s3 {   /* Serial TS-in 3 */
48				abilis,function = "mis3";
49			};
50			pctl_gpio_c: pctl-gpio-c {     /* GPIO bank C */
51				abilis,function = "gpioc";
52			};
53			pctl_tsin_p3: pctl-tsin-p3 {   /* Parallel TS-in 3 */
54				abilis,function = "mip3";
55			};
56			/* Port 3 */
57			pctl_tsin_s4: pctl-tsin-s4 {   /* Serial TS-in 4 */
58				abilis,function = "mis4";
59			};
60			pctl_tsin_s5: pctl-tsin-s5 {   /* Serial TS-in 5 */
61				abilis,function = "mis5";
62			};
63			pctl_gpio_e: pctl-gpio-e {     /* GPIO bank E */
64				abilis,function = "gpioe";
65			};
66			pctl_tsin_p5: pctl-tsin-p5 {   /* Parallel TS-in 5 */
67				abilis,function = "mip5";
68			};
69			/* Port 4 */
70			pctl_tsin_s6: pctl-tsin-s6 {   /* Serial TS-in 6 */
71				abilis,function = "mis6";
72			};
73			pctl_tsin_s7: pctl-tsin-s7 {   /* Serial TS-in 7 */
74				abilis,function = "mis7";
75			};
76			pctl_gpio_g: pctl-gpio-g {     /* GPIO bank G */
77				abilis,function = "gpiog";
78			};
79			pctl_tsin_p7: pctl-tsin-p7 {   /* Parallel TS-in 7 */
80				abilis,function = "mip7";
81			};
82			/* Port 5 */
83			pctl_gpio_j: pctl-gpio-j {     /* GPIO bank J */
84				abilis,function = "gpioj";
85			};
86			pctl_gpio_k: pctl-gpio-k {     /* GPIO bank K */
87				abilis,function = "gpiok";
88			};
89			pctl_ciplus: pctl-ciplus {     /* CI+ interface */
90				abilis,function = "ciplus";
91			};
92			pctl_mcard: pctl-mcard {       /* M-Card interface */
93				abilis,function = "mcard";
94			};
95			/* Port 6 */
96			pctl_tsout_p: pctl-tsout-p {   /* Parallel TS-out */
97				abilis,function = "mop";
98			};
99			pctl_tsout_s0: pctl-tsout-s0 { /* Serial TS-out 0 */
100				abilis,function = "mos0";
101			};
102			pctl_tsout_s1: pctl-tsout-s1 { /* Serial TS-out 1 */
103				abilis,function = "mos1";
104			};
105			pctl_tsout_s2: pctl-tsout-s2 { /* Serial TS-out 2 */
106				abilis,function = "mos2";
107			};
108			pctl_tsout_s3: pctl-tsout-s3 { /* Serial TS-out 3 */
109				abilis,function = "mos3";
110			};
111			/* Port 7 */
112			pctl_uart0: pctl-uart0 {       /* UART 0 */
113				abilis,function = "uart0";
114			};
115			pctl_uart1: pctl-uart1 {       /* UART 1 */
116				abilis,function = "uart1";
117			};
118			pctl_gpio_l: pctl-gpio-l {     /* GPIO bank L */
119				abilis,function = "gpiol";
120			};
121			pctl_gpio_m: pctl-gpio-m {     /* GPIO bank M */
122				abilis,function = "gpiom";
123			};
124			/* Port 8 */
125			pctl_spi3: pctl-spi3 {
126				abilis,function = "spi3";
127			};
128			/* Port 9 */
129			pctl_spi1: pctl-spi1 {
130				abilis,function = "spi1";
131			};
132			pctl_gpio_n: pctl-gpio-n {
133				abilis,function = "gpion";
134			};
135			/* Unmuxed GPIOs */
136			pctl_gpio_b: pctl-gpio-b {
137				abilis,function = "gpiob";
138			};
139			pctl_gpio_d: pctl-gpio-d {
140				abilis,function = "gpiod";
141			};
142			pctl_gpio_f: pctl-gpio-f {
143				abilis,function = "gpiof";
144			};
145			pctl_gpio_h: pctl-gpio-h {
146				abilis,function = "gpioh";
147			};
148			pctl_gpio_i: pctl-gpio-i {
149				abilis,function = "gpioi";
150			};
151		};
152
153		gpioa: gpio@ff140000 {
154			compatible = "abilis,tb10x-gpio";
155			interrupt-controller;
156			#interrupt-cells = <1>;
157			interrupt-parent = <&tb10x_ictl>;
158			interrupts = <27 2>;
159			reg = <0xff140000 0x1000>;
160			gpio-controller;
161			#gpio-cells = <2>;
162			abilis,ngpio = <3>;
163			gpio-ranges = <&iomux 0 0 0>;
164			gpio-ranges-group-names = "gpioa";
165		};
166		gpiob: gpio@ff141000 {
167			compatible = "abilis,tb10x-gpio";
168			interrupt-controller;
169			#interrupt-cells = <1>;
170			interrupt-parent = <&tb10x_ictl>;
171			interrupts = <27 2>;
172			reg = <0xff141000 0x1000>;
173			gpio-controller;
174			#gpio-cells = <2>;
175			abilis,ngpio = <2>;
176			gpio-ranges = <&iomux 0 0 0>;
177			gpio-ranges-group-names = "gpiob";
178		};
179		gpioc: gpio@ff142000 {
180			compatible = "abilis,tb10x-gpio";
181			interrupt-controller;
182			#interrupt-cells = <1>;
183			interrupt-parent = <&tb10x_ictl>;
184			interrupts = <27 2>;
185			reg = <0xff142000 0x1000>;
186			gpio-controller;
187			#gpio-cells = <2>;
188			abilis,ngpio = <3>;
189			gpio-ranges = <&iomux 0 0 0>;
190			gpio-ranges-group-names = "gpioc";
191		};
192		gpiod: gpio@ff143000 {
193			compatible = "abilis,tb10x-gpio";
194			interrupt-controller;
195			#interrupt-cells = <1>;
196			interrupt-parent = <&tb10x_ictl>;
197			interrupts = <27 2>;
198			reg = <0xff143000 0x1000>;
199			gpio-controller;
200			#gpio-cells = <2>;
201			abilis,ngpio = <2>;
202			gpio-ranges = <&iomux 0 0 0>;
203			gpio-ranges-group-names = "gpiod";
204		};
205		gpioe: gpio@ff144000 {
206			compatible = "abilis,tb10x-gpio";
207			interrupt-controller;
208			#interrupt-cells = <1>;
209			interrupt-parent = <&tb10x_ictl>;
210			interrupts = <27 2>;
211			reg = <0xff144000 0x1000>;
212			gpio-controller;
213			#gpio-cells = <2>;
214			abilis,ngpio = <3>;
215			gpio-ranges = <&iomux 0 0 0>;
216			gpio-ranges-group-names = "gpioe";
217		};
218		gpiof: gpio@ff145000 {
219			compatible = "abilis,tb10x-gpio";
220			interrupt-controller;
221			#interrupt-cells = <1>;
222			interrupt-parent = <&tb10x_ictl>;
223			interrupts = <27 2>;
224			reg = <0xff145000 0x1000>;
225			gpio-controller;
226			#gpio-cells = <2>;
227			abilis,ngpio = <2>;
228			gpio-ranges = <&iomux 0 0 0>;
229			gpio-ranges-group-names = "gpiof";
230		};
231		gpiog: gpio@ff146000 {
232			compatible = "abilis,tb10x-gpio";
233			interrupt-controller;
234			#interrupt-cells = <1>;
235			interrupt-parent = <&tb10x_ictl>;
236			interrupts = <27 2>;
237			reg = <0xff146000 0x1000>;
238			gpio-controller;
239			#gpio-cells = <2>;
240			abilis,ngpio = <3>;
241			gpio-ranges = <&iomux 0 0 0>;
242			gpio-ranges-group-names = "gpiog";
243		};
244		gpioh: gpio@ff147000 {
245			compatible = "abilis,tb10x-gpio";
246			interrupt-controller;
247			#interrupt-cells = <1>;
248			interrupt-parent = <&tb10x_ictl>;
249			interrupts = <27 2>;
250			reg = <0xff147000 0x1000>;
251			gpio-controller;
252			#gpio-cells = <2>;
253			abilis,ngpio = <2>;
254			gpio-ranges = <&iomux 0 0 0>;
255			gpio-ranges-group-names = "gpioh";
256		};
257		gpioi: gpio@ff148000 {
258			compatible = "abilis,tb10x-gpio";
259			interrupt-controller;
260			#interrupt-cells = <1>;
261			interrupt-parent = <&tb10x_ictl>;
262			interrupts = <27 2>;
263			reg = <0xff148000 0x1000>;
264			gpio-controller;
265			#gpio-cells = <2>;
266			abilis,ngpio = <12>;
267			gpio-ranges = <&iomux 0 0 0>;
268			gpio-ranges-group-names = "gpioi";
269		};
270		gpioj: gpio@ff149000 {
271			compatible = "abilis,tb10x-gpio";
272			interrupt-controller;
273			#interrupt-cells = <1>;
274			interrupt-parent = <&tb10x_ictl>;
275			interrupts = <27 2>;
276			reg = <0xff149000 0x1000>;
277			gpio-controller;
278			#gpio-cells = <2>;
279			abilis,ngpio = <32>;
280			gpio-ranges = <&iomux 0 0 0>;
281			gpio-ranges-group-names = "gpioj";
282		};
283		gpiok: gpio@ff14a000 {
284			compatible = "abilis,tb10x-gpio";
285			interrupt-controller;
286			#interrupt-cells = <1>;
287			interrupt-parent = <&tb10x_ictl>;
288			interrupts = <27 2>;
289			reg = <0xff14a000 0x1000>;
290			gpio-controller;
291			#gpio-cells = <2>;
292			abilis,ngpio = <22>;
293			gpio-ranges = <&iomux 0 0 0>;
294			gpio-ranges-group-names = "gpiok";
295		};
296		gpiol: gpio@ff14b000 {
297			compatible = "abilis,tb10x-gpio";
298			interrupt-controller;
299			#interrupt-cells = <1>;
300			interrupt-parent = <&tb10x_ictl>;
301			interrupts = <27 2>;
302			reg = <0xff14b000 0x1000>;
303			gpio-controller;
304			#gpio-cells = <2>;
305			abilis,ngpio = <4>;
306			gpio-ranges = <&iomux 0 0 0>;
307			gpio-ranges-group-names = "gpiol";
308		};
309		gpiom: gpio@ff14c000 {
310			compatible = "abilis,tb10x-gpio";
311			interrupt-controller;
312			#interrupt-cells = <1>;
313			interrupt-parent = <&tb10x_ictl>;
314			interrupts = <27 2>;
315			reg = <0xff14c000 0x1000>;
316			gpio-controller;
317			#gpio-cells = <2>;
318			abilis,ngpio = <4>;
319			gpio-ranges = <&iomux 0 0 0>;
320			gpio-ranges-group-names = "gpiom";
321		};
322		gpion: gpio@ff14d000 {
323			compatible = "abilis,tb10x-gpio";
324			interrupt-controller;
325			#interrupt-cells = <1>;
326			interrupt-parent = <&tb10x_ictl>;
327			interrupts = <27 2>;
328			reg = <0xff14d000 0x1000>;
329			gpio-controller;
330			#gpio-cells = <2>;
331			abilis,ngpio = <5>;
332			gpio-ranges = <&iomux 0 0 0>;
333			gpio-ranges-group-names = "gpion";
334		};
335	};
336};
337