// SPDX-License-Identifier: GPL-2.0
/*
 * SDM845 SoC device tree source
 *
 * Copyright (c) 2018, The Linux Foundation. All rights reserved.
 */

&slim {
	status = "okay";

	slim@1 {
		reg = <1>;
		#address-cells = <2>;
		#size-cells = <0>;

		wcd9340_ifd: ifd@0,0 {
			compatible = "slim217,250";
			reg = <0 0>;
		};

		wcd9340: codec@1,0 {
			compatible = "slim217,250";
			reg = <1 0>;
			slim-ifc-dev = <&wcd9340_ifd>;

			#sound-dai-cells = <1>;

			interrupts-extended = <&tlmm 54 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-controller;
			#interrupt-cells = <1>;

			clock-names = "extclk";
			clocks = <&rpmhcc RPMH_LN_BB_CLK2>;

			#clock-cells = <0>;
			clock-frequency = <9600000>;
			clock-output-names = "mclk";

			pinctrl-0 = <&wcd_intr_default>;
			pinctrl-names = "default";

			qcom,micbias1-microvolt = <1800000>;
			qcom,micbias2-microvolt = <1800000>;
			qcom,micbias3-microvolt = <1800000>;
			qcom,micbias4-microvolt = <1800000>;

			#address-cells = <1>;
			#size-cells = <1>;

			wcdgpio: gpio-controller@42 {
				compatible = "qcom,wcd9340-gpio";
				gpio-controller;
				#gpio-cells = <2>;
				reg = <0x42 0x2>;
			};

			swm: swm@c85 {
				compatible = "qcom,soundwire-v1.3.0";
				reg = <0xc85 0x40>;
				interrupts-extended = <&wcd9340 20>;

				qcom,dout-ports = <6>;
				qcom,din-ports = <2>;
				qcom,ports-sinterval-low = /bits/ 8  <0x07 0x1f 0x3f 0x7 0x1f 0x3f 0x0f 0x0f>;
				qcom,ports-offset1 = /bits/ 8 <0x01 0x02 0x0c 0x6 0x12 0x0d 0x07 0x0a>;
				qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x1f 0x00 0x00 0x1f 0x00 0x00>;

				#sound-dai-cells = <1>;
				clocks = <&wcd9340>;
				clock-names = "iface";
				#address-cells = <2>;
				#size-cells = <0>;
			};
		};
	};
};

&tlmm {
	wcd_intr_default: wcd-intr-default-state {
		pins = "gpio54";
		function = "gpio";

		bias-pull-down;
		drive-strength = <2>;
	};
};