mfd: twl6040: Select i2c fast mode as default with regmap patch
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Tue, 1 Apr 2014 13:44:59 +0000 (16:44 +0300)
committerLee Jones <lee.jones@linaro.org>
Tue, 3 Jun 2014 07:11:19 +0000 (08:11 +0100)
All boards using twl6040 configures the i2c bus to 400KHz. While twl6040's
defaults to normal mode (100KHz). So far twl6040 has no problem with i2c
communication in this configuration it is safer to select fast i2c mode.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
drivers/mfd/twl6040.c
include/linux/mfd/twl6040.h

index 03dbff3597a2451f49708e414d993adb65841990..cb37bb8f8e41e76877a098f18941c06ee4d08864 100644 (file)
@@ -87,8 +87,13 @@ static struct reg_default twl6040_defaults[] = {
 };
 
 static struct reg_default twl6040_patch[] = {
-       /* Select I2C bus access to dual access registers */
-       { TWL6040_REG_ACCCTL, 0x09 },
+       /*
+        * Select I2C bus access to dual access registers
+        * Interrupt register is cleared on read
+        * Select fast mode for i2c (400KHz)
+        */
+       { TWL6040_REG_ACCCTL,
+               TWL6040_I2CSEL | TWL6040_INTCLRMODE | TWL6040_I2CMODE(1) },
 };
 
 
index 81f639bc1ae671c3e8d6671c4a16004977387704..a69d16b30c1862e610a05a4d76fe97e38c1dcf91 100644 (file)
 #define TWL6040_I2CSEL                 0x01
 #define TWL6040_RESETSPLIT             0x04
 #define TWL6040_INTCLRMODE             0x08
+#define TWL6040_I2CMODE(x)             ((x & 0x3) << 4)
 
 /* STATUS (0x2E) fields */