lkml.org 
[lkml]   [2013]   [Jun]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH V6 07/30] thermal: exynos: Bifurcate exynos tmu driver and configuration data
    On 19-06-2013 15:35, Eduardo Valentin wrote:
    > Rui,
    >
    > On 17-06-2013 02:46, Amit Daniel Kachhap wrote:
    >> This code splits the exynos tmu driver code into SOC specific data parts.
    >> This will simplify adding new SOC specific data to the same TMU controller.
    >>
    >> Acked-by: Kukjin Kim <kgene.kim@samsung.com>
    >> Acked-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
    >> Signed-off-by: Amit Daniel Kachhap <amit.daniel@samsung.com>
    >
    > This patch looks good to me, you may want to add my:
    >
    > Acked-by: Eduardo Valentin <eduardo.valentin@ti.com>

    Yet another minor before adding my ack, sorry this one almost fell into
    the cracks (see below):

    >
    >> ---
    >> drivers/thermal/samsung/Kconfig | 3 +-
    >> drivers/thermal/samsung/Makefile | 1 +
    >> drivers/thermal/samsung/exynos_tmu.c | 67 ++-----------------------
    >> drivers/thermal/samsung/exynos_tmu_data.c | 78 +++++++++++++++++++++++++++++
    >> drivers/thermal/samsung/exynos_tmu_data.h | 40 +++++++++++++++
    >> 5 files changed, 125 insertions(+), 64 deletions(-)
    >> create mode 100644 drivers/thermal/samsung/exynos_tmu_data.c
    >> create mode 100644 drivers/thermal/samsung/exynos_tmu_data.h
    >>
    >> diff --git a/drivers/thermal/samsung/Kconfig b/drivers/thermal/samsung/Kconfig
    >> index f8100b1..b653f15 100644
    >> --- a/drivers/thermal/samsung/Kconfig
    >> +++ b/drivers/thermal/samsung/Kconfig
    >> @@ -5,7 +5,8 @@ config EXYNOS_THERMAL
    >> If you say yes here you get support for the TMU (Thermal Management
    >> Unit) driver for SAMSUNG EXYNOS series of soc. This driver initialises
    >> the TMU, reports temperature and handles cooling action if defined.
    >> - This driver uses the exynos core thermal API's.
    >> + This driver uses the exynos core thermal API's and TMU configuration
    >> + data from the supported soc's.
    >>
    >> config EXYNOS_THERMAL_CORE
    >> bool "Core thermal framework support for EXYNOS SOC's"
    >> diff --git a/drivers/thermal/samsung/Makefile b/drivers/thermal/samsung/Makefile
    >> index 22528d6..c09d830 100644
    >> --- a/drivers/thermal/samsung/Makefile
    >> +++ b/drivers/thermal/samsung/Makefile
    >> @@ -3,4 +3,5 @@
    >> #
    >> obj-$(CONFIG_EXYNOS_THERMAL) += exynos_thermal.o
    >> exynos_thermal-y := exynos_tmu.o
    >> +exynos_thermal-y += exynos_tmu_data.o
    >> exynos_thermal-$(CONFIG_EXYNOS_THERMAL_CORE) += exynos_thermal_common.o
    >> diff --git a/drivers/thermal/samsung/exynos_tmu.c b/drivers/thermal/samsung/exynos_tmu.c
    >> index 6aa2fd2..5df04a1 100644
    >> --- a/drivers/thermal/samsung/exynos_tmu.c
    >> +++ b/drivers/thermal/samsung/exynos_tmu.c
    >> @@ -30,6 +30,7 @@
    >>
    >> #include "exynos_thermal_common.h"
    >> #include "exynos_tmu.h"
    >> +#include "exynos_tmu_data.h"
    >>
    >> /* Exynos generic registers */
    >> #define EXYNOS_TMU_REG_TRIMINFO 0x0
    >> @@ -381,66 +382,6 @@ static struct thermal_sensor_conf exynos_sensor_conf = {
    >> .write_emul_temp = exynos_tmu_set_emulation,
    >> };
    >>
    >> -#if defined(CONFIG_CPU_EXYNOS4210)
    >> -static struct exynos_tmu_platform_data const exynos4210_default_tmu_data = {
    >> - .threshold = 80,
    >> - .trigger_levels[0] = 5,
    >> - .trigger_levels[1] = 20,
    >> - .trigger_levels[2] = 30,
    >> - .trigger_level0_en = 1,
    >> - .trigger_level1_en = 1,
    >> - .trigger_level2_en = 1,
    >> - .trigger_level3_en = 0,
    >> - .gain = 15,
    >> - .reference_voltage = 7,
    >> - .cal_type = TYPE_ONE_POINT_TRIMMING,
    >> - .freq_tab[0] = {
    >> - .freq_clip_max = 800 * 1000,
    >> - .temp_level = 85,
    >> - },
    >> - .freq_tab[1] = {
    >> - .freq_clip_max = 200 * 1000,
    >> - .temp_level = 100,
    >> - },
    >> - .freq_tab_count = 2,
    >> - .type = SOC_ARCH_EXYNOS4210,
    >> -};
    >> -#define EXYNOS4210_TMU_DRV_DATA (&exynos4210_default_tmu_data)
    >> -#else
    >> -#define EXYNOS4210_TMU_DRV_DATA (NULL)
    >> -#endif
    >> -
    >> -#if defined(CONFIG_SOC_EXYNOS5250) || defined(CONFIG_SOC_EXYNOS4412)
    >> -static struct exynos_tmu_platform_data const exynos_default_tmu_data = {
    >> - .threshold_falling = 10,
    >> - .trigger_levels[0] = 85,
    >> - .trigger_levels[1] = 103,
    >> - .trigger_levels[2] = 110,
    >> - .trigger_level0_en = 1,
    >> - .trigger_level1_en = 1,
    >> - .trigger_level2_en = 1,
    >> - .trigger_level3_en = 0,
    >> - .gain = 8,
    >> - .reference_voltage = 16,
    >> - .noise_cancel_mode = 4,
    >> - .cal_type = TYPE_ONE_POINT_TRIMMING,
    >> - .efuse_value = 55,
    >> - .freq_tab[0] = {
    >> - .freq_clip_max = 800 * 1000,
    >> - .temp_level = 85,
    >> - },
    >> - .freq_tab[1] = {
    >> - .freq_clip_max = 200 * 1000,
    >> - .temp_level = 103,
    >> - },
    >> - .freq_tab_count = 2,
    >> - .type = SOC_ARCH_EXYNOS,
    >> -};
    >> -#define EXYNOS_TMU_DRV_DATA (&exynos_default_tmu_data)
    >> -#else
    >> -#define EXYNOS_TMU_DRV_DATA (NULL)
    >> -#endif
    >> -
    >> #ifdef CONFIG_OF
    >> static const struct of_device_id exynos_tmu_match[] = {
    >> {
    >> @@ -449,11 +390,11 @@ static const struct of_device_id exynos_tmu_match[] = {
    >> },
    >> {
    >> .compatible = "samsung,exynos4412-tmu",
    >> - .data = (void *)EXYNOS_TMU_DRV_DATA,
    >> + .data = (void *)EXYNOS5250_TMU_DRV_DATA,
    >> },
    >> {
    >> .compatible = "samsung,exynos5250-tmu",
    >> - .data = (void *)EXYNOS_TMU_DRV_DATA,
    >> + .data = (void *)EXYNOS5250_TMU_DRV_DATA,
    >> },
    >> {},
    >> };
    >> @@ -467,7 +408,7 @@ static struct platform_device_id exynos_tmu_driver_ids[] = {
    >> },
    >> {
    >> .name = "exynos5250-tmu",
    >> - .driver_data = (kernel_ulong_t)EXYNOS_TMU_DRV_DATA,
    >> + .driver_data = (kernel_ulong_t)EXYNOS5250_TMU_DRV_DATA,
    >> },
    >> { },
    >> };
    >> diff --git a/drivers/thermal/samsung/exynos_tmu_data.c b/drivers/thermal/samsung/exynos_tmu_data.c
    >> new file mode 100644
    >> index 0000000..13a60ca
    >> --- /dev/null
    >> +++ b/drivers/thermal/samsung/exynos_tmu_data.c
    >> @@ -0,0 +1,78 @@
    >> +/*
    >> + * exynos_tmu_data.c - Samsung EXYNOS tmu data file
    >> + *
    >> + * Copyright (C) 2013 Samsung Electronics
    >> + * Amit Daniel Kachhap <amit.daniel@samsung.com>
    >> + *
    >> + * This program is free software; you can redistribute it and/or modify
    >> + * it under the terms of the GNU General Public License as published by
    >> + * the Free Software Foundation; either version 2 of the License, or
    >> + * (at your option) any later version.
    >> + *
    >> + * 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.
    >> + *
    >> + * You should have received a copy of the GNU General Public License
    >> + * along with this program; if not, write to the Free Software
    >> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
    >> + *
    >> + */
    >> +
    >> +#include "exynos_thermal_common.h"

    You have to:
    +#include "exynos_tmu_data.h"

    Otherwise, you will get:
    CC [M] drivers/thermal/samsung/exynos_tmu.o
    drivers/thermal/samsung/exynos_tmu_data.c:27:39: warning: symbol
    'exynos4210_default_tmu_data' was not declared. Should it be static?
    drivers/thermal/samsung/exynos_tmu_data.c:53:39: warning: symbol
    'exynos5250_default_tmu_data' was not declared. Should it be static?


    >> +#include "exynos_tmu.h"

    >> +
    >> +#if defined(CONFIG_CPU_EXYNOS4210)
    >> +struct exynos_tmu_platform_data const exynos4210_default_tmu_data = {
    >> + .threshold = 80,
    >> + .trigger_levels[0] = 5,
    >> + .trigger_levels[1] = 20,
    >> + .trigger_levels[2] = 30,
    >> + .trigger_level0_en = 1,
    >> + .trigger_level1_en = 1,
    >> + .trigger_level2_en = 1,
    >> + .trigger_level3_en = 0,
    >> + .gain = 15,
    >> + .reference_voltage = 7,
    >> + .cal_type = TYPE_ONE_POINT_TRIMMING,
    >> + .freq_tab[0] = {
    >> + .freq_clip_max = 800 * 1000,
    >> + .temp_level = 85,
    >> + },
    >> + .freq_tab[1] = {
    >> + .freq_clip_max = 200 * 1000,
    >> + .temp_level = 100,
    >> + },
    >> + .freq_tab_count = 2,
    >> + .type = SOC_ARCH_EXYNOS4210,
    >> +};
    >> +#endif
    >> +
    >> +#if defined(CONFIG_SOC_EXYNOS5250) || defined(CONFIG_SOC_EXYNOS4412)
    >> +struct exynos_tmu_platform_data const exynos5250_default_tmu_data = {
    >> + .threshold_falling = 10,
    >> + .trigger_levels[0] = 85,
    >> + .trigger_levels[1] = 103,
    >> + .trigger_levels[2] = 110,
    >> + .trigger_level0_en = 1,
    >> + .trigger_level1_en = 1,
    >> + .trigger_level2_en = 1,
    >> + .trigger_level3_en = 0,
    >> + .gain = 8,
    >> + .reference_voltage = 16,
    >> + .noise_cancel_mode = 4,
    >> + .cal_type = TYPE_ONE_POINT_TRIMMING,
    >> + .efuse_value = 55,
    >> + .freq_tab[0] = {
    >> + .freq_clip_max = 800 * 1000,
    >> + .temp_level = 85,
    >> + },
    >> + .freq_tab[1] = {
    >> + .freq_clip_max = 200 * 1000,
    >> + .temp_level = 103,
    >> + },
    >> + .freq_tab_count = 2,
    >> + .type = SOC_ARCH_EXYNOS,
    >> +};
    >> +#endif
    >> diff --git a/drivers/thermal/samsung/exynos_tmu_data.h b/drivers/thermal/samsung/exynos_tmu_data.h
    >> new file mode 100644
    >> index 0000000..b7835fe
    >> --- /dev/null
    >> +++ b/drivers/thermal/samsung/exynos_tmu_data.h
    >> @@ -0,0 +1,40 @@
    >> +/*
    >> + * exynos_tmu_data.h - Samsung EXYNOS tmu data header file
    >> + *
    >> + * Copyright (C) 2013 Samsung Electronics
    >> + * Amit Daniel Kachhap <amit.daniel@samsung.com>
    >> + *
    >> + * This program is free software; you can redistribute it and/or modify
    >> + * it under the terms of the GNU General Public License as published by
    >> + * the Free Software Foundation; either version 2 of the License, or
    >> + * (at your option) any later version.
    >> + *
    >> + * 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.
    >> + *
    >> + * You should have received a copy of the GNU General Public License
    >> + * along with this program; if not, write to the Free Software
    >> + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
    >> + *
    >> + */
    >> +
    >> +#ifndef _EXYNOS_TMU_DATA_H
    >> +#define _EXYNOS_TMU_DATA_H
    >> +
    >> +#if defined(CONFIG_CPU_EXYNOS4210)
    >> +extern struct exynos_tmu_platform_data const exynos4210_default_tmu_data;
    >> +#define EXYNOS4210_TMU_DRV_DATA (&exynos4210_default_tmu_data)
    >> +#else
    >> +#define EXYNOS4210_TMU_DRV_DATA (NULL)
    >> +#endif
    >> +
    >> +#if (defined(CONFIG_SOC_EXYNOS5250) || defined(CONFIG_SOC_EXYNOS4412))
    >> +extern struct exynos_tmu_platform_data const exynos5250_default_tmu_data;
    >> +#define EXYNOS5250_TMU_DRV_DATA (&exynos5250_default_tmu_data)
    >> +#else
    >> +#define EXYNOS5250_TMU_DRV_DATA (NULL)
    >> +#endif
    >> +
    >> +#endif /*_EXYNOS_TMU_DATA_H*/
    >>
    >
    >


    --
    You have got to be excited about what you are doing. (L. Lamport)

    Eduardo Valentin

    [unhandled content-type:application/pgp-signature]
    \
     
     \ /
      Last update: 2013-06-19 22:01    [W:3.789 / U:0.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site