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