sun50i-h6-beelink-gs1.dts 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. // Copyright (C) 2019 Clément Péron <[email protected]>
  3. /dts-v1/;
  4. #include "sun50i-h6.dtsi"
  5. #include "sun50i-h6-cpu-opp.dtsi"
  6. #include "sun50i-h6-gpu-opp.dtsi"
  7. #include <dt-bindings/gpio/gpio.h>
  8. / {
  9. model = "Beelink GS1";
  10. compatible = "azw,beelink-gs1", "allwinner,sun50i-h6";
  11. aliases {
  12. ethernet0 = &emac;
  13. serial0 = &uart0;
  14. };
  15. chosen {
  16. stdout-path = "serial0:115200n8";
  17. };
  18. connector {
  19. compatible = "hdmi-connector";
  20. type = "a";
  21. ddc-en-gpios = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */
  22. port {
  23. hdmi_con_in: endpoint {
  24. remote-endpoint = <&hdmi_out_con>;
  25. };
  26. };
  27. };
  28. ext_osc32k: ext_osc32k_clk {
  29. #clock-cells = <0>;
  30. compatible = "fixed-clock";
  31. clock-frequency = <32768>;
  32. clock-output-names = "ext_osc32k";
  33. };
  34. leds {
  35. compatible = "gpio-leds";
  36. led {
  37. label = "beelink:white:power";
  38. gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
  39. default-state = "on";
  40. };
  41. };
  42. reg_vcc5v: vcc5v {
  43. /* board wide 5V supply directly from the DC jack */
  44. compatible = "regulator-fixed";
  45. regulator-name = "vcc-5v";
  46. regulator-min-microvolt = <5000000>;
  47. regulator-max-microvolt = <5000000>;
  48. regulator-always-on;
  49. };
  50. sound-spdif {
  51. compatible = "simple-audio-card";
  52. simple-audio-card,name = "sun50i-h6-spdif";
  53. simple-audio-card,cpu {
  54. sound-dai = <&spdif>;
  55. };
  56. simple-audio-card,codec {
  57. sound-dai = <&spdif_out>;
  58. };
  59. };
  60. spdif_out: spdif-out {
  61. #sound-dai-cells = <0>;
  62. compatible = "linux,spdif-dit";
  63. };
  64. };
  65. &cpu0 {
  66. cpu-supply = <&reg_dcdca>;
  67. };
  68. &de {
  69. status = "okay";
  70. };
  71. &dwc3 {
  72. status = "okay";
  73. };
  74. &ehci0 {
  75. status = "okay";
  76. };
  77. &emac {
  78. pinctrl-names = "default";
  79. pinctrl-0 = <&ext_rgmii_pins>;
  80. phy-mode = "rgmii-id";
  81. phy-handle = <&ext_rgmii_phy>;
  82. phy-supply = <&reg_aldo2>;
  83. status = "okay";
  84. };
  85. &gpu {
  86. mali-supply = <&reg_dcdcc>;
  87. status = "okay";
  88. };
  89. &hdmi {
  90. status = "okay";
  91. };
  92. &hdmi_out {
  93. hdmi_out_con: endpoint {
  94. remote-endpoint = <&hdmi_con_in>;
  95. };
  96. };
  97. &mdio {
  98. ext_rgmii_phy: ethernet-phy@1 {
  99. compatible = "ethernet-phy-ieee802.3-c22";
  100. reg = <1>;
  101. };
  102. };
  103. &mmc0 {
  104. vmmc-supply = <&reg_cldo1>;
  105. cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
  106. bus-width = <4>;
  107. status = "okay";
  108. };
  109. &mmc2 {
  110. vmmc-supply = <&reg_cldo1>;
  111. vqmmc-supply = <&reg_bldo2>;
  112. non-removable;
  113. cap-mmc-hw-reset;
  114. bus-width = <8>;
  115. status = "okay";
  116. };
  117. &ohci0 {
  118. status = "okay";
  119. };
  120. &pio {
  121. vcc-pd-supply = <&reg_cldo1>;
  122. vcc-pg-supply = <&reg_aldo1>;
  123. };
  124. &r_ir {
  125. linux,rc-map-name = "rc-beelink-gs1";
  126. status = "okay";
  127. };
  128. &r_pio {
  129. /*
  130. * FIXME: We can't add that supply for now since it would
  131. * create a circular dependency between pinctrl, the regulator
  132. * and the RSB Bus.
  133. *
  134. * vcc-pl-supply = <&reg_aldo1>;
  135. */
  136. vcc-pm-supply = <&reg_aldo1>;
  137. };
  138. &r_rsb {
  139. status = "okay";
  140. axp805: pmic@745 {
  141. compatible = "x-powers,axp805", "x-powers,axp806";
  142. reg = <0x745>;
  143. interrupt-parent = <&r_intc>;
  144. interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_LOW>;
  145. interrupt-controller;
  146. #interrupt-cells = <1>;
  147. x-powers,self-working-mode;
  148. vina-supply = <&reg_vcc5v>;
  149. vinb-supply = <&reg_vcc5v>;
  150. vinc-supply = <&reg_vcc5v>;
  151. vind-supply = <&reg_vcc5v>;
  152. vine-supply = <&reg_vcc5v>;
  153. aldoin-supply = <&reg_vcc5v>;
  154. bldoin-supply = <&reg_vcc5v>;
  155. cldoin-supply = <&reg_vcc5v>;
  156. regulators {
  157. reg_aldo1: aldo1 {
  158. regulator-always-on;
  159. regulator-min-microvolt = <3300000>;
  160. regulator-max-microvolt = <3300000>;
  161. regulator-name = "vcc-pl";
  162. };
  163. reg_aldo2: aldo2 {
  164. regulator-min-microvolt = <3300000>;
  165. regulator-max-microvolt = <3300000>;
  166. regulator-name = "vcc-ac200";
  167. regulator-enable-ramp-delay = <100000>;
  168. };
  169. reg_aldo3: aldo3 {
  170. regulator-always-on;
  171. regulator-min-microvolt = <3300000>;
  172. regulator-max-microvolt = <3300000>;
  173. regulator-name = "vcc25-dram";
  174. };
  175. reg_bldo1: bldo1 {
  176. regulator-always-on;
  177. regulator-min-microvolt = <1800000>;
  178. regulator-max-microvolt = <1800000>;
  179. regulator-name = "vcc-bias-pll";
  180. };
  181. reg_bldo2: bldo2 {
  182. regulator-always-on;
  183. regulator-min-microvolt = <1800000>;
  184. regulator-max-microvolt = <1800000>;
  185. regulator-name = "vcc-efuse-pcie-hdmi-io";
  186. };
  187. reg_bldo3: bldo3 {
  188. regulator-always-on;
  189. regulator-min-microvolt = <1800000>;
  190. regulator-max-microvolt = <1800000>;
  191. regulator-name = "vcc-dcxoio";
  192. };
  193. bldo4 {
  194. /* unused */
  195. };
  196. reg_cldo1: cldo1 {
  197. regulator-always-on;
  198. regulator-min-microvolt = <3300000>;
  199. regulator-max-microvolt = <3300000>;
  200. regulator-name = "vcc-3v3";
  201. };
  202. reg_cldo2: cldo2 {
  203. regulator-min-microvolt = <3300000>;
  204. regulator-max-microvolt = <3300000>;
  205. regulator-name = "vcc-wifi-1";
  206. };
  207. reg_cldo3: cldo3 {
  208. regulator-min-microvolt = <3300000>;
  209. regulator-max-microvolt = <3300000>;
  210. regulator-name = "vcc-wifi-2";
  211. };
  212. reg_dcdca: dcdca {
  213. regulator-always-on;
  214. regulator-min-microvolt = <810000>;
  215. regulator-max-microvolt = <1160000>;
  216. regulator-ramp-delay = <2500>;
  217. regulator-name = "vdd-cpu";
  218. };
  219. reg_dcdcc: dcdcc {
  220. regulator-enable-ramp-delay = <32000>;
  221. regulator-min-microvolt = <810000>;
  222. regulator-max-microvolt = <1080000>;
  223. regulator-ramp-delay = <2500>;
  224. regulator-name = "vdd-gpu";
  225. };
  226. reg_dcdcd: dcdcd {
  227. regulator-always-on;
  228. regulator-min-microvolt = <960000>;
  229. regulator-max-microvolt = <960000>;
  230. regulator-name = "vdd-sys";
  231. };
  232. reg_dcdce: dcdce {
  233. regulator-always-on;
  234. regulator-min-microvolt = <1200000>;
  235. regulator-max-microvolt = <1200000>;
  236. regulator-name = "vcc-dram";
  237. };
  238. sw {
  239. /* unused */
  240. };
  241. };
  242. };
  243. };
  244. &spdif {
  245. status = "okay";
  246. };
  247. &uart0 {
  248. pinctrl-names = "default";
  249. pinctrl-0 = <&uart0_ph_pins>;
  250. status = "okay";
  251. };
  252. &usb2otg {
  253. dr_mode = "host";
  254. status = "okay";
  255. };
  256. &usb2phy {
  257. usb0_vbus-supply = <&reg_vcc5v>;
  258. status = "okay";
  259. };
  260. &usb3phy {
  261. status = "okay";
  262. };