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