Messages in this thread |  | | From | Viresh Kumar <> | Subject | [PATCH V3 0/5] virtio: Add virtio-device bindings | Date | Mon, 26 Jul 2021 10:21:40 +0530 |
| |
Hi,
Currently the DT only provides support for following node types for virtio-mmio nodes:
virtio_mmio@a000000 { dma-coherent; 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.
Pending: - 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.
V2/2.1->V3: - 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().
V1->V2: - 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
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
-- 2.31.1.272.g89b43f80a514
|  |