sc7280-herobrine-audio-wcd9385.dtsi 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. // SPDX-License-Identifier: BSD-3-Clause
  2. /*
  3. * sc7280 device tree source for boards using Max98360 and wcd9385 codec
  4. *
  5. * Copyright (c) 2022, The Linux Foundation. All rights reserved.
  6. */
  7. / {
  8. /* BOARD-SPECIFIC TOP LEVEL NODES */
  9. sound: sound {
  10. compatible = "google,sc7280-herobrine";
  11. model = "sc7280-wcd938x-max98360a-1mic";
  12. audio-routing =
  13. "IN1_HPHL", "HPHL_OUT",
  14. "IN2_HPHR", "HPHR_OUT",
  15. "AMIC1", "MIC BIAS1",
  16. "AMIC2", "MIC BIAS2",
  17. "VA DMIC0", "MIC BIAS1",
  18. "VA DMIC1", "MIC BIAS1",
  19. "VA DMIC2", "MIC BIAS3",
  20. "VA DMIC3", "MIC BIAS3",
  21. "TX SWR_ADC0", "ADC1_OUTPUT",
  22. "TX SWR_ADC1", "ADC2_OUTPUT",
  23. "TX SWR_ADC2", "ADC3_OUTPUT",
  24. "TX SWR_DMIC0", "DMIC1_OUTPUT",
  25. "TX SWR_DMIC1", "DMIC2_OUTPUT",
  26. "TX SWR_DMIC2", "DMIC3_OUTPUT",
  27. "TX SWR_DMIC3", "DMIC4_OUTPUT",
  28. "TX SWR_DMIC4", "DMIC5_OUTPUT",
  29. "TX SWR_DMIC5", "DMIC6_OUTPUT",
  30. "TX SWR_DMIC6", "DMIC7_OUTPUT",
  31. "TX SWR_DMIC7", "DMIC8_OUTPUT";
  32. qcom,msm-mbhc-hphl-swh = <1>;
  33. qcom,msm-mbhc-gnd-swh = <1>;
  34. #address-cells = <1>;
  35. #size-cells = <0>;
  36. #sound-dai-cells = <0>;
  37. dai-link@0 {
  38. link-name = "MAX98360A";
  39. reg = <0>;
  40. cpu {
  41. sound-dai = <&lpass_cpu MI2S_SECONDARY>;
  42. };
  43. codec {
  44. sound-dai = <&max98360a>;
  45. };
  46. };
  47. dai-link@1 {
  48. link-name = "DisplayPort";
  49. reg = <1>;
  50. cpu {
  51. sound-dai = <&lpass_cpu LPASS_DP_RX>;
  52. };
  53. codec {
  54. sound-dai = <&mdss_dp>;
  55. };
  56. };
  57. dai-link@2 {
  58. link-name = "WCD9385 Playback";
  59. reg = <2>;
  60. cpu {
  61. sound-dai = <&lpass_cpu LPASS_CDC_DMA_RX0>;
  62. };
  63. codec {
  64. sound-dai = <&wcd9385 0>, <&swr0 0>, <&lpass_rx_macro 0>;
  65. };
  66. };
  67. dai-link@3 {
  68. link-name = "WCD9385 Capture";
  69. reg = <3>;
  70. cpu {
  71. sound-dai = <&lpass_cpu LPASS_CDC_DMA_TX3>;
  72. };
  73. codec {
  74. sound-dai = <&wcd9385 1>, <&swr1 0>, <&lpass_tx_macro 0>;
  75. };
  76. };
  77. dai-link@4 {
  78. link-name = "DMIC";
  79. reg = <4>;
  80. cpu {
  81. sound-dai = <&lpass_cpu LPASS_CDC_DMA_VA_TX0>;
  82. };
  83. codec {
  84. sound-dai = <&lpass_va_macro 0>;
  85. };
  86. };
  87. };
  88. };
  89. /* ADDITIONS TO NODES DEFINED IN PARENT DEVICE TREE FILES */
  90. &lpass_cpu {
  91. status = "okay";
  92. pinctrl-names = "default";
  93. pinctrl-0 = <&mi2s1_data0>, <&mi2s1_sclk>, <&mi2s1_ws>;
  94. dai-link@1 {
  95. reg = <MI2S_SECONDARY>;
  96. qcom,playback-sd-lines = <0>;
  97. };
  98. dai-link@5 {
  99. reg = <LPASS_DP_RX>;
  100. };
  101. dai-link@6 {
  102. reg = <LPASS_CDC_DMA_RX0>;
  103. };
  104. dai-link@19 {
  105. reg = <LPASS_CDC_DMA_TX3>;
  106. };
  107. dai-link@25 {
  108. reg = <LPASS_CDC_DMA_VA_TX0>;
  109. };
  110. };
  111. &lpass_rx_macro {
  112. status = "okay";
  113. };
  114. &lpass_tx_macro {
  115. status = "okay";
  116. };
  117. &lpass_va_macro {
  118. status = "okay";
  119. };
  120. &swr0 {
  121. status = "okay";
  122. };
  123. &swr1 {
  124. status = "okay";
  125. };
  126. &wcd9385 {
  127. status = "okay";
  128. };
  129. /* PINCTRL */
  130. &lpass_dmic01_clk {
  131. drive-strength = <8>;
  132. bias-disable;
  133. };
  134. &lpass_dmic01_clk_sleep {
  135. drive-strength = <2>;
  136. };
  137. &lpass_dmic01_data {
  138. bias-pull-down;
  139. };
  140. &lpass_dmic23_clk {
  141. drive-strength = <8>;
  142. bias-disable;
  143. };
  144. &lpass_dmic23_clk_sleep {
  145. drive-strength = <2>;
  146. };
  147. &lpass_dmic23_data {
  148. bias-pull-down;
  149. };
  150. &lpass_rx_swr_clk {
  151. drive-strength = <2>;
  152. slew-rate = <1>;
  153. bias-disable;
  154. };
  155. &lpass_rx_swr_clk_sleep {
  156. bias-pull-down;
  157. };
  158. &lpass_rx_swr_data {
  159. drive-strength = <2>;
  160. slew-rate = <1>;
  161. bias-bus-hold;
  162. };
  163. &lpass_rx_swr_data_sleep {
  164. bias-pull-down;
  165. };
  166. &lpass_tx_swr_clk {
  167. drive-strength = <2>;
  168. slew-rate = <1>;
  169. bias-disable;
  170. };
  171. &lpass_tx_swr_clk_sleep {
  172. bias-pull-down;
  173. };
  174. &lpass_tx_swr_data {
  175. drive-strength = <2>;
  176. slew-rate = <1>;
  177. bias-bus-hold;
  178. };
  179. &mi2s1_data0 {
  180. drive-strength = <6>;
  181. bias-disable;
  182. };
  183. &mi2s1_sclk {
  184. drive-strength = <6>;
  185. bias-disable;
  186. };
  187. &mi2s1_ws {
  188. drive-strength = <6>;
  189. };