Lines Matching refs:afe
141 struct afe4403_data *afe = iio_priv(indio_dev);
147 ret = regmap_field_read(afe->fields[afe440x_attr->field], ®_val);
165 struct afe4403_data *afe = iio_priv(indio_dev);
180 ret = regmap_field_write(afe->fields[afe440x_attr->field], val);
217 static int afe4403_read(struct afe4403_data *afe, unsigned int reg, u32 *val)
224 ret = spi_write_then_read(afe->spi, tx, 4, NULL, 0);
228 ret = spi_write_then_read(afe->spi, ®, 1, rx, sizeof(rx));
236 ret = spi_write_then_read(afe->spi, tx, 4, NULL, 0);
247 struct afe4403_data *afe = iio_priv(indio_dev);
256 ret = afe4403_read(afe, reg, val);
266 ret = regmap_field_read(afe->fields[field], val);
287 struct afe4403_data *afe = iio_priv(indio_dev);
294 return regmap_field_write(afe->fields[field], val);
314 struct afe4403_data *afe = iio_priv(indio_dev);
320 ret = spi_write_then_read(afe->spi, tx, 4, NULL, 0);
326 ret = spi_write_then_read(afe->spi,
332 afe->buffer[i++] = get_unaligned_be24(&rx[0]);
337 ret = spi_write_then_read(afe->spi, tx, 4, NULL, 0);
341 iio_push_to_buffers_with_timestamp(indio_dev, afe->buffer,
415 struct afe4403_data *afe = iio_priv(indio_dev);
418 ret = regmap_update_bits(afe->regmap, AFE440X_CONTROL2,
424 ret = regulator_disable(afe->regulator);
436 struct afe4403_data *afe = iio_priv(indio_dev);
439 ret = regulator_enable(afe->regulator);
445 ret = regmap_update_bits(afe->regmap, AFE440X_CONTROL2,
459 struct afe4403_data *afe;
462 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*afe));
466 afe = iio_priv(indio_dev);
469 afe->dev = &spi->dev;
470 afe->spi = spi;
471 afe->irq = spi->irq;
473 afe->regmap = devm_regmap_init_spi(spi, &afe4403_regmap_config);
474 if (IS_ERR(afe->regmap)) {
475 dev_err(afe->dev, "Unable to allocate register map\n");
476 return PTR_ERR(afe->regmap);
480 afe->fields[i] = devm_regmap_field_alloc(afe->dev, afe->regmap,
482 if (IS_ERR(afe->fields[i])) {
483 dev_err(afe->dev, "Unable to allocate regmap fields\n");
484 return PTR_ERR(afe->fields[i]);
488 afe->regulator = devm_regulator_get(afe->dev, "tx_sup");
489 if (IS_ERR(afe->regulator))
490 return dev_err_probe(afe->dev, PTR_ERR(afe->regulator),
493 ret = regulator_enable(afe->regulator);
495 dev_err(afe->dev, "Unable to enable regulator\n");
499 ret = regmap_write(afe->regmap, AFE440X_CONTROL0,
502 dev_err(afe->dev, "Unable to reset device\n");
506 ret = regmap_multi_reg_write(afe->regmap, afe4403_reg_sequences,
509 dev_err(afe->dev, "Unable to set register defaults\n");
519 if (afe->irq > 0) {
520 afe->trig = devm_iio_trigger_alloc(afe->dev,
524 if (!afe->trig) {
525 dev_err(afe->dev, "Unable to allocate IIO trigger\n");
530 iio_trigger_set_drvdata(afe->trig, indio_dev);
532 ret = iio_trigger_register(afe->trig);
534 dev_err(afe->dev, "Unable to register IIO trigger\n");
538 ret = devm_request_threaded_irq(afe->dev, afe->irq,
542 afe->trig);
544 dev_err(afe->dev, "Unable to request IRQ\n");
552 dev_err(afe->dev, "Unable to setup buffer\n");
558 dev_err(afe->dev, "Unable to register IIO device\n");
567 if (afe->irq > 0)
568 iio_trigger_unregister(afe->trig);
570 regulator_disable(afe->regulator);
578 struct afe4403_data *afe = iio_priv(indio_dev);
585 if (afe->irq > 0)
586 iio_trigger_unregister(afe->trig);
588 ret = regulator_disable(afe->regulator);
590 dev_warn(afe->dev, "Unable to disable regulator\n");