meson-gxm-rbox-pro.dts 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright (c) 2016-2017 Andreas Färber
  4. *
  5. * Based on nexbox-a1:
  6. *
  7. * Copyright (c) 2016 BayLibre, SAS.
  8. * Author: Neil Armstrong <narmstrong@baylibre.com>
  9. *
  10. * Copyright (c) 2016 Endless Computers, Inc.
  11. * Author: Carlo Caione <carlo@endlessm.com>
  12. */
  13. /dts-v1/;
  14. #include "meson-gxm.dtsi"
  15. #include <dt-bindings/sound/meson-aiu.h>
  16. / {
  17. compatible = "kingnovel,r-box-pro", "amlogic,s912", "amlogic,meson-gxm";
  18. model = "R-Box Pro";
  19. aliases {
  20. serial0 = &uart_AO;
  21. ethernet0 = &ethmac;
  22. };
  23. chosen {
  24. stdout-path = "serial0:115200n8";
  25. };
  26. memory@0 {
  27. device_type = "memory";
  28. reg = <0x0 0x0 0x0 0x80000000>; /* 2 GiB or 3 GiB */
  29. };
  30. spdif_dit: audio-codec-0 {
  31. #sound-dai-cells = <0>;
  32. compatible = "linux,spdif-dit";
  33. status = "okay";
  34. sound-name-prefix = "DIT";
  35. };
  36. leds {
  37. compatible = "gpio-leds";
  38. led-blue {
  39. label = "rbox-pro:blue:on";
  40. gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>;
  41. default-state = "on";
  42. };
  43. led-red {
  44. label = "rbox-pro:red:standby";
  45. gpios = <&gpio GPIODV_28 GPIO_ACTIVE_HIGH>;
  46. default-state = "off";
  47. retain-state-suspended;
  48. panic-indicator;
  49. };
  50. };
  51. vddio_boot: regulator-vddio-boot {
  52. compatible = "regulator-fixed";
  53. regulator-name = "VDDIO_BOOT";
  54. regulator-min-microvolt = <1800000>;
  55. regulator-max-microvolt = <1800000>;
  56. };
  57. vddao_3v3: regulator-vddao-3v3 {
  58. compatible = "regulator-fixed";
  59. regulator-name = "VDDAO_3V3";
  60. regulator-min-microvolt = <3300000>;
  61. regulator-max-microvolt = <3300000>;
  62. };
  63. vcc_3v3: regulator-vcc-3v3 {
  64. compatible = "regulator-fixed";
  65. regulator-name = "VCC_3V3";
  66. regulator-min-microvolt = <3300000>;
  67. regulator-max-microvolt = <3300000>;
  68. };
  69. emmc_pwrseq: emmc-pwrseq {
  70. compatible = "mmc-pwrseq-emmc";
  71. reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
  72. };
  73. wifi32k: wifi32k {
  74. compatible = "pwm-clock";
  75. #clock-cells = <0>;
  76. clock-frequency = <32768>;
  77. pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
  78. };
  79. sdio_pwrseq: sdio-pwrseq {
  80. compatible = "mmc-pwrseq-simple";
  81. reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
  82. clocks = <&wifi32k>;
  83. clock-names = "ext_clock";
  84. };
  85. sound {
  86. compatible = "amlogic,gx-sound-card";
  87. model = "RBOX-PRO";
  88. assigned-clocks = <&clkc CLKID_MPLL0>,
  89. <&clkc CLKID_MPLL1>,
  90. <&clkc CLKID_MPLL2>;
  91. assigned-clock-parents = <0>, <0>, <0>;
  92. assigned-clock-rates = <294912000>,
  93. <270950400>,
  94. <393216000>;
  95. status = "okay";
  96. dai-link-0 {
  97. sound-dai = <&aiu AIU_CPU CPU_I2S_FIFO>;
  98. };
  99. dai-link-1 {
  100. sound-dai = <&aiu AIU_CPU CPU_SPDIF_FIFO>;
  101. };
  102. dai-link-2 {
  103. sound-dai = <&aiu AIU_CPU CPU_I2S_ENCODER>;
  104. dai-format = "i2s";
  105. mclk-fs = <256>;
  106. codec-0 {
  107. sound-dai = <&aiu AIU_HDMI CTRL_I2S>;
  108. };
  109. };
  110. dai-link-3 {
  111. sound-dai = <&aiu AIU_CPU CPU_SPDIF_ENCODER>;
  112. codec-0 {
  113. sound-dai = <&spdif_dit>;
  114. };
  115. };
  116. dai-link-4 {
  117. sound-dai = <&aiu AIU_HDMI CTRL_OUT>;
  118. codec-0 {
  119. sound-dai = <&hdmi_tx>;
  120. };
  121. };
  122. };
  123. };
  124. &aiu {
  125. status = "okay";
  126. pinctrl-0 = <&spdif_out_h_pins>;
  127. pinctrl-names = "default";
  128. };
  129. &ethmac {
  130. status = "okay";
  131. pinctrl-0 = <&eth_pins>;
  132. pinctrl-names = "default";
  133. /* Select external PHY by default */
  134. phy-handle = <&external_phy>;
  135. amlogic,tx-delay-ns = <2>;
  136. /* External PHY is in RGMII */
  137. phy-mode = "rgmii";
  138. };
  139. &external_mdio {
  140. external_phy: ethernet-phy@0 {
  141. /* Realtek RTL8211F (0x001cc916) */
  142. reg = <0>;
  143. max-speed = <1000>;
  144. reset-assert-us = <10000>;
  145. reset-deassert-us = <80000>;
  146. reset-gpios = <&gpio GPIOZ_14 GPIO_ACTIVE_LOW>;
  147. };
  148. };
  149. &ir {
  150. status = "okay";
  151. pinctrl-0 = <&remote_input_ao_pins>;
  152. pinctrl-names = "default";
  153. };
  154. &pwm_ef {
  155. status = "okay";
  156. pinctrl-0 = <&pwm_e_pins>;
  157. pinctrl-names = "default";
  158. clocks = <&clkc CLKID_FCLK_DIV4>;
  159. clock-names = "clkin0";
  160. };
  161. /* Wireless SDIO Module */
  162. &sd_emmc_a {
  163. status = "okay";
  164. pinctrl-0 = <&sdio_pins>;
  165. pinctrl-names = "default";
  166. #address-cells = <1>;
  167. #size-cells = <0>;
  168. bus-width = <4>;
  169. cap-sd-highspeed;
  170. max-frequency = <50000000>;
  171. non-removable;
  172. disable-wp;
  173. /* WiFi firmware requires power to be kept while in suspend */
  174. keep-power-in-suspend;
  175. mmc-pwrseq = <&sdio_pwrseq>;
  176. vmmc-supply = <&vddao_3v3>;
  177. vqmmc-supply = <&vddio_boot>;
  178. brcmf: brcmf@1 {
  179. reg = <1>;
  180. compatible = "brcm,bcm4329-fmac";
  181. };
  182. };
  183. /* SD card */
  184. &sd_emmc_b {
  185. status = "okay";
  186. pinctrl-0 = <&sdcard_pins>;
  187. pinctrl-names = "default";
  188. bus-width = <4>;
  189. cap-sd-highspeed;
  190. max-frequency = <50000000>;
  191. disable-wp;
  192. cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
  193. vmmc-supply = <&vddao_3v3>;
  194. vqmmc-supply = <&vddio_boot>;
  195. };
  196. /* eMMC */
  197. &sd_emmc_c {
  198. status = "okay";
  199. pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
  200. pinctrl-names = "default";
  201. bus-width = <8>;
  202. cap-mmc-highspeed;
  203. max-frequency = <200000000>;
  204. non-removable;
  205. disable-wp;
  206. mmc-ddr-1_8v;
  207. mmc-hs200-1_8v;
  208. mmc-pwrseq = <&emmc_pwrseq>;
  209. vmmc-supply = <&vcc_3v3>;
  210. vqmmc-supply = <&vddio_boot>;
  211. };
  212. &uart_AO {
  213. status = "okay";
  214. pinctrl-0 = <&uart_ao_a_pins>;
  215. pinctrl-names = "default";
  216. };