static int max17048_masked_write_word(struct i2c_client *client, int reg, u16 mask, u16 val) { s32 rc; u16 temp; temp = max17048_read_word(client, reg); if (temp < 0) { pr_err("max17048_read_word failed: reg=%03X, rc=%d\n", reg, temp); return temp; } if ((temp & mask) == (val & mask)) return 0; temp &= ~mask; temp |= val & mask; rc = max17048_write_word(client, reg, temp); if (rc) { pr_err("max17048_write_word failed: reg=%03X, rc=%d\n", reg, rc); return rc; } return 0; }
/* Using Quickstart instead of reset for Power Test * DO NOT USE THIS COMMAND ANOTHER SCENE. */ static int max17048_set_reset(struct i2c_client *client) { max17048_write_word(client, MAX17048_MODE, 0x4000); dev_info(&client->dev, "MAX17048 Reset(Quickstart)\n"); return 0; }
static int set_reg(void *data, u64 val) { u32 addr = (u32) data; int ret; struct i2c_client *client = ref->client; ret = max17048_write_word(client, addr, (u16) val); return ret; }
/* Using Quickstart instead of reset for Power Test * DO NOT USE THIS COMMAND ANOTHER SCENE. */ static int max17048_set_reset(struct max17048_chip *chip) { max17048_write_word(chip->client, MODE_REG, 0x4000); pr_info("%s: Reset (Quickstart)\n", __func__); return 0; }