SMBus smart battery driver

This adds support for reading the voltage of a "smart battery" using I2C which is mostly compatible with SMBus.
It might make sense to strip this, even though the block read is unused as of now.