stm32mp131.dtsi 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692
  1. // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
  2. /*
  3. * Copyright (C) STMicroelectronics 2021 - All Rights Reserved
  4. * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
  5. */
  6. #include <dt-bindings/interrupt-controller/arm-gic.h>
  7. #include <dt-bindings/clock/stm32mp13-clks.h>
  8. #include <dt-bindings/reset/stm32mp13-resets.h>
  9. / {
  10. #address-cells = <1>;
  11. #size-cells = <1>;
  12. cpus {
  13. #address-cells = <1>;
  14. #size-cells = <0>;
  15. cpu0: cpu@0 {
  16. compatible = "arm,cortex-a7";
  17. device_type = "cpu";
  18. reg = <0>;
  19. };
  20. };
  21. arm-pmu {
  22. compatible = "arm,cortex-a7-pmu";
  23. interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
  24. interrupt-affinity = <&cpu0>;
  25. interrupt-parent = <&intc>;
  26. };
  27. firmware {
  28. optee {
  29. method = "smc";
  30. compatible = "linaro,optee-tz";
  31. interrupt-parent = <&intc>;
  32. interrupts = <GIC_PPI 15 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
  33. };
  34. scmi: scmi {
  35. compatible = "linaro,scmi-optee";
  36. #address-cells = <1>;
  37. #size-cells = <0>;
  38. linaro,optee-channel-id = <0>;
  39. scmi_clk: protocol@14 {
  40. reg = <0x14>;
  41. #clock-cells = <1>;
  42. };
  43. scmi_reset: protocol@16 {
  44. reg = <0x16>;
  45. #reset-cells = <1>;
  46. };
  47. scmi_voltd: protocol@17 {
  48. reg = <0x17>;
  49. scmi_regu: regulators {
  50. #address-cells = <1>;
  51. #size-cells = <0>;
  52. scmi_reg11: regulator@0 {
  53. reg = <VOLTD_SCMI_REG11>;
  54. regulator-name = "reg11";
  55. };
  56. scmi_reg18: regulator@1 {
  57. reg = <VOLTD_SCMI_REG18>;
  58. regulator-name = "reg18";
  59. };
  60. scmi_usb33: regulator@2 {
  61. reg = <VOLTD_SCMI_USB33>;
  62. regulator-name = "usb33";
  63. };
  64. };
  65. };
  66. };
  67. };
  68. intc: interrupt-controller@a0021000 {
  69. compatible = "arm,cortex-a7-gic";
  70. #interrupt-cells = <3>;
  71. interrupt-controller;
  72. reg = <0xa0021000 0x1000>,
  73. <0xa0022000 0x2000>;
  74. };
  75. psci {
  76. compatible = "arm,psci-1.0";
  77. method = "smc";
  78. };
  79. timer {
  80. compatible = "arm,armv7-timer";
  81. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
  82. <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
  83. <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
  84. <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
  85. interrupt-parent = <&intc>;
  86. always-on;
  87. };
  88. soc {
  89. compatible = "simple-bus";
  90. #address-cells = <1>;
  91. #size-cells = <1>;
  92. interrupt-parent = <&intc>;
  93. ranges;
  94. timers2: timer@40000000 {
  95. #address-cells = <1>;
  96. #size-cells = <0>;
  97. compatible = "st,stm32-timers";
  98. reg = <0x40000000 0x400>;
  99. interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
  100. interrupt-names = "global";
  101. clocks = <&rcc TIM2_K>;
  102. clock-names = "int";
  103. dmas = <&dmamux1 18 0x400 0x1>,
  104. <&dmamux1 19 0x400 0x1>,
  105. <&dmamux1 20 0x400 0x1>,
  106. <&dmamux1 21 0x400 0x1>,
  107. <&dmamux1 22 0x400 0x1>;
  108. dma-names = "ch1", "ch2", "ch3", "ch4", "up";
  109. status = "disabled";
  110. pwm {
  111. compatible = "st,stm32-pwm";
  112. #pwm-cells = <3>;
  113. status = "disabled";
  114. };
  115. timer@1 {
  116. compatible = "st,stm32h7-timer-trigger";
  117. reg = <1>;
  118. status = "disabled";
  119. };
  120. counter {
  121. compatible = "st,stm32-timer-counter";
  122. status = "disabled";
  123. };
  124. };
  125. timers3: timer@40001000 {
  126. #address-cells = <1>;
  127. #size-cells = <0>;
  128. compatible = "st,stm32-timers";
  129. reg = <0x40001000 0x400>;
  130. interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
  131. interrupt-names = "global";
  132. clocks = <&rcc TIM3_K>;
  133. clock-names = "int";
  134. dmas = <&dmamux1 23 0x400 0x1>,
  135. <&dmamux1 24 0x400 0x1>,
  136. <&dmamux1 25 0x400 0x1>,
  137. <&dmamux1 26 0x400 0x1>,
  138. <&dmamux1 27 0x400 0x1>,
  139. <&dmamux1 28 0x400 0x1>;
  140. dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
  141. status = "disabled";
  142. pwm {
  143. compatible = "st,stm32-pwm";
  144. #pwm-cells = <3>;
  145. status = "disabled";
  146. };
  147. timer@2 {
  148. compatible = "st,stm32h7-timer-trigger";
  149. reg = <2>;
  150. status = "disabled";
  151. };
  152. counter {
  153. compatible = "st,stm32-timer-counter";
  154. status = "disabled";
  155. };
  156. };
  157. timers4: timer@40002000 {
  158. #address-cells = <1>;
  159. #size-cells = <0>;
  160. compatible = "st,stm32-timers";
  161. reg = <0x40002000 0x400>;
  162. interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
  163. interrupt-names = "global";
  164. clocks = <&rcc TIM4_K>;
  165. clock-names = "int";
  166. dmas = <&dmamux1 29 0x400 0x1>,
  167. <&dmamux1 30 0x400 0x1>,
  168. <&dmamux1 31 0x400 0x1>,
  169. <&dmamux1 32 0x400 0x1>;
  170. dma-names = "ch1", "ch2", "ch3", "up";
  171. status = "disabled";
  172. pwm {
  173. compatible = "st,stm32-pwm";
  174. #pwm-cells = <3>;
  175. status = "disabled";
  176. };
  177. timer@3 {
  178. compatible = "st,stm32h7-timer-trigger";
  179. reg = <3>;
  180. status = "disabled";
  181. };
  182. counter {
  183. compatible = "st,stm32-timer-counter";
  184. status = "disabled";
  185. };
  186. };
  187. timers5: timer@40003000 {
  188. #address-cells = <1>;
  189. #size-cells = <0>;
  190. compatible = "st,stm32-timers";
  191. reg = <0x40003000 0x400>;
  192. interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
  193. interrupt-names = "global";
  194. clocks = <&rcc TIM5_K>;
  195. clock-names = "int";
  196. dmas = <&dmamux1 55 0x400 0x1>,
  197. <&dmamux1 56 0x400 0x1>,
  198. <&dmamux1 57 0x400 0x1>,
  199. <&dmamux1 58 0x400 0x1>,
  200. <&dmamux1 59 0x400 0x1>,
  201. <&dmamux1 60 0x400 0x1>;
  202. dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
  203. status = "disabled";
  204. pwm {
  205. compatible = "st,stm32-pwm";
  206. #pwm-cells = <3>;
  207. status = "disabled";
  208. };
  209. timer@4 {
  210. compatible = "st,stm32h7-timer-trigger";
  211. reg = <4>;
  212. status = "disabled";
  213. };
  214. counter {
  215. compatible = "st,stm32-timer-counter";
  216. status = "disabled";
  217. };
  218. };
  219. timers6: timer@40004000 {
  220. #address-cells = <1>;
  221. #size-cells = <0>;
  222. compatible = "st,stm32-timers";
  223. reg = <0x40004000 0x400>;
  224. interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
  225. interrupt-names = "global";
  226. clocks = <&rcc TIM6_K>;
  227. clock-names = "int";
  228. dmas = <&dmamux1 69 0x400 0x1>;
  229. dma-names = "up";
  230. status = "disabled";
  231. timer@5 {
  232. compatible = "st,stm32h7-timer-trigger";
  233. reg = <5>;
  234. status = "disabled";
  235. };
  236. };
  237. timers7: timer@40005000 {
  238. #address-cells = <1>;
  239. #size-cells = <0>;
  240. compatible = "st,stm32-timers";
  241. reg = <0x40005000 0x400>;
  242. interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
  243. interrupt-names = "global";
  244. clocks = <&rcc TIM7_K>;
  245. clock-names = "int";
  246. dmas = <&dmamux1 70 0x400 0x1>;
  247. dma-names = "up";
  248. status = "disabled";
  249. timer@6 {
  250. compatible = "st,stm32h7-timer-trigger";
  251. reg = <6>;
  252. status = "disabled";
  253. };
  254. };
  255. lptimer1: timer@40009000 {
  256. #address-cells = <1>;
  257. #size-cells = <0>;
  258. compatible = "st,stm32-lptimer";
  259. reg = <0x40009000 0x400>;
  260. interrupts-extended = <&exti 47 IRQ_TYPE_LEVEL_HIGH>;
  261. clocks = <&rcc LPTIM1_K>;
  262. clock-names = "mux";
  263. wakeup-source;
  264. status = "disabled";
  265. pwm {
  266. compatible = "st,stm32-pwm-lp";
  267. #pwm-cells = <3>;
  268. status = "disabled";
  269. };
  270. trigger@0 {
  271. compatible = "st,stm32-lptimer-trigger";
  272. reg = <0>;
  273. status = "disabled";
  274. };
  275. counter {
  276. compatible = "st,stm32-lptimer-counter";
  277. status = "disabled";
  278. };
  279. timer {
  280. compatible = "st,stm32-lptimer-timer";
  281. status = "disabled";
  282. };
  283. };
  284. i2s2: audio-controller@4000b000 {
  285. compatible = "st,stm32h7-i2s";
  286. reg = <0x4000b000 0x400>;
  287. #sound-dai-cells = <0>;
  288. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  289. dmas = <&dmamux1 39 0x400 0x01>,
  290. <&dmamux1 40 0x400 0x01>;
  291. dma-names = "rx", "tx";
  292. status = "disabled";
  293. };
  294. spi2: spi@4000b000 {
  295. compatible = "st,stm32h7-spi";
  296. reg = <0x4000b000 0x400>;
  297. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  298. clocks = <&rcc SPI2_K>;
  299. resets = <&rcc SPI2_R>;
  300. #address-cells = <1>;
  301. #size-cells = <0>;
  302. dmas = <&dmamux1 39 0x400 0x01>,
  303. <&dmamux1 40 0x400 0x01>;
  304. dma-names = "rx", "tx";
  305. status = "disabled";
  306. };
  307. i2s3: audio-controller@4000c000 {
  308. compatible = "st,stm32h7-i2s";
  309. reg = <0x4000c000 0x400>;
  310. #sound-dai-cells = <0>;
  311. interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
  312. dmas = <&dmamux1 61 0x400 0x01>,
  313. <&dmamux1 62 0x400 0x01>;
  314. dma-names = "rx", "tx";
  315. status = "disabled";
  316. };
  317. spi3: spi@4000c000 {
  318. compatible = "st,stm32h7-spi";
  319. reg = <0x4000c000 0x400>;
  320. interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
  321. clocks = <&rcc SPI3_K>;
  322. resets = <&rcc SPI3_R>;
  323. #address-cells = <1>;
  324. #size-cells = <0>;
  325. dmas = <&dmamux1 61 0x400 0x01>,
  326. <&dmamux1 62 0x400 0x01>;
  327. dma-names = "rx", "tx";
  328. status = "disabled";
  329. };
  330. spdifrx: audio-controller@4000d000 {
  331. compatible = "st,stm32h7-spdifrx";
  332. reg = <0x4000d000 0x400>;
  333. #sound-dai-cells = <0>;
  334. clocks = <&rcc SPDIF_K>;
  335. clock-names = "kclk";
  336. interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
  337. dmas = <&dmamux1 93 0x400 0x01>,
  338. <&dmamux1 94 0x400 0x01>;
  339. dma-names = "rx", "rx-ctrl";
  340. status = "disabled";
  341. };
  342. usart3: serial@4000f000 {
  343. compatible = "st,stm32h7-uart";
  344. reg = <0x4000f000 0x400>;
  345. interrupts-extended = <&exti 28 IRQ_TYPE_LEVEL_HIGH>;
  346. clocks = <&rcc USART3_K>;
  347. resets = <&rcc USART3_R>;
  348. wakeup-source;
  349. dmas = <&dmamux1 45 0x400 0x5>,
  350. <&dmamux1 46 0x400 0x1>;
  351. dma-names = "rx", "tx";
  352. status = "disabled";
  353. };
  354. uart4: serial@40010000 {
  355. compatible = "st,stm32h7-uart";
  356. reg = <0x40010000 0x400>;
  357. interrupts-extended = <&exti 30 IRQ_TYPE_LEVEL_HIGH>;
  358. clocks = <&rcc UART4_K>;
  359. resets = <&rcc UART4_R>;
  360. wakeup-source;
  361. dmas = <&dmamux1 63 0x400 0x5>,
  362. <&dmamux1 64 0x400 0x1>;
  363. dma-names = "rx", "tx";
  364. status = "disabled";
  365. };
  366. uart5: serial@40011000 {
  367. compatible = "st,stm32h7-uart";
  368. reg = <0x40011000 0x400>;
  369. interrupts-extended = <&exti 31 IRQ_TYPE_LEVEL_HIGH>;
  370. clocks = <&rcc UART5_K>;
  371. resets = <&rcc UART5_R>;
  372. wakeup-source;
  373. dmas = <&dmamux1 65 0x400 0x5>,
  374. <&dmamux1 66 0x400 0x1>;
  375. dma-names = "rx", "tx";
  376. status = "disabled";
  377. };
  378. i2c1: i2c@40012000 {
  379. compatible = "st,stm32mp13-i2c";
  380. reg = <0x40012000 0x400>;
  381. interrupt-names = "event", "error";
  382. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
  383. <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
  384. clocks = <&rcc I2C1_K>;
  385. resets = <&rcc I2C1_R>;
  386. #address-cells = <1>;
  387. #size-cells = <0>;
  388. dmas = <&dmamux1 33 0x400 0x1>,
  389. <&dmamux1 34 0x400 0x1>;
  390. dma-names = "rx", "tx";
  391. st,syscfg-fmp = <&syscfg 0x4 0x1>;
  392. i2c-analog-filter;
  393. status = "disabled";
  394. };
  395. i2c2: i2c@40013000 {
  396. compatible = "st,stm32mp13-i2c";
  397. reg = <0x40013000 0x400>;
  398. interrupt-names = "event", "error";
  399. interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
  400. <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
  401. clocks = <&rcc I2C2_K>;
  402. resets = <&rcc I2C2_R>;
  403. #address-cells = <1>;
  404. #size-cells = <0>;
  405. dmas = <&dmamux1 35 0x400 0x1>,
  406. <&dmamux1 36 0x400 0x1>;
  407. dma-names = "rx", "tx";
  408. st,syscfg-fmp = <&syscfg 0x4 0x2>;
  409. i2c-analog-filter;
  410. status = "disabled";
  411. };
  412. uart7: serial@40018000 {
  413. compatible = "st,stm32h7-uart";
  414. reg = <0x40018000 0x400>;
  415. interrupts-extended = <&exti 32 IRQ_TYPE_LEVEL_HIGH>;
  416. clocks = <&rcc UART7_K>;
  417. resets = <&rcc UART7_R>;
  418. wakeup-source;
  419. dmas = <&dmamux1 79 0x400 0x5>,
  420. <&dmamux1 80 0x400 0x1>;
  421. dma-names = "rx", "tx";
  422. status = "disabled";
  423. };
  424. uart8: serial@40019000 {
  425. compatible = "st,stm32h7-uart";
  426. reg = <0x40019000 0x400>;
  427. interrupts-extended = <&exti 33 IRQ_TYPE_LEVEL_HIGH>;
  428. clocks = <&rcc UART8_K>;
  429. resets = <&rcc UART8_R>;
  430. wakeup-source;
  431. dmas = <&dmamux1 81 0x400 0x5>,
  432. <&dmamux1 82 0x400 0x1>;
  433. dma-names = "rx", "tx";
  434. status = "disabled";
  435. };
  436. timers1: timer@44000000 {
  437. #address-cells = <1>;
  438. #size-cells = <0>;
  439. compatible = "st,stm32-timers";
  440. reg = <0x44000000 0x400>;
  441. interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
  442. <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
  443. <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
  444. <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
  445. interrupt-names = "brk", "up", "trg-com", "cc";
  446. clocks = <&rcc TIM1_K>;
  447. clock-names = "int";
  448. dmas = <&dmamux1 11 0x400 0x1>,
  449. <&dmamux1 12 0x400 0x1>,
  450. <&dmamux1 13 0x400 0x1>,
  451. <&dmamux1 14 0x400 0x1>,
  452. <&dmamux1 15 0x400 0x1>,
  453. <&dmamux1 16 0x400 0x1>,
  454. <&dmamux1 17 0x400 0x1>;
  455. dma-names = "ch1", "ch2", "ch3", "ch4",
  456. "up", "trig", "com";
  457. status = "disabled";
  458. pwm {
  459. compatible = "st,stm32-pwm";
  460. #pwm-cells = <3>;
  461. status = "disabled";
  462. };
  463. timer@0 {
  464. compatible = "st,stm32h7-timer-trigger";
  465. reg = <0>;
  466. status = "disabled";
  467. };
  468. counter {
  469. compatible = "st,stm32-timer-counter";
  470. status = "disabled";
  471. };
  472. };
  473. timers8: timer@44001000 {
  474. #address-cells = <1>;
  475. #size-cells = <0>;
  476. compatible = "st,stm32-timers";
  477. reg = <0x44001000 0x400>;
  478. interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>,
  479. <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
  480. <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>,
  481. <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
  482. interrupt-names = "brk", "up", "trg-com", "cc";
  483. clocks = <&rcc TIM8_K>;
  484. clock-names = "int";
  485. dmas = <&dmamux1 47 0x400 0x1>,
  486. <&dmamux1 48 0x400 0x1>,
  487. <&dmamux1 49 0x400 0x1>,
  488. <&dmamux1 50 0x400 0x1>,
  489. <&dmamux1 51 0x400 0x1>,
  490. <&dmamux1 52 0x400 0x1>,
  491. <&dmamux1 53 0x400 0x1>;
  492. dma-names = "ch1", "ch2", "ch3", "ch4",
  493. "up", "trig", "com";
  494. status = "disabled";
  495. pwm {
  496. compatible = "st,stm32-pwm";
  497. #pwm-cells = <3>;
  498. status = "disabled";
  499. };
  500. timer@7 {
  501. compatible = "st,stm32h7-timer-trigger";
  502. reg = <7>;
  503. status = "disabled";
  504. };
  505. counter {
  506. compatible = "st,stm32-timer-counter";
  507. status = "disabled";
  508. };
  509. };
  510. usart6: serial@44003000 {
  511. compatible = "st,stm32h7-uart";
  512. reg = <0x44003000 0x400>;
  513. interrupts-extended = <&exti 29 IRQ_TYPE_LEVEL_HIGH>;
  514. clocks = <&rcc USART6_K>;
  515. resets = <&rcc USART6_R>;
  516. wakeup-source;
  517. dmas = <&dmamux1 71 0x400 0x5>,
  518. <&dmamux1 72 0x400 0x1>;
  519. dma-names = "rx", "tx";
  520. status = "disabled";
  521. };
  522. i2s1: audio-controller@44004000 {
  523. compatible = "st,stm32h7-i2s";
  524. reg = <0x44004000 0x400>;
  525. #sound-dai-cells = <0>;
  526. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  527. dmas = <&dmamux1 37 0x400 0x01>,
  528. <&dmamux1 38 0x400 0x01>;
  529. dma-names = "rx", "tx";
  530. status = "disabled";
  531. };
  532. spi1: spi@44004000 {
  533. compatible = "st,stm32h7-spi";
  534. reg = <0x44004000 0x400>;
  535. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  536. clocks = <&rcc SPI1_K>;
  537. resets = <&rcc SPI1_R>;
  538. #address-cells = <1>;
  539. #size-cells = <0>;
  540. dmas = <&dmamux1 37 0x400 0x01>,
  541. <&dmamux1 38 0x400 0x01>;
  542. dma-names = "rx", "tx";
  543. status = "disabled";
  544. };
  545. sai1: sai@4400a000 {
  546. compatible = "st,stm32h7-sai";
  547. reg = <0x4400a000 0x4>, <0x4400a3f0 0x10>;
  548. ranges = <0 0x4400a000 0x400>;
  549. #address-cells = <1>;
  550. #size-cells = <1>;
  551. interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
  552. resets = <&rcc SAI1_R>;
  553. status = "disabled";
  554. sai1a: audio-controller@4400a004 {
  555. compatible = "st,stm32-sai-sub-a";
  556. reg = <0x4 0x20>;
  557. #sound-dai-cells = <0>;
  558. clocks = <&rcc SAI1_K>;
  559. clock-names = "sai_ck";
  560. dmas = <&dmamux1 87 0x400 0x01>;
  561. status = "disabled";
  562. };
  563. sai1b: audio-controller@4400a024 {
  564. compatible = "st,stm32-sai-sub-b";
  565. reg = <0x24 0x20>;
  566. #sound-dai-cells = <0>;
  567. clocks = <&rcc SAI1_K>;
  568. clock-names = "sai_ck";
  569. dmas = <&dmamux1 88 0x400 0x01>;
  570. status = "disabled";
  571. };
  572. };
  573. sai2: sai@4400b000 {
  574. compatible = "st,stm32h7-sai";
  575. reg = <0x4400b000 0x4>, <0x4400b3f0 0x10>;
  576. ranges = <0 0x4400b000 0x400>;
  577. #address-cells = <1>;
  578. #size-cells = <1>;
  579. interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
  580. resets = <&rcc SAI2_R>;
  581. status = "disabled";
  582. sai2a: audio-controller@4400b004 {
  583. compatible = "st,stm32-sai-sub-a";
  584. reg = <0x4 0x20>;
  585. #sound-dai-cells = <0>;
  586. clocks = <&rcc SAI2_K>;
  587. clock-names = "sai_ck";
  588. dmas = <&dmamux1 89 0x400 0x01>;
  589. status = "disabled";
  590. };
  591. sai2b: audio-controller@4400b024 {
  592. compatible = "st,stm32-sai-sub-b";
  593. reg = <0x24 0x20>;
  594. #sound-dai-cells = <0>;
  595. clocks = <&rcc SAI2_K>;
  596. clock-names = "sai_ck";
  597. dmas = <&dmamux1 90 0x400 0x01>;
  598. status = "disabled";
  599. };
  600. };
  601. dfsdm: dfsdm@4400d000 {
  602. compatible = "st,stm32mp1-dfsdm";
  603. reg = <0x4400d000 0x800>;
  604. clocks = <&rcc DFSDM_K>;
  605. clock-names = "dfsdm";
  606. #address-cells = <1>;
  607. #size-cells = <0>;
  608. status = "disabled";
  609. dfsdm0: filter@0 {
  610. compatible = "st,stm32-dfsdm-adc";
  611. reg = <0>;
  612. #io-channel-cells = <1>;
  613. interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
  614. dmas = <&dmamux1 101 0x400 0x01>;
  615. dma-names = "rx";
  616. status = "disabled";
  617. };
  618. dfsdm1: filter@1 {
  619. compatible = "st,stm32-dfsdm-adc";
  620. reg = <1>;
  621. #io-channel-cells = <1>;
  622. interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
  623. dmas = <&dmamux1 102 0x400 0x01>;
  624. dma-names = "rx";
  625. status = "disabled";
  626. };
  627. };
  628. dma1: dma-controller@48000000 {
  629. compatible = "st,stm32-dma";
  630. reg = <0x48000000 0x400>;
  631. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
  632. <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
  633. <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
  634. <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
  635. <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
  636. <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
  637. <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
  638. <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
  639. clocks = <&rcc DMA1>;
  640. resets = <&rcc DMA1_R>;
  641. #dma-cells = <4>;
  642. st,mem2mem;
  643. dma-requests = <8>;
  644. };
  645. dma2: dma-controller@48001000 {
  646. compatible = "st,stm32-dma";
  647. reg = <0x48001000 0x400>;
  648. interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
  649. <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
  650. <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
  651. <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
  652. <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
  653. <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
  654. <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>,
  655. <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
  656. clocks = <&rcc DMA2>;
  657. resets = <&rcc DMA2_R>;
  658. #dma-cells = <4>;
  659. st,mem2mem;
  660. dma-requests = <8>;
  661. };
  662. dmamux1: dma-router@48002000 {
  663. compatible = "st,stm32h7-dmamux";
  664. reg = <0x48002000 0x40>;
  665. clocks = <&rcc DMAMUX1>;
  666. resets = <&rcc DMAMUX1_R>;
  667. #dma-cells = <3>;
  668. dma-masters = <&dma1 &dma2>;
  669. dma-requests = <128>;
  670. dma-channels = <16>;
  671. };
  672. rcc: rcc@50000000 {
  673. compatible = "st,stm32mp13-rcc", "syscon";
  674. reg = <0x50000000 0x1000>;
  675. #clock-cells = <1>;
  676. #reset-cells = <1>;
  677. clock-names = "hse", "hsi", "csi", "lse", "lsi";
  678. clocks = <&scmi_clk CK_SCMI_HSE>,
  679. <&scmi_clk CK_SCMI_HSI>,
  680. <&scmi_clk CK_SCMI_CSI>,
  681. <&scmi_clk CK_SCMI_LSE>,
  682. <&scmi_clk CK_SCMI_LSI>;
  683. };
  684. pwr_regulators: pwr@50001000 {
  685. compatible = "st,stm32mp1,pwr-reg";
  686. reg = <0x50001000 0x10>;
  687. status = "disabled";
  688. reg11: reg11 {
  689. regulator-name = "reg11";
  690. regulator-min-microvolt = <1100000>;
  691. regulator-max-microvolt = <1100000>;
  692. };
  693. reg18: reg18 {
  694. regulator-name = "reg18";
  695. regulator-min-microvolt = <1800000>;
  696. regulator-max-microvolt = <1800000>;
  697. };
  698. usb33: usb33 {
  699. regulator-name = "usb33";
  700. regulator-min-microvolt = <3300000>;
  701. regulator-max-microvolt = <3300000>;
  702. };
  703. };
  704. exti: interrupt-controller@5000d000 {
  705. compatible = "st,stm32mp1-exti", "syscon";
  706. interrupt-controller;
  707. #interrupt-cells = <2>;
  708. reg = <0x5000d000 0x400>;
  709. interrupts-extended =
  710. <&intc GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, /* EXTI_0 */
  711. <&intc GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
  712. <&intc GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
  713. <&intc GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
  714. <&intc GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
  715. <&intc GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
  716. <&intc GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>,
  717. <&intc GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
  718. <&intc GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
  719. <&intc GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
  720. <&intc GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>, /* EXTI_10 */
  721. <&intc GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>,
  722. <&intc GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>,
  723. <&intc GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>,
  724. <&intc GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
  725. <&intc GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
  726. <&intc GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
  727. <0>,
  728. <0>,
  729. <&intc GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
  730. <0>, /* EXTI_20 */
  731. <&intc GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
  732. <&intc GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
  733. <&intc GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
  734. <&intc GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
  735. <&intc GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
  736. <&intc GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
  737. <&intc GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
  738. <&intc GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
  739. <&intc GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
  740. <&intc GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>, /* EXTI_30 */
  741. <&intc GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>,
  742. <&intc GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>,
  743. <&intc GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
  744. <0>,
  745. <0>,
  746. <0>,
  747. <0>,
  748. <0>,
  749. <0>,
  750. <0>, /* EXTI_40 */
  751. <0>,
  752. <0>,
  753. <0>,
  754. <&intc GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
  755. <0>,
  756. <0>,
  757. <&intc GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>,
  758. <&intc GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
  759. <0>,
  760. <&intc GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>, /* EXTI_50 */
  761. <0>,
  762. <&intc GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
  763. <&intc GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
  764. <0>,
  765. <0>,
  766. <0>,
  767. <0>,
  768. <0>,
  769. <0>,
  770. <0>, /* EXTI_60 */
  771. <0>,
  772. <0>,
  773. <0>,
  774. <0>,
  775. <0>,
  776. <0>,
  777. <0>,
  778. <&intc GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>,
  779. <0>,
  780. <&intc GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; /* EXTI_70 */
  781. };
  782. syscfg: syscon@50020000 {
  783. compatible = "st,stm32mp157-syscfg", "syscon";
  784. reg = <0x50020000 0x400>;
  785. clocks = <&rcc SYSCFG>;
  786. };
  787. lptimer4: timer@50023000 {
  788. compatible = "st,stm32-lptimer";
  789. reg = <0x50023000 0x400>;
  790. interrupts-extended = <&exti 52 IRQ_TYPE_LEVEL_HIGH>;
  791. clocks = <&rcc LPTIM4_K>;
  792. clock-names = "mux";
  793. wakeup-source;
  794. status = "disabled";
  795. pwm {
  796. compatible = "st,stm32-pwm-lp";
  797. #pwm-cells = <3>;
  798. status = "disabled";
  799. };
  800. timer {
  801. compatible = "st,stm32-lptimer-timer";
  802. status = "disabled";
  803. };
  804. };
  805. lptimer5: timer@50024000 {
  806. compatible = "st,stm32-lptimer";
  807. reg = <0x50024000 0x400>;
  808. interrupts-extended = <&exti 53 IRQ_TYPE_LEVEL_HIGH>;
  809. clocks = <&rcc LPTIM5_K>;
  810. clock-names = "mux";
  811. wakeup-source;
  812. status = "disabled";
  813. pwm {
  814. compatible = "st,stm32-pwm-lp";
  815. #pwm-cells = <3>;
  816. status = "disabled";
  817. };
  818. timer {
  819. compatible = "st,stm32-lptimer-timer";
  820. status = "disabled";
  821. };
  822. };
  823. mdma: dma-controller@58000000 {
  824. compatible = "st,stm32h7-mdma";
  825. reg = <0x58000000 0x1000>;
  826. interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
  827. clocks = <&rcc MDMA>;
  828. #dma-cells = <5>;
  829. dma-channels = <32>;
  830. dma-requests = <48>;
  831. };
  832. crc1: crc@58009000 {
  833. compatible = "st,stm32f7-crc";
  834. reg = <0x58009000 0x400>;
  835. clocks = <&rcc CRC1>;
  836. status = "disabled";
  837. };
  838. usbh_ohci: usb@5800c000 {
  839. compatible = "generic-ohci";
  840. reg = <0x5800c000 0x1000>;
  841. clocks = <&usbphyc>, <&rcc USBH>;
  842. resets = <&rcc USBH_R>;
  843. interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
  844. status = "disabled";
  845. };
  846. usbh_ehci: usb@5800d000 {
  847. compatible = "generic-ehci";
  848. reg = <0x5800d000 0x1000>;
  849. clocks = <&usbphyc>, <&rcc USBH>;
  850. resets = <&rcc USBH_R>;
  851. interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
  852. companion = <&usbh_ohci>;
  853. status = "disabled";
  854. };
  855. iwdg2: watchdog@5a002000 {
  856. compatible = "st,stm32mp1-iwdg";
  857. reg = <0x5a002000 0x400>;
  858. clocks = <&rcc IWDG2>, <&scmi_clk CK_SCMI_LSI>;
  859. clock-names = "pclk", "lsi";
  860. status = "disabled";
  861. };
  862. rtc: rtc@5c004000 {
  863. compatible = "st,stm32mp1-rtc";
  864. reg = <0x5c004000 0x400>;
  865. interrupts-extended = <&exti 19 IRQ_TYPE_LEVEL_HIGH>;
  866. clocks = <&scmi_clk CK_SCMI_RTCAPB>,
  867. <&scmi_clk CK_SCMI_RTC>;
  868. clock-names = "pclk", "rtc_ck";
  869. status = "disabled";
  870. };
  871. bsec: efuse@5c005000 {
  872. compatible = "st,stm32mp13-bsec";
  873. reg = <0x5c005000 0x400>;
  874. #address-cells = <1>;
  875. #size-cells = <1>;
  876. part_number_otp: part_number_otp@4 {
  877. reg = <0x4 0x2>;
  878. bits = <0 12>;
  879. };
  880. ts_cal1: calib@5c {
  881. reg = <0x5c 0x2>;
  882. };
  883. ts_cal2: calib@5e {
  884. reg = <0x5e 0x2>;
  885. };
  886. ethernet_mac1_address: mac1@e4 {
  887. reg = <0xe4 0x6>;
  888. };
  889. ethernet_mac2_address: mac2@ea {
  890. reg = <0xea 0x6>;
  891. };
  892. };
  893. etzpc: bus@5c007000 {
  894. compatible = "st,stm32-etzpc", "simple-bus";
  895. reg = <0x5c007000 0x400>;
  896. #address-cells = <1>;
  897. #size-cells = <1>;
  898. #access-controller-cells = <1>;
  899. ranges;
  900. adc_2: adc@48004000 {
  901. compatible = "st,stm32mp13-adc-core";
  902. reg = <0x48004000 0x400>;
  903. interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
  904. clocks = <&rcc ADC2>, <&rcc ADC2_K>;
  905. clock-names = "bus", "adc";
  906. interrupt-controller;
  907. #interrupt-cells = <1>;
  908. #address-cells = <1>;
  909. #size-cells = <0>;
  910. access-controllers = <&etzpc 33>;
  911. status = "disabled";
  912. adc2: adc@0 {
  913. compatible = "st,stm32mp13-adc";
  914. #io-channel-cells = <1>;
  915. #address-cells = <1>;
  916. #size-cells = <0>;
  917. reg = <0x0>;
  918. interrupt-parent = <&adc_2>;
  919. interrupts = <0>;
  920. dmas = <&dmamux1 10 0x400 0x80000001>;
  921. dma-names = "rx";
  922. status = "disabled";
  923. channel@13 {
  924. reg = <13>;
  925. label = "vrefint";
  926. };
  927. channel@14 {
  928. reg = <14>;
  929. label = "vddcore";
  930. };
  931. channel@16 {
  932. reg = <16>;
  933. label = "vddcpu";
  934. };
  935. channel@17 {
  936. reg = <17>;
  937. label = "vddq_ddr";
  938. };
  939. };
  940. };
  941. usbotg_hs: usb@49000000 {
  942. compatible = "st,stm32mp15-hsotg", "snps,dwc2";
  943. reg = <0x49000000 0x40000>;
  944. clocks = <&rcc USBO_K>;
  945. clock-names = "otg";
  946. resets = <&rcc USBO_R>;
  947. reset-names = "dwc2";
  948. interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
  949. g-rx-fifo-size = <512>;
  950. g-np-tx-fifo-size = <32>;
  951. g-tx-fifo-size = <256 16 16 16 16 16 16 16>;
  952. dr_mode = "otg";
  953. otg-rev = <0x200>;
  954. usb33d-supply = <&scmi_usb33>;
  955. access-controllers = <&etzpc 34>;
  956. status = "disabled";
  957. };
  958. usart1: serial@4c000000 {
  959. compatible = "st,stm32h7-uart";
  960. reg = <0x4c000000 0x400>;
  961. interrupts-extended = <&exti 26 IRQ_TYPE_LEVEL_HIGH>;
  962. clocks = <&rcc USART1_K>;
  963. resets = <&rcc USART1_R>;
  964. wakeup-source;
  965. dmas = <&dmamux1 41 0x400 0x5>,
  966. <&dmamux1 42 0x400 0x1>;
  967. dma-names = "rx", "tx";
  968. access-controllers = <&etzpc 16>;
  969. status = "disabled";
  970. };
  971. usart2: serial@4c001000 {
  972. compatible = "st,stm32h7-uart";
  973. reg = <0x4c001000 0x400>;
  974. interrupts-extended = <&exti 27 IRQ_TYPE_LEVEL_HIGH>;
  975. clocks = <&rcc USART2_K>;
  976. resets = <&rcc USART2_R>;
  977. wakeup-source;
  978. dmas = <&dmamux1 43 0x400 0x5>,
  979. <&dmamux1 44 0x400 0x1>;
  980. dma-names = "rx", "tx";
  981. access-controllers = <&etzpc 17>;
  982. status = "disabled";
  983. };
  984. i2s4: audio-controller@4c002000 {
  985. compatible = "st,stm32h7-i2s";
  986. reg = <0x4c002000 0x400>;
  987. #sound-dai-cells = <0>;
  988. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  989. dmas = <&dmamux1 83 0x400 0x01>,
  990. <&dmamux1 84 0x400 0x01>;
  991. dma-names = "rx", "tx";
  992. access-controllers = <&etzpc 13>;
  993. status = "disabled";
  994. };
  995. spi4: spi@4c002000 {
  996. compatible = "st,stm32h7-spi";
  997. reg = <0x4c002000 0x400>;
  998. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  999. clocks = <&rcc SPI4_K>;
  1000. resets = <&rcc SPI4_R>;
  1001. #address-cells = <1>;
  1002. #size-cells = <0>;
  1003. dmas = <&dmamux1 83 0x400 0x01>,
  1004. <&dmamux1 84 0x400 0x01>;
  1005. dma-names = "rx", "tx";
  1006. access-controllers = <&etzpc 18>;
  1007. status = "disabled";
  1008. };
  1009. spi5: spi@4c003000 {
  1010. compatible = "st,stm32h7-spi";
  1011. reg = <0x4c003000 0x400>;
  1012. interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
  1013. clocks = <&rcc SPI5_K>;
  1014. resets = <&rcc SPI5_R>;
  1015. #address-cells = <1>;
  1016. #size-cells = <0>;
  1017. dmas = <&dmamux1 85 0x400 0x01>,
  1018. <&dmamux1 86 0x400 0x01>;
  1019. dma-names = "rx", "tx";
  1020. access-controllers = <&etzpc 19>;
  1021. status = "disabled";
  1022. };
  1023. i2c3: i2c@4c004000 {
  1024. compatible = "st,stm32mp13-i2c";
  1025. reg = <0x4c004000 0x400>;
  1026. interrupt-names = "event", "error";
  1027. interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
  1028. <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
  1029. clocks = <&rcc I2C3_K>;
  1030. resets = <&rcc I2C3_R>;
  1031. #address-cells = <1>;
  1032. #size-cells = <0>;
  1033. dmas = <&dmamux1 73 0x400 0x1>,
  1034. <&dmamux1 74 0x400 0x1>;
  1035. dma-names = "rx", "tx";
  1036. st,syscfg-fmp = <&syscfg 0x4 0x4>;
  1037. i2c-analog-filter;
  1038. access-controllers = <&etzpc 20>;
  1039. status = "disabled";
  1040. };
  1041. i2c4: i2c@4c005000 {
  1042. compatible = "st,stm32mp13-i2c";
  1043. reg = <0x4c005000 0x400>;
  1044. interrupt-names = "event", "error";
  1045. interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>,
  1046. <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
  1047. clocks = <&rcc I2C4_K>;
  1048. resets = <&rcc I2C4_R>;
  1049. #address-cells = <1>;
  1050. #size-cells = <0>;
  1051. dmas = <&dmamux1 75 0x400 0x1>,
  1052. <&dmamux1 76 0x400 0x1>;
  1053. dma-names = "rx", "tx";
  1054. st,syscfg-fmp = <&syscfg 0x4 0x8>;
  1055. i2c-analog-filter;
  1056. access-controllers = <&etzpc 21>;
  1057. status = "disabled";
  1058. };
  1059. i2c5: i2c@4c006000 {
  1060. compatible = "st,stm32mp13-i2c";
  1061. reg = <0x4c006000 0x400>;
  1062. interrupt-names = "event", "error";
  1063. interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
  1064. <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
  1065. clocks = <&rcc I2C5_K>;
  1066. resets = <&rcc I2C5_R>;
  1067. #address-cells = <1>;
  1068. #size-cells = <0>;
  1069. dmas = <&dmamux1 115 0x400 0x1>,
  1070. <&dmamux1 116 0x400 0x1>;
  1071. dma-names = "rx", "tx";
  1072. st,syscfg-fmp = <&syscfg 0x4 0x10>;
  1073. i2c-analog-filter;
  1074. access-controllers = <&etzpc 22>;
  1075. status = "disabled";
  1076. };
  1077. timers12: timer@4c007000 {
  1078. #address-cells = <1>;
  1079. #size-cells = <0>;
  1080. compatible = "st,stm32-timers";
  1081. reg = <0x4c007000 0x400>;
  1082. interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
  1083. interrupt-names = "global";
  1084. clocks = <&rcc TIM12_K>;
  1085. clock-names = "int";
  1086. access-controllers = <&etzpc 23>;
  1087. status = "disabled";
  1088. pwm {
  1089. compatible = "st,stm32-pwm";
  1090. #pwm-cells = <3>;
  1091. status = "disabled";
  1092. };
  1093. timer@11 {
  1094. compatible = "st,stm32h7-timer-trigger";
  1095. reg = <11>;
  1096. status = "disabled";
  1097. };
  1098. };
  1099. timers13: timer@4c008000 {
  1100. #address-cells = <1>;
  1101. #size-cells = <0>;
  1102. compatible = "st,stm32-timers";
  1103. reg = <0x4c008000 0x400>;
  1104. interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
  1105. interrupt-names = "global";
  1106. clocks = <&rcc TIM13_K>;
  1107. clock-names = "int";
  1108. access-controllers = <&etzpc 24>;
  1109. status = "disabled";
  1110. pwm {
  1111. compatible = "st,stm32-pwm";
  1112. #pwm-cells = <3>;
  1113. status = "disabled";
  1114. };
  1115. timer@12 {
  1116. compatible = "st,stm32h7-timer-trigger";
  1117. reg = <12>;
  1118. status = "disabled";
  1119. };
  1120. };
  1121. timers14: timer@4c009000 {
  1122. #address-cells = <1>;
  1123. #size-cells = <0>;
  1124. compatible = "st,stm32-timers";
  1125. reg = <0x4c009000 0x400>;
  1126. interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
  1127. interrupt-names = "global";
  1128. clocks = <&rcc TIM14_K>;
  1129. clock-names = "int";
  1130. access-controllers = <&etzpc 25>;
  1131. status = "disabled";
  1132. pwm {
  1133. compatible = "st,stm32-pwm";
  1134. #pwm-cells = <3>;
  1135. status = "disabled";
  1136. };
  1137. timer@13 {
  1138. compatible = "st,stm32h7-timer-trigger";
  1139. reg = <13>;
  1140. status = "disabled";
  1141. };
  1142. };
  1143. timers15: timer@4c00a000 {
  1144. #address-cells = <1>;
  1145. #size-cells = <0>;
  1146. compatible = "st,stm32-timers";
  1147. reg = <0x4c00a000 0x400>;
  1148. interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
  1149. interrupt-names = "global";
  1150. clocks = <&rcc TIM15_K>;
  1151. clock-names = "int";
  1152. dmas = <&dmamux1 105 0x400 0x1>,
  1153. <&dmamux1 106 0x400 0x1>,
  1154. <&dmamux1 107 0x400 0x1>,
  1155. <&dmamux1 108 0x400 0x1>;
  1156. dma-names = "ch1", "up", "trig", "com";
  1157. access-controllers = <&etzpc 26>;
  1158. status = "disabled";
  1159. pwm {
  1160. compatible = "st,stm32-pwm";
  1161. #pwm-cells = <3>;
  1162. status = "disabled";
  1163. };
  1164. timer@14 {
  1165. compatible = "st,stm32h7-timer-trigger";
  1166. reg = <14>;
  1167. status = "disabled";
  1168. };
  1169. };
  1170. timers16: timer@4c00b000 {
  1171. #address-cells = <1>;
  1172. #size-cells = <0>;
  1173. compatible = "st,stm32-timers";
  1174. reg = <0x4c00b000 0x400>;
  1175. interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
  1176. interrupt-names = "global";
  1177. clocks = <&rcc TIM16_K>;
  1178. clock-names = "int";
  1179. dmas = <&dmamux1 109 0x400 0x1>,
  1180. <&dmamux1 110 0x400 0x1>;
  1181. dma-names = "ch1", "up";
  1182. access-controllers = <&etzpc 27>;
  1183. status = "disabled";
  1184. pwm {
  1185. compatible = "st,stm32-pwm";
  1186. #pwm-cells = <3>;
  1187. status = "disabled";
  1188. };
  1189. timer@15 {
  1190. compatible = "st,stm32h7-timer-trigger";
  1191. reg = <15>;
  1192. status = "disabled";
  1193. };
  1194. };
  1195. timers17: timer@4c00c000 {
  1196. #address-cells = <1>;
  1197. #size-cells = <0>;
  1198. compatible = "st,stm32-timers";
  1199. reg = <0x4c00c000 0x400>;
  1200. interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
  1201. interrupt-names = "global";
  1202. clocks = <&rcc TIM17_K>;
  1203. clock-names = "int";
  1204. dmas = <&dmamux1 111 0x400 0x1>,
  1205. <&dmamux1 112 0x400 0x1>;
  1206. dma-names = "ch1", "up";
  1207. access-controllers = <&etzpc 28>;
  1208. status = "disabled";
  1209. pwm {
  1210. compatible = "st,stm32-pwm";
  1211. #pwm-cells = <3>;
  1212. status = "disabled";
  1213. };
  1214. timer@16 {
  1215. compatible = "st,stm32h7-timer-trigger";
  1216. reg = <16>;
  1217. status = "disabled";
  1218. };
  1219. };
  1220. lptimer2: timer@50021000 {
  1221. #address-cells = <1>;
  1222. #size-cells = <0>;
  1223. compatible = "st,stm32-lptimer";
  1224. reg = <0x50021000 0x400>;
  1225. interrupts-extended = <&exti 48 IRQ_TYPE_LEVEL_HIGH>;
  1226. clocks = <&rcc LPTIM2_K>;
  1227. clock-names = "mux";
  1228. wakeup-source;
  1229. access-controllers = <&etzpc 1>;
  1230. status = "disabled";
  1231. pwm {
  1232. compatible = "st,stm32-pwm-lp";
  1233. #pwm-cells = <3>;
  1234. status = "disabled";
  1235. };
  1236. trigger@1 {
  1237. compatible = "st,stm32-lptimer-trigger";
  1238. reg = <1>;
  1239. status = "disabled";
  1240. };
  1241. counter {
  1242. compatible = "st,stm32-lptimer-counter";
  1243. status = "disabled";
  1244. };
  1245. timer {
  1246. compatible = "st,stm32-lptimer-timer";
  1247. status = "disabled";
  1248. };
  1249. };
  1250. lptimer3: timer@50022000 {
  1251. #address-cells = <1>;
  1252. #size-cells = <0>;
  1253. compatible = "st,stm32-lptimer";
  1254. reg = <0x50022000 0x400>;
  1255. interrupts-extended = <&exti 50 IRQ_TYPE_LEVEL_HIGH>;
  1256. clocks = <&rcc LPTIM3_K>;
  1257. clock-names = "mux";
  1258. wakeup-source;
  1259. access-controllers = <&etzpc 2>;
  1260. status = "disabled";
  1261. pwm {
  1262. compatible = "st,stm32-pwm-lp";
  1263. #pwm-cells = <3>;
  1264. status = "disabled";
  1265. };
  1266. trigger@2 {
  1267. compatible = "st,stm32-lptimer-trigger";
  1268. reg = <2>;
  1269. status = "disabled";
  1270. };
  1271. timer {
  1272. compatible = "st,stm32-lptimer-timer";
  1273. status = "disabled";
  1274. };
  1275. };
  1276. hash: hash@54003000 {
  1277. compatible = "st,stm32mp13-hash";
  1278. reg = <0x54003000 0x400>;
  1279. interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
  1280. clocks = <&rcc HASH1>;
  1281. resets = <&rcc HASH1_R>;
  1282. dmas = <&mdma 30 0x2 0x1000a02 0x0 0x0>;
  1283. dma-names = "in";
  1284. access-controllers = <&etzpc 41>;
  1285. status = "disabled";
  1286. };
  1287. rng: rng@54004000 {
  1288. compatible = "st,stm32mp13-rng";
  1289. reg = <0x54004000 0x400>;
  1290. clocks = <&rcc RNG1_K>;
  1291. resets = <&rcc RNG1_R>;
  1292. access-controllers = <&etzpc 40>;
  1293. status = "disabled";
  1294. };
  1295. fmc: memory-controller@58002000 {
  1296. compatible = "st,stm32mp1-fmc2-ebi";
  1297. reg = <0x58002000 0x1000>;
  1298. ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */
  1299. <1 0 0x64000000 0x04000000>, /* EBI CS 2 */
  1300. <2 0 0x68000000 0x04000000>, /* EBI CS 3 */
  1301. <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */
  1302. <4 0 0x80000000 0x10000000>; /* NAND */
  1303. #address-cells = <2>;
  1304. #size-cells = <1>;
  1305. clocks = <&rcc FMC_K>;
  1306. resets = <&rcc FMC_R>;
  1307. access-controllers = <&etzpc 54>;
  1308. status = "disabled";
  1309. nand-controller@4,0 {
  1310. compatible = "st,stm32mp1-fmc2-nfc";
  1311. reg = <4 0x00000000 0x1000>,
  1312. <4 0x08010000 0x1000>,
  1313. <4 0x08020000 0x1000>,
  1314. <4 0x01000000 0x1000>,
  1315. <4 0x09010000 0x1000>,
  1316. <4 0x09020000 0x1000>;
  1317. #address-cells = <1>;
  1318. #size-cells = <0>;
  1319. interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
  1320. dmas = <&mdma 24 0x2 0x12000a02 0x0 0x0>,
  1321. <&mdma 24 0x2 0x12000a08 0x0 0x0>,
  1322. <&mdma 25 0x2 0x12000a0a 0x0 0x0>;
  1323. dma-names = "tx", "rx", "ecc";
  1324. status = "disabled";
  1325. };
  1326. };
  1327. qspi: spi@58003000 {
  1328. compatible = "st,stm32f469-qspi";
  1329. reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
  1330. reg-names = "qspi", "qspi_mm";
  1331. #address-cells = <1>;
  1332. #size-cells = <0>;
  1333. interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
  1334. dmas = <&mdma 26 0x2 0x10100002 0x0 0x0>,
  1335. <&mdma 26 0x2 0x10100008 0x0 0x0>;
  1336. dma-names = "tx", "rx";
  1337. clocks = <&rcc QSPI_K>;
  1338. resets = <&rcc QSPI_R>;
  1339. access-controllers = <&etzpc 55>;
  1340. status = "disabled";
  1341. };
  1342. sdmmc1: mmc@58005000 {
  1343. compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
  1344. arm,primecell-periphid = <0x20253180>;
  1345. reg = <0x58005000 0x1000>, <0x58006000 0x1000>;
  1346. interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
  1347. clocks = <&rcc SDMMC1_K>;
  1348. clock-names = "apb_pclk";
  1349. resets = <&rcc SDMMC1_R>;
  1350. cap-sd-highspeed;
  1351. cap-mmc-highspeed;
  1352. max-frequency = <130000000>;
  1353. access-controllers = <&etzpc 50>;
  1354. status = "disabled";
  1355. };
  1356. sdmmc2: mmc@58007000 {
  1357. compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";
  1358. arm,primecell-periphid = <0x20253180>;
  1359. reg = <0x58007000 0x1000>, <0x58008000 0x1000>;
  1360. interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
  1361. clocks = <&rcc SDMMC2_K>;
  1362. clock-names = "apb_pclk";
  1363. resets = <&rcc SDMMC2_R>;
  1364. cap-sd-highspeed;
  1365. cap-mmc-highspeed;
  1366. max-frequency = <130000000>;
  1367. access-controllers = <&etzpc 51>;
  1368. status = "disabled";
  1369. };
  1370. ethernet1: ethernet@5800a000 {
  1371. compatible = "st,stm32mp13-dwmac", "snps,dwmac-4.20a";
  1372. reg = <0x5800a000 0x2000>;
  1373. reg-names = "stmmaceth";
  1374. interrupts-extended = <&intc GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>,
  1375. <&exti 68 1>;
  1376. interrupt-names = "macirq", "eth_wake_irq";
  1377. clock-names = "stmmaceth",
  1378. "mac-clk-tx",
  1379. "mac-clk-rx",
  1380. "ethstp",
  1381. "eth-ck";
  1382. clocks = <&rcc ETH1MAC>,
  1383. <&rcc ETH1TX>,
  1384. <&rcc ETH1RX>,
  1385. <&rcc ETH1STP>,
  1386. <&rcc ETH1CK_K>;
  1387. st,syscon = <&syscfg 0x4 0xff0000>;
  1388. snps,mixed-burst;
  1389. snps,pbl = <2>;
  1390. snps,axi-config = <&stmmac_axi_config_1>;
  1391. snps,tso;
  1392. access-controllers = <&etzpc 48>;
  1393. status = "disabled";
  1394. stmmac_axi_config_1: stmmac-axi-config {
  1395. snps,blen = <0 0 0 0 16 8 4>;
  1396. snps,rd_osr_lmt = <0x7>;
  1397. snps,wr_osr_lmt = <0x7>;
  1398. };
  1399. };
  1400. usbphyc: usbphyc@5a006000 {
  1401. #address-cells = <1>;
  1402. #size-cells = <0>;
  1403. #clock-cells = <0>;
  1404. compatible = "st,stm32mp1-usbphyc";
  1405. reg = <0x5a006000 0x1000>;
  1406. clocks = <&rcc USBPHY_K>;
  1407. resets = <&rcc USBPHY_R>;
  1408. vdda1v1-supply = <&scmi_reg11>;
  1409. vdda1v8-supply = <&scmi_reg18>;
  1410. access-controllers = <&etzpc 5>;
  1411. status = "disabled";
  1412. usbphyc_port0: usb-phy@0 {
  1413. #phy-cells = <0>;
  1414. reg = <0>;
  1415. };
  1416. usbphyc_port1: usb-phy@1 {
  1417. #phy-cells = <1>;
  1418. reg = <1>;
  1419. };
  1420. };
  1421. };
  1422. /*
  1423. * Break node order to solve dependency probe issue between
  1424. * pinctrl and exti.
  1425. */
  1426. pinctrl: pinctrl@50002000 {
  1427. #address-cells = <1>;
  1428. #size-cells = <1>;
  1429. compatible = "st,stm32mp135-pinctrl";
  1430. ranges = <0 0x50002000 0x8400>;
  1431. interrupt-parent = <&exti>;
  1432. st,syscfg = <&exti 0x60 0xff>;
  1433. gpioa: gpio@50002000 {
  1434. gpio-controller;
  1435. #gpio-cells = <2>;
  1436. interrupt-controller;
  1437. #interrupt-cells = <2>;
  1438. reg = <0x0 0x400>;
  1439. clocks = <&rcc GPIOA>;
  1440. st,bank-name = "GPIOA";
  1441. ngpios = <16>;
  1442. gpio-ranges = <&pinctrl 0 0 16>;
  1443. };
  1444. gpiob: gpio@50003000 {
  1445. gpio-controller;
  1446. #gpio-cells = <2>;
  1447. interrupt-controller;
  1448. #interrupt-cells = <2>;
  1449. reg = <0x1000 0x400>;
  1450. clocks = <&rcc GPIOB>;
  1451. st,bank-name = "GPIOB";
  1452. ngpios = <16>;
  1453. gpio-ranges = <&pinctrl 0 16 16>;
  1454. };
  1455. gpioc: gpio@50004000 {
  1456. gpio-controller;
  1457. #gpio-cells = <2>;
  1458. interrupt-controller;
  1459. #interrupt-cells = <2>;
  1460. reg = <0x2000 0x400>;
  1461. clocks = <&rcc GPIOC>;
  1462. st,bank-name = "GPIOC";
  1463. ngpios = <16>;
  1464. gpio-ranges = <&pinctrl 0 32 16>;
  1465. };
  1466. gpiod: gpio@50005000 {
  1467. gpio-controller;
  1468. #gpio-cells = <2>;
  1469. interrupt-controller;
  1470. #interrupt-cells = <2>;
  1471. reg = <0x3000 0x400>;
  1472. clocks = <&rcc GPIOD>;
  1473. st,bank-name = "GPIOD";
  1474. ngpios = <16>;
  1475. gpio-ranges = <&pinctrl 0 48 16>;
  1476. };
  1477. gpioe: gpio@50006000 {
  1478. gpio-controller;
  1479. #gpio-cells = <2>;
  1480. interrupt-controller;
  1481. #interrupt-cells = <2>;
  1482. reg = <0x4000 0x400>;
  1483. clocks = <&rcc GPIOE>;
  1484. st,bank-name = "GPIOE";
  1485. ngpios = <16>;
  1486. gpio-ranges = <&pinctrl 0 64 16>;
  1487. };
  1488. gpiof: gpio@50007000 {
  1489. gpio-controller;
  1490. #gpio-cells = <2>;
  1491. interrupt-controller;
  1492. #interrupt-cells = <2>;
  1493. reg = <0x5000 0x400>;
  1494. clocks = <&rcc GPIOF>;
  1495. st,bank-name = "GPIOF";
  1496. ngpios = <16>;
  1497. gpio-ranges = <&pinctrl 0 80 16>;
  1498. };
  1499. gpiog: gpio@50008000 {
  1500. gpio-controller;
  1501. #gpio-cells = <2>;
  1502. interrupt-controller;
  1503. #interrupt-cells = <2>;
  1504. reg = <0x6000 0x400>;
  1505. clocks = <&rcc GPIOG>;
  1506. st,bank-name = "GPIOG";
  1507. ngpios = <16>;
  1508. gpio-ranges = <&pinctrl 0 96 16>;
  1509. };
  1510. gpioh: gpio@50009000 {
  1511. gpio-controller;
  1512. #gpio-cells = <2>;
  1513. interrupt-controller;
  1514. #interrupt-cells = <2>;
  1515. reg = <0x7000 0x400>;
  1516. clocks = <&rcc GPIOH>;
  1517. st,bank-name = "GPIOH";
  1518. ngpios = <15>;
  1519. gpio-ranges = <&pinctrl 0 112 15>;
  1520. };
  1521. gpioi: gpio@5000a000 {
  1522. gpio-controller;
  1523. #gpio-cells = <2>;
  1524. interrupt-controller;
  1525. #interrupt-cells = <2>;
  1526. reg = <0x8000 0x400>;
  1527. clocks = <&rcc GPIOI>;
  1528. st,bank-name = "GPIOI";
  1529. ngpios = <8>;
  1530. gpio-ranges = <&pinctrl 0 128 8>;
  1531. };
  1532. };
  1533. };
  1534. };