On 3/15/07, Domen Puncer <[EMAIL PROTECTED]> wrote:
> Implement deep-sleep on MPC52xx.
> SDRAM is put into self-refresh with help of SRAM code
> (alternatives would be code in FLASH, I-cache).
> Interrupt code must also not be in SDRAM, so put it
> in I-cache.
> MPC52xx core is static, so contents will remain intact even
> with clocks turned off.

Some more comments...

> Index: grant.git/arch/powerpc/platforms/52xx/mpc52xx_pm.c
> ===================================================================
> --- /dev/null
> +++ grant.git/arch/powerpc/platforms/52xx/mpc52xx_pm.c
> +/* you will want to change this, to match your board gpios, rtc or whatever 
> */
> +static void mpc52xx_set_wakeup_mode(void)
> +{
> +       struct mpc52xx_gpio_wkup __iomem *gpiow;
> +       struct mpc52xx_intr __iomem *intr;
> +#ifdef CONFIG_PPC_LITE5200
> +       int pin = 1; /* GPIO_WKUP_1 (GPIO_PSC2_4) */
> +       int level_low = 1; /* wakeup on low level */
> +#elif defined CONFIG_PPC_EFIKA
> +       int pin = 4; /* GPIO_WKUP_4 (GPIO_PSC6_0 - IRDA_RX) */
> +       int level_low = 0; /* wakeup on high level */
> +       /* IOW. to wake it up, short pins 1 and 3 on IRDA connector */
> +#else
> +#warning "define how would you like your board to wake"
> +#endif

The EFIKA and LITE5200 support needs to coexist.  efika.c and
lite5200.c should each have their own set_wakeup_mode function.  The
correct function pointer should be selected from *_setup_arch().

> +static struct pm_ops mpc52xx_pm_ops = {
> +       .valid          = mpc52xx_pm_valid,
> +       .prepare        = mpc52xx_pm_prepare,
> +       .enter          = mpc52xx_pm_enter,
> +       .finish         = mpc52xx_pm_finish,
> +};
> +
> +static int __init mpc52xx_pm_init(void)
> +{
> +       pm_set_ops(&mpc52xx_pm_ops);
> +       return 0;
> +}
> +
> +arch_initcall(mpc52xx_pm_init);

Adding a new arch_initcall is dangerous.  It gets called on *all*
architectures if the 5200 support is compiled in.  mp52xx_pm_init
should be called from the setup_arch hook; lite5200_setup_arch() &
efika_setup_arch()

Cheers,
g.

-- 
Grant Likely, B.Sc. P.Eng.
Secret Lab Technologies Ltd.
[EMAIL PROTECTED]
(403) 399-0195
_______________________________________________
Linuxppc-embedded mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-embedded

Reply via email to