* [PATCH 0/5] virtio: Parse virtio-device nodes from DT
@ 2021-07-13 10:50 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 ` [PATCH 4/5] i2c: virtio: Update i2c-adapter's of_node Viresh Kumar
0 siblings, 2 replies; 4+ messages in thread
From: Viresh Kumar @ 2021-07-13 10:50 UTC (permalink / raw)
To: Jason Wang, Michael S. Tsirkin, Rob Herring, Arnd Bergmann,
Jean-Philippe Brucker, Bartosz Golaszewski, Linus Walleij,
Viresh Kumar
Cc: Vincent Guittot, Bill Mills, Alex Bennée,
Enrico Weigelt, metux IT consult, Jie Deng, devicetree,
linux-kernel, virtualization, linux-gpio, linux-i2c, Wolfram Sang
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";
};
And 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 update virtio,mmio bindings to allow for device subnodes to be
present and the second patch updates the virtio-mmio driver to update the
of_node.
Other patches add bindings for i2c and gpio virtio devices (they have some
dependencies, mentioned in the patches).
Tested on x86 with qemu for arm64.
--
Viresh
Viresh Kumar (5):
dt-bindings: virtio: mmio: Add support for device subnode
virtio_mmio: Bind virtio device to device-tree node
dt-bindings: i2c: Add bindings for i2c-virtio
i2c: virtio: Update i2c-adapter's of_node
dt-bindings: gpio: Add bindings for gpio-virtio
.../devicetree/bindings/gpio/gpio-virtio.yaml | 67 +++++++++++++++++++
.../devicetree/bindings/i2c/i2c-virtio.yaml | 59 ++++++++++++++++
.../devicetree/bindings/virtio/mmio.yaml | 41 ++++++++++++
drivers/i2c/busses/i2c-virtio.c | 1 +
drivers/virtio/virtio_mmio.c | 44 ++++++++++++
include/dt-bindings/virtio/virtio_ids.h | 1 +
6 files changed, 213 insertions(+)
create mode 100644 Documentation/devicetree/bindings/gpio/gpio-virtio.yaml
create mode 100644 Documentation/devicetree/bindings/i2c/i2c-virtio.yaml
create mode 120000 include/dt-bindings/virtio/virtio_ids.h
--
2.31.1.272.g89b43f80a514
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH 3/5] dt-bindings: i2c: Add bindings for i2c-virtio
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 14:03 ` Rob Herring
2021-07-13 10:50 ` [PATCH 4/5] i2c: virtio: Update i2c-adapter's of_node Viresh Kumar
1 sibling, 1 reply; 4+ messages in thread
From: Viresh Kumar @ 2021-07-13 10:50 UTC (permalink / raw)
To: Jason Wang, Michael S. Tsirkin, Rob Herring, Arnd Bergmann,
Jean-Philippe Brucker, Viresh Kumar
Cc: Vincent Guittot, Bill Mills, Alex Bennée,
Enrico Weigelt, metux IT consult, Jie Deng, devicetree,
linux-kernel, virtualization, Wolfram Sang, linux-i2c
i2c-virtio represents a virtio I2C device and this patch adds binding
for the same. The i2c-virtio subnode can be part of a virtio,mmio node
and is based on its binding.
Cc: Wolfram Sang <wsa@kernel.org>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
---
.../devicetree/bindings/i2c/i2c-virtio.yaml | 59 +++++++++++++++++++
1 file changed, 59 insertions(+)
create mode 100644 Documentation/devicetree/bindings/i2c/i2c-virtio.yaml
diff --git a/Documentation/devicetree/bindings/i2c/i2c-virtio.yaml b/Documentation/devicetree/bindings/i2c/i2c-virtio.yaml
new file mode 100644
index 000000000000..6b6538f9a3d8
--- /dev/null
+++ b/Documentation/devicetree/bindings/i2c/i2c-virtio.yaml
@@ -0,0 +1,59 @@
+# 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 memory mapped I2C Adapter
+
+maintainers:
+ - Viresh Kumar <viresh.kumar@linaro.org>
+
+description:
+ Virtio I2C device, see /schemas/virtio/mmio.yaml for more details.
+
+allOf:
+ - $ref: /schemas/i2c/i2c-controller.yaml#
+
+properties:
+ $nodename:
+ pattern: '^i2c-virtio@[0-9]+$'
+
+ reg:
+ description:
+ The cell is the device ID of the I2C device (VIRTIO_ID_I2C_ADAPTER) as per
+ dt-bindings/virtio/virtio_ids.h.
+ const: 34
+ $ref: /schemas/virtio/mmio.yaml#/properties/reg
+
+required:
+ - reg
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/virtio/virtio_ids.h>
+
+ virtio@3000 {
+ compatible = "virtio,mmio";
+ reg = <0x3000 0x100>;
+ interrupts = <41>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ i2c-virtio@0 {
+ reg = <VIRTIO_ID_I2C_ADAPTER>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ light-sensor@1c {
+ compatible = "dynaimage,al3320a";
+ reg = <0x20>;
+ };
+ };
+ };
+
+...
--
2.31.1.272.g89b43f80a514
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH 3/5] dt-bindings: i2c: Add bindings for i2c-virtio
2021-07-13 10:50 ` [PATCH 3/5] dt-bindings: i2c: Add bindings for i2c-virtio Viresh Kumar
@ 2021-07-13 14:03 ` Rob Herring
0 siblings, 0 replies; 4+ messages in thread
From: Rob Herring @ 2021-07-13 14:03 UTC (permalink / raw)
To: Viresh Kumar
Cc: Arnd Bergmann, Wolfram Sang, Jean-Philippe Brucker, Rob Herring,
Michael S. Tsirkin, Jason Wang, Enrico Weigelt, metux IT consult,
Jie Deng, virtualization, devicetree, Vincent Guittot, Bill Mills,
Alex Bennée, linux-i2c, linux-kernel
On Tue, 13 Jul 2021 16:20:32 +0530, Viresh Kumar wrote:
> i2c-virtio represents a virtio I2C device and this patch adds binding
> for the same. The i2c-virtio subnode can be part of a virtio,mmio node
> and is based on its binding.
>
> Cc: Wolfram Sang <wsa@kernel.org>
> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
> ---
> .../devicetree/bindings/i2c/i2c-virtio.yaml | 59 +++++++++++++++++++
> 1 file changed, 59 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/i2c/i2c-virtio.yaml
>
My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):
yamllint warnings/errors:
dtschema/dtc warnings/errors:
Unknown file referenced: [Errno 2] No such file or directory: '/usr/local/lib/python3.8/dist-packages/dtschema/schemas/virtio/mmio.yaml'
xargs: dt-doc-validate: exited with status 255; aborting
Documentation/devicetree/bindings/i2c/i2c-virtio.example.dts:19:18: fatal error: dt-bindings/virtio/virtio_ids.h: No such file or directory
19 | #include <dt-bindings/virtio/virtio_ids.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [scripts/Makefile.lib:380: Documentation/devicetree/bindings/i2c/i2c-virtio.example.dt.yaml] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:1416: dt_binding_check] Error 2
\ndoc reference errors (make refcheckdocs):
See https://patchwork.ozlabs.org/patch/1504542
This check can fail if there are any dependencies. The base for a patch
series is generally the most recent rc1.
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:
pip3 install dtschema --upgrade
Please check and re-submit.
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 4/5] i2c: virtio: Update i2c-adapter's of_node
2021-07-13 10:50 [PATCH 0/5] virtio: Parse virtio-device nodes from DT 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
1 sibling, 0 replies; 4+ messages in thread
From: Viresh Kumar @ 2021-07-13 10:50 UTC (permalink / raw)
To: Jason Wang, Michael S. Tsirkin, Rob Herring, Arnd Bergmann,
Jean-Philippe Brucker
Cc: Viresh Kumar, Vincent Guittot, Bill Mills, Alex Bennée,
Enrico Weigelt, metux IT consult, Jie Deng, devicetree,
linux-kernel, virtualization, Wolfram Sang, linux-i2c
Set of_node of the adapter from the virtio device to enable automatic
parsing the of the I2C devices present in DT.
Cc: Wolfram Sang <wsa@kernel.org>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
---
Depends on:
https://lore.kernel.org/linux-i2c/984ebecaf697058eb73389ed14ead9dd6d38fb53.1625796246.git.jie.deng@intel.com/
---
drivers/i2c/busses/i2c-virtio.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/i2c/busses/i2c-virtio.c b/drivers/i2c/busses/i2c-virtio.c
index 0139cdc33cae..cb8cfae2748f 100644
--- a/drivers/i2c/busses/i2c-virtio.c
+++ b/drivers/i2c/busses/i2c-virtio.c
@@ -223,6 +223,7 @@ static int virtio_i2c_probe(struct virtio_device *vdev)
"i2c_virtio at virtio bus %d", vdev->index);
vi->adap.algo = &virtio_algorithm;
vi->adap.dev.parent = &vdev->dev;
+ vi->adap.dev.of_node = vdev->dev.of_node;
i2c_set_adapdata(&vi->adap, vi);
/*
--
2.31.1.272.g89b43f80a514
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-07-13 14:03 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-07-13 10:50 [PATCH 0/5] virtio: Parse virtio-device nodes from DT Viresh Kumar
2021-07-13 10:50 ` [PATCH 3/5] dt-bindings: i2c: Add bindings for i2c-virtio Viresh Kumar
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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).