diff mbox series

[1/7] dt-bindings: Add DT bindings documentation for Allwinner Thermal Sensor Controller

Message ID 20180804070355.14857-1-manu@freebsd.org (mailing list archive)
State New, archived
Headers show
Series [1/7] dt-bindings: Add DT bindings documentation for Allwinner Thermal Sensor Controller | expand

Commit Message

Emmanuel Vadot Aug. 4, 2018, 7:03 a.m. UTC
This patch adds documentation for Device-Tree bindings for the Allwinner
Thermal Sensor Controller found on the H3, H5 and A64 SoCs

Signed-off-by: Emmanuel Vadot <manu@freebsd.org>
---
 .../bindings/thermal/allwinner-thermal.txt    | 41 +++++++++++++++++++
 1 file changed, 41 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/thermal/allwinner-thermal.txt

Comments

Rob Herring (Arm) Aug. 14, 2018, 7:20 p.m. UTC | #1
On Sat, Aug 04, 2018 at 09:03:49AM +0200, Emmanuel Vadot wrote:
> This patch adds documentation for Device-Tree bindings for the Allwinner
> Thermal Sensor Controller found on the H3, H5 and A64 SoCs
> 
> Signed-off-by: Emmanuel Vadot <manu@freebsd.org>
> ---
>  .../bindings/thermal/allwinner-thermal.txt    | 41 +++++++++++++++++++
>  1 file changed, 41 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/thermal/allwinner-thermal.txt
> 
> diff --git a/Documentation/devicetree/bindings/thermal/allwinner-thermal.txt b/Documentation/devicetree/bindings/thermal/allwinner-thermal.txt
> new file mode 100644
> index 000000000000..5810d44cf495
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/thermal/allwinner-thermal.txt
> @@ -0,0 +1,41 @@
> +* Thermal Sensor Controller on Allwinner SoCs
> +
> +Required properties:
> +- compatible : should be "allwinner,<name>-ths"
> +   "allwinner,sun8i-h3-ths": found on H3 and H2+ SoCs
> +   "allwinner,sun50i-h5-ths": found on H5 SoC
> +   "allwinner,sun50i-a64-ths": found on H5 SoC
> +- reg : physical base address of the controller and length of memory mapped
> +	region.
> +- interrupts : The interrupt number to the cpu. The interrupt specifier format
> +	       depends on the interrupt controller.

Just need to say how many entries (and order if more than one).

> +- clocks : Must contain an entry for each entry in clock-names.
> +- clock-names : Shall be "apb" for the bus, and "ths" for
> +		the peripheral clock.
> +- resets : Must contain an entry for each entry in reset-names.
> +	   See ../reset/reset.txt for details.
> +- reset-names : Must be "apb".
> +- #thermal-sensor-cells : Depend on the SoC
> +   For H3 should be 0
> +   For H5 should be 1
> +   For A64 should be 2
> +   See ./thermal.txt for a description.
> +- nvmem-cells : Phandle to the calibration data
> +- nvmem-cell-names = Should be "ths-calib"
> +
> +Example:
> +
> +ths: thermal_sensor@1c25000 {

thermal-sensor@...

> +	compatible = "allwinner,sun8i-h3-ths";
> +	reg = <0x01c25000 0x100>;
> +	interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
> +	clocks = <&ccu CLK_BUS_THS>, <&ccu CLK_THS>;
> +	clock-names = "apb", "ths";
> +	resets = <&ccu RST_BUS_THS>;
> +	reset-names = "apb";
> +	#thermal-sensor-cells = <0>;
> +	status = "disabled";
> +
> +	nvmem-cells = <&ths_calib>;
> +	nvmem-cell-names = "ths-calib";
> +};
> -- 
> 2.18.0
>
Maxime Ripard Aug. 20, 2018, 11:17 a.m. UTC | #2
On Sat, Aug 04, 2018 at 09:03:49AM +0200, Emmanuel Vadot wrote:
> This patch adds documentation for Device-Tree bindings for the Allwinner
> Thermal Sensor Controller found on the H3, H5 and A64 SoCs
> 
> Signed-off-by: Emmanuel Vadot <manu@freebsd.org>

