Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

* Analog Device AD5755 IIO Multi-Channel DAC Linux Driver

Required properties:
 - compatible: Has to contain one of the following:
	adi,ad5755
	adi,ad5755-1
	adi,ad5757
	adi,ad5735
	adi,ad5737

 - reg: spi chip select number for the device
 - spi-cpha or spi-cpol: is the only modes that is supported

Recommended properties:
 - spi-max-frequency: Definition as per
		Documentation/devicetree/bindings/spi/spi-bus.txt

Optional properties:
See include/dt-bindings/iio/ad5755.h
 - adi,ext-dc-dc-compenstation-resistor: boolean set if the hardware have an
					 external resistor and thereby bypasses
					 the internal compensation resistor.
 - adi,dc-dc-phase:
	Valid values for DC DC Phase control is:
	0: All dc-to-dc converters clock on the same edge.
	1: Channel A and Channel B clock on the same edge,
	   Channel C and Channel D clock on opposite edges.
	2: Channel A and Channel C clock on the same edge,
	   Channel B and Channel D clock on opposite edges.
	3: Channel A, Channel B, Channel C, and Channel D
	   clock 90 degrees out of phase from each other.
 - adi,dc-dc-freq-hz:
	Valid values for DC DC frequency is [Hz]:
	250000
	410000
	650000
 - adi,dc-dc-max-microvolt:
	Valid values for the maximum allowed Vboost voltage supplied by
	the dc-to-dc converter is:
	23000000
	24500000
	27000000
	29500000

Optional for every channel:
 - adi,mode:
	Valid values for DAC modes is:
	0: 0 V to 5 V voltage range.
	1: 0 V to 10 V voltage range.
	2: Plus minus 5 V voltage range.
	3: Plus minus 10 V voltage range.
	4: 4 mA to 20 mA current range.
	5: 0 mA to 20 mA current range.
	6: 0 mA to 24 mA current range.
 - adi,ext-current-sense-resistor: boolean set if the hardware a external
				   current sense resistor.
 - adi,enable-voltage-overrange: boolean enable voltage overrange
 - adi,slew: Array of slewrate settings should contain 3 fields:
	1: Should be either 0 or 1 in order to enable or disable slewrate.
	2: Slew rate settings:
		Valid values for the slew rate update frequency:
		64000
		32000
		16000
		8000
		4000
		2000
		1000
		500
		250
		125
		64
		32
		16
		8
		4
		0
	3: Slew step size:
		Valid values for the step size LSBs:
		1
		2
		4
		16
		32
		64
		128
		256

Example:
dac@0 {
	#address-cells = <1>;
	#size-cells = <0>;
	compatible = "adi,ad5755";
	reg = <0>;
	spi-max-frequency = <1000000>;
	spi-cpha;
	adi,dc-dc-phase = <0>;
	adi,dc-dc-freq-hz = <410000>;
	adi,dc-dc-max-microvolt = <23000000>;
	channel@0 {
		reg = <0>;
		adi,mode = <4>;
		adi,ext-current-sense-resistor;
		adi,slew = <0 64000 1>;
	};
	channel@1 {
		reg = <1>;
		adi,mode = <4>;
		adi,ext-current-sense-resistor;
		adi,slew = <0 64000 1>;
	};
	channel@2 {
		reg = <2>;
		adi,mode = <4>;
		adi,ext-current-sense-resistor;
		adi,slew = <0 64000 1>;
	};
	channel@3 {
		reg = <3>;
		adi,mode = <4>;
		adi,ext-current-sense-resistor;
		adi,slew = <0 64000 1>;
	};
};