162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/iio/adc/sprd,sc2720-adc.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Spreadtrum SC27XX series PMICs ADC
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Baolin Wang <baolin.wang7@gmail.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription:
1362306a36Sopenharmony_ci  Supports the ADC found on these PMICs.
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciproperties:
1662306a36Sopenharmony_ci  compatible:
1762306a36Sopenharmony_ci    enum:
1862306a36Sopenharmony_ci      - sprd,sc2720-adc
1962306a36Sopenharmony_ci      - sprd,sc2721-adc
2062306a36Sopenharmony_ci      - sprd,sc2723-adc
2162306a36Sopenharmony_ci      - sprd,sc2730-adc
2262306a36Sopenharmony_ci      - sprd,sc2731-adc
2362306a36Sopenharmony_ci      - sprd,ump9620-adc
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci  reg:
2662306a36Sopenharmony_ci    maxItems: 1
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci  interrupts:
2962306a36Sopenharmony_ci    maxItems: 1
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci  "#io-channel-cells":
3262306a36Sopenharmony_ci    const: 1
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci  hwlocks:
3562306a36Sopenharmony_ci    maxItems: 1
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci  nvmem-cells: true
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci  nvmem-cell-names: true
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ciallOf:
4262306a36Sopenharmony_ci  - if:
4362306a36Sopenharmony_ci      not:
4462306a36Sopenharmony_ci        properties:
4562306a36Sopenharmony_ci          compatible:
4662306a36Sopenharmony_ci            contains:
4762306a36Sopenharmony_ci              enum:
4862306a36Sopenharmony_ci                - sprd,ump9620-adc
4962306a36Sopenharmony_ci    then:
5062306a36Sopenharmony_ci      properties:
5162306a36Sopenharmony_ci        nvmem-cells:
5262306a36Sopenharmony_ci          maxItems: 2
5362306a36Sopenharmony_ci        nvmem-cell-names:
5462306a36Sopenharmony_ci          items:
5562306a36Sopenharmony_ci            - const: big_scale_calib
5662306a36Sopenharmony_ci            - const: small_scale_calib
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci    else:
5962306a36Sopenharmony_ci      properties:
6062306a36Sopenharmony_ci        nvmem-cells:
6162306a36Sopenharmony_ci          maxItems: 6
6262306a36Sopenharmony_ci        nvmem-cell-names:
6362306a36Sopenharmony_ci          items:
6462306a36Sopenharmony_ci            - const: big_scale_calib1
6562306a36Sopenharmony_ci            - const: big_scale_calib2
6662306a36Sopenharmony_ci            - const: small_scale_calib1
6762306a36Sopenharmony_ci            - const: small_scale_calib2
6862306a36Sopenharmony_ci            - const: vbat_det_cal1
6962306a36Sopenharmony_ci            - const: vbat_det_cal2
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_cirequired:
7262306a36Sopenharmony_ci  - compatible
7362306a36Sopenharmony_ci  - reg
7462306a36Sopenharmony_ci  - interrupts
7562306a36Sopenharmony_ci  - "#io-channel-cells"
7662306a36Sopenharmony_ci  - hwlocks
7762306a36Sopenharmony_ci  - nvmem-cells
7862306a36Sopenharmony_ci  - nvmem-cell-names
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ciadditionalProperties: false
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ciexamples:
8362306a36Sopenharmony_ci  - |
8462306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
8562306a36Sopenharmony_ci    pmic {
8662306a36Sopenharmony_ci        #address-cells = <1>;
8762306a36Sopenharmony_ci        #size-cells = <0>;
8862306a36Sopenharmony_ci        adc@480 {
8962306a36Sopenharmony_ci            compatible = "sprd,sc2731-adc";
9062306a36Sopenharmony_ci            reg = <0x480>;
9162306a36Sopenharmony_ci            interrupt-parent = <&sc2731_pmic>;
9262306a36Sopenharmony_ci            interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
9362306a36Sopenharmony_ci            #io-channel-cells = <1>;
9462306a36Sopenharmony_ci            hwlocks = <&hwlock 4>;
9562306a36Sopenharmony_ci            nvmem-cells = <&adc_big_scale>, <&adc_small_scale>;
9662306a36Sopenharmony_ci            nvmem-cell-names = "big_scale_calib", "small_scale_calib";
9762306a36Sopenharmony_ci        };
9862306a36Sopenharmony_ci    };
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ci  - |
10162306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
10262306a36Sopenharmony_ci    pmic {
10362306a36Sopenharmony_ci        #address-cells = <1>;
10462306a36Sopenharmony_ci        #size-cells = <0>;
10562306a36Sopenharmony_ci        adc@504 {
10662306a36Sopenharmony_ci            compatible = "sprd,ump9620-adc";
10762306a36Sopenharmony_ci            reg = <0x504>;
10862306a36Sopenharmony_ci            interrupt-parent = <&ump9620_pmic>;
10962306a36Sopenharmony_ci            interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
11062306a36Sopenharmony_ci            #io-channel-cells = <1>;
11162306a36Sopenharmony_ci            hwlocks = <&hwlock 4>;
11262306a36Sopenharmony_ci            nvmem-cells = <&adc_bcal1>, <&adc_bcal2>,
11362306a36Sopenharmony_ci                          <&adc_scal1>, <&adc_scal2>,
11462306a36Sopenharmony_ci                          <&vbat_det_cal1>, <&vbat_det_cal2>;
11562306a36Sopenharmony_ci            nvmem-cell-names = "big_scale_calib1", "big_scale_calib2",
11662306a36Sopenharmony_ci                               "small_scale_calib1", "small_scale_calib2",
11762306a36Sopenharmony_ci                               "vbat_det_cal1", "vbat_det_cal2";
11862306a36Sopenharmony_ci        };
11962306a36Sopenharmony_ci    };
12062306a36Sopenharmony_ci...
121