/*
 * Copyright (c) 2015-2016, 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 "msm8937-wsa881x.dtsi"

&int_codec {
	qcom,model = "msm8952-snd-card-mtp";

	qcom,cdc-us-euro-gpios = <&tlmm 63 0>;
	qcom,msm-mbhc-hphl-swh = <0>;
	qcom,msm-mbhc-gnd-swh = <0>;
	qcom,msm-hs-micbias-type = "external";
	qcom,msm-micbias1-ext-cap;

	asoc-codec = <&stub_codec>, <&pm8937_cajon_dig>, <&hdmi_dba>;
	asoc-codec-names = "msm-stub-codec.1", "cajon_codec",
						"msm-hdmi-dba-codec-rx";
};

&ext_codec {
	qcom,model = "msm8952-tasha-snd-card";

	qcom,cdc-us-euro-gpios = <&tlmm 63 0>;
	qcom,msm-mbhc-hphl-swh = <0>;
	qcom,msm-mbhc-gnd-swh = <0>;

	qcom,wsa-max-devs = <2>;
	qcom,wsa-devs = <&wsa881x_211>, <&wsa881x_212>,
			<&wsa881x_213>, <&wsa881x_214>;
	qcom,wsa-aux-dev-prefix = "SpkrLeft", "SpkrRight",
				"SpkrLeft", "SpkrRight";
};

&wcd9xxx_intc {
	interrupt-parent = <&tlmm>;
	interrupts = <73 0>;
	qcom,gpio-connect = <&tlmm 73 0>;
};

&clock_audio {
	qcom,audio-ref-clk-gpio = <&pm8937_gpios 1 0>;
	clocks = <&clock_gcc clk_div_clk2>;
};

&pm8937_1 {
	pm8937_cajon_dig: 8952_wcd_codec@f000 {
		compatible = "qcom,msm8x16_wcd_codec";
		reg = <0xf000 0x100>;
		interrupt-parent = <&spmi_bus>;
		interrupts = <0x1 0xf0 0x0>,
			     <0x1 0xf0 0x1>,
			     <0x1 0xf0 0x2>,
			     <0x1 0xf0 0x3>,
			     <0x1 0xf0 0x4>,
			     <0x1 0xf0 0x5>,
			     <0x1 0xf0 0x6>,
			     <0x1 0xf0 0x7>;
		interrupt-names = "spk_cnp_int",
				  "spk_clip_int",
				  "spk_ocp_int",
				  "ins_rem_det1",
				  "but_rel_det",
				  "but_press_det",
				  "ins_rem_det",
				  "mbhc_int";

		cdc-vdda-cp-supply = <&pm8917_s4>;
		qcom,cdc-vdda-cp-voltage = <2050000 2050000>;
		qcom,cdc-vdda-cp-current = <210000>;

		cdc-vdd-io-supply = <&pm8917_l5>;
		qcom,cdc-vdd-io-voltage = <1800000 1800000>;
		qcom,cdc-vdd-io-current = <5000>;

		cdc-vdd-pa-supply = <&pm8917_s4>;
		qcom,cdc-vdd-pa-voltage = <2050000 2050000>;
		qcom,cdc-vdd-pa-current = <260000>;

		cdc-vdd-mic-bias-supply = <&pm8917_l13>;
		qcom,cdc-vdd-mic-bias-voltage = <3075000 3075000>;
		qcom,cdc-vdd-mic-bias-current = <5000>;

		qcom,cdc-mclk-clk-rate = <9600000>;

		qcom,cdc-static-supplies =  "cdc-vdd-io",
					   "cdc-vdd-pa",
					   "cdc-vdda-cp";

		qcom,cdc-on-demand-supplies = "cdc-vdd-mic-bias";
		qcom,dig-cdc-base-addr = <0xc0f0000>;
	};

	pm8937_cajon_analog: 8952_wcd_codec@f100 {
		compatible = "qcom,msm8x16_wcd_codec";
		reg = <0xf100 0x100>;
		interrupt-parent = <&spmi_bus>;
		interrupts = <0x1 0xf1 0x0>,
			     <0x1 0xf1 0x1>,
			     <0x1 0xf1 0x2>,
			     <0x1 0xf1 0x3>,
			     <0x1 0xf1 0x4>,
			     <0x1 0xf1 0x5>;
		interrupt-names = "ear_ocp_int",
				  "hphr_ocp_int",
				  "hphl_ocp_det",
				  "ear_cnp_int",
				  "hphr_cnp_int",
				  "hphl_cnp_int";
		qcom,dig-cdc-base-addr = <0xc0f0000>;
	};
};

&wcd_rst_gpio {
	qcom,cdc-rst-n-gpio = <&tlmm 68 0>;
};

&wcd9335 {
	cdc-vdd-buck-supply = <&eldo2_pm8917>;
	qcom,cdc-vdd-buck-voltage = <1800000 1800000>;
	qcom,cdc-vdd-buck-current = <650000>;

	cdc-buck-sido-supply = <&eldo2_pm8917>;
	qcom,cdc-buck-sido-voltage = <1800000 1800000>;
	qcom,cdc-buck-sido-current = <250000>;

	cdc-vdd-tx-h-supply = <&pm8917_l5>;
	qcom,cdc-vdd-tx-h-voltage = <1800000 1800000>;
	qcom,cdc-vdd-tx-h-current = <25000>;

	cdc-vdd-rx-h-supply = <&pm8917_l5>;
	qcom,cdc-vdd-rx-h-voltage = <1800000 1800000>;
	qcom,cdc-vdd-rx-h-current = <25000>;

	cdc-vdd-px-supply = <&pm8917_l5>;
	qcom,cdc-vdd-px-voltage = <1800000 1800000>;
	qcom,cdc-vdd-px-current = <10000>;

	cdc-vdd-mic-bias-supply = <&pm8917_l13>;
	qcom,cdc-vdd-mic-bias-voltage = <3075000 3075000>;
	qcom,cdc-vdd-mic-bias-current = <15000>;
};
