Redirect ADS7846 interrupt from IRQ to GPIO on at91sam9261ek like

Started by pasc...@hotmail.com May 14, 2012
Hi there,
I'm working on at91sam9261ek like board with linux 2.6.30 kernel.
I need to redirect the interrupts from IRQ to gpio(PIN_PB6) for the touchscreen.
When i connect the IRQ and the gpio(PIN_PB6) with a wire, than i the touchscreen is working.

The init function is called right, after login into linux on console i see "touchscreen0" device under "/dev/input". But of course i don't get any interrupt.

The configuration file (.config) did i take from the linux4sam page.
Everything is working except the touchscreen.

Thanks a lot for any help!
Hi again,

Some aditional information:

In the "board-sam9261ek.c" file there is a line "#if defined(CONFIG_TOUCHSCREEN_ADS7846) || ......"
When i change withing ".irq = AT91SAM9261_ID_IRQ0" to ".irq = AT91SAM9261_ID_PIOB" then the display is no longer working and i get a busy-error(-16) .
So somehow the interrupt with peripheral ID 3 (which means PIOB) is already used.
The only thing on peripheral B is the LCD but i can not find any interrupt set.

I also read the registers AIC_IMR, AIC_ISR and AIC_IPR and they are in both cases(".irq = AT91SAM9261_ID_IRQ0" and ".irq = AT91SAM9261_ID_PIOB") exactly the same.

I tried also setting other flags when calling request_irq() like found on this page: http://article.gmane.org/gmane.comp.hardware.arm.at91sam/3685

Thanks a lot for any suggestions!
To: A...
From: p...@hotmail.com
Date: Mon, 14 May 2012 04:19:51 -0400
Subject: [AT91SAM] Redirect ADS7846 interrupt from IRQ to GPIO on at91sam9261ek like

Hi there,

I'm working on at91sam9261ek like board with linux 2.6.30 kernel.

I need to redirect the interrupts from IRQ to gpio(PIN_PB6) for the touchscreen.

When i connect the IRQ and the gpio(PIN_PB6) with a wire, than i the touchscreen is working.

The init function is called right, after login into linux on console i see "touchscreen0" device under "/dev/input". But of course i don't get any interrupt.

The configuration file (.config) did i take from the linux4sam page.

Everything is working except the touchscreen.

Thanks a lot for any help!
Hi Dear Pascal Graf
I had this same problem just 2 years ago, and no one solved my problem.
I spent about 2 month and with a hard work, fortunately I found the true way.

This is the response that save your time and money :)

//.irq = AT91SAM9261_ID_PIOB
//.irq = AT91SAM9261_ID_IRQ0

        .irq        = AT91_PIN_PBnn,    // nn is the port number of the pin on PORTB
Good Luck,
Amir Panahi.

________________________________
From: Pascal Graf
To: a...
Sent: Tuesday, May 15, 2012 1:08 PM
Subject: RE: [AT91SAM] Redirect ADS7846 interrupt from IRQ to GPIO on at91sam9261ek like

 
Hi again,

Some aditional information:

In the "board-sam9261ek.c" file there is a line "#if defined(CONFIG_TOUCHSCREEN_ADS7846) || ......"
When i change withing ".irq = AT91SAM9261_ID_IRQ0" to ".irq = AT91SAM9261_ID_PIOB" then the display is no longer working and i get a busy-error(-16) .
So somehow the interrupt with peripheral ID 3 (which means PIOB) is already used.
The only thing on peripheral B is the LCD but i can not find any interrupt set.

I also read the registers AIC_IMR, AIC_ISR and AIC_IPR and they are in both cases(".irq = AT91SAM9261_ID_IRQ0" and ".irq = AT91SAM9261_ID_PIOB") exactly the same.

I tried also setting other flags when calling request_irq() like found on this page: http://article.gmane.org/gmane.comp.hardware.arm.at91sam/3685

Thanks a lot for any suggestions!

________________________________
To: A...
From: p...@hotmail.com
Date: Mon, 14 May 2012 04:19:51 -0400
Subject: [AT91SAM] Redirect ADS7846 interrupt from IRQ to GPIO on at91sam9261ek like

 
Hi there,
I'm working on at91sam9261ek like board with linux 2.6.30 kernel.
I need to redirect the interrupts from IRQ to gpio(PIN_PB6) for the touchscreen.
When i connect the IRQ and the gpio(PIN_PB6) with a wire, than i the touchscreen is working.

