/*
 * 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 {
		#address-cells = <1>;
		#size-cells = <0>;
		dpi_lcd_out: endpoint@1 {
			reg = <1>;
			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;
	};
};
