i2c: cadence: Allow to specify the FIFO depth
authorLars-Peter Clausen <lars@metafoo.de>
Fri, 17 Mar 2023 14:54:40 +0000 (07:54 -0700)
committerWolfram Sang <wsa@kernel.org>
Wed, 29 Mar 2023 19:16:58 +0000 (21:16 +0200)
commita069fcd9fa1822b81d9db1a67de6b4efd6b788e9
tree2932171d7f9f514db3cae4cb06c45799c531f063
parent6ff0ddb3051e33372a22b1fac11ee74315f9d12e
i2c: cadence: Allow to specify the FIFO depth

The FIFO depth is a synthesis configuration parameters of the Cadence I2C
IP. Different SoCs might use different values for these parameters.

Currently the driver has the FIFO depth hardcoded to 16. Trying to use the
driver with an IP instance that uses smaller values for these will work for
short transfers. But longer transfers will fail.

Introduce a new devicetree property that allows to describe the FIFO depth
of the I2C controller.

These changes have been tested with
1) The Xilinx MPSoC for which this driver was originally written which has
   the previous hardcoded settings of 16 and 255.
2) Another instance of the Cadence I2C IP with FIFO depth of 8 and maximum
   transfer length of 16.

Without these changes the latter would fail for I2C transfers longer than
8. With the updated driver both work fine even for longer transfers.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Michal Simek <michal.simek@amd.com>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
drivers/i2c/busses/i2c-cadence.c