sun7i-a20-i12-tvbox.dts 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. /*
  2. * Copyright 2014 Hans de Goede <hdegoede@redhat.com>
  3. *
  4. * The code contained herein is licensed under the GNU General Public
  5. * License. You may obtain a copy of the GNU General Public License
  6. * Version 2 or later at the following locations:
  7. *
  8. * http://www.opensource.org/licenses/gpl-license.html
  9. * http://www.gnu.org/copyleft/gpl.html
  10. */
  11. /dts-v1/;
  12. /include/ "sun7i-a20.dtsi"
  13. /include/ "sunxi-common-regulators.dtsi"
  14. / {
  15. model = "I12 / Q5 / QT840A A20 tvbox";
  16. compatible = "allwinner,i12-tvbox", "allwinner,sun7i-a20";
  17. soc@01c00000 {
  18. mmc0: mmc@01c0f000 {
  19. pinctrl-names = "default";
  20. pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_reference_design>;
  21. vmmc-supply = <&reg_vcc3v3>;
  22. bus-width = <4>;
  23. cd-gpios = <&pio 7 1 0>; /* PH1 */
  24. cd-inverted;
  25. status = "okay";
  26. };
  27. mmc3: mmc@01c12000 {
  28. pinctrl-names = "default";
  29. pinctrl-0 = <&mmc3_pins_a>;
  30. vmmc-supply = <&reg_vmmc3>;
  31. bus-width = <4>;
  32. non-removable;
  33. status = "okay";
  34. };
  35. usbphy: phy@01c13400 {
  36. usb1_vbus-supply = <&reg_usb1_vbus>;
  37. usb2_vbus-supply = <&reg_usb2_vbus>;
  38. status = "okay";
  39. };
  40. ehci0: usb@01c14000 {
  41. status = "okay";
  42. };
  43. ohci0: usb@01c14400 {
  44. status = "okay";
  45. };
  46. ehci1: usb@01c1c000 {
  47. status = "okay";
  48. };
  49. ohci1: usb@01c1c400 {
  50. status = "okay";
  51. };
  52. pinctrl@01c20800 {
  53. mmc3_pins_a: mmc3@0 {
  54. /* AP6210 / AP6330 requires pull-up */
  55. allwinner,pull = <1>;
  56. };
  57. vmmc3_pin_i12_tvbox: vmmc3_pin@0 {
  58. allwinner,pins = "PH2";
  59. allwinner,function = "gpio_out";
  60. allwinner,drive = <0>;
  61. allwinner,pull = <0>;
  62. };
  63. vmmc3_io_pin_i12_tvbox: vmmc3_io_pin@0 {
  64. allwinner,pins = "PH12";
  65. allwinner,function = "gpio_out";
  66. allwinner,drive = <0>;
  67. allwinner,pull = <0>;
  68. };
  69. gmac_power_pin_i12_tvbox: gmac_power_pin@0 {
  70. allwinner,pins = "PH21";
  71. allwinner,function = "gpio_out";
  72. allwinner,drive = <0>;
  73. allwinner,pull = <0>;
  74. };
  75. led_pins_i12_tvbox: led_pins@0 {
  76. allwinner,pins = "PH9", "PH20";
  77. allwinner,function = "gpio_out";
  78. allwinner,drive = <0>;
  79. allwinner,pull = <0>;
  80. };
  81. };
  82. ir0: ir@01c21800 {
  83. pinctrl-names = "default";
  84. pinctrl-0 = <&ir0_pins_a>;
  85. status = "okay";
  86. };
  87. uart0: serial@01c28000 {
  88. pinctrl-names = "default";
  89. pinctrl-0 = <&uart0_pins_a>;
  90. status = "okay";
  91. };
  92. i2c0: i2c@01c2ac00 {
  93. pinctrl-names = "default";
  94. pinctrl-0 = <&i2c0_pins_a>;
  95. status = "okay";
  96. axp209: pmic@34 {
  97. compatible = "x-powers,axp209";
  98. reg = <0x34>;
  99. interrupt-parent = <&nmi_intc>;
  100. interrupts = <0 8>;
  101. interrupt-controller;
  102. #interrupt-cells = <1>;
  103. };
  104. };
  105. gmac: ethernet@01c50000 {
  106. pinctrl-names = "default";
  107. pinctrl-0 = <&gmac_pins_mii_a>;
  108. phy = <&phy1>;
  109. phy-mode = "mii";
  110. phy-supply = <&reg_gmac_3v3>;
  111. status = "okay";
  112. phy1: ethernet-phy@1 {
  113. reg = <1>;
  114. };
  115. };
  116. };
  117. leds {
  118. compatible = "gpio-leds";
  119. pinctrl-names = "default";
  120. pinctrl-0 = <&led_pins_i12_tvbox>;
  121. red {
  122. label = "i12_tvbox:red:usr";
  123. gpios = <&pio 7 9 1>;
  124. };
  125. blue {
  126. label = "i12_tvbox:blue:usr";
  127. gpios = <&pio 7 20 0>;
  128. };
  129. };
  130. reg_usb1_vbus: usb1-vbus {
  131. status = "okay";
  132. };
  133. reg_usb2_vbus: usb2-vbus {
  134. status = "okay";
  135. };
  136. reg_vmmc3: vmmc3 {
  137. compatible = "regulator-fixed";
  138. pinctrl-names = "default";
  139. pinctrl-0 = <&vmmc3_pin_i12_tvbox>;
  140. regulator-name = "vmmc3";
  141. regulator-min-microvolt = <3300000>;
  142. regulator-max-microvolt = <3300000>;
  143. enable-active-high;
  144. gpio = <&pio 7 2 0>;
  145. };
  146. reg_vmmc3_io: vmmc3-io {
  147. compatible = "regulator-fixed";
  148. pinctrl-names = "default";
  149. pinctrl-0 = <&vmmc3_io_pin_i12_tvbox>;
  150. regulator-name = "vmmc3-io";
  151. regulator-min-microvolt = <3300000>;
  152. regulator-max-microvolt = <3300000>;
  153. /* This controls VCC-PI, must be always on! */
  154. regulator-always-on;
  155. enable-active-high;
  156. gpio = <&pio 7 12 0>;
  157. };
  158. reg_gmac_3v3: gmac-3v3 {
  159. compatible = "regulator-fixed";
  160. pinctrl-names = "default";
  161. pinctrl-0 = <&gmac_power_pin_i12_tvbox>;
  162. regulator-name = "gmac-3v3";
  163. regulator-min-microvolt = <3300000>;
  164. regulator-max-microvolt = <3300000>;
  165. startup-delay-us = <50000>;
  166. enable-active-high;
  167. gpio = <&pio 7 21 0>;
  168. };
  169. };