All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rajendra Nayak <rnayak@ti.com>
To: Tero Kristo <t-kristo@ti.com>
Cc: linux-omap@vger.kernel.org, khilman@ti.com,
	linux-arm-kernel@lists.infradead.org,
	Vishwanath BS <vishwanath.bs@ti.com>
Subject: Re: [PATCHv3 2/6] ARM: OMAP3 PM: Move IO Daisychain function to omap3 prm file
Date: Thu, 01 Mar 2012 12:19:33 +0530	[thread overview]
Message-ID: <4F4F1BFD.4020903@ti.com> (raw)
In-Reply-To: <1330525621-29836-3-git-send-email-t-kristo@ti.com>

On Wednesday 29 February 2012 07:56 PM, Tero Kristo wrote:
> From: Vishwanath BS<vishwanath.bs@ti.com>
>
> Since IO Daisychain modifies only PRM registers, it makes sense to move
> it to PRM File.
>
> Signed-off-by: Vishwanath BS<vishwanath.bs@ti.com>
> Tested-by: Govindraj.R<govindraj.raja@ti.com>
> Signed-off-by: Tero Kristo<t-kristo@ti.com>
> ---
>   arch/arm/mach-omap2/pm34xx.c       |   30 +-----------------------------
>   arch/arm/mach-omap2/prm2xxx_3xxx.c |   32 ++++++++++++++++++++++++++++++++
>   arch/arm/mach-omap2/prm2xxx_3xxx.h |   14 ++++++++++++++
>   3 files changed, 47 insertions(+), 29 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
> index b0821a8..e97ec3f 100644
> --- a/arch/arm/mach-omap2/pm34xx.c
> +++ b/arch/arm/mach-omap2/pm34xx.c
> @@ -85,34 +85,6 @@ static inline void omap3_per_restore_context(void)
>   	omap_gpio_restore_context();
>   }
>
> -static void omap3_enable_io_chain(void)
> -{
> -	int timeout = 0;
> -
> -	omap2_prm_set_mod_reg_bits(OMAP3430_EN_IO_CHAIN_MASK, WKUP_MOD,
> -				   PM_WKEN);
> -	/* Do a readback to assure write has been done */
> -	omap2_prm_read_mod_reg(WKUP_MOD, PM_WKEN);
> -
> -	while (!(omap2_prm_read_mod_reg(WKUP_MOD, PM_WKST)&
> -		 OMAP3430_ST_IO_CHAIN_MASK)) {
> -		timeout++;
> -		if (timeout>  1000) {
> -			pr_err("Wake up daisy chain activation failed.\n");
> -			return;
> -		}
> -	}
> -	omap2_prm_clear_mod_reg_bits(OMAP3430_EN_IO_CHAIN_MASK, WKUP_MOD,
> -			PM_WKEN);
> -
> -}
> -
> -static void omap3_disable_io_chain(void)
> -{
> -	omap2_prm_clear_mod_reg_bits(OMAP3430_EN_IO_CHAIN_MASK, WKUP_MOD,
> -				     PM_WKEN);
> -}
> -
>   static void omap3_core_save_context(void)
>   {
>   	omap3_ctrl_save_padconf();
> @@ -324,7 +296,7 @@ void omap_sram_idle(void)
>   	     core_next_state<  PWRDM_POWER_ON)) {
>   		omap2_prm_set_mod_reg_bits(OMAP3430_EN_IO_MASK, WKUP_MOD, PM_WKEN);
>   		if (omap3_has_io_chain_ctrl())
> -			omap3_enable_io_chain();
> +			omap3_trigger_io_chain();
>   	}
>
>   	pwrdm_pre_transition();
> diff --git a/arch/arm/mach-omap2/prm2xxx_3xxx.c b/arch/arm/mach-omap2/prm2xxx_3xxx.c
> index 9ce7654..fc98781 100644
> --- a/arch/arm/mach-omap2/prm2xxx_3xxx.c
> +++ b/arch/arm/mach-omap2/prm2xxx_3xxx.c
> @@ -301,6 +301,38 @@ void omap3xxx_prm_restore_irqen(u32 *saved_mask)
>   				OMAP3_PRM_IRQENABLE_MPU_OFFSET);
>   }
>
> +/**
> + * Maximum time(us) it takes to output the signal WUCLKOUT of the last pad of
> + * the I/O ring after asserting WUCLKIN high
> + */
> +#define MAX_IOPAD_LATCH_TIME 1000

Since we are changing the implementation to use omap_test_timeout()
in this patch, it makes sense to make this 100 so we have a max 100us
delay, similar to what we did on OMAP4.

