18ccc0d23SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 28ccc0d23SEmmanuel Vadot/* 38ccc0d23SEmmanuel Vadot * Copyright (c) 2025 Cherry Embedded Solutions GmbH 48ccc0d23SEmmanuel Vadot * 58ccc0d23SEmmanuel Vadot * DEVKIT ADDON CAM-TS-A01 68ccc0d23SEmmanuel Vadot * https://embedded.cherry.de/product/development-kit/ 78ccc0d23SEmmanuel Vadot * 88ccc0d23SEmmanuel Vadot * DT-overlay for the camera / DSI demo appliance for Haikou boards. 98ccc0d23SEmmanuel Vadot * In the flavour for use with a Puma system-on-module. 108ccc0d23SEmmanuel Vadot */ 118ccc0d23SEmmanuel Vadot 128ccc0d23SEmmanuel Vadot/dts-v1/; 138ccc0d23SEmmanuel Vadot/plugin/; 148ccc0d23SEmmanuel Vadot 158ccc0d23SEmmanuel Vadot#include <dt-bindings/clock/rk3399-cru.h> 168ccc0d23SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h> 178ccc0d23SEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h> 188ccc0d23SEmmanuel Vadot#include <dt-bindings/leds/common.h> 198ccc0d23SEmmanuel Vadot#include <dt-bindings/pinctrl/rockchip.h> 208ccc0d23SEmmanuel Vadot 218ccc0d23SEmmanuel Vadot&{/} { 228ccc0d23SEmmanuel Vadot backlight: backlight { 238ccc0d23SEmmanuel Vadot compatible = "pwm-backlight"; 248ccc0d23SEmmanuel Vadot power-supply = <&dc_12v>; 258ccc0d23SEmmanuel Vadot pwms = <&pwm0 0 25000 0>; 268ccc0d23SEmmanuel Vadot }; 278ccc0d23SEmmanuel Vadot 288ccc0d23SEmmanuel Vadot cam_afvdd_2v8: regulator-cam-afvdd-2v8 { 298ccc0d23SEmmanuel Vadot compatible = "regulator-fixed"; 308ccc0d23SEmmanuel Vadot gpio = <&pca9670 2 GPIO_ACTIVE_LOW>; 318ccc0d23SEmmanuel Vadot regulator-max-microvolt = <2800000>; 328ccc0d23SEmmanuel Vadot regulator-min-microvolt = <2800000>; 338ccc0d23SEmmanuel Vadot regulator-name = "cam-afvdd-2v8"; 348ccc0d23SEmmanuel Vadot vin-supply = <&vcc2v8_video>; 358ccc0d23SEmmanuel Vadot }; 368ccc0d23SEmmanuel Vadot 378ccc0d23SEmmanuel Vadot cam_avdd_2v8: regulator-cam-avdd-2v8 { 388ccc0d23SEmmanuel Vadot compatible = "regulator-fixed"; 398ccc0d23SEmmanuel Vadot gpio = <&pca9670 4 GPIO_ACTIVE_LOW>; 408ccc0d23SEmmanuel Vadot regulator-max-microvolt = <2800000>; 418ccc0d23SEmmanuel Vadot regulator-min-microvolt = <2800000>; 428ccc0d23SEmmanuel Vadot regulator-name = "cam-avdd-2v8"; 438ccc0d23SEmmanuel Vadot vin-supply = <&vcc2v8_video>; 448ccc0d23SEmmanuel Vadot }; 458ccc0d23SEmmanuel Vadot 468ccc0d23SEmmanuel Vadot cam_dovdd_1v8: regulator-cam-dovdd-1v8 { 478ccc0d23SEmmanuel Vadot compatible = "regulator-fixed"; 488ccc0d23SEmmanuel Vadot gpio = <&pca9670 3 GPIO_ACTIVE_LOW>; 498ccc0d23SEmmanuel Vadot regulator-max-microvolt = <1800000>; 508ccc0d23SEmmanuel Vadot regulator-min-microvolt = <1800000>; 518ccc0d23SEmmanuel Vadot regulator-name = "cam-dovdd-1v8"; 528ccc0d23SEmmanuel Vadot vin-supply = <&vcc1v8_video>; 538ccc0d23SEmmanuel Vadot }; 548ccc0d23SEmmanuel Vadot 558ccc0d23SEmmanuel Vadot cam_dvdd_1v2: regulator-cam-dvdd-1v2 { 568ccc0d23SEmmanuel Vadot compatible = "regulator-fixed"; 578ccc0d23SEmmanuel Vadot enable-active-high; 588ccc0d23SEmmanuel Vadot gpio = <&pca9670 5 GPIO_ACTIVE_HIGH>; 598ccc0d23SEmmanuel Vadot regulator-max-microvolt = <1200000>; 608ccc0d23SEmmanuel Vadot regulator-min-microvolt = <1200000>; 618ccc0d23SEmmanuel Vadot regulator-name = "cam-dvdd-1v2"; 628ccc0d23SEmmanuel Vadot vin-supply = <&vcc3v3_baseboard>; 638ccc0d23SEmmanuel Vadot }; 648ccc0d23SEmmanuel Vadot 658ccc0d23SEmmanuel Vadot vcc1v8_video: regulator-vcc1v8-video { 668ccc0d23SEmmanuel Vadot compatible = "regulator-fixed"; 678ccc0d23SEmmanuel Vadot regulator-always-on; 688ccc0d23SEmmanuel Vadot regulator-boot-on; 698ccc0d23SEmmanuel Vadot regulator-max-microvolt = <1800000>; 708ccc0d23SEmmanuel Vadot regulator-min-microvolt = <1800000>; 718ccc0d23SEmmanuel Vadot regulator-name = "vcc1v8-video"; 728ccc0d23SEmmanuel Vadot vin-supply = <&vcc3v3_baseboard>; 738ccc0d23SEmmanuel Vadot }; 748ccc0d23SEmmanuel Vadot 758ccc0d23SEmmanuel Vadot vcc2v8_video: regulator-vcc2v8-video { 768ccc0d23SEmmanuel Vadot compatible = "regulator-fixed"; 778ccc0d23SEmmanuel Vadot regulator-always-on; 788ccc0d23SEmmanuel Vadot regulator-boot-on; 798ccc0d23SEmmanuel Vadot regulator-max-microvolt = <2800000>; 808ccc0d23SEmmanuel Vadot regulator-min-microvolt = <2800000>; 818ccc0d23SEmmanuel Vadot regulator-name = "vcc2v8-video"; 828ccc0d23SEmmanuel Vadot vin-supply = <&vcc3v3_baseboard>; 838ccc0d23SEmmanuel Vadot }; 848ccc0d23SEmmanuel Vadot 858ccc0d23SEmmanuel Vadot video-adapter-leds { 868ccc0d23SEmmanuel Vadot compatible = "gpio-leds"; 878ccc0d23SEmmanuel Vadot 888ccc0d23SEmmanuel Vadot video-adapter-led { 898ccc0d23SEmmanuel Vadot color = <LED_COLOR_ID_BLUE>; 908ccc0d23SEmmanuel Vadot gpios = <&pca9670 7 GPIO_ACTIVE_HIGH>; 918ccc0d23SEmmanuel Vadot label = "video-adapter-led"; 928ccc0d23SEmmanuel Vadot linux,default-trigger = "none"; 938ccc0d23SEmmanuel Vadot }; 948ccc0d23SEmmanuel Vadot }; 958ccc0d23SEmmanuel Vadot}; 968ccc0d23SEmmanuel Vadot 978ccc0d23SEmmanuel Vadot&i2c1 { 988ccc0d23SEmmanuel Vadot #address-cells = <1>; 998ccc0d23SEmmanuel Vadot #size-cells = <0>; 1008ccc0d23SEmmanuel Vadot /* OV5675, GT911, DW9714 are limited to 400KHz */ 1018ccc0d23SEmmanuel Vadot clock-frequency = <400000>; 1028ccc0d23SEmmanuel Vadot 1038ccc0d23SEmmanuel Vadot touchscreen@14 { 1048ccc0d23SEmmanuel Vadot compatible = "goodix,gt911"; 1058ccc0d23SEmmanuel Vadot reg = <0x14>; 1068ccc0d23SEmmanuel Vadot interrupt-parent = <&gpio1>; 1078ccc0d23SEmmanuel Vadot interrupts = <RK_PC7 IRQ_TYPE_LEVEL_LOW>; 1088ccc0d23SEmmanuel Vadot irq-gpios = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>; 1098ccc0d23SEmmanuel Vadot pinctrl-0 = <&touch_int>; 1108ccc0d23SEmmanuel Vadot pinctrl-names = "default"; 1118ccc0d23SEmmanuel Vadot reset-gpios = <&pca9670 1 GPIO_ACTIVE_HIGH>; 1128ccc0d23SEmmanuel Vadot AVDD28-supply = <&vcc2v8_video>; 1138ccc0d23SEmmanuel Vadot VDDIO-supply = <&vcc3v3_baseboard>; 1148ccc0d23SEmmanuel Vadot }; 1158ccc0d23SEmmanuel Vadot 1168ccc0d23SEmmanuel Vadot pca9670: gpio@27 { 1178ccc0d23SEmmanuel Vadot compatible = "nxp,pca9670"; 1188ccc0d23SEmmanuel Vadot reg = <0x27>; 1198ccc0d23SEmmanuel Vadot gpio-controller; 1208ccc0d23SEmmanuel Vadot #gpio-cells = <2>; 1218ccc0d23SEmmanuel Vadot pinctrl-0 = <&pca9670_resetn>; 1228ccc0d23SEmmanuel Vadot pinctrl-names = "default"; 1238ccc0d23SEmmanuel Vadot reset-gpios = <&gpio4 RK_PD6 GPIO_ACTIVE_LOW>; 1248ccc0d23SEmmanuel Vadot }; 1258ccc0d23SEmmanuel Vadot}; 1268ccc0d23SEmmanuel Vadot 1278ccc0d23SEmmanuel Vadot&mipi_dsi { 1288ccc0d23SEmmanuel Vadot #address-cells = <1>; 1298ccc0d23SEmmanuel Vadot #size-cells = <0>; 1308ccc0d23SEmmanuel Vadot status = "okay"; 1318ccc0d23SEmmanuel Vadot 1328ccc0d23SEmmanuel Vadot panel@0 { 1338ccc0d23SEmmanuel Vadot compatible = "leadtek,ltk050h3148w"; 1348ccc0d23SEmmanuel Vadot reg = <0>; 1358ccc0d23SEmmanuel Vadot backlight = <&backlight>; 1368ccc0d23SEmmanuel Vadot iovcc-supply = <&vcc1v8_video>; 1378ccc0d23SEmmanuel Vadot reset-gpios = <&pca9670 0 GPIO_ACTIVE_LOW>; 1388ccc0d23SEmmanuel Vadot vci-supply = <&vcc2v8_video>; 1398ccc0d23SEmmanuel Vadot 1408ccc0d23SEmmanuel Vadot port { 1418ccc0d23SEmmanuel Vadot mipi_in_panel: endpoint { 1428ccc0d23SEmmanuel Vadot remote-endpoint = <&mipi_out_panel>; 1438ccc0d23SEmmanuel Vadot }; 1448ccc0d23SEmmanuel Vadot }; 1458ccc0d23SEmmanuel Vadot }; 1468ccc0d23SEmmanuel Vadot}; 1478ccc0d23SEmmanuel Vadot 148*833e5d42SEmmanuel Vadot&mipi_out { 149*833e5d42SEmmanuel Vadot mipi_out_panel: endpoint { 150*833e5d42SEmmanuel Vadot remote-endpoint = <&mipi_in_panel>; 151*833e5d42SEmmanuel Vadot }; 152*833e5d42SEmmanuel Vadot}; 153*833e5d42SEmmanuel Vadot 1548ccc0d23SEmmanuel Vadot&pinctrl { 1558ccc0d23SEmmanuel Vadot pca9670 { 1568ccc0d23SEmmanuel Vadot pca9670_resetn: pca9670-resetn { 1578ccc0d23SEmmanuel Vadot rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>; 1588ccc0d23SEmmanuel Vadot }; 1598ccc0d23SEmmanuel Vadot }; 1608ccc0d23SEmmanuel Vadot 1618ccc0d23SEmmanuel Vadot touch { 1628ccc0d23SEmmanuel Vadot touch_int: touch-int { 1638ccc0d23SEmmanuel Vadot rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>; 1648ccc0d23SEmmanuel Vadot }; 1658ccc0d23SEmmanuel Vadot }; 1668ccc0d23SEmmanuel Vadot}; 167