From patchwork Tue Mar 18 06:44:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Looijmans X-Patchwork-Id: 14020385 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 230F1C282EC for ; Tue, 18 Mar 2025 06:47:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:References:MIME-Version: Content-Type:Content-Transfer-Encoding:Message-ID:Date:Subject:CC:To:From: Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender :Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:List-Owner; bh=uQlx0onkuf2ROjfJYS6RKpQ09HoLqPXSTMvfB2lDraM=; b=2Jg6RMtDFQAIMK63x5N32cfIhW MmbaOBl1vNmYdUFmqhV4cIXd8dqMfIiZU9xUEjrwWTBR1R7jd26wsBnMckWc3EPtMecJwwdbMshUe FDCvM7opKqjHAlhw8Gt5rDvRU91v/mwPk8shGQP4sr9IdF6KM1of/Ue/ah6JQ6AY9oZ1djE77Affs 2UlDM0BoDQJE+bDvKkV8TtYkgb7wCalzQVsLO+XiTXgvMkfJBoNvxqATs97EcxvVGmeHoDHx+CyQx k7odVYCk9krZcHqhkeIxotEsxZifzXQY6iK9ERHTlCeujNYHm5gFKeEfY1pdcM9wAbUHHiK2J5tHD dqOg669w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tuQjO-00000004r9Y-1psN; Tue, 18 Mar 2025 06:47:18 +0000 Received: from mail-northeuropeazlp170110001.outbound.protection.outlook.com ([2a01:111:f403:c200::1] helo=DB3PR0202CU003.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tuQhh-00000004qwj-35Av for linux-arm-kernel@lists.infradead.org; Tue, 18 Mar 2025 06:45:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hZhrv9aT6ulwPRywtBiQBmrImoIoB7lHZTBiOuRzoFMdyIi1KULkB8zDbEdX2g8qnwS+ojiwhUHkLBqlj7FER8leWlH/YAhoyRB23BEcNySKPEssp4Axb/85ej6PENHbHBMsutCscMrViSr0Ju/OHFk1/2FXG15LKp3j87txtvN3bebbCPxw+Amf5NbVDRBuib41cr9EOvVSZ3XxU59J+FEhin5oGb7B7o9jL0vqcxxUT52QdsF/qO0H/eXtIfhXVOdRy1k3WCnxMSFkKT8uqg6+UZrymKfSrsMtH+r+3whf/5zShMl8lLMD2icW63SeCNtllhLS3ivJ5dhgYMM8tA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=uQlx0onkuf2ROjfJYS6RKpQ09HoLqPXSTMvfB2lDraM=; b=swL9hlPuDd+sth0BP7QLmoC2XlHuAd9Ba7WNpeP/51EshLgbZbmJetNfg9pH4F1IPLTCv+LUSjyEvORzPDihaTsTOCzBEwelFDxd02WN9DmqpExwZRZFRx3G3ftjkT5IE30n0kysi4/wipt1dBg5UrygD26zHrg6vvR9vsk8GmTetf3VBhGV82fSdZc24HANIwXhbYOCEAbfDMqmKY8WlQbHA4zqDjgpl0xmolhm+Hqa/GXYvlkO3tK6qT5FzdACWOdgoYXlyAKT4smroJpK1w55GbQBIEJQqnGq1pEAmUWaF2VBkCgfvhMhMs3vPJZ27na5OC13eIA6JYNGE0o7zw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 13.93.42.39) smtp.rcpttodomain=vger.kernel.org smtp.mailfrom=topic.nl; dmarc=pass (p=none sp=none pct=100) action=none header.from=topic.nl; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=topic.nl; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uQlx0onkuf2ROjfJYS6RKpQ09HoLqPXSTMvfB2lDraM=; b=AB5HEiSx5Wdb8509hxfImv/FNCMdPvp0+J7juzHVlE65Gl6RgtXHI51rjqsKdoVfdoaofG/3wu/akNPJxVHe0gYXOCCB4nDzkV1dv9yxLk6/CVjgPqmQxVnq1c+qWeuu2WZfp2KpWlXCbqaMGOqVD8jI120PQJtxkPBroJPVz1YhgdE07TCkOgRuKKgMNh5CvUInbMCnpak1SShF5yU5fB2XkhosMAcGpWvL+7Q4XgAG5jJHh+13qhOD8bUHcbpYZX+HcV1vEQWAjSioCABP3i/4Gq6tyh5tz2qCnddUkLfalkwuEP4rV/KbBN8zSDLIp4wLBCsSnTAtkd36sYcFHg== Received: from AS8PR04CA0088.eurprd04.prod.outlook.com (2603:10a6:20b:313::33) by DU2PR04MB9113.eurprd04.prod.outlook.com (2603:10a6:10:2f4::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.33; Tue, 18 Mar 2025 06:45:27 +0000 Received: from AM3PEPF0000A791.eurprd04.prod.outlook.com (2603:10a6:20b:313:cafe::e4) by AS8PR04CA0088.outlook.office365.com (2603:10a6:20b:313::33) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.33 via Frontend Transport; Tue, 18 Mar 2025 06:45:27 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 13.93.42.39) smtp.mailfrom=topic.nl; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=topic.nl; Received-SPF: Pass (protection.outlook.com: domain of topic.nl designates 13.93.42.39 as permitted sender) receiver=protection.outlook.com; client-ip=13.93.42.39; helo=westeu12-emailsignatures-cloud.codetwo.com; pr=C Received: from westeu12-emailsignatures-cloud.codetwo.com (13.93.42.39) by AM3PEPF0000A791.mail.protection.outlook.com (10.167.16.120) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.20 via Frontend Transport; Tue, 18 Mar 2025 06:45:27 +0000 Received: from EUR03-AM7-obe.outbound.protection.outlook.com (104.47.51.237) by westeu12-emailsignatures-cloud.codetwo.com with CodeTwo SMTP Server (TLS12) via SMTP; Tue, 18 Mar 2025 06:45:26 +0000 Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=topic.nl; Received: from AS8PR04MB8644.eurprd04.prod.outlook.com (2603:10a6:20b:42b::12) by VI2PR04MB10167.eurprd04.prod.outlook.com (2603:10a6:800:22c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.33; Tue, 18 Mar 2025 06:45:24 +0000 Received: from AS8PR04MB8644.eurprd04.prod.outlook.com ([fe80::e86d:f110:534e:480a]) by AS8PR04MB8644.eurprd04.prod.outlook.com ([fe80::e86d:f110:534e:480a%5]) with mapi id 15.20.8534.031; Tue, 18 Mar 2025 06:45:23 +0000 From: Mike Looijmans To: linux-usb@vger.kernel.org CC: Mike Looijmans , Greg Kroah-Hartman , Michal Simek , Piyush Mehta , Thinh Nguyen , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v2] usb: dwc3: xilinx: Prevent spike in reset signal Date: Tue, 18 Mar 2025 07:44:52 +0100 Message-ID: <20250318064518.9320-1-mike.looijmans@topic.nl> X-Mailer: git-send-email 2.43.0 X-ClientProxiedBy: AS4PR10CA0009.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:5dc::12) To AS8PR04MB8644.eurprd04.prod.outlook.com (2603:10a6:20b:42b::12) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: AS8PR04MB8644:EE_|VI2PR04MB10167:EE_|AM3PEPF0000A791:EE_|DU2PR04MB9113:EE_ X-MS-Office365-Filtering-Correlation-Id: fcde1199-c653-4e12-a579-08dd65e877d6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230040|376014|52116014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info-Original: luWvEvEeJifurCQMEr/FKg/QbOlNes4LfrQXSBPHZU1EwX78qTdRkWMAsy7ecTA2wVv5o/qHNvgdrWi+9BiCMxtDc+PbUerSxjClyIQg0q214URbr+WwGmoJJeQcnY2s60cfgWgy2vUSD89mLmbX2IwSKK0mqGpsHhHIlwHR9fB7PYvODhp8pZYkGo//Z//8aKVhxQFsZMctF/xCKlnhzRAAuQXVM+PYzMET0rq81WnbGE+UCFwtD0UvcHuwR0WOMAEVzwP4bV4VbTVlsAcHXlg6jip8iQeigW8aAj2Q2dYZKhJywMdbkvHpoD592LoPjaE1WxpHIECTYkPwY/6Bj18/j3fGm01JcRZoqJjh8Sn6iGzWA+rZUxWwGdorZEQ7WLbL7qnDnikv+hwiZRCtwdz5IU6VpaYvvzCJgKSVuGME01Tn8YhizM4DGwkET/kuu5UFmBBcaQXwzK7w/8oBXN5QHUzr9e2PgtobOiVdoHee0pVGN7AcGRWM3pncQKJnHwrigVJIC6/0to7TkgCVDvp5yyUV/574IR9sVUObchj5hzxSGcTwZVCAj+FlOaLslNetPMSUph5YMUVzmBltiLxGQoXgrqc5KFUyDpx/ef5hF8iPgasKSzbIjOhinBwh9zVAyDjXRqY42GaW9ZNIVxZBvRYNBhWBQRVs6uBvp6sSMmG7PyDDdxH9o539ZUx1MhF9wvSR5iw/bSpt+J0JgtyJU5Kpmks0ZQ1G2WgSrqrQdIMuyErBKVmmPGVrgYtReU8E9acM7ovNptJTorHiQbEQtd20lbEnGLMfXAsXfmqlQj4RfEEK4My3G0n6vc5eXZ5FB139vxTGNN3qsvnbOlg5KEIBFcRtnkOTLZ3KJJqsk1O9lZYsMcpuqL4Dkj9vjXBui1qca/lRGYyWnM3ApyaXtJ2V7tVjaUEZMTMoLb9yFJvQWMStQa0OOBNtKPdvW14qyevQ7OAsHoZlzmjjbCf0Wb9x7I15+I72ryajX4ow+WWlYwvgEGmKqDpfx4TGVK2OdEZFe2w9rsqFQPdMoI755enlDJXfPUKQBBNoOPdUYEv/nB2xvvt49uMynnkOuvH0i2z3eUHcfq4k7d22CloTOLDQvEkUwjeRKaKxR4sHTYIMJaOnE+AYGmVyb4mzyiZCyPg9lECd/ENag3qq89w5jgFuV1tO1yAZ7SzO4jQD6AIVWvd16DgTs7J3hSqJCj15ZVKd8+Xx8xzPEsfbXHvY+abUb6F9ONaJwjt6xts/y0y12ME/1oUh3Tv5W2necgNQ0lxGsY64e0wzY/jMglaSoEMy55zXCDUOcOjtddH4RKGnrjImYhz1xVzgRfjk+F66vkb9atL8pDpeScjmp4gKl6ZtcVgHGd14H8TjAhBXxvpgsSCgBWI4VY+WyU9copbCjratTF0av5Yl7AUECREoV6eMy6CzwirdTdSbpCMBk67CTw4f8kUjJZthNdg+ X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB8644.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(52116014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1102; X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI2PR04MB10167 X-CodeTwo-MessageID: 314dd080-ee20-45c1-83ce-0b920499924b.20250318064526@westeu12-emailsignatures-cloud.codetwo.com References: <1b153bce-a66a-45ee-a5c6-963ea6fb1c82.949ef384-8293-46b8-903f-40a477c056ae.92a20336-7677-4cd7-9893-b0e0da853ba9@emailsignatures365.codetwo.com> X-CodeTwoProcessed: true X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM3PEPF0000A791.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 813c9843-e2ec-429f-5c69-08dd65e875af X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|35042699022|376014|14060799003|82310400026|36860700013|13003099007; X-Microsoft-Antispam-Message-Info: UkvztQqHwYN4WhGeGWrcaEs+fZptkvSbiC3oSaZxQMVY0EMNRwdra/YYGz4KFm6He3/ayzNUgaN9Wm4uzjk+1Rw79lr28RWNEOcqDzQfroTfB9kvAyRuTtoPe+5UyMgAX7BgmA7ZpKQkLQ3tN8cVEwGtPSNFWenld+bMLMJkYomZiNvg39wh0ifdnZDnYXoFZ7ndpJLP6fadsCdJ5oNGQTh6y0JDIA5mqf5b2OscLTZFTCZX+Nzf8SpOR4SgrqJ7eanYyECVNHwb+MbxInI1D0+BhTMoBpbIWjtf7faU3P+s+RYhdDzE2yhlmIi+dcxBcIrb+Do8/TZ8UA3eURCSquuP40VF14uQGnqPI2PNQxhgQY5fT5noOK4783XOFkfSA7hVQBUbL9W4GDwvX6E2/jYq6VBytKmEHfG+Frr+7Du/O+Sf/tp7hUKgOIlOw2p12UlD/YRb24C/QLIeDW/OaWGIAztKIzmC1Xvbm3B1o8tt0zxG8tUXfITiHizJJzGVN7TC9cEPGs6zW6HPNqzkwD+Fxk3EdgJnc36r5vOiDyVXoEIRju8XN//p1lIplu/tlriO6ueRMr3vNOj5t+PhIWlceRRYQEvvG7YIuAVI2XJj29cXEpVtLVJMCkRMmj2Xwf8XiG+e7ebSuAcVrRtzSfnOr/qB4H0C0OtFUt6FBOOGS8+ljfqNC05BbIJzHZDvFCch0luU+tG9w+ep430Fd6+x3w7S1vPEzEocODF/6Hp4kHDYlL0DPneanrfBxoN58RAATwbO5OWyklIn1K4WWx3A39NPZFyvcahh47RTKP3jllxJdDRsrqxLJe5exjrVyhJov6ZiuBMBrfG1UreoA8WiZYwfrtOAc/TaEkYwTHqRscjHIrRJZaE9PADr+7et3L3H9CzyNZaor+xqtdQ/ES4CNg7eZc6oNhHein/kd2+VaPvTV5HRJI/Qg+yg9FY4b14P5IBxINVUCY/RlYuyfe0bDyHqPky4ZB25LhXQaHhiYhzrXXLzde4MtexVHe7w0Sdso3Qd0YvBuwm3sbRnSComMaSVfr5sB+wJn9RMVkVfJOWQjll9k2JZJaYvxhAV+88nZHIbMmxVBSEYS9P3ICBeBMxByRagVqRi7p53Xu7S3qVW7+w7m4EBsGVMoe/yr8lQNFPoKr6TSlwjDHKDXu739SzRh81/6/zixHe9wn4Ks6SeFFQwm5MGa5NBbJwE0hwdsrRooyCw9s+zNfrVM8P2Rjy6tFF84dxp5T56EKvU9FbXEvu7L9Y4VN+aJ8Dg5aH2ErWQ0G3B5pLYIZjtbXxKqQ5e9flaWZueX/hqy7lH9ov+AJS91EPqD6P+6OMqjM7HDwoHazfWPAVJ2x3flkkz9UrTeo9c9JA0P4jp30JwMw0I0TllwMm7dVuKeft/kI+MfBPNoCUYBtEk8DEy+uoimqVTJQQ0w185m1wzQ5k= X-Forefront-Antispam-Report: CIP:13.93.42.39;CTRY:NL;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:westeu12-emailsignatures-cloud.codetwo.com;PTR:westeu12-emailsignatures-cloud.codetwo.com;CAT:NONE;SFS:(13230040)(1800799024)(35042699022)(376014)(14060799003)(82310400026)(36860700013)(13003099007);DIR:OUT;SFP:1102; X-OriginatorOrg: topic.nl X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Mar 2025 06:45:27.3539 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fcde1199-c653-4e12-a579-08dd65e877d6 X-MS-Exchange-CrossTenant-Id: 449607a5-3517-482d-8d16-41dd868cbda3 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=449607a5-3517-482d-8d16-41dd868cbda3;Ip=[13.93.42.39];Helo=[westeu12-emailsignatures-cloud.codetwo.com] X-MS-Exchange-CrossTenant-AuthSource: AM3PEPF0000A791.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB9113 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250317_234533_779855_9A1E9530 X-CRM114-Status: GOOD ( 13.37 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The "reset" GPIO controls the RESET signal to an external, usually ULPI PHY, chip. The original code path acquires the signal in LOW state, and then immediately asserts it HIGH again, if the reset signal defaulted to asserted, there'd be a short "spike" before the reset. Here is what happens depending on the pre-existing state of the reset signal: Reset (previously asserted): ~~~|_|~~~~|_______ Reset (previously deasserted): _____|~~~~|_______ ^ ^ ^ A B C At point A, the low going transition is because the reset line is requested using GPIOD_OUT_LOW. If the line is successfully requested, the first thing we do is set it high _without_ any delay. This is point B. So, a glitch occurs between A and B. Requesting the line using GPIOD_OUT_HIGH eliminates the A and B transitions. Instead we get: Reset (previously asserted) : ~~~~~~~~~~|______ Reset (previously deasserted): ____|~~~~~|______ ^ ^ A C Where A and C are the points described above in the code. Point B has been eliminated. The issue was found during code inspection. Also remove the cryptic "toggle ulpi .." comment. Fixes: ca05b38252d7 ("usb: dwc3: xilinx: Add gpio-reset support") Signed-off-by: Mike Looijmans --- Changes in v2: Add "Fixes" tag Remove "toggle ulpi" comment Extend comment to explain what is happening in detail drivers/usb/dwc3/dwc3-xilinx.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/usb/dwc3/dwc3-xilinx.c b/drivers/usb/dwc3/dwc3-xilinx.c index a33a42ba0249..4ca7f6240d07 100644 --- a/drivers/usb/dwc3/dwc3-xilinx.c +++ b/drivers/usb/dwc3/dwc3-xilinx.c @@ -207,15 +207,13 @@ static int dwc3_xlnx_init_zynqmp(struct dwc3_xlnx *priv_data) skip_usb3_phy: /* ulpi reset via gpio-modepin or gpio-framework driver */ - reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW); + reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH); if (IS_ERR(reset_gpio)) { return dev_err_probe(dev, PTR_ERR(reset_gpio), "Failed to request reset GPIO\n"); } if (reset_gpio) { - /* Toggle ulpi to reset the phy. */ - gpiod_set_value_cansleep(reset_gpio, 1); usleep_range(5000, 10000); gpiod_set_value_cansleep(reset_gpio, 0); usleep_range(5000, 10000);