Tool/software:
Hi
We use sdk 10,Custom board。
The current hardware link is as follows(no sensor).
The dts is :
&main_i2c1 { regulator@2a { compatible = "maxim,max20087"; reg = <0x2A>; in-supply = <&evm_12v0>; vdd-supply = <&vsys_3v3>; enable-gpios = <&main_gpio0 83 GPIO_ACTIVE_HIGH>; regulators { OUT1 { regulator-name = "VOUT1"; regulator-always-on; regulator-boot-on; }; OUT2 { regulator-name = "VOUT2"; regulator-always-on; regulator-boot-on; }; OUT3 { regulator-name = "VOUT3"; regulator-always-on; regulator-boot-on; }; OUT4 { regulator-name = "VOUT4"; regulator-always-on; regulator-boot-on; }; }; }; // MAX96724 Deserializer max96724: gmsl-deserializer@27 { status = "okay"; compatible = "maxim,max96724"; reg = <0x27>; #address-cells = <1>; #size-cells = <0>; enable-gpios = <&main_gpio0 32 GPIO_ACTIVE_HIGH>; ports { #address-cells = <1>; #size-cells = <0>; // Output port connected to CSI2RX port@0 { reg = <0>; status = "okay"; max96724_channelB_out: endpoint { remote-endpoint = <&csi2rx0_in_sensor>; bus-type = <4>; // CSI2 D-PHY clock-lanes = <0>; data-lanes = <1 2 3 4>; }; }; }; }; }; /* CSI Receiver Configuration */ &cdns_csi2rx0 { status = "okay"; virtual-channel; ports { #address-cells = <1>; #size-cells = <0>; csi0_port0: port@0 { reg = <0>; status = "okay"; csi2rx0_in_sensor: endpoint { remote-endpoint = <&max96724_channelB_out>; bus-type = <4>; /* CSI2 DPHY */ clock-lanes = <0>; data-lanes = <1 2 3 4>; ti,vc-mask = <0x0F>; }; }; }; }; &ti_csi2rx0 { status = "okay"; }; &dphy0 { status = "okay"; };
The max96717 creat RGB888 test data.
We had use the script to set route;
#!/bin/bash # 配置CDNS CSI Bridge的4个VC路由 media-ctl -R '"cdns_csi2rx.4504000.csi-bridge" [0/0->1/0[1]]' # 设置CDNS CSI Bridge各VC的格式(匹配传感器输出格式) media-ctl -V '"cdns_csi2rx.4504000.csi-bridge":0/0 [fmt:RGB888_1X24/1280x720 field:none]' #media-ctl -V '"cdns_csi2rx.4504000.csi-bridge":0/1 [fmt:RGB888_1X24/1280x720 field:none]' #media-ctl -V '"cdns_csi2rx.4504000.csi-bridge":0/2 [fmt:RGB888_1X24/1280x720 field:none]' #media-ctl -V '"cdns_csi2rx.4504000.csi-bridge":0/3 [fmt:RGB888_1X24/1280x720 field:none]' # 配置CSI2RX的路由映射(将4个VC映射到不同context) media-ctl -R '"4500000.ticsi2rx" [0/0->1/0[1]]' # 设置CSI2RX接收格式(需与CSI Bridge输出一致) media-ctl -V '"4500000.ticsi2rx":0/0 [fmt:RGB888_1X24/1280x720 field:none]' #media-ctl -V '"4500000.ticsi2rx":0/1 [fmt:RGB888_1X24/1280x720 field:none]' #media-ctl -V '"4500000.ticsi2rx":0/2 [fmt:RGB888_1X24/1280x720 field:none]' #media-ctl -V '"4500000.ticsi2rx":0/3 [fmt:RGB888_1X24/1280x720 field:none]' # 设置video节点格式(使用RGB24格式) v4l2-ctl -z platform:4500000.ticsi2rx -d "4500000.ticsi2rx context 0" -v width=1280,height=720,pixelformat=XR24 #v4l2-ctl -z platform:4500000.ticsi2rx -d "4500000.ticsi2rx context 1" -v width=1280,height=720,pixelformat=XR24 #v4l2-ctl -z platform:4500000.ticsi2rx -d "4500000.ticsi2rx context 2" -v width=1280,height=720,pixelformat=XR24 #v4l2-ctl -z platform:4500000.ticsi2rx -d "4500000.ticsi2rx context 3" -v width=1280,height=720,pixelformat=XR24
The media-ctl -p is
root@j721e-evm:/mnt# media-ctl -p Media controller API version 6.6.32[ 230.189328] _max96724_set_routing 4 streams routing ret= 0 Media device information ------------------------ driver j721e-csi2rx model TI-CSI2RX serial bus info platform:4500000.ticsi2rx hw revision 0x1 driver version 6.6.32 Device topology - entity 1: 4500000.ticsi2rx (17 pads, 17 links, 1 route) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev0 routes: 0/0 -> 1/0 [ACTIVE] pad0: Sink [stream:0 fmt:RGB888_1X24/1280x720 field:none] <- "cdns_csi2rx.4504000.csi-bridge":1 [ENABLED,IMMUTABLE] pad1: Source [stream:0 fmt:RGB888_1X24/1280x720 field:none] -> "4500000.ticsi2rx context 0":0 [ENABLED,IMMUTABLE] pad2: Source -> "4500000.ticsi2rx context 1":0 [ENABLED,IMMUTABLE] pad3: Source -> "4500000.ticsi2rx context 2":0 [ENABLED,IMMUTABLE] pad4: Source -> "4500000.ticsi2rx context 3":0 [ENABLED,IMMUTABLE] pad5: Source -> "4500000.ticsi2rx context 4":0 [ENABLED,IMMUTABLE] pad6: Source -> "4500000.ticsi2rx context 5":0 [ENABLED,IMMUTABLE] pad7: Source -> "4500000.ticsi2rx context 6":0 [ENABLED,IMMUTABLE] pad8: Source -> "4500000.ticsi2rx context 7":0 [ENABLED,IMMUTABLE] pad9: Source -> "4500000.ticsi2rx context 8":0 [ENABLED,IMMUTABLE] pad10: Source -> "4500000.ticsi2rx context 9":0 [ENABLED,IMMUTABLE] pad11: Source -> "4500000.ticsi2rx context 10":0 [ENABLED,IMMUTABLE] pad12: Source -> "4500000.ticsi2rx context 11":0 [ENABLED,IMMUTABLE] pad13: Source -> "4500000.ticsi2rx context 12":0 [ENABLED,IMMUTABLE] pad14: Source -> "4500000.ticsi2rx context 13":0 [ENABLED,IMMUTABLE] pad15: Source -> "4500000.ticsi2rx context 14":0 [ENABLED,IMMUTABLE] pad16: Source -> "4500000.ticsi2rx context 15":0 [ENABLED,IMMUTABLE] - entity 19: cdns_csi2rx.4504000.csi-bridge (5 pads, 2 links, 1 route) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev1 routes: 0/0 -> 1/0 [ACTIVE] pad0: Sink [stream:0 fmt:RGB888_1X24/1280x720 field:none] <- "max96724 1-0027":0 [ENABLED,IMMUTABLE] pad1: Source [stream:0 fmt:RGB888_1X24/1280x720 field:none] -> "4500000.ticsi2rx":0 [ENABLED,IMMUTABLE] pad2: Source pad3: Source pad4: Source - entity 25: max96724 1-0027 (1 pad, 1 link, 4 routes) type V4L2 subdev subtype Sensor flags 0 device node name /dev/v4l-subdev2 routes: 0/0 -> 0/0 [ACTIVE] 0/0 -> 0/1 [ACTIVE] 0/0 -> 0/2 [ACTIVE] 0/0 -> 0/3 [ACTIVE] pad0: Source [stream:0 fmt:RGB888_1X24/1280x720 field:none colorspace:srgb] [stream:1 fmt:RGB888_1X24/1280x720 field:none colorspace:srgb] [stream:2 fmt:RGB888_1X24/1280x720 field:none colorspace:srgb] [stream:3 fmt:RGB888_1X24/1280x720 field:none colorspace:srgb] -> "cdns_csi2rx.4504000.csi-bridge":0 [ENABLED,IMMUTABLE] - entity 31: 4500000.ticsi2rx context 0 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video2 pad0: Sink <- "4500000.ticsi2rx":1 [ENABLED,IMMUTABLE] - entity 37: 4500000.ticsi2rx context 1 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video3 pad0: Sink <- "4500000.ticsi2rx":2 [ENABLED,IMMUTABLE] - entity 43: 4500000.ticsi2rx context 2 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video4 pad0: Sink <- "4500000.ticsi2rx":3 [ENABLED,IMMUTABLE] - entity 49: 4500000.ticsi2rx context 3 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video5 pad0: Sink <- "4500000.ticsi2rx":4 [ENABLED,IMMUTABLE] - entity 55: 4500000.ticsi2rx context 4 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video6 pad0: Sink <- "4500000.ticsi2rx":5 [ENABLED,IMMUTABLE] - entity 61: 4500000.ticsi2rx context 5 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video7 pad0: Sink <- "4500000.ticsi2rx":6 [ENABLED,IMMUTABLE] - entity 67: 4500000.ticsi2rx context 6 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video8 pad0: Sink <- "4500000.ticsi2rx":7 [ENABLED,IMMUTABLE] - entity 73: 4500000.ticsi2rx context 7 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video9 pad0: Sink <- "4500000.ticsi2rx":8 [ENABLED,IMMUTABLE] - entity 79: 4500000.ticsi2rx context 8 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video10 pad0: Sink <- "4500000.ticsi2rx":9 [ENABLED,IMMUTABLE] - entity 85: 4500000.ticsi2rx context 9 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video11 pad0: Sink <- "4500000.ticsi2rx":10 [ENABLED,IMMUTABLE] - entity 91: 4500000.ticsi2rx context 10 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video12 pad0: Sink <- "4500000.ticsi2rx":11 [ENABLED,IMMUTABLE] - entity 97: 4500000.ticsi2rx context 11 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video13 pad0: Sink <- "4500000.ticsi2rx":12 [ENABLED,IMMUTABLE] - entity 103: 4500000.ticsi2rx context 12 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video14 pad0: Sink <- "4500000.ticsi2rx":13 [ENABLED,IMMUTABLE] - entity 109: 4500000.ticsi2rx context 13 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video15 pad0: Sink <- "4500000.ticsi2rx":14 [ENABLED,IMMUTABLE] - entity 115: 4500000.ticsi2rx context 14 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video16 pad0: Sink <- "4500000.ticsi2rx":15 [ENABLED,IMMUTABLE] - entity 121: 4500000.ticsi2rx context 15 (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video17 pad0: Sink <- "4500000.ticsi2rx":16 [ENABLED,IMMUTABLE]
then we use