xref: /openbmc/linux/Documentation/devicetree/bindings/thermal/qcom-spmi-adc-tm5.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1e8ffd6c0SDmitry Baryshkov# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2e8ffd6c0SDmitry Baryshkov%YAML 1.2
3e8ffd6c0SDmitry Baryshkov---
4e8ffd6c0SDmitry Baryshkov$id: http://devicetree.org/schemas/thermal/qcom-spmi-adc-tm5.yaml#
5e8ffd6c0SDmitry Baryshkov$schema: http://devicetree.org/meta-schemas/core.yaml#
6e8ffd6c0SDmitry Baryshkov
7e8ffd6c0SDmitry Baryshkovtitle: Qualcomm's SPMI PMIC ADC Thermal Monitoring
8e8ffd6c0SDmitry Baryshkovmaintainers:
9e8ffd6c0SDmitry Baryshkov  - Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
10e8ffd6c0SDmitry Baryshkov
11e8ffd6c0SDmitry Baryshkovproperties:
12e8ffd6c0SDmitry Baryshkov  compatible:
13e46e003aSJishnu Prakash    enum:
14e46e003aSJishnu Prakash      - qcom,spmi-adc-tm5
15e46e003aSJishnu Prakash      - qcom,spmi-adc-tm5-gen2
164b39ffa6SKrzysztof Kozlowski      - qcom,adc-tm7 # Incomplete / subject to change
17e8ffd6c0SDmitry Baryshkov
18e8ffd6c0SDmitry Baryshkov  reg:
19e8ffd6c0SDmitry Baryshkov    maxItems: 1
20e8ffd6c0SDmitry Baryshkov
21e8ffd6c0SDmitry Baryshkov  interrupts:
22e8ffd6c0SDmitry Baryshkov    maxItems: 1
23e8ffd6c0SDmitry Baryshkov
24e8ffd6c0SDmitry Baryshkov  "#thermal-sensor-cells":
25e8ffd6c0SDmitry Baryshkov    const: 1
26e8ffd6c0SDmitry Baryshkov    description:
27e8ffd6c0SDmitry Baryshkov      Number of cells required to uniquely identify the thermal sensors. Since
28e8ffd6c0SDmitry Baryshkov      we have multiple sensors this is set to 1
29e8ffd6c0SDmitry Baryshkov
30e8ffd6c0SDmitry Baryshkov  "#address-cells":
31e8ffd6c0SDmitry Baryshkov    const: 1
32e8ffd6c0SDmitry Baryshkov
33e8ffd6c0SDmitry Baryshkov  "#size-cells":
34e8ffd6c0SDmitry Baryshkov    const: 0
35e8ffd6c0SDmitry Baryshkov
36e8ffd6c0SDmitry Baryshkov  qcom,avg-samples:
37e8ffd6c0SDmitry Baryshkov    $ref: /schemas/types.yaml#/definitions/uint32
38e8ffd6c0SDmitry Baryshkov    description: Number of samples to be used for measurement.
39e46e003aSJishnu Prakash            Not applicable for Gen2 ADC_TM peripheral.
40e8ffd6c0SDmitry Baryshkov    enum:
41e8ffd6c0SDmitry Baryshkov      - 1
42e8ffd6c0SDmitry Baryshkov      - 2
43e8ffd6c0SDmitry Baryshkov      - 4
44e8ffd6c0SDmitry Baryshkov      - 8
45e8ffd6c0SDmitry Baryshkov      - 16
46e8ffd6c0SDmitry Baryshkov    default: 1
47e8ffd6c0SDmitry Baryshkov
48e8ffd6c0SDmitry Baryshkov  qcom,decimation:
49e8ffd6c0SDmitry Baryshkov    $ref: /schemas/types.yaml#/definitions/uint32
50e8ffd6c0SDmitry Baryshkov    description: This parameter is used to decrease ADC sampling rate.
51e8ffd6c0SDmitry Baryshkov            Quicker measurements can be made by reducing decimation ratio.
52e46e003aSJishnu Prakash            Not applicable for Gen2 ADC_TM peripheral.
53e8ffd6c0SDmitry Baryshkov    enum:
54e8ffd6c0SDmitry Baryshkov      - 250
55e8ffd6c0SDmitry Baryshkov      - 420
56e8ffd6c0SDmitry Baryshkov      - 840
57e8ffd6c0SDmitry Baryshkov    default: 840
58e8ffd6c0SDmitry Baryshkov
59e8ffd6c0SDmitry BaryshkovpatternProperties:
60e8ffd6c0SDmitry Baryshkov  "^([-a-z0-9]*)@[0-7]$":
61e8ffd6c0SDmitry Baryshkov    type: object
62e8ffd6c0SDmitry Baryshkov    description:
63e8ffd6c0SDmitry Baryshkov      Represent one thermal sensor.
64e8ffd6c0SDmitry Baryshkov
65e8ffd6c0SDmitry Baryshkov    properties:
66e8ffd6c0SDmitry Baryshkov      reg:
67e8ffd6c0SDmitry Baryshkov        description: Specify the sensor channel. There are 8 channels in PMIC5's ADC TM
68e8ffd6c0SDmitry Baryshkov        minimum: 0
69e8ffd6c0SDmitry Baryshkov        maximum: 7
70e8ffd6c0SDmitry Baryshkov
71e8ffd6c0SDmitry Baryshkov      io-channels:
72e8ffd6c0SDmitry Baryshkov        description:
73e8ffd6c0SDmitry Baryshkov          From common IIO binding. Used to pipe PMIC ADC channel to thermal monitor
74e8ffd6c0SDmitry Baryshkov
75e8ffd6c0SDmitry Baryshkov      qcom,ratiometric:
76e8ffd6c0SDmitry Baryshkov        $ref: /schemas/types.yaml#/definitions/flag
77e8ffd6c0SDmitry Baryshkov        description:
78e8ffd6c0SDmitry Baryshkov          Channel calibration type.
79e8ffd6c0SDmitry Baryshkov          If this property is specified VADC will use the VDD reference
80e8ffd6c0SDmitry Baryshkov          (1.875V) and GND for channel calibration. If property is not found,
81e8ffd6c0SDmitry Baryshkov          channel will be calibrated with 0V and 1.25V reference channels,
82e8ffd6c0SDmitry Baryshkov          also known as absolute calibration.
83e8ffd6c0SDmitry Baryshkov
84e8ffd6c0SDmitry Baryshkov      qcom,hw-settle-time-us:
85e8ffd6c0SDmitry Baryshkov        description: Time between AMUX getting configured and the ADC starting conversion.
86e8ffd6c0SDmitry Baryshkov        enum: [15, 100, 200, 300, 400, 500, 600, 700, 1000, 2000, 4000, 8000, 16000, 32000, 64000, 128000]
87e8ffd6c0SDmitry Baryshkov
88e8ffd6c0SDmitry Baryshkov      qcom,pre-scaling:
89e8ffd6c0SDmitry Baryshkov        $ref: /schemas/types.yaml#/definitions/uint32-array
90e8ffd6c0SDmitry Baryshkov        description: Used for scaling the channel input signal before the
91e8ffd6c0SDmitry Baryshkov          signal is fed to VADC. The configuration for this node is to know the
92e8ffd6c0SDmitry Baryshkov          pre-determined ratio and use it for post scaling. It is a pair of
93e8ffd6c0SDmitry Baryshkov          integers, denoting the numerator and denominator of the fraction by
94e8ffd6c0SDmitry Baryshkov          which input signal is multiplied. For example, <1 3> indicates the
95e8ffd6c0SDmitry Baryshkov          signal is scaled down to 1/3 of its value before ADC measurement.  If
96e8ffd6c0SDmitry Baryshkov          property is not found default value depending on chip will be used.
97e8ffd6c0SDmitry Baryshkov        items:
98e8ffd6c0SDmitry Baryshkov          - const: 1
99e8ffd6c0SDmitry Baryshkov          - enum: [ 1, 3, 4, 6, 20, 8, 10 ]
100e8ffd6c0SDmitry Baryshkov
101e46e003aSJishnu Prakash      qcom,avg-samples:
102e46e003aSJishnu Prakash        $ref: /schemas/types.yaml#/definitions/uint32
103e46e003aSJishnu Prakash        description: Number of samples to be used for measurement.
104e46e003aSJishnu Prakash          This property in child node is applicable only for Gen2 ADC_TM peripheral.
105e46e003aSJishnu Prakash        enum:
106e46e003aSJishnu Prakash          - 1
107e46e003aSJishnu Prakash          - 2
108e46e003aSJishnu Prakash          - 4
109e46e003aSJishnu Prakash          - 8
110e46e003aSJishnu Prakash          - 16
111e46e003aSJishnu Prakash        default: 1
112e46e003aSJishnu Prakash
113e46e003aSJishnu Prakash      qcom,decimation:
114e46e003aSJishnu Prakash        $ref: /schemas/types.yaml#/definitions/uint32
115e46e003aSJishnu Prakash        description: This parameter is used to decrease ADC sampling rate.
116e46e003aSJishnu Prakash          Quicker measurements can be made by reducing decimation ratio.
117e46e003aSJishnu Prakash          This property in child node is applicable only for Gen2 ADC_TM peripheral.
118e46e003aSJishnu Prakash        enum:
119e46e003aSJishnu Prakash          - 85
120e46e003aSJishnu Prakash          - 340
121e46e003aSJishnu Prakash          - 1360
122e46e003aSJishnu Prakash        default: 1360
123e46e003aSJishnu Prakash
124e8ffd6c0SDmitry Baryshkov    required:
125e8ffd6c0SDmitry Baryshkov      - reg
126e8ffd6c0SDmitry Baryshkov      - io-channels
127e8ffd6c0SDmitry Baryshkov
128e8ffd6c0SDmitry Baryshkov    additionalProperties:
129e8ffd6c0SDmitry Baryshkov      false
130e8ffd6c0SDmitry Baryshkov
131e46e003aSJishnu PrakashallOf:
132e46e003aSJishnu Prakash  - if:
133e46e003aSJishnu Prakash      properties:
134e46e003aSJishnu Prakash        compatible:
135e46e003aSJishnu Prakash          contains:
136e46e003aSJishnu Prakash            const: qcom,spmi-adc-tm5
137e46e003aSJishnu Prakash
138e46e003aSJishnu Prakash    then:
139e46e003aSJishnu Prakash      patternProperties:
140e46e003aSJishnu Prakash        "^([-a-z0-9]*)@[0-7]$":
141e46e003aSJishnu Prakash          properties:
142e46e003aSJishnu Prakash            qcom,decimation: false
143e46e003aSJishnu Prakash            qcom,avg-samples: false
144e46e003aSJishnu Prakash
145e46e003aSJishnu Prakash  - if:
146e46e003aSJishnu Prakash      properties:
147e46e003aSJishnu Prakash        compatible:
148e46e003aSJishnu Prakash          contains:
149e46e003aSJishnu Prakash            const: qcom,spmi-adc-tm5-gen2
150e46e003aSJishnu Prakash
151e46e003aSJishnu Prakash    then:
152e46e003aSJishnu Prakash      properties:
153e46e003aSJishnu Prakash        qcom,avg-samples: false
154e46e003aSJishnu Prakash        qcom,decimation: false
155e46e003aSJishnu Prakash
156e8ffd6c0SDmitry Baryshkovrequired:
157e8ffd6c0SDmitry Baryshkov  - compatible
158e8ffd6c0SDmitry Baryshkov  - reg
159e8ffd6c0SDmitry Baryshkov  - interrupts
160e8ffd6c0SDmitry Baryshkov  - "#address-cells"
161e8ffd6c0SDmitry Baryshkov  - "#size-cells"
162e8ffd6c0SDmitry Baryshkov  - "#thermal-sensor-cells"
163e8ffd6c0SDmitry Baryshkov
164e8ffd6c0SDmitry BaryshkovadditionalProperties: false
165e8ffd6c0SDmitry Baryshkov
166e8ffd6c0SDmitry Baryshkovexamples:
167e8ffd6c0SDmitry Baryshkov  - |
168e8ffd6c0SDmitry Baryshkov    #include <dt-bindings/iio/qcom,spmi-vadc.h>
169e8ffd6c0SDmitry Baryshkov    #include <dt-bindings/interrupt-controller/irq.h>
170e8ffd6c0SDmitry Baryshkov    spmi_bus {
171e8ffd6c0SDmitry Baryshkov        #address-cells = <1>;
172e8ffd6c0SDmitry Baryshkov        #size-cells = <0>;
173e8ffd6c0SDmitry Baryshkov        pm8150b_adc: adc@3100 {
174e8ffd6c0SDmitry Baryshkov            reg = <0x3100>;
175e8ffd6c0SDmitry Baryshkov            compatible = "qcom,spmi-adc5";
176e8ffd6c0SDmitry Baryshkov            #address-cells = <1>;
177e8ffd6c0SDmitry Baryshkov            #size-cells = <0>;
178e8ffd6c0SDmitry Baryshkov            #io-channel-cells = <1>;
179e8ffd6c0SDmitry Baryshkov
180e46e003aSJishnu Prakash            /* Other properties are omitted */
181*d9f7eeafSMarijn Suijten            channel@4f {
182e8ffd6c0SDmitry Baryshkov                reg = <ADC5_AMUX_THM3_100K_PU>;
183e8ffd6c0SDmitry Baryshkov                qcom,ratiometric;
184e8ffd6c0SDmitry Baryshkov                qcom,hw-settle-time = <200>;
185*d9f7eeafSMarijn Suijten                label = "conn_therm";
186e8ffd6c0SDmitry Baryshkov            };
187e8ffd6c0SDmitry Baryshkov        };
188e8ffd6c0SDmitry Baryshkov
189e8ffd6c0SDmitry Baryshkov        pm8150b_adc_tm: adc-tm@3500 {
190e8ffd6c0SDmitry Baryshkov            compatible = "qcom,spmi-adc-tm5";
191e8ffd6c0SDmitry Baryshkov            reg = <0x3500>;
192e8ffd6c0SDmitry Baryshkov            interrupts = <0x2 0x35 0x0 IRQ_TYPE_EDGE_RISING>;
193e8ffd6c0SDmitry Baryshkov            #thermal-sensor-cells = <1>;
194e8ffd6c0SDmitry Baryshkov            #address-cells = <1>;
195e8ffd6c0SDmitry Baryshkov            #size-cells = <0>;
196e8ffd6c0SDmitry Baryshkov
197e8ffd6c0SDmitry Baryshkov            conn-therm@0 {
198e8ffd6c0SDmitry Baryshkov                reg = <0>;
199e8ffd6c0SDmitry Baryshkov                io-channels = <&pm8150b_adc ADC5_AMUX_THM3_100K_PU>;
200e8ffd6c0SDmitry Baryshkov                qcom,ratiometric;
201e8ffd6c0SDmitry Baryshkov                qcom,hw-settle-time-us = <200>;
202e8ffd6c0SDmitry Baryshkov            };
203e8ffd6c0SDmitry Baryshkov        };
204e8ffd6c0SDmitry Baryshkov    };
205e46e003aSJishnu Prakash
206e46e003aSJishnu Prakash  - |
207e46e003aSJishnu Prakash    #include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
208e46e003aSJishnu Prakash    #include <dt-bindings/iio/qcom,spmi-adc7-pm8350.h>
209e46e003aSJishnu Prakash    #include <dt-bindings/interrupt-controller/irq.h>
210e46e003aSJishnu Prakash    spmi_bus {
211e46e003aSJishnu Prakash        #address-cells = <1>;
212e46e003aSJishnu Prakash        #size-cells = <0>;
213e46e003aSJishnu Prakash        pmk8350_vadc: adc@3100 {
214e46e003aSJishnu Prakash            reg = <0x3100>;
215e46e003aSJishnu Prakash            compatible = "qcom,spmi-adc7";
216e46e003aSJishnu Prakash            #address-cells = <1>;
217e46e003aSJishnu Prakash            #size-cells = <0>;
218e46e003aSJishnu Prakash            #io-channel-cells = <1>;
219e46e003aSJishnu Prakash
220e46e003aSJishnu Prakash            /* Other properties are omitted */
221*d9f7eeafSMarijn Suijten            channel@44 {
222e46e003aSJishnu Prakash                reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
223e46e003aSJishnu Prakash                qcom,ratiometric;
224e46e003aSJishnu Prakash                qcom,hw-settle-time = <200>;
225*d9f7eeafSMarijn Suijten                label = "xo_therm";
226e46e003aSJishnu Prakash            };
227e46e003aSJishnu Prakash
228*d9f7eeafSMarijn Suijten            channel@147 {
22922f1d06fSManivannan Sadhasivam                reg = <PM8350_ADC7_AMUX_THM4_100K_PU(1)>;
230e46e003aSJishnu Prakash                qcom,ratiometric;
231e46e003aSJishnu Prakash                qcom,hw-settle-time = <200>;
232*d9f7eeafSMarijn Suijten                label = "conn_therm";
233e46e003aSJishnu Prakash            };
234e46e003aSJishnu Prakash        };
235e46e003aSJishnu Prakash
236e46e003aSJishnu Prakash        pmk8350_adc_tm: adc-tm@3400 {
237e46e003aSJishnu Prakash            compatible = "qcom,spmi-adc-tm5-gen2";
238e46e003aSJishnu Prakash            reg = <0x3400>;
239e46e003aSJishnu Prakash            interrupts = <0x0 0x34 0x0 IRQ_TYPE_EDGE_RISING>;
240e46e003aSJishnu Prakash            #thermal-sensor-cells = <1>;
241e46e003aSJishnu Prakash            #address-cells = <1>;
242e46e003aSJishnu Prakash            #size-cells = <0>;
243e46e003aSJishnu Prakash
244e46e003aSJishnu Prakash            pmk8350-xo-therm@0 {
245e46e003aSJishnu Prakash                reg = <0>;
246e46e003aSJishnu Prakash                io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
247e46e003aSJishnu Prakash                qcom,decimation = <340>;
248e46e003aSJishnu Prakash                qcom,ratiometric;
249e46e003aSJishnu Prakash                qcom,hw-settle-time-us = <200>;
250e46e003aSJishnu Prakash            };
251e46e003aSJishnu Prakash
252e46e003aSJishnu Prakash            conn-therm@1 {
253e46e003aSJishnu Prakash                reg = <1>;
25422f1d06fSManivannan Sadhasivam                io-channels = <&pmk8350_vadc PM8350_ADC7_AMUX_THM4_100K_PU(1)>;
255e46e003aSJishnu Prakash                qcom,avg-samples = <2>;
256e46e003aSJishnu Prakash                qcom,ratiometric;
257e46e003aSJishnu Prakash                qcom,hw-settle-time-us = <200>;
258e46e003aSJishnu Prakash            };
259e46e003aSJishnu Prakash        };
260e46e003aSJishnu Prakash    };
261e8ffd6c0SDmitry Baryshkov...
262