From nobody Sat Sep 26 23:04:27 2026 Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11023120.outbound.protection.outlook.com [40.93.196.120]) (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 24C3A2652B2; Fri, 28 Aug 2026 12:28:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.196.120 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787920141; cv=fail; b=shfddyVApj9HSng59YJBb+Sojs08e5ZSCr+dqZkJgiAzgZiEue9NJaMTTxX5jJcTLZnBXQ3OBdqUogOsacmIMJ31y6PqYHUfjK5QJwh9XGFfpr4GLTb49z/iTpacSu5eZYaAFWUe08ArQyb5hA59dJyOTAFVgYR0KpPbhdMqBHI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787920141; c=relaxed/simple; bh=vkAKsJ2m95gzrXwsGVTAt+RuWciSLhwK1Ha1FjbN7G8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LVmnbhw/6wpR6vMJhJjDu9NnCaGTAZo9dPllFYzfylu4Qre5E/nMF6lsVxgD0CXs989fU4AbExJETAtdgL4HJ1CKtmTRlKu4VXALpKp1nCzG8jol+XisaZ4HTV7k0KkGR5nI3IJ375ydPxEU6E8jFp8wPHcK5BHSBS2mifH5i0U= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=axiado.com; spf=pass smtp.mailfrom=axiado.com; dkim=pass (2048-bit key) header.d=axiado.com header.i=@axiado.com header.b=vJCVNBk5; arc=fail smtp.client-ip=40.93.196.120 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=axiado.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=axiado.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=axiado.com header.i=@axiado.com header.b="vJCVNBk5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BqazEviKgo2b/tsASk4IvI2zBdprxeE8GzjJskJnG9lepIm6x+IUyjMufQeAS78xaSnVhB0rL/AjO0qBnI6FGMANuF1jNF5Bw8jI7brbpz2vUyhAhi4562BacjvYD4nv1uBqora1Us5knZtkyQE+aJwXdKpNkauNsr/r7d6XB68z9bmJ7y3S1jgsRK/+y9OgxeuELyZGFdJZ7/cXDVshTS/VLhjVWPKPYKNVyhRt3ydt75qZg7p1OBUA9QvLznGlWMw/gA+7qc61vd7dezMighhzdFgvtD8n0rblc4ex3AqrleUT+GrUn1Le71cj9i1FKhk8KzzFJltx+2zMr3pGdQ== 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=e+52g/0eepX9Ma7LUQ65DCe5CMz6aX+KN5W9QaXaWHo=; b=qrXauXKH0KC3DipsL9vOc2DGPvfdLzJK/ByfQmrYasyasGbLi2HV+9PalPBjtN+wYSvcGohgOAghk7oxk7nOuO1g8+PPps+FHGJz/FtWXKH2TjKgeqGEqeuGoSM+6qaB8XcKLxjk4GKqRtdmcHE/hBeMzHGa50P4qO/MpeALe2yO0FDYJQkoB80/hMA0Yks1hHqZl3HQGkaWhu9Hc3qxJHKfuKdHNm69vwaa0NoB4CGVtGSNYt/WVbDeiODxcL0g6arUJ5NOArT2ktNn/SSQloaaSJT8tGIuHxXQc29Jup7BzUUHvkDjVietde7F9SyFAoeAX8/w56O6TZw8jaxoxQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 64.62.143.114) smtp.rcpttodomain=analog.com smtp.mailfrom=axiado.com; dmarc=none action=none header.from=axiado.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=axiado.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=e+52g/0eepX9Ma7LUQ65DCe5CMz6aX+KN5W9QaXaWHo=; b=vJCVNBk55yO03lzFcJ+8gHJV7aquKyLEhlDoSVnZXKdVdamZIvaqMMzkaiIW3krjFyJTdpLcTCQ1UBV2cwTvxGRsxy8OuEgap2CbiCu8ddxMMpay1xuqPHHNBqnVZqgC2hkn0WRGowdfCcdvh+qdeKJ7oLWjZ2O7sCdUQ5ObP+PdhzSsZ0Tw8r0IwpYri7wZ1tcpXRAsHFD0uB2/fUWwhPS7Ke/hY4QK9mmd3rNcquo+0XQy6iSpedceVA8o3l0rvQIlfeFTOovlM75Xjun8bLPBLgIprKOaipZE76u90yCupPXyZUNfGZiy1pI/jvolYHkk++C4v1goFKZgpOQmLQ== Received: from BN9PR03CA0522.namprd03.prod.outlook.com (2603:10b6:408:131::17) by LV3PR18MB5664.namprd18.prod.outlook.com (2603:10b6:408:19d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.10; Fri, 28 Aug 2026 12:28:41 +0000 Received: from BN7PEPF000000A0.namprd04.prod.outlook.com (2603:10b6:408:131:cafe::af) by BN9PR03CA0522.outlook.office365.com (2603:10b6:408:131::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.360.10 via Frontend Transport; Fri, 28 Aug 2026 12:28:41 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 64.62.143.114) smtp.mailfrom=axiado.com; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=axiado.com; Received-SPF: Fail (protection.outlook.com: domain of axiado.com does not designate 64.62.143.114 as permitted sender) receiver=protection.outlook.com; client-ip=64.62.143.114; helo=smtp.corp.axiado.com; Received: from smtp.corp.axiado.com (64.62.143.114) by BN7PEPF000000A0.mail.protection.outlook.com (10.167.248.152) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.382.8 via Frontend Transport; Fri, 28 Aug 2026 12:28:41 +0000 Received: from axz-uw1-build-vm02.corp.axiado.com (unknown [10.14.1.22]) by smtp.corp.axiado.com (Postfix) with ESMTP id B90954186B5D; Fri, 28 Aug 2026 05:28:40 -0700 (PDT) From: Petar Stepanovic Date: Fri, 28 Aug 2026 05:28:28 -0700 Subject: [PATCH v6 1/2] dt-bindings: iio: adc: add Axiado AX3000/AX3005 SARADC 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: <20260828-axiado-ax3000-ax3005-saradc-v6-1-4cea467e4167@axiado.com> References: <20260828-axiado-ax3000-ax3005-saradc-v6-0-4cea467e4167@axiado.com> In-Reply-To: <20260828-axiado-ax3000-ax3005-saradc-v6-0-4cea467e4167@axiado.com> To: Akhila Kavi , Prasad Bolisetty , Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Harshit Shah Cc: linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, openbmc@lists.ozlabs.org, Petar Stepanovic , Conor Dooley X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1787920120; l=2961; i=pstepanovic@axiado.com; s=20250916; h=from:subject:message-id; bh=vkAKsJ2m95gzrXwsGVTAt+RuWciSLhwK1Ha1FjbN7G8=; b=pZEHgFDas/wRVYG1Vbl0fUQOU7Zwyh/iAAU99RzfcEC032EdsgB53i0lkrpD459NokZ9+2zG2 mm3DnXmihAGCDkgXaRBNPy3AuraBB7hZNlKq+Xgp6kLWKbmJEDhnnxp X-Developer-Key: i=pstepanovic@axiado.com; a=ed25519; pk=70f1UJOGT9U11ZK6o+ENXtv0I5wBE3e+Y9YWODzRsdI= X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN7PEPF000000A0:EE_|LV3PR18MB5664:EE_ X-MS-Office365-Filtering-Correlation-Id: b58b1fce-ff3e-48c0-b492-08df04ffe50e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|7416014|376014|82310400026|23010399003|1800799024|13003099007|921020|3023799007|10067099003|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: a0sHOGg4ULl8/QkzaOzh9tPEm1pxQ/pirvOd/un2OSsP3C1ra7hoDhEKoeUAlJmErKf3WZovTHyu+/tAHMwwK5BAgDaUHkHFURCBOiyNkSbxJwIGetwCMBAfyddpGzt6s7dz7k6UkKmkHI7V13XTGSEpCPdmsbt38utJXWSdDQ4UBRPGVcFAmFpbFnvaAOEE8kUXpVEL2bXLsyd6RTXlSfz5rlDQ0a2S07xddExBAePdK6TOmN5+MMbDpERQoo2Mub1WC8kKwWNeSm0hyahljGFSqTX2v9SDPdYhLLhdeOypqV3dXh3zJCjm2khDzN4FzQEGktyikT9yIOiEi8oPgsU2RxQulf5gPB/WjBJJlFTEIUAUDAv8/0uMXa/PlDL0xibJqlyjhr0brT2SU6uzOU4TcvIT5DABviyuwxfHC7gDM4anvECZ+CLpnJ8KMV5gb6lsRyks87ZUaPtexywsVLPTMRwqetLtN+N60XAAmLvmNusLwk+vPlz8oY7i4/uqkCHP9MpcqEBwQ/nhGC2BcxLPrqCEJMjb/yVDD6uKpfbkdBPGX9shl5TokFlnmJOD05MqRqqCOPp7JIZhYK1COD/kXms78YMhmC7Iy8bZrE6feF/z8dZpYsl/ikiSunvRX7a72h6hz6e717Rphyovv+6dtffaM0vO7/Pkv8meFrmRtslQWiFf5XX7UY0oQNYL X-Forefront-Antispam-Report: CIP:64.62.143.114;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:smtp.corp.axiado.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(7416014)(376014)(82310400026)(23010399003)(1800799024)(13003099007)(921020)(3023799007)(10067099003)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: FIsEdjqM83AeWE25liuQY0gsGatoM1tihg493KzI6MfGtKtVbdV13K1KrhD7tdDV7Ab/2AtqgYa8hIzS7piE6zDEAsWr5Dscm7KnKmzQfFMvo0OtRIyo+za1/lewmuqiME4garCvGA5SeBYrmcpsj/D78kJSF8S1N2pl9XvzPHb4ivwfbSGRhxUGd0ghaANcN2GdQmJCwchVdU6bgiJGnf58a8UE56/w0pcR9lpq61rOcCBDJ27x4S5iq5uI/2dy9CvdnIfgdbMDpj0eFmlP0neOry59mMW58fOM6OQXX79pmClhK2cck2eS/IKACuS+pPY3mMVCRXUfUfqSzFubm/VO7M0n7O5N75xJsVm7JxPjBoc6qIrXSFlGddiVyHvhaA8Ia/QZvwxesJoC4Y036bdOyGoP8sMkC2kznPA5Xrz3uokvJ6U3nzzQBRTo4Me6 X-OriginatorOrg: axiado.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2026 12:28:41.4347 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b58b1fce-ff3e-48c0-b492-08df04ffe50e X-MS-Exchange-CrossTenant-Id: ff2db17c-4338-408e-9036-2dee8e3e17d7 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=ff2db17c-4338-408e-9036-2dee8e3e17d7;Ip=[64.62.143.114];Helo=[smtp.corp.axiado.com] X-MS-Exchange-CrossTenant-AuthSource: BN7PEPF000000A0.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR18MB5664 The Axiado AX3000 and AX3005 SoCs include a 10-bit SAR ADC controller. AX3000 supports 16 input channels, while AX3005 supports 8 input channels. Document the compatible strings, register region, clock, reference voltage supply, and IIO channel cells. Signed-off-by: Petar Stepanovic Acked-by: Conor Dooley --- .../bindings/iio/adc/axiado,ax3000-saradc.yaml | 63 ++++++++++++++++++= ++++ MAINTAINERS | 8 +++ 2 files changed, 71 insertions(+) diff --git a/Documentation/devicetree/bindings/iio/adc/axiado,ax3000-saradc= .yaml b/Documentation/devicetree/bindings/iio/adc/axiado,ax3000-saradc.yaml new file mode 100644 index 000000000000..b910852aa56f --- /dev/null +++ b/Documentation/devicetree/bindings/iio/adc/axiado,ax3000-saradc.yaml @@ -0,0 +1,63 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/iio/adc/axiado,ax3000-saradc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Axiado AX3000/AX3005 Successive Approximation Register ADC + +description: + The Axiado AX3000/AX3005 SAR ADC is a 10-bit ADC with sixteen input + channels on AX3000 and eight input channels on AX3005. + +maintainers: + - Petar Stepanovic + - Akhila Kavi + - Prasad Bolisetty + +properties: + compatible: + enum: + - axiado,ax3000-saradc + - axiado,ax3005-saradc + + reg: + maxItems: 1 + + clocks: + maxItems: 1 + + clock-names: + const: saradc + + '#io-channel-cells': + const: 1 + + vref-supply: + description: Reference voltage regulator supplying the ADC + +required: + - compatible + - reg + - clocks + - clock-names + - '#io-channel-cells' + - vref-supply + +additionalProperties: false + +examples: + - | + soc { + #address-cells =3D <2>; + #size-cells =3D <2>; + + adc@806a0000 { + compatible =3D "axiado,ax3000-saradc"; + reg =3D <0x0 0x806a0000 0x0 0x400>; + clocks =3D <&pclk>; + clock-names =3D "saradc"; + vref-supply =3D <&vref_reg>; + #io-channel-cells =3D <1>; + }; + }; diff --git a/MAINTAINERS b/MAINTAINERS index b2040011a386..d6f4febfe4fd 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -4312,6 +4312,14 @@ S: Orphan F: Documentation/devicetree/bindings/sound/axentia,* F: sound/soc/atmel/tse850-pcm5142.c =20 +AXIADO SARADC DRIVER +M: Petar Stepanovic +M: Akhila Kavi +M: Prasad Bolisetty +L: linux-iio@vger.kernel.org +S: Maintained +F: Documentation/devicetree/bindings/iio/adc/axiado,ax3000-saradc.yaml + AXIS ARTPEC ARM64 SoC SUPPORT M: Jesper Nilsson M: Lars Persson --=20 2.34.1 From nobody Sat Sep 26 23:04:27 2026 Received: from CH1PR05CU001.outbound.protection.outlook.com (mail-northcentralusazon11020091.outbound.protection.outlook.com [52.101.193.91]) (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 E7BBA2F1FEC; Fri, 28 Aug 2026 12:28:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.193.91 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787920147; cv=fail; b=MAY1Qs8UszvD11enSf8bkDrRaJ94+ms1LP0iRsX+eVNXreR5sTzAA4IwMMVUaUueEYUU5XtvgPTky4EidcKr12GoXH2i+B8Cr0Wv7IVfSm9+G1I2knGNVPfs1I+ws13WtuVNP8m4Nv0gJRp9CI+jdIQ4jqwQtgNr8kc5J7HFaY0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787920147; c=relaxed/simple; bh=rNY4nLyM8wsOBfIRMDfS6xlkx0bLyP0Z196P2uJIKKE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Tph5lyrY4hxeEqMdajDv/xSXeIT00BpvYeTIqUQY1dbQlqW0SgURprLLvwhcyoCqRz/bVUkLlFg7FAQZks7kc/wJm+HjeFWjih/0R3LnNYjCv9zNORrZ3I6zTIXbk5yF26oFClbiR+OPGjvtcaCl3GSNYYEK2N3V+wv8zG1zNug= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=axiado.com; spf=pass smtp.mailfrom=axiado.com; dkim=pass (2048-bit key) header.d=axiado.com header.i=@axiado.com header.b=ThaFb386; arc=fail smtp.client-ip=52.101.193.91 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=axiado.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=axiado.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=axiado.com header.i=@axiado.com header.b="ThaFb386" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Y9vl7wEODg24zMQSYzXyhSaY95bI3Cg0R6EjRvFSqKXeXGusiIhfemaTyGCopmCEvnwVCLd1jACAJV5eql5fuego7kkM0BvFtKhdinh8y1fE/ssONDe01c2JzEzyB7BPMEoKxUHHZPogEC8SU6fgCbLTx3a9rDqjG8twj9uwYUgdvDfT1HpR48UfjaxPsLaj95OLKQ7qEBXqKfCxl00qs0ZfBy4kO+erJC/llEl5A29Rljy9fE3xGEjzWJAGQ8d382UVUpFCZ5Ifdot7cns2XkA2FULwCs8qBv9sX3czBKW91to3DDi3+UTAqYRjngQhF4zn0LiMWCPfB4CAbPnieQ== 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=QOx8DAH1AwDiA7qqemvUL4rdmlqGZWTtwuXZ7pNbXkU=; b=ArLQcEUVusNt8VTDQfX2u4LtmjaSFghk+pC1Ln5kI8mUfH4LDoumiqnR+K6jsqI0bad/g+lu384fA+f2ilfOY2PkOpGlNxv0jjKVE34w2yzpIWZBy5uIriA/GDVO4FMUtXEq3lYnuF1NPIttlXMee1F8N2FnfCraQaaEOAqXBSJ4WSR+zKqpcTkCYP7jbOlm3ddd0RhDxFdeBEgt613LIOrLGUQOI6eT3aoR/QN/I7Xa8CzpikPu226avOWYCse8b2z3LEz3LtSaAv5BnaPiuyXrvndtEPxsdBOl7gu4qXj/bSL6y7DLJFMYUjGd8S0EU5VCn7ZWolxBX/NTcU9U9w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=fail (sender ip is 64.62.143.114) smtp.rcpttodomain=analog.com smtp.mailfrom=axiado.com; dmarc=none action=none header.from=axiado.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=axiado.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QOx8DAH1AwDiA7qqemvUL4rdmlqGZWTtwuXZ7pNbXkU=; b=ThaFb3866GOEkTy2VLzFAPjkkGsErNXBgLmgdIl+lCaWVUZFSxwVmXa1eyl3t1211PufaSvCYqMxCpYAyB74+luLaf++NjaV6lc9SXTRYHbeCiVwwa9zjNtjw6Nr26rVpHRoi9mK+vk7r+Cj3+uJcf2MUuqGdw1dCEcz+TYiBjHmzI5jMMHM0LjwEI7kcRQmYErCkj6A6ZIEtRsEDeHRab3b2ubJ9rq38CEI90v+tWnbfc2ET3D/5OIl7UyhaktDIfyzouMCqcCjRn7NKDDy0zBXhhnvUM7AWCC/YKd2l8ukuExocjWyvoOZYiGb9LOpXBBX4w/+F/fvAe499z1iGQ== Received: from CH0PR13CA0043.namprd13.prod.outlook.com (2603:10b6:610:b2::18) by BY1PR18MB6043.namprd18.prod.outlook.com (2603:10b6:a03:4ad::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.360.10; Fri, 28 Aug 2026 12:28:42 +0000 Received: from DS3PEPF0000C381.namprd04.prod.outlook.com (2603:10b6:610:b2:cafe::a3) by CH0PR13CA0043.outlook.office365.com (2603:10b6:610:b2::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.382.7 via Frontend Transport; Fri, 28 Aug 2026 12:28:42 +0000 X-MS-Exchange-Authentication-Results: spf=fail (sender IP is 64.62.143.114) smtp.mailfrom=axiado.com; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=axiado.com; Received-SPF: Fail (protection.outlook.com: domain of axiado.com does not designate 64.62.143.114 as permitted sender) receiver=protection.outlook.com; client-ip=64.62.143.114; helo=smtp.corp.axiado.com; Received: from smtp.corp.axiado.com (64.62.143.114) by DS3PEPF0000C381.mail.protection.outlook.com (10.167.23.11) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.382.8 via Frontend Transport; Fri, 28 Aug 2026 12:28:41 +0000 Received: from axz-uw1-build-vm02.corp.axiado.com (unknown [10.14.1.22]) by smtp.corp.axiado.com (Postfix) with ESMTP id C93DC40BFE04; Fri, 28 Aug 2026 05:28:40 -0700 (PDT) From: Petar Stepanovic Date: Fri, 28 Aug 2026 05:28:29 -0700 Subject: [PATCH v6 2/2] iio: adc: add Axiado SARADC driver 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: <20260828-axiado-ax3000-ax3005-saradc-v6-2-4cea467e4167@axiado.com> References: <20260828-axiado-ax3000-ax3005-saradc-v6-0-4cea467e4167@axiado.com> In-Reply-To: <20260828-axiado-ax3000-ax3005-saradc-v6-0-4cea467e4167@axiado.com> To: Akhila Kavi , Prasad Bolisetty , Jonathan Cameron , David Lechner , =?utf-8?q?Nuno_S=C3=A1?= , Andy Shevchenko , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Harshit Shah Cc: linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, openbmc@lists.ozlabs.org, Petar Stepanovic , Joshua Crofts X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1787920120; l=10449; i=pstepanovic@axiado.com; s=20250916; h=from:subject:message-id; bh=rNY4nLyM8wsOBfIRMDfS6xlkx0bLyP0Z196P2uJIKKE=; b=iNaaEwlxTtfpovetcJ8hpeWc8YO+opEjCGnumkmZJR4uHMOpk0jt/FEzrjEa5nzHcEXyBhFTr GNHYBdIhIuVA2uXEw/6uyqSQvm9H1g18/PXjfCwafctZR5tk9xyqyuq X-Developer-Key: i=pstepanovic@axiado.com; a=ed25519; pk=70f1UJOGT9U11ZK6o+ENXtv0I5wBE3e+Y9YWODzRsdI= X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS3PEPF0000C381:EE_|BY1PR18MB6043:EE_ X-MS-Office365-Filtering-Correlation-Id: de3632d5-7ff4-487b-871d-08df04ffe512 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|23010399003|82310400026|1800799024|7416014|376014|10067099003|6133799003|22082099003|18002099003|56012099006|921020; X-Microsoft-Antispam-Message-Info: jrau6OUtTkXKgzBrcFr48uMhTuY7s0BcaQ3Y5vT2ICvRodoLljH1Dn2Sd69BYP+lWQGmCyn4Mu6uW7OmqRNpymjKw75pwe+Vq3rHmNg/cMr8yIqTT1dZWxDmdxatpJVqey8/wCNHrHC2dSExUlQf8UVc773tS2Gq6Lm5UiI7kOI5vbYvGWeVID+yjLTfJCRl9AqZs/n9OYJSPInBAICEzGsAr8OtrhMThvi4sFwzfAK5vg2mSYqFr4YaEJ3Ahy7uwHmakIDluR2Xv4sU7rfnwO2jUw46e4qBqqmXvQEsIeIhUek/W0oqARym49puV95pupZBy1l2bqCGb0ubn+70D2L/grw/yKeR3zCAadWfDMhTBCQMV7sZt4bYDAnaivztaLn4Qj0uIFBzx7Gj0w4ftOimkv/DnGR31NfF/1JByvY073wGIER1sA+bmyIgtOirDpOeRYhtT99JsOdYl1FBgHRlqRZhvc/wVAR4Lo/bREGQOdOTudvqjMZZIqGaL1a4hOm1Z8URFgZPuMFWvLO8ME6rbrDvV+YmQiMUtIxGXr+cNIf0JowXjb8+HGN68+Y9jmA/WbX9gOPZYHJU7YjovhGuZIwUEVqLtn9t6a0Xb1K4oJc4lm79XcfMd/5Ny7UZX9gX1ig6nTK7Vi1BTgOKTMkP83uG/jeVbVCsCGh4BkHMImaoOFN87PSiRR9wlSb5iBQUOaoOt+BHzSXQ+gOMpcLpMGwk60NezATTnOLbHKDbTn8pMV1SM2Vv7Mn+WaXf X-Forefront-Antispam-Report: CIP:64.62.143.114;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:smtp.corp.axiado.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(36860700016)(23010399003)(82310400026)(1800799024)(7416014)(376014)(10067099003)(6133799003)(22082099003)(18002099003)(56012099006)(921020);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ZuvzD018v9Mi61OTsAf6ymUcV1wddUKvv/cb7GdJrCvUc8fKlYTPayLSbRBUnChTepDtTkSnZ0nhzonUTvo8n6hmtEvJMGtlvnFkgKYlFYlNvjZjaQKQHH7Bw8o8rxCKjgW6J8mXpGBRa9pJ/722nv9fda6mfVJa/ezfKmmImjqGnzYYXHS3yzVD+KG5UQELDDnGITs0d8fPRJ7ORnWLYT+Ais/4kSBKTZqrTjoguIUi5rik02uOC6bD2QN6JrFNwS8haNF4y4Nukgzt6Y3gUyhRWmVW4i4EKj3cbs1b4ZQnB8oyY/a5ojVf6soNpT8JUaVVdkoBfKu8UfFfJvKY6OnJ/KlPCaWJYg5QLNS4UM3XV5bY7AJIyoCnevYdKb/+jzMbPdx0DDpn13AdlBYMVt2UO+BzPcVlIVzOmHOZWSodM7axJRBLcEKs6+k4kPZk X-OriginatorOrg: axiado.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2026 12:28:41.3618 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: de3632d5-7ff4-487b-871d-08df04ffe512 X-MS-Exchange-CrossTenant-Id: ff2db17c-4338-408e-9036-2dee8e3e17d7 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=ff2db17c-4338-408e-9036-2dee8e3e17d7;Ip=[64.62.143.114];Helo=[smtp.corp.axiado.com] X-MS-Exchange-CrossTenant-AuthSource: DS3PEPF0000C381.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR18MB6043 Add support for the SARADC controller found on Axiado AX3000 and AX3005 SoCs. The driver supports single-shot voltage reads through the IIO subsystem. The number of available input channels is selected from the SoC match data, allowing AX3000 and AX3005 variants to use the same driver. Signed-off-by: Petar Stepanovic Reviewed-by: Joshua Crofts --- MAINTAINERS | 1 + drivers/iio/adc/Kconfig | 11 ++ drivers/iio/adc/Makefile | 1 + drivers/iio/adc/axiado_saradc.c | 277 ++++++++++++++++++++++++++++++++++++= ++++ 4 files changed, 290 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index d6f4febfe4fd..d2e99c2260fa 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -4319,6 +4319,7 @@ M: Prasad Bolisetty L: linux-iio@vger.kernel.org S: Maintained F: Documentation/devicetree/bindings/iio/adc/axiado,ax3000-saradc.yaml +F: drivers/iio/adc/axiado_saradc.c =20 AXIS ARTPEC ARM64 SoC SUPPORT M: Jesper Nilsson diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig index a9dedbb8eb46..c6fe026dc70e 100644 --- a/drivers/iio/adc/Kconfig +++ b/drivers/iio/adc/Kconfig @@ -631,6 +631,17 @@ config AT91_SAMA5D2_ADC To compile this driver as a module, choose M here: the module will be called at91-sama5d2_adc. =20 +config AXIADO_SARADC + tristate "Axiado SARADC driver" + depends on ARCH_AXIADO || COMPILE_TEST + select REGMAP_MMIO + help + Say yes here to build support for the SARADC found in Axiado + SoCs. + + To compile this driver as a module, choose M here: the module + will be called axiado_saradc. + config AXP20X_ADC tristate "X-Powers AXP20X and AXP22X ADC driver" depends on MFD_AXP20X diff --git a/drivers/iio/adc/Makefile b/drivers/iio/adc/Makefile index 097357d146ba..96de0ce1d90a 100644 --- a/drivers/iio/adc/Makefile +++ b/drivers/iio/adc/Makefile @@ -54,6 +54,7 @@ obj-$(CONFIG_ADI_AXI_ADC) +=3D adi-axi-adc.o obj-$(CONFIG_ASPEED_ADC) +=3D aspeed_adc.o obj-$(CONFIG_AT91_ADC) +=3D at91_adc.o obj-$(CONFIG_AT91_SAMA5D2_ADC) +=3D at91-sama5d2_adc.o +obj-$(CONFIG_AXIADO_SARADC) +=3D axiado_saradc.o obj-$(CONFIG_AXP20X_ADC) +=3D axp20x_adc.o obj-$(CONFIG_AXP288_ADC) +=3D axp288_adc.o obj-$(CONFIG_BCM_IPROC_ADC) +=3D bcm_iproc_adc.o diff --git a/drivers/iio/adc/axiado_saradc.c b/drivers/iio/adc/axiado_sarad= c.c new file mode 100644 index 000000000000..699ee31616fc --- /dev/null +++ b/drivers/iio/adc/axiado_saradc.c @@ -0,0 +1,277 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Copyright (c) 2021-2026 Axiado Corporation + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +/* Register offsets */ +#define AX_SARADC_GLOBAL_CTRL_REG 0x0004 +#define AX_SARADC_MANUAL_CTRL_REG 0x0008 +#define AX_SARADC_DOUT_REG 0x001C + +/* GLOBAL_CTRL register fields */ +#define AX_SARADC_GLOBAL_CTRL_CH_EN_MASK GENMASK(31, 16) +#define AX_SARADC_GLOBAL_CTRL_SAMPLE_MASK GENMASK(6, 5) +#define AX_SARADC_GLOBAL_CTRL_MODE_MASK GENMASK(4, 3) +#define AX_SARADC_GLOBAL_CTRL_PD BIT(2) +#define AX_SARADC_GLOBAL_CTRL_ENABLE BIT(0) + +/* GLOBAL_CTRL SAMPLE_MASK field value: 0 selects 16 samples. */ +#define AX_SARADC_GLOBAL_CTRL_SAMPLE_16 0 + +/* GLOBAL_CTRL MODE_MASK field value: 1 selects manual mode. */ +#define AX_SARADC_GLOBAL_CTRL_MODE_MANUAL 1 + +/* MANUAL_CTRL register fields */ +#define AX_SARADC_MANUAL_CTRL_ENABLE BIT(0) +#define AX_SARADC_MANUAL_CTRL_CH_SEL_MASK GENMASK(4, 1) + +#define AX_RESOLUTION_BITS 10 +#define AX_SARADC_CONV_CYCLES 13 +#define AX_SARADC_CONV_DELAY_MARGIN_US 10 + +struct axiado_saradc { + struct regmap *regmap; + struct mutex lock; /* Serializes ADC conversions. */ + unsigned long clk_rate; + int vref_uV; +}; + +/* + * Registers contain transient control, status, and conversion data, + * so accesses must always go directly to hardware. + */ +static const struct regmap_config axiado_saradc_regmap_config =3D { + .reg_bits =3D 32, + .val_bits =3D 32, + .reg_stride =3D 4, + .max_register =3D AX_SARADC_DOUT_REG, + .val_format_endian =3D REGMAP_ENDIAN_LITTLE, +}; + +static int axiado_saradc_conversion(struct axiado_saradc *info, + struct iio_chan_spec const *chan, int *val) +{ + unsigned long usecs; + unsigned int regval; + int ret; + + guard(mutex)(&info->lock); + + /* Select the channel to be used and trigger conversion. */ + ret =3D regmap_write(info->regmap, AX_SARADC_MANUAL_CTRL_REG, + AX_SARADC_MANUAL_CTRL_ENABLE | + FIELD_PREP(AX_SARADC_MANUAL_CTRL_CH_SEL_MASK, chan->channel)); + if (ret) + return ret; + + /* Hardware requires 13 conversion cycles at clk_rate. */ + usecs =3D DIV_ROUND_UP(AX_SARADC_CONV_CYCLES * USEC_PER_SEC, info->clk_ra= te); + fsleep(usecs + AX_SARADC_CONV_DELAY_MARGIN_US); + + ret =3D regmap_read(info->regmap, AX_SARADC_DOUT_REG, ®val); + + /* Best effort to stop manual conversion. */ + regmap_write(info->regmap, AX_SARADC_MANUAL_CTRL_REG, 0); + + if (ret) + return ret; + + *val =3D regval & GENMASK(AX_RESOLUTION_BITS - 1, 0); + + return 0; +} + +static int axiado_saradc_read_raw(struct iio_dev *indio_dev, + struct iio_chan_spec const *chan, + int *val, int *val2, long mask) +{ + struct axiado_saradc *info =3D iio_priv(indio_dev); + int ret; + + switch (mask) { + case IIO_CHAN_INFO_RAW: + ret =3D axiado_saradc_conversion(info, chan, val); + if (ret) + return ret; + return IIO_VAL_INT; + case IIO_CHAN_INFO_SCALE: + *val =3D info->vref_uV / (MICRO / MILLI); + *val2 =3D AX_RESOLUTION_BITS; + return IIO_VAL_FRACTIONAL_LOG2; + + default: + return -EINVAL; + } +} + +static const struct iio_info axiado_saradc_iio_info =3D { + .read_raw =3D axiado_saradc_read_raw, +}; + +struct axiado_saradc_soc_data { + const char *name; + unsigned int num_channels; +}; + +static const struct axiado_saradc_soc_data ax3000_saradc_data =3D { + .name =3D "ax3000_saradc", + .num_channels =3D 16, +}; + +static const struct axiado_saradc_soc_data ax3005_saradc_data =3D { + .name =3D "ax3005_saradc", + .num_channels =3D 8, +}; + +#define AX_SARADC_CH(_index) \ + { \ + .type =3D IIO_VOLTAGE, \ + .indexed =3D 1, \ + .channel =3D (_index), \ + .info_mask_separate =3D BIT(IIO_CHAN_INFO_RAW), \ + .info_mask_shared_by_type =3D BIT(IIO_CHAN_INFO_SCALE), \ + .datasheet_name =3D "adc" #_index, \ + } + +static const struct iio_chan_spec axiado_saradc_iio_channels[] =3D { + AX_SARADC_CH(0), + AX_SARADC_CH(1), + AX_SARADC_CH(2), + AX_SARADC_CH(3), + AX_SARADC_CH(4), + AX_SARADC_CH(5), + AX_SARADC_CH(6), + AX_SARADC_CH(7), + AX_SARADC_CH(8), + AX_SARADC_CH(9), + AX_SARADC_CH(10), + AX_SARADC_CH(11), + AX_SARADC_CH(12), + AX_SARADC_CH(13), + AX_SARADC_CH(14), + AX_SARADC_CH(15), +}; + +static void axiado_saradc_disable(void *map) +{ + regmap_write(map, AX_SARADC_GLOBAL_CTRL_REG, AX_SARADC_GLOBAL_CTRL_PD); +} + +static int axiado_saradc_probe(struct platform_device *pdev) +{ + const struct axiado_saradc_soc_data *soc_data; + struct device *dev =3D &pdev->dev; + struct axiado_saradc *info; + struct iio_dev *indio_dev; + void __iomem *regs; + struct regmap *map; + struct clk *clk; + u32 regval; + int ret; + + indio_dev =3D devm_iio_device_alloc(dev, sizeof(*info)); + if (!indio_dev) + return -ENOMEM; + + info =3D iio_priv(indio_dev); + + regs =3D devm_platform_ioremap_resource(pdev, 0); + if (IS_ERR(regs)) + return PTR_ERR(regs); + + map =3D devm_regmap_init_mmio(dev, regs, &axiado_saradc_regmap_config); + if (IS_ERR(map)) + return PTR_ERR(map); + info->regmap =3D map; + + clk =3D devm_clk_get_enabled(dev, NULL); + if (IS_ERR(clk)) + return PTR_ERR(clk); + + info->clk_rate =3D clk_get_rate(clk); + if (!info->clk_rate) + return dev_err_probe(dev, -EINVAL, "invalid clock rate\n"); + + ret =3D devm_regulator_get_enable_read_voltage(dev, "vref"); + if (ret < 0) + return dev_err_probe(dev, ret, "failed to get vref voltage\n"); + + info->vref_uV =3D ret; + + soc_data =3D device_get_match_data(dev); + if (!soc_data) + return dev_err_probe(dev, -ENODATA, "failed to get match data\n"); + + ret =3D devm_mutex_init(dev, &info->lock); + if (ret) + return ret; + + regval =3D FIELD_PREP(AX_SARADC_GLOBAL_CTRL_CH_EN_MASK, + GENMASK(soc_data->num_channels - 1, 0)) | + FIELD_PREP(AX_SARADC_GLOBAL_CTRL_SAMPLE_MASK, + AX_SARADC_GLOBAL_CTRL_SAMPLE_16) | + FIELD_PREP(AX_SARADC_GLOBAL_CTRL_MODE_MASK, + AX_SARADC_GLOBAL_CTRL_MODE_MANUAL) | + AX_SARADC_GLOBAL_CTRL_ENABLE; + + ret =3D regmap_write(map, AX_SARADC_GLOBAL_CTRL_REG, regval); + if (ret) + return ret; + + ret =3D devm_add_action_or_reset(dev, axiado_saradc_disable, map); + if (ret) + return ret; + + indio_dev->name =3D soc_data->name; + indio_dev->info =3D &axiado_saradc_iio_info; + indio_dev->modes =3D INDIO_DIRECT_MODE; + indio_dev->channels =3D axiado_saradc_iio_channels; + indio_dev->num_channels =3D soc_data->num_channels; + + return devm_iio_device_register(dev, indio_dev); +} + +static const struct of_device_id axiado_saradc_match[] =3D { + { + .compatible =3D "axiado,ax3000-saradc", + .data =3D &ax3000_saradc_data, + }, + { + .compatible =3D "axiado,ax3005-saradc", + .data =3D &ax3005_saradc_data, + }, + { } +}; +MODULE_DEVICE_TABLE(of, axiado_saradc_match); + +static struct platform_driver axiado_saradc_driver =3D { + .driver =3D { + .name =3D "axiado-saradc", + .of_match_table =3D axiado_saradc_match, + }, + .probe =3D axiado_saradc_probe, +}; +module_platform_driver(axiado_saradc_driver); + +MODULE_AUTHOR("Axiado Corporation"); +MODULE_DESCRIPTION("Axiado SARADC driver"); +MODULE_LICENSE("GPL"); --=20 2.34.1