From: Randy Dunlap <rdunlap@infradead.org>
To: Meagan Lloyd <meaganlloyd@linux.microsoft.com>,
linux-i3c@lists.infradead.org
Cc: alexandre.belloni@bootlin.com, vitor.soares@toradex.com,
samagazaryan@google.com, gregkh@linuxfoundation.org,
arnd@arndb.de, boris.brezillon@collabora.com,
oleksandr.shulzhenko.viktorovych@intel.com,
tgopinath@linux.microsoft.com, corbet@lwn.net,
skhan@linuxfoundation.org, linux@roeck-us.net, Frank.Li@nxp.com,
jorge.marques@analog.com, pgaj@cadence.com,
wsa+renesas@sang-engineering.com,
tommaso.merciai.xr@bp.renesas.com, nuno.sa@analog.com,
Michael.Hennerich@analog.com, jic23@kernel.org,
dlechner@baylibre.com, andy@kernel.org, lorenzo@kernel.org,
enelsonmoore@gmail.com, rppt@kernel.org, pratyush@kernel.org,
giovanni.cabiddu@intel.com, gabewhigham@gmail.com,
haren@linux.ibm.com, pasha.tatashin@soleen.com,
jirislaby@kernel.org, adrian.ho.yin.ng@altera.com,
ustc.gu@gmail.com, jszhang@kernel.org, adrian.hunter@intel.com,
akhilrajeev@nvidia.com, tze.yee.ng@altera.com,
manikanta.guntupalli@amd.com, shubhrajyoti.datta@amd.com,
jarkko.nikula@linux.intel.com, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-hwmon@vger.kernel.org,
linux@analog.com, linux-iio@vger.kernel.org
Subject: Re: [PATCH 3/3] i3c: add i3cdev character device module for user-space access
Date: Fri, 11 Sep 2026 16:29:15 -0700 [thread overview]
Message-ID: <5cd22376-6921-4a2b-acba-371bcbbfa00f@infradead.org> (raw)
In-Reply-To: <20260911210935.1353126-4-meaganlloyd@linux.microsoft.com>
On 9/11/26 2:09 PM, Meagan Lloyd wrote:
> The i3cdev driver is a character device driver that allows user-space
> to control and interact with I3C devices.
>
> Currently, it has the ability to perform Single Data Rate (SDR)
> transfers - basic reads/writes.
>
> With the addition of sysfs driver_override, there is now a
> straightforward and direct way to match the i3cdev driver to any i3c
> device without stepping on the toes of more specialized drivers that are
> loaded automatically.
>
> This is accomplished by the i3cdev driver not having any entries in the
> i3c_device_id table. After boot, simply set the driver_override to
> "i3cdev" and bind the device manually via the sysfs bind knob. This can
> also be automated with udev rules as well.
>
> The character device interface will be exposed at:
> /dev/bus/i3c/<bus id>-<Provisional ID>
>
> Signed-off-by: Meagan Lloyd <meaganlloyd@linux.microsoft.com>
> Assisted-by: Claude:claude-opus-4.8 copilot
> ---
> Documentation/userspace-api/i3c/i3cdev.rst | 152 ++++
> .../userspace-api/ioctl/ioctl-number.rst | 1 +
> MAINTAINERS | 7 +
> drivers/i3c/Kconfig | 12 +
> drivers/i3c/Makefile | 1 +
> drivers/i3c/i3cdev.c | 730 ++++++++++++++++++
> include/uapi/linux/i3c/i3cdev.h | 70 ++
> 7 files changed, 973 insertions(+)
> create mode 100644 Documentation/userspace-api/i3c/i3cdev.rst
> create mode 100644 drivers/i3c/i3cdev.c
> create mode 100644 include/uapi/linux/i3c/i3cdev.h
>
> diff --git a/Documentation/userspace-api/i3c/i3cdev.rst b/Documentation/userspace-api/i3c/i3cdev.rst
> new file mode 100644
> index 000000000000..ad246bf28919
> --- /dev/null
> +++ b/Documentation/userspace-api/i3c/i3cdev.rst
> @@ -0,0 +1,152 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +====================
> +I3C Device Interface
> +====================
> +
> +This interface allows access to I3C devices from userspace.
> +
> +As I3C devices adhere to the I3C protocol, simple transfers can be accomplished
> +using a generic driver. Currently, this interface supports private Single Data
> +Rate (SDR) read and write transfers.
> +
> +The i3cdev module will not auto-bind to devices. Userspace needs to explicitly
> +bind the device to the driver. This is to avoid interfering with the binding of
> +specialized drivers.
> +
> +Once bound, a character device interface will be created at:
> +/dev/bus/i3c/<bus id>-<Provisional ID>.
> +
> +====================
> +Usage
> +====================
> +
> +Any discovered I3C devices by the I3C subsystem will have device folders under /sys/bus/i3c/devices/<bus id>-<Provisional ID>.
> +To allow binding of a device with i3cdev driver, set the driver_override:
> +
> +::
> +
> + # echo "i3cdev" > /sys/bus/i3c/devices/<bus id>-<Provisional ID>/driver_override
> +
> +If the i3cdev driver is not yet loaded, load it and it will cause the driver to bind
> +to any devices with the override in place.
> +
> +If the i3cdev driver is already loaded, go ahead and perform a manual bind:
> +
> +::
> +
> + # echo "<bus id>-<Provisional ID>" > /sys/bus/i3c/drivers/i3cdev/bind
> +
> +Set driver override
> +::
> +
> + # echo "i3cdev" > /sys/bus/i3c/devices/0-deadbeef001/driver_override
> + # echo "i3cdev" > /sys/bus/i3c/devices/0-deadbeef002/driver_override
> +
> +Bind the device to the driver
> +::
> +
> + # echo "0-deadbeef001" > /sys/bus/i3c/drivers/i3cdev/bind
> + # echo "0-deadbeef002" > /sys/bus/i3c/drivers/i3cdev/bind
> +
> +Observe the resulting character device files under /dev/bus/i3c/
> +::
> +
> + # ls -ltr /dev/bus/i3c/
> + crw------- 1 root root 235, 1 Jun 30 17:49 0-deadbeef002
> + crw------- 1 root root 235, 0 Jun 30 17:49 0-deadbeef001
> +
> +BASIC CHARACTER DEVICE API
> +===============================
> +The API supports private Single Data Rate (SDR) read and write transfers.
> +Those transaction can be achieved by the following:
> +
> +``read(file, buffer, sizeof(buffer))``
> + The standard read() operation will work as a simple transaction of private
> + SDR read data followed a stop.
> + Return the number of bytes read on success, and a negative error otherwise.
> +
> +``write(file, buffer, sizeof(buffer))``
> + The standard write() operation will work as a simple transaction of private
> + SDR write data followed a stop.
> + Return the number of bytes written on success, and a negative error otherwise.
> +
> +``ioctl(file, I3CDEV_XFER, struct i3cdev_xfers *xfers)``
> + It combines read/write transactions without a stop in between.
> + Return 0 on success, and a negative error otherwise.
> +
> +C EXAMPLE (PSEUDO CODE)
> +=======================
> +You need to open (and get a file descriptor) to /dev/bus/i3c/<bus id>-<Provisional ID>,
> +do your operations (read, write, ioctl), and then close it.
> +
> +The following header files should be included in an I3C program::
> +
> +#include <fcntl.h>
> +#include <unistd.h>
> +#include <sys/ioctl.h>
> +#include <i3c/i3cdev.h>
> +#include <stdint.h>
> +
> +These additionally are used by this example::
> +
> +#include <stdlib.h>
> +#include <assert.h>
> +
> +To work with an I3C device, one must call open and get a file descriptor::
> +
> + int fd;
> +
> + fd = open("/dev/bus/i3c/0-deadbeef001", O_RDWR);
> + if (fd < 0)
> + exit(EXIT_FAILURE);
> +
> +Now that the file is open, we can do some operations::
> +
> + int ret;
> +
> + /* Write function */
> + uint8_t buf[] = {0x00, 0xde, 0xad, 0xbe, 0xef};
> + ret = write(fd, buf, 5);
> + if (ret != 5) {
> + /* ERROR HANDLING: I3C transaction failed */
> + }
> +
> + /* Read function */
> + ret = read(fd, buf, 4);
> + if (ret < 0) {
> + /* ERROR HANDLING: I3C transaction failed */
> + } else {
> + /* Iterate over buf[] to get the read data */
> + }
> +
> + /* IOCTL function */
> + struct i3cdev_xfer xfers[2] = {0}; /* Must zero out for compatibility */
> + struct i3cdev_xfers xfers_metadata = { .nxfers = 2,
> + .xfers = (uintptr_t) xfers,
> + .xfer_size = sizeof(struct i3cdev_xfer)
> + };
> +
> + uint8_t tx_buf[] = {0x00, 0xde, 0xad, 0xbe, 0xef};
> + uint8_t rx_buf[10];
> +
> + xfers[0].data = (uintptr_t) tx_buf;
> + xfers[0].len = 5;
> + xfers[0].rnw = 0;
> + xfers[1].data = (uintptr_t) rx_buf;
> + xfers[1].len = 10;
> + xfers[1].rnw = 1;
> +
> + ret = ioctl(fd, I3CDEV_XFER, (uintptr_t) &xfers_metadata);
> + if (ret < 0) {
> + /* ERROR HANDLING: I3C transaction failed */
> + } else {
> + /* For reads, optionally verify that the response matches expectations */
> + assert(xfers[1].len == xfers[1].actual_len);
> +
> + /* For reads, iterate through response data using xfers[i].actual_len */
> + }
> +
> +The device can be closed when the open file descriptor is no longer required::
> +
> + close(fd);
> \ No newline at end of file
Fix the warning above, please.
Also:
Documentation/userspace-api/i3c/i3cdev.rst: WARNING: document isn't included in any toctree [toc.not_included]
add that file to the table of contents (somewhere).
thanks.
--
~Randy
WARNING: multiple messages have this Message-ID (diff)
From: Randy Dunlap <rdunlap@infradead.org>
To: Meagan Lloyd <meaganlloyd@linux.microsoft.com>,
linux-i3c@lists.infradead.org
Cc: alexandre.belloni@bootlin.com, vitor.soares@toradex.com,
samagazaryan@google.com, gregkh@linuxfoundation.org,
arnd@arndb.de, boris.brezillon@collabora.com,
oleksandr.shulzhenko.viktorovych@intel.com,
tgopinath@linux.microsoft.com, corbet@lwn.net,
skhan@linuxfoundation.org, linux@roeck-us.net, Frank.Li@nxp.com,
jorge.marques@analog.com, pgaj@cadence.com,
wsa+renesas@sang-engineering.com,
tommaso.merciai.xr@bp.renesas.com, nuno.sa@analog.com,
Michael.Hennerich@analog.com, jic23@kernel.org,
dlechner@baylibre.com, andy@kernel.org, lorenzo@kernel.org,
enelsonmoore@gmail.com, rppt@kernel.org, pratyush@kernel.org,
giovanni.cabiddu@intel.com, gabewhigham@gmail.com,
haren@linux.ibm.com, pasha.tatashin@soleen.com,
jirislaby@kernel.org, adrian.ho.yin.ng@altera.com,
ustc.gu@gmail.com, jszhang@kernel.org, adrian.hunter@intel.com,
akhilrajeev@nvidia.com, tze.yee.ng@altera.com,
manikanta.guntupalli@amd.com, shubhrajyoti.datta@amd.com,
jarkko.nikula@linux.intel.com, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-hwmon@vger.kernel.org,
linux@analog.com, linux-iio@vger.kernel.org
Subject: Re: [PATCH 3/3] i3c: add i3cdev character device module for user-space access
Date: Fri, 11 Sep 2026 16:29:15 -0700 [thread overview]
Message-ID: <5cd22376-6921-4a2b-acba-371bcbbfa00f@infradead.org> (raw)
In-Reply-To: <20260911210935.1353126-4-meaganlloyd@linux.microsoft.com>
On 9/11/26 2:09 PM, Meagan Lloyd wrote:
> The i3cdev driver is a character device driver that allows user-space
> to control and interact with I3C devices.
>
> Currently, it has the ability to perform Single Data Rate (SDR)
> transfers - basic reads/writes.
>
> With the addition of sysfs driver_override, there is now a
> straightforward and direct way to match the i3cdev driver to any i3c
> device without stepping on the toes of more specialized drivers that are
> loaded automatically.
>
> This is accomplished by the i3cdev driver not having any entries in the
> i3c_device_id table. After boot, simply set the driver_override to
> "i3cdev" and bind the device manually via the sysfs bind knob. This can
> also be automated with udev rules as well.
>
> The character device interface will be exposed at:
> /dev/bus/i3c/<bus id>-<Provisional ID>
>
> Signed-off-by: Meagan Lloyd <meaganlloyd@linux.microsoft.com>
> Assisted-by: Claude:claude-opus-4.8 copilot
> ---
> Documentation/userspace-api/i3c/i3cdev.rst | 152 ++++
> .../userspace-api/ioctl/ioctl-number.rst | 1 +
> MAINTAINERS | 7 +
> drivers/i3c/Kconfig | 12 +
> drivers/i3c/Makefile | 1 +
> drivers/i3c/i3cdev.c | 730 ++++++++++++++++++
> include/uapi/linux/i3c/i3cdev.h | 70 ++
> 7 files changed, 973 insertions(+)
> create mode 100644 Documentation/userspace-api/i3c/i3cdev.rst
> create mode 100644 drivers/i3c/i3cdev.c
> create mode 100644 include/uapi/linux/i3c/i3cdev.h
>
> diff --git a/Documentation/userspace-api/i3c/i3cdev.rst b/Documentation/userspace-api/i3c/i3cdev.rst
> new file mode 100644
> index 000000000000..ad246bf28919
> --- /dev/null
> +++ b/Documentation/userspace-api/i3c/i3cdev.rst
> @@ -0,0 +1,152 @@
> +.. SPDX-License-Identifier: GPL-2.0
> +
> +====================
> +I3C Device Interface
> +====================
> +
> +This interface allows access to I3C devices from userspace.
> +
> +As I3C devices adhere to the I3C protocol, simple transfers can be accomplished
> +using a generic driver. Currently, this interface supports private Single Data
> +Rate (SDR) read and write transfers.
> +
> +The i3cdev module will not auto-bind to devices. Userspace needs to explicitly
> +bind the device to the driver. This is to avoid interfering with the binding of
> +specialized drivers.
> +
> +Once bound, a character device interface will be created at:
> +/dev/bus/i3c/<bus id>-<Provisional ID>.
> +
> +====================
> +Usage
> +====================
> +
> +Any discovered I3C devices by the I3C subsystem will have device folders under /sys/bus/i3c/devices/<bus id>-<Provisional ID>.
> +To allow binding of a device with i3cdev driver, set the driver_override:
> +
> +::
> +
> + # echo "i3cdev" > /sys/bus/i3c/devices/<bus id>-<Provisional ID>/driver_override
> +
> +If the i3cdev driver is not yet loaded, load it and it will cause the driver to bind
> +to any devices with the override in place.
> +
> +If the i3cdev driver is already loaded, go ahead and perform a manual bind:
> +
> +::
> +
> + # echo "<bus id>-<Provisional ID>" > /sys/bus/i3c/drivers/i3cdev/bind
> +
> +Set driver override
> +::
> +
> + # echo "i3cdev" > /sys/bus/i3c/devices/0-deadbeef001/driver_override
> + # echo "i3cdev" > /sys/bus/i3c/devices/0-deadbeef002/driver_override
> +
> +Bind the device to the driver
> +::
> +
> + # echo "0-deadbeef001" > /sys/bus/i3c/drivers/i3cdev/bind
> + # echo "0-deadbeef002" > /sys/bus/i3c/drivers/i3cdev/bind
> +
> +Observe the resulting character device files under /dev/bus/i3c/
> +::
> +
> + # ls -ltr /dev/bus/i3c/
> + crw------- 1 root root 235, 1 Jun 30 17:49 0-deadbeef002
> + crw------- 1 root root 235, 0 Jun 30 17:49 0-deadbeef001
> +
> +BASIC CHARACTER DEVICE API
> +===============================
> +The API supports private Single Data Rate (SDR) read and write transfers.
> +Those transaction can be achieved by the following:
> +
> +``read(file, buffer, sizeof(buffer))``
> + The standard read() operation will work as a simple transaction of private
> + SDR read data followed a stop.
> + Return the number of bytes read on success, and a negative error otherwise.
> +
> +``write(file, buffer, sizeof(buffer))``
> + The standard write() operation will work as a simple transaction of private
> + SDR write data followed a stop.
> + Return the number of bytes written on success, and a negative error otherwise.
> +
> +``ioctl(file, I3CDEV_XFER, struct i3cdev_xfers *xfers)``
> + It combines read/write transactions without a stop in between.
> + Return 0 on success, and a negative error otherwise.
> +
> +C EXAMPLE (PSEUDO CODE)
> +=======================
> +You need to open (and get a file descriptor) to /dev/bus/i3c/<bus id>-<Provisional ID>,
> +do your operations (read, write, ioctl), and then close it.
> +
> +The following header files should be included in an I3C program::
> +
> +#include <fcntl.h>
> +#include <unistd.h>
> +#include <sys/ioctl.h>
> +#include <i3c/i3cdev.h>
> +#include <stdint.h>
> +
> +These additionally are used by this example::
> +
> +#include <stdlib.h>
> +#include <assert.h>
> +
> +To work with an I3C device, one must call open and get a file descriptor::
> +
> + int fd;
> +
> + fd = open("/dev/bus/i3c/0-deadbeef001", O_RDWR);
> + if (fd < 0)
> + exit(EXIT_FAILURE);
> +
> +Now that the file is open, we can do some operations::
> +
> + int ret;
> +
> + /* Write function */
> + uint8_t buf[] = {0x00, 0xde, 0xad, 0xbe, 0xef};
> + ret = write(fd, buf, 5);
> + if (ret != 5) {
> + /* ERROR HANDLING: I3C transaction failed */
> + }
> +
> + /* Read function */
> + ret = read(fd, buf, 4);
> + if (ret < 0) {
> + /* ERROR HANDLING: I3C transaction failed */
> + } else {
> + /* Iterate over buf[] to get the read data */
> + }
> +
> + /* IOCTL function */
> + struct i3cdev_xfer xfers[2] = {0}; /* Must zero out for compatibility */
> + struct i3cdev_xfers xfers_metadata = { .nxfers = 2,
> + .xfers = (uintptr_t) xfers,
> + .xfer_size = sizeof(struct i3cdev_xfer)
> + };
> +
> + uint8_t tx_buf[] = {0x00, 0xde, 0xad, 0xbe, 0xef};
> + uint8_t rx_buf[10];
> +
> + xfers[0].data = (uintptr_t) tx_buf;
> + xfers[0].len = 5;
> + xfers[0].rnw = 0;
> + xfers[1].data = (uintptr_t) rx_buf;
> + xfers[1].len = 10;
> + xfers[1].rnw = 1;
> +
> + ret = ioctl(fd, I3CDEV_XFER, (uintptr_t) &xfers_metadata);
> + if (ret < 0) {
> + /* ERROR HANDLING: I3C transaction failed */
> + } else {
> + /* For reads, optionally verify that the response matches expectations */
> + assert(xfers[1].len == xfers[1].actual_len);
> +
> + /* For reads, iterate through response data using xfers[i].actual_len */
> + }
> +
> +The device can be closed when the open file descriptor is no longer required::
> +
> + close(fd);
> \ No newline at end of file
Fix the warning above, please.
Also:
Documentation/userspace-api/i3c/i3cdev.rst: WARNING: document isn't included in any toctree [toc.not_included]
add that file to the table of contents (somewhere).
thanks.
--
~Randy
--
linux-i3c mailing list
linux-i3c@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-i3c
next prev parent reply other threads:[~2026-09-11 23:29 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-11 21:09 [PATCH 0/3] I3C character device driver using driver_override Meagan Lloyd
2026-09-11 21:09 ` Meagan Lloyd
2026-09-11 21:09 ` [PATCH 1/3] i3c: master: enable driver_override for I3C Meagan Lloyd
2026-09-11 21:09 ` Meagan Lloyd
2026-09-11 21:22 ` sashiko-bot
2026-09-11 21:22 ` sashiko-bot
2026-09-11 21:36 ` Guenter Roeck
2026-09-11 21:36 ` Guenter Roeck
2026-09-16 18:29 ` Meagan Lloyd
2026-09-16 18:29 ` Meagan Lloyd
2026-09-12 13:22 ` Andy Shevchenko
2026-09-12 13:22 ` Andy Shevchenko
2026-09-16 18:39 ` Meagan Lloyd
2026-09-16 18:39 ` Meagan Lloyd
2026-09-13 0:24 ` Jonathan Cameron
2026-09-13 0:24 ` Jonathan Cameron
2026-09-16 18:53 ` Meagan Lloyd
2026-09-16 18:53 ` Meagan Lloyd
2026-09-11 21:09 ` [PATCH 2/3] i3c: set i3c_xfer.actual_len in controller drivers Meagan Lloyd
2026-09-11 21:09 ` Meagan Lloyd
2026-09-11 21:22 ` sashiko-bot
2026-09-11 21:22 ` sashiko-bot
2026-09-13 0:26 ` Jonathan Cameron
2026-09-13 0:26 ` Jonathan Cameron
2026-09-16 19:11 ` Meagan Lloyd
2026-09-16 19:11 ` Meagan Lloyd
2026-09-11 21:09 ` [PATCH 3/3] i3c: add i3cdev character device module for user-space access Meagan Lloyd
2026-09-11 21:09 ` Meagan Lloyd
2026-09-11 21:21 ` sashiko-bot
2026-09-11 21:21 ` sashiko-bot
2026-09-11 23:29 ` Randy Dunlap [this message]
2026-09-11 23:29 ` Randy Dunlap
2026-09-16 18:37 ` Meagan Lloyd
2026-09-16 18:37 ` Meagan Lloyd
2026-09-12 13:34 ` Andy Shevchenko
2026-09-12 13:34 ` Andy Shevchenko
2026-09-16 22:57 ` Meagan Lloyd
2026-09-16 22:57 ` Meagan Lloyd
2026-09-17 5:49 ` Andy Shevchenko
2026-09-17 5:49 ` Andy Shevchenko
2026-09-22 20:53 ` Armin Wolf
2026-09-22 20:53 ` Armin Wolf
2026-09-25 9:10 ` Andy Shevchenko
2026-09-25 9:10 ` Andy Shevchenko
2026-09-24 22:10 ` Meagan Lloyd
2026-09-24 22:10 ` Meagan Lloyd
2026-09-24 23:26 ` Meagan Lloyd
2026-09-24 23:26 ` Meagan Lloyd
2026-09-12 13:26 ` [PATCH 0/3] I3C character device driver using driver_override Andy Shevchenko
2026-09-12 13:26 ` Andy Shevchenko
2026-09-16 19:28 ` Meagan Lloyd
2026-09-16 19:28 ` Meagan Lloyd
2026-09-17 6:23 ` Andy Shevchenko
2026-09-17 6:23 ` Andy Shevchenko
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=5cd22376-6921-4a2b-acba-371bcbbfa00f@infradead.org \
--to=rdunlap@infradead.org \
--cc=Frank.Li@nxp.com \
--cc=Michael.Hennerich@analog.com \
--cc=adrian.ho.yin.ng@altera.com \
--cc=adrian.hunter@intel.com \
--cc=akhilrajeev@nvidia.com \
--cc=alexandre.belloni@bootlin.com \
--cc=andy@kernel.org \
--cc=arnd@arndb.de \
--cc=boris.brezillon@collabora.com \
--cc=corbet@lwn.net \
--cc=dlechner@baylibre.com \
--cc=enelsonmoore@gmail.com \
--cc=gabewhigham@gmail.com \
--cc=giovanni.cabiddu@intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=haren@linux.ibm.com \
--cc=jarkko.nikula@linux.intel.com \
--cc=jic23@kernel.org \
--cc=jirislaby@kernel.org \
--cc=jorge.marques@analog.com \
--cc=jszhang@kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-hwmon@vger.kernel.org \
--cc=linux-i3c@lists.infradead.org \
--cc=linux-iio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@analog.com \
--cc=linux@roeck-us.net \
--cc=lorenzo@kernel.org \
--cc=manikanta.guntupalli@amd.com \
--cc=meaganlloyd@linux.microsoft.com \
--cc=nuno.sa@analog.com \
--cc=oleksandr.shulzhenko.viktorovych@intel.com \
--cc=pasha.tatashin@soleen.com \
--cc=pgaj@cadence.com \
--cc=pratyush@kernel.org \
--cc=rppt@kernel.org \
--cc=samagazaryan@google.com \
--cc=shubhrajyoti.datta@amd.com \
--cc=skhan@linuxfoundation.org \
--cc=tgopinath@linux.microsoft.com \
--cc=tommaso.merciai.xr@bp.renesas.com \
--cc=tze.yee.ng@altera.com \
--cc=ustc.gu@gmail.com \
--cc=vitor.soares@toradex.com \
--cc=wsa+renesas@sang-engineering.com \
/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: link
Be 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.