// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2019 BayLibre, SAS
 * Author: Neil Armstrong <narmstrong@baylibre.com>
 */

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/clock/g12a-clkc.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/amlogic,meson-g12a-gpio-intc.h>

/dts-v1/;
/plugin/;

/*
 * Enable Khadas TS050 DSI Panel + Touch Controller
 * on Khadas VIM3 (A311D) and VIM3L (S905D3)
 */

&{/} {
	panel_backlight: backlight {
		compatible = "pwm-backlight";
		pwms = <&pwm_AO_cd 0 25000 0>;
		brightness-levels = <0 255>;
		num-interpolated-steps = <255>;
		default-brightness-level = <200>;
	};
};

&i2c3 {
	#address-cells = <1>;
	#size-cells = <0>;
	pinctrl-0 = <&i2c3_sda_a_pins>, <&i2c3_sck_a_pins>;
	pinctrl-names = "default";
	status = "okay";

	touch-controller@38 {
		compatible = "edt,edt-ft5206";
		reg = <0x38>;
		interrupt-parent = <&gpio_intc>;
		interrupts = <IRQID_GPIOA_5 IRQ_TYPE_EDGE_FALLING>;
		reset-gpios = <&gpio_expander 6 GPIO_ACTIVE_LOW>;
		touchscreen-size-x = <1080>;
		touchscreen-size-y = <1920>;
		status = "okay";
	};
};

&mipi_dsi {
	#address-cells = <1>;
	#size-cells = <0>;
	status = "okay";

	assigned-clocks = <&clkc CLKID_GP0_PLL>,
			  <&clkc CLKID_MIPI_DSI_PXCLK_SEL>,
			  <&clkc CLKID_MIPI_DSI_PXCLK>,
			  <&clkc CLKID_CTS_ENCL_SEL>,
			  <&clkc CLKID_VCLK2_SEL>;
	assigned-clock-parents = <0>,
				 <&clkc CLKID_GP0_PLL>,
				 <0>,
				 <&clkc CLKID_VCLK2_DIV1>,
				 <&clkc CLKID_GP0_PLL>;
	assigned-clock-rates = <960000000>,
			       <0>,
			       <960000000>,
			       <0>,
			       <0>;

	panel@0 {
		compatible = "khadas,ts050";
		reset-gpios = <&gpio_expander 0 GPIO_ACTIVE_LOW>;
		enable-gpios = <&gpio_expander 1 GPIO_ACTIVE_HIGH>;
		power-supply = <&vcc_3v3>;
		backlight = <&panel_backlight>;
		reg = <0>;

		port {
			mipi_in_panel: endpoint {
				remote-endpoint = <&mipi_out_panel>;
			};
		};
	};

	ports {
		#address-cells = <1>;
		#size-cells = <0>;

		port@1 {
			mipi_out_panel: endpoint {
				remote-endpoint = <&mipi_in_panel>;
			};
		};
	};
};

&mipi_analog_dphy {
	status = "okay";
};

&mipi_dphy {
	status = "okay";
};

&pwm_AO_cd {
	pinctrl-0 = <&pwm_ao_c_6_pins>, <&pwm_ao_d_e_pins>;
};
