lkml.org 
[lkml]   [2021]   [Apr]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 14/18] dt-bindings: interrupt-controller: Add DT bindings for apple-aic
    Date
    AIC is the Apple Interrupt Controller found on Apple ARM SoCs, such as
    the M1.

    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Hector Martin <marcan@marcan.st>
    ---
    .../interrupt-controller/apple,aic.yaml | 88 +++++++++++++++++++
    MAINTAINERS | 1 +
    .../interrupt-controller/apple-aic.h | 15 ++++
    3 files changed, 104 insertions(+)
    create mode 100644 Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml
    create mode 100644 include/dt-bindings/interrupt-controller/apple-aic.h

    diff --git a/Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml b/Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml
    new file mode 100644
    index 000000000000..cf6c091a07b1
    --- /dev/null
    +++ b/Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml
    @@ -0,0 +1,88 @@
    +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
    +%YAML 1.2
    +---
    +$id: http://devicetree.org/schemas/interrupt-controller/apple,aic.yaml#
    +$schema: http://devicetree.org/meta-schemas/core.yaml#
    +
    +title: Apple Interrupt Controller
    +
    +maintainers:
    + - Hector Martin <marcan@marcan.st>
    +
    +description: |
    + The Apple Interrupt Controller is a simple interrupt controller present on
    + Apple ARM SoC platforms, including various iPhone and iPad devices and the
    + "Apple Silicon" Macs.
    +
    + It provides the following features:
    +
    + - Level-triggered hardware IRQs wired to SoC blocks
    + - Single mask bit per IRQ
    + - Per-IRQ affinity setting
    + - Automatic masking on event delivery (auto-ack)
    + - Software triggering (ORed with hw line)
    + - 2 per-CPU IPIs (meant as "self" and "other", but they are interchangeable
    + if not symmetric)
    + - Automatic prioritization (single event/ack register per CPU, lower IRQs =
    + higher priority)
    + - Automatic masking on ack
    + - Default "this CPU" register view and explicit per-CPU views
    +
    + This device also represents the FIQ interrupt sources on platforms using AIC,
    + which do not go through a discrete interrupt controller.
    +
    +allOf:
    + - $ref: /schemas/interrupt-controller.yaml#
    +
    +properties:
    + compatible:
    + items:
    + - const: apple,t8103-aic
    + - const: apple,aic
    +
    + interrupt-controller: true
    +
    + '#interrupt-cells':
    + const: 3
    + description: |
    + The 1st cell contains the interrupt type:
    + - 0: Hardware IRQ
    + - 1: FIQ
    +
    + The 2nd cell contains the interrupt number.
    + - HW IRQs: interrupt number
    + - FIQs:
    + - 0: physical HV timer
    + - 1: virtual HV timer
    + - 2: physical guest timer
    + - 3: virtual guest timer
    +
    + The 3rd cell contains the interrupt flags. This is normally
    + IRQ_TYPE_LEVEL_HIGH (4).
    +
    + reg:
    + description: |
    + Specifies base physical address and size of the AIC registers.
    + maxItems: 1
    +
    +required:
    + - compatible
    + - '#interrupt-cells'
    + - interrupt-controller
    + - reg
    +
    +additionalProperties: false
    +
    +examples:
    + - |
    + soc {
    + #address-cells = <2>;
    + #size-cells = <2>;
    +
    + aic: interrupt-controller@23b100000 {
    + compatible = "apple,t8103-aic", "apple,aic";
    + #interrupt-cells = <3>;
    + interrupt-controller;
    + reg = <0x2 0x3b100000 0x0 0x8000>;
    + };
    + };
    diff --git a/MAINTAINERS b/MAINTAINERS
    index bee9a57e6cec..b26a7e23c512 100644
    --- a/MAINTAINERS
    +++ b/MAINTAINERS
    @@ -1646,6 +1646,7 @@ B: https://github.com/AsahiLinux/linux/issues
    C: irc://chat.freenode.net/asahi-dev
    T: git https://github.com/AsahiLinux/linux.git
    F: Documentation/devicetree/bindings/arm/apple.yaml
    +F: Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml

    ARM/ARTPEC MACHINE SUPPORT
    M: Jesper Nilsson <jesper.nilsson@axis.com>
    diff --git a/include/dt-bindings/interrupt-controller/apple-aic.h b/include/dt-bindings/interrupt-controller/apple-aic.h
    new file mode 100644
    index 000000000000..604f2bb30ac0
    --- /dev/null
    +++ b/include/dt-bindings/interrupt-controller/apple-aic.h
    @@ -0,0 +1,15 @@
    +/* SPDX-License-Identifier: GPL-2.0+ OR MIT */
    +#ifndef _DT_BINDINGS_INTERRUPT_CONTROLLER_APPLE_AIC_H
    +#define _DT_BINDINGS_INTERRUPT_CONTROLLER_APPLE_AIC_H
    +
    +#include <dt-bindings/interrupt-controller/irq.h>
    +
    +#define AIC_IRQ 0
    +#define AIC_FIQ 1
    +
    +#define AIC_TMR_HV_PHYS 0
    +#define AIC_TMR_HV_VIRT 1
    +#define AIC_TMR_GUEST_PHYS 2
    +#define AIC_TMR_GUEST_VIRT 3
    +
    +#endif
    --
    2.30.0
    \
     
     \ /
      Last update: 2021-04-02 11:10    [W:4.118 / U:0.880 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site