dts の interrupt その2

               spi@3,60 {
                        compatible = "abb,socrates-spi";
                        reg = <3 0x60 0x10>;
                        interrupts = <8 4 0>;   // number, type, routing
                        interrupt-parent = <&fpga_pic>;
                };

なんて記述を見つけた。この時の #interrupt-cells は

                fpga_pic: fpga-pic@3,10 {
                        compatible = "abb,socrates-fpga-pic";
                        reg = <3 0x10 0x10>;
                        interrupt-controller;
                        /* IRQs 2, 10, 11, active low, level-sensitive */
                        interrupts = <2 1 10 1 11 1>;
                        interrupt-parent = <&mpic>;
                        #interrupt-cells = <3>;
                };

fpga_pic がなんだかわからないが、自身の割り込みの cells は 2 。

               mpic: pic@40000 {
                        interrupt-controller;
                        #address-cells = <0>;
                        #interrupt-cells = <2>;
                        reg = <0x40000 0x40000>;
                        compatible = "chrp,open-pic";
                        device_type = "open-pic";
                };

PCI は 1。複雑な階層構造を持つことが可能らしい。数や意味はハード依存だな。

        pci0: pci@e0008000 {
                #interrupt-cells = <1>;
                #size-cells = <2>;
                #address-cells = <3>;
                compatible = "fsl,mpc8540-pci";
                device_type = "pci";
                reg = <0xe0008000 0x1000>;
                clock-frequency = <66666666>;