I'm not going to merge a binding for a device that doesn't have any
driver implemented at the moment in Linux.

Maxime
Rob Herring Aug. 20, 2018, 1:41 p.m. UTC | #3
On Mon, Aug 20, 2018 at 5:17 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote:
>
> On Sat, Aug 04, 2018 at 09:03:49AM +0200, Emmanuel Vadot wrote:
> > This patch adds documentation for Device-Tree bindings for the Allwinner
> > Thermal Sensor Controller found on the H3, H5 and A64 SoCs
> >
> > Signed-off-by: Emmanuel Vadot <manu@freebsd.org>
>
> I'm not going to merge a binding for a device that doesn't have any
> driver implemented at the moment in Linux.

I'll take it then. Linux is not the only DT client.

Rob
Emmanuel Vadot Aug. 20, 2018, 1:57 p.m. UTC | #4
On Mon, 20 Aug 2018 07:41:22 -0600
Rob Herring <robh+dt@kernel.org> wrote:

> On Mon, Aug 20, 2018 at 5:17 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> >
> > On Sat, Aug 04, 2018 at 09:03:49AM +0200, Emmanuel Vadot wrote:
> > > This patch adds documentation for Device-Tree bindings for the Allwinner
> > > Thermal Sensor Controller found on the H3, H5 and A64 SoCs
> > >
> > > Signed-off-by: Emmanuel Vadot <manu@freebsd.org>
> >
> > I'm not going to merge a binding for a device that doesn't have any
> > driver implemented at the moment in Linux.
> 
> I'll take it then. Linux is not the only DT client.
> 
> Rob

 Thanks Rob, I'll send a V2 shortly with the modification you asked and
some minor others documentation corrections.
Maxime Ripard Aug. 20, 2018, 2:07 p.m. UTC | #5
On Mon, Aug 20, 2018 at 07:41:22AM -0600, Rob Herring wrote:
> On Mon, Aug 20, 2018 at 5:17 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> >
> > On Sat, Aug 04, 2018 at 09:03:49AM +0200, Emmanuel Vadot wrote:
> > > This patch adds documentation for Device-Tree bindings for the Allwinner
> > > Thermal Sensor Controller found on the H3, H5 and A64 SoCs
> > >
> > > Signed-off-by: Emmanuel Vadot <manu@freebsd.org>
> >
> > I'm not going to merge a binding for a device that doesn't have any
> > driver implemented at the moment in Linux.
> 
> I'll take it then. Linux is not the only DT client.

Then don't complain if we ever have to break the ABI. We never tested
that hardware, never had any code running on it, and it *will* cause
some issues. For example, the calibration data have never been used
and how they should be represented have never been described, since no
one ever actually tried to use it.

And sure, Linux is not the only DT client. Just like FreeBSD isn't.

Maxime
Emmanuel Vadot Aug. 20, 2018, 2:27 p.m. UTC | #6
On Mon, 20 Aug 2018 16:07:37 +0200
Maxime Ripard <maxime.ripard@bootlin.com> wrote:

> On Mon, Aug 20, 2018 at 07:41:22AM -0600, Rob Herring wrote:
> > On Mon, Aug 20, 2018 at 5:17 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> > >
> > > On Sat, Aug 04, 2018 at 09:03:49AM +0200, Emmanuel Vadot wrote:
> > > > This patch adds documentation for Device-Tree bindings for the Allwinner
> > > > Thermal Sensor Controller found on the H3, H5 and A64 SoCs
> > > >
> > > > Signed-off-by: Emmanuel Vadot <manu@freebsd.org>
> > >
> > > I'm not going to merge a binding for a device that doesn't have any
> > > driver implemented at the moment in Linux.
> > 
> > I'll take it then. Linux is not the only DT client.
> 
> Then don't complain if we ever have to break the ABI. We never tested
> that hardware, never had any code running on it, and it *will* cause
> some issues. For example, the calibration data have never been used
> and how they should be represented have never been described, since no
> one ever actually tried to use it.
> 
> And sure, Linux is not the only DT client. Just like FreeBSD isn't.
> 
> Maxime

 Maxime,

 What kind of data would you need for me to make things better ?
 We have the driver in FreeBSD for almost two years now, whne I started
