The function pcf85063_stop_clock() is intended to provide the value of the Control_1 register via the pointer ctrl1. However, it's really providing the return value of the last i2c_smbus_write_byte_data() call, i.e., zero. So the register value needs to be saved in a separate local variable other than ret. Or, the line *ctrl1 = ret; needs to be moved up to be above the last i2c_smbus_write_byte_data() call. -- Craig McQueen