Lines Matching defs:channel
98 * struct ina3221_input - channel input source specific information
99 * @label: label of channel input source
100 * @shunt_resistor: shunt resistor value of channel input source
101 * @disconnected: connection status of channel input source
114 * @inputs: Array of channel input source specific structures
132 static inline bool ina3221_is_enabled(struct ina3221_data *ina, int channel)
134 /* Summation channel checks shunt resistor values */
135 if (channel > INA3221_CHANNEL3)
139 (ina->reg_config & INA3221_CONFIG_CHx_EN(channel));
269 static int ina3221_read_in(struct device *dev, u32 attr, int channel, long *val)
271 const bool is_shunt = channel > INA3221_CHANNEL3;
273 u8 reg = ina3221_in_reg[channel];
277 * Translate shunt channel index to sensor channel index except
278 * the 7th channel (6 since being 0-aligned) is for summation.
280 if (channel != 6)
281 channel %= INA3221_NUM_CHANNELS;
285 if (!ina3221_is_enabled(ina, channel))
309 *val = ina3221_is_enabled(ina, channel);
327 int channel, long *val)
331 u8 reg = ina3221_curr_reg[attr][channel];
335 if (channel > INA3221_CHANNEL3)
338 resistance_uo = input[channel].shunt_resistor;
342 if (!ina3221_is_enabled(ina, channel))
372 /* No actual register read if channel is disabled */
373 if (!ina3221_is_enabled(ina, channel)) {
431 int channel, long val)
435 u8 reg = ina3221_curr_reg[attr][channel];
439 if (channel > INA3221_CHANNEL3)
442 resistance_uo = input[channel].shunt_resistor;
476 static int ina3221_write_enable(struct device *dev, int channel, bool enable)
479 u16 config, mask = INA3221_CONFIG_CHx_EN(channel);
499 /* Enable or disable the channel */
516 dev_err(dev, "Failed to enable channel %d: error %d\n",
517 channel, ret);
525 u32 attr, int channel, long *val)
537 /* 0-align channel ID */
538 ret = ina3221_read_in(dev, attr, channel - 1, val);
541 ret = ina3221_read_curr(dev, attr, channel, val);
554 u32 attr, int channel, long val)
566 /* 0-align channel ID */
567 ret = ina3221_write_enable(dev, channel - 1, val);
570 ret = ina3221_write_curr(dev, attr, channel, val);
583 u32 attr, int channel, const char **str)
586 int index = channel - 1;
588 if (channel == 7)
598 u32 attr, int channel)
614 if (channel == 0)
619 if (channel - 1 <= INA3221_CHANNEL3)
620 input = &ina->inputs[channel - 1];
621 else if (channel == 7)
698 unsigned int channel = sd_attr->index;
699 struct ina3221_input *input = &ina->inputs[channel];
710 unsigned int channel = sd_attr->index;
711 struct ina3221_input *input = &ina->inputs[channel];
723 /* Update summation_shunt_resistor for summation channel */
780 /* Log the disconnected channel input */
874 /* Initialize summation_shunt_resistor for summation channel control */
978 /* Initialize summation channel control */
989 dev_err(dev, "Unable to control summation channel\n");