From patchwork Tue Jul 26 18:53:29 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Wahren X-Patchwork-Id: 9248693 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 CCE62607F2 for ; Tue, 26 Jul 2016 18:56:21 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BDD95208C2 for ; Tue, 26 Jul 2016 18:56:21 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B277426A4D; Tue, 26 Jul 2016 18:56:21 +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.2 required=2.0 tests=BAYES_00, RCVD_IN_DNSWL_MED 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 3E69E208C2 for ; Tue, 26 Jul 2016 18:56:21 +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 1bS7VF-00012b-Lz; Tue, 26 Jul 2016 18:54:53 +0000 Received: from mout.kundenserver.de ([212.227.126.134]) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1bS7V4-0000zP-Cv; Tue, 26 Jul 2016 18:54:43 +0000 Received: from localhost.localdomain ([95.91.40.150]) by mrelayeu.kundenserver.de (mreue001) with ESMTPSA (Nemesis) id 0LpkNL-1amRoS1z6t-00fjAY; Tue, 26 Jul 2016 20:54:11 +0200 From: Stefan Wahren To: Rob Herring , Mark Rutland , Eric Anholt , John Youn Subject: [PATCH V2 RFC 2/6] usb: dwc2: Add DT properties to specify fifo size in host/otg mode Date: Tue, 26 Jul 2016 18:53:29 +0000 Message-Id: <1469559213-16160-3-git-send-email-stefan.wahren@i2se.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1469559213-16160-1-git-send-email-stefan.wahren@i2se.com> References: <1469559213-16160-1-git-send-email-stefan.wahren@i2se.com> X-Provags-ID: V03:K0:WdtB+FQvDsiS1Vd8SbfGcXgfL3NnivIOXku7dhSn262+OrDqjKH WOkBaSeyas3ry0M46Rg+2fCFN+La0boRiyYChg3f2U49Vr+pqufbrtPxYlPsuSnJRbE6olv dQJtGDFOpVrm3WyuO2FUXEHhsfAck//n4JH2ihwGnl8bCIZYhCn/SDmADtW7zxNhRvkpv8u Q33rRBBxfohCToDFITMMg== X-UI-Out-Filterresults: notjunk:1; V01:K0:VnqSzfkgCBI=:5UTtTQnU31TRcUq796/9ae lU1ZCFZ2Hd7xPTi6VTwkjNmSzD5c4Dryc0qQ4GGdBXX4UsPbgJZYXy8Eei4rVrI+VHwE2WNl1 qzcwSCJOMHczrXmrZ1sg0eqZp4tqgbaOyNwlsuns8iNyzSz6+ANl3lD0dWjggH+v2DAI2XP3u 5EflH2eQG3hKIYMUh+IPrLrKzh2umce04hSEJ6ke49bREe0KyC8b6JZ8Ser5AfKiN7cwJZNH8 fTvgyuixlUIJZ3WZLaftZxxzTlwMYINVYsqdBQAHgFe6NZohC2PSAfQnzIhmOgGTkYmmAIvGE dUNtFvEHFQOuGdiPjYBcTgfH7m642pBj9KeW+dxrh3YpEL+jEH3wM3cVFFImAxQauemwmfb/f YECaYNkhyOOxRnnfXNYfk0HuMLx490PT3MtAN4ea+1VudMHzxzMVrj8ul8V92HK+lXBmnyF86 borb52h9AdpfEabWXcTg9r1ijVps3BWFdy78dYghPaUj2LzflE1lQSOYu5Sovn88E33Zzr8K0 4HOVtPVXo6BBb9AlUTsvcvbMCWg5qkXNzQHDFXyNt0vcO36H7t8ik5W3N1ZQ/b4ZQvC20j18k 7/p1/rfivpd6MFTAmPLFZs2Oer5iO+l3i28gNbDJFz0usvN55QxJnjKqW+2w7DmGI/l49zj44 +9XZad4/PKdJ7boKMc8Vh4z9AwK7ViRzd7rvC/Sh/GK2f0xeyqDHzLxry2Z70Sg/vQPM= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20160726_115442_775463_7B4EC07F X-CRM114-Status: GOOD ( 11.97 ) 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: Stefan Wahren , Felipe Balbi , Stephen Warren , devicetree@vger.kernel.org, Greg Kroah-Hartman , linux-usb@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org MIME-Version: 1.0 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 Currently the fifo sizes for host/otg mode are defined per platform and doesn't take the mode into account. So we will get errors like this: dwc2 20980000.usb: 256 invalid for host_nperio_tx_fifo_size. dwc2 20980000.usb: Setting host_nperio_tx_fifo_size to 32 So add DT properties for these mode specific fifo sizes in order to define them in the devicetree and avoid these errors. Signed-off-by: Stefan Wahren Acked-by: Rob Herring --- Documentation/devicetree/bindings/usb/dwc2.txt | 3 +++ drivers/usb/dwc2/core.c | 25 ++++++++++++++++++------ 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/Documentation/devicetree/bindings/usb/dwc2.txt b/Documentation/devicetree/bindings/usb/dwc2.txt index 20a68bf..298bac1 100644 --- a/Documentation/devicetree/bindings/usb/dwc2.txt +++ b/Documentation/devicetree/bindings/usb/dwc2.txt @@ -27,6 +27,9 @@ Refer to phy/phy-bindings.txt for generic phy consumer properties - g-rx-fifo-size: size of rx fifo size in gadget mode. - g-np-tx-fifo-size: size of non-periodic tx fifo size in gadget mode. - g-tx-fifo-size: size of periodic tx fifo per endpoint (except ep0) in gadget mode. +- h-rx-fifo-size: size of rx fifo size in host / otg mode. +- h-np-tx-fifo-size: size of non-periodic tx fifo size in host / otg mode. +- h-tx-fifo-size: size of periodic tx fifo per endpoint (except ep0) in host / otg mode. Example: diff --git a/drivers/usb/dwc2/core.c b/drivers/usb/dwc2/core.c index 5645528..5dffc6e 100644 --- a/drivers/usb/dwc2/core.c +++ b/drivers/usb/dwc2/core.c @@ -47,6 +47,7 @@ #include #include #include +#include #include #include @@ -1289,6 +1290,9 @@ static void dwc2_set_param_hibernation(struct dwc2_hsotg *hsotg, void dwc2_set_parameters(struct dwc2_hsotg *hsotg, const struct dwc2_core_params *params) { + struct device_node *np = hsotg->dev->of_node; + u32 val = 0; + dev_dbg(hsotg->dev, "%s()\n", __func__); dwc2_set_param_otg_cap(hsotg, params->otg_cap); @@ -1299,12 +1303,6 @@ void dwc2_set_parameters(struct dwc2_hsotg *hsotg, params->host_support_fs_ls_low_power); dwc2_set_param_enable_dynamic_fifo(hsotg, params->enable_dynamic_fifo); - dwc2_set_param_host_rx_fifo_size(hsotg, - params->host_rx_fifo_size); - dwc2_set_param_host_nperio_tx_fifo_size(hsotg, - params->host_nperio_tx_fifo_size); - dwc2_set_param_host_perio_tx_fifo_size(hsotg, - params->host_perio_tx_fifo_size); dwc2_set_param_max_transfer_size(hsotg, params->max_transfer_size); dwc2_set_param_max_packet_count(hsotg, @@ -1329,6 +1327,21 @@ void dwc2_set_parameters(struct dwc2_hsotg *hsotg, dwc2_set_param_uframe_sched(hsotg, params->uframe_sched); dwc2_set_param_external_id_pin_ctl(hsotg, params->external_id_pin_ctl); dwc2_set_param_hibernation(hsotg, params->hibernation); + + if (!IS_ENABLED(CONFIG_OF) || + of_property_read_u32(np, "h-rx-fifo-size", &val)) + val = params->host_rx_fifo_size; + dwc2_set_param_host_rx_fifo_size(hsotg, val); + + if (!IS_ENABLED(CONFIG_OF) || + of_property_read_u32(np, "h-np-tx-fifo-size", &val)) + val = params->host_nperio_tx_fifo_size; + dwc2_set_param_host_nperio_tx_fifo_size(hsotg, val); + + if (!IS_ENABLED(CONFIG_OF) || + of_property_read_u32(np, "h-tx-fifo-size", &val)) + val = params->host_perio_tx_fifo_size; + dwc2_set_param_host_perio_tx_fifo_size(hsotg, val); } /*