In the nvsipl code example the MAX96712 deserializer becomes visible on the I2C bus after a call to DevBlkCDISetDeserPower.
How can I control the deserializer power on the command line?
We are trying to port a high-bandwidth multi-camera solution to AGX Orin Drive. In order to be able to maintain and support such complex solutions in the field you need a certain level of control over the related hardware.
E.g. verify all components are connected and visible on the I2C bus, verify devices revisions and link states.
These basic operation should not be part of the camera driver but be part of separate tools to enable the field teams with basic diagnose options.
cd /sys/kernel/debug/cdi-mgr.0.a/cdi-dev.0.28
echo 0x1 > offset
echo 0x2Y > val
Y here indicates 4 bit camera selector(A3A2A1A0).
I quickly tested running nvsipl_camera with just A0 camera, and then when I set val → 0x21 or 0x23 or 0x25 or 0x27, the nvsipl_camera works continuously as A0 camera bit is set in val. But when I set val → 0x22 , the application crashed as A0 camera bit is not set.
The 0x28 device is the MAX20087 which seems to control the Power Over Coax. This would supply the serializer and the camera but not the local MAX96712@29 deserializer.
You can check with sudo i2ctransfer -y -f 0 w2@0x29 0x00 0x0d r1. If the deserializer is powered up it will respond 0xa0 if not you get an remote i/o error. Other option is to set /sys/kernel/debug/cdi-mgr.0.a/cdi-dev.0.29/offset to 0xd and you get 0xa0 from val if powered on and i/o error if not.
I found /sys/kernel/debug/cdi-mgr.0.a/pwr-on but I don’t know the value to put here
The deserializer powers up after INvSIPLCamera::Init() is called. But this requires complex platform configurations and drivers to be present on the Orin drive system. That is not really suited to just verify the hardware connected to a system by a field team. Any help here is highly appreciated.
Yes. But I’d like to add that the solution has been provided by my fellow colleague after his request had also been rejected. In order to build maintainable solutions beyond demo level, integrators need low level control over the hardware.
I recommend NVIDIA reviewing it’s support policy. After 10 years working with NVIDIA embedded products (TK1) I have have not once seen any other line of support other than the forum.