From patchwork Tue Apr 8 01:39:57 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: 879141 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11011069.outbound.protection.outlook.com [52.101.65.69]) (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 6558F24A07F; Tue, 8 Apr 2025 01:41:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.69 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744076508; cv=fail; b=MIAGdyPnLeVajCx7xFlpSS6jLIp9LlRCT/R1u+ex7dg545ujh+pxS3c6Bs8am9xJw3AyFckXHUmEG0hMjcqOkYkVlCvZs+EbL9ntPRsp4tBh2QTiET2Ie5CXeWqZcQ6CBla6EyvBj4Yvg4F4OhRt1Jx066gshD+PlUPCFHPc5r0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744076508; c=relaxed/simple; bh=4x4YdZCbb/qJPGqFZHcdPb08+dWXpHLGJ9bi2lQ4UGc=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=LsiuxV0v1Regl7TDlmtbAdmQ19dKvrKDHI7NE8+WOeVr1dCJLTpxOJM8/4dACHabyI96frxZB0U/EvAO3qHWP1ByambIDKqy4bj+OgkLJ1/WBHjCYcZWtkFgWdRIhuHFVOL58dBKAS14BW4tynx5DnJzDXij32qTKd0yAXLqhVk= 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=eeCmXalR; arc=fail smtp.client-ip=52.101.65.69 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="eeCmXalR" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=V5YQZotut/jbEGU8CVSxbnVN+E7vLj8LxuNOymQ4F9rJTXc7daVy/Gypl2DQ7XUnjfkKw0QZccrwpxny+ssU4yhtRXGRNV2/pWeOiQXfoZUwrEXfQFP+qRPcgd8SJkiyXrtbkADBGqRUYcWIeZZcbgaardx3QgvlZgFsfCqn+Iy2O8z8c3R3Brfd5DeBWFvRXiBhQLhj2/KN64HQA0spZwrOxXF9kgPd+n8tOxdtcyGZ8lpp6EO3A1VNUzINMQTvb5BY99c9sXMLkLmIwMZsy43SUFwFm47Kyx1zhGiNM620UhPL/IyN0hRauRE9+1BEUg3sO/vgY2sCTUlMjXPB7g== 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=UrW2gRkHRJiVcqGsBCTuZH1FeU4rHYJnvxGE/vqilAM=; b=FQr0GWwnDryY762xN/wYavxMNGlaBsOCkULo92mZDEzNKFtJauUW0qk1LluGD0bwNVqfPhhicHngZYgJG69TJzxf5sSWlP5V40WH9YlyAMxysbxfkNTbNtTPwDwnOoxOrKeyL0QRp6oWJeYbIQjAZ6EvTXBCItyZvrunSvkUlal9oE82CuU4uaOgxExXcETS4BJTItWIwFC8W0sy8TsmF0fuwt7zQPooSowPgl3oGjHIOT0pTZWe4le23FHXk7wE45M4zt1a+2iIiJNhZHmdhGwSiWF0djkdm43N75FJQjms92g4T85IxjR1iBDQeogd8Ue9mvKK/YbVZJVB5bXVKQ== 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=UrW2gRkHRJiVcqGsBCTuZH1FeU4rHYJnvxGE/vqilAM=; b=eeCmXalR9Mox4bNjA1UYWS8Dc/pqv8EUKGNuKgR/4E2JvGTSfPe5DeQPtSB4o32czq+IuLkottfVbXDN+8DtK8/+eAfMr9mdzuw7gmK4+f5YWLDh1daKddQHCzA906s7jD7MdbIBsF4s5yY750gZWOoh8hyvb5wq+8HRI+B69Pc62pMrb/xlnCsOXnzvjioGbhwToT3yhTurIq2DAE7E5DwbdyuBiuzncx5gJnBB33R66epGMVfZnHPSwIJhOlhxY5Z/+6fP2VVrxENet1yHYdQcs5JADtcB+WHLOZfbznS9PGCpjpZYE4M9F/28yB0g1Bfw0hMk8qjzrs/vzrtJTg== 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 GV1PR04MB10583.eurprd04.prod.outlook.com (2603:10a6:150:203::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Tue, 8 Apr 2025 01:41:24 +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:24 +0000 From: "Peng Fan (OSS)" Date: Tue, 08 Apr 2025 09:39:57 +0800 Subject: [PATCH 1/7] ASoC: codec: tlv320aic32x4: Drop aic32x4_pdata usage Message-Id: <20250408-asoc-gpio-v1-1-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 , Markus Niebel , Alexander Stein X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1744076413; l=1913; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=1erBgDO9YQTsUPReW5GRSBqXlHOpBFfWmMmesMgsHeY=; b=JEJWae/S0djp2AhfmPAdWsKHp/d7xWZKSLAVQ0wiUAoaRjlrsp8b+idpKbQ9am1E3RjYX43eU fzEw3btspoMBW1PEwNvQki0Di24cBeQsETleL8FKe+wKv3YWQRS0Kiq 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_|GV1PR04MB10583:EE_ X-MS-Office365-Filtering-Correlation-Id: e88b083f-a642-4d80-dc48-08dd763e7890 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|52116014|7416014|366016|1800799024|921020|7053199007|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?k5tzPAKTlSkNpZ+Ck/P2FWQ+WA3wMLr?= =?utf-8?q?z57L/C21CqpPvL+hiZ1GZKC0GzvVZZjV8agNnZ7nKkgjLntxMOwNy4QrJ8JBqGTa/?= =?utf-8?q?w+jnbIS4Dy/3YMwp06z+Lxa3aKaQAzT2Dbe7fr1WnSG3gTZUO34Tj5ky7FzTENP8F?= =?utf-8?q?j/e2MRsSVOQIsIB34nPbB1MoY6kJlmGU5muw74lTnRDWrwAysnOgu4qpqEcD8Fd4e?= =?utf-8?q?iDvkNS3pII8TWaMLJP5GVM+RjfhtQN57g9ZfOj6FTqZXPApbFOMjrmZ3IQ0OKi1KZ?= =?utf-8?q?YVa2NFHaw5LaJ9uZpbQPXF3RNvbOoNyagdFzRpHs5JJNszjPaEY+I0KO2mNOY5JEj?= =?utf-8?q?F4Skzqw8pK/6hd62bvarXwA79BPNRDcV9kqgRVki06VFVM47GRi72WcebPIn2Mm7e?= =?utf-8?q?qGhpJUzjaj8u557xYwjdYymqqHALv0sq+dt5sSCunEiIFrnqCdtgaPAV2gx39Ixhr?= =?utf-8?q?5OiinOflOBKouXmW5vaobsR+dc3KNFzKKVihjT2hVF1iQIiXpCUe4O+ohnfMKopsD?= =?utf-8?q?vp/SL/Yx7bsqrAntvjCsXxFglGXhJ003WtUDv7e/HJUznWTSwQ93BYkLwvvs8XA40?= =?utf-8?q?SZBXdXRxdqEISIF6AQDpcDlnGZQ6i/FkAlnWJtR+7j0ThhgTrIBujuhrl2g+9HuuG?= =?utf-8?q?Fmg25yNwn4246VA7+vsbokbfAcQxieIx4p78JGRzqHJi6TFNzdvGmo+B7sEI+1Hbv?= =?utf-8?q?un0hF7NX3IP81KDb/ZrvUCA99Tx73keU8VtmaTNPRx5cJMNUAmNHOhiaaeBYPq66h?= =?utf-8?q?Dgk7XtLHmaNgVUYhPzyIIgwDdTlCawGpQ+7f3rVTjhhUDSsMch8iUpKAJXK0SJQRI?= =?utf-8?q?0uENwp0z/U8bGeG/3JVDhhCQS6iujouCaQqdB+8Ozo2Z+7zvJfHEdXw37v0mMv2r4?= =?utf-8?q?vB206rxtVjJWRbVcahMs6GMSn0vn8bbWdQMJ2CMPOi59Ie2TUKe96sWP5dEVvnXFX?= =?utf-8?q?P1oCz9erTRo3nk2ME3Rg3O2sZ0cA94EKvVybZC0vimWV3NheDVphQODZAwINAdZz0?= =?utf-8?q?baFv+fXX88q2mcsgpG1F4LRlBQwNN4MyfBoV6MLJqTX2Zsv/ytWLBhBNDvQmWJoNE?= =?utf-8?q?Ng99Z4Wgb1q/JqsG4gFFFCDRtNGHLVRqR/hmANSRdFGesELgDVJvrWepWBJeBEjH1?= =?utf-8?q?yAd83PZUY0G/Z1ZbOaInW49Wv8Jrn5F+rl0jy7DGAV9Fz1u64qtCOecFgB5ErVcEw?= =?utf-8?q?2uHiP6OkOMKH2fBiEvrBRO7AcvRfnUyawrW+zX+4Dt9YLBuUBsLM8XW48LdBEQjke?= =?utf-8?q?88o6XYtKM5aLl4dp4oEltEisgtUVzP3jgsntCYEOZREB8CDyjl8rD5nztO799ik1o?= =?utf-8?q?+gfjm/9Vm2l1NL/OEq5MzEMbK9/LbRB9MUApDmwqvgxZjqQIqW+syxhX3Yt0twndo?= =?utf-8?q?6nlmj/4b/1OAAPjInoBLg12aVRv17asPA=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)(376014)(52116014)(7416014)(366016)(1800799024)(921020)(7053199007)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?DuuElZTwdX9kIPxKHwth7RKZzg1f?= =?utf-8?q?LmktHqtZ5QQwk/tl3BJRUnBWYMiNlCgbMAOAnYDqqvfp5k/D7K6t4etOoB8ySWrjG?= =?utf-8?q?FCkY9s5dwtZMaEFrLzwmToS1jG5qoQDs6tKGxjMxcdyey4zjksnQrtpCJQQiQ9N+8?= =?utf-8?q?V7ql3BKhkcVpep/bbLblvTneZU2cHQ+GLwlImgMv7N0NC2sfvLMY378JaT0CWJhxy?= =?utf-8?q?9bJsCFzQowz9gHezowyQ0G/EV7abj9DIgmKxnbPUs1JjVRZxus7SLXzW8Bv98o6KW?= =?utf-8?q?yA1OR47EdSKWg68FOxVlXuRuM7crNKGIkBB12sFGDesYYjkQNB+AUx5VitbYhCY8+?= =?utf-8?q?JAcrIYfOy+UJjMF9pstMoBMv0e2SwoamCTyC5YgujzgmfFMzSKbx3Iz1av0EXL3ws?= =?utf-8?q?uzKaWhAQmMfK53+VBRBvO+n0rgEfknc6ezLQID2pocFv+M7NW0OnNNx6XtDlQwTzp?= =?utf-8?q?d8OzPBf4p9B0DcHTGrhR94AkzIruRVi62mFXa7Z/lLtCEknH2m/PkZRnkA15ajZEh?= =?utf-8?q?WknitshmDx1kFOSU1RLmSjlA7cO0+WR/LwyK7YG3sXvfMIHrSDeS8tZImcWpCtEVE?= =?utf-8?q?zD094En514g2A25Bv7T6i3YU9fy2qmTXnMj7/KNLNG48id5TluLEGoqIhSTuXcYFg?= =?utf-8?q?oviCydvQVyp0637IYJJ/n3SChXgbjaP+ZfAm3/6gYz/cTznaa3gh/IQFlo5cnCbbK?= =?utf-8?q?3p/sLgQi8b3ujRVq6iZamXVmcy5/UFrFdT5Ns0t2+4Luonue0YtUYAle8tsCl3Krc?= =?utf-8?q?Y1CcnxYFQUokExNw/xSVYiM/jtOf6bJoT1a7qmCvZWRsaGA+bPtGlt4lhlJ+OzOww?= =?utf-8?q?SgzghBsExa3Xr/ZkJX/wYcK+3RqlaXeuNozohiBOEjYQknMGPZfyggbJqg4FAnebl?= =?utf-8?q?ZjyxkoWU9vJcxkD8w66ZjZpfH67zi89tf4vtd9j34jVX0h6bLy5EVxfpHVYXUc3eW?= =?utf-8?q?NIO/uNmC8V5ZcVt66k+mNs7NxuKnP2HMIQ42Kx5Jg3UEb2YX0/MuLt9GDlL35pyYv?= =?utf-8?q?xF/w4spvNR0nE6ig0BZc9wZSmykk8a235A8W3tDiFgOTFPyFFRWywS51e7xKsFa7R?= =?utf-8?q?V1gMDr7jseJL0hZoEzjrP3/onKfEhUN+Z9aoG4oWPi9AXXBRXflLR/8L67jr7LdPA?= =?utf-8?q?PvDm+6usZ2wl/0mRSVPiQXb6dr1XHN9C5TEzMBjrOoguOOo5V7JZfsTyZr/68NMkw?= =?utf-8?q?60w5Z71v5YcmMg3MTbUSacTDKPlA/2CkqnnVDA6nBqk6SEosJKuYEGs42MlzjH62F?= =?utf-8?q?JnUgLDI0KGn+JvCgBO4XiCb9sHZli2IKIt57axK0s7i8Ny2gNKY25VN/u9IxNrtLj?= =?utf-8?q?GPkrubjcBqDSHRYExvYCxwDmGq4so3z5KGAGnGxVREbqhCkjluSs6AZuVYbriAwg4?= =?utf-8?q?X+HiEuGPO9fY9p7HuabtB0I7AOnSwNThIW59BDvA3WvUHNJg7vwZ4Q22lBeilvaYx?= =?utf-8?q?Vs0MUVE4p7Sj+DpnIB6cAUYrPX2ysjoVZgQJgw8hoXrvQb9Xdou+khaVwKWPYU83P?= =?utf-8?q?v64yLgWhpWdg?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e88b083f-a642-4d80-dc48-08dd763e7890 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:24.0379 (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: cBAzGAM3cV3Hzw46OT09snR1bFKcfiKAyD2rvSR3Lw8TFcF/SGxJNPEb2SAxorjjtoUu14nnFOuyteHc2NroTA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB10583 From: Peng Fan There is no machine is using aic32x4_pdata as platform_data, so remove the dead code. Cc: Markus Niebel Cc: Alexander Stein Signed-off-by: Peng Fan --- include/sound/tlv320aic32x4.h | 9 --------- sound/soc/codecs/tlv320aic32x4.c | 9 +-------- 2 files changed, 1 insertion(+), 17 deletions(-) diff --git a/include/sound/tlv320aic32x4.h b/include/sound/tlv320aic32x4.h index 0abf74d7edbd69484c45ad6a1c39b3f67d61bd63..b779d671a99576deadc6e647edff9b1b3a5d33c2 100644 --- a/include/sound/tlv320aic32x4.h +++ b/include/sound/tlv320aic32x4.h @@ -40,13 +40,4 @@ struct aic32x4_setup_data { unsigned int gpio_func[5]; }; - -struct aic32x4_pdata { - struct aic32x4_setup_data *setup; - u32 power_cfg; - u32 micpga_routing; - bool swapdacs; - int rstn_gpio; -}; - #endif diff --git a/sound/soc/codecs/tlv320aic32x4.c b/sound/soc/codecs/tlv320aic32x4.c index 54ea4bc58c276d9ab39a15d312287dfb300dbab9..7dbcf7f7130b04a27f58f20beb83eb3676c79c3d 100644 --- a/sound/soc/codecs/tlv320aic32x4.c +++ b/sound/soc/codecs/tlv320aic32x4.c @@ -1346,7 +1346,6 @@ int aic32x4_probe(struct device *dev, struct regmap *regmap, enum aic32x4_type type) { struct aic32x4_priv *aic32x4; - struct aic32x4_pdata *pdata = dev->platform_data; struct device_node *np = dev->of_node; int ret; @@ -1363,13 +1362,7 @@ int aic32x4_probe(struct device *dev, struct regmap *regmap, dev_set_drvdata(dev, aic32x4); - if (pdata) { - aic32x4->power_cfg = pdata->power_cfg; - aic32x4->swapdacs = pdata->swapdacs; - aic32x4->micpga_routing = pdata->micpga_routing; - aic32x4->rstn_gpio = pdata->rstn_gpio; - aic32x4->mclk_name = "mclk"; - } else if (np) { + if (np) { ret = aic32x4_parse_dt(aic32x4, np); if (ret) { dev_err(dev, "Failed to parse DT node\n"); From patchwork Tue Apr 8 01:39:58 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: 879914 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11011042.outbound.protection.outlook.com [52.101.65.42]) (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 8E44225F789; Tue, 8 Apr 2025 01:41:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.42 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744076514; cv=fail; b=UbDl2Jyb+lmzFKlp1e1+D40hZwE8nDa3NiQMN6BpWd278KW9Jy0+uAgdKCVTVjMvpJjA6zZNx6i1ZVJf+YnEK7Sl/orwmwaAgn0NAf3L0rqAwgkc2X7M9dK8IwpNhU3VWNfGRTXutCT1ZD9/HB9c9ZExd/gBfOTs31dhzwkgp9Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744076514; c=relaxed/simple; bh=7D93rBwrtDWjrWWdIfHgswCV6+Hxoig3p6KCx2EB3A4=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=XrA8VNudPz6u9tb8+IpcbAGBdg6hdJB04/MLMhn1vMxJRDm9bKb6r8cW6dTIpE3FUProZTACKj2Ozx27DBYLQyZeCz4Uoa9OKDhT2vxmQTdoXu4Ly98NaOHOyFIoz77pWszOF4tWzkE3zLRWgiegs24mZ0g9b2Y12zkjsLbjsEI= 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=Y+Nn2NIy; arc=fail smtp.client-ip=52.101.65.42 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="Y+Nn2NIy" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=iFGuqZ3hzr9pTx+KklylX8/YJAneX10/WMhpBM9aFsj9+r61/UIQ6C1h3B4yZ3B2HxPlH390hL40jD89o3thlvoDE5O94J5Mcd0RIrj8nYgv2NdzqX9xDvWNE9mqaxla5ZPFi2Wv0vaOBfdF8yoD0RKcwVcWv1Ksa6SGUgG5zFauqgqNkYLroApljIM7pb9mr7RdVbT+AZHwUvg5Ps57W31xs3Uh3pugmkseeQNjT+VPwuCil4owCu/6fNEV364E2/AIsM99ZzRJY60CzqtooeNhlzpozik0vSiUm3GPYssqTXPD4I/zMq9oc/sJf65HYdE6Fty7wCxDqrvaHK6XbQ== 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=DUu1mv49O+IP4RPmCr/EpuMW3oRiit0FPSBIFJVE3PU=; b=p8O1W/0+GAyVf6iZtnnBwHAdplTsz9Dd8yfB/sEjGZRxbOCg0u2JkJWqM5L2G1M+oJjQJm4SWplc6vUw+Pzlwk97JEQAPEjLzZIiUtgKWteiDfIlFtxRpwaY5JgBsH5oEw0cx8JZMOv2G55Zy3fER2sIy5sMLMci8lw0g/7cqh8lF/tYQ843hch0H/xenMRLlaRMgBFYpDPFKN4FgUk7yKBy1znp6V5aGMvAA+qR8L+gQuj0BWXv6gDVs37CdqSn5QfEzk2AH9zLNZuW8+v9p5e7G1LOUHUNwCYfrhAX1ouN40I+kONSo6nX/0icyKjMWYdaNFCmWARC813kBzYrCA== 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=DUu1mv49O+IP4RPmCr/EpuMW3oRiit0FPSBIFJVE3PU=; b=Y+Nn2NIy8PNIG4QAHBWmuab1XVgei9G8JRhjVcXxIx1BV/BLljflMkV1coOR1GVLaFVq+NEEd+C2L6QJ6rUeLnhXX4ss7+4Hvlor8yroXK7vqUZPb88It99L0cYgA1mvJVUQu4MGfP5DxSmkA6k1pFubb5NN8p0THMKxCwsPHS2x+Zrtp5/pmNXBehSGk6ofHTKpOphK8M7gjzhFrn/SNNqknm0s+2aZVloKeMu0fxFyohPoeokuosjGPiXQfyhvTVuvsVcrH2vzW4bFXi2uT+rxapacAVYPzx9B9/Weue1XSJjqZB6395h3tClqAVBrVOzOttqnq5uZcA1rA380KQ== 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 GV1PR04MB10583.eurprd04.prod.outlook.com (2603:10a6:150:203::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Tue, 8 Apr 2025 01:41:29 +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:29 +0000 From: "Peng Fan (OSS)" Date: Tue, 08 Apr 2025 09:39:58 +0800 Subject: [PATCH 2/7] ASoC: codec: tlv320aic32x4: Convert to GPIO descriptors Message-Id: <20250408-asoc-gpio-v1-2-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 , Markus Niebel , Alexander Stein X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1744076413; l=3864; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=Zs/jJQY2hY3p30GDERt8fUCWPhlrXep3P/D1YZa98bs=; b=w1+UmylZ7e2YOe5VOPvasQNL6NVm8fN9S4SABhmM2siPmqxFKuPWYtHIhip4HO+u5YTFlUMzv qyqh+m8xl/WDrnbhedWGeArGUUcM+Ae3u9ag4NhJBJFVGUZ5KAKw2rD 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_|GV1PR04MB10583:EE_ X-MS-Office365-Filtering-Correlation-Id: defb0706-dea1-4c64-ad47-08dd763e7b9d 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|52116014|7416014|366016|1800799024|921020|7053199007|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?p3eHsAq8NIigBbzVofhA8v7WdwaIIiR?= =?utf-8?q?ryxw2xs5oYdhAtCOwBhIDXkbemwe4rNH7VZoRl5HyxZBCXblV85uxnGxa46WG9a3F?= =?utf-8?q?+OFLwAw7oowFeuISEHYPOFepMeyiDJ29WtnskvkKGo6P+VeVw9ucWg9vqbUQXOJhX?= =?utf-8?q?MGbPYhD8o9Ec5eT8bopwl2kYGq0qTAb/v+wJBSEZ5D5KMKcCFel0RXZ1AUGpcxY/t?= =?utf-8?q?Pq/SjtvS3DFbAKNt8Pr9gffFrKhWNW0Ss0QhaOFt6J9yYumTjCI+aOUqAt3ryA9RM?= =?utf-8?q?i97CpNfPf9USksxywM28CDo+Eemr4gaD0YFX7F+YhOUFweAFI6/H3fZ81AJqcC38+?= =?utf-8?q?s2KMGJI+yuUVzPv7g6sG5z0yvUsk+vIRHjXG5DP/7kvFwjvkP4f9ujLRBhcY2vuSY?= =?utf-8?q?XMMd3Yj+k60x8cRsE/esPuunc8IIauGk4xmHxItEWGE1bPIbvX2IgJSMULJWUkBZx?= =?utf-8?q?7/utDlsu3nd81Y2tNZV9SdSdgRCtYpLsEWl37930Ivls8jtmIKfWwBsnetyPV9zAN?= =?utf-8?q?7kbdtjJNuroMlyaCECqEF054FAgHZVpuSFz0/t7wtvW7SnaFAHGvrJWwaK35Pv+eZ?= =?utf-8?q?qRE1A++4w86XY6uXOPBTXcRSi+6kZvMZOD8ZDRzfp8We/jD7gRTkL6iJwrxkA8RSa?= =?utf-8?q?xifpHcBFUGzHknJ9/U+ouDFRaaUxUPOhDMDFVxRU2EE5Qx45t8lpV1St3NiGWWTzU?= =?utf-8?q?kXYN78X5a0oQgTZiEGRZjPb0q4N113VvJgBpH9DQYgrz/ojFWvf+cAOsvHMIYjQZ9?= =?utf-8?q?f3ga+ejPAXXqAL3pz3SIWQ3aU0pACid7aDrv6XjwS+X3jjFPZEICC9p/W2jt6FAzE?= =?utf-8?q?1wWaPROyjbRyf6XPlMPAUZCsvqmCgGD/bs1+PVt1DGB0FcAH0HyDtv/NMbIvXJOG0?= =?utf-8?q?wpBDhu2Xa5Eb8YJ8q7Bqb+bTGkuUMv4yTxPre8Kt3H3xeiHtHZAVPlTCFvVtPRbHU?= =?utf-8?q?Q37Aub/L/7XnxCoAVpga0kpsr+eKQy4Ty4KJCoMKVhXMIe23oU8YxRVeL7FhQGUKk?= =?utf-8?q?MrQWqNV8H9bfbvGx4UAan7TwhWzQrIsK2PJjHJTXXJG2060BJH12yqxSLYu7LHxqy?= =?utf-8?q?IVuqi+wh4UA/zMPNu4YDcuQgn2wSTfv6q1vOSHr9sjIoyhqxhtN6VbhuQQpkTXh6D?= =?utf-8?q?MukEwwXLsbjwuWtsnvcCfXGh/AbxmCrbTKfmItYtw6hATqp1jP0F5VRcUSTxj9AXQ?= =?utf-8?q?PzPhtVyD18Zf35j+EG9XR3gQClxBcyktgQWctGvrehYvoTvO0GXYKE3jU5z7lz6to?= =?utf-8?q?irYkXWDHW+ks5IHGxs9phCt6ULXsEvRb8DHanvP1hnEDeTFtN4h2qduYCe0dLob31?= =?utf-8?q?ToWk4I5J5JVPkOb+UG+hR7erD6VIawNX2l46rz0zX2IWBA4As6wavndLg7RWaVLYv?= =?utf-8?q?nqgYpFqW+E4AOnB5D4FDNHuAGZ8+wvSzQ=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)(376014)(52116014)(7416014)(366016)(1800799024)(921020)(7053199007)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?BxjIAmIGsjUjaOEU4JzfF51u7Aqu?= =?utf-8?q?tlJwKQ8Ip8EDhqCH1A1wFokIOIFa5PgPiGSA7cUCugiaB7qQYximlXqJ7U8M17ZPp?= =?utf-8?q?MbqlyBGv3+SMX0XRy4+hcS4f5PrsC9KEfgEQEM+OSpvp90+opoZF1DR7UqcJ1NoEQ?= =?utf-8?q?wS23SLY1pvdscqN4jFEZAs+kGehiVjWtZUTLRNajO7NbB5lY1cjNkZ6u0wiJdq+n+?= =?utf-8?q?AKbbmfqCwoyg5bASGQE6dYMZR8BFQMgVSskgnR6N4Qry0fqwLPJUNGGIvSgnfmbNW?= =?utf-8?q?EE0KoCoVGnFn+MMXqW0ch7rjR4VaXZlPZpSBZGSGquTIXZV1TE7UthgTKoiZlw1ZM?= =?utf-8?q?kVK3hhzLTkAiOd90XpJGL2c4NX4VxG/rUDAcE95wcKLItbc36MzywBex2jGZQHpYz?= =?utf-8?q?ag9qGTMexOUPy9MAcellbWMSZxHMnKWF2mMywpdpHx0Gq1d39q0WmFX+eYvDw6JEt?= =?utf-8?q?+fctQIf9xYSsSbOs+x4jwgDPv8eC46poeSee6KD2pYsR33XdqT/z+JyxT3jEtZ2Fj?= =?utf-8?q?SA4WFpSMAQjlRCMYKgncU+DdpFL0uxiaG3l7Cl25wFw1Pu1BOZaq1sXw/3pvyNgd8?= =?utf-8?q?gQmMnD8dMuerQo41+hQ2L0z3oNdnv5q84Rk5i2YvZdtki5iu5T5+mUysuS6C2SDsL?= =?utf-8?q?Mlls/l4G+Fs4QRxOlQ9trYf4hl6BWUVkKaRYpgiNT1ENXpeYtsitM0nGYFE28dblw?= =?utf-8?q?b38KleyAfcOTutSojG2kZ2XQmvgUnLphpnFq0qpNbzwqnNUfOUJBiCySvybbmWEMI?= =?utf-8?q?G2a8LAViLMYMFl9HISaxPXA0WljSe3x6sozkjy1pa2MnX7Uhe6+haLAKHRrV3Jj6S?= =?utf-8?q?FOs8Ltnh8xuNhIvGfAL2Ofcg1kypIXqA/bVqwQ01sobGPXrDsCPBd5fx6OcNMiDdi?= =?utf-8?q?g1WCGNNy18qsTHLvvh2fzLgZEpfFvCe4BUHuhLVRxwCFQQ6Q4qA7E+AppGMcxxVu9?= =?utf-8?q?r2YonZJoRYmGUU4XDzZ9uS1LeAYEnWefMNRcWElc0CAx1yDfRv/aZmzcmvmp7ynfC?= =?utf-8?q?hE7XMJ1G2PKg+Ro678sIWvDXavILUwJDIMHtg34MoueSYqM86RXtrQBtrSCfLLRuF?= =?utf-8?q?hZWZWpVidnVandtx0PuPFycGGJ21tt25hIS5Akdyr9mUSa7yvur+pKb/9OJs1CVDK?= =?utf-8?q?8Um16D3eec3I38sFdJq59SNhBVPw9xnO//x42rJNPePe+g2yP4spq+/2mhNYusIYR?= =?utf-8?q?vh4bs1E9iUX/yFf1l5fSgiS1Ru/SSnHOH6z5Al+nli0p/0QtkanZb5CtRw5yRHZli?= =?utf-8?q?+X4YXpJGi+MUsAqIK7Rr6a6QW9o5bvt6vDiQ+p40TnHY0qzEfJoAIp+SNvTJyuyX/?= =?utf-8?q?ooWqxS9e/zkoeQo3ms4+7mc/ObipMzH8aLh/77gpwO7vTUo5qOwK+ydHSqC3Hm1Qj?= =?utf-8?q?kXn3iISkfNyL5UV8Rlwmls6To+89O0FfQsSQVJlIxfFU83VLjGB+1gnGrsJ+dvLp8?= =?utf-8?q?AcgSO/HgSit4MEQvoODgTPsJr9SwXDQfD/ExTDQvfNNGtPRGhSLhV7mZ5TTmyopUt?= =?utf-8?q?LzptYVkW+Au3?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: defb0706-dea1-4c64-ad47-08dd763e7b9d 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:29.2380 (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: fNW3v4gkjM1a4xNzhIxF3JzuhkBZLtMeLR7iPrHdg6oeoFCVgt2wNWfMBNSYUO5KEx5vvzgx4JaSJcEDFw+DSw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB10583 From: Peng Fan of_gpio.h is deprecated, update the driver to use GPIO descriptors. - Use devm_gpiod_get_optional to get GPIO descriptor, and set consumer name. - Use gpiod_set_value to configure output value. reset pin is active low, so when request the gpio, set GPIOD_OUT_HIGH to assert reset and later deassert reset with value set to 0. While at here, reorder the included headers. Checking the DTS that use the device, all are using GPIOD_ACTIVE_LOW polarity for reset-gpios, so all should work as expected with this patch. Cc: Markus Niebel Cc: Alexander Stein Signed-off-by: Peng Fan --- sound/soc/codecs/tlv320aic32x4.c | 44 ++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/sound/soc/codecs/tlv320aic32x4.c b/sound/soc/codecs/tlv320aic32x4.c index 7dbcf7f7130b04a27f58f20beb83eb3676c79c3d..1423186f5a6c181a20dd2dd552679d33174edaee 100644 --- a/sound/soc/codecs/tlv320aic32x4.c +++ b/sound/soc/codecs/tlv320aic32x4.c @@ -9,27 +9,26 @@ * Based on sound/soc/codecs/wm8974 and TI driver for kernel 2.6.27. */ -#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 #include -#include #include +#include #include "tlv320aic32x4.h" @@ -38,7 +37,7 @@ struct aic32x4_priv { u32 power_cfg; u32 micpga_routing; bool swapdacs; - int rstn_gpio; + struct gpio_desc *rstn_gpio; const char *mclk_name; struct regulator *supply_ldo; @@ -1236,7 +1235,14 @@ static int aic32x4_parse_dt(struct aic32x4_priv *aic32x4, aic32x4->swapdacs = false; aic32x4->micpga_routing = 0; - aic32x4->rstn_gpio = of_get_named_gpio(np, "reset-gpios", 0); + /* Assert reset using GPIOD_OUT_HIGH, because reset is GPIO_ACTIVE_LOW */ + aic32x4->rstn_gpio = devm_gpiod_get_optional(aic32x4->dev, "reset", GPIOD_OUT_HIGH); + if (IS_ERR(aic32x4->rstn_gpio)) { + return dev_err_probe(aic32x4->dev, PTR_ERR(aic32x4->rstn_gpio), + "Failed to get reset gpio\n"); + } else { + gpiod_set_consumer_name(aic32x4->rstn_gpio, "tlv320aic32x4_rstn"); + } if (of_property_read_u32_array(np, "aic32x4-gpio-func", aic32x4_setup->gpio_func, 5) >= 0) @@ -1372,26 +1378,20 @@ int aic32x4_probe(struct device *dev, struct regmap *regmap, aic32x4->power_cfg = 0; aic32x4->swapdacs = false; aic32x4->micpga_routing = 0; - aic32x4->rstn_gpio = -1; + aic32x4->rstn_gpio = ERR_PTR(-ENOENT); aic32x4->mclk_name = "mclk"; } - if (gpio_is_valid(aic32x4->rstn_gpio)) { - ret = devm_gpio_request_one(dev, aic32x4->rstn_gpio, - GPIOF_OUT_INIT_LOW, "tlv320aic32x4 rstn"); - if (ret != 0) - return ret; - } - ret = aic32x4_setup_regulators(dev, aic32x4); if (ret) { dev_err(dev, "Failed to setup regulators\n"); return ret; } - if (gpio_is_valid(aic32x4->rstn_gpio)) { + if (!IS_ERR(aic32x4->rstn_gpio)) { ndelay(10); - gpio_set_value_cansleep(aic32x4->rstn_gpio, 1); + /* deassert reset */ + gpiod_set_value_cansleep(aic32x4->rstn_gpio, 0); mdelay(1); } From patchwork Tue Apr 8 01:39:59 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: 879139 Received: from AS8PR03CU001.outbound.protection.outlook.com (mail-westeuropeazon11012050.outbound.protection.outlook.com [52.101.71.50]) (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 20BBA25F967; Tue, 8 Apr 2025 01:41:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.71.50 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744076519; cv=fail; b=IlbyaNYRgDSekBS8/Za470sr5sfONI9eVdqmbQzsU5SDuVHYi6cqdJImJmysFvxuuOf6vLl2hnw13H+srGyycUKXF21nJhYbA/7TwFhmrLXHMQJkJq5EBpNbvRBBIfWtaGisjHO+vUug/LGjJc0v4KV/71nehqT6MJ33trT4Fsw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744076519; c=relaxed/simple; bh=whEPXMghPFWJmcez/kNrfobL2JINxtIEXm48TIFMoEc=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=lJ33THa05LO19hBK2JzYMg5UpcvTY2jEltKCrU5hMiasGTkESdg+CsfL1D2BOXF9lYrW2NXNZhEkDUxECWoad+t6gDI7SJi2Srb5Czgu4x8swO98R6JOP53PZIizab5BiLMF2jc53xsPQJzFCf9jgNBN8hfL4pulxahbfqqAGRY= 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=GHkcXwbX; arc=fail smtp.client-ip=52.101.71.50 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="GHkcXwbX" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EDqdMPbBClyaSpCphrXq+LOkn1eZbzwFoZhYSVALTwSWD8cj6csqIUMVoN8YAlZFngXAJnR+oik86OjSPFUxQLaeulpg+JCvrkciYjcqodP+KPHmFwZPKzt+xwwA8fvifyw2EM5x9YxgElzZEA+TtkfakLTudankRJqwRHdeB/GKtcsfrRaEHClZlR0e8NGWAhBN2St4QVELekJ7pO9/HtRfEC0UHRArCJ+VwCIe9Wt2hLnD9F3HvtaGg5IYMD3hQhZPEX84UU9sREZjGW4PyfnGYjKfDNBdBr/aU5jq00VMH57XOA5FM16Ir50OJHJMJN1AIqUKGaNQ2yuatpwVpg== 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=fLAs4qCLkaHaNr0pkS3WNZSi2iaLg2dcPaA6P89xO8w=; b=p8FJhhA396eCfJ6HsSY6DUfTqO6zN/Bd+AU+0RHtqJCg6wWDqZfjPa8KxIbp8fElKWJ3UzPo9YopuYqP25GhrtjtHuqCCmymMy0OQTD/BRNW+7iIsGw5x4a6KkavXQgNNCiLb7vfGkd15HXJWjHAwBE0XIBmK2qp3XSBIDcJwrPKdcf0AUquEWcopofCIUXmnCBslnvfvOUgsTLqga9xBXv56rFANMft+A80VDL2wr3Lq1z7PqAxoXqnSJxa6B9GTITViiFa5IQx2PbtQJ2XjFLVmJl0Jpt69bgTPiil5B7hdlWk0qvfpJA4GSF//Bah9ClMvrLOknoKBBt7d1vGCA== 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=fLAs4qCLkaHaNr0pkS3WNZSi2iaLg2dcPaA6P89xO8w=; b=GHkcXwbXtxpP1r82D8R/aeKQm3Rp4VU4/+DgwfD2sOf0SSuwHYaLxeOJfx/8R/uI6LkFP/uSvc27Qn1y9L8rOrEHweCsvn/1uN7qeMGdul1FEL3bPWwjVvcfQ8o039fqgtwteeIao02okGsYpSQpnU30YIYEGcTNjv2fnjUjZz0UXSAYislSVSeB2Qt/U4ngTXzG/gJu7v4blfi8e+v6/0CleFj3vpJlpnFlHsw/ml1GLi8REoD/QHyjOVAfosjhEnUlws01vhjQ2nmVIZYgOUbsRBlLxvo5T81S7b7jYdW6imW5gGg3WSqnuzImJsG0I6cKVqmHvkaqTG/Ths5bCg== 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 GV1PR04MB10583.eurprd04.prod.outlook.com (2603:10a6:150:203::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Tue, 8 Apr 2025 01:41:34 +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:34 +0000 From: "Peng Fan (OSS)" Date: Tue, 08 Apr 2025 09:39:59 +0800 Subject: [PATCH 3/7] ASoC: codec: twl4030: Convert to GPIO descriptors Message-Id: <20250408-asoc-gpio-v1-3-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 , Tony Lindgren X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1744076413; l=6651; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=ExGvRGQyDo4ZlYfuBr4C2ncIrF3BsbADUswuNAzOsIM=; b=Pa3lZL4adPD40he5sCxKg3rKTwy1y42SZQmn6hM54IhS7BJ5gTKEaihNQVMsYOOme2qYhA1Us vGrBo2uVVzhAadewcO/h/q8fKx2+K2m53cALd9zo97XSWA/yrrOjIwa 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_|GV1PR04MB10583:EE_ X-MS-Office365-Filtering-Correlation-Id: 4d5b47a5-be2d-452d-a8e2-08dd763e7e9e 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|52116014|7416014|366016|1800799024|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?crszslRlhqQDL0g9lpeemUdm37Z+Otd?= =?utf-8?q?zsuOoARbkDi1E1ylLY6wbvDBq/XJRoB2ybCgQxlBTaN8BUdg3EeTCa5Gm9tsO/lRE?= =?utf-8?q?6M8ma/l5NVee3JwDTeXpXdpn/ghDRmRvJK19LXnC2CWUnG79PwzBbObcE+rUN9PEz?= =?utf-8?q?ceikAvdogcWGPSwBRDrvp92aiPkdAr4m8cqEAUnRX2hvStSfKSwE+yjUQ2/nCS84l?= =?utf-8?q?zDP0mjNbhVNHd1JSHPuHvcco14MCWTc3hW+aKpw9j2QnulEpNEnXn++fEOf1ZqzR3?= =?utf-8?q?jAkYAB2glhUKrpbeSTi6TamBpFWEIqFZ4I2I6gWyCjY4XEjwjiR7saxW5eqoWnXAU?= =?utf-8?q?VH7TTINed87nQtNm6lR3gXaAAcADs2HDW0dCHfMn7QArOreEGdPj8L46cLkZ84UFl?= =?utf-8?q?t4r0I4UWQ9Z20/9hQzciW07fEjcXjI25rFtZ5gzB7kXAfd1OHR0qV3xchkxOra1nn?= =?utf-8?q?i8I/aQKy99MIzsKpAsslVuw7wmM3XDqMkgI2FYhBEOXLF6DlfmmXiEPapWK0kwhLG?= =?utf-8?q?K7uv7f2rhLby899YZVp9ep9Nilf8jzPz/WFkumTys31CXuJBlU4p3oV9EKAhqL5AH?= =?utf-8?q?j93HOc4B2gdYe6L0uLY1E1NR9eb5P9Oc5uhYNJIdnl8OR4C9r/QIuaiyDNqY3Akjv?= =?utf-8?q?L78vDJP9CL75+c4mwxjSQQTMvJ1yhS4WqqxiXdydulNGCsTiSTAuaFTgklKwDjInt?= =?utf-8?q?qrajDaXxGPfROsDjhJKKDZnYWyV628MYkgXn9us8eqEXIY/cpoVIAmX+qOiTY/uN0?= =?utf-8?q?S1mNX2h/Iqji2br7Uz1k2JbFPyDzJYc+/AU892Q009za4iM0y1+msnT9KwnDogjO/?= =?utf-8?q?d3JDsgnk5gL97OLIRoBSGve9HR/JMY0nY72+Kt9IpftumOQcG4CUb64kwxJZnBvZU?= =?utf-8?q?SLXyo/KcIggJlrovUZ6BNj8eOtB+ar1W7oGwKhM9EQBwF/aKLx56MvY3Xp0cZaFvu?= =?utf-8?q?sq84ytuTqbXa5okqTfBZz4Zj7YwXSODV4WO6C0st9HWeyKxyLpIt/Jv3iADlmxeBr?= =?utf-8?q?ATub6ZBN94lQRpTIKk8ZedWwlrLd1uSGHA8NDY3q10w00SZCgs6rw9Jj48CjYYGs0?= =?utf-8?q?mAMVHr5mrSLBEXzfMAB90/N3wNcjxX2DZ8NTBq1bYZzKWZYPKnjybFbWnqayu6BKw?= =?utf-8?q?rNs9+f1Xlu+rHWHMU7iGzqIG+m+hpCa9Ioj1Wjw1tYSYyj/oZWKyLK1PDZydo/YF1?= =?utf-8?q?evMgcm8L7OsKhV31LoGXiKzCw2Yom4XuHFPQ+Q6E9RIRKv9MTobfg7dWZtwiBnJ4f?= =?utf-8?q?7pGYLdMJguvQ9RXG5MKy0ypu1a3C5HQ7DSkjZ7FIGFQSmfOYrFQXxu01NJo4LUSNQ?= =?utf-8?q?pkfk7EE5WAETEU9VufFAu0aOgf1V877eMFA8DGJYivdZiE52dulU3xr60cqIg0187?= =?utf-8?q?xAW62oQgwPsZPjbHMNBWIKZiMyGXX9Hiw=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)(376014)(52116014)(7416014)(366016)(1800799024)(921020)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?v/gom/j4yGS3IafM3XGavVc6NErs?= =?utf-8?q?sIttLKzENroFVlXhhXHQWqzbaN9yMTEVuODLKLSl3QUMakzgaJ50IQ5xU+5xgEdMY?= =?utf-8?q?jm7ClrrmrCCulS2T9T/PB8ZdBwArAgrqoKqfgFZ8n2zdj7705lWrcRqp8MZqBxxl7?= =?utf-8?q?ZQD0uOmUTc84mto/6ay/RBi9uxRgutU9AwFjjZ17QPbsF80K2g3YrpxPUcEcJEaYn?= =?utf-8?q?IyXIBfQjGmYtMme4MCm3acpsGyUyDSCOL2xrcHZlHBbjpKOcU2yrt3X3qO5H7jDCE?= =?utf-8?q?WNJwtpt3r+s4iK1Kw+XQh/mWRtmgL++BE4lZCkvU+yZ6XqZ2dBxyMhBzmzCWijtT/?= =?utf-8?q?MKCpfBPAk/M/Bu2FsAE/GKHeC2Ham4oj3/6bNYLgq8tOX7qvxrkf90H9oxl20ql1y?= =?utf-8?q?DAITIP3W0IBDKHjbDZWz0NUlF8Mhzq3MKvq/aLr2SGlA/wNBNShKP2D78/9AufO1S?= =?utf-8?q?YctUUkiyA/1NbVwMgITPVHoUjHOdUAGPquAiUvIi+unYnfnEw6k/h766/7A0BH7qb?= =?utf-8?q?bXgnygbGZheZOOgk7wu8lf2xbRtRADIJo9LjAlzwG0lYXoctH7eGCIrGhtklPUvkS?= =?utf-8?q?QCs4Hnh9LsqcHF7oOp8ChcPOswwcEgkTXiuLpU0+2IaxJRCiO8N8B5b9TZ2KmARdQ?= =?utf-8?q?/wS84rXtCyk6URmXpF08q5noYMp9w1HYKAuIXdsDnMk+irohgKE2HAlGlhSLePGPO?= =?utf-8?q?pXg+tV6hj4vu7Bz1w+H4cC+abULp15s6U794jU8twqiXXwuGKICTmgyE5ekdcw235?= =?utf-8?q?G4KieNPgHoqZLAM50+9ALcF3v3zVvUMOlWgVjtIpISxuFn4GAFR3Dm8Txg8ajLCBi?= =?utf-8?q?DfjuTBN9M7JTEFpJS1N2GZqjGUyHIO/6BK/0Q9Nhsj3+uLeqUNM48MD62aOJrkLxu?= =?utf-8?q?lDvQkWODrxYnLP8UQBF5n63LLOayS4DiFkO0yCJ2PelNxVSS0DHVpwPbbYAz3zozx?= =?utf-8?q?Ae423/e7aIMh1W4j6/M7mmi+C7UsHXd+Jnoe4vMSdCRYLpJru9zVRu13w6YxtZZnO?= =?utf-8?q?4ZTsdpGIgo95BfUJgE8UA+LzpaKWN7i8YzfeTNf0YAtc0j2n+EcBXAITsFXL99SJp?= =?utf-8?q?OlMu9vj2A4Nzs7FeICZtp/k11PRR8Ev+aZhDOCCStdiH7CYpYfZf/AsJObzdYk2dY?= =?utf-8?q?TChSAaDlpxM4OOaUeo8sprzMYET/b67d+LVBYjxq+pbdxSgDdAGp/cUztzQVStjCJ?= =?utf-8?q?Xr0qikJ9YbR7Y4k4SbqXN5BGZIB+BDemYFlNyO9HqAv24eVckF/DXp2x+mtOC3YRY?= =?utf-8?q?l8YNCQvxnXwADQWAY6P7u/X6hnJlpTc0MMTxyYf7sM4M/l9GIehAsWoDuKA9TVXrN?= =?utf-8?q?I90lbCPgqd8PERGDAzlY16yWL1DuwKOi9yEFDl3VBRQ7jlKJZnEOae0iB4WvqurWB?= =?utf-8?q?kFFIOFB5s+STQx0n8VjxZm1DsgRmqynGpAWBNHKyjmqyP8UA4nKJgCMY3v3Bnb47k?= =?utf-8?q?4WNNsCp0L5JgdwLaL6i3zf6vC9IEuATdIj9TMPtX7CaAbMjg4/Kl5amfgmkCieOxa?= =?utf-8?q?zn6/UB7fB7jH?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4d5b47a5-be2d-452d-a8e2-08dd763e7e9e 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:34.1992 (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: rVlrOuq+ZXyx9cb9TVeLGrcKaBfqfPJXiuE5FCqvNUMQ2VgphYcj5oCv79+mkQciDz5CPJnSLU2ozAJCFVU6YQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB10583 From: Peng Fan of_gpio.h is deprecated, update the driver to use GPIO descriptors. - Use of_property_present to check "ti,hs_extmute_gpio" to set hs_extmute - if returned value is true. - Use devm_gpiod_get_optional to get GPIO descriptor, set consumer name. - Use gpiod_set_value to configure output value. While at here - reorder the included headers. - drop remove hook after switching to use devm_gpiod_get_optional - Add return value for twl4030_init_chip to propagate value to parent in case defer probe happens Checking the only user logicpd-som-lv.dtsi that uses polarity GPIO_ACTIVE_HIGH, so all should work as expected. Cc: Tony Lindgren Signed-off-by: Peng Fan --- sound/soc/codecs/twl4030.c | 76 ++++++++++++++++++---------------------------- 1 file changed, 30 insertions(+), 46 deletions(-) diff --git a/sound/soc/codecs/twl4030.c b/sound/soc/codecs/twl4030.c index 609886461805f85f826a002942bd07c9105f2038..2879b44eba41daf9a1877bc604b7bbfdbf476c47 100644 --- a/sound/soc/codecs/twl4030.c +++ b/sound/soc/codecs/twl4030.c @@ -5,18 +5,18 @@ * Author: Steve Sakoman, */ -#include -#include -#include #include -#include +#include #include -#include -#include -#include +#include +#include +#include #include +#include +#include +#include +#include #include -#include #include #include #include @@ -39,7 +39,7 @@ struct twl4030_board_params { unsigned int ramp_delay_value; unsigned int offset_cncl_path; unsigned int hs_extmute:1; - int hs_extmute_gpio; + struct gpio_desc *hs_extmute_gpio; }; /* codec private data */ @@ -213,8 +213,7 @@ twl4030_get_board_param_values(struct twl4030_board_params *board_params, if (!of_property_read_u32(node, "ti,hs_extmute", &value)) board_params->hs_extmute = value; - board_params->hs_extmute_gpio = of_get_named_gpio(node, "ti,hs_extmute_gpio", 0); - if (gpio_is_valid(board_params->hs_extmute_gpio)) + if (of_property_present(node, "ti,hs_extmute_gpio")) board_params->hs_extmute = 1; } @@ -242,7 +241,7 @@ twl4030_get_board_params(struct snd_soc_component *component) return board_params; } -static void twl4030_init_chip(struct snd_soc_component *component) +static int twl4030_init_chip(struct snd_soc_component *component) { struct twl4030_board_params *board_params; struct twl4030_priv *twl4030 = snd_soc_component_get_drvdata(component); @@ -252,24 +251,20 @@ static void twl4030_init_chip(struct snd_soc_component *component) board_params = twl4030_get_board_params(component); if (board_params && board_params->hs_extmute) { - if (gpio_is_valid(board_params->hs_extmute_gpio)) { - int ret; - - if (!board_params->hs_extmute_gpio) - dev_warn(component->dev, - "Extmute GPIO is 0 is this correct?\n"); - - ret = gpio_request_one(board_params->hs_extmute_gpio, - GPIOF_OUT_INIT_LOW, - "hs_extmute"); - if (ret) { - dev_err(component->dev, - "Failed to get hs_extmute GPIO\n"); - board_params->hs_extmute_gpio = -1; - } + board_params->hs_extmute_gpio = devm_gpiod_get_optional(component->dev, + "ti,hs_extmute", + GPIOD_OUT_LOW); + if (IS_ERR(board_params->hs_extmute_gpio)) + return dev_err_probe(component->dev, PTR_ERR(board_params->hs_extmute_gpio), + "Failed to get hs_extmute GPIO\n"); + + if (board_params->hs_extmute_gpio) { + gpiod_set_consumer_name(board_params->hs_extmute_gpio, "hs_extmute"); } else { u8 pin_mux; + dev_info(component->dev, "use TWL4030 GPIO6\n"); + /* Set TWL4030 GPIO6 as EXTMUTE signal */ twl_i2c_read_u8(TWL4030_MODULE_INTBR, &pin_mux, TWL4030_PMBR1_REG); @@ -297,7 +292,7 @@ static void twl4030_init_chip(struct snd_soc_component *component) /* Machine dependent setup */ if (!board_params) - return; + return 0; twl4030->board_params = board_params; @@ -332,6 +327,8 @@ static void twl4030_init_chip(struct snd_soc_component *component) TWL4030_CNCL_OFFSET_START)); twl4030_codec_enable(component, 0); + + return 0; } static void twl4030_apll_enable(struct snd_soc_component *component, int enable) @@ -714,8 +711,8 @@ static void headset_ramp(struct snd_soc_component *component, int ramp) /* Enable external mute control, this dramatically reduces * the pop-noise */ if (board_params && board_params->hs_extmute) { - if (gpio_is_valid(board_params->hs_extmute_gpio)) { - gpio_set_value(board_params->hs_extmute_gpio, 1); + if (board_params->hs_extmute_gpio) { + gpiod_set_value(board_params->hs_extmute_gpio, 1); } else { hs_pop |= TWL4030_EXTMUTE; twl4030_write(component, TWL4030_REG_HS_POPN_SET, hs_pop); @@ -750,8 +747,8 @@ static void headset_ramp(struct snd_soc_component *component, int ramp) /* Disable external mute */ if (board_params && board_params->hs_extmute) { - if (gpio_is_valid(board_params->hs_extmute_gpio)) { - gpio_set_value(board_params->hs_extmute_gpio, 0); + if (board_params->hs_extmute_gpio) { + gpiod_set_value(board_params->hs_extmute_gpio, 0); } else { hs_pop &= ~TWL4030_EXTMUTE; twl4030_write(component, TWL4030_REG_HS_POPN_SET, hs_pop); @@ -2168,24 +2165,11 @@ static int twl4030_soc_probe(struct snd_soc_component *component) /* Set the defaults, and power up the codec */ twl4030->sysclk = twl4030_audio_get_mclk() / 1000; - twl4030_init_chip(component); - - return 0; -} - -static void twl4030_soc_remove(struct snd_soc_component *component) -{ - struct twl4030_priv *twl4030 = snd_soc_component_get_drvdata(component); - struct twl4030_board_params *board_params = twl4030->board_params; - - if (board_params && board_params->hs_extmute && - gpio_is_valid(board_params->hs_extmute_gpio)) - gpio_free(board_params->hs_extmute_gpio); + return twl4030_init_chip(component); } static const struct snd_soc_component_driver soc_component_dev_twl4030 = { .probe = twl4030_soc_probe, - .remove = twl4030_soc_remove, .read = twl4030_read, .write = twl4030_write, .set_bias_level = twl4030_set_bias_level, From patchwork Tue Apr 8 01:40:00 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: 879916 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11011069.outbound.protection.outlook.com [52.101.65.69]) (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 AD8222744E; Tue, 8 Apr 2025 01:41:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.69 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744076506; cv=fail; b=iwdDvg1pxisAukwpmxe3wTTA/mWgYb9wiNQ7fJCbgHjnK4CmoztGJlN95fRD1xqnCKRBryYGdwR0tLKYV3IdYcUyukgfkVlcDuOSDWt4P2k3j3/DOakue6zpiL2BeeHKRXASpfAxaxo4rUEDHD+gkd/3A1k0Cf5II2nVaJ0PwFU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744076506; c=relaxed/simple; bh=1o5x+KX0xgNVw5wDC+GMF01F18IYCuVvHuREM+xjPgQ=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=NiiiuVD+GwvefFjIxasfUCiVtDQUt4V3uurQwlVUHJq5iS6c1mdBJjl1qhxkhmNUsRk+xIG+QoGEYS8qaRnxRx3sWn7ZCbHbPhMKKZ4RpJkVCJ6O7WmHWM6+RJdYfYSvf8GQYglqaL1NHnEDSPNms5FsBJZI5X4G61XnKr902L0= 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=XfftPc0y; arc=fail smtp.client-ip=52.101.65.69 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="XfftPc0y" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Y0UNA3ajwcqNereOEx0/uFkVWEZhBxIN2R3ldmT/8XynxPCyLgCLgY6YkZJ6yOGjBEOzoy8SNL57p/MpLONwzJLw4RF8UCQqdy0w7aCDTzqkg9+A1bz6RKBpKJqRP432iq1Lm6y69fPmuRFG0F6hiv3vJwHdEHX6mT4CZ97XMfhqoW5e+59MYQ+hR5/qONWTFpTyukR56pIkXPAp6QRvu8uqxBG/ZrrUy6gwh8V02UQeodlUrCZBwJ7CFy6jSELdlmtaqoanu0KBEVif/4fpxITxPeqqZGztz4YMC6LXS112b/8OxkDDaSEZwt4Yt5BCzPru8Z6uY6cFrCWkAdP1HA== 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=OdoAPY/sUyxCMCaK082qQ7k8A2vCvUk1kF+c3PHcnjY=; b=RFCU6mv/HPcOkpuREz7jAcuD8tXP6Dey6C3SxRR0nLfyGi8qxXkN42B+Px+KgpCfMWCP5nZkJvLqNoJMFzmIARQyBAqtCf8BLMPcG8t/+SlP9xMSqbVE0gG7G1DgpPpRdpNj6l9+rbj8FIvdCTdH/yVJZqhZzTyFHlqIOUWZ+X5gcUXNbyuvcC1D8aNvcWlPCo5dHv4jqFRIKtWmyzEtKvntJtreTLy88GatJqu+mh715PjBjQup4wlTcZjVbs9Ed0eZR5+hdy2WO85KF1o6fGeAj2RxWwYHDb/gi7MvTW5LTQ3eVXh8W0uFOljFX3GQBoVhiZ718VuKyJEJqaDJag== 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=OdoAPY/sUyxCMCaK082qQ7k8A2vCvUk1kF+c3PHcnjY=; b=XfftPc0ygN0OmserHchAagFu7o/S72sAL+8ZQ1JpsAI7jJ/JJw+R0+KQ7IAmXeeWPlzvPjyf2R9+pgWsSz3zQ4oNXTmGfO0qHaLDMpQ5XMKP2MREsNwEpjvpse9YfpzUV4ob/kjR19GDI8AmMQiNeW2mYmjo/ZIU+0mxm+yqIif3uAayo/qZacxEHwYNhQV6yo5qPrvcEcTycrT8Te4Eg8rAlDkISpUoN3L6C20XKhtV6KjqViPIEaXOXLqi1xT+OqdQ0dcxtHh46HNcj5IY7CWtne3Tokvk64Toj+0etQ8IckOM3jdpxqbzSxkZFI3gi991HMKra+f7xV8Md7EuKQ== 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 GV1PR04MB10583.eurprd04.prod.outlook.com (2603:10a6:150:203::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8606.31; Tue, 8 Apr 2025 01:41:39 +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:39 +0000 From: "Peng Fan (OSS)" Date: Tue, 08 Apr 2025 09:40:00 +0800 Subject: [PATCH 4/7] ASoC: codec: cs42l56: Convert to GPIO descriptors Message-Id: <20250408-asoc-gpio-v1-4-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=6895; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=AFsqk6hLyIvdhwha/1DpMl3RBCtKKRrXwbMQN2/uW1c=; b=tiv9uoylB13VhzcyWY9lLkfx3geqSYjaAW7d/ip1lDEqLNBaGd+5DJn4BZZJtcvrkikyhrOmn Eu6ZV96+9fGByqsKyTxF+6rjuPIzALwkOKwzrY1M/IbSxKYpZvqp3Gj 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_|GV1PR04MB10583:EE_ X-MS-Office365-Filtering-Correlation-Id: d182951f-fc9c-4f41-ded1-08dd763e8171 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|52116014|7416014|366016|1800799024|921020|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?ZFcnf3hQeQC2Qx00Auif7uPYojkPa3u?= =?utf-8?q?DnUyC2ibv71x1kllDScm1WYuRW5ndr4zGvEfoyzsRyXlFJquWbefgUvoEl4TUtc2O?= =?utf-8?q?Aflf3ruR/xQof3v1bCOzHGTcHcT1FIVajshYy0JGttxcV9AbFpRAb9dSp0MGHwPxQ?= =?utf-8?q?WHK25OVTbBQkewyGZqLcyPAPRP3KMt0hNCvACalTrT5EItTcd4+j/vCAmITr2amaM?= =?utf-8?q?/tA1OuipTL9hpsstTYlk4swk9jYYU85sLbha+VEif9EloYS4u3ahd6h2TAIKR27QK?= =?utf-8?q?nFzg+j6ExhSTs3f0oqJrX60PQbji5VbiYou/66zIFv/DnPeNxkCsRMefhFKRzfULa?= =?utf-8?q?FJTYPy9BXhiqjl+8gDjaffPQc5uKxxNorhTdCi0GFrfMRVgTuh0LUVJzF8YAIlhy4?= =?utf-8?q?6afSEk4H7zj6ejKBT1vVCWDucjPvl1a+HfTJd0Z9ErgKnSFmgUeCNT7BgG+h1CZwF?= =?utf-8?q?h22chwdRXFyIHASvfLBnQLy8txFzY/8ZPT7TvVaq7AdqhzoblY6BxvwKrs42RE2zV?= =?utf-8?q?43CkfjCRtPUthH1LdIppIzZUl/v1Zau4PVEwyH+0b2HRs+rqM6Ykpcd6iN9/6qjnw?= =?utf-8?q?69T7GeAFEpUGs6A1hWaK4dLoN8gjwVHrwaF0AnIEvweUv6+pAv7+D7cmy3WBTLQk8?= =?utf-8?q?4yIIfqXoyNTS2EaRJRUfDG7hpGRogtqbvXrpA2m4GoQHYo+gV8Hanev1FPw9CswGF?= =?utf-8?q?qV6C697g7csi9E3tnyxGoz+X2k0VNjiK+z0n89VQGzgh/AH2QUBC4CzfU/tofv8H6?= =?utf-8?q?sm7lKGzUkcjFgSAECA8cyPkCYDZFdTidCF59DL54g4LgSPOlGnSZdQGVkr2IIdtIV?= =?utf-8?q?U5gGYpWjJWTlVpG96CYQgkx+ocJMiK7warEycIWu2nWEdAESCF3KrJsDTwBvFK0EE?= =?utf-8?q?vCZrhlV4vjONzAn+4qpfwYmPgkyEehZiDz3MkIQaQwTQjjx42rrhq2j2AaCPV57H3?= =?utf-8?q?u/k6VLvEXAvfygBCGFC9q0DQqezoyJ/RWIbDfR2HXD6B1UnInVtW2ISNtGCMOjV0S?= =?utf-8?q?BlTte7yRpLBINL2qFzEB41p7u68tpOngECLls1xAVzLjQ9EaTPc4UwOMB6DKMFYL5?= =?utf-8?q?x7U8OsDM9vu3izMtMAh6Iu8R7XUH5NejjoZz0I50CbmTQ05/2MUyNu1UY/0xIfLQ8?= =?utf-8?q?8HXTkFm5tdsmHhIoj67llIyhEZRcGgUQAlMvdsaUlu+s55ZkYSZaZbOnl8Z/xaCRT?= =?utf-8?q?O3gCqg+G+NZhX56hvj+m6dbRDlXp8umPlFlu+8oMHhFhvy9AJWzsHoOCe8yWJLhSY?= =?utf-8?q?8Oy8MN3aPgmPlxl8zmOZjjCnPiHLaoDcUOdz0jEgGlm5gFxcMDkmX6Z7FYnc5Y62V?= =?utf-8?q?/ZIJJ9fLwGUV+g2nsu5WEn4ro1OuqW8j+mkUjYDiak0O5ofMSWQAbC7eP+UTin/HH?= =?utf-8?q?VwLtsPnNtPaBB0cAhboPKIoCApf5V9Iqw=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)(376014)(52116014)(7416014)(366016)(1800799024)(921020)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?5MbVybUXNLvN0BYDwe0nVz8NpByT?= =?utf-8?q?4z0iXKaDyPmOXJRCwcJn5PQaBobAm0KvPv3NeUYyU7BTFTKoVghGMCqsfXjQRyVky?= =?utf-8?q?jIzly2oukBntfdP8nOaoZA1vFYSvAUciroIMxt5JMFDOVI2FWnAqPkVAbjgftoELG?= =?utf-8?q?Rw2d1nkr5sky44gkKpx38jEvKJoyrnxsxjnnOGkf1t2kRY29v0TDrRfvpdtO4/K4j?= =?utf-8?q?nRDwXNgie9zEUAb4H+cDQOWlC0NRwYfBfwP79GPzH/OvaPrIs+yqEdTgq/v3MeFeB?= =?utf-8?q?Hw6oNGuTU/gi3uaBy0RGe9dN0xNlNITaqtPPAWRK5e5lm1a9MVgPXBEOLrcivujfz?= =?utf-8?q?+/x6X5hIhp9YKM1uJLnbFVExZgUxX+3hulALbCtdVoKX8zVpKOcDAwuzB0HpuEC2x?= =?utf-8?q?yBTgDiR3IuKabS6vk47mPWl/e464R2Dn0QCrPEbgsEt5baJ6S6hsgwfBrATrfZbvG?= =?utf-8?q?HnOVOjNAhJnMJHRYCg0sLawEeJKmngdMEQybjhUCSZLXcYIJucL50YhWJDGWcpw+S?= =?utf-8?q?zJLXJQpSRR/GRN4Of/f0oY3HEVZE5ojm8MZNLUkXdPKI45HS9ft7v0WHh28hHaQth?= =?utf-8?q?ituhlN9r09WXWPSG5PmYAugQsDxdXjrTLeTNJqDtrCCcP9R/CdN9HuX+qplrP+CH9?= =?utf-8?q?9zGZmQULOmDeJZ/8t48aIiBXUm9zApGk3U6zrU+DKFg+hKYSWOKvu70NVscTLNZ7q?= =?utf-8?q?1FXdahuTMZjst3h74Uhul8dun2AlJqurd/XyPYm8kfLCezPvhtAbUBbdWSMMeqaAm?= =?utf-8?q?0n9mrUG1S9poito1dAfS4tJLqExMPXIYKZUYeizqR1U6m429wRp7Ve21OOu8qqMDU?= =?utf-8?q?FHSOskooTw12tvGMuzYcfjX/EqDbgMaR/thZs/qhc3yLe9p8r40TnSe8TD/KIlftT?= =?utf-8?q?DSjhFy6SsDPPPj2OpvwnM6+4hy9Ce/TBT/f9V5CtVIP7R5XI+Jghhx53hjiRWK7rF?= =?utf-8?q?R1cNcLOw4GOSCXkyB6v4L/+RM5+YbRS4vhmDN3bDNAev+O8s6vGdRXnQwqvJw7YAL?= =?utf-8?q?/P+KYOwNW9E7bNCr7VvbNeG03ef1cHKV27kQHGA4U8c75wy/hzh/Gjcb4bV4k3Nn6?= =?utf-8?q?NhuI+Kj81jiHah+0O+H2xr+HYaH1dK2lGOAkjs/u99vXlqvpvlf93hAaxu2OB6gnT?= =?utf-8?q?OmBdTe14ZhyeqXUdUpyat+pR4B2aiRVZYoWJIgqPBlw/VT+rMnixBKdRmrb0hzfid?= =?utf-8?q?B8OvsBhhFAMcPMPNXr95hj1HDvW0MIQo50q0uq4/QtX8iAamhoUi71Nw1rYXwZlee?= =?utf-8?q?yNwDzehw6iUYmOH08d5rMmQ0bzc5s4qNqgHRSr28e6SwUULS2GD8+K0MAgFtc1niZ?= =?utf-8?q?zLTZy3v2E1LhVTrArovLvYSJSXRqNpFL3zn/bxZcYR8d27BMiRYo/FNcXo/OHnnib?= =?utf-8?q?7ZG/AcTXS4WU2lZCP1pSJOkpul0bqyR/PlemC5aIYe8hri9MKMOVvthJQrICdux6N?= =?utf-8?q?ywai09avILPdUq97GK1YJ7TSGxkL2UKYaiL+hpEXEj8n5LspNM/rdvDx3vl/ludaU?= =?utf-8?q?45+PWdF93JcZ?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: d182951f-fc9c-4f41-ded1-08dd763e8171 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:38.9329 (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: B0+xeXN7E0iIudnCJOvWPonw4AA2T7vjhsksycH+qQ9OHP/edipK6lMOfhYYv5uEMovgYklqxEjV7Xb+zULjbg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB10583 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 cs42l56_platform_data from sound/cs42l56.h to driver code - Drop sound/cs42l56.h because no user is creating the device using platform data Checking the current driver using legacy GPIO API, the nreset value is first output HIGH, then LOW, then HIGH. Checking the datasheet, nreset is should be held low after power on, when nreset is high, it starts to work. Since the driver has been here for quite long time and no complain on the nreset 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/cs42l56.h | 45 ----------------------- sound/soc/codecs/cs42l56.c | 91 +++++++++++++++++++++++++++++----------------- 2 files changed, 58 insertions(+), 78 deletions(-) diff --git a/include/sound/cs42l56.h b/include/sound/cs42l56.h deleted file mode 100644 index 62e9f7a3b414f6d1bcb651b22f7f8bd1f29b0eb3..0000000000000000000000000000000000000000 --- a/include/sound/cs42l56.h +++ /dev/null @@ -1,45 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* - * linux/sound/cs42l56.h -- Platform data for CS42L56 - * - * Copyright (c) 2014 Cirrus Logic Inc. - */ - -#ifndef __CS42L56_H -#define __CS42L56_H - -struct cs42l56_platform_data { - - /* GPIO for Reset */ - unsigned int gpio_nreset; - - /* MICBIAS Level. Check datasheet Pg48 */ - unsigned int micbias_lvl; - - /* Analog Input 1A Reference 0=Single 1=Pseudo-Differential */ - unsigned int ain1a_ref_cfg; - - /* Analog Input 2A Reference 0=Single 1=Pseudo-Differential */ - unsigned int ain2a_ref_cfg; - - /* Analog Input 1B Reference 0=Single 1=Pseudo-Differential */ - unsigned int ain1b_ref_cfg; - - /* Analog Input 2B Reference 0=Single 1=Pseudo-Differential */ - unsigned int ain2b_ref_cfg; - - /* Charge Pump Freq. Check datasheet Pg62 */ - unsigned int chgfreq; - - /* HighPass Filter Right Channel Corner Frequency */ - unsigned int hpfb_freq; - - /* HighPass Filter Left Channel Corner Frequency */ - unsigned int hpfa_freq; - - /* Adaptive Power Control for LO/HP */ - unsigned int adaptive_pwr; - -}; - -#endif /* __CS42L56_H */ diff --git a/sound/soc/codecs/cs42l56.c b/sound/soc/codecs/cs42l56.c index aaf90c8b7339dc7d9fa469048a56f38dca1797cd..8223e22dd1fea68e746151e637b611100f4e1a6e 100644 --- a/sound/soc/codecs/cs42l56.c +++ b/sound/soc/codecs/cs42l56.c @@ -7,32 +7,66 @@ * Author: Brian Austin */ +#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 +#include #include #include #include #include -#include #include -#include #include "cs42l56.h" #define CS42L56_NUM_SUPPLIES 3 + +struct cs42l56_platform_data { + + /* GPIO for Reset */ + struct gpio_desc *gpio_nreset; + + /* MICBIAS Level. Check datasheet Pg48 */ + unsigned int micbias_lvl; + + /* Analog Input 1A Reference 0=Single 1=Pseudo-Differential */ + unsigned int ain1a_ref_cfg; + + /* Analog Input 2A Reference 0=Single 1=Pseudo-Differential */ + unsigned int ain2a_ref_cfg; + + /* Analog Input 1B Reference 0=Single 1=Pseudo-Differential */ + unsigned int ain1b_ref_cfg; + + /* Analog Input 2B Reference 0=Single 1=Pseudo-Differential */ + unsigned int ain2b_ref_cfg; + + /* Charge Pump Freq. Check datasheet Pg62 */ + unsigned int chgfreq; + + /* HighPass Filter Right Channel Corner Frequency */ + unsigned int hpfb_freq; + + /* HighPass Filter Left Channel Corner Frequency */ + unsigned int hpfa_freq; + + /* Adaptive Power Control for LO/HP */ + unsigned int adaptive_pwr; + +}; + static const char *const cs42l56_supply_names[CS42L56_NUM_SUPPLIES] = { "VA", "VCP", @@ -1161,7 +1195,13 @@ static int cs42l56_handle_of_data(struct i2c_client *i2c_client, if (of_property_read_u32(np, "cirrus,hpf-left-freq", &val32) >= 0) pdata->hpfb_freq = val32; - pdata->gpio_nreset = of_get_named_gpio(np, "cirrus,gpio-nreset", 0); + pdata->gpio_nreset = devm_gpiod_get_optional(&i2c_client->dev, "cirrus,gpio-nreset", + GPIOD_OUT_LOW); + + if (IS_ERR(pdata->gpio_nreset)) + return PTR_ERR(pdata->gpio_nreset); + + gpiod_set_consumer_name(pdata->gpio_nreset, "CS42L56 /RST"); return 0; } @@ -1169,8 +1209,6 @@ static int cs42l56_handle_of_data(struct i2c_client *i2c_client, static int cs42l56_i2c_probe(struct i2c_client *i2c_client) { struct cs42l56_private *cs42l56; - struct cs42l56_platform_data *pdata = - dev_get_platdata(&i2c_client->dev); int ret, i; unsigned int devid; unsigned int alpha_rev, metal_rev; @@ -1188,28 +1226,15 @@ static int cs42l56_i2c_probe(struct i2c_client *i2c_client) return ret; } - if (pdata) { - cs42l56->pdata = *pdata; - } else { - if (i2c_client->dev.of_node) { - ret = cs42l56_handle_of_data(i2c_client, - &cs42l56->pdata); - if (ret != 0) - return ret; - } + if (i2c_client->dev.of_node) { + ret = cs42l56_handle_of_data(i2c_client, &cs42l56->pdata); + if (ret != 0) + return ret; } if (cs42l56->pdata.gpio_nreset) { - ret = gpio_request_one(cs42l56->pdata.gpio_nreset, - GPIOF_OUT_INIT_HIGH, "CS42L56 /RST"); - if (ret < 0) { - dev_err(&i2c_client->dev, - "Failed to request /RST %d: %d\n", - cs42l56->pdata.gpio_nreset, ret); - return ret; - } - gpio_set_value_cansleep(cs42l56->pdata.gpio_nreset, 0); - gpio_set_value_cansleep(cs42l56->pdata.gpio_nreset, 1); + gpiod_set_value_cansleep(cs42l56->pdata.gpio_nreset, 1); + gpiod_set_value_cansleep(cs42l56->pdata.gpio_nreset, 0); } 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, }; From patchwork Tue Apr 8 01:40:02 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: 879140 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 5B78925EFB7; Tue, 8 Apr 2025 01:41:50 +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=1744076512; cv=fail; b=joofBm+j28B/vV3wO9MVRXnJbAc3GjeZfuUIg5yS+2tGeekL9xng9m0Bucay3cbdyNMyy8ddiYjxw9L3FIDxPaGRhIChSweAeNBfknPEQoLRWDrSfQ2ajKf/X2t9rf7RgC6med2E8l5kSbkJ4svgeGoatkLpVV3rdPN7QZvoy3U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744076512; c=relaxed/simple; bh=v+RPL3nHlGd7lMY5K/0g5UD3Yu9roR9UGEMa0enTg9A=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=piLl4pVlngfw8Ypnn0huQZm8BDZekcG/ngZ2vmQX92s2ZetVQM2/Qsd0CmpGZwfbVNcymTHuDnK+sQyMszOKcMsvzQ6S3Etj47Pf/dUSOlRXsCIhvc0zK2nS+FVUm1Fta1m2Nf0AyiFxGOOr12dFM+VRbhLdK7gMfF9jRbuj7LU= 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=vwRNNpQ/; 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="vwRNNpQ/" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JJnwIR0sSJ0QOqAOemd4DJRVp0FHgOkDiT5GQXstGyQpyDbOBcAK8lczDkRoe5QfHK7mVd3O8Ty6Pxyp4YA9vZPaqZVGgamVDnTHkTNILjKlyZUcU96c9fkoyowsOWicu4DJMNy6GbsBnmAFMOkf9uipZKKItLplo4cmrBPWG6L7YiLHYUHqH/x7PLVOSwJYeUFe0mRCUPMrfGh9QhK+hsbOu2DK4w/0vjuJobOJOxTIYc0Bmo1MFmje7TVC+SkVlUzvNYcdDPgoRk2/U9Xdp6eYz07LeKv4sqaCfzYvTGNemc19UAHMZK2cHEaXaKxEWhZBZNExT+K2wZ47drXmtQ== 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=z3IIMIDbGoyGYwqxJqtSYGydirTJTdMneacc8sH8PYE=; b=QtwG3jjoeEjkmFn1yP6vgA3LQC9rzJlDgnPyP3zHyg+7GWNi4LPYuSxou4vWTYDGohBMROgDIN0j8hVxZvWAeegoJY6JFybZaxY8mZTE+ZWBzUW/78LGJC+LCjFcjwJlyE8rmP1L5FFmmeMBqemIleFMMaYihKe5pK1YbSqt7XRkyzRi2mjFE0NMqBFDQZ1JAQ5NvZDHKLci1kpChnu312udlNRxCT2z4BsKipzq9217W0gIKM7ISqBCfRwg1EibeKnn+emrEPrVtmQ6+gVg5VH30iB2XZN9jEBW4TinlsBdYNSsVHBMY0UJt9mJ5hvxE2nOJHDAsCCQqBTyddORfA== 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=z3IIMIDbGoyGYwqxJqtSYGydirTJTdMneacc8sH8PYE=; b=vwRNNpQ/Vm7KwVGoc1C0/iGOtIFw079m8xY36CMl0dIi/5LgqBC/M1q2dPOa6eIgMKwEmkaHYTEjHBAdkkc6XNh5ERe9jLy07AyxmNPjvRPi+F7NnnY84ub9UnC5ynh2IcZZmGx5wzfYs+Ks5zv45jZHVa9niKWFJX8vMp/3syRxQkUgXaHQ6kHAhgP8w/+pyBVyAPNzp95K4UHDxhoglHbieaVsSBwiQg+BRb+w8kYnlQ+WJB7kvAvWWPRJmaopMUTlJpjvnNfjCmSjSD/DJOp0Z7FnEz5oBIU45rDy+14GLnwCH+/wGBr0PIPzIYOEbLsCuwrII75zZxOAluYoKw== 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:48 +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:48 +0000 From: "Peng Fan (OSS)" Date: Tue, 08 Apr 2025 09:40:02 +0800 Subject: [PATCH 6/7] ASoC: codec: cs42l52: Convert to GPIO descriptors Message-Id: <20250408-asoc-gpio-v1-6-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=7472; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=qBgtNoCcAcvKxfr6iKprfrvHqR3mpPSjGlxZd+CHJAo=; b=r15niQXT/IuH0LfAZVap+mj4hUDUGvMPdQCZEGAAsNdabpSED9/z6nP3bheXwtxsAZZyQfmer ctgV4dvXE5RAi7WIRE1f8a7eCHwznMX2CiAR6BM0fcc1O0TdwVQARwZ 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: 9a9ce93a-4afa-44b4-09b5-08dd763e873b 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?T1MVD0n/wHLYvC0K7ZoXNuh+GJNCkbJ?= =?utf-8?q?a481Zb/aA+aJlXxAQgewY3R7X8vc+jipstwQOwpZ3Wq3kR4LyfA6KvicA26F9MlC2?= =?utf-8?q?4xqf8VBtKGwajPjNNVxbwemM5Pex91+8ZAnGpVEtlb8aKSwQGPyrC+8c767ZTPgfB?= =?utf-8?q?0q0449o7XLTqnSNLI26YqShPVcvv1IuxuQ77Pl+yWWkrtVwwzcbWeJSb7UOXePF6r?= =?utf-8?q?1PLLo+4+IoTJ5B+xOvLk3HChJIJWL9MQRWNBh0pOR3XCgdA9HbMYK/MCwp5blkxEa?= =?utf-8?q?6mBB91UNS38zXJ1FjOMr73SqJ8mK1WJgoJi7qCUEJdO+mmyNU5568qpwArEJ9qje2?= =?utf-8?q?g2ZOp52MMWbum+4pE1X58/E/ehyi1F0sWwI5f/ZayU/4E81eKOsfY9Uc06Aw/fiTf?= =?utf-8?q?GQWHVFbXEE6Tg3kuLVKvqwhJsOTN+3wgDsXXaDFPqSsVZ4e3jVDDFACD3YTGrYI3A?= =?utf-8?q?WC8zlTkerrpudqB9Fl83gCnjds6Sxi7TZmEmliRmliS6DN+oFCIdinVfChn6sA80J?= =?utf-8?q?OkKRPe7UQiD2TxBlkslbXUlySRtqkTni5o6JmB7hrH2uSPbFX0bP1Wd4CqHk458Ac?= =?utf-8?q?eqAv1TNdbBzPV1m+m5GdwugQLtU87fjfQiNKivlvU35dPwAU0bw1iyvOs0kU16dZi?= =?utf-8?q?FWuScj4GvbqacCIyHtRho3Q7+Wd7KGBrTaJgqdiB6uIMdixsEDvVOuT7lSdWkSuvi?= =?utf-8?q?+b830Ka5CbBL7kHnCSXRrRuaHU1DjElswFSHQmE5ZNa7ZvWVEz7KSozIuwHO24bRi?= =?utf-8?q?ok0ESrDKyjJD+HzyHqJqCGhjnYQFcdBILczV2ZVe75sRjOKBQXELcn5JmYMbTNcdv?= =?utf-8?q?R35oh9jqmRq8WOXE60NuXw4PSaYlE2c7qD7mBz00iz1coPWseOOvAOAMguJidnPKU?= =?utf-8?q?OFOrbAvt7ewXREQjEl7hwlnKCyAB0pT+/lHocbuC9jM9TS/ihNAzIwzCC1XwMGS4Q?= =?utf-8?q?vOA9Akl6h9zXzrEi4Uh1Q8EVzcY8HjJ7pUlqutNhDN/D27sbCRcn3JGjE0+0PQvQ2?= =?utf-8?q?a9JGwywrTNDchHjUu2ayaeioOeAi4Bn/DfJgfWB8+dFs/NcVNxBoNqAfox4HKMaYn?= =?utf-8?q?dVZBADzBWrNy8ofkXCU4XoIguCexiPY+mhFG9LZzaWU5x7t5XR1adW2o7c/vehIGD?= =?utf-8?q?gk/Wy0Z3u+WY9yjKU/2sClaGvc/JIXl/Nb9fsQBt3IVFxqjato93/pyfHAdSk9tM+?= =?utf-8?q?kR1VhNShmr7zpJZVISxY1kVUsPOkYE7MJR3pl4sYmIbzp9H2HMYTkiPSqp2TJYzoC?= =?utf-8?q?fBIXzmeVXvVzZt7BFcuh02P+nkHOaJvR8jOEGatPHDSXU9Y5b6M6rVJxPqVu+s31m?= =?utf-8?q?BvJUQeupkkBM7U3QZM8zvevK7EGcCrT880KCys2pLv8yFVfze9DhnM5ndnmD1Cbnj?= =?utf-8?q?Ive9M2GukurCzWYzDCfvxweO7X+WF9InA=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?+qpT5RNp1hIrw1HKEIQu7zGFKTSF?= =?utf-8?q?4SVcYeB+1XQ/3pl6VJrJ+kf2t2yPMeU6+59rtwvY+n4ddlSgWJwxJgzZB/FHiYxr2?= =?utf-8?q?R5hgUsNrsg5EMWd09lXMXyIfb61wFmBdL72ILsoWRfVEFTv4LPTy+rbAWV3Nf0M+9?= =?utf-8?q?jL+cwQM54loxXyZ4Kcyuy8DCYRW91GrX6Kf1QfWaQkE4bGD3Q2tMVLiEqvjwpDl+q?= =?utf-8?q?MESC8PdXr/kE0yG1oYEyi1NKeGVayOBllLhsV2H2Eb3qJtMzIZrYSvZRRbUfACDP3?= =?utf-8?q?v8bphvZTX16jRaV1QGuti9ao7grUOsqxld5nn+E6jexN6F4cfGGKRjK7dk5As3NqT?= =?utf-8?q?lcmC/uq3mcwuBem0XbJXRFLWKmHAn4hcN4HK3TgrweShxTV5vx69+NI6QLTiLzC0i?= =?utf-8?q?jZbcBf7xc4rM04E1pkmnL6R1YOAAjadLUVdCB61jdgUoSeiTZzer8lQ3M+ygFDdF7?= =?utf-8?q?+PA5RFwzvQVaqII8ntRfz8cJR5Kqn2bhxwD1RHOorUQQOnDP8IOZsf6pAD2GzmFwV?= =?utf-8?q?hCt/wTAi/vBZ/KRwDtiO42eeAEh1N9lT1iRk5X3bjavOZmQSBwQ8MzNlX8tJZPIVi?= =?utf-8?q?UyF9N6Gz2UdDiVz875+Y929E4ofrjmTI56fKBWLd1Sm1nrb3QigepdpY+L7oRWce2?= =?utf-8?q?aQqT2hhSjhKQltWs9UpRlRIsVwTT/swElpMX3VftG3lixp6DukxyqR0ThUC8SrMXb?= =?utf-8?q?gqmLLoYar+ZqO0X510wj1iaQ2inZ029PNQEJ/rDg8AGFWqkHDWPKVaYzEFtJ8J3Uw?= =?utf-8?q?xFsg29kvxWzkpsUYRHyxIkXv/Tw6bPgVPbRdi6PUFtsDfyIMRjELpJu2wxO4to/u+?= =?utf-8?q?HHOiIJN8289c3Qilnep0io7eEVdtXvPRX1vXrp19AUUHee8BcuEOl7/IyrgG3kMnf?= =?utf-8?q?BnXydJa6joLndI2K3w3YJsUeZ1A+UhB7EEQQoNcDIMwXlXGVV+qB33Y7uCarP/FUD?= =?utf-8?q?Fu6Pz8yenTjIfcBoUATMWGeS5qr5UapjfmEodQrr/9+Aur3HUsyX9lKCOcgXkPwPr?= =?utf-8?q?X7/jTKhReVauWzgtg+dc2TNHQ0hlLcVetmckZcDN5WX6Yv/wqDMPd1t1Av6SrObBp?= =?utf-8?q?CkkTW5UIwpJqDc4bAK/3uV7DZ+Yxo5Jm2emSgprpu+cflORLOAK/gp4k/Eyv/H/95?= =?utf-8?q?iPcV73EeZ1h6NJDBe9ZSSAJLSUfFOXMncOFZ1qdhg1SBmRjfXZji1Qlbw0vsAnR9A?= =?utf-8?q?m1nptvhPeWl5dR4p3xXQk8enosKax63tCKDnqoRW8dqL7yzajSjjUJrAp/e/gEi4K?= =?utf-8?q?1WQ/BSeu8AscfbW2ZGovvhtr8eXmgMJXj1s3Yia9Aga6/IVuqs0PnSHuoYVt+BPDH?= =?utf-8?q?G7WCZhZeCZhu2ynjy7YjQOFN9Q9taEpy1SwfMRp2GGpKM0mjBlCAd/s7VBHy1YiYh?= =?utf-8?q?GnoPSJISFnWFwTC/phRi1lZGrmaEIPe3+EP/44JGpCm587sVkifJVvdbE0Ji68CWW?= =?utf-8?q?Jp6cDWPRxSRjYNz1UtUBCanVyLKXLiCQyqXtBX1w+hIEITHrUqvTjk0qAcuiDL+S2?= =?utf-8?q?O48TXR9rj0E/?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9a9ce93a-4afa-44b4-09b5-08dd763e873b 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:48.6263 (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: nQtYEECx/LHV1EjAxL14zy1nOAinZ0RorurqKPj8fHRLCsVlzHy0hSVw7pfv4dhQajwFd8QVNe54f0MzHRmQOg== 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 cs42l52_platform_data from sound/cs42l52.h to driver code - Drop sound/cs42l52.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, the device remains in Power-down state until RESET pin is brought high. 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. And the binding use reset-gpio as example, not same as driver using "cirrus,reset-gpio", and there is no in-tree DTS has the device, so all should be fine with this patch. Signed-off-by: Peng Fan --- include/sound/cs42l52.h | 29 ------------ sound/soc/codecs/cs42l52.c | 108 +++++++++++++++++++++++---------------------- 2 files changed, 56 insertions(+), 81 deletions(-) diff --git a/include/sound/cs42l52.h b/include/sound/cs42l52.h deleted file mode 100644 index c20649666abe5dcbbf628f6c2d1692d3e7190eeb..0000000000000000000000000000000000000000 --- a/include/sound/cs42l52.h +++ /dev/null @@ -1,29 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ -/* - * linux/sound/cs42l52.h -- Platform data for CS42L52 - * - * Copyright (c) 2012 Cirrus Logic Inc. - */ - -#ifndef __CS42L52_H -#define __CS42L52_H - -struct cs42l52_platform_data { - - /* MICBIAS Level. Check datasheet Pg48 */ - unsigned int micbias_lvl; - - /* MICA mode selection Differential or Single-ended */ - bool mica_diff_cfg; - - /* MICB mode selection Differential or Single-ended */ - bool micb_diff_cfg; - - /* Charge Pump Freq. Check datasheet Pg73 */ - unsigned int chgfreq; - - /* Reset GPIO */ - unsigned int reset_gpio; -}; - -#endif /* __CS42L52_H */ diff --git a/sound/soc/codecs/cs42l52.c b/sound/soc/codecs/cs42l52.c index cd3f92c19045ad32f1f0f0f1764390640d68eb10..e56faf6e45c2bd4303350ed088fb28f2b9d9c1e2 100644 --- a/sound/soc/codecs/cs42l52.c +++ b/sound/soc/codecs/cs42l52.c @@ -8,27 +8,26 @@ * Author: Brian Austin */ -#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 #include -#include #include -#include #include "cs42l52.h" struct sp_config { @@ -36,6 +35,24 @@ struct sp_config { u32 srate; }; +struct cs42l52_platform_data { + + /* MICBIAS Level. Check datasheet Pg48 */ + unsigned int micbias_lvl; + + /* MICA mode selection Differential or Single-ended */ + bool mica_diff_cfg; + + /* MICB mode selection Differential or Single-ended */ + bool micb_diff_cfg; + + /* Charge Pump Freq. Check datasheet Pg73 */ + unsigned int chgfreq; + + /* Reset GPIO */ + struct gpio_desc *reset_gpio; +}; + struct cs42l52_private { struct regmap *regmap; struct snd_soc_component *component; @@ -1090,7 +1107,7 @@ static const struct regmap_config cs42l52_regmap = { static int cs42l52_i2c_probe(struct i2c_client *i2c_client) { struct cs42l52_private *cs42l52; - struct cs42l52_platform_data *pdata = dev_get_platdata(&i2c_client->dev); + struct cs42l52_platform_data *pdata; int ret; unsigned int devid; unsigned int reg; @@ -1107,50 +1124,44 @@ static int cs42l52_i2c_probe(struct i2c_client *i2c_client) dev_err(&i2c_client->dev, "regmap_init() failed: %d\n", ret); return ret; } - if (pdata) { - cs42l52->pdata = *pdata; - } else { - pdata = devm_kzalloc(&i2c_client->dev, sizeof(*pdata), + + pdata = devm_kzalloc(&i2c_client->dev, sizeof(*pdata), GFP_KERNEL); - if (!pdata) - return -ENOMEM; + if (!pdata) + return -ENOMEM; - if (i2c_client->dev.of_node) { - if (of_property_read_bool(i2c_client->dev.of_node, - "cirrus,mica-differential-cfg")) - pdata->mica_diff_cfg = true; + if (i2c_client->dev.of_node) { + if (of_property_read_bool(i2c_client->dev.of_node, + "cirrus,mica-differential-cfg")) + pdata->mica_diff_cfg = true; - if (of_property_read_bool(i2c_client->dev.of_node, - "cirrus,micb-differential-cfg")) - pdata->micb_diff_cfg = true; + if (of_property_read_bool(i2c_client->dev.of_node, + "cirrus,micb-differential-cfg")) + pdata->micb_diff_cfg = true; - if (of_property_read_u32(i2c_client->dev.of_node, - "cirrus,micbias-lvl", &val32) >= 0) - pdata->micbias_lvl = val32; + if (of_property_read_u32(i2c_client->dev.of_node, + "cirrus,micbias-lvl", &val32) >= 0) + pdata->micbias_lvl = val32; - if (of_property_read_u32(i2c_client->dev.of_node, - "cirrus,chgfreq-divisor", &val32) >= 0) - pdata->chgfreq = val32; + if (of_property_read_u32(i2c_client->dev.of_node, + "cirrus,chgfreq-divisor", &val32) >= 0) + pdata->chgfreq = val32; + + pdata->reset_gpio = devm_gpiod_get_optional(&i2c_client->dev, + "cirrus,reset", + GPIOD_OUT_LOW); + + if (IS_ERR(pdata->reset_gpio)) + return PTR_ERR(pdata->reset_gpio); + + gpiod_set_consumer_name(pdata->reset_gpio, "CS42L52 /RST"); - pdata->reset_gpio = - of_get_named_gpio(i2c_client->dev.of_node, - "cirrus,reset-gpio", 0); - } - cs42l52->pdata = *pdata; } + cs42l52->pdata = *pdata; if (cs42l52->pdata.reset_gpio) { - ret = devm_gpio_request_one(&i2c_client->dev, - cs42l52->pdata.reset_gpio, - GPIOF_OUT_INIT_HIGH, - "CS42L52 /RST"); - if (ret < 0) { - dev_err(&i2c_client->dev, "Failed to request /RST %d: %d\n", - cs42l52->pdata.reset_gpio, ret); - return ret; - } - gpio_set_value_cansleep(cs42l52->pdata.reset_gpio, 0); - gpio_set_value_cansleep(cs42l52->pdata.reset_gpio, 1); + gpiod_set_value_cansleep(cs42l52->pdata.reset_gpio, 1); + gpiod_set_value_cansleep(cs42l52->pdata.reset_gpio, 0); } i2c_set_clientdata(i2c_client, cs42l52); @@ -1214,18 +1225,11 @@ static const struct of_device_id cs42l52_of_match[] = { MODULE_DEVICE_TABLE(of, cs42l52_of_match); -static const struct i2c_device_id cs42l52_id[] = { - { "cs42l52" }, - { } -}; -MODULE_DEVICE_TABLE(i2c, cs42l52_id); - static struct i2c_driver cs42l52_i2c_driver = { .driver = { .name = "cs42l52", .of_match_table = cs42l52_of_match, }, - .id_table = cs42l52_id, .probe = cs42l52_i2c_probe, }; 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);