[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4820770B.1010002@scram.de>
Date: Tue, 06 May 2008 17:19:39 +0200
From: Jochen Friedrich <jochen@...am.de>
To: Wolfram Sang <w.sang@...gutronix.de>
CC: Kumar Gala <galak@...nel.crashing.org>,
linuxppc-dev list <linuxppc-dev@...abs.org>,
"Kernel, Linux" <linux-kernel@...r.kernel.org>,
Scott Wood <scottwood@...escale.com>,
Linux I2C <i2c@...sensors.org>
Subject: Re: [i2c] [PATCH6/7] i2c: adds support for i2c bus on Freescale CPM1/CPM2
controllers
Hi Wolfram,
>> + /* Begin transmission */
>> + setbits8(&i2c_reg->i2com, 0x80);
> Hardcoded value. (I also wonder if 0x81 might be more suitable, as it
> keeps the "be-a-master"-bit set. Still, both values work with my setup.)
>> +#ifdef I2C_CHIP_ERRATA
>> + /*
>> + * Chip errata, clear enable. This is not needed on rev D4 CPUs.
>> + * Disabling I2C too early may cause too short stop condition
>> + */
>> + udelay(4);
>> + clrbits8(&i2c_reg->i2mod, 1);
> I was unable to find the corresponding errata document, still I wonder
> if it is a 0 which should have been written? The text says "clear" and
> according to the reference manual, this means the bit should be 0.
setbits8() and clrbits8() use a bitmask as second argument.
setbits8(&i2c_reg->i2com, 0x80) will set bit 7 on the i2com register but
leave bit 0 untouched. Likewise, clrbits8(&i2c_reg->i2mod, 1) will clear bit 0.
Thanks,
Jochen
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists