"That looks very clean (or lazy..." <- > <@juliand:fehler-in-der-matrix.de> That looks very clean (or lazy ;D), indeed, thanks! Having the registers as enum variants with a value associated would make more sense for my driver, as well. And since some registers have a HIGH and a LOW byte, its probably best to keep just the first address in the enum. Then I can have the knowledge about which registers need combining into one particular function. Instead of distributing it over multiple files and having read/set/clear etc. > > Thanks for the input! Yeah that repo I linked actually has u16 registers and u8s as well, and as you said, you just list the first address and omit the second, then during reads do a 2 byte read and it usually works out just fine. Depends on the sensor, but most work like that without any special need for I2C transaction ordering