mbox series

[v9,00/15] qcom: pm8150: add support for thermal monitoring

Message ID 20201102174950.1148498-1-dmitry.baryshkov@linaro.org
Headers show
Series qcom: pm8150: add support for thermal monitoring | expand

Message

Dmitry Baryshkov Nov. 2, 2020, 5:49 p.m. UTC
This patch serie adds support for thermal monitoring block on Qualcomm's
PMIC5 chips. PM8150{,b,l} and sm8250-mtp board device trees are extended
to support thermal zones provided by this thermal monitoring block.
Unlike the rest of PMIC thermal senses, these thermal zones describe
particular thermistors, which differ between from board to board.

Changes since v8:
 - Simplified qcom_vadc_map_voltage_temp() code by removing ascending
   tables support
 - Simplified qcom-vadc-common volt/temp mapping code
 - Implement suggestions by Matthias Kaehlcke: message formatting,
   rewrite comments, remove unused variable initialization.

Changes since v7:
 - Move qcom-vadc-common.h header to include/linux/iio/adc/ dir.
 - Use explicit sizeof(var) instead of hand-coding 1 when accessing
   adc-tm registers.
 - Remove buffer read from adc_tm5_init().
 - Remove extra on-stack var from adc_tm5_get_temp().
 - Minor formatting changes as suggested Daniel.

Changes since v6:
 - Added include <linux/bitfield.h> as noted by Jishnu Prakash.

Changes since v5:
 - Reworked DT bindings:
   * Removed qcom,adc-channel, instead it is parsed from io-channels
   * Renamed qcom,hw-settle-time to include -us suffix
 - Re-added monitor enabling which got lost during refactored. Noted by
   Jishnu Prakash.
 - Use threaded IRQ handler as susggested by Jishnu.

Changes since v4:
 - Added kernel-doc comments to ADC-TM structures
 - Used several sizeof(buf) instead of hand-conding register size

Changes since v3:
 - Fix DT description to spell "thermal monitoring" instead of just TM
 - Fix warnings in DT example
 - Add EXPORT_SYMBOL_GPL(of_iio_channel_get_by_name)
 - Fixed whitespace chanes in qcom-vadc-common.c
 - Removed error message if IIO chanel get returns -EPROBE_DEFER

Changes since v2:
 - IIO: export of_iio_channel_get_by_name() function
 - dt-bindings: move individual io-channels to each thermal monitoring
   channel rather than listing them all in device node
 - added fallback defaults to of_device_get_match_data calls in
   qcom-spmi-adc5 and qcom-spmi-adc-tm5 drivers
 - minor typo fixes

Changes since v1:
 - Introduce fixp_linear_interpolate() by Craig Tatlor
 - Lots of syntax/whitespace changes
 - Cleaned up register definitions per Jonathan's suggestion
 - Implemented most of the suggestions from Bjorn's and Jonathan's
   review

Comments

Rob Herring (Arm) Nov. 4, 2020, 6:32 p.m. UTC | #1
On Mon, 02 Nov 2020 20:49:36 +0300, Dmitry Baryshkov wrote:
> Add bindings for thermal monitor, part of Qualcomm PMIC5 chips. It is a
> close counterpart of VADC part of those PMICs.
> 
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> Reviewed-by: Rob Herring <robh@kernel.org>
> ---
>  .../bindings/thermal/qcom-spmi-adc-tm5.yaml   | 154 ++++++++++++++++++
>  1 file changed, 154 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/thermal/qcom-spmi-adc-tm5.yaml
> 


My bot found errors running 'make dt_binding_check' on your patch:

yamllint warnings/errors:

dtschema/dtc warnings/errors:
/builds/robherring/linux-dt-review/Documentation/devicetree/bindings/thermal/qcom-spmi-adc-tm5.example.dt.yaml: adc@3100: 'io-channels' is a dependency of 'io-channel-ranges'
	From schema: /usr/local/lib/python3.8/dist-packages/dtschema/schemas/iio/iio-consumer.yaml


See https://patchwork.ozlabs.org/patch/1392425

The base for the patch is generally the last rc1. Any dependencies
should be noted.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit.
Jonathan Cameron Nov. 8, 2020, 3:52 p.m. UTC | #2
On Wed, 4 Nov 2020 12:32:30 -0600
Rob Herring <robh@kernel.org> wrote:

