PageRenderTime 26ms CodeModel.GetById 26ms RepoModel.GetById 0ms app.codeStats 0ms

/arch/arm/boot/dts/stm32mp131.dtsi

https://gitlab.com/dieselnutjob/linux-next
Device Tree | 283 lines | 242 code | 32 blank | 9 comment | 0 complexity | a646fa06125875677d40a8acf1d0f6c8 MD5 | raw file
  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. / {
  8. #address-cells = <1>;
  9. #size-cells = <1>;
  10. cpus {
  11. #address-cells = <1>;
  12. #size-cells = <0>;
  13. cpu0: cpu@0 {
  14. compatible = "arm,cortex-a7";
  15. device_type = "cpu";
  16. reg = <0>;
  17. };
  18. };
  19. arm-pmu {
  20. compatible = "arm,cortex-a7-pmu";
  21. interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
  22. interrupt-affinity = <&cpu0>;
  23. interrupt-parent = <&intc>;
  24. };
  25. clocks {
  26. clk_axi: clk-axi {
  27. #clock-cells = <0>;
  28. compatible = "fixed-clock";
  29. clock-frequency = <266500000>;
  30. };
  31. clk_hse: clk-hse {
  32. #clock-cells = <0>;
  33. compatible = "fixed-clock";
  34. clock-frequency = <24000000>;
  35. };
  36. clk_hsi: clk-hsi {
  37. #clock-cells = <0>;
  38. compatible = "fixed-clock";
  39. clock-frequency = <64000000>;
  40. };
  41. clk_lsi: clk-lsi {
  42. #clock-cells = <0>;
  43. compatible = "fixed-clock";
  44. clock-frequency = <32000>;
  45. };
  46. clk_pclk3: clk-pclk3 {
  47. #clock-cells = <0>;
  48. compatible = "fixed-clock";
  49. clock-frequency = <104438965>;
  50. };
  51. clk_pclk4: clk-pclk4 {
  52. #clock-cells = <0>;
  53. compatible = "fixed-clock";
  54. clock-frequency = <133250000>;
  55. };
  56. clk_pll4_p: clk-pll4_p {
  57. #clock-cells = <0>;
  58. compatible = "fixed-clock";
  59. clock-frequency = <50000000>;
  60. };
  61. clk_pll4_r: clk-pll4_r {
  62. #clock-cells = <0>;
  63. compatible = "fixed-clock";
  64. clock-frequency = <99000000>;
  65. };
  66. };
  67. intc: interrupt-controller@a0021000 {
  68. compatible = "arm,cortex-a7-gic";
  69. #interrupt-cells = <3>;
  70. interrupt-controller;
  71. reg = <0xa0021000 0x1000>,
  72. <0xa0022000 0x2000>;
  73. };
  74. psci {
  75. compatible = "arm,psci-1.0";
  76. method = "smc";
  77. };
  78. timer {
  79. compatible = "arm,armv7-timer";
  80. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  81. <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  82. <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  83. <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
  84. interrupt-parent = <&intc>;
  85. always-on;
  86. };
  87. soc {
  88. compatible = "simple-bus";
  89. #address-cells = <1>;
  90. #size-cells = <1>;
  91. interrupt-parent = <&intc>;
  92. ranges;
  93. uart4: serial@40010000 {
  94. compatible = "st,stm32h7-uart";
  95. reg = <0x40010000 0x400>;
  96. interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
  97. clocks = <&clk_hsi>;
  98. status = "disabled";
  99. };
  100. syscfg: syscon@50020000 {
  101. compatible = "st,stm32mp157-syscfg", "syscon";
  102. reg = <0x50020000 0x400>;
  103. clocks = <&clk_pclk3>;
  104. };
  105. sdmmc1: mmc@58005000 {
  106. compatible = "arm,pl18x", "arm,primecell";
  107. arm,primecell-periphid = <0x00253180>;
  108. reg = <0x58005000 0x1000>, <0x58006000 0x1000>;
  109. interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
  110. interrupt-names = "cmd_irq";
  111. clocks = <&clk_pll4_p>;
  112. clock-names = "apb_pclk";
  113. cap-sd-highspeed;
  114. cap-mmc-highspeed;
  115. max-frequency = <120000000>;
  116. status = "disabled";
  117. };
  118. iwdg2: watchdog@5a002000 {
  119. compatible = "st,stm32mp1-iwdg";
  120. reg = <0x5a002000 0x400>;
  121. clocks = <&clk_pclk4>, <&clk_lsi>;
  122. clock-names = "pclk", "lsi";
  123. status = "disabled";
  124. };
  125. bsec: efuse@5c005000 {
  126. compatible = "st,stm32mp15-bsec";
  127. reg = <0x5c005000 0x400>;
  128. #address-cells = <1>;
  129. #size-cells = <1>;
  130. part_number_otp: part_number_otp@4 {
  131. reg = <0x4 0x2>;
  132. };
  133. ts_cal1: calib@5c {
  134. reg = <0x5c 0x2>;
  135. };
  136. ts_cal2: calib@5e {
  137. reg = <0x5e 0x2>;
  138. };
  139. };
  140. /*
  141. * Break node order to solve dependency probe issue between
  142. * pinctrl and exti.
  143. */
  144. pinctrl: pin-controller@50002000 {
  145. #address-cells = <1>;
  146. #size-cells = <1>;
  147. compatible = "st,stm32mp135-pinctrl";
  148. ranges = <0 0x50002000 0x8400>;
  149. pins-are-numbered;
  150. gpioa: gpio@50002000 {
  151. gpio-controller;
  152. #gpio-cells = <2>;
  153. interrupt-controller;
  154. #interrupt-cells = <2>;
  155. reg = <0x0 0x400>;
  156. clocks = <&clk_pclk4>;
  157. st,bank-name = "GPIOA";
  158. ngpios = <16>;
  159. gpio-ranges = <&pinctrl 0 0 16>;
  160. };
  161. gpiob: gpio@50003000 {
  162. gpio-controller;
  163. #gpio-cells = <2>;
  164. interrupt-controller;
  165. #interrupt-cells = <2>;
  166. reg = <0x1000 0x400>;
  167. clocks = <&clk_pclk4>;
  168. st,bank-name = "GPIOB";
  169. ngpios = <16>;
  170. gpio-ranges = <&pinctrl 0 16 16>;
  171. };
  172. gpioc: gpio@50004000 {
  173. gpio-controller;
  174. #gpio-cells = <2>;
  175. interrupt-controller;
  176. #interrupt-cells = <2>;
  177. reg = <0x2000 0x400>;
  178. clocks = <&clk_pclk4>;
  179. st,bank-name = "GPIOC";
  180. ngpios = <16>;
  181. gpio-ranges = <&pinctrl 0 32 16>;
  182. };
  183. gpiod: gpio@50005000 {
  184. gpio-controller;
  185. #gpio-cells = <2>;
  186. interrupt-controller;
  187. #interrupt-cells = <2>;
  188. reg = <0x3000 0x400>;
  189. clocks = <&clk_pclk4>;
  190. st,bank-name = "GPIOD";
  191. ngpios = <16>;
  192. gpio-ranges = <&pinctrl 0 48 16>;
  193. };
  194. gpioe: gpio@50006000 {
  195. gpio-controller;
  196. #gpio-cells = <2>;
  197. interrupt-controller;
  198. #interrupt-cells = <2>;
  199. reg = <0x4000 0x400>;
  200. clocks = <&clk_pclk4>;
  201. st,bank-name = "GPIOE";
  202. ngpios = <16>;
  203. gpio-ranges = <&pinctrl 0 64 16>;
  204. };
  205. gpiof: gpio@50007000 {
  206. gpio-controller;
  207. #gpio-cells = <2>;
  208. interrupt-controller;
  209. #interrupt-cells = <2>;
  210. reg = <0x5000 0x400>;
  211. clocks = <&clk_pclk4>;
  212. st,bank-name = "GPIOF";
  213. ngpios = <16>;
  214. gpio-ranges = <&pinctrl 0 80 16>;
  215. };
  216. gpiog: gpio@50008000 {
  217. gpio-controller;
  218. #gpio-cells = <2>;
  219. interrupt-controller;
  220. #interrupt-cells = <2>;
  221. reg = <0x6000 0x400>;
  222. clocks = <&clk_pclk4>;
  223. st,bank-name = "GPIOG";
  224. ngpios = <16>;
  225. gpio-ranges = <&pinctrl 0 96 16>;
  226. };
  227. gpioh: gpio@50009000 {
  228. gpio-controller;
  229. #gpio-cells = <2>;
  230. interrupt-controller;
  231. #interrupt-cells = <2>;
  232. reg = <0x7000 0x400>;
  233. clocks = <&clk_pclk4>;
  234. st,bank-name = "GPIOH";
  235. ngpios = <15>;
  236. gpio-ranges = <&pinctrl 0 112 15>;
  237. };
  238. gpioi: gpio@5000a000 {
  239. gpio-controller;
  240. #gpio-cells = <2>;
  241. interrupt-controller;
  242. #interrupt-cells = <2>;
  243. reg = <0x8000 0x400>;
  244. clocks = <&clk_pclk4>;
  245. st,bank-name = "GPIOI";
  246. ngpios = <8>;
  247. gpio-ranges = <&pinctrl 0 128 8>;
  248. };
  249. };
  250. };
  251. };