linux/Documentation/devicetree/bindings
Doug Anderson 387f0de6c3 i2c: rk3x: Account for repeated start time requirement
On Rockchip I2C the controller drops SDA low slightly too soon to meet
the "repeated start" requirements.

>From my own experimentation over a number of rates:
 - controller appears to drop SDA at .875x (7/8) programmed clk high.
 - controller appears to keep SCL high for 2x programmed clk high.

The first rule isn't enough to meet tSU;STA requirements in
Standard-mode on the system I tested on.  The second rule is probably
enough to meet tHD;STA requirements in nearly all cases (especially
after accounting for the first), but it doesn't hurt to account for it
anyway just in case.

Even though the repeated start requirement only need to be accounted
for during a small part of the transfer, we'll adjust the timings for
the whole transfer to meet it.  I believe that adjusting the timings
in just the right place to switch things up for repeated start would
require several extra interrupts and that doesn't seem terribly worth
it.

With this change and worst case rise/fall times, I see 100kHz i2c
going to ~85kHz.  With slightly optimized rise/fall (800ns / 50ns) I
see i2c going to ~89kHz.  Fast-mode isn't affected much because
tSU;STA is shorter relative to tHD;STA there.

As part of this change we needed to account for the SDA falling time.
The specification indicates that this should be the same, but we'll
follow Designware's lead and add a binding.  Note that we deviate from
Designware and assign the default SDA falling time to be the same as
the SCL falling time, which is incredibly likely.

