workaround bug to at least overwrite with the correct value

currently we're using i2c methods to read/write device
but device isn't actually i2c, but two-wire with its own
made up rules.  with i2c read we first write the address
we want to read, i was passing 0, which this device
actually interprets as writing 0 to the first byte
of the reg at 0x2.  effectively i was always
zeroing out this register.  now we workaround this
by writing back the previous value