Lines Matching full:dac
3 * This file is part of STM32 DAC driver
22 #include "stm32-dac-core.h"
31 * struct stm32_dac - private data of DAC driver
32 * @common: reference to DAC common data
43 struct stm32_dac *dac = iio_priv(indio_dev); in stm32_dac_is_enabled() local
47 ret = regmap_read(dac->common->regmap, STM32_DAC_CR, &val); in stm32_dac_is_enabled()
61 struct stm32_dac *dac = iio_priv(indio_dev); in stm32_dac_set_enable_state() local
68 mutex_lock(&dac->lock); in stm32_dac_set_enable_state()
71 mutex_unlock(&dac->lock); in stm32_dac_set_enable_state()
78 mutex_unlock(&dac->lock); in stm32_dac_set_enable_state()
83 ret = regmap_update_bits(dac->common->regmap, STM32_DAC_CR, msk, en); in stm32_dac_set_enable_state()
84 mutex_unlock(&dac->lock); in stm32_dac_set_enable_state()
95 if (en && dac->common->hfsel) in stm32_dac_set_enable_state()
114 static int stm32_dac_get_value(struct stm32_dac *dac, int channel, int *val) in stm32_dac_get_value() argument
119 ret = regmap_read(dac->common->regmap, STM32_DAC_DOR1, val); in stm32_dac_get_value()
121 ret = regmap_read(dac->common->regmap, STM32_DAC_DOR2, val); in stm32_dac_get_value()
126 static int stm32_dac_set_value(struct stm32_dac *dac, int channel, int val) in stm32_dac_set_value() argument
131 ret = regmap_write(dac->common->regmap, STM32_DAC_DHR12R1, val); in stm32_dac_set_value()
133 ret = regmap_write(dac->common->regmap, STM32_DAC_DHR12R2, val); in stm32_dac_set_value()
142 struct stm32_dac *dac = iio_priv(indio_dev); in stm32_dac_read_raw() local
146 return stm32_dac_get_value(dac, chan->channel, val); in stm32_dac_read_raw()
148 *val = dac->common->vref_mv; in stm32_dac_read_raw()
160 struct stm32_dac *dac = iio_priv(indio_dev); in stm32_dac_write_raw() local
164 return stm32_dac_set_value(dac, chan->channel, val); in stm32_dac_write_raw()
174 struct stm32_dac *dac = iio_priv(indio_dev); in stm32_dac_debugfs_reg_access() local
177 return regmap_write(dac->common->regmap, reg, writeval); in stm32_dac_debugfs_reg_access()
179 return regmap_read(dac->common->regmap, reg, readval); in stm32_dac_debugfs_reg_access()
317 struct stm32_dac *dac; in stm32_dac_probe() local
323 indio_dev = devm_iio_device_alloc(&pdev->dev, sizeof(*dac)); in stm32_dac_probe()
328 dac = iio_priv(indio_dev); in stm32_dac_probe()
329 dac->common = dev_get_drvdata(pdev->dev.parent); in stm32_dac_probe()
335 mutex_init(&dac->lock); in stm32_dac_probe()
341 /* Get stm32-dac-core PM online */ in stm32_dac_probe()
382 /* Ensure DAC is disabled before suspend */ in stm32_dac_suspend()
394 { .compatible = "st,stm32-dac", },
403 .name = "stm32-dac",
410 MODULE_ALIAS("platform:stm32-dac");
412 MODULE_DESCRIPTION("STMicroelectronics STM32 DAC driver");