* [U-Boot-Users] i2c_init - is this a bug?
@ 2006-12-20 8:46 Michael
2006-12-20 16:36 ` Timur Tabi
0 siblings, 1 reply; 2+ messages in thread
From: Michael @ 2006-12-20 8:46 UTC (permalink / raw)
To: u-boot
Hi, guys.
Here is something suspicious about i2c_init(int speed, int slaveadd),
in i2c.c and fsl_i2c.c -
the speed parameter passed to it is never used, instead the value is hard-coded.
/* set clock */
writeb(0x3f, &I2C->fdr);
Sets the speed.
Shouldn't it be writeb(speed, &I2C->fdr); , with speed being the divider value?
Regards,
Mic
^ permalink raw reply [flat|nested] 2+ messages in thread* [U-Boot-Users] i2c_init - is this a bug?
2006-12-20 8:46 [U-Boot-Users] i2c_init - is this a bug? Michael
@ 2006-12-20 16:36 ` Timur Tabi
0 siblings, 0 replies; 2+ messages in thread
From: Timur Tabi @ 2006-12-20 16:36 UTC (permalink / raw)
To: u-boot
Michael wrote:
> Hi, guys.
> Here is something suspicious about i2c_init(int speed, int slaveadd),
> in i2c.c and fsl_i2c.c -
> the speed parameter passed to it is never used, instead the value is hard-coded.
>
> /* set clock */
> writeb(0x3f, &I2C->fdr);
>
> Sets the speed.
> Shouldn't it be writeb(speed, &I2C->fdr); , with speed being the divider value?
Yes, the code is currently wrong, but no, 'speed' should not be the divider value.
I have code which calculates the correct value for the FDR based on the real
speed, the bus clock rate, and a CPU-specific table lookup. I just haven't
gotten around to cleaning it up and submitting it yet. It's on my to-do list
for next month.
3F is a conservative value for the bus speed that (so far) works for all
Freescale boards. The only drawback is that I2C operations are not as fast as
they could be. However, the difference is practically imperceptible, at least
in U-Boot. If you were doing heavy I2C I/O in Linux, then you might notice
something.
--
Timur Tabi
Linux Kernel Developer @ Freescale
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2006-12-20 16:36 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-12-20 8:46 [U-Boot-Users] i2c_init - is this a bug? Michael
2006-12-20 16:36 ` Timur Tabi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox