Lines Matching refs:st

52 static int ad7303_write(struct ad7303_state *st, unsigned int chan,  in ad7303_write()  argument
55 st->data = cpu_to_be16(AD7303_CMD_UPDATE_DAC | in ad7303_write()
57 st->config | val); in ad7303_write()
59 return spi_write(st->spi, &st->data, sizeof(st->data)); in ad7303_write()
65 struct ad7303_state *st = iio_priv(indio_dev); in ad7303_read_dac_powerdown() local
67 return sprintf(buf, "%d\n", (bool)(st->config & in ad7303_read_dac_powerdown()
75 struct ad7303_state *st = iio_priv(indio_dev); in ad7303_write_dac_powerdown() local
86 st->config |= AD7303_CFG_POWER_DOWN(chan->channel); in ad7303_write_dac_powerdown()
88 st->config &= ~AD7303_CFG_POWER_DOWN(chan->channel); in ad7303_write_dac_powerdown()
92 ad7303_write(st, chan->channel, st->dac_cache[chan->channel]); in ad7303_write_dac_powerdown()
98 static int ad7303_get_vref(struct ad7303_state *st, in ad7303_get_vref() argument
103 if (st->config & AD7303_CFG_EXTERNAL_VREF) in ad7303_get_vref()
104 return regulator_get_voltage(st->vref_reg); in ad7303_get_vref()
106 ret = regulator_get_voltage(st->vdd_reg); in ad7303_get_vref()
115 struct ad7303_state *st = iio_priv(indio_dev); in ad7303_read_raw() local
120 *val = st->dac_cache[chan->channel]; in ad7303_read_raw()
123 vref_uv = ad7303_get_vref(st, chan); in ad7303_read_raw()
140 struct ad7303_state *st = iio_priv(indio_dev); in ad7303_write_raw() local
149 ret = ad7303_write(st, chan->address, val); in ad7303_write_raw()
151 st->dac_cache[chan->channel] = val; in ad7303_write_raw()
203 struct ad7303_state *st; in ad7303_probe() local
207 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); in ad7303_probe()
211 st = iio_priv(indio_dev); in ad7303_probe()
214 st->spi = spi; in ad7303_probe()
216 st->vdd_reg = devm_regulator_get(&spi->dev, "Vdd"); in ad7303_probe()
217 if (IS_ERR(st->vdd_reg)) in ad7303_probe()
218 return PTR_ERR(st->vdd_reg); in ad7303_probe()
220 ret = regulator_enable(st->vdd_reg); in ad7303_probe()
236 st->vref_reg = devm_regulator_get(&spi->dev, "REF"); in ad7303_probe()
237 if (IS_ERR(st->vref_reg)) { in ad7303_probe()
238 ret = PTR_ERR(st->vref_reg); in ad7303_probe()
242 ret = regulator_enable(st->vref_reg); in ad7303_probe()
246 st->config |= AD7303_CFG_EXTERNAL_VREF; in ad7303_probe()
263 if (st->vref_reg) in ad7303_probe()
264 regulator_disable(st->vref_reg); in ad7303_probe()
266 regulator_disable(st->vdd_reg); in ad7303_probe()
273 struct ad7303_state *st = iio_priv(indio_dev); in ad7303_remove() local
277 if (st->vref_reg) in ad7303_remove()
278 regulator_disable(st->vref_reg); in ad7303_remove()
279 regulator_disable(st->vdd_reg); in ad7303_remove()