All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 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.