> On Sat, Jun 30, 2007 at 10:46:55AM +0200, Leon Komlo?i wrote:
> > I'm trying to connect various IC's to IIC port on WRAP.1E board.
> > Without any success. IC's are Dallas DS1621,DS1631,DS1624.
> >
> >
> > Here is dmesg line:
> >
> > DS1621:
> > iic1: addr 0x48 22=0a 40=0a 41=0f 42=0a 43=0a 44=0a 45=0a 46=0a 47=0a
> > 48=0c 49=10 4a=c4 4b=01 4c=0e 4d=00 4e=d6 4f=00 51=0f a1=0f a2=0a a8=0c
> > a9=10 aa=c4 ac=8e ee=08
> >
> > DS1631
> > iic1: addr 0x48 22=0a 40=0a 41=0f 42=0a 43=0a 44=0a 45=0a 46=0a 47=0a
> > 48=0c 49=10 4a=c4 4b=01 4c=0c 4d=00 4e=00 4f=00 51=0f a1=0f a2=0a a8=0c
> > a9=10 aa=c4 ac=8c ee=08
> >
> > DS1624
> > iic1: addr 0x48 a2=da a3=eb a4=30 a5=6e a6=9f a7=72 a8=00 a9=31 aa=c9
> > ab=00 ac=0a ad=c7 ae=1f
> >
> > Any idea ???
>
> well, some of these did work a while ago tho multiple commits to
> i2c_scan.c might break it. you can figure out how to fix i2c_scan.c or
> just try another chip (like lm).
>
> >
> >
> > To use LPC port on WRAP.1E board as GPIO is necessary to clear 14 and 16
> > bit at location 0x09030.
> >
> > Any idea how to do that ???
If *ANYONE* actuall read the code they would see this:
#if 0
/*
* XXX This probe needs to be improved; the driver does some
* dangerous writes.
*/
if (name == NULL && (addr & 0x7c) == 0x48 && /* addr 0b1001xxx */
(iicprobew(0xaa) & 0x0007) == 0x0000 &&
(iicprobew(0xa1) & 0x0007) == 0x0000 &&
(iicprobew(0xa2) & 0x0007) == 0x0000 &&
(iicprobe(0xac) & 0x10) == 0x00) {
if ((iicprobe(0xac) & 0x7e) == 0x0a &&
iicprobe(0xab) == 0x00 && iicprobe(0xa8) == 0x00)
name = "ds1624";
else if ((iicprobe(0xac) & 0x7e) == 0x0c)
name = "ds1631"; /* terrible probe */
else if ((iicprobe(0xac) & 0x2e) == 0x2e)
name = "ds1721"; /* terrible probe */
}
#endif
There is no support for any of the other varients, and even the ones
that there is code for are disabled -- because the stupid chips don't
supply enough unique information in their registers, and the code
above will false-positive on other chips. Doing it right is something
that must be done by someone who cares enough to do it right.