mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-24 15:20:08 +07:00
ff50593026
The ad5758 has a hardware reset active low input pin. This patch adds a devicetree entry for a reset GPIO and a new ad5758_reset() function. During initialization, it is checked if the reset property is specified and the the GPIO is being asserted, therefore the device will become active. When the reset function is called, if the gpio_reset var is set, then the GPIO will be toggled, otherwise a software reset is performed. Signed-off-by: Stefan Popa <stefan.popa@analog.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
84 lines
2.5 KiB
Plaintext
84 lines
2.5 KiB
Plaintext
Analog Devices AD5758 DAC device driver
|
||
|
||
Required properties for the AD5758:
|
||
- compatible: Must be "adi,ad5758"
|
||
- reg: 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
|
||
|
||
Required properties:
|
||
|
||
- adi,dc-dc-mode: Mode of operation of the dc-to-dc converter
|
||
Dynamic Power Control (DPC)
|
||
In this mode, the AD5758 circuitry senses the output
|
||
voltage and dynamically regulates the supply voltage,
|
||
VDPC+, to meet compliance requirements plus an optimized
|
||
headroom voltage for the output buffer.
|
||
|
||
Programmable Power Control (PPC)
|
||
In this mode, the VDPC+ voltage is user-programmable to
|
||
a fixed level that needs to accommodate the maximum output
|
||
load required.
|
||
|
||
The output of the DAC core is either converted to a
|
||
current or voltage output at the VIOUT pin. Only one mode
|
||
can be enabled at any one time.
|
||
|
||
The following values are currently supported:
|
||
* 1: DPC current mode
|
||
* 2: DPC voltage mode
|
||
* 3: PPC current mode
|
||
|
||
Depending on the selected output mode (voltage or current) one of the
|
||
two properties must
|
||
be present:
|
||
|
||
- adi,range-microvolt: Voltage output range
|
||
The array of voltage output ranges must contain two fields:
|
||
* <0 5000000>: 0 V to 5 V voltage range
|
||
* <0 10000000>: 0 V to 10 V voltage range
|
||
* <(-5000000) 5000000>: ±5 V voltage range
|
||
* <(-10000000) 10000000>: ±10 V voltage range
|
||
- adi,range-microamp: Current output range
|
||
The array of current output ranges must contain two fields:
|
||
* <0 20000>: 0 mA to 20 mA current range
|
||
* <0 24000>: 0 mA to 24 mA current range
|
||
* <4 24000>: 4 mA to 20 mA current range
|
||
* <(-20000) 20000>: ±20 mA current range
|
||
* <(-24000) 24000>: ±24 mA current range
|
||
* <(-1000) 22000>: −1 mA to +22 mA current range
|
||
|
||
Optional properties:
|
||
|
||
- reset-gpios : GPIO spec for the RESET pin. If specified, it will be
|
||
asserted during driver probe.
|
||
|
||
- adi,dc-dc-ilim-microamp: The dc-to-dc converter current limit
|
||
The following values are currently supported [uA]:
|
||
* 150000
|
||
* 200000
|
||
* 250000
|
||
* 300000
|
||
* 350000
|
||
* 400000
|
||
|
||
- adi,slew-time-us: The time it takes for the output to reach the
|
||
full scale [uS]
|
||
The supported range is between 133us up to 1023984375us
|
||
|
||
AD5758 Example:
|
||
|
||
dac@0 {
|
||
compatible = "adi,ad5758";
|
||
reg = <0>;
|
||
spi-max-frequency = <1000000>;
|
||
spi-cpha;
|
||
|
||
reset-gpios = <&gpio 22 0>;
|
||
|
||
adi,dc-dc-mode = <2>;
|
||
adi,range-microvolt = <0 10000000>;
|
||
adi,dc-dc-ilim-microamp = <200000>;
|
||
adi,slew-time-us = <125000>;
|
||
};
|