meson-gxm-nexbox-a1.dts 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright (c) 2016 BayLibre, SAS.
  4. * Author: Neil Armstrong <[email protected]>
  5. *
  6. * Copyright (c) 2016 Endless Computers, Inc.
  7. * Author: Carlo Caione <[email protected]>
  8. */
  9. /dts-v1/;
  10. #include "meson-gxm.dtsi"
  11. #include <dt-bindings/sound/meson-aiu.h>
  12. / {
  13. compatible = "nexbox,a1", "amlogic,s912", "amlogic,meson-gxm";
  14. model = "NEXBOX A1";
  15. aliases {
  16. serial0 = &uart_AO;
  17. ethernet0 = &ethmac;
  18. };
  19. chosen {
  20. stdout-path = "serial0:115200n8";
  21. };
  22. spdif_dit: audio-codec-0 {
  23. #sound-dai-cells = <0>;
  24. compatible = "linux,spdif-dit";
  25. status = "okay";
  26. sound-name-prefix = "DIT";
  27. };
  28. memory@0 {
  29. device_type = "memory";
  30. reg = <0x0 0x0 0x0 0x80000000>;
  31. };
  32. vddio_boot: regulator-vddio-boot {
  33. compatible = "regulator-fixed";
  34. regulator-name = "VDDIO_BOOT";
  35. regulator-min-microvolt = <1800000>;
  36. regulator-max-microvolt = <1800000>;
  37. };
  38. vddao_3v3: regulator-vddao-3v3 {
  39. compatible = "regulator-fixed";
  40. regulator-name = "VDDAO_3V3";
  41. regulator-min-microvolt = <3300000>;
  42. regulator-max-microvolt = <3300000>;
  43. };
  44. vcc_3v3: regulator-vcc-3v3 {
  45. compatible = "regulator-fixed";
  46. regulator-name = "VCC_3V3";
  47. regulator-min-microvolt = <3300000>;
  48. regulator-max-microvolt = <3300000>;
  49. };
  50. emmc_pwrseq: emmc-pwrseq {
  51. compatible = "mmc-pwrseq-emmc";
  52. reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
  53. };
  54. cvbs-connector {
  55. compatible = "composite-video-connector";
  56. port {
  57. cvbs_connector_in: endpoint {
  58. remote-endpoint = <&cvbs_vdac_out>;
  59. };
  60. };
  61. };
  62. hdmi-connector {
  63. compatible = "hdmi-connector";
  64. type = "a";
  65. port {
  66. hdmi_connector_in: endpoint {
  67. remote-endpoint = <&hdmi_tx_tmds_out>;
  68. };
  69. };
  70. };
  71. sound {
  72. compatible = "amlogic,gx-sound-card";
  73. model = "NEXBOX-A1";
  74. assigned-clocks = <&clkc CLKID_MPLL0>,
  75. <&clkc CLKID_MPLL1>,
  76. <&clkc CLKID_MPLL2>;
  77. assigned-clock-parents = <0>, <0>, <0>;
  78. assigned-clock-rates = <294912000>,
  79. <270950400>,
  80. <393216000>;
  81. status = "okay";
  82. dai-link-0 {
  83. sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
  84. };
  85. dai-link-1 {
  86. sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>;
  87. };
  88. dai-link-2 {
  89. sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
  90. dai-format = "i2s";
  91. mclk-fs = <256>;
  92. codec-0 {
  93. sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
  94. };
  95. };
  96. dai-link-3 {
  97. sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>;
  98. codec-0 {
  99. sound-dai = <&spdif_dit>;
  100. };
  101. };
  102. dai-link-4 {
  103. sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
  104. codec-0 {
  105. sound-dai = <&hdmi_tx>;
  106. };
  107. };
  108. };
  109. };
  110. &aiu {
  111. status = "okay";
  112. pinctrl-0 = <&spdif_out_h_pins>;
  113. pinctrl-names = "default";
  114. };
  115. &cec_AO {
  116. status = "okay";
  117. pinctrl-0 = <&ao_cec_pins>;
  118. pinctrl-names = "default";
  119. hdmi-phandle = <&hdmi_tx>;
  120. };
  121. &cvbs_vdac_port {
  122. cvbs_vdac_out: endpoint {
  123. remote-endpoint = <&cvbs_connector_in>;
  124. };
  125. };
  126. &ethmac {
  127. status = "okay";
  128. pinctrl-0 = <&eth_pins>;
  129. pinctrl-names = "default";
  130. /* Select external PHY by default */
  131. phy-handle = <&external_phy>;
  132. amlogic,tx-delay-ns = <2>;
  133. /* External PHY is in RGMII */
  134. phy-mode = "rgmii";
  135. };
  136. &external_mdio {
  137. external_phy: ethernet-phy@0 {
  138. /* Realtek RTL8211F (0x001cc916) */
  139. reg = <0>;
  140. max-speed = <1000>;
  141. reset-assert-us = <10000>;
  142. reset-deassert-us = <80000>;
  143. reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
  144. };
  145. };
  146. &hdmi_tx {
  147. status = "okay";
  148. pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
  149. pinctrl-names = "default";
  150. };
  151. &hdmi_tx_tmds_port {
  152. hdmi_tx_tmds_out: endpoint {
  153. remote-endpoint = <&hdmi_connector_in>;
  154. };
  155. };
  156. &ir {
  157. status = "okay";
  158. pinctrl-0 = <&remote_input_ao_pins>;
  159. pinctrl-names = "default";
  160. };
  161. /* SD card */
  162. &sd_emmc_b {
  163. status = "okay";
  164. pinctrl-0 = <&sdcard_pins>;
  165. pinctrl-1 = <&sdcard_clk_gate_pins>;
  166. pinctrl-names = "default", "clk-gate";
  167. bus-width = <4>;
  168. cap-sd-highspeed;
  169. max-frequency = <50000000>;
  170. disable-wp;
  171. cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
  172. vmmc-supply = <&vddao_3v3>;
  173. vqmmc-supply = <&vddio_boot>;
  174. };
  175. /* eMMC */
  176. &sd_emmc_c {
  177. status = "okay";
  178. pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
  179. pinctrl-1 = <&emmc_clk_gate_pins>;
  180. pinctrl-names = "default", "clk-gate";
  181. bus-width = <8>;
  182. cap-mmc-highspeed;
  183. max-frequency = <200000000>;
  184. non-removable;
  185. disable-wp;
  186. mmc-ddr-1_8v;
  187. mmc-hs200-1_8v;
  188. mmc-pwrseq = <&emmc_pwrseq>;
  189. vmmc-supply = <&vcc_3v3>;
  190. vqmmc-supply = <&vddio_boot>;
  191. };
  192. &uart_AO {
  193. status = "okay";
  194. pinctrl-0 = <&uart_ao_a_pins>;
  195. pinctrl-names = "default";
  196. };
  197. &usb {
  198. status = "okay";
  199. dr_mode = "host";
  200. };