[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: How does clk gated work?

I think that the problem is that you set error to ignore. With
error set to igonre the synchronous serial port continues to
tranmsit data even if there is no data available for transmission.

-----Original Message-----
From: owner-dev-etrax@xxxxxxx.com]On">mailto:owner-dev-etrax@xxxxxxx.com]On
Behalf Of Anders Hasselqvist
Sent: Thursday, April 25, 2002 2:45 PM
To: dev-etrax
Subject: RE: How does clk gated work?

Hi again,

We're running in manual mode. We are not using your code
except for the defines. It is a really basic driver. It just
writes a 32 bit value to the transmitter. No DMA or interrupts.

This is our R_SYNC_SERIAL1_CTRL:
*R_SYNC_SERIAL1_CTRL = sync_ctrl_data_shadow =
          IO_STATE(R_SYNC_SERIAL1_CTRL, tr_baud, c115k2Hz)      |
          IO_STATE(R_SYNC_SERIAL1_CTRL, dma_enable, off)        |
          IO_STATE(R_SYNC_SERIAL1_CTRL, mode, master_output)    |
          IO_STATE(R_SYNC_SERIAL1_CTRL, error, ignore)          |
          IO_STATE(R_SYNC_SERIAL1_CTRL, rec_enable, disable)    |
          IO_STATE(R_SYNC_SERIAL1_CTRL, f_synctype, normal)     |
          IO_STATE(R_SYNC_SERIAL1_CTRL, f_syncsize, bit)        |
          IO_STATE(R_SYNC_SERIAL1_CTRL, f_sync, on)             |
          IO_STATE(R_SYNC_SERIAL1_CTRL, clk_mode, gated)        |
          IO_STATE(R_SYNC_SERIAL1_CTRL, clk_halt, stopped)      |
          IO_STATE(R_SYNC_SERIAL1_CTRL, bitorder, msb)          |
          IO_STATE(R_SYNC_SERIAL1_CTRL, tr_enable, disable)     |
          IO_STATE(R_SYNC_SERIAL1_CTRL, wordsize, size32bit)    |
          IO_STATE(R_SYNC_SERIAL1_CTRL, buf_empty, lmt_8)       |
          IO_STATE(R_SYNC_SERIAL1_CTRL, buf_full, lmt_8)        |
          IO_STATE(R_SYNC_SERIAL1_CTRL, flow_ctrl, disabled)    |
          IO_STATE(R_SYNC_SERIAL1_CTRL, clk_polarity, neg)      |
          IO_STATE(R_SYNC_SERIAL1_CTRL, frame_polarity, normal) |
          IO_STATE(R_SYNC_SERIAL1_CTRL, status_polarity, normal)|
          IO_STATE(R_SYNC_SERIAL1_CTRL, clk_driver, inverted)   |
          IO_STATE(R_SYNC_SERIAL1_CTRL, frame_driver, normal)   |
          IO_STATE(R_SYNC_SERIAL1_CTRL, status_driver, normal)  |
          IO_STATE(R_SYNC_SERIAL1_CTRL, def_out0, low);

And in open() of our driver
 SETS(sync_ctrl_data_shadow, R_SYNC_SERIAL1_CTRL, clk_halt, running);
 SETS(sync_ctrl_data_shadow, R_SYNC_SERIAL1_CTRL, tr_enable, enable);
 *R_SYNC_SERIAL1_CTRL = sync_ctrl_data_shadow;

We disabled serial port 1 in menuconfig.

We are using your devboard for developement.

Anders & Björn

On Thu, 25 Apr 2002, Mikael Starvik wrote:
> Hi,
> Are you running in DMA or manual mode? Can you send me the values
> you write to R_SYNC_SERIAL1_CTRL? I know that I have tested
> gated clock once and that it worked as expected.
> Note that you have to disable serial port 1 in kernelconfig
> to run synchronous serial port 1. I can verify your kernel-
> config if you send me a copy. Are you running on a developer
> board or have you built your own PCB?
> /Mikael