All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konstantin Baydarov <kbaidarov@dev.rtsoft.ru>
To: Eduardo Valentin <eduardo.valentin@ti.com>
Cc: b-cousson@ti.com, kishon@ti.com, santosh.shilimkar@ti.com,
	tony@atomide.com, paul@pwsan.com, balbi@ti.com,
	amit.kucheria@linaro.org, linux-pm@lists.linux-foundation.org,
	linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org,
	amit.kachhap@linaro.org,
	Konstantin Baydarov <kbaidarov@dev.rtsoft.ru>
Subject: Re: [RFC PATCH 03/11] arm: omap: device: create a device for system control module
Date: Tue, 29 May 2012 17:39:54 +0400	[thread overview]
Message-ID: <4FC4D1AA.5040807@dev.rtsoft.ru> (raw)
In-Reply-To: <1337934361-1606-4-git-send-email-eduardo.valentin@ti.com>

  Hi.

On 05/25/2012 12:25 PM, Eduardo Valentin wrote:
> From: Kishon Vijay Abraham I <kishon@ti.com>
>
> Extracts the device data from hwmod database and create a platform device
> using omap device build.
>
> The device build is done during postcore_initcall.
>
> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com>
> ---
>  arch/arm/mach-omap2/devices.c |   26 ++++++++++++++++++++++++++
>  1 files changed, 26 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
> index 152c266..9332673 100644
> --- a/arch/arm/mach-omap2/devices.c
> +++ b/arch/arm/mach-omap2/devices.c
> @@ -40,6 +40,32 @@
>  #define L3_MODULES_MAX_LEN 12
>  #define L3_MODULES 3
>  
> +static int omap_init_control(void)
> +{
> +	struct omap_hwmod		*oh;
> +	struct platform_device		*pdev;
> +	const char			*oh_name, *name;
> +
> +	oh_name = "ctrl_module_core";
> +	name = "omap-control-core";
> +
> +	oh = omap_hwmod_lookup(oh_name);
> +	if (!oh) {
> +		pr_err("Could not lookup hwmod for %s\n", oh_name);
> +		return PTR_ERR(oh);
> +	}
> +
> +	pdev = omap_device_build(name, -1, oh, NULL, 0, NULL, 0, true);
I noticed that control module omap device is created and configured according to following idle flags:
static struct omap_hwmod_class_sysconfig omap44xx_ctrl_module_sysc = {
    .rev_offs    = 0x0000,
    .sysc_offs    = 0x0010,
    .sysc_flags    = SYSC_HAS_SIDLEMODE,
    .idlemodes    = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
               SIDLE_SMART_WKUP),
    .sysc_fields    = &omap_hwmod_sysc_type2,
};

IIUC, ".idlemodes    = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | SIDLE_SMART_WKUP)" means that CONTROL_GEN_CORE idlemode will be set to
"0x2,0x3: Clock is automatically gated when there is no access to the Control Module through L4-interconnect". See CONTROL_GEN_CORE_SYSCONFIG register.
So IIUC theoretically CONTROL_GEN_CORE module clock can be automatically gated. Recalling that CONTROL_GEN_CORE module has an THERMAL_ALERT interrupt that is used by the bandgap driver, I'm wondering if the THERMAL_ALERT interrupt will be fired when CONTROL_GEN_CORE module clock is gated?
Probably bandgap driver should set CONTROL_GEN_CORE idle mode to SIDLE_NO, to prevent loosing THERMAL_ALERT interrupt?

  BR,
    Konstantin Baydarov.

> +	if (IS_ERR(pdev)) {
> +		pr_err("Could not build omap_device for %s %s\n",
> +		       name, oh_name);
> +		return PTR_ERR(pdev);
> +	}
> +
> +	return 0;
> +}
> +postcore_initcall(omap_init_control);
> +
>  static int __init omap3_l3_init(void)
>  {
>  	struct omap_hwmod *oh;


WARNING: multiple messages have this Message-ID (diff)
From: kbaidarov@dev.rtsoft.ru (Konstantin Baydarov)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 03/11] arm: omap: device: create a device for system control module
Date: Tue, 29 May 2012 17:39:54 +0400	[thread overview]
Message-ID: <4FC4D1AA.5040807@dev.rtsoft.ru> (raw)
In-Reply-To: <1337934361-1606-4-git-send-email-eduardo.valentin@ti.com>

  Hi.

