Lines Matching refs:dac
53 struct lpc18xx_dac *dac = iio_priv(indio_dev);
58 reg = readl(dac->base + LPC18XX_DAC_CR);
65 *val = regulator_get_voltage(dac->vref) / 1000;
78 struct lpc18xx_dac *dac = iio_priv(indio_dev);
89 mutex_lock(&dac->lock);
90 writel(reg, dac->base + LPC18XX_DAC_CR);
91 writel(LPC18XX_DAC_CTRL_DMA_ENA, dac->base + LPC18XX_DAC_CTRL);
92 mutex_unlock(&dac->lock);
108 struct lpc18xx_dac *dac;
111 indio_dev = devm_iio_device_alloc(&pdev->dev, sizeof(*dac));
116 dac = iio_priv(indio_dev);
117 mutex_init(&dac->lock);
119 dac->base = devm_platform_ioremap_resource(pdev, 0);
120 if (IS_ERR(dac->base))
121 return PTR_ERR(dac->base);
123 dac->clk = devm_clk_get(&pdev->dev, NULL);
124 if (IS_ERR(dac->clk)) {
126 return PTR_ERR(dac->clk);
129 dac->vref = devm_regulator_get(&pdev->dev, "vref");
130 if (IS_ERR(dac->vref)) {
132 return PTR_ERR(dac->vref);
141 ret = regulator_enable(dac->vref);
147 ret = clk_prepare_enable(dac->clk);
153 writel(0, dac->base + LPC18XX_DAC_CTRL);
154 writel(0, dac->base + LPC18XX_DAC_CR);
165 clk_disable_unprepare(dac->clk);
167 regulator_disable(dac->vref);
174 struct lpc18xx_dac *dac = iio_priv(indio_dev);
178 writel(0, dac->base + LPC18XX_DAC_CTRL);
179 clk_disable_unprepare(dac->clk);
180 regulator_disable(dac->vref);
186 { .compatible = "nxp,lpc1850-dac" },
195 .name = "lpc18xx-dac",