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.

Linux/TMS320DM8168: TI8168 VIN[1]B_VSYNC pinmux question

Part Number: TMS320DM8168

Tool/software: Linux

Hi,

 I am now using the DVRRDK with an TI8168 custom board.

we are using gv7601 to capture the video data.we can use it successly to capture VIN0A、VIN0B、VIN1A by using 8 bit-SYSTEM_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_DISCRETE_SYNC_HSYNC_VSYNC 

but we can't get the video at VIN1B,There is what we try:

1.we notice that  VIN[1]B_HSYNC_DE is a multipixed pin. so we cut the DE line.the picture is better,but still half of screen not display.

2.we check the 0x48140870 about VIN[1]B_VSYNC,we found the value is 0x00000002,so we change it at kernel.

    at the board boot up,the 0x48140870 value is 0x00000003,the pin is at VIN[1]B_VSYNC mode.but we run the application,the register value is change to 2.

    here is some logs.

root@dm816x-evm:~# devmem2 0x48140870
/dev/mem opened.
Memory mapped at address 0x402e5000.
Read at address 0x48140870 (0x402e5870): 0x00000002

There is my questions:

1.the VIN[1]B_HSYNC_DE pin,we choose SYSTEM_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_DISCRETE_SYNC_HSYNC_VSYNC  mode.

the DE pin will effect the capture.When we cut the DE pin at gv7601 hardward design,the picture is better. So i want to know,do we have any way to get it at software?

2.I think somewhere at DVRRDK change the 0x48140870 register value.we try to force its value at kernel or vps_platformTI816x.c,but still failed,i will change back.So, I want to know how to force the register 0x48140870 to be 0x00000003.

Any help will be appreciated.

Thanks.

  • Hi CY,

    I am not familiar with DVRRDK, I will try to provide you some answers, for full DVRRDK support refer to the below e2e post:

    e2e.ti.com/.../426680

    Regards,
    Pavel
  • CY said:

    but we can't get the video at VIN1B,There is what we try:

    1.we notice that  VIN[1]B_HSYNC_DE is a multipixed pin. so we cut the DE line.the picture is better,but still half of screen not display.

    CY said:

    1.the VIN[1]B_HSYNC_DE pin,we choose SYSTEM_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_DISCRETE_SYNC_HSYNC_VSYNC  mode.

    the DE pin will effect the capture.When we cut the DE pin at gv7601 hardward design,the picture is better. So i want to know,do we have any way to get it at software?

    You can try to use the default muxmode 0 for PINCTRL27/0x48140868 (VIN[1]B_HSYNC_DE). Make sure the SW never muxmode this signal to any pin, by default [2:0] MUXMODE is 0x0, make sure it stays at this default value.

    CY said:

    2.we check the 0x48140870 about VIN[1]B_VSYNC,we found the value is 0x00000002,so we change it at kernel.

        at the board boot up,the 0x48140870 value is 0x00000003,the pin is at VIN[1]B_VSYNC mode.but we run the application,the register value is change to 2.

        here is some logs.

    root@dm816x-evm:~# devmem2 0x48140870
    /dev/mem opened.
    Memory mapped at address 0x402e5000.
    Read at address 0x48140870 (0x402e5870): 0x00000002

    CY said:
    2.I think somewhere at DVRRDK change the 0x48140870 register value.we try to force its value at kernel or vps_platformTI816x.c,but still failed,i will change back.So, I want to know how to force the register 0x48140870 to be 0x00000003.

    When you made your pinmux like described in the below wiki, make sure that nothing is overwriting you pinmux setting afterwards in kernel, firmware or application. If you are sure that application code (not firmware code, not kernel code) is changing your pinmux, then you should fix your application, this can not be handled by kernel code.

    Regards,
    Pavel

  • Hi,Pavel

    Thanks for your quick reply.

    Yes,I will try to set the 0x48140868 (VIN[1]B_HSYNC_DE) to confirm this.

    But something still bothers me.

    we set the 0x48140870 the 3 at the kernel,and we can see the regitset 's value is 3 after boot up.so, the kernel problem is be excluded.

    Today, I look a issue at TI Chinese Coummunity. some one has the same problem with me.but we use different application, and the same problem.

    So,I think may be is somewhere at DVRRDK will change it.

    Do you have any idea to help me find this place of DVRRDK or exclude the application problem?

    Thanks.

    CY

  • CY,

    In DM816x EZSDK we have HVPSS firmware (.xem3 file) that is doing some pinmux. May be you have the same in DVRRDK. Check if some firmware is overwriting your kernel settings regarding pinmux.

    Regards,
    Pavel
  • Hi,Pavel

    I have tried.when I run the load,sh to load the  firmware (.xem3 file) .

    The register value will not change.

    I think you are right.may be I should excute the application first.

  • CY,

    If you are sure that the pinmux value you need is valid in kernel and in firmware, then your application should change it. You should debug your application to find where this additional pinmux is done.

    Regards,
    Pavel
  • Hi,Pavel

    Finally, I found the function which change the 0x48140870 register.

    Vsys_configureDisplay() ---> System_displayCtrlInit()

    At System_displayCtrlInit,some function overwrite the register.

    for sample,I overwrite the register again to mode 3. It work fine now.

    but I still can't find which part at System_displayCtrlInit overwrite the register.

    If you have some idea,please let me know.

    Thanks.

    CY