public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
From: "Nagendra" <nagendra@mistralsolutions.com>
To: 'Lesly A M' <leslyam@ti.com>
Cc: linux-omap@vger.kernel.org, ratheesh@mistralsolutions.com
Subject: RE: OMAP3 - PM - Question - Disabling CLKEN and HFCLKOUT signals      from TWL4030 scripts
Date: Fri, 21 Jan 2011 23:20:23 +0530	[thread overview]
Message-ID: <001501cbb993$b25c0fe0$17142fa0$@com> (raw)
In-Reply-To: <23149.10.24.255.17.1295604867.squirrel@dbdmail.itg.ti.com>


Please see responses inline below.

Hi Nagendra,

> Hi All,
>
> We are working on Power management on OMAP3 (3530) and I am trying to
> disable CLKEN and HFCLKOUT through TWL4030 power scripts. However we have
> not been able to achieve this.
>
> Following are the changes and tests done so far.
>
> - VAUX1, CLKEN and HFCLKOUT were assigned to P1 group.
> - Wrote Singular messages to turn on/off these signals in TWL4030 scripts.
> - We observed that VAUX1 is able to switch ON/OFF properly as per the
script
> but HFCLKOUT and CLKEN are not behaving as expected.
> - However if we try writing CLKEN_DEV_GRP to zero, CLKEN is going low.
> - We have made sure that SYS_OFF_MODE and CLK_REQ signals go low during
the
> system OFF mode, LVL_WAKEUP bit enabled in Px_SW_EVENTS, and STS_CHG bit
in
> STS_HW_CONDITIONS is zero.
>
> Is there anything that I am missing? Kindly let me know.

Did try probing the sys_clkreq from OMAP?
<Nagendra> Yes nSLEEP1, nSLEEP2 and SYS_CLK_REQ signals go low during system
OFF mode.

Are you sending SLEEP/OFF command in singular msg?
<Nagendra> Yes.

Also check the HFCLKOUT_REMAP register for SLEEP_STATE[3:0], if using SLEEP
cmd.
<Nagendra> 
We are setting SLEEP_STATE field of CLKEN and HFCLKOUT  to OFF mode.

PSP version : 3.0.1.6

Following is the TWL4030 power scripts that we are trying to get CLKEN
signal to OFF state. This is based on rx51-peripherals.c 

-----------------------------------------------
static struct twl4030_ins sleep_on_seq[] __initdata = {
        {MSG_SINGULAR(DEV_GRP_P1, RES_CLKEN, RES_STATE_OFF), 2},     
};

static struct twl4030_script sleep_on_script __initdata = {
        .script = sleep_on_seq,
        .size   = ARRAY_SIZE(sleep_on_seq),
        .flags  = TWL4030_SLEEP_SCRIPT,
};

static struct twl4030_ins wakeup_seq[] __initdata = {
        {MSG_SINGULAR(DEV_GRP_P1, RES_CLKEN, RES_STATE_ACTIVE), 2},
};

static struct twl4030_script wakeup_script __initdata = {
        .script = wakeup_seq,
        .size   = ARRAY_SIZE(wakeup_seq),
        .flags  = TWL4030_WAKEUP12_SCRIPT,
};

static struct twl4030_ins wakeup_p3_seq[] __initdata = {
        {MSG_SINGULAR(DEV_GRP_P3, RES_CLKEN, RES_STATE_ACTIVE), 2},
};

static struct twl4030_script wakeup_p3_script __initdata = {
        .script = wakeup_p3_seq,
        .size   = ARRAY_SIZE(wakeup_p3_seq),
        .flags  = TWL4030_WAKEUP3_SCRIPT,
};

static struct twl4030_ins wrst_seq[] __initdata = {
/*
 * Reset twl4030.
 * Reset VDD1 regulator.
 * Reset VDD2 regulator.
 * Reset VPLL1 regulator.
 * Enable sysclk output.
 * Reenable twl4030.
 */
        {MSG_SINGULAR(DEV_GRP_NULL, RES_RESET, RES_STATE_OFF), 2},
        {MSG_BROADCAST(DEV_GRP_NULL, RES_GRP_ALL, 0, 1, RES_STATE_ACTIVE),
                0x13},
        {MSG_BROADCAST(DEV_GRP_NULL, RES_GRP_PP, 0, 3, RES_STATE_OFF),
0x13},
        {MSG_SINGULAR(DEV_GRP_NULL, RES_VDD1, RES_STATE_WRST), 0x13},
        {MSG_SINGULAR(DEV_GRP_NULL, RES_VDD2, RES_STATE_WRST), 0x13},
        {MSG_SINGULAR(DEV_GRP_NULL, RES_VPLL1, RES_STATE_WRST), 0x35},
        {MSG_SINGULAR(DEV_GRP_P3, RES_HFCLKOUT, RES_STATE_ACTIVE), 2},
        {MSG_SINGULAR(DEV_GRP_NULL, RES_RESET, RES_STATE_ACTIVE), 2},
};

static struct twl4030_script wrst_script __initdata = {
        .script = wrst_seq,
        .size   = ARRAY_SIZE(wrst_seq),
        .flags  = TWL4030_WRST_SCRIPT,
};

static struct twl4030_script *twl4030_scripts[] __initdata = {
        /* wakeup12 script should be loaded before sleep script, otherwise a
           board might hit retention before loading of wakeup script is
           completed. This can cause boot failures depending on timing
issues.
        */
        &wakeup_script,
        &sleep_on_script,
        &wakeup_p3_script,
        &wrst_script,
};

static struct twl4030_resconfig twl4030_rconfig[] __initdata = {
        { .resource = RES_CLKEN, .devgroup = DEV_GRP_P1,
          .type = -1, .type2 = -1 , .remap_off = RES_STATE_OFF, .remap_sleep
= RES_STATE_OFF
        },
        { .resource = RES_HFCLKOUT, .devgroup = -1,
          .type = -1, .type2 = -1, .remap_off = RES_STATE_OFF, .remap_sleep
= RES_STATE_OFF
        },

        { 0, 0},
};
----------------------------------------------------------

Please let me know your comments.

Regards,
Lesly A M

>
> Part number of TPS used in our board is TPS65950 BZXNR
>
> with regards,
> - Nagendra.
>



  reply	other threads:[~2011-01-21 17:50 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-21  8:44 OMAP3 - PM - Question - Disabling CLKEN and HFCLKOUT signals from TWL4030 scripts Nagendra
2011-01-21 10:14 ` Lesly A M
2011-01-21 17:50   ` Nagendra [this message]
2011-01-24  5:22     ` Lesly A M
2011-01-24 16:50       ` Nagendra

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='001501cbb993$b25c0fe0$17142fa0$@com' \
    --to=nagendra@mistralsolutions.com \
    --cc=leslyam@ti.com \
    --cc=linux-omap@vger.kernel.org \
    --cc=ratheesh@mistralsolutions.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox