android_kernel_oneplus_msm8998/include/linux/platform_data
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
..
ad5449.h
ad5755.h
ad7266.h
ad7291.h staging:iio:ad7291: Move out of staging 2014-07-08 21:17:30 +01:00
ad7298.h
ad7303.h
ad7791.h
ad7793.h
ad7887.h
adau17x1.h ASoC: Add ADAU1381/ADAU1781 audio CODEC support 2014-05-27 20:54:51 +01:00
adau1977.h ASoC: Add ADAU1977 CODEC driver 2014-02-19 13:36:15 +09:00
ads7828.h
arm-ux500-pm.h
asoc-imx-ssi.h
asoc-kirkwood.h
asoc-mx27vis.h
asoc-palm27x.h
asoc-s3c.h ASoC: Samsung: Add quirk for internal DMA 2014-11-07 10:38:17 +00:00
asoc-s3c24xx_simtec.h ASoC: s3c24xx: Remove invalid file reference 2014-02-25 21:29:31 +09:00
asoc-ti-mcbsp.h
asoc-ux500-msp.h
at24.h
at91_adc.h iio: adc: at91_adc: Add support for touchscreens without TSMR 2014-05-07 18:28:40 +02:00
ata-pxa.h
ata-samsung_cf.h ata: pata_samsung_cf: removes s5pc100 related ata codes 2014-06-30 10:48:08 -04:00
atmel.h TTY/Serial driver patches for 3.16-rc1 2014-06-03 09:01:02 -07:00
bcmgenet.h net: bcmgenet: enable driver to work without a device tree 2014-12-08 20:26:59 -05:00
bd6107.h
bfin_rotary.h Input: bfin_rotary - move pin lists into into platform data 2015-02-15 16:06:27 -08:00
brcmfmac-sdio.h
bt-nokia-h4p.h staging/bluetooth: Add hci_h4p driver 2014-02-07 10:13:53 -08:00
camera-mx2.h
camera-mx3.h
camera-pxa.h
camera-rcar.h
clk-integrator.h ARM: integrator: switch to fetch clocks from device tree 2014-02-13 11:20:42 +01:00
clk-lpss.h
clk-realview.h
clk-u300.h
clk-ux500.h
coda.h
cpuidle-exynos.h cpuidle: exynos: add coupled cpuidle support for exynos4210 2015-01-30 08:39:15 +09:00
crypto-atmel.h
crypto-ux500.h
cyttsp4.h
davinci_asp.h ASoC: davinci-mcasp: Rename platform data struct 2014-02-03 18:26:59 +00:00
db8500_thermal.h
dma-atmel.h
dma-coh901318.h
dma-dw.h dmaengine: dw: define DW_DMA_MAX_NR_MASTERS 2015-02-04 22:39:44 -08:00
dma-ep93xx.h
dma-imx-sdma.h
dma-imx.h dmaengine: imx-sdma: Add a new DMATYPE for SAI 2014-11-17 13:50:43 +05:30
dma-mmp_tdma.h dma: mmp_tdma: Fix build for ARM64 2015-02-03 17:47:35 -08:00
dma-mv_xor.h
dma-rcar-audmapp.h shdma: add R-Car Audio DMAC peri peri driver 2014-03-29 19:38:09 +05:30
dma-rcar-hpbdma.h
dma-s3c24xx.h
dma-ste-dma40.h
dmtimer-omap.h
drv260x-pdata.h Input: drv260x - add TI drv260x haptics driver 2014-08-19 22:19:28 -07:00
dwc3-omap.h
edma.h ARM: edma: Add edma_assign_channel_eventq() to move channel to a give queue 2014-07-28 17:03:13 +05:30
efm32-spi.h
efm32-uart.h
ehci-sh.h
elm.h nand: omap2: Remove horrible ifdefs to fix module probe 2014-09-22 11:37:51 -07:00
emif_plat.h
eth-netx.h
fsa9480.h
g762.h
gpio-davinci.h gpio: remove obsolete tnetv107x driver 2014-03-05 10:44:44 +08:00
gpio-dwapb.h GPIO: gpio-dwapb: Enable platform driver binding to MFD driver 2014-09-23 17:51:37 +02:00
gpio-em.h
gpio-lpc32xx.h
gpio-omap.h
gpio-rcar.h
gpio-ts5500.h
gpio_backlight.h
hsmmc-omap.h mmc: omap_hsmmc: remove unused slot_id parameter 2014-11-26 14:30:56 +01:00
hwmon-s3c.h
i2c-cbus-gpio.h
i2c-davinci.h i2c: davinci: use ICPFUNC to toggle I2C as gpio for bus recovery 2015-04-10 17:57:28 +02:00
i2c-designware.h i2c: designware: add support of platform data to set I2C mode 2014-09-29 22:41:17 +02:00
i2c-imx.h
i2c-nuc900.h
i2c-s3c2410.h i2c: s3c2410: Trivial cleanup in header file 2014-03-10 17:32:28 +01:00
ina2xx.h
intel-mid_wdt.h watchdog: add Intel MID watchdog driver support 2014-06-10 21:48:16 +02:00
invensense_mpu6050.h
iommu-omap.h iommu/omap: Remove platform data da_start and da_end fields 2014-07-29 12:39:56 +02:00
irda-pxaficp.h
irda-sa11x0.h arm: sa1100: move irda header to linux/platform_data 2014-12-30 18:44:07 -05:00
irq-renesas-intc-irqpin.h
irq-renesas-irqc.h
isl9305.h regulator: isl9305: Add Intersil ISL9305/H driver 2014-09-06 12:43:05 +01:00
keyboard-pxa930_rotary.h
keyboard-spear.h
keypad-ep93xx.h
keypad-nomadik-ske.h
keypad-omap.h
keypad-pxa27x.h
keypad-w90p910.h
keyscan-davinci.h
lcd-mipid.h
leds-kirkwood-netxbig.h
leds-kirkwood-ns2.h
leds-lm355x.h
leds-lm3642.h
leds-lp55xx.h
leds-omap.h
leds-pca963x.h
leds-s3c24xx.h leds: leds-s3c24xx: Trivial cleanup in header file 2014-02-27 09:57:11 -08:00
lm3630a_bl.h
lm3639_bl.h
lp855x.h backlight: lp855x: Add supply regulator to lp855x 2014-12-09 09:24:45 +00:00
lp8727.h
lp8755.h
lv5207lp.h
macb.h
mailbox-omap.h
max197.h
max3421-hcd.h usb: host: max3421-hcd: Allow platform-data to specify Vbus polarity 2014-05-29 11:19:30 -07:00
max6697.h
mfd-mcp-sa11x0.h
microread.h
mmc-atmel-mci.h mmc: atmel-mci: move mach header to platform_data 2014-11-10 12:40:37 +01:00
mmc-davinci.h
mmc-esdhc-imx.h
mmc-msm_sdcc.h mmc: msm: Cleanup mmc-msm_sdcc.h header 2014-02-25 15:43:15 -05:00
mmc-mvsdio.h mmc: mvsdio: Cleanup mmc-mvsdio.h header 2014-02-25 15:43:23 -05:00
mmc-mxcmmc.h
mmc-omap.h mmc: omap_hsmmc: remove prepare/complete system suspend support. 2015-01-19 09:56:08 +01:00
mmc-pxamci.h
mmc-s3cmci.h
mmc-sdhci-s3c.h
mmp_audio.h
mmp_dma.h
mouse-pxa930_trkball.h
msm_serial_hs.h
mtd-davinci-aemif.h ARM: davinci: aemif: get rid of davinci-nand driver dependency on aemif 2014-02-23 20:33:18 +05:30
mtd-davinci.h
mtd-mxc_nand.h
mtd-nand-omap2.h nand: omap2: Add support for flash-based bad block table 2014-09-17 01:02:48 -07:00
mtd-nand-pxa3xx.h mtd: nand: pxa3xx: Use ECC strength and step size devicetree binding 2014-05-21 12:55:09 -07:00
mtd-nand-s3c2410.h mtd: nand: s3c2410: Trivial cleanup in header file 2014-03-10 22:42:26 -07:00
mtd-onenand-omap2.h
mtd-orion_nand.h
mv_usb.h
net-cw1200.h
ntc_thermistor.h hwmon: (ntc_thermistor) Support B57330V2103 from EPCOS 2014-08-04 07:01:35 -07:00
omap-twl4030.h
omap-wd-timer.h
omap1_bl.h
omap_drm.h
pca953x.h
pcmcia-pxa2xx_viper.h
pinctrl-adi2.h
pinctrl-single.h
pn544.h
pxa2xx_udc.h
pxa_sdhci.h mmc: sdhci-pxav3: Move private driver data to driver source 2014-11-10 12:40:31 +01:00
regulator-haptic.h Input: add regulator haptic driver 2014-12-21 18:59:20 -08:00
remoteproc-omap.h
s3c-hsotg.h
s3c-hsudc.h
sa11x0-serial.h
sc18is602.h
serial-imx.h serial: imx: Remove init() and exit() platform callbacks 2014-02-28 16:36:45 -08:00
serial-omap.h ARM: OMAP: serial: remove last vestige of DTR_gpio support. 2014-11-10 09:06:44 -08:00
serial-sccnxp.h
sh_ipmmu.h
shmob_drm.h
sht15.h
shtc1.h hwmon: add support for Sensirion SHTC1 sensor 2014-06-12 08:36:48 -07:00
si5351.h
simplefb.h
spi-clps711x.h
spi-davinci.h
spi-ep93xx.h
spi-imx.h
spi-nuc900.h
spi-omap2-mcspi.h
spi-s3c64xx.h spi/s3c64xx: Trivial cleanup in header file 2014-02-16 09:59:13 +08:00
ssm2518.h
st21nfca.h NFC: st21nfca: Adding support for secure element 2015-01-28 00:03:36 +01:00
st21nfcb.h NFC: st21nfcb: Fix copy/paste error in comment 2015-01-26 23:14:34 +01:00
st1232_pdata.h
st_sensors_pdata.h
syscon.h mfd: syscon: Add platform data with a regmap config name 2014-05-15 17:02:19 +01:00
touchscreen-s3c2410.h Input: s3c2410 - trivial cleanup in header file 2014-02-14 00:09:43 -08:00
tpm_stm_st33.h tpm/tpm_i2c_stm_st33: Change tpm_i2c_stm_st33.h to tpm_stm_st33.h 2015-01-17 15:04:04 +01:00
tsl2563.h
uio_dmem_genirq.h
uio_pruss.h
usb-davinci.h
usb-ehci-mxc.h ARM: imx: move EHCI platform defines out of platform_data header 2014-07-18 16:10:04 +08:00
usb-ehci-orion.h
usb-musb-ux500.h
usb-mx2.h
usb-ohci-pxa27x.h
usb-ohci-s3c2410.h
usb-omap.h
usb-omap1.h
usb-pxa3xx-ulpi.h
usb-rcar-gen2-phy.h
usb-rcar-phy.h
usb-s3c2410_udc.h
usb3503.h
ux500_wdt.h
video-clcd-versatile.h video: fix up versatile CLCD helper move 2014-07-23 17:41:00 +02:00
video-ep93xx.h
video-imxfb.h video: imxfb: Remove unused fields from platform data structure 2014-02-28 12:35:22 +02:00
video-msm_fb.h
video-mx3fb.h
video-nuc900fb.h
video-pxafb.h
video_s3c.h
voltage-omap.h
wiznet.h
zforce_ts.h