linux/drivers/i2c/busses
Ray Jui 4916eb6909 i2c: iproc: Support larger TX transfer
The current iProc I2C driver only allows each TX transfer up to 63
bytes (the TX FIFO has a size of 64 bytes, and one byte is reserved
for slave address). This patch enhances the driver to support TX
transfer in each I2C message for up to 65535 bytes (a practical
maximum, since member 'max_write_len' of 'struct i2c_adapter_quirks is
of type 'u16')

This works by loading up the I2C TX FIFO and enabling the TX underrun
interrupt for each burst. After each burst of TX data is finished,
i.e., when the TX FIFO becomes empty, the TX underrun interrupt will be
triggered and another burst of TX data can be loaded into the TX FIFO.
This repeats until all TX data are finished

Signed-off-by: Ray Jui <rjui@broadcom.com>
Tested-by: Icarus Chau <ichau@broadcom.com>
Reviewed-by: Scott Branden <sbranden@broadcom.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2016-02-12 22:43:08 +01:00
..
i2c-acorn.c
i2c-ali15x3.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-ali1535.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-ali1563.c i2c: ali1563: fix checkpatch.pl issues 2014-05-22 10:09:21 +02:00
i2c-amd756-s4882.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-amd756.c i2c: remove FSF address 2014-11-07 18:35:33 +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 support for the HOLD field 2015-12-03 21:42:37 +01:00
i2c-au1550.c i2c: au1550: Convert to devm_kzalloc and devm_ioremap_resource 2015-10-23 23:31:11 +02:00
i2c-axxia.c i2c: axxia: Add bus recovery functionality 2015-06-03 00:40:16 +09:00
i2c-bcm2835.c i2c: bcm2835: add I2C_AQ_NO_CLK_STRETCH 2015-11-30 18:37:26 +01:00
i2c-bcm-iproc.c i2c: iproc: Support larger TX transfer 2016-02-12 22:43:08 +01:00
i2c-bcm-kona.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-bfin-twi.c i2c: Fix typo in i2c-bfin-twi.c 2015-07-31 13:32:31 +02:00
i2c-brcmstb.c i2c: brcmstb: Adding support for CM and DSL SoCs 2016-01-03 19:50:09 +01:00
i2c-cadence.c i2c: cadence: Remove the suspended flag 2015-11-30 21:08:07 +01:00
i2c-cbus-gpio.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-cpm.c i2c: cpm: make use of the new infrastructure for quirks 2015-03-13 15:10:54 +01:00
i2c-cros-ec-tunnel.c mfd: cros_ec: Use a zero-length array for command data 2015-06-15 13:18:19 +01:00
i2c-davinci.c i2c: davinci: Increase module clock frequency 2015-11-30 15:55:07 +01:00
i2c-designware-baytrail.c i2c: designware-platform: Drop duplicate module information 2016-02-12 20:40:13 +01:00
i2c-designware-core.c i2c: designware: Prevent runtime suspend during adapter registration 2016-02-12 20:40:14 +01:00
i2c-designware-core.h i2c: designware: remove redundant lock 2016-02-12 20:40:12 +01:00
i2c-designware-pcidrv.c i2c: designware: use to_pci_dev() 2016-01-03 19:54:00 +01:00
i2c-designware-platdrv.c Merge branch 'i2c/for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2016-01-14 11:25:37 -08:00
i2c-digicolor.c i2c: digicolor: remove duplicate include 2015-04-23 19:35:32 +02:00
i2c-diolan-u2c.c i2c: remove unnecessary OOM messages 2014-06-02 19:24:33 +02:00
i2c-dln2.c i2c: dln2: set the device tree node of the adapter 2015-03-27 16:56:21 +01:00
i2c-efm32.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-eg20t.c i2c: eg20t: set i2c_adapter->dev.of_node 2015-12-03 22:11:46 +01:00
i2c-elektor.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-emev2.c i2c: emev2: add slave support 2015-12-05 19:55:36 +01:00
i2c-exynos5.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
i2c-gpio.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-highlander.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-hix5hd2.c i2c: hix5hd2: Fix modalias to make module auto-loading work 2015-05-12 18:09:33 +02:00
i2c-hydra.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-i801.c i2c: i801: add Intel Lewisburg device IDs 2015-11-20 16:22:21 +01:00
i2c-ibm_iic.c i2c: ibm_iic: rename i2c_timings struct due to clash with generic version 2016-01-05 02:06:10 +01:00
i2c-ibm_iic.h
i2c-img-scb.c i2c: img-scb: support repeated starts on IP v3.3 2016-01-02 22:05:21 +01:00
i2c-imx.c i2c: imx: fix i2c resource leak with dma transfer 2016-01-10 10:10:28 +01:00
i2c-iop3xx.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-iop3xx.h i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-isch.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
i2c-ismt.c Merge branch 'i2c/for-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2015-11-10 11:58:25 -08:00
i2c-jz4780.c i2c: jz4780: Fix return value if probe fails 2015-07-09 22:17:31 +02:00
i2c-kempld.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-lpc2k.c i2c: lpc2k: add driver 2015-08-24 14:05:18 +02:00
i2c-meson.c i2c: meson: Fix module autoload for OF platform driver 2015-10-20 18:14:36 +02:00
i2c-mpc.c i2c: mpc: Fix ISR return value 2015-03-27 16:53:41 +01:00
i2c-mt65xx.c i2c: mt65xx: add 4GB DMA mode support in i2c driver 2016-02-12 20:40:15 +01:00
i2c-mv64xxx.c i2c: mv64xxx: The n clockdiv factor is 0 based on sunxi SoCs 2015-11-30 15:54:22 +01:00
i2c-mxs.c i2c: constify platform_device_id 2015-05-12 18:27:48 +02:00
i2c-nforce2-s4985.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-nforce2.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-nomadik.c i2c: nomadik: match status to return type of read_i2c 2015-03-15 10:51:13 +01:00
i2c-ocores.c i2c: ocores: support big-endian register layout 2015-10-20 17:47:45 +02:00
i2c-octeon.c i2c: octeon: remove unused signal handling 2015-06-17 14:50:03 +02:00
i2c-omap.c i2c: omap: fix cleanup regression 2015-08-10 08:37:33 +02:00
i2c-opal.c i2c: opal: Update quirk flags to do write-then-anything 2015-03-14 12:08:21 +01:00
i2c-parport-light.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
i2c-parport.c i2c: parport: start using pr_fmt 2015-08-10 08:37:28 +02:00
i2c-parport.h i2c: parport: Add VCT-jig adapter 2015-08-10 08:37:34 +02:00
i2c-pasemi.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-pca-isa.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-pca-platform.c i2c: pca-platform: fix broken email address 2015-04-23 19:35:30 +02:00
i2c-piix4.c i2c: piix4: don't regress on bus names 2016-01-29 11:13:52 +01:00
i2c-pmcmsp.c i2c: pmcmsp: make use of the new infrastructure for quirks 2015-03-13 15:10:58 +01:00
i2c-pnx.c Merge branch 'i2c/for-4.4' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2015-11-10 11:58:25 -08:00
i2c-powermac.c i2c: powermac: make use of the new infrastructure for quirks 2015-03-13 15:10:57 +01:00
i2c-puv3.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-pxa-pci.c i2c: remove DEFINE_PCI_DEVICE_TABLE macro 2014-03-13 09:44:59 +01:00
i2c-pxa.c i2c: pxa: Add support for pxa910/988 & new configuration features 2015-10-25 09:36:43 +01:00
i2c-qup.c i2c: qup: Transfer each i2c_msg in i2c_msgs without a stop bit 2016-02-12 19:33:44 +01:00
i2c-rcar.c Merge branch 'i2c/for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2016-01-14 11:25:37 -08:00
i2c-riic.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-rk3x.c i2c: rk3x: populate correct variable for sda_falling_time 2015-11-30 14:27:41 +01:00
i2c-robotfuzz-osif.c
i2c-s3c2410.c i2c: s3c2410: remove superfluous runtime PM calls 2016-01-10 09:27:53 +01:00
i2c-scmi.c
i2c-sh7760.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-sh_mobile.c i2c: sh_mobile: add support for r8a7795 (R-Car H3) 2015-10-20 18:10:20 +02:00
i2c-sibyte.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-simtec.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
i2c-sirf.c i2c: sirf: tune the divider to make i2c bus freq more accurate 2015-10-23 22:48:45 +02:00
i2c-sis96x.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-sis630.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-sis5595.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-st.c Merge branch 'i2c/for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2016-01-14 11:25:37 -08:00
i2c-stu300.c i2c: stu300: Fix module autoload for OF platform driver 2015-10-20 18:15:39 +02:00
i2c-sun6i-p2wi.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-taos-evm.c i2c: taos-evm: replace simple_strtoul by kstrtou8 2015-11-30 18:37:22 +01:00
i2c-tegra.c i2c: tegra: drop duplicated code for assigning algo 2015-10-20 17:38:19 +02:00
i2c-tiny-usb.c
i2c-uniphier-f.c i2c: uniphier_f: error out if bus speed is zero 2015-12-14 10:59:46 +01:00
i2c-uniphier.c i2c: uniphier: error out if bus speed is zero 2015-12-14 10:59:05 +01:00
i2c-versatile.c i2c: busses: drop owner assignment from platform_drivers 2014-10-20 16:20:37 +02:00
i2c-via.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-viapro.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-viperboard.c i2c: viperboard: clean up inconsistent indenting 2015-08-10 08:37:38 +02:00
i2c-wmt.c i2c: wmt: match return type of wait_for_completion_timeout 2015-03-15 10:29:53 +01:00
i2c-xgene-slimpro.c i2c: xgene-slimpro: dma_mapping_error() doesn't return an error code 2015-08-24 14:23:31 +02:00
i2c-xiic.c i2c: xiic: Replace spinlock with mutex 2015-11-30 18:37:23 +01:00
i2c-xlp9xx.c i2c: xlp9xx: Driver for Netlogic XLP9XX/5XX I2C controller 2015-04-10 18:59:49 +02:00
i2c-xlr.c i2c: xlr: add interrupt support for Sigma Designs chips 2015-12-16 11:42:58 +01:00
Kconfig i2c: uniphier: add COMPILE_TEST option 2016-02-12 20:40:16 +01:00
Makefile i2c: uniphier_f: add UniPhier FIFO-builtin I2C driver 2015-10-23 21:55:46 +02:00
scx200_acb.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00