sun50i-a64-pine64.dts 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. // Copyright (c) 2016 ARM Ltd.
  3. /dts-v1/;
  4. #include "sun50i-a64.dtsi"
  5. #include "sun50i-a64-cpu-opp.dtsi"
  6. #include <dt-bindings/gpio/gpio.h>
  7. / {
  8. model = "Pine64";
  9. compatible = "pine64,pine64", "allwinner,sun50i-a64";
  10. aliases {
  11. ethernet0 = &emac;
  12. serial0 = &uart0;
  13. serial1 = &uart1;
  14. serial2 = &uart2;
  15. serial3 = &uart3;
  16. serial4 = &uart4;
  17. };
  18. chosen {
  19. stdout-path = "serial0:115200n8";
  20. };
  21. hdmi-connector {
  22. compatible = "hdmi-connector";
  23. type = "a";
  24. port {
  25. hdmi_con_in: endpoint {
  26. remote-endpoint = <&hdmi_out_con>;
  27. };
  28. };
  29. };
  30. };
  31. &codec {
  32. status = "okay";
  33. };
  34. &codec_analog {
  35. cpvdd-supply = <&reg_eldo1>;
  36. status = "okay";
  37. };
  38. &cpu0 {
  39. cpu-supply = <&reg_dcdc2>;
  40. };
  41. &cpu1 {
  42. cpu-supply = <&reg_dcdc2>;
  43. };
  44. &cpu2 {
  45. cpu-supply = <&reg_dcdc2>;
  46. };
  47. &cpu3 {
  48. cpu-supply = <&reg_dcdc2>;
  49. };
  50. &dai {
  51. status = "okay";
  52. };
  53. &de {
  54. status = "okay";
  55. };
  56. &ehci0 {
  57. status = "okay";
  58. };
  59. &ehci1 {
  60. status = "okay";
  61. };
  62. &emac {
  63. pinctrl-names = "default";
  64. pinctrl-0 = <&rmii_pins>;
  65. phy-mode = "rmii";
  66. phy-handle = <&ext_rmii_phy1>;
  67. phy-supply = <&reg_dc1sw>;
  68. status = "okay";
  69. };
  70. &hdmi {
  71. hvcc-supply = <&reg_dldo1>;
  72. status = "okay";
  73. };
  74. &hdmi_out {
  75. hdmi_out_con: endpoint {
  76. remote-endpoint = <&hdmi_con_in>;
  77. };
  78. };
  79. &i2c1 {
  80. status = "okay";
  81. };
  82. &i2c1_pins {
  83. bias-pull-up;
  84. };
  85. &mdio {
  86. ext_rmii_phy1: ethernet-phy@1 {
  87. compatible = "ethernet-phy-ieee802.3-c22";
  88. reg = <1>;
  89. };
  90. };
  91. &mmc0 {
  92. pinctrl-names = "default";
  93. pinctrl-0 = <&mmc0_pins>;
  94. vmmc-supply = <&reg_dcdc1>;
  95. cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
  96. disable-wp;
  97. bus-width = <4>;
  98. status = "okay";
  99. };
  100. &ohci0 {
  101. status = "okay";
  102. };
  103. &ohci1 {
  104. status = "okay";
  105. };
  106. &r_rsb {
  107. status = "okay";
  108. axp803: pmic@3a3 {
  109. compatible = "x-powers,axp803";
  110. reg = <0x3a3>;
  111. interrupt-parent = <&r_intc>;
  112. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
  113. };
  114. };
  115. #include "axp803.dtsi"
  116. &ac_power_supply {
  117. status = "okay";
  118. };
  119. &battery_power_supply {
  120. status = "okay";
  121. };
  122. &reg_aldo2 {
  123. regulator-always-on;
  124. regulator-min-microvolt = <1800000>;
  125. regulator-max-microvolt = <3300000>;
  126. regulator-name = "vcc-pl";
  127. };
  128. &reg_aldo3 {
  129. regulator-always-on;
  130. regulator-min-microvolt = <3000000>;
  131. regulator-max-microvolt = <3000000>;
  132. regulator-name = "vcc-pll-avcc";
  133. };
  134. &reg_dc1sw {
  135. regulator-name = "vcc-phy";
  136. };
  137. &reg_dcdc1 {
  138. regulator-always-on;
  139. regulator-min-microvolt = <3300000>;
  140. regulator-max-microvolt = <3300000>;
  141. regulator-name = "vcc-3v3";
  142. };
  143. &reg_dcdc2 {
  144. regulator-always-on;
  145. regulator-min-microvolt = <1040000>;
  146. regulator-max-microvolt = <1300000>;
  147. regulator-name = "vdd-cpux";
  148. };
  149. /* DCDC3 is polyphased with DCDC2 */
  150. /*
  151. * The DRAM chips used by Pine64 boards are DDR3L-compatible, so they can
  152. * work at 1.35V with less power consumption.
  153. * As AXP803 DCDC5 cannot reach 1.35V accurately, use 1.36V instead.
  154. */
  155. &reg_dcdc5 {
  156. regulator-always-on;
  157. regulator-min-microvolt = <1360000>;
  158. regulator-max-microvolt = <1360000>;
  159. regulator-name = "vcc-dram";
  160. };
  161. &reg_dcdc6 {
  162. regulator-always-on;
  163. regulator-min-microvolt = <1100000>;
  164. regulator-max-microvolt = <1100000>;
  165. regulator-name = "vdd-sys";
  166. };
  167. &reg_dldo1 {
  168. regulator-min-microvolt = <3300000>;
  169. regulator-max-microvolt = <3300000>;
  170. regulator-name = "vcc-hdmi";
  171. };
  172. &reg_dldo2 {
  173. regulator-min-microvolt = <3300000>;
  174. regulator-max-microvolt = <3300000>;
  175. regulator-name = "vcc-mipi";
  176. };
  177. &reg_dldo4 {
  178. regulator-min-microvolt = <3300000>;
  179. regulator-max-microvolt = <3300000>;
  180. regulator-name = "vcc-wifi";
  181. };
  182. &reg_eldo1 {
  183. regulator-min-microvolt = <1800000>;
  184. regulator-max-microvolt = <1800000>;
  185. regulator-name = "cpvdd";
  186. };
  187. &reg_fldo1 {
  188. regulator-min-microvolt = <1200000>;
  189. regulator-max-microvolt = <1200000>;
  190. regulator-name = "vcc-1v2-hsic";
  191. };
  192. /*
  193. * The A64 chip cannot work without this regulator off, although
  194. * it seems to be only driving the AR100 core.
  195. * Maybe we don't still know well about CPUs domain.
  196. */
  197. &reg_fldo2 {
  198. regulator-always-on;
  199. regulator-min-microvolt = <1100000>;
  200. regulator-max-microvolt = <1100000>;
  201. regulator-name = "vdd-cpus";
  202. };
  203. &reg_rtc_ldo {
  204. regulator-name = "vcc-rtc";
  205. };
  206. &simplefb_hdmi {
  207. vcc-hdmi-supply = <&reg_dldo1>;
  208. };
  209. &sound {
  210. simple-audio-card,aux-devs = <&codec_analog>;
  211. simple-audio-card,widgets = "Microphone", "Microphone Jack",
  212. "Headphone", "Headphone Jack";
  213. simple-audio-card,routing =
  214. "Left DAC", "DACL",
  215. "Right DAC", "DACR",
  216. "Headphone Jack", "HP",
  217. "ADCL", "Left ADC",
  218. "ADCR", "Right ADC",
  219. "MIC2", "Microphone Jack";
  220. status = "okay";
  221. };
  222. /* On Euler connector */
  223. &spdif {
  224. status = "disabled";
  225. };
  226. /* On Exp and Euler connectors */
  227. &uart0 {
  228. pinctrl-names = "default";
  229. pinctrl-0 = <&uart0_pb_pins>;
  230. status = "okay";
  231. };
  232. /* On Wifi/BT connector, with RTS/CTS */
  233. &uart1 {
  234. pinctrl-names = "default";
  235. pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
  236. status = "disabled";
  237. };
  238. /* On Pi-2 connector */
  239. &uart2 {
  240. pinctrl-names = "default";
  241. pinctrl-0 = <&uart2_pins>;
  242. status = "disabled";
  243. };
  244. /* On Euler connector */
  245. &uart3 {
  246. pinctrl-names = "default";
  247. pinctrl-0 = <&uart3_pins>;
  248. status = "disabled";
  249. };
  250. /* On Euler connector, RTS/CTS optional */
  251. &uart4 {
  252. pinctrl-names = "default";
  253. pinctrl-0 = <&uart4_pins>;
  254. status = "disabled";
  255. };
  256. &usb_otg {
  257. dr_mode = "host";
  258. status = "okay";
  259. };
  260. &usbphy {
  261. status = "okay";
  262. };