stm32mp157c-osd32mp1-red.dtsi 50 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077
  1. // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
  2. /*//
  3. * Copyright (C) STMicroelectronics 2017 - All Rights Reserved
  4. * Author: Ludovic Barre <ludovic.barre@st.com> for STMicroelectronics.
  5. */
  6. #include <dt-bindings/interrupt-controller/arm-gic.h>
  7. #include <dt-bindings/clock/stm32mp1-clks.h>
  8. #include <dt-bindings/gpio/gpio.h>
  9. #include <dt-bindings/reset/stm32mp1-resets.h>
  10. / {
  11. #address-cells = <1>;
  12. #size-cells = <1>;
  13. cpus {
  14. #address-cells = <1>;
  15. #size-cells = <0>;
  16. cpu0: cpu@0 {
  17. compatible = "arm,cortex-a7";
  18. device_type = "cpu";
  19. reg = <0>;
  20. clocks = <&rcc CK_MPU>;
  21. clock-names = "cpu";
  22. operating-points-v2 = <&cpu0_opp_table>;
  23. nvmem-cells = <&part_number_otp>;
  24. nvmem-cell-names = "part_number";
  25. };
  26. cpu1: cpu@1 {
  27. compatible = "arm,cortex-a7";
  28. device_type = "cpu";
  29. reg = <1>;
  30. clocks = <&rcc CK_MPU>;
  31. clock-names = "cpu";
  32. operating-points-v2 = <&cpu0_opp_table>;
  33. };
  34. };
  35. cpu0_opp_table: cpu0-opp-table {
  36. compatible = "operating-points-v2";
  37. opp-shared;
  38. opp-650000000 {
  39. opp-hz = /bits/ 64 <650000000>;
  40. opp-microvolt = <1200000>;
  41. opp-supported-hw = <0x1>;
  42. };
  43. opp-800000000 {
  44. opp-hz = /bits/ 64 <800000000>;
  45. opp-microvolt = <1350000>;
  46. opp-supported-hw = <0x2>;
  47. };
  48. };
  49. arm-pmu {
  50. compatible = "arm,cortex-a7-pmu";
  51. interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_HIGH>,
  52. <GIC_SPI 201 IRQ_TYPE_LEVEL_HIGH>;
  53. interrupt-affinity = <&cpu0>, <&cpu1>;
  54. interrupt-parent = <&intc>;
  55. };
  56. psci {
  57. compatible = "arm,psci-1.0";
  58. method = "smc";
  59. };
  60. intc: interrupt-controller@a0021000 {
  61. compatible = "arm,cortex-a7-gic";
  62. #interrupt-cells = <3>;
  63. interrupt-controller;
  64. reg = <0xa0021000 0x1000>,
  65. <0xa0022000 0x2000>;
  66. };
  67. timer {
  68. compatible = "arm,armv7-timer";
  69. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  70. <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  71. <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  72. <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
  73. interrupt-parent = <&intc>;
  74. always-on;
  75. };
  76. clocks {
  77. clk_hse: clk-hse {
  78. #clock-cells = <0>;
  79. compatible = "fixed-clock";
  80. clock-frequency = <24000000>;
  81. };
  82. clk_hsi: clk-hsi {
  83. #clock-cells = <0>;
  84. compatible = "fixed-clock";
  85. clock-frequency = <64000000>;
  86. };
  87. clk_lse: clk-lse {
  88. #clock-cells = <0>;
  89. compatible = "fixed-clock";
  90. clock-frequency = <32768>;
  91. };
  92. clk_lsi: clk-lsi {
  93. #clock-cells = <0>;
  94. compatible = "fixed-clock";
  95. clock-frequency = <32000>;
  96. };
  97. clk_csi: clk-csi {
  98. #clock-cells = <0>;
  99. compatible = "fixed-clock";
  100. clock-frequency = <4000000>;
  101. };
  102. clk_i2s_ckin: i2s_ckin {
  103. #clock-cells = <0>;
  104. compatible = "fixed-clock";
  105. clock-frequency = <0>;
  106. };
  107. clk_dsi_phy: ck_dsi_phy {
  108. #clock-cells = <0>;
  109. compatible = "fixed-clock";
  110. clock-frequency = <0>;
  111. };
  112. };
  113. pm_domain {
  114. #address-cells = <1>;
  115. #size-cells = <0>;
  116. compatible = "st,stm32mp157c-pd";
  117. pd_core_ret: core-ret-power-domain@1 {
  118. #address-cells = <1>;
  119. #size-cells = <0>;
  120. reg = <1>;
  121. #power-domain-cells = <0>;
  122. label = "CORE-RETENTION";
  123. pd_core: core-power-domain@2 {
  124. reg = <2>;
  125. #power-domain-cells = <0>;
  126. label = "CORE";
  127. };
  128. };
  129. };
  130. thermal-zones {
  131. cpu_thermal: cpu-thermal {
  132. polling-delay-passive = <0>;
  133. polling-delay = <0>;
  134. thermal-sensors = <&dts>;
  135. trips {
  136. cpu-crit {
  137. temperature = <120000>;
  138. hysteresis = <0>;
  139. type = "critical";
  140. };
  141. };
  142. cooling-maps {
  143. };
  144. };
  145. };
  146. reboot {
  147. compatible = "syscon-reboot";
  148. regmap = <&rcc>;
  149. offset = <0x404>;
  150. mask = <0x1>;
  151. };
  152. replicator {
  153. /*
  154. * non-configurable replicators don't show up on the
  155. * AMBA bus. As such no need to add "arm,primecell"
  156. */
  157. compatible = "arm,coresight-replicator";
  158. clocks = <&rcc CK_TRACE>;
  159. clock-names = "apb_pclk";
  160. ports {
  161. #address-cells = <1>;
  162. #size-cells = <0>;
  163. /* replicator output ports */
  164. port@0 {
  165. reg = <0>;
  166. replicator_out_port0: endpoint {
  167. remote-endpoint = <&funnel_in_port4>;
  168. };
  169. };
  170. };
  171. };
  172. soc {
  173. compatible = "simple-bus";
  174. #address-cells = <1>;
  175. #size-cells = <1>;
  176. interrupt-parent = <&intc>;
  177. ranges;
  178. timers2: timer@40000000 {
  179. #address-cells = <1>;
  180. #size-cells = <0>;
  181. compatible = "st,stm32-timers";
  182. reg = <0x40000000 0x400>;
  183. clocks = <&rcc TIM2_K>;
  184. clock-names = "int";
  185. dmas = <&dmamux1 18 0x400 0x5>,
  186. <&dmamux1 19 0x400 0x5>,
  187. <&dmamux1 20 0x400 0x5>,
  188. <&dmamux1 21 0x400 0x5>,
  189. <&dmamux1 22 0x400 0x5>;
  190. dma-names = "ch1", "ch2", "ch3", "ch4", "up";
  191. status = "disabled";
  192. pwm {
  193. compatible = "st,stm32-pwm";
  194. #pwm-cells = <3>;
  195. status = "disabled";
  196. };
  197. timer@1 {
  198. compatible = "st,stm32h7-timer-trigger";
  199. reg = <1>;
  200. status = "disabled";
  201. };
  202. };
  203. timers3: timer@40001000 {
  204. #address-cells = <1>;
  205. #size-cells = <0>;
  206. compatible = "st,stm32-timers";
  207. reg = <0x40001000 0x400>;
  208. clocks = <&rcc TIM3_K>;
  209. clock-names = "int";
  210. dmas = <&dmamux1 23 0x400 0x5>,
  211. <&dmamux1 24 0x400 0x5>,
  212. <&dmamux1 25 0x400 0x5>,
  213. <&dmamux1 26 0x400 0x5>,
  214. <&dmamux1 27 0x400 0x5>,
  215. <&dmamux1 28 0x400 0x5>;
  216. dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
  217. status = "disabled";
  218. pwm {
  219. compatible = "st,stm32-pwm";
  220. #pwm-cells = <3>;
  221. status = "disabled";
  222. };
  223. timer@2 {
  224. compatible = "st,stm32h7-timer-trigger";
  225. reg = <2>;
  226. status = "disabled";
  227. };
  228. };
  229. timers4: timer@40002000 {
  230. #address-cells = <1>;
  231. #size-cells = <0>;
  232. compatible = "st,stm32-timers";
  233. reg = <0x40002000 0x400>;
  234. clocks = <&rcc TIM4_K>;
  235. clock-names = "int";
  236. dmas = <&dmamux1 29 0x400 0x5>,
  237. <&dmamux1 30 0x400 0x5>,
  238. <&dmamux1 31 0x400 0x5>,
  239. <&dmamux1 32 0x400 0x5>;
  240. dma-names = "ch1", "ch2", "ch3", "ch4";
  241. status = "disabled";
  242. pwm {
  243. compatible = "st,stm32-pwm";
  244. #pwm-cells = <3>;
  245. status = "disabled";
  246. };
  247. timer@3 {
  248. compatible = "st,stm32h7-timer-trigger";
  249. reg = <3>;
  250. status = "disabled";
  251. };
  252. };
  253. timers5: timer@40003000 {
  254. #address-cells = <1>;
  255. #size-cells = <0>;
  256. compatible = "st,stm32-timers";
  257. reg = <0x40003000 0x400>;
  258. clocks = <&rcc TIM5_K>;
  259. clock-names = "int";
  260. dmas = <&dmamux1 55 0x400 0x5>,
  261. <&dmamux1 56 0x400 0x5>,
  262. <&dmamux1 57 0x400 0x5>,
  263. <&dmamux1 58 0x400 0x5>,
  264. <&dmamux1 59 0x400 0x5>,
  265. <&dmamux1 60 0x400 0x5>;
  266. dma-names = "ch1", "ch2", "ch3", "ch4", "up", "trig";
  267. status = "disabled";
  268. pwm {
  269. compatible = "st,stm32-pwm";
  270. #pwm-cells = <3>;
  271. status = "disabled";
  272. };
  273. timer@4 {
  274. compatible = "st,stm32h7-timer-trigger";
  275. reg = <4>;
  276. status = "disabled";
  277. };
  278. };
  279. timers6: timer@40004000 {
  280. #address-cells = <1>;
  281. #size-cells = <0>;
  282. compatible = "st,stm32-timers";
  283. reg = <0x40004000 0x400>;
  284. clocks = <&rcc TIM6_K>;
  285. clock-names = "int";
  286. dmas = <&dmamux1 69 0x400 0x5>;
  287. dma-names = "up";
  288. status = "disabled";
  289. timer@5 {
  290. compatible = "st,stm32h7-timer-trigger";
  291. reg = <5>;
  292. status = "disabled";
  293. };
  294. };
  295. timers7: timer@40005000 {
  296. #address-cells = <1>;
  297. #size-cells = <0>;
  298. compatible = "st,stm32-timers";
  299. reg = <0x40005000 0x400>;
  300. clocks = <&rcc TIM7_K>;
  301. clock-names = "int";
  302. dmas = <&dmamux1 70 0x400 0x5>;
  303. dma-names = "up";
  304. status = "disabled";
  305. timer@6 {
  306. compatible = "st,stm32h7-timer-trigger";
  307. reg = <6>;
  308. status = "disabled";
  309. };
  310. };
  311. timers12: timer@40006000 {
  312. #address-cells = <1>;
  313. #size-cells = <0>;
  314. compatible = "st,stm32-timers";
  315. reg = <0x40006000 0x400>;
  316. clocks = <&rcc TIM12_K>;
  317. clock-names = "int";
  318. status = "disabled";
  319. pwm {
  320. compatible = "st,stm32-pwm";
  321. #pwm-cells = <3>;
  322. status = "disabled";
  323. };
  324. timer@11 {
  325. compatible = "st,stm32h7-timer-trigger";
  326. reg = <11>;
  327. status = "disabled";
  328. };
  329. };
  330. timers13: timer@40007000 {
  331. #address-cells = <1>;
  332. #size-cells = <0>;
  333. compatible = "st,stm32-timers";
  334. reg = <0x40007000 0x400>;
  335. clocks = <&rcc TIM13_K>;
  336. clock-names = "int";
  337. status = "disabled";
  338. pwm {
  339. compatible = "st,stm32-pwm";
  340. #pwm-cells = <3>;
  341. status = "disabled";
  342. };
  343. timer@12 {
  344. compatible = "st,stm32h7-timer-trigger";
  345. reg = <12>;
  346. status = "disabled";
  347. };
  348. };
  349. timers14: timer@40008000 {
  350. #address-cells = <1>;
  351. #size-cells = <0>;
  352. compatible = "st,stm32-timers";
  353. reg = <0x40008000 0x400>;
  354. clocks = <&rcc TIM14_K>;
  355. clock-names = "int";
  356. status = "disabled";
  357. pwm {
  358. compatible = "st,stm32-pwm";
  359. #pwm-cells = <3>;
  360. status = "disabled";
  361. };
  362. timer@13 {
  363. compatible = "st,stm32h7-timer-trigger";
  364. reg = <13>;
  365. status = "disabled";
  366. };
  367. };
  368. lptimer1: timer@40009000 {
  369. #address-cells = <1>;
  370. #size-cells = <0>;
  371. compatible = "st,stm32-lptimer";
  372. reg = <0x40009000 0x400>;
  373. clocks = <&rcc LPTIM1_K>;
  374. clock-names = "mux";
  375. power-domains = <&pd_core>;
  376. status = "disabled";
  377. pwm {
  378. compatible = "st,stm32-pwm-lp";
  379. #pwm-cells = <3>;
  380. status = "disabled";
  381. };
  382. trigger@0 {
  383. compatible = "st,stm32-lptimer-trigger";
  384. reg = <0>;
  385. status = "disabled";
  386. };
  387. counter {
  388. compatible = "st,stm32-lptimer-counter";
  389. status = "disabled";
  390. };
  391. };
  392. spi2: spi@4000b000 {
  393. #address-cells = <1>;
  394. #size-cells = <0>;
  395. compatible = "st,stm32h7-spi";
  396. reg = <0x4000b000 0x400>;
  397. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  398. clocks = <&rcc SPI2_K>;
  399. resets = <&rcc SPI2_R>;
  400. dmas = <&dmamux1 39 0x400 0x01>,
  401. <&dmamux1 40 0x400 0x01>;
  402. dma-names = "rx", "tx";
  403. power-domains = <&pd_core>;
  404. status = "disabled";
  405. };
  406. i2s2: audio-controller@4000b000 {
  407. compatible = "st,stm32h7-i2s";
  408. #sound-dai-cells = <0>;
  409. reg = <0x4000b000 0x400>;
  410. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  411. dmas = <&dmamux1 39 0x400 0x01>,
  412. <&dmamux1 40 0x400 0x01>;
  413. dma-names = "rx", "tx";
  414. status = "disabled";
  415. };
  416. spi3: spi@4000c000 {
  417. #address-cells = <1>;
  418. #size-cells = <0>;
  419. compatible = "st,stm32h7-spi";
  420. reg = <0x4000c000 0x400>;
  421. interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
  422. clocks = <&rcc SPI3_K>;
  423. resets = <&rcc SPI3_R>;
  424. dmas = <&dmamux1 61 0x400 0x01>,
  425. <&dmamux1 62 0x400 0x01>;
  426. dma-names = "rx", "tx";
  427. power-domains = <&pd_core>;
  428. status = "disabled";
  429. };
  430. i2s3: audio-controller@4000c000 {
  431. compatible = "st,stm32h7-i2s";
  432. #sound-dai-cells = <0>;
  433. reg = <0x4000c000 0x400>;
  434. interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
  435. dmas = <&dmamux1 61 0x400 0x01>,
  436. <&dmamux1 62 0x400 0x01>;
  437. dma-names = "rx", "tx";
  438. status = "disabled";
  439. };
  440. spdifrx: audio-controller@4000d000 {
  441. compatible = "st,stm32h7-spdifrx";
  442. #sound-dai-cells = <0>;
  443. reg = <0x4000d000 0x400>;
  444. clocks = <&rcc SPDIF_K>;
  445. clock-names = "kclk";
  446. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  447. dmas = <&dmamux1 93 0x400 0x01>,
  448. <&dmamux1 94 0x400 0x01>;
  449. dma-names = "rx", "rx-ctrl";
  450. status = "disabled";
  451. };
  452. usart2: serial@4000e000 {
  453. compatible = "st,stm32h7-uart";
  454. reg = <0x4000e000 0x400>;
  455. interrupt-names = "event", "wakeup";
  456. interrupts-extended = <&intc GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>,
  457. <&exti 27 1>;
  458. clocks = <&rcc USART2_K>;
  459. resets = <&rcc USART2_R>;
  460. wakeup-source;
  461. power-domains = <&pd_core>;
  462. dmas = <&dmamux1 43 0x400 0x21>,
  463. <&dmamux1 44 0x400 0x1>;
  464. dma-names = "rx", "tx";
  465. status = "disabled";
  466. };
  467. usart3: serial@4000f000 {
  468. compatible = "st,stm32h7-uart";
  469. reg = <0x4000f000 0x400>;
  470. interrupt-names = "event", "wakeup";
  471. interrupts-extended = <&intc GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>,
  472. <&exti 28 1>;
  473. clocks = <&rcc USART3_K>;
  474. resets = <&rcc USART3_R>;
  475. wakeup-source;
  476. power-domains = <&pd_core>;
  477. dmas = <&dmamux1 45 0x400 0x21>,
  478. <&dmamux1 46 0x400 0x1>;
  479. dma-names = "rx", "tx";
  480. status = "disabled";
  481. };
  482. uart4: serial@40010000 {
  483. compatible = "st,stm32h7-uart";
  484. reg = <0x40010000 0x400>;
  485. interrupt-names = "event", "wakeup";
  486. interrupts-extended = <&intc GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
  487. <&exti 30 1>;
  488. clocks = <&rcc UART4_K>;
  489. resets = <&rcc UART4_R>;
  490. wakeup-source;
  491. power-domains = <&pd_core>;
  492. dmas = <&dmamux1 63 0x400 0x21>,
  493. <&dmamux1 64 0x400 0x1>;
  494. dma-names = "rx", "tx";
  495. status = "disabled";
  496. };
  497. uart5: serial@40011000 {
  498. compatible = "st,stm32h7-uart";
  499. reg = <0x40011000 0x400>;
  500. interrupt-names = "event", "wakeup";
  501. interrupts-extended = <&intc GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
  502. <&exti 31 1>;
  503. clocks = <&rcc UART5_K>;
  504. resets = <&rcc UART5_R>;
  505. wakeup-source;
  506. power-domains = <&pd_core>;
  507. dmas = <&dmamux1 65 0x400 0x21>,
  508. <&dmamux1 66 0x400 0x1>;
  509. dma-names = "rx", "tx";
  510. status = "disabled";
  511. };
  512. i2c1: i2c@40012000 {
  513. compatible = "st,stm32f7-i2c";
  514. reg = <0x40012000 0x400>;
  515. interrupt-names = "event", "error", "wakeup";
  516. interrupts-extended = <&intc GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>,
  517. <&intc GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
  518. <&exti 21 1>;
  519. clocks = <&rcc I2C1_K>;
  520. resets = <&rcc I2C1_R>;
  521. #address-cells = <1>;
  522. #size-cells = <0>;
  523. dmas = <&dmamux1 33 0x400 0x05>,
  524. <&dmamux1 34 0x400 0x05>;
  525. dma-names = "rx", "tx";
  526. power-domains = <&pd_core>;
  527. st,syscfg-fmp = <&syscfg 0x4 0x1>;
  528. st,syscfg-fmp-clr = <&syscfg 0x44 0x1>;
  529. status = "disabled";
  530. };
  531. i2c2: i2c@40013000 {
  532. compatible = "st,stm32f7-i2c";
  533. reg = <0x40013000 0x400>;
  534. interrupt-names = "event", "error", "wakeup";
  535. interrupts-extended = <&intc GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
  536. <&intc GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
  537. <&exti 22 1>;
  538. clocks = <&rcc I2C2_K>;
  539. resets = <&rcc I2C2_R>;
  540. #address-cells = <1>;
  541. #size-cells = <0>;
  542. dmas = <&dmamux1 35 0x400 0x05>,
  543. <&dmamux1 36 0x400 0x05>;
  544. dma-names = "rx", "tx";
  545. power-domains = <&pd_core>;
  546. st,syscfg-fmp = <&syscfg 0x4 0x2>;
  547. st,syscfg-fmp-clr = <&syscfg 0x44 0x2>;
  548. status = "disabled";
  549. };
  550. i2c3: i2c@40014000 {
  551. compatible = "st,stm32f7-i2c";
  552. reg = <0x40014000 0x400>;
  553. interrupt-names = "event", "error", "wakeup";
  554. interrupts-extended = <&intc GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
  555. <&intc GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
  556. <&exti 23 1>;
  557. clocks = <&rcc I2C3_K>;
  558. resets = <&rcc I2C3_R>;
  559. #address-cells = <1>;
  560. #size-cells = <0>;
  561. dmas = <&dmamux1 73 0x400 0x05>,
  562. <&dmamux1 74 0x400 0x05>;
  563. dma-names = "rx", "tx";
  564. power-domains = <&pd_core>;
  565. st,syscfg-fmp = <&syscfg 0x4 0x4>;
  566. st,syscfg-fmp-clr = <&syscfg 0x44 0x4>;
  567. status = "disabled";
  568. };
  569. i2c5: i2c@40015000 {
  570. compatible = "st,stm32f7-i2c";
  571. reg = <0x40015000 0x400>;
  572. interrupt-names = "event", "error", "wakeup";
  573. interrupts-extended = <&intc GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
  574. <&intc GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
  575. <&exti 25 1>;
  576. clocks = <&rcc I2C5_K>;
  577. resets = <&rcc I2C5_R>;
  578. #address-cells = <1>;
  579. #size-cells = <0>;
  580. dmas = <&dmamux1 115 0x400 0x05>,
  581. <&dmamux1 116 0x400 0x05>;
  582. dma-names = "rx", "tx";
  583. power-domains = <&pd_core>;
  584. st,syscfg-fmp = <&syscfg 0x4 0x10>;
  585. st,syscfg-fmp-clr = <&syscfg 0x44 0x10>;
  586. status = "disabled";
  587. };
  588. cec: cec@40016000 {
  589. compatible = "st,stm32-cec";
  590. reg = <0x40016000 0x400>;
  591. interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
  592. clocks = <&rcc CEC_K>, <&rcc CEC>;
  593. clock-names = "cec", "hdmi-cec";
  594. power-domains = <&pd_core>;
  595. status = "disabled";
  596. };
  597. dac: dac@40017000 {
  598. compatible = "st,stm32h7-dac-core";
  599. reg = <0x40017000 0x400>;
  600. clocks = <&rcc DAC12>;
  601. clock-names = "pclk";
  602. #address-cells = <1>;
  603. #size-cells = <0>;
  604. status = "disabled";
  605. dac1: dac@1 {
  606. compatible = "st,stm32-dac";
  607. #io-channels-cells = <1>;
  608. reg = <1>;
  609. status = "disabled";
  610. };
  611. dac2: dac@2 {
  612. compatible = "st,stm32-dac";
  613. #io-channels-cells = <1>;
  614. reg = <2>;
  615. status = "disabled";
  616. };
  617. };
  618. uart7: serial@40018000 {
  619. compatible = "st,stm32h7-uart";
  620. reg = <0x40018000 0x400>;
  621. interrupt-names = "event", "wakeup";
  622. interrupts-extended = <&intc GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>,
  623. <&exti 32 1>;
  624. clocks = <&rcc UART7_K>;
  625. resets = <&rcc UART7_R>;
  626. wakeup-source;
  627. power-domains = <&pd_core>;
  628. dmas = <&dmamux1 79 0x400 0x21>,
  629. <&dmamux1 80 0x400 0x1>;
  630. dma-names = "rx", "tx";
  631. status = "disabled";
  632. };
  633. uart8: serial@40019000 {
  634. compatible = "st,stm32h7-uart";
  635. reg = <0x40019000 0x400>;
  636. interrupt-names = "event", "wakeup";
  637. interrupts-extended = <&intc GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>,
  638. <&exti 33 1>;
  639. clocks = <&rcc UART8_K>;
  640. resets = <&rcc UART8_R>;
  641. wakeup-source;
  642. power-domains = <&pd_core>;
  643. dmas = <&dmamux1 81 0x400 0x21>,
  644. <&dmamux1 82 0x400 0x1>;
  645. dma-names = "rx", "tx";
  646. status = "disabled";
  647. };
  648. timers1: timer@44000000 {
  649. #address-cells = <1>;
  650. #size-cells = <0>;
  651. compatible = "st,stm32-timers";
  652. reg = <0x44000000 0x400>;
  653. clocks = <&rcc TIM1_K>;
  654. clock-names = "int";
  655. dmas = <&dmamux1 11 0x400 0x5>,
  656. <&dmamux1 12 0x400 0x5>,
  657. <&dmamux1 13 0x400 0x5>,
  658. <&dmamux1 14 0x400 0x5>,
  659. <&dmamux1 15 0x400 0x5>,
  660. <&dmamux1 16 0x400 0x5>,
  661. <&dmamux1 17 0x400 0x5>;
  662. dma-names = "ch1", "ch2", "ch3", "ch4",
  663. "up", "trig", "com";
  664. status = "disabled";
  665. pwm {
  666. compatible = "st,stm32-pwm";
  667. #pwm-cells = <3>;
  668. status = "disabled";
  669. };
  670. timer@0 {
  671. compatible = "st,stm32h7-timer-trigger";
  672. reg = <0>;
  673. status = "disabled";
  674. };
  675. };
  676. timers8: timer@44001000 {
  677. #address-cells = <1>;
  678. #size-cells = <0>;
  679. compatible = "st,stm32-timers";
  680. reg = <0x44001000 0x400>;
  681. clocks = <&rcc TIM8_K>;
  682. clock-names = "int";
  683. dmas = <&dmamux1 47 0x400 0x5>,
  684. <&dmamux1 48 0x400 0x5>,
  685. <&dmamux1 49 0x400 0x5>,
  686. <&dmamux1 50 0x400 0x5>,
  687. <&dmamux1 51 0x400 0x5>,
  688. <&dmamux1 52 0x400 0x5>,
  689. <&dmamux1 53 0x400 0x5>;
  690. dma-names = "ch1", "ch2", "ch3", "ch4",
  691. "up", "trig", "com";
  692. status = "disabled";
  693. pwm {
  694. compatible = "st,stm32-pwm";
  695. #pwm-cells = <3>;
  696. status = "disabled";
  697. };
  698. timer@7 {
  699. compatible = "st,stm32h7-timer-trigger";
  700. reg = <7>;
  701. status = "disabled";
  702. };
  703. };
  704. usart6: serial@44003000 {
  705. compatible = "st,stm32h7-uart";
  706. reg = <0x44003000 0x400>;
  707. interrupt-names = "event", "wakeup";
  708. interrupts-extended = <&intc GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>,
  709. <&exti 29 1>;
  710. clocks = <&rcc USART6_K>;
  711. resets = <&rcc USART6_R>;
  712. wakeup-source;
  713. power-domains = <&pd_core>;
  714. dmas = <&dmamux1 71 0x400 0x21>,
  715. <&dmamux1 72 0x400 0x1>;
  716. dma-names = "rx", "tx";
  717. status = "disabled";
  718. };
  719. spi1: spi@44004000 {
  720. #address-cells = <1>;
  721. #size-cells = <0>;
  722. compatible = "st,stm32h7-spi";
  723. reg = <0x44004000 0x400>;
  724. interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
  725. clocks = <&rcc SPI1_K>;
  726. resets = <&rcc SPI1_R>;
  727. dmas = <&dmamux1 37 0x400 0x01>,
  728. <&dmamux1 38 0x400 0x01>;
  729. dma-names = "rx", "tx";
  730. power-domains = <&pd_core>;
  731. status = "disabled";
  732. };
  733. i2s1: audio-controller@44004000 {
  734. compatible = "st,stm32h7-i2s";
  735. #sound-dai-cells = <0>;
  736. reg = <0x44004000 0x400>;
  737. interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
  738. dmas = <&dmamux1 37 0x400 0x01>,
  739. <&dmamux1 38 0x400 0x01>;
  740. dma-names = "rx", "tx";
  741. status = "disabled";
  742. };
  743. spi4: spi@44005000 {
  744. #address-cells = <1>;
  745. #size-cells = <0>;
  746. compatible = "st,stm32h7-spi";
  747. reg = <0x44005000 0x400>;
  748. interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
  749. clocks = <&rcc SPI4_K>;
  750. resets = <&rcc SPI4_R>;
  751. dmas = <&dmamux1 83 0x400 0x01>,
  752. <&dmamux1 84 0x400 0x01>;
  753. dma-names = "rx", "tx";
  754. power-domains = <&pd_core>;
  755. status = "disabled";
  756. };
  757. timers15: timer@44006000 {
  758. #address-cells = <1>;
  759. #size-cells = <0>;
  760. compatible = "st,stm32-timers";
  761. reg = <0x44006000 0x400>;
  762. clocks = <&rcc TIM15_K>;
  763. clock-names = "int";
  764. dmas = <&dmamux1 105 0x400 0x5>,
  765. <&dmamux1 106 0x400 0x5>,
  766. <&dmamux1 107 0x400 0x5>,
  767. <&dmamux1 108 0x400 0x5>;
  768. dma-names = "ch1", "up", "trig", "com";
  769. status = "disabled";
  770. pwm {
  771. compatible = "st,stm32-pwm";
  772. #pwm-cells = <3>;
  773. status = "disabled";
  774. };
  775. timer@14 {
  776. compatible = "st,stm32h7-timer-trigger";
  777. reg = <14>;
  778. status = "disabled";
  779. };
  780. };
  781. timers16: timer@44007000 {
  782. #address-cells = <1>;
  783. #size-cells = <0>;
  784. compatible = "st,stm32-timers";
  785. reg = <0x44007000 0x400>;
  786. clocks = <&rcc TIM16_K>;
  787. clock-names = "int";
  788. dmas = <&dmamux1 109 0x400 0x5>,
  789. <&dmamux1 110 0x400 0x5>;
  790. dma-names = "ch1", "up";
  791. status = "disabled";
  792. pwm {
  793. compatible = "st,stm32-pwm";
  794. #pwm-cells = <3>;
  795. status = "disabled";
  796. };
  797. timer@15 {
  798. compatible = "st,stm32h7-timer-trigger";
  799. reg = <15>;
  800. status = "disabled";
  801. };
  802. };
  803. timers17: timer@44008000 {
  804. #address-cells = <1>;
  805. #size-cells = <0>;
  806. compatible = "st,stm32-timers";
  807. reg = <0x44008000 0x400>;
  808. clocks = <&rcc TIM17_K>;
  809. clock-names = "int";
  810. dmas = <&dmamux1 111 0x400 0x5>,
  811. <&dmamux1 112 0x400 0x5>;
  812. dma-names = "ch1", "up";
  813. status = "disabled";
  814. pwm {
  815. compatible = "st,stm32-pwm";
  816. #pwm-cells = <3>;
  817. status = "disabled";
  818. };
  819. timer@16 {
  820. compatible = "st,stm32h7-timer-trigger";
  821. reg = <16>;
  822. status = "disabled";
  823. };
  824. };
  825. spi5: spi@44009000 {
  826. #address-cells = <1>;
  827. #size-cells = <0>;
  828. compatible = "st,stm32h7-spi";
  829. reg = <0x44009000 0x400>;
  830. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  831. clocks = <&rcc SPI5_K>;
  832. resets = <&rcc SPI5_R>;
  833. dmas = <&dmamux1 85 0x400 0x01>,
  834. <&dmamux1 86 0x400 0x01>;
  835. dma-names = "rx", "tx";
  836. power-domains = <&pd_core>;
  837. status = "disabled";
  838. };
  839. sai1: sai@4400a000 {
  840. compatible = "st,stm32h7-sai";
  841. #address-cells = <1>;
  842. #size-cells = <1>;
  843. ranges = <0 0x4400a000 0x400>;
  844. reg = <0x4400a000 0x4>;
  845. interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
  846. resets = <&rcc SAI1_R>;
  847. status = "disabled";
  848. sai1a: audio-controller@4400a004 {
  849. #sound-dai-cells = <0>;
  850. compatible = "st,stm32-sai-sub-a";
  851. reg = <0x4 0x1c>;
  852. clocks = <&rcc SAI1_K>;
  853. clock-names = "sai_ck";
  854. dmas = <&dmamux1 87 0x400 0x01>;
  855. status = "disabled";
  856. };
  857. sai1b: audio-controller@4400a024 {
  858. #sound-dai-cells = <0>;
  859. compatible = "st,stm32-sai-sub-b";
  860. reg = <0x24 0x1c>;
  861. clocks = <&rcc SAI1_K>;
  862. clock-names = "sai_ck";
  863. dmas = <&dmamux1 88 0x400 0x01>;
  864. status = "disabled";
  865. };
  866. };
  867. sai2: sai@4400b000 {
  868. compatible = "st,stm32h7-sai";
  869. #address-cells = <1>;
  870. #size-cells = <1>;
  871. ranges = <0 0x4400b000 0x400>;
  872. reg = <0x4400b000 0x4>;
  873. interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
  874. resets = <&rcc SAI2_R>;
  875. status = "disabled";
  876. sai2a: audio-controller@4400b004 {
  877. #sound-dai-cells = <0>;
  878. compatible = "st,stm32-sai-sub-a";
  879. reg = <0x4 0x1c>;
  880. clocks = <&rcc SAI2_K>;
  881. clock-names = "sai_ck";
  882. dmas = <&dmamux1 89 0x400 0x01>;
  883. status = "disabled";
  884. };
  885. sai2b: audio-controller@4400b024 {
  886. #sound-dai-cells = <0>;
  887. compatible = "st,stm32-sai-sub-b";
  888. reg = <0x24 0x1c>;
  889. clocks = <&rcc SAI2_K>;
  890. clock-names = "sai_ck";
  891. dmas = <&dmamux1 90 0x400 0x01>;
  892. status = "disabled";
  893. };
  894. };
  895. sai3: sai@4400c000 {
  896. compatible = "st,stm32h7-sai";
  897. #address-cells = <1>;
  898. #size-cells = <1>;
  899. ranges = <0 0x4400c000 0x400>;
  900. reg = <0x4400c000 0x4>;
  901. interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
  902. resets = <&rcc SAI3_R>;
  903. status = "disabled";
  904. sai3a: audio-controller@4400c004 {
  905. #sound-dai-cells = <0>;
  906. compatible = "st,stm32-sai-sub-a";
  907. reg = <0x04 0x1c>;
  908. clocks = <&rcc SAI3_K>;
  909. clock-names = "sai_ck";
  910. dmas = <&dmamux1 113 0x400 0x01>;
  911. status = "disabled";
  912. };
  913. sai3b: audio-controller@4400c024 {
  914. #sound-dai-cells = <0>;
  915. compatible = "st,stm32-sai-sub-b";
  916. reg = <0x24 0x1c>;
  917. clocks = <&rcc SAI3_K>;
  918. clock-names = "sai_ck";
  919. dmas = <&dmamux1 114 0x400 0x01>;
  920. status = "disabled";
  921. };
  922. };
  923. dfsdm: dfsdm@4400d000 {
  924. compatible = "st,stm32mp1-dfsdm";
  925. reg = <0x4400d000 0x800>;
  926. clocks = <&rcc DFSDM_K>;
  927. clock-names = "dfsdm";
  928. #address-cells = <1>;
  929. #size-cells = <0>;
  930. status = "disabled";
  931. dfsdm0: filter@0 {
  932. compatible = "st,stm32-dfsdm-adc";
  933. #io-channel-cells = <1>;
  934. reg = <0>;
  935. interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
  936. dmas = <&dmamux1 101 0x400 0x01>;
  937. dma-names = "rx";
  938. status = "disabled";
  939. };
  940. dfsdm1: filter@1 {
  941. compatible = "st,stm32-dfsdm-adc";
  942. #io-channel-cells = <1>;
  943. reg = <1>;
  944. interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
  945. dmas = <&dmamux1 102 0x400 0x01>;
  946. dma-names = "rx";
  947. status = "disabled";
  948. };
  949. dfsdm2: filter@2 {
  950. compatible = "st,stm32-dfsdm-adc";
  951. #io-channel-cells = <1>;
  952. reg = <2>;
  953. interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
  954. dmas = <&dmamux1 103 0x400 0x01>;
  955. dma-names = "rx";
  956. status = "disabled";
  957. };
  958. dfsdm3: filter@3 {
  959. compatible = "st,stm32-dfsdm-adc";
  960. #io-channel-cells = <1>;
  961. reg = <3>;
  962. interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
  963. dmas = <&dmamux1 104 0x400 0x01>;
  964. dma-names = "rx";
  965. status = "disabled";
  966. };
  967. dfsdm4: filter@4 {
  968. compatible = "st,stm32-dfsdm-adc";
  969. #io-channel-cells = <1>;
  970. reg = <4>;
  971. interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
  972. dmas = <&dmamux1 91 0x400 0x01>;
  973. dma-names = "rx";
  974. status = "disabled";
  975. };
  976. dfsdm5: filter@5 {
  977. compatible = "st,stm32-dfsdm-adc";
  978. #io-channel-cells = <1>;
  979. reg = <5>;
  980. interrupts = <GIC_SPI 126 IRQ_TYPE_LEVEL_HIGH>;
  981. dmas = <&dmamux1 92 0x400 0x01>;
  982. dma-names = "rx";
  983. status = "disabled";
  984. };
  985. };
  986. m_can1: can@4400e000 {
  987. compatible = "bosch,m_can";
  988. reg = <0x4400e000 0x400>, <0x44011000 0x1400>;
  989. reg-names = "m_can", "message_ram";
  990. interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
  991. <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
  992. interrupt-names = "int0", "int1";
  993. clocks = <&rcc FDCAN>, <&rcc FDCAN_K>;
  994. clock-names = "hclk", "cclk";
  995. bosch,mram-cfg = <0x0 0 0 32 0 0 2 2>;
  996. status = "disabled";
  997. };
  998. m_can2: can@4400f000 {
  999. compatible = "bosch,m_can";
  1000. reg = <0x4400f000 0x400>, <0x44011000 0x2800>;
  1001. reg-names = "m_can", "message_ram";
  1002. interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
  1003. <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
  1004. interrupt-names = "int0", "int1";
  1005. clocks = <&rcc FDCAN>, <&rcc FDCAN_K>;
  1006. clock-names = "hclk", "cclk";
  1007. bosch,mram-cfg = <0x1400 0 0 32 0 0 2 2>;
  1008. status = "disabled";
  1009. };
  1010. dma1: dma@48000000 {
  1011. compatible = "st,stm32-dma";
  1012. reg = <0x48000000 0x400>;
  1013. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
  1014. <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
  1015. <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
  1016. <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
  1017. <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
  1018. <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
  1019. <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
  1020. <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
  1021. clocks = <&rcc DMA1>;
  1022. resets = <&rcc DMA1_R>;
  1023. #dma-cells = <4>;
  1024. st,mem2mem;
  1025. dma-requests = <8>;
  1026. dmas = <&mdma1 0 0x3 0x1200000a 0x48000008 0x00000020 1>,
  1027. <&mdma1 1 0x3 0x1200000a 0x48000008 0x00000800 1>,
  1028. <&mdma1 2 0x3 0x1200000a 0x48000008 0x00200000 1>,
  1029. <&mdma1 3 0x3 0x1200000a 0x48000008 0x08000000 1>,
  1030. <&mdma1 4 0x3 0x1200000a 0x4800000C 0x00000020 1>,
  1031. <&mdma1 5 0x3 0x1200000a 0x4800000C 0x00000800 1>,
  1032. <&mdma1 6 0x3 0x1200000a 0x4800000C 0x00200000 1>,
  1033. <&mdma1 7 0x3 0x1200000a 0x4800000C 0x08000000 1>;
  1034. dma-names = "ch0", "ch1", "ch2", "ch3", "ch4", "ch5", "ch6", "ch7";
  1035. };
  1036. dma2: dma@48001000 {
  1037. compatible = "st,stm32-dma";
  1038. reg = <0x48001000 0x400>;
  1039. interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
  1040. <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
  1041. <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>,
  1042. <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
  1043. <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>,
  1044. <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
  1045. <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>,
  1046. <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
  1047. clocks = <&rcc DMA2>;
  1048. resets = <&rcc DMA2_R>;
  1049. #dma-cells = <4>;
  1050. st,mem2mem;
  1051. dma-requests = <8>;
  1052. dmas = <&mdma1 8 0x3 0x1200000a 0x48001008 0x00000020 1>,
  1053. <&mdma1 9 0x3 0x1200000a 0x48001008 0x00000800 1>,
  1054. <&mdma1 10 0x3 0x1200000a 0x48001008 0x00200000 1>,
  1055. <&mdma1 11 0x3 0x1200000a 0x48001008 0x08000000 1>,
  1056. <&mdma1 12 0x3 0x1200000a 0x4800100C 0x00000020 1>,
  1057. <&mdma1 13 0x3 0x1200000a 0x4800100C 0x00000800 1>,
  1058. <&mdma1 14 0x3 0x1200000a 0x4800100C 0x00200000 1>,
  1059. <&mdma1 15 0x3 0x1200000a 0x4800100C 0x08000000 1>;
  1060. dma-names = "ch0", "ch1", "ch2", "ch3", "ch4", "ch5", "ch6", "ch7";
  1061. };
  1062. dmamux1: dma-router@48002000 {
  1063. compatible = "st,stm32h7-dmamux";
  1064. reg = <0x48002000 0x1c>;
  1065. #dma-cells = <3>;
  1066. dma-requests = <128>;
  1067. dma-masters = <&dma1 &dma2>;
  1068. dma-channels = <16>;
  1069. clocks = <&rcc DMAMUX>;
  1070. resets = <&rcc DMAMUX_R>;
  1071. };
  1072. adc: adc@48003000 {
  1073. compatible = "st,stm32mp1-adc-core";
  1074. reg = <0x48003000 0x400>;
  1075. interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
  1076. <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
  1077. clocks = <&rcc ADC12>, <&rcc ADC12_K>;
  1078. clock-names = "bus", "adc";
  1079. interrupt-controller;
  1080. st,syscfg-vbooster = <&syscfg 0x4 0x100>;
  1081. st,syscfg-vbooster-clr = <&syscfg 0x44 0x100>;
  1082. st,syscfg-anaswvdd = <&syscfg 0x4 0x200>;
  1083. st,syscfg-anaswvdd-clr = <&syscfg 0x44 0x200>;
  1084. #interrupt-cells = <1>;
  1085. #address-cells = <1>;
  1086. #size-cells = <0>;
  1087. status = "disabled";
  1088. adc1: adc@0 {
  1089. compatible = "st,stm32mp1-adc";
  1090. #io-channel-cells = <1>;
  1091. reg = <0x0>;
  1092. interrupt-parent = <&adc>;
  1093. interrupts = <0>;
  1094. dmas = <&dmamux1 9 0x400 0x05>;
  1095. dma-names = "rx";
  1096. status = "disabled";
  1097. };
  1098. adc2: adc@100 {
  1099. compatible = "st,stm32mp1-adc";
  1100. #io-channel-cells = <1>;
  1101. reg = <0x100>;
  1102. interrupt-parent = <&adc>;
  1103. interrupts = <1>;
  1104. dmas = <&dmamux1 10 0x400 0x05>;
  1105. dma-names = "rx";
  1106. /* temperature sensor */
  1107. st,adc-channels = <12>;
  1108. st,min-sample-time-nsecs = <10000>;
  1109. status = "disabled";
  1110. };
  1111. jadc1: jadc@0 {
  1112. compatible = "st,stm32mp1-adc";
  1113. st,injected;
  1114. #io-channel-cells = <1>;
  1115. reg = <0x0>;
  1116. interrupt-parent = <&adc>;
  1117. interrupts = <3>;
  1118. status = "disabled";
  1119. };
  1120. jadc2: jadc@100 {
  1121. compatible = "st,stm32mp1-adc";
  1122. st,injected;
  1123. #io-channel-cells = <1>;
  1124. reg = <0x100>;
  1125. interrupt-parent = <&adc>;
  1126. interrupts = <4>;
  1127. /* temperature sensor */
  1128. st,adc-channels = <12>;
  1129. st,min-sample-time-nsecs = <10000>;
  1130. status = "disabled";
  1131. };
  1132. adc_temp: temp {
  1133. compatible = "st,stm32mp1-adc-temp";
  1134. io-channels = <&adc2 12>;
  1135. nvmem-cells = <&ts_cal1>, <&ts_cal2>;
  1136. nvmem-cell-names = "ts_cal1", "ts_cal2";
  1137. #io-channel-cells = <0>;
  1138. #thermal-sensor-cells = <0>;
  1139. status = "disabled";
  1140. };
  1141. };
  1142. sdmmc3: sdmmc@48004000 {
  1143. compatible = "arm,pl18x", "arm,primecell";
  1144. arm,primecell-periphid = <0x00253180>;
  1145. reg = <0x48004000 0x400>, <0x48005000 0x400>;
  1146. interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
  1147. interrupt-names = "cmd_irq";
  1148. clocks = <&rcc SDMMC3_K>;
  1149. clock-names = "apb_pclk";
  1150. resets = <&rcc SDMMC3_R>;
  1151. cap-sd-highspeed;
  1152. cap-mmc-highspeed;
  1153. max-frequency = <120000000>;
  1154. status = "disabled";
  1155. };
  1156. usbotg_hs: usb-otg@49000000 {
  1157. compatible = "st,stm32mp1-hsotg", "snps,dwc2";
  1158. reg = <0x49000000 0x10000>;
  1159. clocks = <&rcc USBO_K>;
  1160. clock-names = "otg";
  1161. resets = <&rcc USBO_R>;
  1162. reset-names = "dwc2";
  1163. interrupts-extended = <&intc GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
  1164. <&exti 44 1>;
  1165. interrupt-names = "event", "wakeup";
  1166. g-rx-fifo-size = <256>;
  1167. g-np-tx-fifo-size = <32>;
  1168. g-tx-fifo-size = <128 128 64 64 64 64 32 32>;
  1169. dr_mode = "otg";
  1170. usb33d-supply = <&usb33>;
  1171. power-domains = <&pd_core>;
  1172. wakeup-source;
  1173. status = "disabled";
  1174. };
  1175. hsem: hwspinlock@4c000000 {
  1176. compatible = "st,stm32-hwspinlock";
  1177. #hwlock-cells = <1>;
  1178. reg = <0x4c000000 0x400>;
  1179. clocks = <&rcc HSEM>;
  1180. clock-names = "hsem";
  1181. status = "okay";
  1182. };
  1183. ipcc: mailbox@4c001000 {
  1184. compatible = "st,stm32mp1-ipcc";
  1185. #mbox-cells = <1>;
  1186. reg = <0x4c001000 0x400>;
  1187. st,proc-id = <0>;
  1188. interrupts-extended =
  1189. <&intc GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
  1190. <&intc GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
  1191. <&exti 61 1>;
  1192. interrupt-names = "rx", "tx", "wakeup";
  1193. clocks = <&rcc IPCC>;
  1194. wakeup-source;
  1195. power-domains = <&pd_core>;
  1196. status = "disabled";
  1197. };
  1198. dcmi: dcmi@4c006000 {
  1199. compatible = "st,stm32-dcmi";
  1200. reg = <0x4c006000 0x400>;
  1201. interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
  1202. resets = <&rcc CAMITF_R>;
  1203. clocks = <&rcc DCMI>;
  1204. clock-names = "mclk";
  1205. dmas = <&dmamux1 75 0x400 0x1d>;
  1206. dma-names = "tx";
  1207. status = "disabled";
  1208. };
  1209. rcc: rcc@50000000 {
  1210. compatible = "st,stm32mp1-rcc", "syscon";
  1211. reg = <0x50000000 0x1000>;
  1212. #clock-cells = <1>;
  1213. #reset-cells = <1>;
  1214. interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
  1215. };
  1216. pwr: pwr@50001000 {
  1217. compatible = "st,stm32mp1-pwr", "syscon", "simple-mfd";
  1218. reg = <0x50001000 0x400>;
  1219. interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
  1220. interrupt-controller;
  1221. #interrupt-cells = <3>;
  1222. wakeup-gpios = <&gpioa 0 GPIO_ACTIVE_HIGH>,
  1223. <&gpioa 2 GPIO_ACTIVE_HIGH>,
  1224. <&gpioc 13 GPIO_ACTIVE_HIGH>,
  1225. <&gpioi 8 GPIO_ACTIVE_HIGH>,
  1226. <&gpioi 11 GPIO_ACTIVE_HIGH>,
  1227. <&gpioc 1 GPIO_ACTIVE_HIGH>;
  1228. pwr-regulators {
  1229. compatible = "st,stm32mp1,pwr-reg";
  1230. st,tzcr = <&rcc 0x0 0x1>;
  1231. reg11: reg11 {
  1232. regulator-name = "reg11";
  1233. regulator-min-microvolt = <1100000>;
  1234. regulator-max-microvolt = <1100000>;
  1235. };
  1236. reg18: reg18 {
  1237. regulator-name = "reg18";
  1238. regulator-min-microvolt = <1800000>;
  1239. regulator-max-microvolt = <1800000>;
  1240. };
  1241. usb33: usb33 {
  1242. regulator-name = "usb33";
  1243. regulator-min-microvolt = <3300000>;
  1244. regulator-max-microvolt = <3300000>;
  1245. };
  1246. };
  1247. };
  1248. exti: interrupt-controller@5000d000 {
  1249. compatible = "st,stm32mp1-exti", "syscon";
  1250. interrupt-controller;
  1251. #interrupt-cells = <2>;
  1252. reg = <0x5000d000 0x400>;
  1253. hwlocks = <&hsem 1>;
  1254. /* exti_pwr is an extra interrupt controller used for
  1255. * EXTI 55 to 60. It's mapped on pwr interrupt
  1256. * controller.
  1257. */
  1258. exti_pwr: exti-pwr {
  1259. interrupt-controller;
  1260. #interrupt-cells = <2>;
  1261. interrupt-parent = <&pwr>;
  1262. st,irq-number = <6>;
  1263. };
  1264. };
  1265. syscfg: syscon@50020000 {
  1266. compatible = "st,stm32mp157-syscfg", "syscon";
  1267. reg = <0x50020000 0x400>;
  1268. clocks = <&rcc SYSCFG>;
  1269. };
  1270. lptimer2: timer@50021000 {
  1271. #address-cells = <1>;
  1272. #size-cells = <0>;
  1273. compatible = "st,stm32-lptimer";
  1274. reg = <0x50021000 0x400>;
  1275. clocks = <&rcc LPTIM2_K>;
  1276. clock-names = "mux";
  1277. power-domains = <&pd_core>;
  1278. status = "disabled";
  1279. pwm {
  1280. compatible = "st,stm32-pwm-lp";
  1281. #pwm-cells = <3>;
  1282. status = "disabled";
  1283. };
  1284. trigger@1 {
  1285. compatible = "st,stm32-lptimer-trigger";
  1286. reg = <1>;
  1287. status = "disabled";
  1288. };
  1289. counter {
  1290. compatible = "st,stm32-lptimer-counter";
  1291. status = "disabled";
  1292. };
  1293. };
  1294. lptimer3: timer@50022000 {
  1295. #address-cells = <1>;
  1296. #size-cells = <0>;
  1297. compatible = "st,stm32-lptimer";
  1298. reg = <0x50022000 0x400>;
  1299. clocks = <&rcc LPTIM3_K>;
  1300. clock-names = "mux";
  1301. power-domains = <&pd_core>;
  1302. status = "disabled";
  1303. pwm {
  1304. compatible = "st,stm32-pwm-lp";
  1305. #pwm-cells = <3>;
  1306. status = "disabled";
  1307. };
  1308. trigger@2 {
  1309. compatible = "st,stm32-lptimer-trigger";
  1310. reg = <2>;
  1311. status = "disabled";
  1312. };
  1313. };
  1314. lptimer4: timer@50023000 {
  1315. compatible = "st,stm32-lptimer";
  1316. reg = <0x50023000 0x400>;
  1317. clocks = <&rcc LPTIM4_K>;
  1318. clock-names = "mux";
  1319. power-domains = <&pd_core>;
  1320. status = "disabled";
  1321. pwm {
  1322. compatible = "st,stm32-pwm-lp";
  1323. #pwm-cells = <3>;
  1324. status = "disabled";
  1325. };
  1326. };
  1327. lptimer5: timer@50024000 {
  1328. compatible = "st,stm32-lptimer";
  1329. reg = <0x50024000 0x400>;
  1330. clocks = <&rcc LPTIM5_K>;
  1331. clock-names = "mux";
  1332. power-domains = <&pd_core>;
  1333. status = "disabled";
  1334. pwm {
  1335. compatible = "st,stm32-pwm-lp";
  1336. #pwm-cells = <3>;
  1337. status = "disabled";
  1338. };
  1339. };
  1340. vrefbuf: vrefbuf@50025000 {
  1341. compatible = "st,stm32-vrefbuf";
  1342. reg = <0x50025000 0x8>;
  1343. regulator-min-microvolt = <1500000>;
  1344. regulator-max-microvolt = <2500000>;
  1345. clocks = <&rcc VREF>;
  1346. status = "disabled";
  1347. };
  1348. sai4: sai@50027000 {
  1349. compatible = "st,stm32h7-sai";
  1350. #address-cells = <1>;
  1351. #size-cells = <1>;
  1352. ranges = <0 0x50027000 0x400>;
  1353. reg = <0x50027000 0x4>;
  1354. interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>;
  1355. resets = <&rcc SAI4_R>;
  1356. status = "disabled";
  1357. sai4a: audio-controller@50027004 {
  1358. #sound-dai-cells = <0>;
  1359. compatible = "st,stm32-sai-sub-a";
  1360. reg = <0x04 0x1c>;
  1361. clocks = <&rcc SAI4_K>;
  1362. clock-names = "sai_ck";
  1363. dmas = <&dmamux1 99 0x400 0x01>;
  1364. status = "disabled";
  1365. };
  1366. sai4b: audio-controller@50027024 {
  1367. #sound-dai-cells = <0>;
  1368. compatible = "st,stm32-sai-sub-b";
  1369. reg = <0x24 0x1c>;
  1370. clocks = <&rcc SAI4_K>;
  1371. clock-names = "sai_ck";
  1372. dmas = <&dmamux1 100 0x400 0x01>;
  1373. status = "disabled";
  1374. };
  1375. };
  1376. dts: thermal@50028000 {
  1377. compatible = "st,stm32-thermal";
  1378. reg = <0x50028000 0x100>;
  1379. interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
  1380. clocks = <&rcc TMPSENS>;
  1381. clock-names = "pclk";
  1382. #thermal-sensor-cells = <0>;
  1383. status = "disabled";
  1384. };
  1385. hdp: hdp@5002a000 {
  1386. compatible = "st,stm32mp1-hdp";
  1387. reg = <0x5002a000 0x400>;
  1388. clocks = <&rcc HDP>;
  1389. clock-names = "hdp";
  1390. status = "disabled";
  1391. };
  1392. funnel: funnel@50091000 {
  1393. compatible = "arm,coresight-funnel", "arm,primecell";
  1394. reg = <0x50091000 0x1000>;
  1395. clocks = <&rcc CK_TRACE>;
  1396. clock-names = "apb_pclk";
  1397. ports {
  1398. #address-cells = <1>;
  1399. #size-cells = <0>;
  1400. /* funnel input ports */
  1401. port@0 {
  1402. reg = <0>;
  1403. funnel_in_port0: endpoint {
  1404. slave-mode;
  1405. remote-endpoint = <&stm_out_port>;
  1406. };
  1407. };
  1408. port@1 {
  1409. reg = <1>;
  1410. funnel_in_port1: endpoint {
  1411. slave-mode; /* A7-1 input */
  1412. remote-endpoint = <&etm1_out_port>;
  1413. };
  1414. };
  1415. port@2 {
  1416. reg = <2>;
  1417. funnel_in_port2: endpoint {
  1418. slave-mode; /* A7-2 input */
  1419. remote-endpoint = <&etm2_out_port>;
  1420. };
  1421. };
  1422. port@4 {
  1423. reg = <4>;
  1424. funnel_in_port4: endpoint {
  1425. slave-mode; /* REPLICATOR input */
  1426. remote-endpoint = <&replicator_out_port0>;
  1427. };
  1428. };
  1429. port@5 {
  1430. reg = <0>;
  1431. funnel_out_port0: endpoint {
  1432. remote-endpoint = <&etf_in_port>;
  1433. };
  1434. };
  1435. };
  1436. };
  1437. etf: etf@50092000 {
  1438. compatible = "arm,coresight-tmc", "arm,primecell";
  1439. reg = <0x50092000 0x1000>;
  1440. clocks = <&rcc CK_TRACE>;
  1441. clock-names = "apb_pclk";
  1442. ports {
  1443. #address-cells = <1>;
  1444. #size-cells = <0>;
  1445. port@0 {
  1446. reg = <0>;
  1447. etf_in_port: endpoint {
  1448. slave-mode;
  1449. remote-endpoint = <&funnel_out_port0>;
  1450. };
  1451. };
  1452. port@1 {
  1453. reg = <0>;
  1454. etf_out_port: endpoint {
  1455. remote-endpoint = <&tpiu_in_port>;
  1456. };
  1457. };
  1458. };
  1459. };
  1460. tpiu: tpiu@50093000 {
  1461. compatible = "arm,coresight-tpiu", "arm,primecell";
  1462. reg = <0x50093000 0x1000>;
  1463. clocks = <&rcc CK_TRACE>;
  1464. clock-names = "apb_pclk";
  1465. port {
  1466. tpiu_in_port: endpoint {
  1467. slave-mode;
  1468. remote-endpoint = <&etf_out_port>;
  1469. };
  1470. };
  1471. };
  1472. stm: stm@500a0000 {
  1473. compatible = "arm,coresight-stm", "arm,primecell";
  1474. reg = <0x500a0000 0x1000>, <0x90000000 0x1000000>,
  1475. <0x50094000 0x1000>;
  1476. reg-names = "stm-base", "stm-stimulus-base", "cti-base";
  1477. clocks = <&rcc CK_TRACE>;
  1478. clock-names = "apb_pclk";
  1479. ports {
  1480. #address-cells = <1>;
  1481. #size-cells = <0>;
  1482. port@0 {
  1483. reg = <0>;
  1484. stm_out_port: endpoint {
  1485. remote-endpoint = <&funnel_in_port0>;
  1486. };
  1487. };
  1488. };
  1489. };
  1490. /* Cortex A7-1 */
  1491. etm1: etm@500dc000 {
  1492. compatible = "arm,coresight-etm3x", "arm,primecell";
  1493. reg = <0x500dc000 0x1000>;
  1494. cpu = <&cpu0>;
  1495. clocks = <&rcc CK_TRACE>;
  1496. clock-names = "apb_pclk";
  1497. port {
  1498. etm1_out_port: endpoint {
  1499. remote-endpoint = <&funnel_in_port1>;
  1500. };
  1501. };
  1502. };
  1503. /* Cortex A7-2 */
  1504. etm2: etm@500dd000 {
  1505. compatible = "arm,coresight-etm3x", "arm,primecell";
  1506. reg = <0x500dd000 0x1000>;
  1507. cpu = <&cpu1>;
  1508. clocks = <&rcc CK_TRACE>;
  1509. clock-names = "apb_pclk";
  1510. port {
  1511. etm2_out_port: endpoint {
  1512. remote-endpoint = <&funnel_in_port2>;
  1513. };
  1514. };
  1515. };
  1516. cryp1: cryp@54001000 {
  1517. compatible = "st,stm32mp1-cryp";
  1518. reg = <0x54001000 0x400>;
  1519. interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
  1520. clocks = <&rcc CRYP1>;
  1521. resets = <&rcc CRYP1_R>;
  1522. status = "disabled";
  1523. };
  1524. hash1: hash@54002000 {
  1525. compatible = "st,stm32f756-hash";
  1526. reg = <0x54002000 0x400>;
  1527. interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
  1528. clocks = <&rcc HASH1>;
  1529. resets = <&rcc HASH1_R>;
  1530. dmas = <&mdma1 31 0x2 0x1000A02 0x0 0x0 0x0>;
  1531. dma-names = "in";
  1532. dma-maxburst = <2>;
  1533. status = "disabled";
  1534. };
  1535. rng1: rng@54003000 {
  1536. compatible = "st,stm32-rng";
  1537. reg = <0x54003000 0x400>;
  1538. clocks = <&rcc RNG1_K>;
  1539. resets = <&rcc RNG1_R>;
  1540. status = "disabled";
  1541. };
  1542. mdma1: dma@58000000 {
  1543. compatible = "st,stm32h7-mdma";
  1544. reg = <0x58000000 0x1000>;
  1545. interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
  1546. clocks = <&rcc MDMA>;
  1547. resets = <&rcc MDMA_R>;
  1548. #dma-cells = <6>;
  1549. dma-channels = <32>;
  1550. dma-requests = <48>;
  1551. };
  1552. fmc: nand-controller@58002000 {
  1553. compatible = "st,stm32mp15-fmc2";
  1554. reg = <0x58002000 0x1000>,
  1555. <0x80000000 0x1000>,
  1556. <0x88010000 0x1000>,
  1557. <0x88020000 0x1000>,
  1558. <0x81000000 0x1000>,
  1559. <0x89010000 0x1000>,
  1560. <0x89020000 0x1000>;
  1561. interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
  1562. dmas = <&mdma1 20 0x2 0x12000A02 0x0 0x0 0>,
  1563. <&mdma1 20 0x2 0x12000A08 0x0 0x0 0>,
  1564. <&mdma1 21 0x2 0x12000A0A 0x0 0x0 0>;
  1565. dma-names = "tx", "rx", "ecc";
  1566. clocks = <&rcc FMC_K>;
  1567. resets = <&rcc FMC_R>;
  1568. status = "disabled";
  1569. };
  1570. qspi: spi@58003000 {
  1571. compatible = "st,stm32f469-qspi";
  1572. reg = <0x58003000 0x1000>, <0x70000000 0x10000000>;
  1573. reg-names = "qspi", "qspi_mm";
  1574. interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
  1575. dmas = <&mdma1 22 0x2 0x100002 0x0 0x0 0x0>,
  1576. <&mdma1 22 0x2 0x100008 0x0 0x0 0x0>;
  1577. dma-names = "tx", "rx";
  1578. clocks = <&rcc QSPI_K>;
  1579. resets = <&rcc QSPI_R>;
  1580. status = "disabled";
  1581. };
  1582. sdmmc1: sdmmc@58005000 {
  1583. compatible = "arm,pl18x", "arm,primecell";
  1584. arm,primecell-periphid = <0x00253180>;
  1585. reg = <0x58005000 0x1000>, <0x58006000 0x1000>;
  1586. interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
  1587. interrupt-names = "cmd_irq";
  1588. clocks = <&rcc SDMMC1_K>;
  1589. clock-names = "apb_pclk";
  1590. resets = <&rcc SDMMC1_R>;
  1591. cap-sd-highspeed;
  1592. cap-mmc-highspeed;
  1593. max-frequency = <120000000>;
  1594. status = "disabled";
  1595. };
  1596. sdmmc2: sdmmc@58007000 {
  1597. compatible = "arm,pl18x", "arm,primecell";
  1598. arm,primecell-periphid = <0x00253180>;
  1599. reg = <0x58007000 0x1000>, <0x58008000 0x1000>;
  1600. interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
  1601. interrupt-names = "cmd_irq";
  1602. clocks = <&rcc SDMMC2_K>;
  1603. clock-names = "apb_pclk";
  1604. resets = <&rcc SDMMC2_R>;
  1605. cap-sd-highspeed;
  1606. cap-mmc-highspeed;
  1607. max-frequency = <120000000>;
  1608. status = "disabled";
  1609. };
  1610. crc1: crc@58009000 {
  1611. compatible = "st,stm32f7-crc";
  1612. reg = <0x58009000 0x400>;
  1613. clocks = <&rcc CRC1>;
  1614. status = "disabled";
  1615. };
  1616. stmmac_axi_config_0: stmmac-axi-config {
  1617. snps,wr_osr_lmt = <0x7>;
  1618. snps,rd_osr_lmt = <0x7>;
  1619. snps,blen = <0 0 0 0 16 8 4>;
  1620. };
  1621. ethernet0: ethernet@5800a000 {
  1622. compatible = "st,stm32mp1-dwmac", "snps,dwmac-4.20a";
  1623. reg = <0x5800a000 0x2000>;
  1624. reg-names = "stmmaceth";
  1625. interrupts-extended = <&intc GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>,
  1626. <&intc GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>,
  1627. <&exti 70 1>;
  1628. interrupt-names = "macirq",
  1629. "eth_wake_irq",
  1630. "stm32_pwr_wakeup";
  1631. clock-names = "stmmaceth",
  1632. "mac-clk-tx",
  1633. "mac-clk-rx",
  1634. "eth-ck", //custom
  1635. "syscfg-clk", //custom
  1636. "ethstp";
  1637. clocks = <&rcc ETHMAC>,
  1638. <&rcc ETHTX>,
  1639. <&rcc ETHRX>,
  1640. <&rcc ETHCK_K>, //custom
  1641. <&rcc SYSCFG>, //custom
  1642. <&rcc ETHSTP>;
  1643. st,syscon = <&syscfg 0x4>;
  1644. snps,mixed-burst;
  1645. snps,pbl = <2>;
  1646. snps,en-tx-lpi-clockgating;
  1647. snps,axi-config = <&stmmac_axi_config_0>;
  1648. snps,tso;
  1649. power-domains = <&pd_core>;
  1650. status = "disabled";
  1651. };
  1652. usbh_ohci: usbh-ohci@5800c000 {
  1653. compatible = "generic-ohci";
  1654. reg = <0x5800c000 0x1000>;
  1655. clocks = <&rcc USBH>;
  1656. resets = <&rcc USBH_R>;
  1657. interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
  1658. status = "disabled";
  1659. };
  1660. usbh_ehci: usbh-ehci@5800d000 {
  1661. compatible = "generic-ehci";
  1662. reg = <0x5800d000 0x1000>;
  1663. clocks = <&rcc USBH>;
  1664. resets = <&rcc USBH_R>;
  1665. interrupts-extended = <&intc GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>,
  1666. <&exti 43 1>;
  1667. interrupt-names = "event", "wakeup";
  1668. companion = <&usbh_ohci>;
  1669. power-domains = <&pd_core>;
  1670. wakeup-source;
  1671. status = "disabled";
  1672. };
  1673. gpu: gpu@59000000 {
  1674. compatible = "vivante,gc";
  1675. reg = <0x59000000 0x800>;
  1676. interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
  1677. clocks = <&rcc GPU>, <&rcc GPU_K>;
  1678. clock-names = "bus" ,"core";
  1679. resets = <&rcc GPU_R>;
  1680. status = "disabled";
  1681. };
  1682. dsi: dsi@5a000000 {
  1683. compatible = "st,stm32-dsi";
  1684. reg = <0x5a000000 0x800>;
  1685. clocks = <&rcc DSI_K>, <&clk_hse>, <&rcc DSI_PX>;
  1686. clock-names = "pclk", "ref", "px_clk";
  1687. resets = <&rcc DSI_R>;
  1688. reset-names = "apb";
  1689. phy-dsi-supply = <&reg18>;
  1690. status = "disabled";
  1691. };
  1692. ltdc: display-controller@5a001000 {
  1693. compatible = "st,stm32-ltdc";
  1694. reg = <0x5a001000 0x400>;
  1695. interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
  1696. <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
  1697. clocks = <&rcc LTDC_PX>;
  1698. clock-names = "lcd";
  1699. resets = <&rcc LTDC_R>;
  1700. status = "disabled";
  1701. };
  1702. iwdg2: watchdog@5a002000 {
  1703. compatible = "st,stm32mp1-iwdg";
  1704. reg = <0x5a002000 0x400>;
  1705. clocks = <&rcc IWDG2>, <&rcc CK_LSI>;
  1706. clock-names = "pclk", "lsi";
  1707. status = "disabled";
  1708. };
  1709. usbphyc: usbphyc@5a006000 {
  1710. #address-cells = <1>;
  1711. #size-cells = <0>;
  1712. #clock-cells = <0>;
  1713. compatible = "st,stm32mp1-usbphyc";
  1714. reg = <0x5a006000 0x1000>;
  1715. clocks = <&rcc USBPHY_K>;
  1716. resets = <&rcc USBPHY_R>;
  1717. vdda1v1-supply = <&reg11>;
  1718. vdda1v8-supply = <&reg18>;
  1719. status = "disabled";
  1720. usbphyc_port0: usb-phy@0 {
  1721. #phy-cells = <0>;
  1722. reg = <0>;
  1723. };
  1724. usbphyc_port1: usb-phy@1 {
  1725. #phy-cells = <1>;
  1726. reg = <1>;
  1727. };
  1728. };
  1729. ddrperfm: perf@5a007000 {
  1730. compatible = "st,stm32-ddr-pmu";
  1731. reg = <0x5a007000 0x400>;
  1732. clocks = <&rcc DDRPERFM>, <&rcc PLL2_R>;
  1733. clock-names = "bus", "ddr";
  1734. resets = <&rcc DDRPERFM_R>;
  1735. status = "okay";
  1736. };
  1737. usart1: serial@5c000000 {
  1738. compatible = "st,stm32h7-uart";
  1739. reg = <0x5c000000 0x400>;
  1740. interrupt-names = "event", "wakeup";
  1741. interrupts-extended = <&intc GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>,
  1742. <&exti 26 1>;
  1743. clocks = <&rcc USART1_K>;
  1744. resets = <&rcc USART1_R>;
  1745. wakeup-source;
  1746. power-domains = <&pd_core>;
  1747. status = "disabled";
  1748. };
  1749. spi6: spi@5c001000 {
  1750. #address-cells = <1>;
  1751. #size-cells = <0>;
  1752. compatible = "st,stm32h7-spi";
  1753. reg = <0x5c001000 0x400>;
  1754. interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
  1755. clocks = <&rcc SPI6_K>;
  1756. resets = <&rcc SPI6_R>;
  1757. dmas = <&mdma1 34 0x0 0x40008 0x0 0x0 0x0>,
  1758. <&mdma1 35 0x0 0x40002 0x0 0x0 0x0>;
  1759. dma-names = "rx", "tx";
  1760. power-domains = <&pd_core>;
  1761. status = "disabled";
  1762. };
  1763. i2c4: i2c@5c002000 {
  1764. compatible = "st,stm32f7-i2c";
  1765. reg = <0x5c002000 0x400>;
  1766. interrupt-names = "event", "error", "wakeup";
  1767. interrupts-extended = <&intc GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
  1768. <&intc GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
  1769. <&exti 24 1>;
  1770. clocks = <&rcc I2C4_K>;
  1771. resets = <&rcc I2C4_R>;
  1772. #address-cells = <1>;
  1773. #size-cells = <0>;
  1774. dmas = <&mdma1 36 0x0 0x40008 0x0 0x0 0>,
  1775. <&mdma1 37 0x0 0x40002 0x0 0x0 0>;
  1776. dma-names = "rx", "tx";
  1777. power-domains = <&pd_core>;
  1778. st,syscfg-fmp = <&syscfg 0x4 0x8>;
  1779. st,syscfg-fmp-clr = <&syscfg 0x44 0x8>;
  1780. status = "disabled";
  1781. };
  1782. rtc: rtc@5c004000 {
  1783. compatible = "st,stm32mp1-rtc";
  1784. reg = <0x5c004000 0x400>;
  1785. clocks = <&rcc RTCAPB>, <&rcc RTC>;
  1786. clock-names = "pclk", "rtc_ck";
  1787. interrupts-extended = <&intc GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
  1788. <&exti 19 1>;
  1789. status = "disabled";
  1790. };
  1791. bsec: nvmem@5c005000 {
  1792. compatible = "st,stm32mp15-bsec";
  1793. reg = <0x5c005000 0x400>;
  1794. #address-cells = <1>;
  1795. #size-cells = <1>;
  1796. part_number_otp: part_number_otp@4 {
  1797. reg = <0x4 0x1>;
  1798. };
  1799. ts_cal1: calib@5c {
  1800. reg = <0x5c 0x2>;
  1801. };
  1802. ts_cal2: calib@5e {
  1803. reg = <0x5e 0x2>;
  1804. };
  1805. };
  1806. i2c6: i2c@5c009000 {
  1807. compatible = "st,stm32f7-i2c";
  1808. reg = <0x5c009000 0x400>;
  1809. interrupt-names = "event", "error", "wakeup";
  1810. interrupts-extended = <&intc GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
  1811. <&intc GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
  1812. <&exti 54 1>;
  1813. clocks = <&rcc I2C6_K>;
  1814. resets = <&rcc I2C6_R>;
  1815. #address-cells = <1>;
  1816. #size-cells = <0>;
  1817. dmas = <&mdma1 38 0x0 0x40008 0x0 0x0 0>,
  1818. <&mdma1 39 0x0 0x40002 0x0 0x0 0>;
  1819. dma-names = "rx", "tx";
  1820. power-domains = <&pd_core>;
  1821. st,syscfg-fmp = <&syscfg 0x4 0x20>;
  1822. st,syscfg-fmp-clr = <&syscfg 0x44 0x20>;
  1823. status = "disabled";
  1824. };
  1825. tamp: tamp@5c00a000 {
  1826. compatible = "simple-bus", "syscon", "simple-mfd";
  1827. reg = <0x5c00a000 0x400>;
  1828. reboot-mode {
  1829. compatible = "syscon-reboot-mode";
  1830. offset = <0x150>; /* reg20 */
  1831. mask = <0xff>;
  1832. mode-normal = <0>;
  1833. mode-fastboot = <0x1>;
  1834. mode-recovery = <0x2>;
  1835. mode-stm32cubeprogrammer = <0x3>;
  1836. mode-ums_mmc0 = <0x10>;
  1837. mode-ums_mmc1 = <0x11>;
  1838. mode-ums_mmc2 = <0x12>;
  1839. };
  1840. };
  1841. };
  1842. m4_rproc: m4@0 {
  1843. compatible = "st,stm32mp1-rproc";
  1844. #address-cells = <1>;
  1845. #size-cells = <1>;
  1846. ranges = <0x00000000 0x38000000 0x10000>,
  1847. <0x30000000 0x30000000 0x60000>,
  1848. <0x10000000 0x10000000 0x60000>;
  1849. resets = <&rcc MCU_R>;
  1850. reset-names = "mcu_rst";
  1851. st,syscfg-pdds = <&pwr 0x014 0x1>;
  1852. st,syscfg-holdboot = <&rcc 0x10C 0x1>;
  1853. st,syscfg-tz = <&rcc 0x000 0x1>;
  1854. st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
  1855. status = "disabled";
  1856. m4_system_resources {
  1857. compatible = "rproc-srm-core";
  1858. status = "disabled";
  1859. };
  1860. };
  1861. firmware {
  1862. optee {
  1863. compatible = "linaro,optee-tz";
  1864. method = "smc";
  1865. };
  1866. };
  1867. };