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()
520 struct pmbus_sensor *sensor) in pmbus_reg2data_vid() argument
522 long val = sensor->data; in pmbus_reg2data_vid()
538 static long pmbus_reg2data(struct pmbus_data *data, struct pmbus_sensor *sensor) in pmbus_reg2data() argument
542 switch (data->info->format[sensor->class]) { in pmbus_reg2data()
544 val = pmbus_reg2data_direct(data, sensor); in pmbus_reg2data()
547 val = pmbus_reg2data_vid(data, sensor); in pmbus_reg2data()
551 val = pmbus_reg2data_linear(data, sensor); in pmbus_reg2data()
561 struct pmbus_sensor *sensor, long val) in pmbus_data2reg_linear() argument
570 if (sensor->class == PSC_VOLTAGE_OUT) { in pmbus_data2reg_linear()
579 if (data->exponent[sensor->page] < 0) in pmbus_data2reg_linear()
580 val <<= -data->exponent[sensor->page]; in pmbus_data2reg_linear()
582 val >>= data->exponent[sensor->page]; in pmbus_data2reg_linear()
593 if (sensor->class == PSC_POWER) in pmbus_data2reg_linear()
600 if (sensor->class == PSC_FAN) in pmbus_data2reg_linear()
630 struct pmbus_sensor *sensor, long val) in pmbus_data2reg_direct() argument
634 m = data->info->m[sensor->class]; in pmbus_data2reg_direct()
635 b = data->info->b[sensor->class]; in pmbus_data2reg_direct()
636 R = data->info->R[sensor->class]; in pmbus_data2reg_direct()
639 if (sensor->class == PSC_POWER) { in pmbus_data2reg_direct()
645 if (sensor->class != PSC_FAN) { in pmbus_data2reg_direct()
664 struct pmbus_sensor *sensor, long val) in pmbus_data2reg_vid() argument
672 struct pmbus_sensor *sensor, long val) in pmbus_data2reg() argument
676 switch (data->info->format[sensor->class]) { in pmbus_data2reg()
678 regval = pmbus_data2reg_direct(data, sensor, val); in pmbus_data2reg()
681 regval = pmbus_data2reg_vid(data, sensor, val); in pmbus_data2reg()
685 regval = pmbus_data2reg_linear(data, sensor, val); in pmbus_data2reg()
767 struct pmbus_sensor *sensor = to_pmbus_sensor(devattr); in pmbus_show_sensor() local
769 if (sensor->data < 0) in pmbus_show_sensor()
770 return sensor->data; in pmbus_show_sensor()
772 return snprintf(buf, PAGE_SIZE, "%ld\n", pmbus_reg2data(data, sensor)); in pmbus_show_sensor()
781 struct pmbus_sensor *sensor = to_pmbus_sensor(devattr); in pmbus_set_sensor() local
791 regval = pmbus_data2reg(data, sensor, val); in pmbus_set_sensor()
792 ret = _pmbus_write_word_data(client, sensor->page, sensor->reg, regval); in pmbus_set_sensor()
796 sensor->data = regval; in pmbus_set_sensor()
890 struct pmbus_sensor *sensor; in pmbus_add_sensor() local
893 sensor = devm_kzalloc(data->dev, sizeof(*sensor), GFP_KERNEL); in pmbus_add_sensor()
894 if (!sensor) in pmbus_add_sensor()
896 a = &sensor->attribute; in pmbus_add_sensor()
898 snprintf(sensor->name, sizeof(sensor->name), "%s%d_%s", in pmbus_add_sensor()
900 sensor->page = page; in pmbus_add_sensor()
901 sensor->reg = reg; in pmbus_add_sensor()
902 sensor->class = class; in pmbus_add_sensor()
903 sensor->update = update; in pmbus_add_sensor()
904 pmbus_dev_attr_init(a, sensor->name, in pmbus_add_sensor()
911 sensor->next = data->sensors; in pmbus_add_sensor()
912 data->sensors = sensor; in pmbus_add_sensor()
914 return sensor; in pmbus_add_sensor()