Commit d1b860fb authored by Russell King's avatar Russell King

ARM: restart: ixp4xx: use new restart hook

Hook these platforms restart code into the new restart hook rather
than using arch_reset().
Acked-by: default avatarKrzysztof Hałasa <khc@pm.waw.pl>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent b219415c
...@@ -172,6 +172,7 @@ MACHINE_START(AVILA, "Gateworks Avila Network Platform") ...@@ -172,6 +172,7 @@ MACHINE_START(AVILA, "Gateworks Avila Network Platform")
#if defined(CONFIG_PCI) #if defined(CONFIG_PCI)
.dma_zone_size = SZ_64M, .dma_zone_size = SZ_64M,
#endif #endif
.restart = ixp4xx_restart,
MACHINE_END MACHINE_END
/* /*
...@@ -190,6 +191,7 @@ MACHINE_START(LOFT, "Giant Shoulder Inc Loft board") ...@@ -190,6 +191,7 @@ MACHINE_START(LOFT, "Giant Shoulder Inc Loft board")
#if defined(CONFIG_PCI) #if defined(CONFIG_PCI)
.dma_zone_size = SZ_64M, .dma_zone_size = SZ_64M,
#endif #endif
.restart = ixp4xx_restart,
MACHINE_END MACHINE_END
#endif #endif
...@@ -501,3 +501,23 @@ static void __init ixp4xx_clockevent_init(void) ...@@ -501,3 +501,23 @@ static void __init ixp4xx_clockevent_init(void)
clockevents_register_device(&clockevent_ixp4xx); clockevents_register_device(&clockevent_ixp4xx);
} }
void ixp4xx_restart(char mode, const char *cmd)
{
if ( 1 && mode == 's') {
/* Jump into ROM at address 0 */
soft_restart(0);
} else {
/* Use on-chip reset capability */
/* set the "key" register to enable access to
* "timer" and "enable" registers
*/
*IXP4XX_OSWK = IXP4XX_WDT_KEY;
/* write 0 to the timer register for an immediate reset */
*IXP4XX_OSWT = 0;
*IXP4XX_OSWE = IXP4XX_WDT_RESET_ENABLE | IXP4XX_WDT_COUNT_ENABLE;
}
}
...@@ -117,6 +117,7 @@ MACHINE_START(ADI_COYOTE, "ADI Engineering Coyote") ...@@ -117,6 +117,7 @@ MACHINE_START(ADI_COYOTE, "ADI Engineering Coyote")
#if defined(CONFIG_PCI) #if defined(CONFIG_PCI)
.dma_zone_size = SZ_64M, .dma_zone_size = SZ_64M,
#endif #endif
.restart = ixp4xx_restart,
MACHINE_END MACHINE_END
#endif #endif
...@@ -132,6 +133,7 @@ MACHINE_START(IXDPG425, "Intel IXDPG425") ...@@ -132,6 +133,7 @@ MACHINE_START(IXDPG425, "Intel IXDPG425")
.timer = &ixp4xx_timer, .timer = &ixp4xx_timer,
.atag_offset = 0x100, .atag_offset = 0x100,
.init_machine = coyote_init, .init_machine = coyote_init,
.restart = ixp4xx_restart,
MACHINE_END MACHINE_END
#endif #endif
...@@ -286,4 +286,5 @@ MACHINE_START(DSMG600, "D-Link DSM-G600 RevA") ...@@ -286,4 +286,5 @@ MACHINE_START(DSMG600, "D-Link DSM-G600 RevA")
#if defined(CONFIG_PCI) #if defined(CONFIG_PCI)
.dma_zone_size = SZ_64M, .dma_zone_size = SZ_64M,
#endif #endif
.restart = ixp4xx_restart,
MACHINE_END MACHINE_END
...@@ -277,5 +277,6 @@ MACHINE_START(FSG, "Freecom FSG-3") ...@@ -277,5 +277,6 @@ MACHINE_START(FSG, "Freecom FSG-3")
#if defined(CONFIG_PCI) #if defined(CONFIG_PCI)
.dma_zone_size = SZ_64M, .dma_zone_size = SZ_64M,
#endif #endif
.restart = ixp4xx_restart,
MACHINE_END MACHINE_END
...@@ -104,5 +104,6 @@ MACHINE_START(GATEWAY7001, "Gateway 7001 AP") ...@@ -104,5 +104,6 @@ MACHINE_START(GATEWAY7001, "Gateway 7001 AP")
#if defined(CONFIG_PCI) #if defined(CONFIG_PCI)
.dma_zone_size = SZ_64M, .dma_zone_size = SZ_64M,
#endif #endif
.restart = ixp4xx_restart,
MACHINE_END MACHINE_END
#endif #endif
...@@ -504,4 +504,5 @@ MACHINE_START(GORAMO_MLR, "MultiLink") ...@@ -504,4 +504,5 @@ MACHINE_START(GORAMO_MLR, "MultiLink")
#if defined(CONFIG_PCI) #if defined(CONFIG_PCI)
.dma_zone_size = SZ_64M, .dma_zone_size = SZ_64M,
#endif #endif
.restart = ixp4xx_restart,
MACHINE_END MACHINE_END
...@@ -172,6 +172,7 @@ MACHINE_START(GTWX5715, "Gemtek GTWX5715 (Linksys WRV54G)") ...@@ -172,6 +172,7 @@ MACHINE_START(GTWX5715, "Gemtek GTWX5715 (Linksys WRV54G)")
#if defined(CONFIG_PCI) #if defined(CONFIG_PCI)
.dma_zone_size = SZ_64M, .dma_zone_size = SZ_64M,
#endif #endif
.restart = ixp4xx_restart,
MACHINE_END MACHINE_END
...@@ -125,6 +125,7 @@ extern void ixp4xx_init_irq(void); ...@@ -125,6 +125,7 @@ extern void ixp4xx_init_irq(void);
extern void ixp4xx_sys_init(void); extern void ixp4xx_sys_init(void);
extern void ixp4xx_timer_init(void); extern void ixp4xx_timer_init(void);
extern struct sys_timer ixp4xx_timer; extern struct sys_timer ixp4xx_timer;
extern void ixp4xx_restart(char, const char *);
extern void ixp4xx_pci_preinit(void); extern void ixp4xx_pci_preinit(void);
struct pci_sys_data; struct pci_sys_data;
extern int ixp4xx_setup(int nr, struct pci_sys_data *sys); extern int ixp4xx_setup(int nr, struct pci_sys_data *sys);
......
...@@ -8,9 +8,6 @@ ...@@ -8,9 +8,6 @@
* published by the Free Software Foundation. * published by the Free Software Foundation.
* *
*/ */
#include <mach/hardware.h>
static inline void arch_idle(void) static inline void arch_idle(void)
{ {
/* ixp4xx does not implement the XScale PWRMODE register, /* ixp4xx does not implement the XScale PWRMODE register,
...@@ -21,24 +18,6 @@ static inline void arch_idle(void) ...@@ -21,24 +18,6 @@ static inline void arch_idle(void)
#endif #endif
} }
static inline void arch_reset(char mode, const char *cmd) static inline void arch_reset(char mode, const char *cmd)
{ {
if ( 1 && mode == 's') {
/* Jump into ROM at address 0 */
soft_restart(0);
} else {
/* Use on-chip reset capability */
/* set the "key" register to enable access to
* "timer" and "enable" registers
*/
*IXP4XX_OSWK = IXP4XX_WDT_KEY;
/* write 0 to the timer register for an immediate reset */
*IXP4XX_OSWT = 0;
*IXP4XX_OSWE = IXP4XX_WDT_RESET_ENABLE | IXP4XX_WDT_COUNT_ENABLE;
}
} }
...@@ -261,6 +261,7 @@ MACHINE_START(IXDP425, "Intel IXDP425 Development Platform") ...@@ -261,6 +261,7 @@ MACHINE_START(IXDP425, "Intel IXDP425 Development Platform")
#if defined(CONFIG_PCI) #if defined(CONFIG_PCI)
.dma_zone_size = SZ_64M, .dma_zone_size = SZ_64M,
#endif #endif
.restart = ixp4xx_restart,
MACHINE_END MACHINE_END
#endif #endif
......
...@@ -321,4 +321,5 @@ MACHINE_START(NAS100D, "Iomega NAS 100d") ...@@ -321,4 +321,5 @@ MACHINE_START(NAS100D, "Iomega NAS 100d")
#if defined(CONFIG_PCI) #if defined(CONFIG_PCI)
.dma_zone_size = SZ_64M, .dma_zone_size = SZ_64M,
#endif #endif
.restart = ixp4xx_restart,
MACHINE_END MACHINE_END
...@@ -307,4 +307,5 @@ MACHINE_START(NSLU2, "Linksys NSLU2") ...@@ -307,4 +307,5 @@ MACHINE_START(NSLU2, "Linksys NSLU2")
#if defined(CONFIG_PCI) #if defined(CONFIG_PCI)
.dma_zone_size = SZ_64M, .dma_zone_size = SZ_64M,
#endif #endif
.restart = ixp4xx_restart,
MACHINE_END MACHINE_END
...@@ -246,6 +246,7 @@ MACHINE_START(DEVIXP, "Omicron DEVIXP") ...@@ -246,6 +246,7 @@ MACHINE_START(DEVIXP, "Omicron DEVIXP")
.init_irq = ixp4xx_init_irq, .init_irq = ixp4xx_init_irq,
.timer = &ixp4xx_timer, .timer = &ixp4xx_timer,
.init_machine = omixp_init, .init_machine = omixp_init,
.restart = ixp4xx_restart,
MACHINE_END MACHINE_END
#endif #endif
...@@ -259,6 +260,7 @@ MACHINE_START(MICCPT, "Omicron MICCPT") ...@@ -259,6 +260,7 @@ MACHINE_START(MICCPT, "Omicron MICCPT")
#if defined(CONFIG_PCI) #if defined(CONFIG_PCI)
.dma_zone_size = SZ_64M, .dma_zone_size = SZ_64M,
#endif #endif
.restart = ixp4xx_restart,
MACHINE_END MACHINE_END
#endif #endif
...@@ -269,5 +271,6 @@ MACHINE_START(MIC256, "Omicron MIC256") ...@@ -269,5 +271,6 @@ MACHINE_START(MIC256, "Omicron MIC256")
.init_irq = ixp4xx_init_irq, .init_irq = ixp4xx_init_irq,
.timer = &ixp4xx_timer, .timer = &ixp4xx_timer,
.init_machine = omixp_init, .init_machine = omixp_init,
.restart = ixp4xx_restart,
MACHINE_END MACHINE_END
#endif #endif
...@@ -244,4 +244,5 @@ MACHINE_START(ARCOM_VULCAN, "Arcom/Eurotech Vulcan") ...@@ -244,4 +244,5 @@ MACHINE_START(ARCOM_VULCAN, "Arcom/Eurotech Vulcan")
#if defined(CONFIG_PCI) #if defined(CONFIG_PCI)
.dma_zone_size = SZ_64M, .dma_zone_size = SZ_64M,
#endif #endif
.restart = ixp4xx_restart,
MACHINE_END MACHINE_END
...@@ -105,5 +105,6 @@ MACHINE_START(WG302V2, "Netgear WG302 v2 / WAG302 v2") ...@@ -105,5 +105,6 @@ MACHINE_START(WG302V2, "Netgear WG302 v2 / WAG302 v2")
#if defined(CONFIG_PCI) #if defined(CONFIG_PCI)
.dma_zone_size = SZ_64M, .dma_zone_size = SZ_64M,
#endif #endif
.restart = ixp4xx_restart,
MACHINE_END MACHINE_END
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment