162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/thermal/qcom-spmi-adc-tm5.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Qualcomm's SPMI PMIC ADC Thermal Monitoring 862306a36Sopenharmony_cimaintainers: 962306a36Sopenharmony_ci - Dmitry Baryshkov <dmitry.baryshkov@linaro.org> 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ciproperties: 1262306a36Sopenharmony_ci compatible: 1362306a36Sopenharmony_ci enum: 1462306a36Sopenharmony_ci - qcom,spmi-adc-tm5 1562306a36Sopenharmony_ci - qcom,spmi-adc-tm5-gen2 1662306a36Sopenharmony_ci - qcom,adc-tm7 # Incomplete / subject to change 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci reg: 1962306a36Sopenharmony_ci maxItems: 1 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci interrupts: 2262306a36Sopenharmony_ci maxItems: 1 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci "#thermal-sensor-cells": 2562306a36Sopenharmony_ci const: 1 2662306a36Sopenharmony_ci description: 2762306a36Sopenharmony_ci Number of cells required to uniquely identify the thermal sensors. Since 2862306a36Sopenharmony_ci we have multiple sensors this is set to 1 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci "#address-cells": 3162306a36Sopenharmony_ci const: 1 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci "#size-cells": 3462306a36Sopenharmony_ci const: 0 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci qcom,avg-samples: 3762306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 3862306a36Sopenharmony_ci description: Number of samples to be used for measurement. 3962306a36Sopenharmony_ci Not applicable for Gen2 ADC_TM peripheral. 4062306a36Sopenharmony_ci enum: 4162306a36Sopenharmony_ci - 1 4262306a36Sopenharmony_ci - 2 4362306a36Sopenharmony_ci - 4 4462306a36Sopenharmony_ci - 8 4562306a36Sopenharmony_ci - 16 4662306a36Sopenharmony_ci default: 1 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci qcom,decimation: 4962306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 5062306a36Sopenharmony_ci description: This parameter is used to decrease ADC sampling rate. 5162306a36Sopenharmony_ci Quicker measurements can be made by reducing decimation ratio. 5262306a36Sopenharmony_ci Not applicable for Gen2 ADC_TM peripheral. 5362306a36Sopenharmony_ci enum: 5462306a36Sopenharmony_ci - 250 5562306a36Sopenharmony_ci - 420 5662306a36Sopenharmony_ci - 840 5762306a36Sopenharmony_ci default: 840 5862306a36Sopenharmony_ci 5962306a36Sopenharmony_cipatternProperties: 6062306a36Sopenharmony_ci "^([-a-z0-9]*)@[0-7]$": 6162306a36Sopenharmony_ci type: object 6262306a36Sopenharmony_ci description: 6362306a36Sopenharmony_ci Represent one thermal sensor. 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci properties: 6662306a36Sopenharmony_ci reg: 6762306a36Sopenharmony_ci description: Specify the sensor channel. There are 8 channels in PMIC5's ADC TM 6862306a36Sopenharmony_ci minimum: 0 6962306a36Sopenharmony_ci maximum: 7 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci io-channels: 7262306a36Sopenharmony_ci description: 7362306a36Sopenharmony_ci From common IIO binding. Used to pipe PMIC ADC channel to thermal monitor 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci qcom,ratiometric: 7662306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/flag 7762306a36Sopenharmony_ci description: 7862306a36Sopenharmony_ci Channel calibration type. 7962306a36Sopenharmony_ci If this property is specified VADC will use the VDD reference 8062306a36Sopenharmony_ci (1.875V) and GND for channel calibration. If property is not found, 8162306a36Sopenharmony_ci channel will be calibrated with 0V and 1.25V reference channels, 8262306a36Sopenharmony_ci also known as absolute calibration. 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci qcom,hw-settle-time-us: 8562306a36Sopenharmony_ci description: Time between AMUX getting configured and the ADC starting conversion. 8662306a36Sopenharmony_ci enum: [15, 100, 200, 300, 400, 500, 600, 700, 1000, 2000, 4000, 8000, 16000, 32000, 64000, 128000] 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ci qcom,pre-scaling: 8962306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32-array 9062306a36Sopenharmony_ci description: Used for scaling the channel input signal before the 9162306a36Sopenharmony_ci signal is fed to VADC. The configuration for this node is to know the 9262306a36Sopenharmony_ci pre-determined ratio and use it for post scaling. It is a pair of 9362306a36Sopenharmony_ci integers, denoting the numerator and denominator of the fraction by 9462306a36Sopenharmony_ci which input signal is multiplied. For example, <1 3> indicates the 9562306a36Sopenharmony_ci signal is scaled down to 1/3 of its value before ADC measurement. If 9662306a36Sopenharmony_ci property is not found default value depending on chip will be used. 9762306a36Sopenharmony_ci items: 9862306a36Sopenharmony_ci - const: 1 9962306a36Sopenharmony_ci - enum: [ 1, 3, 4, 6, 20, 8, 10 ] 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci qcom,avg-samples: 10262306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 10362306a36Sopenharmony_ci description: Number of samples to be used for measurement. 10462306a36Sopenharmony_ci This property in child node is applicable only for Gen2 ADC_TM peripheral. 10562306a36Sopenharmony_ci enum: 10662306a36Sopenharmony_ci - 1 10762306a36Sopenharmony_ci - 2 10862306a36Sopenharmony_ci - 4 10962306a36Sopenharmony_ci - 8 11062306a36Sopenharmony_ci - 16 11162306a36Sopenharmony_ci default: 1 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ci qcom,decimation: 11462306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 11562306a36Sopenharmony_ci description: This parameter is used to decrease ADC sampling rate. 11662306a36Sopenharmony_ci Quicker measurements can be made by reducing decimation ratio. 11762306a36Sopenharmony_ci This property in child node is applicable only for Gen2 ADC_TM peripheral. 11862306a36Sopenharmony_ci enum: 11962306a36Sopenharmony_ci - 85 12062306a36Sopenharmony_ci - 340 12162306a36Sopenharmony_ci - 1360 12262306a36Sopenharmony_ci default: 1360 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ci required: 12562306a36Sopenharmony_ci - reg 12662306a36Sopenharmony_ci - io-channels 12762306a36Sopenharmony_ci 12862306a36Sopenharmony_ci additionalProperties: 12962306a36Sopenharmony_ci false 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ciallOf: 13262306a36Sopenharmony_ci - if: 13362306a36Sopenharmony_ci properties: 13462306a36Sopenharmony_ci compatible: 13562306a36Sopenharmony_ci contains: 13662306a36Sopenharmony_ci const: qcom,spmi-adc-tm5 13762306a36Sopenharmony_ci 13862306a36Sopenharmony_ci then: 13962306a36Sopenharmony_ci patternProperties: 14062306a36Sopenharmony_ci "^([-a-z0-9]*)@[0-7]$": 14162306a36Sopenharmony_ci properties: 14262306a36Sopenharmony_ci qcom,decimation: false 14362306a36Sopenharmony_ci qcom,avg-samples: false 14462306a36Sopenharmony_ci 14562306a36Sopenharmony_ci - if: 14662306a36Sopenharmony_ci properties: 14762306a36Sopenharmony_ci compatible: 14862306a36Sopenharmony_ci contains: 14962306a36Sopenharmony_ci const: qcom,spmi-adc-tm5-gen2 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_ci then: 15262306a36Sopenharmony_ci properties: 15362306a36Sopenharmony_ci qcom,avg-samples: false 15462306a36Sopenharmony_ci qcom,decimation: false 15562306a36Sopenharmony_ci 15662306a36Sopenharmony_cirequired: 15762306a36Sopenharmony_ci - compatible 15862306a36Sopenharmony_ci - reg 15962306a36Sopenharmony_ci - interrupts 16062306a36Sopenharmony_ci - "#address-cells" 16162306a36Sopenharmony_ci - "#size-cells" 16262306a36Sopenharmony_ci - "#thermal-sensor-cells" 16362306a36Sopenharmony_ci 16462306a36Sopenharmony_ciadditionalProperties: false 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_ciexamples: 16762306a36Sopenharmony_ci - | 16862306a36Sopenharmony_ci #include <dt-bindings/iio/qcom,spmi-vadc.h> 16962306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 17062306a36Sopenharmony_ci spmi_bus { 17162306a36Sopenharmony_ci #address-cells = <1>; 17262306a36Sopenharmony_ci #size-cells = <0>; 17362306a36Sopenharmony_ci pm8150b_adc: adc@3100 { 17462306a36Sopenharmony_ci reg = <0x3100>; 17562306a36Sopenharmony_ci compatible = "qcom,spmi-adc5"; 17662306a36Sopenharmony_ci #address-cells = <1>; 17762306a36Sopenharmony_ci #size-cells = <0>; 17862306a36Sopenharmony_ci #io-channel-cells = <1>; 17962306a36Sopenharmony_ci 18062306a36Sopenharmony_ci /* Other properties are omitted */ 18162306a36Sopenharmony_ci channel@4f { 18262306a36Sopenharmony_ci reg = <ADC5_AMUX_THM3_100K_PU>; 18362306a36Sopenharmony_ci qcom,ratiometric; 18462306a36Sopenharmony_ci qcom,hw-settle-time = <200>; 18562306a36Sopenharmony_ci label = "conn_therm"; 18662306a36Sopenharmony_ci }; 18762306a36Sopenharmony_ci }; 18862306a36Sopenharmony_ci 18962306a36Sopenharmony_ci pm8150b_adc_tm: adc-tm@3500 { 19062306a36Sopenharmony_ci compatible = "qcom,spmi-adc-tm5"; 19162306a36Sopenharmony_ci reg = <0x3500>; 19262306a36Sopenharmony_ci interrupts = <0x2 0x35 0x0 IRQ_TYPE_EDGE_RISING>; 19362306a36Sopenharmony_ci #thermal-sensor-cells = <1>; 19462306a36Sopenharmony_ci #address-cells = <1>; 19562306a36Sopenharmony_ci #size-cells = <0>; 19662306a36Sopenharmony_ci 19762306a36Sopenharmony_ci conn-therm@0 { 19862306a36Sopenharmony_ci reg = <0>; 19962306a36Sopenharmony_ci io-channels = <&pm8150b_adc ADC5_AMUX_THM3_100K_PU>; 20062306a36Sopenharmony_ci qcom,ratiometric; 20162306a36Sopenharmony_ci qcom,hw-settle-time-us = <200>; 20262306a36Sopenharmony_ci }; 20362306a36Sopenharmony_ci }; 20462306a36Sopenharmony_ci }; 20562306a36Sopenharmony_ci 20662306a36Sopenharmony_ci - | 20762306a36Sopenharmony_ci #include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h> 20862306a36Sopenharmony_ci #include <dt-bindings/iio/qcom,spmi-adc7-pm8350.h> 20962306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 21062306a36Sopenharmony_ci spmi_bus { 21162306a36Sopenharmony_ci #address-cells = <1>; 21262306a36Sopenharmony_ci #size-cells = <0>; 21362306a36Sopenharmony_ci pmk8350_vadc: adc@3100 { 21462306a36Sopenharmony_ci reg = <0x3100>; 21562306a36Sopenharmony_ci compatible = "qcom,spmi-adc7"; 21662306a36Sopenharmony_ci #address-cells = <1>; 21762306a36Sopenharmony_ci #size-cells = <0>; 21862306a36Sopenharmony_ci #io-channel-cells = <1>; 21962306a36Sopenharmony_ci 22062306a36Sopenharmony_ci /* Other properties are omitted */ 22162306a36Sopenharmony_ci channel@44 { 22262306a36Sopenharmony_ci reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>; 22362306a36Sopenharmony_ci qcom,ratiometric; 22462306a36Sopenharmony_ci qcom,hw-settle-time = <200>; 22562306a36Sopenharmony_ci label = "xo_therm"; 22662306a36Sopenharmony_ci }; 22762306a36Sopenharmony_ci 22862306a36Sopenharmony_ci channel@147 { 22962306a36Sopenharmony_ci reg = <PM8350_ADC7_AMUX_THM4_100K_PU(1)>; 23062306a36Sopenharmony_ci qcom,ratiometric; 23162306a36Sopenharmony_ci qcom,hw-settle-time = <200>; 23262306a36Sopenharmony_ci label = "conn_therm"; 23362306a36Sopenharmony_ci }; 23462306a36Sopenharmony_ci }; 23562306a36Sopenharmony_ci 23662306a36Sopenharmony_ci pmk8350_adc_tm: adc-tm@3400 { 23762306a36Sopenharmony_ci compatible = "qcom,spmi-adc-tm5-gen2"; 23862306a36Sopenharmony_ci reg = <0x3400>; 23962306a36Sopenharmony_ci interrupts = <0x0 0x34 0x0 IRQ_TYPE_EDGE_RISING>; 24062306a36Sopenharmony_ci #thermal-sensor-cells = <1>; 24162306a36Sopenharmony_ci #address-cells = <1>; 24262306a36Sopenharmony_ci #size-cells = <0>; 24362306a36Sopenharmony_ci 24462306a36Sopenharmony_ci pmk8350-xo-therm@0 { 24562306a36Sopenharmony_ci reg = <0>; 24662306a36Sopenharmony_ci io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>; 24762306a36Sopenharmony_ci qcom,decimation = <340>; 24862306a36Sopenharmony_ci qcom,ratiometric; 24962306a36Sopenharmony_ci qcom,hw-settle-time-us = <200>; 25062306a36Sopenharmony_ci }; 25162306a36Sopenharmony_ci 25262306a36Sopenharmony_ci conn-therm@1 { 25362306a36Sopenharmony_ci reg = <1>; 25462306a36Sopenharmony_ci io-channels = <&pmk8350_vadc PM8350_ADC7_AMUX_THM4_100K_PU(1)>; 25562306a36Sopenharmony_ci qcom,avg-samples = <2>; 25662306a36Sopenharmony_ci qcom,ratiometric; 25762306a36Sopenharmony_ci qcom,hw-settle-time-us = <200>; 25862306a36Sopenharmony_ci }; 25962306a36Sopenharmony_ci }; 26062306a36Sopenharmony_ci }; 26162306a36Sopenharmony_ci... 262