mpfs-icicle-kit.dts 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. // SPDX-License-Identifier: (GPL-2.0 OR MIT)
  2. /* Copyright (c) 2020-2021 Microchip Technology Inc */
  3. /dts-v1/;
  4. #include "mpfs.dtsi"
  5. #include "mpfs-icicle-kit-fabric.dtsi"
  6. #include <dt-bindings/gpio/gpio.h>
  7. #include <dt-bindings/leds/common.h>
  8. / {
  9. model = "Microchip PolarFire-SoC Icicle Kit";
  10. compatible = "microchip,mpfs-icicle-reference-rtlv2210", "microchip,mpfs-icicle-kit",
  11. "microchip,mpfs";
  12. aliases {
  13. ethernet0 = &mac1;
  14. serial0 = &mmuart0;
  15. serial1 = &mmuart1;
  16. serial2 = &mmuart2;
  17. serial3 = &mmuart3;
  18. serial4 = &mmuart4;
  19. };
  20. chosen {
  21. stdout-path = "serial1:115200n8";
  22. };
  23. leds {
  24. compatible = "gpio-leds";
  25. led-1 {
  26. gpios = <&gpio2 16 GPIO_ACTIVE_HIGH>;
  27. color = <LED_COLOR_ID_RED>;
  28. label = "led1";
  29. };
  30. led-2 {
  31. gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>;
  32. color = <LED_COLOR_ID_RED>;
  33. label = "led2";
  34. };
  35. led-3 {
  36. gpios = <&gpio2 18 GPIO_ACTIVE_HIGH>;
  37. color = <LED_COLOR_ID_AMBER>;
  38. label = "led3";
  39. };
  40. led-4 {
  41. gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>;
  42. color = <LED_COLOR_ID_AMBER>;
  43. label = "led4";
  44. };
  45. };
  46. ddrc_cache_lo: memory@80000000 {
  47. device_type = "memory";
  48. reg = <0x0 0x80000000 0x0 0x40000000>;
  49. status = "okay";
  50. };
  51. ddrc_cache_hi: memory@1040000000 {
  52. device_type = "memory";
  53. reg = <0x10 0x40000000 0x0 0x40000000>;
  54. status = "okay";
  55. };
  56. reserved-memory {
  57. #address-cells = <2>;
  58. #size-cells = <2>;
  59. ranges;
  60. hss_payload: region@BFC00000 {
  61. reg = <0x0 0xBFC00000 0x0 0x400000>;
  62. no-map;
  63. };
  64. };
  65. };
  66. &core_pwm0 {
  67. status = "okay";
  68. };
  69. &gpio2 {
  70. interrupts = <53>, <53>, <53>, <53>,
  71. <53>, <53>, <53>, <53>,
  72. <53>, <53>, <53>, <53>,
  73. <53>, <53>, <53>, <53>,
  74. <53>, <53>, <53>, <53>,
  75. <53>, <53>, <53>, <53>,
  76. <53>, <53>, <53>, <53>,
  77. <53>, <53>, <53>, <53>;
  78. status = "okay";
  79. };
  80. &i2c0 {
  81. status = "okay";
  82. };
  83. &i2c1 {
  84. status = "okay";
  85. power-monitor@10 {
  86. compatible = "microchip,pac1934";
  87. reg = <0x10>;
  88. #address-cells = <1>;
  89. #size-cells = <0>;
  90. channel@1 {
  91. reg = <0x1>;
  92. shunt-resistor-micro-ohms = <10000>;
  93. label = "VDDREG";
  94. };
  95. channel@2 {
  96. reg = <0x2>;
  97. shunt-resistor-micro-ohms = <10000>;
  98. label = "VDDA25";
  99. };
  100. channel@3 {
  101. reg = <0x3>;
  102. shunt-resistor-micro-ohms = <10000>;
  103. label = "VDD25";
  104. };
  105. channel@4 {
  106. reg = <0x4>;
  107. shunt-resistor-micro-ohms = <10000>;
  108. label = "VDDA_REG";
  109. };
  110. };
  111. };
  112. &i2c2 {
  113. status = "okay";
  114. };
  115. &mac0 {
  116. phy-mode = "sgmii";
  117. phy-handle = <&phy0>;
  118. status = "okay";
  119. };
  120. &mac1 {
  121. phy-mode = "sgmii";
  122. phy-handle = <&phy1>;
  123. status = "okay";
  124. phy1: ethernet-phy@9 {
  125. reg = <9>;
  126. };
  127. phy0: ethernet-phy@8 {
  128. reg = <8>;
  129. };
  130. };
  131. &mbox {
  132. status = "okay";
  133. };
  134. &mmc {
  135. bus-width = <4>;
  136. disable-wp;
  137. cap-sd-highspeed;
  138. cap-mmc-highspeed;
  139. mmc-ddr-1_8v;
  140. mmc-hs200-1_8v;
  141. sd-uhs-sdr12;
  142. sd-uhs-sdr25;
  143. sd-uhs-sdr50;
  144. sd-uhs-sdr104;
  145. status = "okay";
  146. };
  147. &mmuart1 {
  148. status = "okay";
  149. };
  150. &mmuart2 {
  151. status = "okay";
  152. };
  153. &mmuart3 {
  154. status = "okay";
  155. };
  156. &mmuart4 {
  157. status = "okay";
  158. };
  159. &pcie {
  160. status = "okay";
  161. };
  162. &qspi {
  163. status = "okay";
  164. };
  165. &refclk {
  166. clock-frequency = <125000000>;
  167. };
  168. &refclk_ccc {
  169. clock-frequency = <50000000>;
  170. };
  171. &rtc {
  172. status = "okay";
  173. };
  174. &spi0 {
  175. status = "okay";
  176. };
  177. &spi1 {
  178. status = "okay";
  179. };
  180. &syscontroller {
  181. status = "okay";
  182. };
  183. &syscontroller_qspi {
  184. /*
  185. * The flash *is* there, but Icicle kits that have engineering sample
  186. * silicon (write?) access to this flash to non-functional. The system
  187. * controller itself can actually access it, but the MSS cannot write
  188. * an image there. Instantiating a coreQSPI in the fabric & connecting
  189. * it to the flash instead should work though. Pre-production or later
  190. * silicon does not have this issue.
  191. */
  192. status = "disabled";
  193. sys_ctrl_flash: flash@0 { // MT25QL01GBBB8ESF-0SIT
  194. compatible = "jedec,spi-nor";
  195. #address-cells = <1>;
  196. #size-cells = <1>;
  197. spi-max-frequency = <20000000>;
  198. spi-rx-bus-width = <1>;
  199. reg = <0>;
  200. };
  201. };
  202. &usb {
  203. status = "okay";
  204. dr_mode = "host";
  205. };