stm32f429.dtsi 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769
  1. /*
  2. * Copyright 2015 - Maxime Coquelin <[email protected]>
  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. * You should have received a copy of the GNU General Public
  20. * License along with this file; if not, write to the Free
  21. * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
  22. * MA 02110-1301 USA
  23. *
  24. * Or, alternatively,
  25. *
  26. * b) Permission is hereby granted, free of charge, to any person
  27. * obtaining a copy of this software and associated documentation
  28. * files (the "Software"), to deal in the Software without
  29. * restriction, including without limitation the rights to use,
  30. * copy, modify, merge, publish, distribute, sublicense, and/or
  31. * sell copies of the Software, and to permit persons to whom the
  32. * Software is furnished to do so, subject to the following
  33. * conditions:
  34. *
  35. * The above copyright notice and this permission notice shall be
  36. * included in all copies or substantial portions of the Software.
  37. *
  38. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  39. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  40. * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  41. * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  42. * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  43. * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  44. * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  45. * OTHER DEALINGS IN THE SOFTWARE.
  46. */
  47. #include "armv7-m.dtsi"
  48. #include <dt-bindings/clock/stm32fx-clock.h>
  49. #include <dt-bindings/mfd/stm32f4-rcc.h>
  50. / {
  51. #address-cells = <1>;
  52. #size-cells = <1>;
  53. clocks {
  54. clk_hse: clk-hse {
  55. #clock-cells = <0>;
  56. compatible = "fixed-clock";
  57. clock-frequency = <0>;
  58. };
  59. clk_lse: clk-lse {
  60. #clock-cells = <0>;
  61. compatible = "fixed-clock";
  62. clock-frequency = <32768>;
  63. };
  64. clk_lsi: clk-lsi {
  65. #clock-cells = <0>;
  66. compatible = "fixed-clock";
  67. clock-frequency = <32000>;
  68. };
  69. clk_i2s_ckin: i2s-ckin {
  70. #clock-cells = <0>;
  71. compatible = "fixed-clock";
  72. clock-frequency = <0>;
  73. };
  74. };
  75. soc {
  76. romem: efuse@1fff7800 {
  77. compatible = "st,stm32f4-otp";
  78. reg = <0x1fff7800 0x400>;
  79. #address-cells = <1>;
  80. #size-cells = <1>;
  81. ts_cal1: calib@22c {
  82. reg = <0x22c 0x2>;
  83. };
  84. ts_cal2: calib@22e {
  85. reg = <0x22e 0x2>;
  86. };
  87. };
  88. timers2: timers@40000000 {
  89. #address-cells = <1>;
  90. #size-cells = <0>;
  91. compatible = "st,stm32-timers";
  92. reg = <0x40000000 0x400>;
  93. clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM2)>;
  94. clock-names = "int";
  95. status = "disabled";
  96. pwm {
  97. compatible = "st,stm32-pwm";
  98. #pwm-cells = <3>;
  99. status = "disabled";
  100. };
  101. timer@1 {
  102. compatible = "st,stm32-timer-trigger";
  103. reg = <1>;
  104. status = "disabled";
  105. };
  106. };
  107. timers3: timers@40000400 {
  108. #address-cells = <1>;
  109. #size-cells = <0>;
  110. compatible = "st,stm32-timers";
  111. reg = <0x40000400 0x400>;
  112. clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM3)>;
  113. clock-names = "int";
  114. status = "disabled";
  115. pwm {
  116. compatible = "st,stm32-pwm";
  117. #pwm-cells = <3>;
  118. status = "disabled";
  119. };
  120. timer@2 {
  121. compatible = "st,stm32-timer-trigger";
  122. reg = <2>;
  123. status = "disabled";
  124. };
  125. };
  126. timers4: timers@40000800 {
  127. #address-cells = <1>;
  128. #size-cells = <0>;
  129. compatible = "st,stm32-timers";
  130. reg = <0x40000800 0x400>;
  131. clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM4)>;
  132. clock-names = "int";
  133. status = "disabled";
  134. pwm {
  135. compatible = "st,stm32-pwm";
  136. #pwm-cells = <3>;
  137. status = "disabled";
  138. };
  139. timer@3 {
  140. compatible = "st,stm32-timer-trigger";
  141. reg = <3>;
  142. status = "disabled";
  143. };
  144. };
  145. timers5: timers@40000c00 {
  146. #address-cells = <1>;
  147. #size-cells = <0>;
  148. compatible = "st,stm32-timers";
  149. reg = <0x40000C00 0x400>;
  150. clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM5)>;
  151. clock-names = "int";
  152. status = "disabled";
  153. pwm {
  154. compatible = "st,stm32-pwm";
  155. #pwm-cells = <3>;
  156. status = "disabled";
  157. };
  158. timer@4 {
  159. compatible = "st,stm32-timer-trigger";
  160. reg = <4>;
  161. status = "disabled";
  162. };
  163. };
  164. timers6: timers@40001000 {
  165. #address-cells = <1>;
  166. #size-cells = <0>;
  167. compatible = "st,stm32-timers";
  168. reg = <0x40001000 0x400>;
  169. clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM6)>;
  170. clock-names = "int";
  171. status = "disabled";
  172. timer@5 {
  173. compatible = "st,stm32-timer-trigger";
  174. reg = <5>;
  175. status = "disabled";
  176. };
  177. };
  178. timers7: timers@40001400 {
  179. #address-cells = <1>;
  180. #size-cells = <0>;
  181. compatible = "st,stm32-timers";
  182. reg = <0x40001400 0x400>;
  183. clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM7)>;
  184. clock-names = "int";
  185. status = "disabled";
  186. timer@6 {
  187. compatible = "st,stm32-timer-trigger";
  188. reg = <6>;
  189. status = "disabled";
  190. };
  191. };
  192. timers12: timers@40001800 {
  193. #address-cells = <1>;
  194. #size-cells = <0>;
  195. compatible = "st,stm32-timers";
  196. reg = <0x40001800 0x400>;
  197. clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM12)>;
  198. clock-names = "int";
  199. status = "disabled";
  200. pwm {
  201. compatible = "st,stm32-pwm";
  202. #pwm-cells = <3>;
  203. status = "disabled";
  204. };
  205. timer@11 {
  206. compatible = "st,stm32-timer-trigger";
  207. reg = <11>;
  208. status = "disabled";
  209. };
  210. };
  211. timers13: timers@40001c00 {
  212. compatible = "st,stm32-timers";
  213. reg = <0x40001C00 0x400>;
  214. clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM13)>;
  215. clock-names = "int";
  216. status = "disabled";
  217. pwm {
  218. compatible = "st,stm32-pwm";
  219. #pwm-cells = <3>;
  220. status = "disabled";
  221. };
  222. };
  223. timers14: timers@40002000 {
  224. compatible = "st,stm32-timers";
  225. reg = <0x40002000 0x400>;
  226. clocks = <&rcc 0 STM32F4_APB1_CLOCK(TIM14)>;
  227. clock-names = "int";
  228. status = "disabled";
  229. pwm {
  230. compatible = "st,stm32-pwm";
  231. #pwm-cells = <3>;
  232. status = "disabled";
  233. };
  234. };
  235. rtc: rtc@40002800 {
  236. compatible = "st,stm32-rtc";
  237. reg = <0x40002800 0x400>;
  238. clocks = <&rcc 1 CLK_RTC>;
  239. assigned-clocks = <&rcc 1 CLK_RTC>;
  240. assigned-clock-parents = <&rcc 1 CLK_LSE>;
  241. interrupt-parent = <&exti>;
  242. interrupts = <17 1>;
  243. st,syscfg = <&pwrcfg 0x00 0x100>;
  244. status = "disabled";
  245. };
  246. iwdg: watchdog@40003000 {
  247. compatible = "st,stm32-iwdg";
  248. reg = <0x40003000 0x400>;
  249. clocks = <&clk_lsi>;
  250. clock-names = "lsi";
  251. status = "disabled";
  252. };
  253. spi2: spi@40003800 {
  254. #address-cells = <1>;
  255. #size-cells = <0>;
  256. compatible = "st,stm32f4-spi";
  257. reg = <0x40003800 0x400>;
  258. interrupts = <36>;
  259. clocks = <&rcc 0 STM32F4_APB1_CLOCK(SPI2)>;
  260. status = "disabled";
  261. };
  262. spi3: spi@40003c00 {
  263. #address-cells = <1>;
  264. #size-cells = <0>;
  265. compatible = "st,stm32f4-spi";
  266. reg = <0x40003c00 0x400>;
  267. interrupts = <51>;
  268. clocks = <&rcc 0 STM32F4_APB1_CLOCK(SPI3)>;
  269. status = "disabled";
  270. };
  271. usart2: serial@40004400 {
  272. compatible = "st,stm32-uart";
  273. reg = <0x40004400 0x400>;
  274. interrupts = <38>;
  275. clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART2)>;
  276. status = "disabled";
  277. };
  278. usart3: serial@40004800 {
  279. compatible = "st,stm32-uart";
  280. reg = <0x40004800 0x400>;
  281. interrupts = <39>;
  282. clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART3)>;
  283. status = "disabled";
  284. dmas = <&dma1 1 4 0x400 0x0>,
  285. <&dma1 3 4 0x400 0x0>;
  286. dma-names = "rx", "tx";
  287. };
  288. usart4: serial@40004c00 {
  289. compatible = "st,stm32-uart";
  290. reg = <0x40004c00 0x400>;
  291. interrupts = <52>;
  292. clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART4)>;
  293. status = "disabled";
  294. };
  295. usart5: serial@40005000 {
  296. compatible = "st,stm32-uart";
  297. reg = <0x40005000 0x400>;
  298. interrupts = <53>;
  299. clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART5)>;
  300. status = "disabled";
  301. };
  302. i2c1: i2c@40005400 {
  303. compatible = "st,stm32f4-i2c";
  304. reg = <0x40005400 0x400>;
  305. interrupts = <31>,
  306. <32>;
  307. resets = <&rcc STM32F4_APB1_RESET(I2C1)>;
  308. clocks = <&rcc 0 STM32F4_APB1_CLOCK(I2C1)>;
  309. #address-cells = <1>;
  310. #size-cells = <0>;
  311. status = "disabled";
  312. };
  313. i2c3: i2c@40005c00 {
  314. compatible = "st,stm32f4-i2c";
  315. reg = <0x40005c00 0x400>;
  316. interrupts = <72>,
  317. <73>;
  318. resets = <&rcc STM32F4_APB1_RESET(I2C3)>;
  319. clocks = <&rcc 0 STM32F4_APB1_CLOCK(I2C3)>;
  320. #address-cells = <1>;
  321. #size-cells = <0>;
  322. status = "disabled";
  323. };
  324. dac: dac@40007400 {
  325. compatible = "st,stm32f4-dac-core";
  326. reg = <0x40007400 0x400>;
  327. resets = <&rcc STM32F4_APB1_RESET(DAC)>;
  328. clocks = <&rcc 0 STM32F4_APB1_CLOCK(DAC)>;
  329. clock-names = "pclk";
  330. #address-cells = <1>;
  331. #size-cells = <0>;
  332. status = "disabled";
  333. dac1: dac@1 {
  334. compatible = "st,stm32-dac";
  335. #io-channel-cells = <1>;
  336. reg = <1>;
  337. status = "disabled";
  338. };
  339. dac2: dac@2 {
  340. compatible = "st,stm32-dac";
  341. #io-channel-cells = <1>;
  342. reg = <2>;
  343. status = "disabled";
  344. };
  345. };
  346. usart7: serial@40007800 {
  347. compatible = "st,stm32-uart";
  348. reg = <0x40007800 0x400>;
  349. interrupts = <82>;
  350. clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART7)>;
  351. status = "disabled";
  352. };
  353. usart8: serial@40007c00 {
  354. compatible = "st,stm32-uart";
  355. reg = <0x40007c00 0x400>;
  356. interrupts = <83>;
  357. clocks = <&rcc 0 STM32F4_APB1_CLOCK(UART8)>;
  358. status = "disabled";
  359. };
  360. timers1: timers@40010000 {
  361. #address-cells = <1>;
  362. #size-cells = <0>;
  363. compatible = "st,stm32-timers";
  364. reg = <0x40010000 0x400>;
  365. clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM1)>;
  366. clock-names = "int";
  367. status = "disabled";
  368. pwm {
  369. compatible = "st,stm32-pwm";
  370. #pwm-cells = <3>;
  371. status = "disabled";
  372. };
  373. timer@0 {
  374. compatible = "st,stm32-timer-trigger";
  375. reg = <0>;
  376. status = "disabled";
  377. };
  378. };
  379. timers8: timers@40010400 {
  380. #address-cells = <1>;
  381. #size-cells = <0>;
  382. compatible = "st,stm32-timers";
  383. reg = <0x40010400 0x400>;
  384. clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM8)>;
  385. clock-names = "int";
  386. status = "disabled";
  387. pwm {
  388. compatible = "st,stm32-pwm";
  389. #pwm-cells = <3>;
  390. status = "disabled";
  391. };
  392. timer@7 {
  393. compatible = "st,stm32-timer-trigger";
  394. reg = <7>;
  395. status = "disabled";
  396. };
  397. };
  398. usart1: serial@40011000 {
  399. compatible = "st,stm32-uart";
  400. reg = <0x40011000 0x400>;
  401. interrupts = <37>;
  402. clocks = <&rcc 0 STM32F4_APB2_CLOCK(USART1)>;
  403. status = "disabled";
  404. dmas = <&dma2 2 4 0x400 0x0>,
  405. <&dma2 7 4 0x400 0x0>;
  406. dma-names = "rx", "tx";
  407. };
  408. usart6: serial@40011400 {
  409. compatible = "st,stm32-uart";
  410. reg = <0x40011400 0x400>;
  411. interrupts = <71>;
  412. clocks = <&rcc 0 STM32F4_APB2_CLOCK(USART6)>;
  413. status = "disabled";
  414. };
  415. adc: adc@40012000 {
  416. compatible = "st,stm32f4-adc-core";
  417. reg = <0x40012000 0x400>;
  418. interrupts = <18>;
  419. clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC1)>;
  420. clock-names = "adc";
  421. interrupt-controller;
  422. #interrupt-cells = <1>;
  423. #address-cells = <1>;
  424. #size-cells = <0>;
  425. status = "disabled";
  426. adc1: adc@0 {
  427. compatible = "st,stm32f4-adc";
  428. #io-channel-cells = <1>;
  429. reg = <0x0>;
  430. clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC1)>;
  431. interrupt-parent = <&adc>;
  432. interrupts = <0>;
  433. dmas = <&dma2 0 0 0x400 0x0>;
  434. dma-names = "rx";
  435. status = "disabled";
  436. };
  437. adc2: adc@100 {
  438. compatible = "st,stm32f4-adc";
  439. #io-channel-cells = <1>;
  440. reg = <0x100>;
  441. clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC2)>;
  442. interrupt-parent = <&adc>;
  443. interrupts = <1>;
  444. dmas = <&dma2 3 1 0x400 0x0>;
  445. dma-names = "rx";
  446. status = "disabled";
  447. };
  448. adc3: adc@200 {
  449. compatible = "st,stm32f4-adc";
  450. #io-channel-cells = <1>;
  451. reg = <0x200>;
  452. clocks = <&rcc 0 STM32F4_APB2_CLOCK(ADC3)>;
  453. interrupt-parent = <&adc>;
  454. interrupts = <2>;
  455. dmas = <&dma2 1 2 0x400 0x0>;
  456. dma-names = "rx";
  457. status = "disabled";
  458. };
  459. };
  460. sdio: mmc@40012c00 {
  461. compatible = "arm,pl180", "arm,primecell";
  462. arm,primecell-periphid = <0x00880180>;
  463. reg = <0x40012c00 0x400>;
  464. clocks = <&rcc 0 STM32F4_APB2_CLOCK(SDIO)>;
  465. clock-names = "apb_pclk";
  466. interrupts = <49>;
  467. max-frequency = <48000000>;
  468. status = "disabled";
  469. };
  470. spi1: spi@40013000 {
  471. #address-cells = <1>;
  472. #size-cells = <0>;
  473. compatible = "st,stm32f4-spi";
  474. reg = <0x40013000 0x400>;
  475. interrupts = <35>;
  476. clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI1)>;
  477. status = "disabled";
  478. };
  479. spi4: spi@40013400 {
  480. #address-cells = <1>;
  481. #size-cells = <0>;
  482. compatible = "st,stm32f4-spi";
  483. reg = <0x40013400 0x400>;
  484. interrupts = <84>;
  485. clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI4)>;
  486. status = "disabled";
  487. };
  488. syscfg: syscon@40013800 {
  489. compatible = "st,stm32-syscfg", "syscon";
  490. reg = <0x40013800 0x400>;
  491. };
  492. exti: interrupt-controller@40013c00 {
  493. compatible = "st,stm32-exti";
  494. interrupt-controller;
  495. #interrupt-cells = <2>;
  496. reg = <0x40013C00 0x400>;
  497. interrupts = <1>, <2>, <3>, <6>, <7>, <8>, <9>, <10>, <23>, <40>, <41>, <42>, <62>, <76>;
  498. };
  499. timers9: timers@40014000 {
  500. #address-cells = <1>;
  501. #size-cells = <0>;
  502. compatible = "st,stm32-timers";
  503. reg = <0x40014000 0x400>;
  504. clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM9)>;
  505. clock-names = "int";
  506. status = "disabled";
  507. pwm {
  508. compatible = "st,stm32-pwm";
  509. #pwm-cells = <3>;
  510. status = "disabled";
  511. };
  512. timer@8 {
  513. compatible = "st,stm32-timer-trigger";
  514. reg = <8>;
  515. status = "disabled";
  516. };
  517. };
  518. timers10: timers@40014400 {
  519. compatible = "st,stm32-timers";
  520. reg = <0x40014400 0x400>;
  521. clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM10)>;
  522. clock-names = "int";
  523. status = "disabled";
  524. pwm {
  525. compatible = "st,stm32-pwm";
  526. #pwm-cells = <3>;
  527. status = "disabled";
  528. };
  529. };
  530. timers11: timers@40014800 {
  531. compatible = "st,stm32-timers";
  532. reg = <0x40014800 0x400>;
  533. clocks = <&rcc 0 STM32F4_APB2_CLOCK(TIM11)>;
  534. clock-names = "int";
  535. status = "disabled";
  536. pwm {
  537. compatible = "st,stm32-pwm";
  538. #pwm-cells = <3>;
  539. status = "disabled";
  540. };
  541. };
  542. spi5: spi@40015000 {
  543. #address-cells = <1>;
  544. #size-cells = <0>;
  545. compatible = "st,stm32f4-spi";
  546. reg = <0x40015000 0x400>;
  547. interrupts = <85>;
  548. clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI5)>;
  549. dmas = <&dma2 3 2 0x400 0x0>,
  550. <&dma2 4 2 0x400 0x0>;
  551. dma-names = "rx", "tx";
  552. status = "disabled";
  553. };
  554. spi6: spi@40015400 {
  555. #address-cells = <1>;
  556. #size-cells = <0>;
  557. compatible = "st,stm32f4-spi";
  558. reg = <0x40015400 0x400>;
  559. interrupts = <86>;
  560. clocks = <&rcc 0 STM32F4_APB2_CLOCK(SPI6)>;
  561. status = "disabled";
  562. };
  563. pwrcfg: power-config@40007000 {
  564. compatible = "st,stm32-power-config", "syscon";
  565. reg = <0x40007000 0x400>;
  566. };
  567. ltdc: display-controller@40016800 {
  568. compatible = "st,stm32-ltdc";
  569. reg = <0x40016800 0x200>;
  570. interrupts = <88>, <89>;
  571. resets = <&rcc STM32F4_APB2_RESET(LTDC)>;
  572. clocks = <&rcc 1 CLK_LCD>;
  573. clock-names = "lcd";
  574. status = "disabled";
  575. };
  576. crc: crc@40023000 {
  577. compatible = "st,stm32f4-crc";
  578. reg = <0x40023000 0x400>;
  579. clocks = <&rcc 0 STM32F4_AHB1_CLOCK(CRC)>;
  580. status = "disabled";
  581. };
  582. rcc: rcc@40023800 {
  583. #reset-cells = <1>;
  584. #clock-cells = <2>;
  585. compatible = "st,stm32f42xx-rcc", "st,stm32-rcc";
  586. reg = <0x40023800 0x400>;
  587. clocks = <&clk_hse>, <&clk_i2s_ckin>;
  588. st,syscfg = <&pwrcfg>;
  589. assigned-clocks = <&rcc 1 CLK_HSE_RTC>;
  590. assigned-clock-rates = <1000000>;
  591. };
  592. dma1: dma-controller@40026000 {
  593. compatible = "st,stm32-dma";
  594. reg = <0x40026000 0x400>;
  595. interrupts = <11>,
  596. <12>,
  597. <13>,
  598. <14>,
  599. <15>,
  600. <16>,
  601. <17>,
  602. <47>;
  603. clocks = <&rcc 0 STM32F4_AHB1_CLOCK(DMA1)>;
  604. #dma-cells = <4>;
  605. };
  606. dma2: dma-controller@40026400 {
  607. compatible = "st,stm32-dma";
  608. reg = <0x40026400 0x400>;
  609. interrupts = <56>,
  610. <57>,
  611. <58>,
  612. <59>,
  613. <60>,
  614. <68>,
  615. <69>,
  616. <70>;
  617. clocks = <&rcc 0 STM32F4_AHB1_CLOCK(DMA2)>;
  618. #dma-cells = <4>;
  619. st,mem2mem;
  620. };
  621. mac: ethernet@40028000 {
  622. compatible = "st,stm32-dwmac", "snps,dwmac-3.50a";
  623. reg = <0x40028000 0x8000>;
  624. reg-names = "stmmaceth";
  625. interrupts = <61>;
  626. interrupt-names = "macirq";
  627. clock-names = "stmmaceth", "mac-clk-tx", "mac-clk-rx";
  628. clocks = <&rcc 0 STM32F4_AHB1_CLOCK(ETHMAC)>,
  629. <&rcc 0 STM32F4_AHB1_CLOCK(ETHMACTX)>,
  630. <&rcc 0 STM32F4_AHB1_CLOCK(ETHMACRX)>;
  631. st,syscon = <&syscfg 0x4>;
  632. snps,pbl = <8>;
  633. snps,mixed-burst;
  634. status = "disabled";
  635. };
  636. dma2d: dma2d@4002b000 {
  637. compatible = "st,stm32-dma2d";
  638. reg = <0x4002b000 0xc00>;
  639. interrupts = <90>;
  640. resets = <&rcc STM32F4_AHB1_RESET(DMA2D)>;
  641. clocks = <&rcc 0 STM32F4_AHB1_CLOCK(DMA2D)>;
  642. clock-names = "dma2d";
  643. status = "disabled";
  644. };
  645. usbotg_hs: usb@40040000 {
  646. compatible = "snps,dwc2";
  647. reg = <0x40040000 0x40000>;
  648. interrupts = <77>;
  649. clocks = <&rcc 0 STM32F4_AHB1_CLOCK(OTGHS)>;
  650. clock-names = "otg";
  651. status = "disabled";
  652. };
  653. usbotg_fs: usb@50000000 {
  654. compatible = "st,stm32f4x9-fsotg";
  655. reg = <0x50000000 0x40000>;
  656. interrupts = <67>;
  657. clocks = <&rcc 0 39>;
  658. clock-names = "otg";
  659. status = "disabled";
  660. };
  661. dcmi: dcmi@50050000 {
  662. compatible = "st,stm32-dcmi";
  663. reg = <0x50050000 0x400>;
  664. interrupts = <78>;
  665. resets = <&rcc STM32F4_AHB2_RESET(DCMI)>;
  666. clocks = <&rcc 0 STM32F4_AHB2_CLOCK(DCMI)>;
  667. clock-names = "mclk";
  668. pinctrl-names = "default";
  669. pinctrl-0 = <&dcmi_pins>;
  670. dmas = <&dma2 1 1 0x414 0x3>;
  671. dma-names = "tx";
  672. status = "disabled";
  673. };
  674. rng: rng@50060800 {
  675. compatible = "st,stm32-rng";
  676. reg = <0x50060800 0x400>;
  677. clocks = <&rcc 0 STM32F4_AHB2_CLOCK(RNG)>;
  678. };
  679. };
  680. };
  681. &systick {
  682. clocks = <&rcc 1 SYSTICK>;
  683. status = "okay";
  684. };