AD5758
AD5758 IIO DAC Linux Driver.
Supported Devices
This driver supports the
Evaluation Boards
Description
This is a Linux industrial I/O (Linux Industrial I/O Subsystem) subsystem driver, targeting multi-channel serial interface DACs. The industrial I/O subsystem provides a unified framework for drivers for many different types of converters and sensors using a number of different physical interfaces (i2c, spi, etc). See Linux Industrial I/O Subsystem for more information.
Source Code
Status
Files
Function |
File |
|---|---|
driver |
Devicetree
Required properties for the AD5758:
compatible: Must be
adi,ad5758reg: SPI chip select number for the device
spi-max-frequency: Max SPI frequency to use (< 50000000)
spi-cpha: is the only mode that is supported
Optional properties:
reset-gpios : GPIO spec for the RESET pin. If specified, it will be asserted during driver probe.
adi,dc-dc-mode: Mode of operation of the dc-to-dc converter
adi,dc-dc-ilim: The dc-to-dc converter current limit
adi,slew: Array of slewrate settings should contain 3 fields:
adi,range: The output range
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
ad5758@0 {
compatible = "adi,ad5758";
reg = <0>;
spi-max-frequency = <1000000>;
spi-cpha;
reset-gpios = <&gpio 22 0>; /* optional */
adi,dc-dc-mode = <2>;
adi,dc-dc-ilim = <200>;
adi,slew = <1 200000 12>;
adi,range = <1>;
Driver testing
root:/> cd /sys/bus/iio/devices/
root:/sys/bus/iio/devices> ls
iio:device0
root:/sys/bus/iio/devices> cd iio\:device0
root:/sys/bus/iio/devices/iio:device0> ls -l
-r--r--r-- 1 root root 4096 May 23 09:14 dev
-rw-r--r-- 1 root root 4096 May 23 09:14 out_voltage0_powerdown
-rw-r--r-- 1 root root 4096 May 23 09:14 out_voltage0_raw
-rw-r--r-- 1 root root 4096 May 23 09:14 out_voltage_scale
-r--r--r-- 1 root root 4096 May 23 09:14 name
drwxr-xr-x 2 root root 0 May 23 09:14 power
lrwxrwxrwx 1 root root 0 May 23 09:14 subsystem -> ../../../../../../../../bus/iio
-rw-r--r-- 1 root root 4096 May 23 09:14 uevent
Show device name
root:/sys/bus/iio/devices/iio:device0> cat name
ad5758
Show scale
Description: scale to be applied to in_voltage0_raw in order to obtain the measured voltage in millivolts.
root:/sys/bus/iio/devices/iio:device0> cat out_voltage_scale
0.152587890
Set channel 0 output voltage
Description: /sys/bus/iio/devices/deviceX/out_voltage0_raw
Raw (unscaled, no bias etc.) output voltage for channel 0.
root:/sys/bus/iio/devices/iio:device0> echo 32767 > out_voltage0_raw
U = out_voltage0_raw * out_voltage_scale = 32767 * 0.152587890 = 4999.84 mV
Enable power down mode on output 0
/sys/bus/iio/devices/deviceX/out_voltage0_powerdown
Description: Writing 1 causes output 0 to enter the power down mode. Clearing returns to normal operation.
root:/sys/bus/iio/devices/iio:device0> echo 1 > out_voltage0_powerdown
root:/sys/bus/iio/devices/iio:device0> cat out_voltage0_powerdown
1
root:/sys/bus/iio/devices/iio:device0> echo 0 > out_voltage0_powerdown
root:/sys/bus/iio/devices/iio:device0> cat out_voltage0_powerdown
0