arm64: dts: rockchip: add overlay for RK3399 Puma Haikou Video Demo adapter

This adds support for the video-demo-adapter DEVKIT ADDON CAM-TS-A01
(https://embedded.cherry.de/product/development-kit/) for the Haikou
devkit with RK3399 Puma SoM.

The Video Demo adapter is an adapter connected to the fake PCIe slot
labeled "Video Connector" on the Haikou devkit.

Its main feature is a Leadtek DSI-display with touchscreen and a camera
(that is not supported yet because the expected clock rate by the driver
cannot be exactly reached by the clock driver). To drive these
components a number of additional regulators are grouped on the adapter
as well as a PCA9670 gpio-expander to provide the needed additional
gpio-lines.

Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Link: https://lore.kernel.org/r/20250221-ringneck-dtbos-v2-5-310c0b9a3909@cherry.de
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
This commit is contained in:
Quentin Schulz
2025-02-21 15:04:37 +01:00
committed by Heiko Stuebner
parent 9f889cf178
commit 066a69db9d
2 changed files with 171 additions and 0 deletions

View File

@@ -63,6 +63,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-orangepi.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-pinebook-pro.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-pinephone-pro.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou-video-demo.dtbo
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc-mezzanine.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-roc-pc-plus.dtb
@@ -201,6 +202,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) += rk3399-puma-haikou-haikou-video-demo.dtb
rk3399-puma-haikou-haikou-video-demo-dtbs := rk3399-puma-haikou.dtb \
rk3399-puma-haikou-video-demo.dtbo
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-wolfvision-pf5-vz-2-uhd.dtb
rk3568-wolfvision-pf5-vz-2-uhd-dtbs := rk3568-wolfvision-pf5.dtb \
rk3568-wolfvision-pf5-display-vz.dtbo \

View File

@@ -0,0 +1,166 @@
// 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_out {
mipi_out_panel: endpoint {
remote-endpoint = <&mipi_in_panel>;
};
};
&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>;
};
};
};
};
&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>;
};
};
};