to see how to upstream it I noticed a lot of problems and spent 4 or 5
days to try on all the SoCs mentionned in the serie, the only SoC I
didn't include it the A83T as for some reason I couldn't make the
driver work.
 I just hope that you understand that we cannot wait for Linux to have
a driver to have some bindings.

 Cheers,
Rob Herring Aug. 20, 2018, 6:47 p.m. UTC | #7
On Mon, Aug 20, 2018 at 9:07 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote:
>
> On Mon, Aug 20, 2018 at 07:41:22AM -0600, Rob Herring wrote:
> > On Mon, Aug 20, 2018 at 5:17 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> > >
> > > On Sat, Aug 04, 2018 at 09:03:49AM +0200, Emmanuel Vadot wrote:
> > > > This patch adds documentation for Device-Tree bindings for the Allwinner
> > > > Thermal Sensor Controller found on the H3, H5 and A64 SoCs
> > > >
> > > > Signed-off-by: Emmanuel Vadot <manu@freebsd.org>
> > >
> > > I'm not going to merge a binding for a device that doesn't have any
> > > driver implemented at the moment in Linux.
> >
> > I'll take it then. Linux is not the only DT client.
>
> Then don't complain if we ever have to break the ABI.

My only complaint is when breaking ABIs and not being clear about
doing so. Otherwise, it is up to platform maintainers to not upset
their users (including if some of those users are FreeBSD).

> We never tested
> that hardware, never had any code running on it, and it *will* cause
> some issues. For example, the calibration data have never been used
> and how they should be represented have never been described, since no
> one ever actually tried to use it.

Then perhaps that part of the binding should be omitted for now. But I
don't see how if this works for FreeBSD how it wouldn't for Linux.

Rob
Maxime Ripard Aug. 24, 2018, 2:58 p.m. UTC | #8
Hi,

On Mon, Aug 20, 2018 at 04:27:15PM +0200, Emmanuel Vadot wrote:
> On Mon, 20 Aug 2018 16:07:37 +0200
> Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> 
> > On Mon, Aug 20, 2018 at 07:41:22AM -0600, Rob Herring wrote:
> > > On Mon, Aug 20, 2018 at 5:17 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> > > >
> > > > On Sat, Aug 04, 2018 at 09:03:49AM +0200, Emmanuel Vadot wrote:
> > > > > This patch adds documentation for Device-Tree bindings for the Allwinner
> > > > > Thermal Sensor Controller found on the H3, H5 and A64 SoCs
> > > > >
> > > > > Signed-off-by: Emmanuel Vadot <manu@freebsd.org>
> > > >
> > > > I'm not going to merge a binding for a device that doesn't have any
> > > > driver implemented at the moment in Linux.
> > > 
> > > I'll take it then. Linux is not the only DT client.
> > 
> > Then don't complain if we ever have to break the ABI. We never tested
> > that hardware, never had any code running on it, and it *will* cause
> > some issues. For example, the calibration data have never been used
> > and how they should be represented have never been described, since no
> > one ever actually tried to use it.
> > 
> > And sure, Linux is not the only DT client. Just like FreeBSD isn't.
> 
>  What kind of data would you need for me to make things better ?
>  We have the driver in FreeBSD for almost two years now, whne I started
> to see how to upstream it I noticed a lot of problems and spent 4 or 5
> days to try on all the SoCs mentionned in the serie, the only SoC I
> didn't include it the A83T as for some reason I couldn't make the
> driver work.

Do you have a link to that driver? How and how much did you test it?

Are you using the calibration data stored in the SID?

> I just hope that you understand that we cannot wait for Linux to
> have a driver to have some bindings.

Just like I'm sure you can understand that just merging the DT bits
without testing anything caused some troubles in the past, and I don't
want to discover it in a year from now.

Maxime
Emmanuel Vadot Aug. 24, 2018, 7:59 p.m. UTC | #9
Hi,

On Fri, 24 Aug 2018 16:58:40 +0200
Maxime Ripard <maxime.ripard@bootlin.com> wrote:

