kernel-fxtec-pro1x/drivers/i2c/busses
Haibo Chen 639a26cf07 i2c: imx: Add arbitration lost check
According to the i.mx spec, for multimaster mode, if I2C is
enabled when the bus is busy and asserts start, hardware inhibits
the transmission, clears MSTA without signaling a stop, generate
an interrupt, and set I2C_I2SR[IAL] to indicate a failed attempt
to engage the bus, which means arbitration lost. In this case,
we should first test I2C_I2SR[IAL], and clear this bit if it is
set, and then I2C controller default to slave receive mode.

This patch check the IAL bit every time before an I2c transmission.
if IAL is set, clear it and make I2C controller to default mode.

Signed-off-by: Haibo Chen <haibo.chen@freescale.com>
Acked-by: Fugang Duan <B38611@freescale.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2014-09-29 22:41:18 +02:00
..
i2c-acorn.c i2c: acorn: is tristate and should use module.h 2014-01-24 18:21:11 +01:00
i2c-ali15x3.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-ali1535.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-ali1563.c i2c: ali1563: fix checkpatch.pl issues 2014-05-22 10:09:21 +02:00
i2c-amd756-s4882.c Update Jean Delvare's e-mail address 2014-01-29 20:40:08 +01:00
i2c-amd756.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-amd8111.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-at91.c i2c: at91: add bound checking on SMBus block length bytes 2014-09-02 14:29:33 +02:00
i2c-au1550.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-bcm-kona.c
i2c-bcm2835.c i2c: i2c-bcm2835: Drop class based scanning to improve bootup time 2014-07-16 22:59:57 +02:00
i2c-bfin-twi.c i2c: i2c-bfin-twi: Drop class based scanning to improve bootup time 2014-07-16 22:59:58 +02:00
i2c-cadence.c i2c: Add driver for Cadence I2C controller 2014-04-06 17:47:19 +02:00
i2c-cbus-gpio.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-cpm.c i2c: cpm: Fix build by adding of_address.h and of_irq.h 2014-03-24 14:54:21 +01:00
i2c-cros-ec-tunnel.c mfd: cros_ec: ec_dev->cmd_xfer() returns number of bytes received from EC 2014-07-09 14:58:20 +01:00
i2c-davinci.c i2c: i2c-davinci: Drop class based scanning to improve bootup time 2014-07-16 22:59:59 +02:00
i2c-designware-core.c i2c: designware: Mask all interrupts during i2c controller enable 2014-05-14 18:14:20 +02:00
i2c-designware-core.h i2c: designware: make SCL and SDA falling time configurable 2014-03-09 09:29:08 +01:00
i2c-designware-pcidrv.c i2c: designware: add new bindings 2014-08-02 13:19:54 +02:00
i2c-designware-platdrv.c i2c: designware: add support of platform data to set I2C mode 2014-09-29 22:41:17 +02:00
i2c-diolan-u2c.c i2c: remove unnecessary OOM messages 2014-06-02 19:24:33 +02:00
i2c-efm32.c i2c: efm32: correct namespacing of location property 2014-07-17 15:38:49 +02:00
i2c-eg20t.c i2c: remove unnecessary OOM messages 2014-06-02 19:24:33 +02:00
i2c-elektor.c
i2c-exynos5.c i2c: exynos5: remove extra line and fix an assignment 2014-07-17 11:59:21 +02:00
i2c-gpio.c i2c: gpio: Drop dead code in i2c_gpio_remove 2014-08-01 20:01:41 +02:00
i2c-highlander.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-hydra.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-i801.c i2c: i801: Add PCI ID for Intel Braswell 2014-08-19 10:19:47 -05:00
i2c-ibm_iic.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-ibm_iic.h
i2c-imx.c i2c: imx: Add arbitration lost check 2014-09-29 22:41:18 +02:00
i2c-iop3xx.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-iop3xx.h
i2c-isch.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-ismt.c i2c: ismt: use correct length when copy buffer 2014-09-20 14:56:19 +02:00
i2c-kempld.c
i2c-mpc.c i2c: mpc: delete unneeded test before of_node_put 2014-08-08 18:45:30 +02:00
i2c-mv64xxx.c i2c: mv64xxx: continue probe when clock-frequency is missing 2014-09-02 12:34:08 +02:00
i2c-mxs.c i2c: mxs: fix error message in pio transfer 2014-09-20 14:58:19 +02:00
i2c-nforce2-s4985.c Update Jean Delvare's e-mail address 2014-01-29 20:40:08 +01:00
i2c-nforce2.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-nomadik.c i2c: i2c-nomadik: Drop class based scanning to improve bootup time 2014-07-16 23:00:01 +02:00
i2c-ocores.c i2c: i2c-ocores: Drop class based scanning to improve bootup time 2014-07-16 23:00:02 +02:00
i2c-octeon.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-omap.c i2c: i2c-omap: Drop class based scanning to improve bootup time 2014-07-16 23:00:03 +02:00
i2c-parport-light.c Update Jean Delvare's e-mail address 2014-01-29 20:40:08 +01:00
i2c-parport.c Update Jean Delvare's e-mail address 2014-01-29 20:40:08 +01:00
i2c-parport.h Update Jean Delvare's e-mail address 2014-01-29 20:40:08 +01:00
i2c-pasemi.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-pca-isa.c
i2c-pca-platform.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-piix4.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-pmcmsp.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-pnx.c i2c: pnx: Use devm_*() functions 2014-01-16 11:15:50 +01:00
i2c-powermac.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-puv3.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-pxa-pci.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-pxa.c i2c: Make of_device_id array const 2014-06-02 19:29:37 +02:00
i2c-qup.c i2c: qup: disable clks and return instead of just returning error 2014-08-06 20:50:44 +02:00
i2c-rcar.c i2c: rcar: check for no IRQ in rcar_i2c_irq() 2014-09-29 22:41:18 +02:00
i2c-riic.c i2c: Make of_device_id array const 2014-06-02 19:29:37 +02:00
i2c-rk3x.c i2c: rk3x: Remove unlikely() annotations 2014-09-29 22:41:18 +02:00
i2c-robotfuzz-osif.c i2c: Add bus driver for for OSIF USB i2c device. 2014-01-13 13:56:56 +01:00
i2c-s3c2410.c i2c: s3c2410: resume the I2C controller earlier 2014-08-01 19:33:10 +02:00
i2c-scmi.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-sh7760.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
i2c-sh_mobile.c i2c: sh_mobile: add compatibles for additional SoC 2014-06-01 22:22:08 +02:00
i2c-sibyte.c
i2c-simtec.c i2c: remove unnecessary OOM messages 2014-06-02 19:24:33 +02:00
i2c-sirf.c i2c: i2c-sirf: Drop class based scanning to improve bootup time 2014-07-16 23:00:06 +02:00
i2c-sis96x.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-sis630.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-sis5595.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-st.c i2c: st: Update i2c timings 2014-08-01 19:47:17 +02:00
i2c-stu300.c i2c: i2c-stu300: Drop class based scanning to improve bootup time 2014-07-16 23:00:06 +02:00
i2c-sun6i-p2wi.c i2c: sun6i-p2wi: Remove duplicate inclusion of module.h 2014-06-27 14:39:36 +02:00
i2c-taos-evm.c i2c: taos-evm: Use module_serio_driver() 2014-06-27 14:50:42 +02:00
i2c-tegra.c i2c: tegra: Move clk_prepare/clk_set_rate to probe 2014-09-20 11:15:23 +02:00
i2c-tiny-usb.c i2c: i2c-tiny-usb: Remove RobotFuzz USB vendor:product ID 2014-01-13 13:56:52 +01:00
i2c-versatile.c
i2c-via.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-viapro.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-viperboard.c
i2c-wmt.c i2c: Make of_device_id array const 2014-06-02 19:29:37 +02:00
i2c-xiic.c i2c: i2c-xiic: Drop class based scanning to improve bootup time 2014-07-16 23:00:08 +02:00
i2c-xlr.c i2c: delete non-required instances of include <linux/init.h> 2014-01-24 18:24:31 +01:00
Kconfig i2c: exynos5: always enable HSI2C 2014-08-04 23:19:15 +02:00
Makefile i2c: scx200: drop GPIO based i2c driver 2014-07-16 22:59:11 +02:00
scx200_acb.c i2c: remove unnecessary OOM messages 2014-06-02 19:24:33 +02:00