I'm writing a driver on an embedded host MCU to interface with the BQ35100 primary battery gauge over I2C. I have already written one for the similar BQ27441 chip, so I have a working code base to start from. I can read temperature, voltage, etc., successfully but sub-command reads from the control() register always return 0. I know the same code works on BQ27441 and I've checked that what I am doing matches the sequence of figure 2 of http://www.ti.com/lit/an/slua467b/slua467b.pdf (which is what the BQ35100 data sheet points me at). Here's an I2C trace of an attempt to read DEVICE_TYPE (0x0001) and you can see that, rather than returning 0x41, the chip returns zero:
What can I be doing wrong? I've tried switching to the ManufacturerAccessControl register (0x3e) instead, but that doesn't seem to help.