OSDN Git Service

dc868e6da40e0fae8e98cfca3f3674efa61210d7
[tomoyo/tomoyo-test1.git] / arch / arm / boot / dts / stm32f746.dtsi
1 /*
2  * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com>
3  *
4  * This file is dual-licensed: you can use it either under the terms
5  * of the GPL or the X11 license, at your option. Note that this dual
6  * licensing only applies to this file, and not this project as a
7  * whole.
8  *
9  *  a) This file is free software; you can redistribute it and/or
10  *     modify it under the terms of the GNU General Public License as
11  *     published by the Free Software Foundation; either version 2 of the
12  *     License, or (at your option) any later version.
13  *
14  *     This file is distributed in the hope that it will be useful,
15  *     but WITHOUT ANY WARRANTY; without even the implied warranty of
16  *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  *     GNU General Public License for more details.
18  *
19  * Or, alternatively,
20  *
21  *  b) Permission is hereby granted, free of charge, to any person
22  *     obtaining a copy of this software and associated documentation
23  *     files (the "Software"), to deal in the Software without
24  *     restriction, including without limitation the rights to use,
25  *     copy, modify, merge, publish, distribute, sublicense, and/or
26  *     sell copies of the Software, and to permit persons to whom the
27  *     Software is furnished to do so, subject to the following
28  *     conditions:
29  *
30  *     The above copyright notice and this permission notice shall be
31  *     included in all copies or substantial portions of the Software.
32  *
33  *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34  *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35  *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36  *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37  *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38  *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39  *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40  *     OTHER DEALINGS IN THE SOFTWARE.
41  */
42
43 #include "armv7-m.dtsi"
44 #include <dt-bindings/clock/stm32fx-clock.h>
45 #include <dt-bindings/mfd/stm32f7-rcc.h>
46
47 / {
48         #address-cells = <1>;
49         #size-cells = <1>;
50
51         clocks {
52                 clk_hse: clk-hse {
53                         #clock-cells = <0>;
54                         compatible = "fixed-clock";
55                         clock-frequency = <0>;
56                 };
57
58                 clk-lse {
59                         #clock-cells = <0>;
60                         compatible = "fixed-clock";
61                         clock-frequency = <32768>;
62                 };
63
64                 clk-lsi {
65                         #clock-cells = <0>;
66                         compatible = "fixed-clock";
67                         clock-frequency = <32000>;
68                 };
69
70                 clk_i2s_ckin: clk-i2s-ckin {
71                         #clock-cells = <0>;
72                         compatible = "fixed-clock";
73                         clock-frequency = <48000000>;
74                 };
75         };
76
77         soc {
78                 timers2: timers@40000000 {
79                         #address-cells = <1>;
80                         #size-cells = <0>;
81                         compatible = "st,stm32-timers";
82                         reg = <0x40000000 0x400>;
83                         clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM2)>;
84                         clock-names = "int";
85                         status = "disabled";
86
87                         pwm {
88                                 compatible = "st,stm32-pwm";
89                                 #pwm-cells = <3>;
90                                 status = "disabled";
91                         };
92
93                         timer@1 {
94                                 compatible = "st,stm32-timer-trigger";
95                                 reg = <1>;
96                                 status = "disabled";
97                         };
98                 };
99
100                 timers3: timers@40000400 {
101                         #address-cells = <1>;
102                         #size-cells = <0>;
103                         compatible = "st,stm32-timers";
104                         reg = <0x40000400 0x400>;
105                         clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM3)>;
106                         clock-names = "int";
107                         status = "disabled";
108
109                         pwm {
110                                 compatible = "st,stm32-pwm";
111                                 #pwm-cells = <3>;
112                                 status = "disabled";
113                         };
114
115                         timer@2 {
116                                 compatible = "st,stm32-timer-trigger";
117                                 reg = <2>;
118                                 status = "disabled";
119                         };
120                 };
121
122                 timers4: timers@40000800 {
123                         #address-cells = <1>;
124                         #size-cells = <0>;
125                         compatible = "st,stm32-timers";
126                         reg = <0x40000800 0x400>;
127                         clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM4)>;
128                         clock-names = "int";
129                         status = "disabled";
130
131                         pwm {
132                                 compatible = "st,stm32-pwm";
133                                 #pwm-cells = <3>;
134                                 status = "disabled";
135                         };
136
137                         timer@3 {
138                                 compatible = "st,stm32-timer-trigger";
139                                 reg = <3>;
140                                 status = "disabled";
141                         };
142                 };
143
144                 timers5: timers@40000c00 {
145                         #address-cells = <1>;
146                         #size-cells = <0>;
147                         compatible = "st,stm32-timers";
148                         reg = <0x40000C00 0x400>;
149                         clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM5)>;
150                         clock-names = "int";
151                         status = "disabled";
152
153                         pwm {
154                                 compatible = "st,stm32-pwm";
155                                 #pwm-cells = <3>;
156                                 status = "disabled";
157                         };
158
159                         timer@4 {
160                                 compatible = "st,stm32-timer-trigger";
161                                 reg = <4>;
162                                 status = "disabled";
163                         };
164                 };
165
166                 timers6: timers@40001000 {
167                         #address-cells = <1>;
168                         #size-cells = <0>;
169                         compatible = "st,stm32-timers";
170                         reg = <0x40001000 0x400>;
171                         clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM6)>;
172                         clock-names = "int";
173                         status = "disabled";
174
175                         timer@5 {
176                                 compatible = "st,stm32-timer-trigger";
177                                 reg = <5>;
178                                 status = "disabled";
179                         };
180                 };
181
182                 timers7: timers@40001400 {
183                         #address-cells = <1>;
184                         #size-cells = <0>;
185                         compatible = "st,stm32-timers";
186                         reg = <0x40001400 0x400>;
187                         clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM7)>;
188                         clock-names = "int";
189                         status = "disabled";
190
191                         timer@6 {
192                                 compatible = "st,stm32-timer-trigger";
193                                 reg = <6>;
194                                 status = "disabled";
195                         };
196                 };
197
198                 timers12: timers@40001800 {
199                         #address-cells = <1>;
200                         #size-cells = <0>;
201                         compatible = "st,stm32-timers";
202                         reg = <0x40001800 0x400>;
203                         clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM12)>;
204                         clock-names = "int";
205                         status = "disabled";
206
207                         pwm {
208                                 compatible = "st,stm32-pwm";
209                                 #pwm-cells = <3>;
210                                 status = "disabled";
211                         };
212
213                         timer@11 {
214                                 compatible = "st,stm32-timer-trigger";
215                                 reg = <11>;
216                                 status = "disabled";
217                         };
218                 };
219
220                 timers13: timers@40001c00 {
221                         compatible = "st,stm32-timers";
222                         reg = <0x40001C00 0x400>;
223                         clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM13)>;
224                         clock-names = "int";
225                         status = "disabled";
226
227                         pwm {
228                                 compatible = "st,stm32-pwm";
229                                 #pwm-cells = <3>;
230                                 status = "disabled";
231                         };
232                 };
233
234                 timers14: timers@40002000 {
235                         compatible = "st,stm32-timers";
236                         reg = <0x40002000 0x400>;
237                         clocks = <&rcc 0 STM32F7_APB1_CLOCK(TIM14)>;
238                         clock-names = "int";
239                         status = "disabled";
240
241                         pwm {
242                                 compatible = "st,stm32-pwm";
243                                 #pwm-cells = <3>;
244                                 status = "disabled";
245                         };
246                 };
247
248                 rtc: rtc@40002800 {
249                         compatible = "st,stm32-rtc";
250                         reg = <0x40002800 0x400>;
251                         clocks = <&rcc 1 CLK_RTC>;
252                         assigned-clocks = <&rcc 1 CLK_RTC>;
253                         assigned-clock-parents = <&rcc 1 CLK_LSE>;
254                         interrupt-parent = <&exti>;
255                         interrupts = <17 1>;
256                         st,syscfg = <&pwrcfg 0x00 0x100>;
257                         status = "disabled";
258                 };
259
260                 usart2: serial@40004400 {
261                         compatible = "st,stm32f7-uart";
262                         reg = <0x40004400 0x400>;
263                         interrupts = <38>;
264                         clocks = <&rcc 1 CLK_USART2>;
265                         status = "disabled";
266                 };
267
268                 usart3: serial@40004800 {
269                         compatible = "st,stm32f7-uart";
270                         reg = <0x40004800 0x400>;
271                         interrupts = <39>;
272                         clocks = <&rcc 1 CLK_USART3>;
273                         status = "disabled";
274                 };
275
276                 usart4: serial@40004c00 {
277                         compatible = "st,stm32f7-uart";
278                         reg = <0x40004c00 0x400>;
279                         interrupts = <52>;
280                         clocks = <&rcc 1 CLK_UART4>;
281                         status = "disabled";
282                 };
283
284                 usart5: serial@40005000 {
285                         compatible = "st,stm32f7-uart";
286                         reg = <0x40005000 0x400>;
287                         interrupts = <53>;
288                         clocks = <&rcc 1 CLK_UART5>;
289                         status = "disabled";
290                 };
291
292                 i2c1: i2c@40005400 {
293                         compatible = "st,stm32f7-i2c";
294                         reg = <0x40005400 0x400>;
295                         interrupts = <31>,
296                                      <32>;
297                         resets = <&rcc STM32F7_APB1_RESET(I2C1)>;
298                         clocks = <&rcc 1 CLK_I2C1>;
299                         #address-cells = <1>;
300                         #size-cells = <0>;
301                         status = "disabled";
302                 };
303
304                 i2c2: i2c@40005800 {
305                         compatible = "st,stm32f7-i2c";
306                         reg = <0x40005800 0x400>;
307                         interrupts = <33>,
308                                      <34>;
309                         resets = <&rcc STM32F7_APB1_RESET(I2C2)>;
310                         clocks = <&rcc 1 CLK_I2C2>;
311                         #address-cells = <1>;
312                         #size-cells = <0>;
313                         status = "disabled";
314                 };
315
316                 i2c3: i2c@40005c00 {
317                         compatible = "st,stm32f7-i2c";
318                         reg = <0x40005c00 0x400>;
319                         interrupts = <72>,
320                                      <73>;
321                         resets = <&rcc STM32F7_APB1_RESET(I2C3)>;
322                         clocks = <&rcc 1 CLK_I2C3>;
323                         #address-cells = <1>;
324                         #size-cells = <0>;
325                         status = "disabled";
326                 };
327
328                 i2c4: i2c@40006000 {
329                         compatible = "st,stm32f7-i2c";
330                         reg = <0x40006000 0x400>;
331                         interrupts = <95>,
332                                      <96>;
333                         resets = <&rcc STM32F7_APB1_RESET(I2C4)>;
334                         clocks = <&rcc 1 CLK_I2C4>;
335                         #address-cells = <1>;
336                         #size-cells = <0>;
337                         status = "disabled";
338                 };
339
340                 cec: cec@40006c00 {
341                         compatible = "st,stm32-cec";
342                         reg = <0x40006C00 0x400>;
343                         interrupts = <94>;
344                         clocks = <&rcc 0 STM32F7_APB1_CLOCK(CEC)>, <&rcc 1 CLK_HDMI_CEC>;
345                         clock-names = "cec", "hdmi-cec";
346                         status = "disabled";
347                 };
348
349                 usart7: serial@40007800 {
350                         compatible = "st,stm32f7-uart";
351                         reg = <0x40007800 0x400>;
352                         interrupts = <82>;
353                         clocks = <&rcc 1 CLK_UART7>;
354                         status = "disabled";
355                 };
356
357                 usart8: serial@40007c00 {
358                         compatible = "st,stm32f7-uart";
359                         reg = <0x40007c00 0x400>;
360                         interrupts = <83>;
361                         clocks = <&rcc 1 CLK_UART8>;
362                         status = "disabled";
363                 };
364
365                 timers1: timers@40010000 {
366                         #address-cells = <1>;
367                         #size-cells = <0>;
368                         compatible = "st,stm32-timers";
369                         reg = <0x40010000 0x400>;
370                         clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM1)>;
371                         clock-names = "int";
372                         status = "disabled";
373
374                         pwm {
375                                 compatible = "st,stm32-pwm";
376                                 #pwm-cells = <3>;
377                                 status = "disabled";
378                         };
379
380                         timer@0 {
381                                 compatible = "st,stm32-timer-trigger";
382                                 reg = <0>;
383                                 status = "disabled";
384                         };
385                 };
386
387                 timers8: timers@40010400 {
388                         #address-cells = <1>;
389                         #size-cells = <0>;
390                         compatible = "st,stm32-timers";
391                         reg = <0x40010400 0x400>;
392                         clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM8)>;
393                         clock-names = "int";
394                         status = "disabled";
395
396                         pwm {
397                                 compatible = "st,stm32-pwm";
398                                 #pwm-cells = <3>;
399                                 status = "disabled";
400                         };
401
402                         timer@7 {
403                                 compatible = "st,stm32-timer-trigger";
404                                 reg = <7>;
405                                 status = "disabled";
406                         };
407                 };
408
409                 usart1: serial@40011000 {
410                         compatible = "st,stm32f7-uart";
411                         reg = <0x40011000 0x400>;
412                         interrupts = <37>;
413                         clocks = <&rcc 1 CLK_USART1>;
414                         status = "disabled";
415                 };
416
417                 usart6: serial@40011400 {
418                         compatible = "st,stm32f7-uart";
419                         reg = <0x40011400 0x400>;
420                         interrupts = <71>;
421                         clocks = <&rcc 1 CLK_USART6>;
422                         status = "disabled";
423                 };
424
425                 sdio2: mmc@40011c00 {
426                         compatible = "arm,pl180", "arm,primecell";
427                         arm,primecell-periphid = <0x00880180>;
428                         reg = <0x40011c00 0x400>;
429                         clocks = <&rcc 0 STM32F7_APB2_CLOCK(SDMMC2)>;
430                         clock-names = "apb_pclk";
431                         interrupts = <103>;
432                         max-frequency = <48000000>;
433                         status = "disabled";
434                 };
435
436                 sdio1: mmc@40012c00 {
437                         compatible = "arm,pl180", "arm,primecell";
438                         arm,primecell-periphid = <0x00880180>;
439                         reg = <0x40012c00 0x400>;
440                         clocks = <&rcc 0 STM32F7_APB2_CLOCK(SDMMC1)>;
441                         clock-names = "apb_pclk";
442                         interrupts = <49>;
443                         max-frequency = <48000000>;
444                         status = "disabled";
445                 };
446
447                 syscfg: syscon@40013800 {
448                         compatible = "st,stm32-syscfg", "syscon";
449                         reg = <0x40013800 0x400>;
450                 };
451
452                 exti: interrupt-controller@40013c00 {
453                         compatible = "st,stm32-exti";
454                         interrupt-controller;
455                         #interrupt-cells = <2>;
456                         reg = <0x40013C00 0x400>;
457                         interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
458                 };
459
460                 timers9: timers@40014000 {
461                         #address-cells = <1>;
462                         #size-cells = <0>;
463                         compatible = "st,stm32-timers";
464                         reg = <0x40014000 0x400>;
465                         clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM9)>;
466                         clock-names = "int";
467                         status = "disabled";
468
469                         pwm {
470                                 compatible = "st,stm32-pwm";
471                                 #pwm-cells = <3>;
472                                 status = "disabled";
473                         };
474
475                         timer@8 {
476                                 compatible = "st,stm32-timer-trigger";
477                                 reg = <8>;
478                                 status = "disabled";
479                         };
480                 };
481
482                 timers10: timers@40014400 {
483                         compatible = "st,stm32-timers";
484                         reg = <0x40014400 0x400>;
485                         clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM10)>;
486                         clock-names = "int";
487                         status = "disabled";
488
489                         pwm {
490                                 compatible = "st,stm32-pwm";
491                                 #pwm-cells = <3>;
492                                 status = "disabled";
493                         };
494                 };
495
496                 timers11: timers@40014800 {
497                         compatible = "st,stm32-timers";
498                         reg = <0x40014800 0x400>;
499                         clocks = <&rcc 0 STM32F7_APB2_CLOCK(TIM11)>;
500                         clock-names = "int";
501                         status = "disabled";
502
503                         pwm {
504                                 compatible = "st,stm32-pwm";
505                                 #pwm-cells = <3>;
506                                 status = "disabled";
507                         };
508                 };
509
510                 pwrcfg: power-config@40007000 {
511                         compatible = "st,stm32-power-config", "syscon";
512                         reg = <0x40007000 0x400>;
513                 };
514
515                 crc: crc@40023000 {
516                         compatible = "st,stm32f7-crc";
517                         reg = <0x40023000 0x400>;
518                         clocks = <&rcc 0 12>;
519                         status = "disabled";
520                 };
521
522                 rcc: rcc@40023800 {
523                         #reset-cells = <1>;
524                         #clock-cells = <2>;
525                         compatible = "st,stm32f746-rcc", "st,stm32-rcc";
526                         reg = <0x40023800 0x400>;
527                         clocks = <&clk_hse>, <&clk_i2s_ckin>;
528                         st,syscfg = <&pwrcfg>;
529                         assigned-clocks = <&rcc 1 CLK_HSE_RTC>;
530                         assigned-clock-rates = <1000000>;
531                 };
532
533                 dma1: dma-controller@40026000 {
534                         compatible = "st,stm32-dma";
535                         reg = <0x40026000 0x400>;
536                         interrupts = <11>,
537                                      <12>,
538                                      <13>,
539                                      <14>,
540                                      <15>,
541                                      <16>,
542                                      <17>,
543                                      <47>;
544                         clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA1)>;
545                         #dma-cells = <4>;
546                         status = "disabled";
547                 };
548
549                 dma2: dma-controller@40026400 {
550                         compatible = "st,stm32-dma";
551                         reg = <0x40026400 0x400>;
552                         interrupts = <56>,
553                                      <57>,
554                                      <58>,
555                                      <59>,
556                                      <60>,
557                                      <68>,
558                                      <69>,
559                                      <70>;
560                         clocks = <&rcc 0 STM32F7_AHB1_CLOCK(DMA2)>;
561                         #dma-cells = <4>;
562                         st,mem2mem;
563                         status = "disabled";
564                 };
565
566                 usbotg_hs: usb@40040000 {
567                         compatible = "st,stm32f7-hsotg";
568                         reg = <0x40040000 0x40000>;
569                         interrupts = <77>;
570                         clocks = <&rcc 0 STM32F7_AHB1_CLOCK(OTGHS)>;
571                         clock-names = "otg";
572                         g-rx-fifo-size = <256>;
573                         g-np-tx-fifo-size = <32>;
574                         g-tx-fifo-size = <128 128 64 64 64 64 32 32>;
575                         status = "disabled";
576                 };
577
578                 usbotg_fs: usb@50000000 {
579                         compatible = "st,stm32f4x9-fsotg";
580                         reg = <0x50000000 0x40000>;
581                         interrupts = <67>;
582                         clocks = <&rcc 0 STM32F7_AHB2_CLOCK(OTGFS)>;
583                         clock-names = "otg";
584                         status = "disabled";
585                 };
586         };
587 };
588
589 &systick {
590         clocks = <&rcc 1 0>;
591         status = "okay";
592 };