4X Dphy works, But 2X Dphy can't work

We are debugging a camera on Thor. It works normally in 4-lane D-PHY mode. However, when switching to 2x 2-lane mode, Thor receives no data. The deserializer is MAX96712. The 2-lane configuration has been verified with the deserializer vendor, and the deserializer side shows data is being transmitted. No data is received according to the RTCPU logs.
What troubleshooting steps can we take, and where might the issue lie?

rtcpu1.log (48.2 KB)

MAX96712 side:

Thor side:

Disclaimer: Drafted with AI assistance; technical details should be verified against NVIDIA’s official guidance.

Hi @ekeechg,

Thanks for sharing the trace log. It indicates that the capture is configured for PORT B / CIL B, with 2 lanes and a reported lane rate of 2.392 Gbps (2392000 Kbps) for the 1920×1536 configuration.

Since the 4-lane setup works but the 2-lane setup receives no data, I’d compare these areas:

  1. Lane mapping and routing: Verify that the MAX96712 output mapping, physical connections, and Thor device-tree configuration all agree on the two active lanes and their CSI port/CIL assignment.

  2. D-PHY timing and link configuration: Check that the configured lane rate and receiver timing parameters match the actual 2-lane output. Review cil_settletime against the applicable NVIDIA guidance rather than assuming that increasing or retuning it will solve the issue.

If possible, could you share the relevant MAX96712 lane-mapping settings and the Thor device-tree configuration for the working 4-lane and failing 2-lane cases? Comparing those would help narrow down the mismatch.

What’s the port-index for 4 lanes and 2 lanes config?

4lane port-index is 0.
2lane port-index is 0 and 1.

Disclaimer: Drafted with AI assistance; technical details should be verified against NVIDIA’s official guidance.

Hi @ekeechg,

That difference in port-index points directly to why the 2-lane capture isn’t receiving data.

When you split the stream across port-index = 0 and port-index = 1, NVCSI treats them as separate capture contexts or multi-port channels rather than a single aggregated stream.

For the 2-lane setup to work across two port indices, check these two areas:

  1. Device Tree Endpoint & VC Bindings: Verify that your nvcsi / tegra-camera-platform nodes explicitly assign distinct Virtual Channels (VC) or stream ID routing for port-index 1.

  2. MAX96712 Crossbar Routing: Ensure the MAX96712 output stream registers are mapped to match those exact two logical CSI outputs, rather than piping both streams down a single physical port pipeline.

Could you share your device tree snippet for the ports node in the 2-lane configuration? Seeing how the endpoints are declared will help pinpoint the mapping issue.

Got it, I need recaculate serdes_pix_clk_hz after that.