Lines Matching defs:channel
343 int channel)
374 if (st->r_sense_uohm[channel])
379 if (st->r_sense_uohm[channel])
391 if (st->r_sense_uohm[channel])
396 if (st->r_sense_uohm[channel])
481 static int ltc2992_read_in_alarm(struct ltc2992_state *st, int channel, long *val, u32 attr)
491 reg_val = ltc2992_read_reg(st, LTC2992_SENSE_FAULT(channel), 1);
498 return ltc2992_write_reg(st, LTC2992_SENSE_FAULT(channel), 1, reg_val);
501 static int ltc2992_read_in(struct device *dev, u32 attr, int channel, long *val)
506 if (channel > 1)
507 return ltc2992_read_gpios_in(dev, attr, channel - 2, val);
511 reg = LTC2992_SENSE(channel);
514 reg = LTC2992_SENSE_MIN(channel);
517 reg = LTC2992_SENSE_MAX(channel);
520 reg = LTC2992_SENSE_MIN_THRESH(channel);
523 reg = LTC2992_SENSE_MAX_THRESH(channel);
527 return ltc2992_read_in_alarm(st, channel, val, attr);
535 static int ltc2992_get_current(struct ltc2992_state *st, u32 reg, u32 channel, long *val)
544 *val = DIV_ROUND_CLOSEST(reg_val * LTC2992_IADC_NANOV_LSB, st->r_sense_uohm[channel]);
549 static int ltc2992_set_current(struct ltc2992_state *st, u32 reg, u32 channel, long val)
553 reg_val = DIV_ROUND_CLOSEST(val * st->r_sense_uohm[channel], LTC2992_IADC_NANOV_LSB);
559 static int ltc2992_read_curr_alarm(struct ltc2992_state *st, int channel, long *val, u32 attr)
569 reg_val = ltc2992_read_reg(st, LTC2992_DSENSE_FAULT(channel), 1);
576 return ltc2992_write_reg(st, LTC2992_DSENSE_FAULT(channel), 1, reg_val);
579 static int ltc2992_read_curr(struct device *dev, u32 attr, int channel, long *val)
586 reg = LTC2992_DSENSE(channel);
589 reg = LTC2992_DSENSE_MIN(channel);
592 reg = LTC2992_DSENSE_MAX(channel);
595 reg = LTC2992_DSENSE_MIN_THRESH(channel);
598 reg = LTC2992_DSENSE_MAX_THRESH(channel);
602 return ltc2992_read_curr_alarm(st, channel, val, attr);
607 return ltc2992_get_current(st, reg, channel, val);
610 static int ltc2992_get_power(struct ltc2992_state *st, u32 reg, u32 channel, long *val)
619 st->r_sense_uohm[channel] * 1000);
624 static int ltc2992_set_power(struct ltc2992_state *st, u32 reg, u32 channel, long val)
628 reg_val = mul_u64_u32_div(val, st->r_sense_uohm[channel] * 1000,
634 static int ltc2992_read_power_alarm(struct ltc2992_state *st, int channel, long *val, u32 attr)
644 reg_val = ltc2992_read_reg(st, LTC2992_POWER_FAULT(channel), 1);
651 return ltc2992_write_reg(st, LTC2992_POWER_FAULT(channel), 1, reg_val);
654 static int ltc2992_read_power(struct device *dev, u32 attr, int channel, long *val)
661 reg = LTC2992_POWER(channel);
664 reg = LTC2992_POWER_MIN(channel);
667 reg = LTC2992_POWER_MAX(channel);
670 reg = LTC2992_POWER_MIN_THRESH(channel);
673 reg = LTC2992_POWER_MAX_THRESH(channel);
677 return ltc2992_read_power_alarm(st, channel, val, attr);
682 return ltc2992_get_power(st, reg, channel, val);
685 static int ltc2992_read(struct device *dev, enum hwmon_sensor_types type, u32 attr, int channel,
690 return ltc2992_read_in(dev, attr, channel, val);
692 return ltc2992_read_curr(dev, attr, channel, val);
694 return ltc2992_read_power(dev, attr, channel, val);
700 static int ltc2992_write_curr(struct device *dev, u32 attr, int channel, long val)
707 reg = LTC2992_DSENSE_MIN_THRESH(channel);
710 reg = LTC2992_DSENSE_MAX_THRESH(channel);
716 return ltc2992_set_current(st, reg, channel, val);
738 static int ltc2992_write_in(struct device *dev, u32 attr, int channel, long val)
743 if (channel > 1)
744 return ltc2992_write_gpios_in(dev, attr, channel - 2, val);
748 reg = LTC2992_SENSE_MIN_THRESH(channel);
751 reg = LTC2992_SENSE_MAX_THRESH(channel);
760 static int ltc2992_write_power(struct device *dev, u32 attr, int channel, long val)
767 reg = LTC2992_POWER_MIN_THRESH(channel);
770 reg = LTC2992_POWER_MAX_THRESH(channel);
776 return ltc2992_set_power(st, reg, channel, val);
779 static int ltc2992_write_chip(struct device *dev, u32 attr, int channel, long val)
792 static int ltc2992_write(struct device *dev, enum hwmon_sensor_types type, u32 attr, int channel,
797 return ltc2992_write_chip(dev, attr, channel, val);
799 return ltc2992_write_in(dev, attr, channel, val);
801 return ltc2992_write_curr(dev, attr, channel, val);
803 return ltc2992_write_power(dev, attr, channel, val);