From nobody Thu Sep 24 13:43:36 2026 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013002.outbound.protection.outlook.com [40.107.162.2]) (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 B6F2846C4D0; Wed, 23 Sep 2026 15:39:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.2 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177977; cv=fail; b=mcBJ0ePAyLQUNPiKcwVvUkLBRjL6V+nmthMUlv1rywT9mkOB3TsKGTauhk+l95WgRExjhpCYVPk6OwF76RsOtDQY8F5OcwLANCBUQxQyWMccIEmVEd7g0Q6qJ2HMGyamDpcHz4GK/OSbaR9n89BWm8tTaKe16PInnyv2X+kyVf4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177977; c=relaxed/simple; bh=ZmD7qIcJpHxEn3+/61ipahgAIeApBqgICIKmygCBD2I=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=oL7+vZzh7VJHnPu0mAFxBdTq5t8T/ZSSevUlg8P1C/2+I6OlAcwNMI75pk2vwHBRY1nT20F+RcWkrHeXJ+C4UBNt/tbvH22uogtCXYZwG2hrrVhqrKiwKVT6KU76wYepn/yoGo7UFBfWCkiXRw2UMFSj1R+yU7ffhRU+BXk4rhg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=farif1eA; arc=fail smtp.client-ip=40.107.162.2 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="farif1eA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WK3xEvEtTCZ5syOOfp9dj15u0wIwArNXCJtlkM9pwt0VcWghZD0loZsQW3aK2u4xE8Q8SgewenCwpaQMTaiT1RqoTOdwMYvEtujz1LaqZBzgYret41DwYeMib+xXcMyAY5E58hxTfddOtGnkgaiU4/lEUtWMiP6escMtpPBGI5Dwft4fBs1XYNPSLrNEbw3YqL9j8IitOcYcDSB+ccNetQpz1k1BZVYefylv1c8mqOsdwnL+Kc3zCkRcWIUPdL1RtpdFqb/gHmBqXjdHgyulOaHpcpZRIaOfAwYUdQBr1X4KB+0Pqm5TFuVVVBJ546C+Ma8XeeWFvT1jse+5IYxSnw== 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=N7tIvJgD2x09GrLWHzpho0MO1qmTrLP/91niW6izk2g=; b=y7jvuF62hUdIDiMAf708BD0TNsaerHPatDei7XrWQw3gwzprrLij3oaIXVOOb274xOMC68xGpBHSqHgUpPA/Dbbvv+7Eb8DNl9aFytt4LpGiV+dr+OcbsbbmAwmdcDhWGF4yamwcOmYts9TWLo7fSP0DnJEcJKSszFrk9fWtM9lMaax8y3MNBBNuOnSgL5Efe1a4PCVihW5/Hcnhyui7xI7y7SWiP6eUnJooW0lejeJJ6qXrOEup2hKbpPzRszA1EYWM+XuMaS7gRKPdbsi0am2II+G1EBzVIB7c0bucHM2+llCG+93ljohQGzDSv1vRwkTtEs9Zj6NeVnnXPQMtcg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.60) smtp.rcpttodomain=st-md-mailman.stormreply.com smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=N7tIvJgD2x09GrLWHzpho0MO1qmTrLP/91niW6izk2g=; b=farif1eA1/ycKkCTAjGee/Rp47gqOWzk2WStlWuTekwEJ1zLMj4wtikXX384dyCXmB6aWBlHbW72ARnex2yT2f5bLzKF3Cv+fYYq7RL0er6FFqMHKkriHWQqkyyYALYl8A/1kiiKeTnOGWfTYkd4sVeRrohJGL4NlzQVqKUg8yGhrpbwyyDXBWTwx4rdeQ6K996y0CJDGiiPMrFL5YFq2Wf54UCr+BFVntyOrDbciX7UnnxV8H3dG/CzcOq1nDxAE2yqBbChgiDkKxBpWJH108kPWwNQSFCAVksBgFQr5FoRcwmHSYMOqfU45NomU/eh6+U55+UBQ5arJJOdjUssog== Received: from OL1P279CA0045.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:14::14) by PAVPR10MB7036.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:30f::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.14; Wed, 23 Sep 2026 15:39:30 +0000 Received: from WA1PEPF000099CF.eurprd04.prod.outlook.com (2603:10a6:e10:14:cafe::2e) by OL1P279CA0045.outlook.office365.com (2603:10a6:e10:14::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.451.14 via Frontend Transport; Wed, 23 Sep 2026 15:39:29 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.60) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.60 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.60; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.60) by WA1PEPF000099CF.mail.protection.outlook.com (10.167.242.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.8 via Frontend Transport; Wed, 23 Sep 2026 15:39:29 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpO365.st.com (10.250.44.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:45:17 +0200 Received: from localhost (10.252.7.7) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:39:27 +0200 From: Fabrice Gasnier Date: Wed, 23 Sep 2026 17:39:04 +0200 Subject: [PATCH v2 01/14] dt-bindings: iio: adc: stm32-adc: add support for stm32mp23 and stm32mp25 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260923-adc-stm32mp25-v1-v2-1-46bc019537c6@foss.st.com> References: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> In-Reply-To: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , "Andy Shevchenko" , Rob Herring , "Krzysztof Kozlowski" , Conor Dooley , "Maxime Coquelin" , Alexandre Torgue CC: Marek Vasut , , , , , , Fabrice Gasnier , Cheick Traore , Olivier Moysan X-Mailer: b4 0.16.0 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: WA1PEPF000099CF:EE_|PAVPR10MB7036:EE_ X-MS-Office365-Filtering-Correlation-Id: e4fad786-b74f-405f-9dec-08df1988db69 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|376014|7416014|1800799024|82310400026|36860700016|6133799003|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: tLMEP2f4ftFtuvqm6C93gjzJNAyqt/PB2PKNxa/HNNK9shmT7uDyiuXcwrC+xKAHLQdAlVwh6yhZgWYL0IklKi4vsjK/O7LM+aoTqcYfjekELDQmKm43lthHXJf6gyVV4l/L/20DhwUEqE5bxTZ3NbfQtt6wSmd/CW10E13BArtViExqf/E6Emym5d/EfqVW7993ZDgRVY6A8BDCizk6/M17V9ukm88+6wLsuBKO5ldvD/4hnyrk8T5j8VMBoR9MyXO6GE44rEgnpLVhbq/rHPusf8s7bTd1pIqKMm/TTUU1VY7mST3G4oPuCLkZ9TYhhcaQU3YD30Oz0VAeDEp+/P7WC/eo65Z+dfGXfpkz1VOTPSW9zDtWnVHoLHGTHwoQHf7QD9VihWECOcL/7DX004sl5olSnxqUCQUvdi6zPnWo/cYQNlNprkZJnW5aHVy8mixPRnm/lKBIrC3/E15WGEgJzxBl6MV4yWrwC/kWhO4SDT4cI7Z1v7LJps2yDucUNijehz5bcBYKKrupIbAiWB9Hjo7xisgHqjJU0onbjzUA+Q4E7p8J5vo7fyypndnlsTZeuSHjUSkCrUMVgV/sUuMfkYqHzeyAdsoMqtdO9RWuFvaXjwczvTHiqDZ7ZAmgRNHg4K9HPg47IZgkEw4M3zH6qnR2PIl6u085qXWMoCoc01NnEYkEU6zeRs5YFfx3RjDRrZd0HJtn/1AhxvS+AQ== X-Forefront-Antispam-Report: CIP:164.130.1.60;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(23010399003)(376014)(7416014)(1800799024)(82310400026)(36860700016)(6133799003)(10067099003)(56012099006)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: u6uTE80zxqjf6++sfRiu1N9ntW3QR9sEGlkm3dlCG7D6DY29MXwOKPz7vHJAT0G58g20dQjCEeTOQLBjnqai/73ZvKEY+h0EvNW1qGyQOZ/saphQGABSPc/bIPNEMxFppggQWCGw6aDu/IsAh6/VO78B4FwphuhQyKvWtK6A332soi4CvjTVBzKJt4NWUZfoqeWX2VwsYFfTL5Wo/3QkO5ZgZJ5nNGmS0c3o3RejayFKrdTtpeX+uDtiv7guwRHKT9RJftLje6mLOBmz0outPcGaxKj/wbeZrm2yiPZscdIRgVdDvGu2z9+Irf5OtRFgR1WY1lS+0LJNThhsHauBIJiFv5j7oslDh212GeCmsZEkWd9kDyaB7U8zUo8PgbiJAxnZ7vUYKsBthhVwd1OsW11Zp7r0Lrmuh1rmeKx6OXfPdBd+8JVXnHYi72Lvg+PL X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 15:39:29.6165 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e4fad786-b74f-405f-9dec-08df1988db69 X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.60];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: WA1PEPF000099CF.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR10MB7036 Add stm32mp23 and stm32mp25 compatibles. Three ADCs can be found on these SoCs, split into two blocks: - ADC1 and ADC2 are tightly coupled (common registers). - ADC3 is managed independently. Each ADC has: - 12-bits successive approximation analog-to-digital converter - up to 20 single ended or differential multiplexed channels - different trigger list, or internal channels interconnects, hence add a dedicated compatible for each ADC1, ADC2 and ADC3. The trigger list varies in between the two SoCs. So add a compatible for each SoC/ADC child. STM32 ADC may be in a power domain: allow a single 'power-domains'. Restrict the last channel (19), as it is wired directly to ADC Vref+. It's meaningless to have direct measurement. Internal Vref with calibration data from bsec (nvmem) must be used instead e.g. vrefint. Restrict deprecated properties (st,adc-channels, st,adc-diff-channels, st,min-sample-time-nsecs). Co-developed-by: Cheick Traore Signed-off-by: Cheick Traore Co-developed-by: Olivier Moysan Signed-off-by: Olivier Moysan Signed-off-by: Fabrice Gasnier --- Changes in v2: - Drop st,adc-trigger-sel: as discussed with Jonathan, better to describe each ADC child with a dedicated compatible. It is robust approach to distinguish variations in trigger list and internal channels interconnects. - Drop unused fallback compatible. --- .../devicetree/bindings/iio/adc/st,stm32-adc.yaml | 71 ++++++++++++++++++= ++++ 1 file changed, 71 insertions(+) diff --git a/Documentation/devicetree/bindings/iio/adc/st,stm32-adc.yaml b/= Documentation/devicetree/bindings/iio/adc/st,stm32-adc.yaml index c4c4575d3fa9..e7e92fd4959a 100644 --- a/Documentation/devicetree/bindings/iio/adc/st,stm32-adc.yaml +++ b/Documentation/devicetree/bindings/iio/adc/st,stm32-adc.yaml @@ -28,6 +28,8 @@ properties: - st,stm32h7-adc-core - st,stm32mp1-adc-core - st,stm32mp13-adc-core + - st,stm32mp23-adc-core + - st,stm32mp25-adc-core =20 reg: maxItems: 1 @@ -78,6 +80,9 @@ properties: Phandle to the vdd input voltage. It can be used to supply ADC analog input switches on stm32mp1. =20 + power-domains: + maxItems: 1 + st,syscfg: description: Phandle to system configuration controller. It can be used to contro= l the @@ -215,6 +220,33 @@ allOf: maximum: 75000000 default: 75000000 =20 + - if: + properties: + compatible: + contains: + enum: + - st,stm32mp23-adc-core + - st,stm32mp25-adc-core + + then: + properties: + clocks: + maxItems: 1 + + clock-names: + const: adc + + interrupts: + items: + - description: interrupt line for ADC1 or ADC3 + - description: interrupt line for ADC2 + minItems: 1 + + st,max-clk-rate-hz: + minimum: 700000 + maximum: 70000000 + default: 70000000 + additionalProperties: false =20 required: @@ -244,6 +276,12 @@ patternProperties: - st,stm32h7-adc - st,stm32mp1-adc - st,stm32mp13-adc + - st,stm32mp23-adc1 + - st,stm32mp23-adc2 + - st,stm32mp23-adc3 + - st,stm32mp25-adc1 + - st,stm32mp25-adc2 + - st,stm32mp25-adc3 =20 reg: description: | @@ -486,6 +524,39 @@ patternProperties: maxItems: 19 items: minimum: 40 + + - if: + properties: + compatible: + contains: + enum: + - st,stm32mp23-adc1 + - st,stm32mp23-adc2 + - st,stm32mp23-adc3 + - st,stm32mp25-adc1 + - st,stm32mp25-adc2 + - st,stm32mp25-adc3 + + then: + properties: + reg: + enum: + - 0x0 + - 0x100 + + interrupts: + minimum: 0 + maximum: 1 + + assigned-resolution-bits: + enum: [6, 8, 10, 12] + default: 12 + + channel@19: false + st,adc-channels: false + st,adc-diff-channels: false + st,min-sample-time-nsecs: false + additionalProperties: false =20 required: --=20 2.43.0 From nobody Thu Sep 24 13:43:36 2026 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013024.outbound.protection.outlook.com [40.107.162.24]) (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 9D7D04F85A9; Wed, 23 Sep 2026 15:39:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.24 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177975; cv=fail; b=Liojn99RjqWFg5nnahYUkn33MgETBzeRsRBRl7HgQOGx5GnSsztcE8x5mokaUFg/5AYYV1i5QPtLHdEWShuVa1EunT9IlQRKQ4av8Y36/qjiWP6OiiSNpX4EUoK1u8qwwdA1JNy2GoA3a5tuW0XW93z1ccTuZ6XwvHMDOQxXFBw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177975; c=relaxed/simple; bh=BhYJx/9A2yNqo3/jeMOUUB55QCOnQqwyhY2wHO0abYM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=Xl7LJT7mJSaFAu7JnMGa/5pPSR46RfSI+MeV/eDlnZh9oRRuNO2LaVLJx1Mck8s6XPRZ43ZLRqoLjHKKXczwIkZ4hJvmxOgXdKfkQqBGfrUFxl9uTZAWF3b2dOR20ujZGHHTzLZzjtOqekdDt4kbbNt1h4cF0UPkk728ARi+OIc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=LodmsKxO; arc=fail smtp.client-ip=40.107.162.24 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="LodmsKxO" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=L1IcC4SROYXNClexriguMr4/FS/p6GSfS8s5vsboIDi72jFbCymOXJ5hr498YQPWuR9P5GWlsRr2MBc5ybYcCKc0sL1BlS/1yrh/SyGq8vc8bl5S/tGoiC2P4DGpfdb48dyR6ng34uI1de3o59CZtz9A1oAWwsuqa80kIvOoDOVEMYIwMWpGLF1Lr9nCau5lkh0A1zezw9JXKlxw7bV5powxkn3XGz8zJ+bYOcV8Ua3/AZD7cz/BIfNgdxjyAQBozfCEj2MJJNCsBhm/a1cwLK37ke3vh0sA55DFwjIYrVAkBR/wBoXB65cAvrX9absmBcndabhp0OCUK8qQ39gLXw== 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=MQRRyv3J5DLGN7L/CYs+2LWcQAdmwhlsHI04RAiZ8o0=; b=y8H/AqgWiytcDN42uIzSf3xhGV3rFz/vV2tvQx7nnDT+O0rK5eeIk+DC2NP+nGl4meMMJDDQ8eMSESkc0HwgPhsp8ywUlvtwzjr66t9L8gQfC3QJuuh2vyq7TpnlSEQITD6JRayOefPxzJyT3ZUVpFPPO1FlvCc8mNSn3Cb8TEPcqI3GN3/otDDVV/g8NzfQzDr8dz0W6XeNFSRIhbip1cdMh1fC5PInuHpiDBUwgceOGTuXeqr5qy52B0zNWGJcCGciEMJZNr14VK0CjJw8ndlDMhDgmk8wmBJbc+wrVgMYXXUB/p2Lboz1PeF6LWnJM0SiKbE47DhF0uB+lsefBQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.59) smtp.rcpttodomain=st-md-mailman.stormreply.com smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MQRRyv3J5DLGN7L/CYs+2LWcQAdmwhlsHI04RAiZ8o0=; b=LodmsKxO7IHr/+vHjO/BvNQ8nQM46hxL5oaWX9WIC+cvy186SVDiTjcsEYjedQkby8PZkiLwfqE8zdu0Ytsi8nqJsJU5xF2czbfg0Nv72RdIRK2veL1GaJGCNYg6hWsgucEo0etBwIQI4G4ohXOqWt+pyuegoBzB7prqIg22W8gCWx6LEakAqt+YGh1QLQCdYxLSAmC4+iHSGM53NZOD4leM1EEbTlwPtd8jCiJCx/qSZuv3WJ5GAkDhfAd21j/UdjMFNwTkm57XHd6GPzrUC9DQUHLkDAiVLhRkxzAmBjxtxb6b86cpwNImCYSYcu3LWDgvg4qoBqpRDewH4U+qGA== Received: from DU7P195CA0001.EURP195.PROD.OUTLOOK.COM (2603:10a6:10:54d::15) by DB5PR10MB9193.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:5e6::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.17; Wed, 23 Sep 2026 15:39:29 +0000 Received: from MAD0EPF000008B2.eurprd04.prod.outlook.com (2603:10a6:10:54d:cafe::64) by DU7P195CA0001.outlook.office365.com (2603:10a6:10:54d::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.451.14 via Frontend Transport; Wed, 23 Sep 2026 15:39:29 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.59) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.59 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.59; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.59) by MAD0EPF000008B2.mail.protection.outlook.com (10.167.241.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.8 via Frontend Transport; Wed, 23 Sep 2026 15:39:28 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpo365.st.com (10.250.44.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:45:56 +0200 Received: from localhost (10.252.7.7) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:39:27 +0200 From: Fabrice Gasnier Date: Wed, 23 Sep 2026 17:39:05 +0200 Subject: [PATCH v2 02/14] iio: adc: stm32-adc: core: manage clock prescaler diversity Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260923-adc-stm32mp25-v1-v2-2-46bc019537c6@foss.st.com> References: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> In-Reply-To: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , "Andy Shevchenko" , Rob Herring , "Krzysztof Kozlowski" , Conor Dooley , "Maxime Coquelin" , Alexandre Torgue CC: Marek Vasut , , , , , , Fabrice Gasnier X-Mailer: b4 0.16.0 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MAD0EPF000008B2:EE_|DB5PR10MB9193:EE_ X-MS-Office365-Filtering-Correlation-Id: 5372faf3-bff5-49ee-cfe7-08df1988daf4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|82310400026|23010399003|36860700016|7416014|6133799003|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: y8E+pPeBadHtXMrVkBOMxq7pgk538yxMWMAxl375s4SmRbph/Je3aiZo3Ea9GzQIbGiRRqHQeWE2vDpeTTKEwwKnPnY1CFvVB8rTBgCV2oI9ZjNZSeELx44NOz79r6JDcXcKTEcy4Doah+8mJPhc4jkiv1t17Sr+vnfyWHKZg9fkhSRB61ij5zHf4m+4WoGl0eVzA/fsQUTVTTOAp/HG8mCi1Of2b1JNNTpIfMOSp/0WwbKx0sty8zDMpg7it/eW5ypU+uD23kMVW1stBjLq2mZoHXeHQent5U0gHDdFf5yMwb7Oebuc73oa5Fu+xZgbjFmWgaBZlHDupMvTqJV7G4EpEuOfRj2zcJuNoY8ULjtdU5ifCWUGa1MH96QJB6qTWO9dwYcTxl+6phtgfjp/UAoO2Te/FGvO2owZsIBEuiqmU/HAYlO7FvNFDZF1hieiSZL4OGUZTEWN61zaaK+2cexUCpYQz2j5VAEMsCe8ofqTHXGO/duHka4jZd5sKaSa8oxdMMOvXp+98fUGNdepiW4dzw2AKExx4Gyp/X7108SYPILa1tMYRV8uhSO7WBNiTXZ++FEvaF5KVrIfuzsh6jS2odYzIsuuhU/6kBSv7KcWL1Yzr19olDybnBFGbnsG38moJ2jhvYfgDV3+LOKWgVHjRw6nHHcTiPCtLIEl6OY7jdVAACwwvxETV0RegVpg0fkr0zpxYf9rYjR/0kv2gg== X-Forefront-Antispam-Report: CIP:164.130.1.59;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(376014)(82310400026)(23010399003)(36860700016)(7416014)(6133799003)(10067099003)(56012099006)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 5KH9uAQla+03Eu+qUiC2BL3PlAfIPYiy1kkUvr2sP6Q8m9RfhXTYi8ao5iUM2Dq+CP9vXv0fVTLo9SnjzPibELxlt22tJWtfne+BtyRXOuFdxFOclBYNskREmYxysrZr7rSZAJuCBCsRJNLmS5uPvqgy86JJuzoxsj+1Mt1j4zoOeG4+KjTC5/JoAmXS1zmjwkknTdxUZqQXolRtWVg7WlcIrWIbAR3Lrnzae5eiuj49JhQfCM84itpZ1Ur4PzrNgIoSuRnjGi9af2RPx1LLdB08JHfOUkzEuEHurjQqYaaWuDceDHbYi/v7a24JA8GUdv9GFWJU5/RCADbkl7so457ikukRomtYB0Ea1ZHoDSAc+J4hEWZUkRUdbZPI/Jr02VQ7YZ0H6D4zqF+PVgJ63z9VjhTKlTFGyl/NvdlDEvZpgAhcUqY6qYpjhyrfGKIt X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 15:39:28.8424 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5372faf3-bff5-49ee-cfe7-08df1988daf4 X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.59];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: MAD0EPF000008B2.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR10MB9193 Make the clock prescaler selection configurable, to prepare stm32mp2 support. Reuse existing stm32f4_adc_clk_sel(). Rename it so it's no longer specific to stm32f4. Add configuration data to handle upcoming differences on: - registers and bits - division ratio No functional change intended. Signed-off-by: Fabrice Gasnier --- Changes in v2: - new precursor patch as advised by Andy and Jonathan - unsigned prescaler array as advised by Andy - cosmetic: spaces before and after braces --- drivers/iio/adc/stm32-adc-core.c | 40 ++++++++++++++++++++++++++----------= ---- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/drivers/iio/adc/stm32-adc-core.c b/drivers/iio/adc/stm32-adc-c= ore.c index a42d82d61cb8..14ed50bb3ab5 100644 --- a/drivers/iio/adc/stm32-adc-core.c +++ b/drivers/iio/adc/stm32-adc-core.c @@ -50,6 +50,8 @@ * @ovr_msk: array of ovr (overrun flag) masks in csr for adc1..n * @ier: interrupt enable register offset for each adc * @eocie_msk: end of conversion interrupt enable mask in @ier + * @presc_msk: prescaler mask in ccr + * @presc_shift: prescaler bit shift in ccr */ struct stm32_adc_common_regs { u32 csr; @@ -58,6 +60,8 @@ struct stm32_adc_common_regs { u32 ovr_msk[STM32_ADC_MAX_ADCS]; u32 ier; u32 eocie_msk; + u32 presc_msk; + u32 presc_shift; }; =20 struct stm32_adc_priv; @@ -66,6 +70,8 @@ struct stm32_adc_priv; * struct stm32_adc_priv_cfg - stm32 core compatible configuration data * @regs: common registers for all instances * @clk_sel: clock selection routine + * @presc: clock prescaler array + * @num_presc: number of clock prescalers in presc array * @max_clk_rate_hz: maximum analog clock rate (Hz, from datasheet) * @ipid: adc identification number * @has_syscfg: SYSCFG capability flags @@ -75,6 +81,8 @@ struct stm32_adc_priv; struct stm32_adc_priv_cfg { const struct stm32_adc_common_regs *regs; int (*clk_sel)(struct platform_device *, struct stm32_adc_priv *); + unsigned int *presc; + unsigned int num_presc; u32 max_clk_rate_hz; u32 ipid; unsigned int has_syscfg; @@ -126,22 +134,22 @@ static struct stm32_adc_priv *to_stm32_adc_priv(struc= t stm32_adc_common *com) } =20 /* STM32F4 ADC internal common clock prescaler division ratios */ -static int stm32f4_pclk_div[] =3D {2, 4, 6, 8}; +static unsigned int stm32f4_pclk_div[] =3D { 2, 4, 6, 8 }; =20 /** - * stm32f4_adc_clk_sel() - Select stm32f4 ADC common clock prescaler + * stm32_adc_clk_sel() - Select stm32f4 ADC common clock prescaler * @pdev: platform device * @priv: stm32 ADC core private data * Select clock prescaler used for analog conversions, before using ADC. */ -static int stm32f4_adc_clk_sel(struct platform_device *pdev, - struct stm32_adc_priv *priv) +static int stm32_adc_clk_sel(struct platform_device *pdev, + struct stm32_adc_priv *priv) { unsigned long rate; u32 val; int i; =20 - /* stm32f4 has one clk input for analog (mandatory), enforce it here */ + /* This ADC has one clk input for analog (mandatory), enforce it here */ if (!priv->aclk) { dev_err(&pdev->dev, "No 'adc' clock found\n"); return -ENOENT; @@ -153,20 +161,20 @@ static int stm32f4_adc_clk_sel(struct platform_device= *pdev, return -EINVAL; } =20 - for (i =3D 0; i < ARRAY_SIZE(stm32f4_pclk_div); i++) { - if ((rate / stm32f4_pclk_div[i]) <=3D priv->max_clk_rate) + for (i =3D 0; i < priv->cfg->num_presc; i++) { + if ((rate / priv->cfg->presc[i]) <=3D priv->max_clk_rate) break; } - if (i >=3D ARRAY_SIZE(stm32f4_pclk_div)) { + if (i >=3D priv->cfg->num_presc) { dev_err(&pdev->dev, "adc clk selection failed\n"); return -EINVAL; } =20 - priv->common.rate =3D rate / stm32f4_pclk_div[i]; - val =3D readl_relaxed(priv->common.base + STM32F4_ADC_CCR); - val &=3D ~STM32F4_ADC_ADCPRE_MASK; - val |=3D i << STM32F4_ADC_ADCPRE_SHIFT; - writel_relaxed(val, priv->common.base + STM32F4_ADC_CCR); + priv->common.rate =3D rate / priv->cfg->presc[i]; + val =3D readl_relaxed(priv->common.base + priv->cfg->regs->ccr); + val &=3D ~priv->cfg->regs->presc_msk; + val |=3D i << priv->cfg->regs->presc_shift; + writel_relaxed(val, priv->common.base + priv->cfg->regs->ccr); =20 dev_dbg(&pdev->dev, "Using analog clock source at %ld kHz\n", priv->common.rate / 1000); @@ -314,6 +322,8 @@ static const struct stm32_adc_common_regs stm32f4_adc_c= ommon_regs =3D { .ovr_msk =3D { STM32F4_OVR1, STM32F4_OVR2, STM32F4_OVR3 }, .ier =3D STM32F4_ADC_CR1, .eocie_msk =3D STM32F4_EOCIE, + .presc_msk =3D STM32F4_ADC_ADCPRE_MASK, + .presc_shift =3D STM32F4_ADC_ADCPRE_SHIFT, }; =20 /* STM32H7 common registers definitions */ @@ -850,7 +860,9 @@ static DEFINE_RUNTIME_DEV_PM_OPS(stm32_adc_core_pm_ops, =20 static const struct stm32_adc_priv_cfg stm32f4_adc_priv_cfg =3D { .regs =3D &stm32f4_adc_common_regs, - .clk_sel =3D stm32f4_adc_clk_sel, + .clk_sel =3D stm32_adc_clk_sel, + .presc =3D stm32f4_pclk_div, + .num_presc =3D ARRAY_SIZE(stm32f4_pclk_div), .max_clk_rate_hz =3D 36000000, .num_irqs =3D 1, .num_adcs =3D 3, --=20 2.43.0 From nobody Thu Sep 24 13:43:36 2026 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011023.outbound.protection.outlook.com [52.101.65.23]) (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 EA5C8559C83; Wed, 23 Sep 2026 15:39:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177980; cv=fail; b=fm3SMWvAga2z/ERm8qQCsFr4FtzA4WCpVG2ZVSHMcxesp3nK9zzWTFD5EWgpxdZDC8UG6OsM9X7VD2mQvtugiz+sencdaTEteVPSjBM4pY8F2KdOSooKn2ptNG9QRaOHmR4fjZHDXfcp2oUxNbPZQgGrvEkEvYku3XAQ7y6WBGM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177980; c=relaxed/simple; bh=qCTc1sQzmcgkZSQ5v55iqaGibXjFvFDyp7Dyr+AzgJY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=UGKEMNZ/eI2Do9RwllWSJ1oZ7RjF0YlZDQy80UAkbJ1NUPWwrfHBFV7/a6BSrm2vuMqg4xgav7Jj7jOoMPzqcnbQIoypoNgodT0UEHmZRix75tZkOiM5bv0lARpV2VZN5IMJEQj8C3EAErtQbM6u6Qal7KfmP/4bYAaGtYA1xzE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=CrAvs+FL; arc=fail smtp.client-ip=52.101.65.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="CrAvs+FL" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=mh02r9jwu3rLx6OBBkkWjVJv7w/ShZrFEe08smgBy3JDKySz1uxOI51fokWGVxNomIRz8nsJT5N0YeahtRjUZg9J6gEhWbUy0gN8Jp3PPo6zGUpYYcGyRxDEXmI1km5f69uqADNB9Vn246JiXwOeDTo1XkhMIbQ6OkU1TrhLyglDsrNtfS9huxEegXSsqzzikH3dTUcLjjWU7PECDhsG3/bM0WPPPgdfYSbaLv+TASoeGMut6IaoLfyOW2HVI/zoplS4P0BfI1rIKtoE+oXy4JoxKBeTOmPove5sMLBcKC3DDH4Gu6CJZsdmfgI4PMJ4sJ5hq+k4qRt+9zfxJyzzbw== 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=7f0lJIKnJnuoBCuEnSY1AN6337cLyUeiWLbw5sVNinQ=; b=rHPCzYTWvmk4mF/ylHx//0anzWCF2H4FXmVXw/vko+1G+K4rpHJra1IMOhg3Y8H1lstkla24d5eOYzVGNNuahPuKfXnHcAMtQDIz+/bvwff3KePtaBx9LrnHmKeCwOnDcXjTn5lNHU7xiUy+T53yRAc3Otj1Q7oFAodwT1qFCqATGP6NB7Pnzzzo7zMbCjy9tMSeiwpikr5nTzseR2ihADxrDx25XKfmnzTtumA9kehWSU60IdvYPS0tJYHH13yNLfEnBT20ctnKxIAU6dCebqOxngQzv4URJS0B0HWC11vKgS/0+n/M8Bo1eY6mBl7ugTO9CWHsoje0zXqD32dZxg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.60) smtp.rcpttodomain=st-md-mailman.stormreply.com smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7f0lJIKnJnuoBCuEnSY1AN6337cLyUeiWLbw5sVNinQ=; b=CrAvs+FL76xbPtt4FGIoAB/rcRFFcV5e3FPzVCohb6jWC8thIqgqY2CoPgfi7lgZcwTL+d5tvv7ZtgF1D4Ld63V7HLTWzcTVWZIysTbsnyzHOzXRtgkc/IzcN83ZCy39E3Do/xaVZGUmL/w/VRzpGj8FLpZt3GlqTzLuVQFh/7mzxDkRDNzbT5sc4IntUpDLtiXknJIP1pBKB+VdAq8A2SJ15Roo0zmqn6wc9rQQ0mZxTNQk3SbP4y/XB+d4jK7oCeh4rFxGXEY+UFBdvU35egSPAzTVNnkOoEMF5p8RebXUW3kpyeLooU5SCZjdJP+c50MLgYgTQlfAp2QHlnX9ew== Received: from OL1P279CA0053.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:14::22) by PAVPR10MB7281.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:31c::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.14; Wed, 23 Sep 2026 15:39:30 +0000 Received: from WA1PEPF000099CF.eurprd04.prod.outlook.com (2603:10a6:e10:14:cafe::63) by OL1P279CA0053.outlook.office365.com (2603:10a6:e10:14::22) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.451.14 via Frontend Transport; Wed, 23 Sep 2026 15:39:30 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.60) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.60 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.60; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.60) by WA1PEPF000099CF.mail.protection.outlook.com (10.167.242.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.8 via Frontend Transport; Wed, 23 Sep 2026 15:39:30 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpO365.st.com (10.250.44.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:45:18 +0200 Received: from localhost (10.252.7.7) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:39:28 +0200 From: Fabrice Gasnier Date: Wed, 23 Sep 2026 17:39:06 +0200 Subject: [PATCH v2 03/14] iio: adc: stm32-adc: core: configurable number of interrupts Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260923-adc-stm32mp25-v1-v2-3-46bc019537c6@foss.st.com> References: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> In-Reply-To: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , "Andy Shevchenko" , Rob Herring , "Krzysztof Kozlowski" , Conor Dooley , "Maxime Coquelin" , Alexandre Torgue CC: Marek Vasut , , , , , , Fabrice Gasnier , Cheick Traore , Olivier Moysan X-Mailer: b4 0.16.0 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: WA1PEPF000099CF:EE_|PAVPR10MB7281:EE_ X-MS-Office365-Filtering-Correlation-Id: b0cfdeda-8125-487c-b017-08df1988dbf8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700016|1800799024|376014|7416014|23010399003|10067099003|18002099003|22082099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: Uzv82G2JPB6RGcotzkRUTP3378hj4CWyIGukXhN62nZlB7jvLrkStyxrBitJlNrb7smKzt82K+QdGjuoqr+AX+HfsZuubWCUSJ/VG3xPWC9jeOxAP8jwbUDhKtjLd+PiBo1PTVRJIOkZ9POmcxGSCXFf+wI+rrIBHjenzBGyEGcUhglaMVAnQNsFezXbehXCG23aSdaTJATDmPOiCEUlGv5hrQyXdB8OIq8QzmAOMxwtsjyE6CTadIJnQ1ccHRINTG0687PBItE+KfoG0QMWGl4ndHUkHE/fjPAy/WyxCUirgOFbqepTHUYxQlYEmw2GmjG0zvuQ1deMkqfdp4RUh8VIrk+JxJadOHqYhqzZi0B++5goTM0363Rt+JqaBblMCMYjwuLngTBeCZ5ie6Dos2wEqVfHnZ0eCf/XWgU4vZuy3qKJPdVOavQsop9qg5GGlQCTW8m8jBNbtJ4bepurBp0mD9iIXPoNsQHYJ/VbJhi/4JjOs+Hu8vQUOe0si+yVMnzp2DfeI4m783z8ZUNn0PjkTQehpkjzyVF2tCGqkDAXkYv1lrncvl9yaBocQbY9RW5SVOU18hklxzP5hIcORAE4Y8gdxhb2ihpgRU9a9kFPSyLqkGsdfaYmpXs3M1tM9iRwJMWj+QBD7rnzge3P1MKLuMYe6EKy4/DCCrE3oizFlea/uk+2XJkE+eQGrFr2WfbwJF+Ugozu+TBkUECZIw== X-Forefront-Antispam-Report: CIP:164.130.1.60;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(36860700016)(1800799024)(376014)(7416014)(23010399003)(10067099003)(18002099003)(22082099003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: oX8Aqe0TpUsKh0igPGONrBPo+oI91ZBMaxavzadERNceI+9/pJDEJBlbkw615f77GCepBDpBxv2VYx2wLAhqnG189ExFWlhSTQLSVDBcQ5kCsdERDIXUeOGtlqGvHQePpVvfxfEU61lKdz6d8gUMxmZlQGuomzL08mpKoxuDbPtw6BaOSLXRwr350DkDa7NOYav+VdvrYNgejHY+XwAFKe1TaERlAdohQCEuRp+xPwVZ9bK5QrTBjLtERWIlPuRo7eBjdBYcZyN7bgFIXI2GsxHFcAV+skVq1qjw/C19aP+gmwUi0G6GdpbH1N4ZYmatIKlwnfAugNiNHL5iFIsIjonALfWP4JDLfy3Qg8S9JyZCF30HRG32oQo+JEjiobwPogf+YyAtD6CcOmUQWqdT/AK3sgjR9ISbyzq6P4MyhfG6LPH1SjC2PCvVmHANIPlg X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 15:39:30.5577 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b0cfdeda-8125-487c-b017-08df1988dbf8 X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.60];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: WA1PEPF000099CF.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR10MB7281 Make the number of interrupts configurable to prepare stm32mp2 support. Read from the SoC compatible data, and add it to private data struct. No functional change intended. Co-developed-by: Cheick Traore Signed-off-by: Cheick Traore Co-developed-by: Olivier Moysan Signed-off-by: Olivier Moysan Signed-off-by: Fabrice Gasnier --- Changes in v2: - new precursor patch as advised by Andy and Jonathan to render num_irqs configurable --- drivers/iio/adc/stm32-adc-core.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/iio/adc/stm32-adc-core.c b/drivers/iio/adc/stm32-adc-c= ore.c index 14ed50bb3ab5..5845173e288c 100644 --- a/drivers/iio/adc/stm32-adc-core.c +++ b/drivers/iio/adc/stm32-adc-core.c @@ -94,6 +94,7 @@ struct stm32_adc_priv_cfg { * struct stm32_adc_priv - stm32 ADC core private data * @irq: irq(s) for ADC block * @nb_adc_max: actual maximum number of instance per ADC block + * @nb_irqs: number of IRQs in the ADC block * @domain: irq domain reference * @aclk: clock reference for the analog circuitry * @bclk: bus clock common for all ADCs, depends on part used @@ -112,6 +113,7 @@ struct stm32_adc_priv_cfg { struct stm32_adc_priv { int irq[STM32_ADC_MAX_ADCS]; unsigned int nb_adc_max; + unsigned int nb_irqs; struct irq_domain *domain; struct clk *aclk; struct clk *bclk; @@ -424,7 +426,7 @@ static int stm32_adc_irq_probe(struct platform_device *= pdev, * - stm32f4/h7 shares a common interrupt line. * - stm32mp1, has one line per ADC */ - for (i =3D 0; i < priv->cfg->num_irqs; i++) { + for (i =3D 0; i < priv->nb_irqs; i++) { priv->irq[i] =3D platform_get_irq(pdev, i); if (priv->irq[i] < 0) return priv->irq[i]; @@ -439,7 +441,7 @@ static int stm32_adc_irq_probe(struct platform_device *= pdev, return -ENOMEM; } =20 - for (i =3D 0; i < priv->cfg->num_irqs; i++) + for (i =3D 0; i < priv->nb_irqs; i++) irq_set_chained_handler_and_data(priv->irq[i], stm32_adc_irq_handler, priv); =20 @@ -456,7 +458,7 @@ static void stm32_adc_irq_remove(struct platform_device= *pdev, irq_dispose_mapping(irq_find_mapping(priv->domain, hwirq)); irq_domain_remove(priv->domain); =20 - for (i =3D 0; i < priv->cfg->num_irqs; i++) + for (i =3D 0; i < priv->nb_irqs; i++) irq_set_chained_handler(priv->irq[i], NULL); } =20 @@ -730,6 +732,7 @@ static int stm32_adc_probe(struct platform_device *pdev) =20 priv->cfg =3D device_get_match_data(dev); priv->nb_adc_max =3D priv->cfg->num_adcs; + priv->nb_irqs =3D priv->cfg->num_irqs; spin_lock_init(&priv->common.lock); =20 priv->common.base =3D devm_platform_get_and_ioremap_resource(pdev, 0, &re= s); --=20 2.43.0 From nobody Thu Sep 24 13:43:36 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013065.outbound.protection.outlook.com [40.107.159.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 6679A5581FD; Wed, 23 Sep 2026 15:39:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177979; cv=fail; b=IxtLtyZNiBz0ax3YTZY5aHYZCCRfxoeksdPXKCbOyuY4fpwGavs4AGJg04KqPLjKKMBspUeQGvZF2ZXYpLdxEtjH8wF/umaKW22z4iYNkwCf7JNt9Uwr43s73ZtkExyDagZ1YmxzclDwCUlq+RUiHEg8wdrwhJM55c8n/NwnIrc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177979; c=relaxed/simple; bh=/s0EA+mMcGosA28p+vb+GMe7NIuG94FB/e3U20iHFfY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=bt6wDc/AMHbrGoZeCF5q2KFolDfXpN6hXRzHdsC0/AUcBXqjR+19kM+QqLOhCGxOrf6On8bj0r7AujHtCBi6X5b2ZJB7BbWX94qGLyFlpHsI97+ByLfGbyyAO5EhzEKUu4XboVcatNNQj6iWTgFXjFwM4mwdQx0CFovzhDwkc4Y= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=PDN6Y8TF; arc=fail smtp.client-ip=40.107.159.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="PDN6Y8TF" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xvmUAOm+cjCW1hrRrj1YVHkRPEyemeC7JxD6JHYzhrNKDN/o4zPkQbd/0QbNVFhxZ2zWaiJuGJQ9qqhLjyC3RNkWZNgBwfSFq9bYt6Ms4FeRzGO+zfTTaD7uzgsntSDExo+kotZUIcEpsywcc/l/WPKYt73zC809TtvoIktZoeEeQ4pggBwX7PIENcUUHgYXYWU6QUE4hjKwmBdOsYgNvgD06ON4pw2AMYkQLiOmgWUQloN3/85st8ictuIMUjF+MOrL9fEqD7P+UFLE8betw9EC+wHyoM/nRQcento145pPoExBj4U9j0UhSMCrc2sfB5VC/Im3GwKZQiwKiDUB2g== 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=za4ZTK0Ksc2dqzy2fM/TuJDfoum243RULGb6iZ3X30Q=; b=K5q+rB7QB7VI9mdsi7hvCiMOEr+ytpCL0S8DboN4kwndIAZjFmtYoyQ88rnYp765PQHJOwnVbsWkOtkdu/k7CjxPDg2dmeumxfxG0JMJFSHVfK7e6XUyHwELz6NMnRyY1Q5Y35PnIxjfVpNdFN+OzOe3YCsma/7Ec3I/7miQwsDFMwynAJl40Jo4sVxHAT5hebc5HkKTqpJUZ9Hq5Nx3hM5tIhQgwQOJQ/klQU62ryxxY6MmGXCACu2TQYolLU+vxCYikaFHRfmzaPf09LAfzAlZS+sja4x1zLWy2+4ZXA7MEWrdrzcI1Mi62GXQAhz/CUaRqLqRdqtnjob/6uWsww== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.59) smtp.rcpttodomain=st-md-mailman.stormreply.com smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=za4ZTK0Ksc2dqzy2fM/TuJDfoum243RULGb6iZ3X30Q=; b=PDN6Y8TF2EWyhYQLAMRuapl6r6RcRPWQH677sdxoZUOMBeA2WGnRu4m7NN6nOkAPUXa4rXKLMkwftOom9RN4BRiHiZu/7zWA1tfdJozwiET/PtlB+LlqO2WiLG7AXL8k6XiBr28voiGaLLYcSv0zsQCIfLi2gJ0WNSYhTpbFOXDlpeYtzOYrsnqKENRmgv25tmsPdU7SU6DNpxx/GQ3sYVjN34iQB9N3booGVL3iqBxcynUiCsLVbhUIk0HF66KC1evqSXcnEEbtQ2CujzDu+311VuhA6mg2cHSAxJwDHnjge+NbjztfCEp4dPrPiRdXZVDzszRWx0iVQ050/Lvsnw== Received: from MA3P292CA0009.ESPP292.PROD.OUTLOOK.COM (2603:10a6:250:2c::10) by PRAPR10MB5154.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:29c::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.14; Wed, 23 Sep 2026 15:39:31 +0000 Received: from MAD0EPF000008B6.eurprd04.prod.outlook.com (2603:10a6:250:2c:cafe::a6) by MA3P292CA0009.outlook.office365.com (2603:10a6:250:2c::10) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.451.16 via Frontend Transport; Wed, 23 Sep 2026 15:39:30 +0000 X-MS-Exchange-Authentication-Results: mx.microsoft.com 1; spf=fail (sender IP is 164.130.1.59) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.59 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.59; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.59) by MAD0EPF000008B6.mail.protection.outlook.com (10.167.241.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.8 via Frontend Transport; Wed, 23 Sep 2026 15:39:30 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpo365.st.com (10.250.44.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:45:58 +0200 Received: from localhost (10.252.7.7) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:39:29 +0200 From: Fabrice Gasnier Date: Wed, 23 Sep 2026 17:39:07 +0200 Subject: [PATCH v2 04/14] iio: adc: stm32-adc: manage characterization voltage diversity Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260923-adc-stm32mp25-v1-v2-4-46bc019537c6@foss.st.com> References: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> In-Reply-To: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , "Andy Shevchenko" , Rob Herring , "Krzysztof Kozlowski" , Conor Dooley , "Maxime Coquelin" , Alexandre Torgue CC: Marek Vasut , , , , , , Fabrice Gasnier , Olivier Moysan X-Mailer: b4 0.16.0 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MAD0EPF000008B6:EE_|PRAPR10MB5154:EE_ X-MS-Office365-Filtering-Correlation-Id: a595aada-bd70-4cf7-bf39-08df1988dbec X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|7416014|1800799024|36860700016|23010399003|10067099003|56012099006|11063799006|18002099003|22082099003|6133799003; X-Microsoft-Antispam-Message-Info: OFciNev1hzLlsIx7N9LNwhp6YdHJw9oUVQ794YUzeS/CmxvpW2Vfgdk85b88lq7uGA1IyC5cLZFsuijxqzIbvfc2zCP05udmiQIylV5iuglHDLTOVpfe1HluczGtarFQpmRD38AVGLjIFmLJEd1moPpKL4lq46xRLpkP1YXw2uffLJlOjZYNHXkVkMvwjr57i6nfYWjhKYVXvLcNM/WPoddWCeG5wY3gem0b+1Ze0Mxm7X1O/ISgW0eriI5qpf4M6yCcJ53dfPEIAz69j/ptsQKXS1cpyObjHIYxvQ+qqXKMe3t93aaUTS1WUmrbzL+Al0c8p6F8Nz45IGcq5m0AY6LKBC1PUzXsXG8JPVQ0IFBm7FkwrsOMsJbhaZAWOS7p133YOWhG1DebatMZUFJ6UlEhosf4R1kUXXNPdiXarryI5kjd/vmx/eBW3i4OSNNNOLFUQSwV3YAIKlagc2Pe5qTiiU5UGa5uuzZugw4PEh2soxpuyyWY70Yqdsp1oWvAbdfUmBKN1uMimSGDGFqpQF+TMPZdODncoE0oQAtCqaAA3LYCYKFMnYuhwYjcSBla2A6L+DFTNAI4lJE3Q+wZ4HPlcWQgcizZEbUP9SZcE/ocJKEp5OYf5GjNckkecgIKunoxKAd/tIXCcHjBnOJjgV8Y5x3SHWjTPstkdBpNHXhkVa8/QZtTkcbPsdkqXgrERuIX5xpt7zLaedL7Hh1QtA== X-Forefront-Antispam-Report: CIP:164.130.1.59;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(376014)(7416014)(1800799024)(36860700016)(23010399003)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003)(6133799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: F7FPFuX+MKx3DXg29s7F9efDnEn1LZEuafgvhhf9Zz/AylPUp2KGv3uKWt4InLoI8/UKDzc2zuhSJY2kBL1MdGsmhBltSaj5hZA0AYtHGMxOjBPqu+IBELf0GJJu9HwvQCpJSmJBIcqJLkzb3PoLk8J3spoyAH+JhANjFeJfIf8pDMIafWH2vAfVJnczjrjzZCpugfcEcONtKyyV926Z3NfkOI32gd4rS42s+V45iGFnED8xzjbR8FQC/zry05Pc30XQi7+NBiIl/wG5ATOpeDQgoHGkeG9OIA2W8830OdQFh9fMJ0KbAX/XWs1M69vvTmK/Yd8OhFGQIo8osoBIdRbQvZ7GlMeWxS4VOFxeMTceroQ1WsfE0nr6YgAfl4ZH35Ou0D5C0SEDo8WfT/YcqT1DNT9M3yyFpTJkPFeyEqTwlCnvtRTLAP2dKKlxH54n X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 15:39:30.4618 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a595aada-bd70-4cf7-bf39-08df1988dbec X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.59];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: MAD0EPF000008B6.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PRAPR10MB5154 From: Olivier Moysan The characterization voltage used to calibrate vrefint depends on SoC family. Add vref_charac_mv field in stm32_adc_cfg structure to store the characterization voltage for each SoC, and use it in Vref computation formula. Signed-off-by: Olivier Moysan Signed-off-by: Fabrice Gasnier --- Changes in v2: - Andy's review comments: rename variable to vref_charac_mv (unit suffix). Drop the const attribute. --- drivers/iio/adc/stm32-adc.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/iio/adc/stm32-adc.c b/drivers/iio/adc/stm32-adc.c index 90f0e257e6d1..ddf74c674da6 100644 --- a/drivers/iio/adc/stm32-adc.c +++ b/drivers/iio/adc/stm32-adc.c @@ -43,7 +43,6 @@ #define STM32_ADC_TIMEOUT_US 100000 #define STM32_ADC_TIMEOUT (msecs_to_jiffies(STM32_ADC_TIMEOUT_US / 1000)) #define STM32_ADC_HW_STOP_DELAY_MS 100 -#define STM32_ADC_VREFINT_VOLTAGE 3300 =20 #define STM32_DMA_BUFFER_SIZE PAGE_SIZE =20 @@ -211,6 +210,7 @@ struct stm32_adc; * @set_ovs: routine to set oversampling configuration * @smp_cycles: programmable sampling time (ADC clock cycles) * @ts_int_ch: pointer to array of internal channels minimum sampling tim= e in ns + * @vref_charac_mv: Vref characterization voltage used to measure vrefint = calibration value */ struct stm32_adc_cfg { const struct stm32_adc_regspec *regs; @@ -230,6 +230,7 @@ struct stm32_adc_cfg { void (*set_ovs)(struct iio_dev *indio_dev, u32 ovs_idx); const unsigned int *smp_cycles; const unsigned int *ts_int_ch; + int vref_charac_mv; }; =20 /** @@ -1615,7 +1616,7 @@ static int stm32_adc_read_raw(struct iio_dev *indio_d= ev, if (mask =3D=3D IIO_CHAN_INFO_PROCESSED) { if (*val =3D=3D 0) return -EINVAL; - *val =3D STM32_ADC_VREFINT_VOLTAGE * adc->vrefint.vrefint_cal / *val; + *val =3D adc->cfg->vref_charac_mv * adc->vrefint.vrefint_cal / *val; } =20 return ret; @@ -2711,6 +2712,7 @@ static const struct stm32_adc_cfg stm32f4_adc_cfg =3D= { .stop_conv =3D stm32f4_adc_stop_conv, .smp_cycles =3D stm32f4_adc_smp_cycles, .irq_clear =3D stm32f4_adc_irq_clear, + .vref_charac_mv =3D 3300, }; =20 static const unsigned int stm32_adc_min_ts_h7[] =3D { 0, 0, 0, 4300, 9000 = }; @@ -2732,6 +2734,7 @@ static const struct stm32_adc_cfg stm32h7_adc_cfg =3D= { .irq_clear =3D stm32h7_adc_irq_clear, .ts_int_ch =3D stm32_adc_min_ts_h7, .set_ovs =3D stm32h7_adc_set_ovs, + .vref_charac_mv =3D 3300, }; =20 static const unsigned int stm32_adc_min_ts_mp1[] =3D { 100, 100, 100, 4300= , 9800 }; @@ -2754,6 +2757,7 @@ static const struct stm32_adc_cfg stm32mp1_adc_cfg = =3D { .irq_clear =3D stm32h7_adc_irq_clear, .ts_int_ch =3D stm32_adc_min_ts_mp1, .set_ovs =3D stm32h7_adc_set_ovs, + .vref_charac_mv =3D 3300, }; =20 static const unsigned int stm32_adc_min_ts_mp13[] =3D { 100, 0, 0, 4300, 9= 800 }; @@ -2772,6 +2776,7 @@ static const struct stm32_adc_cfg stm32mp13_adc_cfg = =3D { .irq_clear =3D stm32h7_adc_irq_clear, .ts_int_ch =3D stm32_adc_min_ts_mp13, .set_ovs =3D stm32mp13_adc_set_ovs, + .vref_charac_mv =3D 3300, }; =20 static const struct of_device_id stm32_adc_of_match[] =3D { --=20 2.43.0 From nobody Thu Sep 24 13:43:36 2026 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013048.outbound.protection.outlook.com [52.101.83.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B3EA35519BD; Wed, 23 Sep 2026 15:39:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177980; cv=fail; b=JD12VyWZmjBeSXkZrnGdU4mtC+/tGcDaipIb1O+uPQrHmqn2lZJbRsxmCILRY6808U+JhkogkZKLp+G6hr5lZ3G6HBkkCSJDgiFciOy/1iZf9D6h/jCDq/GMZdnXiAbH6eVAb/Og7uauqz37EcD8Jo+slMogx9FzclQrhLaot5E= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177980; c=relaxed/simple; bh=1MB6Mofld5mUU1Ssyy0Im6BpaNXVDrdfl8A5srXb91g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=RvYJEGrVMCvt2gxrHTO7JlQxcPnzcU5tD2qHLPYfFN6qltvNSrfDS+TTHV07LUv0t22n/YyrA8rGoOnQopOqEhL5XMCC90FfrRqOiBhyLhpinyDn2gQbkFY4KbszbeAYgdtmcslk66QQ2TU/7XHVYJPUBA+eD5tEAmkkJMV8WK0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=DGniFHH1; arc=fail smtp.client-ip=52.101.83.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="DGniFHH1" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=PQS/PQ15bxtu17q09nXOZVaoSURIV9Bx2PHApq9XSCZGaI9seub5AFHrm7FmO13pqU54MtKOPUElKIEXcoUl15THKbC+VaA6e5Sr0RSUBwB80u39SqklJgHgn8+hMbUHU+z7ZYCTriSn4ArOirKnqJBRI9IF5EPps859xGkhTbeicyYTNpdqCT6eiuoHJun8PeDyUnHUnmZrhgyfT7odVpdYCDrqEe18g6uniwcBpafoq3ZpZl2PILykv1FXu2P0rFBLJq/FhaAPzUvgVnzbwNKWXfIzIfazQlQg2A2A5q8Ppe2h/F6U/f4Gzvbcx4kWE3SDgzEuJ0FgXfNyIeQ8WA== 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=gSDQQtaGefJVnaguHiRfRQliIJ0M8A42nurTRC7g5I4=; b=D7lUh8Kc5VhEDmnSaYtx/4OtnQzyyuyX5C3uK+vX7oRuzNyUFqVAnQnTDSAWIdAwHtxDhsFg0zso6SFZhA2xc2j4OFvXEwyuyi513E86QcZG9y+YhDjR7vnI8ydI3aHdfo/RJ6F8Nl0NHwmWJv1USbzAvVhI2Vkm5G5x88WoeeLFB+opFou2OvPClr5WhdIenxgzr09P8YN4Dk2IK1zPECqSH6BTo59I0SEvQouQH5mUWxkT9qw2Vr7LdnyFvujlOVgVG0v9+Y8oppv4Ci313PVJgu3A7k22qaPJwdjrsnpYK5xRtV+B227Yo3bsxRvxH4rWhC+2X9jMGqxewhmpqQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.60) smtp.rcpttodomain=st-md-mailman.stormreply.com smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gSDQQtaGefJVnaguHiRfRQliIJ0M8A42nurTRC7g5I4=; b=DGniFHH1HGfw9Dh/5QWjysjbFOzPz2NKF8tEGbxwRJOcP0+qqmzteW7l47G2f+BByhX1Gep9Pq4LMv4kZjbVOiT7z/t0E/c7bJn9tO8qiB09tGs7IDxkAkl2d+gviYza5xAOS+Dqy7MY53F8sgw1ZDzProl3TZ7Z8RKPfIAYGRjMzyjKtiSDAzvGDzZFtODEK3MmNf5A613kfI3fujivKjVaDWiHBIqNH5Se1Ha3c8X2sdXLWo/jXUjPQbmhfGqohwVQ7gP/S6gIiPCtRZOVtTI2240XaK9ywatJ3/KpTwoeMwQ78snq3limAEHOHJBLEy2R7pu3OBfDOeRiNpqfug== Received: from OL1P279CA0044.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:14::13) by DB9PR10MB6642.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:3d2::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.13; Wed, 23 Sep 2026 15:39:32 +0000 Received: from WA1PEPF000099CF.eurprd04.prod.outlook.com (2603:10a6:e10:14:cafe::49) by OL1P279CA0044.outlook.office365.com (2603:10a6:e10:14::13) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.451.16 via Frontend Transport; Wed, 23 Sep 2026 15:39:31 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.60) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.60 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.60; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.60) by WA1PEPF000099CF.mail.protection.outlook.com (10.167.242.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.8 via Frontend Transport; Wed, 23 Sep 2026 15:39:31 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpO365.st.com (10.250.44.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:45:20 +0200 Received: from localhost (10.252.7.7) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:39:30 +0200 From: Fabrice Gasnier Date: Wed, 23 Sep 2026 17:39:08 +0200 Subject: [PATCH v2 05/14] iio: adc: stm32-adc: rework internal channels data Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260923-adc-stm32mp25-v1-v2-5-46bc019537c6@foss.st.com> References: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> In-Reply-To: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , "Andy Shevchenko" , Rob Herring , "Krzysztof Kozlowski" , Conor Dooley , "Maxime Coquelin" , Alexandre Torgue CC: Marek Vasut , , , , , , Fabrice Gasnier X-Mailer: b4 0.16.0 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: WA1PEPF000099CF:EE_|DB9PR10MB6642:EE_ X-MS-Office365-Filtering-Correlation-Id: 140454d8-77a8-4662-6c81-08df1988dc6d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700016|82310400026|376014|7416014|23010399003|11063799006|10067099003|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: L3mt2KMwPjXX9lM7t8L+6xT5l5afeUrP/muPaUryIUPxScKQO9+85YbIQXhhZtaJMcdv5uG71FtLct740c4buTp87YzGYITF+C/0yL1/pusVpnsqNvlmhA/cv6Ki8e0L3L5pL9uDdcsxBKI1jvH89ZDmIBXY22qvmPQ8r5AmniCLxIN+QsHs1Hrw5Rpg8PVUaU0lxkiw4zos0LmopfQXCB/71FRS0MKXnzMa3YZuU0+olgSIxi335ReAOZPdmg8mdBzAQiGQqXCVpCs+m6uYMk+KoiVyIcs6RL5wdw2EePG2rQJEfqPET6RDil+IzN3Mbj4F7KK2q9I2s95Jj6Stz0Tod/cRjflRTq4qh0iN+VAzaic+Nvb4GA5U53s2LiqzFdxmVj3gNB3xFosyr1lMnpUL8nY/W/Cv1S9aDUJYmn2wU6nhCReHU4YP2UWcLrKYYQeBCLh3VeA4uVnDkZ2hwwLBsESMHezyCrKyBR6A2lASrFFcGjjSTTjEvl6TX4vYnmBXtPvrN5ODYef+hIiY1JBU+mxxXXFKckCVcwGcpnRtU6yt82ExcNwvEWUWorNlI4K862a8w8Fjn6KXogzEisYCF+7DSYc3oPSp36ZzrSibHghAWFNkQQvBia9DVEnkIxcaIzk9AALAsQkcqOTLjfl+tJStzR3OHfMNBVA1/kjvzJUmJAoJM869RcfVVrYG32BEegyaYV8ogAQdVmAYpw== X-Forefront-Antispam-Report: CIP:164.130.1.60;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(82310400026)(376014)(7416014)(23010399003)(11063799006)(10067099003)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: /NW4IaVNw/gQ2J+oBOF2V2XWSyJeWM/bs5BSqM5puYAzxPstNLd0t4Y5Jvw6eBRiul7rNVxmaDEzqMVUvgGURIFRvVVu9qbjG5NrYrzLc3eh1wYmIheTbBcKgWepwygLbSDTQBhRztbccuRfuZCk+BJ8p5Ocm/Nz8UR0FExEjgwACtcohzyR5eZJLigauppQQ56xLEv5xW9YvLUa3D/4ihQxOGm656Oi1p12TGsFXodbCXcCx/xvUQqn6FNLNFEnE12L/F4cYl/t59KaJUF9jiH48POpQ3gD8cGMT6KqkiJMdjH6H4LtGfCruD+8Cx0v8fN6nHtog0Vs1L8FAS/HAmJsxsBfoXe1jhrMCt2R2y6wqDNCVa6odHVave3wOJD4Wvfahy7Oy1f5c/wjkdm5OOrbzjX1mtTFQACPn8p67a6UP82W/KM4p2wA22563nc0 X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 15:39:31.3153 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 140454d8-77a8-4662-6c81-08df1988dc6d X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.60];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: WA1PEPF000099CF.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR10MB6642 Diversity in internal channels data array lead to have zeroed data. To facilitate addition of new internal channels, without touching all array initializers, only focus on exiting channels on each supported ADC variant (e.g. each SoC). This also allows to get rid of static_assert() checks. No functional change intended. Cosmetic update: remove comma on STM32_ADC_INT_CH_NB as it should always be the last element. Signed-off-by: Fabrice Gasnier --- Changes in v2: - new precursor patch as suggested by Jonathan --- drivers/iio/adc/stm32-adc.c | 51 +++++++++++++++++++++++------------------= ---- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/drivers/iio/adc/stm32-adc.c b/drivers/iio/adc/stm32-adc.c index ddf74c674da6..ac60c31de7a5 100644 --- a/drivers/iio/adc/stm32-adc.c +++ b/drivers/iio/adc/stm32-adc.c @@ -86,25 +86,16 @@ enum stm32_adc_int_ch { STM32_ADC_INT_CH_VDDQ_DDR, STM32_ADC_INT_CH_VREFINT, STM32_ADC_INT_CH_VBAT, - STM32_ADC_INT_CH_NB, + STM32_ADC_INT_CH_NB }; =20 -/** - * struct stm32_adc_ic - ADC internal channels - * @name: name of the internal channel - * @idx: internal channel enum index - */ -struct stm32_adc_ic { - const char *name; - u32 idx; -}; - -static const struct stm32_adc_ic stm32_adc_ic[STM32_ADC_INT_CH_NB] =3D { - { "vddcore", STM32_ADC_INT_CH_VDDCORE }, - { "vddcpu", STM32_ADC_INT_CH_VDDCPU }, - { "vddq_ddr", STM32_ADC_INT_CH_VDDQ_DDR }, - { "vrefint", STM32_ADC_INT_CH_VREFINT }, - { "vbat", STM32_ADC_INT_CH_VBAT }, +/* STM32 ADC internal channel names */ +static const char stm32_adc_ic[STM32_ADC_INT_CH_NB][STM32_ADC_CH_SZ] =3D { + [STM32_ADC_INT_CH_VDDCORE] =3D "vddcore", + [STM32_ADC_INT_CH_VDDCPU] =3D "vddcpu", + [STM32_ADC_INT_CH_VDDQ_DDR] =3D "vddq_ddr", + [STM32_ADC_INT_CH_VREFINT] =3D "vrefint", + [STM32_ADC_INT_CH_VBAT] =3D "vbat", }; =20 /** @@ -2268,7 +2259,7 @@ static int stm32_adc_populate_int_ch(struct iio_dev *= indio_dev, const char *ch_n int i, ret; =20 for (i =3D 0; i < STM32_ADC_INT_CH_NB; i++) { - if (!strncmp(stm32_adc_ic[i].name, ch_name, STM32_ADC_CH_SZ)) { + if (!strncmp(stm32_adc_ic[i], ch_name, STM32_ADC_CH_SZ)) { bool na; =20 /* Check internal channel availability */ @@ -2302,7 +2293,7 @@ static int stm32_adc_populate_int_ch(struct iio_dev *= indio_dev, const char *ch_n return 0; } =20 - if (stm32_adc_ic[i].idx !=3D STM32_ADC_INT_CH_VREFINT) { + if (i !=3D STM32_ADC_INT_CH_VREFINT) { adc->int_ch[i] =3D chan; break; } @@ -2715,8 +2706,10 @@ static const struct stm32_adc_cfg stm32f4_adc_cfg = =3D { .vref_charac_mv =3D 3300, }; =20 -static const unsigned int stm32_adc_min_ts_h7[] =3D { 0, 0, 0, 4300, 9000 = }; -static_assert(ARRAY_SIZE(stm32_adc_min_ts_h7) =3D=3D STM32_ADC_INT_CH_NB); +static const unsigned int stm32_adc_min_ts_h7[STM32_ADC_INT_CH_NB] =3D { + [STM32_ADC_INT_CH_VREFINT] =3D 4300, + [STM32_ADC_INT_CH_VBAT] =3D 9000 +}; =20 static const struct stm32_adc_cfg stm32h7_adc_cfg =3D { .regs =3D &stm32h7_adc_regspec, @@ -2737,8 +2730,11 @@ static const struct stm32_adc_cfg stm32h7_adc_cfg = =3D { .vref_charac_mv =3D 3300, }; =20 -static const unsigned int stm32_adc_min_ts_mp1[] =3D { 100, 100, 100, 4300= , 9800 }; -static_assert(ARRAY_SIZE(stm32_adc_min_ts_mp1) =3D=3D STM32_ADC_INT_CH_NB); +static const unsigned int stm32_adc_min_ts_mp1[STM32_ADC_INT_CH_NB] =3D { + [STM32_ADC_INT_CH_VDDCORE] =3D 100, + [STM32_ADC_INT_CH_VREFINT] =3D 4300, + [STM32_ADC_INT_CH_VBAT] =3D 9800 +}; =20 static const struct stm32_adc_cfg stm32mp1_adc_cfg =3D { .regs =3D &stm32mp1_adc_regspec, @@ -2760,8 +2756,13 @@ static const struct stm32_adc_cfg stm32mp1_adc_cfg = =3D { .vref_charac_mv =3D 3300, }; =20 -static const unsigned int stm32_adc_min_ts_mp13[] =3D { 100, 0, 0, 4300, 9= 800 }; -static_assert(ARRAY_SIZE(stm32_adc_min_ts_mp13) =3D=3D STM32_ADC_INT_CH_NB= ); +static const unsigned int stm32_adc_min_ts_mp13[STM32_ADC_INT_CH_NB] =3D { + [STM32_ADC_INT_CH_VDDCORE] =3D 1000, + [STM32_ADC_INT_CH_VDDCPU] =3D 1000, + [STM32_ADC_INT_CH_VDDQ_DDR] =3D 1000, + [STM32_ADC_INT_CH_VREFINT] =3D 4300, + [STM32_ADC_INT_CH_VBAT] =3D 9800 +}; =20 static const struct stm32_adc_cfg stm32mp13_adc_cfg =3D { .regs =3D &stm32mp13_adc_regspec, --=20 2.43.0 From nobody Thu Sep 24 13:43:36 2026 Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazon11013017.outbound.protection.outlook.com [52.101.83.17]) (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 B2E43531625; Wed, 23 Sep 2026 15:39:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.83.17 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177981; cv=fail; b=m4mfIouxlNrp68hm51HLFmWNYgh9+e4+OTURHQ9F8KGdQTib/ccEkJgoIE0McevrnVYTvCr8SBn3B0C5RoIdw/upi0oDX8MpsGp3ykxnsYEeSHCZ9Zn7eEeaSF/0inkHYfplWYiSha04/5tdF33q+Jt2VUK4Y5Uv8yZ64U3vCqE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177981; c=relaxed/simple; bh=S/QWl2VHjb1ScMjefBY/B+bUvDSpg+awFBwR9pH4A3o=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=Xjty27+9C1dOFoJ+QRCI1NLNhTBMpguGqhpEm5qdAEysi0oZ+zSAZC0hduwFO70A+XMcoJ+WPrDBoCY2tvbvUW3q7G0C/Q8pDivdG1YwgNDxoqiBZOi7QCz5+H+R7FdP96qKqRzQPcYQcbzLo3gR1TwqFt8tUHbnxarobZ+g9/4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=NOsCBBtU; arc=fail smtp.client-ip=52.101.83.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="NOsCBBtU" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jnAq0JS0dB2Wn5CoetocmucOLNWEdOiXMVZG1AFzzQyYU/vFGAqP9PrfUDy6rJva63ApzJa6ZzaIwKcKiOhtxEwcFY6VslbXVaVgIiDXiuY/scJrg6kXZticJ7UzIyW759xAPpfvPt0NabJ1W5QHm1Kyf9zikLJLiF83jZ8WE9wvXIIZbAgGWLnka0ZOhKdj6Do/85xWlmV6UWPLIdkvjwuw3+35SW6omSzAD00x012hxPjAWSeJp8iUYqUx4MgvOZgD7ToPhNsfKWuSEjZiJGQW1R3NREXwxruZkSLX8JRPYEmLq2BkNwo5rXAkJUdLwZw0qz9Ld9nmzq+3IzJa1g== 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=uuYWi3Zj+SVMvmLSjcEdSEWURcRr/IdudWp56ds2h6U=; b=br89kanxpSBYFrtZxF2XRtCKTAAAIpFwj1VwoiivJSzAIqMfoDnfx8b/l+BBjzseEC1ZIXDNtKfj6OmecgfRBuG4ALKivLkL4UgRWxun97yhTZE806kUpZvxJ9//E9rtrqGfhYIomnMQVdLYqWyZEf3XqKOwqvMo7ro7txYMWP2Ezrl7oztQsCHEv7H44IEDjJjrQvTZr9Vmf7lTSMGM83K0NMsy68y87kz1B/+TiPkIsO0I0CTMWepcWpRVVaqU7DPlcW6XMHU3Ad36vu1YNWx7KQF/fSIBYG8evgHuJFTUnVpVoighqiCveej6sHH8CsCAHwajSMYhZZtg7IgHsQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.59) smtp.rcpttodomain=st-md-mailman.stormreply.com smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uuYWi3Zj+SVMvmLSjcEdSEWURcRr/IdudWp56ds2h6U=; b=NOsCBBtUP3pX+Z00GzKfnGP9M2uPQOaG68QfFy+fQ3QMk2YWMPHBASgWJ9Vzoacubmq4zg4D1CIwyqmSOK38tJ5ukYMPSlUi1ZOX/jp/ChXfawdgQ+a2F4saPqy1gaz4SxyLkO3Qw86ao/QxPEzwC3uG6P6wL+AuMf7Be2jd+PZRZDUzSTrxbVf7FhH8udl8MtcdTzMA2pWVrda72PLefltHaE1KxPzDkKKZ0awGmB5e60A0pNHFRWsGZ/zvMvn2wSgwifjdtKBKBFyfesPoukn3nOT+5cV9T/HV6sdRi03tQyH9saiHb5AnkAAbo21dhuDnraxww0Xxxk4PzebuJg== Received: from PA7P264CA0198.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:36d::14) by DB9PR10MB8246.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:4c9::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.14; Wed, 23 Sep 2026 15:39:32 +0000 Received: from MAD0EPF000008B1.eurprd04.prod.outlook.com (2603:10a6:102:36d:cafe::46) by PA7P264CA0198.outlook.office365.com (2603:10a6:102:36d::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.451.16 via Frontend Transport; Wed, 23 Sep 2026 15:39:32 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.59) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.59 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.59; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.59) by MAD0EPF000008B1.mail.protection.outlook.com (10.167.241.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.8 via Frontend Transport; Wed, 23 Sep 2026 15:39:32 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpo365.st.com (10.250.44.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:46:00 +0200 Received: from localhost (10.252.7.7) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:39:31 +0200 From: Fabrice Gasnier Date: Wed, 23 Sep 2026 17:39:09 +0200 Subject: [PATCH v2 06/14] iio: adc: stm32-adc: add vreg enable option to manage diversity Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260923-adc-stm32mp25-v1-v2-6-46bc019537c6@foss.st.com> References: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> In-Reply-To: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , "Andy Shevchenko" , Rob Herring , "Krzysztof Kozlowski" , Conor Dooley , "Maxime Coquelin" , Alexandre Torgue CC: Marek Vasut , , , , , , Fabrice Gasnier , Cheick Traore X-Mailer: b4 0.16.0 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MAD0EPF000008B1:EE_|DB9PR10MB8246:EE_ X-MS-Office365-Filtering-Correlation-Id: 68c81c9d-eb0f-4323-57c0-08df1988dcdb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|7416014|23010399003|6133799003|18002099003|22082099003|11063799006|10067099003|56012099006; X-Microsoft-Antispam-Message-Info: uOHPcIi5QW8ZcTNgziSb83f+FMjBfUkifyS8ZkvAjsg0v/xyUFoNYNag6S0o3S2EOxb2z5b7QPD2qloJWxV9RXEsCDd/8tPf9ELvft42KDsT8G47ta+4jhMxoZYwMFkJxY4hXhCUwdAHqEJc4/cq3QpIz97TMfQB/3c4GeW/+jRtQVB5tTgL8zpb4K3dc+tVyAv0p4lj1ajyGNjo9sgwSkAxm0JEe8KATPd649cY8gutCkaAf29HzqHEGPucKqdWqS/i+714TD6tOdCJEM+dRxdmz8NP/fX8L8TRCr//vNIROZg1nNE8ETMHzMbFLX0842F2KaMzJWb/BNI9ZgGh24U5ylVDBJP4jew3Dw2ahSCOxb46O4URszwv1mgOW/r0TEpLr5BZOILm0il1zy/EbFPFJcLztNJzE0ewnnOVHHgrw7Hu9S5Fz/YUCpRSTOVMuLa3hYJfFS5jQ48L5r1gD9Mq/WkpACsEgedLpXw5xivA6TXz4b39zcUYiktlnICjQ2sxgvMhlDhKufvKchGvSNfh92tY+8a+u5gDOvnpIannCmmmuoYfcI0qfHIVQDDhH/Hmlr1Vrza0G82cSPdgZUmIdl9szQGk5YMHT2utQqA13ORI+ydjL/u0+c5Vh/jPZVV/UofYnSlpA/UgE5Jc2ZsRcIUOJozdmdHRfoyBd7pRvqm+S269vPDcKXLbq4/FoNBtkaM9VTB3qe//0e7hMg== X-Forefront-Antispam-Report: CIP:164.130.1.59;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(7416014)(23010399003)(6133799003)(18002099003)(22082099003)(11063799006)(10067099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: VisltEBIpZYSMZIgMYZm6jTSYn6AeI6RiQDGe6WWVDDL3U+L27XlMYxiZ0sqvUFbpA2MVA94DFFhISa5aOe9o0SGdd7ebsQjww8hf7I6dt0kb7VYN3U69GGh/f5aKhriW6ZnHtMzGSF5LvuFB2TbTW8dHZYzWg0s3dXF9aEQ3gxE0eUOD36EugggT31i0Ny5ftW/lJK3Ursb0c9kfG0GqyIxn/lsxOUhbDo9m2cgTGOzbHqEQCwj3vCflxmeWMnyulrlCPFAMU1/q/G2y9jkSQqrKg8PEPdKZjj1XNZCFyAEE9MHcjsyzTgwj5mjpkcKI/zMfGl+VPrlxBo9CFrVF57uF/HymOrqAglLfPFkTFN8QCwTvr0gNBCAuoXeJ+2aqQNP3b48ZC9RnPWNgnTS6rTiEooCh4vd82Hh4qgTwF+AuC9eyyUrgc98EmmIPDId X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 15:39:32.0239 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 68c81c9d-eb0f-4323-57c0-08df1988dcdb X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.59];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: MAD0EPF000008B1.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR10MB8246 Add a boolean (has_vregen) in adc configuration structure to prevent setting the reserved bit (CR_ADVREGEN bit 28) on STM32MP2 SoCs. This bit is present on earlier stm32h7, stm32mp13 and stm32mp15. No functional change intended. Co-developed-by: Cheick Traore Signed-off-by: Cheick Traore Signed-off-by: Fabrice Gasnier --- Changes in v2: - new precursor patch, e.g. split as suggested by Andy and Jonathan, to prepare the infrastructure for stm32mp23/25 support. --- drivers/iio/adc/stm32-adc.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/iio/adc/stm32-adc.c b/drivers/iio/adc/stm32-adc.c index ac60c31de7a5..eecdc4cce1b4 100644 --- a/drivers/iio/adc/stm32-adc.c +++ b/drivers/iio/adc/stm32-adc.c @@ -193,6 +193,7 @@ struct stm32_adc; * @has_linearcal: linear calibration support flag * @has_presel: channel preselection support flag * @has_oversampling: oversampling support flag + * @has_vregen: voltage regulator enable/disable flag * @prepare: optional prepare routine (power-up, enable) * @start_conv: routine to start conversions * @stop_conv: routine to stop conversions @@ -213,6 +214,7 @@ struct stm32_adc_cfg { bool has_linearcal; bool has_presel; bool has_oversampling; + bool has_vregen; int (*prepare)(struct iio_dev *); void (*start_conv)(struct iio_dev *, bool dma); void (*stop_conv)(struct iio_dev *); @@ -961,7 +963,8 @@ static int stm32h7_adc_exit_pwr_down(struct iio_dev *in= dio_dev) =20 /* Exit deep power down, then enable ADC voltage regulator */ stm32_adc_clr_bits(adc, STM32H7_ADC_CR, STM32H7_DEEPPWD); - stm32_adc_set_bits(adc, STM32H7_ADC_CR, STM32H7_ADVREGEN); + if (adc->cfg->has_vregen) + stm32_adc_set_bits(adc, STM32H7_ADC_CR, STM32H7_ADVREGEN); =20 if (adc->cfg->has_boostmode && adc->common->rate > STM32H7_BOOST_CLKRATE) @@ -2719,6 +2722,7 @@ static const struct stm32_adc_cfg stm32h7_adc_cfg =3D= { .has_linearcal =3D true, .has_presel =3D true, .has_oversampling =3D true, + .has_vregen =3D true, .start_conv =3D stm32h7_adc_start_conv, .stop_conv =3D stm32h7_adc_stop_conv, .prepare =3D stm32h7_adc_prepare, @@ -2745,6 +2749,7 @@ static const struct stm32_adc_cfg stm32mp1_adc_cfg = =3D { .has_linearcal =3D true, .has_presel =3D true, .has_oversampling =3D true, + .has_vregen =3D true, .start_conv =3D stm32h7_adc_start_conv, .stop_conv =3D stm32h7_adc_stop_conv, .prepare =3D stm32h7_adc_prepare, @@ -2769,6 +2774,7 @@ static const struct stm32_adc_cfg stm32mp13_adc_cfg = =3D { .adc_info =3D &stm32mp13_adc_info, .trigs =3D stm32h7_adc_trigs, .has_oversampling =3D true, + .has_vregen =3D true, .start_conv =3D stm32mp13_adc_start_conv, .stop_conv =3D stm32h7_adc_stop_conv, .prepare =3D stm32h7_adc_prepare, --=20 2.43.0 From nobody Thu Sep 24 13:43:36 2026 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011021.outbound.protection.outlook.com [52.101.70.21]) (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 EBFB5559C91; Wed, 23 Sep 2026 15:39:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.21 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177982; cv=fail; b=WLtshapiIRs2jFRDFuV1zeXodUeXwncY+kf5BNR13CfDxm11FHXiXLMkHonjC5EGWiumeQQY0T3dNzk8gbXlI1PVgWn5+MEqoXC4iJybQ21bLsrjFjlwX3sizseQ5qHnAzs5nJ1QDKaA85iGFLa7tZSASHXnnbUSmX1odDoehwk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177982; c=relaxed/simple; bh=1o4ZB3hyGgPd+QTA4pvRqDcR5VCYq6RppbV/pQORpxg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=vFXuo0WLvANP8992rC+UzRjdMoxmShLhaISN/A9iWqALd9L2Sj5lV7aZMYxvJB8JaFASR7J4/ZLUPBFDeb3IelaFoLMopuXsM+9kd60eLz+CTYeEyDbCDqNLSXf01/wVUqUYW/PZwqv0vLj1wb/wjbT0EpA3MO8J7z5KUu8kTF0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=MNERRic1; arc=fail smtp.client-ip=52.101.70.21 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="MNERRic1" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vPdAzWhrqxSZ34h1gWzm1ht4wVxPENyp17lTNiUoR8rHyG5R3qVk9e1O+dkO742nSCwIhtYYEB6hbz6kWWKlRGQpgSuTLA4sQ5DkDMNn7mn4ECQbQ64WwOFRQYW3fO/Na/4vA+19XiCJkqWPpIey4ZZMgSB8sFSeGXxTtXlBoPSjrKuNUgMt05J645bSeUjV0S3STHsUghywvU/jMIOJWfkRiTzHu4alDT2u+6aMRO7UHz9c2YCNlHQOpe1d6ad7ug0VLxYbZ2fy3bKQ2hILH1FigPBNfxHRLBziUhfES0Qvr4utvFKjwvA6arYYKgdmAZ9dcLt00x1uMOU3mw289Q== 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=PT1dp15KULXOZ+UCcqVd3/kazFIBGJ3dDabJ0NN+gKk=; b=YOveISJvFVh6kzndfjXlOQ0HSUf1T93hyVqchVYnEuAMrfatFwqJj/EjmeiNOW36p7YD9hw/4H98qs4/vhAtOA43g4wXE9KKn8ij2czbhqNgGXZHTbjXRpHSNoSxfWFw8Tlp7Rk9Dt0Oqih1ZnL9GPl8kqlXz0npDtXDLDCoCYXqIDhs1t11hFLDz6aF0VgzWipK5QBlp3m3xNyAL+P8zmsCn6fMqhcMJY7KApK7QS1oTeg2W8VxqTO3OvQDfWowQBgi269X2vn5QZKfUZZf35oy9XQVCySYaGwnd7KeAkrfjopsd1eU1T6iVcqmB9iT+CxnfWqTvzPmD8f35QsCqw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.60) smtp.rcpttodomain=st-md-mailman.stormreply.com smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PT1dp15KULXOZ+UCcqVd3/kazFIBGJ3dDabJ0NN+gKk=; b=MNERRic1g9BXXwd9YcWy91RxifXk1R9kPi1axcoT/30bIewOS1ZQxG34I16AZIGCQkrT1BCoy8UQ2v0CBY48k83rnj4EojTr9NHfxWY77I6jtSoRWRCfUFAZJhDVizkyTU065A2H9+igYFV3sgeWT2PLI9fO/sNfPsuuoyE2FraCSZiUMOk5UMNl2HIjWNiD09aInWzWkO+68YCVy5AW3HDA2mgTgz3oCGBiyRmnvM0tGxtPcWqcRCo31pQItNMVCSfVHrec2EcOYwIG+gQz686X9TqbJ4MgT6ZloyaB/mYA+AyS+G042AXmfDqrmx5O09VWLkedWvOSd0SNoLXBtg== Received: from OL1P279CA0049.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:14::18) by PR3PR10MB4126.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:a4::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Wed, 23 Sep 2026 15:39:34 +0000 Received: from WA1PEPF000099CF.eurprd04.prod.outlook.com (2603:10a6:e10:14:cafe::6a) by OL1P279CA0049.outlook.office365.com (2603:10a6:e10:14::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.451.16 via Frontend Transport; Wed, 23 Sep 2026 15:39:33 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.60) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.60 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.60; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.60) by WA1PEPF000099CF.mail.protection.outlook.com (10.167.242.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.8 via Frontend Transport; Wed, 23 Sep 2026 15:39:33 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpO365.st.com (10.250.44.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:45:22 +0200 Received: from localhost (10.252.7.7) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:39:31 +0200 From: Fabrice Gasnier Date: Wed, 23 Sep 2026 17:39:10 +0200 Subject: [PATCH v2 07/14] iio: adc: stm32-adc: add support for stm32mp25 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260923-adc-stm32mp25-v1-v2-7-46bc019537c6@foss.st.com> References: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> In-Reply-To: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , "Andy Shevchenko" , Rob Herring , "Krzysztof Kozlowski" , Conor Dooley , "Maxime Coquelin" , Alexandre Torgue CC: Marek Vasut , , , , , , Fabrice Gasnier , Cheick Traore , Olivier Moysan X-Mailer: b4 0.16.0 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: WA1PEPF000099CF:EE_|PR3PR10MB4126:EE_ X-MS-Office365-Filtering-Correlation-Id: 0cb5fe04-9ae9-4be1-b116-08df1988ddd0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|7416014|36860700016|82310400026|23010399003|6133799003|10067099003|56012099006|5023799004|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: 2w1wWuU3kwrch644ZNgXgbH8OO7JJEPri3DTSYbS0DRjVjrWLdAvXhUGP+dmk9Q1eU28a2iRQlE/Uc1TtlG/dmVX3M3lIOPiEogC7+xW0B7SxUUrGIFSv6Fhjv8eufJIfpYM0Ig9plxabC0r1tX7yunlB5jh4jND+3GKH+DtJG6vyaEHVR6gkZ7ZHqQbvXRlNQ6aoz228YIOYQSNT1kJ6XdolASVZFJFiPTWFTlWTgz++ViH8kgkNqyvshWtgJ9qWWwgZnT7BDgu4uSf0AZWQDhG+/sHXmSxyzZC+LwgTrfIyXsPEG1okojBvNsDwjCBJRfK2tZyFDOT0/9fWW9U/uHsqiETelyHnfLDroJ2EQroAzyDb8Ic+uMYtXsOQXeCXDQB5zDVZMZKLEyRmWbyM0Hhp1bSuGf5UsZ8XFqWMMl4fo9EYClMybKMgKDoRkFcZc/TkIDjHce1S/uJRE0NLLHpFp4BpFbEZEAJIe2xk33npyOoAu0mkwCdXA/kPqXvwmFtwIiPzimPy129kT63GWx5zAMkjq5KszmgRcnY/JGCwAFiz6jCA+hmwBz8Cmq0lOl58xS5k3lz1mlrnVYlD+djuXMRplNuyWpCiBsVuiFo+R1xwvrQFFDQF7HRAsMe1KkQsL9kzTI3DXHv/n/BUhKlsUC9JhsTWW6uWax0zvQ4bdXSEVLBjs+6T3QhFfcWJILgn4IAXsPl1cu6TdUA8A== X-Forefront-Antispam-Report: CIP:164.130.1.60;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(36860700016)(82310400026)(23010399003)(6133799003)(10067099003)(56012099006)(5023799004)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: u9Av4s2WXel++J+Rnct/+v4O8JRU/cvXULwGH03ziRFJz05e0ZklZaCvy6mwwXdDJ9C0WK8b2yBTrvxMMvthqvK5DpUUxAYyn+4yLS/SG2xRFOmdiNgRLRba0sEw5pX+2zWmaei6UilMJrzOhm4Nv2p93vAnTDhyIo+mWFLH+hqgYHNV2MVb5vvT0EVzRPjUDcNqWYOEVXIGwqQRZD8jvBvS1bBcL67l/llS1U2y7wkyLZ/k3AFInGOnPeqJ4OlJhhB1hxvejr7APjTlfAcEc2tlBZRIShmA4KnQseKEND47sFpZtlferBHJ6UHYQ0rX3rW0Zf3OzpPkuraSs9fdO9gBP1JncTpjk+hb/YCF7MPNr+gKsuz7cWFQ3bXaYGtZXhILEWZgPn6N50/PlOgFfUySznzCXgzT3n/mUiIcsPDJp+qbUtaS4jRJqbqeonko X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 15:39:33.6481 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0cb5fe04-9ae9-4be1-b116-08df1988ddd0 X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.60];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: WA1PEPF000099CF.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR10MB4126 Add support for ADC on STM32MP25 SoC. It has 3 ADCs, split into two blocks: - ADC1 & ADC2 are tightly coupled. - ADC3 is managed independently. Trigger list slightly changes between these blocks (ADC1 & ADC2). Other differences are found on channels interconnects (similar between ADC2 and ADC3): - ADC1 is connected to 18 external channels + 2 internal channels - ADC2 is connected to 14 external channels + 6 internal channels - ADC3 is connected to 14 external channels + 6 internal channels Each ADC is a 12-bits successive approximation analog-to-digital converter, with up to 20 multiplexed channels that can be configured as single ended or differential. ADC resolution ranges from 6 to 12 bits. It introduces diversity regarding IRQs, clocks, software calibration procedure, internal voltage channels, sampling time (prescaler) and trigger list. Most of the architecture, and the driver engine remains similar. So, handle the differences w.r.t. other STM32 ADCs family with a dedicated compatible and compatible data. Co-developed-by: Cheick Traore Signed-off-by: Cheick Traore Co-developed-by: Olivier Moysan Signed-off-by: Olivier Moysan Signed-off-by: Fabrice Gasnier --- Changes in v2: - Split as advised by Jonathan and Andy. Added precursor patches to prepare all the infrastructure. Keep only the new hardware support. - Adopt separate compatible for ADC1, ADC2 and ADC3 to better describe internal channels (split regs descriptions) and trigger list. Drop "st,adc-trigger-sel". - Cosmetic updates whilst at it: remove trailing comma - Refactor calibration routine, to avoid twisted goto chain, as advised by Andy - One patch per new SoC --- drivers/iio/adc/stm32-adc-core.c | 43 ++++- drivers/iio/adc/stm32-adc-core.h | 20 +++ drivers/iio/adc/stm32-adc.c | 372 +++++++++++++++++++++++++++++++++++= ++++ 3 files changed, 434 insertions(+), 1 deletion(-) diff --git a/drivers/iio/adc/stm32-adc-core.c b/drivers/iio/adc/stm32-adc-c= ore.c index 5845173e288c..7027d86f7457 100644 --- a/drivers/iio/adc/stm32-adc-core.c +++ b/drivers/iio/adc/stm32-adc-core.c @@ -138,6 +138,9 @@ static struct stm32_adc_priv *to_stm32_adc_priv(struct = stm32_adc_common *com) /* STM32F4 ADC internal common clock prescaler division ratios */ static unsigned int stm32f4_pclk_div[] =3D { 2, 4, 6, 8 }; =20 +/* STM32MP25 ADC internal common clock prescaler division ratios */ +static unsigned int stm32mp25_presc_div[] =3D { 1, 2, 4, 6, 8, 10, 12, 16,= 32, 64, 128, 256 }; + /** * stm32_adc_clk_sel() - Select stm32f4 ADC common clock prescaler * @pdev: platform device @@ -348,6 +351,18 @@ static const struct stm32_adc_common_regs stm32mp13_ad= c_common_regs =3D { .eocie_msk =3D STM32H7_EOCIE, }; =20 +/* STM32MP25 common registers definitions */ +static const struct stm32_adc_common_regs stm32mp25_adc_common_regs =3D { + .csr =3D STM32H7_ADC_CSR, + .ccr =3D STM32H7_ADC_CCR, + .eoc_msk =3D { STM32H7_EOC_MST, STM32H7_EOC_SLV}, + .ovr_msk =3D { STM32H7_OVR_MST, STM32H7_OVR_SLV}, + .ier =3D STM32H7_ADC_IER, + .eocie_msk =3D STM32H7_EOCIE, + .presc_msk =3D STM32H7_PRESC_MASK, + .presc_shift =3D STM32H7_PRESC_SHIFT, +}; + static const unsigned int stm32_adc_offset[STM32_ADC_MAX_ADCS] =3D { 0, STM32_ADC_OFFSET, STM32_ADC_OFFSET * 2, }; @@ -425,6 +440,8 @@ static int stm32_adc_irq_probe(struct platform_device *= pdev, * Interrupt(s) must be provided, depending on the compatible: * - stm32f4/h7 shares a common interrupt line. * - stm32mp1, has one line per ADC + * - stm32mp25, has a dual ADC1/ADC2 and standalone ADC3. Each ADC has an= IRQ + * (two for ADC1/ADC2, one for ADC3) */ for (i =3D 0; i < priv->nb_irqs; i++) { priv->irq[i] =3D platform_get_irq(pdev, i); @@ -705,6 +722,17 @@ static int stm32_adc_probe_identification(struct platf= orm_device *pdev, return -EINVAL; } =20 + if (priv->cfg->ipid =3D=3D STM32MP25_IPIDR_NUMBER) { + /* + * ADC diversity on STM32MP25 is handled here. There may be: + * - 2 IRQs for ADC1/ADC2 block + * - 1 IRQ for ADC3 block. + * There cannot be more IRQs than the actual number of ADCs. + */ + if (priv->nb_irqs > priv->nb_adc_max) + priv->nb_irqs =3D priv->nb_adc_max; + } + val =3D readl_relaxed(priv->common.base + STM32MP1_ADC_VERR); dev_dbg(&pdev->dev, "ADC version: %lu.%lu\n", FIELD_GET(STM32MP1_MAJREV_MASK, val), @@ -897,6 +925,16 @@ static const struct stm32_adc_priv_cfg stm32mp13_adc_p= riv_cfg =3D { .num_irqs =3D 1, }; =20 +static const struct stm32_adc_priv_cfg stm32mp25_adc_priv_cfg =3D { + .regs =3D &stm32mp25_adc_common_regs, + .clk_sel =3D stm32_adc_clk_sel, + .presc =3D stm32mp25_presc_div, + .num_presc =3D ARRAY_SIZE(stm32mp25_presc_div), + .max_clk_rate_hz =3D 70000000, + .ipid =3D STM32MP25_IPIDR_NUMBER, + .num_irqs =3D 2, /* 2 IRQs for ADC1/ADC2, 1 irq for ADC3 */ +}; + static const struct of_device_id stm32_adc_of_match[] =3D { { .compatible =3D "st,stm32f4-adc-core", @@ -911,7 +949,10 @@ static const struct of_device_id stm32_adc_of_match[] = =3D { .compatible =3D "st,stm32mp13-adc-core", .data =3D (void *)&stm32mp13_adc_priv_cfg }, { - }, + .compatible =3D "st,stm32mp25-adc-core", + .data =3D (void *)&stm32mp25_adc_priv_cfg + }, { + } }; MODULE_DEVICE_TABLE(of, stm32_adc_of_match); =20 diff --git a/drivers/iio/adc/stm32-adc-core.h b/drivers/iio/adc/stm32-adc-c= ore.h index db50a9f3b922..68b937e3819f 100644 --- a/drivers/iio/adc/stm32-adc-core.h +++ b/drivers/iio/adc/stm32-adc-core.h @@ -121,6 +121,9 @@ #define STM32MP13_ADC_CALFACT 0xB4 #define STM32MP13_ADC2_OR 0xC8 =20 +/* STM32MP25 - ADC2 and ADC3 option register */ +#define STM32MP25_ADC23_OR 0xD0 + /* STM32H7 - common registers for all ADC instances */ #define STM32H7_ADC_CSR (STM32_ADCX_COMN_OFFSET + 0x00) #define STM32H7_ADC_CCR (STM32_ADCX_COMN_OFFSET + 0x08) @@ -257,8 +260,25 @@ enum stm32h7_adc_dmngt { #define STM32MP13_OP1 BIT(1) #define STM32MP13_OP0 BIT(0) =20 +/* STM32MP25 - Registers for each ADC instance */ +#define STM32MP25_ADC_CALFACT 0xC4 + +/* STM32MP25_ADC_CALFACT - bit fields */ +#define STM32MP25_CALFACT_CALADDOS BIT(31) +#define STM32MP25_CALFACT_D_MASK GENMASK(24, 16) +#define STM32MP25_CALFACT_S_MASK GENMASK(8, 0) + +/* STM32MP25_ADC_CFGR specific bit fields */ +#define STM32MP25_RES_SHIFT 2 +#define STM32MP25_RES_MASK GENMASK(3, 2) + +/* STM32MP25_ADC23_OR - specific bit fields */ +#define STM32MP25_VDDCPUEN BIT(3) +#define STM32MP25_VDDCOREEN BIT(2) + #define STM32MP15_IPIDR_NUMBER 0x00110005 #define STM32MP13_IPIDR_NUMBER 0x00110006 +#define STM32MP25_IPIDR_NUMBER 0x00110008 =20 /** * struct stm32_adc_common - stm32 ADC driver common data (for all instanc= es) diff --git a/drivers/iio/adc/stm32-adc.c b/drivers/iio/adc/stm32-adc.c index eecdc4cce1b4..a5bffc09898b 100644 --- a/drivers/iio/adc/stm32-adc.c +++ b/drivers/iio/adc/stm32-adc.c @@ -33,6 +33,9 @@ /* Number of linear calibration shadow registers / LINCALRDYW control bits= */ #define STM32H7_LINCALFACT_NUM 6 =20 +/* Number of loops in the calibration procedure to average data on STM32MP= 25 */ +#define STM32MP25_CALIB_LOOP 8 + /* BOOST bit must be set on STM32H7 when ADC clock is above 20MHz */ #define STM32H7_BOOST_CLKRATE 20000000UL =20 @@ -77,6 +80,14 @@ enum stm32_adc_extsel { STM32_EXT18, STM32_EXT19, STM32_EXT20, + STM32_EXT21, + STM32_EXT22, + STM32_EXT23, + STM32_EXT24, + STM32_EXT25, + STM32_EXT26, + STM32_EXT27, + STM32_EXT28 }; =20 enum stm32_adc_int_ch { @@ -348,6 +359,20 @@ static const struct stm32_adc_info stm32mp13_adc_info = =3D { .num_ovs =3D ARRAY_SIZE(stm32mp13_adc_oversampling_avail), }; =20 +/* + * stm32mp25 can have up to 20 channels. + * Keep channel 19 (VREF+) hidden on STM32MP25: it is the ADC reference + * supply itself, so exposing it as a regular input is meaningless. + * Reference voltage must be derived from VREFINT with calibration data. + */ +static const struct stm32_adc_info stm32mp25_adc_info =3D { + .max_channels =3D STM32_ADC_CH_MAX - 1, + .resolutions =3D stm32f4_adc_resolutions, + .oversampling =3D stm32h7_adc_oversampling_avail, + .num_res =3D ARRAY_SIZE(stm32f4_adc_resolutions), + .num_ovs =3D ARRAY_SIZE(stm32h7_adc_oversampling_avail), +}; + /* * stm32f4_sq - describe regular sequence registers * - L: sequence len (register & bit field) @@ -538,6 +563,114 @@ static const struct stm32_adc_regspec stm32h7_adc_reg= spec =3D { .smp_bits =3D stm32h7_smp_bits, }; =20 +/* STM32MP25 external trigger sources for ADC1 and ADC2 */ +static struct stm32_adc_trig_info stm32mp25_adc1_adc2_trigs[] =3D { + { TIM1_TRGO, STM32_EXT0 }, + { TIM1_TRGO2, STM32_EXT1 }, + { TIM8_TRGO, STM32_EXT2 }, + { TIM8_TRGO2, STM32_EXT3 }, + { TIM20_TRGO, STM32_EXT4 }, + { TIM20_TRGO2, STM32_EXT5 }, + { TIM2_TRGO, STM32_EXT6 }, + { TIM3_TRGO, STM32_EXT7 }, + { TIM4_TRGO, STM32_EXT8 }, + { TIM5_TRGO, STM32_EXT9 }, + { TIM6_TRGO, STM32_EXT10 }, + { TIM15_TRGO, STM32_EXT11 }, + { TIM1_CH1, STM32_EXT12 }, + { TIM1_CH2, STM32_EXT13 }, + { TIM1_CH3, STM32_EXT14 }, + { TIM20_OC1, STM32_EXT15 }, + { TIM20_OC2, STM32_EXT16 }, + { TIM20_OC3, STM32_EXT17 }, + { TIM2_CH2, STM32_EXT18 }, + { TIM3_CH4, STM32_EXT19 }, + { TIM4_CH4, STM32_EXT20 }, + { TIM5_CH1, STM32_EXT21 }, + { TIM12_CH1, STM32_EXT22 }, + { LPTIM1_CH1, STM32_EXT24 }, + { LPTIM2_CH1, STM32_EXT25 }, + { LPTIM3_CH1, STM32_EXT26 }, + { LPTIM4_CH1, STM32_EXT27 }, + { LPTIM5_OUT, STM32_EXT28 }, + { } +}; + +/* STM32MP25 external trigger sources for ADC3 */ +static struct stm32_adc_trig_info stm32mp25_adc3_trigs[] =3D { + { TIM1_TRGO, STM32_EXT0 }, + { TIM1_TRGO2, STM32_EXT1 }, + { TIM8_TRGO, STM32_EXT2 }, + { TIM8_TRGO2, STM32_EXT3 }, + { TIM20_TRGO, STM32_EXT4 }, + { TIM20_TRGO2, STM32_EXT5 }, + { TIM2_TRGO, STM32_EXT6 }, + { TIM3_TRGO, STM32_EXT7 }, + { TIM4_TRGO, STM32_EXT8 }, + { TIM5_TRGO, STM32_EXT9 }, + { TIM6_TRGO, STM32_EXT10 }, + { TIM7_TRGO, STM32_EXT11 }, + { TIM15_TRGO, STM32_EXT12 }, + { TIM17_OC1, STM32_EXT13 }, + { TIM1_CH3, STM32_EXT14 }, + { TIM8_CH1, STM32_EXT15 }, + { TIM20_OC1, STM32_EXT16 }, + { TIM2_CH1, STM32_EXT17 }, + { TIM2_CH3, STM32_EXT18 }, + { TIM3_CH1, STM32_EXT19 }, + { TIM4_CH1, STM32_EXT20 }, + { TIM5_CH3, STM32_EXT21 }, + { TIM12_CH1, STM32_EXT22 }, + { LPTIM1_CH1, STM32_EXT24 }, + { LPTIM2_CH1, STM32_EXT25 }, + { LPTIM3_CH1, STM32_EXT26 }, + { LPTIM4_CH1, STM32_EXT27 }, + { LPTIM5_OUT, STM32_EXT28 }, + { } +}; + +/* STM32MP25 programmable sampling time (ADC clock cycles, rounded down) */ +static const unsigned int stm32mp25_adc_smp_cycles[STM32_ADC_MAX_SMP + 1] = =3D { + 2, 3, 7, 12, 24, 47, 247, 1501, +}; + +static const struct stm32_adc_regspec stm32mp25_adc1_regspec =3D { + .dr =3D STM32H7_ADC_DR, + .ier_eoc =3D { STM32H7_ADC_IER, STM32H7_EOCIE }, + .ier_ovr =3D { STM32H7_ADC_IER, STM32H7_OVRIE }, + .isr_eoc =3D { STM32H7_ADC_ISR, STM32H7_EOC }, + .isr_ovr =3D { STM32H7_ADC_ISR, STM32H7_OVR }, + .sqr =3D stm32h7_sq, + .exten =3D { STM32H7_ADC_CFGR, STM32H7_EXTEN_MASK, STM32H7_EXTEN_SHIFT }, + .extsel =3D { STM32H7_ADC_CFGR, STM32H7_EXTSEL_MASK, + STM32H7_EXTSEL_SHIFT }, + .res =3D { STM32H7_ADC_CFGR, STM32MP25_RES_MASK, STM32MP25_RES_SHIFT }, + .difsel =3D { STM32H7_ADC_DIFSEL, STM32H7_DIFSEL_MASK}, + .smpr =3D { STM32H7_ADC_SMPR1, STM32H7_ADC_SMPR2 }, + .smp_bits =3D stm32h7_smp_bits, + .ccr_vref =3D { STM32H7_ADC_CCR, STM32H7_VREFEN }, +}; + +static const struct stm32_adc_regspec stm32mp25_adc2_adc3_regspec =3D { + .dr =3D STM32H7_ADC_DR, + .ier_eoc =3D { STM32H7_ADC_IER, STM32H7_EOCIE }, + .ier_ovr =3D { STM32H7_ADC_IER, STM32H7_OVRIE }, + .isr_eoc =3D { STM32H7_ADC_ISR, STM32H7_EOC }, + .isr_ovr =3D { STM32H7_ADC_ISR, STM32H7_OVR }, + .sqr =3D stm32h7_sq, + .exten =3D { STM32H7_ADC_CFGR, STM32H7_EXTEN_MASK, STM32H7_EXTEN_SHIFT }, + .extsel =3D { STM32H7_ADC_CFGR, STM32H7_EXTSEL_MASK, + STM32H7_EXTSEL_SHIFT }, + .res =3D { STM32H7_ADC_CFGR, STM32MP25_RES_MASK, STM32MP25_RES_SHIFT }, + .difsel =3D { STM32H7_ADC_DIFSEL, STM32H7_DIFSEL_MASK}, + .smpr =3D { STM32H7_ADC_SMPR1, STM32H7_ADC_SMPR2 }, + .smp_bits =3D stm32h7_smp_bits, + .or_vddcore =3D { STM32MP25_ADC23_OR, STM32MP25_VDDCOREEN }, + .or_vddcpu =3D { STM32MP25_ADC23_OR, STM32MP25_VDDCPUEN }, + .ccr_vbat =3D { STM32H7_ADC_CCR, STM32H7_VBATEN }, + .ccr_vref =3D { STM32H7_ADC_CCR, STM32H7_VREFEN }, +}; + /* STM32MP13 programmable sampling time (ADC clock cycles, rounded down) */ static const unsigned int stm32mp13_adc_smp_cycles[STM32_ADC_MAX_SMP + 1] = =3D { 2, 6, 12, 24, 47, 92, 247, 640, @@ -1304,6 +1437,184 @@ static void stm32h7_adc_unprepare(struct iio_dev *i= ndio_dev) stm32h7_adc_enter_pwr_down(adc); } =20 +/* + * STM32MP25 offset calibration software procedure. Basically the calibrat= ion routine is + * expected to average (for example) 8 samples in calibration mode, for si= ngle-ended and + * differential channels, to calibrate the zero offset. In case offset is = "negative", an + * additional offset can be added, to determine calibration factor. It mus= t be kept later + * for all conversions. + */ +static int stm32mp25_adc_calib_get_average_data(struct iio_dev *indio_dev,= u32 *average) +{ + struct stm32_adc *adc =3D iio_priv(indio_dev); + const struct stm32_adc_regspec *regs =3D adc->cfg->regs; + u32 val, avg =3D 0; + int ret; + + /* Repeat several conversions in calibration mode, average the results */ + for (unsigned int i =3D 0; i < STM32MP25_CALIB_LOOP; i++) { + stm32_adc_set_bits(adc, STM32H7_ADC_CR, STM32H7_ADSTART); + ret =3D stm32_adc_readl_poll_timeout(STM32H7_ADC_CR, val, + !(val & (STM32H7_ADSTART)), + 100, STM32_ADC_TIMEOUT_US); + if (ret) { + dev_err(&indio_dev->dev, "calibration average error %d\n", ret); + return ret; + } + + val =3D stm32_adc_readl(adc, regs->dr); + dev_vdbg(&indio_dev->dev, "dr[%d]=3D0x%08x\n", i, val); + avg +=3D val; + } + + *average =3D DIV_ROUND_CLOSEST(avg, STM32MP25_CALIB_LOOP); + dev_vdbg(&indio_dev->dev, "average=3D0x%08x\n", *average); + + return 0; +} + +static int stm32mp25_adc_calib_single_ended_offset(struct iio_dev *indio_d= ev, bool *add_offset) +{ + struct stm32_adc *adc =3D iio_priv(indio_dev); + u32 average; + int ret; + + /* Select single ended input calibration */ + stm32_adc_clr_bits(adc, STM32H7_ADC_CR, STM32H7_ADCALDIF); + +retry: + /* Clears or set CALADDOS (also clear old calibration data if any) */ + stm32_adc_writel(adc, STM32MP25_ADC_CALFACT, + FIELD_PREP(STM32MP25_CALFACT_CALADDOS, *add_offset)); + + ret =3D stm32mp25_adc_calib_get_average_data(indio_dev, &average); + if (ret) + return ret; + + /* Add offset and retry single-ended calibration if the averaged data is = zero */ + if (!average && !*add_offset) { + *add_offset =3D true; + goto retry; + } + + if (!average) { + /* If average data is still zero with additional offset, just warn about= it */ + dev_warn(&indio_dev->dev, "Single-ended calibration average: 0\n"); + } else { + u32 calfact =3D stm32_adc_readl(adc, STM32MP25_ADC_CALFACT); + + calfact |=3D FIELD_PREP(STM32MP25_CALFACT_S_MASK, average); + stm32_adc_writel(adc, STM32MP25_ADC_CALFACT, calfact); + } + + return 0; +} + +static int stm32mp25_adc_calib(struct iio_dev *indio_dev) +{ + struct stm32_adc *adc =3D iio_priv(indio_dev); + bool add_offset =3D false; + bool diff_below_zero; + u32 average, calfact; + int ret; + + stm32_adc_set_bits(adc, STM32H7_ADC_CR, STM32H7_ADCAL); + /* Use default resolution (e.g. 12 bits) */ + stm32_adc_clr_bits(adc, STM32H7_ADC_CFGR, STM32MP25_RES_MASK); + +retry: + /* Single ended input calibration */ + ret =3D stm32mp25_adc_calib_single_ended_offset(indio_dev, &add_offset); + if (ret) + goto out; + + /* Differential input calibration (keep previous CALADDOS value) */ + stm32_adc_set_bits(adc, STM32H7_ADC_CR, STM32H7_ADCALDIF); + ret =3D stm32mp25_adc_calib_get_average_data(indio_dev, &average); + if (ret) + goto out; + + /* Averaged diff data is below 0x800 (half value in 12-bits mode) */ + diff_below_zero =3D average < BIT(adc->cfg->adc_info->resolutions[0] - 1); + + if (diff_below_zero && !add_offset) { + /* Retry the whole calibration with additional offset */ + add_offset =3D true; + goto retry; + } + + calfact =3D stm32_adc_readl(adc, STM32MP25_ADC_CALFACT); + + if (diff_below_zero) { + /* + * Averaged data is still below center value. It needs to be clamped to = zero, + * so don't use the result here, warn about it. + */ + dev_warn(&indio_dev->dev, "Differential calibration clamped(0): 0x%x\n",= average); + } else { + calfact |=3D FIELD_PREP(STM32MP25_CALFACT_D_MASK, average); + stm32_adc_writel(adc, STM32MP25_ADC_CALFACT, calfact); + } + + dev_dbg(&indio_dev->dev, "set calfact_s=3D0x%03lx, calfact_d=3D0x%03lx, c= alados=3D%ld\n", + FIELD_GET(STM32MP25_CALFACT_S_MASK, calfact), + FIELD_GET(STM32MP25_CALFACT_D_MASK, calfact), + FIELD_GET(STM32MP25_CALFACT_CALADDOS, calfact)); +out: + stm32_adc_clr_bits(adc, STM32H7_ADC_CR, STM32H7_ADCAL); + stm32_adc_set_res(adc); + + return ret; +} + +static int stm32mp25_adc_prepare(struct iio_dev *indio_dev) +{ + struct stm32_adc *adc =3D iio_priv(indio_dev); + int ret; + + ret =3D stm32h7_adc_exit_pwr_down(indio_dev); + if (ret) + return ret; + + /* Must enable the ADC before running software-assisted calibration */ + ret =3D stm32h7_adc_enable(indio_dev); + if (ret) + goto pwr_dwn; + + /* Always run offset calibration */ + ret =3D stm32mp25_adc_calib(indio_dev); + if (ret) + goto adc_dis; + + stm32_adc_int_ch_enable(indio_dev); + + stm32_adc_writel(adc, adc->cfg->regs->difsel.reg, adc->difsel); + + if (adc->cfg->has_presel) + stm32_adc_writel(adc, STM32H7_ADC_PCSEL, adc->pcsel); + + return 0; + +adc_dis: + stm32h7_adc_disable(indio_dev); +pwr_dwn: + stm32h7_adc_enter_pwr_down(adc); + + return ret; +} + +static void stm32mp25_adc_unprepare(struct iio_dev *indio_dev) +{ + struct stm32_adc *adc =3D iio_priv(indio_dev); + + /* Undo things in the reverse order */ + if (adc->cfg->has_presel) + stm32_adc_writel(adc, STM32H7_ADC_PCSEL, 0); + stm32_adc_int_ch_disable(adc); + stm32h7_adc_disable(indio_dev); + stm32h7_adc_enter_pwr_down(adc); +} + /** * stm32_adc_conf_scan_seq() - Build regular channels scan sequence * @indio_dev: IIO device @@ -2786,11 +3097,72 @@ static const struct stm32_adc_cfg stm32mp13_adc_cfg= =3D { .vref_charac_mv =3D 3300, }; =20 +static const unsigned int stm32_adc_min_ts_mp25[STM32_ADC_INT_CH_NB] =3D { + [STM32_ADC_INT_CH_VDDCORE] =3D 34, + [STM32_ADC_INT_CH_VDDCPU] =3D 34, + [STM32_ADC_INT_CH_VREFINT] =3D 34, + [STM32_ADC_INT_CH_VBAT] =3D 34, +}; + +static const struct stm32_adc_cfg stm32mp25_adc1_cfg =3D { + .regs =3D &stm32mp25_adc1_regspec, + .adc_info =3D &stm32mp25_adc_info, + .trigs =3D stm32mp25_adc1_adc2_trigs, + .has_oversampling =3D true, + .has_presel =3D true, + .start_conv =3D stm32h7_adc_start_conv, + .stop_conv =3D stm32h7_adc_stop_conv, + .prepare =3D stm32mp25_adc_prepare, + .unprepare =3D stm32mp25_adc_unprepare, + .smp_cycles =3D stm32mp25_adc_smp_cycles, + .irq_clear =3D stm32h7_adc_irq_clear, + .set_ovs =3D stm32h7_adc_set_ovs, + .ts_int_ch =3D stm32_adc_min_ts_mp25, + .vref_charac_mv =3D 1800, +}; + +static const struct stm32_adc_cfg stm32mp25_adc2_cfg =3D { + .regs =3D &stm32mp25_adc2_adc3_regspec, + .adc_info =3D &stm32mp25_adc_info, + .trigs =3D stm32mp25_adc1_adc2_trigs, + .has_oversampling =3D true, + .has_presel =3D true, + .start_conv =3D stm32h7_adc_start_conv, + .stop_conv =3D stm32h7_adc_stop_conv, + .prepare =3D stm32mp25_adc_prepare, + .unprepare =3D stm32mp25_adc_unprepare, + .smp_cycles =3D stm32mp25_adc_smp_cycles, + .irq_clear =3D stm32h7_adc_irq_clear, + .set_ovs =3D stm32h7_adc_set_ovs, + .ts_int_ch =3D stm32_adc_min_ts_mp25, + .vref_charac_mv =3D 1800, +}; + +static const struct stm32_adc_cfg stm32mp25_adc3_cfg =3D { + .regs =3D &stm32mp25_adc2_adc3_regspec, + .adc_info =3D &stm32mp25_adc_info, + .trigs =3D stm32mp25_adc3_trigs, + .has_oversampling =3D true, + .has_presel =3D true, + .start_conv =3D stm32h7_adc_start_conv, + .stop_conv =3D stm32h7_adc_stop_conv, + .prepare =3D stm32mp25_adc_prepare, + .unprepare =3D stm32mp25_adc_unprepare, + .smp_cycles =3D stm32mp25_adc_smp_cycles, + .irq_clear =3D stm32h7_adc_irq_clear, + .set_ovs =3D stm32h7_adc_set_ovs, + .ts_int_ch =3D stm32_adc_min_ts_mp25, + .vref_charac_mv =3D 1800, +}; + static const struct of_device_id stm32_adc_of_match[] =3D { { .compatible =3D "st,stm32f4-adc", .data =3D (void *)&stm32f4_adc_cfg }, { .compatible =3D "st,stm32h7-adc", .data =3D (void *)&stm32h7_adc_cfg }, { .compatible =3D "st,stm32mp1-adc", .data =3D (void *)&stm32mp1_adc_cfg = }, { .compatible =3D "st,stm32mp13-adc", .data =3D (void *)&stm32mp13_adc_cf= g }, + { .compatible =3D "st,stm32mp25-adc1", .data =3D (void *)&stm32mp25_adc1_= cfg }, + { .compatible =3D "st,stm32mp25-adc2", .data =3D (void *)&stm32mp25_adc2_= cfg }, + { .compatible =3D "st,stm32mp25-adc3", .data =3D (void *)&stm32mp25_adc3_= cfg }, { } }; MODULE_DEVICE_TABLE(of, stm32_adc_of_match); --=20 2.43.0 From nobody Thu Sep 24 13:43:36 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010048.outbound.protection.outlook.com [52.101.84.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E91895519AE; Wed, 23 Sep 2026 15:39:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177981; cv=fail; b=fsMaJv3DaBLOPxXzm3RMjIyNpel0CeATraVJQDwO+obsn/QA47yRYQMeZDrVX69x51xxdTX5uZiQHkYjQTXJpsuXz+3tuK2qQsh69toQhEh50Mkz55APxLa9vUUOa6rfJ+hMT/rscmyoWTFDGWlm2O+uXiMJT70nLBdl53Ax+yw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177981; c=relaxed/simple; bh=SSWyZoYW3WUTUkAy1NMu/N0dS3nvuM8JX5c7SfWvgW8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=in6rDx4Whx44yPIJsPzLp6WbDvG3gdqJbDxGZCSCpstiWt/3OZWPWL1/EcRT9ktnx13MXy9YT2JsHISeuzG/EBnGqHYmCCrBm3/5XDUYxTFlKJ8XxZT39/Z+xwzqkegat+Ly/pdLHchLa7ypNu1aQNGE3pBkEnYAAT2ltYoLSMA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=U/q7D8dT; arc=fail smtp.client-ip=52.101.84.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="U/q7D8dT" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wlQr0JjltPxi9aHJNTRkOQJ65zQNngZgi152HMTlYroPU5Rhhmz38ZOYSQc2GQ04/4C2kc9kTVwS9PKeoHn5RQp2ioMn3y2/Y6RXLDXE4RtKPXU77MV0dEPU21mkar4YQCFg+j9TRO5wNnwQyJy8OldsS0YMcUIzYXcBnW1zFlbevXXW9Kl14tLQNGV8fOHkc0HCvk4GokYyqPNnZ2Y5dgsImtnMBbQUCb9wpK61GDBznyEZlMJFjL6fC/0mNOljJZK9uipHT4IGLBtbQzs1eCIm+4cLL+9VzHPc18W+FvvzffL1heQlc92yXo6/QGxTXz40MCfVdX4b2L1+p4fPdA== 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=3XMS/HuWqP1qL0RxWqfs3JhXTuXgp0rrs6F3LModr1w=; b=AoDo5ZI8xGOJQmKYFE/zXfhQeImuo7F69SQKavAQ8uvL47HnUIa2D9iVr0p8Ru8TSlXP5c+LMfdeloHpfEW6xUrngfoHj8ghJy2AmO5XjcMofXa+giuVgpJwxBKvKdVfx0Nux0w0geWXJp2PB6adlTE/V4s8nJH5R3K35fXbwZoARUjntIP1sDLIuDtWKfHBB21VcYSdMbtO1EOYB5ruPF3fKxoQhCI0xYvb65lTrvFGraTYukcroTufc4feuyopEhcTYoLDKL5OUozHtQAeFTHHGGYGNnfH/IF+BWR0eYt5i0EGrkTDLLfxJs3vWqxzXvZDXo7/rSMKZynu2Dh+zg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.59) smtp.rcpttodomain=st-md-mailman.stormreply.com smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3XMS/HuWqP1qL0RxWqfs3JhXTuXgp0rrs6F3LModr1w=; b=U/q7D8dT2w4V6OAaT5e+sDCl65BgWVUYMkAKZ20RIDe5Y+Wo9aA0ok3Ru4sZDMWYUNxGIQRq4MpND3RXsY8kkH/95d0lUZQhA48k3ZFNeBxkvz6hq3mIySaiLKzSn1wa2OZFNcGwGTytbm6sL0ri37jtsHfaH6JWAnWsHrHB5fD9TQMTx3phb4EZUtx9hA0lwYd9X9D7PSLC/2fLCmoBRnsxwA1pgz0CeZfsmscdIIhazaJ9xZgwozyXb/cX9grgYdisf7w9opgj7VvWaFX5eUFyARW1ojBDsIJaSABVuoBwb/pFpPATfKuJnHAku1yHuHVOt/FV+QOyxuBow81mzA== Received: from PA7P264CA0196.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:36d::9) by DB9PR10MB8144.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:4ee::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.17; Wed, 23 Sep 2026 15:39:33 +0000 Received: from MAD0EPF000008B1.eurprd04.prod.outlook.com (2603:10a6:102:36d:cafe::a1) by PA7P264CA0196.outlook.office365.com (2603:10a6:102:36d::9) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.451.14 via Frontend Transport; Wed, 23 Sep 2026 15:39:33 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.59) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.59 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.59; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.59) by MAD0EPF000008B1.mail.protection.outlook.com (10.167.241.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.8 via Frontend Transport; Wed, 23 Sep 2026 15:39:33 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpo365.st.com (10.250.44.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:46:01 +0200 Received: from localhost (10.252.7.7) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:39:32 +0200 From: Fabrice Gasnier Date: Wed, 23 Sep 2026 17:39:11 +0200 Subject: [PATCH v2 08/14] iio: adc: stm32-adc: add support for stm32mp23 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260923-adc-stm32mp25-v1-v2-8-46bc019537c6@foss.st.com> References: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> In-Reply-To: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , "Andy Shevchenko" , Rob Herring , "Krzysztof Kozlowski" , Conor Dooley , "Maxime Coquelin" , Alexandre Torgue CC: Marek Vasut , , , , , , Fabrice Gasnier , Cheick Traore , Olivier Moysan X-Mailer: b4 0.16.0 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MAD0EPF000008B1:EE_|DB9PR10MB8144:EE_ X-MS-Office365-Filtering-Correlation-Id: 490894be-48d1-47e8-0443-08df1988ddad X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|1800799024|82310400026|376014|36860700016|7416014|6133799003|10067099003|11063799006|56012099006|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 5hPE5V+71wDbfTm8yHJSKlgdGW5ZuNMwNT6TvHcAwli71kaloq5P/M9cSAfXpMNYqBweo1ZhN0S+M1jtgT8q3Ch2VgVCdWb0G1ZHp4bBZTKpp06sCLE24GFrRH3Wur+SKvaQZIEWVd8cmSYZ/JL9rAIz7ybAaQQK3WA2ksNlr3CUH0DevCnbXRq41BEqEb5Sg7P4ONABzRpDegEnXOGzAQy3WB7IOGN5uKAA5Z1C2S9IVWfXZf8uyylPJeh44NGrbExVjRNz0/qzSphuDiN2BNiL4nU50SEInVIy3rZRRihHJa1DH/yjxRYzmxgr+Pm+sWhmQRYMjpcX6n9EbiT6Gf5q397clQRQnOqgqDGw/iuaU+DwRJ0E5Nj/H4BWT5Epiv3EdDI24W9ThWQj3QmtB30veHYa9Snnw7kmBg5ItNW0UHmHEITj135uxDaLMAupgffZ/NWvhaq8kvdxtLZttNN5CJbzV5qm7cd9ySnpd4S+IXlVEqc9CnLwBNgaDz0+x2o5DisE/r6a2G+YX6Xo7PA5cq/G0GQgAX5b9wdCgBfNSOXhoVxocCAlTjayq3ouh7zasPHHN0mMvw1VL6nQKzMF1JtnNZw7aNsUibW37+D0NsBf2CohQ4edIB+WZD+rTZO+a4cEYb79nOFc+5Fb7fUdPWLH5lDoDRUvXsIEPfRL5DU907NkgOtEgrHsSW6U8ubiD+9KOhSO6JBxA1dPTg== X-Forefront-Antispam-Report: CIP:164.130.1.59;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(23010399003)(1800799024)(82310400026)(376014)(36860700016)(7416014)(6133799003)(10067099003)(11063799006)(56012099006)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Fkny5WJbAz0UV0baqjAuUlWrqpd3oNrNuq9y2FP786Wy47nuY3PiyL+4GDx4juIgNHKI87+O2j/G5npAPleR62eIGFqT72QJpYdUejSHQJ3n/IcHaNbzKHgPw2UzWHsPHqTYuy6vLohJm/uPXPs0Kiqf6E8CDr4qJV2PrKV8n9WD5cAd9wUpOZqoC3EZxQaQEeSkoQaau9MYbneeW34tGXc/bTFx8R+W4oIZOc5Vpq2G/+DL28tfecED1OC4uQ2INfYpzfD3kLDqixUIdgoqDgU3qfil9I2Gv2igDcrwj/kwZ4JgrBmdxlbpt0MuwGVXDITItbs1BjNaO102QZVsUMorL8s31DC0FjpwVF3RlK3aKC8VRun4srCQxrOstmvxGXM1DX+U2WZu+nxrFep1TJy70NHNLWMib7+AQuJwA1f8XJJtaDoz8NL0gRMAMv6p X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 15:39:33.4043 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 490894be-48d1-47e8-0443-08df1988ddad X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.59];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: MAD0EPF000008B1.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR10MB8144 Add support for ADC on STM32MP23 SoC. It has 3 ADCs, split into two blocks: - ADC1 & ADC2 are tightly coupled. - ADC3 is managed independently. It is quite similar to STM32MP25 ADC, except for the trigger list. TIM20 triggers have been removed. So, handle the differences with a dedicated compatible and compatible data. Co-developed-by: Cheick Traore Signed-off-by: Cheick Traore Co-developed-by: Olivier Moysan Signed-off-by: Olivier Moysan Signed-off-by: Fabrice Gasnier --- Changes in v2: - New patch, split as advised by Andy: one patch for this new SoC --- drivers/iio/adc/stm32-adc-core.c | 3 ++ drivers/iio/adc/stm32-adc.c | 112 +++++++++++++++++++++++++++++++++++= ++++ 2 files changed, 115 insertions(+) diff --git a/drivers/iio/adc/stm32-adc-core.c b/drivers/iio/adc/stm32-adc-c= ore.c index 7027d86f7457..418846f736ba 100644 --- a/drivers/iio/adc/stm32-adc-core.c +++ b/drivers/iio/adc/stm32-adc-core.c @@ -948,6 +948,9 @@ static const struct of_device_id stm32_adc_of_match[] = =3D { }, { .compatible =3D "st,stm32mp13-adc-core", .data =3D (void *)&stm32mp13_adc_priv_cfg + }, { + .compatible =3D "st,stm32mp23-adc-core", + .data =3D (void *)&stm32mp25_adc_priv_cfg }, { .compatible =3D "st,stm32mp25-adc-core", .data =3D (void *)&stm32mp25_adc_priv_cfg diff --git a/drivers/iio/adc/stm32-adc.c b/drivers/iio/adc/stm32-adc.c index a5bffc09898b..a14f858299ae 100644 --- a/drivers/iio/adc/stm32-adc.c +++ b/drivers/iio/adc/stm32-adc.c @@ -563,6 +563,64 @@ static const struct stm32_adc_regspec stm32h7_adc_regs= pec =3D { .smp_bits =3D stm32h7_smp_bits, }; =20 +/* STM32MP23 external trigger sources for ADC1 and ADC2 */ +static struct stm32_adc_trig_info stm32mp23_adc1_adc2_trigs[] =3D { + { TIM1_TRGO, STM32_EXT0 }, + { TIM1_TRGO2, STM32_EXT1 }, + { TIM8_TRGO, STM32_EXT2 }, + { TIM8_TRGO2, STM32_EXT3 }, + { TIM2_TRGO, STM32_EXT6 }, + { TIM3_TRGO, STM32_EXT7 }, + { TIM4_TRGO, STM32_EXT8 }, + { TIM5_TRGO, STM32_EXT9 }, + { TIM6_TRGO, STM32_EXT10 }, + { TIM15_TRGO, STM32_EXT11 }, + { TIM1_CH1, STM32_EXT12 }, + { TIM1_CH2, STM32_EXT13 }, + { TIM1_CH3, STM32_EXT14 }, + { TIM2_CH2, STM32_EXT18 }, + { TIM3_CH4, STM32_EXT19 }, + { TIM4_CH4, STM32_EXT20 }, + { TIM5_CH1, STM32_EXT21 }, + { TIM12_CH1, STM32_EXT22 }, + { LPTIM1_CH1, STM32_EXT24 }, + { LPTIM2_CH1, STM32_EXT25 }, + { LPTIM3_CH1, STM32_EXT26 }, + { LPTIM4_CH1, STM32_EXT27 }, + { LPTIM5_OUT, STM32_EXT28 }, + { } +}; + +/* STM32MP23 external trigger sources for ADC3 */ +static struct stm32_adc_trig_info stm32mp23_adc3_trigs[] =3D { + { TIM1_TRGO, STM32_EXT0 }, + { TIM1_TRGO2, STM32_EXT1 }, + { TIM8_TRGO, STM32_EXT2 }, + { TIM8_TRGO2, STM32_EXT3 }, + { TIM2_TRGO, STM32_EXT6 }, + { TIM3_TRGO, STM32_EXT7 }, + { TIM4_TRGO, STM32_EXT8 }, + { TIM5_TRGO, STM32_EXT9 }, + { TIM6_TRGO, STM32_EXT10 }, + { TIM7_TRGO, STM32_EXT11 }, + { TIM15_TRGO, STM32_EXT12 }, + { TIM17_OC1, STM32_EXT13 }, + { TIM1_CH3, STM32_EXT14 }, + { TIM8_CH1, STM32_EXT15 }, + { TIM2_CH1, STM32_EXT17 }, + { TIM2_CH3, STM32_EXT18 }, + { TIM3_CH1, STM32_EXT19 }, + { TIM4_CH1, STM32_EXT20 }, + { TIM5_CH3, STM32_EXT21 }, + { TIM12_CH1, STM32_EXT22 }, + { LPTIM1_CH1, STM32_EXT24 }, + { LPTIM2_CH1, STM32_EXT25 }, + { LPTIM3_CH1, STM32_EXT26 }, + { LPTIM4_CH1, STM32_EXT27 }, + { LPTIM5_OUT, STM32_EXT28 }, + { } +}; + /* STM32MP25 external trigger sources for ADC1 and ADC2 */ static struct stm32_adc_trig_info stm32mp25_adc1_adc2_trigs[] =3D { { TIM1_TRGO, STM32_EXT0 }, @@ -3104,6 +3162,57 @@ static const unsigned int stm32_adc_min_ts_mp25[STM3= 2_ADC_INT_CH_NB] =3D { [STM32_ADC_INT_CH_VBAT] =3D 34, }; =20 +static const struct stm32_adc_cfg stm32mp23_adc1_cfg =3D { + .regs =3D &stm32mp25_adc1_regspec, + .adc_info =3D &stm32mp25_adc_info, + .trigs =3D stm32mp23_adc1_adc2_trigs, + .has_oversampling =3D true, + .has_presel =3D true, + .start_conv =3D stm32h7_adc_start_conv, + .stop_conv =3D stm32h7_adc_stop_conv, + .prepare =3D stm32mp25_adc_prepare, + .unprepare =3D stm32mp25_adc_unprepare, + .smp_cycles =3D stm32mp25_adc_smp_cycles, + .irq_clear =3D stm32h7_adc_irq_clear, + .set_ovs =3D stm32h7_adc_set_ovs, + .ts_int_ch =3D stm32_adc_min_ts_mp25, + .vref_charac_mv =3D 1800, +}; + +static const struct stm32_adc_cfg stm32mp23_adc2_cfg =3D { + .regs =3D &stm32mp25_adc2_adc3_regspec, + .adc_info =3D &stm32mp25_adc_info, + .trigs =3D stm32mp23_adc1_adc2_trigs, + .has_oversampling =3D true, + .has_presel =3D true, + .start_conv =3D stm32h7_adc_start_conv, + .stop_conv =3D stm32h7_adc_stop_conv, + .prepare =3D stm32mp25_adc_prepare, + .unprepare =3D stm32mp25_adc_unprepare, + .smp_cycles =3D stm32mp25_adc_smp_cycles, + .irq_clear =3D stm32h7_adc_irq_clear, + .set_ovs =3D stm32h7_adc_set_ovs, + .ts_int_ch =3D stm32_adc_min_ts_mp25, + .vref_charac_mv =3D 1800, +}; + +static const struct stm32_adc_cfg stm32mp23_adc3_cfg =3D { + .regs =3D &stm32mp25_adc2_adc3_regspec, + .adc_info =3D &stm32mp25_adc_info, + .trigs =3D stm32mp23_adc3_trigs, + .has_oversampling =3D true, + .has_presel =3D true, + .start_conv =3D stm32h7_adc_start_conv, + .stop_conv =3D stm32h7_adc_stop_conv, + .prepare =3D stm32mp25_adc_prepare, + .unprepare =3D stm32mp25_adc_unprepare, + .smp_cycles =3D stm32mp25_adc_smp_cycles, + .irq_clear =3D stm32h7_adc_irq_clear, + .set_ovs =3D stm32h7_adc_set_ovs, + .ts_int_ch =3D stm32_adc_min_ts_mp25, + .vref_charac_mv =3D 1800, +}; + static const struct stm32_adc_cfg stm32mp25_adc1_cfg =3D { .regs =3D &stm32mp25_adc1_regspec, .adc_info =3D &stm32mp25_adc_info, @@ -3160,6 +3269,9 @@ static const struct of_device_id stm32_adc_of_match[]= =3D { { .compatible =3D "st,stm32h7-adc", .data =3D (void *)&stm32h7_adc_cfg }, { .compatible =3D "st,stm32mp1-adc", .data =3D (void *)&stm32mp1_adc_cfg = }, { .compatible =3D "st,stm32mp13-adc", .data =3D (void *)&stm32mp13_adc_cf= g }, + { .compatible =3D "st,stm32mp23-adc1", .data =3D (void *)&stm32mp23_adc1_= cfg }, + { .compatible =3D "st,stm32mp23-adc2", .data =3D (void *)&stm32mp23_adc2_= cfg }, + { .compatible =3D "st,stm32mp23-adc3", .data =3D (void *)&stm32mp23_adc3_= cfg }, { .compatible =3D "st,stm32mp25-adc1", .data =3D (void *)&stm32mp25_adc1_= cfg }, { .compatible =3D "st,stm32mp25-adc2", .data =3D (void *)&stm32mp25_adc2_= cfg }, { .compatible =3D "st,stm32mp25-adc3", .data =3D (void *)&stm32mp25_adc3_= cfg }, --=20 2.43.0 From nobody Thu Sep 24 13:43:36 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013071.outbound.protection.outlook.com [52.101.72.71]) (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 70D1055D88F; Wed, 23 Sep 2026 15:39:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.71 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177983; cv=fail; b=nPRLNR9IZE65CKluiO7oO1MVOad9kDdcoCjMNOpiJurG9nikRgIgnkgUOPhj7gXEL3PPtADtQV/rKNVuLnfozlVwgfC7ZFjU1mqVV5k+h/kUuWOUhKFqUdNB+u4E8djClcTwY9Wzbiym5z9cPwu1Rai2ThOPY6xbj/e9yvDRj7s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177983; c=relaxed/simple; bh=Rcj8XQLU/RG12YmgisZYB1U4Rrh1yCYWtkJg/TlzJuM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=kbGAbovrOfWeHVEdMPoZCPnICYrhXrxqyYBIcak+YTefI/gohG5Q0fAwb0Od1Z+Q0EN1rtz4zYD+WYDrjIHx56DiEHSNjex9xJJbL6wDAkMPflt8LVKIEmkT4nUwIYvuZq6src0ihHhe9/Jr9FFfqLAuAwwhRDN0vSUafx4lfQA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=FJMaY/0X; arc=fail smtp.client-ip=52.101.72.71 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="FJMaY/0X" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QmG5y3ITr3POlDGE0m0/ZHnRSdDaKfv0DfzgL3+RR+kXnUUvqDIqAaNjy6X0GcX4sm9TWkS2Tn1T2S6EfDMltfpBIzeishrfSnZBMukp7v4HoqiuclA7H5Xq435l9YDxN7hX2h+0QldI4tvy6TS4lIjcjfqzzFiZNzJJXZUscIRlR/EOW0JsJKNFNk6e2dGiFTTJZkypBYR9s8w1t9zjVDdeTN8qD6VNijaMJW8OqUI13UynJElBLrN6jgl/kBtCXyDU1/rMYTCBSwUw3OJVC7UFhoj8UWZrRp7rZ1TZbNhP8W07zAS4Lk0v13Aurw1suCWXYL6co9/a4VuzwjUzOQ== 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=rvO84suPbZhKZGDYkQX/SHnsEdEztbuEn9bVrV/RisI=; b=of7hkZIrpmniJDqlTqKJiHCCnHUYCDTPheOu9dB3DTD81UFJWtfpzjuHsxi/aqI39JCiHJoqDWh9MKrOT7OKVszAJZ2W2s27z7FFc3wiWtXEkn5e0vJ0BZIHmcQErN837HIK7QccsVaX9RDmY0WvMXENLAhIyRxtf7TUoYGnMZFq+pNkMK3QvYxVU50H2vCYNiqePB2rJmbS38AFEf2l86R18I/NFFWIgSyFPYqls7HktNopJc3+bJF6LQkvUXgeUyQWhkFzVMS4KLuN05d4dgw1u8bMrZOjadpjkIdl1Ew5UmHnX1ldNWPSvhSOhJKXBEAh/g9MXABxQ7aw19Gvpg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.60) smtp.rcpttodomain=st-md-mailman.stormreply.com smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rvO84suPbZhKZGDYkQX/SHnsEdEztbuEn9bVrV/RisI=; b=FJMaY/0XWx/kN4mGwPctRexvM9HLazqAwVlOo8AZoGDVHv1nd0/HWAkrSb+rRUWZv83sDsXMxaIg2L5TPsprLTKo+kzzpH/4193m05HtTtd1spiF+1jzh7ZDZrfDpgRfQWv52MUI/p4xq5INL4HvClLGeOC9/Dk3w4hbgWMv894GQi6EuTDEdhaGWpVTYf7rbBq5TU21zHEt+ECs5H9WjsWyccCh3WU7d4Q8ayrPcxsOJUv0dVwZJEtMyyxg0G4RfVhgstshqNkLq6u+jPiwFTbkQvwSPJLj+XpT7WOtXb4JTG4fvWsrNOTAHs8i/+iOV0Wija095Un3K3AJBQUTSw== Received: from OL1P279CA0044.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:14::13) by DU0PR10MB9327.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:5c9::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.16; Wed, 23 Sep 2026 15:39:34 +0000 Received: from WA1PEPF000099CF.eurprd04.prod.outlook.com (2603:10a6:e10:14:cafe::85) by OL1P279CA0044.outlook.office365.com (2603:10a6:e10:14::13) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.451.16 via Frontend Transport; Wed, 23 Sep 2026 15:39:34 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.60) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.60 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.60; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.60) by WA1PEPF000099CF.mail.protection.outlook.com (10.167.242.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.8 via Frontend Transport; Wed, 23 Sep 2026 15:39:34 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpO365.st.com (10.250.44.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:45:23 +0200 Received: from localhost (10.252.7.7) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:39:33 +0200 From: Fabrice Gasnier Date: Wed, 23 Sep 2026 17:39:12 +0200 Subject: [PATCH v2 09/14] iio: adc: stm32: add support for vddgpu on stm32mp23 and stm32mp25 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260923-adc-stm32mp25-v1-v2-9-46bc019537c6@foss.st.com> References: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> In-Reply-To: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , "Andy Shevchenko" , Rob Herring , "Krzysztof Kozlowski" , Conor Dooley , "Maxime Coquelin" , Alexandre Torgue CC: Marek Vasut , , , , , , Fabrice Gasnier X-Mailer: b4 0.16.0 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: WA1PEPF000099CF:EE_|DU0PR10MB9327:EE_ X-MS-Office365-Filtering-Correlation-Id: f516d114-874f-49e7-f692-08df1988de2f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|376014|82310400026|23010399003|36860700016|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: /JR1FGUovlp41QcjYiBZbDtmVi0Jeis0CsfKXBQvq8i1c3eJ7/cnfszM3GFmiQ3qWVORMsjZTaK+3CV260/Mjn1cPWbWnulBNINFOMOBsIhTVN05Rw1uNTM72qQhSqNFsLWnGk92WnOIRUxhEzi7p31IGbr0g565sqrB/qf0uA6a10LNnY5/O2ZJPbHmEyT5lTVAxJvP540jRANAUfSLIgjzE02B3HdMBMGHza23O90QqVYYgrgO2JlxQpbMv51Id0dYVrTcqi/wlTY/hwyozDnIRcikJIN5twSOEQokFjksd2WV3/LBcEV6RJR7ZG6A5JdqbMy2GyeTijKfpUEeXaTJ3c44FRrRYwZm71ETpf6ApsIhIChVSaZ4QmpegMJfEkUEUbT/W7VVURFPOyP4muUQASp/tnQ8ZQxi9GVpCmnlNYIDj9EFN9bUTlqRvxiQ3EpOBwrAV9hfqG0Aa0884WlfX9cNet33Wf2f8CDnwoy0q/FUXtzA3JOPRwXecIsnHaQv/771hL7ZO3GnUVDGbmuUThYBRUEqx0eSHvVWXWs9VtZNVtjM1sB69ILqQVh/yZIRww100zBhlhzwP7Ycu6OTfzqJ1LFd4KRmTVtBsUkqIODIoKStou67WvCNwFoPnZMPHc2fp9bXMYAT37TkrOdqHYzlPvdTesfnRlfREZVAbonlY4Fwc2TPMpVgsjGGibds3hXzUQ1lAZ9Hal9b4w== X-Forefront-Antispam-Report: CIP:164.130.1.60;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(376014)(82310400026)(23010399003)(36860700016)(10067099003)(56012099006)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: m1AVUqPdtoiJOEFRXUev9oYocXJ5cSfM+vV1JTFtJFmQV6439iOBqJ+deGn0oZDaGZ+2Rzbbz4GxAdw2T2kRxCoM48mI2FNJIYC42gG1P3gDI9uOb5GXm7jQLIr5Fa72VCgA1GK+oJbyhmc5GEujZv3YD/4j/7QphmTTBpQ+Q685t0eIJRboQAXhYVvuBj+nXkwKUCVkirslMKmEfq2aQAhAkj5NFS3vHPqFJ6SoBDWUb+7ouzkmqXDX/mejAk6CKYBy6blWHs0Hg98pic58yrDwQWktiEfLjkRNbt3BaCxYCJfAQyDiO8U0geTwB2WXPxiEL5+879zS5wwo6LrnzQtx9l+KkLz2HofcIWq6x6jVk12092iZuGZmUWLREjNgRp/pWYvM4fBVdRNkhV3lUR1cSOXwV9nsYCCqKP9+jQOasIjFhg66JPSrAGWpEhcq X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 15:39:34.2710 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f516d114-874f-49e7-f692-08df1988de2f X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.60];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: WA1PEPF000099CF.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR10MB9327 Add support for the vddgpu internal channel available on stm32mp23 and stm32mp25. It is enabled by using ADC2 and ADC3 option register. Add VDDGPU to the list of supported internal channels. Add sampling time information from the datasheet. Signed-off-by: Fabrice Gasnier --- Changes in v2: - New patch split from V1, to avoid mixing new SoC / feature. --- drivers/iio/adc/stm32-adc-core.h | 1 + drivers/iio/adc/stm32-adc.c | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/drivers/iio/adc/stm32-adc-core.h b/drivers/iio/adc/stm32-adc-c= ore.h index 68b937e3819f..330c6c30e4f5 100644 --- a/drivers/iio/adc/stm32-adc-core.h +++ b/drivers/iio/adc/stm32-adc-core.h @@ -273,6 +273,7 @@ enum stm32h7_adc_dmngt { #define STM32MP25_RES_MASK GENMASK(3, 2) =20 /* STM32MP25_ADC23_OR - specific bit fields */ +#define STM32MP25_VDDGPUEN BIT(4) #define STM32MP25_VDDCPUEN BIT(3) #define STM32MP25_VDDCOREEN BIT(2) =20 diff --git a/drivers/iio/adc/stm32-adc.c b/drivers/iio/adc/stm32-adc.c index a14f858299ae..a2ed3abffa58 100644 --- a/drivers/iio/adc/stm32-adc.c +++ b/drivers/iio/adc/stm32-adc.c @@ -97,6 +97,7 @@ enum stm32_adc_int_ch { STM32_ADC_INT_CH_VDDQ_DDR, STM32_ADC_INT_CH_VREFINT, STM32_ADC_INT_CH_VBAT, + STM32_ADC_INT_CH_VDDGPU, STM32_ADC_INT_CH_NB }; =20 @@ -107,6 +108,7 @@ static const char stm32_adc_ic[STM32_ADC_INT_CH_NB][STM= 32_ADC_CH_SZ] =3D { [STM32_ADC_INT_CH_VDDQ_DDR] =3D "vddq_ddr", [STM32_ADC_INT_CH_VREFINT] =3D "vrefint", [STM32_ADC_INT_CH_VBAT] =3D "vbat", + [STM32_ADC_INT_CH_VDDGPU] =3D "vddgpu" }; =20 /** @@ -167,6 +169,7 @@ struct stm32_adc_vrefint { * @smp_bits: smpr1 & smpr2 index and bitfields * @or_vddcore: option register & vddcore bitfield * @or_vddcpu: option register & vddcpu bitfield + * @or_vddgpu: option register & vddgpu bitfield * @or_vddq_ddr: option register & vddq_ddr bitfield * @ccr_vbat: common register & vbat bitfield * @ccr_vref: common register & vrefint bitfield @@ -186,6 +189,7 @@ struct stm32_adc_regspec { const struct stm32_adc_regs *smp_bits; const struct stm32_adc_regs or_vddcore; const struct stm32_adc_regs or_vddcpu; + const struct stm32_adc_regs or_vddgpu; const struct stm32_adc_regs or_vddq_ddr; const struct stm32_adc_regs ccr_vbat; const struct stm32_adc_regs ccr_vref; @@ -725,6 +729,7 @@ static const struct stm32_adc_regspec stm32mp25_adc2_ad= c3_regspec =3D { .smp_bits =3D stm32h7_smp_bits, .or_vddcore =3D { STM32MP25_ADC23_OR, STM32MP25_VDDCOREEN }, .or_vddcpu =3D { STM32MP25_ADC23_OR, STM32MP25_VDDCPUEN }, + .or_vddgpu =3D { STM32MP25_ADC23_OR, STM32MP25_VDDGPUEN }, .ccr_vbat =3D { STM32H7_ADC_CCR, STM32H7_VBATEN }, .ccr_vref =3D { STM32H7_ADC_CCR, STM32H7_VREFEN }, }; @@ -953,6 +958,11 @@ static void stm32_adc_int_ch_enable(struct iio_dev *in= dio_dev) stm32_adc_set_bits_common(adc, adc->cfg->regs->ccr_vbat.reg, adc->cfg->regs->ccr_vbat.mask); break; + case STM32_ADC_INT_CH_VDDGPU: + dev_dbg(&indio_dev->dev, "Enable VDDGPU\n"); + stm32_adc_set_bits(adc, adc->cfg->regs->or_vddgpu.reg, + adc->cfg->regs->or_vddgpu.mask); + break; } } } @@ -986,6 +996,10 @@ static void stm32_adc_int_ch_disable(struct stm32_adc = *adc) stm32_adc_clr_bits_common(adc, adc->cfg->regs->ccr_vbat.reg, adc->cfg->regs->ccr_vbat.mask); break; + case STM32_ADC_INT_CH_VDDGPU: + stm32_adc_clr_bits(adc, adc->cfg->regs->or_vddgpu.reg, + adc->cfg->regs->or_vddgpu.mask); + break; } } } @@ -2651,6 +2665,9 @@ static int stm32_adc_populate_int_ch(struct iio_dev *= indio_dev, const char *ch_n case STM32_ADC_INT_CH_VBAT: na =3D !adc->cfg->regs->ccr_vbat.reg; break; + case STM32_ADC_INT_CH_VDDGPU: + na =3D !adc->cfg->regs->or_vddgpu.reg; + break; default: return -EINVAL; } @@ -3160,6 +3177,7 @@ static const unsigned int stm32_adc_min_ts_mp25[STM32= _ADC_INT_CH_NB] =3D { [STM32_ADC_INT_CH_VDDCPU] =3D 34, [STM32_ADC_INT_CH_VREFINT] =3D 34, [STM32_ADC_INT_CH_VBAT] =3D 34, + [STM32_ADC_INT_CH_VDDGPU] =3D 34 }; =20 static const struct stm32_adc_cfg stm32mp23_adc1_cfg =3D { --=20 2.43.0 From nobody Thu Sep 24 13:43:36 2026 Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazon11010053.outbound.protection.outlook.com [52.101.84.53]) (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 7097A55D889; Wed, 23 Sep 2026 15:39:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.84.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177983; cv=fail; b=shfUlGWGzE3KwpeLZaq6MCBdnGn9gKWg4ki+7pKXGUEyO0Qgdz/Zx3CY1L6tM6KqyHFCtW/fTvMtrdj2b+i6wEM48et8OVZmHOiEw77LerC8OMvi1aOIsBGNUHVET/gOwl9KHXrCwFLda9M56n1M3WJD95tgo3dAZ4W5dU/quOw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177983; c=relaxed/simple; bh=E8vV2wCN9DdHeM0CDJuhZHBt1ceQscoOkbTITYr++6o=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=ZUgcDIOUs7RIlpRXMisLOPoz1KM6BOsKtwH+cAHMDtb9JDV0gV25siMV7sxLn1gB55MAZcqa1oBR1uiQH6FHeypMCsllOLmk22xfFxMbhBXAIAZSeCXgKDngZdHM7yTaew2KeNEnyKI7kFW5Peqo4qkPCbH8vuNwA2O0WuyS97Y= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=gG32ZGf4; arc=fail smtp.client-ip=52.101.84.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="gG32ZGf4" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TiTWrMd3/wpX8z28TamPnAkXYkqFf5wutm/LCud4cKvw49awIp7VCvfkt495y7OU/kIaHCd+J/+mll8oABdBLjH2KY6hepLrV8fR59eUqFK1ywBguiZtKH3eN4nzGGeSxmwAyeHDgPLIY9VJiYunFsKr8mGdDX4jDbAFn/3mdPqLe1JCCEp6Ws+17P3lPdp8mpAVKl877B5/Zf+AdwPoTVpY760kHZ1Ivo5B6UnLiq7PMOvKmXMHVPK9KtsAgo9L75XgAUcTj7ElTrMyv5MPBKNyI5DJcjBhLB/hJARNJNtyv65girCt70vf0vYw1mtqdZZmbNM90whfZ8CnNGaf8g== 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=kkjkwOkeHSZfXOGPL92V8g1PGNM8S2IzaMhySLNkPI0=; b=GZwux6Rjp4xeO+l1jfldYL47FaaCfRXlwUSIkoGsdpi8aJOieUrFcibzmFALKX9dxN/ejRSejbOUw4PfE/krK4IsVY/I40gEmZe7cC5WS9HGf6QT+9aUtjlTIcTxAwnE4vm8c9DAViHi556poVEO7FeUeTToQCK69snB3jlCgUuSxVjKXWPJJGlpPU05iIZ6CyqGmcaHbNwVcGdFJO5EVsALC9omfa5TefWTYrwZSoSeYK2Mfv++5//JQIFadAe01V3LIaBZ/ZiDeXF1ay7uBdWeO3DJsdcBuqp3O/0sJAmqc6J2X/YlqLoomaCR4/NG8qL2gu6aY0zd8HG05pmCbQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.59) smtp.rcpttodomain=st-md-mailman.stormreply.com smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kkjkwOkeHSZfXOGPL92V8g1PGNM8S2IzaMhySLNkPI0=; b=gG32ZGf4RaVT6l4yks0NFNAwS3ul6RKu/fdk66ebSW7jvyKy2RcvshfDOSBotXnj0Gd6+RaYagssUN3xtg6YvOtWOpDTCNQ5MCqS2a9pNP2mLFgGsNVpUej45rYBX36fqzrHqoZmjlxK+mfCwPJeMNDxqfSXM5Wk1lqtJKtW5iF+QOWplrnwxgyPFB+NjSQwfYd7rDPWjIp/Z7g3jhqml2O+KPJugEHZXR8SIhe0EFcYaAWWRcPEf8GnYeD+ZL5yL0XkvU5HS/OvDs3PFjJagZM4QC1mUuH3aaeBqHi45zSglqMaUYP25IFXCVuV6gOfssNXLqFbr16Bc73N0wTSsw== Received: from DU2P250CA0023.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:231::28) by BESPR10MB9247.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:b10:f1::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.14; Wed, 23 Sep 2026 15:39:36 +0000 Received: from MAD0EPF000008B4.eurprd04.prod.outlook.com (2603:10a6:10:231:cafe::5d) by DU2P250CA0023.outlook.office365.com (2603:10a6:10:231::28) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.451.14 via Frontend Transport; Wed, 23 Sep 2026 15:39:35 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.59) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.59 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.59; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.59) by MAD0EPF000008B4.mail.protection.outlook.com (10.167.241.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.8 via Frontend Transport; Wed, 23 Sep 2026 15:39:35 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpo365.st.com (10.250.44.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:46:03 +0200 Received: from localhost (10.252.7.7) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:39:34 +0200 From: Fabrice Gasnier Date: Wed, 23 Sep 2026 17:39:13 +0200 Subject: [PATCH v2 10/14] arm64: dts: st: add vrefint calibration on stm32mp23 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260923-adc-stm32mp25-v1-v2-10-46bc019537c6@foss.st.com> References: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> In-Reply-To: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , "Andy Shevchenko" , Rob Herring , "Krzysztof Kozlowski" , Conor Dooley , "Maxime Coquelin" , Alexandre Torgue CC: Marek Vasut , , , , , , Fabrice Gasnier , Patrice Chotard , Olivier Moysan X-Mailer: b4 0.16.0 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MAD0EPF000008B4:EE_|BESPR10MB9247:EE_ X-MS-Office365-Filtering-Correlation-Id: 52af73c2-a1fa-41bc-6ae6-08df1988ded4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700016|82310400026|376014|7416014|23010399003|11063799006|10067099003|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: yC7WsNOSYDxt1aGc9hRCwnSIJ7wO3VRSAbsvkfeZAgQZ1djgy6JE5IrdM6YWd1skOMP5reLsqztsyd6GPbwTjgUkdcnTc/2Ol8HggIuCPRNLN9QqqUuR46g9DxSF5mFi3eMqZO6QwEPZ821ZPadu9KZREF7yJU1GklGobgIcuLhRCM9RZURy23XNY4NvfSy8Wm1BQLFPdI0NPYpIC7aBSFZTCKDDLh2hQuW2n3De4mVFzr3L7BbS2hW9o6looX17rCPVRH3y2g8ci46mnV2x0/I8hhqxjY5C2ZWrZ0yaDpgad8V4j0DDbCszYmuR0kIjS70fiSzrpnZrZdNY2esLncEpJgrukXjwHTTJ/z9ULHe0I/LZp0pKVFXWo4krPOpTCYGOyzK4DPYuaRQ6L1U2Vme68hM3B9Zg3ofBAYpPs389nH7piTCe6y1KpRB0Fi29BjK0ZcNCy22CepMydbh92DWYtT+o9RRx5qIRiS4DdkS6IfFWwBeFP2Jy2sC1L1yPvMGnlnBBPfwvY9MizwIB4mnTOFj9CbRyVCeTm74hR5cJo0pluSMB1Y/GcKczM0akfCGKeTbIIx09KJVeYDzLF8n666jMKiT1AwJpoYF9JENQevgOJAh65TAEQCiaTwe5QDhaut/GZTVVMJEn46+JmCgyO9un5Ox/AwTHh9tq7g1omSMP8/V+2/l+xVnXNmH9p0UBYNJqnn6rDQxYhrM9DQ== X-Forefront-Antispam-Report: CIP:164.130.1.59;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(36860700016)(82310400026)(376014)(7416014)(23010399003)(11063799006)(10067099003)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: +TTfAyGmuxPZOOomO3BefDCb8nfBVbIkuXUNbFztFbqPM43nArayxCMbpsQKr7O/LyCQL4I3dM9LL2HeImDn7o+gi13RdNul8Lc0dIbOumJ57EI6TfxndgH8GLYYRQ+zw702t4ANxXe6jD4r5FW8642IIIy7F/DqGD3hHOEZFHJHxF5EgyWVcwPV81ZLAKreDRFhHvrgbCW+0ci3NBzkMXxBTcy0BEuRiyaSjuZzyC/Jujg0mGfnNKiCqGyJPZXTCYispSZpFvnZ97ZBkq/9hQ0JIek236qKQqE4j7f5EVeMPBCSAZpXzaUmWJ2QIpdxZvx0/LMHejFJ1A4GeE4FOzPRMFIb2S0wK2GmuWjOE0cXK2yt1NwezTyTL6gcRaIG7f7KQNN0rnISY7U4f64JEV8m/RmCBAr+C/Sn3PxT8DT/5TBlgM3RzH+InT7ITax9 X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 15:39:35.3370 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 52af73c2-a1fa-41bc-6ae6-08df1988ded4 X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.59];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: MAD0EPF000008B4.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BESPR10MB9247 From: Patrice Chotard Describe vrefint calibration cell to be retrieved by ADCs through bsec, on STM32MP23. Co-developed-by: Olivier Moysan Signed-off-by: Olivier Moysan Signed-off-by: Patrice Chotard Signed-off-by: Fabrice Gasnier --- arch/arm64/boot/dts/st/stm32mp231.dtsi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm64/boot/dts/st/stm32mp231.dtsi b/arch/arm64/boot/dts/s= t/stm32mp231.dtsi index 9e1d240888ff..938d6f0098ac 100644 --- a/arch/arm64/boot/dts/st/stm32mp231.dtsi +++ b/arch/arm64/boot/dts/st/stm32mp231.dtsi @@ -790,6 +790,10 @@ part-number-otp@24 { reg =3D <0x24 0x4>; }; =20 + vrefint: vrefin-cal@1b8 { + reg =3D <0x1b8 0x2>; + }; + package-otp@1e8 { reg =3D <0x1e8 0x1>; bits =3D <0 3>; --=20 2.43.0 From nobody Thu Sep 24 13:43:36 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011015.outbound.protection.outlook.com [40.107.130.15]) (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 B45135304D4; Wed, 23 Sep 2026 15:39:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.15 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177986; cv=fail; b=rBeV2Qaocep2ndACyrJRNi+o+DRSya7u8BeAfozWVUpLCYR+U/BNna3Ku7AQVc60PWkARzVsWgxzvcQQiO2MI1aBR9dxDbWGicmXkN9rhjytAjgCOjvUhrSnoJOHwsnTKnIq5Vj7/W3EXYlU0n/X2gOYBW8gGuJshWhgSInqNEs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177986; c=relaxed/simple; bh=/EuvbZg56B6sh8BFg7LCKG76krp94n2+ERgYZDIhQPU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=RG6V2jOQU/o89TncekN4NzY3HuiqUwGZatW3TzCoANd8TdPlCjQ0sQ7zi9esryqkRWL0HBMIcoCM30LE3DDgoN6qnM6zRgepS6FWCxHYsFABK0RxyX1B3tFflCGnq6oi2A9XHNc+MpXAogBshsXFG2m/sXjSL+TDqYfASPRR7uY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=e2k0TfPX; arc=fail smtp.client-ip=40.107.130.15 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="e2k0TfPX" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Pyx/Wb41leFmmcJenH2n9APjvXH7mwW1QEnSwT5b5JdWhnE1uAuP/Oc6YdpTFRf/1SxkgAnQT3fCk3Q3uPHeqx6zH/B45qo2a2ccD2M/3Hfmc3lNA8xzazunG0w1I8QEOXcd5QOC9xSyJyCGHVNYFYVxmT3pRodeFTrvCQR8rGlUU/8Mi2T/agdIJBKs9fiuE79RB6th4bLFt5Vcpzf8BIW4KCeqLFLHHcOXNByM2qtJQi147x3UX8inJbjQicwzY3z31YN/jQB5IvpVTJTFJgrDKW4mbejcX4EB4SnJc1OntWxl2w0lLmRazEEGFnvc4RKqIywXdLyu+ajyL1cCMw== 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=sPbFNsZLvdThwohuFoxuz7Dt+lLXspWabhIC+wYJaUY=; b=E56Hg9CrUVMUqnYrfhdcuJdAPhpsHpJLU5KGty7iQgpX5vgc+ENldplsHqUv227tTBDJSbBPGMNkk4TcacFqQiuHIOtLrMSxcVnkzlZ57vfkvxeaxEBwU7Mp4aNrFLgr0GmsSnO6Gh78TJONxCQ24tAJT2BvZEIv4hl8ueXBgQDOPgK/l6HC5wFH0Ib3f5aLjvwRoM6SJue8edoe3lEfWByIq3M6VC3bbcx59jKZtaLtJxD8sqdO/OKSIS+jCHKQNWk15ARHQo9voycRPHhZmp42smN3F/C8cRz78S/GN5U0Fv/O8YUUVAh+b/Jj14fRURPsOxIJ11IwYdgTFkcpJw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.60) smtp.rcpttodomain=st-md-mailman.stormreply.com smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sPbFNsZLvdThwohuFoxuz7Dt+lLXspWabhIC+wYJaUY=; b=e2k0TfPX7dFCVM8JS35fev6U9sAxhX/o4ItyzWYhyh/hr+BRjKswSuNpg2hfgmkBwvMDLjN4FcuYTj0PjtDO/LQEFnnUvUqIBZaItcHvrU4VUhaM8qcSzDTZbG0k7Alp9rHwDJ0XAURtzXzXfa980zK3W3bvTyjcgi43TGusflUrspLu9rfosRcNgZ7yXOOmEid+dOtHgAYuP2gBxEfeiQRfuxxhwEDrpbdbpDn11l0wSa+8GvSTR7Ej6tdC+xt1ov4V2tuVXKYDOCnQY+K2F+zzsHI0x3LY+27Eo69WLl47/i4+KMwmfe+IxclAzMPPk4Osfcrpbb27bitnaQ177g== Received: from OL1P279CA0043.NORP279.PROD.OUTLOOK.COM (2603:10a6:e10:14::12) by DU2PR10MB7741.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:49b::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.13; Wed, 23 Sep 2026 15:39:36 +0000 Received: from WA1PEPF000099CF.eurprd04.prod.outlook.com (2603:10a6:e10:14:cafe::31) by OL1P279CA0043.outlook.office365.com (2603:10a6:e10:14::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.451.14 via Frontend Transport; Wed, 23 Sep 2026 15:39:36 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.60) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.60 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.60; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.60) by WA1PEPF000099CF.mail.protection.outlook.com (10.167.242.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.8 via Frontend Transport; Wed, 23 Sep 2026 15:39:36 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpO365.st.com (10.250.44.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:45:25 +0200 Received: from localhost (10.252.7.7) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:39:35 +0200 From: Fabrice Gasnier Date: Wed, 23 Sep 2026 17:39:14 +0200 Subject: [PATCH v2 11/14] arm64: dts: st: add vrefint calibration on stm32mp25 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260923-adc-stm32mp25-v1-v2-11-46bc019537c6@foss.st.com> References: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> In-Reply-To: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , "Andy Shevchenko" , Rob Herring , "Krzysztof Kozlowski" , Conor Dooley , "Maxime Coquelin" , Alexandre Torgue CC: Marek Vasut , , , , , , Fabrice Gasnier , Patrice Chotard , Olivier Moysan X-Mailer: b4 0.16.0 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: WA1PEPF000099CF:EE_|DU2PR10MB7741:EE_ X-MS-Office365-Filtering-Correlation-Id: 8ff55950-a807-49f1-35a0-08df1988df55 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|376014|7416014|36860700016|23010399003|11063799006|10067099003|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: dJL008YgjX8QXxMFbq33BOMI2LjrAIaafyjC+EHVDUcm32WjyO5uJo9BNPtntxc3ul7RNiyv/J4Emm+wG1nRkCOADPyn7ux8xLcnlkbJ9tki4UyucIENN5OaoR8SLviws78DrCy0AlPhcOWhn9pVWvxw59//Ign0KmcSwZxSU4SujiNruhXJez+pyQNMp3RmG61zoGdOQVqT1LcwQRBEzh9yJy8PaOLpPv5QXP8/kK4AlrNnn0kVPC9/lQdjfvofAYMbQcXr+gqEHeTSvNHuk9QvuF0Xcx1lMGSn/yZxcngOtVR2HK85qXSxQfH1TA9hjabOicvp88nV7ZZ6n6OpEUHBH55e+7J64gScxeBuI7beRKKPzzysieM7+4ZIqgexeHywpi1uT6h7D7RvqGzJHuODK0S5WGqvbANSb0urI8RyZVjKS37cJttuR3AYP15e3boLpLQ4MbMFQjphkFat2l6JKO398N1GvI87FDDNhxa7exY0XpKr9tDVv/zsc/aDzt32C4ZYQ9CP4VWJQZ1lBLcQyn4No5E7iK5vNdZsrvUi4vnD2s1t0l4hsyMr0ecRD/zJihcdWHg8QLZhbHTDYQkar/Dbg7eBLmqGtAg1iqoyFAxpeiV9f7RKS7jcPk7wMpGNLjdjT1HYVOfcV4GGuCLNOrT3ibZ8gu5OOHDovKpnp8HwB+qRBjM+jypfjLoKYEgpUdvc3XB2ve9zOlwOZA== X-Forefront-Antispam-Report: CIP:164.130.1.60;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(82310400026)(1800799024)(376014)(7416014)(36860700016)(23010399003)(11063799006)(10067099003)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: z3aKlhCMDeHjnKoz1ieL6RSnqAAnsaJk1eTB4v3fNR2vcG8PlQX7weZPua3g0nNK06CJ1rvYax+gemvdP7/e0LT0q5rYOUftz66QF1Q6HK05xVJAZQVhP89sBqMI30s1cxIMyt11JAG8WH4Iod8LfkSXChVkOPCjTb4V2MSvowv7kgV4LZ7c+Mi82p1RBbSu/u1DYCGyxpFWdD1IGDzifTuoK2UPKyGNOb+4iu/mjRUhqQ5g6iX1/idu4IjEBlX+yPzIc7o8U7IG7cnnn4yB2mYuv6fcVeiix0m+CqKdDrhLwDc4TnyjbGGSfInzo2tE+qtRKXiP5ThtgzeQUSy55x+yberoM5VGQsD6dc160DBndFqBRctfkgS/mQrJAUSsc3+Do87bReNulQYvva/m97Fy6ch36BloV3ilXgJajCtAvkr7Tzrhu9g6L3+QuwNa X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 15:39:36.2004 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8ff55950-a807-49f1-35a0-08df1988df55 X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.60];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: WA1PEPF000099CF.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR10MB7741 From: Patrice Chotard Describe vrefint calibration cell to be retrieved by ADCs through bsec, on STM32MP25. Co-developed-by: Olivier Moysan Signed-off-by: Olivier Moysan Signed-off-by: Patrice Chotard Signed-off-by: Fabrice Gasnier --- arch/arm64/boot/dts/st/stm32mp251.dtsi | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm64/boot/dts/st/stm32mp251.dtsi b/arch/arm64/boot/dts/s= t/stm32mp251.dtsi index 9c63fdb5a885..82a8a6f1f881 100644 --- a/arch/arm64/boot/dts/st/stm32mp251.dtsi +++ b/arch/arm64/boot/dts/st/stm32mp251.dtsi @@ -1777,6 +1777,10 @@ part-number-otp@24 { reg =3D <0x24 0x4>; }; =20 + vrefint: vrefin-cal@1b8 { + reg =3D <0x1b8 0x2>; + }; + package-otp@1e8 { reg =3D <0x1e8 0x1>; bits =3D <0 3>; --=20 2.43.0 From nobody Thu Sep 24 13:43:36 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011036.outbound.protection.outlook.com [40.107.130.36]) (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 B6CF5556B92; Wed, 23 Sep 2026 15:39:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.36 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177984; cv=fail; b=mkN5zc5iU3WTblI6ZwPp6GQtidcsZ/83QPUJX9xVa84K+GVzCKQTWrk092pomo4FNDAOF/hvzLEN0ZJHrUSo8LNY1dZWMCQYjp/TyehaOXEC1CtPPh8cKP1JWK3PvlzJ/Jss0BLUkyLRnQS5HlcOdhZcBLuCgWaN3lletHyAz2s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177984; c=relaxed/simple; bh=ofv3T1N4qmCzu9rA/FMcqRp/pVU2nNvs3HqchL+FmH0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=NUR7q2fWLq2tJ6T3eN9XRYKMPTJ40ua6fnJ23LXJmx6rlWrK9NOInZ3QEWZdKjqTbeRyKPXnEK2T++0otquCL8DACFOTaDqJJlEYtlBEOgd5QC3Yx087uP3jJNyKcp6YBk8F911iaxEL18KE8Sj+m4u2NoBImyNaO5FP6fdMchE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=G7Brk5Ka; arc=fail smtp.client-ip=40.107.130.36 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="G7Brk5Ka" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jJS7YOoT0ACJURjdnxG/TgmiyiBeIUiD+hVxPlG8EEZt4gugWn0V3fPHxKuBsKil8SeWUr2pElhBLa04Xw/8z0TOAqsnKc54F3uPScGOLmDd6PA1DHKXGqmszsqTiNNZdgmFKNnJ8BFWrGl83Cc/fGkBc5VHYSCjSbJnqQCwLr+UuQ+ymh8QPy3IxQPvrFZWP7Vf5Bn2ZDpzWAnA95m069Mx+FNRwuSPAuqOSNWReskTvkAlpAbrMC360/P+6wfVCb3k2oM+LKn1bVvbx4qOhbBpPkzJLYI0g6cWSYWwxNHLqr531TnbaTPXUtrTPb4ccdIKcpYb3ViJJqa50AH72Q== 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=/jWPdQ1PQn7QYGRe4YmcAhnL6IV2b5nYkP8Ta9zUFmY=; b=nIU1ZWzl1pnsnVbqIL9DZPh40CllRNltmbOc18R5BJjyQ8hDGtE6iGF0AxXdleZPnGnUlLAi7oaQdvPDhAd1JvlJKwKN4zWboWy0jSlm1LXCgDWoLHLBvoJzoW96hJ4cWohVD4VefvnZ8GK6YrTbHs7PsqxDf9B4aw9zqHieFdSrYwqbfxMJwFO+UNQ9D1lYO/b9nZayYu4C1SV4UT6vI7i+LBJf0iLf0pL4zYUqXyeWmPH5Kx8X7HS2xCwXeaADifUQQ4wwGOG7pYCuMGG3XLlL5wtEaL1tITwAVtX85mTH2ttF7DG6Rw3dTzmfyKdS9QvQphQtNtDuCktDB39GWA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.59) smtp.rcpttodomain=st-md-mailman.stormreply.com smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/jWPdQ1PQn7QYGRe4YmcAhnL6IV2b5nYkP8Ta9zUFmY=; b=G7Brk5KauNRK+sIcQrUrgI7HbAMgc67TLgjJ6Jag3zOx3+UPkRpDyhn/qFT8VnM/kXGsFH++GHoJqGHKwFlIPg+VX1xsqshXhhDKVBANG9Ih7RIu2zVViHNbL5ndEu1m05gT1xWFNvzwp9exkRidCgOjV8yQR4L6eI6j/nD4YhqfOtpSt1qYTK/1FJJgSyKj/6HSaGeAFWe4J9XUO+j4g1tILAjv4dW3KGLc9tSGhASkbgGcnCkcqJHGLwM10o+3OSFJqB7symlKNfW724+eSd6d8ItM9E+WotvT+KsPWGncfk1bHEnj2mPdtLo8Sl7Whr8Xms2JzP0u90NutvAbVA== Received: from PA7P264CA0411.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:39b::6) by PAWPR10MB7270.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:102:2ec::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.14; Wed, 23 Sep 2026 15:39:37 +0000 Received: from MAD0EPF000008B0.eurprd04.prod.outlook.com (2603:10a6:102:39b:cafe::a5) by PA7P264CA0411.outlook.office365.com (2603:10a6:102:39b::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.451.16 via Frontend Transport; Wed, 23 Sep 2026 15:39:37 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.59) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.59 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.59; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.59) by MAD0EPF000008B0.mail.protection.outlook.com (10.167.241.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.8 via Frontend Transport; Wed, 23 Sep 2026 15:39:37 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpo365.st.com (10.250.44.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:46:05 +0200 Received: from localhost (10.252.7.7) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:39:36 +0200 From: Fabrice Gasnier Date: Wed, 23 Sep 2026 17:39:15 +0200 Subject: [PATCH v2 12/14] arm64: dts: st: add ADC nodes on stm32mp231 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260923-adc-stm32mp25-v1-v2-12-46bc019537c6@foss.st.com> References: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> In-Reply-To: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , "Andy Shevchenko" , Rob Herring , "Krzysztof Kozlowski" , Conor Dooley , "Maxime Coquelin" , Alexandre Torgue CC: Marek Vasut , , , , , , Fabrice Gasnier , Cheick Traore X-Mailer: b4 0.16.0 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MAD0EPF000008B0:EE_|PAWPR10MB7270:EE_ X-MS-Office365-Filtering-Correlation-Id: 0cb6d20b-b2de-41b9-c192-08df1988dfda X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|82310400026|36860700016|376014|7416014|23010399003|6133799003|18002099003|22082099003|11063799006|10067099003|56012099006; X-Microsoft-Antispam-Message-Info: /nZ+AMHUXGpyiFDFGpQzf79lWeK6PyCfWkPe4/ptHqyJlcRbvywocHal/v+W/vtzE9q9jq7ZSlIsmjRq5zpT/uV+75CWyvf1tLZZwkfpgA0GT13/R2/hQ1kVBqM9ZQGP9mtcGoE/jGoiqsXyIb40ac4ExVTJegZLFyQe5Hi6c0ZP4qpd4XUw3lbEeCJSJNGsA1kzTTVuJo+2GlZqV1BmKSnq4aScS47J6UK6PCRR8xTUEY5vWIY8QpGZ2YV9KirLQw6Nm7+Aga+M8UZ6u+KaKru0QAStPuwZgjnXo0BnjTDWR0lLedFRD7LmzbAvYEQxFg0puTqZu4EW4mGsbryKqWWLmDJhpk9R5V+WrjJfLCRqXUKWyjIrT5HwVtmkOc+zPDms9+srEce/7v2eR2cn2Ew1PZyy8sBeOP2eIw44Z+Li/fW5nf4rGfpeHvW12XCudIJmVyz5mRF4p0cSKKTjBPh2qt3bZ8NwIG6EsqnBGwcevUPZ/Q9EqynWKRi9PUjs8kyobYQnfG2PDPkBxn2NeE6dTF5aoDUiNJNHR0r82QtFKF/vzvfGDX79ptpTrzgUYGG18wdTCwK0JI+4gODJ9k8AGtCNaRqyA0gnb26dDXP+Jl8XWvv9ChlQl6pU33T1KCH5o1PH/vJE5Ux6hI1RqDjDv0yizqxX4ZmJ38pS7HZnXuBhtSsEkZaBetL633o1YvEEsPrXlACvhk6FjZllrA== X-Forefront-Antispam-Report: CIP:164.130.1.59;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(7416014)(23010399003)(6133799003)(18002099003)(22082099003)(11063799006)(10067099003)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 28zQwGKS+56Gcx0477uc0DJcCl49XQ5St3w7x0p+/GTbzxJGc6Uv7jGt2dcuQiGcrzxlsJvF5jf0bZOlGTSQZxwRQPNY/gwcLcq0qHKyIQLpmOghXNLmu/NDm0Q0QNS516vnVcgO5mhnKSC7WTwccV5TMuIMarNy7vUJ4PwIa+58YuJEMLOn8TpxxM3s/4ouyW9wMECtoZPto+P6KY67/BRFZ0ZwgEaidUYrnbqo0VHSJelcsJiGnGxCy5JrF8/xkA6fXMXPUgT437/a/CFlmAnx6VI2sKRGA+X+FKLLeYj98Ci9WuVqzw/9tM0to48vR9Tufjdd4wnJ09InGFeflupfQEl2OChC5vbVn6Y6nVfjl97ItOUxybkSGIiJiw1RI0sWnaQyMOBE/61KoSYo/pWnaRRoWXd/ovA2vUzo8uVXoAPvdv9/uhE03rnS/kKf X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 15:39:37.0632 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0cb6d20b-b2de-41b9-c192-08df1988dfda X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.59];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: MAD0EPF000008B0.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR10MB7270 From: Cheick Traore Add analog-to-digital converter support on STM32MP23 SoC. It has 3 ADCs, split into two blocks: - ADC1 & ADC2 are tightly coupled. - ADC3 is managed independently. Define internal voltage channels in the SOC dtsi file, exception made of vbat/4 channel (to avoid undesired load on it, in case no conversion is needed on this channel). Choice is let to board implementation (via DT) to define it. Signed-off-by: Cheick Traore Signed-off-by: Fabrice Gasnier --- Changes in v2: - Adopt dedicated compatible for each child ADC, drop "st,adc-trigger-sel" - Drop fallback generic match (serve no purpose) --- arch/arm64/boot/dts/st/stm32mp231.dtsi | 112 +++++++++++++++++++++++++++++= ++++ 1 file changed, 112 insertions(+) diff --git a/arch/arm64/boot/dts/st/stm32mp231.dtsi b/arch/arm64/boot/dts/s= t/stm32mp231.dtsi index 938d6f0098ac..578ab9d4cffc 100644 --- a/arch/arm64/boot/dts/st/stm32mp231.dtsi +++ b/arch/arm64/boot/dts/st/stm32mp231.dtsi @@ -646,6 +646,118 @@ uart7: serial@40370000 { status =3D "disabled"; }; =20 + adc_12: adc@404e0000 { + compatible =3D "st,stm32mp23-adc-core"; + reg =3D <0x404e0000 0x400>; + interrupts =3D , + ; + clocks =3D <&rcc CK_KER_ADC12>; + clock-names =3D "adc"; + interrupt-controller; + #interrupt-cells =3D <1>; + #address-cells =3D <1>; + #size-cells =3D <0>; + access-controllers =3D <&rifsc 58>; + power-domains =3D <&cluster_pd>; + status =3D "disabled"; + + adc1: adc@0 { + compatible =3D "st,stm32mp23-adc1"; + reg =3D <0x0>; + interrupt-parent =3D <&adc_12>; + interrupts =3D <0>; + dmas =3D <&hpdma 81 0x20 0x12>; + dma-names =3D "rx"; + #io-channel-cells =3D <1>; + #address-cells =3D <1>; + #size-cells =3D <0>; + nvmem-cells =3D <&vrefint>; + nvmem-cell-names =3D "vrefint"; + status =3D "disabled"; + channel@14 { + reg =3D <14>; + label =3D "vrefint"; + }; + }; + + adc2: adc@100 { + compatible =3D "st,stm32mp23-adc2"; + reg =3D <0x100>; + interrupt-parent =3D <&adc_12>; + interrupts =3D <1>; + dmas =3D <&hpdma 82 0x20 0x12>; + dma-names =3D "rx"; + #io-channel-cells =3D <1>; + #address-cells =3D <1>; + #size-cells =3D <0>; + nvmem-cells =3D <&vrefint>; + nvmem-cell-names =3D "vrefint"; + status =3D "disabled"; + channel@14 { + reg =3D <14>; + label =3D "vrefint"; + }; + channel@15 { + reg =3D <15>; + label =3D "vddcore"; + }; + channel@17 { + reg =3D <17>; + label =3D "vddcpu"; + }; + channel@18 { + reg =3D <18>; + label =3D "vddgpu"; + }; + }; + }; + + adc_3: adc@404f0000 { + compatible =3D "st,stm32mp23-adc-core"; + reg =3D <0x404f0000 0x400>; + interrupts =3D ; + clocks =3D <&rcc CK_KER_ADC3>; + clock-names =3D "adc"; + interrupt-controller; + #interrupt-cells =3D <1>; + #address-cells =3D <1>; + #size-cells =3D <0>; + access-controllers =3D <&rifsc 59>; + power-domains =3D <&cluster_pd>; + status =3D "disabled"; + + adc3: adc@0 { + compatible =3D "st,stm32mp23-adc3"; + reg =3D <0x0>; + interrupt-parent =3D <&adc_3>; + interrupts =3D <0>; + dmas =3D <&hpdma 83 0x20 0x12>; + dma-names =3D "rx"; + #io-channel-cells =3D <1>; + #address-cells =3D <1>; + #size-cells =3D <0>; + nvmem-cells =3D <&vrefint>; + nvmem-cell-names =3D "vrefint"; + status =3D "disabled"; + channel@14 { + reg =3D <14>; + label =3D "vrefint"; + }; + channel@15 { + reg =3D <15>; + label =3D "vddcore"; + }; + channel@17 { + reg =3D <17>; + label =3D "vddcpu"; + }; + channel@18 { + reg =3D <18>; + label =3D "vddgpu"; + }; + }; + }; + rng: rng@42020000 { compatible =3D "st,stm32mp25-rng"; reg =3D <0x42020000 0x400>; --=20 2.43.0 From nobody Thu Sep 24 13:43:36 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013011.outbound.protection.outlook.com [52.101.72.11]) (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 3473E566C76; Wed, 23 Sep 2026 15:39:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.11 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177989; cv=fail; b=WMhTCk72Ar8uPp0xGO+ZTnZfVmAgWRBPcezx+OkKsfCqivvZMnhqp/G5mZ7kq3lz0O52zDskcksA1mclvzQSkKAv9IxjtWvBHg5P5AZMm6daJEUND28TGnLDQhBM9nf+/nFMm3aeBbYW1vijaTT+63bebxqGKRNpCT7N7Rcbh8w= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177989; c=relaxed/simple; bh=Qpp+gf32mxN4HdhHyGkGqixFnM1td+e5+S+xFzGhEl4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=qchlEyI7331zFlHv5KJvt1QCtry13e05Bht6erLz/4kp/FGKiKPLFePW6u4XMitaQBK46Pg74Q/DBpyTNbF/y9FDJfwVCftLIhQq+9Tp00d1mgMpRq3haUJyi9gMpCazQzzVip+RswT5KdwU4C7nBKiw7iYLpuxeJwTD5EetetA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=m7tX8DgY; arc=fail smtp.client-ip=52.101.72.11 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="m7tX8DgY" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=X2/WvVj19nJ0RvgF8BgHAm//zv12NUilbbsz0N+j3pVQPtB0udF+1Rocbi5cBq52D0DJiqppXuYCv2MqBGMS7yyAyssW+f5e0cg1p8R3wERwbWSvJjQoVuKnG+00uVZiK/wYstKUyPYh+b97RLPSxSTfDLBwS+9XOvpzLT5WlullPYTRdbWXlitfewOJk3BzUQfGjs7Mn4DT8M1XqpVgQpOQ7o1+fT9zsXjm5fYh9I74tt4zzcyDgEFKLnThtx784Gl1yjFZg62t+c7bk4QcbRgWewzk5eYFeaaXhY/VX+ZLxy1GnMtPry8S6su8Pq3C6FO6Kckvp23OhNw4izEwrw== 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=Vdh1K9iQ87c6paARyNmLvG+s0MpVfGWxuBQK9qRXNR4=; b=rIw9Ii1aNLuqQNATFpADhTABle2k5J9HX3lnPjdg4fwUnsIUE4VUMLT32MVOvMfwAqpwNhZD3YfPERN0SHYGxl84lrMwKR1gqB5XH6FGmDE2/BdpIBI+IfhfDfw1dHznTwvm4gufYjsy5rBLzfKdIreyNhUzd1kthfLcGKzEV8sy72jGLFSeYcDvn53lnrtxeOqqJ+OkOp6+aBIOh4R8DIulpI6LYjJWu8DiiwPabBp7bZqjo0EJ/UxVoJzBPAXy3C0aVLnpkTZcLEN3UIESkblX/kNK4IRn+UHGnazpttlql3VgWlZ7hQy9qEO5WW9a/XVaFeqcqWtovaXBE8Nt7g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.60) smtp.rcpttodomain=st-md-mailman.stormreply.com smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Vdh1K9iQ87c6paARyNmLvG+s0MpVfGWxuBQK9qRXNR4=; b=m7tX8DgYG7IbfGUmY+xx5Fj4GVgVTMhpoGafgjpqFefDSOQvdxQaTY6nJm+YBoa/0cR9moZWhPs4lShydXaWqm6QZYBRlXj8HSrSCNEBHUGaaTmMF8HdLQFbRywi0c9CU+rVlI4F1XKXj9ehmEljI2i37IDvMpIxhOuDj8/rZb7ljMD4iHYgJLnMqpfwotWMDBjJTVVTOMEpgKMtm99PLEr480ybXPNjD6/piETKKJvgE4ETgY06Jgon9d0yhDI7v5eFRY1umbuv0SadP7G51ZAlEZ85b5/XpandZWZCpc3Bbo7QG25J8d1F8S6mQIZwKi29sYTT9Uj3fP/LAwHNOw== Received: from WA2PEPF000008AD.POLP291.PROD.OUTLOOK.COM (2603:10a6:1d8::647) by DU4PR10MB9589.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:628::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.14; Wed, 23 Sep 2026 15:39:38 +0000 Received: from WA1PEPF000099D3.eurprd04.prod.outlook.com (2603:10a6:1d8::16b) by WA2PEPF000008AD.outlook.office365.com (2603:10a6:1d8::647) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.382.12 via Frontend Transport; Wed, 23 Sep 2026 15:39:38 +0000 X-MS-Exchange-Authentication-Results: mx.microsoft.com 1; spf=fail (sender IP is 164.130.1.60) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.60 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.60; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.60) by WA1PEPF000099D3.mail.protection.outlook.com (10.167.242.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.8 via Frontend Transport; Wed, 23 Sep 2026 15:39:37 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpO365.st.com (10.250.44.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:45:27 +0200 Received: from localhost (10.252.7.7) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:39:36 +0200 From: Fabrice Gasnier Date: Wed, 23 Sep 2026 17:39:16 +0200 Subject: [PATCH v2 13/14] arm64: dts: st: add ADC nodes on stm32mp251 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260923-adc-stm32mp25-v1-v2-13-46bc019537c6@foss.st.com> References: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> In-Reply-To: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , "Andy Shevchenko" , Rob Herring , "Krzysztof Kozlowski" , Conor Dooley , "Maxime Coquelin" , Alexandre Torgue CC: Marek Vasut , , , , , , Fabrice Gasnier X-Mailer: b4 0.16.0 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: WA1PEPF000099D3:EE_|DU4PR10MB9589:EE_ X-MS-Office365-Filtering-Correlation-Id: 099cde1b-1988-41d2-2616-08df1988e054 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|7416014|82310400026|36860700016|376014|1800799024|10067099003|11063799006|56012099006|6133799003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: dH+h+/p7XG5USWiMLt2ODsMVcH99br+9+AT7aRrZ+eagRUqYzV5jNXo67FnAfGdkbzXZaAOe3dd0pp5zHojwJvbirvyPgwUwNMc+jCGq9sDm6zuT0NbBiFqrlZx1mpDpsD8aEVcd3+KU05KmcjYgYVdBzvnGeyMdV8rhkqLbA0WeSlX+02UCLHllcjxFLaFk/yQuBPUEUJHk5/o/8+UzEMVfFVt86ESpSIeoYNkhCkcrGG6vj8Zc9c8ThefXGCB+ev1fdR52OyZiWkB/47IUv2YPrW6cwmBYDsilU54HBnVf5FYk4dT2ywgGCUmPyoRvEWK7wgb7+sVU+7LaGFrr7h0TaIj4iLTXRUdUGWLhsXt93qrav8YYyD3yWRFGfDYKGrsYyrJkvukNc6y7dEYEERml87CLlFfoPbMdgjjw/dRGSLV+eyG9/zmHVvQR2sZZyjPHQFX0xm46/COpl3IWC8TRfMgOztVfqoU0/9xaEjMgzuIawBe8U9SvmlBFlqjPySdyYGmBnOQg933h0QRaANmpzncvGLYpVKCdAxVQq43Jcyc/ybR63Vd6DVQkC3WA7S/ZxgLDNzn7plyEiC8ecsNuv3stHiiRGTIrtSiL9Eu5YePGNs0iAlgEJb+XlOzMAI/dHFDqsXkojZg16i50useeQrmfA4ekqX6mY8Ip3xVxv3C7Ykywm90ClGkoFRU4kQBnM7DFJpNV7hc1DtBbew== X-Forefront-Antispam-Report: CIP:164.130.1.60;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(23010399003)(7416014)(82310400026)(36860700016)(376014)(1800799024)(10067099003)(11063799006)(56012099006)(6133799003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: c4uSYqjtuUnymb6YIpD26GJ46qXUzSIAF0FzRHobS9r1xvUsAsrrc9r6cwwOIF56U15ro1hgDNWSQEoTkcIn9HWS8G/tQesv/vUgHITo1qWyd6CVLZdJhDVmgQynhts3hYj+XQu4VA9ZJGfrs70CtPbd5IVhq0qL7kCvpC7YpENATW4sib9Lzc0echENQBiMSRPN9w/rqG8KNCzpt/DMLemDd6rW1LgItIHRqQzNE1scGOdCtR1UhBS0n4Q8j4qjKZSY3YqdQzCyT/mnXsFoE7R+Ilmk8HHcvkFLHRjEZw9Z0Bqth7wE+CVrCBltniMD9B636eVAI6JJYo1iZNjjws7XSwF2gTE/fuyXRfftTSQYnK1vFtykrWL39GjuOQlEhxu4wXP4seTi5FswLRrBJep0HU17eMT1+Ele8U1LfwHIvwr/3VS9tvxgScRryxhU X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 15:39:37.8634 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 099cde1b-1988-41d2-2616-08df1988e054 X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.60];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: WA1PEPF000099D3.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR10MB9589 Add analog-to-digital converter support on STM32MP25 SoC. It has 3 ADCs, split into two blocks: - ADC1 and ADC2 are tightly coupled. - ADC3 is managed independently. Define internal voltage channels in the SOC dtsi file, exception made of vbat/4 channel (to avoid undesired load on it, in case no conversion is needed on this channel). Choice is let to board implementation (via DT) to define it. Signed-off-by: Fabrice Gasnier --- Changes in v2: - Adopt dedicated compatible for each child ADC, drop "st,adc-trigger-sel" - Drop fallback generic match (serve no purpose) --- arch/arm64/boot/dts/st/stm32mp251.dtsi | 112 +++++++++++++++++++++++++++++= ++++ 1 file changed, 112 insertions(+) diff --git a/arch/arm64/boot/dts/st/stm32mp251.dtsi b/arch/arm64/boot/dts/s= t/stm32mp251.dtsi index 82a8a6f1f881..5834755194a1 100644 --- a/arch/arm64/boot/dts/st/stm32mp251.dtsi +++ b/arch/arm64/boot/dts/st/stm32mp251.dtsi @@ -1450,6 +1450,118 @@ uart8: serial@40380000 { status =3D "disabled"; }; =20 + adc_12: adc@404e0000 { + compatible =3D "st,stm32mp25-adc-core"; + reg =3D <0x404e0000 0x400>; + interrupts =3D , + ; + clocks =3D <&rcc CK_KER_ADC12>; + clock-names =3D "adc"; + interrupt-controller; + #interrupt-cells =3D <1>; + #address-cells =3D <1>; + #size-cells =3D <0>; + power-domains =3D <&CLUSTER_PD>; + access-controllers =3D <&rifsc 58>; + status =3D "disabled"; + + adc1: adc@0 { + compatible =3D "st,stm32mp25-adc1"; + reg =3D <0x0>; + interrupt-parent =3D <&adc_12>; + interrupts =3D <0>; + dmas =3D <&hpdma 81 0x20 0x12>; + dma-names =3D "rx"; + #io-channel-cells =3D <1>; + #address-cells =3D <1>; + #size-cells =3D <0>; + nvmem-cells =3D <&vrefint>; + nvmem-cell-names =3D "vrefint"; + status =3D "disabled"; + channel@14 { + reg =3D <14>; + label =3D "vrefint"; + }; + }; + + adc2: adc@100 { + compatible =3D "st,stm32mp25-adc2"; + reg =3D <0x100>; + interrupt-parent =3D <&adc_12>; + interrupts =3D <1>; + dmas =3D <&hpdma 82 0x20 0x12>; + dma-names =3D "rx"; + #io-channel-cells =3D <1>; + #address-cells =3D <1>; + #size-cells =3D <0>; + nvmem-cells =3D <&vrefint>; + nvmem-cell-names =3D "vrefint"; + status =3D "disabled"; + channel@14 { + reg =3D <14>; + label =3D "vrefint"; + }; + channel@15 { + reg =3D <15>; + label =3D "vddcore"; + }; + channel@17 { + reg =3D <17>; + label =3D "vddcpu"; + }; + channel@18 { + reg =3D <18>; + label =3D "vddgpu"; + }; + }; + }; + + adc_3: adc@404f0000 { + compatible =3D "st,stm32mp25-adc-core"; + reg =3D <0x404f0000 0x400>; + interrupts =3D ; + clocks =3D <&rcc CK_KER_ADC3>; + clock-names =3D "adc"; + interrupt-controller; + #interrupt-cells =3D <1>; + #address-cells =3D <1>; + #size-cells =3D <0>; + access-controllers =3D <&rifsc 59>; + power-domains =3D <&CLUSTER_PD>; + status =3D "disabled"; + + adc3: adc@0 { + compatible =3D "st,stm32mp25-adc3"; + reg =3D <0x0>; + interrupt-parent =3D <&adc_3>; + interrupts =3D <0>; + dmas =3D <&hpdma 83 0x20 0x12>; + dma-names =3D "rx"; + #io-channel-cells =3D <1>; + #address-cells =3D <1>; + #size-cells =3D <0>; + nvmem-cells =3D <&vrefint>; + nvmem-cell-names =3D "vrefint"; + status =3D "disabled"; + channel@14 { + reg =3D <14>; + label =3D "vrefint"; + }; + channel@15 { + reg =3D <15>; + label =3D "vddcore"; + }; + channel@17 { + reg =3D <17>; + label =3D "vddcpu"; + }; + channel@18 { + reg =3D <18>; + label =3D "vddgpu"; + }; + }; + }; + rng: rng@42020000 { compatible =3D "st,stm32mp25-rng"; reg =3D <0x42020000 0x400>; --=20 2.43.0 From nobody Thu Sep 24 13:43:36 2026 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013036.outbound.protection.outlook.com [40.107.162.36]) (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 DF1C5560AD7; Wed, 23 Sep 2026 15:39:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.36 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177987; cv=fail; b=IzTuaeoLLWN/qfl/lM6vx9I8FqVbA5JzwxVdSfyHFr1NbVt09PgCudHkMxEWg2+ZjWpQCpqCjX7Cy+2GRVpaot+Nh/5aGxy67cs2hfngNZsN4AG4/X5fdswoRdOHx/2B1EhMaqp2DlnlkfSvN0qGAXTVRcVN5k1kvxJBuNAvFVw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790177987; c=relaxed/simple; bh=CxHVTq3S+bpRHL9tJFLfNttBsA0uvwausnCoWJU8NRs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-ID:References: In-Reply-To:To:CC; b=W0S/pvtOlKBBYXmCGpngXXXOG8/gP3YHxgHBSWJPxPqnBDEC1GLDZkD2ZA/LxnxUDKV4W0SifJfaYXCX4X1cIYb1TTwIwfZe9Rlh+u7nhZYo0UZ39M70eEI6DU4/OYbFdvLvvwqulHll2IGKX75Jb6mWnQsnHaOnA5lM7mmi7pw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com; spf=pass smtp.mailfrom=foss.st.com; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b=GQ7AEuXl; arc=fail smtp.client-ip=40.107.162.36 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foss.st.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foss.st.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=foss.st.com header.i=@foss.st.com header.b="GQ7AEuXl" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GY21q/svm7FeP+ZWAOOvjfZoG8vkwLNW2xAyBFH1h5nx7ifMVC0E1/vF2GYj9Dc38gZP5RmEzjQVusARBUkTZ4Jst/I9HYPi9RN21jMNYQKtVpY3orNKA0A8VeVLnYLEZIXjRq+r0gyRfaJMjzFvegaL72my31VXnjufcfVLwPJLMQix27670Cm303VXHQq46JrpoUFf9vzd2nCCJV6MOX1N6vxSkHYDJWNvWsV/HJpBnOngx6rM5DfQ6sVgxv/GpTzjRwfZzn49xVFD1r1p/40DRUuumZU6zbzGeyQkqetbADHhjjV0x7TcxwYzFSN2/eKKdJVCZUM5TNvbafgQOA== 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=AAE1GuU97+6bxe9iXtFIqCAC1vZBHlYiI40pmMJ5IgM=; b=MOtAuBsDZPhiUxikQn+ur8yyQp9mb7jjpWyXKs6b4ob75CUYpuEyXlqDYQKeyqlH1l0lUUGuUksBWleNKfmruQ/+fQT7QRMUKqFYtzXCTyGzp07ISL24NYCSbO0ymsLCPs5lIeCU8mzhJ4z1V6Cr5G/LJK7NC0WS1wBRFKOqu9LRWQgAk600zRv/nexf/WuTMqGo3/GQCLbYxEPvHe02U81ye/LC0unn9x7dLANq5zXSj35xLEIt9fHQ7xgUGJ4yRkX17TBHs4M9mHE/JSD4oBfG08gMGq5SmGVhIo34WINRqWEUT9hLTVsiA504MN8TSnHsMz6EkCWyu86FQxp04g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 164.130.1.59) smtp.rcpttodomain=st-md-mailman.stormreply.com smtp.mailfrom=foss.st.com; dmarc=fail (p=none sp=none pct=100) action=none header.from=foss.st.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foss.st.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AAE1GuU97+6bxe9iXtFIqCAC1vZBHlYiI40pmMJ5IgM=; b=GQ7AEuXl4d0lFcUgXJt0jNZNT1pmaftgVijmfqx5GJTIkapF+pAlGl6X0p7RdcyXoYrmaNwbNBKfp0oxt429IpYCw7pDWJ88f0wK3wcMQrWQy84J5ORs57Oyg32ieSH23d9to2BAbtzsNxVKMXKXG/suAOz2idWnPq3DYitsMwGKcMTEaonrVei1qF1crfyTPpe6D3YjSCRDMY35vhRgPDbTP4YiCugrSxgFyoWvP/2tSMBu9bBid2fSPa1s6s8AsI4QTQhNZ49RwVjB1evw5nssTGeJtvX3CVMM374dl8q1aWkSlyiuRtlsRTejGNC9coOSr8Lyuv+vWDSxeGhEPA== Received: from PA7P264CA0204.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:36d::7) by DU0PR10MB5775.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:10:31a::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.14; Wed, 23 Sep 2026 15:39:39 +0000 Received: from MAD0EPF000008B1.eurprd04.prod.outlook.com (2603:10a6:102:36d:cafe::84) by PA7P264CA0204.outlook.office365.com (2603:10a6:102:36d::7) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.451.16 via Frontend Transport; Wed, 23 Sep 2026 15:39:38 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 164.130.1.59) smtp.mailfrom=foss.st.com; dkim=none (message not signed) header.d=none;dmarc=fail action=none header.from=foss.st.com; Received-SPF: Fail (protection.outlook.com: domain of foss.st.com does not designate 164.130.1.59 as permitted sender) receiver=protection.outlook.com; client-ip=164.130.1.59; helo=smtpO365.st.com; Received: from smtpO365.st.com (164.130.1.59) by MAD0EPF000008B1.mail.protection.outlook.com (10.167.241.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.8 via Frontend Transport; Wed, 23 Sep 2026 15:39:38 +0000 Received: from STKDAG1NODE2.st.com (10.75.128.133) by smtpo365.st.com (10.250.44.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:46:06 +0200 Received: from localhost (10.252.7.7) by STKDAG1NODE2.st.com (10.75.128.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.43; Wed, 23 Sep 2026 17:39:37 +0200 From: Fabrice Gasnier Date: Wed, 23 Sep 2026 17:39:17 +0200 Subject: [PATCH v2 14/14] arm64: dts: st: add ADC support on stm32mp257f-ev1 board Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-ID: <20260923-adc-stm32mp25-v1-v2-14-46bc019537c6@foss.st.com> References: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> In-Reply-To: <20260923-adc-stm32mp25-v1-v2-0-46bc019537c6@foss.st.com> To: Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , "Andy Shevchenko" , Rob Herring , "Krzysztof Kozlowski" , Conor Dooley , "Maxime Coquelin" , Alexandre Torgue CC: Marek Vasut , , , , , , Fabrice Gasnier X-Mailer: b4 0.16.0 X-ClientProxiedBy: STKCAS1NODE1.st.com (10.75.128.134) To STKDAG1NODE2.st.com (10.75.128.133) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MAD0EPF000008B1:EE_|DU0PR10MB5775:EE_ X-MS-Office365-Filtering-Correlation-Id: 04a9e11d-b816-445a-b356-08df1988e0d2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|376014|7416014|1800799024|82310400026|36860700016|3023799007|6133799003|10067099003|56012099006|11063799006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: GK5byvWnuylWf+1W0n2piHGWcYv4or774VD8/hzWTXbwf3sxyGvRf9U+oCIpuokkFMNjyqNM6ia2m38U1WYS6tcbD2D7SlLQ66k3ZlTGEwxOm8Hj/7XOM085lIYchpmia4H5tVTS6XFQjeXVSmDLecEYYNgeKH0SG3npVPemnFQ/UP6Y/j9gIk7zFO5E+n91wZHxe84itFE/8UdVmFrzAvGG6fby6O8Ogd50qoqDaPoxhSii9shcvR9WuCWdxdNr4MROF4A4YJ/qBmN4svalhh2LbCMMy7p/yv5vn0f1NaJ7M90N/T5BT0aljr/hY5sjc6G1SKFfkPk7VC80wfy6G8Y6VN3yhDBSxhe1tPAvH6N/Zlsomp1TfIC4HUmUgdjdUx84943n7kNDDYoz/lJzZ2DWg3adLNyjV3J8zqsMbXVjNH8aHm3ccPi1DPviYvMQFNsXle96ompOyvSxe9G13IvLQmG6g9PEUY6r45uvVsmm+nYve50N1Hyoh/4PvL/R7sH3Fq5GT9/hHGGV4SL1WXJHzmR+m5qKjQwk2h8h8YfqHRx32p3IxNI80i9bioi0lzHofmTuCXf2B4rU+FWZ6ThziwhDICAxcVZJxVCk+fDK9ox5lRJG1DSa+1/FFI/saTMaVOO4K/3U4EYfKdCgu6bI8JaxuSxtb7ZowtXeLLSc+me89VmEWGDEwetkxwBsoljaHxL1fUNzkwcgHfTZWQ== X-Forefront-Antispam-Report: CIP:164.130.1.59;CTRY:IT;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:smtpO365.st.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(23010399003)(376014)(7416014)(1800799024)(82310400026)(36860700016)(3023799007)(6133799003)(10067099003)(56012099006)(11063799006)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: o84CbYKsUOdFyob72BsQxkVuRqcH+wCXTb5B0Jn4C3BZR1wKVnxBkWM6p5yeu09E7YZiioWh0KzJ172XcC60cixYDeLf8n2Y/5MDbDJLPFOeYFq7SSUQfEgRpkLdx8Dy40+jk5Tju9OyQUP0Bnn1+1n6Og2BujlNrjBs+7zAGF4Z7F1FM9oTJwwyPP6hQl2N7kbAkn0GaGQAsztj5E0GSQpWbTrC9C8ez/2iu8Jm5ARoZiq+VWR1nPxvdmuIDWxqdGFTfcGF2aGjJwNmmAokilzz1+9oACTCD0IPrsvHGYEf7utSsIZZw85ixSMYiu+t+mYMnf9amL+/GFEKgNrPIib5r7jbkmqwX4pf91mBYvH/fCXVMS8uSnqy2KDhA9rb8dT58R7azz0zrFVA3e20HPCGjdutmBljnNGlSIYPAEc6eR3rb4b7JRK0favh40kD X-OriginatorOrg: foss.st.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2026 15:39:38.6802 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 04a9e11d-b816-445a-b356-08df1988e0d2 X-MS-Exchange-CrossTenant-Id: 75e027c9-20d5-47d5-b82f-77d7cd041e8f X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=75e027c9-20d5-47d5-b82f-77d7cd041e8f;Ip=[164.130.1.59];Helo=[smtpO365.st.com] X-MS-Exchange-CrossTenant-AuthSource: MAD0EPF000008B1.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR10MB5775 Add ADC support on stm32mp257f-ev1 board. ANA0 dedicated pin is wired on mikroBUS connector, through a resistor divided and operational amplifier. Configure adc1 channel0, and voltage divider in the DT. Keep it disabled by default, to allow ADC to be used freely for other purpose. --> | 470K | -+-- > | OpAmp (gain =3D 1) | --> ANA0 (to ADC1, ADC2 or ADC3) | v | 560K | | v --- GND Signed-off-by: Fabrice Gasnier --- arch/arm64/boot/dts/st/stm32mp257f-ev1.dts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts b/arch/arm64/boot/d= ts/st/stm32mp257f-ev1.dts index b5db62a0a550..ed61ff70c0de 100644 --- a/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts +++ b/arch/arm64/boot/dts/st/stm32mp257f-ev1.dts @@ -160,6 +160,28 @@ mm_ospi1: mm-ospi@60000000 { no-map; }; }; + + vdiv_ana0: voltage-divider-ana0 { + compatible =3D "voltage-divider"; + io-channels =3D <&adc1 0>; + output-ohms =3D <560000>; + full-ohms =3D <1030000>; + status =3D "disabled"; + }; +}; + +&adc_12 { + /* Don't need a pinctrl for ANA0 dedicated pin e.g. Channel@0 */ + vdda-supply =3D <&scmi_vdda18adc>; + vref-supply =3D <&scmi_v1v8>; + status =3D "disabled"; + adc1: adc@0 { + status =3D "okay"; + channel@0 { + reg =3D <0>; + st,min-sample-time-ns =3D <400>; + }; + }; }; =20 &arm_wdt { --=20 2.43.0