Lines Matching refs:sensor

389 	struct pmbus_sensor *sensor;  in pmbus_update_device()  local
420 for (sensor = data->sensors; sensor; sensor = sensor->next) { in pmbus_update_device()
421 if (!data->valid || sensor->update) in pmbus_update_device()
422 sensor->data in pmbus_update_device()
424 sensor->page, in pmbus_update_device()
425 sensor->reg); in pmbus_update_device()
440 struct pmbus_sensor *sensor) in pmbus_reg2data_linear() argument
446 if (sensor->class == PSC_VOLTAGE_OUT) { /* LINEAR16 */ in pmbus_reg2data_linear()
447 exponent = data->exponent[sensor->page]; in pmbus_reg2data_linear()
448 mantissa = (u16) sensor->data; in pmbus_reg2data_linear()
450 exponent = ((s16)sensor->data) >> 11; in pmbus_reg2data_linear()
451 mantissa = ((s16)((sensor->data & 0x7ff) << 5)) >> 5; in pmbus_reg2data_linear()
457 if (sensor->class != PSC_FAN) in pmbus_reg2data_linear()
461 if (sensor->class == PSC_POWER) in pmbus_reg2data_linear()
477 struct pmbus_sensor *sensor) in pmbus_reg2data_direct() argument
479 long val = (s16) sensor->data; in pmbus_reg2data_direct()
482 m = data->info->m[sensor->class]; in pmbus_reg2data_direct()
483 b = data->info->b[sensor->class]; in pmbus_reg2data_direct()
484 R = data->info->R[sensor->class]; in pmbus_reg2data_direct()
492 if (sensor->class != PSC_FAN) { in pmbus_reg2data_direct()
498 if (sensor->class == PSC_POWER) { in pmbus_reg2data_direct()
521 struct pmbus_sensor *sensor) in pmbus_reg2data_vid() argument
523 long val = sensor->data; in pmbus_reg2data_vid()
530 static long pmbus_reg2data(struct pmbus_data *data, struct pmbus_sensor *sensor) in pmbus_reg2data() argument
534 switch (data->info->format[sensor->class]) { in pmbus_reg2data()
536 val = pmbus_reg2data_direct(data, sensor); in pmbus_reg2data()
539 val = pmbus_reg2data_vid(data, sensor); in pmbus_reg2data()
543 val = pmbus_reg2data_linear(data, sensor); in pmbus_reg2data()
553 struct pmbus_sensor *sensor, long val) in pmbus_data2reg_linear() argument
562 if (sensor->class == PSC_VOLTAGE_OUT) { in pmbus_data2reg_linear()
571 if (data->exponent[sensor->page] < 0) in pmbus_data2reg_linear()
572 val <<= -data->exponent[sensor->page]; in pmbus_data2reg_linear()
574 val >>= data->exponent[sensor->page]; in pmbus_data2reg_linear()
585 if (sensor->class == PSC_POWER) in pmbus_data2reg_linear()
592 if (sensor->class == PSC_FAN) in pmbus_data2reg_linear()
622 struct pmbus_sensor *sensor, long val) in pmbus_data2reg_direct() argument
626 m = data->info->m[sensor->class]; in pmbus_data2reg_direct()
627 b = data->info->b[sensor->class]; in pmbus_data2reg_direct()
628 R = data->info->R[sensor->class]; in pmbus_data2reg_direct()
631 if (sensor->class == PSC_POWER) { in pmbus_data2reg_direct()
637 if (sensor->class != PSC_FAN) { in pmbus_data2reg_direct()
656 struct pmbus_sensor *sensor, long val) in pmbus_data2reg_vid() argument
664 struct pmbus_sensor *sensor, long val) in pmbus_data2reg() argument
668 switch (data->info->format[sensor->class]) { in pmbus_data2reg()
670 regval = pmbus_data2reg_direct(data, sensor, val); in pmbus_data2reg()
673 regval = pmbus_data2reg_vid(data, sensor, val); in pmbus_data2reg()
677 regval = pmbus_data2reg_linear(data, sensor, val); in pmbus_data2reg()
759 struct pmbus_sensor *sensor = to_pmbus_sensor(devattr); in pmbus_show_sensor() local
761 if (sensor->data < 0) in pmbus_show_sensor()
762 return sensor->data; in pmbus_show_sensor()
764 return snprintf(buf, PAGE_SIZE, "%ld\n", pmbus_reg2data(data, sensor)); in pmbus_show_sensor()
773 struct pmbus_sensor *sensor = to_pmbus_sensor(devattr); in pmbus_set_sensor() local
783 regval = pmbus_data2reg(data, sensor, val); in pmbus_set_sensor()
784 ret = _pmbus_write_word_data(client, sensor->page, sensor->reg, regval); in pmbus_set_sensor()
788 sensor->data = regval; in pmbus_set_sensor()
882 struct pmbus_sensor *sensor; in pmbus_add_sensor() local
885 sensor = devm_kzalloc(data->dev, sizeof(*sensor), GFP_KERNEL); in pmbus_add_sensor()
886 if (!sensor) in pmbus_add_sensor()
888 a = &sensor->attribute; in pmbus_add_sensor()
890 snprintf(sensor->name, sizeof(sensor->name), "%s%d_%s", in pmbus_add_sensor()
892 sensor->page = page; in pmbus_add_sensor()
893 sensor->reg = reg; in pmbus_add_sensor()
894 sensor->class = class; in pmbus_add_sensor()
895 sensor->update = update; in pmbus_add_sensor()
896 pmbus_dev_attr_init(a, sensor->name, in pmbus_add_sensor()
903 sensor->next = data->sensors; in pmbus_add_sensor()
904 data->sensors = sensor; in pmbus_add_sensor()
906 return sensor; in pmbus_add_sensor()