> Hi,
> 
> On Mon, Aug 20, 2018 at 04:27:15PM +0200, Emmanuel Vadot wrote:
> > On Mon, 20 Aug 2018 16:07:37 +0200
> > Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> > 
> > > On Mon, Aug 20, 2018 at 07:41:22AM -0600, Rob Herring wrote:
> > > > On Mon, Aug 20, 2018 at 5:17 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> > > > >
> > > > > On Sat, Aug 04, 2018 at 09:03:49AM +0200, Emmanuel Vadot wrote:
> > > > > > This patch adds documentation for Device-Tree bindings for the Allwinner
> > > > > > Thermal Sensor Controller found on the H3, H5 and A64 SoCs
> > > > > >
> > > > > > Signed-off-by: Emmanuel Vadot <manu@freebsd.org>
> > > > >
> > > > > I'm not going to merge a binding for a device that doesn't have any
> > > > > driver implemented at the moment in Linux.
> > > > 
> > > > I'll take it then. Linux is not the only DT client.
> > > 
> > > Then don't complain if we ever have to break the ABI. We never tested
> > > that hardware, never had any code running on it, and it *will* cause
> > > some issues. For example, the calibration data have never been used
> > > and how they should be represented have never been described, since no
> > > one ever actually tried to use it.
> > > 
> > > And sure, Linux is not the only DT client. Just like FreeBSD isn't.
> > 
> >  What kind of data would you need for me to make things better ?
> >  We have the driver in FreeBSD for almost two years now, whne I started
> > to see how to upstream it I noticed a lot of problems and spent 4 or 5
> > days to try on all the SoCs mentionned in the serie, the only SoC I
> > didn't include it the A83T as for some reason I couldn't make the
> > driver work.
> 
> Do you have a link to that driver? 

 https://github.com/freebsd/freebsd/blob/master/sys/arm/allwinner/aw_thermal.c

> How and how much did you test it?

 Using a cheap IR thermometer as it's all I can afford.
 Then running multiples cpufreq-a53 process and comparing the result.
 Did the same without using the calibration data, result where closer
when I used them.

> Are you using the calibration data stored in the SID?

 Yes, which is why the serie contain the nvmem cell for the SID.

> 
> > I just hope that you understand that we cannot wait for Linux to
> > have a driver to have some bindings.
> 
> Just like I'm sure you can understand that just merging the DT bits
> without testing anything caused some troubles in the past, and I don't
> want to discover it in a year from now.

 I do, I don't like wrong DT info as much as you do I think. I had
the unfortunate event to find that the sun4i-a10-timer compatible used
in every soc is plain wrong for !A10 and !A13, patches comming soon.
 I want those bits merged but I also want that they reflect reality,
this is not a hard driver to do, NetBSD also have one I think, maybe
OpenBSD do to.

> Maxime
> 
> -- 
> Maxime Ripard, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
Eduardo Valentin Aug. 24, 2018, 11:03 p.m. UTC | #10
On Fri, Aug 24, 2018 at 09:59:21PM +0200, Emmanuel Vadot wrote:
> 
>  Hi,
> 
> On Fri, 24 Aug 2018 16:58:40 +0200
> Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> 
> > Hi,
> > 
> > On Mon, Aug 20, 2018 at 04:27:15PM +0200, Emmanuel Vadot wrote:
> > > On Mon, 20 Aug 2018 16:07:37 +0200
> > > Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> > > 
> > > > On Mon, Aug 20, 2018 at 07:41:22AM -0600, Rob Herring wrote:
> > > > > On Mon, Aug 20, 2018 at 5:17 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> > > > > >
> > > > > > On Sat, Aug 04, 2018 at 09:03:49AM +0200, Emmanuel Vadot wrote:
> > > > > > > This patch adds documentation for Device-Tree bindings for the Allwinner
> > > > > > > Thermal Sensor Controller found on the H3, H5 and A64 SoCs
> > > > > > >
> > > > > > > Signed-off-by: Emmanuel Vadot <manu@freebsd.org>
> > > > > >
> > > > > > I'm not going to merge a binding for a device that doesn't have any
> > > > > > driver implemented at the moment in Linux.
> > > > > 
> > > > > I'll take it then. Linux is not the only DT client.
> > > > 
> > > > Then don't complain if we ever have to break the ABI. We never tested
> > > > that hardware, never had any code running on it, and it *will* cause
> > > > some issues. For example, the calibration data have never been used
> > > > and how they should be represented have never been described, since no
> > > > one ever actually tried to use it.
> > > > 
> > > > And sure, Linux is not the only DT client. Just like FreeBSD isn't.
> > > 
> > >  What kind of data would you need for me to make things better ?
> > >  We have the driver in FreeBSD for almost two years now, whne I started
> > > to see how to upstream it I noticed a lot of problems and spent 4 or 5
> > > days to try on all the SoCs mentionned in the serie, the only SoC I
> > > didn't include it the A83T as for some reason I couldn't make the
> > > driver work.
> > 
> > Do you have a link to that driver? 
> 
>  https://github.com/freebsd/freebsd/blob/master/sys/arm/allwinner/aw_thermal.c
> 
> > How and how much did you test it?
> 
>  Using a cheap IR thermometer as it's all I can afford.
>  Then running multiples cpufreq-a53 process and comparing the result.
>  Did the same without using the calibration data, result where closer
> when I used them.
> 
> > Are you using the calibration data stored in the SID?
> 
>  Yes, which is why the serie contain the nvmem cell for the SID.
> 
> > 
> > > I just hope that you understand that we cannot wait for Linux to
> > > have a driver to have some bindings.
> > 
> > Just like I'm sure you can understand that just merging the DT bits
> > without testing anything caused some troubles in the past, and I don't
> > want to discover it in a year from now.
> 
>  I do, I don't like wrong DT info as much as you do I think. I had
> the unfortunate event to find that the sun4i-a10-timer compatible used
> in every soc is plain wrong for !A10 and !A13, patches comming soon.
>  I want those bits merged but I also want that they reflect reality,
> this is not a hard driver to do, NetBSD also have one I think, maybe
> OpenBSD do to.


I would prefer to see a series of DT bindings + driver. Can you send
your next iteration with the driver so we can review both together?

> 
> > Maxime
> > 
> > -- 
> > Maxime Ripard, Bootlin
> > Embedded Linux and Kernel engineering
> > https://bootlin.com
> 
> 
> -- 
> Emmanuel Vadot <manu@bidouilliste.com> <manu@freebsd.org>
Emmanuel Vadot Aug. 25, 2018, 3:43 p.m. UTC | #11
Hi,

On Fri, 24 Aug 2018 16:03:40 -0700
Eduardo Valentin <edubezval@gmail.com> wrote:

