[PATCH 17/41] ARM: restart: ixp23xx: use new restart hook

Russell King - ARM Linux linux at arm.linux.org.uk
Thu Nov 17 12:30:03 EST 2011


Ack?

On Sun, Nov 06, 2011 at 05:45:43PM +0000, Russell King - ARM Linux wrote:
> Hook these platforms restart code into the new restart hook rather
> than using arch_reset().
> 
> In doing so, we split out the ixdp2351 restart code into its own
> platform file.
> 
> Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
> ---
>  arch/arm/mach-ixp23xx/core.c                  |    6 ++++++
>  arch/arm/mach-ixp23xx/espresso.c              |    1 +
>  arch/arm/mach-ixp23xx/include/mach/platform.h |    1 +
>  arch/arm/mach-ixp23xx/include/mach/system.h   |   13 -------------
>  arch/arm/mach-ixp23xx/ixdp2351.c              |   12 ++++++++++++
>  arch/arm/mach-ixp23xx/roadrunner.c            |    1 +
>  6 files changed, 21 insertions(+), 13 deletions(-)
> 
> diff --git a/arch/arm/mach-ixp23xx/core.c b/arch/arm/mach-ixp23xx/core.c
> index a1bee33..0923bb9 100644
> --- a/arch/arm/mach-ixp23xx/core.c
> +++ b/arch/arm/mach-ixp23xx/core.c
> @@ -444,3 +444,9 @@ void __init ixp23xx_sys_init(void)
>  	*IXP23XX_EXP_UNIT_FUSE |= 0xf;
>  	platform_add_devices(ixp23xx_devices, ARRAY_SIZE(ixp23xx_devices));
>  }
> +
> +void ixp23xx_restart(char mode, const char *cmd)
> +{
> +	/* Use on-chip reset capability */
> +	*IXP23XX_RESET0 |= IXP23XX_RST_ALL;
> +}
> diff --git a/arch/arm/mach-ixp23xx/espresso.c b/arch/arm/mach-ixp23xx/espresso.c
> index 30dd316..8f2487e 100644
> --- a/arch/arm/mach-ixp23xx/espresso.c
> +++ b/arch/arm/mach-ixp23xx/espresso.c
> @@ -90,4 +90,5 @@ MACHINE_START(ESPRESSO, "IP Fabrics Double Espresso")
>  	.timer		= &ixp23xx_timer,
>  	.atag_offset	= 0x100,
>  	.init_machine	= espresso_init,
> +	.restart	= ixp23xx_restart,
>  MACHINE_END
> diff --git a/arch/arm/mach-ixp23xx/include/mach/platform.h b/arch/arm/mach-ixp23xx/include/mach/platform.h
> index db9d941..50de558 100644
> --- a/arch/arm/mach-ixp23xx/include/mach/platform.h
> +++ b/arch/arm/mach-ixp23xx/include/mach/platform.h
> @@ -34,6 +34,7 @@ struct pci_sys_data;
>  void ixp23xx_map_io(void);
>  void ixp23xx_init_irq(void);
>  void ixp23xx_sys_init(void);
> +void ixp23xx_restart(char, const char *);
>  int ixp23xx_pci_setup(int, struct pci_sys_data *);
>  void ixp23xx_pci_preinit(void);
>  struct pci_bus *ixp23xx_pci_scan_bus(int, struct pci_sys_data*);
> diff --git a/arch/arm/mach-ixp23xx/include/mach/system.h b/arch/arm/mach-ixp23xx/include/mach/system.h
> index 8920ff2..7a1b96a 100644
> --- a/arch/arm/mach-ixp23xx/include/mach/system.h
> +++ b/arch/arm/mach-ixp23xx/include/mach/system.h
> @@ -7,10 +7,6 @@
>   * it under the terms of the GNU General Public License version 2 as
>   * published by the Free Software Foundation.
>   */
> -
> -#include <mach/hardware.h>
> -#include <asm/mach-types.h>
> -
>  static inline void arch_idle(void)
>  {
>  #if 0
> @@ -21,13 +17,4 @@ static inline void arch_idle(void)
>  
>  static inline void arch_reset(char mode, const char *cmd)
>  {
> -	/* First try machine specific support */
> -	if (machine_is_ixdp2351()) {
> -		*IXDP2351_CPLD_RESET1_REG = IXDP2351_CPLD_RESET1_MAGIC;
> -		(void) *IXDP2351_CPLD_RESET1_REG;
> -		*IXDP2351_CPLD_RESET1_REG = IXDP2351_CPLD_RESET1_ENABLE;
> -	}
> -
> -	/* Use on-chip reset capability */
> -	*IXP23XX_RESET0 |= IXP23XX_RST_ALL;
>  }
> diff --git a/arch/arm/mach-ixp23xx/ixdp2351.c b/arch/arm/mach-ixp23xx/ixdp2351.c
> index b3a57e0..5d5dd3e 100644
> --- a/arch/arm/mach-ixp23xx/ixdp2351.c
> +++ b/arch/arm/mach-ixp23xx/ixdp2351.c
> @@ -326,6 +326,17 @@ static void __init ixdp2351_init(void)
>  	ixp23xx_sys_init();
>  }
>  
> +static void ixdp2351_restart(char mode, const char *cmd)
> +{
> +	/* First try machine specific support */
> +
> +	*IXDP2351_CPLD_RESET1_REG = IXDP2351_CPLD_RESET1_MAGIC;
> +	(void) *IXDP2351_CPLD_RESET1_REG;
> +	*IXDP2351_CPLD_RESET1_REG = IXDP2351_CPLD_RESET1_ENABLE;
> +
> +	ixp23xx_restart(mode, cmd);
> +}
> +
>  MACHINE_START(IXDP2351, "Intel IXDP2351 Development Platform")
>  	/* Maintainer: MontaVista Software, Inc. */
>  	.map_io		= ixdp2351_map_io,
> @@ -333,4 +344,5 @@ MACHINE_START(IXDP2351, "Intel IXDP2351 Development Platform")
>  	.timer		= &ixp23xx_timer,
>  	.atag_offset	= 0x100,
>  	.init_machine	= ixdp2351_init,
> +	.restart	= ixdp2351_restart,
>  MACHINE_END
> diff --git a/arch/arm/mach-ixp23xx/roadrunner.c b/arch/arm/mach-ixp23xx/roadrunner.c
> index 8f4dcbb..377283f 100644
> --- a/arch/arm/mach-ixp23xx/roadrunner.c
> +++ b/arch/arm/mach-ixp23xx/roadrunner.c
> @@ -177,4 +177,5 @@ MACHINE_START(ROADRUNNER, "ADI Engineering RoadRunner Development Platform")
>  	.timer		= &ixp23xx_timer,
>  	.atag_offset	= 0x100,
>  	.init_machine	= roadrunner_init,
> +	.restart	= ixp23xx_restart,
>  MACHINE_END
> -- 
> 1.7.4.4
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel



More information about the linux-arm-kernel mailing list