# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/iio/potentiometer/microchip,mcp4531.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Microchip mcp4531 and similar potentiometers.

maintainers:
  - Peter Rosin <peda@axentia.se>

description: |
  Family of I2C digital potentiometer
  Datasheets at:
  * volatile https://ww1.microchip.com/downloads/en/DeviceDoc/22096b.pdf
  * non-volatile https://ww1.microchip.com/downloads/en/DeviceDoc/22107B.pdf
  Part numbers as follows: mcp4ABC-XXX where
  A =   5 (1 wiper), 6 (2 wipers)
  B =   3 (7-bit, volatile), 4 (7-bit, non-volatile),
        5 (8-bit, volatile), 6 (8-bit, non-volatile),
  C:    1 (potentiometer), 2 (rheostat)
  XXX = 502 (5 kOhms), 103 (10 kOhms), 503 (50 kOhms), 104 (100 kOhms)

properties:
  compatible:
    enum:
        # Ordering reflects part number + range, so 502 < 103 etc
      - microchip,mcp4531-502
      - microchip,mcp4531-103
      - microchip,mcp4531-503
      - microchip,mcp4531-104
      - microchip,mcp4532-502
      - microchip,mcp4532-103
      - microchip,mcp4532-503
      - microchip,mcp4532-104
      - microchip,mcp4541-502
      - microchip,mcp4541-103
      - microchip,mcp4541-503
      - microchip,mcp4541-104
      - microchip,mcp4542-502
      - microchip,mcp4542-103
      - microchip,mcp4542-503
      - microchip,mcp4542-104
      - microchip,mcp4551-502
      - microchip,mcp4551-103
      - microchip,mcp4551-503
      - microchip,mcp4551-104
      - microchip,mcp4552-502
      - microchip,mcp4552-103
      - microchip,mcp4552-503
      - microchip,mcp4552-104
      - microchip,mcp4561-502
      - microchip,mcp4561-103
      - microchip,mcp4561-503
      - microchip,mcp4561-104
      - microchip,mcp4562-502
      - microchip,mcp4562-103
      - microchip,mcp4562-503
      - microchip,mcp4562-104
      - microchip,mcp4631-502
      - microchip,mcp4631-103
      - microchip,mcp4631-503
      - microchip,mcp4631-104
      - microchip,mcp4632-502
      - microchip,mcp4632-103
      - microchip,mcp4632-503
      - microchip,mcp4632-104
      - microchip,mcp4641-502
      - microchip,mcp4641-103
      - microchip,mcp4641-503
      - microchip,mcp4641-104
      - microchip,mcp4642-502
      - microchip,mcp4642-103
      - microchip,mcp4642-503
      - microchip,mcp4642-104
      - microchip,mcp4651-502
      - microchip,mcp4651-103
      - microchip,mcp4651-503
      - microchip,mcp4651-104
      - microchip,mcp4652-502
      - microchip,mcp4652-103
      - microchip,mcp4652-503
      - microchip,mcp4652-104
      - microchip,mcp4661-502
      - microchip,mcp4661-103
      - microchip,mcp4661-503
      - microchip,mcp4661-104
      - microchip,mcp4662-502
      - microchip,mcp4662-103
      - microchip,mcp4662-503
      - microchip,mcp4662-104

  reg:
    maxItems: 1

  "#io-channel-cells":
    const: 1

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    i2c {
        #address-cells = <1>;
        #size-cells = <0>;
        dpot: dpot@28 {
            compatible = "microchip,mcp4651-104";
            reg = <0x28>;
            #io-channel-cells = <1>;
        };
    };
...