162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/gpio/brcm,kona-gpio.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Broadcom Kona family GPIO controller
862306a36Sopenharmony_ci
962306a36Sopenharmony_cidescription:
1062306a36Sopenharmony_ci  The Broadcom GPIO Controller IP can be configured prior to synthesis to
1162306a36Sopenharmony_ci  support up to 8 banks of 32 GPIOs where each bank has its own IRQ. The
1262306a36Sopenharmony_ci  GPIO controller only supports edge, not level, triggering of interrupts.
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_cimaintainers:
1562306a36Sopenharmony_ci  - Ray Jui <rjui@broadcom.com>
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciproperties:
1862306a36Sopenharmony_ci  compatible:
1962306a36Sopenharmony_ci    items:
2062306a36Sopenharmony_ci      - enum:
2162306a36Sopenharmony_ci          - brcm,bcm11351-gpio
2262306a36Sopenharmony_ci          - brcm,bcm21664-gpio
2362306a36Sopenharmony_ci          - brcm,bcm23550-gpio
2462306a36Sopenharmony_ci      - const: brcm,kona-gpio
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci  reg:
2762306a36Sopenharmony_ci    maxItems: 1
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci  interrupts:
3062306a36Sopenharmony_ci    minItems: 4
3162306a36Sopenharmony_ci    maxItems: 6
3262306a36Sopenharmony_ci    description:
3362306a36Sopenharmony_ci      The interrupt outputs from the controller. There is one GPIO interrupt
3462306a36Sopenharmony_ci      per GPIO bank. The number of interrupts listed depends on the number of
3562306a36Sopenharmony_ci      GPIO banks on the SoC. The interrupts must be ordered by bank, starting
3662306a36Sopenharmony_ci      with bank 0. There is always a 1:1 mapping between banks and IRQs.
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci  '#gpio-cells':
3962306a36Sopenharmony_ci    const: 2
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci  '#interrupt-cells':
4262306a36Sopenharmony_ci    const: 2
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci  gpio-controller: true
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci  interrupt-controller: true
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_cirequired:
4962306a36Sopenharmony_ci  - compatible
5062306a36Sopenharmony_ci  - reg
5162306a36Sopenharmony_ci  - interrupts
5262306a36Sopenharmony_ci  - '#gpio-cells'
5362306a36Sopenharmony_ci  - '#interrupt-cells'
5462306a36Sopenharmony_ci  - gpio-controller
5562306a36Sopenharmony_ci  - interrupt-controller
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ciallOf:
5862306a36Sopenharmony_ci  - if:
5962306a36Sopenharmony_ci      properties:
6062306a36Sopenharmony_ci        compatible:
6162306a36Sopenharmony_ci          contains:
6262306a36Sopenharmony_ci            const: brcm,bcm11351-gpio
6362306a36Sopenharmony_ci    then:
6462306a36Sopenharmony_ci      properties:
6562306a36Sopenharmony_ci        interrupts:
6662306a36Sopenharmony_ci          minItems: 6
6762306a36Sopenharmony_ci  - if:
6862306a36Sopenharmony_ci      properties:
6962306a36Sopenharmony_ci        compatible:
7062306a36Sopenharmony_ci          contains:
7162306a36Sopenharmony_ci            enum:
7262306a36Sopenharmony_ci              - brcm,bcm21664-gpio
7362306a36Sopenharmony_ci              - brcm,bcm23550-gpio
7462306a36Sopenharmony_ci    then:
7562306a36Sopenharmony_ci      properties:
7662306a36Sopenharmony_ci        interrupts:
7762306a36Sopenharmony_ci          maxItems: 4
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ciadditionalProperties: false
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ciexamples:
8262306a36Sopenharmony_ci  - |
8362306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
8462306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci    gpio@35003000 {
8762306a36Sopenharmony_ci        compatible = "brcm,bcm11351-gpio", "brcm,kona-gpio";
8862306a36Sopenharmony_ci        reg = <0x35003000 0x800>;
8962306a36Sopenharmony_ci        interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
9062306a36Sopenharmony_ci                     <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
9162306a36Sopenharmony_ci                     <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
9262306a36Sopenharmony_ci                     <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
9362306a36Sopenharmony_ci                     <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
9462306a36Sopenharmony_ci                     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
9562306a36Sopenharmony_ci        #gpio-cells = <2>;
9662306a36Sopenharmony_ci        #interrupt-cells = <2>;
9762306a36Sopenharmony_ci        gpio-controller;
9862306a36Sopenharmony_ci        interrupt-controller;
9962306a36Sopenharmony_ci    };
10062306a36Sopenharmony_ci...
101