From patchwork Tue Apr 8 01:40:03 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: 879913 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2048.outbound.protection.outlook.com [40.107.21.48]) (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 1CC1025F966; Tue, 8 Apr 2025 01:41:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.21.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744076520; cv=fail; b=WnExz/7hftfI28W4/4DBGqgC+VBExvnnxlI/cILTzwWRcx87ijExt1B4BDVxIwaw9YpHv3oQeCoT70byeAIncZI9DTp+xpyXJ6pM+F3rnFe9ie602KPBTMEVjyJtKJdWQOHZTCEkcR1NxJK12vbwNW3ysOZ3kjjRyC09jrik8gw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744076520; c=relaxed/simple; bh=5wzAfeB6rCYA6X0MA9cADWT513RygvXrFZzomPaLTTo=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=B4LzZtZglrzmmWDrm7fyCY1PNQw0mI4/IEW2xwR8n3Cue4yWtG2CHF+HpzMtShc6sz5JWQhin9OtbwnSb3dadYkNugk84mI1DgN7fotddfgnJfnXzBFISHq1qb+ZpBIqBF26r19kJjkaQrNMMItHT7fKRGUJSwZiT3ZBffJT2wI= 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=R7Acujo4; arc=fail smtp.client-ip=40.107.21.48 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="R7Acujo4" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZPIMY9dadJRKEcm5XK1T/WZSEN2d6DLUNMYZ2t0ocy7vw2yJruZiQshK8FiqZxBHIXWG1FA367IZ6Ec64s7ftB38yEK9sPphUZuDSTsN/3MASG/UxAVELjUWhWHDlU9aNBBQEwccXz9t5iYkOpm7ylYUL+KxSaihLFd1JjeB+IED7zfIWpRcf7lIJ4sjvVpK4hSNtk5GzggZQWnYRbAgyq0ArFiMYOauaeb86xgES6YFit0MKPa3d/RFlfVr1wuNmKBk1rX6LhQRTcyrOBvnoXr3SlpSwLxxVLXbr10TaNhOiK5gqHLxxbS60UUfbR0Nox9maLLi+q+qSYf7Yw5Q3w== 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=uwJ7df0Rc/Kz+t8LlOfpZzI0CjHNaggCOfS+gLsROLk=; b=Je6lSsAI+yRuWVFhPTozFa/Sibb0LAOgX6wywqqLaCiH3t/0CRQu+bQJgb0i1X+tphQP3JxI4HNFZFmUByclFcBweMdY/MrHgDQ5i6D5a0GIa3zUOYSpnKXmGisa648xwWizx1lzkufjTZKKZRsQLfay684VBNd0/J0/p6h/XqJp+UoZQD3IjSuhwZl32XS213JpSHp700A89BPiliW77ZBmLhIu224n6v5a9kKs3SrUqlwCd+7Ns72dvJ/IgUIOhxfMwxzLrxoqZMM0j5SXEBKOr3sSC2hQSx2ZHqhfi7JCgcEG4Q/cIpXQoa9SFC+ywuKQa8kMLkLB0uPtDIxU2g== 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=uwJ7df0Rc/Kz+t8LlOfpZzI0CjHNaggCOfS+gLsROLk=; b=R7Acujo4yk29YvS9p3+k/zvol2dkRKhHNyM8scn0417cASVZa8IiI2Ro2SDIcRlsjNXlhSkUc3+8Mit5qn2rhW8Y99l+JHlg0JVyfGbpObxQAOLiCQAQo3cKc8y3jM+kVRlp6WJtwtjM83IZsJLmI5a38cW16VnSn0ftNaTZWhnvU/JvhiwAqhVaKKgoxnf/9t8HCAZoxNHDdq6y4B31Wj72bmcCx3kfag3htw/nngi/nutaLJvWRL6q4aG3xP8MyKGLGMusUHgwxidmbZLKzkZU03E4+tAMqZS3FLP8vDB731RonAvK1bApvDIIYcZs7lAAvihc8Ir2PE0y7zjSOA== 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:53 +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:53 +0000 From: "Peng Fan (OSS)" Date: Tue, 08 Apr 2025 09:40:03 +0800 Subject: [PATCH 7/7] ASoC: codec: tpa6130a2: Convert to GPIO descriptors Message-Id: <20250408-asoc-gpio-v1-7-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 , Lucas Stach X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1744076413; l=6094; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=hz/nYShMk6rXfDuNSujlP+m7FWFh+wdaJRocKEMc47M=; b=OJhF61GU/rV2bym8lTjDr4//wFffmSA72oZvO4Irz63H3qeYTtjUWO3KZY75gLIEdW0ceU3Rs fmmqBIZDlEdBgFU4WLlATe4xnSS7iYtYrK4/Lp4ttHuzTLgrKXUkKr/ 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: f3c33e0f-b154-4831-20fb-08dd763e8a28 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?2q/6iuYR8zd3wyaGBSJgQlevd1p4GxG?= =?utf-8?q?N2OuXfzOrLvxyvP5vVN3lAJAm/6MD/FQ705Zz0sbz003CvkCwvh+myVaphCIXb+Iu?= =?utf-8?q?kgSAJ4jndj3X5NPa3WPIQeMm/kOvmvG1nh9BOCpb39lPngFeuTic/sAP43nklf/nY?= =?utf-8?q?9lfSVW+ICrvLQQM4+C5m2GxkjlbrxrEiLazbakXKyAgRlSDqad2QbMVvXtsTf4wxF?= =?utf-8?q?pWPXvUcK8zIvlCHe2F74TdSqqcx9Ea9kE87P+KBW6etU3T8fnrqBfPWXnWhclO+M3?= =?utf-8?q?/PbdYMrZE2w+B8k/F1jwonJJV0rLsY+Ap8TV3LIofbCCiLYfp1I0lIZEsEkcz1xq8?= =?utf-8?q?g9+mhASyUTkRztd8K5dBTbEH6Fh8VKXQCuINAA5vFCsyEFMFSKZ8kvkmZNsVe7jA7?= =?utf-8?q?jlAMGCWsO5YO0cTNdl8GOyOGYpkIt+Fyf7yppbdG2velaT1Q4wBKOaXcaOgS6C75B?= =?utf-8?q?AIr9n4GVMPnrov6pinbtXxIty8p97oPBylPhyIhiz4tW7+EZpmKM+eDmCgwVGgy31?= =?utf-8?q?A3w+0+Ui60RfZa8PWl+4KRTVGYAYLLEWbKCdHAYKG6TO8R3ZUtM19QgzxLxo1EqfY?= =?utf-8?q?U4J/JmLNopN5wgWmoIpcPlyNTfKnDmlg2ji3GDX364sP8PYaH4C/A4BMXjKB0wcnt?= =?utf-8?q?3R1hrRKfMN7lyp6YE2zT+gNdQPcAqXZZYCiE1rLly65aLu4vibCDUpsXK7H87TePC?= =?utf-8?q?l+Lbz8VvbQqf4zZc1jsOyJ6V3cfdm4YpFsRu4A/VDjRBF1BXC9FvvyIfDAt5aqU4l?= =?utf-8?q?Ubdgw0ErgSPpeUdq159jDjiHZRaNg1LAvSWdJGHqTGLgCB6+1tpg9bKxLf1W76cFn?= =?utf-8?q?cq/n6WoonzRMeBgaJtwU/PGN7PCxK6rBzGJLGCLwgEb43UQgNyLf5KSZv4RtFJ+/7?= =?utf-8?q?wCzgQF7zBEE8c0eLQEGNIwxf2ul4CV8s6hW+GKqg/aZngJAqaO8oSWk9hfY83/RWk?= =?utf-8?q?12tH10y2u1GfomUT8arn9HCHwDps0SRtm/FCBsy+XnPD5hBGYRzsDvMROAvVnnF8G?= =?utf-8?q?LSIxEKUAt9608B2lZ0q2lx0nu9fGO5BmzEk1PCUDL9QpN1Z8bkvhatt/sLfVNyC64?= =?utf-8?q?MKvSWc1QNFnkZvYDF6GjD5Yq82qeuFOzZglCcayYd7nVO0Ajs0tfPAKHbHcpjP1cg?= =?utf-8?q?p/S2LwB5VnGSWRJpOhmTrojnd13aoNSDfcgIvuC5B1XzQPqwRXoVlEgzoG6IYuYtJ?= =?utf-8?q?WqCEKA+2YX/Q8uOYOT5Ca+yEBrYlKWBL8lZylaRv3upXj0xaHvQ+Idq3jfeLmP6Qz?= =?utf-8?q?4TuKJ4U6hb0yOQp1QE6xI4CkejCIOCTNR+Bp1IORh1thE3/byLxW+sHdKDNOFqTFm?= =?utf-8?q?JZYw3LlLyTHD8SHcRyTVyVEnTqahLfJSGjT8lwZ7tMARdsrq6dMjFOwxv1DVKHJwp?= =?utf-8?q?qTRSCmm0yn9hTD9qGWRZWTVn+0T4/UZfw=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?CHaGNxhO/jTgkgs1hPB2jns5BkEf?= =?utf-8?q?FSAIYK1gH3gO9cLpq78lWVt8OmuVU9CF+J2p5LpvC3ccwH7mBHYgUs8PAIZmpi1Sp?= =?utf-8?q?12QFdH6jKTW/F2N+6u7e/3fLiBkWktY500jyR4uTFhviGUcSBZyZ0ilhfrWyUXcwo?= =?utf-8?q?IHiX6r6UEDu3rZ9PYkdoeYzAvgVNmXEvXLPU5+Wn3ha52xTUFxYL6BhCQyt3Q48Ys?= =?utf-8?q?29vKeLhBxSsv5AFFzgddQ+COywQo1FWH5DpPN++CP2+o7vkW//biZxh7zh2hv8qJF?= =?utf-8?q?Cfn+kcxu27MbnOiBl6F5ajfW/jm5j1mT1h0TUMArK2XDeekx6BDDor9jqusCjwG/2?= =?utf-8?q?lmSn9wogkzA5wTRL4dnjC5QM14JZ67GpppdNJdqRiojOhwTZ3U1O3KOJSqmErfqza?= =?utf-8?q?jrAzHVZW/K9ODFFXuzD/aGRRqv5r0fU1rNQTrObj3Ul2qWc9LISHH9iXwWLS+wtIV?= =?utf-8?q?VIuhbeRdnZhGRm78GudSbfluew+TFtoC31nNjYyLqaUfHk1J+0aFeNEUuV8BgpwaT?= =?utf-8?q?8eeY8ooU+Ocet2/ITp669ezBDDRfR2aouMLRovL48ZcTFpkRRzUQmWPucBfEsVQTK?= =?utf-8?q?/vdMNbZrzfHdPq4ETOhnFPSQtTf41iqoFi7JM1KLv7ZOGCYqXGU7LHF+jZSM0YJxh?= =?utf-8?q?3p74WjuwJx1xRxRtJ+oupsECrFkkopW4a0w6ApSBUhdqHtYv8kZTjTdHbv2UesD+P?= =?utf-8?q?pbya1ClCHszuobvPtti/YG2DF34vFZXLrYGbIZiMA8ugLEThRqCw+NrMCW6u2v3T/?= =?utf-8?q?IAOGuTA+8wc1HQMFEb/J448KVdUMwHZyfFMWqSztxJ5kXRNLJKixW43ypvCPskuMq?= =?utf-8?q?T95FX8MA3rI2n30VVH8rxwhWLu8nP02bINO8aE865t5A05RxMZs+sMVSxYYu0ZPao?= =?utf-8?q?pfHtk1zVfnZ9Vi40oBs8pQ6y7VLyma1Ypq3czUD4NRkWMTN10iUBTeshFMtd7LXOa?= =?utf-8?q?0AIhOoD7HSj7EI37hOXVD0nASfLzGh9TP+5fe66BOnrisLVsUISRXmG+5AnHn8HP/?= =?utf-8?q?sezrwl0XbDCO0iZ4XOCqReyyT5qxWPsHUbpNUtppaIs2ijOYec5emo9po2NAbPa9e?= =?utf-8?q?Ct2nig+IGGFIQacxz7U7+n8v4+5Md3ZmPoB9a9Xq1sroQS978k9pfnGuxlGJXx1XP?= =?utf-8?q?EwG0sU4J1N1SHpa9BQ3W0i/EHTkc0aukdDTyWqRslFj8xxrTdobq3Jt6VAXBUblDb?= =?utf-8?q?3CFOSIUctekNM40oHHo1QpaS3HiNhvIheNKfVt/Edhc5/TUrLpC9ukGc6+OiIz0Ji?= =?utf-8?q?pu75UeccpNTFWlqnhG9/W5xxuKYKX+cfCKIwxLWGHyAmc5mLsxi3gjDWcLPpKa/QW?= =?utf-8?q?X6X1dnsQRjMaEMjMZVymh3JW1zVmf5L8mo9YruebVezQD1wJ0GIFOrVfcCKhIt0B9?= =?utf-8?q?4zXIaeKCQndy2UQbiLNm2JkZOBhNbvVzfxkRUaCZOopxfuBsuSLYHAtYv4TRt2oXb?= =?utf-8?q?5Svv8gHMmYKq4MgBvLeUeGI1iOqTAdxDjSqNYUjKihPCcpA9ewRv512lTR4Q/Sshv?= =?utf-8?q?s3vTYnEkM+tX?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: f3c33e0f-b154-4831-20fb-08dd763e8a28 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:53.6296 (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: x9KG3jXjeIsDXkTvY/djDweCBQLwmWkaLkWkM7+x9k/ayGxJOBriBNAmqGt0x/IYd3Sqmt3alrk7QjmUlQ6fbg== 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 to configure output value. While at here - reorder the included headers. - Drop sound/tpa6130a2-plat.h because no user is creating the device using platform data Checking the DTS polarity, all users are using GPIOD_ACTIVE_HIGH. so all should work as expected with this patch. Cc: Lucas Stach Signed-off-by: Peng Fan --- MAINTAINERS | 1 - include/sound/tpa6130a2-plat.h | 17 ------------- sound/soc/codecs/tpa6130a2.c | 54 +++++++++++++----------------------------- 3 files changed, 16 insertions(+), 56 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index de65f37966ef0accc3497e5f75eaf94399944a90..2a1a91e4707740edb59ce6712b66ed7196050720 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -23881,7 +23881,6 @@ F: Documentation/devicetree/bindings/sound/ti,tlv320*.yaml F: Documentation/devicetree/bindings/sound/ti,tlv320adcx140.yaml F: include/sound/tas2*.h F: include/sound/tlv320*.h -F: include/sound/tpa6130a2-plat.h F: sound/pci/hda/tas2781_hda_i2c.c F: sound/soc/codecs/pcm1681.c F: sound/soc/codecs/pcm1789*.* diff --git a/include/sound/tpa6130a2-plat.h b/include/sound/tpa6130a2-plat.h deleted file mode 100644 index a60930e36e93958c674e8e1f3ff0b39cd0be7677..0000000000000000000000000000000000000000 --- a/include/sound/tpa6130a2-plat.h +++ /dev/null @@ -1,17 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* - * TPA6130A2 driver platform header - * - * Copyright (C) Nokia Corporation - * - * Author: Peter Ujfalusi - */ - -#ifndef TPA6130A2_PLAT_H -#define TPA6130A2_PLAT_H - -struct tpa6130a2_platform_data { - int power_gpio; -}; - -#endif diff --git a/sound/soc/codecs/tpa6130a2.c b/sound/soc/codecs/tpa6130a2.c index b5472fa1bddab3d69b88c040ed561e8b5d9d1d0d..62c4cc7941114623fb33bd7d6727495b3d64a3ae 100644 --- a/sound/soc/codecs/tpa6130a2.c +++ b/sound/soc/codecs/tpa6130a2.c @@ -7,19 +7,17 @@ * Author: Peter Ujfalusi */ -#include -#include #include +#include #include -#include +#include +#include +#include +#include #include #include -#include #include #include -#include -#include -#include #include "tpa6130a2.h" @@ -33,7 +31,7 @@ struct tpa6130a2_data { struct device *dev; struct regmap *regmap; struct regulator *supply; - int power_gpio; + struct gpio_desc *power_gpio; enum tpa_model id; }; @@ -49,8 +47,7 @@ static int tpa6130a2_power(struct tpa6130a2_data *data, bool enable) return ret; } /* Power on */ - if (data->power_gpio >= 0) - gpio_set_value(data->power_gpio, 1); + gpiod_set_value(data->power_gpio, 1); /* Sync registers */ regcache_cache_only(data->regmap, false); @@ -59,8 +56,7 @@ static int tpa6130a2_power(struct tpa6130a2_data *data, bool enable) dev_err(data->dev, "Failed to sync registers: %d\n", ret); regcache_cache_only(data->regmap, true); - if (data->power_gpio >= 0) - gpio_set_value(data->power_gpio, 0); + gpiod_set_value(data->power_gpio, 0); ret2 = regulator_disable(data->supply); if (ret2 != 0) dev_err(data->dev, @@ -76,8 +72,7 @@ static int tpa6130a2_power(struct tpa6130a2_data *data, bool enable) regcache_cache_only(data->regmap, true); /* Power off */ - if (data->power_gpio >= 0) - gpio_set_value(data->power_gpio, 0); + gpiod_set_value(data->power_gpio, 0); ret = regulator_disable(data->supply); if (ret != 0) { @@ -209,18 +204,10 @@ static const struct regmap_config tpa6130a2_regmap_config = { .cache_type = REGCACHE_RBTREE, }; -static const struct i2c_device_id tpa6130a2_id[] = { - { "tpa6130a2", TPA6130A2 }, - { "tpa6140a2", TPA6140A2 }, - { } -}; -MODULE_DEVICE_TABLE(i2c, tpa6130a2_id); - static int tpa6130a2_probe(struct i2c_client *client) { struct device *dev; struct tpa6130a2_data *data; - struct tpa6130a2_platform_data *pdata = client->dev.platform_data; struct device_node *np = client->dev.of_node; const char *regulator; unsigned int version; @@ -238,10 +225,13 @@ static int tpa6130a2_probe(struct i2c_client *client) if (IS_ERR(data->regmap)) return PTR_ERR(data->regmap); - if (pdata) { - data->power_gpio = pdata->power_gpio; - } else if (np) { - data->power_gpio = of_get_named_gpio(np, "power-gpio", 0); + if (np) { + data->power_gpio = devm_gpiod_get_optional(dev, "power", GPIOD_OUT_LOW); + if (IS_ERR(data->power_gpio)) { + return dev_err_probe(dev, PTR_ERR(data->power_gpio), + "Failed to request power GPIO\n"); + } + gpiod_set_consumer_name(data->power_gpio, "tpa6130a2 enable"); } else { dev_err(dev, "Platform data not set\n"); dump_stack(); @@ -252,17 +242,6 @@ static int tpa6130a2_probe(struct i2c_client *client) data->id = (uintptr_t)i2c_get_match_data(client); - if (data->power_gpio >= 0) { - ret = devm_gpio_request(dev, data->power_gpio, - "tpa6130a2 enable"); - if (ret < 0) { - dev_err(dev, "Failed to request power GPIO (%d)\n", - data->power_gpio); - return ret; - } - gpio_direction_output(data->power_gpio, 0); - } - switch (data->id) { default: dev_warn(dev, "Unknown TPA model (%d). Assuming 6130A2\n", @@ -318,7 +297,6 @@ static struct i2c_driver tpa6130a2_i2c_driver = { .of_match_table = of_match_ptr(tpa6130a2_of_match), }, .probe = tpa6130a2_probe, - .id_table = tpa6130a2_id, }; module_i2c_driver(tpa6130a2_i2c_driver);