From: "Grant Likely" <grant.likely@secretlab.ca> To: "Domen Puncer" <domen.puncer@telargo.com> Cc: u-boot-users@lists.sourceforge.net, linuxppc-embedded@ozlabs.org Subject: Re: [PATCH] icecube/lite5200b: wakeup from low-power support Date: Mon, 26 Mar 2007 10:08:27 -0600 [thread overview] Message-ID: <528646bc0703260908q7b018060v40db7e66aa81eaee@mail.gmail.com> (raw) In-Reply-To: <20070315104411.GF22215@moe.telargo.com> On 3/15/07, Domen Puncer <domen.puncer@telargo.com> wrote: > U-Boot part of Lite5200b low power mode support. > Puts SDRAM out of self-refresh and transfers control to > address saved at physical 0x0. This looks pretty straight forward. My only comment is that psc2_4 is probably used as GPIO instead of power control by some users (The lite5200 is an eval board after all). Maybe wrap the code with #ifdef CONFIG_LITE5200B_PM (instead of CONFIG_LITE5200B) so that it can be easily compiled out. Also, '//' style comments should be changed to '/* */' Otherwise; Acked-by: Grant Likely <grant.likely@secretlab.ca> g. > > --- > board/icecube/icecube.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 50 insertions(+) > > Index: u-boot.git/board/icecube/icecube.c > =================================================================== > --- u-boot.git.orig/board/icecube/icecube.c > +++ u-boot.git/board/icecube/icecube.c > @@ -42,6 +42,54 @@ > #include "mt48lc16m16a2-75.h" > # endif > #endif > + > +#ifdef CONFIG_LITE5200B > +/* u-boot part of low-power mode implementation */ > +#define SAVED_ADDR (*(void **)0x00000000) > +#define PSC2_4 0x02 > + > +void lite5200b_wakeup(void) > +{ > + unsigned char wakeup_pin; > + void (*linux_wakeup)(void); > + > + /* check PSC2_4, if it's down "QT" is signaling we have a wakeup > + * from low power mode */ > + *(vu_char *)MPC5XXX_WU_GPIO_ENABLE = PSC2_4; > + __asm__ volatile ("sync"); > + > + wakeup_pin = *(vu_char *)MPC5XXX_WU_GPIO_DATA_I; > + if (wakeup_pin & PSC2_4) > + return; > + > + /* acknowledge to "QT" > + * by holding pin at 1 for 10 uS */ > + *(vu_char *)MPC5XXX_WU_GPIO_DIR = PSC2_4; > + __asm__ volatile ("sync"); > + *(vu_char *)MPC5XXX_WU_GPIO_DATA_O = PSC2_4; > + __asm__ volatile ("sync"); > + udelay(10); > + > + /* put ram out of self-refresh */ > + *(vu_long *)MPC5XXX_SDRAM_CTRL |= 0x80000000; // mode_en > + __asm__ volatile ("sync"); > + *(vu_long *)MPC5XXX_SDRAM_CTRL |= 0x50000000; // cke ref_en > + __asm__ volatile ("sync"); > + *(vu_long *)MPC5XXX_SDRAM_CTRL &= ~0x80000000; // !mode_en > + __asm__ volatile ("sync"); > + udelay(10); /* wait a bit */ > + > + /* jump back to linux kernel code */ > + linux_wakeup = SAVED_ADDR; > + printf("\n\nLooks like we just woke, transferring control to 0x%08lx\n", > + linux_wakeup); > + linux_wakeup(); > +} > +#else > +#define lite5200b_wakeup() > +#endif > + > + > #ifndef CFG_RAMBOOT > static void sdram_start (int hi_addr) > { > @@ -208,6 +256,8 @@ long int initdram (int board_type) > __asm__ volatile ("sync"); > } > > + lite5200b_wakeup(); > + > return dramsize + dramsize2; > }
WARNING: multiple messages have this Message-ID (diff)
From: Grant Likely <grant.likely@secretlab.ca> To: u-boot@lists.denx.de Subject: [U-Boot-Users] [PATCH] icecube/lite5200b: wakeup from low-power support Date: Mon, 26 Mar 2007 10:08:27 -0600 [thread overview] Message-ID: <528646bc0703260908q7b018060v40db7e66aa81eaee@mail.gmail.com> (raw) In-Reply-To: <20070315104411.GF22215@moe.telargo.com> On 3/15/07, Domen Puncer <domen.puncer@telargo.com> wrote: > U-Boot part of Lite5200b low power mode support. > Puts SDRAM out of self-refresh and transfers control to > address saved at physical 0x0. This looks pretty straight forward. My only comment is that psc2_4 is probably used as GPIO instead of power control by some users (The lite5200 is an eval board after all). Maybe wrap the code with #ifdef CONFIG_LITE5200B_PM (instead of CONFIG_LITE5200B) so that it can be easily compiled out. Also, '//' style comments should be changed to '/* */' Otherwise; Acked-by: Grant Likely <grant.likely@secretlab.ca> g. > > --- > board/icecube/icecube.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 50 insertions(+) > > Index: u-boot.git/board/icecube/icecube.c > =================================================================== > --- u-boot.git.orig/board/icecube/icecube.c > +++ u-boot.git/board/icecube/icecube.c > @@ -42,6 +42,54 @@ > #include "mt48lc16m16a2-75.h" > # endif > #endif > + > +#ifdef CONFIG_LITE5200B > +/* u-boot part of low-power mode implementation */ > +#define SAVED_ADDR (*(void **)0x00000000) > +#define PSC2_4 0x02 > + > +void lite5200b_wakeup(void) > +{ > + unsigned char wakeup_pin; > + void (*linux_wakeup)(void); > + > + /* check PSC2_4, if it's down "QT" is signaling we have a wakeup > + * from low power mode */ > + *(vu_char *)MPC5XXX_WU_GPIO_ENABLE = PSC2_4; > + __asm__ volatile ("sync"); > + > + wakeup_pin = *(vu_char *)MPC5XXX_WU_GPIO_DATA_I; > + if (wakeup_pin & PSC2_4) > + return; > + > + /* acknowledge to "QT" > + * by holding pin at 1 for 10 uS */ > + *(vu_char *)MPC5XXX_WU_GPIO_DIR = PSC2_4; > + __asm__ volatile ("sync"); > + *(vu_char *)MPC5XXX_WU_GPIO_DATA_O = PSC2_4; > + __asm__ volatile ("sync"); > + udelay(10); > + > + /* put ram out of self-refresh */ > + *(vu_long *)MPC5XXX_SDRAM_CTRL |= 0x80000000; // mode_en > + __asm__ volatile ("sync"); > + *(vu_long *)MPC5XXX_SDRAM_CTRL |= 0x50000000; // cke ref_en > + __asm__ volatile ("sync"); > + *(vu_long *)MPC5XXX_SDRAM_CTRL &= ~0x80000000; // !mode_en > + __asm__ volatile ("sync"); > + udelay(10); /* wait a bit */ > + > + /* jump back to linux kernel code */ > + linux_wakeup = SAVED_ADDR; > + printf("\n\nLooks like we just woke, transferring control to 0x%08lx\n", > + linux_wakeup); > + linux_wakeup(); > +} > +#else > +#define lite5200b_wakeup() > +#endif > + > + > #ifndef CFG_RAMBOOT > static void sdram_start (int hi_addr) > { > @@ -208,6 +256,8 @@ long int initdram (int board_type) > __asm__ volatile ("sync"); > } > > + lite5200b_wakeup(); > + > return dramsize + dramsize2; > }
next prev parent reply other threads:[~2007-03-26 16:08 UTC|newest] Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top 2007-03-15 10:39 [PATCH 0/5 v2] MPC5200 and Lite5200b low power modes Domen Puncer 2007-03-15 10:41 ` [PATCH 1/5] mpc52xx suspend: UART Domen Puncer 2007-03-15 10:41 ` [PATCH 2/5] mpc52xx suspend: FEC (ethernet) Domen Puncer 2007-03-15 13:35 ` Grant Likely 2007-03-15 10:42 ` [PATCH 3/5] mpc52xx suspend: USB Domen Puncer 2007-03-15 13:24 ` Grant Likely 2007-03-15 14:37 ` Wrong board info for ML403 Leonid 2007-03-16 8:15 ` Andrei Konovalov 2007-03-22 7:44 ` [PATCH 3/5 v2] mpc52xx suspend: USB Domen Puncer 2007-03-23 11:56 ` Sylvain Munaut 2007-03-23 16:00 ` Grant Likely 2007-03-15 10:43 ` [PATCH 4/5] mpc52xx suspend: deep-sleep Domen Puncer 2007-03-23 15:58 ` Grant Likely 2007-04-04 7:37 ` Domen Puncer 2007-04-16 5:40 ` Grant Likely 2007-04-17 7:05 ` Domen Puncer 2007-04-17 7:10 ` Grant Likely 2007-03-15 10:44 ` [PATCH] icecube/lite5200b: wakeup from low-power support Domen Puncer 2007-03-15 10:44 ` [U-Boot-Users] " Domen Puncer 2007-03-26 16:08 ` Grant Likely [this message] 2007-03-26 16:08 ` Grant Likely 2007-04-03 8:46 ` Domen Puncer 2007-04-03 8:46 ` [U-Boot-Users] " Domen Puncer 2007-04-16 4:45 ` Grant Likely 2007-04-16 4:45 ` [U-Boot-Users] " Grant Likely 2007-04-16 6:25 ` Domen Puncer 2007-04-16 6:25 ` [U-Boot-Users] " Domen Puncer 2007-04-16 7:10 ` Wolfgang Denk 2007-04-16 12:04 ` Stefan Roese 2007-04-16 13:08 ` Domen Puncer 2007-04-16 13:36 ` Grant Likely 2007-04-20 12:13 ` Stefan Roese 2007-04-20 13:47 ` Wolfgang Denk 2007-04-17 11:29 ` Stefan Roese 2007-04-17 14:50 ` Wolfgang Denk 2007-04-18 5:55 ` [U-Boot-Users] [PATCH] icecube/lite5200b: document " Domen Puncer 2007-03-31 17:20 ` [PATCH] icecube/lite5200b: " Rafal Jaworowski 2007-03-31 17:20 ` [U-Boot-Users] " Rafal Jaworowski 2007-03-31 18:38 ` Domen Puncer 2007-03-31 18:38 ` Domen Puncer 2007-03-15 10:44 ` [PATCH 5/5] lite5200b suspend: low-power mode Domen Puncer 2007-03-15 14:09 ` Grant Likely 2007-03-15 16:36 ` Domen Puncer 2007-03-22 7:41 ` Domen Puncer 2007-03-26 13:23 ` Domen Puncer 2007-03-26 15:54 ` Grant Likely 2007-04-17 7:11 ` Domen Puncer 2007-04-17 7:25 ` Grant Likely
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=528646bc0703260908q7b018060v40db7e66aa81eaee@mail.gmail.com \ --to=grant.likely@secretlab.ca \ --cc=domen.puncer@telargo.com \ --cc=linuxppc-embedded@ozlabs.org \ --cc=u-boot-users@lists.sourceforge.net \ /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: linkBe 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.