meson-g12b-khadas-vim3.dtsi 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright (c) 2019 BayLibre, SAS
  4. * Author: Neil Armstrong <narmstrong@baylibre.com>
  5. * Copyright (c) 2019 Christian Hewitt <christianshewitt@gmail.com>
  6. */
  7. #include <dt-bindings/sound/meson-g12a-tohdmitx.h>
  8. / {
  9. model = "Khadas VIM3";
  10. vddcpu_a: regulator-vddcpu-a {
  11. /*
  12. * MP8756GD Regulator.
  13. */
  14. compatible = "pwm-regulator";
  15. regulator-name = "VDDCPU_A";
  16. regulator-min-microvolt = <690000>;
  17. regulator-max-microvolt = <1050000>;
  18. vin-supply = <&dc_in>;
  19. pwms = <&pwm_ab 0 1250 0>;
  20. pwm-dutycycle-range = <100 0>;
  21. regulator-boot-on;
  22. regulator-always-on;
  23. };
  24. vddcpu_b: regulator-vddcpu-b {
  25. /*
  26. * Silergy SY8030DEC Regulator.
  27. */
  28. compatible = "pwm-regulator";
  29. regulator-name = "VDDCPU_B";
  30. regulator-min-microvolt = <690000>;
  31. regulator-max-microvolt = <1050000>;
  32. vin-supply = <&vsys_3v3>;
  33. pwms = <&pwm_AO_cd 1 1250 0>;
  34. pwm-dutycycle-range = <100 0>;
  35. regulator-boot-on;
  36. regulator-always-on;
  37. };
  38. sound {
  39. compatible = "amlogic,axg-sound-card";
  40. model = "G12B-KHADAS-VIM3";
  41. audio-aux-devs = <&tdmout_b>;
  42. audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
  43. "TDMOUT_B IN 1", "FRDDR_B OUT 1",
  44. "TDMOUT_B IN 2", "FRDDR_C OUT 1",
  45. "TDM_B Playback", "TDMOUT_B OUT";
  46. assigned-clocks = <&clkc CLKID_MPLL2>,
  47. <&clkc CLKID_MPLL0>,
  48. <&clkc CLKID_MPLL1>;
  49. assigned-clock-parents = <0>, <0>, <0>;
  50. assigned-clock-rates = <294912000>,
  51. <270950400>,
  52. <393216000>;
  53. status = "okay";
  54. dai-link-0 {
  55. sound-dai = <&frddr_a>;
  56. };
  57. dai-link-1 {
  58. sound-dai = <&frddr_b>;
  59. };
  60. dai-link-2 {
  61. sound-dai = <&frddr_c>;
  62. };
  63. /* 8ch hdmi interface */
  64. dai-link-3 {
  65. sound-dai = <&tdmif_b>;
  66. dai-format = "i2s";
  67. dai-tdm-slot-tx-mask-0 = <1 1>;
  68. dai-tdm-slot-tx-mask-1 = <1 1>;
  69. dai-tdm-slot-tx-mask-2 = <1 1>;
  70. dai-tdm-slot-tx-mask-3 = <1 1>;
  71. mclk-fs = <256>;
  72. codec {
  73. sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
  74. };
  75. };
  76. /* hdmi glue */
  77. dai-link-4 {
  78. sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;
  79. codec {
  80. sound-dai = <&hdmi_tx>;
  81. };
  82. };
  83. };
  84. };
  85. &arb {
  86. status = "okay";
  87. };
  88. &clkc_audio {
  89. status = "okay";
  90. };
  91. &cpu0 {
  92. cpu-supply = <&vddcpu_b>;
  93. operating-points-v2 = <&cpu_opp_table_0>;
  94. clocks = <&clkc CLKID_CPU_CLK>;
  95. clock-latency = <50000>;
  96. };
  97. &cpu1 {
  98. cpu-supply = <&vddcpu_b>;
  99. operating-points-v2 = <&cpu_opp_table_0>;
  100. clocks = <&clkc CLKID_CPU_CLK>;
  101. clock-latency = <50000>;
  102. };
  103. &cpu100 {
  104. cpu-supply = <&vddcpu_a>;
  105. operating-points-v2 = <&cpub_opp_table_1>;
  106. clocks = <&clkc CLKID_CPUB_CLK>;
  107. clock-latency = <50000>;
  108. };
  109. &cpu101 {
  110. cpu-supply = <&vddcpu_a>;
  111. operating-points-v2 = <&cpub_opp_table_1>;
  112. clocks = <&clkc CLKID_CPUB_CLK>;
  113. clock-latency = <50000>;
  114. };
  115. &cpu102 {
  116. cpu-supply = <&vddcpu_a>;
  117. operating-points-v2 = <&cpub_opp_table_1>;
  118. clocks = <&clkc CLKID_CPUB_CLK>;
  119. clock-latency = <50000>;
  120. };
  121. &cpu103 {
  122. cpu-supply = <&vddcpu_a>;
  123. operating-points-v2 = <&cpub_opp_table_1>;
  124. clocks = <&clkc CLKID_CPUB_CLK>;
  125. clock-latency = <50000>;
  126. };
  127. &frddr_b {
  128. status = "okay";
  129. };
  130. &frddr_c {
  131. status = "okay";
  132. };
  133. &pwm_ab {
  134. pinctrl-0 = <&pwm_a_e_pins>;
  135. pinctrl-names = "default";
  136. clocks = <&xtal>;
  137. clock-names = "clkin0";
  138. status = "okay";
  139. };
  140. &pwm_AO_cd {
  141. pinctrl-0 = <&pwm_ao_d_e_pins>;
  142. pinctrl-names = "default";
  143. clocks = <&xtal>;
  144. clock-names = "clkin1";
  145. status = "okay";
  146. };
  147. &tdmif_b {
  148. status = "okay";
  149. };
  150. &tdmout_b {
  151. status = "okay";
  152. };
  153. &tohdmitx {
  154. status = "okay";
  155. };