xref: /linux/Documentation/devicetree/bindings/mailbox/google,gs101-mbox.yaml (revision 8bfab832ad6905ba70e69bad87a78f6d90cce64a)
156cf1209STudor Ambarus# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
256cf1209STudor Ambarus# Copyright 2024 Linaro Ltd.
356cf1209STudor Ambarus%YAML 1.2
456cf1209STudor Ambarus---
556cf1209STudor Ambarus$id: http://devicetree.org/schemas/mailbox/google,gs101-mbox.yaml#
656cf1209STudor Ambarus$schema: http://devicetree.org/meta-schemas/core.yaml#
756cf1209STudor Ambarus
856cf1209STudor Ambarustitle: Samsung Exynos Mailbox Controller
956cf1209STudor Ambarus
1056cf1209STudor Ambarusmaintainers:
1156cf1209STudor Ambarus  - Tudor Ambarus <tudor.ambarus@linaro.org>
1256cf1209STudor Ambarus
1356cf1209STudor Ambarusdescription:
1456cf1209STudor Ambarus  The Samsung Exynos mailbox controller, used on Google GS101 SoC, has 16 flag
1556cf1209STudor Ambarus  bits for hardware interrupt generation and a shared register for passing
1656cf1209STudor Ambarus  mailbox messages. When the controller is used by the ACPM interface
1756cf1209STudor Ambarus  the shared register is ignored and the mailbox controller acts as a doorbell.
1856cf1209STudor Ambarus  The controller just raises the interrupt to the firmware after the
1956cf1209STudor Ambarus  ACPM interface has written the message to SRAM.
2056cf1209STudor Ambarus
2156cf1209STudor Ambarusproperties:
2256cf1209STudor Ambarus  compatible:
23*fd8dc36aSAlexey Klimov    enum:
24*fd8dc36aSAlexey Klimov      - google,gs101-mbox
25*fd8dc36aSAlexey Klimov      - samsung,exynos850-mbox
2656cf1209STudor Ambarus
2756cf1209STudor Ambarus  reg:
2856cf1209STudor Ambarus    maxItems: 1
2956cf1209STudor Ambarus
3056cf1209STudor Ambarus  clocks:
3156cf1209STudor Ambarus    maxItems: 1
3256cf1209STudor Ambarus
3356cf1209STudor Ambarus  clock-names:
3456cf1209STudor Ambarus    items:
3556cf1209STudor Ambarus      - const: pclk
3656cf1209STudor Ambarus
3756cf1209STudor Ambarus  interrupts:
3856cf1209STudor Ambarus    description: IRQ line for the RX mailbox.
3956cf1209STudor Ambarus    maxItems: 1
4056cf1209STudor Ambarus
4156cf1209STudor Ambarus  '#mbox-cells':
4256cf1209STudor Ambarus    const: 0
4356cf1209STudor Ambarus
4456cf1209STudor Ambarusrequired:
4556cf1209STudor Ambarus  - compatible
4656cf1209STudor Ambarus  - reg
4756cf1209STudor Ambarus  - clocks
4856cf1209STudor Ambarus  - clock-names
4956cf1209STudor Ambarus  - interrupts
5056cf1209STudor Ambarus  - '#mbox-cells'
5156cf1209STudor Ambarus
5256cf1209STudor AmbarusadditionalProperties: false
5356cf1209STudor Ambarus
5456cf1209STudor Ambarusexamples:
5556cf1209STudor Ambarus  - |
5656cf1209STudor Ambarus    #include <dt-bindings/interrupt-controller/arm-gic.h>
5756cf1209STudor Ambarus    #include <dt-bindings/clock/google,gs101.h>
5856cf1209STudor Ambarus
5956cf1209STudor Ambarus    soc {
6056cf1209STudor Ambarus        #address-cells = <1>;
6156cf1209STudor Ambarus        #size-cells = <1>;
6256cf1209STudor Ambarus
6356cf1209STudor Ambarus        ap2apm_mailbox: mailbox@17610000 {
6456cf1209STudor Ambarus            compatible = "google,gs101-mbox";
6556cf1209STudor Ambarus            reg = <0x17610000 0x1000>;
6656cf1209STudor Ambarus            clocks = <&cmu_apm CLK_GOUT_APM_MAILBOX_APM_AP_PCLK>;
6756cf1209STudor Ambarus            clock-names = "pclk";
6856cf1209STudor Ambarus            interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH 0>;
6956cf1209STudor Ambarus            #mbox-cells = <0>;
7056cf1209STudor Ambarus        };
7156cf1209STudor Ambarus    };
72