periph/i2c: remodeling part 1 and 2: deprecate existing API

Hello to all RIOT developers,

I have seen that there are plans to create a new API for I2C.

I have just one hint about that API:

There are I2C devices out there with an 8-bit ADDRESSING model and also with a 16-bit addressing model.

BUT there are also I2C devices which have a 16-bit DATA register set (e.g. sensors from TI, for example LDC1614)

For my opinion it would be nice to have an API which could also handle 16-bit register transfers.



Hi Neo,

thanks for your input! When talking about addressing, you talk about addressing registers and not about I2C bus addresses, right?

The read/write reg functions of the proposed new interface can simply be seen as convenience functions, mapping to actual calls to the i2c_read/write functions. So using the 'raw' i2c_read/write functions, it is very easy to interact also with devices that use 16-bit data registers.

As further optimization step I was already thinking, of inlining the read/write_reg functions anyway, so it would we might as well add something like i2c_read_reg16/i2c_write_reg16. But for this step some further analysis on the impacts of code size and some more implementation experience on all the platforms is needed...

Cheers, Hauke