162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/interrupt-controller/intel,ce4100-ioapic.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Intel I/O Advanced Programmable Interrupt Controller (IO APIC)
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Rahul Tanwar <rtanwar@maxlinear.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  Intel's Advanced Programmable Interrupt Controller (APIC) is a
1462306a36Sopenharmony_ci  family of interrupt controllers. The APIC is a split
1562306a36Sopenharmony_ci  architecture design, with a local component (LAPIC) integrated
1662306a36Sopenharmony_ci  into the processor itself and an external I/O APIC. Local APIC
1762306a36Sopenharmony_ci  (lapic) receives interrupts from the processor's interrupt pins,
1862306a36Sopenharmony_ci  from internal sources and from an external I/O APIC (ioapic).
1962306a36Sopenharmony_ci  And it sends these to the processor core for handling.
2062306a36Sopenharmony_ci  See [1] Chapter 8 for more details.
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci  Many of the Intel's generic devices like hpet, ioapic, lapic have
2362306a36Sopenharmony_ci  the ce4100 name in their compatible property names because they
2462306a36Sopenharmony_ci  first appeared in CE4100 SoC.
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci  This schema defines bindings for I/O APIC interrupt controller.
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci  [1] https://pdos.csail.mit.edu/6.828/2008/readings/ia32/IA32-3A.pdf
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ciproperties:
3162306a36Sopenharmony_ci  compatible:
3262306a36Sopenharmony_ci    const: intel,ce4100-ioapic
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci  reg:
3562306a36Sopenharmony_ci    maxItems: 1
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci  interrupt-controller: true
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci  '#interrupt-cells':
4062306a36Sopenharmony_ci    const: 2
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci  interrupts:
4362306a36Sopenharmony_ci    maxItems: 1
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_cirequired:
4662306a36Sopenharmony_ci  - compatible
4762306a36Sopenharmony_ci  - reg
4862306a36Sopenharmony_ci  - interrupt-controller
4962306a36Sopenharmony_ci  - '#interrupt-cells'
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_ciadditionalProperties: false
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ciexamples:
5462306a36Sopenharmony_ci  - |
5562306a36Sopenharmony_ci    ioapic1: interrupt-controller@fec00000 {
5662306a36Sopenharmony_ci        compatible = "intel,ce4100-ioapic";
5762306a36Sopenharmony_ci        reg = <0xfec00000 0x1000>;
5862306a36Sopenharmony_ci        interrupt-controller;
5962306a36Sopenharmony_ci        #interrupt-cells = <2>;
6062306a36Sopenharmony_ci    };
61