stm32mp251.dtsi 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324
  1. // SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-3-Clause)
  2. /*
  3. * Copyright (C) 2023-2024, STMicroelectronics - All Rights Reserved
  4. * Author: Alexandre Torgue <alexandre.torgue@foss.st.com> for STMicroelectronics.
  5. */
  6. #include <dt-bindings/clock/stm32mp25-clks.h>
  7. #include <dt-bindings/interrupt-controller/arm-gic.h>
  8. #include <dt-bindings/reset/stm32mp25-resets.h>
  9. / {
  10. #address-cells = <2>;
  11. #size-cells = <2>;
  12. cpus {
  13. #address-cells = <1>;
  14. #size-cells = <0>;
  15. cpu0: cpu@0 {
  16. compatible = "arm,cortex-a35";
  17. device_type = "cpu";
  18. reg = <0>;
  19. enable-method = "psci";
  20. };
  21. };
  22. clocks {
  23. clk_hse: clk-hse {
  24. #clock-cells = <0>;
  25. compatible = "fixed-clock";
  26. clock-frequency = <48000000>;
  27. };
  28. clk_hsi: clk-hsi {
  29. #clock-cells = <0>;
  30. compatible = "fixed-clock";
  31. clock-frequency = <64000000>;
  32. };
  33. clk_lse: clk-lse {
  34. #clock-cells = <0>;
  35. compatible = "fixed-clock";
  36. clock-frequency = <32768>;
  37. };
  38. clk_lsi: clk-lsi {
  39. #clock-cells = <0>;
  40. compatible = "fixed-clock";
  41. clock-frequency = <32000>;
  42. };
  43. clk_msi: clk-msi {
  44. #clock-cells = <0>;
  45. compatible = "fixed-clock";
  46. clock-frequency = <16000000>;
  47. };
  48. };
  49. intc: interrupt-controller@4ac00000 {
  50. compatible = "arm,cortex-a7-gic";
  51. #interrupt-cells = <3>;
  52. #address-cells = <1>;
  53. interrupt-controller;
  54. reg = <0x0 0x4ac10000 0x0 0x1000>,
  55. <0x0 0x4ac20000 0x0 0x2000>,
  56. <0x0 0x4ac40000 0x0 0x2000>,
  57. <0x0 0x4ac60000 0x0 0x2000>;
  58. };
  59. timer {
  60. compatible = "arm,armv8-timer";
  61. interrupt-parent = <&intc>;
  62. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  63. <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  64. <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  65. <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
  66. always-on;
  67. };
  68. soc@0 {
  69. compatible = "simple-bus";
  70. #address-cells = <1>;
  71. #size-cells = <1>;
  72. interrupt-parent = <&intc>;
  73. ranges = <0x0 0x0 0x0 0x80000000>;
  74. rifsc: rifsc@42080000 {
  75. compatible = "st,stm32mp25-rifsc";
  76. reg = <0x42080000 0x1000>;
  77. #address-cells = <1>;
  78. #size-cells = <1>;
  79. usart2: serial@400e0000 {
  80. compatible = "st,stm32h7-uart";
  81. reg = <0x400e0000 0x400>;
  82. clocks = <&rcc CK_KER_USART2>;
  83. resets = <&rcc USART2_R>;
  84. status = "disabled";
  85. };
  86. };
  87. bsec: efuse@44000000 {
  88. compatible = "st,stm32mp25-bsec";
  89. reg = <0x44000000 0x400>;
  90. #address-cells = <1>;
  91. #size-cells = <1>;
  92. uid_otp: uid-otp@14 {
  93. reg = <0x14 0xc>;
  94. };
  95. part_number_otp: part-number-otp@24 {
  96. reg = <0x24 0x4>;
  97. };
  98. nand_otp: otp16@40 {
  99. reg = <0x40 0x4>;
  100. };
  101. lifecycle2_otp: otp18@48 {
  102. reg = <0x48 0x4>;
  103. };
  104. nand2_otp: otp20@50 {
  105. reg = <0x50 0x4>;
  106. };
  107. package_otp: package-otp@1e8 {
  108. reg = <0x1e8 0x1>;
  109. };
  110. hconf1_otp: otp124@1f0 {
  111. reg = <0x1f0 0x4>;
  112. };
  113. pkh_otp: otp144@240 {
  114. reg = <0x240 0x20>;
  115. };
  116. oem_fip_enc_key: otp260@410 {
  117. reg = <0x410 0x20>;
  118. };
  119. };
  120. rcc: rcc@44200000 {
  121. compatible = "st,stm32mp25-rcc";
  122. reg = <0x44200000 0x10000>;
  123. #clock-cells = <1>;
  124. #reset-cells = <1>;
  125. };
  126. pwr: pwr@44210000 {
  127. compatible = "st,stm32mp25-pwr";
  128. reg = <0x44210000 0x400>;
  129. vddio1: vddio1 {
  130. regulator-name = "vddio1";
  131. };
  132. vddio2: vddio2 {
  133. regulator-name = "vddio2";
  134. };
  135. vddio3: vddio3 {
  136. regulator-name = "vddio3";
  137. };
  138. vddio4: vddio4 {
  139. regulator-name = "vddio4";
  140. };
  141. vddio: vddio {
  142. regulator-name = "vddio";
  143. };
  144. };
  145. syscfg: syscon@44230000 {
  146. compatible = "st,stm32mp25-syscfg", "syscon";
  147. reg = <0x44230000 0x10000>;
  148. };
  149. pinctrl: pinctrl@44240000 {
  150. #address-cells = <1>;
  151. #size-cells = <1>;
  152. compatible = "st,stm32mp257-pinctrl";
  153. ranges = <0 0x44240000 0xa0400>;
  154. pins-are-numbered;
  155. gpioa: gpio@44240000 {
  156. gpio-controller;
  157. #gpio-cells = <2>;
  158. interrupt-controller;
  159. #interrupt-cells = <2>;
  160. reg = <0x0 0x400>;
  161. clocks = <&rcc CK_BUS_GPIOA>;
  162. st,bank-name = "GPIOA";
  163. status = "disabled";
  164. };
  165. gpiob: gpio@44250000 {
  166. gpio-controller;
  167. #gpio-cells = <2>;
  168. interrupt-controller;
  169. #interrupt-cells = <2>;
  170. reg = <0x10000 0x400>;
  171. clocks = <&rcc CK_BUS_GPIOB>;
  172. st,bank-name = "GPIOB";
  173. status = "disabled";
  174. };
  175. gpioc: gpio@44260000 {
  176. gpio-controller;
  177. #gpio-cells = <2>;
  178. interrupt-controller;
  179. #interrupt-cells = <2>;
  180. reg = <0x20000 0x400>;
  181. clocks = <&rcc CK_BUS_GPIOC>;
  182. st,bank-name = "GPIOC";
  183. status = "disabled";
  184. };
  185. gpiod: gpio@44270000 {
  186. gpio-controller;
  187. #gpio-cells = <2>;
  188. interrupt-controller;
  189. #interrupt-cells = <2>;
  190. reg = <0x30000 0x400>;
  191. clocks = <&rcc CK_BUS_GPIOD>;
  192. st,bank-name = "GPIOD";
  193. status = "disabled";
  194. };
  195. gpioe: gpio@44280000 {
  196. gpio-controller;
  197. #gpio-cells = <2>;
  198. interrupt-controller;
  199. #interrupt-cells = <2>;
  200. reg = <0x40000 0x400>;
  201. clocks = <&rcc CK_BUS_GPIOE>;
  202. st,bank-name = "GPIOE";
  203. status = "disabled";
  204. };
  205. gpiof: gpio@44290000 {
  206. gpio-controller;
  207. #gpio-cells = <2>;
  208. interrupt-controller;
  209. #interrupt-cells = <2>;
  210. reg = <0x50000 0x400>;
  211. clocks = <&rcc CK_BUS_GPIOF>;
  212. st,bank-name = "GPIOF";
  213. status = "disabled";
  214. };
  215. gpiog: gpio@442a0000 {
  216. gpio-controller;
  217. #gpio-cells = <2>;
  218. interrupt-controller;
  219. #interrupt-cells = <2>;
  220. reg = <0x60000 0x400>;
  221. clocks = <&rcc CK_BUS_GPIOG>;
  222. st,bank-name = "GPIOG";
  223. status = "disabled";
  224. };
  225. gpioh: gpio@442b0000 {
  226. gpio-controller;
  227. #gpio-cells = <2>;
  228. interrupt-controller;
  229. #interrupt-cells = <2>;
  230. reg = <0x70000 0x400>;
  231. clocks = <&rcc CK_BUS_GPIOH>;
  232. st,bank-name = "GPIOH";
  233. status = "disabled";
  234. };
  235. gpioi: gpio@442c0000 {
  236. gpio-controller;
  237. #gpio-cells = <2>;
  238. interrupt-controller;
  239. #interrupt-cells = <2>;
  240. reg = <0x80000 0x400>;
  241. clocks = <&rcc CK_BUS_GPIOI>;
  242. st,bank-name = "GPIOI";
  243. status = "disabled";
  244. };
  245. gpioj: gpio@442d0000 {
  246. gpio-controller;
  247. #gpio-cells = <2>;
  248. interrupt-controller;
  249. #interrupt-cells = <2>;
  250. reg = <0x90000 0x400>;
  251. clocks = <&rcc CK_BUS_GPIOJ>;
  252. st,bank-name = "GPIOJ";
  253. status = "disabled";
  254. };
  255. gpiok: gpio@442e0000 {
  256. gpio-controller;
  257. #gpio-cells = <2>;
  258. interrupt-controller;
  259. #interrupt-cells = <2>;
  260. reg = <0xa0000 0x400>;
  261. clocks = <&rcc CK_BUS_GPIOK>;
  262. st,bank-name = "GPIOK";
  263. status = "disabled";
  264. };
  265. };
  266. pinctrl_z: pinctrl@46200000 {
  267. #address-cells = <1>;
  268. #size-cells = <1>;
  269. compatible = "st,stm32mp257-z-pinctrl";
  270. ranges = <0 0x46200000 0x400>;
  271. pins-are-numbered;
  272. gpioz: gpio@46200000 {
  273. gpio-controller;
  274. #gpio-cells = <2>;
  275. interrupt-controller;
  276. #interrupt-cells = <2>;
  277. reg = <0 0x400>;
  278. clocks = <&rcc CK_BUS_GPIOZ>;
  279. st,bank-name = "GPIOZ";
  280. st,bank-ioport = <11>;
  281. status = "disabled";
  282. };
  283. };
  284. };
  285. };