/*
 * Author: Anthoine Bourgeois <anthoine.bourgois@gmail.com>
 *
 * 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.
 */

#include "omap3-devkit8000-common.dtsi"
/ {
	aliases {
		display0 = &lcd0;
		display1 = &dvi0;
		display2 = &tv0;
	};

	lcd0: display {
		compatible = "panel-dpi";
		label = "lcd";

		enable-gpios = <&twl_gpio 18 GPIO_ACTIVE_HIGH>;

		port {
			lcd_in: endpoint {
				remote-endpoint = <&dpi_lcd_out>;
			};
		};
	};
};

&dss {
	port {
		dpi_lcd_out: endpoint {
			remote-endpoint = <&lcd_in>;
			data-lines = <24>;
		};
	};
};

&vio {
	regulator-min-microvolt = <1800000>;
	regulator-max-microvolt = <1800000>;
};

&mcspi2 {

	/* touch controller */
	ads7846@0 {
		compatible = "ti,ads7846";
		vcc-supply = <&vio>;

		reg = <0>;			/* CS0 */
		spi-max-frequency = <1500000>;

		interrupt-parent = <&gpio1>;
		interrupts = <27 0>;		/* gpio_27 */
		pendown-gpio = <&gpio1 27 GPIO_ACTIVE_HIGH>;

		ti,x-min = /bits/ 16 <0x0>;
		ti,x-max = /bits/ 16 <0x0fff>;
		ti,y-min = /bits/ 16 <0x0>;
		ti,y-max = /bits/ 16 <0x0fff>;
		ti,x-plate-ohms = /bits/ 16 <180>;
		ti,pressure-max = /bits/ 16 <255>;
		ti,debounce-max = /bits/ 16 <10>;
		ti,debounce-tol = /bits/ 16 <5>;
		ti,debounce-rep = /bits/ 16 <1>;
		ti,keep-vref-on = <1>;
		ti,settle-delay-usec = /bits/ 16 <150>;

		wakeup-source;
	};
};
