xref: /freebsd/sys/contrib/device-tree/src/arm64/rockchip/rk3399-puma-haikou-video-demo.dtso (revision 833e5d42ab135b0238e61c5b3c19b8619677cbfa)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (c) 2025 Cherry Embedded Solutions GmbH
4 *
5 * DEVKIT ADDON CAM-TS-A01
6 * https://embedded.cherry.de/product/development-kit/
7 *
8 * DT-overlay for the camera / DSI demo appliance for Haikou boards.
9 * In the flavour for use with a Puma system-on-module.
10 */
11
12/dts-v1/;
13/plugin/;
14
15#include <dt-bindings/clock/rk3399-cru.h>
16#include <dt-bindings/gpio/gpio.h>
17#include <dt-bindings/interrupt-controller/irq.h>
18#include <dt-bindings/leds/common.h>
19#include <dt-bindings/pinctrl/rockchip.h>
20
21&{/} {
22	backlight: backlight {
23		compatible = "pwm-backlight";
24		power-supply = <&dc_12v>;
25		pwms = <&pwm0 0 25000 0>;
26	};
27
28	cam_afvdd_2v8: regulator-cam-afvdd-2v8 {
29		compatible = "regulator-fixed";
30		gpio = <&pca9670 2 GPIO_ACTIVE_LOW>;
31		regulator-max-microvolt = <2800000>;
32		regulator-min-microvolt = <2800000>;
33		regulator-name = "cam-afvdd-2v8";
34		vin-supply = <&vcc2v8_video>;
35	};
36
37	cam_avdd_2v8: regulator-cam-avdd-2v8 {
38		compatible = "regulator-fixed";
39		gpio = <&pca9670 4 GPIO_ACTIVE_LOW>;
40		regulator-max-microvolt = <2800000>;
41		regulator-min-microvolt = <2800000>;
42		regulator-name = "cam-avdd-2v8";
43		vin-supply = <&vcc2v8_video>;
44	};
45
46	cam_dovdd_1v8: regulator-cam-dovdd-1v8 {
47		compatible = "regulator-fixed";
48	        gpio = <&pca9670 3 GPIO_ACTIVE_LOW>;
49	        regulator-max-microvolt = <1800000>;
50	        regulator-min-microvolt = <1800000>;
51	        regulator-name = "cam-dovdd-1v8";
52	        vin-supply = <&vcc1v8_video>;
53	};
54
55	cam_dvdd_1v2: regulator-cam-dvdd-1v2 {
56		compatible = "regulator-fixed";
57		enable-active-high;
58		gpio = <&pca9670 5 GPIO_ACTIVE_HIGH>;
59		regulator-max-microvolt = <1200000>;
60		regulator-min-microvolt = <1200000>;
61		regulator-name = "cam-dvdd-1v2";
62		vin-supply = <&vcc3v3_baseboard>;
63	};
64
65	vcc1v8_video: regulator-vcc1v8-video {
66		compatible = "regulator-fixed";
67		regulator-always-on;
68		regulator-boot-on;
69		regulator-max-microvolt = <1800000>;
70		regulator-min-microvolt = <1800000>;
71		regulator-name = "vcc1v8-video";
72		vin-supply = <&vcc3v3_baseboard>;
73	};
74
75	vcc2v8_video: regulator-vcc2v8-video {
76		compatible = "regulator-fixed";
77		regulator-always-on;
78		regulator-boot-on;
79		regulator-max-microvolt = <2800000>;
80		regulator-min-microvolt = <2800000>;
81		regulator-name = "vcc2v8-video";
82		vin-supply = <&vcc3v3_baseboard>;
83	};
84
85	video-adapter-leds {
86		compatible = "gpio-leds";
87
88		video-adapter-led {
89			color = <LED_COLOR_ID_BLUE>;
90			gpios = <&pca9670 7 GPIO_ACTIVE_HIGH>;
91			label = "video-adapter-led";
92			linux,default-trigger = "none";
93		};
94	};
95};
96
97&i2c1 {
98	#address-cells = <1>;
99	#size-cells = <0>;
100	/* OV5675, GT911, DW9714 are limited to 400KHz */
101	clock-frequency = <400000>;
102
103	touchscreen@14 {
104		compatible = "goodix,gt911";
105		reg = <0x14>;
106		interrupt-parent = <&gpio1>;
107		interrupts = <RK_PC7 IRQ_TYPE_LEVEL_LOW>;
108		irq-gpios = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>;
109		pinctrl-0 = <&touch_int>;
110		pinctrl-names = "default";
111		reset-gpios = <&pca9670 1 GPIO_ACTIVE_HIGH>;
112		AVDD28-supply = <&vcc2v8_video>;
113		VDDIO-supply = <&vcc3v3_baseboard>;
114	};
115
116	pca9670: gpio@27 {
117		compatible = "nxp,pca9670";
118		reg = <0x27>;
119		gpio-controller;
120		#gpio-cells = <2>;
121		pinctrl-0 = <&pca9670_resetn>;
122		pinctrl-names = "default";
123		reset-gpios = <&gpio4 RK_PD6 GPIO_ACTIVE_LOW>;
124	};
125};
126
127&mipi_dsi {
128	#address-cells = <1>;
129	#size-cells = <0>;
130	status = "okay";
131
132	panel@0 {
133		compatible = "leadtek,ltk050h3148w";
134		reg = <0>;
135		backlight = <&backlight>;
136		iovcc-supply = <&vcc1v8_video>;
137		reset-gpios = <&pca9670 0 GPIO_ACTIVE_LOW>;
138		vci-supply = <&vcc2v8_video>;
139
140		port {
141			mipi_in_panel: endpoint {
142				remote-endpoint = <&mipi_out_panel>;
143			};
144		};
145	};
146};
147
148&mipi_out {
149	mipi_out_panel: endpoint {
150		remote-endpoint = <&mipi_in_panel>;
151	};
152};
153
154&pinctrl {
155	pca9670 {
156		pca9670_resetn: pca9670-resetn {
157			rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>;
158		};
159	};
160
161	touch {
162		touch_int: touch-int {
163			rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
164		};
165	};
166};
167