| # 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"; |
| }; |
| }; |
| }; |
| ... |