mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-29 05:44:11 +00:00
iio: dac: ad5791: Add support for controlling RBUF via devicetree
This patch adds support for an external amplifier to be connected in a gain of two configuration. Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Nuno Sa <nuno.sa@analog.com> Link: https://lore.kernel.org/r/20231129-ad5791-michael-stuff-v3-2-48e192b00909@analog.com Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
d49f69425d
commit
e737d495b2
1 changed files with 8 additions and 1 deletions
|
@ -345,6 +345,7 @@ static int ad5791_probe(struct spi_device *spi)
|
||||||
struct iio_dev *indio_dev;
|
struct iio_dev *indio_dev;
|
||||||
struct ad5791_state *st;
|
struct ad5791_state *st;
|
||||||
int ret, pos_voltage_uv = 0, neg_voltage_uv = 0;
|
int ret, pos_voltage_uv = 0, neg_voltage_uv = 0;
|
||||||
|
bool use_rbuf_gain2;
|
||||||
|
|
||||||
indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
|
indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
|
||||||
if (!indio_dev)
|
if (!indio_dev)
|
||||||
|
@ -379,6 +380,12 @@ static int ad5791_probe(struct spi_device *spi)
|
||||||
st->pwr_down = true;
|
st->pwr_down = true;
|
||||||
st->spi = spi;
|
st->spi = spi;
|
||||||
|
|
||||||
|
if (pdata)
|
||||||
|
use_rbuf_gain2 = pdata->use_rbuf_gain2;
|
||||||
|
else
|
||||||
|
use_rbuf_gain2 = device_property_read_bool(&spi->dev,
|
||||||
|
"adi,rbuf-gain2-en");
|
||||||
|
|
||||||
if (!IS_ERR(st->reg_vss) && !IS_ERR(st->reg_vdd)) {
|
if (!IS_ERR(st->reg_vss) && !IS_ERR(st->reg_vdd)) {
|
||||||
st->vref_mv = (pos_voltage_uv + neg_voltage_uv) / 1000;
|
st->vref_mv = (pos_voltage_uv + neg_voltage_uv) / 1000;
|
||||||
st->vref_neg_mv = neg_voltage_uv / 1000;
|
st->vref_neg_mv = neg_voltage_uv / 1000;
|
||||||
|
@ -398,7 +405,7 @@ static int ad5791_probe(struct spi_device *spi)
|
||||||
|
|
||||||
|
|
||||||
st->ctrl = AD5761_CTRL_LINCOMP(st->chip_info->get_lin_comp(st->vref_mv))
|
st->ctrl = AD5761_CTRL_LINCOMP(st->chip_info->get_lin_comp(st->vref_mv))
|
||||||
| ((pdata && pdata->use_rbuf_gain2) ? 0 : AD5791_CTRL_RBUF) |
|
| (use_rbuf_gain2 ? 0 : AD5791_CTRL_RBUF) |
|
||||||
AD5791_CTRL_BIN2SC;
|
AD5791_CTRL_BIN2SC;
|
||||||
|
|
||||||
ret = ad5791_spi_write(st, AD5791_ADDR_CTRL, st->ctrl |
|
ret = ad5791_spi_write(st, AD5791_ADDR_CTRL, st->ctrl |
|
||||||
|
|
Loading…
Reference in a new issue