Subject: Re: External Interrupt

From: Sergei Shtylyov <[email-masked]>
Date: Fri, 01 Feb 2008 18:35:53 +0300

Marco Stornelli wrote:

>>>I used the linux kernel 2.6.10 with a processor MPC8548E. I wrote a
>>>driver for a device connected with the local bus. This device has an
>>>external interrupt. In the local bus driver I have used the macro
>>>MPC85xx_IRQ_EXT<X> to get the interrupt number and pass it to the
>>>driver and after that register the ISR. Now with a kernel 2.6.21 this
>>>macro isn't available because in the header file irq.h there is the
>>>option CONFIG_PPC_MERGE that disable those options. I think this
>>>problem is related to the migration of ppc code towards powerpc. I
>>>know that now there is the new device tree source file where I can add
>>>a device and its interrupt number  but I think in this file I should
>>>describe only the platform device, and this device is not a platform
>>>device.

>>   How comes that it's not platform device if it hangs off the local bus?

> In SoC system generally the platform device are (more or less) the
> microprocessor controller like i2c, pci, local bus itself and so on.

    That's SoC devices but the notion of the platform device is not limited to 
SoC device only, rather to all the on-board devices.

> I think is like if you consider a PCI board a platform device only because
> it hangs off the PCI link.

    No. PCI devices are detectable/configurable by kernel -- even if they are 
on-board chips, they can be found by PCI bus scan (and finally presented as 
the device nodes as well), while local bus devices (most probably) not.  An 
example (that comes to mind) of a device hanging off the local bus and yet 
described by the device tree are the flash chips.

WBR, Sergei