From patchwork Mon Aug 8 01:57:22 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Chen X-Patchwork-Id: 9266623 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id A47616075A for ; Mon, 8 Aug 2016 02:09:35 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8C87026E8A for ; Mon, 8 Aug 2016 02:09:35 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 80D4627D64; Mon, 8 Aug 2016 02:09:35 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 05A0726E8A for ; Mon, 8 Aug 2016 02:09:34 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.85_2 #1 (Red Hat Linux)) id 1bWZy7-0005rV-12; Mon, 08 Aug 2016 02:07:07 +0000 Received: from mail-pf0-x241.google.com ([2607:f8b0:400e:c00::241]) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1bWZxy-0005qQ-4t for linux-arm-kernel@lists.infradead.org; Mon, 08 Aug 2016 02:06:59 +0000 Received: by mail-pf0-x241.google.com with SMTP id y134so24045179pfg.3 for ; Sun, 07 Aug 2016 19:06:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=N7Ul69Bof33xuaiqWd4lj6Rlxah7uw0qgLQT9IEGRv8=; b=s9o6Viarol6QPHeHdldGrd0tLt+Nda1duNusF0Pf3Xn6Dtq/kaT01Vq8QDyGX7lDVD MYt23H08cJKFQm5njWlErtICFrU0v2OMo/t1fteKae1aug5uU5xeNGWkZQz8AO6KVrOi 5bXT+KIo7xEWTFjsV378RHsn/Pxy/B3r97JL5rOoFo3D7jBdNDFFWY7D1NiB4o+URpTD HKQNn8T7R8XPZJpyZ+kJoWFjAUqjkl5e/EpFjC9TjTJIyRdykLHNN5L1SmqxJECkZrq8 Tdq5WTaFVk8IC/i8qPaJ/LubuRD0DRWF4LeE1ntHBCtNrIaXx5E/Aq7OBCcpoUd+uHyk 1R9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=N7Ul69Bof33xuaiqWd4lj6Rlxah7uw0qgLQT9IEGRv8=; b=mVPjst2DDbMFnEQiqAqgKMMzpTZYLJPcB8sHzrQpzFRWR2UWToUN/4uwnDoEDV475F K4JJckcJ0XNZokRoxBazfy2qEt0et5oW/AaESdoJOJpKqLIvzgb47ahmxX5BlPMZ7sco ef1805Ww7DFHYIItIGqp7iK+SKuvaBVdbEh01t/tDp94HWIhkRQz1g3jc0zeubV1UzRC TOtpxatqWCsGhDRe8M4uAxoVKk8TsV4gKQD0z9TsxcGRKUDTO+BCLuBgIDjNiOtSG05x caXStr73L6y4duESqOQLegaE3vNyecTZmTwEGwnQGBqovclQiJsddUK5BiTm243c6hCf yRzg== X-Gm-Message-State: AEkoouumVkPM4VkUzU1hIDwRxXa2raXtNPUq9iGzk/vmxZTIqvhZOyvmHFFPoDXtmcnWwA== X-Received: by 10.98.134.77 with SMTP id x74mr157786227pfd.21.1470621997091; Sun, 07 Aug 2016 19:06:37 -0700 (PDT) Received: from shlinux2 (gate-zmy3.freescale.com. [192.88.167.1]) by smtp.gmail.com with ESMTPSA id l191sm43186128pfc.91.2016.08.07.19.06.26 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Sun, 07 Aug 2016 19:06:36 -0700 (PDT) Date: Mon, 8 Aug 2016 09:57:22 +0800 From: Peter Chen To: Oscar Subject: Re: [PATCH v4 0/6] power: add power sequence library Message-ID: <20160808015722.GA17680@shlinux2> References: <1470108652-16812-1-git-send-email-peter.chen@nxp.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160807_190658_299419_B39C7ED9 X-CRM114-Status: GOOD ( 22.34 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mark.rutland@arm.com, Peter Chen , ulf.hansson@linaro.org, stephen.boyd@linaro.org, k.kozlowski@samsung.com, sre@kernel.org, festevam@gmail.com, stillcompiling@gmail.com, arnd@arndb.de, dbaryshkov@gmail.com, mka@chromium.org, stern@rowland.harvard.edu, dwmw3@infradead.org, devicetree@vger.kernel.org, mail@maciej.szmigiero.name, pawel.moll@arm.com, linux-pm@vger.kernel.org, s.hauer@pengutronix.de, troy.kisky@boundarydevices.com, robh+dt@kernel.org, linux-arm-kernel@lists.infradead.org, gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, broonie@kernel.org, p.zabel@pengutronix.de, shawnguo@kernel.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP On Sat, Aug 06, 2016 at 02:00:08PM +0200, Oscar wrote: > El 2016-08-02 05:30, Peter Chen escribió: > >Hi all, > > > >This is a follow-up for my last power sequence framework patch set > >[1]. > >According to Rob Herring and Ulf Hansson's comments[2], I use a > >generic > >power sequence library for parsing the power sequence elements on DT, > >and implement generic power sequence on library. The host driver > >can allocate power sequence instance, and calls pwrseq APIs > >accordingly. > > > >In future, if there are special power sequence requirements, the > >special > >power sequence library can be created. > > > >This patch set is tested on i.mx6 sabresx evk using a dts change, > >I use > >two hot-plug devices to simulate this use case, the related binding > >change is updated at patch [1/6], The udoo board changes were tested > >using my last power sequence patch set.[3] > > > >Except for hard-wired MMC and USB devices, I find the USB ULPI PHY > >also > >need to power on itself before it can be found by ULPI bus. > > > >[1] http://www.spinics.net/lists/linux-usb/msg142755.html > >[2] http://www.spinics.net/lists/linux-usb/msg143106.html > >[3] http://www.spinics.net/lists/linux-usb/msg142815.html > > > >Changes for v4: > >- Create the patch on next-20160722 > >- Fix the of_node is not NULL after chipidea driver is unbinded > >[Patch 5/6] > >- Using more friendly wait method for reset gpio [Patch 2/6] > >- Support multiple input clocks [Patch 2/6] > >- Add Rob Herring's ack for DT changes > >- Add Joshua Clayton's Tested-by > > > >Changes for v3: > >- Delete "power-sequence" property at binding-doc, and change > >related code > > at both library and user code. > >- Change binding-doc example node name with Rob's comments > >- of_get_named_gpio_flags only gets the gpio, but without setting > >gpio flags, > > add additional code request gpio with proper gpio flags > >- Add Philipp Zabel's Ack and MAINTAINER's entry > > > >Changes for v2: > >- Delete "pwrseq" prefix and clock-names for properties at dt binding > >- Should use structure not but its pointer for kzalloc > >- Since chipidea core has no of_node, let core's of_node equals glue > > layer's at core's probe > > > >Peter Chen (6): > > binding-doc: power: pwrseq-generic: add binding doc for generic > >power > > sequence library > > power: add power sequence library > > binding-doc: usb: usb-device: add optional properties for power > > sequence > > usb: core: add power sequence handling for USB devices > > usb: chipidea: let chipidea core device of_node equal's glue layer > > device of_node > > ARM: dts: imx6qdl-udoo.dtsi: fix onboard USB HUB property > > > > Hi Peter, > > I tried the last version on my udoo board but I got these compile > errors: > > [21330s] ERROR: "pwrseq_get" [drivers/usb/core/usbcore.ko] undefined! > [21330s] ERROR: "pwrseq_free" [drivers/usb/core/usbcore.ko] undefined! > [21330s] ERROR: "pwrseq_put" [drivers/usb/core/usbcore.ko] undefined! > [21330s] ERROR: "pwrseq_off" [drivers/usb/core/usbcore.ko] undefined! > [21330s] ERROR: "pwrseq_on" [drivers/usb/core/usbcore.ko] undefined! > > Will you do another version? > Thanks, I forgot to export above symbols, I will fix it at next version. Below fix should work for you, I have tested. Peter Chen diff --git a/drivers/power/pwrseq/core.c b/drivers/power/pwrseq/core.c index 60f1e4e..6861a21 100644 --- a/drivers/power/pwrseq/core.c +++ b/drivers/power/pwrseq/core.c @@ -29,6 +29,7 @@ int pwrseq_get(struct device_node *np, struct pwrseq *p) return -ENOTSUPP; } +EXPORT_SYMBOL(pwrseq_get); int pwrseq_on(struct device_node *np, struct pwrseq *p) { @@ -37,24 +38,28 @@ int pwrseq_on(struct device_node *np, struct pwrseq *p) return -ENOTSUPP; } +EXPORT_SYMBOL(pwrseq_on); void pwrseq_off(struct pwrseq *p) { if (p && p->off) p->off(p); } +EXPORT_SYMBOL(pwrseq_off); void pwrseq_put(struct pwrseq *p) { if (p && p->put) p->put(p); } +EXPORT_SYMBOL(pwrseq_put); void pwrseq_free(struct pwrseq *p) { if (p && p->free) p->free(p); } +EXPORT_SYMBOL(pwrseq_free); -- Best Regards,