linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* MPC823: i2c-algo-8xx read interrupt?
@ 2002-02-08 15:18 bart
  2002-02-08 17:04 ` Dan Malek
  0 siblings, 1 reply; 8+ messages in thread
From: bart @ 2002-02-08 15:18 UTC (permalink / raw)
  To: Embedded Linux PPC List, dmalek


Hi,

When testing with i2c reading an eeprom on a MPC823e I get the message "IIC
read; complete but rbuf empty". IMHO this is because the interrupt in the TX
buffer is enabled intead of the the interrupt of the RX buffer. Is this a bug
or is there a reason behind this?

Best regards,
		Bart Thissen,	Ardis Technologies bv


i2c-algo-8xx.c: cpm_iic_read

Original (with TX interrupt and warning)

	tbdf->cbd_datlen = count + 1;
	tbdf->cbd_sc =
		BD_SC_READY | BD_SC_INTRPT | BD_SC_LAST |
		BD_SC_WRAP | BD_IIC_START;

	rbdf->cbd_datlen = 0;
	rbdf->cbd_bufaddr = __pa(buf);
	rbdf->cbd_sc = BD_SC_EMPTY | BD_SC_WRAP;



With RX interrupt (without warning):

	tbdf->cbd_datlen = count + 1;
	tbdf->cbd_sc =
		BD_SC_READY | BD_SC_LAST |
		BD_SC_WRAP | BD_IIC_START;

	rbdf->cbd_datlen = 0;
	rbdf->cbd_bufaddr = __pa(buf);
	rbdf->cbd_sc = BD_SC_EMPTY | BD_SC_WRAP | BD_SC_INTRPT;

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 8+ messages in thread
* RE: MPC823: i2c-algo-8xx read interrupt?
@ 2002-02-11 15:49 Pergola, Michael
  0 siblings, 0 replies; 8+ messages in thread
From: Pergola, Michael @ 2002-02-11 15:49 UTC (permalink / raw)
  To: 'Dan Malek', bart; +Cc: Alex Zeffertt, Embedded Linux PPC List, dmalek


	>> The way I interpret the data sheet (I assume the 823 and 860 are
similar) is that I get the TX
	>> interrupt when the I2C address is sent plus the two character
times. The rest of the TX buffer
	>> is just a place holder and will not be sent.

	>Not correct.  The data isn't sent on the data lines, but the CPM
decrements the
	>counter and uses it to time the receive transfer.  The I2C thinks
it is sending
	>something, but the bits just fall off the sand into a bucket.  It
is used to generate
	>the timing of the clock and count how many receive bytes you wish
to acquire.

According to the MPC823e User's Manual:

"The I2C receiver and transmitter are double-buffered, which corresponds to
an effective
FIFO size of 2 characters. The MPC823e I2C bit 0 (MSB) is shifted out
first." pg. 16-456

I interpret this to account for the additional two character clock times
you'll need to do.

Just my $.02,
     Michael Pergola
     Software Engineer
     Baltimore, MD  21236     (410) 931-6778 x4259


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2002-02-11 16:19 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-02-08 15:18 MPC823: i2c-algo-8xx read interrupt? bart
2002-02-08 17:04 ` Dan Malek
     [not found]   ` <3C640C11.4080407@cambridgebroadband.com>
     [not found]     ` <3C6410F1.4000104@embeddededge.com>
2002-02-11 12:13       ` bart
     [not found]     ` <3C6776CC.634AB65D@ardistech.com>
2002-02-11 15:30       ` Dan Malek
2002-02-11 15:45         ` bart
2002-02-11 16:02           ` Dan Malek
2002-02-11 16:19             ` bart
  -- strict thread matches above, loose matches on Subject: below --
2002-02-11 15:49 Pergola, Michael

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