Post Go back to editing

unable to get interrupt on ADV7182

@We need an info on enabling interrupt, Till now we were polling the user mode status registers to know LOCK and UNLOCK of signals, We want to switch to interrupt mode. I have gone through the link@ https://ez.analog.com/docs/DOC-7555

And followed the configuration for interrupt. We are not getting interrupt, need your help to know whether we are missing anything here. I used omapconf tool to set the registers and verified the register values after writing.

Interestingly interrupt status registers are updated whenever i toggle camera.

I setup interrupt handler and I am able to see that in /proc/interrupts and I used below instructions to configure

omapconf i2c write 0 0x21 0x04 0x07

omapconf i2c write 0 0x21 0x0E 0x20

omapconf i2c write 0 0x21 0x40 0xD1

omapconf i2c write 0 0x21 0x44 0x03

omapconf i2c write 0 0x21 0x43 0x03

omapconf i2c write 0 0x21 0x0E 0x00

For clearing interrupt

omapconf i2c write 0 0x21 0x0E 0x20

omapconf i2c write 0 0x21 0x43 0x03

omapconf i2c write 0 0x21 0x0E 0x00

Thanks

Purush

  • Hi Purush,

    Hope the below link might help.

    https://ez.analog.com/message/60384#60384

    Due to Analog devices shutdown and holidays, answer might be delayed until first week of January. Sorry for the delay.

    Thanks and Regards,

    Poornima.

  • Hello Purush,

    As I state in the FAQ you must perform the Interrupt writes after you write an ADI recommended script.

    e.g. Perform the "Autodetect CVBS Single Ended In Ain 1, YPbPr Out" script and then perform the interrupt writes.

    It should work then.

    The recommended scripts power-up the analog front end, powers up the digital core and activates the digital output pins. All of these are needed for interrupts to work correctly.

    regards,

    Robert Hinchy

    Senior Applications Engineer,

    DVP Group,

    Analog Devices Inc.

  • Robert,

    Thanks for your response. I have configured ADV7182 and i was able to see Camera feed on my display. So ADI scripts are performed and then i configured interrupts.

    As informed earlier i was able to see interrupt status registers changing whenever video feed is in LOCK and in UNLOCK. But the interrupt pin is not going  LOW. I have verified with Oscilloscope as well.

    If interrupt status registers are updated properly, Does it mean interrupt configuration is correct?

    Thanks

    Purush

  • Hi Purush,

    It does look like you have the ADV7182 configured correctly and the interrupt pin should be working.

    The latest script update for the ADV7182 contains sample scripts for programming interrupts on the ADV7182. I tested these writes in the lab on an ADV7182 evaluation board so I know that they work. The order of the writes are slightly different than what you have implemented.  Do you mind testing this interrupt script? It's in section ##08_Program Interrupts## of the latest script file (right at the bottom).

    Latest Script file is located here:

    https://ez.analog.com/servlet/JiveServlet/download/2633-26-29880/ADV7182CUST-VER.5.0.txt.zip

    Are you testing this on an ADV7182 evaluation board or on your own system? If it is on your own system could you make sure that there are no strong pull-up on the line or that the backend processor is not somehow preventing the  interrupt pin driving low.

    Regards,

    Robert Hinchy

  • Thanks Rob.

    Looks like it is not just the interrupt configuration registers that matter. Followed all the configuration values ##04_CVBS DIFFERENTIAL AUTODETECT##  section of the document that you attached along with ##08_Program Interrupts## . Now i am able to see interrupt line is getting updated based on NTSC Sync status.

    Thanks

    Purush

  • Hi Purush,

    As I stated above you need to run an ADI recommended script before you run the interrupt script.

    By default the ADV7182 is in a powerdown state and the interrupt pad is powered down. You need to run an ADI recommended script in order to power-up the ADV7182 and activate all the output pins.

    Regards,

    Robert

  • @Purush.. I have a very similar issue on my platform (ADV7182). I work for Harman. I have all the decoder (0x42) configuration values specified in ##04_CVBS DIFFERENTIAL AUTODETECT##  and ##08_Program Interrupts## . I am unable to get the interrupt. I have configured the gpio used for INTR# as GPIO_ACTIVE_LOW in dts file. Should have I added to the iomux map as well in dts?

    @Rob.. Does it impact the lock/ unlock interrupt on whether I configure the Extended output control register differently i.e. adv7180_write_reg(0x04,0xB5); instead of adv7180_write_reg(0x04,0x07);?

    I appreciate the help.