lkml.org 
[lkml]   [2021]   [Jul]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Subject[PATCH V3 0/5] virtio: Add virtio-device bindings
    Date
    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

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