/*
 * Copyright 2013 Eukréa Electromatique <denis@eukrea.com>
 *
 * 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.
 */

#include "imx25-eukrea-mbimxsd25-baseboard.dts"

/ {
	model = "Eukrea MBIMXSD25 with the DVI-VGA Display";
	compatible = "eukrea,mbimxsd25-baseboard-dvi-vga", "eukrea,mbimxsd25-baseboard", "eukrea,cpuimx25", "fsl,imx25";

	dvi_vga: display {
		model = "DVI-VGA";
		bits-per-pixel = <16>;
		fsl,pcr = <0xfa208b80>;
		bus-width = <18>;
		native-mode = <&dvi_vga_timings>;
		display-timings {
			dvi_vga_timings: 640x480 {
				clock-frequency = <31250000>;
				hactive = <640>;
				vactive = <480>;
				hback-porch = <100>;
				hfront-porch = <100>;
				vback-porch = <7>;
				vfront-porch = <100>;
				hsync-len = <7>;
				vsync-len = <7>;
			};
		};
	};
};

&lcdc {
	display = <&dvi_vga>;
	status = "okay";
};
