/*
 * Copyright (c) 2020 Teslabs Engineering S.L.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <zephyr/dt-bindings/display/ili9xxx.h>

/ {
	chosen {
		zephyr,display = &ili9488_buydisplay_3_5_tft_touch_arduino;
	};

	lvgl_pointer {
		compatible = "zephyr,lvgl-pointer-input";
		input = <&ft5336_buydisplay_3_5_tft_touch_arduino>;
		swap-xy;
		invert-x;
		invert-y;
	};
};

&arduino_spi {
	status = "okay";
	cs-gpios = <&arduino_header 15 GPIO_ACTIVE_LOW>; /* D9 */

	ili9488_buydisplay_3_5_tft_touch_arduino: ili9488@0 {
		compatible = "ilitek,ili9488";
		spi-max-frequency = <25000000>;
		reg = <0>;
		cmd-data-gpios = <&arduino_header 13 GPIO_ACTIVE_LOW>; /* D7 */
		reset-gpios = <&arduino_header 16 GPIO_ACTIVE_LOW>; /* D10 */
		pixel-format = <ILI9XXX_PIXEL_FORMAT_RGB888>;
		width = <320>;
		height = <480>;
		rotation = <0>;
		frmctr1 = [a0 11];
		pwctrl1 = [17 15];
		pwctrl2 = [41];
		pgamctrl = [00 03 09 08 16 0a 3f 78 4c 09 0a 08 16 1a 0f];
		ngamctrl = [00 16 19 03 0f 05 32 45 46 04 0e 0d 35 37 0f];
	};
};

&arduino_i2c {
	ft5336_buydisplay_3_5_tft_touch_arduino: ft5336@38 {
		compatible = "focaltech,ft5336";
		reg = <0x38>;
		/* Uncomment if IRQ line is available (requires to solder jumper) */
		/* int-gpios = <&arduino_header 11 GPIO_ACTIVE_LOW>; */ /* D5 */
	};
};