On 05/25/2012 12:25 PM, Eduardo Valentin wrote:
> From: Kishon Vijay Abraham I <kishon@ti.com>
>
> Extracts the device data from hwmod database and create a platform device
> using omap device build.
>
> The device build is done during postcore_initcall.
>
> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
> Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com>
> ---
>  arch/arm/mach-omap2/devices.c |   26 ++++++++++++++++++++++++++
>  1 files changed, 26 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
> index 152c266..9332673 100644
> --- a/arch/arm/mach-omap2/devices.c
> +++ b/arch/arm/mach-omap2/devices.c
> @@ -40,6 +40,32 @@
>  #define L3_MODULES_MAX_LEN 12
>  #define L3_MODULES 3
>  
> +static int omap_init_control(void)
> +{
> +	struct omap_hwmod		*oh;
> +	struct platform_device		*pdev;
> +	const char			*oh_name, *name;
> +
> +	oh_name = "ctrl_module_core";
> +	name = "omap-control-core";
> +
> +	oh = omap_hwmod_lookup(oh_name);
> +	if (!oh) {
> +		pr_err("Could not lookup hwmod for %s\n", oh_name);
> +		return PTR_ERR(oh);
> +	}
> +
> +	pdev = omap_device_build(name, -1, oh, NULL, 0, NULL, 0, true);
I noticed that control module omap device is created and configured according to following idle flags:
static struct omap_hwmod_class_sysconfig omap44xx_ctrl_module_sysc = {
    .rev_offs    = 0x0000,
    .sysc_offs    = 0x0010,
    .sysc_flags    = SYSC_HAS_SIDLEMODE,
    .idlemodes    = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
               SIDLE_SMART_WKUP),
    .sysc_fields    = &omap_hwmod_sysc_type2,
};

IIUC, ".idlemodes    = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | SIDLE_SMART_WKUP)" means that CONTROL_GEN_CORE idlemode will be set to
"0x2,0x3: Clock is automatically gated when there is no access to the Control Module through L4-interconnect". See CONTROL_GEN_CORE_SYSCONFIG register.
So IIUC theoretically CONTROL_GEN_CORE module clock can be automatically gated. Recalling that CONTROL_GEN_CORE module has an THERMAL_ALERT interrupt that is used by the bandgap driver, I'm wondering if the THERMAL_ALERT interrupt will be fired when CONTROL_GEN_CORE module clock is gated?
Probably bandgap driver should set CONTROL_GEN_CORE idle mode to SIDLE_NO, to prevent loosing THERMAL_ALERT interrupt?

  BR,
    Konstantin Baydarov.

