From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from vega.surpasshosting.com (vega.surpasshosting.com [72.29.83.9]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id EB3C5DDDD8 for ; Thu, 16 Oct 2008 01:43:46 +1100 (EST) Received: from bzq-79-177-101-25.red.bezeqint.net ([79.177.101.25]:50679 helo=felix.lan) by vega.surpasshosting.com with esmtpa (Exim 4.69) (envelope-from ) id 1Kq7bD-0006RB-W0 for linuxppc-embedded@ozlabs.org; Wed, 15 Oct 2008 10:43:44 -0400 Message-ID: <48F60192.6050803@embedded-sol.com> Date: Wed, 15 Oct 2008 16:43:30 +0200 From: Felix Radensky MIME-Version: 1.0 To: linuxppc-embedded@ozlabs.org Subject: External interrupt on 460EX Content-Type: text/plain; charset=ISO-8859-1; format=flowed List-Id: Linux on Embedded PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Hi, I'm running Linux 2.6.26 on custom board based on AMCC 460EX. I'm trying to catch interrupt generated by CPLD, but without any luck. The interrupt is connected to GPIO 45. U-Boot (1.3.4) configures this pin as external interrupt 12 (interrupt 20 in UIC 3). I've added the following entry to board device tree (in opb section) cpld@2,0 { device_type = "cpld"; interrupts = <20 1>; interrupt-parent = <&UIC3>; }; In my driver I do the following: /* Find CPLD node in device tree */ np = of_find_node_by_type(NULL, "cpld"); if (!np) { printk(KERN_INFO "No CPLD found in device tree\n"); return -1; } /* Get and map irq number from device tree */ cpld_irq = irq_of_parse_and_map(np, 0); if (cpld_irq == NO_IRQ) { printk(KERN_ERR "irq_of_parse_and_map failed\n"); of_node_put(np); return -ENODEV; } /* Register CPLD interrupt handler */ rc = request_irq(cpld_irq, cpld_interrupt, IRQF_TRIGGER_LOW, "CPLD", NULL); And I see this interrupt in /proc/interrups after loading the driver. However interrupt handler is never invoked, although hardware guys see that GPIO line goes down when interrupt is generated. What am I doing wrong ? Thanks a lot in advance ? Felix.