Lines Matching +full:proxraw +full:- +full:strength

1 // SPDX-License-Identifier: GPL-2.0
180 * Returns the fake increment of (Max-Min)/2047
215 regmap_reg_range(SX9360_REG_IRQ_CFG + 1, SX9360_REG_GNRL_CTRL0 - 1),
216 regmap_reg_range(SX9360_REG_GNRL_CTRL2 + 1, SX9360_REG_AFE_CTRL1 - 1),
218 SX9360_REG_PROX_CTRL0_PHR - 1),
219 regmap_reg_range(SX9360_REG_PROX_CTRL5 + 1, SX9360_REG_REF_CORR0 - 1),
221 SX9360_REG_USEFUL_PHR_MSB - 1),
222 regmap_reg_range(SX9360_REG_USE_FILTER_LSB + 1, SX9360_REG_RESET - 1),
223 regmap_reg_range(SX9360_REG_RESET + 1, SX9360_REG_WHOAMI - 1),
224 regmap_reg_range(SX9360_REG_WHOAMI + 1, SX9360_REG_REVISION - 1),
260 return regmap_bulk_read(data->regmap, chan->address, val, sizeof(*val));
272 ret = regmap_bulk_read(data->regmap, SX9360_REG_GNRL_CTRL1,
287 reg = SX9360_REG_PROX_CTRL0_PHR + chan->channel;
288 ret = regmap_read(data->regmap, reg, &regval);
303 ret = regmap_bulk_read(data->regmap, SX9360_REG_GNRL_CTRL1,
329 return -EBUSY;
336 return -EBUSY;
344 return -EINVAL;
355 return sysfs_emit(label, "%s\n", sx9360_channel_labels[chan->channel]);
365 if (chan->type != IIO_PROXIMITY)
366 return -EINVAL;
380 return -EINVAL;
392 guard(mutex)(&data->mutex);
394 return regmap_bulk_write(data->regmap, SX9360_REG_GNRL_CTRL1, &buf,
403 ret = regmap_read(data->regmap, SX9360_REG_PROX_CTRL5, &regval);
424 ret = regmap_read(data->regmap, SX9360_REG_PROX_CTRL4, &regval);
432 *val = pthresh >> (5 - regval);
442 ret = regmap_read(data->regmap, SX9360_REG_PROX_CTRL4, &regval);
460 ret = regmap_read(data->regmap, SX9360_REG_PROX_CTRL4, &regval);
481 if (chan->type != IIO_PROXIMITY)
482 return -EINVAL;
494 return -EINVAL;
499 return -EINVAL;
511 return -EINVAL;
513 guard(mutex)(&data->mutex);
514 return regmap_write(data->regmap, SX9360_REG_PROX_CTRL5, val);
535 return -EINVAL;
538 guard(mutex)(&data->mutex);
539 return regmap_update_bits(data->regmap, SX9360_REG_PROX_CTRL4,
550 return -EINVAL;
554 guard(mutex)(&data->mutex);
555 return regmap_update_bits(data->regmap, SX9360_REG_PROX_CTRL4,
567 return -EINVAL;
571 guard(mutex)(&data->mutex);
572 return regmap_update_bits(data->regmap, SX9360_REG_PROX_CTRL4,
585 if (chan->type != IIO_PROXIMITY)
586 return -EINVAL;
598 return -EINVAL;
603 return -EINVAL;
613 reg = SX9360_REG_PROX_CTRL0_PHR + chan->channel;
616 guard(mutex)(&data->mutex);
617 return regmap_update_bits(data->regmap, reg,
634 return -EINVAL;
681 ret = regmap_set_bits(data->regmap, SX9360_REG_STAT,
686 return regmap_read_poll_timeout(data->regmap, SX9360_REG_STAT, val,
699 switch (reg_def->reg) {
702 "semtech,input-precharge-resistor-ohms",
707 reg_def->def &= ~SX9360_REG_AFE_CTRL1_RESFILTIN_MASK;
708 reg_def->def |= FIELD_PREP(SX9360_REG_AFE_CTRL1_RESFILTIN_MASK,
717 raw = ilog2(raw) - 3;
719 reg_def->def &= ~SX9360_REG_AFE_PARAM0_RESOLUTION_MASK;
720 reg_def->def |= FIELD_PREP(SX9360_REG_AFE_PARAM0_RESOLUTION_MASK, raw);
724 ret = device_property_read_u32(dev, "semtech,proxraw-strength", &raw);
728 reg_def->def &= ~SX9360_REG_PROX_CTRL0_RAWFILT_MASK;
729 reg_def->def |= FIELD_PREP(SX9360_REG_PROX_CTRL0_RAWFILT_MASK, raw);
732 ret = device_property_read_u32(dev, "semtech,avg-pos-strength",
738 raw = clamp(ilog2(pos), 3, 11) - (pos >= 32 ? 4 : 3);
739 reg_def->def &= ~SX9360_REG_PROX_CTRL3_AVGPOS_FILT_MASK;
740 reg_def->def |= FIELD_PREP(SX9360_REG_PROX_CTRL3_AVGPOS_FILT_MASK, raw);
753 indio_dev->name = "sx9360";
801 disable_irq_nosync(data->client->irq);
803 guard(mutex)(&data->mutex);
804 ret = regmap_read(data->regmap, SX9360_REG_GNRL_CTRL0, &regval);
808 data->suspend_ctrl =
813 return regmap_write(data->regmap, SX9360_REG_GNRL_CTRL0, 0);
820 scoped_guard(mutex, &data->mutex) {
821 int ret = regmap_update_bits(data->regmap,
824 data->suspend_ctrl);
828 enable_irq(data->client->irq);