xref: /freebsd/sys/contrib/device-tree/Bindings/mailbox/google,gs101-mbox.yaml (revision 2846c90520eb4cc74e24d586a0ea0f4a0006bc73)
1*2846c905SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*2846c905SEmmanuel Vadot# Copyright 2024 Linaro Ltd.
3*2846c905SEmmanuel Vadot%YAML 1.2
4*2846c905SEmmanuel Vadot---
5*2846c905SEmmanuel Vadot$id: http://devicetree.org/schemas/mailbox/google,gs101-mbox.yaml#
6*2846c905SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
7*2846c905SEmmanuel Vadot
8*2846c905SEmmanuel Vadottitle: Samsung Exynos Mailbox Controller
9*2846c905SEmmanuel Vadot
10*2846c905SEmmanuel Vadotmaintainers:
11*2846c905SEmmanuel Vadot  - Tudor Ambarus <tudor.ambarus@linaro.org>
12*2846c905SEmmanuel Vadot
13*2846c905SEmmanuel Vadotdescription:
14*2846c905SEmmanuel Vadot  The Samsung Exynos mailbox controller, used on Google GS101 SoC, has 16 flag
15*2846c905SEmmanuel Vadot  bits for hardware interrupt generation and a shared register for passing
16*2846c905SEmmanuel Vadot  mailbox messages. When the controller is used by the ACPM interface
17*2846c905SEmmanuel Vadot  the shared register is ignored and the mailbox controller acts as a doorbell.
18*2846c905SEmmanuel Vadot  The controller just raises the interrupt to the firmware after the
19*2846c905SEmmanuel Vadot  ACPM interface has written the message to SRAM.
20*2846c905SEmmanuel Vadot
21*2846c905SEmmanuel Vadotproperties:
22*2846c905SEmmanuel Vadot  compatible:
23*2846c905SEmmanuel Vadot    const: google,gs101-mbox
24*2846c905SEmmanuel Vadot
25*2846c905SEmmanuel Vadot  reg:
26*2846c905SEmmanuel Vadot    maxItems: 1
27*2846c905SEmmanuel Vadot
28*2846c905SEmmanuel Vadot  clocks:
29*2846c905SEmmanuel Vadot    maxItems: 1
30*2846c905SEmmanuel Vadot
31*2846c905SEmmanuel Vadot  clock-names:
32*2846c905SEmmanuel Vadot    items:
33*2846c905SEmmanuel Vadot      - const: pclk
34*2846c905SEmmanuel Vadot
35*2846c905SEmmanuel Vadot  interrupts:
36*2846c905SEmmanuel Vadot    description: IRQ line for the RX mailbox.
37*2846c905SEmmanuel Vadot    maxItems: 1
38*2846c905SEmmanuel Vadot
39*2846c905SEmmanuel Vadot  '#mbox-cells':
40*2846c905SEmmanuel Vadot    const: 0
41*2846c905SEmmanuel Vadot
42*2846c905SEmmanuel Vadotrequired:
43*2846c905SEmmanuel Vadot  - compatible
44*2846c905SEmmanuel Vadot  - reg
45*2846c905SEmmanuel Vadot  - clocks
46*2846c905SEmmanuel Vadot  - clock-names
47*2846c905SEmmanuel Vadot  - interrupts
48*2846c905SEmmanuel Vadot  - '#mbox-cells'
49*2846c905SEmmanuel Vadot
50*2846c905SEmmanuel VadotadditionalProperties: false
51*2846c905SEmmanuel Vadot
52*2846c905SEmmanuel Vadotexamples:
53*2846c905SEmmanuel Vadot  - |
54*2846c905SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
55*2846c905SEmmanuel Vadot    #include <dt-bindings/clock/google,gs101.h>
56*2846c905SEmmanuel Vadot
57*2846c905SEmmanuel Vadot    soc {
58*2846c905SEmmanuel Vadot        #address-cells = <1>;
59*2846c905SEmmanuel Vadot        #size-cells = <1>;
60*2846c905SEmmanuel Vadot
61*2846c905SEmmanuel Vadot        ap2apm_mailbox: mailbox@17610000 {
62*2846c905SEmmanuel Vadot            compatible = "google,gs101-mbox";
63*2846c905SEmmanuel Vadot            reg = <0x17610000 0x1000>;
64*2846c905SEmmanuel Vadot            clocks = <&cmu_apm CLK_GOUT_APM_MAILBOX_APM_AP_PCLK>;
65*2846c905SEmmanuel Vadot            clock-names = "pclk";
66*2846c905SEmmanuel Vadot            interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH 0>;
67*2846c905SEmmanuel Vadot            #mbox-cells = <0>;
68*2846c905SEmmanuel Vadot        };
69*2846c905SEmmanuel Vadot    };
70