Lines Matching refs:st

95 static int ad5686_spi_write(struct ad5686_state *st,  in ad5686_spi_write()  argument
100 st->data[0].d32 = cpu_to_be32(AD5686_CMD(cmd) | in ad5686_spi_write()
104 return spi_write(st->spi, &st->data[0].d8[1], 3); in ad5686_spi_write()
107 static int ad5686_spi_read(struct ad5686_state *st, u8 addr) in ad5686_spi_read() argument
111 .tx_buf = &st->data[0].d8[1], in ad5686_spi_read()
115 .tx_buf = &st->data[1].d8[1], in ad5686_spi_read()
116 .rx_buf = &st->data[2].d8[1], in ad5686_spi_read()
122 st->data[0].d32 = cpu_to_be32(AD5686_CMD(AD5686_CMD_READBACK_ENABLE) | in ad5686_spi_read()
124 st->data[1].d32 = cpu_to_be32(AD5686_CMD(AD5686_CMD_NOOP)); in ad5686_spi_read()
126 ret = spi_sync_transfer(st->spi, t, ARRAY_SIZE(t)); in ad5686_spi_read()
130 return be32_to_cpu(st->data[2].d32); in ad5686_spi_read()
142 struct ad5686_state *st = iio_priv(indio_dev); in ad5686_get_powerdown_mode() local
144 return ((st->pwr_down_mode >> (chan->channel * 2)) & 0x3) - 1; in ad5686_get_powerdown_mode()
150 struct ad5686_state *st = iio_priv(indio_dev); in ad5686_set_powerdown_mode() local
152 st->pwr_down_mode &= ~(0x3 << (chan->channel * 2)); in ad5686_set_powerdown_mode()
153 st->pwr_down_mode |= ((mode + 1) << (chan->channel * 2)); in ad5686_set_powerdown_mode()
168 struct ad5686_state *st = iio_priv(indio_dev); in ad5686_read_dac_powerdown() local
170 return sprintf(buf, "%d\n", !!(st->pwr_down_mask & in ad5686_read_dac_powerdown()
180 struct ad5686_state *st = iio_priv(indio_dev); in ad5686_write_dac_powerdown() local
187 st->pwr_down_mask |= (0x3 << (chan->channel * 2)); in ad5686_write_dac_powerdown()
189 st->pwr_down_mask &= ~(0x3 << (chan->channel * 2)); in ad5686_write_dac_powerdown()
191 ret = ad5686_spi_write(st, AD5686_CMD_POWERDOWN_DAC, 0, in ad5686_write_dac_powerdown()
192 st->pwr_down_mask & st->pwr_down_mode, 0); in ad5686_write_dac_powerdown()
203 struct ad5686_state *st = iio_priv(indio_dev); in ad5686_read_raw() local
209 ret = ad5686_spi_read(st, chan->address); in ad5686_read_raw()
216 *val = st->vref_mv; in ad5686_read_raw()
229 struct ad5686_state *st = iio_priv(indio_dev); in ad5686_write_raw() local
238 ret = ad5686_spi_write(st, in ad5686_write_raw()
314 struct ad5686_state *st; in ad5686_probe() local
318 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); in ad5686_probe()
322 st = iio_priv(indio_dev); in ad5686_probe()
325 st->reg = devm_regulator_get_optional(&spi->dev, "vcc"); in ad5686_probe()
326 if (!IS_ERR(st->reg)) { in ad5686_probe()
327 ret = regulator_enable(st->reg); in ad5686_probe()
331 ret = regulator_get_voltage(st->reg); in ad5686_probe()
338 st->chip_info = in ad5686_probe()
342 st->vref_mv = voltage_uv / 1000; in ad5686_probe()
344 st->vref_mv = st->chip_info->int_vref_mv; in ad5686_probe()
346 st->spi = spi; in ad5686_probe()
349 st->pwr_down_mode = 0x55; in ad5686_probe()
355 indio_dev->channels = st->chip_info->channel; in ad5686_probe()
358 ret = ad5686_spi_write(st, AD5686_CMD_INTERNAL_REFER_SETUP, 0, in ad5686_probe()
370 if (!IS_ERR(st->reg)) in ad5686_probe()
371 regulator_disable(st->reg); in ad5686_probe()
378 struct ad5686_state *st = iio_priv(indio_dev); in ad5686_remove() local
381 if (!IS_ERR(st->reg)) in ad5686_remove()
382 regulator_disable(st->reg); in ad5686_remove()