aspeed-ast2600-evb.dts 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  1. // SPDX-License-Identifier: GPL-2.0-or-later
  2. // Copyright 2019 IBM Corp.
  3. /dts-v1/;
  4. #include "aspeed-g6.dtsi"
  5. #include <dt-bindings/gpio/aspeed-gpio.h>
  6. / {
  7. model = "AST2600 EVB";
  8. compatible = "aspeed,ast2600-evb", "aspeed,ast2600";
  9. aliases {
  10. serial4 = &uart5;
  11. };
  12. chosen {
  13. bootargs = "console=ttyS4,115200n8";
  14. };
  15. memory@80000000 {
  16. device_type = "memory";
  17. reg = <0x80000000 0x80000000>;
  18. };
  19. reserved-memory {
  20. #address-cells = <1>;
  21. #size-cells = <1>;
  22. ranges;
  23. video_engine_memory: video {
  24. size = <0x04000000>;
  25. alignment = <0x01000000>;
  26. compatible = "shared-dma-pool";
  27. reusable;
  28. };
  29. gfx_memory: framebuffer {
  30. size = <0x01000000>;
  31. alignment = <0x01000000>;
  32. compatible = "shared-dma-pool";
  33. reusable;
  34. };
  35. };
  36. vcc_sdhci0: regulator-vcc-sdhci0 {
  37. compatible = "regulator-fixed";
  38. regulator-name = "SDHCI0 Vcc";
  39. regulator-min-microvolt = <3300000>;
  40. regulator-max-microvolt = <3300000>;
  41. gpios = <&gpio0 ASPEED_GPIO(V, 0) GPIO_ACTIVE_HIGH>;
  42. enable-active-high;
  43. };
  44. vccq_sdhci0: regulator-vccq-sdhci0 {
  45. compatible = "regulator-gpio";
  46. regulator-name = "SDHCI0 VccQ";
  47. regulator-min-microvolt = <1800000>;
  48. regulator-max-microvolt = <3300000>;
  49. gpios = <&gpio0 ASPEED_GPIO(V, 1) GPIO_ACTIVE_HIGH>;
  50. gpios-states = <1>;
  51. states = <3300000 1>,
  52. <1800000 0>;
  53. };
  54. vcc_sdhci1: regulator-vcc-sdhci1 {
  55. compatible = "regulator-fixed";
  56. regulator-name = "SDHCI1 Vcc";
  57. regulator-min-microvolt = <3300000>;
  58. regulator-max-microvolt = <3300000>;
  59. gpios = <&gpio0 ASPEED_GPIO(V, 2) GPIO_ACTIVE_HIGH>;
  60. enable-active-high;
  61. };
  62. vccq_sdhci1: regulator-vccq-sdhci1 {
  63. compatible = "regulator-gpio";
  64. regulator-name = "SDHCI1 VccQ";
  65. regulator-min-microvolt = <1800000>;
  66. regulator-max-microvolt = <3300000>;
  67. gpios = <&gpio0 ASPEED_GPIO(V, 3) GPIO_ACTIVE_HIGH>;
  68. gpios-states = <1>;
  69. states = <3300000 1>,
  70. <1800000 0>;
  71. };
  72. };
  73. &mdio0 {
  74. status = "okay";
  75. ethphy0: ethernet-phy@0 {
  76. compatible = "ethernet-phy-ieee802.3-c22";
  77. reg = <0>;
  78. };
  79. };
  80. &mdio1 {
  81. status = "okay";
  82. ethphy1: ethernet-phy@0 {
  83. compatible = "ethernet-phy-ieee802.3-c22";
  84. reg = <0>;
  85. };
  86. };
  87. &mdio2 {
  88. status = "okay";
  89. ethphy2: ethernet-phy@0 {
  90. compatible = "ethernet-phy-ieee802.3-c22";
  91. reg = <0>;
  92. };
  93. };
  94. &mdio3 {
  95. status = "okay";
  96. ethphy3: ethernet-phy@0 {
  97. compatible = "ethernet-phy-ieee802.3-c22";
  98. reg = <0>;
  99. };
  100. };
  101. &mac0 {
  102. status = "okay";
  103. phy-mode = "rgmii-rxid";
  104. phy-handle = <&ethphy0>;
  105. pinctrl-names = "default";
  106. pinctrl-0 = <&pinctrl_rgmii1_default>;
  107. };
  108. &mac1 {
  109. status = "okay";
  110. phy-mode = "rgmii-rxid";
  111. phy-handle = <&ethphy1>;
  112. pinctrl-names = "default";
  113. pinctrl-0 = <&pinctrl_rgmii2_default>;
  114. };
  115. &mac2 {
  116. status = "okay";
  117. phy-mode = "rgmii";
  118. phy-handle = <&ethphy2>;
  119. pinctrl-names = "default";
  120. pinctrl-0 = <&pinctrl_rgmii3_default>;
  121. };
  122. &mac3 {
  123. status = "okay";
  124. phy-mode = "rgmii";
  125. phy-handle = <&ethphy3>;
  126. pinctrl-names = "default";
  127. pinctrl-0 = <&pinctrl_rgmii4_default>;
  128. };
  129. &emmc_controller {
  130. status = "okay";
  131. };
  132. &emmc {
  133. non-removable;
  134. bus-width = <4>;
  135. max-frequency = <100000000>;
  136. clk-phase-mmc-hs200 = <9>, <225>;
  137. };
  138. &rtc {
  139. status = "okay";
  140. };
  141. &fmc {
  142. status = "okay";
  143. flash@0 {
  144. status = "okay";
  145. m25p,fast-read;
  146. label = "bmc";
  147. spi-rx-bus-width = <4>;
  148. spi-max-frequency = <50000000>;
  149. #include "openbmc-flash-layout-64.dtsi"
  150. };
  151. };
  152. &spi1 {
  153. status = "okay";
  154. pinctrl-names = "default";
  155. pinctrl-0 = <&pinctrl_spi1_default>;
  156. flash@0 {
  157. status = "okay";
  158. m25p,fast-read;
  159. label = "pnor";
  160. spi-rx-bus-width = <4>;
  161. spi-max-frequency = <100000000>;
  162. };
  163. };
  164. &uart5 {
  165. // Workaround for A0
  166. compatible = "snps,dw-apb-uart";
  167. };
  168. &i2c0 {
  169. status = "okay";
  170. };
  171. &i2c1 {
  172. status = "okay";
  173. };
  174. &i2c2 {
  175. status = "okay";
  176. };
  177. &i2c3 {
  178. status = "okay";
  179. };
  180. &i2c4 {
  181. status = "okay";
  182. };
  183. &i2c5 {
  184. status = "okay";
  185. };
  186. &i2c6 {
  187. status = "okay";
  188. };
  189. &i2c7 {
  190. status = "okay";
  191. temp@2e {
  192. compatible = "adi,adt7490";
  193. reg = <0x2e>;
  194. };
  195. eeprom@50 {
  196. compatible = "atmel,24c08";
  197. reg = <0x50>;
  198. pagesize = <16>;
  199. };
  200. };
  201. &i2c8 {
  202. status = "okay";
  203. lm75@4d {
  204. compatible = "national,lm75";
  205. reg = <0x4d>;
  206. };
  207. };
  208. &i2c9 {
  209. status = "okay";
  210. };
  211. &i2c12 {
  212. status = "okay";
  213. };
  214. &i2c13 {
  215. status = "okay";
  216. };
  217. &i2c14 {
  218. status = "okay";
  219. };
  220. &i2c15 {
  221. status = "okay";
  222. };
  223. &fsim0 {
  224. status = "okay";
  225. };
  226. &ehci1 {
  227. status = "okay";
  228. };
  229. &uhci {
  230. status = "okay";
  231. };
  232. &sdc {
  233. status = "okay";
  234. };
  235. /*
  236. * The signal voltage of sdhci0 and sdhci1 on AST2600-A2 EVB is able to be
  237. * toggled by GPIO pins.
  238. * In the reference design, GPIOV0 of AST2600-A2 EVB is connected to the
  239. * power load switch that provides 3.3v to sdhci0 vdd, GPIOV1 is connected to
  240. * a 1.8v and a 3.3v power load switch that provides signal voltage to
  241. * sdhci0 bus.
  242. * If GPIOV0 is active high, sdhci0 is enabled, otherwise, sdhci0 is disabled.
  243. * If GPIOV1 is active high, 3.3v power load switch is enabled, sdhci0 signal
  244. * voltage is 3.3v, otherwise, 1.8v power load switch will be enabled,
  245. * sdhci0 signal voltage becomes 1.8v.
  246. * AST2600-A2 EVB also supports toggling signal voltage for sdhci1.
  247. * The design is the same as sdhci0, it uses GPIOV2 as power-gpio and GPIOV3
  248. * as power-switch-gpio.
  249. */
  250. &sdhci0 {
  251. status = "okay";
  252. bus-width = <4>;
  253. max-frequency = <100000000>;
  254. sdhci-drive-type = /bits/ 8 <3>;
  255. sdhci-caps-mask = <0x7 0x0>;
  256. sdhci,wp-inverted;
  257. vmmc-supply = <&vcc_sdhci0>;
  258. vqmmc-supply = <&vccq_sdhci0>;
  259. clk-phase-sd-hs = <7>, <200>;
  260. };
  261. &sdhci1 {
  262. status = "okay";
  263. bus-width = <4>;
  264. max-frequency = <100000000>;
  265. sdhci-drive-type = /bits/ 8 <3>;
  266. sdhci-caps-mask = <0x7 0x0>;
  267. sdhci,wp-inverted;
  268. vmmc-supply = <&vcc_sdhci1>;
  269. vqmmc-supply = <&vccq_sdhci1>;
  270. clk-phase-sd-hs = <7>, <200>;
  271. };
  272. &vhub {
  273. status = "okay";
  274. pinctrl-names = "default";
  275. };
  276. &video {
  277. status = "okay";
  278. memory-region = <&video_engine_memory>;
  279. };
  280. &gfx {
  281. status = "okay";
  282. memory-region = <&gfx_memory>;
  283. };