Lines Matching +full:negative +full:- +full:phase

1 // SPDX-License-Identifier: GPL-2.0-or-later
59 /* Convert linear sensor value to milli-units */
71 /* scale result to milli-units */ in zl6100_l2d()
77 val >>= -exponent; in zl6100_l2d()
88 bool negative = false; in zl6100_d2l() local
95 negative = true; in zl6100_d2l()
96 val = -val; in zl6100_d2l()
105 while (val < MIN_MANTISSA && exponent > -15) { in zl6100_d2l()
106 exponent--; in zl6100_d2l()
110 /* Convert mantissa from milli-units to units */ in zl6100_d2l()
118 if (negative) in zl6100_d2l()
119 mantissa = -mantissa; in zl6100_d2l()
128 if (data->delay) { in zl6100_wait()
129 s64 delta = ktime_us_delta(ktime_get(), data->access); in zl6100_wait()
130 if (delta < data->delay) in zl6100_wait()
131 udelay(data->delay - delta); in zl6100_wait()
136 int phase, int reg) in zl6100_read_word_data() argument
142 if (page >= info->pages) in zl6100_read_word_data()
143 return -ENXIO; in zl6100_read_word_data()
145 if (data->id == zl2005) { in zl6100_read_word_data()
154 return -ENXIO; in zl6100_read_word_data()
172 return -ENXIO; in zl6100_read_word_data()
178 ret = pmbus_read_word_data(client, page, phase, vreg); in zl6100_read_word_data()
179 data->access = ktime_get(); in zl6100_read_word_data()
201 if (page >= info->pages) in zl6100_read_byte_data()
202 return -ENXIO; in zl6100_read_byte_data()
228 data->access = ktime_get(); in zl6100_read_byte_data()
240 if (page >= info->pages) in zl6100_write_word_data()
241 return -ENXIO; in zl6100_write_word_data()
264 return -ENXIO; in zl6100_write_word_data()
270 data->access = ktime_get(); in zl6100_write_word_data()
281 if (page >= info->pages) in zl6100_write_byte()
282 return -ENXIO; in zl6100_write_byte()
286 data->access = ktime_get(); in zl6100_write_byte()
326 if (!i2c_check_functionality(client->adapter, in zl6100_probe()
329 return -ENODEV; in zl6100_probe()
334 dev_err(&client->dev, "Failed to read device ID\n"); in zl6100_probe()
338 dev_info(&client->dev, "Device ID %s\n", device_id); in zl6100_probe()
341 for (mid = zl6100_id; mid->name[0]; mid++) { in zl6100_probe()
342 if (!strncasecmp(mid->name, device_id, strlen(mid->name))) in zl6100_probe()
345 if (!mid->name[0]) { in zl6100_probe()
346 dev_err(&client->dev, "Unsupported device\n"); in zl6100_probe()
347 return -ENODEV; in zl6100_probe()
349 if (strcmp(client->name, mid->name) != 0) in zl6100_probe()
350 dev_notice(&client->dev, in zl6100_probe()
352 client->name, mid->name); in zl6100_probe()
354 data = devm_kzalloc(&client->dev, sizeof(struct zl6100_data), in zl6100_probe()
357 return -ENOMEM; in zl6100_probe()
359 data->id = mid->driver_data; in zl6100_probe()
366 data->delay = delay; in zl6100_probe()
372 data->access = ktime_get(); in zl6100_probe()
375 info = &data->info; in zl6100_probe()
377 info->pages = 1; in zl6100_probe()
378 info->func[0] = PMBUS_HAVE_VIN | PMBUS_HAVE_STATUS_INPUT in zl6100_probe()
388 if (data->id == zl2004 || data->id == zl8802 || data->id == zl9101 || in zl6100_probe()
389 data->id == zl9117 || data->id == zls4009) in zl6100_probe()
390 info->func[0] |= PMBUS_HAVE_VMON | PMBUS_HAVE_STATUS_VMON; in zl6100_probe()
399 if (data->id == zl8802) { in zl6100_probe()
400 info->pages = 2; in zl6100_probe()
401 info->func[0] |= PMBUS_HAVE_IIN; in zl6100_probe()
407 data->access = ktime_get(); in zl6100_probe()
411 info->func[1] |= PMBUS_HAVE_IOUT | PMBUS_HAVE_STATUS_IOUT; in zl6100_probe()
413 info->func[1] = PMBUS_HAVE_VOUT | PMBUS_HAVE_STATUS_VOUT in zl6100_probe()
421 data->access = ktime_get(); in zl6100_probe()
429 info->func[i] |= PMBUS_HAVE_TEMP2; in zl6100_probe()
431 data->access = ktime_get(); in zl6100_probe()
439 info->func[0] |= PMBUS_HAVE_TEMP3; in zl6100_probe()
446 info->func[0] |= PMBUS_HAVE_TEMP2; in zl6100_probe()
449 data->access = ktime_get(); in zl6100_probe()
452 info->read_word_data = zl6100_read_word_data; in zl6100_probe()
453 info->read_byte_data = zl6100_read_byte_data; in zl6100_probe()
454 info->write_word_data = zl6100_write_word_data; in zl6100_probe()
455 info->write_byte = zl6100_write_byte; in zl6100_probe()