// Set display panel config
/dts-v1/;
/plugin/;

#include "mt8167-pinfunc.h"
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>

/ {
	compatible = "mediatek,mt8167";
	fragment@0 {
		target = <&pio>;
			__overlay__ {

				panel_pins: panel_pins {
					pins1 {
						pinmux = <MT8167_PIN_66_LCM_RST__FUNC_GPIO66>;
						output-high;
					};
				};

				ts_pin_nint: ts_pin_nint {
					pins1 {
						pinmux = <MT8167_PIN_16_EINT16__FUNC_GPIO16>;
					};
				};

				ts_pin_nrst: ts_pin_nrst {
					pins1 {
						pinmux = <MT8167_PIN_21_EINT21__FUNC_GPIO21>;
						output-high;
					};
				};
			};
	};

	fragment@1 {
		target = <&backlight>;
			__overlay__ {
				status = "okay";
				pwms = <&pwm 1 1000000>;
				brightness-levels = <0 4 8 16 32 64 128 255>;
				default-brightness-level = <6>;
		};
	};

	fragment@2 {
		target = <&i2c2>;
			__overlay__ {
				focaltech@38 {
					status = "okay";
					compatible = "focaltech,fts";
					reg = <0x38>;
					pinctrl-0 = <&ts_pin_nint>;
					focaltech,panel-type = <FT6236>;
					focaltech,reset-gpio = <&pio 21 GPIO_ACTIVE_HIGH>;
					focaltech,irq-gpio = <&pio 16 GPIO_ACTIVE_HIGH>;
					focaltech,max-touch-number = <5>;
					focaltech,display-coords = <0 0 320 480>;
				};
			};
	};

	fragment@3 {
		target = <&mipi_tx>;
			__overlay__ {
				status = "okay";
		};
	};


	fragment@4 {
		target = <&dsi>;
			__overlay__ {
				status = "okay";
				#address-cells = <1>;
				#size-cells = <0>;

				ports {
					port@0 {
						reg = <0>;
						dsi_out: endpoint {
							remote-endpoint = <&panel_in>;
						};
					};
				};

				panel@0 {
					compatible = "startek,ili9488";
					reg = <0>;
					pinctrl-names = "default";
					pinctrl-0 = <&panel_pins>;
					reset-gpio = <&pio 66 GPIO_ACTIVE_HIGH>;
					dsi-lanes = <1>;
					panel-width-mm = <49>;
					panel-height-mm = <74>;
					backlight = <&backlight>;
					status = "okay";

					port {
						panel_in: endpoint {
							remote-endpoint = <&dsi_out>;
						};
					};
				};
			};
	};
};

