[#3817] secondary SPORT channel enable doesn't work
Submitted By: Jim Lee
Open Date
2008-01-07 13:01:39 Close Date
2008-04-03 18:43:37
Priority:
Low Assignee:
Cliff Cai
Status:
Closed Fixed In Release:
N/A
Found In Release:
2006R2-RC2 Release:
2.6.16.27-ADI-2006R2
Category:
Drivers Board:
Custom
Processor:
BF532 Silicon Revision:
Is this bug repeatable?:
Yes Resolution:
Fixed
Uboot version or rev.:
1.1.3 Toolchain version or rev.:
App binary format:
N/A
Summary: secondary SPORT channel enable doesn't work
Details:
In file ../drivers/char/bfin_sport.c
The operation for enabling the secondary channel on the SPORT's tcr2 register (bit TXSE) needs to be left-shifted 8 bits.
[snip]
if (config->mode == TDM_MODE) {
if(config->channels & 0x7 || config->channels>32)
return -EINVAL;
sport_set_multichannel(dev->regs, config->channels, 1, config->frame_delay);
} else if (config->mode == I2S_MODE) {
tcr1 |= (TCKFE | TFSR);
tcr2 |= TSFSE ;
rcr1 |= (RCKFE | RFSR);
rcr2 |= RSFSE;
} else {
tcr1 |= (config->lsb_first << 4) | (config->fsync << 10) | \
(config->data_indep << 11) | (config->act_low << 12) | \
(config->late_fsync << 13) | (config->tckfe << 14) ;
tcr2 |= config->sec_en;
[snip]
tcr2 |= config->sec_en; // will poke the value in the LSB, 8 bits away from TXSE.
suggested fix is
if ( config->sec_en ) {
tcr2 |= TXSE;
}
Jim
Follow-ups
--- Cliff Cai 2008-01-21 22:25:47
Hi Jim,
Thanks a lot,it was fixed now.
Cliff
Files
Changes
Commits
Dependencies
Duplicates
Associations
Tags
File Name File Type File Size Posted By
No Files Were Found