diff options
-rw-r--r-- | arch/arm64/boot/dts/rockchip/Makefile | 1 | ||||
-rw-r--r-- | arch/arm64/boot/dts/rockchip/rk3399-puma-haikou-video-demo.dts | 238 |
2 files changed, 239 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile index ef79a672804a..26fe25c8db32 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile @@ -43,6 +43,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-r4s.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-orangepi.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-pinebook-pro.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou-video-demo.dtb 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 diff --git a/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou-video-demo.dts b/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou-video-demo.dts new file mode 100644 index 000000000000..4ea2bda4aeb8 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou-video-demo.dts @@ -0,0 +1,238 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2022 Theobroma Systems Design und Consulting GmbH + */ + +/dts-v1/; + +#include <dt-bindings/leds/common.h> + +#include "rk3399-puma-haikou.dts" + +/ { + model = "Theobroma Systems RK3399-Q7 SoM on Haikou devkit with Video Demo adapter"; + compatible = "tsd,rk3399-puma-haikou-video-demo", "tsd,rk3399-puma-haikou", "rockchip,rk3399"; + + video-adapter-leds { + compatible = "gpio-leds"; + + video-adapter-led { + label = "video-adapter-led"; + gpios = <&pca9670 7 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "none"; + color = <LED_COLOR_ID_BLUE>; + }; + }; + + backlight: backlight { + compatible = "pwm-backlight"; + power-supply = <&dc_12v>; + pwms = <&pwm0 0 25000 0>; + }; + + cam_afvdd_2v8: cam-afvdd-2v8-regulator { + compatible = "regulator-fixed"; + regulator-name = "cam-afvdd-2v8"; + gpio = <&pca9670 2 GPIO_ACTIVE_LOW>; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + vin-supply = <&vcc2v8_video>; + }; + + cam_avdd_2v8: cam-avdd-2v8-regulator { + compatible = "regulator-fixed"; + regulator-name = "cam-avdd-2v8"; + gpio = <&pca9670 4 GPIO_ACTIVE_LOW>; + vin-supply = <&vcc2v8_video>; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + }; + + cam_dovdd_1v8: cam-dovdd-1v8-regulator { + compatible = "regulator-fixed"; + regulator-name = "cam-dovdd-1v8"; + gpio = <&pca9670 3 GPIO_ACTIVE_LOW>; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + vin-supply = <&vcc1v8_video>; + }; + + cam_dvdd_1v2: cam-dvdd-1v2-regulator { + compatible = "regulator-fixed"; + regulator-name = "cam-dvdd-1v2"; + gpio = <&pca9670 5 GPIO_ACTIVE_HIGH>; + enable-active-high; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + vin-supply = <&vcc3v3_baseboard>; + }; + + vcc1v8_video: vcc1v8-video-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc1v8-video"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + vin-supply = <&vcc3v3_baseboard>; + }; + + vcc2v8_video: vcc2v8-video-regulator { + compatible = "regulator-fixed"; + regulator-name = "vcc2v8-video"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + vin-supply = <&vcc3v3_baseboard>; + }; +}; + +&cif_clkouta { + rockchip,io-domains = <&io_domains>; +}; + +/* PCA9670 is connected to the SoC through a level shifter, so the HW pull-up + * is not enough to keep the line high without SW help. + * FIXME: ideally done via a reset-gpios in the PCA9670 driver. + */ +&gpio4 { + pca9670-reset-hog { + gpio-hog; + gpios = <RK_PD6 GPIO_ACTIVE_HIGH>; + output-high; + line-name = "pca9670-reset"; + }; +}; + +&i2c1 { + /* OV5675, GT911, DW9714 are limited to 400KHz */ + clock-frequency = <400000>; + + focus: focus@c { + compatible = "dongwoon,dw9714"; + reg = <0xc>; + vcc-supply = <&cam_afvdd_2v8>; + status = "okay"; + }; + + 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>; + reset-gpios = <&pca9670 1 GPIO_ACTIVE_HIGH>; + AVDD28-supply = <&vcc2v8_video>; + VDDIO-supply = <&vcc3v3_baseboard>; + pinctrl-0 = <&touch_int>; + pinctrl-names = "default"; + + goodix,calibration-data = [ + 51 d0 02 00 05 05 35 00 01 0f 28 0f 5a 3c 03 00 00 00 + 00 00 00 00 08 18 1a 1e 14 8b 2b 0c 2c 2e bb 0a 00 00 + 01 01 03 2d 00 00 00 00 00 00 00 00 00 00 00 28 64 94 + d5 02 08 00 00 04 80 2c 00 6d 34 00 5b 3f 00 4d 4c 00 + 42 5b 00 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 02 04 06 08 0a 0c 0e 10 12 14 16 18 ff ff + 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 26 24 + 22 21 20 1f 1e 1d 1c 18 16 13 12 10 0f 0c 0a 08 06 04 + 02 00 ff ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 + 00 00 00 00 88 01 + ]; + }; + + pca9670: gpio@27 { + compatible = "nxp,pca9670"; + reg = <0x27>; + gpio-controller; + #gpio-cells = <2>; + }; + + camera@36 { + compatible = "ovti,ov5675"; + reg = <0x36>; + + clocks = <&cru SCLK_CIF_OUT>; + assigned-clocks = <&cru SCLK_CIF_OUT>; + assigned-clock-rates = <19200000>; + avdd-supply = <&cam_avdd_2v8>; + dvdd-supply = <&cam_dvdd_1v2>; + dovdd-supply = <&cam_dovdd_1v8>; + pinctrl-names = "default"; + pinctrl-0 = <&cif_clkouta>; + reset-gpios = <&pca9670 6 GPIO_ACTIVE_LOW>; + + lens-focus = <&focus>; + status = "okay"; + + port { + cam_out: endpoint { + remote-endpoint = <&mipi_in_cam>; + data-lanes = <1 2>; + link-frequencies = /bits/ 64 <450000000>; + }; + }; + }; +}; + +&isp1 { + status = "okay"; + + ports { + port@0 { + mipi_in_cam: endpoint@0 { + reg = <0>; + remote-endpoint = <&cam_out>; + data-lanes = <1 2>; + }; + }; + }; +}; + +&isp1_mmu { + status = "okay"; +}; + +&mipi_dsi { + status = "okay"; + + ports { + mipi_out: port@1 { + reg = <1>; + + mipi_out_panel: endpoint { + remote-endpoint = <&mipi_in_panel>; + }; + }; + }; + + panel@0 { + compatible = "leadtek,ltk050h3148w"; + reg = <0>; + backlight = <&backlight>; + iovcc-supply = <&vcc1v8_video>; + vci-supply = <&vcc2v8_video>; + reset-gpios = <&pca9670 0 GPIO_ACTIVE_LOW>; + status = "okay"; + + port { + mipi_in_panel: endpoint { + remote-endpoint = <&mipi_out_panel>; + }; + }; + }; +}; + +&mipi_dsi1 { + status = "okay"; +}; + +&pinctrl { + touch { + touch_int: touch-int { + rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; +}; |