xref: /linux/Documentation/devicetree/bindings/clock/riscv,rpmi-clock.yaml (revision 4f38da1f027ea2c9f01bb71daa7a299c191b6940)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/clock/riscv,rpmi-clock.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: RISC-V RPMI clock service group based clock controller
8
9maintainers:
10  - Anup Patel <anup@brainfault.org>
11
12description: |
13  The RISC-V Platform Management Interface (RPMI) [1] defines a
14  messaging protocol which is modular and extensible. The supervisor
15  software can send/receive RPMI messages via SBI MPXY extension [2]
16  or some dedicated supervisor-mode RPMI transport.
17
18  The RPMI specification [1] defines clock service group for accessing
19  system clocks managed by a platform microcontroller. The supervisor
20  software can access RPMI clock service group via SBI MPXY channel or
21  some dedicated supervisor-mode RPMI transport.
22
23  ===========================================
24  References
25  ===========================================
26
27  [1] RISC-V Platform Management Interface (RPMI) v1.0 (or higher)
28      https://github.com/riscv-non-isa/riscv-rpmi/releases
29
30  [2] RISC-V Supervisor Binary Interface (SBI) v3.0 (or higher)
31      https://github.com/riscv-non-isa/riscv-sbi-doc/releases
32
33properties:
34  compatible:
35    description:
36      Intended for use by the supervisor software.
37    const: riscv,rpmi-clock
38
39  mboxes:
40    maxItems: 1
41    description:
42      Mailbox channel of the underlying RPMI transport or SBI message proxy channel.
43
44  "#clock-cells":
45    const: 1
46    description:
47      Platform specific CLOCK_ID as defined by the RISC-V Platform Management
48      Interface (RPMI) specification.
49
50required:
51  - compatible
52  - mboxes
53  - "#clock-cells"
54
55additionalProperties: false
56
57examples:
58  - |
59    clock-controller {
60        compatible = "riscv,rpmi-clock";
61        mboxes = <&mpxy_mbox 0x1000 0x0>;
62        #clock-cells = <1>;
63    };
64...
65