[PATCH v2 11/14] thermal: mvebu: Add support for Marvell Dove SoC family
Ezequiel Garcia
ezequiel.garcia at free-electrons.com
Sat Mar 23 20:16:26 EDT 2013
On Sat, Mar 23, 2013 at 12:26:05PM +0100, Sebastian Hesselbarth wrote:
> On 03/22/2013 11:25 PM, Ezequiel Garcia wrote:
> > With the infrastructure added in mvebu-thermal to support multiple SoC
> > families, it is now possible to add support for Dove SoC.
> > This patch adds such support taking the implementation from the
> > dove-thermal driver, and then removing it.
> >
> > Signed-off-by: Ezequiel Garcia<ezequiel.garcia at free-electrons.com>
> > ---
> > .../devicetree/bindings/thermal/dove-thermal.txt | 18 --
> > .../devicetree/bindings/thermal/mvebu-thermal.txt | 8 +
> > drivers/thermal/Kconfig | 8 -
> > drivers/thermal/Makefile | 1 -
> > drivers/thermal/dove_thermal.c | 210 --------------------
> > drivers/thermal/mvebu_thermal.c | 74 +++++++
> > 6 files changed, 82 insertions(+), 237 deletions(-)
> > delete mode 100644 Documentation/devicetree/bindings/thermal/dove-thermal.txt
> > delete mode 100644 drivers/thermal/dove_thermal.c
> >
>
> [...]
>
> > diff --git a/drivers/thermal/dove_thermal.c b/drivers/thermal/dove_thermal.c
> > deleted file mode 100644
> > index ddd73a5..0000000
> > --- a/drivers/thermal/dove_thermal.c
> > +++ /dev/null
> > @@ -1,210 +0,0 @@
> > -/*
> > - * Dove thermal sensor driver
> > - *
> > - * Copyright (C) 2013 Andrew Lunn<andrew at lunn.ch>
> > - *
> > - * This software is licensed under the terms of the GNU General Public
> > - * License version 2, as published by the Free Software Foundation, and
> > - * may be copied, distributed, and modified under those terms.
> > - *
> > - * This program is distributed in the hope that it will be useful,
> > - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> > - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> > - * GNU General Public License for more details.
> > - *
> > - */
> > -#include<linux/device.h>
> > -#include<linux/err.h>
> > -#include<linux/io.h>
> > -#include<linux/kernel.h>
> > -#include<linux/of.h>
> > -#include<linux/module.h>
> > -#include<linux/platform_device.h>
> > -#include<linux/thermal.h>
> > -
> > -#define DOVE_THERMAL_TEMP_OFFSET 1
> > -#define DOVE_THERMAL_TEMP_MASK 0x1FF
>
> [...]
>
> > diff --git a/drivers/thermal/mvebu_thermal.c b/drivers/thermal/mvebu_thermal.c
> > index 56c58b1..2f37b3e 100644
> > --- a/drivers/thermal/mvebu_thermal.c
> > +++ b/drivers/thermal/mvebu_thermal.c
> > @@ -2,6 +2,7 @@
> > * Marvell EBU thermal sensor driver
> > *
> > * Copyright (C) 2013 Marvell
> > + * Copyright (C) 2013 Andrew Lunn<andrew at lunn.ch>
> > * Copyright (C) 2012 Nobuhiro Iwamatsu<iwamatsu at nigauri.org>
> > *
> > * This software is licensed under the terms of the GNU General Public
> > @@ -38,6 +39,14 @@
> > #define PMU_TDC0_REF_CAL_CNT_MASK (0x1ff<< PMU_TDC0_REF_CAL_CNT_OFFS)
> > #define PMU_TDC0_OTF_CAL_MASK (0x1<< 30)
> > #define PMU_TDC0_START_CAL_MASK (0x1<< 25)
> > +#define PMU_TDC0_AVG_NUM_OFFS 25
> > +#define PMU_TDC0_AVG_NUM_MASK (0x7<< PMU_TDC0_AVG_NUM_OFFS)
> > +#define PMU_TDC0_SEL_VCAL_OFFS 5
> > +#define PMU_TDC0_SEL_VCAL_MASK (0x3<< PMU_TDC0_SEL_VCAL_OFFS)
> > +
> > +/* Dove Thermal Diode Control 1 Register */
> > +#define PMU_TEMP_DIOD_CTRL1_REG 0x04
> > +#define PMU_TDC1_TEMP_VALID_MASK (0x1<< 10)
>
> Ezequiel,
>
> maybe Dove thermal isn't that compatible with the others as you thought.
>
> Have a look at DOVE_THERMAL_TEMP_OFFSET above, it is 1 while MVEBU_THERMAL_TEMP_OFFSET
> is 10. I've tested your patches on Dove and they break thermal. You either need
> a dove_get_temp() that uses correct DOVE_THERMAL_TEMP_OFFSET or have it stored
> within mvebu_thermal_ops and use it in mvebu_get_temp().
>
Ouch, you're totally right. I was too fast on this and I forgot that
Dove has a specific way of reading the sensor, only the formula is
shared with Kirkwood.
I'll send a fix for this in v3, probably monday.
Thanks for testing, and sorry for being so careless.
--
Ezequiel García, Free Electrons
Embedded Linux, Kernel and Android Engineering
http://free-electrons.com
More information about the linux-arm-kernel
mailing list