I’ve made some tests and it works much better, thank you.
However, I still see something strange.
My test consists on sending blocks of 248 bytes to my I2C device, at 400kHz. Then my device send an acknowledge thanks to an IRQ GPIO (GPIO_210) that triggs a read action.
I execute such data transfer around 1000 times.
At the beginning I can see 248 bytes blocks transferred correctly. Then my device immediately set the IRQ, but the read occurs only about 50ms after. This is VERY late and I do not understand why, as I do not have such behavior in DragonBoard for instance.
Then, after a couple of time, I can see that the 248 bytes are not transmitted anymore in one shot, but in several blocks (up to 4) separated by ~3ms. Once the latest block has been sent, my device set the IRQ line and the hikey read data after ~7ms.