1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Abilis Systems TB101 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			pctl_stc0: pctl-stc0 {         /* Smart card I/F 0 */
96				abilis,function = "stc0";
97			};
98			pctl_stc1: pctl-stc1 {         /* Smart card I/F 1 */
99				abilis,function = "stc1";
100			};
101			/* Port 6 */
102			pctl_tsout_p: pctl-tsout-p {   /* Parallel TS-out */
103				abilis,function = "mop";
104			};
105			pctl_tsout_s0: pctl-tsout-s0 { /* Serial TS-out 0 */
106				abilis,function = "mos0";
107			};
108			pctl_tsout_s1: pctl-tsout-s1 { /* Serial TS-out 1 */
109				abilis,function = "mos1";
110			};
111			pctl_tsout_s2: pctl-tsout-s2 { /* Serial TS-out 2 */
112				abilis,function = "mos2";
113			};
114			pctl_tsout_s3: pctl-tsout-s3 { /* Serial TS-out 3 */
115				abilis,function = "mos3";
116			};
117			/* Port 7 */
118			pctl_uart0: pctl-uart0 {       /* UART 0 */
119				abilis,function = "uart0";
120			};
121			pctl_uart1: pctl-uart1 {       /* UART 1 */
122				abilis,function = "uart1";
123			};
124			pctl_gpio_l: pctl-gpio-l {     /* GPIO bank L */
125				abilis,function = "gpiol";
126			};
127			pctl_gpio_m: pctl-gpio-m {     /* GPIO bank M */
128				abilis,function = "gpiom";
129			};
130			/* Port 8 */
131			pctl_spi3: pctl-spi3 {
132				abilis,function = "spi3";
133			};
134			pctl_jtag: pctl-jtag {
135				abilis,function = "jtag";
136			};
137			/* Port 9 */
138			pctl_spi1: pctl-spi1 {
139				abilis,function = "spi1";
140			};
141			pctl_gpio_n: pctl-gpio-n {
142				abilis,function = "gpion";
143			};
144			/* Unmuxed GPIOs */
145			pctl_gpio_b: pctl-gpio-b {
146				abilis,function = "gpiob";
147			};
148			pctl_gpio_d: pctl-gpio-d {
149				abilis,function = "gpiod";
150			};
151			pctl_gpio_f: pctl-gpio-f {
152				abilis,function = "gpiof";
153			};
154			pctl_gpio_h: pctl-gpio-h {
155				abilis,function = "gpioh";
156			};
157			pctl_gpio_i: pctl-gpio-i {
158				abilis,function = "gpioi";
159			};
160		};
161
162		gpioa: gpio@ff140000 {
163			compatible = "abilis,tb10x-gpio";
164			interrupt-controller;
165			#interrupt-cells = <1>;
166			interrupt-parent = <&tb10x_ictl>;
167			interrupts = <27 2>;
168			reg = <0xff140000 0x1000>;
169			gpio-controller;
170			#gpio-cells = <2>;
171			abilis,ngpio = <3>;
172			gpio-ranges = <&iomux 0 0 0>;
173			gpio-ranges-group-names = "gpioa";
174		};
175		gpiob: gpio@ff141000 {
176			compatible = "abilis,tb10x-gpio";
177			interrupt-controller;
178			#interrupt-cells = <1>;
179			interrupt-parent = <&tb10x_ictl>;
180			interrupts = <27 2>;
181			reg = <0xff141000 0x1000>;
182			gpio-controller;
183			#gpio-cells = <2>;
184			abilis,ngpio = <2>;
185			gpio-ranges = <&iomux 0 0 0>;
186			gpio-ranges-group-names = "gpiob";
187		};
188		gpioc: gpio@ff142000 {
189			compatible = "abilis,tb10x-gpio";
190			interrupt-controller;
191			#interrupt-cells = <1>;
192			interrupt-parent = <&tb10x_ictl>;
193			interrupts = <27 2>;
194			reg = <0xff142000 0x1000>;
195			gpio-controller;
196			#gpio-cells = <2>;
197			abilis,ngpio = <3>;
198			gpio-ranges = <&iomux 0 0 0>;
199			gpio-ranges-group-names = "gpioc";
200		};
201		gpiod: gpio@ff143000 {
202			compatible = "abilis,tb10x-gpio";
203			interrupt-controller;
204			#interrupt-cells = <1>;
205			interrupt-parent = <&tb10x_ictl>;
206			interrupts = <27 2>;
207			reg = <0xff143000 0x1000>;
208			gpio-controller;
209			#gpio-cells = <2>;
210			abilis,ngpio = <2>;
211			gpio-ranges = <&iomux 0 0 0>;
212			gpio-ranges-group-names = "gpiod";
213		};
214		gpioe: gpio@ff144000 {
215			compatible = "abilis,tb10x-gpio";
216			interrupt-controller;
217			#interrupt-cells = <1>;
218			interrupt-parent = <&tb10x_ictl>;
219			interrupts = <27 2>;
220			reg = <0xff144000 0x1000>;
221			gpio-controller;
222			#gpio-cells = <2>;
223			abilis,ngpio = <3>;
224			gpio-ranges = <&iomux 0 0 0>;
225			gpio-ranges-group-names = "gpioe";
226		};
227		gpiof: gpio@ff145000 {
228			compatible = "abilis,tb10x-gpio";
229			interrupt-controller;
230			#interrupt-cells = <1>;
231			interrupt-parent = <&tb10x_ictl>;
232			interrupts = <27 2>;
233			reg = <0xff145000 0x1000>;
234			gpio-controller;
235			#gpio-cells = <2>;
236			abilis,ngpio = <2>;
237			gpio-ranges = <&iomux 0 0 0>;
238			gpio-ranges-group-names = "gpiof";
239		};
240		gpiog: gpio@ff146000 {
241			compatible = "abilis,tb10x-gpio";
242			interrupt-controller;
243			#interrupt-cells = <1>;
244			interrupt-parent = <&tb10x_ictl>;
245			interrupts = <27 2>;
246			reg = <0xff146000 0x1000>;
247			gpio-controller;
248			#gpio-cells = <2>;
249			abilis,ngpio = <3>;
250			gpio-ranges = <&iomux 0 0 0>;
251			gpio-ranges-group-names = "gpiog";
252		};
253		gpioh: gpio@ff147000 {
254			compatible = "abilis,tb10x-gpio";
255			interrupt-controller;
256			#interrupt-cells = <1>;
257			interrupt-parent = <&tb10x_ictl>;
258			interrupts = <27 2>;
259			reg = <0xff147000 0x1000>;
260			gpio-controller;
261			#gpio-cells = <2>;
262			abilis,ngpio = <2>;
263			gpio-ranges = <&iomux 0 0 0>;
264			gpio-ranges-group-names = "gpioh";
265		};
266		gpioi: gpio@ff148000 {
267			compatible = "abilis,tb10x-gpio";
268			interrupt-controller;
269			#interrupt-cells = <1>;
270			interrupt-parent = <&tb10x_ictl>;
271			interrupts = <27 2>;
272			reg = <0xff148000 0x1000>;
273			gpio-controller;
274			#gpio-cells = <2>;
275			abilis,ngpio = <12>;
276			gpio-ranges = <&iomux 0 0 0>;
277			gpio-ranges-group-names = "gpioi";
278		};
279		gpioj: gpio@ff149000 {
280			compatible = "abilis,tb10x-gpio";
281			interrupt-controller;
282			#interrupt-cells = <1>;
283			interrupt-parent = <&tb10x_ictl>;
284			interrupts = <27 2>;
285			reg = <0xff149000 0x1000>;
286			gpio-controller;
287			#gpio-cells = <2>;
288			abilis,ngpio = <32>;
289			gpio-ranges = <&iomux 0 0 0>;
290			gpio-ranges-group-names = "gpioj";
291		};
292		gpiok: gpio@ff14a000 {
293			compatible = "abilis,tb10x-gpio";
294			interrupt-controller;
295			#interrupt-cells = <1>;
296			interrupt-parent = <&tb10x_ictl>;
297			interrupts = <27 2>;
298			reg = <0xff14a000 0x1000>;
299			gpio-controller;
300			#gpio-cells = <2>;
301			abilis,ngpio = <22>;
302			gpio-ranges = <&iomux 0 0 0>;
303			gpio-ranges-group-names = "gpiok";
304		};
305		gpiol: gpio@ff14b000 {
306			compatible = "abilis,tb10x-gpio";
307			interrupt-controller;
308			#interrupt-cells = <1>;
309			interrupt-parent = <&tb10x_ictl>;
310			interrupts = <27 2>;
311			reg = <0xff14b000 0x1000>;
312			gpio-controller;
313			#gpio-cells = <2>;
314			abilis,ngpio = <4>;
315			gpio-ranges = <&iomux 0 0 0>;
316			gpio-ranges-group-names = "gpiol";
317		};
318		gpiom: gpio@ff14c000 {
319			compatible = "abilis,tb10x-gpio";
320			interrupt-controller;
321			#interrupt-cells = <1>;
322			interrupt-parent = <&tb10x_ictl>;
323			interrupts = <27 2>;
324			reg = <0xff14c000 0x1000>;
325			gpio-controller;
326			#gpio-cells = <2>;
327			abilis,ngpio = <4>;
328			gpio-ranges = <&iomux 0 0 0>;
329			gpio-ranges-group-names = "gpiom";
330		};
331		gpion: gpio@ff14d000 {
332			compatible = "abilis,tb10x-gpio";
333			interrupt-controller;
334			#interrupt-cells = <1>;
335			interrupt-parent = <&tb10x_ictl>;
336			interrupts = <27 2>;
337			reg = <0xff14d000 0x1000>;
338			gpio-controller;
339			#gpio-cells = <2>;
340			abilis,ngpio = <5>;
341			gpio-ranges = <&iomux 0 0 0>;
342			gpio-ranges-group-names = "gpion";
343		};
344	};
345};
346