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-lapic.yaml# 5*fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 68bab661aSEmmanuel Vadot 78bab661aSEmmanuel Vadottitle: Intel Local Advanced Programmable Interrupt Controller (LAPIC) 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 local 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-lapic 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 intel,virtual-wire-mode: 438bab661aSEmmanuel Vadot description: Intel defines a few possible interrupt delivery 448bab661aSEmmanuel Vadot modes. With respect to boot/init time, mainly two interrupt 458bab661aSEmmanuel Vadot delivery modes are possible. 468bab661aSEmmanuel Vadot PIC Mode - Legacy external 8259 compliant PIC interrupt controller. 478bab661aSEmmanuel Vadot Virtual Wire Mode - use lapic as virtual wire interrupt delivery mode. 488bab661aSEmmanuel Vadot For ACPI or MPS spec compliant systems, it is figured out by some read 498bab661aSEmmanuel Vadot only bit field/s available in their respective defined data structures. 508bab661aSEmmanuel Vadot For OF based systems, it is by default set to PIC mode. 518bab661aSEmmanuel Vadot But if this optional boolean property is set, then the interrupt delivery 528bab661aSEmmanuel Vadot mode is configured to virtual wire compatibility mode. 538bab661aSEmmanuel Vadot type: boolean 548bab661aSEmmanuel Vadot 558bab661aSEmmanuel Vadotrequired: 568bab661aSEmmanuel Vadot - compatible 578bab661aSEmmanuel Vadot - reg 588bab661aSEmmanuel Vadot - interrupt-controller 598bab661aSEmmanuel Vadot - '#interrupt-cells' 608bab661aSEmmanuel Vadot 618bab661aSEmmanuel VadotadditionalProperties: false 628bab661aSEmmanuel Vadot 638bab661aSEmmanuel Vadotexamples: 648bab661aSEmmanuel Vadot - | 658bab661aSEmmanuel Vadot lapic0: interrupt-controller@fee00000 { 668bab661aSEmmanuel Vadot compatible = "intel,ce4100-lapic"; 678bab661aSEmmanuel Vadot reg = <0xfee00000 0x1000>; 688bab661aSEmmanuel Vadot interrupt-controller; 698bab661aSEmmanuel Vadot #interrupt-cells = <2>; 708bab661aSEmmanuel Vadot intel,virtual-wire-mode; 718bab661aSEmmanuel Vadot }; 72