* OMAP3 - PM - Question - Disabling CLKEN and HFCLKOUT signals from TWL4030 scripts @ 2011-01-21 8:44 Nagendra 2011-01-21 10:14 ` Lesly A M 0 siblings, 1 reply; 5+ messages in thread From: Nagendra @ 2011-01-21 8:44 UTC (permalink / raw) To: linux-omap; +Cc: ratheesh 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. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: OMAP3 - PM - Question - Disabling CLKEN and HFCLKOUT signals from TWL4030 scripts 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 0 siblings, 1 reply; 5+ messages in thread From: Lesly A M @ 2011-01-21 10:14 UTC (permalink / raw) To: Nagendra; +Cc: linux-omap, ratheesh 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? Are you sending SLEEP/OFF command in singular msg? Also check the HFCLKOUT_REMAP register for SLEEP_STATE[3:0], if using SLEEP cmd. Regards, Lesly A M > > Part number of TPS used in our board is TPS65950 BZXNR > > with regards, > - Nagendra. > ^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: OMAP3 - PM - Question - Disabling CLKEN and HFCLKOUT signals from TWL4030 scripts 2011-01-21 10:14 ` Lesly A M @ 2011-01-21 17:50 ` Nagendra 2011-01-24 5:22 ` Lesly A M 0 siblings, 1 reply; 5+ messages in thread From: Nagendra @ 2011-01-21 17:50 UTC (permalink / raw) To: 'Lesly A M'; +Cc: linux-omap, ratheesh 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. > ^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: OMAP3 - PM - Question - Disabling CLKEN and HFCLKOUT signals from TWL4030 scripts 2011-01-21 17:50 ` Nagendra @ 2011-01-24 5:22 ` Lesly A M 2011-01-24 16:50 ` Nagendra 0 siblings, 1 reply; 5+ messages in thread From: Lesly A M @ 2011-01-24 5:22 UTC (permalink / raw) To: Nagendra; +Cc: linux-omap, ratheesh Hi Nagendra, > 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}, 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 board is TPS65950 BZXNR >> You are using which code base (mainline kernel) ? Regards, Lesly A M ^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: OMAP3 - PM - Question - Disabling CLKEN and HFCLKOUT signals from TWL4030 scripts 2011-01-24 5:22 ` Lesly A M @ 2011-01-24 16:50 ` Nagendra 0 siblings, 0 replies; 5+ messages in thread From: Nagendra @ 2011-01-24 16:50 UTC (permalink / raw) To: 'Lesly A M'; +Cc: linux-omap, ratheesh 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? > <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}, 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 board is TPS65950 BZXNR >> You are using which code base (mainline kernel) ? <Nagendra> We tried putting HFCLKOUT tied to P3 and put it into OFF state, but that did not work. 1. Is it necessary to put HFCLKOUT to OFF/SLEEP before switch OFF CLKEN? 2. We observe that none of RC resources can be put into sleep/off mode. Is there any dependency for this to work? 3. We are using Linux version 2.6.32 from PSP 3.0.1.6 release Regards, Lesly A M ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2011-01-24 16:50 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 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 2011-01-24 5:22 ` Lesly A M 2011-01-24 16:50 ` Nagendra
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox