From patchwork Sun Apr 6 01:05:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Peng Fan \(OSS\)" X-Patchwork-Id: 878833 Received: from EUR02-DB5-obe.outbound.protection.outlook.com (mail-db5eur02on2081.outbound.protection.outlook.com [40.107.249.81]) (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 458828488; Sun, 6 Apr 2025 01:06:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.249.81 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743901618; cv=fail; b=Je32EShnCL1FWBv/weuBVNduwf1ufGiUuam2FGbzB3vPmOJu87UgnN/tUhEUjP4oqp2ID2JU7P7O77iJfHs/YtqYLFxoIzu7tYngXaFPD/zM4I0u0R/vsH9v9mJ+k1jtGoIScBBwkClNUVSJTGfkr0HExtoleLVqNSOmVutabFA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743901618; c=relaxed/simple; bh=qjVnW19Xv19U5hZO/8A+nZipFLcMQKK7trbXhrx0d8k=; h=From:To:Cc:Subject:Date:Message-Id:Content-Type:MIME-Version; b=S4Y6E6X0/+H+JPSlsiw+9ShIGWPdU9gG2S4dIvggz39MZMHbxwOSxED8kfGbTqdC4J9AJ1QANVKChMf8YEVSGo0KkGBJmyFYjjToHb/POWorom8AoTcH2yBY6MGPhjJThB830OBAmtoQjuAcmejUf05JNA29El4xy0wwj3oXIDw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=vh62ynkM; arc=fail smtp.client-ip=40.107.249.81 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="vh62ynkM" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wtTsfTV+nQtzeSCsbok0KxNZMu3jMxVrzl7otjKoRlO7GAQlKYifiUbbB6rGDkLJT9ClNPr8G9+teoJ36C/CwqKLo3RgxiyjKQCY5TPkSoe3iVuYGX0sHcW8ZLiheDwrMCjWNJksIUJ8+vSj52TUnMgPrBhhDzByHHoWpdLeZt4cwsNlkuh1NlvNrOFJleMT18Z7TarQKZZS8fQOWCwiHPSN6x1SLIOJ8iBAWq5HR3H44SIMJeF0LPm8CLz3djw9XdYo8uj06kGO3hBkhXU8hDgfPTdvDywtguJxH/PJRJAl2Nd+UZK0Yu0DFJapE8bw+LufA3zZd7K9KXj+Z8fYeA== 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=KSva5J88JBaDEQXsHcReZoxm0FS+XsAMvEJHmYYJI9o=; b=BsWF53kJixL2Rl0UZwjZXi7Ad3xT8YPgn3xlIEFzLj5Vbj1ByxupVNa4XunYNoZzHxxtHflDYE0/GLGQ4kmnKKA+I83hciyxsFGLmb9dmQNkWvrNw82yBOrhX4lXswI+Dj0nyvRMWTeDVR0LkfLGASOgm/jzGSYqmb7eJHiODLkepIGjoYF2vc5cuFyEC5yUUaq6lmxvUtY55TsBphn68kyuGQYUzdgrtQHAGpnk8uiMY+kJRRj53uctpluNYqRKITP/uRdCUpMfMF7fP5s5sZoqRagX7euK83qE+JQanZFbDtTUYonVhgUfviRPejUuub4CFvTAQowYKW4ew910Ng== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KSva5J88JBaDEQXsHcReZoxm0FS+XsAMvEJHmYYJI9o=; b=vh62ynkMmTq9cUk7vXL4Znlddf7SLNanFMflMv9WQaOgDF31i4QMAIauXSf1V+85y0zf6kbnlp0FEoFHB63jgH/I2ZJGsxQ5V9jBEPbT4YPfw0KPGyEfPUhUmULQC5smUhQMRZ7aLp0CHp03PX9fz9Z4M6QAXbPHMvePH5NgeVay/uBdLuRVpi9kpB6doevUnh2qa2YJukTj3b3011OnjlkiV3kUKFn81viKZ4UKPn4SNiGnZ+vHb3bmAlWnBZyez91ZboPvX65CiY83ie8pu7EgjikHDvE9NOkSnb/Cp3pBdn6ZRGrsHnYD45vAD7raYfTobp7PMtsL9uaPUlk+dg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) by GV1PR04MB10276.eurprd04.prod.outlook.com (2603:10a6:150:1af::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.47; Sun, 6 Apr 2025 01:06:51 +0000 Received: from PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630]) by PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630%6]) with mapi id 15.20.8606.027; Sun, 6 Apr 2025 01:06:51 +0000 From: "Peng Fan (OSS)" To: Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Linus Walleij , Bartosz Golaszewski , Peng Fan , linux-sound@vger.kernel.org (open list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM...), linux-kernel@vger.kernel.org (open list), linux-gpio@vger.kernel.org (open list:GPIO SUBSYSTEM:Keyword:(devm_)?gpio_(request|free|direction|get|set)) Cc: andriy.shevchenko@intel.com Subject: [PATCH V2] ASoC: codec: ak5386: Convert to GPIO descriptors Date: Sun, 6 Apr 2025 09:05:23 +0800 Message-Id: <20250406010532.1212894-1-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.37.1 X-ClientProxiedBy: SG2PR02CA0048.apcprd02.prod.outlook.com (2603:1096:3:18::36) To PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) Precedence: bulk X-Mailing-List: linux-gpio@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8459:EE_|GV1PR04MB10276:EE_ X-MS-Office365-Filtering-Correlation-Id: 1a72729f-64e0-4e08-342c-08dd74a74f0b X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|1800799024|52116014|7416014|366016|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?YYJ2AsFGBBZJtunRE3qx+Amuad/0c0p?= =?utf-8?q?qyUAek31+Xrdey3AO4E2drwnpDEeFmeg//b5fTM0kq7DegbO2XzaRLRqCfWpNPRiB?= =?utf-8?q?Xc/irdMb4dd0yE7dQMu4165p8yPJgt/G7sJ1FGJlCCkPfzOFgIRtd4Uxk6C3bB1T2?= =?utf-8?q?YZ4B5B79H918TFqxUkTd28GYa0BTpVA1xNOyEHWHsBAL2093w6SLtCmOSUqRHp4bw?= =?utf-8?q?kgYHndtr8o/6UBGilNKkPi6RjWForBzC9xHlJucrus6BvzMuX4c+N/eE2WzZcIzyx?= =?utf-8?q?nCiwg+r39iNZCNMuEcsBOJxWeOET546RZRj80XBNlM4ETn4IZO89CRDNZUlpyVhmx?= =?utf-8?q?FOoHICSwT2PHgvvLDX00PYmXeMaA2XPdaD4EPB1PohNaFz3WylpOstbMmjkI/379q?= =?utf-8?q?RQ+swTOfA3xYltVV5JWB0WFKbhwebqOXmIlOAXQlq2ISR5ZQnuThzGanQ3kUv5ia0?= =?utf-8?q?6nUFkacOEexYnUeoCVvv9M3mBAqxS/c4rWybTDEB2YgFsBc0JzvMvs8Aee/00BpKW?= =?utf-8?q?0vFIi6Mpt352DHjY6a0l+kx44UKWwsmjeG+M6wzfh9O44CIgyTl9iLACylzyoi4NJ?= =?utf-8?q?O+hMIPadmKJdouAyIMOX4awzOHl6sgylq0z/13Dq2n2ZCmpSDFREIIDG3nP7OgjLs?= =?utf-8?q?VVMlK+Y0CzkXKvL6FsKyK8F0GsMf8VOdZ68gq1U6ITNlZOkvtGuLqBIEFZM7SfcF7?= =?utf-8?q?WyR59cMcdIszmEKUcmgbDRtoWPvbvXJOqDkclE0aINLFjjYxvUBNbvPqTZihIQpac?= =?utf-8?q?7qn4zJAZ6lBh0itOGumQBA0ykNtm+ALqndX/NL0+IEoQbV5A1LcLiqVh8okVQbg+m?= =?utf-8?q?kHSVURZSYUzf9VKvpLFyAivQyew+16KmomSjEoghLyaNMOmAwT65FCgKWdWz81LcU?= =?utf-8?q?yDl950QxMuSR85MwpPf+kLkMks4+OjBtuj0zgS2Bvk07ulgYuqUp1pqrRTfHirf25?= =?utf-8?q?PYDLCjmq0Oy5euNizJOZ/0yvG/4oBENG36+LgmSdvZsjnrg80gHtFxm6h6pPd+GRv?= =?utf-8?q?GVK7aToE3UONEre7eWQJzDsri0f0natfrzfR2HZgww9/xyuutAkk492XPS4zund5b?= =?utf-8?q?tTPa7WDyz9eqeT8yZXai2aIceSptNtxxX1FMzJhLcU+ZxZL0jd1HsYKSe9dTsFCSN?= =?utf-8?q?Fux4v4Yt68GUo8pxgN0XCKb0pu75zn3FNeseiDVDrFgimHEeuj1it3HP8e9HLNELo?= =?utf-8?q?sHMZ+ORz+/wFB4pOR9PJXgNuIbriXo/U3k6zLjy+aYpGvexBdMzLPMUpGEzKWxq/g?= =?utf-8?q?YrV+OforgWA6cX0djxKVIr5IyhzKjONHjm4ajoFoGYoxP2/oi+GdCe0H+kje48xlA?= =?utf-8?q?bcld7F2T4SYziHohAZy+2qOHRAUmV9Q6MWhkE59NXlkjhK5O0MjZdEHCn1R+mp5fo?= =?utf-8?q?8EKTYFHG/sE?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAXPR04MB8459.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(52116014)(7416014)(366016)(921020)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?lJtd77yzooNKTjWX3zR7SSEhoSNr?= =?utf-8?q?zx22DOETdfzJdvqbitMwCCgkBJL36qexq9IDj2tgPQZ8fcycpmbFIMqjlLu8AYpYL?= =?utf-8?q?TbXx+uzs2LfcOW9DGXtZ9bCaNllcyAyfwQo1xZ9F6iI/5494aqELYqHAXJVZnMknx?= =?utf-8?q?GaplvGPWcSkWIN0uttvhtku1XVvhu3hrNeBdFVaGwZoN4BsanrK0ilhI6TiA1t6Ca?= =?utf-8?q?XCb3qOWAZp60cc5ylg7HX4ULBoSry51NhoLJQVZH003PE5Q2Ft3Rzc1k4Iteih5XW?= =?utf-8?q?xnl5SwZuaAePpCTfoeqmTR3ZbsTgaB28wp/C1cJ9AkXvGP4XStCWu6UbWH9ICu231?= =?utf-8?q?0uN8APfz+ZTwRY2+KAYMC6946ztXCTRKts5Bbbni+/hpedHdGrZxkseqYFUOHCn1/?= =?utf-8?q?9u/LtVGitlxmJZHLuIJuvUl8BtKLqMTG08rHRIO0m8H+LOr6ldqgTOsoDMkfkPWNj?= =?utf-8?q?i53ZC8u7hJ6/luHVtR4OWTF83KoLkgCz1n3Ze+cetfIPQt4ZIssyXQo6EbQcG+Mfo?= =?utf-8?q?zMg2fYI+lmHaWxB58XuPzEPT/iicfFuBHyJ2w+dVZQsmnQnHw2horeKGPxuaItn83?= =?utf-8?q?kW5WgjhOw0FZ4YSXVmdnPjYDZRLD8GSi1G9+CIjm2Pagp8+U/Ugz8yyTvvK/Zx+mY?= =?utf-8?q?NcS3i67PQ7E91JEHiDBOP+n95vngvFzkxNRulXVz6VLmNt/aK/Wn4WQzTpxJ+lQBt?= =?utf-8?q?98WjVD/FlBN8SW51/ISoFbw6drcEg7ZNtf8Yi2hPyLTO5hyZy4A1o1yuTGkB47Xc9?= =?utf-8?q?SG8M2g5QAtfGTHYWpfleVPX1XZpRrCsaM2JpXNX58W1s31LgdM5uDmM/0uJAMNEpV?= =?utf-8?q?UvYKU97Re8FT7Bwgy/HojAOG5t6hVtXOTVxL3eU3dumhuVjerU3dSdqxxtqiWqh4E?= =?utf-8?q?6QqFu3ZsKypq3NQYK5zPhwiCqi7Xd8NY31PlmPiV05YCQhIgF2uUV/589bP05EnHl?= =?utf-8?q?Ruc+yeowsU8Cjqr4A+BVJjBE0PoVX3yaRP0CRRF3dcaALTfMiFJ8BW2MSD1k/uiyu?= =?utf-8?q?eRYFr5X2EzUtk7mU3RLvCuJMPIo4zoN8vnauT/+B0Bp2aWy12+udDkZY9bV3idKx8?= =?utf-8?q?xp4AHYTS6eKNX114x+IlQMm1FnAb/2U70q+2GciuXRVlhqH7vaFbwjy6eiWzESiJ5?= =?utf-8?q?2ckWKqR/o2vENo45dEo6wBgT0Bq24qqK4jnXLJLCaYUOXI9IqgCsia66Oi4ZnwHr1?= =?utf-8?q?AAG/GyfhOtJ8m1/89CWUq63/SLMuiu9LpKFf25AahBVwqtWrI1/Ay1tp1RcJW2ylW?= =?utf-8?q?HtTa/0IkCXTdSBdqa0VviVSwuVEg0UPqVJi+Ht6GAVpfAwXU9ogGxKtJD57m8ucCw?= =?utf-8?q?/8ypdOVg5kbv/hgtNf4mjG3/MzgnIR3iNoeAHkc/mMy+KjRv/+ii9ENsMBow6hWgp?= =?utf-8?q?XfA8c5Nqsyg3aAeENaksRJQUwpPZKIlXyDwJGM0tMfudlDNHAKnIlNVlxI/pkZB3D?= =?utf-8?q?zCGgHtxnTCovzx2e1bxu+attxUzOGEM1BqqQ24mTdUzABSmOZx8YSmI2iWZzjVxqL?= =?utf-8?q?zdIIXXiktGpy?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1a72729f-64e0-4e08-342c-08dd74a74f0b X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Apr 2025 01:06:51.4597 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 30Ve0kjvlrYafpTeL5RgUjS8UP3Vk7qs+6VxPlLGHYZeYRhYzR9vJrJDVTIihoV0a1sinjJUdJ3IrnQdkxuTPA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB10276 From: Peng Fan of_gpio.h is deprecated, update the driver to use GPIO descriptors. - Use devm_gpiod_get_optional to get GPIO descriptor. - Use gpiod_set_value to configure output value. With legacy of_gpio API, the driver set GPIO value 1 to power up AK5386, and set value 0 to power down. Per datasheet for PDN(reset_gpio in the driver): Power Down & Reset Mode Pin “H”: Power up, “L”: Power down & Reset The AK5386 must be reset once upon power-up. There is no in-tree DTS using this codec, and the bindings does not specify polarity. Per driver and datasheet, the GPIO polarity should be active-high which is to power up the codec. So using GPIOD_OUT_LOW when get the GPIO descriptor matches GPIOF_OUT_INIT_LOW when using of_gpio API. Signed-off-by: Peng Fan --- V2: Typo fixes in commit log Drop uneeded gpio check before gpiod_set_value Include more headers sound/soc/codecs/ak5386.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/sound/soc/codecs/ak5386.c b/sound/soc/codecs/ak5386.c index 21a44476f48d..6525d50b7ab2 100644 --- a/sound/soc/codecs/ak5386.c +++ b/sound/soc/codecs/ak5386.c @@ -6,11 +6,13 @@ * (c) 2013 Daniel Mack */ +#include +#include +#include +#include #include -#include -#include -#include #include +#include #include #include #include @@ -20,7 +22,7 @@ static const char * const supply_names[] = { }; struct ak5386_priv { - int reset_gpio; + struct gpio_desc *reset_gpio; struct regulator_bulk_data supplies[ARRAY_SIZE(supply_names)]; }; @@ -110,8 +112,7 @@ static int ak5386_hw_params(struct snd_pcm_substream *substream, * the AK5386 in power-down mode (PDN pin = “L”). */ - if (gpio_is_valid(priv->reset_gpio)) - gpio_set_value(priv->reset_gpio, 1); + gpiod_set_value(priv->reset_gpio, 1); return 0; } @@ -122,8 +123,7 @@ static int ak5386_hw_free(struct snd_pcm_substream *substream, struct snd_soc_component *component = dai->component; struct ak5386_priv *priv = snd_soc_component_get_drvdata(component); - if (gpio_is_valid(priv->reset_gpio)) - gpio_set_value(priv->reset_gpio, 0); + gpiod_set_value(priv->reset_gpio, 0); return 0; } @@ -177,14 +177,12 @@ static int ak5386_probe(struct platform_device *pdev) if (ret < 0) return ret; - priv->reset_gpio = of_get_named_gpio(dev->of_node, - "reset-gpio", 0); + priv->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW); + if (IS_ERR(priv->reset_gpio)) + return dev_err_probe(dev, PTR_ERR(priv->reset_gpio), + "Failed to get AK5386 reset GPIO\n"); - if (gpio_is_valid(priv->reset_gpio)) - if (devm_gpio_request_one(dev, priv->reset_gpio, - GPIOF_OUT_INIT_LOW, - "AK5386 Reset")) - priv->reset_gpio = -EINVAL; + gpiod_set_consumer_name(priv->reset_gpio, "AK5386 Reset"); return devm_snd_soc_register_component(dev, &soc_component_ak5386, &ak5386_dai, 1);