From: Wolfram Sang <wsa@the-dreams.de>
To: Peter Rosin <peda@axentia.se>
Cc: Arnd Bergmann <arnd@arndb.de>,
Boris Brezillon <boris.brezillon@bootlin.com>,
linux-i2c@vger.kernel.org, Jonathan Corbet <corbet@lwn.net>,
"open list:DOCUMENTATION" <linux-doc@vger.kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Przemyslaw Sroka <psroka@cadence.com>,
Arkadiusz Golec <agolec@cadence.com>,
Alan Douglas <adouglas@cadence.com>,
Bartosz Folta <bfolta@cadence.com>, Damian Kos <dkos@cadence.com>,
Alicja Jurasik-Urbaniak <alicja@cadence.com>,
Cyprian Wronka <cwronka@cadence.com>,
Suresh Punnoose <sureshp@cadence.com>,
Rafal Ciepiela <rafalc@cadence.com>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
Nishanth Menon <nm@ti.com>, Rob Herring <robh+dt@kernel.org>,
Pawel Moll <pawel.moll@arm.com>,
Mark Rutland <mark.rutland@arm.com>,
Ian Campbell <ijc+devicetree@hellion.org.uk>,
Kumar Gala <galak@codeaurora.org>,
DTML <devicetree@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Vitor Soares <Vitor.Soares@synopsys.com>,
Geert Uytterhoeven <geert@linux-m68k.org>,
Linus Walleij <linus.walleij@linaro.org>,
Xiang Lin <Xiang.Lin@synaptics.com>,
linux-gpio@vger.kernel.org, Sekhar Nori <nsekhar@ti.com>,
Przemyslaw Gaj <pgaj@cadence.com>
Subject: Re: [PATCH v6 00/10] Add the I3C subsystem
Date: Fri, 20 Jul 2018 17:41:32 +0200 [thread overview]
Message-ID: <20180720154132.2fwmwpiwtxa73ljf@ninjato> (raw)
In-Reply-To: <a74a7472-e900-d031-d10b-b12f03ea9ff1@axentia.se>
[-- Attachment #1: Type: text/plain, Size: 1417 bytes --]
> I don't have an actual example for I2C, maybe Wolfram does? But I can
> invent a case. E.g. the speedy DMA-enabled master cannot generate
> RESTART, which is a must for (re-)configuration, but not for passing
> data to the device.
DMA capable controllers may also not react adequate to the slave doing
clock stretching (which is forbidden in I3C).
Renesas R-Car Gen2 has two I2C IP cores. One can do DMA and automatic
transfers to the PMIC, the other has I2C slave functionality. One cannot
do I2C_SMBUS_QUICK, the other can. And some more kind of quirks.
Sometimes you can mux the pins to GPIO, so you have a third option.
This setup is the reason the demux driver exists.
> Also consider some future HW that has several I3C blocks, but they
> are not identical. There's one beefy kind and one slim kind (I'm sure
> you can find HW with different flavors of I2C blocks). Even if the
> HW designers intended for one type of block to be superior in every
> aspect, they might have made a mistake? This HW also has a pinmux, so
> the SW is free to route different I3C blocks to the actual I3C bus.
So, basically this is what happened with R-Car. Now, I tend to think
that I3C is much more complex and noone would put two I3C IP cores into
on SoC. But it was not too long ago that I wouldn't believe someone put
two different I2C IP cores into a SoC. Then again, it happened when I2C
was around for 35 years...
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Wolfram Sang <wsa@the-dreams.de>
To: Peter Rosin <peda@axentia.se>
Cc: Arnd Bergmann <arnd@arndb.de>,
Boris Brezillon <boris.brezillon@bootlin.com>,
linux-i2c@vger.kernel.org, Jonathan Corbet <corbet@lwn.net>,
"open list:DOCUMENTATION" <linux-doc@vger.kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Przemyslaw Sroka <psroka@cadence.com>,
Arkadiusz Golec <agolec@cadence.com>,
Alan Douglas <adouglas@cadence.com>,
Bartosz Folta <bfolta@cadence.com>, Damian Kos <dkos@cadence.com>,
Alicja Jurasik-Urbaniak <alicja@cadence.com>,
Cyprian Wronka <cwronka@cadence.com>,
Suresh Punnoose <sureshp@cadence.com>,
Rafal Ciepiela <rafalc@cadence.com>,
Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
Nishanth Menon <nm@ti.com>, Rob Herring <robh+dt@kernel.org>,
Pawel Moll <pawel.moll@arm.com>,
Mark Rutland <mark.rutland@arm.c>
Subject: Re: [PATCH v6 00/10] Add the I3C subsystem
Date: Fri, 20 Jul 2018 17:41:32 +0200 [thread overview]
Message-ID: <20180720154132.2fwmwpiwtxa73ljf@ninjato> (raw)
In-Reply-To: <a74a7472-e900-d031-d10b-b12f03ea9ff1@axentia.se>
[-- Attachment #1: Type: text/plain, Size: 1417 bytes --]
> I don't have an actual example for I2C, maybe Wolfram does? But I can
> invent a case. E.g. the speedy DMA-enabled master cannot generate
> RESTART, which is a must for (re-)configuration, but not for passing
> data to the device.
DMA capable controllers may also not react adequate to the slave doing
clock stretching (which is forbidden in I3C).
Renesas R-Car Gen2 has two I2C IP cores. One can do DMA and automatic
transfers to the PMIC, the other has I2C slave functionality. One cannot
do I2C_SMBUS_QUICK, the other can. And some more kind of quirks.
Sometimes you can mux the pins to GPIO, so you have a third option.
This setup is the reason the demux driver exists.
> Also consider some future HW that has several I3C blocks, but they
> are not identical. There's one beefy kind and one slim kind (I'm sure
> you can find HW with different flavors of I2C blocks). Even if the
> HW designers intended for one type of block to be superior in every
> aspect, they might have made a mistake? This HW also has a pinmux, so
> the SW is free to route different I3C blocks to the actual I3C bus.
So, basically this is what happened with R-Car. Now, I tend to think
that I3C is much more complex and noone would put two I3C IP cores into
on SoC. But it was not too long ago that I wouldn't believe someone put
two different I2C IP cores into a SoC. Then again, it happened when I2C
was around for 35 years...
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2018-07-20 15:41 UTC|newest]
Thread overview: 177+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-19 15:29 [PATCH v6 00/10] Add the I3C subsystem Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 01/10] i3c: Add core I3C infrastructure Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-08-03 21:38 ` mshettel
2018-08-03 21:38 ` mshettel
2018-08-03 21:38 ` mshettel
2018-08-04 5:33 ` Boris Brezillon
2018-08-04 5:33 ` Boris Brezillon
2018-08-04 5:33 ` Boris Brezillon
2018-08-22 16:43 ` vitor
2018-08-22 16:43 ` vitor
2018-08-24 12:39 ` Boris Brezillon
2018-08-24 12:39 ` Boris Brezillon
2018-08-24 17:52 ` vitor
2018-08-24 17:52 ` vitor
2018-08-24 18:16 ` Boris Brezillon
2018-08-24 18:16 ` Boris Brezillon
2018-08-28 11:50 ` vitor
2018-08-28 11:50 ` vitor
2018-08-28 12:02 ` Boris Brezillon
2018-08-28 12:02 ` Boris Brezillon
2018-08-28 12:55 ` Przemyslaw Gaj
2018-08-28 12:55 ` Przemyslaw Gaj
2018-08-28 13:01 ` Boris Brezillon
2018-08-28 13:01 ` Boris Brezillon
2018-08-29 7:41 ` Przemyslaw Gaj
2018-08-29 7:41 ` Przemyslaw Gaj
2018-08-28 13:03 ` Boris Brezillon
2018-08-28 13:03 ` Boris Brezillon
2018-08-30 13:57 ` vitor
2018-08-30 13:57 ` vitor
2018-08-30 19:00 ` Przemyslaw Gaj
2018-08-30 19:00 ` Przemyslaw Gaj
2018-09-03 9:33 ` vitor
2018-09-03 9:33 ` vitor
2018-09-04 11:03 ` Przemyslaw Gaj
2018-09-04 11:03 ` Przemyslaw Gaj
2018-09-06 12:43 ` Przemyslaw Gaj
2018-09-06 12:43 ` Przemyslaw Gaj
2018-09-06 12:59 ` Arnd Bergmann
2018-09-06 12:59 ` Arnd Bergmann
2018-09-06 13:14 ` Boris Brezillon
2018-09-06 13:14 ` Boris Brezillon
2018-09-06 13:20 ` Boris Brezillon
2018-09-06 13:20 ` Boris Brezillon
2018-09-06 13:45 ` Arnd Bergmann
2018-09-06 13:45 ` Arnd Bergmann
2018-09-06 13:50 ` vitor
2018-09-06 13:50 ` vitor
2018-09-06 14:14 ` Boris Brezillon
2018-09-06 14:14 ` Boris Brezillon
2018-09-06 15:17 ` vitor
2018-09-06 15:17 ` vitor
2018-09-06 16:06 ` Boris Brezillon
2018-09-06 16:06 ` Boris Brezillon
2018-09-06 16:17 ` Przemyslaw Gaj
2018-09-06 16:17 ` Przemyslaw Gaj
2018-09-10 16:16 ` vitor
2018-09-10 16:16 ` vitor
2018-09-07 7:51 ` Przemyslaw Gaj
2018-09-07 7:51 ` Przemyslaw Gaj
2018-09-06 13:47 ` Przemyslaw Gaj
2018-09-06 13:47 ` Przemyslaw Gaj
2018-09-06 14:09 ` Boris Brezillon
2018-09-06 14:09 ` Boris Brezillon
2018-09-06 14:20 ` Przemyslaw Gaj
2018-09-06 14:20 ` Przemyslaw Gaj
2018-07-19 15:29 ` [PATCH v6 02/10] docs: driver-api: Add I3C documentation Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 03/10] i3c: Add sysfs ABI spec Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 04/10] dt-bindings: i3c: Document core bindings Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 05/10] dt-bindings: i3c: Add macros to help fill I3C/I2C device's reg property Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 06/10] MAINTAINERS: Add myself as the I3C subsystem maintainer Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 07/10] i3c: master: Add driver for Cadence IP Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 08/10] dt-bindings: i3c: Document Cadence I3C master bindings Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 09/10] gpio: Add a driver for Cadence I3C GPIO expander Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-19 15:29 ` [PATCH v6 10/10] dt-bindings: gpio: Add bindings for Cadence I3C gpio expander Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-19 15:29 ` Boris Brezillon
2018-07-20 8:52 ` [PATCH v6 00/10] Add the I3C subsystem Arnd Bergmann
2018-07-20 8:52 ` Arnd Bergmann
2018-07-20 8:52 ` Arnd Bergmann
2018-07-20 9:57 ` Peter Rosin
2018-07-20 9:57 ` Peter Rosin
2018-07-20 9:57 ` Peter Rosin
2018-07-20 10:05 ` Boris Brezillon
2018-07-20 10:05 ` Boris Brezillon
2018-07-20 10:05 ` Boris Brezillon
2018-07-20 10:39 ` Peter Rosin
2018-07-20 10:39 ` Peter Rosin
2018-07-20 10:39 ` Peter Rosin
2018-07-20 10:12 ` Wolfram Sang
2018-07-20 10:12 ` Wolfram Sang
2018-07-20 10:57 ` Arnd Bergmann
2018-07-20 10:57 ` Arnd Bergmann
2018-07-20 10:57 ` Arnd Bergmann
2018-07-20 11:05 ` Wolfram Sang
2018-07-20 11:05 ` Wolfram Sang
2018-07-20 11:13 ` Peter Rosin
2018-07-20 11:13 ` Peter Rosin
2018-07-20 11:13 ` Peter Rosin
2018-07-20 11:28 ` Arnd Bergmann
2018-07-20 11:28 ` Arnd Bergmann
2018-07-20 11:28 ` Arnd Bergmann
2018-07-20 13:16 ` Peter Rosin
2018-07-20 13:16 ` Peter Rosin
2018-07-20 13:16 ` Peter Rosin
2018-07-20 15:41 ` Wolfram Sang [this message]
2018-07-20 15:41 ` Wolfram Sang
2018-07-24 14:14 ` Arnd Bergmann
2018-07-24 14:14 ` Arnd Bergmann
2018-07-24 14:14 ` Arnd Bergmann
2018-07-24 15:57 ` Wolfram Sang
2018-07-24 15:57 ` Wolfram Sang
2018-07-24 16:04 ` Arnd Bergmann
2018-07-24 16:04 ` Arnd Bergmann
2018-07-24 16:04 ` Arnd Bergmann
2018-07-24 20:22 ` Wolfram Sang
2018-07-24 20:22 ` Wolfram Sang
2018-07-24 16:07 ` Boris Brezillon
2018-07-24 16:07 ` Boris Brezillon
2018-07-24 16:07 ` Boris Brezillon
2018-07-20 13:17 ` Boris Brezillon
2018-07-20 13:17 ` Boris Brezillon
2018-07-20 13:17 ` Boris Brezillon
2018-07-24 14:03 ` Arnd Bergmann
2018-07-24 14:03 ` Arnd Bergmann
2018-07-24 14:03 ` Arnd Bergmann
2018-07-24 14:28 ` Boris Brezillon
2018-07-24 14:28 ` Boris Brezillon
2018-07-24 14:28 ` Boris Brezillon
2018-07-24 15:05 ` Arnd Bergmann
2018-07-24 15:05 ` Arnd Bergmann
2018-07-24 15:05 ` Arnd Bergmann
2018-07-24 15:15 ` Geert Uytterhoeven
2018-07-24 15:15 ` Geert Uytterhoeven
2018-07-24 15:15 ` Geert Uytterhoeven
2018-07-24 15:40 ` Arnd Bergmann
2018-07-24 15:40 ` Arnd Bergmann
2018-07-24 15:40 ` Arnd Bergmann
2018-07-24 15:46 ` Geert Uytterhoeven
2018-07-24 15:46 ` Geert Uytterhoeven
2018-07-24 15:46 ` Geert Uytterhoeven
2018-07-24 15:58 ` Arnd Bergmann
2018-07-24 15:58 ` Arnd Bergmann
2018-07-24 15:58 ` Arnd Bergmann
2018-07-24 16:14 ` Boris Brezillon
2018-07-24 16:14 ` Boris Brezillon
2018-07-24 16:14 ` Boris Brezillon
2018-07-24 16:25 ` Arnd Bergmann
2018-07-24 16:25 ` Arnd Bergmann
2018-07-24 16:25 ` Arnd Bergmann
2018-07-24 16:54 ` Boris Brezillon
2018-07-24 16:54 ` Boris Brezillon
2018-07-24 16:54 ` Boris Brezillon
2018-07-24 20:21 ` Arnd Bergmann
2018-07-24 20:21 ` Arnd Bergmann
2018-07-24 20:21 ` Arnd Bergmann
2018-07-24 16:04 ` Wolfram Sang
2018-07-24 16:04 ` Wolfram Sang
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=20180720154132.2fwmwpiwtxa73ljf@ninjato \
--to=wsa@the-dreams.de \
--cc=Vitor.Soares@synopsys.com \
--cc=Xiang.Lin@synaptics.com \
--cc=adouglas@cadence.com \
--cc=agolec@cadence.com \
--cc=alicja@cadence.com \
--cc=arnd@arndb.de \
--cc=bfolta@cadence.com \
--cc=boris.brezillon@bootlin.com \
--cc=corbet@lwn.net \
--cc=cwronka@cadence.com \
--cc=devicetree@vger.kernel.org \
--cc=dkos@cadence.com \
--cc=galak@codeaurora.org \
--cc=geert@linux-m68k.org \
--cc=gregkh@linuxfoundation.org \
--cc=ijc+devicetree@hellion.org.uk \
--cc=linus.walleij@linaro.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=nm@ti.com \
--cc=nsekhar@ti.com \
--cc=pawel.moll@arm.com \
--cc=peda@axentia.se \
--cc=pgaj@cadence.com \
--cc=psroka@cadence.com \
--cc=rafalc@cadence.com \
--cc=robh+dt@kernel.org \
--cc=sureshp@cadence.com \
--cc=thomas.petazzoni@bootlin.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.