diff options
author | Nicolin Chen <nicolinc@nvidia.com> | 2016-05-31 20:51:46 -0400 |
---|---|---|
committer | mobile promotions <svcmobile_promotions@nvidia.com> | 2016-09-09 01:03:42 -0400 |
commit | 61f1ad2507390c04ebe11992ecaf16de4b88cf3b (patch) | |
tree | 913f905ddf7fad9b3af5615d4623bc48aa3dd8a9 /arch | |
parent | dce72d38b1c71486ef29d31b98d5c82421ac395a (diff) |
arm64: dts: add audio support for P4573-B00
This patch adds two CS53L30 ADCs and one RT5658
codec chip support for P4573-B00 board.
Bug 1736796
Change-Id: Icee916b79d1abfa5135f7e7640bcaad2e0645bde
Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
Reviewed-on: http://git-master/r/1207327
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Robert Shih <rshih@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Ravindra Lokhande <rlokhande@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm64/boot/dts/nvidia/t18x/tegra186-df-p4570-0120-0000.dts | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/nvidia/t18x/tegra186-df-p4570-0120-0000.dts b/arch/arm64/boot/dts/nvidia/t18x/tegra186-df-p4570-0120-0000.dts index 97187c5ea..6bba56366 100644 --- a/arch/arm64/boot/dts/nvidia/t18x/tegra186-df-p4570-0120-0000.dts +++ b/arch/arm64/boot/dts/nvidia/t18x/tegra186-df-p4570-0120-0000.dts | |||
@@ -11,6 +11,7 @@ | |||
11 | * more details. | 11 | * more details. |
12 | */ | 12 | */ |
13 | 13 | ||
14 | #include "dt-bindings/sound/tegra-asoc-alt.h" | ||
14 | #include "tegra186-quill-p3310-1000-a00-00-base.dts" | 15 | #include "tegra186-quill-p3310-1000-a00-00-base.dts" |
15 | #include "tegra186-modules/tegra186-super-module-e2614-p2597-1000-a00.dtsi" | 16 | #include "tegra186-modules/tegra186-super-module-e2614-p2597-1000-a00.dtsi" |
16 | #include "tegra186-modules/tegra186-df-camera.dtsi" | 17 | #include "tegra186-modules/tegra186-df-camera.dtsi" |
@@ -60,6 +61,18 @@ | |||
60 | regulator-always-on; | 61 | regulator-always-on; |
61 | regulator-boot-on; | 62 | regulator-boot-on; |
62 | }; | 63 | }; |
64 | |||
65 | cs53l30_vp: regulator@14 { | ||
66 | regulator-min-microvolt = <3300000>; | ||
67 | regulator-max-microvolt = <3300000>; | ||
68 | regulator-always-on; | ||
69 | }; | ||
70 | |||
71 | cs53l30_va: regulator@101 { | ||
72 | regulator-min-microvolt = <1800000>; | ||
73 | regulator-max-microvolt = <1800000>; | ||
74 | regulator-always-on; | ||
75 | }; | ||
63 | }; | 76 | }; |
64 | 77 | ||
65 | pwm-fan { | 78 | pwm-fan { |
@@ -153,4 +166,165 @@ | |||
153 | sound { | 166 | sound { |
154 | status = "disabled"; | 167 | status = "disabled"; |
155 | }; | 168 | }; |
169 | |||
170 | sound_ref { | ||
171 | compatible = "nvidia,tegra186-p4573-audio"; | ||
172 | nvidia,model = "t186-p4573-audio"; | ||
173 | status = "okay"; | ||
174 | |||
175 | nvidia,xbar = <&tegra_axbar>; | ||
176 | nvidia,audio-routing = | ||
177 | "AMIC1", "x MIC1 Bias", | ||
178 | "x IN1_DMIC1", "AMIC1", | ||
179 | "AMIC2", "x MIC2 Bias", | ||
180 | "x IN2", "AMIC2", | ||
181 | "AMIC3", "x MIC3 Bias", | ||
182 | "x IN3_DMIC2", "AMIC3", | ||
183 | "AMIC4", "x MIC4 Bias", | ||
184 | "x IN4", "AMIC4", | ||
185 | "AMIC5", "y MIC1 Bias", | ||
186 | "y IN1_DMIC1", "AMIC5", | ||
187 | "AMIC6", "y MIC2 Bias", | ||
188 | "y IN2", "AMIC6", | ||
189 | "AMIC7", "y MIC3 Bias", | ||
190 | "y IN3_DMIC2", "AMIC7", | ||
191 | "AMIC8", "y MIC4 Bias", | ||
192 | "y IN4", "AMIC8", | ||
193 | "Headset Stereo", "z HPOL", | ||
194 | "Headset Stereo", "z HPOR", | ||
195 | "Headset Mic", "z MICBIAS1", | ||
196 | "z IN1P", "Headset Mic"; | ||
197 | |||
198 | nvidia,num-codec-link = <3>; | ||
199 | |||
200 | nvidia,num-clk = <8>; | ||
201 | nvidia,clk-rates = < 270950400 /* PLLA_x11025_RATE */ | ||
202 | 11289600 /* AUD_MCLK_x11025_RATE */ | ||
203 | 45158400 /* PLLA_OUT0_x11025_RATE */ | ||
204 | 45158400 /* AHUB_x11025_RATE */ | ||
205 | 245760000 /* PLLA_x8000_RATE */ | ||
206 | 12288000 /* AUD_MCLK_x8000_RATE */ | ||
207 | 49152000 /* PLLA_OUT0_x8000_RATE */ | ||
208 | 49152000 >;/* AHUB_x8000_RATE */ | ||
209 | clocks = <&tegra_car TEGRA186_CLK_PLLP_OUT0>, | ||
210 | <&tegra_car TEGRA186_CLK_PLLA>, | ||
211 | <&tegra_car TEGRA186_CLK_PLL_A_OUT0>, | ||
212 | <&tegra_car TEGRA186_CLK_AHUB>, | ||
213 | <&tegra_car TEGRA186_CLK_CLK_M>, | ||
214 | <&tegra_car TEGRA186_CLK_AUD_MCLK>; | ||
215 | clock-names = "pll_p_out1", "pll_a", "pll_a_out0", "ahub", | ||
216 | "clk_m", "extern1"; | ||
217 | resets = <&tegra_car TEGRA186_RESET_AUD_MCLK>; | ||
218 | reset-names = "extern1_rst"; | ||
219 | |||
220 | nvidia,dai-link-1 { | ||
221 | link-name = "cs53l30-link1"; | ||
222 | cpu-dai = <&tegra_i2s1>; | ||
223 | codec-dai = <&cs53l30_1>; | ||
224 | cpu-dai-name = "I2S1"; | ||
225 | codec-dai-name = "cs53l30"; | ||
226 | format = "dsp_a"; | ||
227 | bitclock-slave; | ||
228 | frame-slave; | ||
229 | /* NB_IF: rising edge of bclk + frame sync at high */ | ||
230 | bitclock-noninversion; | ||
231 | frame-inversion; | ||
232 | bit-format = "s32_le"; | ||
233 | bclk_ratio = <0>; | ||
234 | srate = <48000>; | ||
235 | num-channel = <4>; | ||
236 | name-prefix = "x"; | ||
237 | }; | ||
238 | |||
239 | nvidia,dai-link-2 { | ||
240 | link-name = "cs53l30-link2"; | ||
241 | cpu-dai = <&tegra_i2s2>; | ||
242 | codec-dai = <&cs53l30_2>; | ||
243 | cpu-dai-name = "I2S2"; | ||
244 | codec-dai-name = "cs53l30"; | ||
245 | format = "dsp_a"; | ||
246 | bitclock-slave; | ||
247 | frame-slave; | ||
248 | /* NB_IF: rising edge of bclk + frame sync at high */ | ||
249 | bitclock-noninversion; | ||
250 | frame-inversion; | ||
251 | bit-format = "s32_le"; | ||
252 | bclk_ratio = <0>; | ||
253 | srate = <48000>; | ||
254 | num-channel = <4>; | ||
255 | name-prefix = "y"; | ||
256 | }; | ||
257 | |||
258 | nvidia,dai-link-3 { | ||
259 | link-name = "rt5658-link"; | ||
260 | cpu-dai = <&tegra_i2s3>; | ||
261 | codec-dai = <&rt5658_codec>; | ||
262 | cpu-dai-name = "I2S3"; | ||
263 | codec-dai-name = "rt5659-aif1"; | ||
264 | format = "i2s"; | ||
265 | bitclock-slave; | ||
266 | frame-slave; | ||
267 | bitclock-noninversion; | ||
268 | frame-noninversion; | ||
269 | bit-format = "s32_le"; | ||
270 | bclk_ratio = <0>; | ||
271 | srate = <48000>; | ||
272 | num-channel = <2>; | ||
273 | name-prefix = "z"; | ||
274 | }; | ||
275 | }; | ||
276 | }; | ||
277 | |||
278 | &gen2_i2c { | ||
279 | status = "okay"; | ||
280 | |||
281 | cs53l30_1: cs53l30@48 { | ||
282 | compatible = "cirrus,cs53l30"; | ||
283 | reg = <0x48>; | ||
284 | clocks = <&tegra_car TEGRA186_CLK_AUD_MCLK>; | ||
285 | clock-names = "mclk"; | ||
286 | reset-gpios = <&tegra_gpio 78 0>; | ||
287 | mute-gpios = <&tegra_gpio 12 0>; | ||
288 | micbias-lvl = <1>; | ||
289 | VA-supply = <&cs53l30_va>; | ||
290 | VP-supply = <&cs53l30_vp>; | ||
291 | }; | ||
292 | |||
293 | cs53l30_2: cs53l30@4A { | ||
294 | compatible = "cirrus,cs53l30"; | ||
295 | reg = <0x4A>; | ||
296 | clocks = <&tegra_car TEGRA186_CLK_AUD_MCLK>; | ||
297 | clock-names = "mclk"; | ||
298 | reset-gpios = <&tegra_gpio 71 0>; | ||
299 | micbias-lvl = <1>; | ||
300 | VA-supply = <&cs53l30_va>; | ||
301 | VP-supply = <&cs53l30_vp>; | ||
302 | }; | ||
303 | |||
304 | rt5658_codec: rt5658@1A { | ||
305 | compatible = "realtek,rt5658"; | ||
306 | reg = <0x1A>; | ||
307 | clocks = <&tegra_car TEGRA186_CLK_AUD_MCLK>; | ||
308 | clock-names = "mclk"; | ||
309 | realtek,dmic1-data-pin = <2>; | ||
310 | realtek,jd-src = <1>; | ||
311 | }; | ||
312 | }; | ||
313 | |||
314 | &tegra_i2s1 { | ||
315 | /* 32 bits per slot */ | ||
316 | fsync-width = <31>; | ||
317 | status = "okay"; | ||
318 | }; | ||
319 | |||
320 | &tegra_i2s2 { | ||
321 | /* 32 bits per slot */ | ||
322 | fsync-width = <31>; | ||
323 | status = "okay"; | ||
324 | }; | ||
325 | |||
326 | &tegra_i2s3 { | ||
327 | /* 32 bits per slot */ | ||
328 | fsync-width = <31>; | ||
329 | status = "okay"; | ||
156 | }; | 330 | }; |