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