I really doubt you can do that over I2C, especially if you get multiple pulses per revolution.
As I recall, Pi's I2C defaults to 100khz. Each I2C packet for reading a register takes ~30 i2c bit periods at a minimum.
For this speed, use the Pi's native pins, in C/C++ with interrupts, or an external microcontroller.
rjhazeld wrote:Thanks for the quick reply. my reading did highlight the speed issue and was what took me in the direction of PIGPIO which seems to have i2c capability and is fast. The motors are said to run at up to 11,500 rpm
The smbus route looks straightforward in the context of switching LEDs but I do not know how I would set up interrupt driven callbacks, which seem to be necessary to read direction and rpm.