Signed-off-by: Doug Anderson <dianders@chromium.org>
[wsa: rebased to i2c/for-next]
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-01-13 16:21:05 +01:00
..
arc
arm Staging patches for 3.19-rc1 2014-12-15 18:06:13 -08:00
ata USB patches for 3.19-rc1 2014-12-14 14:57:16 -08:00
bus Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-12-11 14:27:06 -08:00
c6x
clock Please consider pulling the clk framework changes toward 3.19. It is 2014-12-20 16:42:36 -08:00
cpufreq cpufreq: cpu0: rename driver and internals to 'cpufreq_dt' 2014-10-03 15:37:54 +02:00
crypto crypto: sahara - add support for i.MX53 2014-12-03 22:30:18 +08:00
dma Documentation: devicetree: Fix Xilinx VDMA specification 2014-12-05 22:23:36 +05:30
drm drm: imx: Move imx-drm driver out of staging 2014-11-26 09:40:39 +10:00
extcon dt-bindings: extcon: Add support for Richtek RT8973A MUIC device 2014-09-22 11:43:08 +09:00
fb
fuse
gpio gpio: pl061: document gpio-ranges property for bindings file 2014-12-03 14:46:27 +01:00
gpu drm: sti: add HQVDP plane 2014-12-11 14:00:13 +01:00
hid
hsi
hwmon hwmon: (ltc2978) device tree bindings documentation 2014-11-30 20:13:12 -08:00
hwrng hwrng: atmel - Add TRNG DT binding doc 2014-11-20 22:39:41 +08:00
i2c i2c: rk3x: Account for repeated start time requirement 2015-01-13 16:21:05 +01:00
iio First round of new drivers, features and cleanups for IIO in the 3.19 cycle. 2014-11-05 11:42:48 -08:00
input Input: add support for Elan eKTH I2C touchscreens 2014-12-07 23:09:23 -08:00
interrupt-controller Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2014-12-11 17:56:37 -08:00
iommu dt-bindings: iommu: Add documentation for rockchip iommu 2014-11-03 17:29:09 +01:00
leds leds: lp8860: Introduce TI lp8860 4 channel LED driver 2014-11-19 10:33:06 -08:00
lpddr2
mailbox mailbox/omap: adapt to the new mailbox framework 2014-11-27 12:51:04 +05:30
media [media] rcar_vin: Add DT support for r8a7793 and r8a7794 SoCs 2014-12-12 10:28:29 -02:00
memory-controllers ARM: SoC driver updates for 3.19 2014-12-09 14:48:22 -08:00
metag
mfd mfd/regulator: dt-bindings: max77686: Document regulators off in suspend 2014-11-25 16:18:47 +00:00
mipi
mips Documentation: DT: Add entries for BCM3384 and its peripherals 2014-11-24 07:45:12 +01:00
misc
mmc mmc: dw_mmc: Add support for IMG Pistachio 2014-11-26 14:31:03 +01:00
mtd mtd: atmel_nand: make PMECC lookup table and offset property optional 2014-11-05 14:44:25 -08:00
net dt/bindings: add clock-select function property to micrel phy binding 2014-11-21 14:08:57 -05:00
nios2 nios2: Device tree support 2014-12-08 12:56:01 +08:00
nvec
panel drm/panel: Add Sharp LQ101R1SX01 support 2014-11-13 13:56:19 +01:00
pci PCI changes for the v3.19 merge window: 2014-12-10 20:58:52 -08:00
phy Phy: DT binding documentation for the Armada 375 USB cluster binding 2014-11-26 11:07:13 +05:30
pinctrl Pin control changes for the v3.19 series: 2014-12-11 10:43:14 -08:00
power dt-bindings: Update documentation for "system-power-controller" and fix misspellings 2014-12-01 19:33:46 +00:00
power_supply power: reset: imx-snvs-poweroff: add power off driver for i.mx6 2014-11-23 14:57:11 +08:00
powerpc powerpc/fsl: Update fman dt binding with clock name and qbman link 2014-11-12 23:53:49 -06:00
pps
pwm pwm: add DT bindings documentation for atmel-hlcdc-pwm driver 2014-11-17 12:20:18 +01:00
regmap regmap: Add the DT binding documentation for endianness 2014-08-16 16:56:23 -05:00
regulator Merge remote-tracking branches 'regulator/topic/sky81452' and 'regulator/topic/stub' into regulator-next 2014-12-05 11:14:43 +00:00
reserved-memory
reset reset: sti: Document sti-picophyreset controllers bindings. 2014-10-31 13:00:38 +01:00
rng Documentation: rng: Add X-Gene SoC RNG driver documentation 2014-08-29 21:46:40 +08:00
rtc powerpc updates for 3.19 2014-12-11 17:48:14 -08:00
serial TTY/Serial driver patches for 3.19-rc1 2014-12-14 15:23:32 -08:00
serio
soc dt/bindings: Introduce the FSL QorIQ DPAA QMan portal(s) 2014-11-12 23:53:47 -06:00
sound Merge remote-tracking branches 'asoc/topic/wm8955', 'asoc/topic/wm8960', 'asoc/topic/wm8961', 'asoc/topic/wm8962' and 'asoc/topic/wm8974' into asoc-next 2014-12-08 13:12:30 +00:00
spi Merge remote-tracking branches 'spi/topic/mxs', 'spi/topic/pxa', 'spi/topic/rockchip', 'spi/topic/samsung' and 'spi/topic/sirf' into spi-next 2014-12-08 12:17:17 +00:00
spmi
staging/iio/adc drm: imx: Move imx-drm driver out of staging 2014-11-26 09:40:39 +10:00
thermal thermal: armada: Remove support for A375-Z1 SoC 2014-11-24 16:55:42 -04:00
timer Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-12-10 08:18:32 -08:00
ufs ufs: Add freq-table-hz property for UFS device 2014-10-01 13:11:25 +02:00
usb Documentation: bindings: add doc for the USB2 ChipIdea USB driver 2014-11-26 09:28:13 -08:00
video Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-12-15 15:52:01 -08:00
virtio
w1 w1: omap-hdq: support device probing with device-tree 2014-11-10 15:58:47 -08:00
watchdog Merge branch 'clockevents/3.19' of http://git.linaro.org/people/daniel.lezcano/linux into timers/core 2014-11-27 11:47:38 +01:00
x86
xillybus xillybus: Move out of staging 2014-09-23 23:44:16 -07:00
ABI.txt
btmrvl.txt Bluetooth: btmrvl: add DT-bindings for gpio-gap 2014-11-19 16:22:42 +01:00
chosen.txt of: Add bindings for chosen node, stdout-path 2014-12-03 23:12:35 +00:00
eeprom.txt
graph.txt
marvell.txt
open-pic.txt
resource-names.txt
submitting-patches.txt Documentation: dt-bindings: Explain order in patch series 2014-10-21 10:31:27 -04:00
unittest.txt of/overlay: Add overlay unittests 2014-11-24 22:25:13 +00:00
vendor-prefixes.txt Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2014-12-17 10:06:02 -08:00
xilinx.txt