/*
 * 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 CMO-QVGA Display";
	compatible = "eukrea,mbimxsd25-baseboard-cmo-qvga", "eukrea,mbimxsd25-baseboard", "eukrea,cpuimx25", "fsl,imx25";

	cmo_qvga: display {
		model = "CMO-QVGA";
		bits-per-pixel = <16>;
		fsl,pcr = <0xcad08b80>;
		bus-width = <18>;
		native-mode = <&qvga_timings>;
		display-timings {
			qvga_timings: 320x240 {
				clock-frequency = <6500000>;
				hactive = <320>;
				vactive = <240>;
				hback-porch = <30>;
				hfront-porch = <38>;
				vback-porch = <20>;
				vfront-porch = <3>;
				hsync-len = <15>;
				vsync-len = <4>;
			};
		};
	};

	regulators {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;

		reg_lcd_3v3: regulator@0 {
			compatible = "regulator-fixed";
			reg = <0>;
			pinctrl-names = "default";
			pinctrl-0 = <&pinctrl_reg_lcd_3v3>;
			regulator-name = "lcd-3v3";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			gpio = <&gpio1 26 GPIO_ACTIVE_HIGH>;
			enable-active-high;
		};
	};
};

&iomuxc {
	imx25-eukrea-mbimxsd25-baseboard-cmo-qvga {
		pinctrl_reg_lcd_3v3: reg_lcd_3v3 {
			fsl,pins = <MX25_PAD_PWM__GPIO_1_26 0x80000000>;
		};
	};
};

&lcdc {
	display = <&cmo_qvga>;
	fsl,lpccr = <0x00a903ff>;
	lcd-supply = <&reg_lcd_3v3>;
	status = "okay";
};
