summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorNicolin Chen <nicolinc@nvidia.com>2016-05-31 20:51:46 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2016-09-09 01:03:42 -0400
commit61f1ad2507390c04ebe11992ecaf16de4b88cf3b (patch)
tree913f905ddf7fad9b3af5615d4623bc48aa3dd8a9 /arch
parentdce72d38b1c71486ef29d31b98d5c82421ac395a (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.dts174
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};