From patchwork Thu Nov 23 13:47:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frieder Schrempf X-Patchwork-Id: 168946 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce62:0:b0:403:3b70:6f57 with SMTP id o2csp457074vqx; Thu, 23 Nov 2023 05:48:02 -0800 (PST) X-Google-Smtp-Source: AGHT+IHgg2a4ur7YVIns/f59x44sT90DRrL6cSSXooIEYLkD4wikWtm97v/12YKS8mi7haaCNprb X-Received: by 2002:a17:902:ff0f:b0:1cf:96a0:e4eb with SMTP id f15-20020a170902ff0f00b001cf96a0e4ebmr709707plj.37.1700747282296; Thu, 23 Nov 2023 05:48:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700747282; cv=none; d=google.com; s=arc-20160816; b=K2ur2gA+ypCNL718qKzlWWn9KFpkWOhBneG1wmZozhbG9uxN2zSpzdDZAiURPdllLK lGzREu7zWHF7Z0JoN5y+qAohq3N/K5fxzKcyINexAcEYdSABUHLJdMG9NPKlHuqnvFFo CeU3H366Pu2LWb562AyBnpVi+21B/C7iXjoGAMmq1lKgFnOXcngmedd7v7cnyetO+DDr 5eRndJYUV5/ipwlrC6VNt8ODfHwgpYQJEOz4xtDUc1MPZyfDjmzdb3P4AUyyV+B0zFnI Sz7HBNDxpul4C0wko1vJIxc3stP14uOvP2sPxrOdWse4pyj+fj3h0DXbWhykWQcSorTS zXkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=P+qJkp9/x0LF6AlZcKBVhLb5rg5xcRwmC1heMFnS1dA=; fh=0dKF4YkBlgwdH+l/uGrVozknVeSV7keUo8PI0Ad3bKk=; b=ADlU4LknjwHpjV2hIRUhpi6RvoOcF8xGU8uZAnm5TRBOWXY8Gvdu5zjLy2J+xfuJ2/ qi0cJ3Cv3KcKZc02gDvfe+I5EiLzuCl+/HazXiQI5CaweqMPT6BpavRLvV5zsohNc8nj DESv+7+Ut6diVRjHxO4oKqVS+RsvdwDwmg3m4jEPckcnZ3dViiDc7fGHGAW1/0j/Jf3T pNRNArSGW83v47V2ejW4CxLud0JOtKepEgH3q80DYIUBMtyzbNO7PSE9cTNtHWDD9+VZ p5nH4ye+LyZgc1yCj30NN1n8jWkcyxmh8wNsiwmjBSsy38p0hGgoRc+1hFBYzXuECHj6 W6Kg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@fris.de header.s=dkim header.b="N8Dg/nEY"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=fris.de Received: from agentk.vger.email (agentk.vger.email. [2620:137:e000::3:2]) by mx.google.com with ESMTPS id u18-20020a170902e5d200b001cf68a3d91asi1199126plf.343.2023.11.23.05.48.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Nov 2023 05:48:02 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) client-ip=2620:137:e000::3:2; Authentication-Results: mx.google.com; dkim=pass header.i=@fris.de header.s=dkim header.b="N8Dg/nEY"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=fris.de Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 6848682AE5FC; Thu, 23 Nov 2023 05:47:56 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345610AbjKWNrk (ORCPT + 99 others); Thu, 23 Nov 2023 08:47:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37466 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345594AbjKWNri (ORCPT ); Thu, 23 Nov 2023 08:47:38 -0500 Received: from mail.fris.de (mail.fris.de [116.203.77.234]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 80541D48 for ; Thu, 23 Nov 2023 05:47:42 -0800 (PST) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 54028BFC26; Thu, 23 Nov 2023 14:47:37 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fris.de; s=dkim; t=1700747259; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding; bh=P+qJkp9/x0LF6AlZcKBVhLb5rg5xcRwmC1heMFnS1dA=; b=N8Dg/nEYgbKV1lxtWHHDD4991rt98n2eXNnl2jtHjw39cN+6imtMRTEbxsWR8oxQkgwfNl MUDWm+qqaXJ+SYIl2SvdJ5nL13uAQTjDicZzI1X+gFQIwN05SJMipPTE7tpYdA0UFxPevh z0vC9g2v6+BcApw3ZxYZPohpyWbjea4lj6Phoe5btvVmQ9vKhoYGbfSPCeCnJY9dvLXKw0 EBvdpkD1zZne/P8F1othz9D13GEzX6Ysok6lnMOyxAyMySv2lgHlDrnHyIYVB48EtAStCm wWwU+SH1O/lVsdvHc41lKjRYpWV7Lz4CYAVR8Mi6x/P+GuUtADMPf4S8nxy/kA== From: Frieder Schrempf To: Greg Kroah-Hartman , linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, Matthias Kaehlcke Cc: Frieder Schrempf , Anand Moon , Benjamin Bara , Icenowy Zheng , Rob Herring , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= Subject: [PATCH 1/2] usb: misc: onboard_usb_hub: Add support for clock input Date: Thu, 23 Nov 2023 14:47:20 +0100 Message-ID: <20231123134728.709533-1-frieder@fris.de> MIME-Version: 1.0 X-Last-TLS-Session-Version: TLSv1.3 X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Thu, 23 Nov 2023 05:47:56 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783362781966458056 X-GMAIL-MSGID: 1783362781966458056 From: Frieder Schrempf Most onboard USB hubs have a dedicated crystal oscillator but on some boards the clock signal for the hub is provided by the SoC. In order to support this, we add the possibility of specifying a clock in the devicetree that gets enabled/disabled when the hub is powered up/down. Signed-off-by: Frieder Schrempf --- drivers/usb/misc/onboard_usb_hub.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/usb/misc/onboard_usb_hub.c b/drivers/usb/misc/onboard_usb_hub.c index a341b2fbb7b44..e710e3c82ba9b 100644 --- a/drivers/usb/misc/onboard_usb_hub.c +++ b/drivers/usb/misc/onboard_usb_hub.c @@ -5,6 +5,7 @@ * Copyright (c) 2022, Google LLC */ +#include #include #include #include @@ -60,12 +61,19 @@ struct onboard_hub { bool going_away; struct list_head udev_list; struct mutex lock; + struct clk *clk; }; static int onboard_hub_power_on(struct onboard_hub *hub) { int err; + err = clk_prepare_enable(hub->clk); + if (err) { + dev_err(hub->dev, "failed to enable clock: %d\n", err); + return err; + } + err = regulator_bulk_enable(hub->pdata->num_supplies, hub->supplies); if (err) { dev_err(hub->dev, "failed to enable supplies: %d\n", err); @@ -92,6 +100,8 @@ static int onboard_hub_power_off(struct onboard_hub *hub) return err; } + clk_disable_unprepare(hub->clk); + hub->is_powered_on = false; return 0; @@ -266,6 +276,10 @@ static int onboard_hub_probe(struct platform_device *pdev) return err; } + hub->clk = devm_clk_get_optional(dev, NULL); + if (IS_ERR(hub->clk)) + return dev_err_probe(dev, PTR_ERR(hub->clk), "failed to get clock\n"); + hub->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH); if (IS_ERR(hub->reset_gpio)) From patchwork Thu Nov 23 13:47:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frieder Schrempf X-Patchwork-Id: 168947 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce62:0:b0:403:3b70:6f57 with SMTP id o2csp457187vqx; Thu, 23 Nov 2023 05:48:15 -0800 (PST) X-Google-Smtp-Source: AGHT+IErP6bDCxHrCViaoboJuh81rvwM5ktbNSmq0SdwZWp3I/6M9qYu6EAA0yxpQD02GO2E9644 X-Received: by 2002:a17:902:ce81:b0:1cc:ef37:664a with SMTP id f1-20020a170902ce8100b001ccef37664amr5956945plg.31.1700747294931; Thu, 23 Nov 2023 05:48:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1700747294; cv=none; d=google.com; s=arc-20160816; b=V1f1OhPYpHTYdzsGPoR+/aswEkHA+x0Xj2PwAse+hVVd9ro1Nw5zdCMp3lbnJxbxKk BH/dqMeDyxXjnG9IRSkXiCpVvO3UjSx+J4B9wqaxUJk3fYMbQ6219gO9/9ZyXnJAm1sM vSl2kxvOPlxloe6hiJ/pQ/TIomqLwnu9qnedjg0HSeaJ04N09kFhvaSkClLKeSFmY0Bs yjZOuIsKvSHR60Yl7oC8IE96zsUHVu0wEKLrt00UTFyRbdWtLWTsw6AVzujzx6EFQNNk PnZjpeZHw+XyxVlQ+tkd9d/mC54XtH1XYsq2QGMXZaERr798tlrSY+AOiveLdLLggeWy WkOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Pi1atu12zkAcY/0bmm6zXxbZy+hVAt8zjD1oA7GM5ps=; fh=iR1fr8PdTC8vPagh5AmXXcRzQynCfDR5msaBub/CrEM=; b=0L2ASDbI7vIZOutgZEriGIkbngiX4m69ZOo/cLHQirQnbABY+5Dl4kE6SRwEFbhTlg u3HU5z40Ewyx5PepFkYJjbRIQWflF6EZHzUBufUnfAiYMDh0XPKL7WaS+fG7+GfbRQth RIFm4cPz+6DscE6lFYrPJIcNXMqDINh4zBMTWelCgXr2Stf4USgO0PX4nKf1p4w+GVPB z4PtvqK7k7qocXuyW2OdZfruF4aJHc4ab02+Qxe8MuZ8UMGxEWqrAWfT/OfVtrlwM7m8 7jokADbPCdg7K/gWT5pmh5eDldvZLf6uTJuhoscQNg6UKdHs3S+7rrxEXPsHVAFsqaSI /dkw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@fris.de header.s=dkim header.b=DjSml9xe; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=fris.de Received: from agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id m5-20020a1709026bc500b001c8944c933dsi1108376plt.380.2023.11.23.05.48.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Nov 2023 05:48:14 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; dkim=pass header.i=@fris.de header.s=dkim header.b=DjSml9xe; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=fris.de Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 7A16182AE5F5; Thu, 23 Nov 2023 05:48:12 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345613AbjKWNrn (ORCPT + 99 others); Thu, 23 Nov 2023 08:47:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37506 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345592AbjKWNri (ORCPT ); Thu, 23 Nov 2023 08:47:38 -0500 Received: from mail.fris.de (mail.fris.de [116.203.77.234]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EA1121B2 for ; Thu, 23 Nov 2023 05:47:44 -0800 (PST) Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 18DBAC00AE; Thu, 23 Nov 2023 14:47:43 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fris.de; s=dkim; t=1700747263; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=Pi1atu12zkAcY/0bmm6zXxbZy+hVAt8zjD1oA7GM5ps=; b=DjSml9xeT0BDWxXcWv3y8oXbTULW96QVQjWzGnwMfFpNWivzdsiVT/uBAlv1k5+4moGrdC sRang3SAPExGwUQtYXPYVrLtf82cNCbGPQSrUR3Nq858jJtW2QDpRFgbk+1Wx74pEl9IH7 iI0j1/kx7OhA0VeQKrfS2Gb2kcNi9Ko+ZwFX4HiBN/D+g1ZLV1JkDz/E8yLbw9g1jMtO7g 6rgydz+EUzbmK93ooyqdGeRKEvNxHSxyaoSFa4pc0o9PO56+CH/YQoGZqqpl9Nm8eQdxZT FR85dQXw8PxFojCUf1vURgBgXf+DmnO+X05IEQHDVm6iX5b2yGVNt+msGcxWLw== From: Frieder Schrempf To: Greg Kroah-Hartman , linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, Matthias Kaehlcke Cc: Frieder Schrempf , Anand Moon , Benjamin Bara , Icenowy Zheng , Javier Carrasco , Rob Herring , =?utf-8?q?Uwe_Kleine-K=C3=B6nig?= Subject: [PATCH 2/2] usb: misc: onboard_usb_hub: Add support for Cypress CY7C6563x Date: Thu, 23 Nov 2023 14:47:21 +0100 Message-ID: <20231123134728.709533-2-frieder@fris.de> In-Reply-To: <20231123134728.709533-1-frieder@fris.de> References: <20231123134728.709533-1-frieder@fris.de> MIME-Version: 1.0 X-Last-TLS-Session-Version: TLSv1.3 X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Thu, 23 Nov 2023 05:48:12 -0800 (PST) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1783362795656734470 X-GMAIL-MSGID: 1783362795656734470 From: Frieder Schrempf The Cypress CY7C6563x is a 2/4-port USB 2.0 hub. Add support for this hub in the driver in order to bring up reset, supply or clock dependencies. There is no reset pulse width given in the datasheet so we expect a minimal value of 1us to be enough. This hasn't been tested though due to lack of hardware which has the reset connected to a GPIO. Signed-off-by: Frieder Schrempf --- drivers/usb/misc/onboard_usb_hub.c | 1 + drivers/usb/misc/onboard_usb_hub.h | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/drivers/usb/misc/onboard_usb_hub.c b/drivers/usb/misc/onboard_usb_hub.c index e710e3c82ba9b..e2e011036d359 100644 --- a/drivers/usb/misc/onboard_usb_hub.c +++ b/drivers/usb/misc/onboard_usb_hub.c @@ -440,6 +440,7 @@ static void onboard_hub_usbdev_disconnect(struct usb_device *udev) static const struct usb_device_id onboard_hub_id_table[] = { { USB_DEVICE(VENDOR_ID_CYPRESS, 0x6504) }, /* CYUSB33{0,1,2}x/CYUSB230x 3.0 */ { USB_DEVICE(VENDOR_ID_CYPRESS, 0x6506) }, /* CYUSB33{0,1,2}x/CYUSB230x 2.0 */ + { USB_DEVICE(VENDOR_ID_CYPRESS, 0x6570) }, /* CY7C6563x 2.0 */ { USB_DEVICE(VENDOR_ID_GENESYS, 0x0608) }, /* Genesys Logic GL850G USB 2.0 */ { USB_DEVICE(VENDOR_ID_GENESYS, 0x0610) }, /* Genesys Logic GL852G USB 2.0 */ { USB_DEVICE(VENDOR_ID_GENESYS, 0x0620) }, /* Genesys Logic GL3523 USB 3.1 */ diff --git a/drivers/usb/misc/onboard_usb_hub.h b/drivers/usb/misc/onboard_usb_hub.h index c4e24a7b92904..67b2cc1e15e67 100644 --- a/drivers/usb/misc/onboard_usb_hub.h +++ b/drivers/usb/misc/onboard_usb_hub.h @@ -31,6 +31,11 @@ static const struct onboard_hub_pdata cypress_hx3_data = { .num_supplies = 2, }; +static const struct onboard_hub_pdata cypress_hx2vl_data = { + .reset_us = 1, + .num_supplies = 1, +}; + static const struct onboard_hub_pdata genesys_gl850g_data = { .reset_us = 3, .num_supplies = 1, @@ -54,6 +59,7 @@ static const struct of_device_id onboard_hub_match[] = { { .compatible = "usb451,8142", .data = &ti_tusb8041_data, }, { .compatible = "usb4b4,6504", .data = &cypress_hx3_data, }, { .compatible = "usb4b4,6506", .data = &cypress_hx3_data, }, + { .compatible = "usb4b4,6570", .data = &cypress_hx2vl_data, }, { .compatible = "usb5e3,608", .data = &genesys_gl850g_data, }, { .compatible = "usb5e3,610", .data = &genesys_gl852g_data, }, { .compatible = "usb5e3,620", .data = &genesys_gl852g_data, },