The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/mips/cpu_irq.txt

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 MIPS CPU interrupt controller
    2 
    3 On MIPS the mips_cpu_irq_of_init() helper can be used to initialize the 8 CPU
    4 IRQs from a devicetree file and create a irq_domain for IRQ controller.
    5 
    6 With the irq_domain in place we can describe how the 8 IRQs are wired to the
    7 platforms internal interrupt controller cascade.
    8 
    9 Below is an example of a platform describing the cascade inside the devicetree
   10 and the code used to load it inside arch_init_irq().
   11 
   12 Required properties:
   13 - compatible : Should be "mti,cpu-interrupt-controller"
   14 
   15 Example devicetree:
   16         cpu-irq: cpu-irq {
   17                 #address-cells = <0>;
   18 
   19                 interrupt-controller;
   20                 #interrupt-cells = <1>;
   21 
   22                 compatible = "mti,cpu-interrupt-controller";
   23         };
   24 
   25         intc: intc@200 {
   26                 compatible = "ralink,rt2880-intc";
   27                 reg = <0x200 0x100>;
   28 
   29                 interrupt-controller;
   30                 #interrupt-cells = <1>;
   31 
   32                 interrupt-parent = <&cpu-irq>;
   33                 interrupts = <2>;
   34         };
   35 
   36 
   37 Example platform irq.c:
   38 static struct of_device_id __initdata of_irq_ids[] = {
   39         { .compatible = "mti,cpu-interrupt-controller", .data = mips_cpu_irq_of_init },
   40         { .compatible = "ralink,rt2880-intc", .data = intc_of_init },
   41         {},
   42 };
   43 
   44 void __init arch_init_irq(void)
   45 {
   46         of_irq_init(of_irq_ids);
   47 }

Cache object: 23f6609308d3b18168dfc9277aab56ca


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.