From patchwork Wed May 14 12:22:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wojciech Siudy X-Patchwork-Id: 890029 Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2072.outbound.protection.outlook.com [40.107.247.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 98C20276033; Wed, 14 May 2025 12:22:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.247.72 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747225359; cv=fail; b=rWHkSXavrRswG5yHQKpARdtguxVFJZUo3V+5Dl5cQ6T1qyT1tH2ycJ8Tg2R0qW/fZUx2hemeNepa053uNtRLiRNco00cFfmql8gkKmTbk3szphXkKWV4FS14g31lnmVtXfC/STdBKBCCJw5TP3JWjf8F++N4t3bbA9S6SCDnuBc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747225359; c=relaxed/simple; bh=2TvzqW9N3+cKSnMQK7F3e7V9kyyZtH3QvEgFz+4Qk6E=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=pv6wWlkapVHEsZP08VX+qHGMW3mnLTrWpn0socbZiSheKpPiMBHil1J2rd7AYE9pxVGjP3KzkSY1pvkSCnsppaJkaAqjb8QqPPgX1drZie2fDJM2WEMuZGuxgh/gXrB/8sf+HKH7PkShVJ3oa42KuhoirZ5EJRfyZB9MIZLy2IE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nokia.com; spf=fail smtp.mailfrom=nokia.com; dkim=pass (2048-bit key) header.d=nokia.com header.i=@nokia.com header.b=sCPrQkUc; arc=fail smtp.client-ip=40.107.247.72 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nokia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nokia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nokia.com header.i=@nokia.com header.b="sCPrQkUc" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Lxkd00Nvj8rlbfG3iTwPvfST6TZbIsvSf7bsD5JQC0Aw23VT9cJi/+NvO3rEiPwtmSdc5mzWKMwgjFl78k6kT76iOYg7lGkgduyL4aqg0C9J1xSQPARa5UcC96xlx0TSQVfAoplFSUZNPR/BwPAxzguuAbYLkRn+PgHVjipubB69mpMOzpi51liOnHIeeS7ne6hUUQ0W4095efFzq9hazGxucizQKlYkk8dFQxBvPz2aSePFvVkNKvRIIigR+HLCER/1C9DocWOAEJg7i1QhdGgHVS0IotkTDWZqNq+dGj8RlgT5omJWiHpKsuzwlxlCaD9R3kwbHYb/wUrBaHC9wg== 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=h9KaK2j/jizZifQ71DI0SgeL8R/zpeKvPtev5DfBiO4=; b=aWsbr6LUfF8nNNk3cu7kkRM0PMtdT9H4fGwIWDPemvV0kHViolrX4yZRyYvQmFJ+P03jS9Mer+ExPKx+QZ0Z1zFXp6DmxRex8AwmUAytg4NhYtQ8SKxYFQZ/OCH1JcvHso649YM3/1hL1y4BLuanXptXUQ8aVg9b4HUcVkbpuZtA2tcy2oapUSQkCDjlmRAADzhL8x7Wd4ooN6Vl+5yIScL5AvmbSD5K4hijj7xN1Jp5IzpEveHUfxh3y2BfiersXnJWWrk5KglrRshbnlbt0JYbBpCYMtoAa9DJLNx8KnWHqtIczm05Rh8oJUSiwAVoD/yCXKri7hhj2Ep/y4Kfpg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nokia.com; dmarc=pass action=none header.from=nokia.com; dkim=pass header.d=nokia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=h9KaK2j/jizZifQ71DI0SgeL8R/zpeKvPtev5DfBiO4=; b=sCPrQkUc8KZwabA/ScDI+n0Jh2TZy3DDhAHIoHO5MPNOzgMGy4O/n3JAVRjuzPNeVtT5+Po8jUDwO8Kmv2XdHQUiO2iyykfpeYU2UhREKKwmXvb2JxJ6GLJ3dgYvFeIxqWy7Ni2iEiB8GlK7ZFsnyTmXqZxU2jQBas42d6Shzj++aIpE77v7gDkfv7v5R0jN/E1k2tcS60XAXdnbmiG2uG3aWsGPd47ryjNw50+yBRvVp5tdAKXD+oWDcXMeTgKN4WCSHtGiQRTjf1WGV4WJEsC0x/GSVOyS3301Xct5AWMzHIv1nAhTtG9J6HDI6/BkLLf0DoNwIcj/YYLk2BipTA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nokia.com; Received: from AM0PR0702MB3794.eurprd07.prod.outlook.com (2603:10a6:208:19::23) by DU0PR07MB9140.eurprd07.prod.outlook.com (2603:10a6:10:404::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.30; Wed, 14 May 2025 12:22:34 +0000 Received: from AM0PR0702MB3794.eurprd07.prod.outlook.com ([fe80::aea5:bbb4:c75:9faa]) by AM0PR0702MB3794.eurprd07.prod.outlook.com ([fe80::aea5:bbb4:c75:9faa%2]) with mapi id 15.20.8722.027; Wed, 14 May 2025 12:22:34 +0000 From: Wojciech Siudy To: linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org Cc: andi.shyti@kernel.org, mariusz.madej@nokia.com, Wojciech Siudy Subject: [PATCH v6 1/2] i2c: muxes: pca954x: Use reset controller only Date: Wed, 14 May 2025 14:22:25 +0200 Message-Id: <20250514122226.3267855-2-wojciech.siudy@nokia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250514122226.3267855-1-wojciech.siudy@nokia.com> References: <20250514122226.3267855-1-wojciech.siudy@nokia.com> X-ClientProxiedBy: FR0P281CA0062.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:49::23) To AM0PR0702MB3794.eurprd07.prod.outlook.com (2603:10a6:208:19::23) Precedence: bulk X-Mailing-List: linux-i2c@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR0702MB3794:EE_|DU0PR07MB9140:EE_ X-MS-Office365-Filtering-Correlation-Id: f7400ac1-218b-40c6-5ebf-08dd92e2017d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: bCQubRvfUC9x4ODOrRvFbb4v7O+7FxCiaZAW8J2B0OgF/SV1PG/6hs3nCFN1SYfpLDaK1lBMkAjVVUP6V2q+Gssx0LOBAQFikzuq+08h5P9dEILkIZfburVAiNOujllzSVEAKqTselWNZOIk4HHHS47av5Xtyq4uOED1FjLuwnvwrqpCIxawdjlJ8qSmgMynwF+GNoDj9Dlwqy0NjJsAIVSp2OmgeaMvJw4ALkbfaEv4rO78k878jsjsW/dnOUsZWHtZYJi2PNnAyav/UT2A6HJ3bkPuJ+CNFNMElCx63KyRbgd1jakCE5utm2QqBYdid6CVWg6+0bZ3tNvOJQlW0IjT2pZkB941OYSl61JHYUABUUyo4dxSJ1oWcPQNHMgvZnhaANrO1zmUpig8bivQqyHs08ekLJCNZnof9z/+LD62NvNAJcT2kGu99MrWBcfCQc1b7iIgZQUoNv3FLHcUnlk+yp3HNK9AKUVBRpBngQ50Y0O+V8t2rpk+0P1DyGDlcKW8/KyD4NXE2Pgd71N1hzbGXb9UkFaYk9dRMMJgaZ+cAkeAbOspeVfj/dYNQp6cZ9gnd6YcpYyDemPhd8gQhVTPo+Lh7eB/9B2Ny/V8MgA8iub7+RZQNMkwwKJonj1ZRI85B/F/8B3l86tuIrlg+UsBy3vc7s6JIpRnuKtJSKlxoxHU82B3fG30QJ/KYPKSP6yQJjh0bZyCzv36c2Xeuz4ajycSEphGJOiBrhQwMKnUkJoE2oikAfLmfoBT7ARbi/W/97bCK43QwqqaE2ZY3M0FaB3X1NW5cfN2EGMDbzojZLdmZ6WTiK6nvetEXU2bcmZTogwfgUxQAETl9SPdjLog2D8KE7TUEtbtB9aBFpinr1H8Sgiob+dGLl8fZsCKd1y+XDlqdW55eDNUgn16dW1Tn8S6iudV6754Qy938RT9Bo27mqTizjM2LfPdddO+U85LtXyFOmd9nCpZ0yCBilnerbrp6gBE0HsaqGG1JuGmZ88/wQBhPqRaQAKr0Nx6XZVPSg0dcQqjvWWvXcN+JYlfpKJmIcTy9Cg+W4b9aOFfcR30/JHCiGhqKNifA4XNDexbSy94cMxeGofQPqN96EKP6XnnORdKaDevKoR+jfZWBbsrJtQVxp+HoMYyAnfbOT6VwNndPYSn/bZzyQUX4QB/VBp8qX4jUL76XEPF+yGCFT3mkRgbTvN4sQM+DjjU+XfU89jrbPBflx0Hut4DlQvQezEmvkxVZKaVRaTLSYwtTVfd3GyR9/mpAXKEE4f9DH933sQz0AoPAkebX6wbbPATQid3KUEq9ZqTsArO5e5sa9v/g7cYrtpD/56JIr+6aMCs6HRE5F9G1sL9ngTmzB/HBwKRxHHO69U4nAYDTw8PNvyJ0CI8uewnMyTgwSmY7n2fb9X+TGg1cJgNuKnPkp+d7SfPn9OWqmOnxIYsqGY= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR0702MB3794.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: pUqd+L9C3M7U4HKEIJGA4bbiFvaMskmyizLrB00V6pz9Qh3dkXuhLWlsgq9CKW+SC2KGi7fbyOUAK3PgcBL0SsUlg1wV/xUtdYZ0geQgBZjnp7mUYi/Nzp8XCyVe4FSUGNah1UFYENE3VIS5yrMY7u9IABQQcz7o02vGrUupEU65lFv5zP8bd0YmyEeExUHff80VGWfxZFHSuTY+Er1WzsOEirKH4A5UkvUbynY0WBsWfJfk6/1NIdSRt20BOsbVtWF8oCegXsTIdllcZTyxxm9Ios6PHK1kh6pFJztD+TmmlaiL7nOAJ1kogcvXLnm3NPwGJ6dc+wZvQFB7qSMigXe5msOcLKyzVpxBUG4ICI1RjSFhs+x6z5viiYgISjmye29bK8xewP7fM+Czi7h0Wj2o3f7MSXGSv2uExUl3ASaf8CxYrDgV/YIshsrzjx7fehjsJHPixWVk8kpFULkfvqPjPnQPaRcK1E9F+XDIWB1SUBf26b4P2MVVOi+aCmk3cPMfA3bGs++OifSNgbXSw1sUDfaagBqeQgKMUboWL2asCw6oLrIu/+3WUtWA6JYKuLTCVDcMYVglRRqcfTapuiq5Gnb9bakkOIZfhBqkbNoPS9kB09kP/CpaJbuQ7ZF0r5VtUn5Fw7f0g5dV4V69/Ay67ReTIZPgRm3N8G1LcHUyDjnVdmFqz47p0rIeXe+sBDRWvTo8yZAtFoLG05xj2tiVrIClFPXVvxXbieYPJY98Dzl1eyqSH4DOQost5pG9YCisDaVH35iN+jBimc6m18wHMv6xZ2i2OPOqBg9ZGW4njarybUPrROLkcGSYB6dBKMn4ezjpdZOtm3HeThOs26OtnRKdmDV9sU+NJ7g9lBgmnxBKPxiDsfenfcBdd3xRRs6/0d0JO43mo2ZcS5AigndW2M+6l+ks07cMoCL7+zkrwsNS5n1IwmxziVgqnT6L1QGuHuBC1V0Jdg5VQUIk8+Si6ZS0b0xukflkFKVD/NuVZXFwZ0AI6OP0LIx39pRF5XMSPp4ajZrzjEWYJheszbyooWUXvzRkTkjfsmJ1Qou58DExD/2l+JiTdxMBCHSE2f1HkduP2byKfkJMwVp9K2WamIeYAaFBkdTdULtbHAnuf6yP8auLvioNEU0nB1Vw44Hd5kBSwYlPyDoaxI4stk1SGorbUt/UIMTMck0CpnaW8xpg7beBddNDATICu1eVg6b3zgr236FoFUtKH2RGxsKQlHgIuhUVYFrd5WTrFaBbZNfx56mpyDz4Nu89HYYnmAah1nlJEubYUuDTsmTapbbg6cG3UJpipjAE2V7g+Uu9MDkpYJ4cJdNfmwWjbgyuTphZN9Ji1DoiQBP4x/utKtMnh5ViAswZZXL5jNTG2ACWMA/QDGnQW8Z5rnHuH/BhzmNt8KUm3Bx4UBBegwbJzMH3EhJDb/uPg/tQhxn3BjTUSpXTQny1zgWuspwmZi5b/VcSJNYRqfVNzicTQp8+xNl2Avg3Rnd3JmKwXE0Xws5jmb5kf3NLKRrsVOPAtjDuI13IodP2buViNslC8mhOVqRpBzIGHNvrRrNzZLNDu7h39tu0A0AxHovFSkRLgzwgZCcYsfKVcIiuIkqqtzGHXw== X-OriginatorOrg: nokia.com X-MS-Exchange-CrossTenant-Network-Message-Id: f7400ac1-218b-40c6-5ebf-08dd92e2017d X-MS-Exchange-CrossTenant-AuthSource: AM0PR0702MB3794.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2025 12:22:34.2776 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 5d471751-9675-428d-917b-70f44f9630b0 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: DgMx8ufz6AMXMPpl0IqNxlBPu+gcBdDDZ3XIvNxfVQz15w/3QmIje6oLTPIHVg5VuxMSztusCAlA9/XutWnPWqvb7mXgBBvFaYIyhNqIumY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR07MB9140 Fallback to legacy reset-gpios is no more needed, because the framework can use reset-gpios properity now as well. Signed-off-by: Wojciech Siudy --- drivers/i2c/muxes/i2c-mux-pca954x.c | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/drivers/i2c/muxes/i2c-mux-pca954x.c b/drivers/i2c/muxes/i2c-mux-pca954x.c index db95113a5b49..e09230df7059 100644 --- a/drivers/i2c/muxes/i2c-mux-pca954x.c +++ b/drivers/i2c/muxes/i2c-mux-pca954x.c @@ -118,7 +118,6 @@ struct pca954x { raw_spinlock_t lock; struct regulator *supply; - struct gpio_desc *reset_gpio; struct reset_control *reset_cont; }; @@ -528,17 +527,6 @@ static int pca954x_get_reset(struct device *dev, struct pca954x *data) if (IS_ERR(data->reset_cont)) return dev_err_probe(dev, PTR_ERR(data->reset_cont), "Failed to get reset\n"); - else if (data->reset_cont) - return 0; - - /* - * fallback to legacy reset-gpios - */ - data->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH); - if (IS_ERR(data->reset_gpio)) { - return dev_err_probe(dev, PTR_ERR(data->reset_gpio), - "Failed to get reset gpio"); - } return 0; } @@ -547,8 +535,6 @@ static void pca954x_reset_deassert(struct pca954x *data) { if (data->reset_cont) reset_control_deassert(data->reset_cont); - else - gpiod_set_value_cansleep(data->reset_gpio, 0); } /* @@ -590,7 +576,7 @@ static int pca954x_probe(struct i2c_client *client) if (ret) goto fail_cleanup; - if (data->reset_cont || data->reset_gpio) { + if (data->reset_cont) { udelay(1); pca954x_reset_deassert(data); /* Give the chip some time to recover. */ From patchwork Wed May 14 12:22:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wojciech Siudy X-Patchwork-Id: 890696 Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2072.outbound.protection.outlook.com [40.107.247.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 863EC2777F1; Wed, 14 May 2025 12:22:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.247.72 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747225361; cv=fail; b=lDLod16bUKOqnMin+gSeyD8yGI4s4b7qNnhAuimcSYStaOeel/SHre3bF6RCO45kDC50n9vORYmrk5YGSxkvSAIIb6CzQoG4bg8iuZpfPGNLa78bZeCtE+UgyCslbXjQyxLO8/F2FVc7aK+nGfJoMNNpGgtlON9PGm8TUTluscg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1747225361; c=relaxed/simple; bh=sG2sW6WX9/3KbWjDc05UpFRA1XA6fpgKx9PJVSMNXGc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=iwmMnCzGUi4ZFFhjI97wGucGdeR1U7h9JNqWYC9xGsBm0+UTlF1byodAF4bRj2Hj+B9+go02kiB679MqYHa64vhb++XM+blpweFtF6VRo/Yp3fISSgo64CFy8y2HvLmoSeTKR0XtgMU7My746yrxU6PcpWuolF1R8/T1orgibgo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nokia.com; spf=fail smtp.mailfrom=nokia.com; dkim=pass (2048-bit key) header.d=nokia.com header.i=@nokia.com header.b=sToq+kh9; arc=fail smtp.client-ip=40.107.247.72 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nokia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nokia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nokia.com header.i=@nokia.com header.b="sToq+kh9" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FbYL/yZQy0V1wYs5YMIBl8E72yZpQkXe8nCyMNCXiSzl+BTwaUTUOEnInXZIOwnX9+SKqAy/ikmFMPspejux1b7xgzmeYM+pFZgyYHJaz3/5WICbwRiWoFKZCFq3x80+jHYJSin7FHAZEDSWJnHOH0ROet756hRlCWX9n4vaJMCNSq7wvK2FNQcV/SI1+DDjborhWlmg8R8Rvx/pKW7FnrKiB7EnQiIoYt8JOXnRXqLAR8mHjrAL2uLlcHOLEbOFJqqsuHQarWA5lxFOJsrfpX5rjlkGaycWs4kqM5RCeXjaduOXpwZyB/nvb6FEBGa3Rcvbx/C0JXe0hInP888jlQ== 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=joRidLTBNEOx+GbF8FrTqpbiktn8EnChcYXmSxQ0hzI=; b=yQ7Xb9dS59D/xFQ9K4eg/fyBblYRi9Y38wSFpK34vIHzVDm0LwYlxx4kwvO1aQGAwzgqeUZ35wAWeDg10RUMICJFTaIkVBwBKFKhk+KcXbaY4Ykss8NyYwOs+6dpixBf95/D0O6iKHTYyclVyrZvkPdsRzfyR0xQFgmNDy4Uakc3ypHJtu3L3m3ymJ1M5OlRmCqUCceOzBHgKeLzt7GcQ5zHGtVXp4FahvKMh09KkVyp3OlG4KYqd7KMf7+R+cVt57ASdj8k/d0V4wDAD3KrEkAXi/4jM8lc29h8Wthp6Rb5/ndKA4bZSZafT0GdRG1cCnwmK9gGKt9D6dNtVm/skQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nokia.com; dmarc=pass action=none header.from=nokia.com; dkim=pass header.d=nokia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=joRidLTBNEOx+GbF8FrTqpbiktn8EnChcYXmSxQ0hzI=; b=sToq+kh9xg0IieeQTENeS4fU9BBoKz/BHmoELw9pAc0jrAjBYm0wS2ejXHHwwnOlevcjZLdmFWGl05N8JACDeRYyE693IldCprQW4GaEK+aCftZ0chBTHGMIX31lIZimUL//DSF9R4LR1t5+gws6wOOYNTJZsivzjMeegIQvY8jtMN9pJe6GMcqfDn+s2wIX6Nmcl6kTF2MKdcImzuU1ncvgPATelgctcZrBMAeoKULR79WiGL9qPq7TBDw5PTqFMgPmr/sq+DVdp43lZwuaSkN7HpeD2axLGbeRoW274DWhhrQbFnRQJvn5gRi886jI4d5YZHrdcIMmpsQ5iD2//Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nokia.com; Received: from AM0PR0702MB3794.eurprd07.prod.outlook.com (2603:10a6:208:19::23) by DU0PR07MB9140.eurprd07.prod.outlook.com (2603:10a6:10:404::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8722.30; Wed, 14 May 2025 12:22:36 +0000 Received: from AM0PR0702MB3794.eurprd07.prod.outlook.com ([fe80::aea5:bbb4:c75:9faa]) by AM0PR0702MB3794.eurprd07.prod.outlook.com ([fe80::aea5:bbb4:c75:9faa%2]) with mapi id 15.20.8722.027; Wed, 14 May 2025 12:22:36 +0000 From: Wojciech Siudy To: linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org Cc: andi.shyti@kernel.org, mariusz.madej@nokia.com, Wojciech Siudy Subject: [PATCH v6 2/2] i2c: muxes: pca954x: Reset if (de)select fails Date: Wed, 14 May 2025 14:22:26 +0200 Message-Id: <20250514122226.3267855-3-wojciech.siudy@nokia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250514122226.3267855-1-wojciech.siudy@nokia.com> References: <20250514122226.3267855-1-wojciech.siudy@nokia.com> X-ClientProxiedBy: FR3P281CA0098.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a1::14) To AM0PR0702MB3794.eurprd07.prod.outlook.com (2603:10a6:208:19::23) Precedence: bulk X-Mailing-List: linux-i2c@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR0702MB3794:EE_|DU0PR07MB9140:EE_ X-MS-Office365-Filtering-Correlation-Id: e1d36c05-4584-44d7-4d23-08dd92e202eb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: UE4tv1JWsdFdD+YwF7LAnmQOEbqSsZCEhdW0DMbvCQ3PoYbyHM3W0yipAL7DCqBgNEBdzEm3RNZdyHUkZG/qyXKGf1BTRrhjKyqmgGnoUzJFUidx32pEt4p6SGyf7s4PX3uINqQNa+LXNPz1ijnNuOhlOjIw4drgpuTXbEb/AL7sFBjNn4y1X86QE/AhYF1BkmcWlbN5bYf5jn+iVI3DTmeVMiaB4knBSM8IZIelYxEuLyoj+gQsXhJ5U3OHkVvexbUW3BesU24YTaVu5o1Vx2HQmH5CA/hVZDgtkKCRaLd4bAuGAXlKls3gJCBeZSMVq0XYILzaBeGMTY6qGN5ki7Z2eeWmgghfyBs40B00841JXCaT5e0zx94c+wAI45C4O6YaIeMvB0hEyvJNWjy+Sn8Ny841fyNaMOUUfEYwdWJhwG5MGtSyQvYjrtZHqUpNHH45Byaxe+RYon1gNhpHVc/gpxRmmcAXfWhRF0I3BFPJeY2apo9bWnVsawH35YAP20449c4ebHyhcOHdki14Ur7gCy/8TF9n0UXKrBwZa7v+Aym6Gk6Jnp87oD+CC0IS8ZtJH1aANPdzbh4/APNSd48fkOweMkdBXtLDq/jZofwXI+Osmzu8OdmEVNWc7/TH7Blh/gchkVMgGZgBELI+q5uopvAPBIXDn0UWXEfmnM+aXet5ghB92m/lztCtKvPhvmY7yz77fUIky9Sn5PD1y6rUdYCV875OFjL6vlwDVAdb91ao+yA4RHPvLpXu7PzNa9NqmUdKQmOpqRdMWqExnd8LPAMchBKgVBqmvqoXIJzzQNLO6rGR8KeVvwCV8DgrtfmQmvOX2wrFMfTQHHXm/hOlS7tHzxVPJUl2fnKQ3OMbwD//kTlV0SWQ+qo1PCRWrtqPtoEXwkqc46TSLsEt5AB+zoVrOjDFiL6H7WFY+WFN2qjwegmm5tQNftDnmjD4SkNdTczG5EGdTL98HMAigTpR7oPJegG0tF0D1ADPeb3DqFuav9hG+SYGIH+Y4ts6XlwIpWJkqJoJXgSh5/PMRQVCy923BKfSCLQQSUUuZ45B0z2mpJi1Je/BdlKYDUwl+6uPpkL8tedEswKfzTkBp/1c9P7ggEqE1Rc9ADabHPtV997/O0mPd27QIA9OUpTm/pOf4otsPS9DbmVKXcDEewRZovOFysGFKA5ntLGnsqO+bqdHke8YWffchFnYeiyQcxh9tgXOshLTB7qXvD2t6VaVpnYZJYwrHGweGQfuguZ0M//orkZBV1l2hakDnRfjiwtfi12hFtld5VgMUdyUHPXvpoiQKFNmq9G8aKdhdSrwfNDiuMH5geaDU7nSQSPe8KicZIjme871z4OMy5SHf99Vnu4nMXSMsnDU8CXYJL8Vn3kbHL8MrQIMyWrixaVBrAbu6urUMRktj974N7rxDkiIBTsu0pu/A9MXoCg0m3U= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR0702MB3794.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: O+bBZ1p3mxZIHI+wyPEXb7jV9JlaFtgauBBONxdA01KmofEXRa79Hfi7f2TYdmPNy85ooGGl51Q0RbXvmcS/lnqXCsYPq5sfg6nltgjckkdsCzC4H4MCirdWklFaAGiqNaKd+WXksmmVv0GABr5LYUI5bvtXQ5/eMFcL+K0hLo4mpZd0IOPX5Pt3CTX4++mD0Kewh0rRl3NBXKVm9oU7U5z12ecSaNUkC+IUK3hBTBzwQgTbwFcbgxvgBY0zQYJY34DU0zQFfUky8YOhLxzREgUYVHVY7CQFQ6vy9gFNZ7gQojxZu4J7JuMd+sSUw1IGX0pDAn4KYQrFTOxaaSElHxYTqURXM8CcHGgJkSwYCVRlnTg1qx0IWdxeuw83H62+/AIlG5mMAyyOwmw3m8bG5wOFpFDFsC2oJVumNI/NZDuEkhUCIxgAwsrB8/AxQsfjYYC/yML/2SnbQxMwxB/oCoq81V2hBPCcIgj0leiWe8gz7/z7YHpndyOBBuvZzuBCjXZAQVRV5mCBDn+zBTazdhefVJKgKjVJ1TFNaxBhR4BAGQOzTSrn1iysehCsGOgSAiDDJzdsd48IGN3OYaA+Ju0FvBNOn+z4WAtehXNxW+BT63A6qVEZL2njg8kqtfBM9RIdbPgKWWlFSMtoh9kOQF4Rw2hoYOiZIQ2uRXW1nVCvs+3W+vY632UlX+wWs3NRbGRGYJhqrmkcqEb9829Uj06NLO9Bs65cnaoobeHU0FT6a4PDs7o0mm/Dj5GcwkD+Y0g0og2zQBcl0+0EtTGs+wvmpm00WReuBLDe9J9GWcwkKzFHPxZcLaA3665J0wDIcJ7WOKlJ8zzmWPdd0YtrXwuFesnwhSjbXL7u1IF1uWQHpbA89Terke2WzYtVptVJCLf7RvOqgFJEutFT98cjhbvbEM3TpQjiYP/6yzrhXMAc/5YqvR91LkL046aUNUNB6xuQRYDPUSCvZHgz21V4kMS6YybQ/MrTKxW7em55cJtu1yiNGp4zFp78ubIl8YRfC+JX4lF+due/iEdJGMxuQ334sjejlhG2+XtTVdGbv5OmOS27f13t0kXIaZor9JkNMHSjAbvcSMFvgVMPj5s31IsL9O86ElikhSm4X57NE5yCGlQiOUcz7oc03tJArFmRL6dx478Gpk3dQxRH5FyImH6Mw8Yaw8T5sv2SDgqZEh9ceHtwyoI7rocaxixGM50CfbwgDWH0ZiI1hg51ZUld4kGvP5MbpM8760YJm2wrQ+z0rxCi/qJhHN8X3d3cGPMBVJBpybqU+i5/h3I8zAonj+qLfbh66CJZQBo/G/3wga4IdUnNiDpAhxK4FLEht9uCcg17wwYN8WAGh1Dm6cg5CoOjmIr5g0bBudsJtquMG8BHPLv6vs0L4Vu5Df9VLIQGXLNxqKCp8roVsOjyvv/45uegS9M1fs7QJdoOc5G4oMQhS5druk/nyy9N0nByqONOnrAc5kdydBHHKd2gHxDDcunpcTd+DW4j1s5rn6giK2JQN6qd3Pa1AZslxmDTQ9menvTVes7V44SHb2S1nOO1/L8+BtuD8aFL0TV7QhqhaFagdmFdnYWnYtZWfHP8nZWv1cnaugpFUdUmZSG4l63Dig== X-OriginatorOrg: nokia.com X-MS-Exchange-CrossTenant-Network-Message-Id: e1d36c05-4584-44d7-4d23-08dd92e202eb X-MS-Exchange-CrossTenant-AuthSource: AM0PR0702MB3794.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2025 12:22:36.6881 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 5d471751-9675-428d-917b-70f44f9630b0 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: KkCUtuZB8DYux4z3bG5N/Kb0iA95AdyzOVwtVYTldrGF06eJLtKI/WwU7w8hKNbVt75ojAgE0j9mSjGX4XDnjPtzdw6huRrMHISBTKygwNY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR07MB9140 If the channel selection or deselection times out, it indicates a failure in the mux's I2C subsystem. Without sending a reset pulse, a power-on-reset of the entire device would be required to restore communication. The datasheet specifies a minimum hold time of 4 ns for the reset pulse, but due to the path's capacitance and themux having its own clock, it is recommended to extend this to approximately 1 us. Since reset controller is used, there is no need to take care of other devices sharing the same reset line. Signed-off-by: Wojciech Siudy --- Changelog: v2: * Removed mail header from the commit log * Decreased reset pulse hold time from 10 to 1 ms v3: * Make this functionality enabled by appropriate property in devicetree v4: * Fix missing condition check from devicetree v5: * Declare dependency of a new property v6: * Don't add any new properties, use reset controller only --- --- drivers/i2c/muxes/i2c-mux-pca954x.c | 33 +++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/drivers/i2c/muxes/i2c-mux-pca954x.c b/drivers/i2c/muxes/i2c-mux-pca954x.c index e09230df7059..eb19a3566d35 100644 --- a/drivers/i2c/muxes/i2c-mux-pca954x.c +++ b/drivers/i2c/muxes/i2c-mux-pca954x.c @@ -315,6 +315,26 @@ static u8 pca954x_regval(struct pca954x *data, u8 chan) return 1 << chan; } +static void pca954x_reset_assert(struct pca954x *data) +{ + if (data->reset_cont) + reset_control_assert(data->reset_cont); +} + +static void pca954x_reset_deassert(struct pca954x *data) +{ + if (data->reset_cont) + reset_control_deassert(data->reset_cont); +} + +static void pca954x_reset_mux(struct pca954x *data) +{ + dev_warn(&data->client->dev, "resetting the device\n"); + pca954x_reset_assert(data); + udelay(1); + pca954x_reset_deassert(data); +} + static int pca954x_select_chan(struct i2c_mux_core *muxc, u32 chan) { struct pca954x *data = i2c_mux_priv(muxc); @@ -328,6 +348,8 @@ static int pca954x_select_chan(struct i2c_mux_core *muxc, u32 chan) ret = pca954x_reg_write(muxc->parent, client, regval); data->last_chan = ret < 0 ? 0 : regval; } + if (ret == -ETIMEDOUT && (data->reset_cont)) + pca954x_reset_mux(data); return ret; } @@ -337,6 +359,7 @@ static int pca954x_deselect_mux(struct i2c_mux_core *muxc, u32 chan) struct pca954x *data = i2c_mux_priv(muxc); struct i2c_client *client = data->client; s32 idle_state; + int ret = 0; idle_state = READ_ONCE(data->idle_state); if (idle_state >= 0) @@ -346,8 +369,10 @@ static int pca954x_deselect_mux(struct i2c_mux_core *muxc, u32 chan) if (idle_state == MUX_IDLE_DISCONNECT) { /* Deselect active channel */ data->last_chan = 0; - return pca954x_reg_write(muxc->parent, client, + ret = pca954x_reg_write(muxc->parent, client, data->last_chan); + if (ret == -ETIMEDOUT && (data->reset_cont)) + pca954x_reset_mux(data); } /* otherwise leave as-is */ @@ -531,12 +556,6 @@ static int pca954x_get_reset(struct device *dev, struct pca954x *data) return 0; } -static void pca954x_reset_deassert(struct pca954x *data) -{ - if (data->reset_cont) - reset_control_deassert(data->reset_cont); -} - /* * I2C init/probing/exit functions */