| # 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 |
| |
| required: |
| - compatible |
| - reg |
| - interrupt-controller |
| - "#interrupt-cells" |
| - interrupts |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| interrupt-controller@1fb40000 { |
| compatible = "econet,en751221-intc"; |
| reg = <0x1fb40000 0x100>; |
| |
| interrupt-controller; |
| #interrupt-cells = <1>; |
| |
| interrupt-parent = <&cpuintc>; |
| interrupts = <2>; |
| |
| econet,shadow-interrupts = <7 2>, <8 3>, <13 12>, <30 29>; |
| }; |
| ... |