Lines Matching refs:dac
21 #include "stm32-dac-core.h"
42 struct stm32_dac *dac = iio_priv(indio_dev);
46 ret = regmap_read(dac->common->regmap, STM32_DAC_CR, &val);
60 struct stm32_dac *dac = iio_priv(indio_dev);
67 mutex_lock(&dac->lock);
70 mutex_unlock(&dac->lock);
77 mutex_unlock(&dac->lock);
82 ret = regmap_update_bits(dac->common->regmap, STM32_DAC_CR, msk, en);
83 mutex_unlock(&dac->lock);
94 if (en && dac->common->hfsel)
113 static int stm32_dac_get_value(struct stm32_dac *dac, int channel, int *val)
118 ret = regmap_read(dac->common->regmap, STM32_DAC_DOR1, val);
120 ret = regmap_read(dac->common->regmap, STM32_DAC_DOR2, val);
125 static int stm32_dac_set_value(struct stm32_dac *dac, int channel, int val)
130 ret = regmap_write(dac->common->regmap, STM32_DAC_DHR12R1, val);
132 ret = regmap_write(dac->common->regmap, STM32_DAC_DHR12R2, val);
141 struct stm32_dac *dac = iio_priv(indio_dev);
145 return stm32_dac_get_value(dac, chan->channel, val);
147 *val = dac->common->vref_mv;
159 struct stm32_dac *dac = iio_priv(indio_dev);
163 return stm32_dac_set_value(dac, chan->channel, val);
173 struct stm32_dac *dac = iio_priv(indio_dev);
176 return regmap_write(dac->common->regmap, reg, writeval);
178 return regmap_read(dac->common->regmap, reg, readval);
316 struct stm32_dac *dac;
322 indio_dev = devm_iio_device_alloc(&pdev->dev, sizeof(*dac));
327 dac = iio_priv(indio_dev);
328 dac->common = dev_get_drvdata(pdev->dev.parent);
334 mutex_init(&dac->lock);
340 /* Get stm32-dac-core PM online */
395 { .compatible = "st,stm32-dac", },
404 .name = "stm32-dac",
411 MODULE_ALIAS("platform:stm32-dac");