From: Lars-Peter Clausen <lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
To: Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org>,
Harini Katakam
<harinikatakamlinux-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
"grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org"
<grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
"robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org"
<robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Pawel Moll <Pawel.Moll-5wv7dgnIgG8@public.gmane.org>,
"ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org"
<ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org>,
"galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org"
<galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>,
"michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org"
<michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>,
"soren.brinkmann-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org"
<soren.brinkmann-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>,
"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
"linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"vishnum-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org"
<vishnum-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
Subject: Re: [PATCH 3/4] devicetree: bindings: Add defeature-repeated-start property for Cadence I2C
Date: Tue, 02 Dec 2014 16:12:48 +0100 [thread overview]
Message-ID: <547DD6F0.6060006@metafoo.de> (raw)
In-Reply-To: <20141202141548.GA5883@katana>
On 12/02/2014 03:15 PM, Wolfram Sang wrote:
>>> What do you do when disable repeated start? Sending STOP and START? If
>>> so, this is really something different than repeated start. By using
>>> I2C_FUNC_I2C a user expects repeated start, so if the HW does not
>>> support it, we should say so and don't try to emulate it with something
>>> different.
>>
>> Yes, we send stop.
>
> As said before, this is wrong. Another master could interfere between
> the messages when using stop+start. This is no replacement for repeated
> start.
More importantly a lot of I2C slaves also reset their internal state machine
on a stop. So e.g. if reading a register is implemented by doing
start,write,repeated start,read,stop and you replace that with
start,write,stop,start,read,stop you'll always read register zero instead of
the register you wanted to read.
- Lars
WARNING: multiple messages have this Message-ID (diff)
From: lars@metafoo.de (Lars-Peter Clausen)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/4] devicetree: bindings: Add defeature-repeated-start property for Cadence I2C
Date: Tue, 02 Dec 2014 16:12:48 +0100 [thread overview]
Message-ID: <547DD6F0.6060006@metafoo.de> (raw)
In-Reply-To: <20141202141548.GA5883@katana>
On 12/02/2014 03:15 PM, Wolfram Sang wrote:
>>> What do you do when disable repeated start? Sending STOP and START? If
>>> so, this is really something different than repeated start. By using
>>> I2C_FUNC_I2C a user expects repeated start, so if the HW does not
>>> support it, we should say so and don't try to emulate it with something
>>> different.
>>
>> Yes, we send stop.
>
> As said before, this is wrong. Another master could interfere between
> the messages when using stop+start. This is no replacement for repeated
> start.
More importantly a lot of I2C slaves also reset their internal state machine
on a stop. So e.g. if reading a register is implemented by doing
start,write,repeated start,read,stop and you replace that with
start,write,stop,start,read,stop you'll always read register zero instead of
the register you wanted to read.
- Lars
WARNING: multiple messages have this Message-ID (diff)
From: Lars-Peter Clausen <lars@metafoo.de>
To: Wolfram Sang <wsa@the-dreams.de>,
Harini Katakam <harinikatakamlinux@gmail.com>
Cc: Mark Rutland <mark.rutland@arm.com>,
"grant.likely@linaro.org" <grant.likely@linaro.org>,
"robh+dt@kernel.org" <robh+dt@kernel.org>,
Pawel Moll <Pawel.Moll@arm.com>,
"ijc+devicetree@hellion.org.uk" <ijc+devicetree@hellion.org.uk>,
"galak@codeaurora.org" <galak@codeaurora.org>,
"michal.simek@xilinx.com" <michal.simek@xilinx.com>,
"soren.brinkmann@xilinx.com" <soren.brinkmann@xilinx.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-i2c@vger.kernel.org" <linux-i2c@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"vishnum@xilinx.com" <vishnum@xilinx.com>
Subject: Re: [PATCH 3/4] devicetree: bindings: Add defeature-repeated-start property for Cadence I2C
Date: Tue, 02 Dec 2014 16:12:48 +0100 [thread overview]
Message-ID: <547DD6F0.6060006@metafoo.de> (raw)
In-Reply-To: <20141202141548.GA5883@katana>
On 12/02/2014 03:15 PM, Wolfram Sang wrote:
>>> What do you do when disable repeated start? Sending STOP and START? If
>>> so, this is really something different than repeated start. By using
>>> I2C_FUNC_I2C a user expects repeated start, so if the HW does not
>>> support it, we should say so and don't try to emulate it with something
>>> different.
>>
>> Yes, we send stop.
>
> As said before, this is wrong. Another master could interfere between
> the messages when using stop+start. This is no replacement for repeated
> start.
More importantly a lot of I2C slaves also reset their internal state machine
on a stop. So e.g. if reading a register is implemented by doing
start,write,repeated start,read,stop and you replace that with
start,write,stop,start,read,stop you'll always read register zero instead of
the register you wanted to read.
- Lars
next prev parent reply other threads:[~2014-12-02 15:12 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-02 10:05 [PATCH 0/4] Cadence I2C driver fixes Harini Katakam
2014-12-02 10:05 ` Harini Katakam
2014-12-02 10:05 ` Harini Katakam
2014-12-02 10:05 ` [PATCH 1/4] i2c: cadence: Handle > 252 byte transfers Harini Katakam
2014-12-02 10:05 ` Harini Katakam
[not found] ` <1417514749-24319-1-git-send-email-harinik-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
2014-12-02 10:05 ` [PATCH 2/4] i2c: cadence: Set the hardware time-out register to maximum value Harini Katakam
2014-12-02 10:05 ` Harini Katakam
2014-12-02 10:05 ` Harini Katakam
2014-12-03 11:28 ` Wolfram Sang
2014-12-03 11:28 ` Wolfram Sang
2014-12-02 10:05 ` [PATCH 3/4] devicetree: bindings: Add defeature-repeated-start property for Cadence I2C Harini Katakam
2014-12-02 10:05 ` Harini Katakam
2014-12-02 10:05 ` Harini Katakam
2014-12-02 11:19 ` Mark Rutland
2014-12-02 11:19 ` Mark Rutland
2014-12-02 12:13 ` Harini Katakam
2014-12-02 12:13 ` Harini Katakam
2014-12-02 12:13 ` Harini Katakam
[not found] ` <CAFcVECLtPx6shBXJbg9Uf_8fnhkMoO1zpoxGcdda7PSA7z_2rA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-12-02 12:52 ` Wolfram Sang
2014-12-02 12:52 ` Wolfram Sang
2014-12-02 12:52 ` Wolfram Sang
2014-12-02 13:10 ` Harini Katakam
2014-12-02 13:10 ` Harini Katakam
2014-12-02 13:10 ` Harini Katakam
[not found] ` <CAFcVECJwFoFd6GrmF282CG+fELnYb=FNCTDq=RYKky_dHha=Jg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2014-12-02 13:16 ` Wolfram Sang
2014-12-02 13:16 ` Wolfram Sang
2014-12-02 13:16 ` Wolfram Sang
2014-12-02 13:30 ` Harini Katakam
2014-12-02 13:30 ` Harini Katakam
2014-12-02 14:15 ` Wolfram Sang
2014-12-02 14:15 ` Wolfram Sang
2014-12-02 15:12 ` Lars-Peter Clausen [this message]
2014-12-02 15:12 ` Lars-Peter Clausen
2014-12-02 15:12 ` Lars-Peter Clausen
2014-12-02 10:05 ` [PATCH 4/4] i2c: cadence: Defeature repeated start based on devicetree property Harini Katakam
2014-12-02 10:05 ` Harini Katakam
2014-12-02 10:05 ` Harini Katakam
[not found] ` <1417514749-24319-5-git-send-email-harinik-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org>
2014-12-02 11:21 ` Mark Rutland
2014-12-02 11:21 ` Mark Rutland
2014-12-02 11:21 ` Mark Rutland
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=547DD6F0.6060006@metafoo.de \
--to=lars-qo5elluwu/uelga04laivw@public.gmane.org \
--cc=Pawel.Moll-5wv7dgnIgG8@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
--cc=grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=harinikatakamlinux-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
--cc=michal.simek-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=soren.brinkmann-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org \
--cc=vishnum-gjFFaj9aHVfQT0dZR+AlfA@public.gmane.org \
--cc=wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.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: 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.