xref: /linux/Documentation/devicetree/bindings/soc/microchip/microchip,mpfs-irqmux.yaml (revision 31b43c079f9aa55754c20404a42bca9a49e01f60)
1*5f3575ccSConor Dooley# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*5f3575ccSConor Dooley%YAML 1.2
3*5f3575ccSConor Dooley---
4*5f3575ccSConor Dooley$id: http://devicetree.org/schemas/soc/microchip/microchip,mpfs-irqmux.yaml#
5*5f3575ccSConor Dooley$schema: http://devicetree.org/meta-schemas/core.yaml#
6*5f3575ccSConor Dooley
7*5f3575ccSConor Dooleytitle: Microchip Polarfire SoC GPIO Interrupt Mux
8*5f3575ccSConor Dooley
9*5f3575ccSConor Dooleymaintainers:
10*5f3575ccSConor Dooley  - Conor Dooley <conor.dooley@microchip.com>
11*5f3575ccSConor Dooley
12*5f3575ccSConor Dooleydescription: |
13*5f3575ccSConor Dooley  There are 3 GPIO controllers on this SoC, of which:
14*5f3575ccSConor Dooley  - GPIO controller 0 has 14 GPIOs
15*5f3575ccSConor Dooley  - GPIO controller 1 has 24 GPIOs
16*5f3575ccSConor Dooley  - GPIO controller 2 has 32 GPIOs
17*5f3575ccSConor Dooley
18*5f3575ccSConor Dooley  All GPIOs are capable of generating interrupts, for a total of 70.
19*5f3575ccSConor Dooley  There are only 41 IRQs available however, so a configurable mux is used to
20*5f3575ccSConor Dooley  ensure all GPIOs can be used for interrupt generation.
21*5f3575ccSConor Dooley  38 of the 41 interrupts are in what the documentation calls "direct mode",
22*5f3575ccSConor Dooley  as they provide an exclusive connection from a GPIO to the PLIC.
23*5f3575ccSConor Dooley  Lines 18 to 23 on GPIO controller 1 are always in "direct mode".
24*5f3575ccSConor Dooley  The 3 remaining interrupts are used to mux the interrupts which do not have
25*5f3575ccSConor Dooley  a exclusive connection, one for each GPIO controller.
26*5f3575ccSConor Dooley
27*5f3575ccSConor Dooleyproperties:
28*5f3575ccSConor Dooley  compatible:
29*5f3575ccSConor Dooley    const: microchip,mpfs-irqmux
30*5f3575ccSConor Dooley
31*5f3575ccSConor Dooley  reg:
32*5f3575ccSConor Dooley    maxItems: 1
33*5f3575ccSConor Dooley
34*5f3575ccSConor Dooley  "#address-cells":
35*5f3575ccSConor Dooley    const: 0
36*5f3575ccSConor Dooley
37*5f3575ccSConor Dooley  "#interrupt-cells":
38*5f3575ccSConor Dooley    const: 1
39*5f3575ccSConor Dooley
40*5f3575ccSConor Dooley  interrupt-map-mask:
41*5f3575ccSConor Dooley    items:
42*5f3575ccSConor Dooley      - const: 0x7f
43*5f3575ccSConor Dooley
44*5f3575ccSConor Dooley  interrupt-map:
45*5f3575ccSConor Dooley    description: |
46*5f3575ccSConor Dooley      Specifies the mapping from GPIO interrupt lines to plic interrupts.
47*5f3575ccSConor Dooley
48*5f3575ccSConor Dooley      The child interrupt number set in arrays items is computed using the
49*5f3575ccSConor Dooley      following formula:
50*5f3575ccSConor Dooley          gpio_bank * 32 + gpio_number
51*5f3575ccSConor Dooley      with:
52*5f3575ccSConor Dooley        - gpio_bank: The GPIO bank number
53*5f3575ccSConor Dooley            - 0 for GPIO0,
54*5f3575ccSConor Dooley            - 1 for GPIO1,
55*5f3575ccSConor Dooley            - 2 for GPIO2
56*5f3575ccSConor Dooley        - gpio_number: Number of the gpio in the bank (0..31)
57*5f3575ccSConor Dooley    maxItems: 70
58*5f3575ccSConor Dooley
59*5f3575ccSConor Dooleyrequired:
60*5f3575ccSConor Dooley  - compatible
61*5f3575ccSConor Dooley  - reg
62*5f3575ccSConor Dooley  - "#address-cells"
63*5f3575ccSConor Dooley  - "#interrupt-cells"
64*5f3575ccSConor Dooley  - interrupt-map-mask
65*5f3575ccSConor Dooley  - interrupt-map
66*5f3575ccSConor Dooley
67*5f3575ccSConor DooleyadditionalProperties: false
68*5f3575ccSConor Dooley
69*5f3575ccSConor Dooleyexamples:
70*5f3575ccSConor Dooley  - |
71*5f3575ccSConor Dooley    interrupt-controller@54 {
72*5f3575ccSConor Dooley        compatible = "microchip,mpfs-irqmux";
73*5f3575ccSConor Dooley        reg = <0x54 0x4>;
74*5f3575ccSConor Dooley        #address-cells = <0>;
75*5f3575ccSConor Dooley        #interrupt-cells = <1>;
76*5f3575ccSConor Dooley        interrupt-map-mask = <0x7f>;
77*5f3575ccSConor Dooley        interrupt-map = <0 &plic 13>, <1 &plic 14>, <2 &plic 15>,
78*5f3575ccSConor Dooley                        <3 &plic 16>, <4 &plic 17>, <5 &plic 18>,
79*5f3575ccSConor Dooley                        <6 &plic 19>, <7 &plic 20>, <8 &plic 21>,
80*5f3575ccSConor Dooley                        <9 &plic 22>, <10 &plic 23>, <11 &plic 24>,
81*5f3575ccSConor Dooley                        <12 &plic 25>, <13 &plic 26>,
82*5f3575ccSConor Dooley
83*5f3575ccSConor Dooley                        <32 &plic 27>, <33 &plic 28>, <34 &plic 29>,
84*5f3575ccSConor Dooley                        <35 &plic 30>, <36 &plic 31>, <37 &plic 32>,
85*5f3575ccSConor Dooley                        <38 &plic 33>, <39 &plic 34>, <40 &plic 35>,
86*5f3575ccSConor Dooley                        <41 &plic 36>, <42 &plic 37>, <43 &plic 38>,
87*5f3575ccSConor Dooley                        <44 &plic 39>, <45 &plic 40>, <46 &plic 41>,
88*5f3575ccSConor Dooley                        <47 &plic 42>, <48 &plic 43>, <49 &plic 44>,
89*5f3575ccSConor Dooley                        <50 &plic 45>, <51 &plic 46>, <52 &plic 47>,
90*5f3575ccSConor Dooley                        <53 &plic 48>, <54 &plic 49>, <55 &plic 50>,
91*5f3575ccSConor Dooley
92*5f3575ccSConor Dooley                        <64 &plic 53>, <65 &plic 53>, <66 &plic 53>,
93*5f3575ccSConor Dooley                        <67 &plic 53>, <68 &plic 53>, <69 &plic 53>,
94*5f3575ccSConor Dooley                        <70 &plic 53>, <71 &plic 53>, <72 &plic 53>,
95*5f3575ccSConor Dooley                        <73 &plic 53>, <74 &plic 53>, <75 &plic 53>,
96*5f3575ccSConor Dooley                        <76 &plic 53>, <77 &plic 53>, <78 &plic 53>,
97*5f3575ccSConor Dooley                        <79 &plic 53>, <80 &plic 53>, <81 &plic 53>,
98*5f3575ccSConor Dooley                        <82 &plic 53>, <83 &plic 53>, <84 &plic 53>,
99*5f3575ccSConor Dooley                        <85 &plic 53>, <86 &plic 53>, <87 &plic 53>,
100*5f3575ccSConor Dooley                        <88 &plic 53>, <89 &plic 53>, <90 &plic 53>,
101*5f3575ccSConor Dooley                        <91 &plic 53>, <92 &plic 53>, <93 &plic 53>,
102*5f3575ccSConor Dooley                        <94 &plic 53>, <95 &plic 53>;
103*5f3575ccSConor Dooley    };
104