Commit 7f43ac10 authored by Heiko Stuebner's avatar Heiko Stuebner Committed by Heiko Stuebner
Browse files

arm64: dts: rockchip: Add the Video-Demo overlay for Lion Haikou



The video-demo adapter also works on the Lion SoM when running
on a Haikou baseboard, so add an overlay for it.

Tested-by: default avatarQuentin Schulz <quentin.schulz@cherry.de>
Signed-off-by: default avatarHeiko Stuebner <heiko.stuebner@cherry.de>
Link: https://patch.msgid.link/20260114230707.4175162-6-heiko@sntech.de


Signed-off-by: default avatarHeiko Stuebner <heiko@sntech.de>
parent f03f3e0a
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-evb-act8846.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-geekbox.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-lba3368.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-lion-haikou.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-lion-haikou-video-demo.dtbo
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-orion-r68-meta.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-px5-evb.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-r88.dtb
@@ -243,6 +244,10 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += px30-ringneck-haikou-haikou-video-demo.dtb
px30-ringneck-haikou-haikou-video-demo-dtbs := px30-ringneck-haikou.dtb \
	px30-ringneck-haikou-video-demo.dtbo

dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-lion-haikou-haikou-video-demo.dtb
rk3368-lion-haikou-haikou-video-demo-dtbs := rk3368-lion-haikou.dtb \
	rk3368-lion-haikou-video-demo.dtbo

dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou-haikou-video-demo.dtb
rk3399-puma-haikou-haikou-video-demo-dtbs := rk3399-puma-haikou.dtb \
	rk3399-puma-haikou-video-demo.dtbo
+170 −0
Original line number Diff line number Diff line
// 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 Lion system-on-module.
 */

/dts-v1/;
/plugin/;

#include <dt-bindings/clock/rk3368-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 = <&pwm1 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";
		};
	};
};

&dphy {
	status = "okay";
};

&i2c_gp2 {
	#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_PB5 IRQ_TYPE_LEVEL_LOW>;
		irq-gpios = <&gpio1 RK_PB5 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 = <&gpio1 RK_PA5 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 = <1 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
		};
	};

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