stm32mp157c-odyssey-som.dtsi 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. // SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
  2. /*
  3. * Copyright (C) 2020 Marcin Sloniewski <[email protected]>.
  4. */
  5. /dts-v1/;
  6. #include "stm32mp157.dtsi"
  7. #include "stm32mp15xc.dtsi"
  8. #include "stm32mp15-pinctrl.dtsi"
  9. #include "stm32mp15xxac-pinctrl.dtsi"
  10. #include <dt-bindings/gpio/gpio.h>
  11. #include <dt-bindings/leds/common.h>
  12. #include <dt-bindings/mfd/st,stpmic1.h>
  13. / {
  14. model = "Seeed Studio Odyssey-STM32MP157C SOM";
  15. compatible = "seeed,stm32mp157c-odyssey-som", "st,stm32mp157";
  16. memory@c0000000 {
  17. device_type = "memory";
  18. reg = <0xc0000000 0x20000000>;
  19. };
  20. reserved-memory {
  21. #address-cells = <1>;
  22. #size-cells = <1>;
  23. ranges;
  24. mcuram2: mcuram2@10000000 {
  25. compatible = "shared-dma-pool";
  26. reg = <0x10000000 0x40000>;
  27. no-map;
  28. };
  29. vdev0vring0: vdev0vring0@10040000 {
  30. compatible = "shared-dma-pool";
  31. reg = <0x10040000 0x1000>;
  32. no-map;
  33. };
  34. vdev0vring1: vdev0vring1@10041000 {
  35. compatible = "shared-dma-pool";
  36. reg = <0x10041000 0x1000>;
  37. no-map;
  38. };
  39. vdev0buffer: vdev0buffer@10042000 {
  40. compatible = "shared-dma-pool";
  41. reg = <0x10042000 0x4000>;
  42. no-map;
  43. };
  44. mcuram: mcuram@30000000 {
  45. compatible = "shared-dma-pool";
  46. reg = <0x30000000 0x40000>;
  47. no-map;
  48. };
  49. retram: retram@38000000 {
  50. compatible = "shared-dma-pool";
  51. reg = <0x38000000 0x10000>;
  52. no-map;
  53. };
  54. };
  55. led {
  56. compatible = "gpio-leds";
  57. led-blue {
  58. color = <LED_COLOR_ID_BLUE>;
  59. function = LED_FUNCTION_HEARTBEAT;
  60. gpios = <&gpiog 3 GPIO_ACTIVE_HIGH>;
  61. linux,default-trigger = "heartbeat";
  62. };
  63. };
  64. };
  65. &i2c2 {
  66. pinctrl-names = "default";
  67. pinctrl-0 = <&i2c2_pins_a>;
  68. i2c-scl-rising-time-ns = <185>;
  69. i2c-scl-falling-time-ns = <20>;
  70. status = "okay";
  71. /* spare dmas for other usage */
  72. /delete-property/dmas;
  73. /delete-property/dma-names;
  74. pmic: stpmic@33 {
  75. compatible = "st,stpmic1";
  76. reg = <0x33>;
  77. interrupts-extended = <&gpioa 0 IRQ_TYPE_EDGE_FALLING>;
  78. interrupt-controller;
  79. #interrupt-cells = <2>;
  80. regulators {
  81. compatible = "st,stpmic1-regulators";
  82. ldo1-supply = <&v3v3>;
  83. ldo3-supply = <&vdd_ddr>;
  84. ldo6-supply = <&v3v3>;
  85. pwr_sw1-supply = <&bst_out>;
  86. pwr_sw2-supply = <&bst_out>;
  87. vddcore: buck1 {
  88. regulator-name = "vddcore";
  89. regulator-min-microvolt = <800000>;
  90. regulator-max-microvolt = <1350000>;
  91. regulator-always-on;
  92. regulator-initial-mode = <0>;
  93. regulator-over-current-protection;
  94. };
  95. vdd_ddr: buck2 {
  96. regulator-name = "vdd_ddr";
  97. regulator-min-microvolt = <1350000>;
  98. regulator-max-microvolt = <1350000>;
  99. regulator-always-on;
  100. regulator-initial-mode = <0>;
  101. regulator-over-current-protection;
  102. };
  103. vdd: buck3 {
  104. regulator-name = "vdd";
  105. regulator-min-microvolt = <3300000>;
  106. regulator-max-microvolt = <3300000>;
  107. regulator-always-on;
  108. st,mask-reset;
  109. regulator-initial-mode = <0>;
  110. regulator-over-current-protection;
  111. };
  112. v3v3: buck4 {
  113. regulator-name = "v3v3";
  114. regulator-min-microvolt = <3300000>;
  115. regulator-max-microvolt = <3300000>;
  116. regulator-always-on;
  117. regulator-over-current-protection;
  118. regulator-initial-mode = <0>;
  119. };
  120. v1v8_audio: ldo1 {
  121. regulator-name = "v1v8_audio";
  122. regulator-min-microvolt = <1800000>;
  123. regulator-max-microvolt = <1800000>;
  124. regulator-always-on;
  125. interrupts = <IT_CURLIM_LDO1 0>;
  126. };
  127. v3v3_hdmi: ldo2 {
  128. regulator-name = "v3v3_hdmi";
  129. regulator-min-microvolt = <3300000>;
  130. regulator-max-microvolt = <3300000>;
  131. regulator-always-on;
  132. interrupts = <IT_CURLIM_LDO2 0>;
  133. };
  134. vtt_ddr: ldo3 {
  135. regulator-name = "vtt_ddr";
  136. regulator-min-microvolt = <500000>;
  137. regulator-max-microvolt = <750000>;
  138. regulator-always-on;
  139. regulator-over-current-protection;
  140. };
  141. vdd_usb: ldo4 {
  142. regulator-name = "vdd_usb";
  143. interrupts = <IT_CURLIM_LDO4 0>;
  144. };
  145. vdda: ldo5 {
  146. regulator-name = "vdda";
  147. regulator-min-microvolt = <2900000>;
  148. regulator-max-microvolt = <2900000>;
  149. interrupts = <IT_CURLIM_LDO5 0>;
  150. regulator-boot-on;
  151. };
  152. v1v2_hdmi: ldo6 {
  153. regulator-name = "v1v2_hdmi";
  154. regulator-min-microvolt = <1200000>;
  155. regulator-max-microvolt = <1200000>;
  156. regulator-always-on;
  157. interrupts = <IT_CURLIM_LDO6 0>;
  158. };
  159. vref_ddr: vref_ddr {
  160. regulator-name = "vref_ddr";
  161. regulator-always-on;
  162. };
  163. bst_out: boost {
  164. regulator-name = "bst_out";
  165. interrupts = <IT_OCP_BOOST 0>;
  166. };
  167. vbus_otg: pwr_sw1 {
  168. regulator-name = "vbus_otg";
  169. interrupts = <IT_OCP_OTG 0>;
  170. };
  171. vbus_sw: pwr_sw2 {
  172. regulator-name = "vbus_sw";
  173. interrupts = <IT_OCP_SWOUT 0>;
  174. regulator-active-discharge = <1>;
  175. };
  176. };
  177. onkey {
  178. compatible = "st,stpmic1-onkey";
  179. interrupts = <IT_PONKEY_F 0>, <IT_PONKEY_R 0>;
  180. interrupt-names = "onkey-falling", "onkey-rising";
  181. power-off-time-sec = <10>;
  182. };
  183. watchdog {
  184. compatible = "st,stpmic1-wdt";
  185. status = "disabled";
  186. };
  187. };
  188. };
  189. &ipcc {
  190. status = "okay";
  191. };
  192. &iwdg2 {
  193. timeout-sec = <32>;
  194. status = "okay";
  195. };
  196. &m4_rproc {
  197. memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>,
  198. <&vdev0vring1>, <&vdev0buffer>;
  199. mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>;
  200. mbox-names = "vq0", "vq1", "shutdown", "detach";
  201. interrupt-parent = <&exti>;
  202. interrupts = <68 1>;
  203. status = "okay";
  204. };
  205. &rng1 {
  206. status = "okay";
  207. };
  208. &rtc {
  209. status = "okay";
  210. };
  211. &sdmmc2 {
  212. pinctrl-names = "default", "opendrain", "sleep";
  213. pinctrl-0 = <&sdmmc2_b4_pins_a &sdmmc2_d47_pins_d>;
  214. pinctrl-1 = <&sdmmc2_b4_od_pins_a &sdmmc2_d47_pins_d>;
  215. pinctrl-2 = <&sdmmc2_b4_sleep_pins_a &sdmmc2_d47_sleep_pins_d>;
  216. non-removable;
  217. no-sd;
  218. no-sdio;
  219. st,neg-edge;
  220. bus-width = <8>;
  221. vmmc-supply = <&v3v3>;
  222. vqmmc-supply = <&vdd>;
  223. mmc-ddr-3_3v;
  224. status = "okay";
  225. };