> +
> +/* OMAP3 Daisychain enable sequence */
> +void omap3_trigger_io_chain(void)
> +{
> +	int i = 0;
> +
> +	omap2_prm_set_mod_reg_bits(OMAP3430_EN_IO_CHAIN_MASK, WKUP_MOD,
> +				   PM_WKEN);
> +	/* Do a readback to assure write has been done */
> +	omap2_prm_read_mod_reg(WKUP_MOD, PM_WKEN);
> +
> +	omap_test_timeout(((omap2_prm_read_mod_reg(WKUP_MOD, PM_WKST)&
> +			    OMAP3430_ST_IO_CHAIN_MASK) == 1),
> +			  MAX_IOPAD_LATCH_TIME, i);
> +
> +	omap2_prm_clear_mod_reg_bits(OMAP3430_EN_IO_CHAIN_MASK, WKUP_MOD,
> +				     PM_WKEN);

The comment from Djamil should hold good here too. We should wait for
IO chain status to show 0 here.

> +}
> +

regards,
Rajendra

WARNING: multiple messages have this Message-ID (diff)
From: rnayak@ti.com (Rajendra Nayak)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv3 2/6] ARM: OMAP3 PM: Move IO Daisychain function to omap3 prm file
Date: Thu, 01 Mar 2012 12:19:33 +0530	[thread overview]
Message-ID: <4F4F1BFD.4020903@ti.com> (raw)
In-Reply-To: <1330525621-29836-3-git-send-email-t-kristo@ti.com>

On Wednesday 29 February 2012 07:56 PM, Tero Kristo wrote:
> From: Vishwanath BS<vishwanath.bs@ti.com>
>
> Since IO Daisychain modifies only PRM registers, it makes sense to move
> it to PRM File.
>
> Signed-off-by: Vishwanath BS<vishwanath.bs@ti.com>
> Tested-by: Govindraj.R<govindraj.raja@ti.com>
> Signed-off-by: Tero Kristo<t-kristo@ti.com>
> ---
>   arch/arm/mach-omap2/pm34xx.c       |   30 +-----------------------------
>   arch/arm/mach-omap2/prm2xxx_3xxx.c |   32 ++++++++++++++++++++++++++++++++
>   arch/arm/mach-omap2/prm2xxx_3xxx.h |   14 ++++++++++++++
>   3 files changed, 47 insertions(+), 29 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
> index b0821a8..e97ec3f 100644
> --- a/arch/arm/mach-omap2/pm34xx.c
> +++ b/arch/arm/mach-omap2/pm34xx.c
> @@ -85,34 +85,6 @@ static inline void omap3_per_restore_context(void)
>   	omap_gpio_restore_context();
>   }
>
> -static void omap3_enable_io_chain(void)
> -{
> -	int timeout = 0;
> -
> -	omap2_prm_set_mod_reg_bits(OMAP3430_EN_IO_CHAIN_MASK, WKUP_MOD,
> -				   PM_WKEN);
> -	/* Do a readback to assure write has been done */
> -	omap2_prm_read_mod_reg(WKUP_MOD, PM_WKEN);
> -
> -	while (!(omap2_prm_read_mod_reg(WKUP_MOD, PM_WKST)&
> -		 OMAP3430_ST_IO_CHAIN_MASK)) {
> -		timeout++;
> -		if (timeout>  1000) {
> -			pr_err("Wake up daisy chain activation failed.\n");
> -			return;
> -		}
> -	}
> -	omap2_prm_clear_mod_reg_bits(OMAP3430_EN_IO_CHAIN_MASK, WKUP_MOD,
> -			PM_WKEN);
> -
> -}
> -
> -static void omap3_disable_io_chain(void)
> -{
> -	omap2_prm_clear_mod_reg_bits(OMAP3430_EN_IO_CHAIN_MASK, WKUP_MOD,
> -				     PM_WKEN);
> -}
> -
>   static void omap3_core_save_context(void)
>   {
>   	omap3_ctrl_save_padconf();
> @@ -324,7 +296,7 @@ void omap_sram_idle(void)
>   	     core_next_state<  PWRDM_POWER_ON)) {
>   		omap2_prm_set_mod_reg_bits(OMAP3430_EN_IO_MASK, WKUP_MOD, PM_WKEN);
>   		if (omap3_has_io_chain_ctrl())
> -			omap3_enable_io_chain();
> +			omap3_trigger_io_chain();
>   	}
>
>   	pwrdm_pre_transition();
> diff --git a/arch/arm/mach-omap2/prm2xxx_3xxx.c b/arch/arm/mach-omap2/prm2xxx_3xxx.c
> index 9ce7654..fc98781 100644
> --- a/arch/arm/mach-omap2/prm2xxx_3xxx.c
> +++ b/arch/arm/mach-omap2/prm2xxx_3xxx.c
> @@ -301,6 +301,38 @@ void omap3xxx_prm_restore_irqen(u32 *saved_mask)
>   				OMAP3_PRM_IRQENABLE_MPU_OFFSET);
>   }
>
> +/**
> + * Maximum time(us) it takes to output the signal WUCLKOUT of the last pad of
> + * the I/O ring after asserting WUCLKIN high
> + */
> +#define MAX_IOPAD_LATCH_TIME 1000

