Lines Matching refs:ti_dac

58 static u8 ti_dac_get_power(struct ti_dac_chip *ti_dac, bool powerdown)  in ti_dac_get_power()  argument
61 return ti_dac->powerdown_mode + 1; in ti_dac_get_power()
66 static int ti_dac_cmd(struct ti_dac_chip *ti_dac, u8 power, u16 val) in ti_dac_cmd() argument
68 u8 shift = 14 - ti_dac->resolution; in ti_dac_cmd()
70 ti_dac->buf[0] = (val << shift) & 0xFF; in ti_dac_cmd()
71 ti_dac->buf[1] = (power << 6) | (val >> (8 - shift)); in ti_dac_cmd()
72 return spi_write(ti_dac->spi, ti_dac->buf, 2); in ti_dac_cmd()
84 struct ti_dac_chip *ti_dac = iio_priv(indio_dev); in ti_dac_get_powerdown_mode() local
86 return ti_dac->powerdown_mode; in ti_dac_get_powerdown_mode()
93 struct ti_dac_chip *ti_dac = iio_priv(indio_dev); in ti_dac_set_powerdown_mode() local
95 ti_dac->powerdown_mode = mode; in ti_dac_set_powerdown_mode()
111 struct ti_dac_chip *ti_dac = iio_priv(indio_dev); in ti_dac_read_powerdown() local
113 return sysfs_emit(buf, "%d\n", ti_dac->powerdown); in ti_dac_read_powerdown()
121 struct ti_dac_chip *ti_dac = iio_priv(indio_dev); in ti_dac_write_powerdown() local
130 power = ti_dac_get_power(ti_dac, powerdown); in ti_dac_write_powerdown()
132 mutex_lock(&ti_dac->lock); in ti_dac_write_powerdown()
133 ret = ti_dac_cmd(ti_dac, power, 0); in ti_dac_write_powerdown()
135 ti_dac->powerdown = powerdown; in ti_dac_write_powerdown()
136 mutex_unlock(&ti_dac->lock); in ti_dac_write_powerdown()
170 struct ti_dac_chip *ti_dac = iio_priv(indio_dev); in ti_dac_read_raw() local
175 *val = ti_dac->val; in ti_dac_read_raw()
179 ret = regulator_get_voltage(ti_dac->vref); in ti_dac_read_raw()
184 *val2 = ti_dac->resolution; in ti_dac_read_raw()
195 struct ti_dac_chip *ti_dac = iio_priv(indio_dev); in ti_dac_write_raw() local
196 u8 power = ti_dac_get_power(ti_dac, ti_dac->powerdown); in ti_dac_write_raw()
201 if (ti_dac->val == val) in ti_dac_write_raw()
204 if (val >= (1 << ti_dac->resolution) || val < 0) in ti_dac_write_raw()
207 if (ti_dac->powerdown) in ti_dac_write_raw()
210 mutex_lock(&ti_dac->lock); in ti_dac_write_raw()
211 ret = ti_dac_cmd(ti_dac, power, val); in ti_dac_write_raw()
213 ti_dac->val = val; in ti_dac_write_raw()
214 mutex_unlock(&ti_dac->lock); in ti_dac_write_raw()
240 struct ti_dac_chip *ti_dac; in ti_dac_probe() local
244 indio_dev = devm_iio_device_alloc(dev, sizeof(*ti_dac)); in ti_dac_probe()
260 ti_dac = iio_priv(indio_dev); in ti_dac_probe()
261 ti_dac->powerdown = false; in ti_dac_probe()
262 ti_dac->spi = spi; in ti_dac_probe()
266 ti_dac->resolution = spec->resolution; in ti_dac_probe()
268 ti_dac->vref = devm_regulator_get(dev, "vref"); in ti_dac_probe()
269 if (IS_ERR(ti_dac->vref)) in ti_dac_probe()
270 return dev_err_probe(dev, PTR_ERR(ti_dac->vref), in ti_dac_probe()
273 ret = regulator_enable(ti_dac->vref); in ti_dac_probe()
279 mutex_init(&ti_dac->lock); in ti_dac_probe()
290 mutex_destroy(&ti_dac->lock); in ti_dac_probe()
291 regulator_disable(ti_dac->vref); in ti_dac_probe()
298 struct ti_dac_chip *ti_dac = iio_priv(indio_dev); in ti_dac_remove() local
301 mutex_destroy(&ti_dac->lock); in ti_dac_remove()
302 regulator_disable(ti_dac->vref); in ti_dac_remove()