WIP FPC-III support
[linux/fpc-iii.git] / arch / mips / boot / dts / ingenic / x1830.dtsi
blobb21c93057356b578c6d49a9617c81a0eb71ef24a
1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/clock/ingenic,tcu.h>
3 #include <dt-bindings/clock/x1830-cgu.h>
4 #include <dt-bindings/dma/x1830-dma.h>
6 / {
7         #address-cells = <1>;
8         #size-cells = <1>;
9         compatible = "ingenic,x1830";
11         cpus {
12                 #address-cells = <1>;
13                 #size-cells = <0>;
15                 cpu0: cpu@0 {
16                         device_type = "cpu";
17                         compatible = "ingenic,xburst-fpu2.0-mxu2.0";
18                         reg = <0>;
20                         clocks = <&cgu X1830_CLK_CPU>;
21                         clock-names = "cpu";
22                 };
23         };
25         cpuintc: interrupt-controller {
26                 #address-cells = <0>;
27                 #interrupt-cells = <1>;
28                 interrupt-controller;
29                 compatible = "mti,cpu-interrupt-controller";
30         };
32         intc: interrupt-controller@10001000 {
33                 compatible = "ingenic,x1830-intc", "ingenic,jz4780-intc";
34                 reg = <0x10001000 0x50>;
36                 interrupt-controller;
37                 #interrupt-cells = <1>;
39                 interrupt-parent = <&cpuintc>;
40                 interrupts = <2>;
41         };
43         exclk: ext {
44                 compatible = "fixed-clock";
45                 #clock-cells = <0>;
46         };
48         rtclk: rtc {
49                 compatible = "fixed-clock";
50                 #clock-cells = <0>;
51                 clock-frequency = <32768>;
52         };
54         cgu: x1830-cgu@10000000 {
55                 compatible = "ingenic,x1830-cgu", "simple-mfd";
56                 reg = <0x10000000 0x100>;
57                 #address-cells = <1>;
58                 #size-cells = <1>;
59                 ranges = <0x0 0x10000000 0x100>;
61                 #clock-cells = <1>;
63                 clocks = <&exclk>, <&rtclk>;
64                 clock-names = "ext", "rtc";
66                 otg_phy: usb-phy@3c {
67                         compatible = "ingenic,x1830-phy";
68                         reg = <0x3c 0x10>;
70                         clocks = <&cgu X1830_CLK_OTGPHY>;
72                         #phy-cells = <0>;
74                         status = "disabled";
75                 };
76         };
78         ost: timer@12000000 {
79                 compatible = "ingenic,x1830-ost", "ingenic,x1000-ost";
80                 reg = <0x12000000 0x3c>;
82                 #clock-cells = <1>;
84                 clocks = <&cgu X1830_CLK_OST>;
85                 clock-names = "ost";
87                 interrupt-parent = <&cpuintc>;
88                 interrupts = <4>;
89         };
91         tcu: timer@10002000 {
92                 compatible = "ingenic,x1830-tcu", "ingenic,x1000-tcu", "simple-mfd";
93                 reg = <0x10002000 0x1000>;
94                 #address-cells = <1>;
95                 #size-cells = <1>;
96                 ranges = <0x0 0x10002000 0x1000>;
98                 #clock-cells = <1>;
100                 clocks = <&cgu X1830_CLK_RTCLK
101                           &cgu X1830_CLK_EXCLK
102                           &cgu X1830_CLK_PCLK>;
103                 clock-names = "rtc", "ext", "pclk";
105                 interrupt-controller;
106                 #interrupt-cells = <1>;
108                 interrupt-parent = <&intc>;
109                 interrupts = <27 26 25>;
111                 wdt: watchdog@0 {
112                         compatible = "ingenic,x1830-watchdog", "ingenic,jz4780-watchdog";
113                         reg = <0x0 0x10>;
115                         clocks = <&tcu TCU_CLK_WDT>;
116                         clock-names = "wdt";
117                 };
118         };
120         rtc: rtc@10003000 {
121                 compatible = "ingenic,x1830-rtc", "ingenic,jz4780-rtc";
122                 reg = <0x10003000 0x4c>;
124                 interrupt-parent = <&intc>;
125                 interrupts = <32>;
127                 clocks = <&cgu X1830_CLK_RTCLK>;
128                 clock-names = "rtc";
129         };
131         pinctrl: pin-controller@10010000 {
132                 compatible = "ingenic,x1830-pinctrl";
133                 reg = <0x10010000 0x800>;
134                 #address-cells = <1>;
135                 #size-cells = <0>;
137                 gpa: gpio@0 {
138                         compatible = "ingenic,x1830-gpio";
139                         reg = <0>;
141                         gpio-controller;
142                         gpio-ranges = <&pinctrl 0 0 32>;
143                         #gpio-cells = <2>;
145                         interrupt-controller;
146                         #interrupt-cells = <2>;
148                         interrupt-parent = <&intc>;
149                         interrupts = <17>;
150                 };
152                 gpb: gpio@1 {
153                         compatible = "ingenic,x1830-gpio";
154                         reg = <1>;
156                         gpio-controller;
157                         gpio-ranges = <&pinctrl 0 32 32>;
158                         #gpio-cells = <2>;
160                         interrupt-controller;
161                         #interrupt-cells = <2>;
163                         interrupt-parent = <&intc>;
164                         interrupts = <16>;
165                 };
167                 gpc: gpio@2 {
168                         compatible = "ingenic,x1830-gpio";
169                         reg = <2>;
171                         gpio-controller;
172                         gpio-ranges = <&pinctrl 0 64 32>;
173                         #gpio-cells = <2>;
175                         interrupt-controller;
176                         #interrupt-cells = <2>;
178                         interrupt-parent = <&intc>;
179                         interrupts = <15>;
180                 };
182                 gpd: gpio@3 {
183                         compatible = "ingenic,x1830-gpio";
184                         reg = <3>;
186                         gpio-controller;
187                         gpio-ranges = <&pinctrl 0 96 32>;
188                         #gpio-cells = <2>;
190                         interrupt-controller;
191                         #interrupt-cells = <2>;
193                         interrupt-parent = <&intc>;
194                         interrupts = <14>;
195                 };
196         };
198         uart0: serial@10030000 {
199                 compatible = "ingenic,x1830-uart", "ingenic,x1000-uart";
200                 reg = <0x10030000 0x100>;
202                 interrupt-parent = <&intc>;
203                 interrupts = <51>;
205                 clocks = <&exclk>, <&cgu X1830_CLK_UART0>;
206                 clock-names = "baud", "module";
208                 status = "disabled";
209         };
211         uart1: serial@10031000 {
212                 compatible = "ingenic,x1830-uart", "ingenic,x1000-uart";
213                 reg = <0x10031000 0x100>;
215                 interrupt-parent = <&intc>;
216                 interrupts = <50>;
218                 clocks = <&exclk>, <&cgu X1830_CLK_UART1>;
219                 clock-names = "baud", "module";
221                 status = "disabled";
222         };
224         i2c0: i2c-controller@10050000 {
225                 compatible = "ingenic,x1830-i2c", "ingenic,x1000-i2c";
226                 reg = <0x10050000 0x1000>;
227                 #address-cells = <1>;
228                 #size-cells = <0>;
230                 interrupt-parent = <&intc>;
231                 interrupts = <60>;
233                 clocks = <&cgu X1830_CLK_SMB0>;
235                 status = "disabled";
236         };
238         i2c1: i2c-controller@10051000 {
239                 compatible = "ingenic,x1830-i2c", "ingenic,x1000-i2c";
240                 reg = <0x10051000 0x1000>;
241                 #address-cells = <1>;
242                 #size-cells = <0>;
244                 interrupt-parent = <&intc>;
245                 interrupts = <59>;
247                 clocks = <&cgu X1830_CLK_SMB1>;
249                 status = "disabled";
250         };
252         i2c2: i2c-controller@10052000 {
253                 compatible = "ingenic,x1830-i2c", "ingenic,x1000-i2c";
254                 reg = <0x10052000 0x1000>;
255                 #address-cells = <1>;
256                 #size-cells = <0>;
258                 interrupt-parent = <&intc>;
259                 interrupts = <58>;
261                 clocks = <&cgu X1830_CLK_SMB2>;
263                 status = "disabled";
264         };
266         dtrng: trng@10072000 {
267                 compatible = "ingenic,x1830-dtrng";
268                 reg = <0x10072000 0xc>;
270                 clocks = <&cgu X1830_CLK_DTRNG>;
272                 status = "disabled";
273         };
275         pdma: dma-controller@13420000 {
276                 compatible = "ingenic,x1830-dma";
277                 reg = <0x13420000 0x400
278                            0x13421000 0x40>;
279                 #dma-cells = <2>;
281                 interrupt-parent = <&intc>;
282                 interrupts = <10>;
284                 clocks = <&cgu X1830_CLK_PDMA>;
285         };
287         msc0: mmc@13450000 {
288                 compatible = "ingenic,x1830-mmc", "ingenic,x1000-mmc";
289                 reg = <0x13450000 0x1000>;
291                 interrupt-parent = <&intc>;
292                 interrupts = <37>;
294                 clocks = <&cgu X1830_CLK_MSC0>;
295                 clock-names = "mmc";
297                 cap-sd-highspeed;
298                 cap-mmc-highspeed;
299                 cap-sdio-irq;
301                 dmas = <&pdma X1830_DMA_MSC0_RX 0xffffffff>,
302                            <&pdma X1830_DMA_MSC0_TX 0xffffffff>;
303                 dma-names = "rx", "tx";
305                 status = "disabled";
306         };
308         msc1: mmc@13460000 {
309                 compatible = "ingenic,x1830-mmc", "ingenic,x1000-mmc";
310                 reg = <0x13460000 0x1000>;
312                 interrupt-parent = <&intc>;
313                 interrupts = <36>;
315                 clocks = <&cgu X1830_CLK_MSC1>;
316                 clock-names = "mmc";
318                 cap-sd-highspeed;
319                 cap-mmc-highspeed;
320                 cap-sdio-irq;
322                 dmas = <&pdma X1830_DMA_MSC1_RX 0xffffffff>,
323                            <&pdma X1830_DMA_MSC1_TX 0xffffffff>;
324                 dma-names = "rx", "tx";
326                 status = "disabled";
327         };
329         mac: ethernet@134b0000 {
330                 compatible = "ingenic,x1830-mac", "snps,dwmac";
331                 reg = <0x134b0000 0x2000>;
333                 interrupt-parent = <&intc>;
334                 interrupts = <55>;
335                 interrupt-names = "macirq";
337                 clocks = <&cgu X1830_CLK_MAC>;
338                 clock-names = "stmmaceth";
340                 status = "disabled";
342                 mdio: mdio {
343                         compatible = "snps,dwmac-mdio";
344                         #address-cells = <1>;
345                         #size-cells = <0>;
347                         status = "disabled";
348                 };
349         };
351         otg: usb@13500000 {
352                 compatible = "ingenic,x1830-otg", "snps,dwc2";
353                 reg = <0x13500000 0x40000>;
355                 interrupt-parent = <&intc>;
356                 interrupts = <21>;
358                 clocks = <&cgu X1830_CLK_OTG>;
359                 clock-names = "otg";
361                 phys = <&otg_phy>;
362                 phy-names = "usb2-phy";
364                 g-rx-fifo-size = <768>;
365                 g-np-tx-fifo-size = <256>;
366                 g-tx-fifo-size = <256 256 256 256 256 256 256 512>;
368                 status = "disabled";
369         };