// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * at91sam9x5dm.dtsi - Device Tree file for SAM9x5 display module
 *
 *  Copyright (C) 2014 Atmel,
 *                2014 Free Electrons
 *
 *  Author: Boris Brezillon <boris.brezillon@free-electrons.com>
 */

/ {
	backlight: backlight {
		compatible = "pwm-backlight";
		pwms = <&hlcdc_pwm 0 50000 0>;
		brightness-levels = <0 4 8 16 32 64 128 255>;
		default-brightness-level = <6>;
		power-supply = <&bl_reg>;
		status = "disabled";
	};

	bl_reg: backlight_regulator {
		compatible = "regulator-fixed";
		regulator-name = "backlight-power-supply";
		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
		status = "disabled";
	};

	panel: panel {
		compatible = "foxlink,fl500wvr00-a0t";
		backlight = <&backlight>;
		power-supply = <&panel_reg>;
		#address-cells = <1>;
		#size-cells = <0>;
		status = "disabled";

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

			panel_input: endpoint@0 {
				reg = <0>;
				remote-endpoint = <&hlcdc_panel_output>;
			};
		};
	};

	panel_reg: panel_regulator {
		compatible = "regulator-fixed";
		regulator-name = "panel-power-supply";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		status = "disabled";
	};
};

&adc0 {
	atmel,adc-ts-wires = <4>;
	atmel,adc-ts-pressure-threshold = <10000>;
	status = "okay";
};

&i2c0 {
	keyboard@1b {
		compatible = "qt1070";
		reg = <0x1b>;
		interrupt-parent = <&pioA>;
		interrupts = <7 0x0>;
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_qt1070_irq>;
		wakeup-source;
	};
};

&hlcdc {
	hlcdc-display-controller {
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb888>;

		port@0 {
			hlcdc_panel_output: endpoint@0 {
				reg = <0>;
				remote-endpoint = <&panel_input>;
			};
		};
	};
};

&pinctrl {
	board {
		pinctrl_qt1070_irq: qt1070_irq {
			atmel,pins =
				<AT91_PIOA 7 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
		};
	};
};
