Merge branch incoming-qcom-pxw-sw5100-b272192826-visense into android13-msm-pixelwatch-5.15

Bug: 272192826
Change-Id: Ie484955a22115a1cd54a82ef65e19d4d0a2347d7
Signed-off-by: Andrew Evans <andrewevans@google.com>
diff --git a/bindings/qcom-audio-dev.txt b/bindings/qcom-audio-dev.txt
index cb8536a..859ef50 100755
--- a/bindings/qcom-audio-dev.txt
+++ b/bindings/qcom-audio-dev.txt
@@ -1976,6 +1976,147 @@
 		qcom,msm_audio_ssr_devs = <&audio_apr>, <&q6core>;
 	};
 
+* MONACO ASoC Machine driver
+
+Required properties:
+- compatible : "qcom,monaco-asoc-snd".
+- qcom,model : The user-visible name of this sound card.
+- qcom,audio-routing : A list of the connections between audio components.
+- asoc-platform: This is phandle list containing the references to platform device
+		 nodes that are used as part of the sound card dai-links.
+- asoc-platform-names: This property contains list of platform names. The order of
+		       the platform names should match to that of the phandle order
+		       given in "asoc-platform".
+- asoc-cpu: This is phandle list containing the references to cpu dai device nodes
+	    that are used as part of the sound card dai-links.
+- asoc-cpu-names: This property contains list of cpu dai names. The order of the
+		  cpu dai names should match to that of the phandle order given
+		  in "asoc-cpu". The cpu names are in the form of "%s.%d" form,
+		  where the id (%d) field represents the back-end AFE port id that
+		  this CPU dai is associated with.
+- asoc-codec: This is phandle list containing the references to codec dai device
+	      nodes that are used as part of the sound card dai-links.
+- asoc-codec-names: This property contains list of codec dai names. The order of the
+		    codec dai names should match to that of the phandle order given
+		    in "asoc-codec".
+
+Optional properties:
+- qcom,msm-mi2s-master: This property is used to inform machine driver
+  if MSM is the clock master of mi2s. 1 means master and 0 means slave. The
+  first entry is primary mi2s; the second entry is secondary mi2s, and so on.
+- qcom,wsa-max-devs : Maximum number of WSA883x devices present in the target
+- qcom,wsa-devs : List of phandles for all possible WSA883x devices supported for the target
+- qcom,ext-disp-audio-rx: Property to specify if Audio over Display port is supported for the target
+- qcom,wcn-btfm : Property to specify if WCN BT/FM chip is used for the target
+- qcom,mi2s-audio-intf: Property to specify if MI2S interface is used for the target
+- qcom,cc-va-intf-enable : Property to specify if VA interface is used for the target
+- qcom,auxpcm-audio-intf: Property to specify if Aux PCM interface is used for the target
+- qcom,cdc-dmic-gpios : phandle for Digital mic clk and data gpios.
+- qcom,msm_audio_ssr_devs: List the snd event framework clients
+- qcom,afe-rxtx-lb: AFE RX to TX loopback.
+- qcom,tlmm-gpio: TLMM gpio number for corresponding LPASS gpio
+- qcom,va-bolero-codec: Property to specify VA macro supported.
+- qcom,rxtx-bolero-codec: Property to specify RX-TX macros supported.
+- qcom,wsa-bolero-codec: Property to specify WSA macro supported.
+- qcom,visense-enable: Property to specify VISense need to enable or not.
+- qcom,rx-wsa-enable: Property to specify wsa need to enable or not.
+
+Example:
+	monaco_snd: sound {
+		status = "okay";
+		compatible = "qcom,monaco-asoc-snd";
+		qcom,mi2s-audio-intf = <0>;
+		qcom,cc-va-intf-enable = <0>;
+		qcom,auxpcm-audio-intf = <0>;
+		qcom,tdm-audio-intf = <0>;
+		qcom,wcn-btfm = <0>;
+		qcom,afe-rxtx-lb = <0>;
+
+		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_mi2s0>, <&dai_mi2s1>,
+				<&dai_mi2s2>, <&dai_mi2s3>,
+				<&dai_pri_auxpcm>,
+				<&dai_sec_auxpcm>, <&dai_tert_auxpcm>,
+				<&dai_quat_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>,
+				<&proxy_rx>, <&proxy_tx>,
+				<&usb_audio_rx>, <&usb_audio_tx>,
+				<&sb_7_rx>, <&sb_7_tx>, <&sb_8_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>,
+				<&va_cdc_dma_0_tx>, <&va_cdc_dma_1_tx>,
+				<&va_cdc_dma_2_tx>,
+				<&rx_cdc_dma_0_rx>, <&tx_cdc_dma_0_tx>,
+				<&rx_cdc_dma_1_rx>, <&tx_cdc_dma_1_tx>,
+				<&rx_cdc_dma_2_rx>, <&tx_cdc_dma_2_tx>,
+				<&rx_cdc_dma_3_rx>, <&tx_cdc_dma_3_tx>,
+				<&rx_cdc_dma_4_rx>, <&tx_cdc_dma_4_tx>,
+				<&rx_cdc_dma_5_rx>, <&tx_cdc_dma_5_tx>,
+				<&rx_cdc_dma_6_rx>, <&rx_cdc_dma_7_rx>,
+				<&afe_loopback_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-auxpcm.1",
+				"msm-dai-q6-auxpcm.2", "msm-dai-q6-auxpcm.3",
+				"msm-dai-q6-auxpcm.4", "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.8194", "msm-dai-q6-dev.8195",
+				"msm-dai-q6-dev.28672", "msm-dai-q6-dev.28673",
+				"msm-dai-q6-dev.16398", "msm-dai-q6-dev.16399",
+				"msm-dai-q6-dev.16401",
+				"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-cdc-dma-dev.45089",
+				"msm-dai-cdc-dma-dev.45091",
+				"msm-dai-cdc-dma-dev.45093",
+				"msm-dai-cdc-dma-dev.45104",
+				"msm-dai-cdc-dma-dev.45105",
+				"msm-dai-cdc-dma-dev.45106",
+				"msm-dai-cdc-dma-dev.45107",
+				"msm-dai-cdc-dma-dev.45108",
+				"msm-dai-cdc-dma-dev.45109",
+				"msm-dai-cdc-dma-dev.45110",
+				"msm-dai-cdc-dma-dev.45111",
+				"msm-dai-cdc-dma-dev.45112",
+				"msm-dai-cdc-dma-dev.45113",
+				"msm-dai-cdc-dma-dev.45114",
+				"msm-dai-cdc-dma-dev.45115",
+				"msm-dai-cdc-dma-dev.45116",
+				"msm-dai-cdc-dma-dev.45118",
+				"msm-dai-q6-dev.24577";
+		qcom,msm-mi2s-master = <1>, <1>, <1>, <1>;
+		qcom,cdc-dmic01-gpios = <&cdc_dmic01_gpios>;
+		qcom,cdc-dmic02-gpios = <&cdc_dmic02_gpios>;
+		asoc-codec  = <&stub_codec>, <&bolero>;
+		asoc-codec  = <&stub_codec>, <&bolero>,
+				<&besbev_codec>, <&wsa883x_0221>;
+		asoc-codec-names = "msm-stub-codec.1", "bolero_codec",
+				"besbev_codec", "wsa-codec1";
+		qcom,wsa-max-devs = <1>;
+		qcom,wsa-devs = <&wsa883x_0221>;
+		qcom,msm_audio_ssr_devs = <&audio_gpr>, <&bolero>, <&lpi_tlmm>;
+	};
+
 * KONA ASoC Machine driver
 
 Required properties:
