From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A71B210F286F for ; Fri, 27 Mar 2026 21:34:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: Content-Transfer-Encoding:Content-Type:Message-Id:Date:Subject:From:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=N02sqjYI3iwug+a3LJdYvpxwjSTdj4Djem3qcoSxaU8=; b=XcT+FiSx013KRt1rxBDX+eacpA Kv1eRgsiV58dDmJdiO4+2o+UFHnDGaFoT39buL08CEHruVzJqf8/EMxl+5RAeRuI85bQmAwpXodQI lseALZfXVVbThu/4Jr641LiWVTGKtq1NteOPEwDR4cBK6ehyX+qkhfHCrbGOQm7CiXjk4fK6qeME9 mf1zdyvb5NLVzXGAmGQm2eXCS/ZP8WsdueCgfuNC/2z3LggXzNdysg7R0Ei26hsGHTV9wILY3SjVs YlGW8f7T3rk2jPLZb4yecDbEgooHeNZXBXZ51fy9pBhwRS0r3Esv7PH+O/adNWtSp95ZrjqJbQI0J Km3kecBA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1w6Ep0-00000008Etr-06gU; Fri, 27 Mar 2026 21:34:26 +0000 Received: from mail-westeuropeazlp170100001.outbound.protection.outlook.com ([2a01:111:f403:c201::1] helo=AM0PR83CU005.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1w6Eox-00000008Esn-2LD4 for linux-arm-kernel@lists.infradead.org; Fri, 27 Mar 2026 21:34:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gUFatZvWJF6Hxhf+KbUFQBxsPQM7K3BPQvpUXAVm0km1pyLZR9JobBeR4njrImm739JDLPd5Sv+a3r23gaoMCoW+XG75PiveHmTg3mjJCFLgrUcHGDfHjFD5ShJt/+GbJwcn1+/G+KW7OY9RovhiiaZMKj1N+kzly52CLYXsLVFK0QT+I07wu1ivYlhnqI7tKb4gqBK171FJgLpVpuNnYyZiXaqM/L0zGqhUDA7fLzTJcCK1q3iLuFO9+hqElaOTe9POo5QH2kLPsGy/7jLEnvJwBsr0PdkeleSu2+YHsXqM4zOM+L9oDRncce72HVksCcbhIkQ2JMzNdi3fI7hNLA== 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=N02sqjYI3iwug+a3LJdYvpxwjSTdj4Djem3qcoSxaU8=; b=ektvaMoeq/W9j8dc6KIC3T5OCuTm1bUN4GvFhkZP2myB8P3wTb/djZaD1j1QQJeShmoZB41EHN1tPvEjX4d23KRvhVyqhNbrjkwaW9WQ0uCPBu2cJ1T8vYYuxKMQopsA833WGsbqzVgY3C3GoHyxwSsMDBTSpR5MbwKfgObl7VpcU/fsZSS1aHROQYOKbjpZHgJquStQjwvDaj/+Wsm/Dx4x2/RS8xglv+9mMTqaL7AH9cZl0DRznl6x8W8f5tSoNGJrH4GsV635/0Bdtxn55ssnnZkFNfUvZW9kTKkr/U3mWZufEP77PMZGGrzcz2iGzgUZDqWwJvs5b8lr7eChfQ== 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=N02sqjYI3iwug+a3LJdYvpxwjSTdj4Djem3qcoSxaU8=; b=iHI2wv8YHJY+8FOfqf3uoyc9pXqYKth9kD7rPc2fs3O2PQfqhBEwuYudBTJTIzbhdil8IvPljbYnvg/2Fp/cw6h6tfZSHkobisqb+tzciiKfalgr9QdPM/3L7KYP0MwJxGZBdZI49HwvNQBkITJynRunRCgUOAribVLWpd9W08TN4ss4WgEhA7lcpyTnT+3VzhYA4m/YppW9fgq/CY6C/F3K/yWIJKKVaiDBKRybR3Wfnr22fV8XXqaCdEoyv7sFkaKkcsKVfc0zPGT0tSicQJ3kVQIaRGG+klXHVGG/hqLj44SQdzBZO/m6Nu+Obd5u8fGEFv8DjI9cGHrfebzIyA== 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 AM9PR04MB8668.eurprd04.prod.outlook.com (2603:10a6:20b:43f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9745.20; Fri, 27 Mar 2026 21:34:17 +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.9745.024; Fri, 27 Mar 2026 21:34:17 +0000 From: Frank Li Subject: [PATCH v5 0/7] pinctrl: Add generic pinctrl for board-level mux chips Date: Fri, 27 Mar 2026 17:33:57 -0400 Message-Id: <20260327-pinctrl-mux-v5-0-d4aec9d62c62@nxp.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-B4-Tracking: v=1; b=H4sIAMX3xmkC/13NQQ6CMBCF4auYrq3pzLQFXHkP4wJK0SYKpEWCI dzdQmK0Lt8k3z8zC9Y7G9hxNzNvRxdc18ah9jtmbmV7tdzVcTMUqAUC8d61ZvB3/nhOvG4Koyq tQUnBoui9bdy01c6XuG8uDJ1/bfER1uunUySdEbjgOstrBE1ZluenduoPpnuwtTLij0SVSowSJ OkSVVNKJVNJX0kAqaQokXQFBrKqKapUyh/5/1NGKSQZNDlajfSVy7K8AZflPHdSAQAA X-Change-ID: 20260213-pinctrl-mux-df9c5b661540 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 , Conor Dooley , Ahmad Fatoum X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1774647254; l=4918; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=ZqOXyMEZKpdtfOYJo0Y5lTjFMlx4fpv8p24JFyICfg8=; b=vcBgIHw+s4TVVN/MOk0cT83EjvMhk0f20WPAPS46Ea7LJNM4OEKSAy0SDERY2Gla6yv819jOz 6EsDH406O/EDjuaupbmLOq1yI6f3qFTRXD03EulFwfPZiGTgKGN894C X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SA1P222CA0182.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c4::20) To PA4PR04MB9366.eurprd04.prod.outlook.com (2603:10a6:102:2a9::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR04MB9366:EE_|AM9PR04MB8668:EE_ X-MS-Office365-Filtering-Correlation-Id: 728b2321-abbf-48e9-576b-08de8c48994b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|19092799006|1800799024|52116014|7416014|376014|38350700014|18002099003|56012099003; X-Microsoft-Antispam-Message-Info: c0eEFGMeEIOSP/KA4aOBJobAGlT3xxe8iOUm2Ybs3+RZWnnTL1Pn3FfD4yBJ2nuwaaGejC7a26DnLzjZQgLoNPVNkrHQ1hYzBY7jtzpcoMoa3WzWksA6apOZJpJTTeDhhWaikBaIUuiq0PYu13WTLH+A0YnSckWLwM3DzzizIrEXxCz08ii+SIFrjcFryIOHJrp8cJMyC/Ph7JNMquEOLhHlNi8e1+FXIAE0AHryD34GRjwiJW41tPeyTnEYu7+KU5qR1tQSuqljYjUJltzWkKEylIxJQGT/BLHuuna9QN8+TpN4So58z4gSQuP4c5ubrDom7lsqamycA280A6DR4u+ROuFhnTPlOoEUiJZ8qDbeZIrq4//TtowFvUZbpaQ1lcqzjZGomkH6jGYOnTtLopVSp1o0J95Pu08BRO3YNRV22Nw9DqUa2XHkdiH3cLym6PkXtyx0gXnvYRhSgC+zZnZZVPsUOfwnXBSLavmo8MSCqdCFtmlDEMPqhnV8dRZFIKAiRTnb2+X9cr2XuMCCh0hxSG84L2M0ZnLnqczIGbL6nUKHp9Qt/sY/tBgut1YxHHO6NihQR3FT5WoSIQsm+PJDHB+quNJC/GzJ1gnGxC+6eEguMojSprKObttPdwAN9yzczusE+G1Z9EeX9lsP9fS0ee4q1a08YxWtK6bs/RyYIH0wMDx4XDrQlwcFIwRbHRAcibAeMYSetj1+YEUJs9HK/+KZ2zhs7bXcfaqTc9WeHAYdP1GW3XeFJ2N3gsRB73OhVvvqJguIC3rZyPZ5cw+ydyTjhkfVlIQ8aYsmOwc= 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)(366016)(19092799006)(1800799024)(52116014)(7416014)(376014)(38350700014)(18002099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?L3FEcGtCakxJRGpNbkltdkpodkU5cmRFMGpQaHdzT2l2cWRhL29iUmw3Tkdj?= =?utf-8?B?QWhvdCtBUENYSTlKdzIzR2g1d09qd2RPMVoyU3U0UXEveit6YkFlazhZTjhP?= =?utf-8?B?T093TEFITlYrYTltclQ5UmloeDdXaDA2Q205NzBxTXVvUHM3a245RjVCUmNl?= =?utf-8?B?TzhPWU5iaG5saW9QV2tTcnJ6UzY5RHJ2cVhlOEp4TjIxOHYvSDJibW5YVTFj?= =?utf-8?B?OHA4SXdYLy96bHROMEgvdVpSaU5OdEZmWUI4RHpRTVpDNlF1ZEs1aHVxcUVO?= =?utf-8?B?cTQ3UFRwUng4NzZNQ3hoZ2h5MFl1L3ZrWHErWHBXYWJrcFBiWkNmVXhvaHJP?= =?utf-8?B?TU1QSkNsY2dxS2ZMZG1zRXdJdkgxVm4rVzJZbGZ6bXl0Y2hpbzRZVXRVVWZX?= =?utf-8?B?TTNWNDhOdkJHUndZbEJPWmVVejJrczd1M1B5R0JSdDFIL2p2WGhoMUxaMDAy?= =?utf-8?B?WUFqSmFiR09yVzRXdjBlTWpsT20vWStwMDR4LzNiRStib3g1akdWeUJhTmVW?= =?utf-8?B?QlZqQ3pOTHJmeDFKcnVQVDUwMU45WnE5VzVqeVRYanM3QWM4RklKNkQ5c0xp?= =?utf-8?B?VjFuVkFMVjdqQ2J1akZtWWVCbFRJYXpiM0FXbVNXYTg3WVRtcGdjRkp3MFVO?= =?utf-8?B?SjlUR1d5anQvRlVSL04zcFVzZlpPRklTSkVxNHlCWWJmcExQZTgvZ1dIbVB2?= =?utf-8?B?WVowbmlFdHh1ejJtWTNld05kNFFNeXlmM1JnQ09XRHhvSnRmZGdRSFZMSC9p?= =?utf-8?B?cDhJSVBobStSR1RjaWVmOUpEL1RoWTNOcTczV01QMDY0STBuMEhNQTFPSXFi?= =?utf-8?B?VGZJRC9zKzZxTTZYY1BMalVMR1d2c1pvNFhuMkhkUldzRjZWdmg0Y0pIQncr?= =?utf-8?B?ZFNPWjhNUUYzTUM2cXE3aVlGMzVMU0k5TWE1V1h1OWo5NTN0TkV3Y2ZVK3RH?= =?utf-8?B?ZGdXTkNjR2djZVlyeWVUZzIrYXErNmhmUjM1ZmFuWjdmY3dVbEhHVWNmR2dk?= =?utf-8?B?Y2V0VXhKYndBcWhDbWpCNWlnS09JOHg4QXlvNlBNNUxSQmJIclU4eUgwSTRz?= =?utf-8?B?S2U1ejRmd3k4WFg4eDFEKzhoVTRJWTUvaGhNak1DYkhNVE5TNnNnRnoyMFNz?= =?utf-8?B?aVQycSsraHZsejdndjUwUGZhRjRONGJBcUw2VWQ0cWNRTFNsSmpQYlp3L25o?= =?utf-8?B?WmJ2TkRWenduVUlYalNwTUhJL01SS3BLVTAxVy9nRmcxQUMvWE9lQ3FWd1JU?= =?utf-8?B?M3BCL1VpYkU1dVdvek53MHZGT1BuTXFOU0cvNkVMS3AvbC9Cd0FzbWxkenIw?= =?utf-8?B?c25aa2NxSFlOMVhlMEdPSnUyUGlCTXRVR3k3RWZvWmdNYUx5c0Z2MEliMS80?= =?utf-8?B?MVg2VlNrU05DRFRHSy9GN3hocTZPK2I1VzdManVueDI1b3VoclowVERIS2Rj?= =?utf-8?B?REU3OWR5Z0lIQW1COUJEc3RxcmE2a2pMVVZVc3dCZFNaSW53dUxjNVF6ZnUx?= =?utf-8?B?VzFIUHBIRTVpb0ZidFhabi9GT3ExMENmYzJnanh5VVZDUTB3WjFnVG1xby96?= =?utf-8?B?aFdwSndDQisraTJTL0ZSRzhPdmhkOFlCejR1TUlUUDREYThNSldDUlNoV2po?= =?utf-8?B?RjZJcWVDV1dYVDNyc2VXS2ZEUUdHaXFxY284SzFZV0xvNzg1REx0TUx6d0VO?= =?utf-8?B?MjVIeTMrSmZabTQ5bnY1anNHblpQZUlsVTI0QmF6UW5peGFQTkt5eW1keVQ2?= =?utf-8?B?UDlGQUhDRjFiaS9sT1pkWFE5SDdiN3c4Ym1QRXdLQ2RJMXo0cXJ6QW9qczcz?= =?utf-8?B?bWYramw5UXFBTUtWQlhMcXc4RVNiUlFGblpVRGlpQXYrcENsZU9iN3Q4NkJZ?= =?utf-8?B?R0ZqMzdzcE1QaXhyTW9RZG4zVDVOdmNobFZkZDRNVkV1RllkOURhSU9iT1VC?= =?utf-8?B?UGoyZFZPdGF0SUFWS2RUQmZZOTlJcHR3S0ZsZGV5Y1pCMGpIVk42VXc2Z1E4?= =?utf-8?B?cjZaSjNhRE1hbWQrZzNUdnhSQVhRTXQvZjFUa3NXdXBUYVlyZk9qbDUzNW91?= =?utf-8?B?eEFNNFI0dDIyYlMyYlUySmplbGhUVjd5aVM3ZS9EVlREZGhyRXRzRHdZQ3RV?= =?utf-8?B?TzRWYUc5L091bCsrS1BGWkJld2RIVjJiZ0dZVlBuYVN1Z2o3TGZVa3F2clAv?= =?utf-8?B?Wld4YXYxc0ZCVERYVk53Y1UzNUVvamJ6MWZXelE2bHBiampHZ0cwUUFUZ0pO?= =?utf-8?B?ZWtDM3RXN0dGMVlDVUxDOW5OZlhCZGFrWmwrc08wQjFPanFlRlBndmdJU0U4?= =?utf-8?Q?i/aVxc7CPdJ2mr8vNR?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 728b2321-abbf-48e9-576b-08de8c48994b X-MS-Exchange-CrossTenant-AuthSource: PA4PR04MB9366.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2026 21:34:17.2747 (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: Y5gcjzLFnJa1WpQSv2Ng7M0jqmU+8whpkCXU0ZI99sgMrogmh46xEIogsG/iJ1zkhHrD1+ukzMLl4rgwqnEmhA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8668 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260327_143423_638302_9DD1DE6B X-CRM114-Status: GOOD ( 14.33 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org 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: ┌──────┐ ┌─────┐ │ SOC │ │ │ ┌───────┐ │ │ │ │───►│ MMC │ │ │ │ MUX │ └───────┘ │ ├─────►│ │ ┌───────┐ │ │ │ │───►│ UART │ │ │ └─────┘ └───────┘ │ │ ▲ │ │ ┌────┴──────────────┐ │ I2C ├───►│ GPIO Expander │ └──────┘ └───────────────────┘ 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 Signed-off-by: Frank Li --- Changes in v5: - add npins to pinctrl_generic_to_map() - remove pins = kmalloc() in pinctrl_generic_to_map(). - Link to v4: https://lore.kernel.org/r/20260325-pinctrl-mux-v4-0-043c2c82e623@nxp.com Changes in v4: - use Conor Dooley suggest to extract funciton pinctrl_generic_pins_to_map() - Link to v3: https://lore.kernel.org/r/20260311-pinctrl-mux-v3-0-236b1c17bf9b@nxp.com Changes in v3: - collect rob's review tag for binding - extend and use pinctrl_generic_pins_function_dt_node_to_map() - add judgement about commit 2243a87d90b42eb38bc281957df3e57c712b5e56 "pinctrl: avoid duplicated calling enable_pinmux_setting for a pin" which call pinmux_disable_setting() before pinmux_enable_setting() when switch state. It is actually what wanted. Previous remove .disable() to avoid hardware glitch when switch state. New .release_mux() call intent just release software resource, like lock, don't touch hardware register. No glitch involve. Comments already added Linus Walleij: I hope this answer all of your questions. If I missed, let me know - Link to v2: https://lore.kernel.org/r/20260225-pinctrl-mux-v2-0-1436a25fa454@nxp.com Changes in v2: - Add release_mux callback, test insmod/rmmod, mux_state_(de)select() called. - Link to v1: https://lore.kernel.org/r/20260219-pinctrl-mux-v1-0-678d21637788@nxp.com --- Frank Li (7): mux: add devm_mux_control_get_from_np() to get mux from child node dt-bindings: pinctrl: Add generic pinctrl for board-level mux chips pinctrl: extract pinctrl_generic_to_map() from pinctrl_generic_pins_function_dt_node_to_map() pinctrl: add optional .release_mux() callback pinctrl: add generic board-level pinctrl driver using mux framework arm64: dts: imx8mp-evk: add board-level mux for CAN2 and MICFIL arm64: dts: imx8mp-evk: add flexcan2 overlay file .../bindings/pinctrl/pinctrl-multiplexer.yaml | 57 ++++++ .../devicetree/bindings/pinctrl/pinctrl.yaml | 2 +- arch/arm64/boot/dts/freescale/Makefile | 4 + .../boot/dts/freescale/imx8mp-evk-flexcan2.dtso | 15 ++ arch/arm64/boot/dts/freescale/imx8mp-evk.dts | 23 ++- drivers/mux/core.c | 40 +++-- drivers/pinctrl/Kconfig | 9 + drivers/pinctrl/Makefile | 1 + drivers/pinctrl/pinconf.h | 18 ++ drivers/pinctrl/pinctrl-generic-mux.c | 197 +++++++++++++++++++++ drivers/pinctrl/pinctrl-generic.c | 94 ++++++---- drivers/pinctrl/pinmux.c | 5 + include/linux/mux/consumer.h | 16 +- include/linux/pinctrl/pinmux.h | 5 + 14 files changed, 424 insertions(+), 62 deletions(-) --- base-commit: ff76d257e86235eb07ef33db8644a517c48d1c3f change-id: 20260213-pinctrl-mux-df9c5b661540 Best regards, -- Frank Li