The init function is called right, after login into linux on console i see "touchscreen0" device under "/dev/input". But of course i don't get any interrupt.

The configuration file (.config) did i take from the linux4sam page.
Everything is working except the touchscreen.

Thanks a lot for any help!
//.irq = AT91SAM9261_ID_PIOB
//.irq = AT91SAM9261_ID_IRQ0

Hi,
Just use the following
.irq = AT91_PIN_PB6
Regards.

--------
Hi there,
>I'm working on at91sam9261ek like board with linux 2.6.30 kernel.
>I need to redirect the interrupts from IRQ to gpio(PIN_PB6) for the touchscreen.
>When i connect the IRQ and the gpio(PIN_PB6) with a wire, than i the touchscreen is working.
>
>The init function is called right, after login into linux on console i see "touchscreen0" device under "/dev/input". But of course i don't get any interrupt.
>
>The configuration file (.config) did i take from the linux4sam page.
>Everything is working except the touchscreen.
>
>Thanks a lot for any help!
>
Dear Amir Panahi

Thanks a lot for your suggestion!
Sadly it doesn't work. I tried it in my already changed linux and in a new downloaded kernel as well.
As soon as i change the .irq = AT91SAM9261_ID_IRQ0 to anything else i got the busy error -16.

Found out something more. In previous post i wrote that the register AIC_IMR is exactly the same. Thats rigth! But i found out, that the interrupt bit for IRQ0 is NOT set and the interrupt bit for my pin (PB6) IS set.
I tried do disable this bit right before the ads7846 probe function is called. But i get the same result, busy error -16.

Thanks for any help!
Pascal

To: A...
CC: a...
From: p...@yahoo.com
Date: Tue, 15 May 2012 06:25:46 -0700
Subject: Re: [AT91SAM] Redirect ADS7846 interrupt from IRQ to GPIO on at91sam9261ek like

Hi Dear Pascal GrafI had this same problem just 2 years ago, and no one solved my problem.I spent about 2 month and with a hard work, fortunately I found the true way.
This is the response that save your time and money :)
//.irq = AT91SAM9261_ID_PIOB//.irq = AT91SAM9261_ID_IRQ0
.irq = AT91_PIN_PBnn, // nn is the port number of the pin on PORTB

Good Luck,Amir Panahi.
From: Pascal Graf
To: a...
Sent: Tuesday, May 15, 2012 1:08 PM
Subject: RE: [AT91SAM] Redirect ADS7846 interrupt from IRQ to GPIO on at91sam9261ek like

Hi again,

Some aditional information:

In the "board-sam9261ek.c" file there is a line "#if defined(CONFIG_TOUCHSCREEN_ADS7846) || ......"
When i change withing ".irq = AT91SAM9261_ID_IRQ0" to ".irq = AT91SAM9261_ID_PIOB" then the display is no longer working and i get a busy-error(-16) .
So somehow the interrupt with peripheral ID 3 (which means PIOB) is already used.
The only thing on peripheral B is the LCD but i can not find any interrupt set.

I also read the registers AIC_IMR, AIC_ISR and AIC_IPR and they are in both cases(".irq = AT91SAM9261_ID_IRQ0" and ".irq = AT91SAM9261_ID_PIOB") exactly the same.

I tried also setting other flags when calling request_irq() like found on this page: http://article.gmane.org/gmane.comp.hardware.arm.at91sam/3685

Thanks a lot for any suggestions!
To:
A...
From: p...@hotmail.com
Date: Mon, 14 May 2012 04:19:51 -0400
Subject: [AT91SAM] Redirect ADS7846 interrupt from IRQ to GPIO on at91sam9261ek like

Hi there,

I'm working on at91sam9261ek like board with linux 2.6.30 kernel.

I need to redirect the interrupts from IRQ to gpio(PIN_PB6) for the touchscreen.

When i connect the IRQ and the gpio(PIN_PB6) with a wire, than i the touchscreen is working.

The init function is called right, after login into linux on console i see "touchscreen0" device under "/dev/input". But of course i don't get any interrupt.

The configuration file (.config) did i take from the linux4sam page.

Everything is working except the touchscreen.

Thanks a lot for any help!