From patchwork Sun Dec 31 22:08:46 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Darren Stevens X-Patchwork-Id: 854271 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [103.22.144.68]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3z8vxM1zjZz9t3w for ; Mon, 1 Jan 2018 09:23:51 +1100 (AEDT) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 3z8vxL74GTzDr93 for ; Mon, 1 Jan 2018 09:23:50 +1100 (AEDT) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=stevens-zone.net (client-ip=212.227.17.24; helo=mout.kundenserver.de; envelope-from=darren@stevens-zone.net; receiver=) Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.17.24]) (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 3z8vvK1vHqzDr29 for ; Mon, 1 Jan 2018 09:22:04 +1100 (AEDT) Received: from [127.0.0.1] ([86.161.101.150]) by mrelayeu.kundenserver.de (mreue105 [212.227.15.179]) with ESMTPA (Nemesis) id 0MOiGM-1ebqRm2H7m-0063cY; Sun, 31 Dec 2017 23:16:52 +0100 From: Darren Stevens To: linuxppc-dev@lists.ozlabs.org Date: Sun, 31 Dec 2017 22:08:46 +0000 (GMT) Message-ID: <4b3d20c0900.2ef0ae17@auth.smtp.1and1.co.uk> User-Agent: YAM/2.9p1 (AmigaOS4; PPC; rv:20140418r7798) Subject: [PATCH NEXT 3/4] powerpc/pasemi: Add Nemo board device init code. MIME-Version: 1.0 Content-type: multipart/mixed; boundary="--=_BOUNDARY.6c368940b380086.ba" X-Provags-ID: V03:K0:OXi0U50uIpd/qFumgKW9W50CqnPjBtaP+jRiKgfBs6ScXeY5d1y XfejztL8ok6xdFl/yF8l9pKWg7uCq85TR36ho/nwAzf51iOSgr2bczsu884devVZK6Gj6aq LsRI1N49HVH2Uqm/sO/KI0kIajuMHnBixrabiqN8sI2OXMXp0zUp6jl79d2ljjdLx1j90I4 1qAZksDSpEag35R1OnZXw== X-UI-Out-Filterresults: notjunk:1; V01:K0:lynoeoQswY8=:kr3pUKXzV6cfuPaqvyXpOc NCmij0a9HaSujFtD2NG96NcYRXYcIanTtmod9MkGfqroli3ljo8MlaCBCwcyzwOOk/7zTkGAQ TeQeAWpO/djmNWFaAT5UZxWfL8ahK7TfR0o4MNmLzGbV9XtJD84fF4b3yD+r2oZ9mH90biiic r5NzwG8FBgE2EYbeyMX6lC0Kgi0LmdG2VG0GlVGkF0GNjlLe6dr63gt7PQgu29JSqFhN4sSfq +pQOstq24fIYS8NiKBcAe535wituxAbTVSfTdr0J2e6Ek7gGRXj00r6qpohotrwY7vnPZB33s AMPsc5t4IkgHqhJ6P+5ireu/WERS0tb1xhNDB5UZ24TK8Cvqb3om/ctt+LD062YaF8hZtOv6Z cYsMAvBQGnOT7U31n+4j81XyTNE/8zc3DmnG3l2h8OphRdWLAte4FBHfg3EtBaXPC/SIK2+4F 5px4MzpQ0I+9m32S1Xr23A1uq2mtZth8oc1oewGJMtIrswzwymfONJ2PfvIdh8N7J3GHK5aTn k2g0Ug1+QpoJBtZ5CHvPu9KMkqoLcpcieVO2MPksqeAhL7Q55qoBlYwOBP/R6SOR23tiV2gCg soe7KdFWWwxAM1g9DzwJagf32qC2jMCraXqtFgC07Pzl7EBv9hfz/801gOPy8sdrHPooXSMcA IEKPUvS6lNDsUBdY0HWIWRisNcsNRGaQ4QAomqVW4ANEH43QtSj1plFfUn7eYq9cV9qvVPb/4 4cPz9oQu80c0VpCHkgdwI/kRqf+gEWFZSxSXFA== X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.24 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 diff --git a/arch/powerpc/platforms/pasemi/setup.c b/arch/powerpc/platforms/pasemi/setup.c index c583c17..8d3664f 100644 --- a/arch/powerpc/platforms/pasemi/setup.c +++ b/arch/powerpc/platforms/pasemi/setup.c @@ -73,6 +73,19 @@ static void __noreturn pas_restart(char *cmd) out_le32(reset_reg, 0x6000000); } +#ifdef CONFIG_PPC_PASEMI_NEMO +/* A flag to indicate we are running on Nemo */ +static bool nemo_board = false; + +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); +} +#endif + #ifdef CONFIG_SMP static arch_spinlock_t timebase_lock; static unsigned long timebase; @@ -492,6 +505,20 @@ static inline void pasemi_pcmcia_init(void) {}, }; +#ifdef CONFIG_PPC_PASEMI_NEMO +static struct resource rtc_resource[] = {{ + .name = "rtc", + .start = 0x70, + .end = 0x71, + .flags = IORESOURCE_IO, +}, { + .name = "rtc", + .start = 8, + .end = 8, + .flags = IORESOURCE_IRQ, +}}; +#endif + static int __init pasemi_publish_devices(void) { pasemi_pcmcia_init(); @@ -499,6 +526,14 @@ static int __init pasemi_publish_devices(void) /* Publish OF platform devices for SDC and other non-PCI devices */ of_platform_bus_probe(NULL, pasemi_bus_ids, NULL); +#ifdef CONFIG_PPC_PASEMI_NEMO + /* + * Activate the SB600's rtc + */ + if (nemo_board) + platform_device_register_simple("rtc_cmos", -1, rtc_resource, 2); +#endif + return 0; } machine_device_initcall(pasemi, pasemi_publish_devices);