From patchwork Sun Aug 19 20:23:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Darren Stevens X-Patchwork-Id: 959455 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [203.11.71.2]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41tqlf4J1Qz9s4v for ; Mon, 20 Aug 2018 07:27:26 +1000 (AEST) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=stevens-zone.net Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 41tqlf32ZxzF2FT for ; Mon, 20 Aug 2018 07:27:26 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=stevens-zone.net X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=none (mailfrom) smtp.mailfrom=stevens-zone.net (client-ip=212.227.126.131; helo=mout.kundenserver.de; envelope-from=darren@stevens-zone.net; receiver=) Authentication-Results: lists.ozlabs.org; dmarc=none (p=none dis=none) header.from=stevens-zone.net Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 41tqgl6SlzzF2FQ for ; Mon, 20 Aug 2018 07:24:03 +1000 (AEST) Received: from mintppc.home ([86.171.142.179]) by mrelayeu.kundenserver.de (mreue004 [212.227.15.163]) with ESMTPA (Nemesis) id 0Ldqqt-1gI4Hr1YXb-00j5r8; Sun, 19 Aug 2018 23:24:00 +0200 From: Darren Stevens To: linuxppc-dev@lists.ozlabs.org Date: Sun, 19 Aug 2018 21:23:57 +0100 (BST) Message-ID: <4c6da0b4b44.4b608222@auth.smtp.1and1.co.uk> User-Agent: YAM/2.9p1 (AmigaOS4; PPC; rv:20140418r7798) Subject: [PATCH NEXT v2 3/4] powerpc/pasemi: Add Nemo board device init code. MIME-Version: 1.0 Content-type: multipart/mixed; boundary="--=_BOUNDARY.6c124c60de690c6.9f" X-Provags-ID: V03:K1:CALz7ZordvfZvKXsyMmTUCYoun1cG7osjc/F2ru+S9uZH6qdJu7 z2yEaUFrS/ugYokWOdOFv25IraJ451UIKxGp6PQSO6yvH2i+tQQEu5zmVwwMae1SSzC6jSS N5efcuxS3ztjX/L7iUMdK3TsdJQh1IA3r5iy1fX8n8QHUv4KSjNWwbSRcmHk34ybu64qxF1 6/ZixFxgX+tkFPBfsgS8A== X-UI-Out-Filterresults: notjunk:1; V01:K0:/d0RLNWuVQw=:NmG2dHc928YnimRcuT5nhc 39mhsejIEfa5F3iSeFlwaHjRyGKh2xpphSUUBtPOrP+jn606/FPecEg5TNu4cAbC8ZklndlmZ WPuEjjfkoxiOPjilvEaSPAC2XyPQB5wTHxh9XhGtnKDiENS5Eeeuwq9QOGdThzTIAzCLn9dYd hFipIFtbrJPcuV+2Zw6D+mKokjOWBKpnLJrxH/w5VYlWWEFNMzubTkRoG1ca2KMx46UIJDJOd Odd+ItFGU1jAoCmTTWQ3sgjZZFs80LYTkbgQub5aztrQWYeRxHM5I8u8N3UC8STnaYk1iUlZ2 Wo6+V8bWCjCOjkzpRd34c1pzo12S21l4d6V3qIFL80Ea8uPsA8kkb/lNn2csKmo7FlDZIkY1x UeEqQY4me7KuYxnaAuWpwyCpHmfiMA7IvGLMRhcsAkEwCU1z8i9hUKqwM/bruQnZIurhD4wnH XrRoiqHWnCmqWdFs3ufew0enSlli7xZEHhVv91f07E8FMyeloBOFQHNRH6pAmpLEfPObLMIx9 ATr+iccaZ5W/fhbfL2wC1H7LXde/Twn91yfotZXdiKBPgxyp1lKq1QazuxGRi0c5Cd6FXED5G ysy+PFR8ZyHGcKwyy+0tnwbNKtyHXc5fiQyFhRXD3yhTSsWH+2Zqkp2zAlkAPBZidakE5u+ww IYw+9+xuiQFxQXsBp8LWScbCRVz3I5gCUA2aLMlV9xgbo+lDrzp04m7lf3BsqTuRSiz8= X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Christian Zigotzky Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" 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: Darren Stevens --- Changes made: v2: Merged some #ifdef blocks diff --git a/arch/powerpc/platforms/pasemi/setup.c b/arch/powerpc/platforms/pasemi/setup.c index fad5280..98bf2f7 100644 --- a/arch/powerpc/platforms/pasemi/setup.c +++ b/arch/powerpc/platforms/pasemi/setup.c @@ -73,6 +73,40 @@ static void __noreturn pas_restart(char *cmd) 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 static arch_spinlock_t timebase_lock; static unsigned long timebase;