This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DS90UB960-Q1: Quick guide for basic configuration and usage and/or linux kernel 5.10 driver

Part Number: DS90UB960-Q1

Hi,

I need help we some quick start and basic configuration in order to initialize and use the device with 2 camera sensors and a DS90UB953 serializer.

This is my first time working with these devices (and cameras in general)

1. My setup:

- Orin NX SoC (running Linux kernel 5.10)

- fpd link device (DS90UB960-Q1) connected via csi-2 to SoC

- 2 camera sensors connected to the fpd link device (ds90ub953 serializer) 

2. My findings so far

2.1. Linux driver:

- There is no Linux driver supplied by TI: 

e2e.ti.com/.../ds90ub960-q1-linux-driver-required

- There is a mainline Linux driver for kernel 6.6:

 https://elixir.bootlin.com/linux/v6.6/source/drivers/media/i2c/ds90ub960.c

But none for kernel 5.10

2.2. Basic setup:

- Customer support referred me to the following post:

  e2e.ti.com/.../linux-ds90ub933-q1-linux-serializer-ds90ub933-q1-programming-ds90ub33-q1

 

I don't know if the attched pdf is applicable to my case (setup and fpd model)

- Looked for information here:

https://www.ti.com/lit/ds/symlink/ds90ub960-q1.pdf?ts=1700381880936&ref_url=https%253A%252F%252Fwww.google.com%252F 

and here:

www.ti.com/.../snlu311.pdf

3. My problems are:

3.1. I don't know if the referred posts are suitable for my model as well (the model number is somewhat different)

3.2. I don't know if the referred posts information is updated (for example there is still no linux driver for this device as mentioned in the posts)

3.3. I didn't find in the guides a clear routine ("do that to achieve that") to help me getting started and get a basic working setup.

I'll be happy to get any piece of information that can help me getting started.  

Thanks

  • Hi Yoav,

    Thank you for your question.

    .1. I don't know if the referred posts are suitable for my model as well (the model number is somewhat different)

    Since you are using 960 and 953, you can refer to this app note on how to design an FPD-Link III system: https://www.ti.com/lit/an/snla267a/snla267a.pdf

    3.2. I don't know if the referred posts information is updated (for example there is still no linux driver for this device as mentioned in the posts)

    The information in this E2E you linked is still correct - we do not have linux drivers for our FPD-Link devices. As it mentions, you can configure the SERDES via I2C programming to the registers. More on FPD-Link I2C programming can be found in the datasheets or in this app note.

    3.3. I didn't find in the guides a clear routine ("do that to achieve that") to help me getting started and get a basic working setup.

    The app note I linked to in 1) should help you get started on getting a basic setup. In that app note, see Section 2.2 Successful I 2C Communication With 953 and 954. The SoC should be connected to the 960 deserializer via I2C so that you can communicate locally to the 960 and remotely (across the FPD-Link) to the 953.

    If the 953 and 960 are hardware strapped to the correct modes via the MODE pins, they should LOCK upon startup. If not, double check that the mode straps are correct and that the back channel is properly configured in 960 register 0x58 for each port.

    Once LOCK is established at each port, you will be able to read/write to registers at each 953 serializer as well once I2C passthrough is enabled in 960 register 0x58. 

    The datasheets have detailed sections and script examples on configuring different features such as CSI, GPIOs, interrupts, and more. What you configure depends on your system requirements. Typically you will need to configure the CSI settings on the serializer/deserializer to match the imager/SoC CSI settings and also the GPIOs so you can configure the imager (see Section 4.1 Sensor Initialization Using SER GPIOs from the app note above). 

    The 960 also has port-specific status registers that you can read to monitor specific conditions at each RX port (i.e. LOCK status, error detection, etc.). The port-specific registers are specified in the 960 register section in the datasheet. More information can be found in the datasheet or app note.

    Let me know if you need any more assistance! 

    Regards,

    Cindy