Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/iio/adc/sprd,sc2720-adc.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Spreadtrum SC27XX series PMICs ADC binding
0008 
0009 maintainers:
0010   - Baolin Wang <baolin.wang7@gmail.com>
0011 
0012 description:
0013   Supports the ADC found on these PMICs.
0014 
0015 properties:
0016   compatible:
0017     enum:
0018       - sprd,sc2720-adc
0019       - sprd,sc2721-adc
0020       - sprd,sc2723-adc
0021       - sprd,sc2730-adc
0022       - sprd,sc2731-adc
0023       - sprd,ump9620-adc
0024 
0025   reg:
0026     maxItems: 1
0027 
0028   interrupts:
0029     maxItems: 1
0030 
0031   "#io-channel-cells":
0032     const: 1
0033 
0034   hwlocks:
0035     maxItems: 1
0036 
0037   nvmem-cells: true
0038 
0039   nvmem-cell-names: true
0040 
0041 allOf:
0042   - if:
0043       not:
0044         properties:
0045           compatible:
0046             contains:
0047               enum:
0048                 - sprd,ump9620-adc
0049     then:
0050       properties:
0051         nvmem-cells:
0052           maxItems: 2
0053         nvmem-cell-names:
0054           items:
0055             - const: big_scale_calib
0056             - const: small_scale_calib
0057 
0058     else:
0059       properties:
0060         nvmem-cells:
0061           maxItems: 6
0062         nvmem-cell-names:
0063           items:
0064             - const: big_scale_calib1
0065             - const: big_scale_calib2
0066             - const: small_scale_calib1
0067             - const: small_scale_calib2
0068             - const: vbat_det_cal1
0069             - const: vbat_det_cal2
0070 
0071 required:
0072   - compatible
0073   - reg
0074   - interrupts
0075   - "#io-channel-cells"
0076   - hwlocks
0077   - nvmem-cells
0078   - nvmem-cell-names
0079 
0080 additionalProperties: false
0081 
0082 examples:
0083   - |
0084     #include <dt-bindings/interrupt-controller/irq.h>
0085     pmic {
0086         #address-cells = <1>;
0087         #size-cells = <0>;
0088         adc@480 {
0089             compatible = "sprd,sc2731-adc";
0090             reg = <0x480>;
0091             interrupt-parent = <&sc2731_pmic>;
0092             interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
0093             #io-channel-cells = <1>;
0094             hwlocks = <&hwlock 4>;
0095             nvmem-cells = <&adc_big_scale>, <&adc_small_scale>;
0096             nvmem-cell-names = "big_scale_calib", "small_scale_calib";
0097         };
0098     };
0099 
0100   - |
0101     #include <dt-bindings/interrupt-controller/irq.h>
0102     pmic {
0103         #address-cells = <1>;
0104         #size-cells = <0>;
0105         adc@504 {
0106             compatible = "sprd,ump9620-adc";
0107             reg = <0x504>;
0108             interrupt-parent = <&ump9620_pmic>;
0109             interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
0110             #io-channel-cells = <1>;
0111             hwlocks = <&hwlock 4>;
0112             nvmem-cells = <&adc_bcal1>, <&adc_bcal2>,
0113                           <&adc_scal1>, <&adc_scal2>,
0114                           <&vbat_det_cal1>, <&vbat_det_cal2>;
0115             nvmem-cell-names = "big_scale_calib1", "big_scale_calib2",
0116                                "small_scale_calib1", "small_scale_calib2",
0117                                "vbat_det_cal1", "vbat_det_cal2";
0118         };
0119     };
0120 ...