> +	if (IS_ERR(pdev)) {
> +		pr_err("Could not build omap_device for %s %s\n",
> +		       name, oh_name);
> +		return PTR_ERR(pdev);
> +	}
> +
> +	return 0;
> +}
> +postcore_initcall(omap_init_control);
> +
>  static int __init omap3_l3_init(void)
>  {
>  	struct omap_hwmod *oh;

  parent reply	other threads:[~2012-05-29 13:40 UTC|newest]

Thread overview: 198+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-25  8:25 [RFC PATCH 00/11] OMAP System Control Module Eduardo Valentin
2012-05-25  8:25 ` Eduardo Valentin
2012-05-25  8:25 ` [RFC PATCH 01/11] ARM: OMAP4: Remove un-used control module headers and defines Eduardo Valentin
2012-05-25  8:25   ` Eduardo Valentin
2012-05-28  9:12   ` Shilimkar, Santosh
2012-05-28  9:12     ` Shilimkar, Santosh
2012-05-25  8:25 ` [RFC PATCH 02/11] ARM: OMAP: expose control.h to mach area Eduardo Valentin
2012-05-25  8:25   ` Eduardo Valentin
2012-05-28  9:25   ` Shilimkar, Santosh
2012-05-28  9:25     ` Shilimkar, Santosh
2012-05-28 10:30     ` Valentin, Eduardo
2012-05-28 10:30       ` Valentin, Eduardo
2012-06-01 11:19       ` Tony Lindgren
2012-06-01 11:19         ` Tony Lindgren
2012-05-25  8:25 ` [RFC PATCH 03/11] arm: omap: device: create a device for system control module Eduardo Valentin
2012-05-25  8:25   ` Eduardo Valentin
2012-05-25 12:30   ` Cousson, Benoit
2012-05-25 12:30     ` Cousson, Benoit
2012-05-29  9:44     ` Eduardo Valentin
2012-05-29  9:44       ` Eduardo Valentin
2012-06-14 13:50       ` Konstantin Baydarov
2012-06-14 13:50         ` Konstantin Baydarov
2012-06-15  9:22         ` Valentin, Eduardo
2012-06-15  9:22           ` Valentin, Eduardo
2012-05-29 13:39   ` Konstantin Baydarov [this message]
2012-05-29 13:39     ` Konstantin Baydarov
2012-05-25  8:25 ` [RFC PATCH 04/11] OMAP: Add early " Eduardo Valentin
2012-05-25  8:25   ` Eduardo Valentin
2012-05-25 11:32   ` Konstantin Baydarov
2012-05-25 11:32     ` Konstantin Baydarov
2012-05-25 11:44     ` Valentin, Eduardo
2012-05-25 11:44       ` Valentin, Eduardo
2012-05-25 11:54   ` Konstantin Baydarov
2012-05-25 11:54     ` Konstantin Baydarov
2012-05-25 12:32   ` Cousson, Benoit
2012-05-25 12:32     ` Cousson, Benoit
2012-05-28  9:58   ` Shilimkar, Santosh
2012-05-28  9:58     ` Shilimkar, Santosh
2012-05-25  8:25 ` [RFC PATCH 05/11] mfd: omap: control: core system control driver Eduardo Valentin
2012-05-25  8:25   ` Eduardo Valentin
2012-05-25 12:52   ` Cousson, Benoit
2012-05-25 12:52     ` Cousson, Benoit
2012-05-28 11:35     ` Eduardo Valentin
2012-05-28 11:35       ` Eduardo Valentin
2012-05-29 13:25       ` Cousson, Benoit
2012-05-29 13:25         ` Cousson, Benoit
2012-06-01 11:29         ` Tony Lindgren
2012-06-01 11:29           ` Tony Lindgren
2012-06-01 12:30           ` Shilimkar, Santosh
2012-06-01 12:30             ` Shilimkar, Santosh
2012-06-01 12:43             ` Cousson, Benoit
2012-06-01 12:43               ` Cousson, Benoit
2012-06-01 17:19               ` Eduardo Valentin
2012-06-01 17:19                 ` Eduardo Valentin
2012-06-01 13:40           ` Konstantin Baydarov
2012-06-01 13:40             ` Konstantin Baydarov
2012-06-01 14:13             ` Tony Lindgren
2012-06-01 14:13               ` Tony Lindgren
2012-06-01 14:26               ` Konstantin Baydarov
2012-06-01 14:26                 ` Konstantin Baydarov
2012-05-28  9:54   ` Shilimkar, Santosh
2012-05-28  9:54     ` Shilimkar, Santosh
2012-05-28 11:42     ` Eduardo Valentin
2012-05-28 11:42       ` Eduardo Valentin
2012-05-28 13:15       ` Shilimkar, Santosh
2012-05-28 13:15         ` Shilimkar, Santosh
2012-05-29 13:31         ` Cousson, Benoit
2012-05-29 13:31           ` Cousson, Benoit
2012-05-25  8:25 ` [RFC PATCH 06/11] OMAP2+: use control module mfd driver in omap_type Eduardo Valentin
2012-05-25  8:25   ` Eduardo Valentin
2012-05-25 12:53   ` Cousson, Benoit
2012-05-25 12:53     ` Cousson, Benoit
2012-05-28 10:02     ` Shilimkar, Santosh
2012-05-28 10:02       ` Shilimkar, Santosh
2012-05-28 11:24       ` Eduardo Valentin
2012-05-28 11:24         ` Eduardo Valentin
2012-06-01 11:35         ` Tony Lindgren
2012-06-01 11:35           ` Tony Lindgren
2012-05-25  8:25 ` [RFC PATCH 07/11] mfd: omap: control: usb-phy: introduce the ctrl-module usb driver Eduardo Valentin
2012-05-25  8:25   ` Eduardo Valentin
2012-05-25 13:35   ` Shubhrajyoti Datta
2012-05-25 13:35     ` Shubhrajyoti Datta
2012-05-25 15:06   ` Cousson, Benoit
2012-05-25 15:06     ` Cousson, Benoit
2012-06-01 11:38   ` Tony Lindgren
2012-06-01 11:38     ` Tony Lindgren
2012-06-01 13:20     ` [linux-pm] " Tony Lindgren
2012-06-01 13:20       ` Tony Lindgren
2012-06-01 14:07       ` Kevin Hilman
2012-06-01 14:07         ` Kevin Hilman
2012-06-01 14:15         ` Tony Lindgren
2012-06-01 14:15           ` Tony Lindgren
2012-05-25  8:25 ` [RFC PATCH 08/11] ARM: OMAP4+: Adding the temperature sensor register set bit fields Eduardo Valentin
2012-05-25  8:25   ` Eduardo Valentin
2012-05-25 15:13   ` Cousson, Benoit
2012-05-25 15:13     ` Cousson, Benoit
2012-05-28 11:17     ` Eduardo Valentin
2012-05-28 11:17       ` Eduardo Valentin
2012-05-28 10:04   ` Shilimkar, Santosh
2012-05-28 10:04     ` Shilimkar, Santosh
2012-05-28 11:18     ` Eduardo Valentin
2012-05-28 11:18       ` Eduardo Valentin
2012-05-25  8:25 ` [RFC PATCH 09/11] ARM: OMAP4+: thermal: introduce bandgap temperature sensor Eduardo Valentin
2012-05-25  8:25   ` Eduardo Valentin
2012-05-25 15:49   ` Cousson, Benoit
2012-05-25 15:49     ` Cousson, Benoit
2012-05-28 11:06     ` Eduardo Valentin
2012-05-28 11:06       ` Eduardo Valentin
2012-05-28 11:16     ` Eduardo Valentin
2012-05-28 11:16       ` Eduardo Valentin
2012-05-29 13:14       ` Cousson, Benoit
2012-05-29 13:14         ` Cousson, Benoit
2012-05-29 17:51         ` Mike Turquette
2012-05-29 17:51           ` Mike Turquette
2012-05-25 16:39   ` Konstantin Baydarov
2012-05-25 16:39     ` Konstantin Baydarov
2012-05-28 10:55     ` Eduardo Valentin
2012-05-28 10:55       ` Eduardo Valentin
2012-06-01 11:42   ` Tony Lindgren
2012-06-01 11:42     ` Tony Lindgren
2012-05-25  8:26 ` [RFC PATCH 10/11] omap4: thermal: add basic CPU thermal zone Eduardo Valentin
2012-05-25  8:26   ` Eduardo Valentin
2012-05-28  9:33   ` Shilimkar, Santosh
2012-05-28  9:33     ` Shilimkar, Santosh
2012-05-28  9:48     ` Felipe Balbi
2012-05-28  9:48       ` Felipe Balbi
2012-05-28 10:26       ` Valentin, Eduardo
2012-05-28 10:26         ` Valentin, Eduardo
2012-05-29 12:54         ` Cousson, Benoit
2012-05-29 12:54           ` Cousson, Benoit
2012-05-25  8:26 ` [RFC PATCH 11/11] ARM: DT: Add support to system control module for OMAP4 Eduardo Valentin
2012-05-25  8:26   ` Eduardo Valentin
2012-05-29  9:49   ` Konstantin Baydarov
2012-05-29  9:49     ` Konstantin Baydarov
2012-05-30  8:38     ` Cousson, Benoit
2012-05-30  8:38       ` Cousson, Benoit
2012-05-30  9:05       ` Konstantin Baydarov
2012-05-30  9:05         ` Konstantin Baydarov
2012-05-30  9:26         ` Cousson, Benoit
2012-05-30  9:26           ` Cousson, Benoit
2012-05-30 10:17           ` Konstantin Baydarov
2012-05-30 10:17             ` Konstantin Baydarov
2012-05-30 10:22             ` Cousson, Benoit
2012-05-30 10:22               ` Cousson, Benoit
2012-05-30 10:42               ` Eduardo Valentin
2012-05-30 10:42                 ` Eduardo Valentin
2012-05-30 12:16                 ` Cousson, Benoit
2012-05-30 12:16                   ` Cousson, Benoit
2012-05-31 12:06           ` Konstantin Baydarov
2012-05-31 12:06             ` Konstantin Baydarov
2012-05-31 12:49             ` Eduardo Valentin
2012-05-31 12:49               ` Eduardo Valentin
2012-05-31 12:52               ` Cousson, Benoit
2012-05-31 12:52                 ` Cousson, Benoit
2012-05-31 14:51                 ` Konstantin Baydarov
2012-05-31 14:51                   ` Konstantin Baydarov
2012-05-25  8:35 ` [RFC PATCH 00/11] OMAP System Control Module Eduardo Valentin
2012-05-25  8:35   ` Eduardo Valentin
2012-05-25 10:50 ` Konstantin Baydarov
2012-05-25 10:50   ` Konstantin Baydarov
2012-05-25 11:11   ` Valentin, Eduardo
2012-05-25 11:11     ` Valentin, Eduardo
2012-05-25 12:21     ` Konstantin Baydarov
2012-05-25 12:21       ` Konstantin Baydarov
2012-06-01  0:12 ` [linux-pm] " Kevin Hilman
2012-06-01  0:12   ` Kevin Hilman
2012-06-18 11:32 ` [RFC PATCH v2 01/11] ARM: OMAP4: Remove un-used control module headers and defines Konstantin Baydarov
2012-06-18 11:32   ` Konstantin Baydarov
2012-06-18 11:32 ` [RFC PATCH v2 02/11] ARM: OMAP: expose control.h to mach area Konstantin Baydarov
2012-06-18 11:32   ` Konstantin Baydarov
2012-06-20 10:17   ` Tony Lindgren
2012-06-20 10:17     ` Tony Lindgren
2012-06-18 11:32 ` [RFC PATCH v2 03/11] mfd: omap: control: core system control driver Konstantin Baydarov
2012-06-18 11:32   ` Konstantin Baydarov
2012-06-20 10:22   ` Tony Lindgren
2012-06-20 10:22     ` Tony Lindgren
2012-06-20 14:13     ` Konstantin Baydarov
2012-06-20 14:13       ` Konstantin Baydarov
2012-06-26 11:17       ` Tony Lindgren
2012-06-26 11:17         ` Tony Lindgren
2012-06-18 11:32 ` [RFC PATCH v2 04/11] OMAP2+: use control module mfd driver in omap_type Konstantin Baydarov
2012-06-18 11:32   ` Konstantin Baydarov
2012-06-20 10:24   ` Tony Lindgren
2012-06-20 10:24     ` Tony Lindgren
2012-06-18 11:32 ` [RFC PATCH v2 05/11] mfd: omap: control: usb-phy: introduce the ctrl-module usb driver Konstantin Baydarov
2012-06-18 11:32   ` Konstantin Baydarov
2012-06-18 11:32 ` [RFC PATCH v2 06/11] ARM: OMAP4+: Adding the temperature sensor register set bit fields Konstantin Baydarov
2012-06-18 11:32   ` Konstantin Baydarov
2012-06-20 10:25   ` Tony Lindgren
2012-06-20 10:25     ` Tony Lindgren
2012-06-18 11:32 ` [RFC PATCH v2 07/11] ARM: OMAP4+: thermal: introduce bandgap temperature sensor Konstantin Baydarov
2012-06-18 11:32   ` Konstantin Baydarov
2012-06-18 11:32 ` [RFC PATCH v2 08/11] omap4: thermal: add basic CPU thermal zone Konstantin Baydarov
2012-06-18 11:32   ` Konstantin Baydarov
2012-06-18 11:32 ` [RFC PATCH v2 09/11] ARM: DT: Add support to system control module for OMAP4 Konstantin Baydarov
2012-06-18 11:32   ` Konstantin Baydarov
2012-06-18 12:13   ` Sergei Shtylyov
2012-06-18 12:13     ` Sergei Shtylyov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FC4D1AA.5040807@dev.rtsoft.ru \
    --to=kbaidarov@dev.rtsoft.ru \
    --cc=amit.kachhap@linaro.org \
    --cc=amit.kucheria@linaro.org \
    --cc=b-cousson@ti.com \
    --cc=balbi@ti.com \
    --cc=eduardo.valentin@ti.com \
    --cc=kishon@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=paul@pwsan.com \
    --cc=santosh.shilimkar@ti.com \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.