Some kind of host configuration function should be defined, some of the parameters that could be set: operating speed, target/controller, 10 bit/7 bit addressing, etc.
I see two possible locations:
- Inside the i2c resource:
configure: func(options: options) (options would be a struct then)
- Provide it as part of an interface for a board world.
Personally, I prefer the second option. It seems to me that this follows the conclusions from #2, and I favour (some kind of) uniformity across board worlds.