Since we are changing the implementation to use omap_test_timeout()
in this patch, it makes sense to make this 100 so we have a max 100us
delay, similar to what we did on OMAP4.

> +
> +/* OMAP3 Daisychain enable sequence */
> +void omap3_trigger_io_chain(void)
> +{
> +	int i = 0;
> +
> +	omap2_prm_set_mod_reg_bits(OMAP3430_EN_IO_CHAIN_MASK, WKUP_MOD,
> +				   PM_WKEN);
> +	/* Do a readback to assure write has been done */
> +	omap2_prm_read_mod_reg(WKUP_MOD, PM_WKEN);
> +
> +	omap_test_timeout(((omap2_prm_read_mod_reg(WKUP_MOD, PM_WKST)&
> +			    OMAP3430_ST_IO_CHAIN_MASK) == 1),
> +			  MAX_IOPAD_LATCH_TIME, i);
> +
> +	omap2_prm_clear_mod_reg_bits(OMAP3430_EN_IO_CHAIN_MASK, WKUP_MOD,
> +				     PM_WKEN);

The comment from Djamil should hold good here too. We should wait for
IO chain status to show 0 here.

> +}
> +

regards,
Rajendra

  reply	other threads:[~2012-03-01  6:49 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-29 14:26 [PATCHv3 0/6] ARM: OMAP3PLUS: IO daisychain support fixes Tero Kristo
2012-02-29 14:26 ` Tero Kristo
2012-02-29 14:26 ` [PATCHv3 1/6] ARM: OMAP3 PM: correct enable/disable of daisy io chain Tero Kristo
2012-02-29 14:26   ` Tero Kristo
2012-02-29 14:26 ` [PATCHv3 2/6] ARM: OMAP3 PM: Move IO Daisychain function to omap3 prm file Tero Kristo
2012-02-29 14:26   ` Tero Kristo
2012-03-01  6:49   ` Rajendra Nayak [this message]
2012-03-01  6:49     ` Rajendra Nayak
2012-03-01  8:28     ` Tero Kristo
2012-03-01  8:28       ` Tero Kristo
2012-03-01  8:43       ` Rajendra Nayak
2012-03-01  8:43         ` Rajendra Nayak
2012-02-29 14:26 ` [PATCHv3 3/6] ARM: OMAP4 PM: Add IO Daisychain support Tero Kristo
2012-02-29 14:26   ` Tero Kristo
2012-02-29 14:26 ` [PATCHv3 4/6] ARM: OMAP3 PM: Enable IO Wake up Tero Kristo
2012-02-29 14:26   ` Tero Kristo
2012-02-29 17:22   ` Paul Walmsley
2012-02-29 17:22     ` Paul Walmsley
2012-03-01  6:52   ` Rajendra Nayak
2012-03-01  6:52     ` Rajendra Nayak
2012-03-01  8:25     ` Tero Kristo
2012-03-01  8:25       ` Tero Kristo
2012-03-01 22:37     ` Kevin Hilman
2012-03-01 22:37       ` Kevin Hilman
2012-03-02  9:19       ` Tero Kristo
2012-03-02  9:19         ` Tero Kristo
2012-03-02  9:23         ` Rajendra Nayak
2012-03-02  9:23           ` Rajendra Nayak
2012-02-29 14:27 ` [PATCHv3 5/6] ARM: OMAP3PLUS PM: Add IO Daisychain support via hwmod mux Tero Kristo
2012-02-29 14:27   ` Tero Kristo
2012-02-29 14:27 ` [PATCHv3 6/6] ARM: OMAP3 PM: Remove IO Daisychain control from cpuidle Tero Kristo
2012-02-29 14:27   ` Tero Kristo
2012-03-06  0:32 ` [PATCHv3 0/6] ARM: OMAP3PLUS: IO daisychain support fixes Kevin Hilman
2012-03-06  0:32   ` Kevin Hilman

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=4F4F1BFD.4020903@ti.com \
    --to=rnayak@ti.com \
    --cc=khilman@ti.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=t-kristo@ti.com \
    --cc=vishwanath.bs@ti.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.