> On Fri, Aug 24, 2018 at 09:59:21PM +0200, Emmanuel Vadot wrote:
> > 
> >  Hi,
> > 
> > On Fri, 24 Aug 2018 16:58:40 +0200
> > Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> > 
> > > Hi,
> > > 
> > > On Mon, Aug 20, 2018 at 04:27:15PM +0200, Emmanuel Vadot wrote:
> > > > On Mon, 20 Aug 2018 16:07:37 +0200
> > > > Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> > > > 
> > > > > On Mon, Aug 20, 2018 at 07:41:22AM -0600, Rob Herring wrote:
> > > > > > On Mon, Aug 20, 2018 at 5:17 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> > > > > > >
> > > > > > > On Sat, Aug 04, 2018 at 09:03:49AM +0200, Emmanuel Vadot wrote:
> > > > > > > > This patch adds documentation for Device-Tree bindings for the Allwinner
> > > > > > > > Thermal Sensor Controller found on the H3, H5 and A64 SoCs
> > > > > > > >
> > > > > > > > Signed-off-by: Emmanuel Vadot <manu@freebsd.org>
> > > > > > >
> > > > > > > I'm not going to merge a binding for a device that doesn't have any
> > > > > > > driver implemented at the moment in Linux.
> > > > > > 
> > > > > > I'll take it then. Linux is not the only DT client.
> > > > > 
> > > > > Then don't complain if we ever have to break the ABI. We never tested
> > > > > that hardware, never had any code running on it, and it *will* cause
> > > > > some issues. For example, the calibration data have never been used
> > > > > and how they should be represented have never been described, since no
> > > > > one ever actually tried to use it.
> > > > > 
> > > > > And sure, Linux is not the only DT client. Just like FreeBSD isn't.
> > > > 
> > > >  What kind of data would you need for me to make things better ?
> > > >  We have the driver in FreeBSD for almost two years now, whne I started
> > > > to see how to upstream it I noticed a lot of problems and spent 4 or 5
> > > > days to try on all the SoCs mentionned in the serie, the only SoC I
> > > > didn't include it the A83T as for some reason I couldn't make the
> > > > driver work.
> > > 
> > > Do you have a link to that driver? 
> > 
> >  https://github.com/freebsd/freebsd/blob/master/sys/arm/allwinner/aw_thermal.c
> > 
> > > How and how much did you test it?
> > 
> >  Using a cheap IR thermometer as it's all I can afford.
> >  Then running multiples cpufreq-a53 process and comparing the result.
> >  Did the same without using the calibration data, result where closer
> > when I used them.
> > 
> > > Are you using the calibration data stored in the SID?
> > 
> >  Yes, which is why the serie contain the nvmem cell for the SID.
> > 
> > > 
> > > > I just hope that you understand that we cannot wait for Linux to
> > > > have a driver to have some bindings.
> > > 
> > > Just like I'm sure you can understand that just merging the DT bits
> > > without testing anything caused some troubles in the past, and I don't
> > > want to discover it in a year from now.
> > 
> >  I do, I don't like wrong DT info as much as you do I think. I had
> > the unfortunate event to find that the sun4i-a10-timer compatible used
> > in every soc is plain wrong for !A10 and !A13, patches comming soon.
> >  I want those bits merged but I also want that they reflect reality,
> > this is not a hard driver to do, NetBSD also have one I think, maybe
> > OpenBSD do to.
> 
> 
> I would prefer to see a series of DT bindings + driver. Can you send
> your next iteration with the driver so we can review both together?

 You mean a link to the FreeBSD driver (and OpenBSD since they have one
too) in the cover letter ?

