1*b0c48861SStanislav Jakubek# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2*b0c48861SStanislav Jakubek%YAML 1.2
3*b0c48861SStanislav Jakubek---
4*b0c48861SStanislav Jakubek$id: http://devicetree.org/schemas/gpio/brcm,kona-gpio.yaml#
5*b0c48861SStanislav Jakubek$schema: http://devicetree.org/meta-schemas/core.yaml#
6*b0c48861SStanislav Jakubek
7*b0c48861SStanislav Jakubektitle: Broadcom Kona family GPIO controller
8*b0c48861SStanislav Jakubek
9*b0c48861SStanislav Jakubekdescription:
10*b0c48861SStanislav Jakubek  The Broadcom GPIO Controller IP can be configured prior to synthesis to
11*b0c48861SStanislav Jakubek  support up to 8 banks of 32 GPIOs where each bank has its own IRQ. The
12*b0c48861SStanislav Jakubek  GPIO controller only supports edge, not level, triggering of interrupts.
13*b0c48861SStanislav Jakubek
14*b0c48861SStanislav Jakubekmaintainers:
15*b0c48861SStanislav Jakubek  - Ray Jui <rjui@broadcom.com>
16*b0c48861SStanislav Jakubek
17*b0c48861SStanislav Jakubekproperties:
18*b0c48861SStanislav Jakubek  compatible:
19*b0c48861SStanislav Jakubek    items:
20*b0c48861SStanislav Jakubek      - enum:
21*b0c48861SStanislav Jakubek          - brcm,bcm11351-gpio
22*b0c48861SStanislav Jakubek          - brcm,bcm21664-gpio
23*b0c48861SStanislav Jakubek          - brcm,bcm23550-gpio
24*b0c48861SStanislav Jakubek      - const: brcm,kona-gpio
25*b0c48861SStanislav Jakubek
26*b0c48861SStanislav Jakubek  reg:
27*b0c48861SStanislav Jakubek    maxItems: 1
28*b0c48861SStanislav Jakubek
29*b0c48861SStanislav Jakubek  interrupts:
30*b0c48861SStanislav Jakubek    minItems: 4
31*b0c48861SStanislav Jakubek    maxItems: 6
32*b0c48861SStanislav Jakubek    description:
33*b0c48861SStanislav Jakubek      The interrupt outputs from the controller. There is one GPIO interrupt
34*b0c48861SStanislav Jakubek      per GPIO bank. The number of interrupts listed depends on the number of
35*b0c48861SStanislav Jakubek      GPIO banks on the SoC. The interrupts must be ordered by bank, starting
36*b0c48861SStanislav Jakubek      with bank 0. There is always a 1:1 mapping between banks and IRQs.
37*b0c48861SStanislav Jakubek
38*b0c48861SStanislav Jakubek  '#gpio-cells':
39*b0c48861SStanislav Jakubek    const: 2
40*b0c48861SStanislav Jakubek
41*b0c48861SStanislav Jakubek  '#interrupt-cells':
42*b0c48861SStanislav Jakubek    const: 2
43*b0c48861SStanislav Jakubek
44*b0c48861SStanislav Jakubek  gpio-controller: true
45*b0c48861SStanislav Jakubek
46*b0c48861SStanislav Jakubek  interrupt-controller: true
47*b0c48861SStanislav Jakubek
48*b0c48861SStanislav Jakubekrequired:
49*b0c48861SStanislav Jakubek  - compatible
50*b0c48861SStanislav Jakubek  - reg
51*b0c48861SStanislav Jakubek  - interrupts
52*b0c48861SStanislav Jakubek  - '#gpio-cells'
53*b0c48861SStanislav Jakubek  - '#interrupt-cells'
54*b0c48861SStanislav Jakubek  - gpio-controller
55*b0c48861SStanislav Jakubek  - interrupt-controller
56*b0c48861SStanislav Jakubek
57*b0c48861SStanislav JakubekallOf:
58*b0c48861SStanislav Jakubek  - if:
59*b0c48861SStanislav Jakubek      properties:
60*b0c48861SStanislav Jakubek        compatible:
61*b0c48861SStanislav Jakubek          contains:
62*b0c48861SStanislav Jakubek            const: brcm,bcm11351-gpio
63*b0c48861SStanislav Jakubek    then:
64*b0c48861SStanislav Jakubek      properties:
65*b0c48861SStanislav Jakubek        interrupts:
66*b0c48861SStanislav Jakubek          minItems: 6
67*b0c48861SStanislav Jakubek  - if:
68*b0c48861SStanislav Jakubek      properties:
69*b0c48861SStanislav Jakubek        compatible:
70*b0c48861SStanislav Jakubek          contains:
71*b0c48861SStanislav Jakubek            enum:
72*b0c48861SStanislav Jakubek              - brcm,bcm21664-gpio
73*b0c48861SStanislav Jakubek              - brcm,bcm23550-gpio
74*b0c48861SStanislav Jakubek    then:
75*b0c48861SStanislav Jakubek      properties:
76*b0c48861SStanislav Jakubek        interrupts:
77*b0c48861SStanislav Jakubek          maxItems: 4
78*b0c48861SStanislav Jakubek
79*b0c48861SStanislav JakubekadditionalProperties: false
80*b0c48861SStanislav Jakubek
81*b0c48861SStanislav Jakubekexamples:
82*b0c48861SStanislav Jakubek  - |
83*b0c48861SStanislav Jakubek    #include <dt-bindings/interrupt-controller/arm-gic.h>
84*b0c48861SStanislav Jakubek    #include <dt-bindings/interrupt-controller/irq.h>
85*b0c48861SStanislav Jakubek
86*b0c48861SStanislav Jakubek    gpio@35003000 {
87*b0c48861SStanislav Jakubek        compatible = "brcm,bcm11351-gpio", "brcm,kona-gpio";
88*b0c48861SStanislav Jakubek        reg = <0x35003000 0x800>;
89*b0c48861SStanislav Jakubek        interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
90*b0c48861SStanislav Jakubek                     <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
91*b0c48861SStanislav Jakubek                     <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
92*b0c48861SStanislav Jakubek                     <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
93*b0c48861SStanislav Jakubek                     <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
94*b0c48861SStanislav Jakubek                     <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
95*b0c48861SStanislav Jakubek        #gpio-cells = <2>;
96*b0c48861SStanislav Jakubek        #interrupt-cells = <2>;
97*b0c48861SStanislav Jakubek        gpio-controller;
98*b0c48861SStanislav Jakubek        interrupt-controller;
99*b0c48861SStanislav Jakubek    };
100*b0c48861SStanislav Jakubek...
101