From patchwork Wed Feb 28 13:54:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ceclan, Dumitru" X-Patchwork-Id: 207871 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp3359657dyb; Wed, 28 Feb 2024 05:57:19 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCW9K3UmvS0DWmqA4T0OvzsJk+UV7saTEGi7Jexo/ciadPCle+S5HrlpzM0HcfqFVGbp4JaL7ggzqiKzP3/awa8n5hh/yA== X-Google-Smtp-Source: AGHT+IFhFVLvYePYw4OY9/JuN4uaEGlaVKQQIpfTdES5RWilTUYV69Odrr/Vi9jd6bDtn+yvmU+o X-Received: by 2002:aa7:d716:0:b0:565:471b:c047 with SMTP id t22-20020aa7d716000000b00565471bc047mr8935669edq.0.1709128639755; Wed, 28 Feb 2024 05:57:19 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709128639; cv=pass; d=google.com; s=arc-20160816; b=ivVmCyPR3yalRMkkr5pIsYjmaBoJgTwO7xq6FuJladXAajt3IRfYuGaJhFWIe4Dk59 7QZ8TjuGxoRQBYEuHwG7HFNEok24H7r3anZkIGQMpnlJVeyAQqnuC0HC4VDdei5Szmlj sNInfSSgOpzD9OPpuyh9WKSTf5ie/Pf/hD34q03CiafpDU2su+z3Nxv+Xj0N6BLTVdF+ vtWyn0tsYYXyKRHsxq70zuhwq4wCPvSup7cGzti94nZSqW1H7Zr7vi17hvjHl3yeiusH yKGuJsqfGXQRLir5446W0mModXNjJIrrAZ85IW8wi1gFouUpCuxa64RZLm5gmLap7KrO ajbQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=mRw7LGFP+/omuqCxFZ/dxg3Hn4jlJTMa3DAg0Bp1/RE=; fh=WVr+N7siId7z5BvQGyqzz0/ksIpnBA73kC8fPagZQJI=; b=IeBDszvXby3pPAB1k1aOxYROo9dlRgPjbfzTZ/l1ixuglicpCFTrSLg75p1qF7xjRm lVLoQHJGU3IscaB/EbJFwcIaVv5ihsUMdL/aXnHnkq42PYrr+5RdH2tiAz2vhuM4Hgzb UP/wc19I992c35VRKSRFgg1a2sRGo4bBjsc8HSRAiTKoYVyt2DELNNQF9uhBEZii6Dgm I9IWPN7ivIMw6XIH8afuI8pGOG4W6Uv5C3Exf3+uMjv8/lX2OlyKtzzs82LsGfvdyEug 2JHMCTlkfPjDa+bY6gilqEg1A6D9b1k7YWEQJd4B/Gg3ChtUM/MZ/bYfY1+6aXEFU8BQ 3gSw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=gAiwVkdS; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-85139-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85139-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id bd3-20020a056402206300b0056572227a40si1665558edb.656.2024.02.28.05.57.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Feb 2024 05:57:19 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-85139-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=gAiwVkdS; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-85139-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85139-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 599911F232F3 for ; Wed, 28 Feb 2024 13:57:19 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3237B1586FE; Wed, 28 Feb 2024 13:55:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="gAiwVkdS" Received: from mail-ej1-f52.google.com (mail-ej1-f52.google.com [209.85.218.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 68162130AEF; Wed, 28 Feb 2024 13:55:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709128548; cv=none; b=NBQciMBfOdTwgXtpHrEAQeX2Uar7uf4LS6FfJffa2Xxr23/4y9/Dy75ZjlY8oNr/RW4Of19G8n6nr9z1A0DQcJmgDAYCiwrSqZJKItReCfhJOS4xXzkgiFQVxKyf6i5A4Z5Cu3o1oO2n44CQgrsIBRwgKL23NcyE2fqQnIEzHp0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709128548; c=relaxed/simple; bh=h16MzRqm6mctOweCzZ+zDJrdVpqgxmO5XN+1vM6huAo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Fl1ngCzuXJJXogM+yohZ5LGdT5/FAMzNP9lobmmz3oWhkTRqJ7Hn8N8MRws4OKrbe7jIefN2ioaSJujGkDZM7y6IwBsTRi28TeMeVic+UNU431ht+Q926ZVWldsjrdDRSsB5V74dsQ8X+udfdkoBcFTSFmpu78ffSMZ97Da++7w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=gAiwVkdS; arc=none smtp.client-ip=209.85.218.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ej1-f52.google.com with SMTP id a640c23a62f3a-a441882f276so49240266b.2; Wed, 28 Feb 2024 05:55:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709128545; x=1709733345; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=mRw7LGFP+/omuqCxFZ/dxg3Hn4jlJTMa3DAg0Bp1/RE=; b=gAiwVkdSyiZndwTAcLGrjcoUqGPhSmFHiDgb9Rdb6Fn7KfGglBhteQAW4flqlyl9Rg 9hc2NSLTtSBB4gLhSNDxtZh4TbWNp3iNVxGo5tqX3bHW8gCNkS8Cf/0Posjs5VjpSLFn 7Ju8d3rwo6gHYbbqJtHjaUTdsTX08PgLG4wERRqzyCbl59x3qaqwtn4v/LhzG6kys2sT fyyj45Tl/7iNodZXbAhWTwq1+8G+ys0mfNNzDX6pFAhSzRxjZK96uG9Sk6cPeX/wIAGG ly0m2xYIsfphfWF20tfPvR2N+tHGcwz+KBvpjG/Cz2WDYpkf5XXH/DBaEZ4/sNrO8BDK JDiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709128545; x=1709733345; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mRw7LGFP+/omuqCxFZ/dxg3Hn4jlJTMa3DAg0Bp1/RE=; b=YNHG57vzM97wSavUaLvXPrdfyN8aMAJ5PgStFzeVNw08uStXaixGVSWN1naBFoeAaK +t3mu1z1KySGVRaQXg+RZcKyATBph9NhMXaIm8/aEfiCuxxPnTK9YEAC7J/arHpvSCRG 1x9hvLbHpE+GrHPQJTh98DMYaB8lKJfRiYD02Ygr16p4qLoTj5f9+X/3TU46polHWV6r Vdvoo4Aru+W5VSMvXVnrrqLXOt6iVIcVRImkUItDvL4H3AKxzfLxrnmI7UJf8QAP3y0k zdlme2/sHQpEt7r9X3/NcU2yPAonz+ZznpWcBsoFkzC6NAsZzfneWbh0y391JgLX+3vD Z0bg== X-Forwarded-Encrypted: i=1; AJvYcCVVPYzm7sPiibnAIpTulSYC/1F2nQEm1r83kokQvmkf97zHn3Rvjs9Qr4mlmL1Nsfx5qkv8cS12UqVaxhx0URIUsl5tp4HRHYEo9BBlxeN6urqBEG+yOqJzrcb/G2DxFKvXT5IwPd28SmyFVbR6vm8DX0rPwqIdTj5PvhwHLYg/utDdTQ== X-Gm-Message-State: AOJu0YwDnL8i76Xf3kevuMYQCnROT47ncSyIBJRKvCsYTIFW9PoeNu+3 kk+BviyTLZgDfoJiwWzp9DO3DSahl9X4NY/8OAG7TRKa2IqCf57c4KDrAy9/gJJx6tUt X-Received: by 2002:a17:906:4088:b0:a44:176e:410c with SMTP id u8-20020a170906408800b00a44176e410cmr649821ejj.5.1709128544765; Wed, 28 Feb 2024 05:55:44 -0800 (PST) Received: from HYB-hhAwRlzzMZb.ad.analog.com ([5.2.194.157]) by smtp.gmail.com with ESMTPSA id dc6-20020a170906c7c600b00a441674cae4sm312487ejb.222.2024.02.28.05.55.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Feb 2024 05:55:44 -0800 (PST) From: Dumitru Ceclan To: Cc: Jonathan Cameron , Rob Herring , Krzysztof Kozlowski , Conor Dooley , David Lechner , Ceclan Dumitru , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Dumitru Ceclan Subject: [PATCH v2 1/2] dt-bindings: adc: ad7173: add support for additional models Date: Wed, 28 Feb 2024 15:54:56 +0200 Message-ID: <20240228135532.30761-2-mitrutzceclan@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240228135532.30761-1-mitrutzceclan@gmail.com> References: <20240228135532.30761-1-mitrutzceclan@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792151272301701654 X-GMAIL-MSGID: 1792151272301701654 Add support for: AD7172-2, AD7175-8, AD7177-2. AD7172-4 does not feature an internal reference, check for external reference presence. Signed-off-by: Dumitru Ceclan --- .../bindings/iio/adc/adi,ad7173.yaml | 39 +++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml index 36f16a325bc5..7b5bb839fc3e 100644 --- a/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml @@ -21,17 +21,23 @@ description: | Datasheets for supported chips: https://www.analog.com/media/en/technical-documentation/data-sheets/AD7172-2.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/AD7172-4.pdf https://www.analog.com/media/en/technical-documentation/data-sheets/AD7173-8.pdf https://www.analog.com/media/en/technical-documentation/data-sheets/AD7175-2.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/AD7175-8.pdf https://www.analog.com/media/en/technical-documentation/data-sheets/AD7176-2.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/AD7177-2.pdf properties: compatible: enum: - adi,ad7172-2 + - adi,ad7172-4 - adi,ad7173-8 - adi,ad7175-2 + - adi,ad7175-8 - adi,ad7176-2 + - adi,ad7177-2 reg: maxItems: 1 @@ -136,8 +142,10 @@ patternProperties: refout-avss: REFOUT/AVSS (Internal reference) avdd : AVDD /AVSS - External reference ref2 only available on ad7173-8. - If not specified, internal reference used. + External reference ref2 only available on ad7173-8 and ad7172-4. + Internal reference refout-avss not available on ad7172-4. + + If not specified, internal reference used (if available). $ref: /schemas/types.yaml#/definitions/string enum: - vref @@ -157,12 +165,15 @@ required: allOf: - $ref: /schemas/spi/spi-peripheral-props.yaml# + # Only ad7172-4 and ad7173-8 support vref2 - if: properties: compatible: not: contains: - const: adi,ad7173-8 + anyOf: + - const: adi,ad7172-4 + - const: adi,ad7173-8 then: properties: vref2-supply: false @@ -177,6 +188,28 @@ allOf: reg: maximum: 3 + # Model ad7172-4 does not support internal reference + # mandatory to have an external reference + - if: + properties: + compatible: + contains: + const: adi,ad7172-4 + then: + patternProperties: + "^channel@[0-9a-f]$": + properties: + adi,reference-select: + enum: + - vref + - vref2 + - avdd + required: + - adi,reference-select + oneOf: + - required: [vref2-supply] + - required: [vref-supply] + - if: anyOf: - required: [clock-names] From patchwork Wed Feb 28 13:54:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ceclan, Dumitru" X-Patchwork-Id: 207872 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp3359733dyb; Wed, 28 Feb 2024 05:57:27 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCVt9BcvfejMLJJkY+e2BTvp0WEMITpmaExViTN0V6X8MDfxeJlZJxE+JMm/Zihr0Zogt2CdfBgwsw7wHRrEMFV5tlb8WA== X-Google-Smtp-Source: AGHT+IG/hyseIgMsTFbOyrRVl1TZVcVaYOrybsrS/Gwc4CoQbyXDkDmA2/uG3P0Pe6aGkDpMuFG2 X-Received: by 2002:a05:6214:5014:b0:68f:ff45:8793 with SMTP id jo20-20020a056214501400b0068fff458793mr4530489qvb.25.1709128647590; Wed, 28 Feb 2024 05:57:27 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709128647; cv=pass; d=google.com; s=arc-20160816; b=hKWBhj6SJI37w6Djoad/Iy2uhaomUX3rd0n1RamUHhMLIvmL7vRffKmz/tvZYzI5N3 Xt75inWrrzQE3ot1U+EYcICwmMhH8uxQVSHgMOTrNjKGg+w32irJHeFd4M81QUut7xsQ lWswsZERsS7xL9UqB+7/MGOgPxnz/QIrwnvh/qELjCnRzmZXvoDz3+T6lZT4wUX1pX/a 0zr9uRJLk33R0DXoB+DIfXlaoD5HrxV55mIxpo91vbGpAeHGKrBdwctlHLTJ0mC0YRRU 6FlqSqrhJl5adgA7Rd0Wg43lCBwxSx7WGINxsj6NVQqIQ03EtzEjwxrf5YXmDqKinwjY 3ZSw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=PYCemFNc1uUqcXulrZM7TUJ6mft8DchA0cSSH48XvI8=; fh=iwXgprvxjBAlA1k2MtdncuX+39JHutHtWSXwNtCd4Qc=; b=R7ZTxdB5jyzeK7rha7BD5ptxuJP1oea13wbRMmjtNSpPls9lYMxl5CmsQiTarfjVdl mTJC60Vz798SmaWTddovloy2nQPffugyWTrkCXl89jC0sUHIUtiZ/e5Q2Z49ApQGzHBc Cnh0wKtrT/eYiTEZ1VLFu8/v/NzPOHu6+U6Hv/ZTcTOzPoPnuHZgdj1RFgEDZMlL1lEm 2q8UNHpU0A2SWZk2j5jFkUjAtx0K5TVmHHc9ykqE25d/V6uCaEPEvJdV91rz4cgyhADQ cSRiXenFQ/xr0H/TkwhNK9A6j0Oi5ywULvXOdOzsarHb/YLvXBjVwnJC6yEEIumHlfBV qv7Q==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=bBgOTP+8; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-85140-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85140-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id u8-20020a0562141c0800b0068ff701ec47si8876031qvc.9.2024.02.28.05.57.27 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Feb 2024 05:57:27 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-85140-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=bBgOTP+8; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-kernel+bounces-85140-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-85140-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 48D371C24987 for ; Wed, 28 Feb 2024 13:57:27 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3727615A4A7; Wed, 28 Feb 2024 13:55:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="bBgOTP+8" Received: from mail-ej1-f47.google.com (mail-ej1-f47.google.com [209.85.218.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CF1811534ED; Wed, 28 Feb 2024 13:55:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709128549; cv=none; b=am9ppY9Olv+LC5yiF213zjJfBjJ2JXOZjmsVsGfFZ0e63eEv9C9hpcviakB5huRjDT48qiPN0BEKJ3J6llJxISIPjfyutxIQLdIxHtVCG4jaCihdDNhl9yttCKWIUQYYH1ORaibLBFHSzvx3t2k6M6spAMgIWLOo0K887SY6aDI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709128549; c=relaxed/simple; bh=4ookyNkXsRC1w+SX2YFfQ/sHilHozwzGjehD4iaCqbg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=kWE82wbgEu7i2hTHAwxo+j5jvkPDTAAdRsVf1ZhQkz3cfFGamE3nzXM7NJcrdvocJ1CxdwTTB5E66/yWJPlbNt56m6MGUR5dsl9BiQPCOOUBACll7sK84y/NZDb7ZRi/aVtyNc25YrMs9ZLCvQ/WUq2cJ8YtL2opQOBC7eKjTA0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=bBgOTP+8; arc=none smtp.client-ip=209.85.218.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ej1-f47.google.com with SMTP id a640c23a62f3a-a43488745bcso500820366b.3; Wed, 28 Feb 2024 05:55:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1709128546; x=1709733346; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PYCemFNc1uUqcXulrZM7TUJ6mft8DchA0cSSH48XvI8=; b=bBgOTP+8WBwGsy8lEffEiIkJphw7CcvqMKis+oHJzmiSFeBlEhDfgPU5tkse3APjsx 4XrjEGl8t7ox9rca5ZtY+pyWkdq2qXJnlMCgSZQ3bxrr48fsLL3iEiQRxEETNyS76+jg fe0QUn5+yxxoSy8dPAgtTx5xYDhkJbkGHwF4Td6rVvMrKhI2PputaK2EJh5DdBl8jOB5 J1imRlTgL0X4UgYmMT6+YI5/5iS/oDx8wa3jQTZZdFtVjeEWP+D7DhqfBwKDi0H1N7iA OKudl6SXDO11mDUi1Y0s9juhKBa4mD3z86t20U2hLaAgXPoZW+Is3zdVAuevVBcs7O3w Vyjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709128546; x=1709733346; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PYCemFNc1uUqcXulrZM7TUJ6mft8DchA0cSSH48XvI8=; b=s10j2gSIDxp3xrN3GYst0EJ5sJFHaoJA4rvV9D0xzv5gR/CxYxeig6aARlaB7Cvh8J ME8G6H8dYB9rOn9sh5S5HcSJSgGzdKh1TA154ETB/eZVXkvvHox4UseNjBt2dq0AlKle BSvN/DDDSbNRwoZ2NGyReJCGcV012Pj+AFv4pQ87mZYlNvq+lw6ZChmT2HF0ckXtFQpT kn1FsS4eqkjakVQ4yXtmNgtStRrAJCGVvqrvxDgBXP26ODYdf/ek4Swvujs9IhZ9zDFS KekuIXuyGZwN07cdK4BlhD7ZQhbDtdwfRN7xZKUiOjQaY0IfkyASVad61b/87CH44nxj 1iiQ== X-Forwarded-Encrypted: i=1; AJvYcCWfzh1oMHyqwxXqHgBXIwEM32mOMBwLSMqck1PJGdN6WoM7++IxDiOS6LfP6qx7MxVz8NhUp4e5/WgaQ2srgLoNPXWZ4lrwTfPoesuVqu6fSqt9h/60li+8tZdHG9HT3627iXtiHE+fl0/cem2Xuj9k3eSE2FIBkSeJ1yaWo+5cbhOB2A== X-Gm-Message-State: AOJu0YybFTxVXlJmcyndQ4ORIpSNrJirnawLxmhi+adKtPEyO1wJ5htX u8pdzTApHuUqJqjN1hfyrn2VkCrN0s6sZ3YsSLrOUJh3k3kVsQ2h X-Received: by 2002:a17:906:3793:b0:a40:3aa3:9b8a with SMTP id n19-20020a170906379300b00a403aa39b8amr8365405ejc.15.1709128545867; Wed, 28 Feb 2024 05:55:45 -0800 (PST) Received: from HYB-hhAwRlzzMZb.ad.analog.com ([5.2.194.157]) by smtp.gmail.com with ESMTPSA id dc6-20020a170906c7c600b00a441674cae4sm312487ejb.222.2024.02.28.05.55.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Feb 2024 05:55:45 -0800 (PST) From: Dumitru Ceclan To: Cc: Jonathan Cameron , Rob Herring , Krzysztof Kozlowski , Conor Dooley , David Lechner , Ceclan Dumitru , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Dumitru Ceclan Subject: [PATCH v2 2/2] iio: adc: ad7173: add support for additional models Date: Wed, 28 Feb 2024 15:54:57 +0200 Message-ID: <20240228135532.30761-3-mitrutzceclan@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240228135532.30761-1-mitrutzceclan@gmail.com> References: <20240228135532.30761-1-mitrutzceclan@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792151280697539777 X-GMAIL-MSGID: 1792151280697539777 Add support for Analog Devices AD7172-2, AD7175-8, AD7177-2. Signed-off-by: Dumitru Ceclan --- drivers/iio/adc/ad7173.c | 82 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 74 insertions(+), 8 deletions(-) diff --git a/drivers/iio/adc/ad7173.c b/drivers/iio/adc/ad7173.c index b42fbe28a325..e60ecce20e08 100644 --- a/drivers/iio/adc/ad7173.c +++ b/drivers/iio/adc/ad7173.c @@ -1,6 +1,11 @@ // SPDX-License-Identifier: GPL-2.0+ /* - * AD7172-2/AD7173-8/AD7175-2/AD7176-2 SPI ADC driver + * AD717x family SPI ADC driver + * + * Supported devices: + * AD7172-2/AD7172-4/AD7173-8/AD7175-2 + * AD7175-8/AD7176-2/AD7177-2 + * * Copyright (C) 2015, 2024 Analog Devices, Inc. */ @@ -61,10 +66,13 @@ #define AD7173_AIN_TEMP_POS 17 #define AD7173_AIN_TEMP_NEG 18 -#define AD7172_ID 0x00d0 -#define AD7173_ID 0x30d0 -#define AD7175_ID 0x0cd0 +#define AD7172_2_ID 0x00d0 #define AD7176_ID 0x0c90 +#define AD7175_2_ID 0x0cd0 +#define AD7172_4_ID 0x2050 +#define AD7173_ID 0x30d0 +#define AD7175_8_ID 0x3cd0 +#define AD7177_ID 0x4fd0 #define AD7173_ID_MASK GENMASK(15, 4) #define AD7173_ADC_MODE_REF_EN BIT(15) @@ -110,15 +118,19 @@ #define AD7173_SETUP_REF_SEL_EXT_REF 0x0 #define AD7173_VOLTAGE_INT_REF_uV 2500000 #define AD7173_TEMP_SENSIIVITY_uV_per_C 477 +#define AD7177_ODR_START_VALUE 0x07 #define AD7173_FILTER_ODR0_MASK GENMASK(5, 0) #define AD7173_MAX_CONFIGS 8 enum ad7173_ids { ID_AD7172_2, + ID_AD7172_4, ID_AD7173_8, ID_AD7175_2, + ID_AD7175_8, ID_AD7176_2, + ID_AD7177_2, }; struct ad7173_device_info { @@ -190,7 +202,7 @@ static const unsigned int ad7175_sinc5_data_rates[] = { static const struct ad7173_device_info ad7173_device_info[] = { [ID_AD7172_2] = { .name = "ad7172-2", - .id = AD7172_ID, + .id = AD7172_2_ID, .num_inputs = 5, .num_channels = 4, .num_configs = 4, @@ -200,6 +212,17 @@ static const struct ad7173_device_info ad7173_device_info[] = { .sinc5_data_rates = ad7173_sinc5_data_rates, .num_sinc5_data_rates = ARRAY_SIZE(ad7173_sinc5_data_rates), }, + [ID_AD7172_4] = { + .id = AD7172_4_ID, + .num_inputs = 9, + .num_channels = 8, + .num_configs = 8, + .num_gpios = 4, + .has_temp = false, + .clock = 2 * HZ_PER_MHZ, + .sinc5_data_rates = ad7173_sinc5_data_rates, + .num_sinc5_data_rates = ARRAY_SIZE(ad7173_sinc5_data_rates), + }, [ID_AD7173_8] = { .name = "ad7173-8", .id = AD7173_ID, @@ -214,7 +237,7 @@ static const struct ad7173_device_info ad7173_device_info[] = { }, [ID_AD7175_2] = { .name = "ad7175-2", - .id = AD7175_ID, + .id = AD7175_2_ID, .num_inputs = 5, .num_channels = 4, .num_configs = 4, @@ -224,6 +247,17 @@ static const struct ad7173_device_info ad7173_device_info[] = { .sinc5_data_rates = ad7175_sinc5_data_rates, .num_sinc5_data_rates = ARRAY_SIZE(ad7175_sinc5_data_rates), }, + [ID_AD7175_8] = { + .id = AD7175_8_ID, + .num_inputs = 17, + .num_channels = 16, + .num_configs = 8, + .num_gpios = 4, + .has_temp = true, + .clock = 16 * HZ_PER_MHZ, + .sinc5_data_rates = ad7175_sinc5_data_rates, + .num_sinc5_data_rates = ARRAY_SIZE(ad7175_sinc5_data_rates), + }, [ID_AD7176_2] = { .name = "ad7176-2", .id = AD7176_ID, @@ -236,6 +270,17 @@ static const struct ad7173_device_info ad7173_device_info[] = { .sinc5_data_rates = ad7175_sinc5_data_rates, .num_sinc5_data_rates = ARRAY_SIZE(ad7175_sinc5_data_rates), }, + [ID_AD7177_2] = { + .id = AD7177_ID, + .num_inputs = 5, + .num_channels = 4, + .num_configs = 4, + .num_gpios = 2, + .has_temp = true, + .clock = 16 * HZ_PER_MHZ, + .sinc5_data_rates = ad7175_sinc5_data_rates, + .num_sinc5_data_rates = ARRAY_SIZE(ad7175_sinc5_data_rates), + }, }; static const char *const ad7173_ref_sel_str[] = { @@ -656,7 +701,12 @@ static int ad7173_write_raw(struct iio_dev *indio_dev, switch (info) { case IIO_CHAN_INFO_SAMP_FREQ: freq = val * MILLI + val2 / MILLI; - for (i = 0; i < st->info->num_sinc5_data_rates - 1; i++) + /* + * AD7177-2 has the filter values [0-6] marked as reserved + * datasheet page 58 + */ + i = (st->info->id == AD7177_ID) ? AD7177_ODR_START_VALUE : 0; + for (; i < st->info->num_sinc5_data_rates - 1; i++) if (freq >= st->info->sinc5_data_rates[i]) break; @@ -908,8 +958,15 @@ static int ad7173_fw_parse_channel_config(struct iio_dev *indio_dev) else ref_sel = ret; + if (ref_sel == AD7173_SETUP_REF_SEL_INT_REF && + st->info->id == AD7172_2_ID) { + fwnode_handle_put(child); + return dev_err_probe(dev, -EINVAL, + "Internal reference is not available on ad7172-2\n"); + } + if (ref_sel == AD7173_SETUP_REF_SEL_EXT_REF2 && - st->info->id != AD7173_ID) { + st->info->id != AD7173_ID && st->info->id != AD7172_2_ID) { fwnode_handle_put(child); return dev_err_probe(dev, -EINVAL, "External reference 2 is only available on ad7173-8\n"); @@ -1080,21 +1137,30 @@ static int ad7173_probe(struct spi_device *spi) static const struct of_device_id ad7173_of_match[] = { { .compatible = "adi,ad7172-2", .data = &ad7173_device_info[ID_AD7172_2]}, + { .compatible = "adi,ad7172-4", + .data = &ad7173_device_info[ID_AD7172_4]}, { .compatible = "adi,ad7173-8", .data = &ad7173_device_info[ID_AD7173_8]}, { .compatible = "adi,ad7175-2", .data = &ad7173_device_info[ID_AD7175_2]}, + { .compatible = "adi,ad7175-8", + .data = &ad7173_device_info[ID_AD7175_8]}, { .compatible = "adi,ad7176-2", .data = &ad7173_device_info[ID_AD7176_2]}, + { .compatible = "adi,ad7177-2", + .data = &ad7173_device_info[ID_AD7177_2]}, { } }; MODULE_DEVICE_TABLE(of, ad7173_of_match); static const struct spi_device_id ad7173_id_table[] = { { "ad7172-2", (kernel_ulong_t)&ad7173_device_info[ID_AD7172_2]}, + { "ad7172-4", (kernel_ulong_t)&ad7173_device_info[ID_AD7172_4] }, { "ad7173-8", (kernel_ulong_t)&ad7173_device_info[ID_AD7173_8]}, { "ad7175-2", (kernel_ulong_t)&ad7173_device_info[ID_AD7175_2]}, + { "ad7175-8", (kernel_ulong_t)&ad7173_device_info[ID_AD7175_8]}, { "ad7176-2", (kernel_ulong_t)&ad7173_device_info[ID_AD7176_2]}, + { "ad7177-2", (kernel_ulong_t)&ad7173_device_info[ID_AD7177_2]}, { } }; MODULE_DEVICE_TABLE(spi, ad7173_id_table);