sun7i-a20-hummingbird.dts 4.9 KB

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