The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/interrupt-controller/ti,sci-intr.yaml

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
    2 %YAML 1.2
    3 ---
    4 $id: http://devicetree.org/schemas/interrupt-controller/ti,sci-intr.yaml#
    5 $schema: http://devicetree.org/meta-schemas/core.yaml#
    6 
    7 title: Texas Instruments K3 Interrupt Router
    8 
    9 maintainers:
   10   - Lokesh Vutla <lokeshvutla@ti.com>
   11 
   12 allOf:
   13   - $ref: /schemas/arm/keystone/ti,k3-sci-common.yaml#
   14 
   15 description: |
   16   The Interrupt Router (INTR) module provides a mechanism to mux M
   17   interrupt inputs to N interrupt outputs, where all M inputs are selectable
   18   to be driven per N output. An Interrupt Router can either handle edge
   19   triggered or level triggered interrupts and that is fixed in hardware.
   20 
   21                                    Interrupt Router
   22                                +----------------------+
   23                                |  Inputs     Outputs  |
   24           +-------+            | +------+    +-----+  |
   25           | GPIO  |----------->| | irq0 |    |  0  |  |       Host IRQ
   26           +-------+            | +------+    +-----+  |      controller
   27                                |    .           .     |      +-------+
   28           +-------+            |    .           .     |----->|  IRQ  |
   29           | INTA  |----------->|    .           .     |      +-------+
   30           +-------+            |    .        +-----+  |
   31                                | +------+    |  N  |  |
   32                                | | irqM |    +-----+  |
   33                                | +------+             |
   34                                |                      |
   35                                +----------------------+
   36 
   37   There is one register per output (MUXCNTL_N) that controls the selection.
   38   Configuration of these MUXCNTL_N registers is done by a system controller
   39   (like the Device Memory and Security Controller on K3 AM654 SoC). System
   40   controller will keep track of the used and unused registers within the Router.
   41   Driver should request the system controller to get the range of GIC IRQs
   42   assigned to the requesting hosts. It is the drivers responsibility to keep
   43   track of Host IRQs.
   44 
   45   Communication between the host processor running an OS and the system
   46   controller happens through a protocol called TI System Control Interface
   47   (TISCI protocol).
   48 
   49 properties:
   50   compatible:
   51     const: ti,sci-intr
   52 
   53   ti,intr-trigger-type:
   54     $ref: /schemas/types.yaml#/definitions/uint32
   55     enum: [1, 4]
   56     description: |
   57       Should be one of the following.
   58         1 = If intr supports edge triggered interrupts.
   59         4 = If intr supports level triggered interrupts.
   60 
   61   interrupt-controller: true
   62 
   63   '#interrupt-cells':
   64     const: 1
   65     description: |
   66       The 1st cell should contain interrupt router input hw number.
   67 
   68   ti,interrupt-ranges:
   69     $ref: /schemas/types.yaml#/definitions/uint32-matrix
   70     description: |
   71       Interrupt ranges that converts the INTR output hw irq numbers
   72       to parents's input interrupt numbers.
   73     items:
   74       items:
   75         - description: |
   76             "output_irq" specifies the base for intr output irq
   77         - description: |
   78             "parent's input irq" specifies the base for parent irq
   79         - description: |
   80             "limit" specifies the limit for translation
   81 
   82 required:
   83   - compatible
   84   - ti,intr-trigger-type
   85   - interrupt-controller
   86   - '#interrupt-cells'
   87   - ti,sci
   88   - ti,sci-dev-id
   89   - ti,interrupt-ranges
   90 
   91 unevaluatedProperties: false
   92 
   93 examples:
   94   - |
   95     main_gpio_intr: interrupt-controller0 {
   96         compatible = "ti,sci-intr";
   97         ti,intr-trigger-type = <1>;
   98         interrupt-controller;
   99         interrupt-parent = <&gic500>;
  100         #interrupt-cells = <1>;
  101         ti,sci = <&dmsc>;
  102         ti,sci-dev-id = <131>;
  103         ti,interrupt-ranges = <0 360 32>;
  104     };

Cache object: b85a6c1e1a9423c6c7a6819c8b492881


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.