From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,UPPERCASE_50_75,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B2072C83000 for ; Tue, 28 Apr 2020 10:02:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 80BBF206D7 for ; Tue, 28 Apr 2020 10:02:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1588068172; bh=6EvPvDn4hfJc3RQhxMxOiskjhaR1xPJY2/XDcNYu2y0=; h=Date:From:To:Cc:Subject:References:In-Reply-To:List-ID:From; b=eSWLL4e56D821YdU4D4+OXDMHJ6ddWsfR0472UC5bHJEkbKDkePq55mq2jEui73Kv ppDPK4XGCigU9Gv80ooGu0EcxUgzwTfkCpWGKhQ14FlJQthwRp96yt0hmsPoGtrZky UBNx7TYrVPKFggq1vvA8BE+a/7562p673MUl2SEY= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727813AbgD1KCw (ORCPT ); Tue, 28 Apr 2020 06:02:52 -0400 Received: from mail-ej1-f67.google.com ([209.85.218.67]:45327 "EHLO mail-ej1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726932AbgD1KCv (ORCPT ); Tue, 28 Apr 2020 06:02:51 -0400 Received: by mail-ej1-f67.google.com with SMTP id rh22so16762387ejb.12; Tue, 28 Apr 2020 03:02:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=FdgTZhQz7Q5QmkJw9fgTQ4qIxRdbshIzbPzMNz/iR0Y=; b=X2JgyMsXfBDE8/GIlhbuG3Tsyi+wiUAsL8avvBVkK3Ja6w9ReUF0cZ6PZII/OVkPFZ Rlq+Jvv02hEg4V82/XrLBz3gLfzRIPawD/pso/AOxtrQAUmErrICkPpgYb9ieGuaLLNx t/KEPc2zvGeGe7EdL1KtXyIRYruFtsagEU+bHVUXTot21Vg72wJuHGM80WMExQcADbUF 716n8pyEoBHCi8BIx8IBR9zOLyc0T0AweVVydD9A6AeeSk7fSRuupZhOvW347Ahm5lUC Y+nBTYkiH+m5el/HjCz1Jv+4SmDMpZzH228fac+RqhAYLkmjavy4m2WtCjXesojmXZy2 YZow== X-Gm-Message-State: AGi0PuZvVUmrpB8BO8eTmPCmSOeS+NpHuxASKYwIKDtp9B0g3DwME4UB Wu5SaSyXBSLS/NLEhNKFJ0k= X-Google-Smtp-Source: APiQypLNHR35H8mMj7YM6wlGtmknjJpqsf8ucJzMlAVC6jgxX/rMDRMP53hjmGcXj1nX3rrXkSLHYQ== X-Received: by 2002:a17:906:a39a:: with SMTP id k26mr22838875ejz.172.1588068166900; Tue, 28 Apr 2020 03:02:46 -0700 (PDT) Received: from kozik-lap ([194.230.155.237]) by smtp.googlemail.com with ESMTPSA id ks10sm402601ejb.89.2020.04.28.03.02.45 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 28 Apr 2020 03:02:46 -0700 (PDT) Date: Tue, 28 Apr 2020 12:02:44 +0200 From: Krzysztof Kozlowski To: Jonathan Bakker Cc: kgene@kernel.org, robh+dt@kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 02/13] arm: dts: s5pv210: fascinate4g: Add sleep GPIO configuration Message-ID: <20200428100244.GA23963@kozik-lap> References: <20200426183604.28494-1-xc-racer2@live.ca> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.4 (2018-02-28) Sender: linux-samsung-soc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-samsung-soc@vger.kernel.org On Sun, Apr 26, 2020 at 11:35:53AM -0700, Jonathan Bakker wrote: > In order to minimize leakage current during sleep, set a config > for sleep GPIOs. > > Signed-off-by: Jonathan Bakker > --- > arch/arm/boot/dts/s5pv210-fascinate4g.dts | 242 ++++++++++++++++++++++ > 1 file changed, 242 insertions(+) > > diff --git a/arch/arm/boot/dts/s5pv210-fascinate4g.dts b/arch/arm/boot/dts/s5pv210-fascinate4g.dts > index 07a8d9bbe5b8..94dcb9b64b9a 100644 > --- a/arch/arm/boot/dts/s5pv210-fascinate4g.dts > +++ b/arch/arm/boot/dts/s5pv210-fascinate4g.dts > @@ -36,3 +36,245 @@ > }; > }; > }; > + > +&pinctrl0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&sleep_cfg>; > + > + sleep_cfg: sleep-cfg { > + PIN_SLP(gpa0-0, PREV, NONE); > + PIN_SLP(gpa0-1, PREV, NONE); > + PIN_SLP(gpa0-2, PREV, NONE); > + PIN_SLP(gpa0-3, OUT1, NONE); I would be happy to see some reasoning why certain pins have disabled pull down (e.g. they are not connected or you use the same configuration as running one) and why you set them as output. > + PIN_SLP(gpa0-4, PREV, NONE); > + PIN_SLP(gpa0-5, PREV, NONE); > + PIN_SLP(gpa0-6, PREV, NONE); > + PIN_SLP(gpa0-7, PREV, NONE); > + > + PIN_SLP(gpa1-0, INPUT, DOWN); > + PIN_SLP(gpa1-1, OUT0, NONE); > + PIN_SLP(gpa1-2, INPUT, DOWN); > + PIN_SLP(gpa1-3, OUT0, NONE); > + > + PIN_SLP(gpb-0, OUT0, NONE); > + PIN_SLP(gpb-1, OUT1, NONE); > + PIN_SLP(gpb-2, OUT0, NONE); > + PIN_SLP(gpb-3, PREV, NONE); > + PIN_SLP(gpb-4, INPUT, NONE); > + PIN_SLP(gpb-5, PREV, NONE); > + PIN_SLP(gpb-6, INPUT, DOWN); > + PIN_SLP(gpb-7, OUT0, NONE); > + > + PIN_SLP(gpc0-0, OUT0, NONE); > + PIN_SLP(gpc0-1, INPUT, DOWN); > + PIN_SLP(gpc0-2, OUT0, NONE); > + PIN_SLP(gpc0-3, INPUT, DOWN); > + PIN_SLP(gpc0-4, OUT0, NONE); > + > + PIN_SLP(gpc1-0, INPUT, DOWN); > + PIN_SLP(gpc1-1, INPUT, DOWN); > + PIN_SLP(gpc1-2, INPUT, DOWN); > + PIN_SLP(gpc1-3, INPUT, DOWN); > + PIN_SLP(gpc1-4, INPUT, DOWN); > + > + PIN_SLP(gpd0-0, INPUT, DOWN); > + PIN_SLP(gpd0-1, OUT0, NONE); > + PIN_SLP(gpd0-2, INPUT, DOWN); > + PIN_SLP(gpd0-3, INPUT, DOWN); > + > + PIN_SLP(gpd1-0, INPUT, NONE); > + PIN_SLP(gpd1-1, INPUT, NONE); > + PIN_SLP(gpd1-2, INPUT, DOWN); > + PIN_SLP(gpd1-3, INPUT, DOWN); > + PIN_SLP(gpd1-4, INPUT, DOWN); > + PIN_SLP(gpd1-5, INPUT, DOWN); > + > + PIN_SLP(gpe0-0, INPUT, DOWN); > + PIN_SLP(gpe0-1, INPUT, DOWN); > + PIN_SLP(gpe0-2, INPUT, DOWN); > + PIN_SLP(gpe0-3, INPUT, DOWN); > + PIN_SLP(gpe0-4, INPUT, DOWN); > + PIN_SLP(gpe0-5, INPUT, DOWN); > + PIN_SLP(gpe0-6, INPUT, DOWN); > + PIN_SLP(gpe0-7, INPUT, DOWN); > + > + PIN_SLP(gpe1-0, INPUT, DOWN); > + PIN_SLP(gpe1-1, INPUT, DOWN); > + PIN_SLP(gpe1-2, INPUT, DOWN); > + PIN_SLP(gpe1-3, OUT0, NONE); > + PIN_SLP(gpe1-4, INPUT, DOWN); > + > + PIN_SLP(gpf0-0, OUT0, NONE); > + PIN_SLP(gpf0-1, OUT0, NONE); > + PIN_SLP(gpf0-2, OUT0, NONE); > + PIN_SLP(gpf0-3, OUT0, NONE); > + PIN_SLP(gpf0-4, OUT0, NONE); > + PIN_SLP(gpf0-5, OUT0, NONE); > + PIN_SLP(gpf0-6, OUT0, NONE); > + PIN_SLP(gpf0-7, OUT0, NONE); > + > + PIN_SLP(gpf1-0, OUT0, NONE); > + PIN_SLP(gpf1-1, OUT0, NONE); > + PIN_SLP(gpf1-2, OUT0, NONE); > + PIN_SLP(gpf1-3, OUT0, NONE); > + PIN_SLP(gpf1-4, OUT0, NONE); > + PIN_SLP(gpf1-5, OUT0, NONE); > + PIN_SLP(gpf1-6, OUT0, NONE); > + PIN_SLP(gpf1-7, OUT0, NONE); > + > + PIN_SLP(gpf2-0, OUT0, NONE); > + PIN_SLP(gpf2-1, OUT0, NONE); > + PIN_SLP(gpf2-2, OUT0, NONE); > + PIN_SLP(gpf2-3, OUT0, NONE); > + PIN_SLP(gpf2-4, OUT0, NONE); > + PIN_SLP(gpf2-5, OUT0, NONE); > + PIN_SLP(gpf2-6, OUT0, NONE); > + PIN_SLP(gpf2-7, OUT0, NONE); > + > + PIN_SLP(gpf3-0, OUT0, NONE); > + PIN_SLP(gpf3-1, OUT0, NONE); > + PIN_SLP(gpf3-2, OUT0, NONE); > + PIN_SLP(gpf3-3, OUT0, NONE); > + PIN_SLP(gpf3-4, PREV, NONE); > + PIN_SLP(gpf3-5, INPUT, DOWN); > + > + PIN_SLP(gpg0-0, INPUT, DOWN); > + PIN_SLP(gpg0-1, INPUT, DOWN); > + PIN_SLP(gpg0-2, INPUT, NONE); > + PIN_SLP(gpg0-3, INPUT, DOWN); > + PIN_SLP(gpg0-4, INPUT, DOWN); > + PIN_SLP(gpg0-5, INPUT, DOWN); > + PIN_SLP(gpg0-6, INPUT, DOWN); > + > + PIN_SLP(gpg1-0, OUT0, NONE); > + PIN_SLP(gpg1-1, OUT1, NONE); > + PIN_SLP(gpg1-2, PREV, NONE); > + PIN_SLP(gpg1-3, OUT1, NONE); > + PIN_SLP(gpg1-4, OUT1, NONE); > + PIN_SLP(gpg1-5, OUT1, NONE); > + PIN_SLP(gpg1-6, OUT1, NONE); > + > + PIN_SLP(gpg2-0, OUT0, NONE); > + PIN_SLP(gpg2-1, OUT0, NONE); > + PIN_SLP(gpg2-2, INPUT, NONE); > + PIN_SLP(gpg2-3, OUT0, NONE); > + PIN_SLP(gpg2-4, OUT0, NONE); > + PIN_SLP(gpg2-5, OUT0, NONE); > + PIN_SLP(gpg2-6, OUT0, NONE); > + > + PIN_SLP(gpg3-0, PREV, UP); > + PIN_SLP(gpg3-1, PREV, UP); > + PIN_SLP(gpg3-2, INPUT, NONE); > + PIN_SLP(gpg3-3, INPUT, DOWN); > + PIN_SLP(gpg3-4, OUT0, NONE); > + PIN_SLP(gpg3-5, OUT0, NONE); > + PIN_SLP(gpg3-6, INPUT, DOWN); > + > + PIN_SLP(gpi-0, PREV, NONE); No such name. Did you mean gpgi? > + PIN_SLP(gpi-1, INPUT, DOWN); > + PIN_SLP(gpi-2, PREV, NONE); > + PIN_SLP(gpi-3, PREV, NONE); > + PIN_SLP(gpi-4, PREV, NONE); > + PIN_SLP(gpi-5, INPUT, DOWN); > + PIN_SLP(gpi-6, INPUT, DOWN); > + > + PIN_SLP(gpj0-0, INPUT, NONE); > + PIN_SLP(gpj0-1, INPUT, NONE); > + PIN_SLP(gpj0-2, INPUT, NONE); > + PIN_SLP(gpj0-3, INPUT, NONE); > + PIN_SLP(gpj0-4, INPUT, NONE); > + PIN_SLP(gpj0-5, INPUT, DOWN); > + PIN_SLP(gpj0-6, OUT0, NONE); > + PIN_SLP(gpj0-7, INPUT, NONE); > + > + PIN_SLP(gpj1-0, OUT1, NONE); > + PIN_SLP(gpj1-1, OUT0, NONE); > + PIN_SLP(gpj1-2, INPUT, DOWN); > + PIN_SLP(gpj1-3, PREV, NONE); > + PIN_SLP(gpj1-4, PREV, NONE); > + PIN_SLP(gpj1-5, OUT0, NONE); > + > + PIN_SLP(gpj2-0, INPUT, DOWN); > + PIN_SLP(gpj2-1, INPUT, DOWN); > + PIN_SLP(gpj2-2, OUT0, NONE); > + PIN_SLP(gpj2-3, INPUT, DOWN); > + PIN_SLP(gpj2-4, INPUT, DOWN); > + PIN_SLP(gpj2-5, PREV, NONE); > + PIN_SLP(gpj2-6, PREV, NONE); > + PIN_SLP(gpj2-7, INPUT, DOWN); > + > + PIN_SLP(gpj3-0, INPUT, NONE); > + PIN_SLP(gpj3-1, INPUT, NONE); > + PIN_SLP(gpj3-2, OUT0, NONE); > + PIN_SLP(gpj3-3, INPUT, DOWN); > + PIN_SLP(gpj3-4, INPUT, NONE); > + PIN_SLP(gpj3-5, INPUT, NONE); > + PIN_SLP(gpj3-6, INPUT, NONE); > + PIN_SLP(gpj3-7, INPUT, NONE); > + > + PIN_SLP(gpj4-0, INPUT, NONE); > + PIN_SLP(gpj4-1, INPUT, DOWN); > + PIN_SLP(gpj4-2, PREV, NONE); > + PIN_SLP(gpj4-3, INPUT, NONE); > + PIN_SLP(gpj4-4, INPUT, DOWN); > + > + PIN_SLP(mp01-0, OUT1, NONE); > + PIN_SLP(mp01-1, OUT0, NONE); > + PIN_SLP(mp01-2, INPUT, DOWN); > + PIN_SLP(mp01-3, INPUT, DOWN); > + PIN_SLP(mp01-4, OUT1, NONE); > + PIN_SLP(mp01-5, INPUT, DOWN); > + PIN_SLP(mp01-6, INPUT, DOWN); > + PIN_SLP(mp01-7, INPUT, DOWN); > + > + PIN_SLP(mp02-0, INPUT, DOWN); > + PIN_SLP(mp02-1, INPUT, DOWN); > + PIN_SLP(mp02-2, INPUT, NONE); > + PIN_SLP(mp02-3, INPUT, DOWN); > + > + PIN_SLP(mp03-0, INPUT, DOWN); > + PIN_SLP(mp03-1, INPUT, DOWN); > + PIN_SLP(mp03-2, OUT1, NONE); > + PIN_SLP(mp03-3, OUT0, NONE); > + PIN_SLP(mp03-4, INPUT, NONE); > + PIN_SLP(mp03-5, OUT0, NONE); > + PIN_SLP(mp03-6, INPUT, DOWN); > + PIN_SLP(mp03-7, INPUT, DOWN); > + > + PIN_SLP(mp04-0, INPUT, DOWN); > + PIN_SLP(mp04-1, OUT0, NONE); > + PIN_SLP(mp04-2, INPUT, DOWN); > + PIN_SLP(mp04-3, OUT0, NONE); > + PIN_SLP(mp04-4, INPUT, DOWN); > + PIN_SLP(mp04-5, INPUT, DOWN); > + PIN_SLP(mp04-6, OUT0, NONE); > + PIN_SLP(mp04-7, INPUT, DOWN); > + > + PIN_SLP(mp05-0, INPUT, NONE); > + PIN_SLP(mp05-1, INPUT, NONE); > + PIN_SLP(mp05-2, INPUT, NONE); > + PIN_SLP(mp05-3, INPUT, NONE); > + PIN_SLP(mp05-4, INPUT, DOWN); > + PIN_SLP(mp05-5, OUT0, NONE); > + PIN_SLP(mp05-6, INPUT, DOWN); > + PIN_SLP(mp05-7, PREV, NONE); > + > + PIN_SLP(mp06-0, INPUT, DOWN); > + PIN_SLP(mp06-1, INPUT, DOWN); > + PIN_SLP(mp06-2, INPUT, DOWN); > + PIN_SLP(mp06-3, INPUT, DOWN); > + PIN_SLP(mp06-4, INPUT, DOWN); > + PIN_SLP(mp06-5, INPUT, DOWN); > + PIN_SLP(mp06-6, INPUT, DOWN); > + PIN_SLP(mp06-7, INPUT, DOWN); > + > + PIN_SLP(mp07-0, INPUT, DOWN); > + PIN_SLP(mp07-1, INPUT, DOWN); > + PIN_SLP(mp07-2, INPUT, DOWN); > + PIN_SLP(mp07-3, INPUT, DOWN); > + PIN_SLP(mp07-4, INPUT, DOWN); > + PIN_SLP(mp07-5, INPUT, DOWN); > + PIN_SLP(mp07-6, INPUT, DOWN); > + PIN_SLP(mp07-7, INPUT, DOWN); > + }; What about gphX? Best regards, Krzysztof > +}; > -- > 2.20.1 >