xref: /freebsd/sys/contrib/device-tree/Bindings/bus/microsoft,vmbus.yaml (revision ae5de77ed78ae54d86cead5604869212e8008e6b)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/bus/microsoft,vmbus.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Microsoft Hyper-V VMBus
8
9maintainers:
10  - Saurabh Sengar <ssengar@linux.microsoft.com>
11
12description:
13  VMBus is a software bus that implements the protocols for communication
14  between the root or host OS and guest OS'es (virtual machines).
15
16properties:
17  compatible:
18    const: microsoft,vmbus
19
20  ranges: true
21
22  '#address-cells':
23    const: 2
24
25  '#size-cells':
26    const: 1
27
28  dma-coherent: true
29
30  interrupts:
31    maxItems: 1
32    description: Interrupt is used to report a message from the host.
33
34required:
35  - compatible
36  - ranges
37  - interrupts
38  - '#address-cells'
39  - '#size-cells'
40
41additionalProperties: false
42
43examples:
44  - |
45    #include <dt-bindings/interrupt-controller/irq.h>
46    #include <dt-bindings/interrupt-controller/arm-gic.h>
47    soc {
48        #address-cells = <2>;
49        #size-cells = <1>;
50        bus {
51            compatible = "simple-bus";
52            #address-cells = <2>;
53            #size-cells = <1>;
54            ranges;
55
56            vmbus@ff0000000 {
57                compatible = "microsoft,vmbus";
58                #address-cells = <2>;
59                #size-cells = <1>;
60                ranges = <0x0f 0xf0000000 0x0f 0xf0000000 0x10000000>;
61                dma-coherent;
62                interrupt-parent = <&gic>;
63                interrupts = <GIC_PPI 2 IRQ_TYPE_EDGE_RISING>;
64            };
65        };
66    };
67