From: Vincenzo Frascino <vincenzo.frascino-qxv4g6HH51o@public.gmane.org>
To: Viresh KUMAR <viresh.kumar-qxv4g6HH51o@public.gmane.org>
Cc: Salvatore DE DOMINICIS
<salvatore.dedominicis-qxv4g6HH51o@public.gmane.org>,
"khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org"
<khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>,
"ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org"
<ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org>,
"w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org"
<w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
viresh kumar
<viresh.linux-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Rajeev KUMAR <rajeev-dlh.kumar-qxv4g6HH51o@public.gmane.org>,
Shubhrajyoti Datta
<omaplinuxkernel-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Laxman Dewangan
<ldewangan-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
Armando VISCONTI <armando.visconti-qxv4g6HH51o@public.gmane.org>,
Shiraz HASHIM <shiraz.hashim-qxv4g6HH51o@public.gmane.org>,
Vipin KUMAR <vipin.kumar-qxv4g6HH51o@public.gmane.org>,
Deepak SIKRI <deepak.sikri-qxv4g6HH51o@public.gmane.org>,
Vipul Kumar SAMAR <vipulkumar.samar-qxv4g6HH51o@public.gmane.org>,
Amit VIRDI <Amit.VIRDI-qxv4g6HH51o@public.gmane.org>,
Pratyush ANAND <pratyush.anand-qxv4g6HH51o@public.gmane.org>,
Bhupesh SHARMA <bhupesh.sharma-qxv4g6HH51o@public.gmane.org>,
Bhavna YADAV <bhavna.yadav-qxv4g6HH51o@public.gmane.org>,
Mirko GARDI <mirko.gardi-qxv4g6HH51o@public.gmane.org>,
"linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Giuseppe BARBA <giuseppe.barba-qxv4g6HH51o@public.gmane.org>
Subject: Re: [PATCH 2/2] i2c/designware: Provide optional i2c bus recovery function
Date: Wed, 29 Feb 2012 09:59:31 +0100 [thread overview]
Message-ID: <4F4DE8F3.6030407@st.com> (raw)
In-Reply-To: <4F4DB073.9030906-qxv4g6HH51o@public.gmane.org>
Hi Viresh,
Il 29/02/2012 05:58, Viresh KUMAR ha scritto:
> On 2/28/2012 7:25 PM, Salvatore DE DOMINICIS wrote:
>> What happens if the bus is still stuck?
>> Do we need to check also for a change in SDA line?
>> I mean, if some device is not behaving correctly and does not change the SDA
>> (as mandated by standard) then we don't solve the issue.
>>
> I also wanted to ask this question over list, so that experienced people
> can suggest what should we do here.
>
> Following is mentioned in: UM10204: I2C-bus specification and user manual
> http://www.nxp.com/documents/user_manual/UM10204.pdf
>
> "3.1.16 Bus clear
>
> In the unlikely event where the clock (SCL) is stuck LOW, the preferential procedure is to
> reset the bus using the HW reset signal if your I2C devices have HW reset inputs. If the
> I2C devices do not have HW reset inputs, cycle power to the devices to activate the
> mandatory internal Power-On Reset (POR) circuit.
>
> If the data line (SDA) is stuck LOW, the master should send nine clock pulses. The device
> that held the bus LOW should release it sometime within those nine clocks. If not, then
> use the HW reset or cycle power to clear the bus."
>
>
> It says that the hang situation is "SDA is stuck LOW" and 9 clock pulses should
> be enough to get it out of hang (Can somebody tell me how this figure of "9"
> derived?)
>
> SDA will become High, but what guarantees that this will not be low immediately
> after that, while we are reading SDA line? Or Is reading SDA line after 9 pulses
> sufficient?
>
>> static int i2c_device_probe(struct device *dev)
>>> {
>> + /* bus recovery specific initialization */
>>> + if (!adap->recover_bus) {
>>> + if (!adap->clock_cnt || !adap->clock_rate)
>>> + goto warn_no_recovery;
> I will also change this code to something like:
>
> if (!adap->recover_bus) {
> if (!adap->clock_cnt)
> adap->clock_cnt = 9;
>
> if (!adap->clock_rate)
> goto warn_no_recovery;
>
I think this is ok. It covers the standard situation and the experimental foundings.
Regards,
Vincenzo
next prev parent reply other threads:[~2012-02-29 8:59 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-24 11:31 [PATCH 1/2] i2c/busses: Add PM support Viresh Kumar
[not found] ` <0ca1d8990c23a45193a32d0e7e889620b995af59.1330082915.git.viresh.kumar-qxv4g6HH51o@public.gmane.org>
2012-02-24 11:31 ` [PATCH 2/2] i2c/designware: Provide optional i2c bus recovery function Viresh Kumar
[not found] ` <351031347b845920a0ea78e7491d955137e3d7aa.1330082915.git.viresh.kumar-qxv4g6HH51o@public.gmane.org>
2012-02-27 7:21 ` Shubhrajyoti Datta
[not found] ` <CAM=Q2cudYcSqAKk4qNg7MQxRBCkJ-XXXSL-Bg=sZ2+hvS_Qcxw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-02-27 7:27 ` Laxman Dewangan
[not found] ` <4F4B3072.6050903-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-02-27 8:10 ` Rajeev kumar
[not found] ` <4F4B3A62.4080409-qxv4g6HH51o@public.gmane.org>
2012-02-27 8:22 ` Laxman Dewangan
[not found] ` <4F4B3D54.4010502-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-02-27 8:41 ` Rajeev kumar
[not found] ` <4F4B41CF.7080603-qxv4g6HH51o@public.gmane.org>
2012-02-27 8:45 ` Laxman Dewangan
2012-02-27 9:12 ` Shubhrajyoti Datta
[not found] ` <CAM=Q2cs-nCuSmkBFtv4odbqoRJcPkXk4Rz-H=9S6RDG3Z8kcEQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-02-27 9:19 ` Laxman Dewangan
2012-02-27 10:10 ` Rajeev kumar
[not found] ` <4F4B569F.3080607-qxv4g6HH51o@public.gmane.org>
2012-02-27 10:27 ` Viresh Kumar
[not found] ` <4F4B5A9A.4050303-qxv4g6HH51o@public.gmane.org>
2012-02-28 13:23 ` viresh kumar
[not found] ` <CAOh2x=nfNGpBmHVd1bPT9+AezDMEjaC4ktj4hX9=yWg2_k7r3Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-02-28 13:55 ` Salvatore DE DOMINICIS
[not found] ` <4E01B0DA4B09044DB320A047A7063F8DCA93DAA13E-+EwDPpWUVoSs+H57zxxw29BPR1lH4CV8@public.gmane.org>
2012-02-28 14:05 ` Vincenzo Frascino
2012-02-29 4:58 ` Viresh Kumar
[not found] ` <4F4DB073.9030906-qxv4g6HH51o@public.gmane.org>
2012-02-29 8:59 ` Vincenzo Frascino [this message]
2012-03-01 13:45 ` Michael Lawnick
2012-02-29 11:52 ` Laxman Dewangan
[not found] ` <4F4E118B.2030403-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-02-29 11:58 ` Viresh Kumar
[not found] ` <4F4E12D9.90909-qxv4g6HH51o@public.gmane.org>
2012-02-29 12:18 ` Laxman Dewangan
[not found] ` <4F4E1797.7010503-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-02-29 17:58 ` viresh kumar
[not found] ` <CAOh2x=mrO+7UBK=nbGLQsVzj5YmOfuh1RAiA4qznXe8nt6pRKA@mail.gmail.com>
[not found] ` <4F4F12EC.1020703@nvidia.com>
[not found] ` <4F4F12EC.1020703-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-03-01 6:35 ` Viresh Kumar
2012-07-02 5:58 ` Rajeev kumar
[not found] ` <4FF1388B.4030108-qxv4g6HH51o@public.gmane.org>
2012-07-02 6:32 ` Shubhrajyoti Datta
[not found] ` <CAM=Q2ct+z_bGYvaOvAQ=AEzOSNh4Uob-HY-DemsYeS-mB-juEg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-07-02 6:55 ` Rajeev kumar
2012-02-27 9:12 ` Vincenzo Frascino
2012-03-23 8:10 ` [PATCH 1/2] i2c/busses: Add PM support Viresh Kumar
2012-04-22 18:24 ` 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=4F4DE8F3.6030407@st.com \
--to=vincenzo.frascino-qxv4g6hh51o@public.gmane.org \
--cc=Amit.VIRDI-qxv4g6HH51o@public.gmane.org \
--cc=armando.visconti-qxv4g6HH51o@public.gmane.org \
--cc=ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org \
--cc=bhavna.yadav-qxv4g6HH51o@public.gmane.org \
--cc=bhupesh.sharma-qxv4g6HH51o@public.gmane.org \
--cc=deepak.sikri-qxv4g6HH51o@public.gmane.org \
--cc=giuseppe.barba-qxv4g6HH51o@public.gmane.org \
--cc=khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org \
--cc=ldewangan-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
--cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mirko.gardi-qxv4g6HH51o@public.gmane.org \
--cc=omaplinuxkernel-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=pratyush.anand-qxv4g6HH51o@public.gmane.org \
--cc=rajeev-dlh.kumar-qxv4g6HH51o@public.gmane.org \
--cc=salvatore.dedominicis-qxv4g6HH51o@public.gmane.org \
--cc=shiraz.hashim-qxv4g6HH51o@public.gmane.org \
--cc=vipin.kumar-qxv4g6HH51o@public.gmane.org \
--cc=vipulkumar.samar-qxv4g6HH51o@public.gmane.org \
--cc=viresh.kumar-qxv4g6HH51o@public.gmane.org \
--cc=viresh.linux-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=w.sang-bIcnvbaLZ9MEGnE8C9+IrQ@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 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).