- Subject: Re: [PATCH 2/2] i2c/designware: Provide optional i2c bus recovery function
- From: Michael Lawnick <ml.lawnick@xxxxxx>
- Date: Thu, 01 Mar 2012 14:45:49 +0100
- Cc: Salvatore DE DOMINICIS <salvatore.dedominicis@xxxxxx>, "khali@xxxxxxxxxxxx" <khali@xxxxxxxxxxxx>, "ben-linux@xxxxxxxxx" <ben-linux@xxxxxxxxx>, "w.sang@xxxxxxxxxxxxxx" <w.sang@xxxxxxxxxxxxxx>, viresh kumar <viresh.linux@xxxxxxxxx>, Rajeev KUMAR <rajeev-dlh.kumar@xxxxxx>, Shubhrajyoti Datta <omaplinuxkernel@xxxxxxxxx>, Laxman Dewangan <ldewangan@xxxxxxxxxx>, Armando VISCONTI <armando.visconti@xxxxxx>, Shiraz HASHIM <shiraz.hashim@xxxxxx>, Vipin KUMAR <vipin.kumar@xxxxxx>, Deepak SIKRI <deepak.sikri@xxxxxx>, Vipul Kumar SAMAR <vipulkumar.samar@xxxxxx>, Amit VIRDI <Amit.VIRDI@xxxxxx>, Pratyush ANAND <pratyush.anand@xxxxxx>, Bhupesh SHARMA <bhupesh.sharma@xxxxxx>, Bhavna YADAV <bhavna.yadav@xxxxxx>, Vincenzo FRASCINO <Vincenzo.FRASCINO@xxxxxx>, Mirko GARDI <mirko.gardi@xxxxxx>, "linux-i2c@xxxxxxxxxxxxxxx" <linux-i2c@xxxxxxxxxxxxxxx>, Giuseppe BARBA <giuseppe.barba@xxxxxx>
- In-reply-to: <4F4DB073.9030906@st.com>
- References: <0ca1d8990c23a45193a32d0e7e889620b995af59.1330082915.git.viresh.kumar@st.com> <351031347b845920a0ea78e7491d955137e3d7aa.1330082915.git.viresh.kumar@st.com> <CAM=Q2cudYcSqAKk4qNg7MQxRBCkJ-XXXSL-Bg=sZ2+hvS_Qcxw@mail.gmail.com> <4F4B3072.6050903@nvidia.com> <CAM=Q2cs-nCuSmkBFtv4odbqoRJcPkXk4Rz-H=9S6RDG3Z8kcEQ@mail.gmail.com> <4F4B569F.3080607@st.com> <4F4B5A9A.4050303@st.com>,<CAOh2x=nfNGpBmHVd1bPT9+AezDMEjaC4ktj4hX9=yWg2_k7r3Q@mail.gmail.com> <4E01B0DA4B09044DB320A047A7063F8DCA93DAA13E@SAFEX1MAIL4.st.com> <4F4DB073.9030906@st.com>
- User-agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20120216 Thunderbird/10.0.2
Am 29.02.2012 05:58, schrieb Viresh Kumar:
...
> 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?)
After 8 data bits there is direction change and ACK/NACK sent.
AFAICS the number of clocks needed:
The situation only occurs if slave was in read mode and drives a data-0.
It will (only) see a NACK when it has driven the rest of current bits,
fall back to idle and remaining cycles will be ignored.
If master stops on first data-1 of slave, slave might ignore changes on
SDA (iow start/stop flags) as it is still in read mode, i.e. driving
actively data and not listening to SDA.
>
> 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?
...
SDA may not go low while clock is high. This would be a violation of
protocol. Except start/stop flag of master SDA transitions are always
done while clock is low.
HTH
--
Michael
--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[LM Sensors]
[Linux USB Devel]
[Linux Media]
[Video for Linux]
[Linux Audio Users]
[Photo]
[Yosemite News]
[Yosemite Photos]
[Free Online Dating]
[Linux Kernel]
[Linux SCSI]
[XFree86]