sun7i-a20-hummingbird.dts 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. /*
  2. * Copyright 2013 Wills Wang
  3. *
  4. * Wills Wang <wills.wang.open@gmail.com>
  5. *
  6. * The code contained herein is licensed under the GNU General Public
  7. * License. You may obtain a copy of the GNU General Public License
  8. * Version 2 or later at the following locations:
  9. *
  10. * http://www.opensource.org/licenses/gpl-license.html
  11. * http://www.gnu.org/copyleft/gpl.html
  12. */
  13. /dts-v1/;
  14. /include/ "sun7i-a20.dtsi"
  15. /include/ "sunxi-common-regulators.dtsi"
  16. / {
  17. model = "Merrii A20 Hummingbird";
  18. compatible = "merrii,a20-hummingbird", "allwinner,sun7i-a20";
  19. aliases {
  20. serial0 = &uart0;
  21. serial1 = &uart2;
  22. serial2 = &uart3;
  23. serial3 = &uart4;
  24. serial4 = &uart5;
  25. };
  26. soc@01c00000 {
  27. mmc0: mmc@01c0f000 {
  28. pinctrl-names = "default";
  29. pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_reference_design>;
  30. vmmc-supply = <&reg_vcc3v0>;
  31. bus-width = <4>;
  32. cd-gpios = <&pio 7 1 0>; /* PH1 */
  33. cd-inverted;
  34. status = "okay";
  35. };
  36. mmc3: mmc@01c12000 {
  37. pinctrl-names = "default";
  38. pinctrl-0 = <&mmc3_pins_a>;
  39. vmmc-supply = <&reg_mmc3_vdd>;
  40. bus-width = <4>;
  41. non-removable;
  42. status = "okay";
  43. };
  44. usbphy: phy@01c13400 {
  45. usb1_vbus-supply = <&reg_usb1_vbus>;
  46. usb2_vbus-supply = <&reg_usb2_vbus>;
  47. status = "okay";
  48. };
  49. ehci0: usb@01c14000 {
  50. status = "okay";
  51. };
  52. ohci0: usb@01c14400 {
  53. status = "okay";
  54. };
  55. ahci: sata@01c18000 {
  56. target-supply = <&reg_ahci_5v>;
  57. status = "okay";
  58. };
  59. ehci1: usb@01c1c000 {
  60. status = "okay";
  61. };
  62. ohci1: usb@01c1c400 {
  63. status = "okay";
  64. };
  65. pio: pinctrl@01c20800 {
  66. ahci_pwr_pin_a20_hummingbird: ahci_pwr_pin@0 {
  67. allwinner,pins = "PH15";
  68. allwinner,function = "gpio_out";
  69. allwinner,drive = <0>;
  70. allwinner,pull = <0>;
  71. };
  72. usb1_vbus_pin_a20_hummingbird: usb1_vbus_pin@0 {
  73. allwinner,pins = "PH2";
  74. allwinner,function = "gpio_out";
  75. allwinner,drive = <0>;
  76. allwinner,pull = <0>;
  77. };
  78. mmc3_vdd_pin_a20_hummingbird: mmc3_vdd_pin@0 {
  79. allwinner,pins = "PH9";
  80. allwinner,function = "gpio_out";
  81. allwinner,drive = <0>;
  82. allwinner,pull = <0>;
  83. };
  84. gmac_vdd_pin_a20_hummingbird: gmac_vdd_pin@0 {
  85. allwinner,pins = "PH16";
  86. allwinner,function = "gpio_out";
  87. allwinner,drive = <0>;
  88. allwinner,pull = <0>;
  89. };
  90. };
  91. pwm: pwm@01c20e00 {
  92. pinctrl-names = "default";
  93. pinctrl-0 = <&pwm0_pins_a>;
  94. status = "okay";
  95. };
  96. ir0: ir@01c21800 {
  97. pinctrl-names = "default";
  98. pinctrl-0 = <&ir0_pins_a>;
  99. status = "okay";
  100. };
  101. uart0: serial@01c28000 {
  102. pinctrl-names = "default";
  103. pinctrl-0 = <&uart0_pins_a>;
  104. status = "okay";
  105. };
  106. uart2: serial@01c28800 {
  107. pinctrl-names = "default";
  108. pinctrl-0 = <&uart2_pins_a>;
  109. status = "okay";
  110. };
  111. uart3: serial@01c28c00 {
  112. pinctrl-names = "default";
  113. pinctrl-0 = <&uart3_pins_a>;
  114. status = "okay";
  115. };
  116. uart4: serial@01c29000 {
  117. pinctrl-names = "default";
  118. pinctrl-0 = <&uart4_pins_a>;
  119. status = "okay";
  120. };
  121. uart5: serial@01c29400 {
  122. pinctrl-names = "default";
  123. pinctrl-0 = <&uart5_pins_a>;
  124. status = "okay";
  125. };
  126. i2c0: i2c@01c2ac00 {
  127. pinctrl-names = "default";
  128. pinctrl-0 = <&i2c0_pins_a>;
  129. status = "okay";
  130. axp209: pmic@34 {
  131. compatible = "x-powers,axp209";
  132. reg = <0x34>;
  133. interrupt-parent = <&nmi_intc>;
  134. interrupts = <0 8>;
  135. interrupt-controller;
  136. #interrupt-cells = <1>;
  137. };
  138. };
  139. i2c1: i2c@01c2b000 {
  140. pinctrl-names = "default";
  141. pinctrl-0 = <&i2c1_pins_a>;
  142. status = "okay";
  143. };
  144. i2c2: i2c@01c2b400 {
  145. pinctrl-names = "default";
  146. pinctrl-0 = <&i2c2_pins_a>;
  147. status = "okay";
  148. };
  149. i2c3: i2c@01c2b800 {
  150. pinctrl-names = "default";
  151. pinctrl-0 = <&i2c3_pins_a>;
  152. status = "okay";
  153. };
  154. spi2: spi@01c17000 {
  155. pinctrl-names = "default";
  156. pinctrl-0 = <&spi2_pins_b>;
  157. status = "okay";
  158. };
  159. gmac: ethernet@01c50000 {
  160. pinctrl-names = "default";
  161. pinctrl-0 = <&gmac_pins_rgmii_a>;
  162. phy = <&phy1>;
  163. phy-mode = "rgmii";
  164. phy-supply = <&reg_gmac_vdd>;
  165. /* phy reset config */
  166. snps,reset-gpio = <&pio 0 17 0>; /* PA17 */
  167. snps,reset-active-low;
  168. /* wait 1s after reset, otherwise fail to read phy id */
  169. snps,reset-delays-us = <0 10000 1000000>;
  170. status = "okay";
  171. phy1: ethernet-phy@1 {
  172. reg = <1>;
  173. };
  174. };
  175. };
  176. reg_ahci_5v: ahci-5v {
  177. pinctrl-0 = <&ahci_pwr_pin_a20_hummingbird>;
  178. gpio = <&pio 7 15 0>; /* PH15 */
  179. status = "okay";
  180. };
  181. reg_usb1_vbus: usb1-vbus {
  182. pinctrl-0 = <&usb1_vbus_pin_a20_hummingbird>;
  183. gpio = <&pio 7 2 0>; /* PH2 */
  184. status = "okay";
  185. };
  186. reg_usb2_vbus: usb2-vbus {
  187. status = "okay";
  188. };
  189. reg_mmc3_vdd: mmc3_vdd {
  190. compatible = "regulator-fixed";
  191. pinctrl-names = "default";
  192. pinctrl-0 = <&mmc3_vdd_pin_a20_hummingbird>;
  193. regulator-name = "mmc3_vdd";
  194. regulator-min-microvolt = <3000000>;
  195. regulator-max-microvolt = <3000000>;
  196. enable-active-high;
  197. gpio = <&pio 7 9 0>; /* PH9 */
  198. };
  199. reg_gmac_vdd: gmac_vdd {
  200. compatible = "regulator-fixed";
  201. pinctrl-names = "default";
  202. pinctrl-0 = <&gmac_vdd_pin_a20_hummingbird>;
  203. regulator-name = "gmac_vdd";
  204. regulator-min-microvolt = <3000000>;
  205. regulator-max-microvolt = <3000000>;
  206. enable-active-high;
  207. gpio = <&pio 7 16 0>; /* PH16 */
  208. };
  209. };