meson-gxl-s905x-p212.dtsi 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright (c) 2016 Martin Blumenstingl <martin.blumenstingl@googlemail.com>.
  4. * Based on meson-gx-p23x-q20x.dtsi:
  5. * - Copyright (c) 2016 Endless Computers, Inc.
  6. * Author: Carlo Caione <carlo@endlessm.com>
  7. * - Copyright (c) 2016 BayLibre, SAS.
  8. * Author: Neil Armstrong <narmstrong@baylibre.com>
  9. */
  10. /* Common DTSI for devices which are based on the P212 reference board. */
  11. #include "meson-gxl-s905x.dtsi"
  12. / {
  13. aliases {
  14. serial0 = &uart_AO;
  15. ethernet0 = &ethmac;
  16. };
  17. chosen {
  18. stdout-path = "serial0:115200n8";
  19. };
  20. memory@0 {
  21. device_type = "memory";
  22. reg = <0x0 0x0 0x0 0x80000000>;
  23. };
  24. hdmi_5v: regulator-hdmi-5v {
  25. compatible = "regulator-fixed";
  26. regulator-name = "HDMI_5V";
  27. regulator-min-microvolt = <5000000>;
  28. regulator-max-microvolt = <5000000>;
  29. gpio = <&gpio GPIOH_3 GPIO_ACTIVE_HIGH>;
  30. enable-active-high;
  31. regulator-always-on;
  32. };
  33. vddio_boot: regulator-vddio_boot {
  34. compatible = "regulator-fixed";
  35. regulator-name = "VDDIO_BOOT";
  36. regulator-min-microvolt = <1800000>;
  37. regulator-max-microvolt = <1800000>;
  38. };
  39. vddao_3v3: regulator-vddao_3v3 {
  40. compatible = "regulator-fixed";
  41. regulator-name = "VDDAO_3V3";
  42. regulator-min-microvolt = <3300000>;
  43. regulator-max-microvolt = <3300000>;
  44. };
  45. vddio_ao18: regulator-vddio_ao18 {
  46. compatible = "regulator-fixed";
  47. regulator-name = "VDDIO_AO18";
  48. regulator-min-microvolt = <1800000>;
  49. regulator-max-microvolt = <1800000>;
  50. };
  51. vcc_3v3: regulator-vcc_3v3 {
  52. compatible = "regulator-fixed";
  53. regulator-name = "VCC_3V3";
  54. regulator-min-microvolt = <3300000>;
  55. regulator-max-microvolt = <3300000>;
  56. };
  57. emmc_pwrseq: emmc-pwrseq {
  58. compatible = "mmc-pwrseq-emmc";
  59. reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
  60. };
  61. wifi32k: wifi32k {
  62. compatible = "pwm-clock";
  63. #clock-cells = <0>;
  64. clock-frequency = <32768>;
  65. pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
  66. };
  67. sdio_pwrseq: sdio-pwrseq {
  68. compatible = "mmc-pwrseq-simple";
  69. reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
  70. clocks = <&wifi32k>;
  71. clock-names = "ext_clock";
  72. };
  73. };
  74. &ethmac {
  75. status = "okay";
  76. };
  77. &ir {
  78. status = "okay";
  79. pinctrl-0 = <&remote_input_ao_pins>;
  80. pinctrl-names = "default";
  81. };
  82. &saradc {
  83. status = "okay";
  84. vref-supply = <&vddio_ao18>;
  85. };
  86. /* Wireless SDIO Module */
  87. &sd_emmc_a {
  88. status = "okay";
  89. pinctrl-0 = <&sdio_pins>;
  90. pinctrl-1 = <&sdio_clk_gate_pins>;
  91. pinctrl-names = "default", "clk-gate";
  92. #address-cells = <1>;
  93. #size-cells = <0>;
  94. bus-width = <4>;
  95. cap-sd-highspeed;
  96. max-frequency = <50000000>;
  97. non-removable;
  98. disable-wp;
  99. /* WiFi firmware requires power to be kept while in suspend */
  100. keep-power-in-suspend;
  101. mmc-pwrseq = <&sdio_pwrseq>;
  102. vmmc-supply = <&vddao_3v3>;
  103. vqmmc-supply = <&vddio_boot>;
  104. };
  105. /* SD card */
  106. &sd_emmc_b {
  107. status = "okay";
  108. pinctrl-0 = <&sdcard_pins>;
  109. pinctrl-1 = <&sdcard_clk_gate_pins>;
  110. pinctrl-names = "default", "clk-gate";
  111. bus-width = <4>;
  112. cap-sd-highspeed;
  113. max-frequency = <50000000>;
  114. disable-wp;
  115. cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_LOW>;
  116. vmmc-supply = <&vddao_3v3>;
  117. vqmmc-supply = <&vddio_boot>;
  118. };
  119. /* eMMC */
  120. &sd_emmc_c {
  121. status = "okay";
  122. pinctrl-0 = <&emmc_pins>, <&emmc_ds_pins>;
  123. pinctrl-1 = <&emmc_clk_gate_pins>;
  124. pinctrl-names = "default", "clk-gate";
  125. bus-width = <8>;
  126. cap-mmc-highspeed;
  127. max-frequency = <200000000>;
  128. non-removable;
  129. disable-wp;
  130. mmc-ddr-1_8v;
  131. mmc-hs200-1_8v;
  132. mmc-pwrseq = <&emmc_pwrseq>;
  133. vmmc-supply = <&vcc_3v3>;
  134. vqmmc-supply = <&vddio_boot>;
  135. };
  136. &pwm_ef {
  137. status = "okay";
  138. pinctrl-0 = <&pwm_e_pins>;
  139. pinctrl-names = "default";
  140. clocks = <&clkc CLKID_FCLK_DIV4>;
  141. clock-names = "clkin0";
  142. };
  143. /* This is connected to the Bluetooth module: */
  144. &uart_A {
  145. status = "okay";
  146. pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
  147. pinctrl-names = "default";
  148. uart-has-rtscts;
  149. bluetooth {
  150. compatible = "brcm,bcm43438-bt";
  151. shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
  152. max-speed = <2000000>;
  153. clocks = <&wifi32k>;
  154. clock-names = "lpo";
  155. };
  156. };
  157. &uart_AO {
  158. status = "okay";
  159. pinctrl-0 = <&uart_ao_a_pins>;
  160. pinctrl-names = "default";
  161. };
  162. &usb {
  163. status = "okay";
  164. dr_mode = "host";
  165. };
  166. &usb2_phy0 {
  167. /*
  168. * HDMI_5V is also used as supply for the USB VBUS.
  169. */
  170. phy-supply = <&hdmi_5v>;
  171. };