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.

Continuous IRQ from TRF7970A

Other Parts Discussed in Thread: TRF7970A

Hi

I have interfaced TRF7970a with the SPI of  I.MX6 sabresd Board on linux platform.

I am using yocto kernel 3.10.17. Also built neard package by bitbaking

After powering the Board(Sabresd)  and after the function trf7970a_probe is called, and interrupt is registered for the

device. Inside the probe() the trf7970a_power_up function is called which set EN and EN2 high.

The issue i am facing is that there is continuous interrupt from the trf7970a when the trf7970a is powered up. But after that the interrupts gets diabled.


 **inside handler functiontrf7970a_irq***********inside handler function
CPU: 1 PID: 110 Comm: irq/267-trf7970 Not tainted 3.10.17-1.0.1_ga+gdac46dc #26
[<80013ae0>] (unwind_backtrace+0x0/0xf4) from [<80011504>] (show_stack+0x10/0x14)
[<80011504>] (show_stack+0x10/0x14) from [<80074f28>] (__report_bad_irq+0x28/0xc0)
[<80074f28>] (__report_bad_irq+0x28/0xc0) from [<800753a0>] (note_interrupt+0x17c/0x234)
[<800753a0>] (note_interrupt+0x17c/0x234) from [<80073f18>] (irq_thread+0x150/0x160)
[<80073f18>] (irq_thread+0x150/0x160) from [<8004345c>] (kthread+0xb4/0xb8)
[<8004345c>] (kthread+0xb4/0xb8) from [<8000e118>] (ret_from_fork+0x14/0x3c)
handlers:
[<80073378>] irq_default_primary_handler threaded [<803250d0>] trf7970a_irq
Disabling IRQ #267

Can you suggest me the reason of this?

My device tree file configurations are:

&ecspi1 {
        fsl,spi-num-chipselects = <1>;
        cs-gpios = <&gpio4 9 0>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_ecspi1_2>;
        status = "okay";

         nfc@0 {
                #address-cells = <1>;
                #size-cells = <1>;
                compatible = "ti,nfc7970a";
                interrupt-parent = <&gpio4>;
                interrupts = <11 0>;
                ti,enable-gpios = < &gpio4 14 0>,
                               < &gpio4 15 0>;
                spi-max-frequency = <20000000>;
                irq-status-read-quirk;
                en2-rf-quirk;
                reg = <0>;
        };

};

From user space i am using nfctool and the tag i am using is Tag-it HF-I

  • deep ter - 

    can you do us a favor and capture your power up sequence and initial configuration (register settings) on o'scope or logic analyzer? and provide your schematic (section of the TRF7970A to the uP)? 

    thanks!

  • Hi Josh

    Thanks for your immediate reply. We have fixed the issue of getting continuous interrupts at the boot time. We added a pull down in the interrupt line as our interrupt was active high.

    Regarding the initial configuration of registers. I did not make any configuration. Everything is made from the driver.

    I have attached the driver.

    From the user space when we call nfctool -p -d nfc0: (for polling)

    The issue we are facing now is that our RSSI value is not changing even after we keep the Tag near the trd7970a.
    We checked VDD_RF. That was also not showing any voltage.

    Even I am enabling the RF_ON bit B[5] in the CHIP STATUS REGISTER.(0X00).But when i try to read this value i am not able to get the same value.

    Kindly tell me how to proceed further.


    Attached is the power up sequence:

    Yellow line is EN

    Blue line :EN2


    Regarding the schematics we are now using the I.MX6 Sabresd board\

  • I am attaching the driver here