2012-06-26 8 views
10

sto facendo un progetto in cui ho bisogno di gestire un interrupt in Linux.come sapere il numero di interrupt/GPIO per un pin specifico in linux

scheda sto usando è un ARM9Board basato sul S3C6410 MCU da Samsung (braccio 11 processore) ed ha la seguente interfaccia I/O:

enter image description here

come immagine mostra ho Perni EINTx per interrupt esterni e pin GPxx come pin GPIO e non mi dispiace usare nessuno di essi ma non ho i loro numeri!

Per perni EINTx:

quando chiamo

int request_irq(unsigned int irq, void (*handler)(int, struct pt_regs *), 
unsigned long flags, const char *device); 

ho bisogno del numero di interrupt per passare come primo paramter della funzione, così come posso ottenere il numero IRQ per esempio il pin EINT16?

Per perni GPxx: la stessa storia, come ho bisogno del pin GPIO nuumber di passarlo a quelle funzioni

int gpio_request(unsigned gpio, const char *label); 
int gpio_direction_input(unsigned gpio); 
int gpio_to_irq(unsigned gpio); 

cioè come faccio a sapere il numero di GPIO per il perno GPP8?

ho cercato i documenti della scheda e la scheda tecnica ma non contiene nulla su come ottenere quei numeri, qualche idea o aiuto su dove cercare?

risposta

8

L'Embedded Linux in uso deve disporre di un driver GPIO con istruzioni #define per i pin GPIO. È quindi possibile ottenere il numero IRQ della GPIO specifica utilizzando qualcosa di simile:

irq_num = gpio_to_irq(S3C64XX_GPP(8));

Il supporto lib Linux GPIO per quel particolare circuito integrato è disponibile nel seguente file:

linux/arch /arm/mach-s3c6400/include/mach/gpio.h

vi si possono trovare tutti i #define dichiarazioni per i vari GPIO.

si veda la sezione Convenzioni GPIO nella loro documentazione:

http://www.kernel.org/doc/Documentation/gpio/gpio.txt

+0

il kernel fornito con la scheda ha un driver GPIO su/drivers/gpio ma non dei file c ci sono #define per i pin e ho trovato/include/linux/gpio.g ma contiene solo il dichiarazione per funzioni come gpio_request e gpio_to_irq ma no #define o –

+0

Che scheda stai usando? –

+0

questo http://www.arm9board.net/sel/prddetail.aspx?id=365&pid=200 –

0

stavo facendo un lavoro sul perno GPIO pure ma è su una scheda diversa, AM335x. Solo per farti sapere, c'è un pò di modo per farlo. Uno dei metodi che stiamo usando è usare la scheda di memoria per accedere (scrivere o leggere) il pin GPIO.

Questo è davvero un buon articolo per aiutarmi a far funzionare le cose. Register access to the GPIOs of the Beaglebone via memory mapping