Commit 656fdf3a authored by Darren Stevens's avatar Darren Stevens Committed by Michael Ellerman

powerpc/pasemi: Add Nemo board device init code.

Add routines for Nemo specific devices to init at boot time, these
being board level power-off and SB600's rtc.

Also add a run time variable to prevent these being activated
if we boot on a reference board.
Signed-off-by: default avatarDarren Stevens <darren@stevens-zone.net>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 0428a5f4
...@@ -73,6 +73,40 @@ static void __noreturn pas_restart(char *cmd) ...@@ -73,6 +73,40 @@ static void __noreturn pas_restart(char *cmd)
out_le32(reset_reg, 0x6000000); out_le32(reset_reg, 0x6000000);
} }
#ifdef CONFIG_PPC_PASEMI_NEMO
void pas_shutdown(void)
{
/* Set the PLD bit that makes the SB600 think the power button is being pressed */
void __iomem *pld_map = ioremap(0xf5000000,4096);
while (1)
out_8(pld_map+7,0x01);
}
/* RTC platform device structure as is not in device tree */
static struct resource rtc_resource[] = {{
.name = "rtc",
.start = 0x70,
.end = 0x71,
.flags = IORESOURCE_IO,
}, {
.name = "rtc",
.start = 8,
.end = 8,
.flags = IORESOURCE_IRQ,
}};
static inline void nemo_init_rtc(void)
{
platform_device_register_simple("rtc_cmos", -1, rtc_resource, 2);
}
#else
static inline void nemo_init_rtc(void)
{
}
#endif
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
static arch_spinlock_t timebase_lock; static arch_spinlock_t timebase_lock;
static unsigned long timebase; static unsigned long timebase;
......
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