Hi to all there, I think I’m also facing the exact same question
I am trying to attach a pi-4 compatible tc35874 to capture hdmi via csi input
(I am trying to do streaming hdmi project, RK3566 with radxa zero 3w works but only smooth at 1080p50 with audio, 1080p60 without audio)
here is my current dts i tried, now with armbian and kernel 6.1.99-vendor-rk35xx
markchang@rock-5c:~/dtb$ cat tc358743-hdmi-in.dts
/dts-v1/;
/plugin/;
/ {
metadata {
title = "TC358743 HDMI RX";
compatible = "radxa,zero3";
description = "Allow use of TC358743 HDMI -> CSI2 input.";
category = "video";
};
fragment@0 {
target-path = "/";
__overlay__ {
clk_cam_27m: external-camera-clock-27m {
status = "okay";
compatible = "fixed-clock";
clock-frequency = <27000000>;
clock-output-names = "clk_cam_27mhz";
#clock-cells = <0>;
};
camera_pwdn_gpio: camera-pwdn-gpio {
status = "okay";
compatible = "regulator-fixed";
regulator-name = "camera_pwdn_gpio";
regulator-always-on;
regulator-boot-on;
enable-active-high;
gpio = <&gpio1 27 0>; // <&gpio1 RK_PD3 GPIO_ACTIVE_HIGH>;
};
};
};
fragment@1 {
target = <&i2c3>;
__overlay__ {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&i2c3m0_xfer>;
#address-cells = <1>;
#size-cells = <0>;
camera_tc358743: tc358743@f {
status = "okay";
compatible = "toshiba,tc358743";
reg = <0x0f>;
clocks = <&clk_cam_27m>;
clock-names = "refclk";
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "tc358743";
rockchip,camera-module-lens-name = "default";
port {
hdmi_rx_out: endpoint {
remote-endpoint = <&mipi_in_hdmirx0>;
clock-lanes = <0>;
clock-noncontinuous;
link-frequencies = /bits/ 64 <297000000>;
data-lanes = <1 2>;
};
};
};
};
};
fragment@2 {
target = <&csi2_dphy0_hw>;
__overlay__ {
status = "okay";
};
};
fragment@3 {
target = <&csi2_dphy0>;
__overlay__ {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
mipi_in_hdmirx0: endpoint@2 {
reg = <2>;
remote-endpoint = <&hdmi_rx_out>;
data-lanes = <1 2>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
mipi_out_dphy0: endpoint@0 {
reg = <0>;
remote-endpoint = <&mipi2_csi2_input>;
};
};
};
};
};
fragment@4 {
target = <&mipi2_csi2>;
__overlay__ {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
mipi2_csi2_input: endpoint@1 {
reg = <1>;
remote-endpoint = <&mipi_out_dphy0>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
mipi2_csi2_output: endpoint@0 {
reg = <0>;
remote-endpoint = <&cif_mipi2_in0>;
};
};
};
};
};
fragment@5 {
target = <&rkcif>;
__overlay__ {
status = "okay";
};
};
fragment@6 {
target = <&rkcif_mipi_lvds2>;
__overlay__ {
status = "okay";
port {
cif_mipi2_in0: endpoint {
remote-endpoint = <&mipi2_csi2_output>;
};
};
};
};
fragment@7 {
target = <&rkcif_mipi_lvds2_sditf>;
__overlay__ {
status = "okay";
port {
mipi_lvds2_sditf: endpoint {
remote-endpoint = <&isp0_vir0>;
};
};
};
};
fragment@8 {
target = <&rkcif_mmu>;
__overlay__ {
status = "okay";
};
};
fragment@9 {
target = <&isp0_mmu>;
__overlay__ {
status = "okay";
};
};
fragment@10 {
target = <&rkisp0>;
__overlay__ {
status = "okay";
};
};
fragment@11 {
target = <&rkisp0_vir0>;
__overlay__ {
status = "okay";
port {
#address-cells = <1>;
#size-cells = <0>;
isp0_vir0: endpoint@0 {
reg = <0>;
remote-endpoint = <&mipi_lvds2_sditf>;
};
};
};
};
};
if i try with capturing with video0
[ 157.283083] rkisp0-vir0: check rkisp_mainpath link or isp input
[ 160.259074] rkisp0-vir0: check rkisp_mainpath link or isp input
[ 274.616171] rkisp0-vir0: rkisp_mainpath nonsupport pixelformat:YU12
[ 274.618359] rkisp0-vir0: rkisp_mainpath nonsupport pixelformat:YU12
[ 274.618380] rkisp0-vir0: rkisp_mainpath nonsupport pixelformat:YV12
[ 274.618396] rkisp0-vir0: rkisp_mainpath nonsupport pixelformat:422P
[ 274.618410] rkisp0-vir0: rkisp_mainpath nonsupport pixelformat:YUYV
[ 274.690757] rkisp0-vir0: check rkisp_mainpath link or isp input
[ 278.913394] rkisp0-vir0: rkisp_mainpath nonsupport pixelformat:YU12
[ 278.913529] rkisp0-vir0: rkisp_mainpath nonsupport pixelformat:YU12
[ 278.913567] rkisp0-vir0: rkisp_mainpath nonsupport pixelformat:YV12
[ 278.913600] rkisp0-vir0: rkisp_mainpath nonsupport pixelformat:422P
[ 278.913632] rkisp0-vir0: rkisp_mainpath nonsupport pixelformat:YUYV
[ 279.005119] rkisp0-vir0: check rkisp_mainpath link or isp input
then i tried with video9 where it goes through rkcif
[ 331.728371] rkcif-mipi-lvds2: stream[0] start streaming
[ 331.730809] rkcif-mipi-lvds2: Allocate dummy buffer, size: 0x003f5000
[ 331.730840] rkcif-mipi-lvds2: can not find output format: 0x32315559
[ 331.733805] rockchip-mipi-csi2 mipi2-csi2: stream on, src_sd: 000000006775881a, sd_name:rockchip-csi2-dphy0
[ 331.733835] rockchip-mipi-csi2 mipi2-csi2: stream ON
[ 331.733895] rockchip-csi2-dphy0: dphy0, data_rate_mbps 620
[ 331.733938] rockchip-csi2-dphy csi2-dphy0: csi2_dphy_s_stream stream on:1, dphy1, ret 0
[ 336.173206] rkcif-mipi-lvds2: stream[0] start stopping, total mode 0x1, cur 0x1
[ 336.173233] rkcif-mipi-lvds2: get vblank fail, vblank_def 0, vblank_curr 0
[ 336.688102] rockchip-mipi-csi2 mipi2-csi2: stream off, src_sd: 000000006775881a, sd_name:rockchip-csi2-dphy0
[ 336.688128] rockchip-mipi-csi2 mipi2-csi2: stream OFF
is going back to kernel 5.10 vender a good try? or is there a fix?