android_kernel_samsung_sm8650/drivers/i2c
Marek Vasut 29faeb388a i2c: mxs: Rework the PIO mode operation
Analyze and rework the PIO mode operation. The PIO mode operation
was unreliable on MX28, by analyzing the bus with LA, the checks
for when data were available or were to be sent were wrong.

The PIO WRITE has to be completely reworked as it multiple problems.
The MX23 datasheet helped here, see comments in the code for details.
The problems boil down to:
- RUN bit in CTRL0 must be set after DATA register was written
- The PIO transfer must be 4 bytes long tops, otherwise use
  clock stretching.
Both of these fixes are implemented.

The PIO READ operation can only be done for up to four bytes as
we are unable to read out the data from the DATA register fast
enough.

This patch also tries to document the investigation within the
code.

Signed-off-by: Marek Vasut <marex@denx.de>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2013-10-06 15:56:26 +02:00
..
algos Linux 3.6-rc7 2012-10-08 12:46:32 +02:00
busses i2c: mxs: Rework the PIO mode operation 2013-10-06 15:56:26 +02:00
muxes i2c: remove redundant of_match_ptr 2013-10-03 22:00:41 +02:00
i2c-boardinfo.c i2c: Update the FSF address 2012-03-26 21:47:19 +02:00
i2c-core.c i2c: Remove redundant 'driver' field from the i2c_client struct 2013-10-03 22:28:31 +02:00
i2c-core.h i2c: Update the FSF address 2012-03-26 21:47:19 +02:00
i2c-dev.c i2c: i2c-dev: Create 'name' attribute automatically 2013-09-30 06:02:31 +02:00
i2c-mux.c i2c: move OF helpers into the core 2013-08-23 10:22:20 +02:00
i2c-smbus.c i2c: Remove redundant 'driver' field from the i2c_client struct 2013-10-03 22:28:31 +02:00
i2c-stub.c i2c-stub: Move to drivers/i2c 2012-10-28 21:37:00 +01:00
Kconfig Remove GENERIC_HARDIRQ config option 2013-09-13 15:09:52 +02:00
Makefile i2c-stub: Move to drivers/i2c 2012-10-28 21:37:00 +01:00