From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752594AbcEFGYj (ORCPT ); Fri, 6 May 2016 02:24:39 -0400 Received: from mailout3.w1.samsung.com ([210.118.77.13]:23722 "EHLO mailout3.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751054AbcEFGYh (ORCPT ); Fri, 6 May 2016 02:24:37 -0400 X-AuditID: cbfec7f4-f796c6d000001486-d3-572c38a1fa8b Subject: Re: [RFC v2 07/13] power: pwrseq: simple: Add support for toggling regulator To: Javier Martinez Canillas , devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-mmc@vger.kernel.org, linux-pm@vger.kernel.org, linux-usb@vger.kernel.org, Ulf Hansson , Sebastian Reichel , Dmitry Eremin-Solenikov , David Woodhouse , Greg Kroah-Hartman , Mark Brown References: <1462451666-17945-1-git-send-email-k.kozlowski@samsung.com> <1462451666-17945-8-git-send-email-k.kozlowski@samsung.com> Cc: tjakobi@math.uni-bielefeld.de, m.szyprowski@samsung.com, hverkuil@xs4all.nl, Bartlomiej Zolnierkiewicz From: Krzysztof Kozlowski Message-id: <572C38A0.7060707@samsung.com> Date: Fri, 06 May 2016 08:24:32 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-version: 1.0 In-reply-to: Content-type: text/plain; charset=windows-1252 Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrAIsWRmVeSWpSXmKPExsVy+t/xK7oLLXTCDXq3q1hsnLGe1WLqwyds FpOevGe2mH/kHKvFxJWTmS2aF69nszg1+RmTxZu3a5gsXr8wtNj0+BqrxeVdc9gsjvzvZ7T4 3HuE0WLG+X1MFouWtTJbrD1yl93i9O4Si7bVH1gtjq8NdxD22DnrLrvH5hVaHptWdbJ53Lm2 h81j/9w1QKEl9R7/jrF7bOkHyvdtWcXo8XmTnMepr5/ZA7ijuGxSUnMyy1KL9O0SuDJOLFrO VrCOu6Kr7Tx7A+NEzi5GTg4JAROJHT9vMEPYYhIX7q1n62Lk4hASWMoosXfraWYI5xmjxOX5 P8CqhAXCJXac3sEEkhAR6GWRuHDuPBNIQkhgH6PErpOmIAlmgXZGia2ndrOBJNgEjCU2L18C ZvMKaEmse76WFcRmEVCV+Lh7GVhcVCBCYvW6a8wQNYISPybfYwGxOQWcJT49fwlkcwAN1ZO4 f1ELJMwsIC+xec1b5gmMArOQdMxCqJqFpGoBI/MqRtHU0uSC4qT0XEO94sTc4tK8dL3k/NxN jJB4/LKDcfExq0OMAhyMSjy8GSe1w4VYE8uKK3MPMUpwMCuJ8Kqa6YQL8aYkVlalFuXHF5Xm pBYfYpTmYFES5527632IkEB6YklqdmpqQWoRTJaJg1OqgVFK4QVP/Z6g8KQDdo9bzao96l93 Z/7cGh0zIeUxHyvvXRvBxsS20yWzOERFY5QPfszh/K+cYVEhpLj7pX5yr1wR++TFX9/2NEXa 7hNZdf3qkZ2K77+Xxh84G5i9UrHHcrb2wU1WxwKN9Zpvcd9epHH+1SQ+5pJtc7/L/M44wb17 9SoBjqnJP5VYijMSDbWYi4oTAXtXXnrDAgAA Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/05/2016 09:31 PM, Javier Martinez Canillas wrote: > Hello Krzysztof, > > On 05/05/2016 08:34 AM, Krzysztof Kozlowski wrote: >> Some devices need real hard-reset by cutting the power. During power >> sequence turn off and on the regulator, if it is provided. >> >> Signed-off-by: Krzysztof Kozlowski >> --- > > [snip] > >> >> #define to_pwrseq_simple(p) container_of(p, struct mmc_pwrseq_simple, pwrseq) >> @@ -62,6 +65,13 @@ static void mmc_pwrseq_simple_post_power_on(struct pwrseq *_pwrseq) >> { >> struct mmc_pwrseq_simple *pwrseq = to_pwrseq_simple(_pwrseq); >> >> + if (pwrseq->ext_reg) { >> + int err; >> + >> + err = regulator_enable(pwrseq->ext_reg); >> + WARN_ON_ONCE(err); >> + } >> + > > Shouldn't this be in mmc_pwrseq_simple_pre_power_on() instead? > > For example, a chip may need to be powered on before attempting to > toggle its reset or power pins using some GPIO lines. Indeed this should be still sorted out but here the assumption is that regulator is disabled (by probe()) so it should be turned on with GPIO-reset set. This can be done at the end of pre-power-on or here (beginning of post-power-on). On the other hand I understand these pre/post callbacks as one starting the reset sequence (pre) and second as finishing it (post). In case of regulators, finishing power sequence is to turn the regulator on. Best regards, Krzysztof