xref: /linux/Documentation/devicetree/bindings/iio/adc/amlogic,meson-saradc.yaml (revision 3663e2c4bc45fcdc71931fcbfcbfbf9b71f55c83)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/iio/adc/amlogic,meson-saradc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Amlogic Meson SAR (Successive Approximation Register) A/D converter
8
9maintainers:
10  - Martin Blumenstingl <martin.blumenstingl@googlemail.com>
11
12description:
13  Binding covers a range of ADCs found on Amlogic Meson SoCs.
14
15properties:
16  compatible:
17    oneOf:
18      - const: amlogic,meson-saradc
19      - items:
20          - enum:
21              - amlogic,meson8-saradc
22              - amlogic,meson8b-saradc
23              - amlogic,meson8m2-saradc
24              - amlogic,meson-gxbb-saradc
25              - amlogic,meson-gxl-saradc
26              - amlogic,meson-gxm-saradc
27              - amlogic,meson-axg-saradc
28              - amlogic,meson-g12a-saradc
29          - const: amlogic,meson-saradc
30
31  reg:
32    maxItems: 1
33
34  interrupts:
35    description: Interrupt indicates end of sampling.
36    maxItems: 1
37
38  clocks:
39    minItems: 2
40    maxItems: 4
41
42  clock-names:
43    minItems: 2
44    items:
45      - const: clkin
46      - const: core
47      - const: adc_clk
48      - const: adc_sel
49
50  vref-supply: true
51
52  "#io-channel-cells":
53    const: 1
54
55  amlogic,hhi-sysctrl:
56    $ref: /schemas/types.yaml#/definitions/phandle
57    description:
58      Syscon which contains the 5th bit of the TSC (temperature sensor
59      coefficient) on Meson8b and Meson8m2 (which used to calibrate the
60      temperature sensor)
61
62  nvmem-cells:
63    description: phandle to the temperature_calib eFuse cells
64    maxItems: 1
65
66  nvmem-cell-names:
67    const: temperature_calib
68
69  power-domains:
70    maxItems: 1
71
72allOf:
73  - if:
74      properties:
75        compatible:
76          contains:
77            enum:
78              - amlogic,meson8-saradc
79              - amlogic,meson8b-saradc
80              - amlogic,meson8m2-saradc
81    then:
82      properties:
83        clocks:
84          maxItems: 2
85        clock-names:
86          maxItems: 2
87    else:
88      properties:
89        nvmem-cells: false
90        mvmem-cel-names: false
91        clocks:
92          minItems: 4
93        clock-names:
94          minItems: 4
95
96  - if:
97      properties:
98        compatible:
99          contains:
100            enum:
101              - amlogic,meson8b-saradc
102              - amlogic,meson8m2-saradc
103    then:
104      properties:
105        amlogic,hhi-sysctrl: true
106    else:
107      properties:
108        amlogic,hhi-sysctrl: false
109
110required:
111  - compatible
112  - reg
113  - interrupts
114  - clocks
115  - clock-names
116  - "#io-channel-cells"
117
118additionalProperties: false
119
120examples:
121  - |
122    #include <dt-bindings/interrupt-controller/irq.h>
123    #include <dt-bindings/clock/gxbb-clkc.h>
124    #include <dt-bindings/interrupt-controller/arm-gic.h>
125    soc {
126        #address-cells = <2>;
127        #size-cells = <2>;
128        adc@8680 {
129            compatible = "amlogic,meson-gxl-saradc", "amlogic,meson-saradc";
130            #io-channel-cells = <1>;
131            reg = <0x0 0x8680 0x0 0x34>;
132            interrupts = <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>;
133            clocks = <&xtal>,
134                <&clkc CLKID_SAR_ADC>,
135                <&clkc CLKID_SAR_ADC_CLK>,
136                <&clkc CLKID_SAR_ADC_SEL>;
137            clock-names = "clkin", "core", "adc_clk", "adc_sel";
138        };
139        adc@9680 {
140            compatible = "amlogic,meson8b-saradc", "amlogic,meson-saradc";
141            #io-channel-cells = <1>;
142            reg = <0x0 0x9680 0x0 0x34>;
143            interrupts = <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>;
144            clocks = <&xtal>, <&clkc CLKID_SAR_ADC>;
145            clock-names = "clkin", "core";
146            nvmem-cells = <&tsens_caldata>;
147            nvmem-cell-names = "temperature_calib";
148            amlogic,hhi-sysctrl = <&hhi>;
149        };
150    };
151...
152