[lkml]   [2021]   [Jul]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subject[PATCH V3 0/5] virtio: Add virtio-device bindings

Currently the DT only provides support for following node types for virtio-mmio

virtio_mmio@a000000 {
interrupts = <0x00 0x10 0x01>;
reg = <0x00 0xa000000 0x00 0x200>;
compatible = "virtio,mmio";

Here, each virtio-mmio corresponds to a virtio-device. But there is no way for
other users in the DT to show their dependency on virtio devices.

This patchset provides that support.

The first patch adds virtio-device bindings to allow for device sub-nodes to be
present and the second patch updates the virtio core to update the of_node.

Other patches add bindings for i2c and gpio devices.

Tested on x86 with qemu for arm64.

- Arnd suggested that "virtio,deviceXX" may be a better compatible string, while
I used "virtio,XX" to match what PCI and USB do currently. I didn't change it
yet to hear Rob's view on the same before making the change, in case he has
any preferences.

- Added review-tags from Arnd and Wolfram.
- Only the 5th patch changed otherwise:
- Use of_device_is_compatible() instead of keeping a list of devices.
- Use snprintf (with BUG_ON on return value) to create the compatible string,
whose length is fixed using "virtio,XXXXXXXX".
- Use dev_of_node().

- The changes (both binding and code) are made at virtio level, instead of
virtio-mmio. This allows the same to be used by all device types, irrespective
of the transport mechanism.

- Dropped the reg property and used compatible in the form "virtio,<DID>".

- Dropped dt-bindings/virtio/virtio_ids.h.

- Add a patch to sync virtio-ids from spec, required for the last patch.


Viresh Kumar (5):
dt-bindings: virtio: Add binding for virtio devices
dt-bindings: i2c: Add bindings for i2c-virtio
dt-bindings: gpio: Add bindings for gpio-virtio
uapi: virtio_ids: Sync ids with specification
virtio: Bind virtio device to device-tree node

.../devicetree/bindings/gpio/gpio-virtio.yaml | 60 +++++++++++++++++++
.../devicetree/bindings/i2c/i2c-virtio.yaml | 51 ++++++++++++++++
.../devicetree/bindings/virtio/mmio.yaml | 2 +-
.../bindings/virtio/virtio-device.yaml | 47 +++++++++++++++
drivers/virtio/virtio.c | 57 +++++++++++++++++-
include/uapi/linux/virtio_ids.h | 12 ++++
6 files changed, 225 insertions(+), 4 deletions(-)
create mode 100644 Documentation/devicetree/bindings/gpio/gpio-virtio.yaml
create mode 100644 Documentation/devicetree/bindings/i2c/i2c-virtio.yaml
create mode 100644 Documentation/devicetree/bindings/virtio/virtio-device.yaml


 \ /
  Last update: 2021-07-26 06:52    [W:0.135 / U:0.368 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site