meson-gxm-rbox-pro.dts 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203
  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. / {
  16. compatible = "kingnovel,r-box-pro", "amlogic,s912", "amlogic,meson-gxm";
  17. model = "R-Box Pro";
  18. aliases {
  19. serial0 = &uart_AO;
  20. ethernet0 = &ethmac;
  21. };
  22. chosen {
  23. stdout-path = "serial0:115200n8";
  24. };
  25. memory@0 {
  26. device_type = "memory";
  27. reg = <0x0 0x0 0x0 0x80000000>; /* 2 GiB or 3 GiB */
  28. };
  29. leds {
  30. compatible = "gpio-leds";
  31. blue {
  32. label = "rbox-pro:blue:on";
  33. gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>;
  34. default-state = "on";
  35. };
  36. red {
  37. label = "rbox-pro:red:standby";
  38. gpios = <&gpio GPIODV_28 GPIO_ACTIVE_HIGH>;
  39. default-state = "off";
  40. retain-state-suspended;
  41. panic-indicator;
  42. };
  43. };
  44. vddio_boot: regulator-vddio-boot {
  45. compatible = "regulator-fixed";
  46. regulator-name = "VDDIO_BOOT";
  47. regulator-min-microvolt = <1800000>;
  48. regulator-max-microvolt = <1800000>;
  49. };
  50. vddao_3v3: regulator-vddao-3v3 {
  51. compatible = "regulator-fixed";
  52. regulator-name = "VDDAO_3V3";
  53. regulator-min-microvolt = <3300000>;
  54. regulator-max-microvolt = <3300000>;
  55. };
  56. vcc_3v3: regulator-vcc-3v3 {
  57. compatible = "regulator-fixed";
  58. regulator-name = "VCC_3V3";
  59. regulator-min-microvolt = <3300000>;
  60. regulator-max-microvolt = <3300000>;
  61. };
  62. emmc_pwrseq: emmc-pwrseq {
  63. compatible = "mmc-pwrseq-emmc";
  64. reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
  65. };
  66. wifi32k: wifi32k {
  67. compatible = "pwm-clock";
  68. #clock-cells = <0>;
  69. clock-frequency = <32768>;
  70. pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
  71. };
  72. sdio_pwrseq: sdio-pwrseq {
  73. compatible = "mmc-pwrseq-simple";
  74. reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
  75. clocks = <&wifi32k>;
  76. clock-names = "ext_clock";
  77. };
  78. };
  79. &ethmac {
  80. status = "okay";
  81. pinctrl-0 = <&eth_pins>;
  82. pinctrl-names = "default";
  83. /* Select external PHY by default */
  84. phy-handle = <&external_phy>;
  85. snps,reset-gpio = <&gpio GPIOZ_14 0>;
  86. snps,reset-delays-us = <0 10000 1000000>;
  87. snps,reset-active-low;
  88. amlogic,tx-delay-ns = <2>;
  89. /* External PHY is in RGMII */
  90. phy-mode = "rgmii";
  91. };
  92. &external_mdio {
  93. external_phy: ethernet-phy@0 {
  94. compatible = "ethernet-phy-id001c.c916", "ethernet-phy-ieee802.3-c22";
  95. reg = <0>;
  96. max-speed = <1000>;
  97. };
  98. };
  99. &ir {
  100. status = "okay";
  101. pinctrl-0 = <&remote_input_ao_pins>;
  102. pinctrl-names = "default";
  103. };
  104. &pwm_ef {
  105. status = "okay";
  106. pinctrl-0 = <&pwm_e_pins>;
  107. pinctrl-names = "default";
  108. clocks = <&clkc CLKID_FCLK_DIV4>;
  109. clock-names = "clkin0";
  110. };
  111. /* Wireless SDIO Module */
  112. &sd_emmc_a {
  113. status = "okay";
  114. pinctrl-0 = <&sdio_pins>;
  115. pinctrl-names = "default";
  116. #address-cells = <1>;
  117. #size-cells = <0>;
  118. bus-width = <4>;
  119. cap-sd-highspeed;
  120. max-frequency = <100000000>;
  121. non-removable;
  122. disable-wp;
  123. mmc-pwrseq = <&sdio_pwrseq>;
  124. vmmc-supply = <&vddao_3v3>;
  125. vqmmc-supply = <&vddio_boot>;
  126. brcmf: brcmf@1 {
  127. reg = <1>;
  128. compatible = "brcm,bcm4329-fmac";
  129. };
  130. };
  131. /* SD card */
  132. &sd_emmc_b {
  133. status = "okay";
  134. pinctrl-0 = <&sdcard_pins>;
  135. pinctrl-names = "default";
  136. bus-width = <4>;
  137. cap-sd-highspeed;
  138. max-frequency = <100000000>;
  139. disable-wp;
  140. cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
  141. cd-inverted;
  142. vmmc-supply = <&vddao_3v3>;
  143. vqmmc-supply = <&vddio_boot>;
  144. };
  145. /* eMMC */
  146. &sd_emmc_c {
  147. status = "okay";
  148. pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
  149. pinctrl-names = "default";
  150. bus-width = <8>;
  151. cap-mmc-highspeed;
  152. max-frequency = <200000000>;
  153. non-removable;
  154. disable-wp;
  155. mmc-ddr-1_8v;
  156. mmc-hs200-1_8v;
  157. mmc-pwrseq = <&emmc_pwrseq>;
  158. vmmc-supply = <&vcc_3v3>;
  159. vqmmc-supply = <&vddio_boot>;
  160. };
  161. &uart_AO {
  162. status = "okay";
  163. pinctrl-0 = <&uart_ao_a_pins>;
  164. pinctrl-names = "default";
  165. };