Received: by 2002:ab2:6309:0:b0:1fb:d597:ff75 with SMTP id s9csp484503lqt; Thu, 6 Jun 2024 09:08:33 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXRFcKTi4I4yXR2Kp4zbDWdqCrUkYz+jzP6JnqnKqIG6iAhYFNBNAX9eh3upmo3BrkCkO4bv1Ha8BDKuo51mYCAtnE5vjJ3qgYPN7fNdA== X-Google-Smtp-Source: AGHT+IFWg0Axj2tIGOJuCOg7e3IwbWkjcklYn5wCwcKxQHm5Etgzx//lPyzMVoDJXHm/Uk2Wmfe7 X-Received: by 2002:a17:907:110f:b0:a68:f084:1099 with SMTP id a640c23a62f3a-a6cd665d5fcmr1958066b.32.1717690113163; Thu, 06 Jun 2024 09:08:33 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1717690113; cv=pass; d=google.com; s=arc-20160816; b=Gs9VjCnTiye1wwfbO/9mVvgnm7nFpaP0CK9tDzbD9a66nV+YFsWvi5SJDTWKeB8zzQ KiN3PF5xz2mqrmS+O1qNxEk4QM4DTERqL/8mIo2v52gEv30TxGMYIiv/JbsUd98LLEEr H6mqH0ZtBoGC7khKwA6Gpd999/8U+fIqXaN58TqR96lNztIz97GmeIqw1gSWuYMFWutC 5j5Ib9eGU0jH19PvFSEQrwCvpXMnhttlD4Bxf0g5SSdyLTF5Z1Sh1E95o9By78rjYYyD tvUMSyXILIOLOSHd7gyMR76yxGUWwWeN6TFSP58/GASbX4ikDffksrAtu29ClS0K+uf3 zMvQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=reply-to:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:subject:date:from:dkim-signature; bh=wpLnL13BlOXjR+VeDj6kCyzNKty/Dc/WzR9Td1Gh6hc=; fh=LhdatDguh+IuN1lDyS6rzhx9ubttSYYZpDCGFgekH1E=; b=s1N3/hKgHxMfsP2lHievRk8UWWB5WrrGIdL142dj2j73mbJrd/uYECW+VUgESmc/Ou 9Or0wRxDKjZ2qcqOQeP8xcw2fI364kwoXWjoGkjcib4MpjEPOUXssGXsSSh9OtGb4Y46 miU3abJpcFnoWG+Rp2paXpvIUOpJDpKFoFg0TfTeHxkNdxiYeLnXQQ2nIjbhyseSRHWS EK7qyyhpsN5ebQeVqjB2rc4RbF6OIP3o8m66x24PLlUVPIe1tqEOgmv6tqG6Vx3QNEKe Ohu1xWwl980nBOmn6tUPdZaxY5j8wQs1qqig5pef4jg/I681an6pMwju+oK5erv2gmdH o/Aw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=HteBn5Jw; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-204643-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-204643-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id a640c23a62f3a-a6c8074b444si79605066b.1047.2024.06.06.09.08.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Jun 2024 09:08:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-204643-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=HteBn5Jw; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-204643-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-204643-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org 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 B32BE1F225E5 for ; Thu, 6 Jun 2024 16:08:32 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 7210A1990BE; Thu, 6 Jun 2024 16:07:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="HteBn5Jw" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 18758197A95; Thu, 6 Jun 2024 16:07:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717690062; cv=none; b=kFxl7OkGKQKFNYCZ13GMuOi+pcRz/Njp73qY8WkRA5Iz3Qw2zLXW+8/bUNuZ0KYbAIVR97D3aj964rfqGq2jV7uDuGuuQ/Vw9MMs1r2KbPXyOqt1NHvSzCWiRfZboU3u28q+hXfLPYmXQUBCBUy7IG3+6tFHimpGWfhnITtWAlE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1717690062; c=relaxed/simple; bh=vG7MiK5lwP9gTD7IW9Ex2zb2lCF5cVjPO4UKq3rUWGM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KbDgS13jFXvt69vvIyHLkfCSMMnAYFt+H1IuRWLrVRFYTenw2Yr6uqKS1qCekzWqx/H7qLdiafn3n3ImQsvY5F2rKth4XD7n9wXXRXB/z14Qz6UkdZcwQc3fmUgPxO7XPyELU8kumqzDrJmoNg52YxXvGS382ewzxF7e3w/+6G0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HteBn5Jw; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPS id B3B58C32781; Thu, 6 Jun 2024 16:07:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1717690061; bh=vG7MiK5lwP9gTD7IW9Ex2zb2lCF5cVjPO4UKq3rUWGM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=HteBn5JwVFBJj0hth4xpsaxrPYwEZWEn3104Zbti+ovMuxW0X7C94HxizxQQm7ELM RX/3Z/F2fIu03NZXM8TopqWdkbPW3zYJ4vky9ksUkfhSx+Ex3hnQI1gMKFutW+EoGm e003WHA8ntERcW5UoLFuW+iff9xXvpYKCMhUTseMLxJtP04emLuWn1IzuI1Hfb6EvL cc7A+hEzB9xxtWM9R0zkcKWZi3YtJPK/sklsBWzOM5MgieKiKRLsMOpJ56AATVODKR CIS07Qj1NRDUc7wKPuJ4EJI5p9B712PEEnI/GciXfsRQNsgWf2D9rc5mlEFDDFlm/F uTdxldu6nupPg== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id A5DABC27C54; Thu, 6 Jun 2024 16:07:41 +0000 (UTC) From: Dumitru Ceclan via B4 Relay Date: Thu, 06 Jun 2024 19:07:41 +0300 Subject: [PATCH v6 2/9] dt-bindings: adc: ad7173: add support for ad411x 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: 8bit Message-Id: <20240606-ad4111-v6-2-573981fb3e2e@analog.com> References: <20240606-ad4111-v6-0-573981fb3e2e@analog.com> In-Reply-To: <20240606-ad4111-v6-0-573981fb3e2e@analog.com> To: Ceclan Dumitru Cc: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Rob Herring , Krzysztof Kozlowski , Conor Dooley , David Lechner , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Dumitru Ceclan X-Mailer: b4 0.13.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1717690059; l=8769; i=dumitru.ceclan@analog.com; s=20240313; h=from:subject:message-id; bh=xeEJYH2gvo+9v8BsizW6ZALFjkNIafLPtcaGba94JsM=; b=pk+qFOAtrWyG1+pBt8mk9pLvGJk4PGA7u/1Wz1Q0+zvC55sDiPvaYC/FxrRuGB/jvr8fQjI+e urRBEmTQCydA3xOJverCZuGKZKXDr3mLpHaY4UYujlohk4/vN63rp0w X-Developer-Key: i=dumitru.ceclan@analog.com; a=ed25519; pk=HdqMlVyrcazwoiai7oN6ghU+Bj1pusGUFRl30jhS7Bo= X-Endpoint-Received: by B4 Relay for dumitru.ceclan@analog.com/20240313 with auth_id=140 X-Original-From: Dumitru Ceclan Reply-To: dumitru.ceclan@analog.com From: Dumitru Ceclan Add support for: AD4111, AD4112, AD4114, AD4115, AD4116. AD411x family ADCs support a VCOM pin. The purpose of this pin is to offer a dedicated common-mode voltage input for single-ended channels. This pin is specified as supporting a differential channel with VIN10 on model AD4116. AD4111/AD4112 support current channels. Support is implemented using single-channel and "adi,current-channel". Signed-off-by: Dumitru Ceclan --- .../devicetree/bindings/iio/adc/adi,ad7173.yaml | 194 ++++++++++++++++++++- 1 file changed, 192 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml index ea6cfcd0aff4..17c5d39cc2c1 100644 --- a/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml @@ -19,7 +19,18 @@ description: | primarily for measurement of signals close to DC but also delivers outstanding performance with input bandwidths out to ~10kHz. + Analog Devices AD411x ADC's: + The AD411X family encompasses a series of low power, low noise, 24-bit, + sigma-delta analog-to-digital converters that offer a versatile range of + specifications. They integrate an analog front end suitable for processing + fully differential/single-ended and bipolar voltage inputs. + Datasheets for supported chips: + https://www.analog.com/media/en/technical-documentation/data-sheets/AD4111.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/AD4112.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/AD4114.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/AD4115.pdf + https://www.analog.com/media/en/technical-documentation/data-sheets/AD4116.pdf 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 @@ -31,6 +42,11 @@ description: | properties: compatible: enum: + - adi,ad4111 + - adi,ad4112 + - adi,ad4114 + - adi,ad4115 + - adi,ad4116 - adi,ad7172-2 - adi,ad7172-4 - adi,ad7173-8 @@ -129,10 +145,56 @@ patternProperties: maximum: 15 diff-channels: + description: | + This property is used for defining the inputs of a differential + voltage channel. The first value is the positive input and the second + value is the negative input of the channel. + + Family AD411x supports a dedicated VINCOM voltage input. + To select it set the second channel to 16. + (VIN2, VINCOM) -> diff-channels = <2 16> + + There are special values that can be selected besides the voltage + analog inputs: + 21: REF+ + 22: REF− + + Supported only by AD7172-2, AD7172-4, AD7175-2, AD7175-8, AD7177-2, + must be paired together and can be used to monitor the power supply + of the ADC: + 19: ((AVDD1 − AVSS)/5)+ + 20: ((AVDD1 − AVSS)/5)− + items: minimum: 0 maximum: 31 + single-channel: + description: | + This property is used for defining a current channel or the positive + input of a voltage channel (single-ended or pseudo-differential). + + Models AD4111 and AD4112 support current channels. + Example: (IIN2+, IIN2−) -> single-channel = <2> + To correctly configure a current channel set the "adi,current-channel" + property to true. + + To configure a single-ended/pseudo-differential channel set the + "common-mode-channel" property to the desired negative voltage input. + + When used as a voltage channel, special inputs are valid as well. + minimum: 0 + maximum: 31 + + common-mode-channel: + description: + This property is used for defining the negative input of a + single-ended or pseudo-differential voltage channel. + + Special inputs are valid as well. + minimum: 0 + maximum: 31 + adi,reference-select: description: | Select the reference source to use when converting on @@ -154,9 +216,31 @@ patternProperties: - avdd default: refout-avss + adi,current-channel: + $ref: /schemas/types.yaml#/definitions/flag + description: | + Signal that the selected inputs are current channels. + Only available on AD4111 and AD4112. + required: - reg - - diff-channels + + allOf: + - oneOf: + - required: [single-channel] + properties: + diff-channels: false + - required: [diff-channels] + properties: + single-channel: false + adi,current-channel: false + common-mode-channel: false + + - if: + required: [common-mode-channel] + then: + properties: + adi,current-channel: false required: - compatible @@ -166,7 +250,6 @@ allOf: - $ref: /schemas/spi/spi-peripheral-props.yaml# # Only ad7172-4, ad7173-8 and ad7175-8 support vref2 - # Other models have [0-3] channel registers - if: properties: compatible: @@ -187,6 +270,37 @@ allOf: - vref - refout-avss - avdd + + - if: + properties: + compatible: + contains: + enum: + - adi,ad4114 + - adi,ad4115 + - adi,ad4116 + - adi,ad7173-8 + - adi,ad7175-8 + then: + patternProperties: + "^channel@[0-9a-f]$": + properties: + reg: + maximum: 15 + + - if: + properties: + compatible: + contains: + enum: + - adi,ad7172-2 + - adi,ad7175-2 + - adi,ad7176-2 + - adi,ad7177-2 + then: + patternProperties: + "^channel@[0-9a-f]$": + properties: reg: maximum: 3 @@ -210,6 +324,34 @@ allOf: required: - adi,reference-select + - if: + properties: + compatible: + contains: + enum: + - adi,ad4111 + - adi,ad4112 + - adi,ad4114 + - adi,ad4115 + - adi,ad4116 + then: + properties: + avdd2-supply: false + + - if: + properties: + compatible: + not: + contains: + enum: + - adi,ad4111 + - adi,ad4112 + then: + patternProperties: + "^channel@[0-9a-f]$": + properties: + adi,current-channel: false + - if: anyOf: - required: [clock-names] @@ -221,6 +363,7 @@ allOf: unevaluatedProperties: false examples: + # Example AD7173-8 with external reference connected to REF+/REF-: - | #include #include @@ -277,3 +420,50 @@ examples: }; }; }; + + # Example AD4111 with current channel and single-ended channel: + - | + #include + #include + + spi { + #address-cells = <1>; + #size-cells = <0>; + + adc@0 { + compatible = "adi,ad4111"; + reg = <0>; + + #address-cells = <1>; + #size-cells = <0>; + + interrupts = <25 IRQ_TYPE_EDGE_FALLING>; + interrupt-names = "rdy"; + interrupt-parent = <&gpio>; + spi-max-frequency = <5000000>; + gpio-controller; + #gpio-cells = <2>; + #clock-cells = <0>; + + channel@0 { + reg = <0>; + bipolar; + diff-channels = <4 5>; + }; + + // Single ended channel VIN2/VINCOM + channel@1 { + reg = <1>; + bipolar; + single-channel = <2>; + common-mode-channel = <16>; + }; + + // Current channel IN2+/IN2- + channel@2 { + reg = <2>; + single-channel = <2>; + adi,current-channel; + }; + }; + }; -- 2.43.0