From patchwork Tue Apr 8 01:40:01 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan \(OSS\)" X-Patchwork-Id: 879915 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2065.outbound.protection.outlook.com [40.107.20.65]) (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 ADD8824EAA6; Tue, 8 Apr 2025 01:41:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.20.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744076510; cv=fail; b=QTjWG9nGnQOwiCv+YrryUwtITFH8jIuCIUWaQAHY0yYPjhWYACZP/6ybv5QoaGbMjxXkreWiBmE7Au0aMojsfIs33YRuGPfusYL9Hx5YVE0B3kZp8gD00iV1xIIMmdclznDn2Yk3DuTEzH2eijJsfFAbpAhMPvM34YXXa00PgJo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744076510; c=relaxed/simple; bh=BUxNiApnvye5alDCdMNEPtePh9oueSRE/yqX/sIB8/g=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=DATILpNfNIb9ILVf+GDd21D3fQ7gb93yRbztWEdS00Kfpb9zC0jE8dvQtqgxwCPhLRux9aovl0A4jj2rMIShAAP/4BpHjzzhgR6pmIEOaDse3jxOVjX33RtXmfhd3+j2wb1SYZMM/jEF56ID16pW26vHxGuSTQX2zE/IwrjsY8I= 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=sihSI/9M; arc=fail smtp.client-ip=40.107.20.65 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="sihSI/9M" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kGF8lR7DihfzALewom/ZOrrd4MrEHGvTsJicEFWAuVrcIZFgDfuR9PY2mjKxj2gaksm97gUjQgGxFrg32emFDCwyMNeK7tR+rOnXX358xTqN+KHyyNMoDyjyvAfADtmb/TKNhtW62tJkt7d3ts7HudReJGjqGY7Gqzs/7fmGQDNmbKoB76sAh/+ueSy4D/k2F1hZfjaFtG5seWs2X6pFvQhF/pXejBxAeN6D1LtedKsue33GoingB2EEGFRup3ocCxGSgPEzKZ2BSsiDTOIuRo7xnvz6by21SsJQOZ8+ck2l1XeajiRSCh2o1eV5nI7/IPbhZ+Nh3sunbF0nGpz7oQ== 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=y1BnHj4K/3SKx3qA5nTe/mWmQwkqm6kOAuFVPjzkVQQ=; b=FbyyKqNy/jsj2HslNSmukfhEE8rZ71rSFOJgJGKWIeB84dJjLolY+oDujeyXUQDE2JbQhhf6TmRlu7+LdzX+5K+E+bTuukcghv6/TfIzR3dbTpwNe8rTDGF0+x+wHNg4Md7rfZYzj+naYK8gWYYe7VRW8YaKpKTjeLpcucEWLt1BBGj81AuP4wI7Vc2Iz6oE/Z2FwPeA7TjlXFG1zmOJZkv7rwVF71LokJg8AQFzfkKo7+W4X/MREerzXCdLBWeKx72N3Ng5CE01DzanJmUxJ2sVMyOhVVpb3aJrlhmO1/3th2/9IKriA7eaTHNJyLlNIm+f3c4+TEeckz+5YOadNw== 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=y1BnHj4K/3SKx3qA5nTe/mWmQwkqm6kOAuFVPjzkVQQ=; b=sihSI/9Ml/v3fgV8SXeHG5Tl2c7Ktabx6/5l5S4vmdArCa3H7BNxPivYyrLs1lBftgB0w/zu8QSBykgmOADnbglJxUFePm0YkR9M+ljMfZZFegKgturWl6QN9xh7KfLxJszKJ8azkviXMHc/ej8qWT53XYG9nPmltVcJ5hiJa5Fj281lgUV0vKSclI0dpGZqWJrRzcbYFjW+7UWVIXmasoXw4i7YaLJjNWeh2k+c0lV5XObZkVklcG2PmBouHI+2UmrfJOoCDlx8Hrtz84lKFO/nKMsSKOvZdu7rAtdeZdMO9N4QFjVoLcV+Tcl9FlxXDYHLFIIRlm4HKnI4L6Yxng== 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 GV1PR04MB10199.eurprd04.prod.outlook.com (2603:10a6:150:1a8::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.34; Tue, 8 Apr 2025 01:41:43 +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.033; Tue, 8 Apr 2025 01:41:43 +0000 From: "Peng Fan (OSS)" Date: Tue, 08 Apr 2025 09:40:01 +0800 Subject: [PATCH 5/7] ASoC: codec: cs42l73: Convert to GPIO descriptors Message-Id: <20250408-asoc-gpio-v1-5-c0db9d3fd6e9@nxp.com> References: <20250408-asoc-gpio-v1-0-c0db9d3fd6e9@nxp.com> In-Reply-To: <20250408-asoc-gpio-v1-0-c0db9d3fd6e9@nxp.com> To: Shenghao Ding , Kevin Lu , Baojun Xu , Jaroslav Kysela , Takashi Iwai , Liam Girdwood , Mark Brown , Linus Walleij , Bartosz Golaszewski , Peter Ujfalusi , David Rhodes , Richard Fitzgerald Cc: linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, patches@opensource.cirrus.com, Peng Fan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1744076413; l=6197; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=mCFvuqpvYP6zAiAQN0XFIgyC6gWp32Imiy6lQKfJQ18=; b=BHkDEwJ6y4PE6yxAvNERYtCFbXeJHlvivndbAEi2PKrKauJOspOhdhoyAyUhWE1YqI+QZ8erQ AWsdyXlakERAFpKS+Dkg3LYkOVn4r6Mgu+X+Y5wJTynzUkCvqIqHGCo X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI2PR01CA0048.apcprd01.prod.exchangelabs.com (2603:1096:4:193::17) 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_|GV1PR04MB10199:EE_ X-MS-Office365-Filtering-Correlation-Id: f278bd70-a8e2-42ba-de27-08dd763e8441 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|366016|1800799024|376014|7416014|52116014|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?j9q9VSOKYs9WKAcmoaScosk+HYhT1wS?= =?utf-8?q?fQrhIMIlrV7gVG+9PaaGm6KZa7HAihxvnjsx9ulKUxPkYxbbQYqC6VbZn/CjisvzB?= =?utf-8?q?T3ZOBWGKZznzhRXfZpd+q7tnsh14RDyX7T8XVHTP6e13WPS5hC1wGROrVvFGqm6Sr?= =?utf-8?q?Unrlu8ozhbXsbcBkw1bVwNnHruQR33K7X6/Kvba8FtabA3+OMlmUY+oggO/PsztMK?= =?utf-8?q?EzYAImViwJSD4hMT7pXi/4R2FfvJZS3m2sHydVyzr0TBfM2KRPU+vFpo0Y5mD6uPt?= =?utf-8?q?z7dR4l2NKx2lgTwoA11wQlNkwbYjyKk/9lRd0K8r+Tdfp3mNuIH0+JgCA62F2lyU+?= =?utf-8?q?1TfwS51IxEOJDfy8uqFHQ1GDypEVanF7+v6JEjHtBJIC/nC1E2Awi5h5XoS1/njKH?= =?utf-8?q?QYkk6FHyjsCt63dSMIlT8VqobfIiQoOVpiMFdXmwwASxO4YUPfQZqVSgjcZuHQp+s?= =?utf-8?q?Wt9SmAT8qs3yCsJlo+suzqDEoB0Q2Ncki6oKrTnxyRkDxvSNRsgK0rTwZTU9mri7X?= =?utf-8?q?XX9VemtHm5JDzdwcX49MOcGfcTJBRrVva0iDmLc73V9uSTbCMlPXWSdNmNMhqKrXA?= =?utf-8?q?HV8VDuOBeGTOUv7ruwVr8eLEnOP+qzHx1wzQEoVTIsCg96fp2FxsT3iKTjYQ95csU?= =?utf-8?q?hgAfIen+8H13+79pRWe9H1/+qNUbdl1MA1lavwi39krOgmNNpFCbXnsMM7yKrwNHs?= =?utf-8?q?orZ6ENEvienCHRdf6SNpLg5hMe8ISKVn6jJjAYZyUQx7BeuaWkJA5EBjCKtYSkEsF?= =?utf-8?q?ZablNZS67Xhyu78uAbzucIPfbC1OGB+bI98ywSKwykucmB1xCXI4pq0RE6bsL+m1K?= =?utf-8?q?uByzIQG/EFv3mAtdDfOu7XAlbwyZrJZM5sNvpkUNHR0hZVf7hFBrK+efwUtWAqszS?= =?utf-8?q?JKWCBLRW/eSv9bywnJIYQPs77YFcedzkFCJHw/n/5h3n5URJfxJIdu6avEhuCwQx1?= =?utf-8?q?qH3fmwsUsKyvbQ7HltLHAsyVEcISC7giNpolH7RmVqRFwnHgV6IB+BEvbuBIl0eeQ?= =?utf-8?q?7W+KblPowYEuPfp6LuMHGbyctvYvhlSyCXHv+zxqHoZT1QjoTRGyvZEFEbtYlmJBR?= =?utf-8?q?la157wYCMWXE6sQjq/1tsZxij5EvSpYicYpZIFMXPPBASiAog/kqwCMR9YqZarwhr?= =?utf-8?q?aFXJkpr6U4meACUkIVOEjfoCaP0QHuPM9sOvusayQD4/RExZOC9cg3ILu84nM2aDd?= =?utf-8?q?RY68JGUazVOsm5bcXkPs0Jgy2+Ryegrs2Gdz9hHxEu+VwJaK5H7ag/V3ES6LJ4Dyw?= =?utf-8?q?lYhFp3EhXooMxEzHIwQw6gUS+wvpAwgIsSlMYiqEmcgGVHGBd70/R0iyZPJm+W9uy?= =?utf-8?q?wuQLWtag4mIr19libvZXA01IC7AjeTjMTAZW34B8Jvh3NzUy6UYz76PC8h/IvOJo5?= =?utf-8?q?zZVxwC52hAQzGoUs64EyLl3RFLpJ5+o0w=3D=3D?= 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)(366016)(1800799024)(376014)(7416014)(52116014)(921020)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?K/uOu6ljPQqD/nsuntsVffb24e5N?= =?utf-8?q?oWiwlostYU8EuLRWmrVondwtP/C2jM2HkElqBUvvXMwDL+K7LPwYutwFduC/PeaJL?= =?utf-8?q?kotD3fMz03yHs+GC3qhPN1gsbkgm0TXCxv3SSpgtUYGcaeG98a7FJXD4RC+UkRWRB?= =?utf-8?q?bobZWP7TkhPQBwVfpUdsrPmW2YnDrXpU1vYN3r7zceR9OLRK3Oc1YHVUmDaJu5z6x?= =?utf-8?q?q7v8STglIWibjgsdAV+BZQoE3S9WJI6Mxa5kA5wGsoMyUz93wv9nCaVAVo95WWLQt?= =?utf-8?q?pVNwaMZ8EWdewz0zTE9mA0hkE0zaekZ6P3zV+zgRZewYWVYUSYyLtNUJPXR/Qr9xX?= =?utf-8?q?gf2OFWy/47cBkSRPaD/gYVd5Um0x9AJQbd8YmvabyXS61/zwDWZoa7M0aGgn7n5Kq?= =?utf-8?q?yuutdLCzw1D5c3EnU64tcrtsoNcoNQM4Gw++F9y0wuXav6wV4KiTfSTIO3CX58Y5v?= =?utf-8?q?Ci/naTF6BdCLOuH8PeHX8k5N8Yzz8VNPEd8+IWWLFGO35y/CRbWg25tL7j5MUbTTS?= =?utf-8?q?1Kxr7KWLQkQcR3qY4g64e4XqV2tegQJB0zgVvL4J3VJD0WYXkl9vepusjDEPb0cMn?= =?utf-8?q?/UaV+crEuj4jxOuEP9D5xkwDT25M96E/HKYL55fiYJ8qlu1nPCY52OOlnOACkEyuB?= =?utf-8?q?XR0FeWYPL/Y6ULGpUgsytR9tl+IqgjQ6pcBScqdVeSsoiC/NEU4fGMvArIWv/VqIA?= =?utf-8?q?Lu7XhWmAmMVy9oBKVkaO2noBVI8xUnrQV6W/PsgemMXNjlEWTUsc9p787B6I/+sDy?= =?utf-8?q?lhFIdaOwdK6FLrjLWdhuOCz2GSt1+nnUwvzG6W4XWWYGCzHPmIpznpG4thD08Xr0S?= =?utf-8?q?AkS+9mUEDuTx5GQ/IazlJkgpGHyYf6aZyyQyBkj/9wdowFe3yO/yS+iCwR1uwB+JF?= =?utf-8?q?nc2jveRaTcDUjM8WbPa6OoQHayEPXchH/TqXOjU9GMYArhSgZLIBbHflEr9u/m/Eg?= =?utf-8?q?7ED2u6tQA0CVcoGM3ZIvp6JMX8w4/Ltin19kWNUvMEz7uGT9o2mvPH+wkKENUYatd?= =?utf-8?q?d3hBpCo+KvZJu6WBr1UcOJrFAen1Qbx3z5nDhbnFIp6Rc+e5UbNth5Eii2SSp1tha?= =?utf-8?q?bCGI+4tsTchhbB8TKY7nKQxgk9l4wMCU+VbjWb0NmfMCP0//oGbBCQ46ZXswm8+cj?= =?utf-8?q?bOGHQyOIIKCiqHkttVtHy/o/3/vsf9xpM3c/2QIou54HSYAmn1zgRCYFuOYhcULSr?= =?utf-8?q?r5dQm6yGD24VgnZnIMGhyH2tSm7x0/U4FsdlLTDUNXt/3XPwyvJrtRcvyubQQyB/d?= =?utf-8?q?hiIW1RnJqi//YpNJ2MnLqbceKPGQk/+M/PwOikaUIMbcKuFh5wr8+qlHfdfS7B7bI?= =?utf-8?q?uqq9nGeRteLtnQptecTzvfuQZ4hOY6cO9GyUXgxGK9lPaM+r1Dwxuc0w1iaUEPZMA?= =?utf-8?q?Gbtf4BvI1IhqP6rAPY+VAL9Ra2n8kRqDXKL3LYGSY5T2kGzxnhdQ1s/t+Sqe/c64p?= =?utf-8?q?702D/2CZyPjyrxs1Cm1fJlxxgV8umYI0mUlbsBt0Oy2ZBAE/Gv3jQ+MMLl4bN4XcG?= =?utf-8?q?cIkz9iusVlJz?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: f278bd70-a8e2-42ba-de27-08dd763e8441 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Apr 2025 01:41:43.6328 (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: 5wxBvMplz+H70FpSt9UA47zLTuFnhel1XSj+o6TOBUD9JkN765g3CbRuE2wCaxCvXr1tp6pWzA8bVA2K1bEmDA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB10199 From: Peng Fan of_gpio.h is deprecated, update the driver to use GPIO descriptors. - Use devm_gpiod_get_optional to get GPIO descriptor with default polarity GPIOD_OUT_LOW, set consumer name. - Use gpiod_set_value_cansleep to configure output value. While at here - reorder the included headers. - Move cs42l73_platform_data from sound/cs42l56.h to driver code - Drop sound/cs42l73.h because no user is creating the device using platform data Checking the current driver using legacy GPIO API, the reset value is first output HIGH, then LOW, then HIGH. Checking the datasheet, Hold RESET LOW (active) until all the power supply rails have risen to greater than or equal to the minimum recommended operating voltages. Since the driver has been here for quite long time and no complain on the reset flow, still follow original flow when using GPIOD descriptors. Per datasheet, the DTS polarity should be GPIOD_ACTIVE_LOW. The binding example use value 0(GPIOD_ACTIVE_HIGH) which seems wrong. There is no in-tree DTS has the device, so all should be fine. Signed-off-by: Peng Fan --- include/sound/cs42l73.h | 19 ----------- sound/soc/codecs/cs42l73.c | 81 +++++++++++++++++++++------------------------- 2 files changed, 37 insertions(+), 63 deletions(-) diff --git a/include/sound/cs42l73.h b/include/sound/cs42l73.h deleted file mode 100644 index 5a93393b6124f746bfb7bf5076e4bd1f458019d2..0000000000000000000000000000000000000000 --- a/include/sound/cs42l73.h +++ /dev/null @@ -1,19 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* - * linux/sound/cs42l73.h -- Platform data for CS42L73 - * - * Copyright (c) 2012 Cirrus Logic Inc. - */ - -#ifndef __CS42L73_H -#define __CS42L73_H - -struct cs42l73_platform_data { - /* RST GPIO */ - unsigned int reset_gpio; - unsigned int chgfreq; - int jack_detection; - unsigned int mclk_freq; -}; - -#endif /* __CS42L73_H */ diff --git a/sound/soc/codecs/cs42l73.c b/sound/soc/codecs/cs42l73.c index ddf36001100eef29f74f4d99420511f620f1948d..73a980ed2cefce2eaacdce0b758be433e632019c 100644 --- a/sound/soc/codecs/cs42l73.c +++ b/sound/soc/codecs/cs42l73.c @@ -8,24 +8,23 @@ * Brian Austin, Cirrus Logic Inc, */ +#include +#include +#include +#include +#include #include #include -#include -#include -#include -#include #include -#include #include #include #include +#include #include #include #include #include -#include #include -#include #include "cs42l73.h" #include "cirrus_legacy.h" @@ -33,6 +32,15 @@ struct sp_config { u8 spc, mmcc, spfs; u32 srate; }; + +struct cs42l73_platform_data { + /* RST GPIO */ + struct gpio_desc *reset_gpio; + unsigned int chgfreq; + int jack_detection; + unsigned int mclk_freq; +}; + struct cs42l73_private { struct cs42l73_platform_data pdata; struct sp_config config[3]; @@ -1276,7 +1284,7 @@ static const struct regmap_config cs42l73_regmap = { static int cs42l73_i2c_probe(struct i2c_client *i2c_client) { struct cs42l73_private *cs42l73; - struct cs42l73_platform_data *pdata = dev_get_platdata(&i2c_client->dev); + struct cs42l73_platform_data *pdata; int ret, devid; unsigned int reg; u32 val32; @@ -1292,38 +1300,31 @@ static int cs42l73_i2c_probe(struct i2c_client *i2c_client) return ret; } - if (pdata) { - cs42l73->pdata = *pdata; - } else { - pdata = devm_kzalloc(&i2c_client->dev, sizeof(*pdata), - GFP_KERNEL); - if (!pdata) - return -ENOMEM; - - if (i2c_client->dev.of_node) { - if (of_property_read_u32(i2c_client->dev.of_node, - "chgfreq", &val32) >= 0) - pdata->chgfreq = val32; - } - pdata->reset_gpio = of_get_named_gpio(i2c_client->dev.of_node, - "reset-gpio", 0); - cs42l73->pdata = *pdata; + pdata = devm_kzalloc(&i2c_client->dev, sizeof(*pdata), + GFP_KERNEL); + if (!pdata) + return -ENOMEM; + + if (i2c_client->dev.of_node) { + if (of_property_read_u32(i2c_client->dev.of_node, + "chgfreq", &val32) >= 0) + pdata->chgfreq = val32; } + pdata->reset_gpio = devm_gpiod_get_optional(&i2c_client->dev, "reset", GPIOD_OUT_LOW); + + if (IS_ERR(pdata->reset_gpio)) + return PTR_ERR(pdata->reset_gpio); + + gpiod_set_consumer_name(pdata->reset_gpio, "CS42L73 /RST"); + + cs42l73->pdata = *pdata; + i2c_set_clientdata(i2c_client, cs42l73); if (cs42l73->pdata.reset_gpio) { - ret = devm_gpio_request_one(&i2c_client->dev, - cs42l73->pdata.reset_gpio, - GPIOF_OUT_INIT_HIGH, - "CS42L73 /RST"); - if (ret < 0) { - dev_err(&i2c_client->dev, "Failed to request /RST %d: %d\n", - cs42l73->pdata.reset_gpio, ret); - return ret; - } - gpio_set_value_cansleep(cs42l73->pdata.reset_gpio, 0); - gpio_set_value_cansleep(cs42l73->pdata.reset_gpio, 1); + gpiod_set_value_cansleep(cs42l73->pdata.reset_gpio, 1); + gpiod_set_value_cansleep(cs42l73->pdata.reset_gpio, 0); } /* initialize codec */ @@ -1360,7 +1361,7 @@ static int cs42l73_i2c_probe(struct i2c_client *i2c_client) return 0; err_reset: - gpio_set_value_cansleep(cs42l73->pdata.reset_gpio, 0); + gpiod_set_value_cansleep(cs42l73->pdata.reset_gpio, 1); return ret; } @@ -1371,19 +1372,11 @@ static const struct of_device_id cs42l73_of_match[] = { }; MODULE_DEVICE_TABLE(of, cs42l73_of_match); -static const struct i2c_device_id cs42l73_id[] = { - {"cs42l73"}, - {} -}; - -MODULE_DEVICE_TABLE(i2c, cs42l73_id); - static struct i2c_driver cs42l73_i2c_driver = { .driver = { .name = "cs42l73", .of_match_table = cs42l73_of_match, }, - .id_table = cs42l73_id, .probe = cs42l73_i2c_probe, };