Re: [PATCH v10 43/55] dt-bindings: input: atmel: support to set max bytes transferred

From: Wang, Jiada
Date: Tue Apr 07 2020 - 05:28:06 EST


Hi Dmitry

On 2020/04/01 23:38, Dmitry Osipenko wrote:
31.03.2020 13:50, Jiada Wang ÐÐÑÐÑ:
Add support to set max bytes transferred in an i2c transaction

Signed-off-by: Jiada Wang <jiada_wang@xxxxxxxxxx>
---
Documentation/devicetree/bindings/input/atmel,maxtouch.txt | 3 +++
1 file changed, 3 insertions(+)

diff --git a/Documentation/devicetree/bindings/input/atmel,maxtouch.txt b/Documentation/devicetree/bindings/input/atmel,maxtouch.txt
index 126266891cdc..37a798cab0dd 100644
--- a/Documentation/devicetree/bindings/input/atmel,maxtouch.txt
+++ b/Documentation/devicetree/bindings/input/atmel,maxtouch.txt
@@ -45,6 +45,8 @@ Optional properties for main touchpad device:
- atmel,input_name: Override name of input device from the default.
+- atmel,mtu: Maximum number of bytes that can read/transferred in an i2c transaction
+
Example:
touch@4b {
@@ -52,4 +54,5 @@ Example:
reg = <0x4b>;
interrupt-parent = <&gpio>;
interrupts = <TEGRA_GPIO(W, 3) IRQ_TYPE_LEVEL_LOW>;
+ atmel,mtu = <200>
};


Is this a software (firmware) limitation which varies from version to
version?


the timeout issue trying to be addressed in this patch is from software,
one of our board a Serializer/Deserializer bridge exists between the SoC (imx6) and the Atmel touch controller.
imx6 i2c controller driver has a timeout value(100ms) for each i2c transaction,
Large i2c read transaction failed to complete within this timeout value and therefore imx6 i2c controller driver aborts the transaction
and returns failure.

Therefore this patch was created to split the large i2c transaction into smaller chunks which can complete
within the timeout defined by i2c controller driver.

Thanks,
Jiada
If the limitation is per-hardware version, then perhaps should be better
to have a hardcoded per-hardware table of limits in the driver?