Merge tag 'driver-core-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / thermal / qcom-spmi-adc-tm5.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/thermal/qcom-spmi-adc-tm5.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Qualcomm's SPMI PMIC ADC Thermal Monitoring
8 maintainers:
9   - Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
10
11 properties:
12   compatible:
13     const: qcom,spmi-adc-tm5
14
15   reg:
16     maxItems: 1
17
18   interrupts:
19     maxItems: 1
20
21   "#thermal-sensor-cells":
22     const: 1
23     description:
24       Number of cells required to uniquely identify the thermal sensors. Since
25       we have multiple sensors this is set to 1
26
27   "#address-cells":
28     const: 1
29
30   "#size-cells":
31     const: 0
32
33   qcom,avg-samples:
34     $ref: /schemas/types.yaml#/definitions/uint32
35     description: Number of samples to be used for measurement.
36     enum:
37       - 1
38       - 2
39       - 4
40       - 8
41       - 16
42     default: 1
43
44   qcom,decimation:
45     $ref: /schemas/types.yaml#/definitions/uint32
46     description: This parameter is used to decrease ADC sampling rate.
47             Quicker measurements can be made by reducing decimation ratio.
48     enum:
49       - 250
50       - 420
51       - 840
52     default: 840
53
54 patternProperties:
55   "^([-a-z0-9]*)@[0-7]$":
56     type: object
57     description:
58       Represent one thermal sensor.
59
60     properties:
61       reg:
62         $ref: /schemas/types.yaml#/definitions/uint32
63         description: Specify the sensor channel. There are 8 channels in PMIC5's ADC TM
64         minimum: 0
65         maximum: 7
66
67       io-channels:
68         description:
69           From common IIO binding. Used to pipe PMIC ADC channel to thermal monitor
70
71       qcom,ratiometric:
72         $ref: /schemas/types.yaml#/definitions/flag
73         description:
74           Channel calibration type.
75           If this property is specified VADC will use the VDD reference
76           (1.875V) and GND for channel calibration. If property is not found,
77           channel will be calibrated with 0V and 1.25V reference channels,
78           also known as absolute calibration.
79
80       qcom,hw-settle-time-us:
81         $ref: /schemas/types.yaml#/definitions/uint32
82         description: Time between AMUX getting configured and the ADC starting conversion.
83         enum: [15, 100, 200, 300, 400, 500, 600, 700, 1000, 2000, 4000, 8000, 16000, 32000, 64000, 128000]
84
85       qcom,pre-scaling:
86         $ref: /schemas/types.yaml#/definitions/uint32-array
87         description: Used for scaling the channel input signal before the
88           signal is fed to VADC. The configuration for this node is to know the
89           pre-determined ratio and use it for post scaling. It is a pair of
90           integers, denoting the numerator and denominator of the fraction by
91           which input signal is multiplied. For example, <1 3> indicates the
92           signal is scaled down to 1/3 of its value before ADC measurement.  If
93           property is not found default value depending on chip will be used.
94         items:
95           - const: 1
96           - enum: [ 1, 3, 4, 6, 20, 8, 10 ]
97
98     required:
99       - reg
100       - io-channels
101
102     additionalProperties:
103       false
104
105 required:
106   - compatible
107   - reg
108   - interrupts
109   - "#address-cells"
110   - "#size-cells"
111   - "#thermal-sensor-cells"
112
113 additionalProperties: false
114
115 examples:
116   - |
117     #include <dt-bindings/iio/qcom,spmi-vadc.h>
118     #include <dt-bindings/interrupt-controller/irq.h>
119     spmi_bus {
120         #address-cells = <1>;
121         #size-cells = <0>;
122         pm8150b_adc: adc@3100 {
123             reg = <0x3100>;
124             compatible = "qcom,spmi-adc5";
125             #address-cells = <1>;
126             #size-cells = <0>;
127             #io-channel-cells = <1>;
128
129             /* Other propreties are omitted */
130             conn-therm@4f {
131                 reg = <ADC5_AMUX_THM3_100K_PU>;
132                 qcom,ratiometric;
133                 qcom,hw-settle-time = <200>;
134             };
135         };
136
137         pm8150b_adc_tm: adc-tm@3500 {
138             compatible = "qcom,spmi-adc-tm5";
139             reg = <0x3500>;
140             interrupts = <0x2 0x35 0x0 IRQ_TYPE_EDGE_RISING>;
141             #thermal-sensor-cells = <1>;
142             #address-cells = <1>;
143             #size-cells = <0>;
144
145             conn-therm@0 {
146                 reg = <0>;
147                 io-channels = <&pm8150b_adc ADC5_AMUX_THM3_100K_PU>;
148                 qcom,ratiometric;
149                 qcom,hw-settle-time-us = <200>;
150             };
151         };
152     };
153 ...