OpenCloudOS-Kernel/drivers/i2c/busses
Sagar Shrikant Kadam c45d4ba867 i2c: ocores: add polling mode workaround for Sifive FU540-C000 SoC
The i2c-ocore driver already has a polling mode interface.But it needs
a workaround for FU540 Chipset on HiFive unleashed board (RevA00).
There is an erratum in FU540 chip that prevents interrupt driven i2c
transfers from working, and also the I2C controller's interrupt bit
cannot be cleared if set, due to this the existing i2c polling mode
interface added in mainline earlier doesn't work, and CPU stall's
infinitely, when-ever i2c transfer is initiated.

Ref:
	commit dd7dbf0eb0 ("i2c: ocores: refactor setup for polling")

The workaround / fix under OCORES_FLAG_BROKEN_IRQ is particularly for
FU540-COOO SoC.

The polling function identifies a SiFive device based on the device node
and enables the workaround.

Signed-off-by: Sagar Shrikant Kadam <sagar.kadam@sifive.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2019-06-14 23:24:33 +02:00
..
Kconfig i2c: jz4780: Drop dependency on MACH_JZ4780 2019-05-27 21:35:04 +02:00
Makefile i2c: Add drivers for the AMD PCIe MP2 I2C controller 2019-03-25 15:21:17 +01:00
i2c-acorn.c i2c: acorn: remove outdated path from file header 2018-01-18 00:08:20 +01:00
i2c-ali15x3.c Annotate hardware config module parameters in drivers/i2c/ 2017-04-20 12:02:32 +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-altera.c i2c: altera: Add Altera I2C Controller driver 2017-09-13 23:37:16 +02:00
i2c-amd-mp2-pci.c i2c: Add drivers for the AMD PCIe MP2 I2C controller 2019-03-25 15:21:17 +01:00
i2c-amd-mp2-plat.c i2c: Add drivers for the AMD PCIe MP2 I2C controller 2019-03-25 15:21:17 +01:00
i2c-amd-mp2.h i2c: Add drivers for the AMD PCIe MP2 I2C controller 2019-03-25 15:21:17 +01:00
i2c-amd756-s4882.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
i2c-amd756.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-amd8111.c i2c: amd8111: Mark expected switch fall-through 2018-08-08 22:28:46 +02:00
i2c-aspeed.c i2c: aspeed: Add multi-master use case support 2019-02-15 09:52:03 +01:00
i2c-at91-core.c i2c: at91: added slave mode support 2019-03-24 22:41:51 +01:00
i2c-at91-master.c i2c: at91: Convert to use struct i2c_timings 2019-03-27 14:09:53 +01:00
i2c-at91-slave.c i2c: at91: added slave mode support 2019-03-24 22:41:51 +01:00
i2c-at91.h i2c: at91: Convert to use struct i2c_timings 2019-03-27 14:09:53 +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: use auto cmd for last message 2019-04-16 13:08:17 +02:00
i2c-bcm-iproc.c i2c: iproc: Add multi byte read-write support for slave mode 2019-05-27 21:26:01 +02:00
i2c-bcm-kona.c Merge branch 'i2c/for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2016-10-07 14:12:21 -07:00
i2c-bcm2835.c i2c: bcm2835: Model Divider in CCF 2019-06-12 12:36:49 +02:00
i2c-brcmstb.c i2c: brcmstb: remove unused struct member 2019-04-15 13:42:36 +02:00
i2c-cadence.c i2c: cadence: Fix the hold bit setting 2019-02-15 09:42:17 +01:00
i2c-cbus-gpio.c i2c: cbus-gpio: Switch to use GPIO descriptors 2019-02-08 22:18:51 +01:00
i2c-cht-wc.c i2c-cht-wc: Fix bq24190 supplier 2018-07-02 17:38:07 +02:00
i2c-cpm.c i2c: busses: make i2c_adapter_quirks const 2017-08-29 22:32:47 +02:00
i2c-cros-ec-tunnel.c i2c: i2c-cros-ec-tunnel: Switch to SPDX identifier. 2018-12-17 23:08:41 +01:00
i2c-davinci.c Merge branch 'i2c/for-4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2018-08-21 17:40:46 -07:00
i2c-designware-baytrail.c More ACPI updates for 4.20-rc1 2018-10-30 09:15:31 -07:00
i2c-designware-common.c i2c: designware: Add support for an interface clock 2019-03-20 17:57:18 +01:00
i2c-designware-core.h i2c: designware: Add support for an interface clock 2019-03-20 17:57:18 +01:00
i2c-designware-master.c i2c: designware: ratelimit 'transfer when suspended' errors 2019-05-02 18:26:48 +02:00
i2c-designware-pcidrv.c i2c: designware: Do not allow i2c_dw_xfer() calls while suspended 2019-02-23 11:08:48 +01:00
i2c-designware-platdrv.c i2c: designware: Add support for an interface clock 2019-03-20 17:57:18 +01:00
i2c-designware-slave.c i2c: designware: Add SPDX license tag 2018-08-20 10:45:45 +02:00
i2c-digicolor.c i2c: digicolor: use clk_disable_unprepare instead of clk_unprepare 2016-11-18 01:48:01 +01:00
i2c-diolan-u2c.c i2c: busses: make use of i2c_8bit_addr_from_msg 2018-05-29 20:30:49 +02:00
i2c-dln2.c i2c: constify i2c_adapter_quirks structures 2016-11-18 02:05:03 +01:00
i2c-efm32.c i2c: busses: make use of i2c_8bit_addr_from_msg 2018-05-29 20:30:49 +02:00
i2c-eg20t.c PCI: Move Rohm Vendor ID to generic list 2019-02-01 17:24:52 -06:00
i2c-elektor.c Annotate hardware config module parameters in drivers/i2c/ 2017-04-20 12:02:32 +01:00
i2c-emev2.c i2c: use SPDX identifier for Renesas drivers 2018-08-24 14:49:36 +02:00
i2c-exynos5.c i2c: exynos5: use core helper to mark adapter suspended 2019-01-08 21:02:51 +01:00
i2c-fsi.c i2c: fsi: Create busses for all ports 2019-06-08 00:18:31 +02:00
i2c-gpio.c i2c: gpio: flag atomic capability if possible 2019-04-16 13:08:17 +02:00
i2c-highlander.c i2c: use SPDX identifier for Renesas drivers 2018-08-24 14:49:36 +02:00
i2c-hix5hd2.c i2c: busses: make use of i2c_8bit_addr_from_msg 2018-05-29 20:30:49 +02:00
i2c-hydra.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-i801.c i2c: i801: Fix kernel crash in is_dell_system_with_lis3lv02d() 2019-06-14 23:24:33 +02:00
i2c-ibm_iic.c i2c: Remove caller signal_pending branch predictions 2018-11-27 12:59:16 +01:00
i2c-ibm_iic.h
i2c-img-scb.c i2c: img-scb: Add runtime PM 2017-10-28 14:03:45 +02:00
i2c-imx-lpi2c.c i2c: imx-lpi2c: Use __maybe_unused instead of #if CONFIG_PM_SLEEP 2019-05-03 16:51:38 +02:00
i2c-imx.c i2c: imx: Use __maybe_unused instead of #if CONFIG_PM 2019-05-27 21:26:01 +02:00
i2c-iop3xx.c i2c: iop: Use GPIO descriptors 2019-06-12 13:20:23 +02:00
i2c-iop3xx.h i2c: iop: Use GPIO descriptors 2019-06-12 13:20:23 +02:00
i2c-isch.c i2c: isch: Remove unnecessary acpi.h include 2019-04-03 22:55:56 +02:00
i2c-ismt.c i2c: ismt: Add support for Intel Cedar Fork 2019-01-03 20:02:32 +01:00
i2c-jz4780.c i2c: jz4780: Fix module autoload 2016-10-25 11:48:58 +02:00
i2c-kempld.c i2c: busses: make use of i2c_8bit_addr_from_msg 2018-05-29 20:30:49 +02:00
i2c-lpc2k.c i2c: use dev_get_drvdata() to get private data in suspend/resume hooks 2017-07-31 17:03:32 +02:00
i2c-meson.c i2c: meson: update with SPDX Licence identifier 2019-05-27 21:27:25 +02:00
i2c-mlxcpld.c i2c: mlxcpld: Allow configurable adapter id for mlxcpld 2018-04-30 10:39:29 +02:00
i2c-mpc.c i2c: mpc: always determine I2C clock prescaler at runtime 2018-01-15 19:19:55 +01:00
i2c-mt65xx.c i2c: mediatek: Add i2c support for MediaTek MT8183 2019-04-15 13:40:43 +02:00
i2c-mv64xxx.c i2c: mv64xxx: Apply errata delay only in standard mode 2018-03-17 21:20:04 +01:00
i2c-mxs.c i2c: mxs: use core to detect 'no zero length' quirk 2018-08-04 23:25:06 +02:00
i2c-nforce2-s4985.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
i2c-nforce2.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
i2c-nomadik.c i2c: nomadik: remove an unnecessary NULL check in nmk_i2c_remove() 2019-04-03 22:49:31 +02:00
i2c-nvidia-gpu.c i2c: nvidia-gpu: resume ccgx i2c client 2019-06-08 00:09:23 +02:00
i2c-ocores.c i2c: ocores: add polling mode workaround for Sifive FU540-C000 SoC 2019-06-14 23:24:33 +02:00
i2c-octeon-core.c i2c: octeon: Prevent error message on bus error 2018-03-02 11:11:15 +01:00
i2c-octeon-core.h i2c: octeon: Prevent error message on bus error 2018-03-02 11:11:15 +01:00
i2c-octeon-platdrv.c i2c: busses: make i2c_adapter const 2017-08-29 22:26:08 +02:00
i2c-omap.c i2c: omap: Add the master_xfer_atomic hook 2019-04-16 13:08:13 +02:00
i2c-opal.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 114 2019-05-24 17:39:01 +02:00
i2c-owl.c i2c: Add Actions Semiconductor Owl family S700 I2C support 2019-01-03 20:36:18 +01:00
i2c-parport-light.c i2c: i2c-smbus: Use threaded irq for smbalert 2017-10-28 23:42:26 +02:00
i2c-parport.c i2c: i2c-smbus: Use threaded irq for smbalert 2017-10-28 23:42:26 +02:00
i2c-parport.h i2c: parport: Add VCT-jig adapter 2015-08-10 08:37:34 +02:00
i2c-pasemi.c i2c: pasemi: remove hardcoded bus numbers on smbus 2018-08-20 11:01:13 +02:00
i2c-pca-isa.c Annotate hardware config module parameters in drivers/i2c/ 2017-04-20 12:02:32 +01:00
i2c-pca-platform.c i2c: pca-platform: move header to platform_data 2018-05-17 16:27:58 +02:00
i2c-piix4.c i2c-piix4: Add Hygon Dhyana SMBus support 2019-05-03 16:47:54 +02:00
i2c-pmcmsp.c i2c: pmcmsp: use core to detect 'no zero length' quirk 2018-08-04 23:25:06 +02:00
i2c-pnx.c i2c: pnx: move header into the driver 2018-05-17 16:27:59 +02:00
i2c-powermac.c i2c: powermac: Use of_node_name_eq for node name comparisons 2018-12-11 21:16:28 +01:00
i2c-puv3.c i2c: busses: make i2c_algorithm const 2017-08-29 22:20:20 +02:00
i2c-pxa-pci.c ARM: pxa: move header file out of I2C realm 2017-11-28 22:49:30 +01:00
i2c-pxa.c ARM: pxa: move header file out of I2C realm 2017-11-28 22:49:30 +01:00
i2c-qcom-geni.c i2c: qcom-geni: Fix runtime PM mismatch with child devices 2018-11-09 17:25:48 +01:00
i2c-qup.c i2c: qup: use core to detect 'no zero length' quirk 2018-10-05 18:05:08 +02:00
i2c-rcar.c i2c: rcar: wait for data empty before starting DMA 2019-03-20 18:19:20 +01:00
i2c-riic.c i2c: riic: Add Runtime PM support 2019-04-23 23:29:12 +02:00
i2c-rk3x.c i2c: rk3x: Don't print visible virtual mapping MMIO address 2018-05-24 22:09:05 +02:00
i2c-robotfuzz-osif.c i2c: robotfuzz-osif: drop pointless test 2018-05-24 22:13:04 +02:00
i2c-s3c2410.c i2c: s3c2410: Convert to use GPIO descriptors 2019-06-12 12:58:07 +02:00
i2c-scmi.c i2c: scmi: Fix probe error on devices with an empty SMB0001 ACPI device node 2018-12-06 23:14:59 +01:00
i2c-sh7760.c i2c: don't print error when adding adapter fails 2016-08-22 08:19:55 +02:00
i2c-sh_mobile.c i2c: sh_mobile: use new clock calculation formulas for Gen2 2019-02-08 22:24:50 +01:00
i2c-sibyte.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-simtec.c i2c: simtec: use release_mem_region instead of release_resource 2017-08-14 21:39:21 +02:00
i2c-sirf.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 4 2019-05-21 11:28:40 +02:00
i2c-sis96x.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-sis630.c i2c: sis630: correct format strings 2019-03-12 14:09:16 +01:00
i2c-sis5595.c Annotate hardware config module parameters in drivers/i2c/ 2017-04-20 12:02:32 +01:00
i2c-sprd.c i2c: sprd: use core helper to mark adapter suspended 2019-01-08 21:02:50 +01:00
i2c-st.c i2c: use dev_get_drvdata() to get private data in suspend/resume hooks 2017-07-31 17:03:32 +02:00
i2c-stm32.c i2c: i2c-stm32: Add generic DMA API 2018-04-30 10:39:27 +02:00
i2c-stm32.h i2c: i2c-stm32: Add generic DMA API 2018-04-30 10:39:27 +02:00
i2c-stm32f4.c i2c-stm32f4: remove redundant initialization of pointer reg 2018-02-27 13:51:05 +01:00
i2c-stm32f7.c i2c: i2c-stm32f7: improve loopback in timing algorithm 2019-03-20 17:59:05 +01:00
i2c-stu300.c i2c: stu300: use xfer_atomic callback to bail out early 2019-04-16 13:08:16 +02:00
i2c-sun6i-p2wi.c i2c: sun6i-pw2i: explicitly request exclusive reset control 2017-08-14 21:40:21 +02:00
i2c-synquacer.c i2c: synquacer: fix enumeration of slave devices 2019-05-02 18:38:53 +02:00
i2c-taos-evm.c i2c: taos-evm: Remove duplicate NULL check 2017-11-02 00:01:21 +01:00
i2c-tegra-bpmp.c i2c: tegra-bpmp: convert to use new atomic callbacks 2019-04-16 13:08:14 +02:00
i2c-tegra.c i2c: tegra: Avoid error message on deferred probe 2019-06-14 23:24:33 +02:00
i2c-thunderx-pcidrv.c i2c: thunderx: Remove duplicate NULL check 2017-11-02 00:01:31 +01:00
i2c-tiny-usb.c i2c: i2c-tiny-usb: fix buffer not being DMA capable 2017-05-22 10:33:42 +02:00
i2c-uniphier-f.c i2c: uniphier-f: fix violation of tLOW requirement for Fast-mode 2018-12-06 23:14:59 +01:00
i2c-uniphier.c i2c: uniphier: fix violation of tLOW requirement for Fast-mode 2018-12-06 23:14:59 +01:00
i2c-versatile.c i2c: versatile: Make i2c_algo_bit_data const 2017-08-29 22:34:12 +02:00
i2c-via.c i2c: remove FSF address 2014-11-07 18:35:33 +01:00
i2c-viapro.c Annotate hardware config module parameters in drivers/i2c/ 2017-04-20 12:02:32 +01:00
i2c-viperboard.c i2c: viperboard: return message count on master_xfer success 2018-05-15 09:31:26 +02:00
i2c-wmt.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 75 2019-05-24 17:36:47 +02:00
i2c-xgene-slimpro.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
i2c-xiic.c i2c: xiic: Make the start and the byte count write atomic 2018-09-06 20:49:09 +02:00
i2c-xlp9xx.c i2c: xlp9xx: Fix case where SSIF read transaction completes early 2018-08-09 17:41:13 +02:00
i2c-xlr.c i2c: xlr: use core to detect 'no zero length' quirk 2018-08-04 23:25:08 +02:00
i2c-zx2967.c i2c: zx2967: use core helper to mark adapter suspended 2019-01-08 21:02:49 +01:00
scx200_acb.c Annotate hardware config module parameters in drivers/i2c/ 2017-04-20 12:02:32 +01:00