dt-bindings: virtio: Convert virtio-mmio to DT schema

Convert the virtio-mmio binding to DT schema format.

Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Jason Wang <jasowang@redhat.com>
Cc: Jean-Philippe Brucker <jean-philippe@linaro.org>
Cc: virtualization@lists.linux-foundation.org
Acked-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Signed-off-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20210607193928.3092186-1-robh@kernel.org/
This commit is contained in:
Rob Herring 2021-06-07 09:48:11 -05:00
parent bb718cad0a
commit 13542a69b9
2 changed files with 60 additions and 47 deletions

View file

@ -1,47 +0,0 @@
* virtio memory mapped device
See https://ozlabs.org/~rusty/virtio-spec/ for more details.
Required properties:
- compatible: "virtio,mmio" compatibility string
- reg: control registers base address and size including configuration space
- interrupts: interrupt generated by the device
Required properties for virtio-iommu:
- #iommu-cells: When the node corresponds to a virtio-iommu device, it is
linked to DMA masters using the "iommus" or "iommu-map"
properties [1][2]. #iommu-cells specifies the size of the
"iommus" property. For virtio-iommu #iommu-cells must be
1, each cell describing a single endpoint ID.
Optional properties:
- iommus: If the device accesses memory through an IOMMU, it should
have an "iommus" property [1]. Since virtio-iommu itself
does not access memory through an IOMMU, the "virtio,mmio"
node cannot have both an "#iommu-cells" and an "iommus"
property.
Example:
virtio_block@3000 {
compatible = "virtio,mmio";
reg = <0x3000 0x100>;
interrupts = <41>;
/* Device has endpoint ID 23 */
iommus = <&viommu 23>
}
viommu: iommu@3100 {
compatible = "virtio,mmio";
reg = <0x3100 0x100>;
interrupts = <42>;
#iommu-cells = <1>
}
[1] Documentation/devicetree/bindings/iommu/iommu.txt
[2] Documentation/devicetree/bindings/pci/pci-iommu.txt

View file

@ -0,0 +1,60 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/virtio/mmio.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: virtio memory mapped devices
maintainers:
- Jean-Philippe Brucker <jean-philippe@linaro.org>
description:
See https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=virtio for
more details.
properties:
compatible:
const: virtio,mmio
reg:
maxItems: 1
interrupts:
maxItems: 1
'#iommu-cells':
description: Required when the node corresponds to a virtio-iommu device.
const: 1
iommus:
description: Required for devices making accesses thru an IOMMU.
maxItems: 1
required:
- compatible
- reg
- interrupts
additionalProperties: false
examples:
- |
virtio@3000 {
compatible = "virtio,mmio";
reg = <0x3000 0x100>;
interrupts = <41>;
/* Device has endpoint ID 23 */
iommus = <&viommu 23>;
};
viommu: iommu@3100 {
compatible = "virtio,mmio";
reg = <0x3100 0x100>;
interrupts = <42>;
#iommu-cells = <1>;
};
...