/*
 * Copyright (c) 2015-2016, 2018, 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.
 */

&slim_msm {
	tasha_codec {
		swr_master {
			compatible = "qcom,swr-wcd";
			qcom,swr-num-dev = <2>;
			#address-cells = <2>;
			#size-cells = <0>;

			wsa881x_211: wsa881x@20170211 {
				status = "disabled";
				compatible = "qcom,wsa881x";
				reg = <0x00 0x20170211>;
				//qcom,spkr-sd-n-gpio = <&tlmm 96 0>;
			};

			wsa881x_212: wsa881x@20170212 {
				status = "disabled";
				compatible = "qcom,wsa881x";
				reg = <0x00 0x20170212>;
				//qcom,spkr-sd-n-gpio = <&tlmm 96 0>;
			};

			wsa881x_213: wsa881x@21170213 {
				status = "disabled";
				compatible = "qcom,wsa881x";
				reg = <0x00 0x21170213>;
				//qcom,spkr-sd-n-gpio = <&tlmm 96 0>;
			};

			wsa881x_214: wsa881x@21170214 {
				status = "disabled";
				compatible = "qcom,wsa881x";
				reg = <0x00 0x21170214>;
				//qcom,spkr-sd-n-gpio = <&tlmm 96 0>;
			};
		};
	};
};
