Documentation/devicetree/bindings/interrupt-controller/econet,en751221-intc.yaml

Source file repositories/reference/linux-study-clean/Documentation/devicetree/bindings/interrupt-controller/econet,en751221-intc.yaml

File Facts

System
Linux kernel
Corpus path
Documentation/devicetree/bindings/interrupt-controller/econet,en751221-intc.yaml
Extension
.yaml
Size
3279 bytes
Lines
99
Domain
Support Tooling And Documentation
Bucket
Documentation
Inferred role
Support Tooling And Documentation: configuration, schema, or hardware description
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/interrupt-controller/econet,en751221-intc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: EcoNet EN751221 Interrupt Controller

maintainers:
  - Caleb James DeLisle <cjd@cjdns.fr>

description:
  The EcoNet EN751221 Interrupt Controller is a simple interrupt controller
  designed for the MIPS 34Kc MT SMP processor with 2 VPEs. Each interrupt can
  be routed to either VPE but not both, so to support per-CPU interrupts, a
  secondary IRQ number is allocated to control masking/unmasking on VPE#1. For
  lack of a better term we call these "shadow interrupts". The assignment of
  shadow interrupts is defined by the SoC integrator when wiring the interrupt
  lines, so they are configurable in the device tree.

allOf:
  - $ref: /schemas/interrupt-controller.yaml#

properties:
  compatible:
    const: econet,en751221-intc

  reg:
    maxItems: 1

  "#interrupt-cells":
    const: 1

  interrupt-controller: true

  interrupts:
    maxItems: 1
    description: Interrupt line connecting this controller to its parent.

  econet,shadow-interrupts:
    $ref: /schemas/types.yaml#/definitions/uint32-matrix
    description:
      An array of interrupt number pairs where each pair represents a shadow
      interrupt relationship. The first number in each pair is the primary IRQ,
      and the second is its shadow IRQ used for VPE#1 control. For example,
      <8 3> means IRQ 8 is shadowed by IRQ 3, so IRQ 3 cannot be mapped, but
      when VPE#1 requests IRQ 8, it will manipulate the IRQ 3 mask bit.
    minItems: 1
    maxItems: 20
    items:
      items:
        - description: primary per-CPU IRQ
        - description: shadow IRQ number

  econet,cpu-interrupt-map:
    $ref: /schemas/types.yaml#/definitions/uint32-matrix
    description:
      When running in VEIC mode, the hardware re-routes interrupts from the
      CPU interrupt controller core to the "external" interrupt controller
      (this device). It then prioritizes them and sends them back to the CPU
      along with its own interrupts. The CPU hardware handles interrupts using
      a special dispatch table (the normal interrupt handler is not invoked).
      In this interrupt controller, the CPU interrupts are renumbered as they
      are merged with this controller's own hardware interrupts.

      This is the inverse of an interrupt-map, mapping which interrupts from
      this controller must be routed back to the CPU interrupt domain for
      correct handling there.
    items:
      items:

Annotation

Implementation Notes