diff --git a/bindings/wcd_codec.txt b/bindings/wcd_codec.txt
index 1994f43..db62e3b 100755
--- a/bindings/wcd_codec.txt
+++ b/bindings/wcd_codec.txt
@@ -767,3 +767,55 @@
 	compatible = "qcom,pm5100-spmi";
 	};
 };
+
+Besbev Codec
+
+Required properties:
+ - compatible: "qcom,besbev-codec";
+ - qcom,split-codec: Property to check on split codec support.
+ - qcom,swr_ch_map: mapping of swr tx/rx slave port configuration to port_type and also
+		corresponding master port type it need to attach.
+		format: <port_id, slave_port_type, ch_mask, ch_rate, master_port_type>
+		same port_id configurations have to be grouped, and in ascending order.
+ - qcom,pmic-spmi-node: Phandle reference to the PMIC SPMI DT node.
+ - qcom,wcd-reset-reg: Reset register address in PMIC for rouleur codec.
+ - qcom,visense-support: Property to specify VISense supported or not
+ - qcom,besbev-slave: phandle reference of Soundwire Tx/Rx slave device.
+ - qcom,speaker-present: Property to check besbev is connected RX SWR or TX SWR of bolero codec.
+
+Optional properties:
+
+ - cdc-mic-bias-supply: phandle of mic bias supply's regulator device tree node.
+ - qcom,cdc-mic-bias-voltage: mic bias supply's voltage level min and max in mV.
+ - qcom,cdc-mic-bias-current: mic bias supply's max current in mA.
+
+ - qcom,cdc-mic-bias-lpm-supported: mic bias supply's LPM mode.
+
+ - qcom,cdc-static-supplies: List of supplies to be enabled prior to codec
+			     hardware probe.  Supplies in this list will be
+			     stay enabled.
+
+Example:
+
+besbev_codec: besbev-codec {
+	compatible = "qcom,besbev-codec";
+	qcom,split-codec = <1>;
+	qcom,pmic-spmi-node = <&pm2250_cdc>;
+	qcom,wcd-reset-reg = <0x0000FCDB>;
+	qcom,foundry-id-reg = <0x0000704D>;
+	qcom,visense-support = <1>;
+        qcom,swr_ch_map = <0 SPKR_L 0x1 0 LO>,
+		<3 SPKR_L_VI 0x3 0 SWRM_RX_PCM_IN>;
+
+	qcom,besbev-slave = <&besbev_rx_slave>;
+	qcom,speaker-present = <1>;
+
+	cdc-mic-bias-supply = <&L28A>;
+	qcom,cdc-mic-bias-voltage = <2904000 2904000>;
+	qcom,cdc-mic-bias-current = <1180>
+
+	qcom,cdc-micbias1-mv = <1800>;
+	qcom,cdc-micbias2-mv = <1800>;
+
+	qcom,cdc-static-supplies = "cdc-mic-bias";
+};
diff --git a/monaco-amic-audio.dtsi b/monaco-amic-audio.dtsi
index 18e108b..7044bb5 100755
--- a/monaco-amic-audio.dtsi
+++ b/monaco-amic-audio.dtsi
@@ -12,8 +12,10 @@
 };
 
 &besbev_codec {
-		qcom,swr_ch_map = <0 SPKR_L 0x1 0 LO>,
-				<2 ADC1 0x1 0 SWRM_TX1_CH1>, <2 ADC2 0x2 0 SWRM_TX1_CH2>;
+	qcom,visense-support = <0>;
+	qcom,swr_ch_map = <0 SPKR_L 0x1 0 LO>,
+		<2 ADC1 0x1 0 SWRM_TX1_CH1>,
+		<2 ADC2 0x2 0 SWRM_TX1_CH2>;
 };
 
 &monaco_snd {
@@ -24,7 +26,6 @@
 	qcom,wcn-btfm = <0>;
 	qcom,bt-slim-clk-src-ctrl = <1>;
 	qcom,va-bolero-codec = <1>;
-	qcom,visense-enable = <0>;
 	qcom,audio-routing =
 		"AMIC1", "Analog Mic1",
 		"Analog Mic1","MIC BIAS1",
diff --git a/monaco-audio-overlay.dtsi b/monaco-audio-overlay.dtsi
index 1ae307d..cde7789 100755
--- a/monaco-audio-overlay.dtsi
+++ b/monaco-audio-overlay.dtsi
@@ -62,8 +62,7 @@
 				<3 COMP_L 0x1>, <3 COMP_R 0x2>,
 				<4 LO 0x1>, <5 DSD_L 0x1>,
 				<5 DSD_R 0x2>,
-				<7 SWRM_TX1_CH1 0x1>, <7 SWRM_TX1_CH2 0x2>;
-				//<7 SWRM_RX_PCM_IN 0xF>;
+				<7 SWRM_RX_PCM_IN 0x3>;
 			qcom,swr-num-dev = <1>;
 			qcom,swr-clock-stop-mode0 = <1>;
 			besbev_rx_slave: besbev-rx-slave {
@@ -123,12 +122,9 @@
 		qcom,pmic-spmi-node = <&pm5100_cdc>;
 		qcom,wcd-reset-reg = <0x0000FCDB>;
 		qcom,foundry-id-reg = <0x000001F2>;
-		//TODO:
+		qcom,visense-support = <1>;
 		qcom,swr_ch_map = <0 SPKR_L 0x1 0 LO>,
-				  <2 ADC1 0x1 0 SWRM_TX1_CH1>,
-				  <2 ADC2 0x2 0 SWRM_TX1_CH2>;
-				//<3 SPKR_L_VI 0x3 0 SWRM_RX_PCM_IN>;
-
+				  <3 SPKR_L_VI 0x3 0 SWRM_RX_PCM_IN>;
 		qcom,besbev-slave = <&besbev_rx_slave>;
 		qcom,speaker-present = <1>;
 		qcom,comp-support = <0>;
@@ -223,6 +219,8 @@
 		"Digital Mic3", "MIC BIAS2",
 		"SPKR_IN", "AUX_OUT",
 		"TX SWR_INPUT", "VA_TX_SWR_CLK",
+		"RX_SWR_TX_PCM_IN0", "RX_MCLK",
+		"RX_SWR_TX_PCM_IN1", "RX_MCLK",
 		"RX_TX DEC0_INP", "TX DEC0 MUX",
 		"RX_TX DEC1_INP", "TX DEC1 MUX",
 		"RX_TX DEC2_INP", "TX DEC2 MUX",
diff --git a/monaco-wsa-audio.dtsi b/monaco-wsa-audio.dtsi
index 33f0f63..ae52aa6 100755
--- a/monaco-wsa-audio.dtsi
+++ b/monaco-wsa-audio.dtsi
@@ -47,8 +47,7 @@
 				<3 COMP_L 0x1>, <3 COMP_R 0x2>,
 				<4 LO 0x1>, <5 DSD_L 0x1>,
 				<5 DSD_R 0x2>,
-					<7 SWRM_TX1_CH1 0x1>, <7 SWRM_TX1_CH2 0x2>;
-				//<7 SWRM_RX_PCM_IN 0xF>;
+				<7 SWRM_RX_PCM_IN 0x3>;
 			qcom,swr-num-dev = <1>;
 			qcom,swr-clock-stop-mode0 = <1>;
 			wsa883x_0221: wsa883x@02170221 {
@@ -73,6 +72,8 @@
 	qcom,audio-routing =
 		"SpkrLeft IN", "AUX_OUT",
 		"TX SWR_INPUT", "VA_TX_SWR_CLK",
+		"RX_SWR_TX_PCM_IN0", "RX_MCLK",
+		"RX_SWR_TX_PCM_IN1", "RX_MCLK",
 		"RX_TX DEC0_INP", "TX DEC0 MUX",
 		"RX_TX DEC1_INP", "TX DEC1 MUX",
 		"RX_TX DEC2_INP", "TX DEC2 MUX",