/*
 * Copyright 2017-2018 NXP
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * 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.
 */
/*
 * HDMI only dts, disable ldb display.
 */

#include "fsl-imx8qm-lpddr4-arm2.dts"

/ {
	sound-hdmi {
		compatible = "fsl,imx-audio-cdnhdmi";
		model = "imx-audio-dp";
		audio-cpu = <&sai_hdmi_tx>;
		protocol = <1>;
		hdmi-out;
	};
};

&ldb1_phy {
	status = "disabled";
};

&ldb1 {
	status = "disabled";
};

&i2c1_lvds0 {
	status = "disabled";
};

&irqsteer_hdmi {
	status = "okay";
};

&hdmi {
	compatible = "fsl,imx8qm-dp";
	assigned-clocks = <&clk IMX8QM_HDMI_PXL_SEL>,
					<&clk IMX8QM_HDMI_PXL_LINK_SEL>,
					<&clk IMX8QM_HDMI_PXL_MUX_SEL>;
	assigned-clock-parents = <&clk IMX8QM_HDMI_AV_PLL_CLK>,
					<&clk IMX8QM_HDMI_AV_PLL_CLK>,
					<&clk IMX8QM_HDMI_AV_PLL_CLK>;

	dp-lane-mapping = <0x1b>;
	dp-link-rate = <0x14>;
	dp-num-lanes = <0x4>;

	status = "okay";
};
