The interface is rather odd and needs to be cleaned up.
. It uses a struct that contains data, data_len, clock multiplier, and number of masters (!). data and data_len clearly belong together, but the number of masters should be part of the bus definition, and the clock multiplier belongs with the device address. Furthermore, for any normal use both device address and clock multiplier are constant.
. The data_len is measured in bytes - it is worth checking that this should not be the number of bits.
The interface is rather odd and needs to be cleaned up.
. It uses a struct that contains data, data_len, clock multiplier, and number of masters (!). data and data_len clearly belong together, but the number of masters should be part of the bus definition, and the clock multiplier belongs with the device address. Furthermore, for any normal use both device address and clock multiplier are constant.
. The data_len is measured in bytes - it is worth checking that this should not be the number of bits.