> > 
> > > Maxime
> > > 
> > > -- 
> > > Maxime Ripard, Bootlin
> > > Embedded Linux and Kernel engineering
> > > https://bootlin.com
> > 
> > 
> > -- 
> > Emmanuel Vadot <manu@bidouilliste.com> <manu@freebsd.org>
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Maxime Ripard Aug. 29, 2018, 12:38 p.m. UTC | #12
On Sat, Aug 25, 2018 at 05:43:52PM +0200, Emmanuel Vadot wrote:
> 
>  Hi,
> 
> On Fri, 24 Aug 2018 16:03:40 -0700
> Eduardo Valentin <edubezval@gmail.com> wrote:
> 
> > On Fri, Aug 24, 2018 at 09:59:21PM +0200, Emmanuel Vadot wrote:
> > > 
> > >  Hi,
> > > 
> > > On Fri, 24 Aug 2018 16:58:40 +0200
> > > Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> > > 
> > > > Hi,
> > > > 
> > > > On Mon, Aug 20, 2018 at 04:27:15PM +0200, Emmanuel Vadot wrote:
> > > > > On Mon, 20 Aug 2018 16:07:37 +0200
> > > > > Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> > > > > 
> > > > > > On Mon, Aug 20, 2018 at 07:41:22AM -0600, Rob Herring wrote:
> > > > > > > On Mon, Aug 20, 2018 at 5:17 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> > > > > > > >
> > > > > > > > On Sat, Aug 04, 2018 at 09:03:49AM +0200, Emmanuel Vadot wrote:
> > > > > > > > > This patch adds documentation for Device-Tree bindings for the Allwinner
> > > > > > > > > Thermal Sensor Controller found on the H3, H5 and A64 SoCs
> > > > > > > > >
> > > > > > > > > Signed-off-by: Emmanuel Vadot <manu@freebsd.org>
> > > > > > > >
> > > > > > > > I'm not going to merge a binding for a device that doesn't have any
> > > > > > > > driver implemented at the moment in Linux.
> > > > > > > 
> > > > > > > I'll take it then. Linux is not the only DT client.
> > > > > > 
> > > > > > Then don't complain if we ever have to break the ABI. We never tested
> > > > > > that hardware, never had any code running on it, and it *will* cause
> > > > > > some issues. For example, the calibration data have never been used
> > > > > > and how they should be represented have never been described, since no
> > > > > > one ever actually tried to use it.
> > > > > > 
> > > > > > And sure, Linux is not the only DT client. Just like FreeBSD isn't.
> > > > > 
> > > > >  What kind of data would you need for me to make things better ?
> > > > >  We have the driver in FreeBSD for almost two years now, whne I started
> > > > > to see how to upstream it I noticed a lot of problems and spent 4 or 5
> > > > > days to try on all the SoCs mentionned in the serie, the only SoC I
> > > > > didn't include it the A83T as for some reason I couldn't make the
> > > > > driver work.
> > > > 
> > > > Do you have a link to that driver? 
> > > 
> > >  https://github.com/freebsd/freebsd/blob/master/sys/arm/allwinner/aw_thermal.c
> > > 
> > > > How and how much did you test it?
> > > 
> > >  Using a cheap IR thermometer as it's all I can afford.
> > >  Then running multiples cpufreq-a53 process and comparing the result.
> > >  Did the same without using the calibration data, result where closer
> > > when I used them.
> > > 
> > > > Are you using the calibration data stored in the SID?
> > > 
> > >  Yes, which is why the serie contain the nvmem cell for the SID.
> > > 
> > > > 
> > > > > I just hope that you understand that we cannot wait for Linux to
> > > > > have a driver to have some bindings.
> > > > 
> > > > Just like I'm sure you can understand that just merging the DT bits
> > > > without testing anything caused some troubles in the past, and I don't
> > > > want to discover it in a year from now.
> > > 
> > >  I do, I don't like wrong DT info as much as you do I think. I had
> > > the unfortunate event to find that the sun4i-a10-timer compatible used
> > > in every soc is plain wrong for !A10 and !A13, patches comming soon.
> > >  I want those bits merged but I also want that they reflect reality,
> > > this is not a hard driver to do, NetBSD also have one I think, maybe
> > > OpenBSD do to.
> > 
> > 
> > I would prefer to see a series of DT bindings + driver. Can you send
> > your next iteration with the driver so we can review both together?
> 
>  You mean a link to the FreeBSD driver (and OpenBSD since they have one
> too) in the cover letter ?

That would definitely be valuable, yes, thanks!
Maxime
Maxime Ripard Aug. 29, 2018, 1:31 p.m. UTC | #13
On Fri, Aug 24, 2018 at 09:59:21PM +0200, Emmanuel Vadot wrote:
> 
>  Hi,
> 
> On Fri, 24 Aug 2018 16:58:40 +0200
> Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> 
> > Hi,
> > 
> > On Mon, Aug 20, 2018 at 04:27:15PM +0200, Emmanuel Vadot wrote:
> > > On Mon, 20 Aug 2018 16:07:37 +0200
> > > Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> > > 
> > > > On Mon, Aug 20, 2018 at 07:41:22AM -0600, Rob Herring wrote:
> > > > > On Mon, Aug 20, 2018 at 5:17 AM Maxime Ripard <maxime.ripard@bootlin.com> wrote:
> > > > > >
> > > > > > On Sat, Aug 04, 2018 at 09:03:49AM +0200, Emmanuel Vadot wrote:
> > > > > > > This patch adds documentation for Device-Tree bindings for the Allwinner
> > > > > > > Thermal Sensor Controller found on the H3, H5 and A64 SoCs
> > > > > > >
> > > > > > > Signed-off-by: Emmanuel Vadot <manu@freebsd.org>
> > > > > >
> > > > > > I'm not going to merge a binding for a device that doesn't have any
> > > > > > driver implemented at the moment in Linux.
> > > > > 
> > > > > I'll take it then. Linux is not the only DT client.
> > > > 
> > > > Then don't complain if we ever have to break the ABI. We never tested
> > > > that hardware, never had any code running on it, and it *will* cause
> > > > some issues. For example, the calibration data have never been used
> > > > and how they should be represented have never been described, since no
> > > > one ever actually tried to use it.
> > > > 
> > > > And sure, Linux is not the only DT client. Just like FreeBSD isn't.
> > > 
> > >  What kind of data would you need for me to make things better ?
> > >  We have the driver in FreeBSD for almost two years now, whne I started
> > > to see how to upstream it I noticed a lot of problems and spent 4 or 5
> > > days to try on all the SoCs mentionned in the serie, the only SoC I
> > > didn't include it the A83T as for some reason I couldn't make the
> > > driver work.
> > 
> > Do you have a link to that driver? 
> 
>  https://github.com/freebsd/freebsd/blob/master/sys/arm/allwinner/aw_thermal.c
> 
> > How and how much did you test it?
> 
>  Using a cheap IR thermometer as it's all I can afford.
>  Then running multiples cpufreq-a53 process and comparing the result.
>  Did the same without using the calibration data, result where closer
> when I used them.

