258 lines
7.2 KiB
YAML
258 lines
7.2 KiB
YAML
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||
|
%YAML 1.2
|
||
|
---
|
||
|
$id: http://devicetree.org/schemas/thermal/qcom-spmi-adc-tm5.yaml#
|
||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||
|
|
||
|
title: Qualcomm's SPMI PMIC ADC Thermal Monitoring
|
||
|
maintainers:
|
||
|
- Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
|
||
|
|
||
|
properties:
|
||
|
compatible:
|
||
|
enum:
|
||
|
- qcom,spmi-adc-tm5
|
||
|
- qcom,spmi-adc-tm5-gen2
|
||
|
|
||
|
reg:
|
||
|
maxItems: 1
|
||
|
|
||
|
interrupts:
|
||
|
maxItems: 1
|
||
|
|
||
|
"#thermal-sensor-cells":
|
||
|
const: 1
|
||
|
description:
|
||
|
Number of cells required to uniquely identify the thermal sensors. Since
|
||
|
we have multiple sensors this is set to 1
|
||
|
|
||
|
"#address-cells":
|
||
|
const: 1
|
||
|
|
||
|
"#size-cells":
|
||
|
const: 0
|
||
|
|
||
|
qcom,avg-samples:
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
description: Number of samples to be used for measurement.
|
||
|
Not applicable for Gen2 ADC_TM peripheral.
|
||
|
enum:
|
||
|
- 1
|
||
|
- 2
|
||
|
- 4
|
||
|
- 8
|
||
|
- 16
|
||
|
default: 1
|
||
|
|
||
|
qcom,decimation:
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
description: This parameter is used to decrease ADC sampling rate.
|
||
|
Quicker measurements can be made by reducing decimation ratio.
|
||
|
Not applicable for Gen2 ADC_TM peripheral.
|
||
|
enum:
|
||
|
- 250
|
||
|
- 420
|
||
|
- 840
|
||
|
default: 840
|
||
|
|
||
|
patternProperties:
|
||
|
"^([-a-z0-9]*)@[0-7]$":
|
||
|
type: object
|
||
|
description:
|
||
|
Represent one thermal sensor.
|
||
|
|
||
|
properties:
|
||
|
reg:
|
||
|
description: Specify the sensor channel. There are 8 channels in PMIC5's ADC TM
|
||
|
minimum: 0
|
||
|
maximum: 7
|
||
|
|
||
|
io-channels:
|
||
|
description:
|
||
|
From common IIO binding. Used to pipe PMIC ADC channel to thermal monitor
|
||
|
|
||
|
qcom,ratiometric:
|
||
|
$ref: /schemas/types.yaml#/definitions/flag
|
||
|
description:
|
||
|
Channel calibration type.
|
||
|
If this property is specified VADC will use the VDD reference
|
||
|
(1.875V) and GND for channel calibration. If property is not found,
|
||
|
channel will be calibrated with 0V and 1.25V reference channels,
|
||
|
also known as absolute calibration.
|
||
|
|
||
|
qcom,hw-settle-time-us:
|
||
|
description: Time between AMUX getting configured and the ADC starting conversion.
|
||
|
enum: [15, 100, 200, 300, 400, 500, 600, 700, 1000, 2000, 4000, 8000, 16000, 32000, 64000, 128000]
|
||
|
|
||
|
qcom,pre-scaling:
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||
|
description: Used for scaling the channel input signal before the
|
||
|
signal is fed to VADC. The configuration for this node is to know the
|
||
|
pre-determined ratio and use it for post scaling. It is a pair of
|
||
|
integers, denoting the numerator and denominator of the fraction by
|
||
|
which input signal is multiplied. For example, <1 3> indicates the
|
||
|
signal is scaled down to 1/3 of its value before ADC measurement. If
|
||
|
property is not found default value depending on chip will be used.
|
||
|
items:
|
||
|
- const: 1
|
||
|
- enum: [ 1, 3, 4, 6, 20, 8, 10 ]
|
||
|
|
||
|
qcom,avg-samples:
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
description: Number of samples to be used for measurement.
|
||
|
This property in child node is applicable only for Gen2 ADC_TM peripheral.
|
||
|
enum:
|
||
|
- 1
|
||
|
- 2
|
||
|
- 4
|
||
|
- 8
|
||
|
- 16
|
||
|
default: 1
|
||
|
|
||
|
qcom,decimation:
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
description: This parameter is used to decrease ADC sampling rate.
|
||
|
Quicker measurements can be made by reducing decimation ratio.
|
||
|
This property in child node is applicable only for Gen2 ADC_TM peripheral.
|
||
|
enum:
|
||
|
- 85
|
||
|
- 340
|
||
|
- 1360
|
||
|
default: 1360
|
||
|
|
||
|
required:
|
||
|
- reg
|
||
|
- io-channels
|
||
|
|
||
|
additionalProperties:
|
||
|
false
|
||
|
|
||
|
allOf:
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
const: qcom,spmi-adc-tm5
|
||
|
|
||
|
then:
|
||
|
patternProperties:
|
||
|
"^([-a-z0-9]*)@[0-7]$":
|
||
|
properties:
|
||
|
qcom,decimation: false
|
||
|
qcom,avg-samples: false
|
||
|
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
const: qcom,spmi-adc-tm5-gen2
|
||
|
|
||
|
then:
|
||
|
properties:
|
||
|
qcom,avg-samples: false
|
||
|
qcom,decimation: false
|
||
|
|
||
|
required:
|
||
|
- compatible
|
||
|
- reg
|
||
|
- interrupts
|
||
|
- "#address-cells"
|
||
|
- "#size-cells"
|
||
|
- "#thermal-sensor-cells"
|
||
|
|
||
|
additionalProperties: false
|
||
|
|
||
|
examples:
|
||
|
- |
|
||
|
#include <dt-bindings/iio/qcom,spmi-vadc.h>
|
||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||
|
spmi_bus {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
pm8150b_adc: adc@3100 {
|
||
|
reg = <0x3100>;
|
||
|
compatible = "qcom,spmi-adc5";
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
#io-channel-cells = <1>;
|
||
|
|
||
|
/* Other properties are omitted */
|
||
|
conn-therm@4f {
|
||
|
reg = <ADC5_AMUX_THM3_100K_PU>;
|
||
|
qcom,ratiometric;
|
||
|
qcom,hw-settle-time = <200>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
pm8150b_adc_tm: adc-tm@3500 {
|
||
|
compatible = "qcom,spmi-adc-tm5";
|
||
|
reg = <0x3500>;
|
||
|
interrupts = <0x2 0x35 0x0 IRQ_TYPE_EDGE_RISING>;
|
||
|
#thermal-sensor-cells = <1>;
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
conn-therm@0 {
|
||
|
reg = <0>;
|
||
|
io-channels = <&pm8150b_adc ADC5_AMUX_THM3_100K_PU>;
|
||
|
qcom,ratiometric;
|
||
|
qcom,hw-settle-time-us = <200>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
- |
|
||
|
#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
|
||
|
#include <dt-bindings/iio/qcom,spmi-adc7-pm8350.h>
|
||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||
|
spmi_bus {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
pmk8350_vadc: adc@3100 {
|
||
|
reg = <0x3100>;
|
||
|
compatible = "qcom,spmi-adc7";
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
#io-channel-cells = <1>;
|
||
|
|
||
|
/* Other properties are omitted */
|
||
|
xo-therm@44 {
|
||
|
reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
|
||
|
qcom,ratiometric;
|
||
|
qcom,hw-settle-time = <200>;
|
||
|
};
|
||
|
|
||
|
conn-therm@47 {
|
||
|
reg = <PM8350_ADC7_AMUX_THM4_100K_PU>;
|
||
|
qcom,ratiometric;
|
||
|
qcom,hw-settle-time = <200>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
pmk8350_adc_tm: adc-tm@3400 {
|
||
|
compatible = "qcom,spmi-adc-tm5-gen2";
|
||
|
reg = <0x3400>;
|
||
|
interrupts = <0x0 0x34 0x0 IRQ_TYPE_EDGE_RISING>;
|
||
|
#thermal-sensor-cells = <1>;
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
pmk8350-xo-therm@0 {
|
||
|
reg = <0>;
|
||
|
io-channels = <&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
|
||
|
qcom,decimation = <340>;
|
||
|
qcom,ratiometric;
|
||
|
qcom,hw-settle-time-us = <200>;
|
||
|
};
|
||
|
|
||
|
conn-therm@1 {
|
||
|
reg = <1>;
|
||
|
io-channels = <&pmk8350_vadc PM8350_ADC7_AMUX_THM4_100K_PU>;
|
||
|
qcom,avg-samples = <2>;
|
||
|
qcom,ratiometric;
|
||
|
qcom,hw-settle-time-us = <200>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
...
|