sun50i-a64-nanopi-a64.dts 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. // Copyright (C) 2017 Jagan Teki <[email protected]>
  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 = "FriendlyARM NanoPi A64";
  9. compatible = "friendlyarm,nanopi-a64", "allwinner,sun50i-a64";
  10. aliases {
  11. ethernet0 = &emac;
  12. serial0 = &uart0;
  13. };
  14. chosen {
  15. stdout-path = "serial0:115200n8";
  16. };
  17. hdmi-connector {
  18. compatible = "hdmi-connector";
  19. type = "a";
  20. port {
  21. hdmi_con_in: endpoint {
  22. remote-endpoint = <&hdmi_out_con>;
  23. };
  24. };
  25. };
  26. leds {
  27. compatible = "gpio-leds";
  28. led {
  29. label = "nanopi-a64:blue:status";
  30. gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */
  31. };
  32. };
  33. wifi_pwrseq: wifi_pwrseq {
  34. compatible = "mmc-pwrseq-simple";
  35. clocks = <&rtc CLK_OSC32K_FANOUT>;
  36. clock-names = "ext_clock";
  37. reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
  38. };
  39. };
  40. &cpu0 {
  41. cpu-supply = <&reg_dcdc2>;
  42. };
  43. &cpu1 {
  44. cpu-supply = <&reg_dcdc2>;
  45. };
  46. &cpu2 {
  47. cpu-supply = <&reg_dcdc2>;
  48. };
  49. &cpu3 {
  50. cpu-supply = <&reg_dcdc2>;
  51. };
  52. &de {
  53. status = "okay";
  54. };
  55. &ehci0 {
  56. status = "okay";
  57. };
  58. &ehci1 {
  59. status = "okay";
  60. };
  61. &emac {
  62. pinctrl-names = "default";
  63. pinctrl-0 = <&rgmii_pins>;
  64. phy-mode = "rgmii";
  65. phy-handle = <&ext_rgmii_phy>;
  66. phy-supply = <&reg_dcdc1>;
  67. status = "okay";
  68. };
  69. &hdmi {
  70. hvcc-supply = <&reg_dldo1>;
  71. status = "okay";
  72. };
  73. &hdmi_out {
  74. hdmi_out_con: endpoint {
  75. remote-endpoint = <&hdmi_con_in>;
  76. };
  77. };
  78. /* i2c1 connected with gpio headers like pine64, bananapi */
  79. &i2c1_pins {
  80. bias-pull-up;
  81. };
  82. &mdio {
  83. ext_rgmii_phy: ethernet-phy@1 {
  84. compatible = "ethernet-phy-ieee802.3-c22";
  85. reg = <7>;
  86. };
  87. };
  88. &mmc0 {
  89. pinctrl-names = "default";
  90. pinctrl-0 = <&mmc0_pins>;
  91. vmmc-supply = <&reg_dcdc1>;
  92. cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
  93. disable-wp;
  94. bus-width = <4>;
  95. status = "okay";
  96. };
  97. &mmc1 {
  98. pinctrl-names = "default";
  99. pinctrl-0 = <&mmc1_pins>;
  100. vmmc-supply = <&reg_dcdc1>;
  101. vqmmc-supply = <&reg_dldo4>;
  102. mmc-pwrseq = <&wifi_pwrseq>;
  103. bus-width = <4>;
  104. non-removable;
  105. status = "okay";
  106. rtl8189etv: wifi@1 {
  107. reg = <1>;
  108. interrupt-parent = <&r_pio>;
  109. interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */
  110. interrupt-names = "host-wake";
  111. };
  112. };
  113. &ohci0 {
  114. status = "okay";
  115. };
  116. &ohci1 {
  117. status = "okay";
  118. };
  119. &r_rsb {
  120. status = "okay";
  121. axp803: pmic@3a3 {
  122. compatible = "x-powers,axp803";
  123. reg = <0x3a3>;
  124. interrupt-parent = <&r_intc>;
  125. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
  126. };
  127. };
  128. #include "axp803.dtsi"
  129. &ac_power_supply {
  130. status = "okay";
  131. };
  132. &reg_aldo2 {
  133. regulator-always-on;
  134. regulator-min-microvolt = <1800000>;
  135. regulator-max-microvolt = <3300000>;
  136. regulator-name = "vcc-pl";
  137. };
  138. &reg_aldo3 {
  139. regulator-always-on;
  140. regulator-min-microvolt = <3000000>;
  141. regulator-max-microvolt = <3000000>;
  142. regulator-name = "vcc-pll-avcc";
  143. };
  144. &reg_dcdc1 {
  145. regulator-always-on;
  146. regulator-min-microvolt = <3300000>;
  147. regulator-max-microvolt = <3300000>;
  148. regulator-name = "vcc-3v3";
  149. };
  150. &reg_dcdc2 {
  151. regulator-always-on;
  152. regulator-min-microvolt = <1040000>;
  153. regulator-max-microvolt = <1300000>;
  154. regulator-name = "vdd-cpux";
  155. };
  156. /* DCDC3 is polyphased with DCDC2 */
  157. &reg_dcdc5 {
  158. regulator-always-on;
  159. regulator-min-microvolt = <1500000>;
  160. regulator-max-microvolt = <1500000>;
  161. regulator-name = "vcc-dram";
  162. };
  163. &reg_dcdc6 {
  164. regulator-always-on;
  165. regulator-min-microvolt = <1100000>;
  166. regulator-max-microvolt = <1100000>;
  167. regulator-name = "vdd-sys";
  168. };
  169. &reg_dldo1 {
  170. regulator-always-on;
  171. regulator-min-microvolt = <3300000>;
  172. regulator-max-microvolt = <3300000>;
  173. regulator-name = "vcc-hdmi-dsi";
  174. };
  175. &reg_dldo4 {
  176. regulator-always-on;
  177. regulator-min-microvolt = <3000000>;
  178. regulator-max-microvolt = <3000000>;
  179. regulator-name = "vcc-pg-wifi-io";
  180. };
  181. &reg_eldo1 {
  182. regulator-min-microvolt = <1800000>;
  183. regulator-max-microvolt = <1800000>;
  184. regulator-name = "cpvdd";
  185. };
  186. &reg_fldo1 {
  187. regulator-min-microvolt = <1200000>;
  188. regulator-max-microvolt = <1200000>;
  189. regulator-name = "vcc-1v2-hsic";
  190. };
  191. /*
  192. * The A64 chip cannot work without this regulator off, although
  193. * it seems to be only driving the AR100 core.
  194. * Maybe we don't still know well about CPUs domain.
  195. */
  196. &reg_fldo2 {
  197. regulator-always-on;
  198. regulator-min-microvolt = <1100000>;
  199. regulator-max-microvolt = <1100000>;
  200. regulator-name = "vdd-cpus";
  201. };
  202. &reg_rtc_ldo {
  203. regulator-name = "vcc-rtc";
  204. };
  205. &simplefb_hdmi {
  206. vcc-hdmi-supply = <&reg_dldo1>;
  207. };
  208. &uart0 {
  209. pinctrl-names = "default";
  210. pinctrl-0 = <&uart0_pb_pins>;
  211. status = "okay";
  212. };
  213. &usbphy {
  214. status = "okay";
  215. };