linux/Documentation/devicetree/bindings/i2c
Grygorii Strashko 7ef97e9a31 i2c: davinci: use ICPFUNC to toggle I2C as gpio for bus recovery
Having a board where the I2C bus locks up occasionally made it clear
that the bus recovery in the i2c-davinci driver will only work on
some boards, because on regular boards, this will only toggle GPIO
lines that aren't muxed to the actual pins.

The I2C controller on SoCs like da850 (and da830), Keystone 2 has the
built-in capability to bit-bang its lines by using the ICPFUNC registers
of the i2c controller.
Implement the suggested procedure by toggling SCL and checking SDA using
the ICPFUNC registers of the I2C controller when present. Allow platforms
to indicate the presence of the ICPFUNC registers with a has_pfunc platform
data flag and add optional DT property "ti,has-pfunc" to indicate
the same in DT.

Reviewed-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Alexander Sverdlin <alexander.sverdlin@nokia.com>
Tested-by: Michael Lawnick <michael.lawnick@nokia.com>
Signed-off-by: Ben Gardiner <bengardiner@nanometrics.ca>
Signed-off-by: Mike Looijmans <milo-software@users.sourceforge.net>
[grygorii.strashko@ti.com: combined patches from Ben Gardiner and
Mike Looijmans and reimplemented ICPFUNC bus recovery using I2C
bus recovery infrastructure]
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-04-10 17:57:28 +02:00
..
brcm,bcm2835-i2c.txt i2c: add bcm2835 driver 2013-02-12 11:33:59 +01:00
brcm,iproc-i2c.txt i2c: iproc: Add Broadcom iProc I2C Driver 2015-02-17 16:44:13 +01:00
i2c-arb-gpio-challenge.txt i2c: mux: Add more warnings to i2c-arb-gpio-challenge docs 2014-05-22 10:09:22 +02:00
i2c-at91.txt i2c: at91: Add device tree property to set clock-frequency 2014-03-12 08:26:04 +01:00
i2c-axxia.txt i2c: axxia: Add I2C driver for AXM55xx 2014-10-03 14:11:53 +02:00
i2c-bcm-kona.txt i2c: bcm-kona: Introduce Broadcom I2C Driver 2013-11-15 23:47:09 +01:00
i2c-cadence.txt i2c: cadence: Document device tree bindings 2014-04-06 17:45:51 +02:00
i2c-cbus-gpio.txt i2c: i2c-cbus-gpio: introduce driver 2012-11-19 09:57:16 +01:00
i2c-cros-ec-tunnel.txt i2c: ChromeOS EC tunnel driver 2014-06-03 08:11:49 +01:00
i2c-davinci.txt i2c: davinci: use ICPFUNC to toggle I2C as gpio for bus recovery 2015-04-10 17:57:28 +02:00
i2c-designware.txt i2c: designware: Fix falling time bindings doc 2014-12-08 10:50:34 +01:00
i2c-digicolor.txt i2c: add support for the Digicolor I2C controller 2015-03-22 10:53:51 +01:00
i2c-efm32.txt i2c: efm32: correct namespacing of location property 2014-07-17 15:38:49 +02:00
i2c-exynos5.txt i2c: exynos: add support for HSI2C module on Exynos7 2014-10-03 03:35:49 +02:00
i2c-gpio.txt bindings: i2c: use consistent naming for i2c binding descriptions 2012-11-15 15:57:07 +00:00
i2c-hix5hd2.txt i2c: hix5hd2: add i2c controller driver 2014-10-16 09:14:17 +02:00
i2c-img-scb.txt DT: i2c: Add binding document for IMG I2C SCB 2014-11-17 19:54:24 +01:00
i2c-imx.txt i2c: imx: add required clocks property to binding 2015-03-07 01:13:00 +01:00
i2c-jz4780.txt i2c: jz4780: Add i2c bus controller driver for Ingenic JZ4780 2015-04-03 21:22:52 +02:00
i2c-meson.txt i2c: add support for Amlogic Meson I2C controller 2014-11-18 16:16:44 +01:00
i2c-mpc.txt bindings: i2c: use consistent naming for i2c binding descriptions 2012-11-15 15:57:07 +00:00
i2c-mux-gpio.txt i2c: mux: Add dt support to i2c-mux-gpio driver 2012-11-16 09:28:27 +01:00
i2c-mux-pca954x.txt of: i2c: Add i2c-mux-idle-disconnect DT property to PCA954x mux driver 2015-01-23 17:12:56 +01:00
i2c-mux-pinctrl.txt i2c: Add generic I2C multiplexer using pinctrl API 2012-06-04 16:49:43 +02:00
i2c-mux.txt bindings: i2c: use consistent naming for i2c binding descriptions 2012-11-15 15:57:07 +00:00
i2c-mv64xxx.txt i2c: mv64xxx: Change i2c compatibles for sunxi 2014-05-22 10:09:21 +02:00
i2c-mxs.txt i2c: i2c-mxs: move to use generic DMA helper 2013-04-04 21:22:45 +08:00
i2c-nomadik.txt bindings: i2c: use consistent naming for i2c binding descriptions 2012-11-15 15:57:07 +00:00
i2c-ocores.txt i2c: ocores: add common clock support 2015-02-05 22:29:23 +01:00
i2c-octeon.txt bindings: i2c: use consistent naming for i2c binding descriptions 2012-11-15 15:57:07 +00:00
i2c-omap.txt i2c: omap: Fix missing device tree flags for omap2 2013-11-15 14:32:34 -08:00
i2c-opal.txt i2c: Driver to expose PowerNV platform i2c busses 2014-12-14 12:44:46 +11:00
i2c-pnx.txt bindings: i2c: use consistent naming for i2c binding descriptions 2012-11-15 15:57:07 +00:00
i2c-pxa-pci-ce4100.txt bindings: i2c: use consistent naming for i2c binding descriptions 2012-11-15 15:57:07 +00:00
i2c-pxa.txt bindings: i2c: use consistent naming for i2c binding descriptions 2012-11-15 15:57:07 +00:00
i2c-rcar.txt i2c: rcar: add compatibles for additional SoC 2014-06-01 22:21:59 +02:00
i2c-riic.txt i2c: riic: add driver 2014-01-02 15:56:52 +01:00
i2c-rk3x.txt i2c: rk3x: Account for repeated start time requirement 2015-01-13 16:21:05 +01:00
i2c-s3c2410.txt ARM: dts: add sysreg phandle to i2c device nodes for exynos 2014-11-27 03:24:45 +09:00
i2c-sh_mobile.txt i2c: sh_mobile: add DMA support 2014-11-12 17:08:40 +01:00
i2c-sirf.txt bindings: i2c: use consistent naming for i2c binding descriptions 2012-11-15 15:57:07 +00:00
i2c-st-ddci2c.txt i2c: stu300: device tree support 2013-05-31 11:25:51 +02:00
i2c-st.txt i2c: st: Rename clock reference to something that exists 2015-01-24 05:43:43 +01:00
i2c-sunxi-p2wi.txt i2c: sunxi: add P2WI DT bindings documentation 2014-06-12 00:24:05 +02:00
i2c-versatile.txt bindings: i2c: use consistent naming for i2c binding descriptions 2012-11-15 15:57:07 +00:00
i2c-vt8500.txt i2c: vt8500: Add support for I2C bus on Wondermedia SoCs 2013-06-15 13:37:08 +02:00
i2c-xiic.txt bindings: i2c: use consistent naming for i2c binding descriptions 2012-11-15 15:57:07 +00:00
ina2xx.txt hwmon: (ina2xx) Add device tree support to pass the shunt resistor 2013-06-27 10:31:42 -07:00
ina209.txt hwmon: Driver for Texas Instruments INA209 2013-02-06 09:57:59 -08:00
max6697.txt hwmon: Driver for Maxim MAX6697 and compatibles 2013-02-06 09:57:56 -08:00
nvidia,tegra20-i2c.txt Documentation: DT bindings: add more Tegra chip compatible strings 2015-02-03 20:37:31 -06:00
qcom,i2c-qup.txt i2c: qup: Add device tree bindings information 2014-03-28 23:41:26 +01:00
ti,bq32k.txt rtc: bq32000: add trickle charger device tree binding 2014-10-14 02:18:18 +02:00
trivial-devices.txt Merge branch 'i2c/for-3.20' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux 2015-02-21 12:41:50 -08:00