From: Viresh Kumar <viresh.kumar@linaro.org> To: Arnd Bergmann <arnd@kernel.org> Cc: "Rob Herring" <robh+dt@kernel.org>, "Jason Wang" <jasowang@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, "Jean-Philippe Brucker" <jean-philippe@linaro.org>, "Vincent Guittot" <vincent.guittot@linaro.org>, "Bill Mills" <bill.mills@linaro.org>, "Alex Bennée" <alex.bennee@linaro.org>, "Enrico Weigelt, metux IT consult" <info@metux.net>, "Jie Deng" <jie.deng@intel.com>, DTML <devicetree@vger.kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "open list:DRM DRIVER FOR QEMU'S CIRRUS DEVICE" <virtualization@lists.linux-foundation.org> Subject: Re: [PATCH 1/5] dt-bindings: virtio: mmio: Add support for device subnode Date: Wed, 14 Jul 2021 17:10:08 +0530 [thread overview] Message-ID: <20210714114008.kohvyz57fvrd7syu@vireshk-i7> (raw) In-Reply-To: <20210714022630.d7vrazygmbooflcf@vireshk-i7> On 14-07-21, 07:56, Viresh Kumar wrote: > I agree that even if the device is discoverable at runtime, we should > still have some sort of stuff in DT to distinguish the devices, and > "virtio,deviceDID" sounds good enough for that, considering that we > already do it for USB, etc. > > And I am fine with both the ways, a new node or just using the parent > node. So whatever you guys decide is fine. I tried to write and see what it would look like after using the existing nodes for mmio/pci and here is what I got. (I couldn't find any virtio-pci bindings and so stayed away from adding any reference to it here). Does that look better ? -- viresh -------------------------8<------------------------- diff --git a/Documentation/devicetree/bindings/virtio/mmio.yaml b/Documentation/devicetree/bindings/virtio/mmio.yaml index d46597028cf1..324b810e51a5 100644 --- a/Documentation/devicetree/bindings/virtio/mmio.yaml +++ b/Documentation/devicetree/bindings/virtio/mmio.yaml @@ -15,7 +15,8 @@ title: virtio memory mapped devices properties: compatible: - const: virtio,mmio + contains: + const: virtio,mmio reg: maxItems: 1 @@ -36,7 +37,7 @@ title: virtio memory mapped devices - reg - interrupts -additionalProperties: false +additionalProperties: true examples: - | diff --git a/Documentation/devicetree/bindings/virtio/virtio-device.yaml b/Documentation/devicetree/bindings/virtio/virtio-device.yaml new file mode 100644 index 000000000000..9cfe090ea65f --- /dev/null +++ b/Documentation/devicetree/bindings/virtio/virtio-device.yaml @@ -0,0 +1,49 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/virtio/virtio-device.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Virtio device bindings + +maintainers: + - Viresh Kumar <viresh.kumar@linaro.org> + +description: + These bindings are applicable to virtio devices irrespective of the bus they + are bound to, like mmio or pci. + +allOf: + - $ref: /schemas/virtio/mmio.yaml# + +# We need a select here so we don't match all nodes with 'virtio,mmio' +select: + properties: + compatible: + contains: + pattern: '^virtio,[0-9]+$' + required: + - compatible + +properties: + compatible: + contains: + oneOf: + - items: + - const: virtio,mmio + - pattern: '^virtio,[0-9]+$' + +required: + - compatible + +additionalProperties: true + +examples: + - | + i2c: i2c-virtio@3000 { + compatible = "virtio,mmio", "virtio,34"; + reg = <0x3000 0x100>; + interrupts = <41>; + }; + +... diff --git a/Documentation/devicetree/bindings/gpio/gpio-virtio.yaml b/Documentation/devicetree/bindings/gpio/gpio-virtio.yaml new file mode 100644 index 000000000000..8115ba794557 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-virtio.yaml @@ -0,0 +1,63 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/gpio/gpio-virtio.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Virtio GPIO controller + +maintainers: + - Viresh Kumar <viresh.kumar@linaro.org> + +allOf: + - $ref: /schemas/gpio/gpio.yaml# + - $ref: /schemas/virtio/virtio-device.yaml# + +# We need a select here so we don't match all nodes with 'virtio,mmio' +select: + properties: + compatible: + contains: + enum: + - virtio,41 + required: + - compatible + +properties: + compatible: + oneOf: + - items: + - const: virtio,mmio + - const: virtio,41 + + gpio-controller: true + + "#gpio-cells": + const: 2 + + interrupt-controller: true + + "#interrupt-cells": + const: 2 + +required: + - compatible + - gpio-controller + - "#gpio-cells" + +unevaluatedProperties: false + +examples: + - | + gpio: gpio-virtio@3000 { + compatible = "virtio,mmio", "virtio,41"; + reg = <0x3000 0x100>; + interrupts = <41>; + + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + +... diff --git a/Documentation/devicetree/bindings/i2c/i2c-virtio.yaml b/Documentation/devicetree/bindings/i2c/i2c-virtio.yaml new file mode 100644 index 000000000000..43e9910920d6 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/i2c-virtio.yaml @@ -0,0 +1,54 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/i2c/i2c-virtio.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Virtio I2C Adapter + +maintainers: + - Viresh Kumar <viresh.kumar@linaro.org> + +allOf: + - $ref: /schemas/i2c/i2c-controller.yaml# + - $ref: /schemas/virtio/virtio-device.yaml# + +# We need a select here so we don't match all nodes with 'virtio,mmio' +select: + properties: + compatible: + contains: + enum: + - virtio,34 + required: + - compatible + +properties: + compatible: + oneOf: + - items: + - const: virtio,mmio + - const: virtio,34 + +required: + - compatible + +unevaluatedProperties: false + +examples: + - | + i2c: i2c-virtio@3000 { + compatible = "virtio,mmio", "virtio,34"; + reg = <0x3000 0x100>; + interrupts = <41>; + + #address-cells = <1>; + #size-cells = <0>; + + light-sensor@1c { + compatible = "dynaimage,al3320a"; + reg = <0x20>; + }; + }; + +...
WARNING: multiple messages have this Message-ID (diff)
From: Viresh Kumar <viresh.kumar@linaro.org> To: Arnd Bergmann <arnd@kernel.org> Cc: Jean-Philippe Brucker <jean-philippe@linaro.org>, Vincent Guittot <vincent.guittot@linaro.org>, "Michael S. Tsirkin" <mst@redhat.com>, "Enrico Weigelt, metux IT consult" <info@metux.net>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "open list:DRM DRIVER FOR QEMU'S CIRRUS DEVICE" <virtualization@lists.linux-foundation.org>, DTML <devicetree@vger.kernel.org>, Rob Herring <robh+dt@kernel.org>, Bill Mills <bill.mills@linaro.org> Subject: Re: [PATCH 1/5] dt-bindings: virtio: mmio: Add support for device subnode Date: Wed, 14 Jul 2021 17:10:08 +0530 [thread overview] Message-ID: <20210714114008.kohvyz57fvrd7syu@vireshk-i7> (raw) In-Reply-To: <20210714022630.d7vrazygmbooflcf@vireshk-i7> On 14-07-21, 07:56, Viresh Kumar wrote: > I agree that even if the device is discoverable at runtime, we should > still have some sort of stuff in DT to distinguish the devices, and > "virtio,deviceDID" sounds good enough for that, considering that we > already do it for USB, etc. > > And I am fine with both the ways, a new node or just using the parent > node. So whatever you guys decide is fine. I tried to write and see what it would look like after using the existing nodes for mmio/pci and here is what I got. (I couldn't find any virtio-pci bindings and so stayed away from adding any reference to it here). Does that look better ? -- viresh -------------------------8<------------------------- diff --git a/Documentation/devicetree/bindings/virtio/mmio.yaml b/Documentation/devicetree/bindings/virtio/mmio.yaml index d46597028cf1..324b810e51a5 100644 --- a/Documentation/devicetree/bindings/virtio/mmio.yaml +++ b/Documentation/devicetree/bindings/virtio/mmio.yaml @@ -15,7 +15,8 @@ title: virtio memory mapped devices properties: compatible: - const: virtio,mmio + contains: + const: virtio,mmio reg: maxItems: 1 @@ -36,7 +37,7 @@ title: virtio memory mapped devices - reg - interrupts -additionalProperties: false +additionalProperties: true examples: - | diff --git a/Documentation/devicetree/bindings/virtio/virtio-device.yaml b/Documentation/devicetree/bindings/virtio/virtio-device.yaml new file mode 100644 index 000000000000..9cfe090ea65f --- /dev/null +++ b/Documentation/devicetree/bindings/virtio/virtio-device.yaml @@ -0,0 +1,49 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/virtio/virtio-device.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Virtio device bindings + +maintainers: + - Viresh Kumar <viresh.kumar@linaro.org> + +description: + These bindings are applicable to virtio devices irrespective of the bus they + are bound to, like mmio or pci. + +allOf: + - $ref: /schemas/virtio/mmio.yaml# + +# We need a select here so we don't match all nodes with 'virtio,mmio' +select: + properties: + compatible: + contains: + pattern: '^virtio,[0-9]+$' + required: + - compatible + +properties: + compatible: + contains: + oneOf: + - items: + - const: virtio,mmio + - pattern: '^virtio,[0-9]+$' + +required: + - compatible + +additionalProperties: true + +examples: + - | + i2c: i2c-virtio@3000 { + compatible = "virtio,mmio", "virtio,34"; + reg = <0x3000 0x100>; + interrupts = <41>; + }; + +... diff --git a/Documentation/devicetree/bindings/gpio/gpio-virtio.yaml b/Documentation/devicetree/bindings/gpio/gpio-virtio.yaml new file mode 100644 index 000000000000..8115ba794557 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/gpio-virtio.yaml @@ -0,0 +1,63 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/gpio/gpio-virtio.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Virtio GPIO controller + +maintainers: + - Viresh Kumar <viresh.kumar@linaro.org> + +allOf: + - $ref: /schemas/gpio/gpio.yaml# + - $ref: /schemas/virtio/virtio-device.yaml# + +# We need a select here so we don't match all nodes with 'virtio,mmio' +select: + properties: + compatible: + contains: + enum: + - virtio,41 + required: + - compatible + +properties: + compatible: + oneOf: + - items: + - const: virtio,mmio + - const: virtio,41 + + gpio-controller: true + + "#gpio-cells": + const: 2 + + interrupt-controller: true + + "#interrupt-cells": + const: 2 + +required: + - compatible + - gpio-controller + - "#gpio-cells" + +unevaluatedProperties: false + +examples: + - | + gpio: gpio-virtio@3000 { + compatible = "virtio,mmio", "virtio,41"; + reg = <0x3000 0x100>; + interrupts = <41>; + + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + }; + +... diff --git a/Documentation/devicetree/bindings/i2c/i2c-virtio.yaml b/Documentation/devicetree/bindings/i2c/i2c-virtio.yaml new file mode 100644 index 000000000000..43e9910920d6 --- /dev/null +++ b/Documentation/devicetree/bindings/i2c/i2c-virtio.yaml @@ -0,0 +1,54 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/i2c/i2c-virtio.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Virtio I2C Adapter + +maintainers: + - Viresh Kumar <viresh.kumar@linaro.org> + +allOf: + - $ref: /schemas/i2c/i2c-controller.yaml# + - $ref: /schemas/virtio/virtio-device.yaml# + +# We need a select here so we don't match all nodes with 'virtio,mmio' +select: + properties: + compatible: + contains: + enum: + - virtio,34 + required: + - compatible + +properties: + compatible: + oneOf: + - items: + - const: virtio,mmio + - const: virtio,34 + +required: + - compatible + +unevaluatedProperties: false + +examples: + - | + i2c: i2c-virtio@3000 { + compatible = "virtio,mmio", "virtio,34"; + reg = <0x3000 0x100>; + interrupts = <41>; + + #address-cells = <1>; + #size-cells = <0>; + + light-sensor@1c { + compatible = "dynaimage,al3320a"; + reg = <0x20>; + }; + }; + +... _______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization
next prev parent reply other threads:[~2021-07-14 11:40 UTC|newest] Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-07-13 10:50 [PATCH 0/5] virtio: Parse virtio-device nodes from DT Viresh Kumar 2021-07-13 10:50 ` Viresh Kumar 2021-07-13 10:50 ` [PATCH 1/5] dt-bindings: virtio: mmio: Add support for device subnode Viresh Kumar 2021-07-13 10:50 ` Viresh Kumar 2021-07-13 12:32 ` Arnd Bergmann 2021-07-14 2:28 ` Viresh Kumar 2021-07-14 2:28 ` Viresh Kumar 2021-07-13 14:43 ` Rob Herring 2021-07-13 15:19 ` Viresh Kumar 2021-07-13 15:19 ` Viresh Kumar 2021-07-13 19:34 ` Rob Herring 2021-07-13 20:34 ` Arnd Bergmann 2021-07-14 2:26 ` Viresh Kumar 2021-07-14 2:26 ` Viresh Kumar 2021-07-14 11:40 ` Viresh Kumar [this message] 2021-07-14 11:40 ` Viresh Kumar 2021-07-14 8:20 ` Jean-Philippe Brucker 2021-07-14 8:20 ` Jean-Philippe Brucker 2021-07-14 15:43 ` Rob Herring 2021-07-14 21:07 ` Arnd Bergmann 2021-07-19 10:33 ` Viresh Kumar 2021-07-19 10:33 ` Viresh Kumar 2021-07-19 12:04 ` Arnd Bergmann 2021-07-14 2:19 ` Viresh Kumar 2021-07-14 2:19 ` Viresh Kumar 2021-07-13 10:50 ` [PATCH 2/5] virtio_mmio: Bind virtio device to device-tree node Viresh Kumar 2021-07-13 10:50 ` Viresh Kumar 2021-07-13 12:26 ` Arnd Bergmann 2021-07-14 3:11 ` Viresh Kumar 2021-07-14 3:11 ` Viresh Kumar 2021-07-13 10:50 ` [PATCH 3/5] dt-bindings: i2c: Add bindings for i2c-virtio Viresh Kumar 2021-07-13 10:50 ` Viresh Kumar 2021-07-13 14:03 ` Rob Herring 2021-07-13 14:03 ` Rob Herring 2021-07-13 10:50 ` [PATCH 4/5] i2c: virtio: Update i2c-adapter's of_node Viresh Kumar 2021-07-13 10:50 ` Viresh Kumar 2021-07-13 10:50 ` [PATCH 5/5] dt-bindings: gpio: Add bindings for gpio-virtio Viresh Kumar 2021-07-13 10:50 ` Viresh Kumar 2021-07-13 14:03 ` Rob Herring 2021-07-13 14:03 ` Rob Herring 2021-07-13 14:46 ` Rob Herring
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210714114008.kohvyz57fvrd7syu@vireshk-i7 \ --to=viresh.kumar@linaro.org \ --cc=alex.bennee@linaro.org \ --cc=arnd@kernel.org \ --cc=bill.mills@linaro.org \ --cc=devicetree@vger.kernel.org \ --cc=info@metux.net \ --cc=jasowang@redhat.com \ --cc=jean-philippe@linaro.org \ --cc=jie.deng@intel.com \ --cc=linux-kernel@vger.kernel.org \ --cc=mst@redhat.com \ --cc=robh+dt@kernel.org \ --cc=vincent.guittot@linaro.org \ --cc=virtualization@lists.linux-foundation.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.