Message ID | 20250216-rk3576-tsadc-upstream-v1-4-6ec969322a14@collabora.com |
---|---|
State | New |
Headers | show |
Series | RK3576 thermal sensor support, including OTP trim adjustments | expand |
On Sun, Feb 16, 2025 at 12:34:53AM +0100, Nicolas Frattaroli wrote: > Several Rockchip SoCs, such as the RK3576, can store calibration trim > data for thermal sensors in OTP cells. This capability should be > documented. Is several most or a minority as this change is enabled for everyone. > > Such a rockchip thermal sensor may reference cell handles that store > both a chip-wide trim for all the sensors, as well as cell handles > for each individual sensor channel pointing to that specific sensor's > trim value. > > Additionally, the thermal sensor may optionally reference cells which > store the base in terms of degrees celsius and decicelsius that the trim > is relative to. > > Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com> > --- > .../bindings/thermal/rockchip-thermal.yaml | 44 ++++++++++++++++++++++ > 1 file changed, 44 insertions(+) > > diff --git a/Documentation/devicetree/bindings/thermal/rockchip-thermal.yaml b/Documentation/devicetree/bindings/thermal/rockchip-thermal.yaml > index 49ceed68c92ce5a32ed8d4f39bd88fd052de0e80..8d27ddefcc64e29f0faab059888805802c948b41 100644 > --- a/Documentation/devicetree/bindings/thermal/rockchip-thermal.yaml > +++ b/Documentation/devicetree/bindings/thermal/rockchip-thermal.yaml > @@ -40,6 +40,21 @@ properties: > - const: tsadc > - const: apb_pclk > > + nvmem-cells: > + items: > + - description: cell handle of the low byte of the chip fallback trim value > + - description: cell handle of the high byte of the chip fallback trim value > + - description: cell handle to where the trim's base temperature is stored > + - description: > + cell handle to where the trim's tenths of Celsius base value is stored > + > + nvmem-cell-names: > + enum: > + - trim_l > + - trim_h > + - trim_base > + - trim_base_frac > + > resets: > minItems: 1 > maxItems: 3 > @@ -51,6 +66,12 @@ properties: > - const: tsadc > - const: tsadc-phy > > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 > + > "#thermal-sensor-cells": > const: 1 > > @@ -72,6 +93,29 @@ properties: > $ref: /schemas/types.yaml#/definitions/uint32 > enum: [0, 1] > > +patternProperties: > + "^([a-z]+)@[0-9]+$": If each node is a sensor or channel, then make that the node name. > + type: object > + properties: > + reg: > + maxItems: 1 > + description: sensor ID, a.k.a. channel number > + > + nvmem-cells: > + items: > + - description: handle of cell containing low byte of calibration data > + - description: handle of cell containing high byte of calibration data > + > + nvmem-cell-names: > + items: > + - const: trim_l > + - const: trim_h > + > + required: > + - reg > + > + unevaluatedProperties: false > + > required: > - compatible > - reg > > -- > 2.48.1 >
diff --git a/Documentation/devicetree/bindings/thermal/rockchip-thermal.yaml b/Documentation/devicetree/bindings/thermal/rockchip-thermal.yaml index 49ceed68c92ce5a32ed8d4f39bd88fd052de0e80..8d27ddefcc64e29f0faab059888805802c948b41 100644 --- a/Documentation/devicetree/bindings/thermal/rockchip-thermal.yaml +++ b/Documentation/devicetree/bindings/thermal/rockchip-thermal.yaml @@ -40,6 +40,21 @@ properties: - const: tsadc - const: apb_pclk + nvmem-cells: + items: + - description: cell handle of the low byte of the chip fallback trim value + - description: cell handle of the high byte of the chip fallback trim value + - description: cell handle to where the trim's base temperature is stored + - description: + cell handle to where the trim's tenths of Celsius base value is stored + + nvmem-cell-names: + enum: + - trim_l + - trim_h + - trim_base + - trim_base_frac + resets: minItems: 1 maxItems: 3 @@ -51,6 +66,12 @@ properties: - const: tsadc - const: tsadc-phy + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + "#thermal-sensor-cells": const: 1 @@ -72,6 +93,29 @@ properties: $ref: /schemas/types.yaml#/definitions/uint32 enum: [0, 1] +patternProperties: + "^([a-z]+)@[0-9]+$": + type: object + properties: + reg: + maxItems: 1 + description: sensor ID, a.k.a. channel number + + nvmem-cells: + items: + - description: handle of cell containing low byte of calibration data + - description: handle of cell containing high byte of calibration data + + nvmem-cell-names: + items: + - const: trim_l + - const: trim_h + + required: + - reg + + unevaluatedProperties: false + required: - compatible - reg
Several Rockchip SoCs, such as the RK3576, can store calibration trim data for thermal sensors in OTP cells. This capability should be documented. Such a rockchip thermal sensor may reference cell handles that store both a chip-wide trim for all the sensors, as well as cell handles for each individual sensor channel pointing to that specific sensor's trim value. Additionally, the thermal sensor may optionally reference cells which store the base in terms of degrees celsius and decicelsius that the trim is relative to. Signed-off-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com> --- .../bindings/thermal/rockchip-thermal.yaml | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+)