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.

TDA4VM: TDA4VM: I2C6 not giving the deserializer DS90UB960 data info when configured over Linux A72 side.

Part Number: TDA4VM
Other Parts Discussed in Thread: DS90UB960-Q1,

Hello TI Team

I am using 8.04 version TI RTOS SDK to verify the Deserializer DS90UB960-Q1 interface.
I configured TDA4VM soc's  with below changes  in the device tree and vision_aaps side. Further flash the image with dtbo file in the sd-card to test the deserializer DS90UB960-Q1 interface using I2C utility at linux side . 

1) I2C channel 6 configuration enabled at Linux A72 side

2) The required pin muxing changes as per the schematics in the app_pinmux.c file inside the misc utility of the vision_apps application.


Further I get to know that, using "dmesg | grep i2c" command , my i2c channel 6 is getting configured on the A72 side properly which shows below result.

root@j721e:~# dmesg | grep i2c
[ 0.780435] i2c /dev entries driver
[ 0.995932] omap_i2c 40b00000.i2c: bus 0 rev0.12 at 400 kHz
[ L��02252] omap_i2c 40b10000.i2c: bus 1 rev0.12 at 100 kHz
[ 1.186408] omap_i2c 42120000.i2c: bus 2 rev0.12 at 400 kHz
[ 1.192642] omap_i2c 2020000.i2c: bus 3 rev0.12 at 100 kHz
[ 1.198643] omap_i2c 2040000.i2c: bus 6��gv0.12 at 100 kHz
[ 1.204689] omap_i2c 2050000.i2c: bus 5 rev0.12 at 400 kHz
[ 1.210690] omap_i2c 2060000.i2c: bus 6 rev0.12 at 400 kHz

But further I'm not able to get the Deserialiser DS90UB960 data using "i2cdump -f -y 6 0x3d" command.

Also checked the NP Register settings as per the schematics that required to be non populated to configure the Deserialiser DS90UB960 slave ID as 0x3d on actual hardware board.

So could you guys help to solve this issue and to get the Deserializer DS90UB960 data info using  I2C utility. Or Any further changes required at device tree side.

- Best regards.

  • Hi Prashant,

    Can you answer the below questions:

    • Are you using the TI EVM or a custom board?
    • What are the slave IDs present on I2C6?
    • What is the output of i2cdump command that you tried?

    Best Regards,

    Keerthy 


  • Hi Keerthy J

    Are you using the TI EVM or a custom board?
    - I'm using custom board.

    What are the slave IDs present on I2C6?
    - As per design it is 0x3d.

    What is the output of i2cdump command that you tried?
    PFA the output of the i2cdump command


    -

    Could you please let me know in order to validate the Deseriaiser interface at linux side, which changes need to do in the device tree side.

    -Thanks and regards. 

  • [ 1.210690] omap_i2c 2060000.i2c: bus 6 rev0.12 at 400 kHz

    This shows that I2C6 is probed.

    PFA the output of the i2cdump command

    The registers of the slave device is not accessible. This means there is in intermediate mux that needs to be enabled?
    Is the I2C6 brought our correctly. Also have you configured the pinmux for I2C6_SCL & I2C6_SDA in the device tree?

    - Keerthy

  • Hi Keerthy J
    Thanks your quick reply.
    I have done the pin-muxing correctly in the device tree and verified it with the below result of k3conf utility.

    -Which showing the result of read register 0x0011c218 = 0x60004

    Further I2C6 is also probed with the dmesg | grep i2c command. and getting the i2c6 over channel 6.

  • Further I checked there is no as such intermediate mux in the design to configure it. Could you please let me know anything I missed from device tree side.

    1)  Device tree changes for configuration of i2c6 to be enabled from A72 side.

     &main_i2c6 {

                   status = "okay";

                   pinctrl-names = "default";

                   pinctrl-0 = <&main_i2c6_pins_default>;

                   compatible = "ti,j721e-i2c", "ti,omap4-i2c";

                   reg = <0x0 0x2060000 0x0 0x100>;

                   clock-frequency = <400000>;

    };

    2)  Device tree changes for Pin muxing W1 and W2 configuration as per schematic :

     

                   main_i2c6_pins_default: main_i2c6_pins_default {

                                  pinctrl-single,pins = <

                                                 J721E_IOPAD(0x218, PIN_INPUT_PULLUP, 4) /* (W2) I3C0_SCL.I2C6_SCL */

                                                 J721E_IOPAD(0x21c, PIN_INPUT_PULLUP, 4) /* (W1) I3C0_SDA.I2C6_SDA */

                                  >;

                   };



  • Hi Prashant,

    I checked the data sheet and i2c6 pins come out on multiple pass. So can you confirm with your custom board design that i2c6 lines indeed are routed via w2 and w1 pads?

    Regards,

    Keerthy

  • Hi Keerthy J
    I already confirm with our custom board design that i2c6 lines are routed via w2 and w1 pads only.
    Could you please let me know anything I'm missing from the Device tree changes point of view.

    - Thanks and regards
    Prashant

  • Could you please let me know anything I'm missing from the Device tree changes point of view.

    Looks good to me. Can you try reducing the frequency of the parent i2c node?

    - Keerthy