Subject: Re: [PATCH] add restart function for mpc52xx

From: Sylvain Munaut <[email-masked]>
Date: Thu, 11 Jan 2007 14:15:47 +0100

Sascha Hauer wrote:
> This patch adds restart support for mpx52xx systems.
>
> Signed-off-by: Sascha Hauer <[email-masked]>
>   
Thanks, I'll test and include this to my 2.6.21 patch set.
> ---
>  arch/powerpc/platforms/52xx/lite5200.c       |    1 +
>  arch/powerpc/platforms/52xx/mpc52xx_common.c |   15 +++++++++++++++
>  include/asm-powerpc/mpc52xx.h                |    2 ++
>  3 files changed, 18 insertions(+)
>
> Index: linux-2.6/arch/powerpc/platforms/52xx/lite5200.c
> ===================================================================
> --- linux-2.6.orig/arch/powerpc/platforms/52xx/lite5200.c
> +++ linux-2.6/arch/powerpc/platforms/52xx/lite5200.c
> @@ -153,6 +153,7 @@ define_machine(lite52xx) {
>  	.name 		= "lite52xx",
>  	.probe 		= lite52xx_probe,
>  	.setup_arch 	= lite52xx_setup_arch,
> +	.restart	= mpc52xx_restart,
>  	.init		= mpc52xx_declare_of_platform_devices,
>  	.init_IRQ 	= mpc52xx_init_irq,
>  	.get_irq 	= mpc52xx_get_irq,
> Index: linux-2.6/arch/powerpc/platforms/52xx/mpc52xx_common.c
> ===================================================================
> --- linux-2.6.orig/arch/powerpc/platforms/52xx/mpc52xx_common.c
> +++ linux-2.6/arch/powerpc/platforms/52xx/mpc52xx_common.c
> @@ -75,6 +75,21 @@ mpc52xx_find_ipb_freq(struct device_node
>  }
>  EXPORT_SYMBOL(mpc52xx_find_ipb_freq);
>  
> +void
> +mpc52xx_restart(char *cmd)
> +{
> +	struct mpc52xx_gpt *gpt = mpc52xx_find_and_map("mpc52xx-gpt");
>   
missing __iomem here, will most trigger a sparse warning.
It's ok I'll fix that up when applying to my internal tree and before fw
this upstream.
> +
> +	local_irq_disable();
> +
> +	/* Turn on the watchdog and wait for it to expire. It effectively
> +	  does a reset */
> +	out_be32(&gpt->mode, 0x00000000);
> +	out_be32(&gpt->count, 0x0000000ff);
> +	out_be32(&gpt->mode, 0x00009004);
> +
> +	while (1);
> +}
>  
>  void __init
>  mpc52xx_setup_cpu(void)
> Index: linux-2.6/include/asm-powerpc/mpc52xx.h
> ===================================================================
> --- linux-2.6.orig/include/asm-powerpc/mpc52xx.h
> +++ linux-2.6/include/asm-powerpc/mpc52xx.h
> @@ -249,6 +249,8 @@ extern void mpc52xx_declare_of_platform_
>  extern void mpc52xx_init_irq(void);
>  extern unsigned int mpc52xx_get_irq(void);
>  
> +extern void mpc52xx_restart(char *cmd);
> +
>  #endif /* __ASSEMBLY__ */
>  
>  #endif /* __ASM_POWERPC_MPC52xx_H__ */
>
>
>