> -----Original Message-----
> From: Philby John [mailto:[email protected]]
> Sent: Monday, March 08, 2010 7:37 AM
> To: Griffis, Brad
> Cc: Nori, Sekhar; [email protected]; linux-
> [email protected]
> Subject: Re: [PATCH 6/6] i2c: davinci: bus recovery procedure to clear the
> bus
> 
> I did go through your document, but what does "free data format" mean?
> It would be good to expand the procedure that enables you to move into
> this mode. If this wouldn't require modfying pinmux settings shouldn't
> it be part of the core i2c implementation?

Just to make sure my point was clear, I think the GPIO method is simpler/easier 
if you're just looking at a single device and assuming that device has muxed 
the I2C with GPIO.  That said, my method is a little more 
complicated/convoluted when looking at a single device, but I think the code 
would scale better across the entire Davinci tree since it requires no 
knowledge of whether the pin-muxing option is available and how the pin-muxing 
is implemented for that particular device.

You enter the "free data format" mode by setting the FDF bit in the ICMDR 
register.  It is described in Section 2.6.3 of the OMAP-L138 I2C Guide:

http://www.ti.com/lit/sprufl9

The advantage of using this mode is that you would not require any 
device-specific pin-muxing knowledge/changes.  The entire recovery can occur 
within the context of the I2C controller.

So to do a read in the "free data format" mode you would write ICMDR.FDF = 1 
(free data format), ICMDR.TRX = 0 (read), ICMDR.STT = 1 (start), ICMDR.STP = 1. 
 This should cause it to clock in 8 bits of data plus an ack, freeing up the 
bus.

Brad
--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to