Subject: Re: testing i2c on mpc8xx

From: Jeff Hurst <[email-masked]>
Date: Sun, 29 Jun 2003 01:51:54 -0500

Seb James wrote:

> I am getting no activity on the i2c clock and data lines, and when
> I try to write to the i2c bus, the processor times out waiting for
> an interrupt associated with (I think) acknowledgement bits coming
> from the slave device to which it is trying to transmit. It times out
> at the following bit of code in cpm_iic_read() (and also does so in
> cpm_iic_write()):

<snip>

> I have tried changing the following line in i2c-algo-8xx.c (line 42 I
> think):
>
> int cpm_scan = 0;
>
> to
>
> int cpm_scan = 1;
>
> Which causes i2c_8xx_add_bus() to scan for devices, using this code:
>
>    /* scan bus */
>    if (cpm_scan) {
>        printk(KERN_INFO " i2c-algo-8xx.o: scanning bus %s...\n",
>               adap->name);
>        for (i = 0; i < 128; i++) {
>            if (cpm_iic_tryaddress(cpm_adap, i)) {
>                printk("(%02x)",i<<1);
>            }
>        }
>        printk("\n");
>    }
>
> This causes the processor to hang in the same way as I described above
> for cpm_xfer.

<insert the doctor joke here>

I had a similar experience.  Decided that it is not a good idea to
scan the bus from the device driver startup function.
I am still curious about the real cause.

--
Jeff Hurst

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/