[PATCH 2/4] ARM: OMAP4 PM: Add IO Daisychain support
Paul Walmsley
paul at pwsan.com
Fri Oct 7 04:13:44 EDT 2011
Hi
some comments:
On Tue, 4 Oct 2011, Vishwanath BS wrote:
> From: Rajendra Nayak <rnayak at ti.com>
>
> patch adds IO Daisychain support for OMAP4 as per section 3.9.4 in OMAP4430
> Public TRM.
>
> Signed-off-by: Rajendra Nayak <rnayak at ti.com>
> Signed-off-by: Vishwanath BS <vishwanath.bs at ti.com>
> ---
> arch/arm/mach-omap2/pm.h | 1 +
> arch/arm/mach-omap2/pm44xx.c | 36 ++++++++++++++++++++++++++++++++++++
> 2 files changed, 37 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/mach-omap2/pm.h b/arch/arm/mach-omap2/pm.h
> index 9a36a7c..2e09d72 100644
> --- a/arch/arm/mach-omap2/pm.h
> +++ b/arch/arm/mach-omap2/pm.h
> @@ -22,6 +22,7 @@ extern int omap3_can_sleep(void);
> extern int omap_set_pwrdm_state(struct powerdomain *pwrdm, u32 state);
> extern int omap3_idle_init(void);
> extern void omap3_enable_io_chain(void);
> +extern void omap4_trigger_wuclk_ctrl(void);
>
> #if defined(CONFIG_PM_OPP)
> extern int omap3_opp_init(void);
> diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
> index 59a870b..aa7cff4 100644
> --- a/arch/arm/mach-omap2/pm44xx.c
> +++ b/arch/arm/mach-omap2/pm44xx.c
> @@ -16,8 +16,17 @@
> #include <linux/err.h>
> #include <linux/slab.h>
>
> +#include <plat/common.h>
> +
> #include "powerdomain.h"
> #include <mach/omap4-common.h>
> +#include "pm.h"
> +#include "cm-regbits-44xx.h"
> +#include "cminst44xx.h"
> +#include "prm-regbits-44xx.h"
> +#include "prcm44xx.h"
> +#include "prm44xx.h"
> +#include "prminst44xx.h"
>
> struct power_state {
> struct powerdomain *pwrdm;
> @@ -30,6 +39,33 @@ struct power_state {
>
> static LIST_HEAD(pwrst_list);
>
> +#define MAX_IOPAD_LATCH_TIME 1000
This macro is missing a comment, which should precede it, describing what
this value is.
> +
> +void omap4_trigger_wuclk_ctrl(void)
> +{
> + int i = 0;
> +
> + /* Enable GLOBAL_WUEN */
> + if (!omap4_cminst_read_inst_reg_bits(OMAP4430_PRM_PARTITION,
> + OMAP4430_PRM_DEVICE_INST, OMAP4_PRM_IO_PMCTRL_OFFSET,
> + OMAP4430_GLOBAL_WUEN_MASK))
The above line doesn't look right. It's accessing a PRM instance register
with omap4_cminst_*()? Shouldn't that be omap4_prminst_*()?
> + omap4_prminst_rmw_inst_reg_bits(OMAP4430_GLOBAL_WUEN_MASK,
> + OMAP4430_GLOBAL_WUEN_MASK, OMAP4430_PRM_PARTITION,
> + OMAP4430_PRM_DEVICE_INST, OMAP4_PRM_IO_PMCTRL_OFFSET);
> +
> + /* Trigger WUCLKIN enable */
> + omap4_prminst_rmw_inst_reg_bits(OMAP4430_WUCLK_CTRL_MASK, OMAP4430_WUCLK_CTRL_MASK,
> + OMAP4430_PRM_PARTITION, OMAP4430_PRM_DEVICE_INST, OMAP4_PRM_IO_PMCTRL_OFFSET);
> + omap_test_timeout(
> + ((omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION, OMAP4430_PRM_DEVICE_INST, OMAP4_PRM_IO_PMCTRL_OFFSET)
> + >> OMAP4430_WUCLK_STATUS_SHIFT) == 1),
> + MAX_IOPAD_LATCH_TIME, i);
> + /* Trigger WUCLKIN disable */
> + omap4_prminst_rmw_inst_reg_bits(OMAP4430_WUCLK_CTRL_MASK, 0x0,
> + OMAP4430_PRM_PARTITION, OMAP4430_PRM_DEVICE_INST, OMAP4_PRM_IO_PMCTRL_OFFSET);
> + return;
> +}
This function belongs in mach-omap2/prminst44xx.c. I still think it would
be good if we moved all PRM/CM direct register accesses into prm*.c or
cm*.c files in mach-omap2/. Then none of those prm*.h includes would be
needed in pm44xx.c either.
> +
> #ifdef CONFIG_SUSPEND
> static int omap4_pm_suspend(void)
> {
> --
> 1.7.0.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
- Paul
More information about the linux-arm-kernel
mailing list