Ok.

> > Are you using the calibration data stored in the SID?
> 
>  Yes, which is why the serie contain the nvmem cell for the SID.

Ok.

> > 
> > > I just hope that you understand that we cannot wait for Linux to
> > > have a driver to have some bindings.
> > 
> > Just like I'm sure you can understand that just merging the DT bits
> > without testing anything caused some troubles in the past, and I don't
> > want to discover it in a year from now.
> 
>  I do, I don't like wrong DT info as much as you do I think. I had
> the unfortunate event to find that the sun4i-a10-timer compatible used
> in every soc is plain wrong for !A10 and !A13, patches comming soon.
>  I want those bits merged but I also want that they reflect reality,
> this is not a hard driver to do, NetBSD also have one I think, maybe
> OpenBSD do to.

I guess these one went un-noticed because they are not the default
source of time keeping and events in the kernel.

Thanks!
Maxime
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/thermal/allwinner-thermal.txt b/Documentation/devicetree/bindings/thermal/allwinner-thermal.txt
new file mode 100644
index 000000000000..5810d44cf495
--- /dev/null
+++ b/Documentation/devicetree/bindings/thermal/allwinner-thermal.txt
@@ -0,0 +1,41 @@ 
+* Thermal Sensor Controller on Allwinner SoCs
+
+Required properties:
+- compatible : should be "allwinner,<name>-ths"
+   "allwinner,sun8i-h3-ths": found on H3 and H2+ SoCs
+   "allwinner,sun50i-h5-ths": found on H5 SoC
+   "allwinner,sun50i-a64-ths": found on H5 SoC
+- reg : physical base address of the controller and length of memory mapped
+	region.
+- interrupts : The interrupt number to the cpu. The interrupt specifier format
+	       depends on the interrupt controller.
+- clocks : Must contain an entry for each entry in clock-names.
+- clock-names : Shall be "apb" for the bus, and "ths" for
+		the peripheral clock.
+- resets : Must contain an entry for each entry in reset-names.
+	   See ../reset/reset.txt for details.
+- reset-names : Must be "apb".
+- #thermal-sensor-cells : Depend on the SoC
+   For H3 should be 0
+   For H5 should be 1
+   For A64 should be 2
+   See ./thermal.txt for a description.
+- nvmem-cells : Phandle to the calibration data
+- nvmem-cell-names = Should be "ths-calib"
+
+Example:
+
+ths: thermal_sensor@1c25000 {
+	compatible = "allwinner,sun8i-h3-ths";
+	reg = <0x01c25000 0x100>;
+	interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
+	clocks = <&ccu CLK_BUS_THS>, <&ccu CLK_THS>;
+	clock-names = "apb", "ths";
+	resets = <&ccu RST_BUS_THS>;
+	reset-names = "apb";
+	#thermal-sensor-cells = <0>;
+	status = "disabled";
+
+	nvmem-cells = <&ths_calib>;
+	nvmem-cell-names = "ths-calib";
+};