Staging / IIO driver patches for 5.11-rc1
Here is the big staging and IIO driver pull request for 5.11-rc1 Lots of different things in here: - loads of driver updates - so many coding style cleanups - new IIO drivers - Android ION code is finally removed from the tree - wimax drivers are moved to staging on their way out of the kernel Nothing really exciting, just the constant grind of kernel development :) All have been in linux-next for a while with no reported issues. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -----BEGIN PGP SIGNATURE----- iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCX9iCdw8cZ3JlZ0Brcm9h aC5jb20ACgkQMUfUDdst+yn44QCguVCsIkhxYmnuTAkrPQP74CbJoJwAoLVoPM5K LJRbMYjGfRc4gZehlrIV =clR4 -----END PGP SIGNATURE----- Merge tag 'staging-5.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging / IIO driver updates from Greg KH: "Here is the big staging and IIO driver pull request for 5.11-rc1 Lots of different things in here: - loads of driver updates - so many coding style cleanups - new IIO drivers - Android ION code is finally removed from the tree - wimax drivers are moved to staging on their way out of the kernel Nothing really exciting, just the constant grind of kernel development :) All have been in linux-next for a while with no reported issues" * tag 'staging-5.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (341 commits) staging: olpc_dcon: Do not call platform_device_unregister() in dcon_probe() staging: most: Fix spelling mistake "tranceiver" -> "transceiver" staging: qlge: remove duplicate word in comment staging: comedi: mf6x4: Fix AI end-of-conversion detection staging: greybus: Add TODO item about modernizing the pwm code pinctrl: ralink: add a pinctrl driver for the rt2880 family dt-bindings: pinctrl: rt2880: add binding document staging: rtl8723bs: remove ELEMENT_ID enum staging: rtl8723bs: remove unused macros staging: rtl8723bs: replace EID_EXTCapability staging: rtl8723bs: replace EID_BSSIntolerantChlReport staging: rtl8723bs: replace EID_BSSCoexistence staging: rtl8723bs: replace _MME_IE_ staging: rtl8723bs: replace _WAPI_IE_ staging: rtl8723bs: replace _EXT_SUPPORTEDRATES_IE_ staging: rtl8723bs: replace _ERPINFO_IE_ staging: rtl8723bs: replace _CHLGETXT_IE_ staging: rtl8723bs: replace _COUNTRY_IE_ staging: rtl8723bs: replace _IBSS_PARA_IE_ staging: rtl8723bs: replace _TIM_IE_ ...
This commit is contained in:
Коммит
3db1a3fa98
|
@ -1743,6 +1743,16 @@ Description:
|
|||
|
||||
Raw counter device counters direction for channel Y.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltageY_label
|
||||
What: /sys/bus/iio/devices/iio:deviceX/out_voltageY_label
|
||||
KernelVersion: 5.8
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
Description:
|
||||
Optional symbolic label to a device channel.
|
||||
If a label is defined for this channel add that to the channel
|
||||
specific attributes. This is useful for userspace to be able to
|
||||
better identify an individual channel.
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_phaseY_raw
|
||||
KernelVersion: 4.18
|
||||
Contact: linux-iio@vger.kernel.org
|
||||
|
|
|
@ -0,0 +1,78 @@
|
|||
What: /sys/bus/iio/devices/iio:deviceX/in_voltage0_raw
|
||||
KernelVersion: 5.8.0
|
||||
Contact: gene_chen@richtek.com
|
||||
Description:
|
||||
Indicated MT6360 USBID ADC which connected to connector ID pin.
|
||||
Calculating with scale and offset returns voltage in uV
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltage1_raw
|
||||
KernelVersion: 5.8.0
|
||||
Contact: gene_chen@richtek.com
|
||||
Description:
|
||||
Indicated MT6360 VBUS ADC with lower accuracy(+-75mA)
|
||||
higher measure range(1~22mV)
|
||||
Calculating with scale and offset returns voltage in uV
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltage2_raw
|
||||
KernelVersion: 5.8.0
|
||||
Contact: gene_chen@richtek.com
|
||||
Description:
|
||||
Indicated MT6360 VBUS ADC with higher accuracy(+-30mA)
|
||||
lower measure range(1~9.76V)
|
||||
Calculating with scale and offset returns voltage in uV
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltage3_raw
|
||||
KernelVersion: 5.8.0
|
||||
Contact: gene_chen@richtek.com
|
||||
Description:
|
||||
Indicated MT6360 VSYS ADC
|
||||
Calculating with scale and offset returns voltage in uV
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltage4_raw
|
||||
KernelVersion: 5.8.0
|
||||
Contact: gene_chen@richtek.com
|
||||
Description:
|
||||
Indicated MT6360 VBAT ADC
|
||||
Calculating with scale and offset returns voltage in uV
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_current5_raw
|
||||
KernelVersion: 5.8.0
|
||||
Contact: gene_chen@richtek.com
|
||||
Description:
|
||||
Indicated MT6360 IBUS ADC
|
||||
Calculating with scale and offset returns voltage in uA
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_current6_raw
|
||||
KernelVersion: 5.8.0
|
||||
Contact: gene_chen@richtek.com
|
||||
Description:
|
||||
Indicated MT6360 IBAT ADC
|
||||
Calculating with scale and offset returns voltage in uA
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_current7_raw
|
||||
KernelVersion: 5.8.0
|
||||
Contact: gene_chen@richtek.com
|
||||
Description:
|
||||
Indicated MT6360 CHG_VDDP ADC
|
||||
Calculating with scale and offset returns voltage in uV
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_temp8_raw
|
||||
KernelVersion: 5.8.0
|
||||
Contact: gene_chen@richtek.com
|
||||
Description:
|
||||
Indicated MT6360 IC junction temperature
|
||||
Calculating with scale and offset returns temperature in degree
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltage9_raw
|
||||
KernelVersion: 5.8.0
|
||||
Contact: gene_chen@richtek.com
|
||||
Description:
|
||||
Indicated MT6360 VREF_TS ADC
|
||||
Calculating with scale and offset returns voltage in uV
|
||||
|
||||
What: /sys/bus/iio/devices/iio:deviceX/in_voltage10_raw
|
||||
KernelVersion: 5.8.0
|
||||
Contact: gene_chen@richtek.com
|
||||
Description:
|
||||
Indicated MT6360 TS ADC
|
||||
Calculating with scale and offset returns voltage in uV
|
|
@ -1,35 +0,0 @@
|
|||
* Bosch BMA023 / BMA150/ BMA180 / BMA25x / SMB380 triaxial acceleration sensor
|
||||
|
||||
https://media.digikey.com/pdf/Data%20Sheets/Bosch/BMA150.pdf
|
||||
http://omapworld.com/BMA180_111_1002839.pdf
|
||||
http://ae-bst.resource.bosch.com/media/products/dokumente/bma250/bst-bma250-ds002-05.pdf
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : should be one of:
|
||||
"bosch,bma023"
|
||||
"bosch,bma150"
|
||||
"bosch,bma180"
|
||||
"bosch,bma250"
|
||||
"bosch,bma254"
|
||||
"bosch,smb380"
|
||||
- reg : the I2C address of the sensor
|
||||
- vdd-supply : regulator phandle connected to the VDD pin
|
||||
- vddio-supply : regulator phandle connected to the VDDIO pin
|
||||
|
||||
Optional properties:
|
||||
|
||||
- interrupts : interrupt mapping for GPIO IRQ, it should by configured with
|
||||
flags IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING
|
||||
For the bma250 the first interrupt listed must be the one
|
||||
connected to the INT1 pin, the second (optional) interrupt
|
||||
listed must be the one connected to the INT2 pin.
|
||||
|
||||
Example:
|
||||
|
||||
bma180@40 {
|
||||
compatible = "bosch,bma180";
|
||||
reg = <0x40>;
|
||||
interrupt-parent = <&gpio6>;
|
||||
interrupts = <18 (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING)>;
|
||||
};
|
|
@ -0,0 +1,62 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/accel/bosch,bma180.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Bosch BMA023 / BMA150/ BMA180 / BMA25x / SMB380 triaxial accelerometers
|
||||
|
||||
maintainers:
|
||||
- Jonathan Cameron <jic23@kernel.org>
|
||||
|
||||
description: |
|
||||
https://media.digikey.com/pdf/Data%20Sheets/Bosch/BMA150.pdf
|
||||
http://omapworld.com/BMA180_111_1002839.pdf
|
||||
http://ae-bst.resource.bosch.com/media/products/dokumente/bma250/bst-bma250-ds002-05.pdf
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- bosch,bma023
|
||||
- bosch,bma150
|
||||
- bosch,bma180
|
||||
- bosch,bma250
|
||||
- bosch,bma254
|
||||
- bosch,smb380
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
vdd-supply: true
|
||||
|
||||
vddio-supply: true
|
||||
|
||||
interrupts:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
description: |
|
||||
Type should be either IRQ_TYPE_LEVEL_HIGH or IRQ_TYPE_EDGE_RISING.
|
||||
For the bma250 the first interrupt listed must be the one
|
||||
connected to the INT1 pin, the second (optional) interrupt
|
||||
listed must be the one connected to the INT2 pin.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
accel@40 {
|
||||
compatible = "bosch,bma180";
|
||||
reg = <0x40>;
|
||||
interrupt-parent = <&gpio6>;
|
||||
interrupts = <18 (IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_EDGE_RISING)>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -0,0 +1,73 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/accel/bosch,bma255.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Bosch BMA255 and Similar Accelerometers
|
||||
|
||||
maintainers:
|
||||
- Linus Walleij <linus.walleij@linaro.org>
|
||||
|
||||
description:
|
||||
3 axis accelerometers with varying range and I2C or SPI
|
||||
4-wire interface.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- bosch,bmc150
|
||||
- bosch,bmi055
|
||||
- bosch,bma255
|
||||
- bosch,bma250e
|
||||
- bosch,bma222
|
||||
- bosch,bma222e
|
||||
- bosch,bma280
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
vdd-supply: true
|
||||
vddio-supply: true
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
mount-matrix:
|
||||
description: an optional 3x3 mounting rotation matrix.
|
||||
|
||||
spi-max-frequency:
|
||||
maximum: 10000000
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
accelerometer@8 {
|
||||
compatible = "bosch,bma222";
|
||||
reg = <0x08>;
|
||||
vddio-supply = <&vddio>;
|
||||
vdd-supply = <&vdd>;
|
||||
interrupts = <57 IRQ_TYPE_EDGE_FALLING>;
|
||||
};
|
||||
};
|
||||
- |
|
||||
# include <dt-bindings/interrupt-controller/irq.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
accel@0 {
|
||||
compatible = "bosch,bma222";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <10000000>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -1,19 +0,0 @@
|
|||
Device tree bindings for Domintech DMARD05, DMARD06, DMARD07 accelerometers
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be "domintech,dmard05"
|
||||
or "domintech,dmard06"
|
||||
or "domintech,dmard07"
|
||||
- reg : I2C address of the chip. Should be 0x1c
|
||||
|
||||
Example:
|
||||
&i2c1 {
|
||||
/* ... */
|
||||
|
||||
accelerometer@1c {
|
||||
compatible = "domintech,dmard06";
|
||||
reg = <0x1c>;
|
||||
};
|
||||
|
||||
/* ... */
|
||||
};
|
|
@ -0,0 +1,65 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/accel/fsl,mma8452.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title:
|
||||
Freescale MMA8451Q, MMA8452Q, MMA8453Q, MMA8652FC, MMA8653FC or FXLS8471Q
|
||||
triaxial accelerometer
|
||||
|
||||
maintainers:
|
||||
- Martin Kepplinger <martin.kepplinger@theobroma-systems.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- fsl,mma8451
|
||||
- fsl,mma8452
|
||||
- fsl,mma8453
|
||||
- fsl,mma8652
|
||||
- fsl,mma8653
|
||||
- fsl,fxls8471
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
description:
|
||||
2 highly configurable interrupt lines exist.
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
interrupt-names:
|
||||
description: Specify which interrupt line is in use.
|
||||
items:
|
||||
enum:
|
||||
- INT1
|
||||
- INT2
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
|
||||
vdd-supply: true
|
||||
vddio-supply: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
accel@1d {
|
||||
compatible = "fsl,mma8453";
|
||||
reg = <0x1d>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <5 0>;
|
||||
interrupt-names = "INT2";
|
||||
};
|
||||
};
|
||||
...
|
|
@ -1,24 +0,0 @@
|
|||
Kionix KXCJK-1013 Accelerometer device tree bindings
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: Must be one of:
|
||||
"kionix,kxcjk1013"
|
||||
"kionix,kxcj91008"
|
||||
"kionix,kxtj21009"
|
||||
"kionix,kxtf9"
|
||||
- reg: i2c slave address
|
||||
|
||||
Optional properties:
|
||||
|
||||
- mount-matrix: an optional 3x3 mounting rotation matrix
|
||||
|
||||
Example:
|
||||
|
||||
kxtf9@f {
|
||||
compatible = "kionix,kxtf9";
|
||||
reg = <0x0F>;
|
||||
mount-matrix = "0", "1", "0",
|
||||
"1", "0", "0",
|
||||
"0", "0", "1";
|
||||
};
|
|
@ -0,0 +1,46 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/accel/kionix,kxcjk1013.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Kionix KXCJK-1013 Accelerometer
|
||||
|
||||
maintainers:
|
||||
- Robert Yang <decatf@gmail.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- kionix,kxcjk1013
|
||||
- kionix,kxcj91008
|
||||
- kionix,kxtj21009
|
||||
- kionix,kxtf9
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
mount-matrix:
|
||||
description: an optional 3x3 mounting rotation matrix.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
accel@f {
|
||||
compatible = "kionix,kxtf9";
|
||||
reg = <0x0F>;
|
||||
mount-matrix = "0", "1", "0",
|
||||
"1", "0", "0",
|
||||
"0", "0", "1";
|
||||
};
|
||||
};
|
||||
...
|
|
@ -1,35 +0,0 @@
|
|||
Freescale MMA8451Q, MMA8452Q, MMA8453Q, MMA8652FC, MMA8653FC or FXLS8471Q
|
||||
triaxial accelerometer
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: should contain one of
|
||||
* "fsl,mma8451"
|
||||
* "fsl,mma8452"
|
||||
* "fsl,mma8453"
|
||||
* "fsl,mma8652"
|
||||
* "fsl,mma8653"
|
||||
* "fsl,fxls8471"
|
||||
|
||||
- reg: the I2C address of the chip
|
||||
|
||||
Optional properties:
|
||||
|
||||
- interrupts: interrupt mapping for GPIO IRQ
|
||||
|
||||
- interrupt-names: should contain "INT1" and/or "INT2", the accelerometer's
|
||||
interrupt line in use.
|
||||
|
||||
- vdd-supply: phandle to the regulator that provides vdd power to the accelerometer.
|
||||
|
||||
- vddio-supply: phandle to the regulator that provides vddio power to the accelerometer.
|
||||
|
||||
Example:
|
||||
|
||||
mma8453fc@1d {
|
||||
compatible = "fsl,mma8453";
|
||||
reg = <0x1d>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <5 0>;
|
||||
interrupt-names = "INT2";
|
||||
};
|
|
@ -1,23 +0,0 @@
|
|||
Common ADCs properties
|
||||
|
||||
Optional properties for child nodes:
|
||||
- bipolar : Boolean, if set the channel is used in bipolar mode.
|
||||
- diff-channels : Differential channels muxed for this ADC. The first value
|
||||
specifies the positive input pin, the second value the negative
|
||||
input pin.
|
||||
|
||||
Example:
|
||||
adc@0 {
|
||||
compatible = "some,adc";
|
||||
...
|
||||
channel@0 {
|
||||
bipolar;
|
||||
diff-channels = <0 1>;
|
||||
...
|
||||
};
|
||||
|
||||
channel@1 {
|
||||
diff-channels = <2 3>;
|
||||
...
|
||||
};
|
||||
};
|
|
@ -0,0 +1,42 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/adc/adc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Generic IIO bindings for ADC channels
|
||||
|
||||
maintainers:
|
||||
- Jonathan Cameron <jic23@kernel.org>
|
||||
|
||||
description:
|
||||
A few properties are defined in a common way ADC channels.
|
||||
|
||||
properties:
|
||||
$nodename:
|
||||
pattern: "^channel(@[0-9a-f]+)?$"
|
||||
description:
|
||||
A channel index should match reg.
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
label:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
description: Unique name to identify which channel this is.
|
||||
|
||||
bipolar:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: If provided, the channel is to be used in bipolar mode.
|
||||
|
||||
diff-channels:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
maxItems: 2
|
||||
minItems: 2
|
||||
description:
|
||||
Many ADCs have dual Muxes to allow different input pins to be routed
|
||||
to both the positive and negative inputs of a differential ADC.
|
||||
The first value specifies the positive input pin, the second
|
||||
specifies the negative input pin.
|
||||
|
||||
additionalProperties: true
|
|
@ -63,10 +63,10 @@ required:
|
|||
|
||||
patternProperties:
|
||||
"^channel@([0-9]|1[0-5])$":
|
||||
$ref: "adc.yaml"
|
||||
type: object
|
||||
description: |
|
||||
Represents the external channels which are connected to the ADC.
|
||||
See Documentation/devicetree/bindings/iio/adc/adc.txt.
|
||||
|
||||
properties:
|
||||
reg:
|
||||
|
@ -88,15 +88,9 @@ patternProperties:
|
|||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [0, 1, 3]
|
||||
|
||||
diff-channels:
|
||||
description: see Documentation/devicetree/bindings/iio/adc/adc.txt
|
||||
items:
|
||||
minimum: 0
|
||||
maximum: 15
|
||||
diff-channels: true
|
||||
|
||||
bipolar:
|
||||
description: see Documentation/devicetree/bindings/iio/adc/adc.txt
|
||||
type: boolean
|
||||
bipolar: true
|
||||
|
||||
adi,buffered-positive:
|
||||
description: Enable buffered mode for positive input.
|
||||
|
@ -110,6 +104,8 @@ patternProperties:
|
|||
- reg
|
||||
- diff-channels
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
|
|
|
@ -45,10 +45,10 @@ required:
|
|||
|
||||
patternProperties:
|
||||
"^channel@[0-7]$":
|
||||
$ref: "adc.yaml"
|
||||
type: object
|
||||
description: |
|
||||
Represents the external channels which are connected to the ADC.
|
||||
See Documentation/devicetree/bindings/iio/adc/adc.txt.
|
||||
|
||||
properties:
|
||||
reg:
|
||||
|
@ -58,13 +58,13 @@ patternProperties:
|
|||
- minimum: 0
|
||||
maximum: 7
|
||||
|
||||
diff-channels:
|
||||
description: see Documentation/devicetree/bindings/iio/adc/adc.txt
|
||||
maxItems: 1
|
||||
diff-channels: true
|
||||
|
||||
required:
|
||||
- reg
|
||||
|
||||
additionalProperties: true
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
|
|
|
@ -29,6 +29,12 @@ properties:
|
|||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
'#size-cells':
|
||||
const: 0
|
||||
|
||||
vref-supply:
|
||||
description:
|
||||
ADC reference voltage supply
|
||||
|
@ -62,6 +68,24 @@ required:
|
|||
- spi-cpha
|
||||
- adi,sync-in-gpios
|
||||
|
||||
patternProperties:
|
||||
"^channel@([0-9]|1[0-5])$":
|
||||
type: object
|
||||
description: |
|
||||
Represents the external channels which are connected to the device.
|
||||
|
||||
properties:
|
||||
reg:
|
||||
description: |
|
||||
The channel number.
|
||||
|
||||
label:
|
||||
description: |
|
||||
Unique name to identify which channel this is.
|
||||
required:
|
||||
- reg
|
||||
additionalProperties: false
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
|
@ -85,6 +109,14 @@ examples:
|
|||
reset-gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
|
||||
clocks = <&ad7768_mclk>;
|
||||
clock-names = "mclk";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
channel@0 {
|
||||
reg = <0>;
|
||||
label = "channel_0";
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
||||
|
|
|
@ -1,50 +0,0 @@
|
|||
* AT91 SAMA5D2 Analog to Digital Converter (ADC)
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "atmel,sama5d2-adc" or "microchip,sam9x60-adc".
|
||||
- reg: Should contain ADC registers location and length.
|
||||
- interrupts: Should contain the IRQ line for the ADC.
|
||||
- clocks: phandle to device clock.
|
||||
- clock-names: Must be "adc_clk".
|
||||
- vref-supply: Supply used as reference for conversions.
|
||||
- vddana-supply: Supply for the adc device.
|
||||
- atmel,min-sample-rate-hz: Minimum sampling rate, it depends on SoC.
|
||||
- atmel,max-sample-rate-hz: Maximum sampling rate, it depends on SoC.
|
||||
- atmel,startup-time-ms: Startup time expressed in ms, it depends on SoC.
|
||||
- atmel,trigger-edge-type: One of possible edge types for the ADTRG hardware
|
||||
trigger pin. When the specific edge type is detected, the conversion will
|
||||
start. Possible values are rising, falling, or both.
|
||||
This property uses the IRQ edge types values: IRQ_TYPE_EDGE_RISING ,
|
||||
IRQ_TYPE_EDGE_FALLING or IRQ_TYPE_EDGE_BOTH
|
||||
|
||||
Optional properties:
|
||||
- dmas: Phandle to dma channel for the ADC.
|
||||
- dma-names: Must be "rx" when dmas property is being used.
|
||||
See ../../dma/dma.txt for details.
|
||||
- #io-channel-cells: in case consumer drivers are attached, this must be 1.
|
||||
See <Documentation/devicetree/bindings/iio/iio-bindings.txt> for details.
|
||||
|
||||
Properties for consumer drivers:
|
||||
- Consumer drivers can be connected to this producer device, as specified
|
||||
in <Documentation/devicetree/bindings/iio/iio-bindings.txt>
|
||||
- Channels exposed are specified in:
|
||||
<dt-bindings/iio/adc/at91-sama5d2_adc.txt>
|
||||
|
||||
Example:
|
||||
|
||||
adc: adc@fc030000 {
|
||||
compatible = "atmel,sama5d2-adc";
|
||||
reg = <0xfc030000 0x100>;
|
||||
interrupts = <40 IRQ_TYPE_LEVEL_HIGH 7>;
|
||||
clocks = <&adc_clk>;
|
||||
clock-names = "adc_clk";
|
||||
atmel,min-sample-rate-hz = <200000>;
|
||||
atmel,max-sample-rate-hz = <20000000>;
|
||||
atmel,startup-time-ms = <4>;
|
||||
vddana-supply = <&vdd_3v3_lp_reg>;
|
||||
vref-supply = <&vdd_3v3_lp_reg>;
|
||||
atmel,trigger-edge-type = <IRQ_TYPE_EDGE_BOTH>;
|
||||
dmas = <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) | AT91_XDMAC_DT_PERID(25))>;
|
||||
dma-names = "rx";
|
||||
#io-channel-cells = <1>;
|
||||
}
|
|
@ -1,83 +0,0 @@
|
|||
* AT91's Analog to Digital Converter (ADC)
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "atmel,<chip>-adc"
|
||||
<chip> can be "at91sam9260", "at91sam9g45" or "at91sam9x5"
|
||||
- reg: Should contain ADC registers location and length
|
||||
- interrupts: Should contain the IRQ line for the ADC
|
||||
- clock-names: tuple listing input clock names.
|
||||
Required elements: "adc_clk", "adc_op_clk".
|
||||
- clocks: phandles to input clocks.
|
||||
- atmel,adc-channels-used: Bitmask of the channels muxed and enabled for this
|
||||
device
|
||||
- atmel,adc-startup-time: Startup Time of the ADC in microseconds as
|
||||
defined in the datasheet
|
||||
- atmel,adc-vref: Reference voltage in millivolts for the conversions
|
||||
- atmel,adc-res: List of resolutions in bits supported by the ADC. List size
|
||||
must be two at least.
|
||||
- atmel,adc-res-names: Contains one identifier string for each resolution
|
||||
in atmel,adc-res property. "lowres" and "highres"
|
||||
identifiers are required.
|
||||
|
||||
Optional properties:
|
||||
- atmel,adc-use-external-triggers: Boolean to enable the external triggers
|
||||
- atmel,adc-use-res: String corresponding to an identifier from
|
||||
atmel,adc-res-names property. If not specified, the highest
|
||||
resolution will be used.
|
||||
- atmel,adc-sleep-mode: Boolean to enable sleep mode when no conversion
|
||||
- atmel,adc-sample-hold-time: Sample and Hold Time in microseconds
|
||||
- atmel,adc-ts-wires: Number of touchscreen wires. Should be 4 or 5. If this
|
||||
value is set, then the adc driver will enable touchscreen
|
||||
support.
|
||||
NOTE: when adc touchscreen is enabled, the adc hardware trigger will be
|
||||
disabled. Since touchscreen will occupy the trigger register.
|
||||
- atmel,adc-ts-pressure-threshold: a pressure threshold for touchscreen. It
|
||||
makes touch detection more precise.
|
||||
|
||||
Optional trigger Nodes:
|
||||
- Required properties:
|
||||
* trigger-name: Name of the trigger exposed to the user
|
||||
* trigger-value: Value to put in the Trigger register
|
||||
to activate this trigger
|
||||
- Optional properties:
|
||||
* trigger-external: Is the trigger an external trigger?
|
||||
|
||||
Examples:
|
||||
adc0: adc@fffb0000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "atmel,at91sam9260-adc";
|
||||
reg = <0xfffb0000 0x100>;
|
||||
interrupts = <20 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
clocks = <&adc_clk>, <&adc_op_clk>;
|
||||
clock-names = "adc_clk", "adc_op_clk";
|
||||
atmel,adc-channels-used = <0xff>;
|
||||
atmel,adc-startup-time = <40>;
|
||||
atmel,adc-use-external-triggers;
|
||||
atmel,adc-vref = <3300>;
|
||||
atmel,adc-res = <8 10>;
|
||||
atmel,adc-res-names = "lowres", "highres";
|
||||
atmel,adc-use-res = "lowres";
|
||||
|
||||
trigger0 {
|
||||
trigger-name = "external-rising";
|
||||
trigger-value = <0x1>;
|
||||
trigger-external;
|
||||
};
|
||||
trigger1 {
|
||||
trigger-name = "external-falling";
|
||||
trigger-value = <0x2>;
|
||||
trigger-external;
|
||||
};
|
||||
|
||||
trigger2 {
|
||||
trigger-name = "external-any";
|
||||
trigger-value = <0x3>;
|
||||
trigger-external;
|
||||
};
|
||||
|
||||
trigger3 {
|
||||
trigger-name = "continuous";
|
||||
trigger-value = <0x6>;
|
||||
};
|
||||
};
|
|
@ -0,0 +1,101 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/adc/atmel,sama5d2-adc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: AT91 SAMA5D2 Analog to Digital Converter (ADC)
|
||||
|
||||
maintainers:
|
||||
- Ludovic Desroches <ludovic.desroches@atmel.com>
|
||||
- Eugen Hristev <eugen.hristev@microchip.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- atmel,sama5d2-adc
|
||||
- microchip,sam9x60-adc
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
const: adc_clk
|
||||
|
||||
vref-supply: true
|
||||
vddana-supply: true
|
||||
|
||||
atmel,min-sample-rate-hz:
|
||||
description: Minimum sampling rate, it depends on SoC.
|
||||
|
||||
atmel,max-sample-rate-hz:
|
||||
description: Maximum sampling rate, it depends on SoC.
|
||||
|
||||
atmel,startup-time-ms:
|
||||
description: Startup time expressed in ms, it depends on SoC.
|
||||
|
||||
atmel,trigger-edge-type:
|
||||
$ref: '/schemas/types.yaml#/definitions/uint32'
|
||||
description:
|
||||
One of possible edge types for the ADTRG hardware trigger pin.
|
||||
When the specific edge type is detected, the conversion will
|
||||
start. Should be one of IRQ_TYPE_EDGE_RISING, IRQ_TYPE_EDGE_FALLING
|
||||
or IRQ_TYPE_EDGE_BOTH.
|
||||
enum: [1, 2, 3]
|
||||
|
||||
dmas:
|
||||
maxItems: 1
|
||||
|
||||
dma-names:
|
||||
const: rx
|
||||
|
||||
"#io-channel-cells":
|
||||
const: 1
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
- vref-supply
|
||||
- vddana-supply
|
||||
- atmel,min-sample-rate-hz
|
||||
- atmel,max-sample-rate-hz
|
||||
- atmel,startup-time-ms
|
||||
- atmel,trigger-edge-type
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/dma/at91.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
soc {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
adc@fc030000 {
|
||||
compatible = "atmel,sama5d2-adc";
|
||||
reg = <0xfc030000 0x100>;
|
||||
interrupts = <40 IRQ_TYPE_LEVEL_HIGH 7>;
|
||||
clocks = <&adc_clk>;
|
||||
clock-names = "adc_clk";
|
||||
atmel,min-sample-rate-hz = <200000>;
|
||||
atmel,max-sample-rate-hz = <20000000>;
|
||||
atmel,startup-time-ms = <4>;
|
||||
vddana-supply = <&vdd_3v3_lp_reg>;
|
||||
vref-supply = <&vdd_3v3_lp_reg>;
|
||||
atmel,trigger-edge-type = <IRQ_TYPE_EDGE_BOTH>;
|
||||
dmas = <&dma0 (AT91_XDMAC_DT_MEM_IF(0) | AT91_XDMAC_DT_PER_IF(1) | AT91_XDMAC_DT_PERID(25))>;
|
||||
dma-names = "rx";
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -0,0 +1,121 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/adc/atmel,sama9260-adc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: AT91 sama9260 and similar Analog to Digital Converter (ADC)
|
||||
|
||||
maintainers:
|
||||
- Alexandre Belloni <alexandre.belloni@bootlin.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- atmel,at91sam9260-adc
|
||||
- atmel,at91sam9rl-adc
|
||||
- atmel,at91sam9g45-adc
|
||||
- atmel,at91sam9x5-adc
|
||||
- atmel,at91sama5d3-adc
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
|
||||
clock-names:
|
||||
items:
|
||||
- const: adc_clk
|
||||
- const: adc_op_clk
|
||||
|
||||
atmel,adc-channels-used:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Bitmask of the channels muxed and enabled for this device
|
||||
|
||||
atmel,adc-startup-time:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
Startup Time of the ADC in microseconds as defined in the datasheet
|
||||
|
||||
atmel,adc-vref:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Reference voltage in millivolts for the conversions
|
||||
|
||||
atmel,adc-use-external-triggers:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: Enable the external triggers
|
||||
|
||||
atmel,adc-use-res:
|
||||
$ref: /schemas/types.yaml#/definitions/string
|
||||
description:
|
||||
String corresponding to an identifier from atmel,adc-res-names property.
|
||||
If not specified, the highest resolution will be used.
|
||||
enum:
|
||||
- "lowres"
|
||||
- "highres"
|
||||
|
||||
atmel,adc-sleep-mode:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: Enable sleep mode when no conversion
|
||||
|
||||
atmel,adc-sample-hold-time:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Sample and Hold Time in microseconds
|
||||
|
||||
atmel,adc-ts-wires:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: |
|
||||
Number of touchscreen wires. Must be set to enable touchscreen.
|
||||
NOTE: when adc touchscreen is enabled, the adc hardware trigger will be
|
||||
disabled. Since touchscreen will occupy the trigger register.
|
||||
enum:
|
||||
- 4
|
||||
- 5
|
||||
|
||||
atmel,adc-ts-pressure-threshold:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
Pressure threshold for touchscreen.
|
||||
|
||||
"#io-channel-cells":
|
||||
const: 1
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
- atmel,adc-channels-used
|
||||
- atmel,adc-startup-time
|
||||
- atmel,adc-vref
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/dma/at91.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
soc {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
adc@fffb0000 {
|
||||
compatible = "atmel,at91sam9260-adc";
|
||||
reg = <0xfffb0000 0x100>;
|
||||
interrupts = <20 IRQ_TYPE_LEVEL_HIGH 0>;
|
||||
clocks = <&adc_clk>, <&adc_op_clk>;
|
||||
clock-names = "adc_clk", "adc_op_clk";
|
||||
atmel,adc-channels-used = <0xff>;
|
||||
atmel,adc-startup-time = <40>;
|
||||
atmel,adc-use-external-triggers;
|
||||
atmel,adc-vref = <3300>;
|
||||
atmel,adc-use-res = "lowres";
|
||||
};
|
||||
};
|
||||
...
|
|
@ -1,48 +0,0 @@
|
|||
* X-Powers AXP ADC bindings
|
||||
|
||||
Required properties:
|
||||
- compatible: should be one of:
|
||||
- "x-powers,axp209-adc",
|
||||
- "x-powers,axp221-adc",
|
||||
- "x-powers,axp813-adc",
|
||||
- #io-channel-cells: should be 1,
|
||||
|
||||
Example:
|
||||
|
||||
&axp22x {
|
||||
adc {
|
||||
compatible = "x-powers,axp221-adc";
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
ADC channels and their indexes per variant:
|
||||
|
||||
AXP209
|
||||
------
|
||||
0 | acin_v
|
||||
1 | acin_i
|
||||
2 | vbus_v
|
||||
3 | vbus_i
|
||||
4 | pmic_temp
|
||||
5 | gpio0_v
|
||||
6 | gpio1_v
|
||||
7 | ipsout_v
|
||||
8 | batt_v
|
||||
9 | batt_chrg_i
|
||||
10 | batt_dischrg_i
|
||||
|
||||
AXP22x
|
||||
------
|
||||
0 | pmic_temp
|
||||
1 | batt_v
|
||||
2 | batt_chrg_i
|
||||
3 | batt_dischrg_i
|
||||
|
||||
AXP813
|
||||
------
|
||||
0 | pmic_temp
|
||||
1 | gpio0_v
|
||||
2 | batt_v
|
||||
3 | batt_chrg_i
|
||||
4 | batt_dischrg_i
|
|
@ -1,40 +0,0 @@
|
|||
* Broadcom's IPROC Static ADC controller
|
||||
|
||||
Broadcom iProc ADC controller has 8 channels 10bit ADC.
|
||||
Allows user to convert analog input voltage values to digital.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: Must be "brcm,iproc-static-adc"
|
||||
|
||||
- adc-syscon: Handler of syscon node defining physical base address of the
|
||||
controller and length of memory mapped region.
|
||||
|
||||
- #io-channel-cells = <1>; As ADC has multiple outputs
|
||||
refer to Documentation/devicetree/bindings/iio/iio-bindings.txt for details.
|
||||
|
||||
- io-channel-ranges:
|
||||
refer to Documentation/devicetree/bindings/iio/iio-bindings.txt for details.
|
||||
|
||||
- clocks: Clock used for this block.
|
||||
|
||||
- clock-names: Clock name should be given as tsc_clk.
|
||||
|
||||
- interrupts: interrupt line number.
|
||||
|
||||
For example:
|
||||
|
||||
ts_adc_syscon: ts_adc_syscon@180a6000 {
|
||||
compatible = "brcm,iproc-ts-adc-syscon","syscon";
|
||||
reg = <0x180a6000 0xc30>;
|
||||
};
|
||||
|
||||
adc: adc@180a6000 {
|
||||
compatible = "brcm,iproc-static-adc";
|
||||
adc-syscon = <&ts_adc_syscon>;
|
||||
#io-channel-cells = <1>;
|
||||
io-channel-ranges;
|
||||
clocks = <&asiu_clks BCM_CYGNUS_ASIU_ADC_CLK>;
|
||||
clock-names = "tsc_clk";
|
||||
interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
|
@ -0,0 +1,70 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/adc/brcm,iproc-static-adc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Broadcom's IPROC Static ADC controller
|
||||
|
||||
maintainers:
|
||||
- Raveendra Padasalagi <raveendra.padasalagi@broadcom.com>
|
||||
|
||||
description: |
|
||||
Broadcom iProc ADC controller has 8 10bit channels
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: brcm,iproc-static-adc
|
||||
|
||||
adc-syscon:
|
||||
$ref: /schemas/types.yaml#/definitions/phandle
|
||||
description:
|
||||
syscon node defining physical base address of the controller and length
|
||||
of memory mapped region.
|
||||
|
||||
"#io-channel-cells":
|
||||
const: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
const: tsc_clk
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- adc-syscon
|
||||
- "#io-channel-cells"
|
||||
- clocks
|
||||
- clock-names
|
||||
- interrupts
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/bcm-cygnus.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
soc {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
ts_adc_syscon: ts_adc_syscon@180a6000 {
|
||||
compatible = "brcm,iproc-ts-adc-syscon","syscon";
|
||||
reg = <0x180a6000 0xc30>;
|
||||
};
|
||||
|
||||
adc {
|
||||
compatible = "brcm,iproc-static-adc";
|
||||
adc-syscon = <&ts_adc_syscon>;
|
||||
#io-channel-cells = <1>;
|
||||
clocks = <&asiu_clks BCM_CYGNUS_ASIU_ADC_CLK>;
|
||||
clock-names = "tsc_clk";
|
||||
interrupts = <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -1,54 +0,0 @@
|
|||
Bindings for ADC envelope detector using a DAC and a comparator
|
||||
|
||||
The DAC is used to find the peak level of an alternating voltage input
|
||||
signal by a binary search using the output of a comparator wired to
|
||||
an interrupt pin. Like so:
|
||||
_
|
||||
| \
|
||||
input +------>-------|+ \
|
||||
| \
|
||||
.-------. | }---.
|
||||
| | | / |
|
||||
| dac|-->--|- / |
|
||||
| | |_/ |
|
||||
| | |
|
||||
| | |
|
||||
| irq|------<-------'
|
||||
| |
|
||||
'-------'
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "axentia,tse850-envelope-detector"
|
||||
- io-channels: Channel node of the dac to be used for comparator input.
|
||||
- io-channel-names: Should be "dac".
|
||||
- interrupt specification for one client interrupt,
|
||||
see ../../interrupt-controller/interrupts.txt for details.
|
||||
- interrupt-names: Should be "comp".
|
||||
|
||||
Example:
|
||||
|
||||
&i2c {
|
||||
dpot: mcp4651-104@28 {
|
||||
compatible = "microchip,mcp4651-104";
|
||||
reg = <0x28>;
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
dac: dac {
|
||||
compatible = "dpot-dac";
|
||||
vref-supply = <®_3v3>;
|
||||
io-channels = <&dpot 0>;
|
||||
io-channel-names = "dpot";
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
|
||||
envelope-detector {
|
||||
compatible = "axentia,tse850-envelope-detector";
|
||||
io-channels = <&dac 0>;
|
||||
io-channel-names = "dac";
|
||||
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
|
||||
interrupt-names = "comp";
|
||||
};
|
|
@ -0,0 +1,86 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/adc/envelope-detector.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: ADC envelope detector using a DAC and a comparator
|
||||
|
||||
maintainers:
|
||||
- Peter Rosin <peda@axentia.se>
|
||||
|
||||
description: |
|
||||
The DAC is used to find the peak level of an alternating voltage input
|
||||
signal by a binary search using the output of a comparator wired to
|
||||
an interrupt pin. Like so:
|
||||
_
|
||||
| \
|
||||
input +------>-------|+ \
|
||||
| \
|
||||
.-------. | }---.
|
||||
| | | / |
|
||||
| dac|-->--|- / |
|
||||
| | |_/ |
|
||||
| | |
|
||||
| | |
|
||||
| irq|------<-------'
|
||||
| |
|
||||
'-------'
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: axentia,tse850-envelope-detector
|
||||
|
||||
io-channels:
|
||||
maxItems: 1
|
||||
description: Channel node of the dac to be used for comparator input.
|
||||
|
||||
io-channel-names:
|
||||
const: dac
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
interrupt-names:
|
||||
const: comp
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- io-channels
|
||||
- io-channel-names
|
||||
- interrupts
|
||||
- interrupt-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
dpot: dpot@28 {
|
||||
compatible = "microchip,mcp4651-104";
|
||||
reg = <0x28>;
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
dac: dac {
|
||||
compatible = "dpot-dac";
|
||||
vref-supply = <®_3v3>;
|
||||
io-channels = <&dpot 0>;
|
||||
io-channel-names = "dpot";
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
|
||||
envelope-detector {
|
||||
compatible = "axentia,tse850-envelope-detector";
|
||||
io-channels = <&dac 0>;
|
||||
io-channel-names = "dac";
|
||||
|
||||
interrupt-parent = <&gpio>;
|
||||
interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
|
||||
interrupt-names = "comp";
|
||||
};
|
||||
...
|
|
@ -0,0 +1,65 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/adc/maxim,max1027.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Maxim MAX1027 and similar ADCs
|
||||
|
||||
maintainers:
|
||||
- Miquel Raynal <miquel.raynal@bootlin.com>
|
||||
- Philippe Reynes <tremyfr@yahoo.fr>
|
||||
|
||||
description: |
|
||||
300ks/s SPI ADCs with temperature sensors.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
# 10-bit 8 channels
|
||||
- maxim,max1027
|
||||
# 10-bit 12 channels
|
||||
- maxim,max1029
|
||||
# 10-bit 16 channels
|
||||
- maxim,max1031
|
||||
# 12-bit 8 channels
|
||||
- maxim,max1227
|
||||
# 12-bit 12 channels
|
||||
- maxim,max1229
|
||||
# 12-bit 16 channels
|
||||
- maxim,max1231
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
spi-max-frequency:
|
||||
maximum: 10000000
|
||||
|
||||
"#io-channel-cells":
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
maxadc: adc@0 {
|
||||
compatible = "maxim,max1027";
|
||||
reg = <0>;
|
||||
#io-channel-cells = <1>;
|
||||
interrupt-parent = <&gpio5>;
|
||||
interrupts = <15 IRQ_TYPE_EDGE_RISING>;
|
||||
spi-max-frequency = <1000000>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -0,0 +1,77 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/adc/mediatek,mt2701-auxadc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Mediatek AUXADC - ADC on Mediatek mobile SoC (mt65xx/mt81xx/mt27xx)
|
||||
|
||||
maintainers:
|
||||
- Zhiyong Tao <zhiyong.tao@mediatek.com>
|
||||
- Matthias Brugger <matthias.bgg@gmail.com>
|
||||
|
||||
description: |
|
||||
The Auxiliary Analog/Digital Converter (AUXADC) is an ADC found
|
||||
in some Mediatek SoCs which among other things measures the temperatures
|
||||
in the SoC. It can be used directly with register accesses, but it is also
|
||||
used by thermal controller which reads the temperatures from the AUXADC
|
||||
directly via its own bus interface. See mediatek-thermal bindings
|
||||
for the Thermal Controller which holds a phandle to the AUXADC.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- enum:
|
||||
- mediatek,mt2701-auxadc
|
||||
- mediatek,mt2712-auxadc
|
||||
- mediatek,mt6765-auxadc
|
||||
- mediatek,mt7622-auxadc
|
||||
- mediatek,mt8173-auxadc
|
||||
- items:
|
||||
- enum:
|
||||
- mediatek,mt7623-auxadc
|
||||
- const: mediatek,mt2701-auxadc
|
||||
- items:
|
||||
- enum:
|
||||
- mediatek,mt8183-auxadc
|
||||
- mediatek,mt8516-auxadc
|
||||
- const: mediatek,mt8173-auxadc
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
const: main
|
||||
|
||||
"#io-channel-cells":
|
||||
const: 1
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- "#io-channel-cells"
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/mt8183-clk.h>
|
||||
soc {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
adc@11001000 {
|
||||
compatible = "mediatek,mt8183-auxadc",
|
||||
"mediatek,mt8173-auxadc";
|
||||
reg = <0 0x11001000 0 0x1000>;
|
||||
clocks = <&infracfg CLK_INFRA_AUXADC>;
|
||||
clock-names = "main";
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -0,0 +1,31 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/adc/mediatek,mt6360-adc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Mediatek MT6360 and similar ADCs
|
||||
|
||||
maintainers:
|
||||
- Gene Chen <gene_chen@richtek.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: mediatek,mt6360-adc
|
||||
|
||||
"#io-channel-cells":
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- "#io-channel-cells"
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
adc {
|
||||
compatible = "mediatek,mt6360-adc";
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
...
|
|
@ -1,33 +0,0 @@
|
|||
* Mediatek AUXADC - Analog to Digital Converter on Mediatek mobile soc (mt65xx/mt81xx/mt27xx)
|
||||
===============
|
||||
|
||||
The Auxiliary Analog/Digital Converter (AUXADC) is an ADC found
|
||||
in some Mediatek SoCs which among other things measures the temperatures
|
||||
in the SoC. It can be used directly with register accesses, but it is also
|
||||
used by thermal controller which reads the temperatures from the AUXADC
|
||||
directly via its own bus interface. See
|
||||
Documentation/devicetree/bindings/thermal/mediatek-thermal.txt
|
||||
for the Thermal Controller which holds a phandle to the AUXADC.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be one of:
|
||||
- "mediatek,mt2701-auxadc": For MT2701 family of SoCs
|
||||
- "mediatek,mt2712-auxadc": For MT2712 family of SoCs
|
||||
- "mediatek,mt6765-auxadc": For MT6765 family of SoCs
|
||||
- "mediatek,mt7622-auxadc": For MT7622 family of SoCs
|
||||
- "mediatek,mt8173-auxadc": For MT8173 family of SoCs
|
||||
- "mediatek,mt8183-auxadc", "mediatek,mt8173-auxadc": For MT8183 family of SoCs
|
||||
- reg: Address range of the AUXADC unit.
|
||||
- clocks: Should contain a clock specifier for each entry in clock-names
|
||||
- clock-names: Should contain "main".
|
||||
- #io-channel-cells: Should be 1, see ../iio-bindings.txt
|
||||
|
||||
Example:
|
||||
|
||||
auxadc: adc@11001000 {
|
||||
compatible = "mediatek,mt2701-auxadc";
|
||||
reg = <0 0x11001000 0 0x1000>;
|
||||
clocks = <&pericfg CLK_PERI_AUXADC>;
|
||||
clock-names = "main";
|
||||
#io-channel-cells = <1>;
|
||||
};
|
|
@ -1,48 +0,0 @@
|
|||
* Palmas general purpose ADC IP block devicetree bindings
|
||||
|
||||
Channels list:
|
||||
0 battery type
|
||||
1 battery temp NTC (optional current source)
|
||||
2 GP
|
||||
3 temp (with ext. diode, optional current source)
|
||||
4 GP
|
||||
5 GP
|
||||
6 VBAT_SENSE
|
||||
7 VCC_SENSE
|
||||
8 Backup Battery voltage
|
||||
9 external charger (VCHG)
|
||||
10 VBUS
|
||||
11 DC-DC current probe (how does this work?)
|
||||
12 internal die temp
|
||||
13 internal die temp
|
||||
14 USB ID pin voltage
|
||||
15 test network
|
||||
|
||||
Required properties:
|
||||
- compatible : Must be "ti,palmas-gpadc".
|
||||
- #io-channel-cells: Should be set to <1>.
|
||||
|
||||
Optional sub-nodes:
|
||||
ti,channel0-current-microamp: Channel 0 current in uA.
|
||||
Values are rounded to derive 0uA, 5uA, 15uA, 20uA.
|
||||
ti,channel3-current-microamp: Channel 3 current in uA.
|
||||
Values are rounded to derive 0uA, 10uA, 400uA, 800uA.
|
||||
ti,enable-extended-delay: Enable extended delay.
|
||||
|
||||
Example:
|
||||
|
||||
pmic {
|
||||
compatible = "ti,twl6035-pmic", "ti,palmas-pmic";
|
||||
...
|
||||
gpadc {
|
||||
compatible = "ti,palmas-gpadc";
|
||||
interrupts = <18 0
|
||||
16 0
|
||||
17 0>;
|
||||
#io-channel-cells = <1>;
|
||||
ti,channel0-current-microamp = <5>;
|
||||
ti,channel3-current-microamp = <10>;
|
||||
};
|
||||
};
|
||||
...
|
||||
};
|
|
@ -0,0 +1,166 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/adc/qcom,pm8018-adc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm's PM8xxx voltage XOADC
|
||||
|
||||
maintainers:
|
||||
- Linus Walleij <linus.walleij@linaro.org>
|
||||
|
||||
description: |
|
||||
The Qualcomm PM8xxx PMICs contain a HK/XO ADC (Housekeeping/Crystal
|
||||
oscillator ADC) encompassing PM8018, PM8038, PM8058 and PM8921.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- qcom,pm8018-adc
|
||||
- qcom,pm8038-adc
|
||||
- qcom,pm8058-adc
|
||||
- qcom,pm8921-adc
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
description:
|
||||
ADC base address in the PMIC, typically 0x197.
|
||||
|
||||
xoadc-ref-supply:
|
||||
description:
|
||||
The reference voltage may vary with PMIC variant but is typically
|
||||
something like 2.2 or 1.8V.
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
"#address-cells":
|
||||
const: 2
|
||||
description:
|
||||
The first cell is the prescaler (on PM8058) or premux (on PM8921)
|
||||
with two valid bits so legal values are 0x00, 0x01 or 0x02.
|
||||
The second cell is the main analog mux setting (0x00..0x0f).
|
||||
The combination of prescaler/premux and analog mux uniquely addresses
|
||||
a hardware channel on all systems.
|
||||
|
||||
"#size-cells":
|
||||
const: 0
|
||||
|
||||
"#io-channel-cells":
|
||||
const: 2
|
||||
description:
|
||||
The cells are precaler or premux followed by the analog muxing line.
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#io-channel-cells"
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
- adc-channel@c
|
||||
- adc-channel@d
|
||||
- adc-channel@f
|
||||
|
||||
patternProperties:
|
||||
"^(adc-channel@)[0-9a-f]$":
|
||||
type: object
|
||||
description: |
|
||||
ADC channel specific configuration.
|
||||
Note that channels c, d and f must be present for calibration.
|
||||
These three nodes are used for absolute and ratiometric calibration
|
||||
and only need to have these reg values: they are by hardware definition
|
||||
1:1 ratio converters that sample 625, 1250 and 0 milliV and create
|
||||
an interpolation calibration for all other ADCs.
|
||||
|
||||
properties:
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
qcom,decimation:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: |
|
||||
This parameter is used to decrease the ADC sampling rate.
|
||||
Quicker measurements can be made by reducing the decimation ratio.
|
||||
Valid values are 512, 1024, 2048, 4096.
|
||||
If the property is not found, a default value of 512 will be used.
|
||||
|
||||
qcom,ratiometric:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: |
|
||||
Channel calibration type. If this property is specified
|
||||
VADC will use a special voltage references for channel
|
||||
calibration. The available references are specified in the
|
||||
as a u32 value setting (see below) and it is compulsory
|
||||
to also specify this reference if ratiometric calibration
|
||||
is selected.
|
||||
|
||||
If the property is not found, the channel will be
|
||||
calibrated with the 0.625V and 1.25V reference channels, also
|
||||
known as an absolute calibration.
|
||||
|
||||
The reference voltage pairs when using ratiometric calibration:
|
||||
0 = XO_IN/XOADC_GND
|
||||
1 = PMIC_IN/XOADC_GND
|
||||
2 = PMIC_IN/BMS_CSP
|
||||
3 (invalid)
|
||||
4 = XOADC_GND/XOADC_GND
|
||||
5 = XOADC_VREF/XOADC_GND
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- reg
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
pmic {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
adc@197 {
|
||||
compatible = "qcom,pm8058-adc";
|
||||
reg = <0x197>;
|
||||
interrupts-extended = <&pm8058 76 IRQ_TYPE_EDGE_RISING>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <0>;
|
||||
#io-channel-cells = <2>;
|
||||
|
||||
vcoin: adc-channel@0 {
|
||||
reg = <0x00 0x00>;
|
||||
};
|
||||
vbat: adc-channel@1 {
|
||||
reg = <0x00 0x01>;
|
||||
};
|
||||
dcin: adc-channel@2 {
|
||||
reg = <0x00 0x02>;
|
||||
};
|
||||
ichg: adc-channel@3 {
|
||||
reg = <0x00 0x03>;
|
||||
};
|
||||
vph_pwr: adc-channel@4 {
|
||||
reg = <0x00 0x04>;
|
||||
};
|
||||
usb_vbus: adc-channel@a {
|
||||
reg = <0x00 0x0a>;
|
||||
};
|
||||
die_temp: adc-channel@b {
|
||||
reg = <0x00 0x0b>;
|
||||
};
|
||||
ref_625mv: adc-channel@c {
|
||||
reg = <0x00 0x0c>;
|
||||
};
|
||||
ref_1250mv: adc-channel@d {
|
||||
reg = <0x00 0x0d>;
|
||||
};
|
||||
ref_325mv: adc-channel@e {
|
||||
reg = <0x00 0x0e>;
|
||||
};
|
||||
ref_muxoff: adc-channel@f {
|
||||
reg = <0x00 0x0f>;
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
|
@ -1,157 +0,0 @@
|
|||
Qualcomm's PM8xxx voltage XOADC
|
||||
|
||||
The Qualcomm PM8xxx PMICs contain a HK/XO ADC (Housekeeping/Crystal
|
||||
oscillator ADC) encompassing PM8018, PM8038, PM8058 and PM8921.
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: should be one of:
|
||||
"qcom,pm8018-adc"
|
||||
"qcom,pm8038-adc"
|
||||
"qcom,pm8058-adc"
|
||||
"qcom,pm8921-adc"
|
||||
|
||||
- reg: should contain the ADC base address in the PMIC, typically
|
||||
0x197.
|
||||
|
||||
- xoadc-ref-supply: should reference a regulator that can supply
|
||||
a reference voltage on demand. The reference voltage may vary
|
||||
with PMIC variant but is typically something like 2.2 or 1.8V.
|
||||
|
||||
The following required properties are standard for IO channels, see
|
||||
iio-bindings.txt for more details, but notice that this particular
|
||||
ADC has a special addressing scheme that require two cells for
|
||||
identifying each ADC channel:
|
||||
|
||||
- #address-cells: should be set to <2>, the first cell is the
|
||||
prescaler (on PM8058) or premux (on PM8921) with two valid bits
|
||||
so legal values are 0x00, 0x01 or 0x02. The second cell
|
||||
is the main analog mux setting (0x00..0x0f). The combination
|
||||
of prescaler/premux and analog mux uniquely addresses a hardware
|
||||
channel on all systems.
|
||||
|
||||
- #size-cells: should be set to <0>
|
||||
|
||||
- #io-channel-cells: should be set to <2>, again the cells are
|
||||
precaler or premux followed by the analog muxing line.
|
||||
|
||||
- interrupts: should refer to the parent PMIC interrupt controller
|
||||
and reference the proper ADC interrupt.
|
||||
|
||||
Required subnodes:
|
||||
|
||||
The ADC channels are configured as subnodes of the ADC.
|
||||
|
||||
Since some of them are used for calibrating the ADC, these nodes are
|
||||
compulsory:
|
||||
|
||||
adc-channel@c {
|
||||
reg = <0x00 0x0c>;
|
||||
};
|
||||
|
||||
adc-channel@d {
|
||||
reg = <0x00 0x0d>;
|
||||
};
|
||||
|
||||
adc-channel@f {
|
||||
reg = <0x00 0x0f>;
|
||||
};
|
||||
|
||||
These three nodes are used for absolute and ratiometric calibration
|
||||
and only need to have these reg values: they are by hardware definition
|
||||
1:1 ratio converters that sample 625, 1250 and 0 milliV and create
|
||||
an interpolation calibration for all other ADCs.
|
||||
|
||||
Optional subnodes: any channels other than channels [0x00 0x0c],
|
||||
[0x00 0x0d] and [0x00 0x0f] are optional.
|
||||
|
||||
Required channel node properties:
|
||||
|
||||
- reg: should contain the hardware channel number in the range
|
||||
0 .. 0xff (8 bits).
|
||||
|
||||
Optional channel node properties:
|
||||
|
||||
- qcom,decimation:
|
||||
Value type: <u32>
|
||||
Definition: This parameter is used to decrease the ADC sampling rate.
|
||||
Quicker measurements can be made by reducing the decimation ratio.
|
||||
Valid values are 512, 1024, 2048, 4096.
|
||||
If the property is not found, a default value of 512 will be used.
|
||||
|
||||
- qcom,ratiometric:
|
||||
Value type: <u32>
|
||||
Definition: Channel calibration type. If this property is specified
|
||||
VADC will use a special voltage references for channel
|
||||
calibration. The available references are specified in the
|
||||
as a u32 value setting (see below) and it is compulsory
|
||||
to also specify this reference if ratiometric calibration
|
||||
is selected.
|
||||
|
||||
If the property is not found, the channel will be
|
||||
calibrated with the 0.625V and 1.25V reference channels, also
|
||||
known as an absolute calibration.
|
||||
The reference voltage pairs when using ratiometric calibration:
|
||||
0 = XO_IN/XOADC_GND
|
||||
1 = PMIC_IN/XOADC_GND
|
||||
2 = PMIC_IN/BMS_CSP
|
||||
3 (invalid)
|
||||
4 = XOADC_GND/XOADC_GND
|
||||
5 = XOADC_VREF/XOADC_GND
|
||||
|
||||
Example:
|
||||
|
||||
xoadc: xoadc@197 {
|
||||
compatible = "qcom,pm8058-adc";
|
||||
reg = <0x197>;
|
||||
interrupts-extended = <&pm8058 76 IRQ_TYPE_EDGE_RISING>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <0>;
|
||||
#io-channel-cells = <2>;
|
||||
|
||||
vcoin: adc-channel@0 {
|
||||
reg = <0x00 0x00>;
|
||||
};
|
||||
vbat: adc-channel@1 {
|
||||
reg = <0x00 0x01>;
|
||||
};
|
||||
dcin: adc-channel@2 {
|
||||
reg = <0x00 0x02>;
|
||||
};
|
||||
ichg: adc-channel@3 {
|
||||
reg = <0x00 0x03>;
|
||||
};
|
||||
vph_pwr: adc-channel@4 {
|
||||
reg = <0x00 0x04>;
|
||||
};
|
||||
usb_vbus: adc-channel@a {
|
||||
reg = <0x00 0x0a>;
|
||||
};
|
||||
die_temp: adc-channel@b {
|
||||
reg = <0x00 0x0b>;
|
||||
};
|
||||
ref_625mv: adc-channel@c {
|
||||
reg = <0x00 0x0c>;
|
||||
};
|
||||
ref_1250mv: adc-channel@d {
|
||||
reg = <0x00 0x0d>;
|
||||
};
|
||||
ref_325mv: adc-channel@e {
|
||||
reg = <0x00 0x0e>;
|
||||
};
|
||||
ref_muxoff: adc-channel@f {
|
||||
reg = <0x00 0x0f>;
|
||||
};
|
||||
};
|
||||
|
||||
/* IIO client node */
|
||||
iio-hwmon {
|
||||
compatible = "iio-hwmon";
|
||||
io-channels = <&xoadc 0x00 0x01>, /* Battery */
|
||||
<&xoadc 0x00 0x02>, /* DC in (charger) */
|
||||
<&xoadc 0x00 0x04>, /* VPH the main system voltage */
|
||||
<&xoadc 0x00 0x0b>, /* Die temperature */
|
||||
<&xoadc 0x00 0x0c>, /* Reference voltage 1.25V */
|
||||
<&xoadc 0x00 0x0d>, /* Reference voltage 0.625V */
|
||||
<&xoadc 0x00 0x0e>; /* Reference voltage 0.325V */
|
||||
};
|
|
@ -1,46 +0,0 @@
|
|||
Qualcomm's SPMI PMIC current ADC
|
||||
|
||||
QPNP PMIC current ADC (IADC) provides interface to clients to read current.
|
||||
A 16 bit ADC is used for current measurements. IADC can measure the current
|
||||
through an external resistor (channel 1) or internal (built-in) resistor
|
||||
(channel 0). When using an external resistor it is to be described by
|
||||
qcom,external-resistor-micro-ohms property.
|
||||
|
||||
IADC node:
|
||||
|
||||
- compatible:
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Should contain "qcom,spmi-iadc".
|
||||
|
||||
- reg:
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: IADC base address and length in the SPMI PMIC register map
|
||||
|
||||
- interrupts:
|
||||
Usage: optional
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: End of ADC conversion.
|
||||
|
||||
- qcom,external-resistor-micro-ohms:
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Sense resister value in micro Ohm.
|
||||
If not defined value of 10000 micro Ohms will be used.
|
||||
|
||||
Example:
|
||||
/* IADC node */
|
||||
pmic_iadc: iadc@3600 {
|
||||
compatible = "qcom,spmi-iadc";
|
||||
reg = <0x3600 0x100>;
|
||||
interrupts = <0x0 0x36 0x0 IRQ_TYPE_EDGE_RISING>;
|
||||
qcom,external-resistor-micro-ohms = <10000>;
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
|
||||
/* IIO client node */
|
||||
bat {
|
||||
io-channels = <&pmic_iadc 0>;
|
||||
io-channel-names = "iadc";
|
||||
};
|
|
@ -0,0 +1,60 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/adc/qcom,spmi-iadc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Qualcomm's SPMI PMIC current ADC
|
||||
|
||||
maintainers:
|
||||
- Jonathan Cameron <jic23@kernel.org>
|
||||
|
||||
description: |
|
||||
QPNP PMIC current ADC (IADC) provides interface to clients to read current.
|
||||
A 16 bit ADC is used for current measurements. IADC can measure the current
|
||||
through an external resistor (channel 1) or internal (built-in) resistor
|
||||
(channel 0). When using an external resistor it is to be described by
|
||||
qcom,external-resistor-micro-ohms property.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: qcom,spmi-iadc
|
||||
|
||||
reg:
|
||||
description: IADC base address and length in the SPMI PMIC register map
|
||||
maxItems: 1
|
||||
|
||||
qcom,external-resistor-micro-ohms:
|
||||
description:
|
||||
Sensor resistor value. If not defined value of 10000 micro Ohms
|
||||
will be used.
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
description:
|
||||
End of conversion interrupt.
|
||||
|
||||
"#io-channel-cells":
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
spmi_bus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pmic_iadc: adc@3600 {
|
||||
compatible = "qcom,spmi-iadc";
|
||||
reg = <0x3600 0x100>;
|
||||
interrupts = <0x0 0x36 0x0 IRQ_TYPE_EDGE_RISING>;
|
||||
qcom,external-resistor-micro-ohms = <10000>;
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -48,8 +48,6 @@ properties:
|
|||
description:
|
||||
End of conversion interrupt.
|
||||
|
||||
io-channel-ranges: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
@ -249,7 +247,6 @@ examples:
|
|||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
#io-channel-cells = <1>;
|
||||
io-channel-ranges;
|
||||
|
||||
/* Channel node */
|
||||
adc-chan@39 {
|
||||
|
|
|
@ -1,98 +0,0 @@
|
|||
* Renesas R-Car GyroADC device driver
|
||||
|
||||
The GyroADC block is a reduced SPI block with up to 8 chipselect lines,
|
||||
which supports the SPI protocol of a selected few SPI ADCs. The SPI ADCs
|
||||
are sampled by the GyroADC block in a round-robin fashion and the result
|
||||
presented in the GyroADC registers.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "<soc-specific>", "renesas,rcar-gyroadc".
|
||||
The <soc-specific> should be one of:
|
||||
renesas,r8a7791-gyroadc - for the GyroADC block present
|
||||
in r8a7791 SoC
|
||||
renesas,r8a7792-gyroadc - for the GyroADC with interrupt
|
||||
block present in r8a7792 SoC
|
||||
- reg: Address and length of the register set for the device
|
||||
- clocks: References to all the clocks specified in the clock-names
|
||||
property as specified in
|
||||
Documentation/devicetree/bindings/clock/clock-bindings.txt.
|
||||
- clock-names: Shall contain "fck". The "fck" is the GyroADC block clock.
|
||||
- power-domains: Must contain a reference to the PM domain, if available.
|
||||
- #address-cells: Should be <1> (setting for the subnodes) for all ADCs
|
||||
except for "fujitsu,mb88101a". Should be <0> (setting for
|
||||
only subnode) for "fujitsu,mb88101a".
|
||||
- #size-cells: Should be <0> (setting for the subnodes)
|
||||
|
||||
Sub-nodes:
|
||||
You must define subnode(s) which select the connected ADC type and reference
|
||||
voltage for the GyroADC channels.
|
||||
|
||||
Required properties for subnodes:
|
||||
- compatible: Should be either of:
|
||||
"fujitsu,mb88101a"
|
||||
- Fujitsu MB88101A compatible mode,
|
||||
12bit sampling, up to 4 channels can be sampled in
|
||||
round-robin fashion. One Fujitsu chip supplies four
|
||||
GyroADC channels with data as it contains four ADCs
|
||||
on the chip and thus for 4-channel operation, single
|
||||
MB88101A is required. The Cx chipselect lines of the
|
||||
MB88101A connect directly to two CHS lines of the
|
||||
GyroADC, no demuxer is required. The data out line
|
||||
of each MB88101A connects to a shared input pin of
|
||||
the GyroADC.
|
||||
"ti,adcs7476" or "ti,adc121" or "adi,ad7476"
|
||||
- TI ADCS7476 / TI ADC121 / ADI AD7476 compatible mode,
|
||||
15bit sampling, up to 8 channels can be sampled in
|
||||
round-robin fashion. One TI/ADI chip supplies single
|
||||
ADC channel with data, thus for 8-channel operation,
|
||||
8 chips are required. A 3:8 chipselect demuxer is
|
||||
required to connect the nCS line of the TI/ADI chips
|
||||
to the GyroADC, while MISO line of each TI/ADI ADC
|
||||
connects to a shared input pin of the GyroADC.
|
||||
"maxim,max1162" or "maxim,max11100"
|
||||
- Maxim MAX1162 / Maxim MAX11100 compatible mode,
|
||||
16bit sampling, up to 8 channels can be sampled in
|
||||
round-robin fashion. One Maxim chip supplies single
|
||||
ADC channel with data, thus for 8-channel operation,
|
||||
8 chips are required. A 3:8 chipselect demuxer is
|
||||
required to connect the nCS line of the MAX chips
|
||||
to the GyroADC, while MISO line of each Maxim ADC
|
||||
connects to a shared input pin of the GyroADC.
|
||||
- reg: Should be the number of the analog input. Should be present
|
||||
for all ADCs except "fujitsu,mb88101a".
|
||||
- vref-supply: Reference to the channel reference voltage regulator.
|
||||
|
||||
Example:
|
||||
vref_max1162: regulator-vref-max1162 {
|
||||
compatible = "regulator-fixed";
|
||||
|
||||
regulator-name = "MAX1162 Vref";
|
||||
regulator-min-microvolt = <4096000>;
|
||||
regulator-max-microvolt = <4096000>;
|
||||
};
|
||||
|
||||
adc@e6e54000 {
|
||||
compatible = "renesas,r8a7791-gyroadc", "renesas,rcar-gyroadc";
|
||||
reg = <0 0xe6e54000 0 64>;
|
||||
clocks = <&mstp9_clks R8A7791_CLK_GYROADC>;
|
||||
clock-names = "fck";
|
||||
power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
|
||||
|
||||
pinctrl-0 = <&adc_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
adc@0 {
|
||||
reg = <0>;
|
||||
compatible = "maxim,max1162";
|
||||
vref-supply = <&vref_max1162>;
|
||||
};
|
||||
|
||||
adc@1 {
|
||||
reg = <1>;
|
||||
compatible = "maxim,max1162";
|
||||
vref-supply = <&vref_max1162>;
|
||||
};
|
||||
};
|
|
@ -0,0 +1,143 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/adc/renesas,rcar-gyroadc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Renesas R-Car GyroADC
|
||||
|
||||
maintainers:
|
||||
- Marek Vasut <marek.vasut+renesas@gmail.com>
|
||||
|
||||
description: |
|
||||
The GyroADC block is a reduced SPI block with up to 8 chipselect lines,
|
||||
which supports the SPI protocol of a selected few SPI ADCs. The SPI ADCs
|
||||
are sampled by the GyroADC block in a round-robin fashion and the result
|
||||
presented in the GyroADC registers.
|
||||
The ADC bindings should match with that of the devices connected to a
|
||||
full featured SPI bus.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
items:
|
||||
- enum:
|
||||
- renesas,r8a7791-gyroadc
|
||||
- renesas,r8a7792-gyroadc
|
||||
- const: renesas,rcar-gyroadc
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
const: fck
|
||||
|
||||
power-domains: true
|
||||
|
||||
resets: true
|
||||
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
"#size-cells":
|
||||
const: 0
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
- clock-names
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
|
||||
patternProperties:
|
||||
"@[0-7]$":
|
||||
type: object
|
||||
properties:
|
||||
compatible:
|
||||
description: |
|
||||
fujitsu,mb88101a
|
||||
- Fujitsu MB88101A compatible mode,
|
||||
12bit sampling, up to 4 channels can be sampled in round-robin
|
||||
fashion. One Fujitsu chip supplies four GyroADC channels with
|
||||
data as it contains four ADCs on the chip and thus for 4-channel
|
||||
operation, single MB88101A is required. The Cx chipselect lines
|
||||
of the MB88101A connect directly to two CHS lines of the GyroADC,
|
||||
no demuxer is required. The data out line of each MB88101A
|
||||
connects to a shared input pin of the GyroADC.
|
||||
ti,adcs7476 or ti,adc121 or adi,ad7476
|
||||
- TI ADCS7476 / TI ADC121 / ADI AD7476 compatible mode, 15bit
|
||||
sampling, up to 8 channels can be sampled in round-robin
|
||||
fashion. One TI/ADI chip supplies single ADC channel with data,
|
||||
thus for 8-channel operation, 8 chips are required.
|
||||
A 3:8 chipselect demuxer is required to connect the nCS line
|
||||
of the TI/ADI chips to the GyroADC, while MISO line of each
|
||||
TI/ADI ADC connects to a shared input pin of the GyroADC.
|
||||
maxim,max1162 or maxim,max11100
|
||||
- Maxim MAX1162 / Maxim MAX11100 compatible mode, 16bit sampling,
|
||||
up to 8 channels can be sampled in round-robin fashion. One
|
||||
Maxim chip supplies single ADC channel with data, thus for
|
||||
8-channel operation, 8 chips are required.
|
||||
A 3:8 chipselect demuxer is required to connect the nCS line
|
||||
of the MAX chips to the GyroADC, while MISO line of each Maxim
|
||||
ADC connects to a shared input pin of the GyroADC.
|
||||
enum:
|
||||
- adi,7476
|
||||
- fujitsu,mb88101a
|
||||
- maxim,max1162
|
||||
- maxim,max11100
|
||||
- ti,adcs7476
|
||||
- ti,adc121
|
||||
|
||||
reg:
|
||||
minimum: 0
|
||||
maximum: 7
|
||||
|
||||
vref-supply: true
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- vref-supply
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/r8a7791-clock.h>
|
||||
#include <dt-bindings/power/r8a7791-sysc.h>
|
||||
soc {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
adc@e6e54000 {
|
||||
compatible = "renesas,r8a7791-gyroadc", "renesas,rcar-gyroadc";
|
||||
reg = <0 0xe6e54000 0 64>;
|
||||
clocks = <&mstp9_clks R8A7791_CLK_GYROADC>;
|
||||
clock-names = "fck";
|
||||
power-domains = <&sysc R8A7791_PD_ALWAYS_ON>;
|
||||
|
||||
pinctrl-0 = <&adc_pins>;
|
||||
pinctrl-names = "default";
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
adc@0 {
|
||||
reg = <0>;
|
||||
compatible = "maxim,max1162";
|
||||
vref-supply = <&vref_max1162>;
|
||||
};
|
||||
|
||||
adc@1 {
|
||||
reg = <1>;
|
||||
compatible = "maxim,max1162";
|
||||
vref-supply = <&vref_max1162>;
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
|
@ -49,8 +49,6 @@ properties:
|
|||
"#io-channel-cells":
|
||||
const: 1
|
||||
|
||||
io-channel-ranges: true
|
||||
|
||||
vdd-supply: true
|
||||
|
||||
samsung,syscon-phandle:
|
||||
|
@ -130,7 +128,6 @@ examples:
|
|||
reg = <0x12d10000 0x100>;
|
||||
interrupts = <0 106 0>;
|
||||
#io-channel-cells = <1>;
|
||||
io-channel-ranges;
|
||||
|
||||
clocks = <&clock 303>;
|
||||
clock-names = "adc";
|
||||
|
@ -156,7 +153,6 @@ examples:
|
|||
reg = <0x126C0000 0x100>;
|
||||
interrupts = <0 137 0>;
|
||||
#io-channel-cells = <1>;
|
||||
io-channel-ranges;
|
||||
|
||||
clocks = <&cmu CLK_TSADC>,
|
||||
<&cmu CLK_SCLK_TSADC>;
|
||||
|
|
|
@ -0,0 +1,58 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/adc/ti,adc084s021.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Texas Instruments ADC084S021 ADC
|
||||
|
||||
maintainers:
|
||||
- Mårten Lindahl <martenli@axis.com>
|
||||
|
||||
description: |
|
||||
8 bit ADC with 4 channels
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: ti,adc084s021
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
spi-max-frequency: true
|
||||
|
||||
vref-supply:
|
||||
description: External reference, needed to establish input scaling
|
||||
|
||||
spi-cpol: true
|
||||
spi-cpha: true
|
||||
|
||||
"#io-channel-cells":
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- vref-supply
|
||||
- spi-cpol
|
||||
- spi-cpha
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
adc@0 {
|
||||
compatible = "ti,adc084s021";
|
||||
reg = <0>;
|
||||
vref-supply = <&adc_vref>;
|
||||
spi-cpol;
|
||||
spi-cpha;
|
||||
spi-max-frequency = <16000000>;
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -0,0 +1,52 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/adc/ti,ads124s08.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Texas Instruments' ads124s08 and ads124s06 ADC chip
|
||||
|
||||
maintainers:
|
||||
- Dan Murphy <dmurphy@ti.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- ti,ads124s06
|
||||
- ti,ads124s08
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
spi-max-frequency: true
|
||||
|
||||
spi-cpha: true
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
|
||||
"#io-channel-cells":
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
adc@0 {
|
||||
compatible = "ti,ads124s08";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <1000000>;
|
||||
spi-cpha;
|
||||
reset-gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -0,0 +1,87 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/adc/ti,palmas-gpadc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Palmas general purpose ADC IP block devicetree bindings
|
||||
|
||||
maintainers:
|
||||
- Tony Lindgren <tony@atomide.com>
|
||||
|
||||
description: |
|
||||
This ADC is often used to provide channels via the io-channels
|
||||
consumer framework.
|
||||
Channels list:
|
||||
0 battery type
|
||||
1 battery temp NTC (optional current source)
|
||||
2 GP
|
||||
3 temp (with ext. diode, optional current source)
|
||||
4 GP
|
||||
5 GP
|
||||
6 VBAT_SENSE
|
||||
7 VCC_SENSE
|
||||
8 Backup Battery voltage
|
||||
9 external charger (VCHG)
|
||||
10 VBUS
|
||||
11 DC-DC current probe (how does this work?)
|
||||
12 internal die temp
|
||||
13 internal die temp
|
||||
14 USB ID pin voltage
|
||||
15 test network
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: ti,palmas-gpadc
|
||||
|
||||
interrupts:
|
||||
minItems: 1
|
||||
maxItems: 3
|
||||
|
||||
"#io-channel-cells":
|
||||
const: 1
|
||||
|
||||
ti,channel0-current-microamp:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Channel 0 current in uA.
|
||||
enum:
|
||||
- 0
|
||||
- 5
|
||||
- 15
|
||||
- 20
|
||||
|
||||
ti,channel3-current-microamp:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Channel 3 current in uA.
|
||||
enum:
|
||||
- 0
|
||||
- 10
|
||||
- 400
|
||||
- 800
|
||||
|
||||
ti,enable-extended-delay:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: Enable extended delay.
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- "#io-channel-cells"
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/mt8183-clk.h>
|
||||
pmic {
|
||||
compatible = "ti,twl6035-pmic", "ti,palmas-pmic";
|
||||
adc {
|
||||
compatible = "ti,palmas-gpadc";
|
||||
interrupts = <18 0
|
||||
16 0
|
||||
17 0>;
|
||||
#io-channel-cells = <1>;
|
||||
ti,channel0-current-microamp = <5>;
|
||||
ti,channel3-current-microamp = <10>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -1,19 +0,0 @@
|
|||
* Texas Instruments' ADC084S021
|
||||
|
||||
Required properties:
|
||||
- compatible : Must be "ti,adc084s021"
|
||||
- reg : SPI chip select number for the device
|
||||
- vref-supply : The regulator supply for ADC reference voltage
|
||||
- spi-cpol : Per spi-bus bindings
|
||||
- spi-cpha : Per spi-bus bindings
|
||||
- spi-max-frequency : Per spi-bus bindings
|
||||
|
||||
Example:
|
||||
adc@0 {
|
||||
compatible = "ti,adc084s021";
|
||||
reg = <0>;
|
||||
vref-supply = <&adc_vref>;
|
||||
spi-cpol;
|
||||
spi-cpha;
|
||||
spi-max-frequency = <16000000>;
|
||||
};
|
|
@ -1,25 +0,0 @@
|
|||
* Texas Instruments' ads124s08 and ads124s06 ADC chip
|
||||
|
||||
Required properties:
|
||||
- compatible :
|
||||
"ti,ads124s08"
|
||||
"ti,ads124s06"
|
||||
- reg : spi chip select number for the device
|
||||
|
||||
Recommended properties:
|
||||
- spi-max-frequency : Definition as per
|
||||
Documentation/devicetree/bindings/spi/spi-bus.txt
|
||||
- spi-cpha : Definition as per
|
||||
Documentation/devicetree/bindings/spi/spi-bus.txt
|
||||
|
||||
Optional properties:
|
||||
- reset-gpios : GPIO pin used to reset the device.
|
||||
|
||||
Example:
|
||||
adc@0 {
|
||||
compatible = "ti,ads124s08";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <1000000>;
|
||||
spi-cpha;
|
||||
reset-gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
|
||||
};
|
|
@ -0,0 +1,67 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/adc/x-powers,axp209-adc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: X-Powers AXP ADC bindings
|
||||
|
||||
maintainers:
|
||||
- Chen-Yu Tsai <wens@csie.org>
|
||||
|
||||
description: |
|
||||
ADC is frequently used as a provider to consumers of the ADC channels.
|
||||
Device is a child of an axp209 multifunction device
|
||||
ADC channels and their indexes per variant:
|
||||
|
||||
AXP209
|
||||
------
|
||||
0 | acin_v
|
||||
1 | acin_i
|
||||
2 | vbus_v
|
||||
3 | vbus_i
|
||||
4 | pmic_temp
|
||||
5 | gpio0_v
|
||||
6 | gpio1_v
|
||||
7 | ipsout_v
|
||||
8 | batt_v
|
||||
9 | batt_chrg_i
|
||||
10 | batt_dischrg_i
|
||||
|
||||
AXP22x
|
||||
------
|
||||
0 | pmic_temp
|
||||
1 | batt_v
|
||||
2 | batt_chrg_i
|
||||
3 | batt_dischrg_i
|
||||
|
||||
AXP813
|
||||
------
|
||||
0 | pmic_temp
|
||||
1 | gpio0_v
|
||||
2 | batt_v
|
||||
3 | batt_chrg_i
|
||||
4 | batt_dischrg_i
|
||||
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- x-powers,axp209-adc
|
||||
- x-powers,axp221-adc
|
||||
- x-powers,axp813-adc
|
||||
|
||||
"#io-channel-cells":
|
||||
const: 1
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
axp221 {
|
||||
adc {
|
||||
compatible = "x-powers,axp221-adc";
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -1,26 +0,0 @@
|
|||
Current Sense Amplifier
|
||||
=======================
|
||||
|
||||
When an io-channel measures the output voltage from a current sense
|
||||
amplifier, the interesting measurement is almost always the current
|
||||
through the sense resistor, not the voltage output. This binding
|
||||
describes such a current sense circuit.
|
||||
|
||||
Required properties:
|
||||
- compatible : "current-sense-amplifier"
|
||||
- io-channels : Channel node of a voltage io-channel.
|
||||
- sense-resistor-micro-ohms : The sense resistance in microohms.
|
||||
|
||||
Optional properties:
|
||||
- sense-gain-mult: Amplifier gain multiplier. The default is <1>.
|
||||
- sense-gain-div: Amplifier gain divider. The default is <1>.
|
||||
|
||||
Example:
|
||||
|
||||
sysi {
|
||||
compatible = "current-sense-amplifier";
|
||||
io-channels = <&tiadc 0>;
|
||||
|
||||
sense-resistor-micro-ohms = <20000>;
|
||||
sense-gain-mul = <50>;
|
||||
};
|
|
@ -0,0 +1,54 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/afe/current-sense-amplifier.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Current Sense Amplifier
|
||||
|
||||
maintainers:
|
||||
- Peter Rosin <peda@axentia.se>
|
||||
|
||||
description: |
|
||||
When an io-channel measures the output voltage from a current sense
|
||||
amplifier, the interesting measurement is almost always the current
|
||||
through the sense resistor, not the voltage output. This binding
|
||||
describes such a current sense circuit.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: current-sense-amplifier
|
||||
|
||||
io-channels:
|
||||
maxItems: 1
|
||||
description: |
|
||||
Channel node of a voltage io-channel.
|
||||
|
||||
sense-resistor-micro-ohms:
|
||||
description: The sense resistance.
|
||||
|
||||
sense-gain-mult:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Amplifier gain multiplier. The default is <1>.
|
||||
|
||||
sense-gain-div:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Amplifier gain divider. The default is <1>.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- io-channels
|
||||
- sense-resistor-micro-ohms
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
sysi {
|
||||
compatible = "current-sense-amplifier";
|
||||
io-channels = <&tiadc 0>;
|
||||
|
||||
sense-resistor-micro-ohms = <20000>;
|
||||
sense-gain-mult = <50>;
|
||||
};
|
||||
...
|
|
@ -1,41 +0,0 @@
|
|||
Current Sense Shunt
|
||||
===================
|
||||
|
||||
When an io-channel measures the voltage over a current sense shunt,
|
||||
the interesting measurement is almost always the current through the
|
||||
shunt, not the voltage over it. This binding describes such a current
|
||||
sense circuit.
|
||||
|
||||
Required properties:
|
||||
- compatible : "current-sense-shunt"
|
||||
- io-channels : Channel node of a voltage io-channel.
|
||||
- shunt-resistor-micro-ohms : The shunt resistance in microohms.
|
||||
|
||||
Example:
|
||||
The system current is measured by measuring the voltage over a
|
||||
3.3 ohms shunt resistor.
|
||||
|
||||
sysi {
|
||||
compatible = "current-sense-shunt";
|
||||
io-channels = <&tiadc 0>;
|
||||
|
||||
/* Divide the voltage by 3300000/1000000 (or 3.3) for the current. */
|
||||
shunt-resistor-micro-ohms = <3300000>;
|
||||
};
|
||||
|
||||
&i2c {
|
||||
tiadc: adc@48 {
|
||||
compatible = "ti,ads1015";
|
||||
reg = <0x48>;
|
||||
#io-channel-cells = <1>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
channel@0 { /* IN0,IN1 differential */
|
||||
reg = <0>;
|
||||
ti,gain = <1>;
|
||||
ti,datarate = <4>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -0,0 +1,64 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/afe/current-sense-shunt.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Current Sense Shunt
|
||||
|
||||
maintainers:
|
||||
- Peter Rosin <peda@axentia.se>
|
||||
|
||||
description: |
|
||||
When an io-channel measures the voltage over a current sense shunt,
|
||||
the interesting measurement is almost always the current through the
|
||||
shunt, not the voltage over it. This binding describes such a current
|
||||
sense circuit.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: current-sense-shunt
|
||||
|
||||
io-channels:
|
||||
maxItems: 1
|
||||
description: |
|
||||
Channel node of a voltage io-channel.
|
||||
|
||||
shunt-resistor-micro-ohms:
|
||||
description: The shunt resistance.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- io-channels
|
||||
- shunt-resistor-micro-ohms
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
tiadc: adc@48 {
|
||||
compatible = "ti,ads1015";
|
||||
reg = <0x48>;
|
||||
#io-channel-cells = <1>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
channel@0 { /* IN0,IN1 differential */
|
||||
reg = <0>;
|
||||
ti,gain = <1>;
|
||||
ti,datarate = <4>;
|
||||
};
|
||||
};
|
||||
};
|
||||
sysi {
|
||||
compatible = "current-sense-shunt";
|
||||
io-channels = <&tiadc 0>;
|
||||
|
||||
/* Divide the voltage by 3300000/1000000 (or 3.3) for the current. */
|
||||
shunt-resistor-micro-ohms = <3300000>;
|
||||
};
|
||||
...
|
|
@ -1,53 +0,0 @@
|
|||
Voltage divider
|
||||
===============
|
||||
|
||||
When an io-channel measures the midpoint of a voltage divider, the
|
||||
interesting voltage is often the voltage over the full resistance
|
||||
of the divider. This binding describes the voltage divider in such
|
||||
a curcuit.
|
||||
|
||||
Vin ----.
|
||||
|
|
||||
.-----.
|
||||
| R |
|
||||
'-----'
|
||||
|
|
||||
+---- Vout
|
||||
|
|
||||
.-----.
|
||||
| Rout|
|
||||
'-----'
|
||||
|
|
||||
GND
|
||||
|
||||
Required properties:
|
||||
- compatible : "voltage-divider"
|
||||
- io-channels : Channel node of a voltage io-channel measuring Vout.
|
||||
- output-ohms : Resistance Rout over which the output voltage is measured.
|
||||
See full-ohms.
|
||||
- full-ohms : Resistance R + Rout for the full divider. The io-channel
|
||||
is scaled by the Rout / (R + Rout) quotient.
|
||||
|
||||
Example:
|
||||
The system voltage is circa 12V, but divided down with a 22/222
|
||||
voltage divider (R = 200 Ohms, Rout = 22 Ohms) and fed to an ADC.
|
||||
|
||||
sysv {
|
||||
compatible = "voltage-divider";
|
||||
io-channels = <&maxadc 1>;
|
||||
|
||||
/* Scale the system voltage by 22/222 to fit the ADC range. */
|
||||
output-ohms = <22>;
|
||||
full-ohms = <222>; /* 200 + 22 */
|
||||
};
|
||||
|
||||
&spi {
|
||||
maxadc: adc@0 {
|
||||
compatible = "maxim,max1027";
|
||||
reg = <0>;
|
||||
#io-channel-cells = <1>;
|
||||
interrupt-parent = <&gpio5>;
|
||||
interrupts = <15 IRQ_TYPE_EDGE_RISING>;
|
||||
spi-max-frequency = <1000000>;
|
||||
};
|
||||
};
|
|
@ -0,0 +1,86 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/afe/voltage-divider.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Voltage divider
|
||||
|
||||
maintainers:
|
||||
- Peter Rosin <peda@axentia.se>
|
||||
|
||||
description: |
|
||||
When an io-channel measures the midpoint of a voltage divider, the
|
||||
interesting voltage is often the voltage over the full resistance
|
||||
of the divider. This binding describes the voltage divider in such
|
||||
a curcuit.
|
||||
|
||||
Vin ----.
|
||||
|
|
||||
.-----.
|
||||
| R |
|
||||
'-----'
|
||||
|
|
||||
+---- Vout
|
||||
|
|
||||
.-----.
|
||||
| Rout|
|
||||
'-----'
|
||||
|
|
||||
GND
|
||||
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: voltage-divider
|
||||
|
||||
io-channels:
|
||||
maxItems: 1
|
||||
description: |
|
||||
Channel node of a voltage io-channel.
|
||||
|
||||
output-ohms:
|
||||
description:
|
||||
Resistance Rout over which the output voltage is measured. See full-ohms.
|
||||
|
||||
full-ohms:
|
||||
description:
|
||||
Resistance R + Rout for the full divider. The io-channel is scaled by
|
||||
the Rout / (R + Rout) quotient.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- io-channels
|
||||
- output-ohms
|
||||
- full-ohms
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
/*
|
||||
* The system voltage is circa 12V, but divided down with a 22/222
|
||||
* voltage divider (R = 200 Ohms, Rout = 22 Ohms) and fed to an ADC.
|
||||
*/
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
maxadc: adc@0 {
|
||||
compatible = "maxim,max1027";
|
||||
reg = <0>;
|
||||
#io-channel-cells = <1>;
|
||||
interrupt-parent = <&gpio5>;
|
||||
interrupts = <15 IRQ_TYPE_EDGE_RISING>;
|
||||
spi-max-frequency = <1000000>;
|
||||
};
|
||||
};
|
||||
sysv {
|
||||
compatible = "voltage-divider";
|
||||
io-channels = <&maxadc 1>;
|
||||
|
||||
/* Scale the system voltage by 22/222 to fit the ADC range. */
|
||||
output-ohms = <22>;
|
||||
full-ohms = <222>; /* 200 + 22 */
|
||||
};
|
||||
...
|
|
@ -1,11 +0,0 @@
|
|||
Bosch Sensortec BME680 pressure/temperature/humidity/voc sensors
|
||||
|
||||
Required properties:
|
||||
- compatible: must be "bosch,bme680"
|
||||
|
||||
Example:
|
||||
|
||||
bme680@76 {
|
||||
compatible = "bosch,bme680";
|
||||
reg = <0x76>;
|
||||
};
|
|
@ -1,15 +0,0 @@
|
|||
* Sensirion SGP30/SGPC3 multi-pixel Gas Sensor
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: must be one of
|
||||
"sensirion,sgp30"
|
||||
"sensirion,sgpc3"
|
||||
- reg: the I2C address of the sensor
|
||||
|
||||
Example:
|
||||
|
||||
gas@58 {
|
||||
compatible = "sensirion,sgp30";
|
||||
reg = <0x58>;
|
||||
};
|
|
@ -1,155 +0,0 @@
|
|||
Analog Devices AD5592R/AD5593R DAC/ADC device driver
|
||||
|
||||
Required properties for the AD5592R:
|
||||
- compatible: Must be "adi,ad5592r"
|
||||
- reg: SPI chip select number for the device
|
||||
- spi-max-frequency: Max SPI frequency to use (< 30000000)
|
||||
- spi-cpol: The AD5592R requires inverse clock polarity (CPOL) mode
|
||||
|
||||
Required properties for the AD5593R:
|
||||
- compatible: Must be "adi,ad5593r"
|
||||
- reg: I2C address of the device
|
||||
|
||||
Required properties for all supported chips:
|
||||
- #address-cells: Should be 1.
|
||||
- #size-cells: Should be 0.
|
||||
- channel nodes:
|
||||
Each child node represents one channel and has the following
|
||||
Required properties:
|
||||
* reg: Pin on which this channel is connected to.
|
||||
* adi,mode: Mode or function of this channel.
|
||||
Macros specifying the valid values
|
||||
can be found in <dt-bindings/iio/adi,ad5592r.h>.
|
||||
|
||||
The following values are currently supported:
|
||||
* CH_MODE_UNUSED (the pin is unused)
|
||||
* CH_MODE_ADC (the pin is ADC input)
|
||||
* CH_MODE_DAC (the pin is DAC output)
|
||||
* CH_MODE_DAC_AND_ADC (the pin is DAC output
|
||||
but can be monitored by an ADC, since
|
||||
there is no disadvantage this
|
||||
this should be considered as the
|
||||
preferred DAC mode)
|
||||
* CH_MODE_GPIO (the pin is registered
|
||||
with GPIOLIB)
|
||||
Optional properties:
|
||||
* adi,off-state: State of this channel when unused or the
|
||||
device gets removed. Macros specifying the
|
||||
valid values can be found in
|
||||
<dt-bindings/iio/adi,ad5592r.h>.
|
||||
|
||||
* CH_OFFSTATE_PULLDOWN (the pin is pulled down)
|
||||
* CH_OFFSTATE_OUT_LOW (the pin is output low)
|
||||
* CH_OFFSTATE_OUT_HIGH (the pin is output high)
|
||||
* CH_OFFSTATE_OUT_TRISTATE (the pin is
|
||||
tristated output)
|
||||
|
||||
|
||||
Optional properties:
|
||||
- vref-supply: Phandle to the external reference voltage supply. This should
|
||||
only be set if there is an external reference voltage connected to the VREF
|
||||
pin. If the property is not set the internal 2.5V reference is used.
|
||||
- reset-gpios : GPIO spec for the RESET pin. If specified, it will be
|
||||
asserted during driver probe.
|
||||
- gpio-controller: Marks the device node as a GPIO controller.
|
||||
- #gpio-cells: Should be 2. The first cell is the GPIO number and the second
|
||||
cell specifies GPIO flags, as defined in <dt-bindings/gpio/gpio.h>.
|
||||
|
||||
AD5592R Example:
|
||||
|
||||
#include <dt-bindings/iio/adi,ad5592r.h>
|
||||
|
||||
vref: regulator-vref {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "vref-ad559x";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
ad5592r@0 {
|
||||
#size-cells = <0>;
|
||||
#address-cells = <1>;
|
||||
#gpio-cells = <2>;
|
||||
compatible = "adi,ad5592r";
|
||||
reg = <0>;
|
||||
|
||||
spi-max-frequency = <1000000>;
|
||||
spi-cpol;
|
||||
|
||||
vref-supply = <&vref>; /* optional */
|
||||
reset-gpios = <&gpio0 86 0>; /* optional */
|
||||
gpio-controller;
|
||||
|
||||
channel@0 {
|
||||
reg = <0>;
|
||||
adi,mode = <CH_MODE_DAC>;
|
||||
};
|
||||
channel@1 {
|
||||
reg = <1>;
|
||||
adi,mode = <CH_MODE_ADC>;
|
||||
};
|
||||
channel@2 {
|
||||
reg = <2>;
|
||||
adi,mode = <CH_MODE_DAC_AND_ADC>;
|
||||
};
|
||||
channel@3 {
|
||||
reg = <3>;
|
||||
adi,mode = <CH_MODE_DAC_AND_ADC>;
|
||||
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
||||
};
|
||||
channel@4 {
|
||||
reg = <4>;
|
||||
adi,mode = <CH_MODE_UNUSED>;
|
||||
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
||||
};
|
||||
channel@5 {
|
||||
reg = <5>;
|
||||
adi,mode = <CH_MODE_GPIO>;
|
||||
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
||||
};
|
||||
channel@6 {
|
||||
reg = <6>;
|
||||
adi,mode = <CH_MODE_GPIO>;
|
||||
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
||||
};
|
||||
channel@7 {
|
||||
reg = <7>;
|
||||
adi,mode = <CH_MODE_GPIO>;
|
||||
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
||||
};
|
||||
};
|
||||
|
||||
AD5593R Example:
|
||||
|
||||
#include <dt-bindings/iio/adi,ad5592r.h>
|
||||
|
||||
ad5593r@10 {
|
||||
#size-cells = <0>;
|
||||
#address-cells = <1>;
|
||||
#gpio-cells = <2>;
|
||||
compatible = "adi,ad5593r";
|
||||
reg = <0x10>;
|
||||
gpio-controller;
|
||||
|
||||
channel@0 {
|
||||
reg = <0>;
|
||||
adi,mode = <CH_MODE_DAC>;
|
||||
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
||||
};
|
||||
channel@1 {
|
||||
reg = <1>;
|
||||
adi,mode = <CH_MODE_ADC>;
|
||||
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
||||
};
|
||||
channel@2 {
|
||||
reg = <2>;
|
||||
adi,mode = <CH_MODE_DAC_AND_ADC>;
|
||||
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
||||
};
|
||||
channel@6 {
|
||||
reg = <6>;
|
||||
adi,mode = <CH_MODE_GPIO>;
|
||||
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
||||
};
|
||||
};
|
|
@ -1,83 +0,0 @@
|
|||
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>;
|
||||
};
|
|
@ -1,23 +0,0 @@
|
|||
Analog Devices AD7303 DAC device driver
|
||||
|
||||
Required properties:
|
||||
- compatible: Must be "adi,ad7303"
|
||||
- reg: SPI chip select number for the device
|
||||
- spi-max-frequency: Max SPI frequency to use (< 30000000)
|
||||
- Vdd-supply: Phandle to the Vdd power supply
|
||||
|
||||
Optional properties:
|
||||
- REF-supply: Phandle to the external reference voltage supply. This should
|
||||
only be set if there is an external reference voltage connected to the REF
|
||||
pin. If the property is not set Vdd/2 is used as the reference voltage.
|
||||
|
||||
Example:
|
||||
|
||||
ad7303@4 {
|
||||
compatible = "adi,ad7303";
|
||||
reg = <4>;
|
||||
spi-max-frequency = <10000000>;
|
||||
Vdd-supply = <&vdd_supply>;
|
||||
adi,use-external-reference;
|
||||
REF-supply = <&vref_supply>;
|
||||
};
|
|
@ -0,0 +1,204 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/dac/adi,ad5592r.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices AD5592R/AD5593R DAC/ADC
|
||||
|
||||
maintainers:
|
||||
- Michael Hennerich <michael.hennerich@analog.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- adi,ad5592r
|
||||
- adi,ad5593r
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
spi-max-frequency:
|
||||
maximum: 30000000
|
||||
|
||||
spi-cpol: true
|
||||
|
||||
"#address-cells":
|
||||
const: 1
|
||||
|
||||
"#size-cells":
|
||||
const: 0
|
||||
|
||||
"#io-channel-cells":
|
||||
const: 1
|
||||
|
||||
vref-supply:
|
||||
description: If not set internal 2.5V reference used.
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
|
||||
gpio-controller:
|
||||
description: Marks the device node as a GPIO controller.
|
||||
|
||||
"#gpio-cells":
|
||||
const: 2
|
||||
description:
|
||||
The first cell is the GPIO number and the second cell specifies
|
||||
GPIO flags, as defined in <dt-bindings/gpio/gpio.h>.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- "#address-cells"
|
||||
- "#size-cells"
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: adi,ad5592r
|
||||
then:
|
||||
required:
|
||||
- spi-cpol
|
||||
else:
|
||||
properties:
|
||||
spi-cpol: false
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
patternProperties:
|
||||
"^(channel@)[0-7]$":
|
||||
type: object
|
||||
description: Child node to describe a channel
|
||||
properties:
|
||||
reg:
|
||||
minimum: 0
|
||||
maximum: 7
|
||||
|
||||
adi,mode:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [0, 1, 2, 3, 8]
|
||||
description: |
|
||||
Mode or function of this channel.
|
||||
Macros specifying the valid values can be found in
|
||||
<dt-bindings/iio/adi,ad5592r.h>.
|
||||
|
||||
The following values are currently supported:
|
||||
* CH_MODE_UNUSED (the pin is unused)
|
||||
* CH_MODE_ADC (the pin is ADC input)
|
||||
* CH_MODE_DAC (the pin is DAC output)
|
||||
* CH_MODE_DAC_AND_ADC (the pin is DAC output but can be monitored
|
||||
by an ADC, since there is no disadvantage this should be
|
||||
considered as the preferred DAC mode)
|
||||
* CH_MODE_GPIO (the pin is registered with GPIOLIB)
|
||||
|
||||
adi,off-state:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [0, 1, 2, 3]
|
||||
description: |
|
||||
State of this channel when unused or the device gets removed.
|
||||
Macros specifying the valid values can be found in
|
||||
<dt-bindings/iio/adi,ad5592r.h>.
|
||||
* CH_OFFSTATE_PULLDOWN (the pin is pulled down)
|
||||
* CH_OFFSTATE_OUT_LOW (the pin is output low)
|
||||
* CH_OFFSTATE_OUT_HIGH (the pin is output high)
|
||||
* CH_OFFSTATE_OUT_TRISTATE (the pin is tristated output)
|
||||
|
||||
required:
|
||||
- reg
|
||||
- adi,mode
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/iio/adi,ad5592r.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
addac@0 {
|
||||
compatible = "adi,ad5592r";
|
||||
#size-cells = <0>;
|
||||
#address-cells = <1>;
|
||||
#gpio-cells = <2>;
|
||||
reg = <0>;
|
||||
|
||||
spi-max-frequency = <1000000>;
|
||||
spi-cpol;
|
||||
|
||||
vref-supply = <&vref>;
|
||||
reset-gpios = <&gpio0 86 0>;
|
||||
gpio-controller;
|
||||
|
||||
channel@0 {
|
||||
reg = <0>;
|
||||
adi,mode = <CH_MODE_DAC>;
|
||||
};
|
||||
channel@1 {
|
||||
reg = <1>;
|
||||
adi,mode = <CH_MODE_ADC>;
|
||||
};
|
||||
channel@2 {
|
||||
reg = <2>;
|
||||
adi,mode = <CH_MODE_DAC_AND_ADC>;
|
||||
};
|
||||
channel@3 {
|
||||
reg = <3>;
|
||||
adi,mode = <CH_MODE_DAC_AND_ADC>;
|
||||
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
||||
};
|
||||
channel@4 {
|
||||
reg = <4>;
|
||||
adi,mode = <CH_MODE_UNUSED>;
|
||||
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
||||
};
|
||||
channel@5 {
|
||||
reg = <5>;
|
||||
adi,mode = <CH_MODE_GPIO>;
|
||||
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
||||
};
|
||||
channel@6 {
|
||||
reg = <6>;
|
||||
adi,mode = <CH_MODE_GPIO>;
|
||||
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
||||
};
|
||||
channel@7 {
|
||||
reg = <7>;
|
||||
adi,mode = <CH_MODE_GPIO>;
|
||||
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
||||
};
|
||||
};
|
||||
ad5593r@10 {
|
||||
compatible = "adi,ad5593r";
|
||||
#size-cells = <0>;
|
||||
#address-cells = <1>;
|
||||
#gpio-cells = <2>;
|
||||
reg = <0x10>;
|
||||
gpio-controller;
|
||||
|
||||
channel@0 {
|
||||
reg = <0>;
|
||||
adi,mode = <CH_MODE_DAC>;
|
||||
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
||||
};
|
||||
channel@1 {
|
||||
reg = <1>;
|
||||
adi,mode = <CH_MODE_ADC>;
|
||||
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
||||
};
|
||||
channel@2 {
|
||||
reg = <2>;
|
||||
adi,mode = <CH_MODE_DAC_AND_ADC>;
|
||||
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
||||
};
|
||||
channel@6 {
|
||||
reg = <6>;
|
||||
adi,mode = <CH_MODE_GPIO>;
|
||||
adi,off-state = <CH_OFFSTATE_PULLDOWN>;
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
|
@ -0,0 +1,57 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/dac/adi,ad5686.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices AD5686 and similar multi-channel DACs
|
||||
|
||||
maintainers:
|
||||
- Michael Auchter <michael.auchter@ni.com>
|
||||
|
||||
description: |
|
||||
Binding for Analog Devices AD5686 and similar multi-channel DACs
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- adi,ad5311r
|
||||
- adi,ad5338r
|
||||
- adi,ad5671r
|
||||
- adi,ad5675r
|
||||
- adi,ad5691r
|
||||
- adi,ad5692r
|
||||
- adi,ad5693
|
||||
- adi,ad5693r
|
||||
- adi,ad5694
|
||||
- adi,ad5694r
|
||||
- adi,ad5695r
|
||||
- adi,ad5696
|
||||
- adi,ad5696r
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
vcc-supply:
|
||||
description: |
|
||||
The regulator supply for DAC reference voltage.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
ad5686: dac@0 {
|
||||
compatible = "adi,ad5686";
|
||||
reg = <0>;
|
||||
vcc-supply = <&dac_vref>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -0,0 +1,129 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/dac/adi,ad5758.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices AD5758 DAC
|
||||
|
||||
maintainers:
|
||||
- Michael Hennerich <Michael.Hennerich@analog.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: adi,ad5758
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
spi-max-frequency: true
|
||||
spi-cpha: true
|
||||
|
||||
adi,dc-dc-mode:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [1, 2, 3]
|
||||
description: |
|
||||
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:
|
||||
$ref: /schemas/types.yaml#/definitions/int32-array
|
||||
description: |
|
||||
Voltage output range specified as <minimum, maximum>
|
||||
enum:
|
||||
- [[0, 5000000]]
|
||||
- [[0, 10000000]]
|
||||
- [[-5000000, 5000000]]
|
||||
- [[-10000000, 10000000]]
|
||||
|
||||
adi,range-microamp:
|
||||
$ref: /schemas/types.yaml#/definitions/int32-array
|
||||
description: |
|
||||
Current output range specified as <minimum, maximum>
|
||||
enum:
|
||||
- [[0, 20000]]
|
||||
- [[0, 24000]]
|
||||
- [[4, 24000]]
|
||||
- [[-20000, 20000]]
|
||||
- [[-24000, 24000]]
|
||||
- [[-1000, 22000]]
|
||||
|
||||
reset-gpios: true
|
||||
|
||||
adi,dc-dc-ilim-microamp:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [150000, 200000, 250000, 300000, 350000, 400000]
|
||||
description: |
|
||||
The dc-to-dc converter current limit.
|
||||
|
||||
adi,slew-time-us:
|
||||
description: |
|
||||
The time it takes for the output to reach the full scale [uS]
|
||||
minimum: 133
|
||||
maximum: 1023984375
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- spi-cpha
|
||||
- adi,dc-dc-mode
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
adi,dc-dc-mode:
|
||||
contains:
|
||||
enum: [1, 3]
|
||||
then:
|
||||
properties:
|
||||
adi,range-microvolt: false
|
||||
required:
|
||||
- adi,range-microamp
|
||||
else:
|
||||
properties:
|
||||
adi,range-microamp: false
|
||||
required:
|
||||
- adi,range-microvolt
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
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>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -0,0 +1,50 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/dac/adi,ad7303.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices AD7303 DAC
|
||||
|
||||
maintainers:
|
||||
- Lars-Peter Clausen <lars@metafoo.de>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: adi,ad7303
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
Vdd-supply:
|
||||
description:
|
||||
Used to calculate output channel scalling if REF-supply not specified.
|
||||
REF-supply:
|
||||
description:
|
||||
If not provided, Vdd/2 is used as the reference voltage.
|
||||
|
||||
spi-max-frequency:
|
||||
maximum: 30000000
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- Vdd-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
dac@4 {
|
||||
compatible = "adi,ad7303";
|
||||
reg = <4>;
|
||||
spi-max-frequency = <10000000>;
|
||||
Vdd-supply = <&vdd_supply>;
|
||||
REF-supply = <&vref_supply>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -1,41 +0,0 @@
|
|||
Bindings for DAC emulation using a digital potentiometer
|
||||
|
||||
It is assumed that the dpot is used as a voltage divider between the
|
||||
current dpot wiper setting and the maximum resistance of the dpot. The
|
||||
divided voltage is provided by a vref regulator.
|
||||
|
||||
.------.
|
||||
.-----------. | |
|
||||
| vref |--' .---.
|
||||
| regulator |--. | |
|
||||
'-----------' | | d |
|
||||
| | p |
|
||||
| | o | wiper
|
||||
| | t |<---------+
|
||||
| | |
|
||||
| '---' dac output voltage
|
||||
| |
|
||||
'------+------------+
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "dpot-dac"
|
||||
- vref-supply: The regulator supplying the voltage divider.
|
||||
- io-channels: Channel node of the dpot to be used for the voltage division.
|
||||
- io-channel-names: Should be "dpot".
|
||||
|
||||
Example:
|
||||
|
||||
&i2c {
|
||||
dpot: mcp4651-503@28 {
|
||||
compatible = "microchip,mcp4651-503";
|
||||
reg = <0x28>;
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
||||
dac {
|
||||
compatible = "dpot-dac";
|
||||
vref-supply = <®_3v3>;
|
||||
io-channels = <&dpot 0>;
|
||||
io-channel-names = "dpot";
|
||||
};
|
|
@ -0,0 +1,64 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/dac/dpot-dac.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: DAC emulation using a digital potentiometer
|
||||
|
||||
maintainers:
|
||||
- Peter Rosin <peda@axentia.se>
|
||||
|
||||
description: |
|
||||
It is assumed that the dpot is used as a voltage divider between the
|
||||
current dpot wiper setting and the maximum resistance of the dpot. The
|
||||
divided voltage is provided by a vref regulator.
|
||||
|
||||
.------.
|
||||
.-----------. | |
|
||||
| vref |--' .---.
|
||||
| regulator |--. | |
|
||||
'-----------' | | d |
|
||||
| | p |
|
||||
| | o | wiper
|
||||
| | t |<---------+
|
||||
| | |
|
||||
| '---' dac output voltage
|
||||
| |
|
||||
'------+------------+
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: dpot-dac
|
||||
|
||||
vref-supply:
|
||||
description: Regulator supplying the voltage divider.
|
||||
|
||||
io-channels:
|
||||
maxItems: 1
|
||||
description: |
|
||||
Channel node of the dpot to be used for the voltage division.
|
||||
|
||||
io-channel-names:
|
||||
const: dpot
|
||||
|
||||
"#io-channel-cells":
|
||||
const: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- vref-supply
|
||||
- io-channels
|
||||
- io-channel-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
dac {
|
||||
compatible = "dpot-dac";
|
||||
vref-supply = <®_3v3>;
|
||||
io-channels = <&dpot 0>;
|
||||
io-channel-names = "dpot";
|
||||
};
|
||||
...
|
|
@ -1,20 +0,0 @@
|
|||
Maxim Integrated DS4422/DS4424 7-bit Sink/Source Current DAC Device Driver
|
||||
|
||||
Datasheet publicly available at:
|
||||
https://datasheets.maximintegrated.com/en/ds/DS4422-DS4424.pdf
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be one of
|
||||
maxim,ds4422
|
||||
maxim,ds4424
|
||||
- reg: Should contain the DAC I2C address
|
||||
|
||||
Optional properties:
|
||||
- vcc-supply: Power supply is optional. If not defined, driver will ignore it.
|
||||
|
||||
Example:
|
||||
ds4224@10 {
|
||||
compatible = "maxim,ds4424";
|
||||
reg = <0x10>; /* When A0, A1 pins are ground */
|
||||
vcc-supply = <&vcc_3v3>;
|
||||
};
|
|
@ -0,0 +1,55 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/dac/fsl,vf610-dac.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Freescale vf610 Digital to Analog Converter
|
||||
|
||||
maintainers:
|
||||
- Sanchayan Maity <maitysanchayan@gmail.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: fsl,vf610-dac
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
clock-names:
|
||||
const: dac
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- clock-names
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
#include <dt-bindings/clock/vf610-clock.h>
|
||||
bus@40000000 {
|
||||
compatible = "fsl,aips-bus", "simple-bus";
|
||||
reg = <0x40000000 0x00070000>;
|
||||
ranges;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
dac@400cc000 {
|
||||
compatible = "fsl,vf610-dac";
|
||||
reg = <0x400cc000 0x1000>;
|
||||
interrupts = <55 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clock-names = "dac";
|
||||
clocks = <&clks VF610_CLK_DAC0>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -1,19 +0,0 @@
|
|||
NXP LPC1850 DAC bindings
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "nxp,lpc1850-dac"
|
||||
- reg: Offset and length of the register set for the ADC device
|
||||
- interrupts: The interrupt number for the ADC device
|
||||
- clocks: The root clock of the ADC controller
|
||||
- vref-supply: The regulator supply ADC reference voltage
|
||||
- resets: phandle to reset controller and line specifier
|
||||
|
||||
Example:
|
||||
dac: dac@400e1000 {
|
||||
compatible = "nxp,lpc1850-dac";
|
||||
reg = <0x400e1000 0x1000>;
|
||||
interrupts = <0>;
|
||||
clocks = <&ccu1 CLK_APB3_DAC>;
|
||||
vref-supply = <®_vdda>;
|
||||
resets = <&rgu 42>;
|
||||
};
|
|
@ -1,14 +0,0 @@
|
|||
Maxim max5821 DAC device driver
|
||||
|
||||
Required properties:
|
||||
- compatible: Must be "maxim,max5821"
|
||||
- reg: Should contain the DAC I2C address
|
||||
- vref-supply: Phandle to the vref power supply
|
||||
|
||||
Example:
|
||||
|
||||
max5821@38 {
|
||||
compatible = "maxim,max5821";
|
||||
reg = <0x38>;
|
||||
vref-supply = <®_max5821>;
|
||||
};
|
|
@ -0,0 +1,45 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/dac/maxim,ds4424.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Maxim Integrated DS4422/DS4424 7-bit Sink/Source Current DAC
|
||||
|
||||
maintainers:
|
||||
- Ismail Kose <ihkose@gmail.com>
|
||||
|
||||
description: |
|
||||
Datasheet publicly available at:
|
||||
https://datasheets.maximintegrated.com/en/ds/DS4422-DS4424.pdf
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- maxim,ds4422
|
||||
- maxim,ds4424
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
vcc-supply: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
dac@10 {
|
||||
compatible = "maxim,ds4424";
|
||||
reg = <0x10>; /* When A0, A1 pins are ground */
|
||||
vcc-supply = <&vcc_3v3>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -0,0 +1,44 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/dac/maxim,max5821.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Maxim max5821 dual 10-bit DAC
|
||||
|
||||
maintainers:
|
||||
- Philippe Reynes <tremyfr@yahoo.fr>
|
||||
|
||||
description: |
|
||||
Datasheet publicly available at:
|
||||
https://datasheets.maximintegrated.com/en/ds/MAX5821.pdf
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max5821
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
vref-supply: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- vref-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
dac@38 {
|
||||
compatible = "maxim,max5821";
|
||||
reg = <0x38>;
|
||||
vref-supply = <®_max5821>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -1,35 +0,0 @@
|
|||
Microchip mcp4725 and mcp4726 DAC device driver
|
||||
|
||||
Required properties:
|
||||
- compatible: Must be "microchip,mcp4725" or "microchip,mcp4726"
|
||||
- reg: Should contain the DAC I2C address
|
||||
- vdd-supply: Phandle to the Vdd power supply. This supply is used as a
|
||||
voltage reference on mcp4725. It is used as a voltage reference on
|
||||
mcp4726 if there is no vref-supply specified.
|
||||
|
||||
Optional properties (valid only for mcp4726):
|
||||
- vref-supply: Optional phandle to the Vref power supply. Vref pin is
|
||||
used as a voltage reference when this supply is specified.
|
||||
- microchip,vref-buffered: Boolean to enable buffering of the external
|
||||
Vref pin. This boolean is not valid without the vref-supply. Quoting
|
||||
the datasheet: This is offered in cases where the reference voltage
|
||||
does not have the current capability not to drop its voltage when
|
||||
connected to the internal resistor ladder circuit.
|
||||
|
||||
Examples:
|
||||
|
||||
/* simple mcp4725 */
|
||||
mcp4725@60 {
|
||||
compatible = "microchip,mcp4725";
|
||||
reg = <0x60>;
|
||||
vdd-supply = <&vdac_vdd>;
|
||||
};
|
||||
|
||||
/* mcp4726 with the buffered external reference voltage */
|
||||
mcp4726@60 {
|
||||
compatible = "microchip,mcp4726";
|
||||
reg = <0x60>;
|
||||
vdd-supply = <&vdac_vdd>;
|
||||
vref-supply = <&vdac_vref>;
|
||||
microchip,vref-buffered;
|
||||
};
|
|
@ -0,0 +1,71 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/dac/microchip,mcp4725.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Microchip mcp4725 and mcp4726 DAC
|
||||
|
||||
maintainers:
|
||||
- Tomas Novotny <tomas@novotny.cz>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- microchip,mcp4725
|
||||
- microchip,mcp4726
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
vdd-supply:
|
||||
description: |
|
||||
Provides both power and acts as the reference supply on the mcp4725.
|
||||
For the mcp4726 it will be used as the reference voltage if vref-supply
|
||||
is not provided.
|
||||
|
||||
vref-supply:
|
||||
description:
|
||||
Vref pin is used as a voltage reference when this supply is specified.
|
||||
|
||||
microchip,vref-buffered:
|
||||
type: boolean
|
||||
description: |
|
||||
Enable buffering of the external Vref pin. This boolean is not valid
|
||||
without the vref-supply. Quoting the datasheet: This is offered in
|
||||
cases where the reference voltage does not have the current
|
||||
capability not to drop its voltage when connected to the internal
|
||||
resistor ladder circuit.
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
not:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: microchip,mcp4726
|
||||
then:
|
||||
properties:
|
||||
vref-supply: false
|
||||
microchip,vref-buffered: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- vdd-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
mcp4725@60 {
|
||||
compatible = "microchip,mcp4725";
|
||||
reg = <0x60>;
|
||||
vdd-supply = <&vdac_vdd>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -0,0 +1,58 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/dac/nxp,lpc1850-dac.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: NXP LPC1850 DAC bindings
|
||||
|
||||
maintainers:
|
||||
- Jonathan Cameron <jic23@kernel.org>
|
||||
|
||||
description:
|
||||
Supports the DAC found on the LPC1850 SoC.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: nxp,lpc1850-dac
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
|
||||
vref-supply: true
|
||||
|
||||
resets:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
- clocks
|
||||
- vref-supply
|
||||
- resets
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/lpc18xx-ccu.h>
|
||||
soc {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
dac: dac@400e1000 {
|
||||
compatible = "nxp,lpc1850-dac";
|
||||
reg = <0x400e1000 0x1000>;
|
||||
interrupts = <0>;
|
||||
clocks = <&ccu1 CLK_APB3_DAC>;
|
||||
vref-supply = <®_vdda>;
|
||||
resets = <&rgu 42>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -1,24 +0,0 @@
|
|||
* Texas Instruments DAC5571 Family
|
||||
|
||||
Required properties:
|
||||
- compatible: Should contain
|
||||
"ti,dac5571"
|
||||
"ti,dac6571"
|
||||
"ti,dac7571"
|
||||
"ti,dac5574"
|
||||
"ti,dac6574"
|
||||
"ti,dac7574"
|
||||
"ti,dac5573"
|
||||
"ti,dac6573"
|
||||
"ti,dac7573"
|
||||
- reg: Should contain the DAC I2C address
|
||||
|
||||
Optional properties:
|
||||
- vref-supply: The regulator supply for DAC reference voltage
|
||||
|
||||
Example:
|
||||
dac@0 {
|
||||
compatible = "ti,dac5571";
|
||||
reg = <0x4C>;
|
||||
vref-supply = <&vdd_supply>;
|
||||
};
|
|
@ -0,0 +1,52 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/dac/ti,dac5571.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Texas Instruments DAC5571 Family
|
||||
|
||||
maintainers:
|
||||
- Sean Nyekjaer <sean@geanix.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- ti,dac5571
|
||||
- ti,dac6571
|
||||
- ti,dac7571
|
||||
- ti,dac5574
|
||||
- ti,dac6574
|
||||
- ti,dac7574
|
||||
- ti,dac5573
|
||||
- ti,dac6573
|
||||
- ti,dac7573
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
vref-supply:
|
||||
description:
|
||||
Reference voltage must be supplied to establish the scaling of the
|
||||
output voltage.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- vref-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
dac@4c {
|
||||
compatible = "ti,dac5571";
|
||||
reg = <0x4C>;
|
||||
vref-supply = <&vdd_supply>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -1,23 +0,0 @@
|
|||
TI DAC7311 device tree bindings
|
||||
|
||||
Required properties:
|
||||
- compatible: must be set to:
|
||||
* "ti,dac7311"
|
||||
* "ti,dac6311"
|
||||
* "ti,dac5311"
|
||||
- reg: spi chip select number for the device
|
||||
- vref-supply: The regulator supply for ADC reference voltage
|
||||
|
||||
Optional properties:
|
||||
- spi-max-frequency: Max SPI frequency to use
|
||||
|
||||
Example:
|
||||
|
||||
spi_master {
|
||||
dac@0 {
|
||||
compatible = "ti,dac7311";
|
||||
reg = <0>; /* CS0 */
|
||||
spi-max-frequency = <1000000>;
|
||||
vref-supply = <&vdd_supply>;
|
||||
};
|
||||
};
|
|
@ -0,0 +1,49 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/dac/ti,dac7311.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Texas Instruments DAC5311 and similar SPI DACs
|
||||
|
||||
maintainers:
|
||||
- Charles-Antoine Couret <charles-antoine.couret@essensium.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- ti,dac7311
|
||||
- ti,dac6311
|
||||
- ti,dac5311
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
vref-supply:
|
||||
description:
|
||||
Reference voltage must be supplied to establish the scaling of the
|
||||
output voltage.
|
||||
|
||||
spi-max-frequency: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- vref-supply
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
dac@0 {
|
||||
compatible = "ti,dac7311";
|
||||
reg = <0>; /* CS0 */
|
||||
spi-max-frequency = <1000000>;
|
||||
vref-supply = <&vdd_supply>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -1,20 +0,0 @@
|
|||
TI DAC7512 DEVICETREE BINDINGS
|
||||
|
||||
Required properties:
|
||||
|
||||
- "compatible" Must be set to "ti,dac7512"
|
||||
|
||||
Property rules described in Documentation/devicetree/bindings/spi/spi-bus.txt
|
||||
apply. In particular, "reg" and "spi-max-frequency" properties must be given.
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
spi_master {
|
||||
dac7512: dac7512@0 {
|
||||
compatible = "ti,dac7512";
|
||||
reg = <0>; /* CS0 */
|
||||
spi-max-frequency = <1000000>;
|
||||
};
|
||||
};
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/dac/ti,dac7512.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Texas Instruments DAC7512 DAC
|
||||
|
||||
maintainers:
|
||||
- Jonathan Cameron <jic23@kernel.org>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: ti,dac7512
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
spi-max-frequency:
|
||||
description:
|
||||
Maximum frequency is reduced for supply voltage of less than 3.6V
|
||||
maximum: 30000000
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
dac@0 {
|
||||
compatible = "ti,dac7512";
|
||||
reg = <0>; /* CS0 */
|
||||
spi-max-frequency = <1000000>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -1,28 +0,0 @@
|
|||
* Texas Instruments Dual, 12-Bit Serial Input Digital-to-Analog Converter
|
||||
|
||||
The DAC7612 is a dual, 12-bit digital-to-analog converter (DAC) with guaranteed
|
||||
12-bit monotonicity performance over the industrial temperature range.
|
||||
Is is programmable through an SPI interface.
|
||||
|
||||
The internal DACs are loaded when the LOADDACS pin is pulled down.
|
||||
|
||||
https://www.ti.com/lit/ds/sbas106/sbas106.pdf
|
||||
|
||||
Required Properties:
|
||||
- compatible: Should be one of:
|
||||
"ti,dac7612"
|
||||
"ti,dac7612u"
|
||||
"ti,dac7612ub"
|
||||
- reg: Definition as per Documentation/devicetree/bindings/spi/spi-bus.txt
|
||||
|
||||
Optional Properties:
|
||||
- ti,loaddacs-gpios: GPIO descriptor for the LOADDACS pin.
|
||||
- spi-*: Definition as per Documentation/devicetree/bindings/spi/spi-bus.txt
|
||||
|
||||
Example:
|
||||
|
||||
dac@1 {
|
||||
compatible = "ti,dac7612";
|
||||
reg = <0x1>;
|
||||
ti,loaddacs-gpios = <&msmgpio 25 GPIO_ACTIVE_LOW>;
|
||||
};
|
|
@ -0,0 +1,53 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/dac/ti,dac7612.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Texas Instruments DAC7612 family of DACs
|
||||
|
||||
description:
|
||||
The DAC7612 is a dual, 12-bit digital-to-analog converter (DAC) with
|
||||
guaranteed 12-bit monotonicity performance over the industrial temperature
|
||||
range. Is is programmable through an SPI interface.
|
||||
|
||||
maintainers:
|
||||
- Ricardo Ribalda Delgado <ricardo@ribalda.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- ti,dac7612
|
||||
- ti,dac7612u
|
||||
- ti,dac7612ub
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
ti,loaddacs-gpios:
|
||||
description:
|
||||
DACs are loaded when the pin connected to this GPIO is pulled low.
|
||||
maxItems: 1
|
||||
|
||||
spi-max-frequency: true
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
dac@1 {
|
||||
compatible = "ti,dac7612";
|
||||
reg = <0x1>;
|
||||
ti,loaddacs-gpios = <&msmgpio 25 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -1,20 +0,0 @@
|
|||
Freescale vf610 Digital to Analog Converter bindings
|
||||
|
||||
The devicetree bindings are for the new DAC driver written for
|
||||
vf610 SoCs from Freescale.
|
||||
|
||||
Required properties:
|
||||
- compatible: Should contain "fsl,vf610-dac"
|
||||
- reg: Offset and length of the register set for the device
|
||||
- interrupts: Should contain the interrupt for the device
|
||||
- clocks: The clock is needed by the DAC controller
|
||||
- clock-names: Must contain "dac" matching entry in the clocks property.
|
||||
|
||||
Example:
|
||||
dac0: dac@400cc000 {
|
||||
compatible = "fsl,vf610-dac";
|
||||
reg = <0x400cc000 0x1000>;
|
||||
interrupts = <55 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clock-names = "dac";
|
||||
clocks = <&clks VF610_CLK_DAC0>;
|
||||
};
|
|
@ -1,86 +0,0 @@
|
|||
Analog Devices ADF4350/ADF4351 device driver
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be one of
|
||||
* "adi,adf4350": When using the ADF4350 device
|
||||
* "adi,adf4351": When using the ADF4351 device
|
||||
- reg: SPI chip select numbert for the device
|
||||
- spi-max-frequency: Max SPI frequency to use (< 20000000)
|
||||
- clocks: From common clock binding. Clock is phandle to clock for
|
||||
ADF435x Reference Clock (CLKIN).
|
||||
|
||||
Optional properties:
|
||||
- gpios: GPIO Lock detect - If set with a valid phandle and GPIO number,
|
||||
pll lock state is tested upon read.
|
||||
- adi,channel-spacing: Channel spacing in Hz (influences MODULUS).
|
||||
- adi,power-up-frequency: If set in Hz the PLL tunes to
|
||||
the desired frequency on probe.
|
||||
- adi,reference-div-factor: If set the driver skips dynamic calculation
|
||||
and uses this default value instead.
|
||||
- adi,reference-doubler-enable: Enables reference doubler.
|
||||
- adi,reference-div2-enable: Enables reference divider.
|
||||
- adi,phase-detector-polarity-positive-enable: Enables positive phase
|
||||
detector polarity. Default = negative.
|
||||
- adi,lock-detect-precision-6ns-enable: Enables 6ns lock detect precision.
|
||||
Default = 10ns.
|
||||
- adi,lock-detect-function-integer-n-enable: Enables lock detect
|
||||
for integer-N mode. Default = factional-N mode.
|
||||
- adi,charge-pump-current: Charge pump current in mA.
|
||||
Default = 2500mA.
|
||||
- adi,muxout-select: On chip multiplexer output selection.
|
||||
Valid values for the multiplexer output are:
|
||||
0: Three-State Output (default)
|
||||
1: DVDD
|
||||
2: DGND
|
||||
3: R-Counter output
|
||||
4: N-Divider output
|
||||
5: Analog lock detect
|
||||
6: Digital lock detect
|
||||
- adi,low-spur-mode-enable: Enables low spur mode.
|
||||
Default = Low noise mode.
|
||||
- adi,cycle-slip-reduction-enable: Enables cycle slip reduction.
|
||||
- adi,charge-cancellation-enable: Enabled charge pump
|
||||
charge cancellation for integer-N modes.
|
||||
- adi,anti-backlash-3ns-enable: Enables 3ns antibacklash pulse width
|
||||
for integer-N modes.
|
||||
- adi,band-select-clock-mode-high-enable: Enables faster band
|
||||
selection logic.
|
||||
- adi,12bit-clk-divider: Clock divider value used when
|
||||
adi,12bit-clkdiv-mode != 0
|
||||
- adi,clk-divider-mode:
|
||||
Valid values for the clkdiv mode are:
|
||||
0: Clock divider off (default)
|
||||
1: Fast lock enable
|
||||
2: Phase resync enable
|
||||
- adi,aux-output-enable: Enables auxiliary RF output.
|
||||
- adi,aux-output-fundamental-enable: Selects fundamental VCO output on
|
||||
the auxiliary RF output. Default = Output of RF dividers.
|
||||
- adi,mute-till-lock-enable: Enables Mute-Till-Lock-Detect function.
|
||||
- adi,output-power: Output power selection.
|
||||
Valid values for the power mode are:
|
||||
0: -4dBm (default)
|
||||
1: -1dBm
|
||||
2: +2dBm
|
||||
3: +5dBm
|
||||
- adi,aux-output-power: Auxiliary output power selection.
|
||||
Valid values for the power mode are:
|
||||
0: -4dBm (default)
|
||||
1: -1dBm
|
||||
2: +2dBm
|
||||
3: +5dBm
|
||||
|
||||
|
||||
Example:
|
||||
lo_pll0_rx_adf4351: adf4351-rx-lpc@4 {
|
||||
compatible = "adi,adf4351";
|
||||
reg = <4>;
|
||||
spi-max-frequency = <10000000>;
|
||||
clocks = <&clk0_ad9523 9>;
|
||||
clock-names = "clkin";
|
||||
adi,channel-spacing = <10000>;
|
||||
adi,power-up-frequency = <2400000000>;
|
||||
adi,phase-detector-polarity-positive-enable;
|
||||
adi,charge-pump-current = <2500>;
|
||||
adi,output-power = <3>;
|
||||
adi,mute-till-lock-enable;
|
||||
};
|
|
@ -0,0 +1,190 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/frequency/adi,adf4350.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices ADF4350/ADF4351 wideband synthesizer
|
||||
|
||||
maintainers:
|
||||
- Michael Hennerich <michael.hennerich@analog.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- adi,adf4350
|
||||
- adi,adf4351
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
spi-max-frequency:
|
||||
maximum: 20000000
|
||||
|
||||
clocks:
|
||||
maxItems: 1
|
||||
description: Clock to provide CLKIN reference clock signal.
|
||||
|
||||
clock-names:
|
||||
const: clkin
|
||||
|
||||
gpios:
|
||||
maxItems: 1
|
||||
description: Lock detect GPIO.
|
||||
|
||||
adi,channel-spacing:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
Channel spacing in Hz (influences MODULUS).
|
||||
|
||||
adi,power-up-frequency:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
If set the PLL tunes to this frequency (in Hz) on driver probe.
|
||||
|
||||
adi,reference-div-factor:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
If set the driver skips dynamic calculation and uses this default
|
||||
value instead.
|
||||
|
||||
adi,reference-doubler-enable:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: Enables reference doubler.
|
||||
|
||||
adi,reference-div2-enable:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: Enables reference divider.
|
||||
|
||||
adi,phase-detector-polarity-positive-enable:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: Enables positive phase detector polarity. Default negative.
|
||||
|
||||
adi,lock-detect-precision-6ns-enable:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: Enables 6ns lock detect precision. Default = 10ns.
|
||||
|
||||
adi,lock-detect-function-integer-n-enable:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description:
|
||||
Enables lock detect for integer-N mode. Default = factional-N mode.
|
||||
|
||||
adi,charge-pump-current:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description: Charge pump current in mA. Default = 2500mA.
|
||||
|
||||
adi,muxout-select:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
minimum: 0
|
||||
maximum: 6
|
||||
description: |
|
||||
On chip multiplexer output selection.
|
||||
Valid values for the multiplexer output are:
|
||||
0: Three-State Output (default)
|
||||
1: DVDD
|
||||
2: DGND
|
||||
3: R-Counter output
|
||||
4: N-Divider output
|
||||
5: Analog lock detect
|
||||
6: Digital lock detect
|
||||
|
||||
adi,low-spur-mode-enable:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: Enables low spur mode. Default = Low noise mode.
|
||||
|
||||
adi,cycle-slip-reduction-enable:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: Enables cycle slip reduction.
|
||||
|
||||
adi,charge-cancellation-enable:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description:
|
||||
Enabled charge pump charge cancellation for integer-N modes.
|
||||
|
||||
adi,anti-backlash-3ns-enable:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description:
|
||||
Enables 3ns antibacklash pulse width for integer-N modes.
|
||||
|
||||
adi,band-select-clock-mode-high-enable:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: Enables faster band selection logic.
|
||||
|
||||
adi,12bit-clk-divider:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
description:
|
||||
Clock divider value used when adi,12bit-clkdiv-mode != 0
|
||||
|
||||
adi,clk-divider-mode:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [0, 1, 2]
|
||||
description: |
|
||||
Valid values for the clkdiv mode are:
|
||||
0: Clock divider off (default)
|
||||
1: Fast lock enable
|
||||
2: Phase resync enable
|
||||
|
||||
adi,aux-output-enable:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: Enables auxiliary RF output.
|
||||
|
||||
adi,aux-output-fundamental-enable:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: |
|
||||
Selects fundamental VCO output on the auxiliary RF output.
|
||||
Default = Output of RF dividers.
|
||||
|
||||
adi,mute-till-lock-enable:
|
||||
$ref: /schemas/types.yaml#/definitions/flag
|
||||
description: Enables Mute-Till-Lock-Detect function.
|
||||
|
||||
adi,output-power:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [0, 1, 2, 3]
|
||||
description: |
|
||||
Output power selection.
|
||||
Valid values for the power mode are:
|
||||
0: -4dBm (default)
|
||||
1: -1dBm
|
||||
2: +2dBm
|
||||
3: +5dBm
|
||||
|
||||
adi,aux-output-power:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32
|
||||
enum: [0, 1, 2, 3]
|
||||
description: |
|
||||
Auxiliary output power selection.
|
||||
Valid values for the power mode are:
|
||||
0: -4dBm (default)
|
||||
1: -1dBm
|
||||
2: +2dBm
|
||||
3: +5dBm
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- clocks
|
||||
|
||||
examples:
|
||||
- |
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
pll@4 {
|
||||
compatible = "adi,adf4351";
|
||||
reg = <4>;
|
||||
spi-max-frequency = <10000000>;
|
||||
clocks = <&clk0_ad9523 9>;
|
||||
clock-names = "clkin";
|
||||
adi,channel-spacing = <10000>;
|
||||
adi,power-up-frequency = <2400000000>;
|
||||
adi,phase-detector-polarity-positive-enable;
|
||||
adi,charge-pump-current = <2500>;
|
||||
adi,output-power = <3>;
|
||||
adi,mute-till-lock-enable;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -1,20 +0,0 @@
|
|||
* Bosch BMG160 triaxial rotation sensor (gyroscope)
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible : should be "bosch,bmg160", "bosch,bmi055_gyro" or "bosch,bmi088_gyro"
|
||||
- reg : the I2C address of the sensor (0x69)
|
||||
|
||||
Optional properties:
|
||||
|
||||
- interrupts : interrupt mapping for GPIO IRQ, it should by configured with
|
||||
flags IRQ_TYPE_EDGE_RISING
|
||||
|
||||
Example:
|
||||
|
||||
bmg160@69 {
|
||||
compatible = "bosch,bmg160";
|
||||
reg = <0x69>;
|
||||
interrupt-parent = <&gpio6>;
|
||||
interrupts = <18 (IRQ_TYPE_EDGE_RISING)>;
|
||||
};
|
|
@ -0,0 +1,46 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/gyroscope/bosch,bmg160.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Bosch BMG160 triaxial rotation sensor (gyroscope)
|
||||
|
||||
maintainers:
|
||||
- H. Nikolaus Schaller <hns@goldelico.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- bosch,bmg160
|
||||
- bosch,bmi055_gyro
|
||||
- bosch,bmi088_gyro
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
minItems: 1
|
||||
description:
|
||||
Should be configured with type IRQ_TYPE_EDGE_RISING.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
gyroscope@69 {
|
||||
compatible = "bosch,bmg160";
|
||||
reg = <0x69>;
|
||||
interrupt-parent = <&gpio6>;
|
||||
interrupts = <18 IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -1,31 +0,0 @@
|
|||
* NXP FXAS21002C Gyroscope device tree bindings
|
||||
|
||||
http://www.nxp.com/products/sensors/gyroscopes/3-axis-digital-gyroscope:FXAS21002C
|
||||
|
||||
Required properties:
|
||||
- compatible : should be "nxp,fxas21002c"
|
||||
- reg : the I2C address of the sensor or SPI chip select number for the
|
||||
device.
|
||||
- vdd-supply: phandle to the regulator that provides power to the sensor.
|
||||
- vddio-supply: phandle to the regulator that provides power to the bus.
|
||||
|
||||
Optional properties:
|
||||
- reset-gpios : gpio used to reset the device, see gpio/gpio.txt
|
||||
- interrupts : device support 2 interrupts, INT1 and INT2,
|
||||
the interrupts can be triggered on rising or falling edges.
|
||||
See interrupt-controller/interrupts.txt
|
||||
- interrupt-names: should contain "INT1" or "INT2", the gyroscope interrupt
|
||||
line in use.
|
||||
- drive-open-drain: the interrupt/data ready line will be configured
|
||||
as open drain, which is useful if several sensors share
|
||||
the same interrupt line. This is a boolean property.
|
||||
(This binding is taken from pinctrl/pinctrl-bindings.txt)
|
||||
|
||||
Example:
|
||||
|
||||
gyroscope@20 {
|
||||
compatible = "nxp,fxas21002c";
|
||||
reg = <0x20>;
|
||||
vdd-supply = <®_peri_3p15v>;
|
||||
vddio-supply = <®_peri_3p15v>;
|
||||
};
|
|
@ -0,0 +1,95 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/gyroscope/nxp,fxas21002c.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: NXP FXAS21002C Gyroscope
|
||||
|
||||
maintainers:
|
||||
- Rui Miguel Silva <rmfrfs@gmail.com>
|
||||
|
||||
description: |
|
||||
3 axis digital gyroscope device with an I2C and SPI interface.
|
||||
http://www.nxp.com/products/sensors/gyroscopes/3-axis-digital-gyroscope:FXAS21002C
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: nxp,fxas21002c
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
vdd-supply:
|
||||
description: Regulator that provides power to the sensor
|
||||
|
||||
vddio-supply:
|
||||
description: Regulator that provides power to the bus
|
||||
|
||||
reset-gpios:
|
||||
maxItems: 1
|
||||
description: GPIO connected to reset
|
||||
|
||||
interrupts:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
description: Either interrupt may be triggered on rising or falling edges.
|
||||
|
||||
interrupt-names:
|
||||
minItems: 1
|
||||
maxItems: 2
|
||||
items:
|
||||
enum:
|
||||
- INT1
|
||||
- INT2
|
||||
|
||||
drive-open-drain:
|
||||
type: boolean
|
||||
description: the interrupt/data ready line will be configured as open drain,
|
||||
which is useful if several sensors share the same interrupt
|
||||
line.
|
||||
|
||||
spi-max-frequency:
|
||||
maximum: 2000000
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
i2c0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
gyroscope@20 {
|
||||
compatible = "nxp,fxas21002c";
|
||||
reg = <0x20>;
|
||||
|
||||
vdd-supply = <®_peri_3p15v>;
|
||||
vddio-supply = <®_peri_3p15v>;
|
||||
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <7 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "INT1";
|
||||
};
|
||||
};
|
||||
spi0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
gyroscope@0 {
|
||||
compatible = "nxp,fxas2102c";
|
||||
reg = <0x0>;
|
||||
|
||||
spi-max-frequency = <2000000>;
|
||||
|
||||
interrupt-parent = <&gpio2>;
|
||||
interrupts = <7 IRQ_TYPE_EDGE_RISING>;
|
||||
interrupt-names = "INT2";
|
||||
};
|
||||
};
|
|
@ -1,33 +0,0 @@
|
|||
Texas Instruments AFE4403 Heart rate and Pulse Oximeter
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be "ti,afe4403".
|
||||
- reg : SPI chip select address of device.
|
||||
- tx-supply : Regulator supply to transmitting LEDs.
|
||||
- interrupts : The interrupt line the device ADC_RDY pin is
|
||||
connected to. For details refer to,
|
||||
../../interrupt-controller/interrupts.txt.
|
||||
|
||||
Optional properties:
|
||||
- reset-gpios : GPIO used to reset the device.
|
||||
For details refer to, ../../gpio/gpio.txt.
|
||||
|
||||
For other required and optional properties of SPI slave nodes
|
||||
please refer to ../../spi/spi-bus.txt.
|
||||
|
||||
Example:
|
||||
|
||||
&spi0 {
|
||||
heart_mon@0 {
|
||||
compatible = "ti,afe4403";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <10000000>;
|
||||
|
||||
tx-supply = <&vbat>;
|
||||
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <28 IRQ_TYPE_EDGE_RISING>;
|
||||
|
||||
reset-gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
|
@ -1,29 +0,0 @@
|
|||
Texas Instruments AFE4404 Heart rate and Pulse Oximeter
|
||||
|
||||
Required properties:
|
||||
- compatible : Should be "ti,afe4404".
|
||||
- reg : I2C address of the device.
|
||||
- tx-supply : Regulator supply to transmitting LEDs.
|
||||
- interrupts : The interrupt line the device ADC_RDY pin is
|
||||
connected to. For details refer to,
|
||||
../interrupt-controller/interrupts.txt.
|
||||
|
||||
Optional properties:
|
||||
- reset-gpios : GPIO used to reset the device.
|
||||
For details refer to, ../gpio/gpio.txt.
|
||||
|
||||
Example:
|
||||
|
||||
&i2c2 {
|
||||
heart_mon@58 {
|
||||
compatible = "ti,afe4404";
|
||||
reg = <0x58>;
|
||||
|
||||
tx-supply = <&vbat>;
|
||||
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <28 IRQ_TYPE_EDGE_RISING>;
|
||||
|
||||
reset-gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
|
@ -1,28 +0,0 @@
|
|||
Maxim MAX30100 heart rate and pulse oximeter sensor
|
||||
|
||||
* https://datasheets.maximintegrated.com/en/ds/MAX30100.pdf
|
||||
|
||||
Required properties:
|
||||
- compatible: must be "maxim,max30100"
|
||||
- reg: the I2C address of the sensor
|
||||
- interrupts: the sole interrupt generated by the device
|
||||
|
||||
Refer to interrupt-controller/interrupts.txt for generic
|
||||
interrupt client node bindings.
|
||||
|
||||
Optional properties:
|
||||
- maxim,led-current-microamp: configuration for LED current in microamperes
|
||||
while the engine is running. First indexed value is the configuration for
|
||||
the RED LED, and second value is for the IR LED.
|
||||
|
||||
Refer to the datasheet for the allowed current values.
|
||||
|
||||
Example:
|
||||
|
||||
max30100@57 {
|
||||
compatible = "maxim,max30100";
|
||||
reg = <0x57>;
|
||||
maxim,led-current-microamp = <24000 50000>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <16 2>;
|
||||
};
|
|
@ -1,33 +0,0 @@
|
|||
Maxim MAX30102 heart rate and pulse oximeter sensor
|
||||
Maxim MAX30105 optical particle-sensing module
|
||||
|
||||
* https://datasheets.maximintegrated.com/en/ds/MAX30102.pdf
|
||||
* https://datasheets.maximintegrated.com/en/ds/MAX30105.pdf
|
||||
|
||||
Required properties:
|
||||
- compatible: must be "maxim,max30102" or "maxim,max30105"
|
||||
- reg: the I2C address of the sensor
|
||||
- interrupts: the sole interrupt generated by the device
|
||||
|
||||
Refer to interrupt-controller/interrupts.txt for generic
|
||||
interrupt client node bindings.
|
||||
|
||||
Optional properties:
|
||||
- maxim,red-led-current-microamp: configuration for red LED current
|
||||
- maxim,ir-led-current-microamp: configuration for IR LED current
|
||||
- maxim,green-led-current-microamp: configuration for green LED current
|
||||
(max30105 only)
|
||||
|
||||
Note that each step is approximately 200 microamps, ranging from 0 uA to
|
||||
50800 uA.
|
||||
|
||||
Example:
|
||||
|
||||
max30102@57 {
|
||||
compatible = "maxim,max30102";
|
||||
reg = <0x57>;
|
||||
maxim,red-led-current-microamp = <7000>;
|
||||
maxim,ir-led-current-microamp = <7000>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <16 2>;
|
||||
};
|
|
@ -0,0 +1,52 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/health/maxim,max30100.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Maxim MAX30100 heart rate and pulse oximeter sensor
|
||||
|
||||
maintainers:
|
||||
- Matt Ranostay <matt.ranostay@konsulko.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: maxim,max30100
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
description: Connected to ADC_RDY pin.
|
||||
|
||||
maxim,led-current-microamp:
|
||||
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
minItems: 2
|
||||
maxItems: 2
|
||||
description: |
|
||||
LED current whilst the engine is running. First indexed value is
|
||||
the configuration for the RED LED, and second value is for the IR LED.
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
heart-rate@57 {
|
||||
compatible = "maxim,max30100";
|
||||
reg = <0x57>;
|
||||
maxim,led-current-microamp = <24000 50000>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <16 2>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -0,0 +1,72 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/health/maxim,max30102.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Maxim MAX30102 heart rate and pulse oximeter and MAX30105 particle-sensor
|
||||
|
||||
maintainers:
|
||||
- Matt Ranostay <matt.ranostay@konsulko.com>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- maxim,max30102
|
||||
- maxim,max30105
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
description: Connected to ADC_RDY pin.
|
||||
|
||||
maxim,red-led-current-microamp:
|
||||
description: RED LED current. Each step is approximately 200 microamps.
|
||||
minimum: 0
|
||||
maximum: 50800
|
||||
|
||||
maxim,ir-led-current-microamp:
|
||||
description: IR LED current. Each step is approximately 200 microamps.
|
||||
minimum: 0
|
||||
maximum: 50800
|
||||
|
||||
maxim,green-led-current-microamp:
|
||||
description: Green LED current. Each step is approximately 200 microamps.
|
||||
minimum: 0
|
||||
maximum: 50800
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
const: maxim,max30100
|
||||
then:
|
||||
properties:
|
||||
maxim,green-led-current-microamp: false
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
examples:
|
||||
- |
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
heart-rate@57 {
|
||||
compatible = "maxim,max30102";
|
||||
reg = <0x57>;
|
||||
maxim,red-led-current-microamp = <7000>;
|
||||
maxim,ir-led-current-microamp = <7000>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <16 2>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -0,0 +1,54 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/health/ti,afe4403.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Texas Instruments AFE4403 Heart rate and Pulse Oximeter
|
||||
|
||||
maintainers:
|
||||
- Jonathan Cameron <jic23@kernel.org>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: ti,afe4403
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
tx-supply:
|
||||
description: Supply to transmitting LEDs.
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
description: Connected to ADC_RDY pin.
|
||||
|
||||
reset-gpios: true
|
||||
|
||||
spi-max-frequency: true
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
heart_mon@0 {
|
||||
compatible = "ti,afe4403";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <10000000>;
|
||||
tx-supply = <&vbat>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <28 IRQ_TYPE_EDGE_RISING>;
|
||||
reset-gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -0,0 +1,51 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/health/ti,afe4404.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Texas Instruments AFE4404 Heart rate and Pulse Oximeter
|
||||
|
||||
maintainers:
|
||||
- Jonathan Cameron <jic23@kernel.org>
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: ti,afe4403
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
tx-supply:
|
||||
description: Supply to transmitting LEDs.
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
description: Connected to ADC_RDY pin.
|
||||
|
||||
reset-gpios: true
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
heart_mon@58 {
|
||||
compatible = "ti,afe4404";
|
||||
reg = <0x58>;
|
||||
tx-supply = <&vbat>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
interrupts = <28 IRQ_TYPE_EDGE_RISING>;
|
||||
reset-gpios = <&gpio1 16 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -1,14 +0,0 @@
|
|||
* DHT11 humidity/temperature sensor (and compatibles like DHT22)
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "dht11"
|
||||
- gpios: Should specify the GPIO connected to the sensor's data
|
||||
line, see "gpios property" in
|
||||
Documentation/devicetree/bindings/gpio/gpio.txt.
|
||||
|
||||
Example:
|
||||
|
||||
humidity_sensor {
|
||||
compatible = "dht11";
|
||||
gpios = <&gpio0 6 0>;
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/humidity/dht11.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: DHT11 humidity + temperature sensor
|
||||
|
||||
maintainers:
|
||||
- Harald Geyer <harald@ccbib.org>
|
||||
|
||||
description: |
|
||||
A simple and low cost module providing a non standard single GPIO based
|
||||
interface. It is believed the part is made by aosong but don't have
|
||||
absolute confirmation of this, or what the aosong part number is.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: dht11
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
gpios:
|
||||
maxItems: 1
|
||||
description:
|
||||
Single, interrupt capable, GPIO used to communicate with the device.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- gpios
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
humidity_sensor {
|
||||
compatible = "dht11";
|
||||
gpios = <&gpio0 6 0>;
|
||||
};
|
||||
...
|
|
@ -1,17 +0,0 @@
|
|||
* HDC100x temperature + humidity sensors
|
||||
|
||||
Required properties:
|
||||
- compatible: Should contain one of the following:
|
||||
ti,hdc1000
|
||||
ti,hdc1008
|
||||
ti,hdc1010
|
||||
ti,hdc1050
|
||||
ti,hdc1080
|
||||
- reg: i2c address of the sensor
|
||||
|
||||
Example:
|
||||
|
||||
hdc100x@40 {
|
||||
compatible = "ti,hdc1000";
|
||||
reg = <0x40>;
|
||||
};
|
|
@ -1,30 +0,0 @@
|
|||
* HTS221 STM humidity + temperature sensor
|
||||
|
||||
Required properties:
|
||||
- compatible: should be "st,hts221"
|
||||
- reg: i2c address of the sensor / spi cs line
|
||||
|
||||
Optional properties:
|
||||
- drive-open-drain: the interrupt/data ready line will be configured
|
||||
as open drain, which is useful if several sensors share the same
|
||||
interrupt line. This is a boolean property.
|
||||
If the requested interrupt is configured as IRQ_TYPE_LEVEL_HIGH or
|
||||
IRQ_TYPE_EDGE_RISING a pull-down resistor is needed to drive the line
|
||||
when it is not active, whereas a pull-up one is needed when interrupt
|
||||
line is configured as IRQ_TYPE_LEVEL_LOW or IRQ_TYPE_EDGE_FALLING.
|
||||
Refer to pinctrl/pinctrl-bindings.txt for the property description.
|
||||
- interrupts: interrupt mapping for IRQ. It should be configured with
|
||||
flags IRQ_TYPE_LEVEL_HIGH, IRQ_TYPE_EDGE_RISING, IRQ_TYPE_LEVEL_LOW or
|
||||
IRQ_TYPE_EDGE_FALLING.
|
||||
|
||||
Refer to interrupt-controller/interrupts.txt for generic interrupt
|
||||
client node bindings.
|
||||
|
||||
Example:
|
||||
|
||||
hts221@5f {
|
||||
compatible = "st,hts221";
|
||||
reg = <0x5f>;
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <0 IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
|
@ -1,13 +0,0 @@
|
|||
*HTU21 - Measurement-Specialties htu21 temperature & humidity sensor and humidity part of MS8607 sensor
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: should be "meas,htu21" or "meas,ms8607-humidity"
|
||||
- reg: I2C address of the sensor
|
||||
|
||||
Example:
|
||||
|
||||
htu21@40 {
|
||||
compatible = "meas,htu21";
|
||||
reg = <0x40>;
|
||||
};
|
|
@ -0,0 +1,54 @@
|
|||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/iio/humidity/st,hts221.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: HTS221 STM humidity + temperature sensor
|
||||
|
||||
maintainers:
|
||||
- Lorenzo Bianconi <lorenzo@kernel.org>
|
||||
|
||||
description: |
|
||||
Humidity and temperature sensor with I2C interface and data ready
|
||||
interrupt.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: st,hts221
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
drive-open-drain:
|
||||
type: boolean
|
||||
description:
|
||||
The interrupt/data ready line will be configured as open drain, which
|
||||
is useful if several sensors share the same interrupt line.
|
||||
|
||||
vdd-supply: true
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
hts221@5f {
|
||||
compatible = "st,hts221";
|
||||
reg = <0x5f>;
|
||||
interrupt-parent = <&gpio0>;
|
||||
interrupts = <0 IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
};
|
||||
...
|
|
@ -1,102 +0,0 @@
|
|||
This binding is derived from clock bindings, and based on suggestions
|
||||
from Lars-Peter Clausen [1].
|
||||
|
||||
Sources of IIO channels can be represented by any node in the device
|
||||
tree. Those nodes are designated as IIO providers. IIO consumer
|
||||
nodes use a phandle and IIO specifier pair to connect IIO provider
|
||||
outputs to IIO inputs. Similar to the gpio specifiers, an IIO
|
||||
specifier is an array of one or more cells identifying the IIO
|
||||
output on a device. The length of an IIO specifier is defined by the
|
||||
value of a #io-channel-cells property in the IIO provider node.
|
||||
|
||||
[1] https://marc.info/?l=linux-iio&m=135902119507483&w=2
|
||||
|
||||
==IIO providers==
|
||||
|
||||
Required properties:
|
||||
#io-channel-cells: Number of cells in an IIO specifier; Typically 0 for nodes
|
||||
with a single IIO output and 1 for nodes with multiple
|
||||
IIO outputs.
|
||||
|
||||
Optional properties:
|
||||
label: A symbolic name for the device.
|
||||
|
||||
|
||||
Example for a simple configuration with no trigger:
|
||||
|
||||
adc: voltage-sensor@35 {
|
||||
compatible = "maxim,max1139";
|
||||
reg = <0x35>;
|
||||
#io-channel-cells = <1>;
|
||||
label = "voltage_feedback_group1";
|
||||
};
|
||||
|
||||
Example for a configuration with trigger:
|
||||
|
||||
adc@35 {
|
||||
compatible = "some-vendor,some-adc";
|
||||
reg = <0x35>;
|
||||
|
||||
adc1: iio-device@0 {
|
||||
#io-channel-cells = <1>;
|
||||
/* other properties */
|
||||
};
|
||||
adc2: iio-device@1 {
|
||||
#io-channel-cells = <1>;
|
||||
/* other properties */
|
||||
};
|
||||
};
|
||||
|
||||
==IIO consumers==
|
||||
|
||||
Required properties:
|
||||
io-channels: List of phandle and IIO specifier pairs, one pair
|
||||
for each IIO input to the device. Note: if the
|
||||
IIO provider specifies '0' for #io-channel-cells,
|
||||
then only the phandle portion of the pair will appear.
|
||||
|
||||
Optional properties:
|
||||
io-channel-names:
|
||||
List of IIO input name strings sorted in the same
|
||||
order as the io-channels property. Consumers drivers
|
||||
will use io-channel-names to match IIO input names
|
||||
with IIO specifiers.
|
||||
io-channel-ranges:
|
||||
Empty property indicating that child nodes can inherit named
|
||||
IIO channels from this node. Useful for bus nodes to provide
|
||||
and IIO channel to their children.
|
||||
|
||||
For example:
|
||||
|
||||
device {
|
||||
io-channels = <&adc 1>, <&ref 0>;
|
||||
io-channel-names = "vcc", "vdd";
|
||||
};
|
||||
|
||||
This represents a device with two IIO inputs, named "vcc" and "vdd".
|
||||
The vcc channel is connected to output 1 of the &adc device, and the
|
||||
vdd channel is connected to output 0 of the &ref device.
|
||||
|
||||
==Example==
|
||||
|
||||
adc: max1139@35 {
|
||||
compatible = "maxim,max1139";
|
||||
reg = <0x35>;
|
||||
#io-channel-cells = <1>;
|
||||
};
|
||||
|
||||
...
|
||||
|
||||
iio-hwmon {
|
||||
compatible = "iio-hwmon";
|
||||
io-channels = <&adc 0>, <&adc 1>, <&adc 2>,
|
||||
<&adc 3>, <&adc 4>, <&adc 5>,
|
||||
<&adc 6>, <&adc 7>, <&adc 8>,
|
||||
<&adc 9>;
|
||||
};
|
||||
|
||||
some_consumer {
|
||||
compatible = "some-consumer";
|
||||
io-channels = <&adc 10>, <&adc 11>;
|
||||
io-channel-names = "adc1", "adc2";
|
||||
};
|
|
@ -1,26 +0,0 @@
|
|||
Analog Devices AD5933/AD5934 Impedance Converter, Network Analyzer
|
||||
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/AD5933.pdf
|
||||
https://www.analog.com/media/en/technical-documentation/data-sheets/AD5934.pdf
|
||||
|
||||
Required properties:
|
||||
- compatible : should be one of
|
||||
"adi,ad5933"
|
||||
"adi,ad5934"
|
||||
- reg : the I2C address.
|
||||
- vdd-supply : The regulator supply for DVDD, AVDD1 and AVDD2 when they
|
||||
are connected together.
|
||||
|
||||
Optional properties:
|
||||
- clocks : external clock reference.
|
||||
- clock-names : must be "mclk" if clocks is set.
|
||||
|
||||
Example for a I2C device node:
|
||||
|
||||
impedance-analyzer@0d {
|
||||
compatible = "adi,adxl345";
|
||||
reg = <0x0d>;
|
||||
vdd-supply = <&vdd_supply>;
|
||||
clocks = <&ref_clk>;
|
||||
clock-names = "mclk";
|
||||
};
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче