// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2025 Cherry Embedded Solutions GmbH
 *
 * DEVKIT ADDON CAM-TS-A01
 * https://embedded.cherry.de/product/development-kit/
 *
 * DT-overlay for the camera / DSI demo appliance for Haikou boards.
 * In the flavour for use with a Puma system-on-module.
 */

/dts-v1/;
/plugin/;

#include <dt-bindings/clock/rk3399-cru.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/rockchip.h>

&{/} {
	backlight: backlight {
		compatible = "pwm-backlight";
		power-supply = <&dc_12v>;
		pwms = <&pwm0 0 25000 0>;
	};

	cam_afvdd_2v8: regulator-cam-afvdd-2v8 {
		compatible = "regulator-fixed";
		gpio = <&pca9670 2 GPIO_ACTIVE_LOW>;
		regulator-max-microvolt = <2800000>;
		regulator-min-microvolt = <2800000>;
		regulator-name = "cam-afvdd-2v8";
		vin-supply = <&vcc2v8_video>;
	};

	cam_avdd_2v8: regulator-cam-avdd-2v8 {
		compatible = "regulator-fixed";
		gpio = <&pca9670 4 GPIO_ACTIVE_LOW>;
		regulator-max-microvolt = <2800000>;
		regulator-min-microvolt = <2800000>;
		regulator-name = "cam-avdd-2v8";
		vin-supply = <&vcc2v8_video>;
	};

	cam_dovdd_1v8: regulator-cam-dovdd-1v8 {
		compatible = "regulator-fixed";
	        gpio = <&pca9670 3 GPIO_ACTIVE_LOW>;
	        regulator-max-microvolt = <1800000>;
	        regulator-min-microvolt = <1800000>;
	        regulator-name = "cam-dovdd-1v8";
	        vin-supply = <&vcc1v8_video>;
	};

	cam_dvdd_1v2: regulator-cam-dvdd-1v2 {
		compatible = "regulator-fixed";
		enable-active-high;
		gpio = <&pca9670 5 GPIO_ACTIVE_HIGH>;
		regulator-max-microvolt = <1200000>;
		regulator-min-microvolt = <1200000>;
		regulator-name = "cam-dvdd-1v2";
		vin-supply = <&vcc3v3_baseboard>;
	};

	vcc1v8_video: regulator-vcc1v8-video {
		compatible = "regulator-fixed";
		regulator-always-on;
		regulator-boot-on;
		regulator-max-microvolt = <1800000>;
		regulator-min-microvolt = <1800000>;
		regulator-name = "vcc1v8-video";
		vin-supply = <&vcc3v3_baseboard>;
	};

	vcc2v8_video: regulator-vcc2v8-video {
		compatible = "regulator-fixed";
		regulator-always-on;
		regulator-boot-on;
		regulator-max-microvolt = <2800000>;
		regulator-min-microvolt = <2800000>;
		regulator-name = "vcc2v8-video";
		vin-supply = <&vcc3v3_baseboard>;
	};

	video-adapter-leds {
		compatible = "gpio-leds";

		video-adapter-led {
			color = <LED_COLOR_ID_BLUE>;
			gpios = <&pca9670 7 GPIO_ACTIVE_HIGH>;
			label = "video-adapter-led";
			linux,default-trigger = "none";
		};
	};
};

&i2c1 {
	#address-cells = <1>;
	#size-cells = <0>;
	/* OV5675, GT911, DW9714 are limited to 400KHz */
	clock-frequency = <400000>;

	touchscreen@14 {
		compatible = "goodix,gt911";
		reg = <0x14>;
		interrupt-parent = <&gpio1>;
		interrupts = <RK_PC7 IRQ_TYPE_LEVEL_LOW>;
		irq-gpios = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>;
		pinctrl-0 = <&touch_int>;
		pinctrl-names = "default";
		reset-gpios = <&pca9670 1 GPIO_ACTIVE_HIGH>;
		AVDD28-supply = <&vcc2v8_video>;
		VDDIO-supply = <&vcc3v3_baseboard>;
	};

	pca9670: gpio@27 {
		compatible = "nxp,pca9670";
		reg = <0x27>;
		gpio-controller;
		#gpio-cells = <2>;
		pinctrl-0 = <&pca9670_resetn>;
		pinctrl-names = "default";
		reset-gpios = <&gpio4 RK_PD6 GPIO_ACTIVE_LOW>;
	};
};

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

	panel@0 {
		compatible = "leadtek,ltk050h3148w";
		reg = <0>;
		backlight = <&backlight>;
		iovcc-supply = <&vcc1v8_video>;
		reset-gpios = <&pca9670 0 GPIO_ACTIVE_LOW>;
		vci-supply = <&vcc2v8_video>;

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

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

&pinctrl {
	pca9670 {
		pca9670_resetn: pca9670-resetn {
			rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

	touch {
		touch_int: touch-int {
			rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};
};
