Merge tag 'usb-5.11-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
[linux/fpc-iii.git] / arch / mips / boot / dts / ingenic / x1000.dtsi
blobaac9dedaf334c6de3fa7a92e9adaac71fdffc3bd
1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/clock/ingenic,tcu.h>
3 #include <dt-bindings/clock/x1000-cgu.h>
4 #include <dt-bindings/dma/x1000-dma.h>
6 / {
7         #address-cells = <1>;
8         #size-cells = <1>;
9         compatible = "ingenic,x1000", "ingenic,x1000e";
11         cpus {
12                 #address-cells = <1>;
13                 #size-cells = <0>;
15                 cpu0: cpu@0 {
16                         device_type = "cpu";
17                         compatible = "ingenic,xburst-fpu1.0-mxu1.1";
18                         reg = <0>;
20                         clocks = <&cgu X1000_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,x1000-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: x1000-cgu@10000000 {
55                 compatible = "ingenic,x1000-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,x1000-phy";
68                         reg = <0x3c 0x10>;
70                         clocks = <&cgu X1000_CLK_OTGPHY>;
72                         #phy-cells = <0>;
74                         status = "disabled";
75                 };
77                 rng: rng@d8 {
78                         compatible = "ingenic,x1000-rng";
79                         reg = <0xd8 0x8>;
81                         status = "disabled";
82                 };
83         };
85         ost: timer@12000000 {
86                 compatible = "ingenic,x1000-ost";
87                 reg = <0x12000000 0x3c>;
89                 #clock-cells = <1>;
91                 clocks = <&cgu X1000_CLK_OST>;
92                 clock-names = "ost";
94                 interrupt-parent = <&cpuintc>;
95                 interrupts = <3>;
96         };
98         tcu: timer@10002000 {
99                 compatible = "ingenic,x1000-tcu", "simple-mfd";
100                 reg = <0x10002000 0x1000>;
101                 #address-cells = <1>;
102                 #size-cells = <1>;
103                 ranges = <0x0 0x10002000 0x1000>;
105                 #clock-cells = <1>;
107                 clocks = <&cgu X1000_CLK_RTCLK>,
108                          <&cgu X1000_CLK_EXCLK>,
109                          <&cgu X1000_CLK_PCLK>;
110                 clock-names = "rtc", "ext", "pclk";
112                 interrupt-controller;
113                 #interrupt-cells = <1>;
115                 interrupt-parent = <&intc>;
116                 interrupts = <27 26 25>;
118                 wdt: watchdog@0 {
119                         compatible = "ingenic,x1000-watchdog", "ingenic,jz4780-watchdog";
120                         reg = <0x0 0x10>;
122                         clocks = <&tcu TCU_CLK_WDT>;
123                         clock-names = "wdt";
124                 };
125         };
127         rtc: rtc@10003000 {
128                 compatible = "ingenic,x1000-rtc", "ingenic,jz4780-rtc";
129                 reg = <0x10003000 0x4c>;
131                 interrupt-parent = <&intc>;
132                 interrupts = <32>;
134                 clocks = <&cgu X1000_CLK_RTCLK>;
135                 clock-names = "rtc";
136         };
138         pinctrl: pin-controller@10010000 {
139                 compatible = "ingenic,x1000-pinctrl";
140                 reg = <0x10010000 0x800>;
141                 #address-cells = <1>;
142                 #size-cells = <0>;
144                 gpa: gpio@0 {
145                         compatible = "ingenic,x1000-gpio";
146                         reg = <0>;
148                         gpio-controller;
149                         gpio-ranges = <&pinctrl 0 0 32>;
150                         #gpio-cells = <2>;
152                         interrupt-controller;
153                         #interrupt-cells = <2>;
155                         interrupt-parent = <&intc>;
156                         interrupts = <17>;
157                 };
159                 gpb: gpio@1 {
160                         compatible = "ingenic,x1000-gpio";
161                         reg = <1>;
163                         gpio-controller;
164                         gpio-ranges = <&pinctrl 0 32 32>;
165                         #gpio-cells = <2>;
167                         interrupt-controller;
168                         #interrupt-cells = <2>;
170                         interrupt-parent = <&intc>;
171                         interrupts = <16>;
172                 };
174                 gpc: gpio@2 {
175                         compatible = "ingenic,x1000-gpio";
176                         reg = <2>;
178                         gpio-controller;
179                         gpio-ranges = <&pinctrl 0 64 32>;
180                         #gpio-cells = <2>;
182                         interrupt-controller;
183                         #interrupt-cells = <2>;
185                         interrupt-parent = <&intc>;
186                         interrupts = <15>;
187                 };
189                 gpd: gpio@3 {
190                         compatible = "ingenic,x1000-gpio";
191                         reg = <3>;
193                         gpio-controller;
194                         gpio-ranges = <&pinctrl 0 96 32>;
195                         #gpio-cells = <2>;
197                         interrupt-controller;
198                         #interrupt-cells = <2>;
200                         interrupt-parent = <&intc>;
201                         interrupts = <14>;
202                 };
203         };
205         uart0: serial@10030000 {
206                 compatible = "ingenic,x1000-uart";
207                 reg = <0x10030000 0x100>;
209                 interrupt-parent = <&intc>;
210                 interrupts = <51>;
212                 clocks = <&exclk>, <&cgu X1000_CLK_UART0>;
213                 clock-names = "baud", "module";
215                 status = "disabled";
216         };
218         uart1: serial@10031000 {
219                 compatible = "ingenic,x1000-uart";
220                 reg = <0x10031000 0x100>;
222                 interrupt-parent = <&intc>;
223                 interrupts = <50>;
225                 clocks = <&exclk>, <&cgu X1000_CLK_UART1>;
226                 clock-names = "baud", "module";
228                 status = "disabled";
229         };
231         uart2: serial@10032000 {
232                 compatible = "ingenic,x1000-uart";
233                 reg = <0x10032000 0x100>;
235                 interrupt-parent = <&intc>;
236                 interrupts = <49>;
238                 clocks = <&exclk>, <&cgu X1000_CLK_UART2>;
239                 clock-names = "baud", "module";
241                 status = "disabled";
242         };
244         i2c0: i2c-controller@10050000 {
245                 compatible = "ingenic,x1000-i2c";
246                 reg = <0x10050000 0x1000>;
247                 #address-cells = <1>;
248                 #size-cells = <0>;
250                 interrupt-parent = <&intc>;
251                 interrupts = <60>;
253                 clocks = <&cgu X1000_CLK_I2C0>;
255                 status = "disabled";
256         };
258         i2c1: i2c-controller@10051000 {
259                 compatible = "ingenic,x1000-i2c";
260                 reg = <0x10051000 0x1000>;
261                 #address-cells = <1>;
262                 #size-cells = <0>;
264                 interrupt-parent = <&intc>;
265                 interrupts = <59>;
267                 clocks = <&cgu X1000_CLK_I2C1>;
269                 status = "disabled";
270         };
272         i2c2: i2c-controller@10052000 {
273                 compatible = "ingenic,x1000-i2c";
274                 reg = <0x10052000 0x1000>;
275                 #address-cells = <1>;
276                 #size-cells = <0>;
278                 interrupt-parent = <&intc>;
279                 interrupts = <58>;
281                 clocks = <&cgu X1000_CLK_I2C2>;
283                 status = "disabled";
284         };
286         pdma: dma-controller@13420000 {
287                 compatible = "ingenic,x1000-dma";
288                 reg = <0x13420000 0x400>, <0x13421000 0x40>;
289                 #dma-cells = <2>;
291                 interrupt-parent = <&intc>;
292                 interrupts = <10>;
294                 clocks = <&cgu X1000_CLK_PDMA>;
295         };
297         msc0: mmc@13450000 {
298                 compatible = "ingenic,x1000-mmc";
299                 reg = <0x13450000 0x1000>;
301                 interrupt-parent = <&intc>;
302                 interrupts = <37>;
304                 clocks = <&cgu X1000_CLK_MSC0>;
305                 clock-names = "mmc";
307                 cap-sd-highspeed;
308                 cap-mmc-highspeed;
309                 cap-sdio-irq;
311                 dmas = <&pdma X1000_DMA_MSC0_RX 0xffffffff>,
312                            <&pdma X1000_DMA_MSC0_TX 0xffffffff>;
313                 dma-names = "rx", "tx";
315                 status = "disabled";
316         };
318         msc1: mmc@13460000 {
319                 compatible = "ingenic,x1000-mmc";
320                 reg = <0x13460000 0x1000>;
322                 interrupt-parent = <&intc>;
323                 interrupts = <36>;
325                 clocks = <&cgu X1000_CLK_MSC1>;
326                 clock-names = "mmc";
328                 cap-sd-highspeed;
329                 cap-mmc-highspeed;
330                 cap-sdio-irq;
332                 dmas = <&pdma X1000_DMA_MSC1_RX 0xffffffff>,
333                            <&pdma X1000_DMA_MSC1_TX 0xffffffff>;
334                 dma-names = "rx", "tx";
336                 status = "disabled";
337         };
339         mac: ethernet@134b0000 {
340                 compatible = "ingenic,x1000-mac", "snps,dwmac";
341                 reg = <0x134b0000 0x2000>;
343                 interrupt-parent = <&intc>;
344                 interrupts = <55>;
345                 interrupt-names = "macirq";
347                 clocks = <&cgu X1000_CLK_MAC>;
348                 clock-names = "stmmaceth";
350                 status = "disabled";
352                 mdio: mdio {
353                         compatible = "snps,dwmac-mdio";
354                         #address-cells = <1>;
355                         #size-cells = <0>;
357                         status = "disabled";
358                 };
359         };
361         otg: usb@13500000 {
362                 compatible = "ingenic,x1000-otg", "snps,dwc2";
363                 reg = <0x13500000 0x40000>;
365                 interrupt-parent = <&intc>;
366                 interrupts = <21>;
368                 clocks = <&cgu X1000_CLK_OTG>;
369                 clock-names = "otg";
371                 phys = <&otg_phy>;
372                 phy-names = "usb2-phy";
374                 g-rx-fifo-size = <768>;
375                 g-np-tx-fifo-size = <256>;
376                 g-tx-fifo-size = <256 256 256 256 256 256 256 512>;
378                 status = "disabled";
379         };