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 ...