diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile index 7ea29d4b873f..daeb9e9946a5 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile @@ -250,6 +250,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-evb1-v10-linux-amp.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-evb1-v10-lontium-hdmiin.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-evb1-v10-nvp6324-ahd2csi.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-evb1-v10-pdm.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-evb1-v10-rk621-hdmi2csi.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-evb1-v10-rk628-hdmi2csi.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-evb1-v10-tp2815-ahd2csi.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-evb2-v10.dtb diff --git a/arch/arm64/boot/dts/rockchip/rk3576-evb1-v10-rk621-hdmi2csi.dts b/arch/arm64/boot/dts/rockchip/rk3576-evb1-v10-rk621-hdmi2csi.dts new file mode 100644 index 000000000000..909865f344c2 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3576-evb1-v10-rk621-hdmi2csi.dts @@ -0,0 +1,186 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2024 Rockchip Electronics Co., Ltd. + * + */ + +/dts-v1/; + +#include "rk3576.dtsi" +#include "rk3576-evb1.dtsi" +#include "rk3576-android.dtsi" + +/ { + model = "Rockchip RK3576 EVB1 V10 Board + Rockchip RK621 HDMI to MIPI Extboard"; + compatible = "rockchip,rk3576-evb1-v10", "rockchip,rk3576"; + + rkvtunnel: rkvtunnel { + compatible = "rockchip,video-tunnel"; + status = "okay"; + }; + + hdmiin_sound: hdmiin-sound { + status = "okay"; + compatible = "rockchip,hdmi"; + rockchip,mclk-fs = <128>; + rockchip,card-name = "rockchip,rk621hdmiin"; + rockchip,cpu = <&sai4>; + rockchip,codec = <&rk621_csi>; + rockchip,bitclock-master = <&rk621_csi>; + rockchip,frame-master = <&rk621_csi>; + rockchip,jack-det; + }; +}; + +&csi2_dphy0 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <0>; + + hdmi_mipi_in: endpoint@1 { + reg = <1>; + remote-endpoint = <&hdmiin_out>; + data-lanes = <1 2 3 4>; + }; + }; + port@1 { + reg = <1>; + #address-cells = <1>; + #size-cells = <0>; + + csidphy0_out: endpoint@0 { + reg = <0>; + remote-endpoint = <&mipi1_csi2_input>; + }; + }; + }; +}; + +&csi2_dphy0_hw { + status = "okay"; +}; + +&csi2_dphy1_hw { + status = "okay"; +}; + +&i2c5 { + status = "okay"; + pinctrl-0 = <&i2c5m3_xfer>; + clock-frequency = <400000>; + + rk621_csi: rk621_csi@50 { + reg = <0x50>; + compatible = "rockchip,rk628-csi-v4l2"; + status = "okay"; + power-domains = <&power RK3576_PD_VI>; + pinctrl-names = "default"; + pinctrl-0 = <&rk621_pin>; + interrupt-parent = <&gpio3>; + interrupts = ; + enable-gpios = <&gpio3 RK_PD0 GPIO_ACTIVE_HIGH>; + reset-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_LOW>; + plugin-det-gpios = <&gpio3 RK_PD5 GPIO_ACTIVE_LOW>; + continues-clk = <1>; + cec-enable; + #sound-dai-cells = <0>; + + rockchip,camera-module-index = <0>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "HDMI-MIPI1"; + rockchip,camera-module-lens-name = "RK621-CSI"; + + port { + hdmiin_out: endpoint { + remote-endpoint = <&hdmi_mipi_in>; + data-lanes = <1 2 3 4>; + }; + }; + }; +}; + +&mipi1_csi2 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <0>; + + mipi1_csi2_input: endpoint@1 { + reg = <1>; + remote-endpoint = <&csidphy0_out>; + }; + }; + + port@1 { + reg = <1>; + #address-cells = <1>; + #size-cells = <0>; + + mipi1_csi2_output: endpoint@0 { + reg = <0>; + remote-endpoint = <&cif_mipi_in1>; + }; + }; + }; +}; + +&rkcif { + status = "okay"; +}; + +&rkcif_mipi_lvds1 { + status = "okay"; + + port { + cif_mipi_in1: endpoint { + remote-endpoint = <&mipi1_csi2_output>; + }; + }; +}; + +&rkcif_mmu { + status = "okay"; +}; + +&sai4 { + dmas = <&dmac2 1>; + dma-names = "rx"; + pinctrl-0 = <&sai4m2_lrck + &sai4m2_sclk + &sai4m2_sdi>; + rockchip,sai-rx-wait-time-ms = <50>; + status = "okay"; +}; + +&vcc_mipicsi0 { + /delete-property/ gpio; + /delete-property/ pinctrl-0; +}; + +&vcc_mipicsi1 { + /delete-property/ gpio; + /delete-property/ pinctrl-0; +}; + +&pinctrl { + hdmiin { + rk621_pin: rk621-pin { + rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>, + <3 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>, + <3 RK_PD0 RK_FUNC_GPIO &pcfg_pull_none>, + <3 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; +};