static int pcf8563_set_alarm_mode(struct i2c_client *client, bool on)
 {
-       unsigned char buf[2];
+       unsigned char buf;
        int err;
 
-       err = pcf8563_read_block_data(client, PCF8563_REG_ST2, 1, buf + 1);
+       err = pcf8563_read_block_data(client, PCF8563_REG_ST2, 1, &buf);
        if (err < 0)
                return err;
 
        if (on)
-               buf[1] |= PCF8563_BIT_AIE;
+               buf |= PCF8563_BIT_AIE;
        else
-               buf[1] &= ~PCF8563_BIT_AIE;
+               buf &= ~PCF8563_BIT_AIE;
 
-       buf[1] &= ~PCF8563_BIT_AF;
-       buf[0] = PCF8563_REG_ST2;
+       buf &= ~PCF8563_BIT_AF;
 
-       err = pcf8563_write_block_data(client, PCF8563_REG_ST2, 1, buf + 1);
+       err = pcf8563_write_block_data(client, PCF8563_REG_ST2, 1, &buf);
        if (err < 0) {
                dev_err(&client->dev, "%s: write error\n", __func__);
                return -EIO;