From nobody Tue Apr 7 14:04:56 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011034.outbound.protection.outlook.com [40.107.130.34]) (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 CCE11387378; Wed, 25 Feb 2026 23:55:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.34 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772063724; cv=fail; b=XYR19nUCJO8H5NWv1d0RpdfUnIZGEf5nNwQ3BxcgpVnW0L94tLgho+D3IF9HCjRZHDI2NEF3d6reXo7OnmB32gPvHw1crQyX80YsqvG/bJUdjq9Qpu16+zxrvZ/ULlb30q6MXi3YSEb6hiOPdp1Apr5ijINqcgTnLJEukvCq5ec= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772063724; c=relaxed/simple; bh=R+sFjmiU24arthVzr8KSPc7GoQZUvHpvfgrliX83zYY=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=q4DnD8ztxC51uUeg2YjpeEK/3ETd9x5eKsNwCYXIr6nd3Vz4LJpadRSLwVIPoe1+Zz50Fq9hFAg8W2kTZlknYDe7PZOw73nKXZeeKU+2I+yYjlrWg0hTcVHskODPgG8U8Iw67azdXcOrnaW+csFcqHXBgmb2m37VbUB5hczSqac= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=oJ0KN4Ic; arc=fail smtp.client-ip=40.107.130.34 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="oJ0KN4Ic" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=iw3yiTn0BdlmiCqDWwEY509SslMm+Vh116WkHgZFBnvOkpMgEpY2n9nY6f6O61xEim4+WB0HsoBDOlDzBp9YDTPmNt94EY9H1ur1ENqp2/AyNAESHDCxuO35ZjX85YcKGewZfliEdop2VOmaeeOvYwYXuK2WExv9WTbH+pnYJNSOxNCV74VmwpI7D4CCWRrEBRMa8HPS+W7JBiuvQWEsLkEB0Sd2v2D/Urd4ntY21Sl+ATJ94KPout371gzQpuTdOflmyhHzBl54DtXu2Bd9/FU+Bbd6Ei5hQ38PIjiBy1400nSYY5KPoEklijSKArh/R2IcCBHI7zYICxSd2craHw== 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=+scYNF5xd6xXB+7r0j5hCGjS868yaJZfaEBtEEMZbKg=; b=gBvKLAfXTAiX4EeESVQQsQwU7JYvLgRCQ4D02i2l6xHflFXOtWS+ieey87l+KPWMCChkQ09cceG3WhgdWoFCNHoh21qxMyQRRRFFjbgJ9mQJ+8yJLCIr3SngjqM29kggKMMeCa3Bx+Ea+GDNwPFRXUvmyMqMFRoyIASdBkliUjvFr+GROhOGsXw8RaO8FMXLsAR91+fw7+4pTf4t/xQBqu8lEk8gUllxWFdZnhPB3MyWmUgYj6J+Wr2GKB4eFTN8jmKgbSWCfmtxWCmivVlzHkDHt+VIgdj5ipup7SOjMta7WbuHgUq3PyLmmBPFux0d/ooU4izV/1D2lk5ktlN/hw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+scYNF5xd6xXB+7r0j5hCGjS868yaJZfaEBtEEMZbKg=; b=oJ0KN4IcVEYTrF3gqEFT91ZppHs+KmlVfv91pWkKgBNjEWsQ7NDnxRHcB2kxOOxrf/8bbW2LKEXXk3ZXuUrdrk94LFLqln6zSAn4CPxJ/1/vshsnxP9JAoe3hxF6ItXgXPjbbAaeHASnkQ9X5gAEEpiOZDJTF8bCL2P+Jket9sUJPQ0iUj34UwUw89vSTrw4lmOAIUopjnnCxcxErpKfnDQTBaT7vkYCuqVGOL4BZIUV957Qr6e+KlHFV8tG1HmX92Csx5GLHrzOJZ944t0XU31oxXNsJ20DxGLd+WZnIa+7I9231yO3Oho+91VAZgekeCzmC+UHhTyy/kadQtsIJA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB9366.eurprd04.prod.outlook.com (2603:10a6:102:2a9::8) by AS8PR04MB8771.eurprd04.prod.outlook.com (2603:10a6:20b:42c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.13; Wed, 25 Feb 2026 23:55:20 +0000 Received: from PA4PR04MB9366.eurprd04.prod.outlook.com ([fe80::75e4:8143:ddbc:6588]) by PA4PR04MB9366.eurprd04.prod.outlook.com ([fe80::75e4:8143:ddbc:6588%6]) with mapi id 15.20.9632.017; Wed, 25 Feb 2026 23:55:20 +0000 From: Frank Li Date: Wed, 25 Feb 2026 18:55:05 -0500 Subject: [PATCH v2 1/6] mux: add devm_mux_control_get_from_np() to get mux from child node Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260225-pinctrl-mux-v2-1-1436a25fa454@nxp.com> References: <20260225-pinctrl-mux-v2-0-1436a25fa454@nxp.com> In-Reply-To: <20260225-pinctrl-mux-v2-0-1436a25fa454@nxp.com> To: Peter Rosin , Linus Walleij , Rob Herring , Krzysztof Kozlowski , Conor Dooley , =?utf-8?q?Rafa=C5=82_Mi=C5=82ecki?= , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, Haibo Chen , Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1772063713; l=6437; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=R+sFjmiU24arthVzr8KSPc7GoQZUvHpvfgrliX83zYY=; b=6NtvY/hCjTrdb3IuFV6qSSX0b9Auk8eeCsZuEkFMbld1bwBvu8m3Q4Zsygu1fSQoNB5NoSFoN wLG4Dv4YX7lC/VA5I423X3aBpFvev1vcgRZ4Ur15Aq3mtZuRLyoAyUi X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH8PR02CA0020.namprd02.prod.outlook.com (2603:10b6:510:2d0::9) To PA4PR04MB9366.eurprd04.prod.outlook.com (2603:10a6:102:2a9::8) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR04MB9366:EE_|AS8PR04MB8771:EE_ X-MS-Office365-Filtering-Correlation-Id: 87a47117-3748-4e63-6618-08de74c95536 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|376014|7416014|52116014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: DfSTUqu+OqWrnr53WuLc2r3IhHVFwfhFCVkL4ZHzJOanPCJBV1euquWzqx1xTlVYOwZfkLT1q1KhPsH+57OOhFETE1NUuj5BDVgKJLyPgyMMsd90qioZ6YlwAQ1f7PvOlCozH4duwRH1t90469Zn4Kbxcn7Gc53iVJBKyXtLGJRXtdwSwtSxzot3P7I9iZCEp1bnydNCGbagdPzNfpKmamIWsoNG5GTx/Xyy9YodofrORSY00T/FvrdxxLBY3sdTt4thvsgPHc7yPs9603KGkOhCGHk1qdDws8ROKZB0mdfYdY28lQ8+izPLF4yEPSADnZDYdvAMxry5HVBwlBs/V97ksbq5TW2JukczaO/QNldyo17E3zeeSe8L0lfwFiNW9icOHmMqqO51p3J67W8IiomG/gwSaeoB4WKcf99GdmXhQHjTC/S2hDTOjbHrGnxEr2+Mdv/OHqFgjy1jRD5KVQQL7H2PMVKSWD92ud52fnFojW8L7rX+o11/HQqLzva3KduPVPoQS414eCNblC7YBaqUtizX1KoRlrF2cwuqpYHPLe7A0RkRN7ls3T7eTmlx/TPye7pH9wXFA+m8Xh756aCc9l/qAW705yac1Qzdg4Jq1f2qUHC4LtNDUxEHKSQPJ6NJG0XPii0PvielOva1uye2X75EMXCwC1uCQVQru5CLNjMKB2PUxw0LpgCZ1bXsA/EhXj8JuZxBhkdTwpiAL4MqcOSIXUjT54pkZZFe+Utni6wL9WNqb6gOlQ5vGJu0QAGgohe2KePxJEeE+pdFGrs8V0K+S5bZpf7QeFByAW0= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9366.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(376014)(7416014)(52116014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VE44VTA5eDU2TlV0L3V2U1I4NDllbXlYSzd4RThoUEFNRGtEYmlrTndvMTlZ?= =?utf-8?B?Nm5UY29ZVGQ3bEdURXozRHpTejVPWk01ZFV4SVJuSkE0ZU5YMnlSTW5mUWlK?= =?utf-8?B?dFRIYURpY0FidkNsL3dXTy9JMmEvd1FObkViMDlvODZoMFFodjYrVkNYUEpI?= =?utf-8?B?NW5lSnFRVTN0cVU0M3FxdkpDZzNZUWRVRHdRZ3hBTVVsWkxQb05kKytVVTdj?= =?utf-8?B?UUEzQzdlUEltcGxlS2Y5VEdNaVozWFZQSGVOTGcvblE2SEJHcGE1Z3V1UzRm?= =?utf-8?B?aFFrTWN4bHNmTHNIZWgwNXZFV3ZJTnArWTdHSHpreEovZzdGNzZHaFVQUEZL?= =?utf-8?B?UnZuckkwTVNpMzZ4c1dLWTV5aUVLQnZaeS8wdlVqdk0zb3RVSUtOc2daWnlZ?= =?utf-8?B?ZkhXclhVZk5HL053ZkwybkJ1SDNmT2tMYmVTTGNOQS9aa1JTTHZPNlNsWXNY?= =?utf-8?B?MWE1MHJPWUpVQjBEL3djWnpxeVl6ZHkxdm5PY2dnVi85Qm94c0VLa3lSRWps?= =?utf-8?B?VFZ4TXE2S3pVTDk0V09pRWdXNDZMM1JkOUxwNXdhakp2STd3SWlHNkR6Mk0z?= =?utf-8?B?OWZBaFNjV0hLbkdyMzcrTTM4K2t4MVJZYm5RaFRKUFFYZm1KbkRERDZwQk56?= =?utf-8?B?a1VvZE9MSWNFdlFXeFIxZVZQRjZmZGZwUVJvUkRPSXRqSExXQ1hRWGRvcHY5?= =?utf-8?B?Y282OUFMSStkWUx0VStNcjVRcHc2ZXRmeUk2aloyMEZvMWlLNk9yZk1ZRit1?= =?utf-8?B?L1FPYnZmS243TW9kZVVzQ1FIdlVXckhYaG9CUGo3VzJEYVdXKzl4TTQyU0Rk?= =?utf-8?B?NXRtNHJqaE5ZWm9iL3FlVXBOcDdGbFJLd2RQQzRwTGg2V043V0RFV3MrZzlm?= =?utf-8?B?OCs3dlFzTURJTHQ2R2Q4b0tRdUdSK0s1cnh1anNhZTcvRDRqbnFOVE9DM1Jx?= =?utf-8?B?YVVqbDhmdU9seU1aWHBONUt2NXpVeWFUSEFkK0NZOW0wTEJLYVI2SERRbXJm?= =?utf-8?B?VGFkbzNmMW1PVFRpT2k4TFUwTUhSQ1Vkb0tyOWFQeGpvTUNRM3lmU0k5SUhr?= =?utf-8?B?UGl1NnhpQ0FoQlZCU2JsYWRDSnRXd3B2anlhTTUxRGFCaVRLaFVNT1g5QkVy?= =?utf-8?B?TlBlSktSS0FJa1hOSHl2SVJEay9KQzRreEhaWmhIYWlWQ3dISUYwMlhKMXRk?= =?utf-8?B?NGNaSHZiWFpOSVdIdWtXKzNBZW9yTGtpR0dnL0d3V1ZSR2RJWWFVOW5obEMr?= =?utf-8?B?ZVY4SDRDRlVudk5hK3ljMGkrZUJaVkt1eU9QZFRGdERZTXNCYjRZYVgxa1lX?= =?utf-8?B?VGEyZTBNK1N2MEpqYmF3VzMxdC9IWkU0bkZmcGZHS09nMUNHb3hzMHN1Y3dq?= =?utf-8?B?RHhNQUhIeWM5eTAxQmp1ZGtZT0RWNVVmanFING9VcDN6bENNTTcrR0t6WHpz?= =?utf-8?B?MkoyNlV3bjVUUDI4YUJ3eDRwbGZrQnlERFc2YkZxalZlNzl3ZkYwMjgzL3FQ?= =?utf-8?B?cEE0SUVwcFlMc2hIQzJtMmFVZmxScFhCeUt2WXkyTFRxYzJ6R0lJS2pER3Fa?= =?utf-8?B?NENEczRmRXNMWHNid3JRdjIzRm1VN1F3ak1vS0svM0lrZVlvb1M1bVJOQ3Vn?= =?utf-8?B?OUNFSVE2QlgwS1N1SisxS1YrNkNmVkNmZ3BVRjgySXJLL2tNN1RyY2ZRUlkz?= =?utf-8?B?aGRlMUdreXBsd0RBaXdFSnc2NmpveUVwbGhyTG8zSVE3SXdmR1JHNnh4U0k1?= =?utf-8?B?QjNJb1ZadFQrUzJnZnM3eTlUTFhTbVdtYjh5NlUrUkw4OGIyUUhUbkhnY2Vi?= =?utf-8?B?d0wzS1d5aE1NS29SWncwOVRJU0tKRGJvNndjZW5vYkE5K3pndkJ2MEFXQVl4?= =?utf-8?B?R1Y0d1B6V1FLUDMzQksyV0hKNjZtS3ZGR3FuUXJzNUNFVUpQQm81UGRWaUlH?= =?utf-8?B?R205d2VMWmJndkRCOGxvYmdOWExCUlpaVHUwVUYyL3R4RXVKVTQ4dVo1aDE4?= =?utf-8?B?V29CNnJOWi9jNFFLbGxpSk1vUjA1MS90WmZ0RXVHSCtwUmdRVm9xQWhYNmxX?= =?utf-8?B?cExQSldidWZJSElpc3U4eDhDRjh3RjBleDVvekZ3d2h5ZXZuOVdXd0YwcjRl?= =?utf-8?B?K3JBc1dEN05ra3Uxa2VqVTFCQ25mb1NLKzZNSEo0Qnl0NDl2ak9TcXFrOUQ2?= =?utf-8?B?cnExak5PWU9uVEY4MVZhdmszY0U4VE5LUC9pNWFIaDdlZmhxSnE0MUdRckd0?= =?utf-8?B?amdOUUpZWFE0T0tVczdjc25ybEVjV0dONzY2Q1YwL3FiTU4yeTltelJrMjM1?= =?utf-8?Q?GZ+GHFjoOL9EmH1gFx?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 87a47117-3748-4e63-6618-08de74c95536 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9366.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2026 23:55:20.1903 (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: 0IUG+FeXI4xqvPdjGa/I8Ts/2WfOqVjWoiME2YMF0hbMXIoKVrrxdBO57DtaMNTTd6SEwywrkHCcf5xu4TkgAw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8771 Add new API devm_mux_control_get_from_np() to retrieve a mux control from a specified child device node. Make devm_mux_control_get() call devm_mux_control_get_from_np() with a NULL node parameter, which defaults to using the device's own of_node. Support the following DT schema: pinctrl@0 { uart-func { mux-state =3D <&mux_chip 0>; }; spi-func { mux-state =3D <&mux_chip 1>; }; }; Signed-off-by: Frank Li --- drivers/mux/core.c | 40 ++++++++++++++++++++++++---------------- include/linux/mux/consumer.h | 16 ++++++++++++---- 2 files changed, 36 insertions(+), 20 deletions(-) diff --git a/drivers/mux/core.c b/drivers/mux/core.c index a3840fe0995fe0125432d34edd8ab0f2cd1a6e9a..bdd959389b4ee1b0b8a7367fadf= 2c148c8f2f0b1 100644 --- a/drivers/mux/core.c +++ b/drivers/mux/core.c @@ -522,13 +522,15 @@ static struct mux_chip *of_find_mux_chip_by_node(stru= ct device_node *np) * @mux_name: The name identifying the mux-control. * @state: Pointer to where the requested state is returned, or NULL when * the required multiplexer states are handled by other means. + * @node: the device nodes, use dev->of_node if it is NULL. * * Return: A pointer to the mux-control, or an ERR_PTR with a negative err= no. */ static struct mux_control *mux_get(struct device *dev, const char *mux_nam= e, - unsigned int *state) + unsigned int *state, + struct device_node *node) { - struct device_node *np =3D dev->of_node; + struct device_node *np =3D node ? node : dev->of_node; struct of_phandle_args args; struct mux_chip *mux_chip; unsigned int controller; @@ -617,7 +619,7 @@ static struct mux_control *mux_get(struct device *dev, = const char *mux_name, */ struct mux_control *mux_control_get(struct device *dev, const char *mux_na= me) { - return mux_get(dev, mux_name, NULL); + return mux_get(dev, mux_name, NULL, NULL); } EXPORT_SYMBOL_GPL(mux_control_get); =20 @@ -641,15 +643,17 @@ static void devm_mux_control_release(struct device *d= ev, void *res) } =20 /** - * devm_mux_control_get() - Get the mux-control for a device, with resource - * management. + * devm_mux_control_get_from_np() - Get the mux-control for a device, with + * resource management. * @dev: The device that needs a mux-control. * @mux_name: The name identifying the mux-control. + * @np: the device nodes, use dev->of_node if it is NULL. * * Return: Pointer to the mux-control, or an ERR_PTR with a negative errno. */ -struct mux_control *devm_mux_control_get(struct device *dev, - const char *mux_name) +struct mux_control * +devm_mux_control_get_from_np(struct device *dev, const char *mux_name, + struct device_node *np) { struct mux_control **ptr, *mux; =20 @@ -668,16 +672,18 @@ struct mux_control *devm_mux_control_get(struct devic= e *dev, =20 return mux; } -EXPORT_SYMBOL_GPL(devm_mux_control_get); +EXPORT_SYMBOL_GPL(devm_mux_control_get_from_np); =20 /* * mux_state_get() - Get the mux-state for a device. * @dev: The device that needs a mux-state. * @mux_name: The name identifying the mux-state. + * @np: the device nodes, use dev->of_node if it is NULL. * * Return: A pointer to the mux-state, or an ERR_PTR with a negative errno. */ -static struct mux_state *mux_state_get(struct device *dev, const char *mux= _name) +static struct mux_state * +mux_state_get(struct device *dev, const char *mux_name, struct device_node= *np) { struct mux_state *mstate; =20 @@ -685,7 +691,7 @@ static struct mux_state *mux_state_get(struct device *d= ev, const char *mux_name) if (!mstate) return ERR_PTR(-ENOMEM); =20 - mstate->mux =3D mux_get(dev, mux_name, &mstate->state); + mstate->mux =3D mux_get(dev, mux_name, &mstate->state, np); if (IS_ERR(mstate->mux)) { int err =3D PTR_ERR(mstate->mux); =20 @@ -716,15 +722,17 @@ static void devm_mux_state_release(struct device *dev= , void *res) } =20 /** - * devm_mux_state_get() - Get the mux-state for a device, with resource - * management. + * devm_mux_state_get_from_np() - Get the mux-state for a device, with res= ource + * management. * @dev: The device that needs a mux-control. * @mux_name: The name identifying the mux-control. + * @np: the device nodes, use dev->of_node if it is NULL. * * Return: Pointer to the mux-state, or an ERR_PTR with a negative errno. */ -struct mux_state *devm_mux_state_get(struct device *dev, - const char *mux_name) +struct mux_state * +devm_mux_state_get_from_np(struct device *dev, const char *mux_name, + struct device_node *np) { struct mux_state **ptr, *mstate; =20 @@ -732,7 +740,7 @@ struct mux_state *devm_mux_state_get(struct device *dev, if (!ptr) return ERR_PTR(-ENOMEM); =20 - mstate =3D mux_state_get(dev, mux_name); + mstate =3D mux_state_get(dev, mux_name, np); if (IS_ERR(mstate)) { devres_free(ptr); return mstate; @@ -743,7 +751,7 @@ struct mux_state *devm_mux_state_get(struct device *dev, =20 return mstate; } -EXPORT_SYMBOL_GPL(devm_mux_state_get); +EXPORT_SYMBOL_GPL(devm_mux_state_get_from_np); =20 /* * Using subsys_initcall instead of module_init here to try to ensure - for diff --git a/include/linux/mux/consumer.h b/include/linux/mux/consumer.h index 2e25c838f8312532040441ee618424b76378aad7..6300e091035323dd6158d52a55a= 109d43ef120aa 100644 --- a/include/linux/mux/consumer.h +++ b/include/linux/mux/consumer.h @@ -56,9 +56,17 @@ int mux_state_deselect(struct mux_state *mstate); struct mux_control *mux_control_get(struct device *dev, const char *mux_na= me); void mux_control_put(struct mux_control *mux); =20 -struct mux_control *devm_mux_control_get(struct device *dev, - const char *mux_name); -struct mux_state *devm_mux_state_get(struct device *dev, - const char *mux_name); +struct mux_control * +devm_mux_control_get_from_np(struct device *dev, const char *mux_name, + struct device_node *np); + +#define devm_mux_control_get(dev, mux_name) \ + devm_mux_control_get_from_np(dev, mux_name, NULL) + +struct mux_state * +devm_mux_state_get_from_np(struct device *dev, const char *mux_name, + struct device_node *np); +#define devm_mux_state_get(dev, mux_name) \ + devm_mux_state_get_from_np(dev, mux_name, NULL) =20 #endif /* _LINUX_MUX_CONSUMER_H */ --=20 2.43.0 From nobody Tue Apr 7 14:04:56 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011027.outbound.protection.outlook.com [52.101.65.27]) (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 4AF37387376; Wed, 25 Feb 2026 23:55:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.27 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772063727; cv=fail; b=jRMcEGYDeB/pFmeMi9k6fov+i5Hm3X9mHf4XY6AEjizRTHM4NLSItquWUlC06SLlykljwxfkq8B2TpCPhY/anWLs2mdevED/etLdc8BbdEncvUSco/Apc6zcZugI8WJ/22he+HnOTmtUHKFagC3MRSgOX4jruLzIoaXrETObX4g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772063727; c=relaxed/simple; bh=btWGdYkurNrw/wh5Mh8lqi8ZQLnjnCtGc+UyuUrAVzk=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=g+mILM5PGABC/pMzM6+PF/pdD7LS2T1+l8BZdxNV5IC6x1TW/ql8WCpa79wBmGArU/lcSpHQHO9cVDSj9zByMtgsei4RO63cjB8nRVQRe3NB8yhWUNxUYPUlxB6Vs4/X7m9ScxfJbNUiXcaZrqefpimwa5ned5vc/36guXNp8Iw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=lvtmmF/c; arc=fail smtp.client-ip=52.101.65.27 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="lvtmmF/c" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=SUh+3yHbO1sPNxI/jkzwEfXXHxB97NCGNWAIg/0+q/zLXix82RRsYSY2qPJLeSiJp0O6mUMKUmKK3xqtUJbigxEkxsR2r0TpAvEjLrbjTvqxeJx+wKj0Ni2PIMkfDWGMY0CzIvngWvKNBjHQK+v20xjMFDHQExzRAEdVrTLQ/RsJYf6XI0FO/F7FjAjKLaY5I7toA5ndIYxSMYbeU0FXGBI48RB/xNC5xTf+5vy6ZDnjlpZQwOZzIpe8oYELp5NKzX5/KJKPv8d0oWq1wV9r/tKTUlpPkpe0UqRJ6oAICQz1VjnRJAVUN8UNJHULuIuBEi4lSsxEJ8kicjPRjaxBwg== 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=1JH9RI7yi1dIyfNy+zFiYnbvdB4n3FyTSp1rg4J3sGI=; b=eXYLQeFGDTLiwQMwHhnqwUXWs7cKQCTJ7rm6Jpy8XOPuXvyZCtEDK8IIRiEDp7nvCPxJZr7u9AProukKxBSdAuhlif3Z+BysG3FDZL0NLYxd+dJOD8a7L3X2pkF01BqUisR9bEHkTI8OxqSWZmIKipMHE1hQ5if2oNiNilTvJy2njHff4ytAggz/I8Wz7vqtYmtNImfM739CLHW6V1GtF38r9sVgVlFo+cOF7Nro3d8gOP5Mi54Y8EIN7evG/56HY7fEfv+uxVsnqPTjv1knEtMyhO79JMa/ltVupfdSU/i4AgUBiSao2reShFLk8O1lLdHLt6WMyr1m8KPJ+OWS7Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1JH9RI7yi1dIyfNy+zFiYnbvdB4n3FyTSp1rg4J3sGI=; b=lvtmmF/c3jmwLjqfQl1YcKg5SqOVWnLoG2JUN7BPKkUpNwJmZjX7VwmzcYD0uyuX6STZaVkvZUreb7m1zwkRzgfw3MiBqKhVQ+XerKbbXAwo/pqR6SURvlXQ4mBBuXpPeLovzHwuU1H/m1yC9MZdDVOW3GtkN93rmrm86Ht/G9qzVTA9YeyENvkTCfjdTp7Z2gble0AvUbB+on5gZw8i5a/O8SBxUCyHe4Kew1BtGlF7PtDTIzr2n4pQ0S1d7yliOUD/McL8WxU7DurhbK58cK4E/NzIoCFr3140cVkTmlZsmIAGRF7fL3bnwcWRqaf/5AFdD2MqORg8+k8s8hlNcA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB9366.eurprd04.prod.outlook.com (2603:10a6:102:2a9::8) by AS8PR04MB8771.eurprd04.prod.outlook.com (2603:10a6:20b:42c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.13; Wed, 25 Feb 2026 23:55:23 +0000 Received: from PA4PR04MB9366.eurprd04.prod.outlook.com ([fe80::75e4:8143:ddbc:6588]) by PA4PR04MB9366.eurprd04.prod.outlook.com ([fe80::75e4:8143:ddbc:6588%6]) with mapi id 15.20.9632.017; Wed, 25 Feb 2026 23:55:23 +0000 From: Frank Li Date: Wed, 25 Feb 2026 18:55:06 -0500 Subject: [PATCH v2 2/6] dt-bindings: pinctrl: Add generic pinctrl for board-level mux chips Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260225-pinctrl-mux-v2-2-1436a25fa454@nxp.com> References: <20260225-pinctrl-mux-v2-0-1436a25fa454@nxp.com> In-Reply-To: <20260225-pinctrl-mux-v2-0-1436a25fa454@nxp.com> To: Peter Rosin , Linus Walleij , Rob Herring , Krzysztof Kozlowski , Conor Dooley , =?utf-8?q?Rafa=C5=82_Mi=C5=82ecki?= , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, Haibo Chen , Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1772063713; l=4412; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=btWGdYkurNrw/wh5Mh8lqi8ZQLnjnCtGc+UyuUrAVzk=; b=3pkgWEYdsQVt6UMSP+VqPDmpXBTgHnJqpad8+cAhB45zVFwyJ4ufdrpUiLyLvOWveClH+ijCi dePsX5x1T58DKFGfIVw7KSigZR9UUytmTEXJJkf3vuRIscT9VPHn7/k X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH8PR02CA0020.namprd02.prod.outlook.com (2603:10b6:510:2d0::9) To PA4PR04MB9366.eurprd04.prod.outlook.com (2603:10a6:102:2a9::8) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR04MB9366:EE_|AS8PR04MB8771:EE_ X-MS-Office365-Filtering-Correlation-Id: 1c7fce30-ba97-467d-0b9e-08de74c9574b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|376014|7416014|52116014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: XwL++BVItD2Bc7kwpY8uPjdvZc4DnWa3gvQe6nXKelkWk1QJY4tZOvWoSM1JPaUDre0uqQPisEQdNu9aqA4ZPpJIJdDoY5wDLS3RKeULoLnRkhJI3tzE9a/o5nue051GBgUYDmJweDY6O1qn6r7uxeB/2FMC+pVzpTl7L1ddFlxA/wbcKdwmMaHV1n0tyTKGEG2elaMw1rnlXzh0YLkXj6yGF2e5epN9kQgQJX9PYuAi5gmqKTmubCvbX/yLW+8qDAA+o1a1bRPznK8s056o67J9Koo7dMB2fnCiAOTX2+Gi3xnRICSkhT2RAkpMe6H5rCPN/jVpubH+6wuUVh1Zark23O5MKmhQnu3Sr1Mby9SiTUKq5ZQy/Q6Idng+/T6YsnBfYIu3XuO5LI0jOPDYQ8dbhYjOm/xiGyGuel/f7P42WdWmGimLGyhtoIMkHuMwatugMHzJjSLG5ZbXWfIZqYkrjiLg6bjGJHq/o5dPUl64kqRGFZsLnrjw3tLmXRvY5B4jrLjVvShHMVgscZishXaXsqZWDrPBVxBiADMEcAQIAHDNxd56RdNeAuLDIjOHn2HgjFrz2Z+UWY+ryvgAkqDklFdC+n0/QoH+0zp4EEF/2jYXBrG2lAUCx1V+qJIjBhheiUExi9SnIN7E8P/jg//SR5sr6SrzSxbR91JgoDMnZmnZOUJlUQ6TLoEqO3XlInvIiJU5dU3yWMvVRhg105biDLeSCDv9pTE40L4ueSfvf7Y2SYqbFhsjtMpJpb3VsE+IJt39zFoYVqAtS7P/VDajqVLqGN7+4pAcjMz4i1+ITB1dKhtTBtzBkMRvqqyt X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9366.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(376014)(7416014)(52116014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NTVJZU9OZ3NCV01xaFJRQ0xXTFNVOVZCRXUzaEZDTFJ1cnJEeDBKamZDa2VI?= =?utf-8?B?OEI3aXdlbmpFQ0dpYThKM3FIWGlqUkhlUnFPdVkrcVpVYUlxcGxwdWVURVFO?= =?utf-8?B?L2FBdlRQQTlUdTcrbWIvdm8xY2VBNk5maU9Wd3lxSkZob3pvRU9pdnlTT3o0?= =?utf-8?B?RGRYdXBiVTJkb1lrMUJURDduYUVHUkNKZHVFeTJxeFpKOWt6cm1uSmN4Vmtk?= =?utf-8?B?ZkVORStITnFydDJnL29BR2RIL0tKWS9uNXhjUi9uS3RIdnpzVW5Yc2M1Vm8z?= =?utf-8?B?TXFCY2pWSDR5VEJRTGZqaE1qdVJqaHdZdVBKWFh1eGxkdCthcStqSGpCRnRC?= =?utf-8?B?VFB4dnhqV0Rpc0lCWjdzZU5UYzhtVnFVUTFtMTR0OHE0OXNESU9ocFJjQ01N?= =?utf-8?B?RmlZZ2xCbHA3MWlFUmVGZFZBeXVlVzlKRXEvZ3YyRDduOTI1U2dZYlNRZGlK?= =?utf-8?B?V29iWENJQS8zMUY4U1BxR2VPSUJHOTh3SHNyM1pEdUptMFIva2pieGNVWkgv?= =?utf-8?B?c2RxdzJvRGJ0dGgwZkpSL0dBMmpqYXJsVDJmYlZYaGJNMVVkZ1IxM1dPKzFw?= =?utf-8?B?MXJZY0gwblJqdU4yWGNrNklEOG52WnlmeHh3bEMwd1V4WVFTbjRtKzlCSmI5?= =?utf-8?B?WnkrV3VhV09nRVN5T1NUREFqQy9RMExHTk00K3dJQkN5ZkNCcUVFUjZNeHlJ?= =?utf-8?B?bytEekhRNnVmb25YMVlBL3NJOUpURzZrU2VURW56RG9Xb2lzVDBVTFlhTzFZ?= =?utf-8?B?MVo1a3NJR01TTGZjNk4ycDhXMGk4bW5GMzJoVDk5UWtaL2Z3NGsyR3VnR29q?= =?utf-8?B?QVpTeGk0N21CT3c1VGJHTzl6dDVWWlQ2RVJuTktkR2JWVWlBelJDS0Z6SnVG?= =?utf-8?B?cFYvZ29xdFRERDV2RytrQjhTVVRQUkRPaEVEK0l3WjNPTWUxKzJlTHJ3M1VH?= =?utf-8?B?bU5rTHJhMVl0d2Z5aU9SOTU0a0I4bHBrckFxc2Z6SWpmT0M2cEZRQ1RSU3ZN?= =?utf-8?B?LzJxa2MwY0V3MFZaZzc0UGRCdG4vTC9McW9mYTNERFJhTm5EanVCR045SWJp?= =?utf-8?B?V3pJeU96b0JlV0pqVVZPeEtGdWRISWt2YzV0WnlGK3hpSXlNaHphRTdURTFz?= =?utf-8?B?bEpBZ0VFS2dTMFE3Uk9TeTNFZHhsRDR2TWkxQmpWVVFYdm9KU3MwZVk3ZjNJ?= =?utf-8?B?dGlreVdBUUorN1VPTmdkY2F2d3o5aWx4eWJWWVBMVEZPdENNQmlzQjJ2WGJP?= =?utf-8?B?TFZHRnZTMTZEeDhNdXh4dHBvNHZDK1RjR0kzcUV4c2dIbTE4azlTY2VJdGRn?= =?utf-8?B?aG8rTXVaQVZhOTE4U1NVOXlkSHNWdGhPbUcvanNwcmF1Y3NhTDFTOGVhSmRl?= =?utf-8?B?S1pxcEpFYTNqZGYzVHh6K0JmOG44WjN3UzFUL2V5Q3VXMWFkUEoxYnNrNzNw?= =?utf-8?B?NVJCbjVlWmI4RGpGcmhkK0YvTVJwVGxLV0FTQjU0UlErY3RmbTZUR1NjQXRx?= =?utf-8?B?eVpZekZ1M090UFZGQmVIa0N1YVA0ays3L1dlNForR3pnWm53Y0RoWG0rN0dl?= =?utf-8?B?SXJQWjIvVXNmdVYwN0l1WVJUOHU2bzcyRkRuY3FyRGZnWWY3b0VwUUtmWXg5?= =?utf-8?B?RUx0Qy9pSXJvaTI2Rno3WVVxelExQnloWkZ1ZzhtR3o2dWd1L0JlTXVxc0o5?= =?utf-8?B?T3ExZ1ZwbnpORk11SzIzaVBTVEhmQjV4eWdwbUJydURTUkdQRWpvSjQ2U3lT?= =?utf-8?B?VkVWMy85THo4Y2paY2VmZDI5c1ByRURQTERRTUdhOWExcUJlYUdDazhaN2dh?= =?utf-8?B?WUdUenZ2T1RWLzV0aytKdnRDTVBZeVdQVmd4Ym1kUkh4eHRUUTc4dU1yRkVV?= =?utf-8?B?MkoxUGNRYzNlajI4OFdHS3M4eVlFZWNqdnAyYlkwbFdxcG5tZlh0eGQ1NnEz?= =?utf-8?B?dkJJMmRLNGlIaExQNW84WksrT3hpUnVsN2ZOZXNlNnF5dmNYNHAzSXJmWmNV?= =?utf-8?B?aW91SlJjZHhuc0pEK0U0Nm1pNElvMUNCVXZYYVIvSlJOWXhUUk54N3J0QWpP?= =?utf-8?B?eXQ3SnNyMnRWVEd6eXp5Y05sV1JKa3BKWmZxZGhocVFUNlllTmtzSDk0R1VC?= =?utf-8?B?TjNHWDFCY2FiV3FuekN3b2hnM1h2MlRIdWhma1Jlc3FYSm1sRU9uaVBjSXo0?= =?utf-8?B?Y0NMWnZLWEZxVUpvaTVhQnFvVWhQTEVjQk5oRTYyRFlJYkJPd2tHbGdtTUhU?= =?utf-8?B?TUU4Nks3SDdTWnQvZDVjdGpxZCtoeXZvaS8xUHJOSkNDOTd3b0FudndSanRi?= =?utf-8?Q?TNTveH7XQi92PY3dHz?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1c7fce30-ba97-467d-0b9e-08de74c9574b X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9366.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2026 23:55:23.6478 (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: QWPTPa2k5eXotqtuIK3FETbeVRV0wPJp0qdCRRWOKFbAkNzVJcSjNTi4K6gO7LikqLLSEMTpJDJEjkczk6suSQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8771 Add a generic pinctrl binding for board-level pinmux chips that are controlled through the multiplexer subsystem. On some boards, especially development boards, external mux chips are used to switch SoC signals between different peripherals (e.g. MMC and UART). The mux select lines are often driven by a GPIO expander over I2C, as illustrated below: =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 = =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 =E2=94=82 SOC =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=8C=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82=E2=94=80=E2=94=80=E2= =94=80=E2=96=BA=E2=94=82 MMC =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82 MUX =E2=94=82 =E2=94=94=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=98 =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =96=BA=E2=94=82 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=82=E2=94=80=E2=94=80=E2= =94=80=E2=96=BA=E2=94=82 UART =E2=94=82 =E2=94=82 =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=80=E2=94=98 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=98 =E2=94=82 =E2=94=82 =E2=96=B2 =E2=94=82 =E2=94=82 =E2=94=8C=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=B4=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=90 =E2=94=82 I2C =E2=94=9C=E2=94=80=E2=94=80=E2=94=80=E2=96=BA=E2=94=82 GPIO= Expander =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=98 = =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=98 Traditionally, gpio-hog is used to configure the onboard mux at boot. However, the GPIO expander may probe later than consumer devices such as MMC. As a result, the MUX might not be configured when the peripheral driver probes, leading to initialization failures or data transfer errors. Introduce a generic pinctrl binding that models the board-level MUX as a pin control provider and builds proper device links between the MUX, its GPIO controller, and peripheral devices. This ensures correct probe ordering and reliable mux configuration. The implementation leverages the standard multiplexer subsystem, which provides broad support for onboard mux controllers and avoids the need for per-driver custom MUX handling. Allow pinctrl-* pattern as node name because this pinctrl device have not reg property. Signed-off-by: Frank Li Reviewed-by: Linus Walleij Reviewed-by: Rob Herring (Arm) --- change in v2: - change descriptions for device, not for driver - add missed additionalProperties: false --- .../bindings/pinctrl/pinctrl-multiplexer.yaml | 57 ++++++++++++++++++= ++++ .../devicetree/bindings/pinctrl/pinctrl.yaml | 2 +- 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-multiplexer.= yaml b/Documentation/devicetree/bindings/pinctrl/pinctrl-multiplexer.yaml new file mode 100644 index 0000000000000000000000000000000000000000..2b0385ed879b70b24ca9c39b098= c3840d08d7482 --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-multiplexer.yaml @@ -0,0 +1,57 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/pinctrl/pinctrl-multiplexer.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Generic pinctrl device for on-board MUX Chips + +maintainers: + - Frank Li + +description: + Generic pinctrl device for on-board MUX Chips, which switch SoC signals + between different peripherals (e.g. MMC and UART). + + The MUX select lines are often driven by a I2C GPIO expander. + +properties: + compatible: + const: pinctrl-multiplexer + +patternProperties: + '-grp$': + type: object + additionalProperties: false + properties: + mux-states: + maxItems: 1 + + required: + - mux-states + +required: + - compatible + +allOf: + - $ref: pinctrl.yaml# + +unevaluatedProperties: false + +examples: + - | + pinctrl-mux { + compatible =3D "pinctrl-multiplexer"; + + uart-grp { + mux-states =3D <&mux 0>; + }; + + spi-grp { + mux-states =3D <&mux 1>; + }; + + i2c-grp { + mux-states =3D <&mux 2>; + }; + }; diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl.yaml b/Docum= entation/devicetree/bindings/pinctrl/pinctrl.yaml index 290438826c507ec6725f486d18cf686aa7c35e67..20176bf3074757de30f208e69b9= 68a6bd6125273 100644 --- a/Documentation/devicetree/bindings/pinctrl/pinctrl.yaml +++ b/Documentation/devicetree/bindings/pinctrl/pinctrl.yaml @@ -27,7 +27,7 @@ description: | =20 properties: $nodename: - pattern: "^(pinctrl|pinmux)(@[0-9a-f]+)?$" + pattern: "^(pinctrl|pinmux)(@[0-9a-f]+|-[a-z0-9]+)?$" =20 "#pinctrl-cells": description: > --=20 2.43.0 From nobody Tue Apr 7 14:04:56 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011006.outbound.protection.outlook.com [52.101.65.6]) (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 D5956387343; Wed, 25 Feb 2026 23:55:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.6 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772063731; cv=fail; b=IolRMP8KYnWYgbw9cRl8fF8Uwg1ZoQxZJ9xHyNDYpf3Mb0qYvkifc94DZwGTt+68gEVxRKPnaW3iNjnBuDwyDwQQnpoDYkuTQhQU5OYQL64NjFcKLjThmLaBebo9rKJgdLX93TFArLSupE99ZUf99nNj5UQ+9JCcnc3MN0egJY4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772063731; c=relaxed/simple; bh=o3Eabt6YHmDFwC6shU4Pa4Ph5ynfQCQ49worcIk0aWI=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=rnykix1t4cGwcnqhlbhYKz9M8Z5RGdJSqsuCkMMh3Q+Rs8EqU8UOZzFkTEl9VywSBk6UYIb6R/JXDyHo47lAddMEyZ1prt61Uw7s5VNAREjXYcY60z36F8iAxGxx5/hKqQLOPkIcH9xUR1jSy1YvEHmhgtfuWORvA6jLc8s2+tY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=FukuZ5SX; arc=fail smtp.client-ip=52.101.65.6 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="FukuZ5SX" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=M0iCGVz9b1hpthGgNjNwG+YxnofkC0BxrnFwun9lLj8i+m/lpTHiZlx32178Uv8Ah4EZdHEoJAgGiQ1m6bH0oCpKgjsBRLAJKgPbh/Ng8Kr/qZXMr16GT00guAIdgLI/f0e529OcDoZIgHtcNLWmYuKro6BB3BkC2yNdl71BuVhDQYL6YYo/u+JuCJ12AGI3x8TLgZ6Z0+rcVJzzMfJcImDSzWPW7Fl9fjNntkM5N+CjbZjRXKL3lBYjE1scNakVsMjaF2cKkU77TKP5c5p4o8xm/r2pjmKCABI6PqYZntm9TJt11Yz7MfD4u5xuTOCajH/jhXgXnLjSm5RWWoSq3Q== 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=8h0u7nTX88xzaC/aqgJGgMgUsRBsXdbg2e+mBLzN19g=; b=Ds+odlg/L0NgZL3Ir+KJQp0tgX1AewOkCaGJc2wA9RWyaG2biOrnO7jRSyzWDNtGzQBT+WWSn9XED019oKvWfKk2CAb05H5m/HbOwmS0BRxweCMAmoMFjRYtMINeINDOdBgijFztwoJREatkhh2psc6tQf5dtrytUK3Jocc//dHy7gBE4Op7H9L3vZ5hzxFLY7gpsDUpLHDHZZJLiZqMS2TJ9wGHlZ92qQ0FnDT7uWc0zw/ChywEraPpZnFn9EnEk2Ltr/6u65fNgdnC/KwwpP1Y4j41YNhG7y1v5NkaxZ3sS+cc5NcnDzXgL0qwiM3EWdYTzTRAoU63ug/JisflVA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8h0u7nTX88xzaC/aqgJGgMgUsRBsXdbg2e+mBLzN19g=; b=FukuZ5SXIXuDWj9ORbWDbaNgax685wbCsLzX3vmYFV7FOIrcmAxs2lRQ7SKypgQyX3EC81COejH1i8JN1xvZVNRAw/WNcM53DxUm4jzDy35Pld6wPhInA6vnb9eNI+cJSCT/m6zSo9y1b9R6IzDgn8oY7O+BjLYQIb1ovfaI6ZIRnUEq2CoGSZ7XVyoIIObUVUWt9FOST/LbEdryc347zqLcwAFnnX+5cceQxuEJqnpEukucc6TSXAH0fQVgNkBD2d4Hoqy16unB6SaxCsVi4xhkC5HWp6X7mvWUt10F7VAUqdjIu6A7uVHLWxNURfmW2pGApMGhQR7EXJL8H5XlMA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB9366.eurprd04.prod.outlook.com (2603:10a6:102:2a9::8) by AS8PR04MB8771.eurprd04.prod.outlook.com (2603:10a6:20b:42c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.13; Wed, 25 Feb 2026 23:55:27 +0000 Received: from PA4PR04MB9366.eurprd04.prod.outlook.com ([fe80::75e4:8143:ddbc:6588]) by PA4PR04MB9366.eurprd04.prod.outlook.com ([fe80::75e4:8143:ddbc:6588%6]) with mapi id 15.20.9632.017; Wed, 25 Feb 2026 23:55:27 +0000 From: Frank Li Date: Wed, 25 Feb 2026 18:55:07 -0500 Subject: [PATCH v2 3/6] pinctrl: add optional .release_mux() callback Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260225-pinctrl-mux-v2-3-1436a25fa454@nxp.com> References: <20260225-pinctrl-mux-v2-0-1436a25fa454@nxp.com> In-Reply-To: <20260225-pinctrl-mux-v2-0-1436a25fa454@nxp.com> To: Peter Rosin , Linus Walleij , Rob Herring , Krzysztof Kozlowski , Conor Dooley , =?utf-8?q?Rafa=C5=82_Mi=C5=82ecki?= , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, Haibo Chen , Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1772063713; l=2730; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=o3Eabt6YHmDFwC6shU4Pa4Ph5ynfQCQ49worcIk0aWI=; b=zJG+9/3JwbB5542BNwStz1ie1REDIALudkZuvmNnkJCHmJZBC/w/1waO/fIQ6BrCRO+jbgdxB 9ki3KOHY6m7Dxf8Z+3aPd3HXAP2zZX0VH7KQGI+/Hn0DiTlIQF7HYjW X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH8PR02CA0020.namprd02.prod.outlook.com (2603:10b6:510:2d0::9) To PA4PR04MB9366.eurprd04.prod.outlook.com (2603:10a6:102:2a9::8) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR04MB9366:EE_|AS8PR04MB8771:EE_ X-MS-Office365-Filtering-Correlation-Id: e2d01901-110d-4e36-5d10-08de74c9595b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|376014|7416014|52116014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: lInvAiWRsQH8xT3Z701chOxDxzJ/Xqi0E0YBGb7JGphQwaR4I3kkOBJoswaYCocW7uf9HyZCteexL7hmxLV5ucOtCYNfdSxNoFSeFntk4ZYpqw13oPWE1ztenHafXSMgKSUkrLrA0hGUDq6T4TpL1ziSAeVStBc2kCHH6RPLELw3CKjdIUpdalEI9Woxu0y9aaAuayo/sW7pADl6vfU0zofKzbeNfoe2vtVOqR+38jMpJwjunUei4Nv+kFv/EbJFXO8Tnz8Az2eB8vzz42ODBhkXq/qx+jl/3jiZW5GnxG5Tgm7UG4dStytB6Gh8fmHjRyDFSggS5H7cF8FeoU8fvupAM9Qqk80Y9j/XnRCL48v5aJtYlC2NpKHXajHuWHuWtlnsUQkc1E7cqYKN85JyAjOwggEe7sF+ZvMfnVaw3Jcj4/u1oDtzbsQVSC1S3W4U/bbcZ8vEJwCzSr8AJMky/UdoZjZrQzALg/f46p9mvg0isqRjtBPVo43L8b4FlnR5B/p6wvRp7Qt5SBn2AnJtiSlVkeAZAOwvRkhcyw9Rob9aq8UZmYED5HMomrifKUTD4waNaqgcRR/cgFE+BVQJSGV7m7oiVGbZSaZ+0lQlefJ/0mHlUnRn6CuSv9M0fXWfciZo5/MZAl3VmBi2EyysvtyX3x41yltsqX/MWf4e84XQFd+w+QDXIS4aDeNY/ZjG2MKqIr1ArqkLHJXq9OWBTCmjR0oOolSP8Q7aDhywOCiv7xpfAmcDiTDoOLGLY8uicwL2Mc5RDYTXkt1byWKUW3Qxb4krUncQoQgqzkMynd4= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9366.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(376014)(7416014)(52116014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TDRzQXFEd3A5UWZNMFN5OGFSQ25DdVBKYTFQNkdSczY1bFZORVpKby9WcmRu?= =?utf-8?B?dWNEdjNnTG9GQVdyWTVLZHhUaFJiT0RCVEVxdFhTdFNyeThoTEN1MzZBRFJM?= =?utf-8?B?U2FJWXV4aU9jdGV3YUh4dHRzRnhja05RU0MwRTQ0SDYzWjJHczFQNXpmY1ho?= =?utf-8?B?SStBSEhMM0VlN3RTanRCVTFrMWt6WFJ4Z0h3dDVwRzRFNWJXSThmYWJ1ejE0?= =?utf-8?B?ZzZqc1VZcnphL01QdXZPNEc1b0U4NVNSUEI5cTVKdjhwMGNGOXFTYzdMY1Yy?= =?utf-8?B?V2tpcng5T2hJbG5yT2htL0xUby9wRmNRQXk0VHVYZE1uYjBublVFUUFOdDgz?= =?utf-8?B?SE5JbGl4MVloeEtLaFpLeWNsREJocXJ0YzV4R2E3MUg4eVdUZ0ZxV2QycjdM?= =?utf-8?B?bUhXR1BsL0RXNno0RjJGZ0U3a01PNC9ZOTZtQWJnNllpUXlvRzk4eTk5UGN1?= =?utf-8?B?Z2FCU2ExMlVkREw0YWtyK3lndklqSUgxMWpXMzN5eTBOdTlIT1dvOTBBeUlt?= =?utf-8?B?em14L3cxSUt6Rk5CYkJzcWFIcmpYVmFacyt0c0hRZGRITkU0cHR2R21TS2Vs?= =?utf-8?B?ZTQvOU4vMHJqblhhd0YzdjFwN1k0WGxMRG1oYTFTcHVsZXNlVEpPYURORmpk?= =?utf-8?B?NTFCczlMV1hPV1ZOVy93ZkVEdFhwRFpvTytuNWp1YzMvZzNQT1VVYVE0WTF4?= =?utf-8?B?ekhzbmNHRWFCU2Q4OG5TdURkNDI2TGs3UFBWM1ZtV3piYUVVQ3Z6cHpJUkhx?= =?utf-8?B?VjE4NXRnTngyR2dJNDkxWDJWc1hrTlRtT3dyQ243a0tMdmxMa0gxYWpORGs1?= =?utf-8?B?RmdlVmROb0lqY1orRXJFY0h3aUlDejZMYnVnL0lPSDdZZUlRbS80KzJrdVgr?= =?utf-8?B?RFZoYW5SUDYxMTNlc0UwVUFnbDFBMzdLbWJUbGkvWE83YkhxVXF3SGFhRTZ0?= =?utf-8?B?c2ZLYzJMSEg5SDExUVQzSmpSeEtGOE9yOUNmK0dOMXNyVnRicVFTSVB0NVBn?= =?utf-8?B?R09lWjQveFcxNWJLODJrRTNra1IyNHpLNEdqRC9ESjFjdFB5YlBxUXJjWlNB?= =?utf-8?B?UU03czdyMFhycEZBRVlwOXFOdUFYbDFkbStudmx4bTc3MnRKRkRJQk1tLzIv?= =?utf-8?B?UmZRN2lYOEx5T3dFS0QxRU9uTURBbmFDb21XYmYweUdyMFVqL3FybUtjYnc1?= =?utf-8?B?RkxaZ2YxT0lkM0xIYWU4bDZhQ2JMQ2JFck9JTk5WczlGeUdmQnJYRFUvTHBz?= =?utf-8?B?YS9MN2NuNVFkTXJRNFhVNFozbXJzdVVBZHdpVEI3blloWlQ2VGRSa2s5OGpS?= =?utf-8?B?OGwzOUswelgzQkg1VUdmTnAyeG1vY0tuU3dKdkMwaS9oOGt2dlM5bUJxNTlJ?= =?utf-8?B?TWx6MnF6Wnk3LzZ1aUtodURmakJCQXhKSU9HK01HNHJOUzFVVFU5bTMyRG9a?= =?utf-8?B?RDRWZ0QzZVZxd0hqR0N1YkQ0Ty92dlJnUVYxb1NBTHdCZERrcDJGcUJxSVhn?= =?utf-8?B?d3dTbXdtU0FPVEtWYnRHaWl2V2svUXIrTEExQ3o4ZVdnck1KcDJZOEd2Zzc3?= =?utf-8?B?eGVmcHArRkpRSDk3RGlaUW0wZ1l5dU9vMXZ0bGtmbGxxRUZSQ2JNSGJuWnQv?= =?utf-8?B?ajRFcDU1Mk1GOHdIZEFGWFBxc3lYR0xqRkNHQ3lkN2xubFNSaUJTM0k0T213?= =?utf-8?B?YkpheS9Wc0FsMlNmcnM4RUFscUlFbjNiTGpKbFlVMGh2N3luN1hxNnRzVmhD?= =?utf-8?B?aFY5SWZqRWcvSE9JT2h5MFJrdE0xeFU5UFY3ZGRxY0YzZCtZaUxxVHRtUi9N?= =?utf-8?B?SWhiMEJjb1NicjZkcFlsempkaGtxaUwwTXVIZGJLS1JrL08ya2dScWJEUjVS?= =?utf-8?B?MmllTm5DZ3JUS3dxbnZKdkJvK1FUdDMzK1J2VGQrRUYwZXFIbXF1elNHRGFS?= =?utf-8?B?cW5HdHJzRjFhQVVISjJ0OFZLUTBLdVhNMGlPbTZaRjFMVHpRdkFzRndVYWho?= =?utf-8?B?RWJZM1NINlIzRStJN0lHQWxTeVorVGlLbGx4dndnai9XckIrWFlqYnRRbzBG?= =?utf-8?B?SWZCaVlveVQvckk0aU1oR3lhcXNvU1QwL3ZzVXJVaEl2bE1ncjlaSThMd0U0?= =?utf-8?B?ajUzRFhsa0toWmhPUFA0OTNmaURSMW8vSmVDRzF6VFJmZ0ZtekNxMElaOVF6?= =?utf-8?B?OWZyNm81dE1qOTlNendjR3k0SXY1L1hiZm1vWmViMmEvYzVtTnlaZDNWOG95?= =?utf-8?B?SHhJSlNBSGI4cnQ4NTh5blVXQWdFbHFwQ2QwYmJiYklYNUl3MCszMTdYNnJz?= =?utf-8?Q?QO3QxIx66RydHUPuEj?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e2d01901-110d-4e36-5d10-08de74c9595b X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9366.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2026 23:55:27.1268 (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: IY1WFV874p4/AF7epYQSshsHifzPWAabvQBs/UWU8WrBVTVBK4VTTuZQVANN+7sGa4oPZHQUJSaOm7VH9w33QQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8771 Add an optional .release_mux() callback to the pinmux_ops. Some devices require releasing resources that were previously acquired in .set_mux(). Providing a dedicated .release_mux() callback allows drivers to properly clean up hardware state or associated resources when a mux function is no longer active. The callback is optional and does not affect existing drivers. Signed-off-by: Frank Li --- drivers/pinctrl/pinmux.c | 5 +++++ include/linux/pinctrl/pinmux.h | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/drivers/pinctrl/pinmux.c b/drivers/pinctrl/pinmux.c index 3a8dd184ba3d670e01a890427e19af59b65eb813..c705bc182266c596c4e6c820f5e= 3ffcadbbb2838 100644 --- a/drivers/pinctrl/pinmux.c +++ b/drivers/pinctrl/pinmux.c @@ -517,6 +517,7 @@ void pinmux_disable_setting(const struct pinctrl_settin= g *setting) { struct pinctrl_dev *pctldev =3D setting->pctldev; const struct pinctrl_ops *pctlops =3D pctldev->desc->pctlops; + const struct pinmux_ops *ops =3D pctldev->desc->pmxops; int ret =3D 0; const unsigned int *pins =3D NULL; unsigned int num_pins =3D 0; @@ -563,6 +564,10 @@ void pinmux_disable_setting(const struct pinctrl_setti= ng *setting) pins[i], desc->name, gname); } } + + if (ops->release_mux) + ops->release_mux(pctldev, setting->data.mux.func, + setting->data.mux.group); } =20 #ifdef CONFIG_DEBUG_FS diff --git a/include/linux/pinctrl/pinmux.h b/include/linux/pinctrl/pinmux.h index 094bbe2fd6fd5ea3c5fdf5b6d6d9a7639700b50b..ad7f8c31655e10ae854f7c325f8= 8d2a533dcb035 100644 --- a/include/linux/pinctrl/pinmux.h +++ b/include/linux/pinctrl/pinmux.h @@ -51,6 +51,8 @@ struct pinctrl_gpio_range; * are handled by the pinmux subsystem. The @func_selector selects a * certain function whereas @group_selector selects a certain set of pins * to be used. On simple controllers the latter argument may be ignored + * @release_mux: disable a certain muxing function with a certain pin gro= up, + * which set by @set_mux. * @gpio_request_enable: requests and enables GPIO on a certain pin. * Implement this only if you can mux every pin individually as GPIO. The * affected GPIO range is passed along with an offset(pin number) into that @@ -80,6 +82,9 @@ struct pinmux_ops { unsigned int selector); int (*set_mux) (struct pinctrl_dev *pctldev, unsigned int func_selector, unsigned int group_selector); + void (*release_mux) (struct pinctrl_dev *pctldev, + unsigned int func_selector, + unsigned int group_selector); int (*gpio_request_enable) (struct pinctrl_dev *pctldev, struct pinctrl_gpio_range *range, unsigned int offset); --=20 2.43.0 From nobody Tue Apr 7 14:04:56 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013038.outbound.protection.outlook.com [52.101.72.38]) (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 6A571387560; Wed, 25 Feb 2026 23:55:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.38 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772063735; cv=fail; b=peryyICgeygXmktGRuYmey+OnIaLMPu0WlVtQdSJsI04Uh11WsdT0F+1iU52BBpBvcGdW5D5YL0SPRhSLgUTkYQonnNl6iM+9U5NCo7p3Z8mvbP6IrlkmQYWAkdzg9s4tZlTSN2SSecvTwRZax8OcxLRP+xa3WpuIzuPWfu1uwA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772063735; c=relaxed/simple; bh=cUCrV+VjWKFme90gpKEqsUHbiwllcC5zrPNOFnhNp7w=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=dXvzzQnC/qPO+gIVii1+Uq7vZIlB57NvEtAiz95Qpu4Kx+Y543BQOHzNbvYAIJM8ni/tEtNvX08Yw+fhAgeXds6NOy8jLzkpCMBcZ1yeOv4iKH1U9HdqxlevcS1YDHw5B3ueIfFLu4YWZCt+2/lG3K6pGKtrCENo+xiF6SBE68g= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=Nn1FCUF2; arc=fail smtp.client-ip=52.101.72.38 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="Nn1FCUF2" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ywh9WP7J74FCa9EmLMAqU1HSPXGUDs1aZ+0ATucHdShxiB5iKcQE5b4wBoo4uTtnkhqhpkq/PlIUfPGXvbWkdNDf1rivSLZmYcc1WfwEqzGdi5JEnDt5Uoy5Qbac/kyEtPnLn0A4+MFe2yzDZRDdPlhBbsWpxSqd05vhwBPaFNRjypeM+pLv8iZSQzlVyzpTa1bqfLdRWpP+FU58e+Yz7cuOH+J+RuG8MQhSJqAn6dhXPutjOVAMlWM44gNgnKFNxovHgPXK6o48z81PGOV7XsIaNVA7slCrRMWbt5uZck8Yiq5v8EM8fTsNTTbuJ1KaqIa04EqzHUveixpKb6I26A== 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=MaU97uZ34DB3mjNSBBFZhVarWGOtf9EcMRYmHYUCoqU=; b=nO69ppSqGIAGWJnfE6kofiS35fp8Ov6Jx8y37Pf+T+GePzL63h/GSn5XJFfBlnj1UN+KZRkTJx45xerjdZaZiZLkGf3Dm7HFG2NalXm+LaxbGdwUhbxB5+ShPEPlSpPyMvsAYBVxcnHESJiGkuPHqHdgNpZQKxuAf5mgTk/f6W2RXHjguLFq8IP5JCcd1zEUzvjj5C5bDBU95BM/qIYeQK6ksf5vTqzJY+wzx217GyuGtpkGKltdVl5N9A4vq87tYKCDimJutcTdet7wqRclsoI8qYMYapTEVO069Exs9YtBEVvwvsVvKSCK53uAzNJVweu6gzgjjaWEcSpEGwqz6g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MaU97uZ34DB3mjNSBBFZhVarWGOtf9EcMRYmHYUCoqU=; b=Nn1FCUF2YM+ooE6jGUGYYx8MS8B2Ji+6HrXpCGBzcrzfOB3gvakTJOPZWvtGwAlh40/pbR4qvf9fH/UgHr7ieg7MPUy5+dVI5WvM6b2E8GxWqrhcH8scSjsoXUYeVW6mlqOptGWJ50wOorNPVon/r1IOIGj4m3U4P5F/GL5gHakzGc3wvE7nVZdQ3IovizNwAUIPlO8CPFgWzP4rHSogyniDfqfuB48P9hxUg55U60m5eiFnGj9fxImrC/8sA5y1VE+RjRmMfQETzPVxV4jIUNDA7c8IYaHxCTqxLu/6+FcWnVg57UFFEuIM/RGGCRzUfjob8UKE5hI+WwRejMaCYQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB9366.eurprd04.prod.outlook.com (2603:10a6:102:2a9::8) by AS8PR04MB8771.eurprd04.prod.outlook.com (2603:10a6:20b:42c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.13; Wed, 25 Feb 2026 23:55:30 +0000 Received: from PA4PR04MB9366.eurprd04.prod.outlook.com ([fe80::75e4:8143:ddbc:6588]) by PA4PR04MB9366.eurprd04.prod.outlook.com ([fe80::75e4:8143:ddbc:6588%6]) with mapi id 15.20.9632.017; Wed, 25 Feb 2026 23:55:30 +0000 From: Frank Li Date: Wed, 25 Feb 2026 18:55:08 -0500 Subject: [PATCH v2 4/6] pinctrl: add generic board-level pinctrl driver using mux framework Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260225-pinctrl-mux-v2-4-1436a25fa454@nxp.com> References: <20260225-pinctrl-mux-v2-0-1436a25fa454@nxp.com> In-Reply-To: <20260225-pinctrl-mux-v2-0-1436a25fa454@nxp.com> To: Peter Rosin , Linus Walleij , Rob Herring , Krzysztof Kozlowski , Conor Dooley , =?utf-8?q?Rafa=C5=82_Mi=C5=82ecki?= , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, Haibo Chen , Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1772063713; l=8758; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=cUCrV+VjWKFme90gpKEqsUHbiwllcC5zrPNOFnhNp7w=; b=iJDZu349WEhfulumMK03S+jOAlXrNVHUFBgkTt+tDEk+65ihfNuykP+7Jm/cFc7muCk29tl2k TbfDGdXAj+hAReWUWQJsZG15FDmeV9x03D6r3sUs/uDNPcYZ3Y51LY7 X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH8PR02CA0020.namprd02.prod.outlook.com (2603:10b6:510:2d0::9) To PA4PR04MB9366.eurprd04.prod.outlook.com (2603:10a6:102:2a9::8) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR04MB9366:EE_|AS8PR04MB8771:EE_ X-MS-Office365-Filtering-Correlation-Id: 5f2e70fa-59c8-4cae-e341-08de74c95b6b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|376014|7416014|52116014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: mXa1QvpwvB71OoPas6kZn907tLftxIsJdS+VjvPO8oG2TvSlSJYIAtrWoGKkQC66IZj4MxlGsc/OBhhqEvnnP2gsHw88biQm3tDowcS1L6Z39NIsM2PmeLCgUlpqdyMkxCgBBYLyKBCZObUpqaiY9u/73imkfJ01tv/VQIaN9tLZ40jMHdBgjJwFQx9bTvedK1m1niR9DSZv+n1/6DmMC0SkMqFLiLdGvEbZjct8tWhqhsUydOCU/3W6ZSXbDBBshu/RLKcZ32rg4NyKCW8FK4FG8BvrmI1w8IQ9EhhVXK6Y6D3l89f5HYrsf8QxY+pUZ7JyNLmLlDxKCLAO0D6i3Pk1B0VcbrOZacJZnEXUb14ZSuCp97cbw4u8QVazFe8FV28UOlqHcFfxRQ7GIwCqqd3ZcRT55sIRoTQfFwCjjseu5IimzP01IGjNU3Y46qzkdr4BVKJkYSPdBidMzjv/1Jbx6PLRqOmw5k3SsEoRg/Aakr7QPlN6ZW1i1towN8hGgs7irfY08O4DEoN0A/buVyxZiOXMWqBnXswF0lGJFI/2eNvR2yCu29A0mO7bLFvye05hSDiNYMfs0p/UO/5JefaDBOHO3x6xTScKBDQeq1UyzqVOI4gHikcVwdJfQNp5sx8Ee+oryPz6T4czqgN/QhFtwJKQ1lUjZF/pSAyvBU6x2lzXhih8797K7dgzWTr2cpT17gcffCC2Q/rgKT26U98sen4OQi0nOgDBI/jZV6HXbD3r1GCTfR/SQUDHRcUIUiLuc0llw39f13KIRavowJCYv8kp5d5C19XcDt0r5kc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9366.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(376014)(7416014)(52116014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?T3c5M0k5MFo1cklLMC8wMlZBaUZoNXpuUU02VE0vWnZlZ3VXSzdnVDVPTm1r?= =?utf-8?B?dGowMUFOVVcxTHVydkNJZ0ljOGVodDYyaWJrYVFwa2JEeWlNb1orTFg0aGIv?= =?utf-8?B?YXdoTG1GWEVNVHowMGJpQVVmR081b2JzS09PdjlpRjVQSllZY2JxWlVzMVFu?= =?utf-8?B?TnBlU1dtM3pKemlxN1gwYTZVYjdEcWIzSTAvVTFlL2xwNjRHVVBrY2c2THF0?= =?utf-8?B?Y0N5a2E3eWE2c2NUejhSanM0Um1QTWtLdEhESEdyZ3p5ZmxmeCtRSVViQkVD?= =?utf-8?B?NXB2VTdwYm9DYXpwRTJzVExYWDFLUFB5MWpyZTJXYXl6TWlObDJNNHhpR09Z?= =?utf-8?B?emh6ZWJGOTB2Vm5DaTQwY3l5Y3lHYjR4dUJnRnljZE9SYnh2NWJrYzNEeVpa?= =?utf-8?B?NHUrNmZKWEY0YXNmYnpkS2ppZWhNTFo2WTVOV0o0TElWUXN0K25lQWJhbXhy?= =?utf-8?B?cnRvZCtEazNQY3U4dTYrTW9lT2RYeFJ3L3RaYTJXSXJEK0w5TVZWOUdhdGhB?= =?utf-8?B?ekpPcUVJRmpDckVpN1Y2a2lFUGVBR3c1dlNzUnNMZEt2VGtGeCtXSVZmWmNM?= =?utf-8?B?aVN2UDAraE5pWHpqTWlVejBza1hTY1BidG5BQjM5azdVQ204eEtCSW1LaUxI?= =?utf-8?B?NnROUTdDbmhlS3dWNXlLMDdlZFBNTW5KYi9VZVRwbkgxQllSUXV3KzZVcFV3?= =?utf-8?B?NEkyaTN1bEF3Sm56N0N6WVc5QmRDaWJYZEdKdDRVdUtCd3dJeGJyTkhsbjJr?= =?utf-8?B?WkV3M3FFMlh6N3l0N1IxNEtlckVEWkN1a1czdmxwQlZNY2FXUEUwWmdTdGdJ?= =?utf-8?B?L2Y4L3lFT2xqdW54aGlmeWFUNkpIV3dmTFFWRUVJRm5LY01jdGtPWWpFcXhK?= =?utf-8?B?MDZEeVpmL1BGT1lrZkY1eDZXUS8vQm94WUNwQTMvYnZpMjNGNCtPVlpRUVR3?= =?utf-8?B?anovU0JuaWdaQVJWemNMQUd1b0hpT3BDRDN2NjQ4YTV0Tm1ncThJOU1mY0Np?= =?utf-8?B?QzJ0YTR4eGQ5SE9qWEQ1NUhJYnpKRkJVYTFZZkFVaHorcFFEVHoybFNWN3Va?= =?utf-8?B?RXlQeEVKM1lRUnZlMTJVOERKUFZYc1N1QjVYR05YTTIwbDlzV241N1MwTC9X?= =?utf-8?B?K1U5d1M2NjMzSElEVEdFUy81Y3hyQk5uNDhhYzhIMnFvUDJCeW5hOGp6TDNk?= =?utf-8?B?aUlnMGZpM0lnY1RYTjZPem5FMUdEQ0Q0aWk3a1p1ZUVHamVuTytDZXBsamN1?= =?utf-8?B?Z1Rzems2NytDNG1qQ1Z2bFN0U20yTE9xMVRUS0lTZUlXN2pwaVYrVFdVNW85?= =?utf-8?B?ak9oVW1SVURudi9OUDlDOG9pbExtS2lGUWdaV0N3S2R1WEhyZWZkYzBJWld6?= =?utf-8?B?UjZ6Q2FsZXRYZUxhcGFwellRN3ZmWDN5dThsMm1GYTNQbVhDeCtLclk5d2J6?= =?utf-8?B?UDhWNjJVSENhNm9XRUx5bWZIV25uKzZZbC9zUDRzU2wzM1RvZWlWaGtpajhR?= =?utf-8?B?eFhmZDltYzdjSEIwU1RDWmlUYlN2ZWRBM0Z6R296b3JEV202SGpNekVXbDls?= =?utf-8?B?dGVtMnNXUTkxRkRnY0RVWXdDblMvNTdmVTJnZjVJZ0VmWmZOQnYwTWVDMTlI?= =?utf-8?B?akVKL3NaaVNzalhvNmNvNmg1cWFKUk0xQi9vMUlNU2JaVElkcWx1Q1Mwazl0?= =?utf-8?B?Nk1GM1haa2Nta2tEeStjKzlWVE5ZZFgyc3pzNkgrdFRqQStOWUNJRWZNd3Bu?= =?utf-8?B?MkhCa3RjbThKMFIwQXVaVFdqNy9qTmM3QThuYXU5cUtkVlRub25ZaXlrcU5m?= =?utf-8?B?RmxqVG5XWTMxc2ZZSVp6SlRtSXQ3N1YyaUZZRXlSelc1dENUMDBUUVZib3Z1?= =?utf-8?B?TytxREdmYitiMXUxRFRwWkZLMyt0T0E0RHQrV2pDVkw4dVovalJ4bldhc3Ft?= =?utf-8?B?ajNVTkhwU2gxWmpiMXVHWlF6ZSs2bm1wOXdNMnE4Vm1ZVTZFcnJoNUIyZDcr?= =?utf-8?B?OWVCTXJVWjBZdHRQUzZVRFZsSUowajJ1Y3ZGR25QVjBRWisydWlXQ1ltcXV5?= =?utf-8?B?NGJhV3V4dUp2MHd0R09ITnNIZGpwdVJkbHBZcmVYK0NEakh0eVJDQWF6VVZn?= =?utf-8?B?WkpRRkphTVdYbmVBR1QzYmRSNTJkZU1YdU9pVzFtMmJQUGVMWXJSOFV3Ykgx?= =?utf-8?B?Qm51NXJ2YTZNOFBVTEJmZ0ZvNkhRa21odUtKL3AvcXJJd0owbjdjcTRxcDY4?= =?utf-8?B?TENWQzNiN0dMakF1Z3hnMGJlUGdQZVh2dE93SUdFZnRtbzNtV2h6eVRpWDVp?= =?utf-8?Q?Xrmbsxo2yC5T7HTC0h?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5f2e70fa-59c8-4cae-e341-08de74c95b6b X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9366.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2026 23:55:30.6207 (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: ifXIqrJOEZD+K8bOMxrihdfyUveHAfxkaM4nhUkSwLccT/EwIZBHJnLPqhWcpXuAi/PHynml224ku5aIWre9sA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8771 Many boards use on-board mux chips (often controlled by GPIOs from an I2C expander) to switch shared signals between peripherals. Add a generic pinctrl driver built on top of the mux framework to centralize mux handling and avoid probe ordering issues. Keep board-level routing out of individual drivers and supports boot-time only mux selection. Ensure correct probe ordering, especially when the GPIO expander is probed later. Signed-off-by: Frank Li --- change in v2: - fix copywrite by add nxp - fix if (!*map) check - add release_mux to call mux_state_deselect() --- drivers/pinctrl/Kconfig | 9 ++ drivers/pinctrl/Makefile | 1 + drivers/pinctrl/pinctrl-generic-mux.c | 241 ++++++++++++++++++++++++++++++= ++++ 3 files changed, 251 insertions(+) diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig index afecd9407f5354f5b92223f8cd80d2f7a08f8e7d..0657eeeeb587fa5e68dc3c1e00b= e35608e243b80 100644 --- a/drivers/pinctrl/Kconfig +++ b/drivers/pinctrl/Kconfig @@ -274,6 +274,15 @@ config PINCTRL_GEMINI select GENERIC_PINCONF select MFD_SYSCON =20 +config PINCTRL_GENERIC_MUX + tristate "Generic Pinctrl driver by using multiplexer" + depends on MULTIPLEXER + select PINMUX + select GENERIC_PINCONF + help + Generic pinctrl driver by MULTIPLEXER framework to control on + board pin selection. + config PINCTRL_INGENIC bool "Pinctrl driver for the Ingenic JZ47xx SoCs" default MACH_INGENIC diff --git a/drivers/pinctrl/Makefile b/drivers/pinctrl/Makefile index f7d5d5f76d0c8becc0aa1d77c68b6ced924ea264..fcd1703440d24579636e8ddb6cb= d83a0a982dfb7 100644 --- a/drivers/pinctrl/Makefile +++ b/drivers/pinctrl/Makefile @@ -29,6 +29,7 @@ obj-$(CONFIG_PINCTRL_EQUILIBRIUM) +=3D pinctrl-equilibr= ium.o obj-$(CONFIG_PINCTRL_EP93XX) +=3D pinctrl-ep93xx.o obj-$(CONFIG_PINCTRL_EYEQ5) +=3D pinctrl-eyeq5.o obj-$(CONFIG_PINCTRL_GEMINI) +=3D pinctrl-gemini.o +obj-$(CONFIG_PINCTRL_GENERIC_MUX) +=3D pinctrl-generic-mux.o obj-$(CONFIG_PINCTRL_INGENIC) +=3D pinctrl-ingenic.o obj-$(CONFIG_PINCTRL_K210) +=3D pinctrl-k210.o obj-$(CONFIG_PINCTRL_K230) +=3D pinctrl-k230.o diff --git a/drivers/pinctrl/pinctrl-generic-mux.c b/drivers/pinctrl/pinctr= l-generic-mux.c new file mode 100644 index 0000000000000000000000000000000000000000..978cbc4f82a0b3e56dd83ce2442= 6d4e764262a6e --- /dev/null +++ b/drivers/pinctrl/pinctrl-generic-mux.c @@ -0,0 +1,241 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Generic Pin Control Driver for Board-Level Mux Chips + * Copyright (C) 2026 NXP + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "core.h" +#include "pinmux.h" + +struct mux_pin_function { + struct mux_state *mux_state; +}; + +struct mux_pinctrl { + struct device *dev; + struct pinctrl_dev *pctl; + + /* mutex protect [pinctrl|pinmux]_generic functions */ + struct mutex lock; + int cur_select; +}; + +static int +mux_pinmux_dt_node_to_map(struct pinctrl_dev *pctldev, + struct device_node *np_config, + struct pinctrl_map **map, unsigned int *num_maps) +{ + struct mux_pinctrl *mpctl =3D pinctrl_dev_get_drvdata(pctldev); + struct mux_pin_function *function; + struct device *dev =3D mpctl->dev; + const char **pgnames; + int selector; + int group; + int ret; + + *map =3D devm_kcalloc(dev, 1, sizeof(**map), GFP_KERNEL); + if (!*map) + return -ENOMEM; + + *num_maps =3D 0; + + function =3D devm_kzalloc(dev, sizeof(*function), GFP_KERNEL); + if (!function) { + ret =3D -ENOMEM; + goto err_func; + } + + pgnames =3D devm_kzalloc(dev, sizeof(*pgnames), GFP_KERNEL); + if (!pgnames) { + ret =3D -ENOMEM; + goto err_pgnames; + } + + pgnames[0] =3D np_config->name; + + guard(mutex)(&mpctl->lock); + + selector =3D pinmux_generic_add_function(mpctl->pctl, np_config->name, + pgnames, 1, function); + if (selector < 0) { + ret =3D selector; + goto err_add_func; + } + + group =3D pinctrl_generic_add_group(mpctl->pctl, np_config->name, NULL, 0= , mpctl); + if (group < 0) { + ret =3D group; + goto err_add_group; + } + + function->mux_state =3D devm_mux_state_get_from_np(pctldev->dev, NULL, np= _config); + if (IS_ERR(function->mux_state)) { + ret =3D PTR_ERR(function->mux_state); + goto err_mux_state_get; + } + + (*map)->type =3D PIN_MAP_TYPE_MUX_GROUP; + (*map)->data.mux.group =3D np_config->name; + (*map)->data.mux.function =3D np_config->name; + + *num_maps =3D 1; + + return 0; + +err_mux_state_get: + pinctrl_generic_remove_group(mpctl->pctl, group); +err_add_group: + pinmux_generic_remove_function(mpctl->pctl, selector); +err_add_func: + devm_kfree(dev, pgnames); +err_pgnames: + devm_kfree(dev, function); +err_func: + devm_kfree(dev, *map); + + return ret; +} + +static void +mux_pinmux_dt_free_map(struct pinctrl_dev *pctldev, struct pinctrl_map *ma= p, + unsigned int num_maps) +{ + struct mux_pinctrl *mpctl =3D pinctrl_dev_get_drvdata(pctldev); + + devm_kfree(mpctl->dev, map); +} + +static const struct pinctrl_ops mux_pinctrl_ops =3D { + .get_groups_count =3D pinctrl_generic_get_group_count, + .get_group_name =3D pinctrl_generic_get_group_name, + .get_group_pins =3D pinctrl_generic_get_group_pins, + .dt_node_to_map =3D mux_pinmux_dt_node_to_map, + .dt_free_map =3D mux_pinmux_dt_free_map, +}; + +static int mux_pinmux_set_mux(struct pinctrl_dev *pctldev, + unsigned int func_selector, + unsigned int group_selector) +{ + struct mux_pinctrl *mpctl =3D pinctrl_dev_get_drvdata(pctldev); + const struct function_desc *function; + struct mux_pin_function *func; + int ret; + + guard(mutex)(&mpctl->lock); + + function =3D pinmux_generic_get_function(pctldev, func_selector); + func =3D function->data; + + if (mpctl->cur_select =3D=3D func_selector) + return 0; + + if (mpctl->cur_select >=3D 0 && mpctl->cur_select !=3D func_selector) + return -EINVAL; + + ret =3D mux_state_select(func->mux_state); + if (ret) + return ret; + + mpctl->cur_select =3D func_selector; + + return 0; +} + +static void mux_pinmux_release_mux(struct pinctrl_dev *pctldev, + unsigned int func_selector, + unsigned int group_selector) +{ + struct mux_pinctrl *mpctl =3D pinctrl_dev_get_drvdata(pctldev); + const struct function_desc *function; + struct mux_pin_function *func; + + guard(mutex)(&mpctl->lock); + + function =3D pinmux_generic_get_function(pctldev, func_selector); + func =3D function->data; + + mux_state_deselect(func->mux_state); + + mpctl->cur_select =3D -1; +} + +static const struct pinmux_ops mux_pinmux_ops =3D { + .get_functions_count =3D pinmux_generic_get_function_count, + .get_function_name =3D pinmux_generic_get_function_name, + .get_function_groups =3D pinmux_generic_get_function_groups, + .set_mux =3D mux_pinmux_set_mux, + .release_mux =3D mux_pinmux_release_mux, +}; + +static int mux_pinctrl_probe(struct platform_device *pdev) +{ + struct device *dev =3D &pdev->dev; + struct mux_pinctrl *mpctl; + struct pinctrl_desc *pctl_desc; + int ret; + + mpctl =3D devm_kzalloc(dev, sizeof(*mpctl), GFP_KERNEL); + if (!mpctl) + return -ENOMEM; + + mpctl->dev =3D dev; + mpctl->cur_select =3D -1; + + platform_set_drvdata(pdev, mpctl); + + pctl_desc =3D devm_kzalloc(dev, sizeof(*pctl_desc), GFP_KERNEL); + if (!pctl_desc) + return -ENOMEM; + + ret =3D devm_mutex_init(dev, &mpctl->lock); + if (ret) + return ret; + + pctl_desc->name =3D dev_name(dev); + pctl_desc->owner =3D THIS_MODULE; + pctl_desc->pctlops =3D &mux_pinctrl_ops; + pctl_desc->pmxops =3D &mux_pinmux_ops; + + ret =3D devm_pinctrl_register_and_init(dev, pctl_desc, mpctl, + &mpctl->pctl); + if (ret) + return dev_err_probe(dev, ret, "Failed to register pinctrl.\n"); + + ret =3D pinctrl_enable(mpctl->pctl); + if (ret) + return dev_err_probe(dev, ret, "Failed to enable pinctrl.\n"); + + return 0; +} + +static const struct of_device_id mux_pinctrl_of_match[] =3D { + { .compatible =3D "pinctrl-multiplexer" }, + { } +}; +MODULE_DEVICE_TABLE(of, mux_pinctrl_of_match); + +static struct platform_driver mux_pinctrl_driver =3D { + .driver =3D { + .name =3D "generic-pinctrl-mux", + .of_match_table =3D mux_pinctrl_of_match, + }, + .probe =3D mux_pinctrl_probe, +}; +module_platform_driver(mux_pinctrl_driver); + +MODULE_AUTHOR("Frank Li "); +MODULE_DESCRIPTION("Generic Pin Control Driver for Board-Level Mux Chips"); +MODULE_LICENSE("GPL"); + --=20 2.43.0 From nobody Tue Apr 7 14:04:56 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011028.outbound.protection.outlook.com [40.107.130.28]) (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 C4EE13859E9; Wed, 25 Feb 2026 23:55:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.28 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772063738; cv=fail; b=lnwxW8acATJYuGtVftCQM//g3mFbHYUhBJRMvKoxb4HUHjJch24zZK220/95TjKaonV7oBpSfjXBwU7dmBKJMFygyTxw9KhaaZ6EkB+bji62TgUTRCCZF3wmtxHoxbs47NFlmTnqtwoFdZrcR5UolLJRTS37NzcGpJWJSkixdfo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772063738; c=relaxed/simple; bh=Zzcxy8veub++eNDJjeGSV4de4bcX+q3y39GX6JWwJHo=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Y9KSyiptclucrUPI2rcJGTg2nufIBZsGMojovWe4qGawBGhJbGB4uafaIJk/88KyaVKs3s5Clvm6pZYl6PYBx1V15oTvZ/Me/Xf5YrS9FwycN+001wknO8kPL8mMCLvwfWjpUNgqwRqEtgRVlPhcaTTXkYBJgjz547/IG0QEQiQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=GfNAnE+W; arc=fail smtp.client-ip=40.107.130.28 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="GfNAnE+W" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nMR8vo8GTiHEqdY70uytZyt4OY0Sy1XU1YyZMiM7QIRzxNq8VKtIzVMDcF0/YsPY3ZUKd0sP/6bDRwi8x5c3YId8Vfe4C7PYPjl4qDKuqb6j95q3fLKuApNPa0ZAkIQaiyL/dwreTiwLy73kbKRGu4J0C9s2Mt+O0av3paXmH6GjxRXoeTmXXqWLFoZb2gv+3F/xMtScRMykQ662SB//SAadp4zf99P4YhEq1buendthqYTaIpUQXHq3aI1f/dO5Pf8JzEvo19nlQttJpIpyOjTxQFID4lXS6N/EI0YUd6pgZOW9czyArGFSwP6FmxmLcmLzTrxR3j6vMA07O5Sk6g== 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=2K16BGpS5JO9mE8yzQLP34LWr8mZJDsYrGIooIXEM/Y=; b=Zqmp1FWZOq/XbqW6L47UUWgL745/3ry7ymk/RHcmFZX/2oDp9aGQttAtyHv1R5MK82WmfB8GFjjwH45nvQ764hdvGV0IIJI0lXetc5OmsFmxwiv3Cmw5GJflWpv2AK2vvP9wWFuKrM3hSiCtWOkqEmeTW7hoO108nGS5EH7qotHvAqAOB22HklEF1rkLAUO0CUntrmbaGYjK8DLCN370DBxSfT12+9iZJHFt1oC5kRVVzllHdRiXpfgJ8GlEfQ8QCSqAeliZCyEDROGcLH6AdBsxULLkWTnl375cF0T99iWRuz32aj/CEpnLNbbWyyFNVxiOMd5ZDMMwmTxN24xpWA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2K16BGpS5JO9mE8yzQLP34LWr8mZJDsYrGIooIXEM/Y=; b=GfNAnE+WdS2b0q09WJfFIgh1D+Y7eg0cgykN3HNSJYV+b2tUHiKFEaaR9+Z7QdURCDdOFojrC21vT7W30P1IWifKBs/MbIZpZTa9nem48i2c6q/rC366SKdD3v+UwzDIe6LcnF54cr8Kz3pxX7Bbl58KGhbSEiYDCJsbW698vw6KHXJKEelv3tC6S8rQs9DMdzpdaXf7o0HSkWnSfDF0TEkKhYEtBmWrNZ0wnivIDd/AiJP9xMpsw/8ZifrF+iKZD8zKVm84pQGeNBR7RTMcDEH5xxIxzFe20eOhyWMQaI94mY7mTRwrzSsZCnPgi9OBWsV/MRlffTjUNFzcmWDEtw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB9366.eurprd04.prod.outlook.com (2603:10a6:102:2a9::8) by AS8PR04MB8771.eurprd04.prod.outlook.com (2603:10a6:20b:42c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.13; Wed, 25 Feb 2026 23:55:34 +0000 Received: from PA4PR04MB9366.eurprd04.prod.outlook.com ([fe80::75e4:8143:ddbc:6588]) by PA4PR04MB9366.eurprd04.prod.outlook.com ([fe80::75e4:8143:ddbc:6588%6]) with mapi id 15.20.9632.017; Wed, 25 Feb 2026 23:55:34 +0000 From: Frank Li Date: Wed, 25 Feb 2026 18:55:09 -0500 Subject: [PATCH v2 5/6] arm64: dts: imx8mp-evk: add board-level mux for CAN2 and MICFIL Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260225-pinctrl-mux-v2-5-1436a25fa454@nxp.com> References: <20260225-pinctrl-mux-v2-0-1436a25fa454@nxp.com> In-Reply-To: <20260225-pinctrl-mux-v2-0-1436a25fa454@nxp.com> To: Peter Rosin , Linus Walleij , Rob Herring , Krzysztof Kozlowski , Conor Dooley , =?utf-8?q?Rafa=C5=82_Mi=C5=82ecki?= , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, Haibo Chen , Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1772063713; l=2090; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=Zzcxy8veub++eNDJjeGSV4de4bcX+q3y39GX6JWwJHo=; b=DXn1Qwe2E7vE6e9hKHwwax04whzK3R+XLAwpjkVOFVwHAhqL6QRiq76bfjYjITYLjg8hOHa4Y jothtqLXTRqBH4Ef6IAUqkwQWQDXN6wSqGdGHVWlSAJl+SI162/Skxs X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH8PR02CA0020.namprd02.prod.outlook.com (2603:10b6:510:2d0::9) To PA4PR04MB9366.eurprd04.prod.outlook.com (2603:10a6:102:2a9::8) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR04MB9366:EE_|AS8PR04MB8771:EE_ X-MS-Office365-Filtering-Correlation-Id: 21c474f0-c310-4d1b-6ab5-08de74c95d7c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|376014|7416014|52116014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: rHM7hoKECNNfXd13TmKo5axfFwVB0mAi9nPadrxvLED/eqPCH4tmfEKR2IurcWv+eYfiwBfNhsqZmcKh+yXTPkyh2yyQqU2u/44UDwNCZTwa7S7RdQj/cs7Cp4uHFyVs7g9AY4QnqJmfA/4ThNhNqlwACjYllKSaRwymM6jU442EoHTSmtsk5FYSOLU2A0bEEJ1+j8tjsnySJ5nuwXFRosQD/jRaMgacNPAXR6EkiLpSNfHDTzIkHKyWT036T5jxkcOb9O631WVPy4BUFzB82jQM4zJOtH7l8apl3gVpWXVvpM9WVea4n9KdmNj7kYeM0Cnm2pZL2Q2YSdm6gQpXiTENnNo5E40YFt2td4QN6tUbDLBWUdxXrlMMRhNhd/OE82bDJ6KzShX741BQJ7xmSp80DfmpPRuLWcQw4o5COzyouc9WWgDgW3Xdu3JXMxP4t8FBycTxzI8lsWimCb6Bit6iPiCHdHs7zHbLX49gRRvppGucNeYwqDOUG207mphCCcZduLvS4gzJmJ+QcGT0mEYe6YaQVkW57kJOuUTC3wEQPlCexyeaUfYmxmK6ZCFdTeSseTik6+UrIKdEENihFykiutK8MNtVEETxIraKjdhq8AstRBEHK+IWwizhxcgDUcJf/t1Fk7gD3KKouF7xjs8IEmt3id92KmVMWEHgJr3a3QYMsvD32oc1TceGJK3l9RQ/HpzEzNJhT7Lx9GRCVBc6vJLhFibD67GgJMuqjEjH4J5wi7GQ0/R27s2jkPiinf44oT0ZP4Va6PvVHyCZ8KZIF7yiFSlzKcyRIrSmUQE= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9366.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(376014)(7416014)(52116014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bjBUTVM2Wm9mTWRMcjduRmk4L1ZGdFVGV2tNSURwczJrZkt2U2c4d1lSckQr?= =?utf-8?B?SHhHYW55V0FZMlc3RlhaKzR4WjdsTk05S1Iya1pHLzg2WU9WMEtDTStpUUJF?= =?utf-8?B?d3JqMWFpQUMrenJWSS9PZUJuQVM2SElEdVJRVHdrY0ZyQ25FTkVPcnJBdUlB?= =?utf-8?B?SlJPOC85OWF1VXBYVEc1UEJlaHY3SkV4NkowUUpvQmcxZGI3YU92U3NtaW53?= =?utf-8?B?TUZzQ1RVUmZhNkFZMWhQcmZPVFVHSW9ZaGZVeDhFcXZtbVAvYmhCYVA4emtz?= =?utf-8?B?ZVFFZ2EyVGdzOElZWWFvTEkwc3ZIYTFDZ29sK014eHNLQ0RiTGx4MFlEbUh0?= =?utf-8?B?SVd2V1JGeUpEblVmOXA2SCtvRmkwN1B2d0hYeTMyYW5qTHVQTU82cWxOb2li?= =?utf-8?B?TE1GU1lIVlNMZHR0NzkwN3F1bGZvL3ovcjVPRk9FYjJXb3R4MmpLUVRXNmlp?= =?utf-8?B?RnhEY3Q4UEFDelVSRXZyN25ucDZUODA2SFpGMzNoMG9NM2NMN1dIUWxRaVhz?= =?utf-8?B?dXp5aEFKN3JWQkJyakIvMTJycEJ4Z2JRYWFGejArdSt1VGtRSEtINlovMk9E?= =?utf-8?B?RWYxeVZLRGNsTlNmMTBhUVp6Z0RPTVJ5Yks1MDRUTmZlWTk2dlhnWDh6T2FP?= =?utf-8?B?UDZzcEdnYmpLZnR2dFBSazlpdFZtSHZHV1NXdVk1MXIwSG45ZGRXTjIrai94?= =?utf-8?B?bCtCYzVmZEdyV2RackJmTXVVeVBvR1pNbitiRDN2Rks2UXc4TGxhbDArTnFw?= =?utf-8?B?cGdaZ1p1ckdEcXQxSkFFQTYyZUJZOVpUVmNUeW4zZFJQTEtML2VPR3lIRExW?= =?utf-8?B?YWtCelR6NWJwWUxTQk1vWkpXT0tiS1V4RWhWUWQydG5QdXJ6WXFEQk55RkRY?= =?utf-8?B?OFREZHFkWVNzTDh6cjBJNmR3UUFXbFFWaTg2bHhVb2Z5Ri9RclJCUVJVWTRr?= =?utf-8?B?L3Q2L2VIV3k4VHdRaHcvbGdlRExCc0EyRW1OTVFlZjZ1d3hUcGVwem4vRFJ2?= =?utf-8?B?azFuaXczdlU5eHJpeGV5TUwyd0NQK3ZLQ3dtZW9hTDZ2cXd0cThHOTVNMDhp?= =?utf-8?B?U3AvT2F0Zm9ocFlZTUVNdDFvR2kza0tNWGt1bUk3cFBVL3RMMTRSaks4bFJz?= =?utf-8?B?clVYRGlSVlcxOTdOLzcyRkVSRGltSkQyUWhNMElKbGVSbUhERm5zU3I4R05B?= =?utf-8?B?eVJySTZSMldMOTlFUHdjZEdFQU0raFBGOUhCelYyOVZvRldRS1ZZSGs5cmov?= =?utf-8?B?V1EvUHFlL2VWSE9yYlNDTkhlTUJYYWhkdFpZRlRnb1lvSjBEVjl6dGxleFpR?= =?utf-8?B?UlZ5NUNqK0s5TjZSTmh5a1RYY2loNVNZZkxUZjMxUmNMSlQ1RStTK0orcHZJ?= =?utf-8?B?QkV1VFQwS1I2RjU4Y0dQckZpWWVUT0NvZmlzVWlYREJJalpGN21UaENsK0Zj?= =?utf-8?B?dElMZHY1YUpZUjRzbGtoNk11ZXpVbmdTL0s1VTBlZ3BmZ1k5SzlRU0l1SVFs?= =?utf-8?B?TVBiZ2N0ems2QVdsWG03V012YUIzbE5VYk0zQzBvVWhvODc1M3QvR2xhb3Yz?= =?utf-8?B?Q1JsVHB6Y3N6b3dWOTlaUnNwL0VTZEM1ckE0U3RPL1FKQ21ZeTlQK1RVM2hk?= =?utf-8?B?MFgwcUhmZmxndE1xdHF3TmxVREhuaTRqYnVmZDZLdlZJOStnMDk3TGN5Y1Vr?= =?utf-8?B?c0FMNVFrSzI2aW02TGJSRFgrb3J5WVh1QzFaVWJJZVJaVVNGMTd5cUZVYWFU?= =?utf-8?B?MmJtWjFVbDFKOXo5OGNjd2lzVnkvTDdYU0ExdnA2NU5RMll3bUxmcG5rR05h?= =?utf-8?B?amM5aFQ3OU1teWJBZ1V1S3hQMTl2UkVYUHMrcW5vR0hmNi9HU21kZHJLMnU1?= =?utf-8?B?cVBOTDdPM0hGeFVsbm9aMWJwZTR5aTYyUVFRVmlQeHN6NFhpUDRaZkxqc0lB?= =?utf-8?B?YTI1cVhpWTRtR3A4VXJETDZ6Mjh2RTNWcFFHNm1tQkc5TlBhaXlWcTVlUWVK?= =?utf-8?B?dzJ4TG44TCs5Z0FHQkMrT1hSU0tzcnpGanAxU243bXFYQ0lNQ2pwMEd6Kzhi?= =?utf-8?B?QmY1dm41Z3RvYUh5MDlGUUs4eEZSTm9rK1V2dzEvZm92cmJ6WGVSR3E2cXhk?= =?utf-8?B?NStZWVQ1cFNUU2JCcmY3enArMk5rUnNyMnB4bmZ1cmw5NFZMczBvWHF3T1Fq?= =?utf-8?B?VlpDamdWektxRElJOVVBcUloakRoeEpSR0dWZS8rRTU5UXIxKzN1V3VTando?= =?utf-8?B?M09tcjFrYXJwM2M2Q1Y5bXU5UmxyeDJwV3d6SDZXK0twdEc5TmFJVjlvMFdH?= =?utf-8?Q?mCLd8CMLLPSSW0N4ru?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 21c474f0-c310-4d1b-6ab5-08de74c95d7c X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9366.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2026 23:55:34.0757 (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: 2tWmyroc3yHeszd1OzknfAYHpquMHHbBoG3kRI9OeABT5CUU3/RJzadcWeVjGED2sQGb1FQ8VTnBCBRYqxsd5w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8771 The board integrates an on-board mux to route shared signals to either CAN2 or PDM (MICFIL). The mux is controlled by a GPIO. Add a pinctrl-based multiplexer node to describe this routing and ensure proper probe ordering of the dependent devices. Previously, MICFIL operation implicitly depended on the default level of PCA6416 GPIO3. After adding the pinctrl-multiplexer, make the dependency explicit. Signed-off-by: Frank Li --- change in v2 - update commit message to show why need update PDM MICIFL. --- arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts b/arch/arm64/boot= /dts/freescale/imx8mp-evk.dts index b256be710ea1281465f5cecc7a3b979f2c068e43..1341ee27239fd41a26117adc902= 3524ce50420a7 100644 --- a/arch/arm64/boot/dts/freescale/imx8mp-evk.dts +++ b/arch/arm64/boot/dts/freescale/imx8mp-evk.dts @@ -50,6 +50,25 @@ status { }; }; =20 + can_mux: mux-controller-0 { + compatible =3D "gpio-mux"; + #mux-control-cells =3D <0>; + #mux-state-cells =3D <1>; + mux-gpios =3D <&pca6416 3 GPIO_ACTIVE_HIGH>; + }; + + can_mux_pinctrl: pinctrl-gpiomux { + compatible =3D "pinctrl-multiplexer"; + + can_fun: can-grp { + mux-states =3D <&can_mux 1>; + }; + + pdm_fun: pdm-grp { + mux-states =3D <&can_mux 0>; + }; + }; + memory@40000000 { device_type =3D "memory"; reg =3D <0x0 0x40000000 0 0xc0000000>, @@ -446,7 +465,7 @@ &flexcan1 { =20 &flexcan2 { pinctrl-names =3D "default"; - pinctrl-0 =3D <&pinctrl_flexcan2>; + pinctrl-0 =3D <&pinctrl_flexcan2>, <&can_fun>; phys =3D <&flexcan_phy 1>; status =3D "disabled";/* can2 pin conflict with pdm */ }; @@ -712,7 +731,7 @@ &lcdif3 { &micfil { #sound-dai-cells =3D <0>; pinctrl-names =3D "default"; - pinctrl-0 =3D <&pinctrl_pdm>; + pinctrl-0 =3D <&pinctrl_pdm>, <&pdm_fun>; assigned-clocks =3D <&clk IMX8MP_CLK_PDM>; assigned-clock-parents =3D <&clk IMX8MP_AUDIO_PLL1_OUT>; assigned-clock-rates =3D <196608000>; --=20 2.43.0 From nobody Tue Apr 7 14:04:56 2026 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013065.outbound.protection.outlook.com [52.101.83.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 5A589387579; Wed, 25 Feb 2026 23:55:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772063741; cv=fail; b=WDdVOOWMjSzQUuBQcVredJux2Q4VPUQGioXIk208Ddz1wQHX/9MLEv++9iVPEiC+YNsQU/LkZmispzuS/QrOXRBljNnzV7l09gCvFq26pzJxU7uVBoaS0uS5CSOZM3OUjVW30AwQqfgwYTljANwg7SXNyfElZWw+3vHtdEJ0qfc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772063741; c=relaxed/simple; bh=Mrv8690NFbwq9YfxxVKxVjG1LaSA8D856X2XcXjhNwk=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=HAu5uYy0qpVX4p9B2F6KGD9H1tB1fzjxNc/t6IfsFrZ5ukv0oqu0w8OOMQ9caAyN8kNR/q/Z5HNkHvjrWEjxW5YWQcKJpBdqtAYJie2onbZMDjhFTwI6mm+KeMu53SxQFB0tSiXLLSSjdJ3v04JEDakKy4WvYG1OyCYwjY/sPWo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=SRPnQXO9; arc=fail smtp.client-ip=52.101.83.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="SRPnQXO9" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=mOnWzHs4ANQ7p5R1h7Btgt2EPgIAHKPHZv7uLNdsOSEXGCysjpvMgehFAupUZZJWzO7zn3dUyw5D0ecC/GImM4jWqCvC4gp3lP06cVBzltR7jcaAPr0GhYU7DaaWS1Pf4+gfgplm5qxbpSCty3/FZuDRsIDv4zw/SWWwe/W1vCNVfigGiRDZyao3PK/0ghC+vm4+ZRgvc8Htofyi03NNJBklCaYMzxOqLFDn8xfCRq7LTrlemTPVLp5+On8ApMSxx2F6UtRi7OdMHL4BpJSgsAaU92NH7f8OtWnneKKbuWvG+1VZMjLdb0ctN36diQ9Lc8PTqafr4nbGRwJyxb/Jgg== 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=KAZEuhxh8s28UGQs2QC8rTuQc3uiuIlfeoBBY97q8+I=; b=BoMsCogFCVqjf5OZHU5sO+CrwXChEWb1nOemAydGSfut9mQmXkBas7sJ0Ex6caI1yG31400k/SSP27o8BWMJLnBYH0p9DsXkzolEifQRAXm2GIBUGpXLISM7ZK2nXKHvpGGdzOrS+fCJga+PV8t/oLM/kgBlOWazQXsOjaHN6uZXWUZD5QLt2dbVqRDvKVB4YkoFgGr/cNAXhvSnQ9RqW//Jn3ydQNTki45rCXmApVmm5rfTp3YfCY/MMzGfqCJLw+gLUiQZVeehtJcn6pl4eX5Gj5nGCEVeLj70LtkLHfw+3jO8njcWKLRR7T8aLDCHd2Jr18jUMCziOjyOUgqvPA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KAZEuhxh8s28UGQs2QC8rTuQc3uiuIlfeoBBY97q8+I=; b=SRPnQXO9llIREYZKxiFeTAJX8ZuhFoSrfhhk8Bw5JKcbzyYSLX8uQ3j2oe57GPzqRUl3yC9ZKa+mWXLT5KgVLlk1z0akjYBB4GmtID9SypGkzS02QLkGc1Tlu/IAgTiENzGMx35yZ3b5cdGyl9XWq5fEM/RxFbog2DQDUpnifGhUZnPcdHcMHo0X8tOuuGOHqQ9LsarSZ76yd9y3k6dYO8qoeaVtp17IzcWIdeg3eWnpTjci8CNKJ7OuE1CQtsp+Tx/JMFEKpOL5tbx8CX44X/Ip/fUEXvu428xhMw40nSzjk0GHdBlRhQbyrA9XTGcVSbXqicsFz1OJNfBvb8qboQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PA4PR04MB9366.eurprd04.prod.outlook.com (2603:10a6:102:2a9::8) by AS8PR04MB8771.eurprd04.prod.outlook.com (2603:10a6:20b:42c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9654.13; Wed, 25 Feb 2026 23:55:37 +0000 Received: from PA4PR04MB9366.eurprd04.prod.outlook.com ([fe80::75e4:8143:ddbc:6588]) by PA4PR04MB9366.eurprd04.prod.outlook.com ([fe80::75e4:8143:ddbc:6588%6]) with mapi id 15.20.9632.017; Wed, 25 Feb 2026 23:55:37 +0000 From: Frank Li Date: Wed, 25 Feb 2026 18:55:10 -0500 Subject: [PATCH v2 6/6] arm64: dts: imx8mp-evk: add flexcan2 overlay file Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260225-pinctrl-mux-v2-6-1436a25fa454@nxp.com> References: <20260225-pinctrl-mux-v2-0-1436a25fa454@nxp.com> In-Reply-To: <20260225-pinctrl-mux-v2-0-1436a25fa454@nxp.com> To: Peter Rosin , Linus Walleij , Rob Herring , Krzysztof Kozlowski , Conor Dooley , =?utf-8?q?Rafa=C5=82_Mi=C5=82ecki?= , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, Haibo Chen , Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1772063713; l=1688; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=Mrv8690NFbwq9YfxxVKxVjG1LaSA8D856X2XcXjhNwk=; b=g6YDmsBH3klPxtAhs1iU3+WlZSMoRPYXbBj2+tIoU/oGGp6dFoK05c1rYiGCJ5N6T4QWCQwNX l8V5yIFL3vVCf9fH2l2xDy2/vKEkPcxVRUuasytzwrchm5jTNC5TnrK X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH8PR02CA0020.namprd02.prod.outlook.com (2603:10b6:510:2d0::9) To PA4PR04MB9366.eurprd04.prod.outlook.com (2603:10a6:102:2a9::8) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR04MB9366:EE_|AS8PR04MB8771:EE_ X-MS-Office365-Filtering-Correlation-Id: a35c6568-ee1f-460c-363f-08de74c95f92 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|376014|7416014|52116014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: gfTBUMHg/ZRPoT8iFvFdZrORirDGIiD2mAHGgTJ3rlwxTNUttWloYIL2IdhJ6EbNF6573QXUj8CLxtUePwqNPRztCEmYPzKoaR70zC+iIYqsvv6GDNQSFzDnh8tXscYPPJ0nUVOnvdNE8NAMTTu/7n/kt16iDNvcxr+i5cMiaYuVyVA0Bzp3gV4ib3zkpObFvS5Nuvl7oxsDrMZROSGgaa6r+hMYfRm4uqAhf8kFy1Wuk53QGsBRhHx6OF88zxfIfqq8POWqwo5AQBkqdFVr1V4FEKeyB3faPoQzpF0RQd209ctjzOaIrZP4SckZpztdQOakntkXSIbkn+/UY30Msn6VJ0+pPkgct+IQWgzqgyLEQymhWaONFmKt1XrnH85Y8hf07Ij3nXxzb3WkNzB04rspAHkfd4BhLkN//Y2PgmI0nuyMnOSGTAAuXbquOel7VajIy2CcYBpGVCGvfUHC4CgT1YTTswXlnneh/C1n/uRIamuIf6yWOGx1KndKO4FNTmi8E4UUOWI3+rOLOHUyojdTdwLYfbe5MI68KdX7aTHdo7i8DBi2romj1pxmRWxKqO+ysXyNe5f6l/Ej0cUC6aCkyIszTXl9CjpU3NyVPn+oR9V2Org+2BOfMjCaTbgWcMTIVbjy2XsHrEpCfhglgKyu/e5fG9zYjqPQ7TXIBjKHn2b/yaF8zInNtASO1R4b1UW9t0L5oTmZ+FdxWatg3Y5cwQeDRejuOTqIkt15C5tSnCn2FB3Ow3xKf53YNRAaEov70gIk8LZceZ0+XEStXBjlY9rEaWR2ZM0mjzMfkXw= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PA4PR04MB9366.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(376014)(7416014)(52116014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TjZYa0tYeVMvRmtPR2x4RndoaXhKcHlNMTNJRlFFVFU1czNBQUJqTnRzM04z?= =?utf-8?B?QUdCSDNYYUIvRm5NM203dGc1TXhCQlJselBWWEZBUWR6bkpMQ3g3RTZ1dFVl?= =?utf-8?B?Y3kvU0x1bDAzYlNuSWZXRnc4V1l1SFJnZy84cHJFT0RUTDFiU1IxUjV1RE5C?= =?utf-8?B?MVhtK1VUMjZ4WjEwdXBGaW9Vcm4wbVROVmx4S2hRQUdqMlBUaDlVV3RPUW5m?= =?utf-8?B?Sm02K2NDVFlGc21VaW9FcGUzZ1pxUGhGYlVaNlJNMVp4UWhuUGRDRDJTeFRC?= =?utf-8?B?aUNBQ1MxcmZQSHNoenVNbE5qVjVncHM2M1RuY0RNWitjcGNUZXBPaVdlalRH?= =?utf-8?B?RTV5dFNrT2hkY203RTFHZEdmWmVEaHFFZ2RETEhtTlJZdnh5UExaWFZaQktu?= =?utf-8?B?aGtHVGpzZ0VhcjcremlMeDJ2dndNSUZuLzhtcGlKK2lsbXhMUUhkTXJnaU14?= =?utf-8?B?WFFObEpTaXM3WDc1RWFnc0RRZENXeFFqbEtHMEp1RWhKaElaUUdkNTlXeUxr?= =?utf-8?B?SGpqZTU1dUpJWmpISktubWJPdFhHVFVLRndQNzdqOVVEdjMvQTdNdGkwTytG?= =?utf-8?B?Ly9zdTdZWk93M0xaTXhsSW9lcmVyLzRwOWFJcmdOSDhEaHNmME1HcTZpWEky?= =?utf-8?B?NUtVaXgvUnFYL3lsTncwZHF1NUgyaGpMcDkzckpndzRoSDByYi9ZOUNYRE1T?= =?utf-8?B?Y3NVeEh3NGtZbkNteHcrWDEwUHQxeFdiQmZnM2FTYktWTDRjai80a045ZHlC?= =?utf-8?B?SWdsQkcvMWxMVlIyM2N0dndsdDBlOFdUNmxXWklsUGlsQzZnQnA1RWNPZWlK?= =?utf-8?B?aEVWSUsyL21hNlN3aXlVeE9VSEhjUUEyT1pQcEQ1a2dROXN0OWJGN3l1eTZs?= =?utf-8?B?OGlLbWJvdGx3czhjRk1XL0RGdDBnZUtoV2xhV2VWU0I3bnFYQ2JxcGdRMjlC?= =?utf-8?B?ZGxRQUpSdzFjbEVUK2I2VUxjeFQ1b0lnSWNJL0NDaEdZbG4vTTlCSW9zZEI3?= =?utf-8?B?Ym80ZVlmS2NZckw3QiswM2plUGR6R3Ezb3VUQ01zdi9GQzgrRko4ZzJmVWtN?= =?utf-8?B?TGtybkNzbW9Ia1RZL0grNTRxYXdpYU1rU2dzN0Z2MDBqQ1BIUDQvVXVmNktP?= =?utf-8?B?aHc3M3MxN0lKemVJRkxtUFNRUEJreXdYQlIwMDQxdlAzYXdPVWFjR0JDVG9O?= =?utf-8?B?Z2NmZFR2aEs3SXJETGZIdmMxdTJoOXVPa2lJMmRadUFLVnZVTXFRbnNRdWd1?= =?utf-8?B?SmVYZmJHWlNFMkFwYmQvZ1NhbHkyWGRtR0pydzlVSXMrbHdTaTdkempUNUtL?= =?utf-8?B?dFBtcG1PMDc5TXFPelA4OTlaMUlsUTBTd08raTNpb1Izc0ROQXR4Ui9TeHZW?= =?utf-8?B?WHE0TDBUOFFncGx0Nlk3T3V5eXZ3YnBSaUVUeXRyVGxJSERudi9QZFFEL3VS?= =?utf-8?B?Zk5qV2U5MVR4MlJXNnJWTUM0dnRXTXJtalRQTkVqYytCbXBYTFpYZVpjUDZq?= =?utf-8?B?YVV0UVpFNHpTN0twR1hYcUtFMWhkY3UxYkdCZHpYcnN5OFhWbGZ4ek9HU2lS?= =?utf-8?B?SHR0S0R6N1JRMHBlcEpxNlhFdzBCMVZjUmVCTzA2VVQ3U1ZCSE5JS040Unk5?= =?utf-8?B?Unl1OGVCSU5GU3padnRBY0h3eUpnV3AwYnhMc2tNeWNlc2tMQitZZGdFU1lo?= =?utf-8?B?eTIrNlozN1BTU1ZzL0dhNGMwZlAxK2JwUFgwZGhtUHh3T2dCWXJBb3FPL1A1?= =?utf-8?B?aXhLSFBhK2ZMdFltYUYrZXVGUWo3UUlvNU1yK1krMkxCaUpXdFdxY093MHYv?= =?utf-8?B?OCsrVVNSQnQrOUlPWTVuU2M5TmxXUEZoWE1zNWxyaWxPVVh3RENKTEVCRjYx?= =?utf-8?B?ZXUxemp5TGtQa2tBd3dyTkFOQVlIZ09yeWY5UTdWT013WW5NNlFhdUw1M2pF?= =?utf-8?B?MjMvYVhPaTdKaTdwUDNJSGU5TXFGeGZHbHY2Z20vbThJME5nVmNVZ3RtNi9Y?= =?utf-8?B?dnN6MDVsTVhMYlk0R1JIZ1ZPZEZ4QXEzRE45cGlraHJMS09WbXRFTzNPaWhw?= =?utf-8?B?d1NRdXhEdHVyYVZjM1Z2MENpT0hjZFFGVXltYmwvSXY0ZXJjV3JGeUlRSGlM?= =?utf-8?B?ekwybGs4NzIwQkpHd09yaTYra0l1Ulo5S3B5azlMZllLRS9LSkRCSTdqOHR4?= =?utf-8?B?dHk5THM2VzVUZFV5QXJTY3NOZW1HNXNaZDVxZGNYamtOL2VLWTl1M2VqNjF6?= =?utf-8?B?Z1Vzc211N05KTDhjMUNDbUh5b1puZ2VMSU1oVXYzUjBuTGNHcFE1T1VZV1Ur?= =?utf-8?Q?JJMlwYH+Lq5JJv3y/w?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: a35c6568-ee1f-460c-363f-08de74c95f92 X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9366.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Feb 2026 23:55:37.5303 (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: GBVB506+7YFcNfWK34leqBFzgIfMf3DDIl6yJrLR2g5Mp6JuOhs5ggkP2AzSWXPn52NZIadUSbXB+JXSpkLZOg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8771 Add flexcan2 overlay file, which enable flexcan2 node and disable micfil node. Signed-off-by: Frank Li --- arch/arm64/boot/dts/freescale/Makefile | 4 ++++ arch/arm64/boot/dts/freescale/imx8mp-evk-flexcan2.dtso | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/f= reescale/Makefile index 700bab4d3e6001fe6cf460fcb09cfe57acc77e36..bd377191a68a6167d5f9a65184d= 19c789a4223ee 100644 --- a/arch/arm64/boot/dts/freescale/Makefile +++ b/arch/arm64/boot/dts/freescale/Makefile @@ -233,6 +233,10 @@ dtb-$(CONFIG_ARCH_MXC) +=3D imx8mp-dhcom-pdk3.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx8mp-dhcom-picoitx.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx8mp-edm-g-wb.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx8mp-evk.dtb + +imx8mp-evk-flexcan2-dtbs +=3D imx8mp-evk.dtb imx8mp-evk-flexcan2.dtbo +dtb-$(CONFIG_ARCH_MXC) +=3D imx8mp-evk-flexcan2.dtb + dtb-$(CONFIG_ARCH_MXC) +=3D imx8mp-frdm.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx8mp-hummingboard-mate.dtb dtb-$(CONFIG_ARCH_MXC) +=3D imx8mp-hummingboard-pro.dtb diff --git a/arch/arm64/boot/dts/freescale/imx8mp-evk-flexcan2.dtso b/arch/= arm64/boot/dts/freescale/imx8mp-evk-flexcan2.dtso new file mode 100644 index 0000000000000000000000000000000000000000..f7d2674c45f72353a20300300e9= 8c8a1eba4a2a6 --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8mp-evk-flexcan2.dtso @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright 2026 NXP + */ + +/dts-v1/; +/plugin/; + +&flexcan2 { + status =3D "okay"; /* can2 pin conflict with pdm */ +}; + +&micfil { + status =3D "disabled"; +}; --=20 2.43.0