Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b219415c authored by Russell King's avatar Russell King
Browse files

ARM: restart: ixp23xx: use new restart hook



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.

Acked-by: default avatarLennert Buytenhek <buytenh@wantstofly.org>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 1139b926
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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;
}
+1 −0
Original line number Diff line number Diff line
@@ -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
+1 −0
Original line number Diff line number Diff line
@@ -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*);
+0 −13
Original line number Diff line number Diff line
@@ -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;
}
+12 −0
Original line number Diff line number Diff line
@@ -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
Loading