mirror of https://gitee.com/openkylin/linux.git
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: Lennert Buytenhek <buytenh@wantstofly.org> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
1139b926c4
commit
b219415c39
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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*);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue