Good day,
I am using a Jetson Orin NX 16GB module connected to an SG4A-NONX-G2Y-A1 adapter board, which provides 4× GMSL2 outputs.
The SG4A-NONX-G2Y-A1 uses a MAX96712 deserializer, and the cameras I am using are TechNexion modules that feature the onsemi AR0521 image sensor paired with a MAX96717 serializer.
Issue Summary
I have successfully detected the MAX96712 deserializer at address 0x6b on I²C bus 9, and can read its chip ID values (0xD6 / 0xC8).
However, the deserializer does not appear to recognize or communicate with the MAX96717 serializers or the connected AR0521 sensors on any of the four GMSL2 links.
Despite correct power and coax connections, all serializer addresses (0x05, 0x40, 0x60, 0x62, 0x1A, etc.) return no ACK / remote I/O error, and the kernel repeatedly logs the following:
max96717 9-001a: read 0x0000 failed
max96717: probe of 9-001a failed with error -121
At boot, I also see these messages:
i2c i2c-9: Failed to register i2c client max96712_1 at 0x6b (-16)
i2c i2c-9: Failed to create I2C device for /bus@0/cam_i2cmux/i2c@1/max96712_1@6b
This suggests that the device tree overlay or driver binding for the MAX96712 is conflicting with an existing node created by the base BSP or camera stack.
System Details
-
Platform: Jetson Orin NX 16GB
-
JetPack / L4T: 6.2 (L4T R36.4.3)
-
Deserializer: Maxim MAX96712 (GMSL2, 4-link)
-
Serializer: Maxim MAX96717
-
Image Sensor: onsemi AR0521
-
Adapter Board: Sensing SG4A-NONX-G2Y-A1
The camera overlay structure is based on the cam_i2cmux node under /bus@0, and the deserializer node is located at:
/bus@0/cam_i2cmux/i2c@1/max96712_1@6b
Troubleshooting Steps Performed
-
Verified the deserializer responds correctly to I²C commands (
0xD6/0xC8). -
Enabled all four GMSL links via register
0x0006 = 0x0F. -
Cleared and reprogrammed alias registers (
0x004C–0x004F,0x0054). -
Reset the serializers using GPIO lines (
SER0_RESET,SER1_RESET). -
Confirmed correct GPIO mappings using
gpioinfo. -
Applied multiple device tree overlay variations based on
maxim,max96712.yamlto define the MAX96712 → NVCSI → VI pipeline.
However, the system still fails to bring up the camera pipeline.
No /dev/video* devices are created, and media-ctl -p -d /dev/media0 only displays the default tegra-camrtc-ca node with no linked subdevices.
Assistance Requested
-
Device Tree & Overlay Structure
- Guidance on the correct device tree bindings and overlay configuration for a MAX96712 → NVCSI → VI connection under JetPack 6.2 (L4T R36.4.3).
-
Driver Support
- Clarification on whether the built-in NVIDIA kernel supports the MAX96712 / MAX96717 pair natively, or if additional driver modifications are required.
-
Endpoint & I²C Binding
- Advice on the correct way to define the
cam_i2cmuxand GMSL link endpoints to avoid I²C registration conflicts and enable serializer detection.
- Advice on the correct way to define the
-
Reverse Control Channel (RCCA)
- Confirmation on whether reverse-channel communication between MAX96712 and MAX96717 is automatically handled by NVIDIA’s camera stack, or if it needs to be explicitly enabled.
I can provide complete dmesg logs, compiled DT overlays, and I²C register dumps from both the deserializer and serializer upon request.
Thank you for your assistance — I look forward to your guidance on resolving this issue.