/*
 * Copyright (C) 2014-2015 Freescale Semiconductor, Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * This feature is supported by the MX6SX-SD-EXP1 board
 *
 */

#include "imx6sx-sdb.dts"
/ {

	sound {
		status = "disabled";
	};

	sound-mqs {
		compatible = "fsl,imx6sx-sdb-mqs",
				"fsl,imx-audio-mqs";
		model = "mqs-audio";
		cpu-dai = <&sai1>;
		asrc-controller = <&asrc>;
		audio-codec = <&mqs>;
	};
};

&usdhc2 {
	/* pin conflict with mqs*/
	status = "disabled";
};

&mqs {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_mqs>;
	clocks = <&clks IMX6SX_CLK_SAI1>;
	clock-names = "mclk";
	status = "okay";
};

&sai1 {
	pinctrl-0 = <>;
	status = "okay";
};

&ssi2 {
	status = "disabled";
};

&sdma {
	gpr = <&gpr>;
	/* SDMA event remap for SAI1 */
	fsl,sdma-event-remap = <0 15 1>, <0 16 1>;
};
