xref: /freebsd-src/sys/contrib/device-tree/Bindings/interrupt-controller/intel,ce4100-ioapic.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
18bab661aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
28bab661aSEmmanuel Vadot%YAML 1.2
38bab661aSEmmanuel Vadot---
4*fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/interrupt-controller/intel,ce4100-ioapic.yaml#
5*fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
68bab661aSEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: Intel I/O Advanced Programmable Interrupt Controller (IO APIC)
88bab661aSEmmanuel Vadot
98bab661aSEmmanuel Vadotmaintainers:
108bab661aSEmmanuel Vadot  - Rahul Tanwar <rtanwar@maxlinear.com>
118bab661aSEmmanuel Vadot
128bab661aSEmmanuel Vadotdescription: |
138bab661aSEmmanuel Vadot  Intel's Advanced Programmable Interrupt Controller (APIC) is a
148bab661aSEmmanuel Vadot  family of interrupt controllers. The APIC is a split
158bab661aSEmmanuel Vadot  architecture design, with a local component (LAPIC) integrated
168bab661aSEmmanuel Vadot  into the processor itself and an external I/O APIC. Local APIC
178bab661aSEmmanuel Vadot  (lapic) receives interrupts from the processor's interrupt pins,
188bab661aSEmmanuel Vadot  from internal sources and from an external I/O APIC (ioapic).
198bab661aSEmmanuel Vadot  And it sends these to the processor core for handling.
208bab661aSEmmanuel Vadot  See [1] Chapter 8 for more details.
218bab661aSEmmanuel Vadot
228bab661aSEmmanuel Vadot  Many of the Intel's generic devices like hpet, ioapic, lapic have
238bab661aSEmmanuel Vadot  the ce4100 name in their compatible property names because they
248bab661aSEmmanuel Vadot  first appeared in CE4100 SoC.
258bab661aSEmmanuel Vadot
268bab661aSEmmanuel Vadot  This schema defines bindings for I/O APIC interrupt controller.
278bab661aSEmmanuel Vadot
288bab661aSEmmanuel Vadot  [1] https://pdos.csail.mit.edu/6.828/2008/readings/ia32/IA32-3A.pdf
298bab661aSEmmanuel Vadot
308bab661aSEmmanuel Vadotproperties:
318bab661aSEmmanuel Vadot  compatible:
328bab661aSEmmanuel Vadot    const: intel,ce4100-ioapic
338bab661aSEmmanuel Vadot
348bab661aSEmmanuel Vadot  reg:
358bab661aSEmmanuel Vadot    maxItems: 1
368bab661aSEmmanuel Vadot
378bab661aSEmmanuel Vadot  interrupt-controller: true
388bab661aSEmmanuel Vadot
398bab661aSEmmanuel Vadot  '#interrupt-cells':
408bab661aSEmmanuel Vadot    const: 2
418bab661aSEmmanuel Vadot
428bab661aSEmmanuel Vadot  interrupts:
438bab661aSEmmanuel Vadot    maxItems: 1
448bab661aSEmmanuel Vadot
458bab661aSEmmanuel Vadotrequired:
468bab661aSEmmanuel Vadot  - compatible
478bab661aSEmmanuel Vadot  - reg
488bab661aSEmmanuel Vadot  - interrupt-controller
498bab661aSEmmanuel Vadot  - '#interrupt-cells'
508bab661aSEmmanuel Vadot
518bab661aSEmmanuel VadotadditionalProperties: false
528bab661aSEmmanuel Vadot
538bab661aSEmmanuel Vadotexamples:
548bab661aSEmmanuel Vadot  - |
558bab661aSEmmanuel Vadot    ioapic1: interrupt-controller@fec00000 {
568bab661aSEmmanuel Vadot        compatible = "intel,ce4100-ioapic";
578bab661aSEmmanuel Vadot        reg = <0xfec00000 0x1000>;
588bab661aSEmmanuel Vadot        interrupt-controller;
598bab661aSEmmanuel Vadot        #interrupt-cells = <2>;
608bab661aSEmmanuel Vadot    };
61