RE: OMAP3 - PM - Question - Disabling CLKEN and HFCLKOUT signals from TWL4030 scripts
Hi Lesly, > 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? > Yes nSLEEP1, nSLEEP2 and SYS_CLK_REQ signals go low during system > OFF mode. > > Are you sending SLEEP/OFF command in singular msg? > Yes. > > Also check the HFCLKOUT_REMAP register for SLEEP_STATE[3:0], if using SLEEP > cmd. > > 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}, you have to sent sleep cmd to RES_HFCLKOUT also.(* attach HFCLKOUT to P3) > }; > > 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}, you have to wakeup cmd to RES_HFCLKOUT also. (* attach HFCLKOUT to P3) > }; > > 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}, > }; > -- >> Part number of TPS used in our bo
RE: OMAP3 - PM - Question - Disabling CLKEN and HFCLKOUT signals from TWL4030 scripts
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? Yes nSLEEP1, nSLEEP2 and SYS_CLK_REQ signals go low during system OFF mode. Are you sending SLEEP/OFF command in singular msg? Yes. Also check the HFCLKOUT_REMAP register for SLEEP_STATE[3:0], if using SLEEP cmd. 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. > -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
OMAP3 - PM - Question - Disabling CLKEN and HFCLKOUT signals from TWL4030 scripts
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. Part number of TPS used in our board is TPS65950 BZXNR with regards, - Nagendra. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: Newbie doubt
You may also want to consider EVM from Mistral. Please see the link below for more details. http://www.mistralsolutions.com/products/omap_3evm.php with regards, - Nagendra. -Original Message- From: linux-omap-ow...@vger.kernel.org [mailto:linux-omap-ow...@vger.kernel.org] On Behalf Of Andy Shevchenko Sent: Monday, November 09, 2009 11:23 AM To: Niamathullah sharief Cc: linux-omap@vger.kernel.org Subject: Re: Newbie doubt On Mon, Nov 9, 2009 at 6:59 AM, Niamathullah sharief wrote: > Hi, > I want to know that what are all the OMAP based boards available other > than beagle board?in that which one will be better for me as a newbie. As far as I knnow you can use beagle board or ready-to-use devices such as gumstix. -- With Best Regards, Andy Shevchenko -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please do not print this email unless it is absolutely necessary. Spread environmental awareness. ---DISCLAIMER-- The information transmitted herewith is confidential and proprietary information intended only for use by the individual or entity to which it is addressed. If the reader of this message is not the intended recipient, you are hereby notified that any review, retransmission, dissemination, distribution, copying or other use of, or taking of any action in reliance upon this information is strictly prohibited. If you have received this communication in error, please contact the sender and delete the material from your computer. --- -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html