> On Mon, 02 Nov 2020 20:49:36 +0300, Dmitry Baryshkov wrote:
> > Add bindings for thermal monitor, part of Qualcomm PMIC5 chips. It is a
> > close counterpart of VADC part of those PMICs.
> > 
> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
> > Reviewed-by: Rob Herring <robh@kernel.org>

Ah, this got picked up by the additions I made to dt-schema the other day.

So there are a few existing places where io-channel-ranges is miss provided
in dtsi files for io-channel providers (it's being ignored in most the places
it is specified!)

What it means is that the child nodes may use io-channel entries of their parent.
Hence it should only be specified on the consumer side.
Here we don't actually need it for the consumer either as the io-channels
entry is in the child node, not the parent.

I'm kind of assuming that I'll eventually do the immutable branch for this
series. If so I can clean this up whilst applying if everything else is fine
with v9.

Thanks,

Jonathan


> > ---
> >  .../bindings/thermal/qcom-spmi-adc-tm5.yaml   | 154 ++++++++++++++++++
> >  1 file changed, 154 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/thermal/qcom-spmi-adc-tm5.yaml
> >   
> 
> 
> My bot found errors running 'make dt_binding_check' on your patch:
> 
> yamllint warnings/errors:
> 
> dtschema/dtc warnings/errors:
> /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/thermal/qcom-spmi-adc-tm5.example.dt.yaml: adc@3100: 'io-channels' is a dependency of 'io-channel-ranges'
> 	From schema: /usr/local/lib/python3.8/dist-packages/dtschema/schemas/iio/iio-consumer.yaml
> 
> 
> See https://patchwork.ozlabs.org/patch/1392425
> 
> The base for the patch is generally the last rc1. Any dependencies
> should be noted.
> 
> If you already ran 'make dt_binding_check' and didn't see the above
> error(s), then make sure 'yamllint' is installed and dt-schema is up to
> date:
> 
> pip3 install dtschema --upgrade
> 
> Please check and re-submit.
>
Daniel Lezcano Nov. 12, 2020, 11:39 a.m. UTC | #3
Shall I take patch 1/15 and 12/15 ?



On 02/11/2020 18:49, Dmitry Baryshkov wrote:
> This patch serie adds support for thermal monitoring block on Qualcomm's

> PMIC5 chips. PM8150{,b,l} and sm8250-mtp board device trees are extended

> to support thermal zones provided by this thermal monitoring block.

> Unlike the rest of PMIC thermal senses, these thermal zones describe

> particular thermistors, which differ between from board to board.

> 

> Changes since v8:

>  - Simplified qcom_vadc_map_voltage_temp() code by removing ascending

>    tables support

>  - Simplified qcom-vadc-common volt/temp mapping code

>  - Implement suggestions by Matthias Kaehlcke: message formatting,

>    rewrite comments, remove unused variable initialization.

> 

> Changes since v7:

>  - Move qcom-vadc-common.h header to include/linux/iio/adc/ dir.

>  - Use explicit sizeof(var) instead of hand-coding 1 when accessing

>    adc-tm registers.

>  - Remove buffer read from adc_tm5_init().

>  - Remove extra on-stack var from adc_tm5_get_temp().

>  - Minor formatting changes as suggested Daniel.

> 

> Changes since v6:

>  - Added include <linux/bitfield.h> as noted by Jishnu Prakash.

> 

> Changes since v5:

>  - Reworked DT bindings:

>    * Removed qcom,adc-channel, instead it is parsed from io-channels

>    * Renamed qcom,hw-settle-time to include -us suffix

>  - Re-added monitor enabling which got lost during refactored. Noted by

>    Jishnu Prakash.

>  - Use threaded IRQ handler as susggested by Jishnu.

> 

> Changes since v4:

>  - Added kernel-doc comments to ADC-TM structures

>  - Used several sizeof(buf) instead of hand-conding register size

> 

> Changes since v3:

>  - Fix DT description to spell "thermal monitoring" instead of just TM

>  - Fix warnings in DT example

>  - Add EXPORT_SYMBOL_GPL(of_iio_channel_get_by_name)

>  - Fixed whitespace chanes in qcom-vadc-common.c

>  - Removed error message if IIO chanel get returns -EPROBE_DEFER

> 

> Changes since v2:

>  - IIO: export of_iio_channel_get_by_name() function

>  - dt-bindings: move individual io-channels to each thermal monitoring

>    channel rather than listing them all in device node

>  - added fallback defaults to of_device_get_match_data calls in

>    qcom-spmi-adc5 and qcom-spmi-adc-tm5 drivers

>  - minor typo fixes

> 

> Changes since v1:

>  - Introduce fixp_linear_interpolate() by Craig Tatlor

>  - Lots of syntax/whitespace changes

>  - Cleaned up register definitions per Jonathan's suggestion

>  - Implemented most of the suggestions from Bjorn's and Jonathan's

>    review

> 

> 



-- 
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
Dmitry Baryshkov Nov. 12, 2020, 12:41 p.m. UTC | #4
On Thu, 12 Nov 2020 at 14:39, Daniel Lezcano <daniel.lezcano@linaro.org> wrote:
>

>

> Shall I take patch 1/15 and 12/15 ?


12/15 will not compile without several previous patches, so it might
be better to take all of them through the single tree.

>

>

>

> On 02/11/2020 18:49, Dmitry Baryshkov wrote:

> > This patch serie adds support for thermal monitoring block on Qualcomm's

> > PMIC5 chips. PM8150{,b,l} and sm8250-mtp board device trees are extended

> > to support thermal zones provided by this thermal monitoring block.

> > Unlike the rest of PMIC thermal senses, these thermal zones describe

> > particular thermistors, which differ between from board to board.

> >

> > Changes since v8:

> >  - Simplified qcom_vadc_map_voltage_temp() code by removing ascending

> >    tables support

> >  - Simplified qcom-vadc-common volt/temp mapping code

> >  - Implement suggestions by Matthias Kaehlcke: message formatting,

> >    rewrite comments, remove unused variable initialization.

> >

> > Changes since v7:

> >  - Move qcom-vadc-common.h header to include/linux/iio/adc/ dir.

> >  - Use explicit sizeof(var) instead of hand-coding 1 when accessing

> >    adc-tm registers.

> >  - Remove buffer read from adc_tm5_init().

> >  - Remove extra on-stack var from adc_tm5_get_temp().

> >  - Minor formatting changes as suggested Daniel.

> >

> > Changes since v6:

> >  - Added include <linux/bitfield.h> as noted by Jishnu Prakash.

> >

> > Changes since v5:

> >  - Reworked DT bindings:

> >    * Removed qcom,adc-channel, instead it is parsed from io-channels

> >    * Renamed qcom,hw-settle-time to include -us suffix

> >  - Re-added monitor enabling which got lost during refactored. Noted by

> >    Jishnu Prakash.

> >  - Use threaded IRQ handler as susggested by Jishnu.

> >

> > Changes since v4:

> >  - Added kernel-doc comments to ADC-TM structures

> >  - Used several sizeof(buf) instead of hand-conding register size

> >

> > Changes since v3:

> >  - Fix DT description to spell "thermal monitoring" instead of just TM

> >  - Fix warnings in DT example

> >  - Add EXPORT_SYMBOL_GPL(of_iio_channel_get_by_name)

> >  - Fixed whitespace chanes in qcom-vadc-common.c

> >  - Removed error message if IIO chanel get returns -EPROBE_DEFER

> >

> > Changes since v2:

> >  - IIO: export of_iio_channel_get_by_name() function

> >  - dt-bindings: move individual io-channels to each thermal monitoring

> >    channel rather than listing them all in device node

> >  - added fallback defaults to of_device_get_match_data calls in

> >    qcom-spmi-adc5 and qcom-spmi-adc-tm5 drivers

> >  - minor typo fixes

> >

> > Changes since v1:

> >  - Introduce fixp_linear_interpolate() by Craig Tatlor

> >  - Lots of syntax/whitespace changes

> >  - Cleaned up register definitions per Jonathan's suggestion

> >  - Implemented most of the suggestions from Bjorn's and Jonathan's

> >    review

> >

> >

>

>

> --

> <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

>

> Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |

> <http://twitter.com/#!/linaroorg> Twitter |

> <http://www.linaro.org/linaro-blog/> Blog




-- 
With best wishes
Dmitry
Daniel Lezcano Nov. 12, 2020, 1:13 p.m. UTC | #5
On 12/11/2020 13:41, Dmitry Baryshkov wrote:
> On Thu, 12 Nov 2020 at 14:39, Daniel Lezcano <daniel.lezcano@linaro.org> wrote:

>>

>>

>> Shall I take patch 1/15 and 12/15 ?

> 

> 12/15 will not compile without several previous patches, so it might

> be better to take all of them through the single tree.


Ok, I will take some time to review the driver and ack it, so it can be
merged through the iio tree.


-- 
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog