/*
 * Copyright (c) 2017-2018, 2020, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * only version 2 as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#include "msm-audio-lpass.dtsi"

&msm_audio_ion {
	iommus = <&apps_smmu 0x1801 0x0>;
	qcom,smmu-sid-mask = /bits/ 64 <0xf>;
};

&soc {
	qcom,msm-audio-apr {
		compatible = "qcom,msm-audio-apr";
		msm_audio_apr_dummy {
			compatible = "qcom,msm-audio-apr-dummy";
		};
	};

	qcom,avtimer@62cf700c {
		compatible = "qcom,avtimer";
		reg = <0x62cf700c 0x4>,
			<0x62cf7010 0x4>;
		reg-names = "avtimer_lsb_addr", "avtimer_msb_addr";
		qcom,clk-div = <192>;
		qcom,clk-mult = <10>;
	};

	tavil_snd: sound-tavil {
		status = "disabled";
		compatible = "qcom,sdm670-asoc-snd-tavil";
		qcom,model = "sdm670-tavil-snd-card";
		qcom,wcn-btfm;
		qcom,mi2s-audio-intf;
		qcom,auxpcm-audio-intf;
		qcom,ext-disp-audio-rx;
		qcom,afe-rxtx-lb;
		asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
			<&loopback>, <&compress>, <&hostless>,
			<&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>,
			<&pcm_noirq>;
		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
			"msm-pcm-dsp.2", "msm-voip-dsp",
			"msm-pcm-voice", "msm-pcm-loopback",
			"msm-compress-dsp", "msm-pcm-hostless",
			"msm-pcm-afe", "msm-lsm-client",
			"msm-pcm-routing", "msm-cpe-lsm",
			"msm-compr-dsp", "msm-pcm-dsp-noirq";
		asoc-cpu = <&dai_dp>, <&dai_mi2s0>, <&dai_mi2s1>,
			<&dai_mi2s2>, <&dai_mi2s3>, <&dai_mi2s4>,
			<&dai_pri_auxpcm>, <&dai_sec_auxpcm>,
			<&dai_tert_auxpcm>, <&dai_quat_auxpcm>,
			<&dai_quin_auxpcm>,
			<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
			<&sb_2_rx>, <&sb_2_tx>, <&sb_3_rx>, <&sb_3_tx>,
			<&sb_4_rx>, <&sb_4_tx>, <&sb_5_rx>, <&sb_5_tx>,
			<&sb_6_rx>, <&sb_7_rx>, <&sb_7_tx>,
			<&sb_8_rx>, <&sb_8_tx>,
			<&proxy_rx>, <&proxy_tx>,
			<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
			<&afe_proxy_tx>, <&incall_record_rx>,
			<&incall_record_tx>, <&incall_music_rx>,
			<&incall_music_2_rx>,
			<&usb_audio_rx>, <&usb_audio_tx>,
			<&dai_pri_tdm_rx_0>, <&dai_pri_tdm_tx_0>,
			<&dai_pri_tdm_tx_1>, <&dai_pri_tdm_tx_2>,
			<&dai_pri_tdm_tx_3>, <&dai_sec_tdm_rx_0>,
			<&dai_sec_tdm_tx_0>, <&dai_tert_tdm_rx_0>,
			<&dai_tert_tdm_tx_0>, <&dai_quat_tdm_rx_0>,
			<&dai_quat_tdm_tx_0>, <&dai_quin_tdm_rx_0>,
			<&dai_quin_tdm_tx_0>, <&afe_loopback_tx>;
		asoc-cpu-names = "msm-dai-q6-dp.24608",
			"msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
			"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
			"msm-dai-q6-mi2s.4",
			"msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2",
			"msm-dai-q6-auxpcm.3", "msm-dai-q6-auxpcm.4",
			"msm-dai-q6-auxpcm.5",
			"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
			"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
			"msm-dai-q6-dev.16388", "msm-dai-q6-dev.16389",
			"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
			"msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
			"msm-dai-q6-dev.16394", "msm-dai-q6-dev.16395",
			"msm-dai-q6-dev.16396",
			"msm-dai-q6-dev.16398", "msm-dai-q6-dev.16399",
			"msm-dai-q6-dev.16400", "msm-dai-q6-dev.16401",
			"msm-dai-q6-dev.8194", "msm-dai-q6-dev.8195",
			"msm-dai-q6-dev.224", "msm-dai-q6-dev.225",
			"msm-dai-q6-dev.241", "msm-dai-q6-dev.240",
			"msm-dai-q6-dev.32771", "msm-dai-q6-dev.32772",
			"msm-dai-q6-dev.32773", "msm-dai-q6-dev.32770",
			"msm-dai-q6-dev.28672", "msm-dai-q6-dev.28673",
			"msm-dai-q6-tdm.36864", "msm-dai-q6-tdm.36865",
			"msm-dai-q6-tdm.36867", "msm-dai-q6-tdm.36869",
			"msm-dai-q6-tdm.36871", "msm-dai-q6-tdm.36880",
			"msm-dai-q6-tdm.36881", "msm-dai-q6-tdm.36896",
			"msm-dai-q6-tdm.36897", "msm-dai-q6-tdm.36912",
			"msm-dai-q6-tdm.36913", "msm-dai-q6-tdm.36928",
			"msm-dai-q6-tdm.36929", "msm-dai-q6-dev.24577";
	};

	tasha_snd: sound-tasha {
		status = "disabled";
		compatible = "qcom,sdm670-asoc-snd-tasha";
		qcom,model = "sdm670-tasha-snd-card";
		qcom,wcn-btfm;
		qcom,mi2s-audio-intf;
		qcom,auxpcm-audio-intf;
		asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
			<&loopback>, <&compress>, <&hostless>,
			<&afe>, <&lsm>, <&routing>, <&cpe>, <&compr>,
			<&pcm_noirq>, <&cpe3>;
		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
			"msm-pcm-dsp.2", "msm-voip-dsp",
			"msm-pcm-voice", "msm-pcm-loopback",
			"msm-compress-dsp", "msm-pcm-hostless",
			"msm-pcm-afe", "msm-lsm-client",
			"msm-pcm-routing", "msm-cpe-lsm",
			"msm-compr-dsp", "msm-pcm-dsp-noirq",
			"msm-cpe-lsm.3";
		asoc-cpu = <&dai_mi2s0>, <&dai_mi2s1>,
			<&dai_mi2s2>, <&dai_mi2s3>, <&dai_mi2s4>,
			<&dai_pri_auxpcm>, <&dai_sec_auxpcm>,
			<&dai_tert_auxpcm>, <&dai_quat_auxpcm>,
			<&dai_quin_auxpcm>,
			<&sb_0_rx>, <&sb_0_tx>, <&sb_1_rx>, <&sb_1_tx>,
			<&sb_2_rx>, <&sb_2_tx>, <&sb_3_rx>, <&sb_3_tx>,
			<&sb_4_rx>, <&sb_4_tx>, <&sb_5_rx>, <&sb_5_tx>,
			<&sb_6_rx>, <&sb_7_rx>, <&sb_7_tx>,
			<&sb_8_rx>, <&sb_8_tx>,
			<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
			<&afe_proxy_tx>, <&incall_record_rx>,
			<&incall_record_tx>, <&incall_music_rx>,
			<&incall_music_2_rx>,
			<&usb_audio_rx>, <&usb_audio_tx>,
			<&dai_pri_tdm_rx_0>, <&dai_pri_tdm_tx_0>,
			<&dai_sec_tdm_rx_0>, <&dai_sec_tdm_tx_0>,
			<&dai_tert_tdm_rx_0>, <&dai_tert_tdm_tx_0>,
			<&dai_quat_tdm_rx_0>, <&dai_quat_tdm_tx_0>,
			<&dai_quin_tdm_rx_0>, <&dai_quin_tdm_tx_0>,
			<&proxy_rx>, <&proxy_tx>;
		asoc-cpu-names = "msm-dai-q6-mi2s.0", "msm-dai-q6-mi2s.1",
			"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
			"msm-dai-q6-mi2s.4",
			"msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2",
			"msm-dai-q6-auxpcm.3", "msm-dai-q6-auxpcm.4",
			"msm-dai-q6-auxpcm.5",
			"msm-dai-q6-dev.16384", "msm-dai-q6-dev.16385",
			"msm-dai-q6-dev.16386", "msm-dai-q6-dev.16387",
			"msm-dai-q6-dev.16388", "msm-dai-q6-dev.16389",
			"msm-dai-q6-dev.16390", "msm-dai-q6-dev.16391",
			"msm-dai-q6-dev.16392", "msm-dai-q6-dev.16393",
			"msm-dai-q6-dev.16394", "msm-dai-q6-dev.16395",
			"msm-dai-q6-dev.16396",
			"msm-dai-q6-dev.16398", "msm-dai-q6-dev.16399",
			"msm-dai-q6-dev.16400", "msm-dai-q6-dev.16401",
			"msm-dai-q6-dev.224", "msm-dai-q6-dev.225",
			"msm-dai-q6-dev.241", "msm-dai-q6-dev.240",
			"msm-dai-q6-dev.32771", "msm-dai-q6-dev.32772",
			"msm-dai-q6-dev.32773", "msm-dai-q6-dev.32770",
			"msm-dai-q6-dev.28672", "msm-dai-q6-dev.28673",
			"msm-dai-q6-tdm.36864", "msm-dai-q6-tdm.36865",
			"msm-dai-q6-tdm.36880", "msm-dai-q6-tdm.36881",
			"msm-dai-q6-tdm.36896", "msm-dai-q6-tdm.36897",
			"msm-dai-q6-tdm.36912", "msm-dai-q6-tdm.36913",
			"msm-dai-q6-tdm.36928", "msm-dai-q6-tdm.36929",
			"msm-dai-q6-dev.8194", "msm-dai-q6-dev.8195";
	};

	int_codec: sound {
		status = "okay";
		compatible = "qcom,sdm670-asoc-snd";
		qcom,model = "sdm670-mtp-snd-card";
		qcom,wcn-btfm;
		qcom,ext-disp-audio-rx;
		qcom,mi2s-audio-intf;
		qcom,auxpcm-audio-intf;
		asoc-platform = <&pcm0>, <&pcm1>, <&pcm2>, <&voip>, <&voice>,
			<&loopback>, <&compress>, <&hostless>,
			<&afe>, <&lsm>, <&routing>, <&compr>,
			<&pcm_noirq>;
		asoc-platform-names = "msm-pcm-dsp.0", "msm-pcm-dsp.1",
			"msm-pcm-dsp.2", "msm-voip-dsp",
			"msm-pcm-voice", "msm-pcm-loopback",
			"msm-compress-dsp", "msm-pcm-hostless",
			"msm-pcm-afe", "msm-lsm-client",
			"msm-pcm-routing", "msm-compr-dsp",
			"msm-pcm-dsp-noirq";
		asoc-cpu = <&dai_dp>, <&dai_mi2s0>, <&dai_mi2s1>,
			<&dai_mi2s2>, <&dai_mi2s3>, <&dai_mi2s4>,
			<&dai_int_mi2s0>, <&dai_int_mi2s1>,
			<&dai_int_mi2s2>, <&dai_int_mi2s3>,
			<&dai_int_mi2s4>, <&dai_int_mi2s5>,
			<&dai_pri_auxpcm>, <&dai_sec_auxpcm>,
			<&dai_tert_auxpcm>, <&dai_quat_auxpcm>,
			<&dai_quin_auxpcm>,
			<&afe_pcm_rx>, <&afe_pcm_tx>, <&afe_proxy_rx>,
			<&afe_proxy_tx>, <&incall_record_rx>,
			<&incall_record_tx>, <&incall_music_rx>,
			<&incall_music_2_rx>, <&sb_7_rx>, <&sb_7_tx>,
			<&sb_8_tx>, <&sb_8_rx>,
			<&usb_audio_rx>, <&usb_audio_tx>,
			<&dai_pri_tdm_rx_0>, <&dai_pri_tdm_tx_0>,
			<&dai_sec_tdm_rx_0>, <&dai_sec_tdm_tx_0>,
			<&dai_tert_tdm_rx_0>, <&dai_tert_tdm_tx_0>,
			<&dai_quat_tdm_rx_0>, <&dai_quat_tdm_tx_0>,
			<&dai_quin_tdm_rx_0>, <&dai_quin_tdm_tx_0>,
			<&proxy_rx>, <&proxy_tx>;
		asoc-cpu-names = "msm-dai-q6-dp.24608",
			"msm-dai-q6-mi2s.0","msm-dai-q6-mi2s.1",
			"msm-dai-q6-mi2s.2", "msm-dai-q6-mi2s.3",
			"msm-dai-q6-mi2s.4",
			"msm-dai-q6-mi2s.7", "msm-dai-q6-mi2s.8",
			"msm-dai-q6-mi2s.9", "msm-dai-q6-mi2s.10",
			"msm-dai-q6-mi2s.11", "msm-dai-q6-mi2s.12",
			"msm-dai-q6-auxpcm.1", "msm-dai-q6-auxpcm.2",
			"msm-dai-q6-auxpcm.3", "msm-dai-q6-auxpcm.4",
			"msm-dai-q6-auxpcm.5",
			"msm-dai-q6-dev.224", "msm-dai-q6-dev.225",
			"msm-dai-q6-dev.241", "msm-dai-q6-dev.240",
			"msm-dai-q6-dev.32771", "msm-dai-q6-dev.32772",
			"msm-dai-q6-dev.32773", "msm-dai-q6-dev.32770",
			"msm-dai-q6-dev.16398", "msm-dai-q6-dev.16399",
			"msm-dai-q6-dev.16401", "msm-dai-q6-dev.16400",
			"msm-dai-q6-dev.28672", "msm-dai-q6-dev.28673",
			"msm-dai-q6-tdm.36864", "msm-dai-q6-tdm.36865",
			"msm-dai-q6-tdm.36880", "msm-dai-q6-tdm.36881",
			"msm-dai-q6-tdm.36896", "msm-dai-q6-tdm.36897",
			"msm-dai-q6-tdm.36912", "msm-dai-q6-tdm.36913",
			"msm-dai-q6-tdm.36928", "msm-dai-q6-tdm.36929",
			"msm-dai-q6-dev.8194", "msm-dai-q6-dev.8195";
	};

	cpe: qcom,msm-cpe-lsm {
		compatible = "qcom,msm-cpe-lsm";
	};

	cpe3: qcom,msm-cpe-lsm@3 {
		compatible = "qcom,msm-cpe-lsm";
		qcom,msm-cpe-lsm-id = <3>;
	};

	pri_tdm_tx: qcom,msm-dai-tdm-pri-tx {
		compatible = "qcom,msm-dai-tdm";
		qcom,msm-cpudai-tdm-group-id = <37121>;
		qcom,msm-cpudai-tdm-group-num-ports = <4>;
		qcom,msm-cpudai-tdm-group-port-id = <36865 36867 36869 36871>;
		qcom,msm-cpudai-tdm-clk-rate = <1536000>;
		qcom,msm-cpudai-tdm-clk-internal = <1>;
		qcom,msm-cpudai-tdm-sync-mode = <1>;
		qcom,msm-cpudai-tdm-sync-src = <1>;
		qcom,msm-cpudai-tdm-data-out = <0>;
		qcom,msm-cpudai-tdm-invert-sync = <1>;
		qcom,msm-cpudai-tdm-data-delay = <1>;
		dai_pri_tdm_tx_0: qcom,msm-dai-q6-tdm-pri-tx-0 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36865>;
			qcom,msm-cpudai-tdm-data-align = <0>;
		};
		dai_pri_tdm_tx_1: qcom,msm-dai-q6-tdm-pri-tx-1 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36867>;
			qcom,msm-cpudai-tdm-data-align = <0>;
		};
		dai_pri_tdm_tx_2: qcom,msm-dai-q6-tdm-pri-tx-2 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36869>;
			qcom,msm-cpudai-tdm-data-align = <0>;
		};
		dai_pri_tdm_tx_3: qcom,msm-dai-q6-tdm-pri-tx-3 {
			compatible = "qcom,msm-dai-q6-tdm";
			qcom,msm-cpudai-tdm-dev-id = <36871>;
			qcom,msm-cpudai-tdm-data-align = <0>;
		};
	};
};

&slim_aud {
	status = "disabled";
	dai_slim: msm_dai_slim {
		status = "disabled";
		compatible = "qcom,msm-dai-slim";
		elemental-addr = [ff ff ff fe 17 02];
	};
};

&msm_dai_mi2s {
	dai_int_mi2s0: qcom,msm-dai-q6-int-mi2s0 {
		compatible = "qcom,msm-dai-q6-mi2s";
		qcom,msm-dai-q6-mi2s-dev-id = <7>;
		qcom,msm-mi2s-rx-lines = <3>;
		qcom,msm-mi2s-tx-lines = <0>;
	};

	dai_int_mi2s1: qcom,msm-dai-q6-int-mi2s1 {
		compatible = "qcom,msm-dai-q6-mi2s";
		qcom,msm-dai-q6-mi2s-dev-id = <8>;
		qcom,msm-mi2s-rx-lines = <3>;
		qcom,msm-mi2s-tx-lines = <0>;
	};

	dai_int_mi2s2: qcom,msm-dai-q6-int-mi2s2 {
		compatible = "qcom,msm-dai-q6-mi2s";
		qcom,msm-dai-q6-mi2s-dev-id = <9>;
		qcom,msm-mi2s-rx-lines = <0>;
		qcom,msm-mi2s-tx-lines = <3>;
	};

	dai_int_mi2s3: qcom,msm-dai-q6-int-mi2s3 {
		compatible = "qcom,msm-dai-q6-mi2s";
		qcom,msm-dai-q6-mi2s-dev-id = <10>;
		qcom,msm-mi2s-rx-lines = <0>;
		qcom,msm-mi2s-tx-lines = <3>;
	};

	dai_int_mi2s4: qcom,msm-dai-q6-int-mi2s4 {
		compatible = "qcom,msm-dai-q6-mi2s";
		qcom,msm-dai-q6-mi2s-dev-id = <11>;
		qcom,msm-mi2s-rx-lines = <3>;
		qcom,msm-mi2s-tx-lines = <0>;
	};

	dai_int_mi2s5: qcom,msm-dai-q6-int-mi2s5 {
		compatible = "qcom,msm-dai-q6-mi2s";
		qcom,msm-dai-q6-mi2s-dev-id = <12>;
		qcom,msm-mi2s-rx-lines = <0>;
		qcom,msm-mi2s-tx-lines = <3>;
	};

	dai_int_mi2s6: qcom,msm-dai-q6-int-mi2s6 {
		compatible = "qcom,msm-dai-q6-mi2s";
		qcom,msm-dai-q6-mi2s-dev-id = <13>;
		qcom,msm-mi2s-rx-lines = <0>;
		qcom,msm-mi2s-tx-lines = <3>;
	};
};
