Re: [PATCH 1/5] dt-bindings: virtio: mmio: Add support for device subnode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jul 13, 2021 at 4:50 AM Viresh Kumar <viresh.kumar@xxxxxxxxxx> wrote:
>
> Allow virtio,mmio nodes to contain device specific subnodes. Since each
> virtio,mmio node can represent a single virtio device, each virtio node
> is allowed to contain a maximum of one device specific subnode.

Doesn't sound like we need 2 nodes here. Just add I2C devices as child
nodes. You could add a more specific compatible string, but the
protocol is discoverable, so that shouldn't be necessary.

BTW, what's the usecase for these protocols? A standard interface to
firmware controlled I2C, GPIO, etc.?

> The device subnode must have the "reg" property, and its value must
> match the virtio device ID used by the virtio mmio node.
>
> A phandle to this device subnode can then be used by the users of the
> virtio device.
>
> Also add a symbolic link to uapi/linux/virtio_ids.h in order to use the
> definitions here.
>
> Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
> ---
>  .../devicetree/bindings/virtio/mmio.yaml      | 41 +++++++++++++++++++
>  include/dt-bindings/virtio/virtio_ids.h       |  1 +
>  2 files changed, 42 insertions(+)
>  create mode 120000 include/dt-bindings/virtio/virtio_ids.h
>
> diff --git a/Documentation/devicetree/bindings/virtio/mmio.yaml b/Documentation/devicetree/bindings/virtio/mmio.yaml
> index d46597028cf1..e5f9fe6ecb5e 100644
> --- a/Documentation/devicetree/bindings/virtio/mmio.yaml
> +++ b/Documentation/devicetree/bindings/virtio/mmio.yaml
> @@ -31,6 +31,31 @@ title: virtio memory mapped devices
>      description: Required for devices making accesses thru an IOMMU.
>      maxItems: 1
>
> +  "#address-cells":
> +    const: 1
> +    description:
> +      The cell is the device ID if a device subnode is used.
> +
> +  "#size-cells":
> +    const: 0
> +
> +patternProperties:
> +  '^[a-z0-9]+-virtio@[0-9]+$':
> +    type: object
> +    description: |
> +      Exactly one node describing the virtio device. The name of the node isn't
> +      significant but its phandle can be used to by an user of the virtio
> +      device.
> +
> +    properties:
> +      reg:
> +        description:
> +          Must contain the Virtio ID of the device.
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +
> +    required:
> +      - reg
> +
>  required:
>    - compatible
>    - reg
> @@ -57,4 +82,20 @@ additionalProperties: false
>          #iommu-cells = <1>;
>      };
>
> +  - |
> +    #include <dt-bindings/virtio/virtio_ids.h>
> +
> +    virtio@3200 {
> +        compatible = "virtio,mmio";
> +        reg = <0x3200 0x100>;
> +        interrupts = <43>;
> +
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        i2c-virtio@0 {
> +            reg = <VIRTIO_ID_I2C_ADAPTER>;
> +        };
> +    };
> +
>  ...
> diff --git a/include/dt-bindings/virtio/virtio_ids.h b/include/dt-bindings/virtio/virtio_ids.h
> new file mode 120000
> index 000000000000..6e59ba332216
> --- /dev/null
> +++ b/include/dt-bindings/virtio/virtio_ids.h
> @@ -0,0 +1 @@
> +../../uapi/linux/virtio_ids.h

This will break the devicetree-rebasing tree I think. DT files
shouldn't reference kernel files.

Rob



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux