18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: "http://devicetree.org/schemas/mailbox/st,stm32-ipcc.yaml#"
58c2ecf20Sopenharmony_ci$schema: "http://devicetree.org/meta-schemas/core.yaml#"
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: STMicroelectronics STM32 IPC controller bindings
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cidescription:
108c2ecf20Sopenharmony_ci  The IPCC block provides a non blocking signaling mechanism to post and
118c2ecf20Sopenharmony_ci  retrieve messages in an atomic way between two processors.
128c2ecf20Sopenharmony_ci  It provides the signaling for N bidirectionnal channels. The number of
138c2ecf20Sopenharmony_ci  channels (N) can be read from a dedicated register.
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_cimaintainers:
168c2ecf20Sopenharmony_ci  - Fabien Dessenne <fabien.dessenne@st.com>
178c2ecf20Sopenharmony_ci  - Arnaud Pouliquen <arnaud.pouliquen@st.com>
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ciproperties:
208c2ecf20Sopenharmony_ci  compatible:
218c2ecf20Sopenharmony_ci    const: st,stm32mp1-ipcc
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci  reg:
248c2ecf20Sopenharmony_ci    maxItems: 1
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci  clocks:
278c2ecf20Sopenharmony_ci    maxItems: 1
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ci  interrupts:
308c2ecf20Sopenharmony_ci    items:
318c2ecf20Sopenharmony_ci      - description: rx channel occupied
328c2ecf20Sopenharmony_ci      - description: tx channel free
338c2ecf20Sopenharmony_ci      - description: wakeup source
348c2ecf20Sopenharmony_ci    minItems: 2
358c2ecf20Sopenharmony_ci    maxItems: 3
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci  interrupt-names:
388c2ecf20Sopenharmony_ci    items:
398c2ecf20Sopenharmony_ci      - const: rx
408c2ecf20Sopenharmony_ci      - const: tx
418c2ecf20Sopenharmony_ci      - const: wakeup
428c2ecf20Sopenharmony_ci    minItems: 2
438c2ecf20Sopenharmony_ci    maxItems: 3
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci  wakeup-source: true
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ci  "#mbox-cells":
488c2ecf20Sopenharmony_ci    const: 1
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci  st,proc-id:
518c2ecf20Sopenharmony_ci    description: Processor id using the mailbox (0 or 1)
528c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
538c2ecf20Sopenharmony_ci    enum: [0, 1]
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_cirequired:
568c2ecf20Sopenharmony_ci  - compatible
578c2ecf20Sopenharmony_ci  - reg
588c2ecf20Sopenharmony_ci  - st,proc-id
598c2ecf20Sopenharmony_ci  - clocks
608c2ecf20Sopenharmony_ci  - interrupt-names
618c2ecf20Sopenharmony_ci  - "#mbox-cells"
628c2ecf20Sopenharmony_ci  - interrupts
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ciadditionalProperties: false
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ciexamples:
678c2ecf20Sopenharmony_ci  - |
688c2ecf20Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
698c2ecf20Sopenharmony_ci    #include <dt-bindings/clock/stm32mp1-clks.h>
708c2ecf20Sopenharmony_ci    ipcc: mailbox@4c001000 {
718c2ecf20Sopenharmony_ci      compatible = "st,stm32mp1-ipcc";
728c2ecf20Sopenharmony_ci      #mbox-cells = <1>;
738c2ecf20Sopenharmony_ci      reg = <0x4c001000 0x400>;
748c2ecf20Sopenharmony_ci      st,proc-id = <0>;
758c2ecf20Sopenharmony_ci      interrupts-extended = <&intc GIC_SPI 100 IRQ_TYPE_NONE>,
768c2ecf20Sopenharmony_ci      		      <&intc GIC_SPI 101 IRQ_TYPE_NONE>,
778c2ecf20Sopenharmony_ci      		      <&aiec 62 1>;
788c2ecf20Sopenharmony_ci      interrupt-names = "rx", "tx", "wakeup";
798c2ecf20Sopenharmony_ci      clocks = <&rcc_clk IPCC>;
808c2ecf20Sopenharmony_ci      wakeup-source;
818c2ecf20Sopenharmony_ci    };
828c2ecf20Sopenharmony_ci
838c2ecf20Sopenharmony_ci...
84