TDM on mpc823

Dan Malek dan at
Fri Apr 20 04:52:12 EST 2001

Kyle Harris wrote:

> Sorry if this is off-topic (not really linux related).

It's OK....It's an education about how to use Linux with a TDM
interface :-).

> But as soon as I go above 5 bytes, the TDM fails to send the correct
> number and sometimes stuffs the bits in an incorrect slot.

I'm going to assume you are using an SMC (since SMC2 is a logical
choice).  Here is another reason why you don't use the LAST indicator.
Unlike the SCC, the SMC doesn't start to load it's FIFO from the BD
until the TDM tells it the frame pulse has arrived.  Because of this,
you can't get the first slot of the TDM to transmit from an SMC after
it achieves synchronization.  You will notice my cs4218 driver
compensates for this by shifting the data in the buffer (by moving
the pointer) on the first buffer of a transfer.  Once the world is
streaming, the SMC can move through the buffers and get the first
TDM slot.  If you are using a processor with an available SCC (like
SCC3 on the 823e/850), I would use that instead of the SMC.  The SCC
pre-loads the FIFO, and behaves as you expect.  FYI, the SMC is useful
for managing the ISDN D-channel on either IDL or GCI, which isn't the
first slot and is low bandwidth.

	-- Dan

** Sent via the linuxppc-embedded mail list. See

More information about the Linuxppc-embedded mailing list