206 lines
5.7 KiB
YAML
206 lines
5.7 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/iio/adc/microchip,mcp3564.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Microchip MCP346X and MCP356X ADC Family
|
|
|
|
maintainers:
|
|
- Marius Cristea <marius.cristea@microchip.com>
|
|
|
|
description: |
|
|
Bindings for the Microchip family of 153.6 ksps, Low-Noise 16/24-Bit
|
|
Delta-Sigma ADCs with an SPI interface. Datasheet can be found here:
|
|
Datasheet for MCP3561, MCP3562, MCP3564 can be found here:
|
|
https://ww1.microchip.com/downloads/aemDocuments/documents/MSLD/ProductDocuments/DataSheets/MCP3561-2-4-Family-Data-Sheet-DS20006181C.pdf
|
|
Datasheet for MCP3561R, MCP3562R, MCP3564R can be found here:
|
|
https://ww1.microchip.com/downloads/aemDocuments/documents/APID/ProductDocuments/DataSheets/MCP3561_2_4R-Data-Sheet-DS200006391C.pdf
|
|
Datasheet for MCP3461, MCP3462, MCP3464 can be found here:
|
|
https://ww1.microchip.com/downloads/aemDocuments/documents/APID/ProductDocuments/DataSheets/MCP3461-2-4-Two-Four-Eight-Channel-153.6-ksps-Low-Noise-16-Bit-Delta-Sigma-ADC-Data-Sheet-20006180D.pdf
|
|
Datasheet for MCP3461R, MCP3462R, MCP3464R can be found here:
|
|
https://ww1.microchip.com/downloads/aemDocuments/documents/APID/ProductDocuments/DataSheets/MCP3461-2-4R-Family-Data-Sheet-DS20006404C.pdf
|
|
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- microchip,mcp3461
|
|
- microchip,mcp3462
|
|
- microchip,mcp3464
|
|
- microchip,mcp3461r
|
|
- microchip,mcp3462r
|
|
- microchip,mcp3464r
|
|
- microchip,mcp3561
|
|
- microchip,mcp3562
|
|
- microchip,mcp3564
|
|
- microchip,mcp3561r
|
|
- microchip,mcp3562r
|
|
- microchip,mcp3564r
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
spi-max-frequency:
|
|
maximum: 20000000
|
|
|
|
spi-cpha: true
|
|
|
|
spi-cpol: true
|
|
|
|
vdd-supply: true
|
|
|
|
avdd-supply: true
|
|
|
|
clocks:
|
|
description:
|
|
Phandle and clock identifier for external sampling clock.
|
|
If not specified, the internal crystal oscillator will be used.
|
|
maxItems: 1
|
|
|
|
interrupts:
|
|
description: IRQ line of the ADC
|
|
maxItems: 1
|
|
|
|
drive-open-drain:
|
|
description:
|
|
Whether to drive the IRQ signal as push-pull (default) or open-drain. Note
|
|
that the device requires this pin to become "high", otherwise it will stop
|
|
converting.
|
|
type: boolean
|
|
|
|
vref-supply:
|
|
description:
|
|
Some devices have a specific reference voltage supplied on a different
|
|
pin to the other supplies. Needed to be able to establish channel scaling
|
|
unless there is also an internal reference available (e.g. mcp3564r). In
|
|
case of "r" devices (e. g. mcp3564r), if it does not exists the internal
|
|
reference will be used.
|
|
|
|
microchip,hw-device-address:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
minimum: 0
|
|
maximum: 3
|
|
description:
|
|
The address is set on a per-device basis by fuses in the factory,
|
|
configured on request. If not requested, the fuses are set for 0x1.
|
|
The device address is part of the device markings to avoid
|
|
potential confusion. This address is coded on two bits, so four possible
|
|
addresses are available when multiple devices are present on the same
|
|
SPI bus with only one Chip Select line for all devices.
|
|
Each device communication starts by a CS falling edge, followed by the
|
|
clocking of the device address (BITS[7:6] - top two bits of COMMAND BYTE
|
|
which is first one on the wire).
|
|
|
|
"#io-channel-cells":
|
|
const: 1
|
|
|
|
"#address-cells":
|
|
const: 1
|
|
|
|
"#size-cells":
|
|
const: 0
|
|
|
|
patternProperties:
|
|
"^channel@([0-9]|([1-7][0-9]))$":
|
|
$ref: adc.yaml
|
|
type: object
|
|
unevaluatedProperties: false
|
|
description: Represents the external channels which are connected to the ADC.
|
|
|
|
properties:
|
|
reg:
|
|
description: The channel number in single-ended and differential mode.
|
|
minimum: 0
|
|
maximum: 79
|
|
|
|
required:
|
|
- reg
|
|
|
|
dependencies:
|
|
spi-cpol: [ spi-cpha ]
|
|
spi-cpha: [ spi-cpol ]
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- microchip,hw-device-address
|
|
- spi-max-frequency
|
|
|
|
allOf:
|
|
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
|
- # External vref, no internal reference
|
|
if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- microchip,mcp3461
|
|
- microchip,mcp3462
|
|
- microchip,mcp3464
|
|
- microchip,mcp3561
|
|
- microchip,mcp3562
|
|
- microchip,mcp3564
|
|
then:
|
|
required:
|
|
- vref-supply
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
spi {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
adc@0 {
|
|
compatible = "microchip,mcp3564r";
|
|
reg = <0>;
|
|
vref-supply = <&vref_reg>;
|
|
spi-cpha;
|
|
spi-cpol;
|
|
spi-max-frequency = <10000000>;
|
|
microchip,hw-device-address = <1>;
|
|
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
channel@0 {
|
|
/* CH0 to AGND */
|
|
reg = <0>;
|
|
label = "CH0";
|
|
};
|
|
|
|
channel@1 {
|
|
/* CH1 to AGND */
|
|
reg = <1>;
|
|
label = "CH1";
|
|
};
|
|
|
|
/* diff-channels */
|
|
channel@11 {
|
|
reg = <11>;
|
|
|
|
/* CN0, CN1 */
|
|
diff-channels = <0 1>;
|
|
label = "CH0_CH1";
|
|
};
|
|
|
|
channel@22 {
|
|
reg = <0x22>;
|
|
|
|
/* CN1, CN2 */
|
|
diff-channels = <1 2>;
|
|
label = "CH1_CH3";
|
|
};
|
|
|
|
channel@23 {
|
|
reg = <0x23>;
|
|
|
|
/* CN1, CN3 */
|
|
diff-channels = <1 3>;
|
|
label = "CH1_CH3";
|
|
};
|
|
};
|
|
};
|
|
...
|