hifive-unmatched-a00.dts 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  1. // SPDX-License-Identifier: (GPL-2.0 OR MIT)
  2. /* Copyright (c) 2020 SiFive, Inc */
  3. #include "fu740-c000.dtsi"
  4. #include <dt-bindings/gpio/gpio.h>
  5. #include <dt-bindings/interrupt-controller/irq.h>
  6. #include <dt-bindings/leds/common.h>
  7. #include <dt-bindings/pwm/pwm.h>
  8. /* Clock frequency (in Hz) of the PCB crystal for rtcclk */
  9. #define RTCCLK_FREQ 1000000
  10. / {
  11. model = "SiFive HiFive Unmatched A00";
  12. compatible = "sifive,hifive-unmatched-a00", "sifive,fu740-c000",
  13. "sifive,fu740";
  14. chosen {
  15. stdout-path = "serial0";
  16. };
  17. cpus {
  18. timebase-frequency = <RTCCLK_FREQ>;
  19. };
  20. memory@80000000 {
  21. device_type = "memory";
  22. reg = <0x0 0x80000000 0x4 0x00000000>;
  23. };
  24. hfclk: hfclk {
  25. #clock-cells = <0>;
  26. compatible = "fixed-clock";
  27. clock-frequency = <26000000>;
  28. clock-output-names = "hfclk";
  29. };
  30. rtcclk: rtcclk {
  31. #clock-cells = <0>;
  32. compatible = "fixed-clock";
  33. clock-frequency = <RTCCLK_FREQ>;
  34. clock-output-names = "rtcclk";
  35. };
  36. gpio-poweroff {
  37. compatible = "gpio-poweroff";
  38. gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
  39. };
  40. led-controller-1 {
  41. compatible = "pwm-leds";
  42. led-d12 {
  43. pwms = <&pwm0 0 7812500 PWM_POLARITY_INVERTED>;
  44. active-low;
  45. color = <LED_COLOR_ID_GREEN>;
  46. max-brightness = <255>;
  47. label = "d12";
  48. };
  49. };
  50. led-controller-2 {
  51. compatible = "pwm-leds-multicolor";
  52. multi-led {
  53. color = <LED_COLOR_ID_RGB>;
  54. max-brightness = <255>;
  55. label = "d2";
  56. led-red {
  57. pwms = <&pwm0 2 7812500 PWM_POLARITY_INVERTED>;
  58. active-low;
  59. color = <LED_COLOR_ID_RED>;
  60. };
  61. led-green {
  62. pwms = <&pwm0 1 7812500 PWM_POLARITY_INVERTED>;
  63. active-low;
  64. color = <LED_COLOR_ID_GREEN>;
  65. };
  66. led-blue {
  67. pwms = <&pwm0 3 7812500 PWM_POLARITY_INVERTED>;
  68. active-low;
  69. color = <LED_COLOR_ID_BLUE>;
  70. };
  71. };
  72. };
  73. };
  74. &uart0 {
  75. status = "okay";
  76. };
  77. &uart1 {
  78. status = "okay";
  79. };
  80. &i2c0 {
  81. status = "okay";
  82. temperature-sensor@4c {
  83. compatible = "ti,tmp451";
  84. reg = <0x4c>;
  85. vcc-supply = <&vdd_bpro>;
  86. interrupt-parent = <&gpio>;
  87. interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
  88. };
  89. eeprom@54 {
  90. compatible = "microchip,24c02", "atmel,24c02";
  91. reg = <0x54>;
  92. vcc-supply = <&vdd_bpro>;
  93. label = "board-id";
  94. pagesize = <16>;
  95. read-only;
  96. size = <256>;
  97. };
  98. pmic@58 {
  99. compatible = "dlg,da9063";
  100. reg = <0x58>;
  101. interrupt-parent = <&gpio>;
  102. interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
  103. interrupt-controller;
  104. onkey {
  105. compatible = "dlg,da9063-onkey";
  106. };
  107. rtc {
  108. compatible = "dlg,da9063-rtc";
  109. };
  110. watchdog {
  111. compatible = "dlg,da9063-watchdog";
  112. };
  113. regulators {
  114. vdd_bcore: bcores-merged {
  115. regulator-min-microvolt = <1050000>;
  116. regulator-max-microvolt = <1050000>;
  117. regulator-min-microamp = <4800000>;
  118. regulator-max-microamp = <4800000>;
  119. regulator-always-on;
  120. };
  121. vdd_bpro: bpro {
  122. regulator-min-microvolt = <1800000>;
  123. regulator-max-microvolt = <1800000>;
  124. regulator-min-microamp = <2400000>;
  125. regulator-max-microamp = <2400000>;
  126. regulator-always-on;
  127. };
  128. vdd_bperi: bperi {
  129. regulator-min-microvolt = <1060000>;
  130. regulator-max-microvolt = <1060000>;
  131. regulator-min-microamp = <1500000>;
  132. regulator-max-microamp = <1500000>;
  133. regulator-always-on;
  134. };
  135. vdd_bmem_bio: bmem-bio-merged {
  136. regulator-min-microvolt = <1200000>;
  137. regulator-max-microvolt = <1200000>;
  138. regulator-min-microamp = <3000000>;
  139. regulator-max-microamp = <3000000>;
  140. regulator-always-on;
  141. };
  142. vdd_ldo1: ldo1 {
  143. regulator-min-microvolt = <1800000>;
  144. regulator-max-microvolt = <1800000>;
  145. regulator-always-on;
  146. };
  147. vdd_ldo2: ldo2 {
  148. regulator-min-microvolt = <1800000>;
  149. regulator-max-microvolt = <1800000>;
  150. regulator-always-on;
  151. };
  152. vdd_ldo3: ldo3 {
  153. regulator-min-microvolt = <3300000>;
  154. regulator-max-microvolt = <3300000>;
  155. regulator-always-on;
  156. };
  157. vdd_ldo4: ldo4 {
  158. regulator-min-microvolt = <2500000>;
  159. regulator-max-microvolt = <2500000>;
  160. regulator-always-on;
  161. };
  162. vdd_ldo5: ldo5 {
  163. regulator-min-microvolt = <3300000>;
  164. regulator-max-microvolt = <3300000>;
  165. regulator-always-on;
  166. };
  167. vdd_ldo6: ldo6 {
  168. regulator-min-microvolt = <1800000>;
  169. regulator-max-microvolt = <1800000>;
  170. regulator-always-on;
  171. };
  172. vdd_ldo7: ldo7 {
  173. regulator-min-microvolt = <3300000>;
  174. regulator-max-microvolt = <3300000>;
  175. regulator-always-on;
  176. };
  177. vdd_ldo8: ldo8 {
  178. regulator-min-microvolt = <3300000>;
  179. regulator-max-microvolt = <3300000>;
  180. regulator-always-on;
  181. };
  182. vdd_ld09: ldo9 {
  183. regulator-min-microvolt = <1050000>;
  184. regulator-max-microvolt = <1050000>;
  185. regulator-always-on;
  186. };
  187. vdd_ldo10: ldo10 {
  188. regulator-min-microvolt = <1000000>;
  189. regulator-max-microvolt = <1000000>;
  190. regulator-always-on;
  191. };
  192. vdd_ldo11: ldo11 {
  193. regulator-min-microvolt = <2500000>;
  194. regulator-max-microvolt = <2500000>;
  195. regulator-always-on;
  196. };
  197. };
  198. };
  199. };
  200. &qspi0 {
  201. status = "okay";
  202. flash@0 {
  203. compatible = "jedec,spi-nor";
  204. reg = <0>;
  205. spi-max-frequency = <50000000>;
  206. m25p,fast-read;
  207. spi-tx-bus-width = <4>;
  208. spi-rx-bus-width = <4>;
  209. };
  210. };
  211. &spi0 {
  212. status = "okay";
  213. mmc@0 {
  214. compatible = "mmc-spi-slot";
  215. reg = <0>;
  216. spi-max-frequency = <20000000>;
  217. voltage-ranges = <3300 3300>;
  218. disable-wp;
  219. gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
  220. };
  221. };
  222. &eth0 {
  223. status = "okay";
  224. phy-mode = "gmii";
  225. phy-handle = <&phy0>;
  226. phy0: ethernet-phy@0 {
  227. reg = <0>;
  228. };
  229. };
  230. &pwm0 {
  231. status = "okay";
  232. };
  233. &pwm1 {
  234. status = "okay";
  235. };
  236. &gpio {
  237. status = "okay";
  238. gpio-line-names = "J29.1", "PMICNTB", "PMICSHDN", "J8.1", "J8.3",
  239. "PCIe_PWREN", "THERM", "UBRDG_RSTN", "PCIe_PERSTN",
  240. "ULPI_RSTN", "J8.2", "UHUB_RSTN", "GEMGXL_RST", "J8.4",
  241. "EN_VDD_SD", "SD_CD";
  242. };