1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mailbox/st,stm32-ipcc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: STMicroelectronics STM32 IPC controller
8
9description:
10  The IPCC block provides a non blocking signaling mechanism to post and
11  retrieve messages in an atomic way between two processors.
12  It provides the signaling for N bidirectionnal channels. The number of
13  channels (N) can be read from a dedicated register.
14
15maintainers:
16  - Fabien Dessenne <fabien.dessenne@foss.st.com>
17  - Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
18
19properties:
20  compatible:
21    const: st,stm32mp1-ipcc
22
23  reg:
24    maxItems: 1
25
26  clocks:
27    maxItems: 1
28
29  interrupts:
30    items:
31      - description: rx channel occupied
32      - description: tx channel free
33
34  interrupt-names:
35    items:
36      - const: rx
37      - const: tx
38
39  wakeup-source: true
40
41  "#mbox-cells":
42    const: 1
43
44  st,proc-id:
45    description: Processor id using the mailbox (0 or 1)
46    $ref: /schemas/types.yaml#/definitions/uint32
47    enum: [0, 1]
48
49required:
50  - compatible
51  - reg
52  - st,proc-id
53  - clocks
54  - interrupt-names
55  - "#mbox-cells"
56  - interrupts
57
58additionalProperties: false
59
60examples:
61  - |
62    #include <dt-bindings/interrupt-controller/arm-gic.h>
63    #include <dt-bindings/clock/stm32mp1-clks.h>
64    ipcc: mailbox@4c001000 {
65      compatible = "st,stm32mp1-ipcc";
66      #mbox-cells = <1>;
67      reg = <0x4c001000 0x400>;
68      st,proc-id = <0>;
69      interrupts-extended = <&exti 61 1>,
70                            <&intc GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
71      interrupt-names = "rx", "tx";
72      clocks = <&rcc_clk IPCC>;
73      wakeup-source;
74    };
75
76...
77