Hello!
While trying to hunt down the problem with the not working mixer of the iPaq
sound module I think I found a little problem in the L3_sendbit routine. The
original code looks like this:
GPCR = L3_ClockPin;
if (bit & 1)
GPSR = L3_DataPin;
else
GPCR = L3_DataPin;
/* Assumes L3_DataSetupTime < L3_ClockLowTime */
udelay(L3_ClockLowTime);
GPSR = L3_ClockPin;
udelay(L3_ClockHighTime);
which lowers the clock pin first and only then setups the data pin. According
to the UDA1341 manual we have to setup the data first, hold it for the
CLockLowTime and then lower the clock, like this:
/* Assuming data is sampled at the falling edge of CLK
we must setup the data first, wait for it to stabalize and
only then lower the CLK
(see page 12 of UDA1341 reference manual) */
if (bit & 1)
GPSR = L3_DataPin;
else
GPCR = L3_DataPin;
/* Assumes L3_DataSetupTime < L3_ClockLowTime */
/* Wait for data setup then lower clock */
udelay(L3_ClockLowTime);
GPCR = L3_ClockPin;
/* now wait for ClockLow and raise clock again */
udelay(L3_ClockHighTime);
GPSR = L3_ClockPin;
Maybe this should be changed (or is there a reason to do it the original way?).
Anyway, I tried this on my iPaq and it did not make the mixer work :( Every
time the mixer is changed a low clicking noise can be heard and this click
becomes more silent (!) when the volume is increased.
Just thought I should share this with you...
CU
nils faerber
PS: Just while we are at it: Using the kernel from v0.13 removing the
sa1100-uda1341 module does not work (and especially a following insmod fails
with "device or resource busy").
-- kernel concepts Engel & Faerber GbR Tel: +49-271-771091-12 Dreisbachstr. 24 Fax: +49-271-771091-19 D-57250 Netphen D1 : +49-170-2729106 --Received on Sun Sep 17 10:54:38 2000
This archive was generated by hypermail 2.1.8 : Tue May 04 2004 - 09:43:42 EDT