Received: by 10.223.176.5 with SMTP id f5csp592666wra; Fri, 9 Feb 2018 04:09:30 -0800 (PST) X-Google-Smtp-Source: AH8x227+iwyoPySgEAGuoXdeoDu8I988Qc7VrepYwonet7LDIram3oe58jLYYxViTyOoRZvvquyt X-Received: by 2002:a17:902:34a:: with SMTP id 68-v6mr2436676pld.276.1518178170315; Fri, 09 Feb 2018 04:09:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518178170; cv=none; d=google.com; s=arc-20160816; b=zGnWxBCXJCszFwwTML1rJD+zJSVJRHLWwpjNMLdiRi9NANw9JAtYogPqVx1qQyIdh9 IOZ0osFPCkbgMjZBmk5/VBKAjJ1mkXWE4BiG1w1jFEubA/GB0RvPDpkeQTCL1c7kH9EZ eo6bNnGeZgayMcvnMmICbaDRpBSaVOkgG5oad1RAWm3T+gcFWSreCXKQ8Iyait/lzoFj w1oRz9ADkOzknZlyMJ9WIJDnZLfYofrwuzAYfT1mHXEJJd8DQANJYTRem+aLgRvLg7WY JJSnLNMmxOtVWb0FiEoWCGNRTpFaZnoA2WTr1KQnUN6AVyTJhtXkzMJiduwDochIjpMV 3ZdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=+SmqAQ+yJSyEQeCs8JIID194u1rddX8sbHYfctNXhT8=; b=ll7I3nlAfS0pVKlh9oxJMa2kzZdV8B1i1GWV4B4l65BE1R/hOuRMTlbKjN/A1Y9Dlf zp4W2ekCPo4csRZqc7W64wv6YHE+yfYP0kZhtyy+tnzi9pft7BEDpyEqtps/cBDrRYZi TAWmE9UozwQgERLkFg5Mg8k/Do3X5rW5zZ0pKJv81+XCDoFvLwfTYdGUKGpvCA8frZok Zh8yAuSR0ONDVjMh5tQUgoNYMjRMU+hX+c/nUGfWolGq9WGSbHh/IkZZbjAJSBj33XbO snKOvgZakIU8GqhiGyHlAzgbs4ZCFMziNDi0a87P615qcjKjnufN+i49eBNV5WATfshg 8cpA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c15-v6si1502561plk.327.2018.02.09.04.09.14; Fri, 09 Feb 2018 04:09:30 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751343AbeBIMHv (ORCPT + 99 others); Fri, 9 Feb 2018 07:07:51 -0500 Received: from mout.gmx.net ([212.227.17.21]:48211 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750942AbeBIMHr (ORCPT ); Fri, 9 Feb 2018 07:07:47 -0500 Received: from localhost.localdomain ([88.153.6.11]) by mail.gmx.com (mrgmx102 [212.227.17.168]) with ESMTPSA (Nemesis) id 0M3u86-1f2CLe10aI-00rcNK; Fri, 09 Feb 2018 13:07:40 +0100 From: =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= To: linux-kernel@vger.kernel.org Cc: Joel Stanley , linuxppc-dev@lists.ozlabs.org, linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, =?UTF-8?q?Jonathan=20Neusch=C3=A4fer?= , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman Subject: [PATCH v3 1/4] powerpc: wii: Explicitly configure GPIO owner for poweroff pin Date: Fri, 9 Feb 2018 13:07:28 +0100 Message-Id: <20180209120732.17863-2-j.neuschaefer@gmx.net> X-Mailer: git-send-email 2.15.1 In-Reply-To: <20180209120732.17863-1-j.neuschaefer@gmx.net> References: <20180209120732.17863-1-j.neuschaefer@gmx.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Provags-ID: V03:K0:dwLhG+vJnBnKptY5IqOxTJLwj5v5as+LNQrGxAQmMFa8W0gxhXA 9d4RQxrXNzt6agQEOfVuBMpJGgJAL+FqsxPr/lq6rZxSFNIkzOiknh74b90v0OAwae2x5Ep tWTGmomrYFdne9lpvStGMXb0KX+wWxBd+tMkMWJ3iPSyQ6YCpdBw9MPSlrwvKhFWp2uUJsF UTALXubE03ifHL2ZucqSg== X-UI-Out-Filterresults: notjunk:1;V01:K0:bdFSbI8cPuw=:UuMsvnPwtgza2lb819+o6Q aMYKEaLtpAzybytfGVEnzxPxzNQBeuDoksU7PvkF79aQbVdZr9bxrP3hAC41SkK2UwJ3KkcRY +1E9UbF2O5w+7IvzwpsEPX2kujZ1AIUoUcHsZgg0u2CCZwFj8L1TPWFX/I3szMVeMLSkH4Yi1 jXhoyG42p+cJOmkrfIaP1nvxi+BrBe0EAH38idvMmNjhtPbgv/+K1Q/VspKvB1sydKP6qoJtg 7ugAEA476uuguViBwVTQEfl5sAEIH99wmrMk3G5WCvggNTMfX2gQmOdwRQdC1YT7Y6GBq1/D1 Y3tMGj04eOwQFhc8RoDllnjJV7xABXW0TFJXn+2VnyH+9iNXjO6KzsFaUJfgbagMs9lSAvhgu 9idu4UW0ylf0GC7/+nxzBytVVGFqQM9/8UcFiCvbiE39cEg0PpotAzEg0C6Nro5Y/342JntLD IQ2jj0wi7F3+UJwaL/OB4572FuY6OtrO7QT7gU2Lr2n0cNKGor3KNioFB9/XcNslKStVS/HPo nvo021BhTrTXsF8C+esqbMHbnC0MsjnP8mTkd+M1PCrDqmuDs0CezjWEZrAbVJRPFX+bLzi6q kN0mAs2PkhGGkrwCLp0TN454h7eRgGI+ifbn1uppCGIAkxobh9hN+rZGzI9jsknxP+8AEH4VP UXnglk4gxxYin83JxMM22anJfiJMT+iQjboig/OI41PvcMa5pZd/Bk/oCHl7hMA63Eo51obAL MLEifCkTKOSRSyHbD05NpkFgww8EDbJEcRm7HikW8dqPKAVzDwlgKNiUD1hlrJcorydGZyaYP Cp3lu2u5Q9XnKdvYcJYNQ/pHtAmbBn0XulWIwGiRx9rdphMZZw= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The Hollywood chipset's GPIO controller has two sets of registers: One for access by the PowerPC CPU, and one for access by the ARM coprocessor (but both are accessible from the PPC because the memory firewall (AHBPROT) is usually disabled when booting Linux, today). The wii_power_off function currently assumes that the poweroff GPIO pin is configured for use via the ARM side, but the upcoming GPIO driver configures all pins for use via the PPC side, breaking poweroff. Configure the owner register explicitly in wii_power_off to make wii_power_off work with and without the new GPIO driver. I think the Wii can be switched to the generic gpio-poweroff driver, after the GPIO driver is merged. Signed-off-by: Jonathan Neuschäfer --- v2, v3: - no change --- arch/powerpc/platforms/embedded6xx/wii.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/arch/powerpc/platforms/embedded6xx/wii.c b/arch/powerpc/platforms/embedded6xx/wii.c index 160fa09533ba..4682327f76a9 100644 --- a/arch/powerpc/platforms/embedded6xx/wii.c +++ b/arch/powerpc/platforms/embedded6xx/wii.c @@ -45,6 +45,7 @@ #define HW_GPIO_BASE(idx) (idx * 0x20) #define HW_GPIO_OUT(idx) (HW_GPIO_BASE(idx) + 0) #define HW_GPIO_DIR(idx) (HW_GPIO_BASE(idx) + 4) +#define HW_GPIO_OWNER (HW_GPIO_BASE(1) + 0x1c) #define HW_GPIO_SHUTDOWN (1<<1) #define HW_GPIO_SLOT_LED (1<<5) @@ -177,6 +178,12 @@ static void wii_power_off(void) local_irq_disable(); if (hw_gpio) { + /* + * set the owner of the shutdown pin to ARM, because it is + * accessed through the registers for the ARM, below + */ + clrbits32(hw_gpio + HW_GPIO_OWNER, HW_GPIO_SHUTDOWN); + /* make sure that the poweroff GPIO is configured as output */ setbits32(hw_gpio + HW_GPIO_DIR(1), HW_GPIO_SHUTDOWN); -- 2.15.1