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