static int lm25066_write_word_data(struct i2c_client *client, int page, int reg, u16 word) { int ret; if (page > 1) return -ENXIO; switch (reg) { case PMBUS_IIN_OC_WARN_LIMIT: ret = pmbus_write_word_data(client, 0, LM25066_MFR_IIN_OC_WARN_LIMIT, word); break; case PMBUS_PIN_OP_WARN_LIMIT: ret = pmbus_write_word_data(client, 0, LM25066_MFR_PIN_OP_WARN_LIMIT, word); break; case PMBUS_VIRT_RESET_PIN_HISTORY: ret = pmbus_write_byte(client, 0, LM25066_CLEAR_PIN_PEAK); break; default: ret = -ENODATA; break; } return ret; }
static int lm25066_write_byte(struct i2c_client *client, int page, u8 value) { if (page > 1) return -ENXIO; if (page <= 0) return pmbus_write_byte(client, page, value); return 0; }
static int lm25066_write_byte(struct i2c_client *client, int page, u8 value) { if (page > 1) return -EINVAL; if (page == 0) return pmbus_write_byte(client, 0, value); return 0; }
static int zl6100_write_byte(struct i2c_client *client, int page, u8 value) { const struct pmbus_driver_info *info = pmbus_get_driver_info(client); struct zl6100_data *data = to_zl6100_data(info); int ret; if (page > 0) return -ENXIO; zl6100_wait(data); ret = pmbus_write_byte(client, page, value); data->access = ktime_get(); return ret; }