Describing devices in the device tree

Grant Likely grant.likely at secretlab.ca
Wed Oct 17 06:06:04 EST 2007


On 10/16/07, Alan Bennett <embedded at akb.net> wrote:
> I'm using a modified ep8248e.dts to describe my hardware and I want to
> enable the use of 3 standard interrupts.
>
>   1. irq5
>   2. timer1
>   3. timer2
>
> How bad does this look?
> soc --> cpm -->
>                        timer {
>                                device_type = "timer";
>                                compatible = "fsl,mpc8248-timer";
>                                interrupts = <c 8 d 8>;
>                                interrupt-parent = <&PIC>;
>                        };
>                        irq5 {
>                                device_type = "irq5";
>                                compatible = "fsl,mpc8248-irq5";
>                                interrupts = <17 8>;
>                                interrupt-parent = <&PIC>;
>                        };

Don't do this.  Instead, describe the device that generates the
interrupt.  You don't need the device_type property either unless it
is a common device.  The compatible property should also describe your
device; not the irq line.

Just creating a device node to describe an irq line doesn't buy you
anything because your device driver still needs to have the knowledge
built into it to use IRQ5.  You may as well have just hard coded the
value into your driver instead of traversing through the device tree
to get it.

You get an advantage when you create a node for you *device* that your
device driver can bind, and embed into that node the IRQ line that it
uses.

Cheers,
g.

-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
grant.likely at secretlab.ca
(403) 399-0195



More information about the Linuxppc-dev mailing list