Received: by 2002:ab2:7a09:0:b0:1f8:46dc:890e with SMTP id k9csp309002lqo; Wed, 15 May 2024 15:38:07 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXzj0V+LQP72XoV+ABO5F5bbyGH5kXFKyLxP6vNi7ETJmSeCOfd2aZzuazaPy61Awob3veLP3k0gebBmHFuNVuARY7j5s4EA1tSgtjXEQ== X-Google-Smtp-Source: AGHT+IGsMRyXqEmL8PcDiqoFYPRVbbxJUnJgV3kziYYbdMm86Prxubexzi/AWHraaq89NXc7+dis X-Received: by 2002:ae9:e502:0:b0:792:e3d3:2bad with SMTP id af79cd13be357-792e3d32c9amr878667185a.22.1715812687237; Wed, 15 May 2024 15:38:07 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1715812687; cv=pass; d=google.com; s=arc-20160816; b=KAI2WeE/tnp2MOI8xaR0tZ20GtMOgEjFjdbU2GrLm5D1jL3rhGiYeYfCe03s0xm87C wCB3HrDAefutDxmXGlZcp5X+m82a01LIZPODGkZsHKUE4s5Fs/O5AlJfzyy74VctjREH y+rerGCb80McSIDFu79hMIXnL89GzZI9QGxbO8HWMpK9mgAcG4u1m+iSb7t/pGBK5IKS oePTcEHFEdTuxMksrVsOLbvmQ3cDuBm29JoXwc2Jv5VTe6K0HbL2wlNa3j6NN3zFc+dO BPMTploh3PfRGEykzLlH5JO/wJhDMZUYearVDe9xOYgL101f7qMm5qpKlgr3pd8f53pS poGQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:dkim-signature; bh=TEgmrYZedq/+04pEwI8dkVxH/OdcAS6xqIEmbrHWo0Q=; fh=wFsk5ivQvcWxzZbDuvrDN4ITeM7aqJoyS6qj16anqIY=; b=j3WvYyumBHGlLOGLut/r/kIxXDqPI28FVlTSjLwI2RF767hfaPmUw35/kTFu+HAy/9 7ijhL86w5C6FGPGosufG1GO65z8T8W/tGRPsKDlNjzva0y9PcxXDAvben5FaCoReptOS s8YrP6w+nq9aV1mHbVAo8ivMsuzEzmFV+jvgnTh46nxvcu6DcJ5SbD9XeoAgJvQ6fEvl p2VOUeRVQmT5FSziskHUE73r5jKfB/LNw2zR1MnCywLujYqKmbQRAbpIs5gIdpK61jLX He7g8GuDUcSpAra6nlxOYZ5sFjjcGmz5pQPgqZaAxKA5PubAhhuavnueruw0RYpGrBGN GV8A==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@baylibre-com.20230601.gappssmtp.com header.s=20230601 header.b=CHC7+ZFK; arc=pass (i=1 spf=pass spfdomain=baylibre.com dkim=pass dkdomain=baylibre-com.20230601.gappssmtp.com); spf=pass (google.com: domain of linux-kernel+bounces-180450-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-180450-linux.lists.archive=gmail.com@vger.kernel.org" Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id d75a77b69052e-43df56ca75esi151278021cf.637.2024.05.15.15.38.07 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 May 2024 15:38:07 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-180450-linux.lists.archive=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=@baylibre-com.20230601.gappssmtp.com header.s=20230601 header.b=CHC7+ZFK; arc=pass (i=1 spf=pass spfdomain=baylibre.com dkim=pass dkdomain=baylibre-com.20230601.gappssmtp.com); spf=pass (google.com: domain of linux-kernel+bounces-180450-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-180450-linux.lists.archive=gmail.com@vger.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 ny.mirrors.kernel.org (Postfix) with ESMTPS id D96831C2231E for ; Wed, 15 May 2024 22:38:06 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 8E1C43FE2A; Wed, 15 May 2024 22:37:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b="CHC7+ZFK" Received: from mail-lj1-f182.google.com (mail-lj1-f182.google.com [209.85.208.182]) (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 9445E39FEC for ; Wed, 15 May 2024 22:37:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.182 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715812678; cv=none; b=KX3lBbrZw+9lDNYeHL+YGZItLIVU0c4UgEWY7lZoWY4IrCWjPaQUvabtIdbgAjw9NxreuoicQWHY1twqkZV1Zr5PisquMuvUGItafjwQebfpWzWsH0AezArjQgQx2jbkr+fTFkHKRyp8p/oabKU9N1HwdJAOKZ5w2iizJMKHuoU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715812678; c=relaxed/simple; bh=LAK9gqeeRypr0CEQ5aDcyGWZ/tUpIrRph0fJnrpzPLA=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=CW06M+TzRvPGrqla015kVruCrS7Ubi6B+RiZt+f0AnfVwT5m/0ev0qzvl9Qsb5lhKh8ozE8vTl+RpsSjENLWNfMbZ75Fsx3bBreQP3JlosBEQK2OeqoYNXJzSpUZp5ReMBgEtdllVgTxnLYobp1ABa5K/1yToZ5ScRERZTTfjPA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre-com.20230601.gappssmtp.com header.i=@baylibre-com.20230601.gappssmtp.com header.b=CHC7+ZFK; arc=none smtp.client-ip=209.85.208.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Received: by mail-lj1-f182.google.com with SMTP id 38308e7fff4ca-2e3efa18e6aso907171fa.0 for ; Wed, 15 May 2024 15:37:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1715812675; x=1716417475; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=TEgmrYZedq/+04pEwI8dkVxH/OdcAS6xqIEmbrHWo0Q=; b=CHC7+ZFKOR4jBfKKsKKbWmik++sbf9eOWQEhBsHVP1Q9wxD4f369ss7R+i+Yw+MdO9 WeOIVDmnw5hVeAALY4GIEWgVaJcrKac/+RlkPHv8OjesuIuXUaJuNLVI4bSEwPFUNQ/l lqkRHUcFnt3jZdVYveqisF6GxouSmP+5luwuKOtOQTRM95Wcrwvjkh74rZ4WO9luw77k 6AtAEI/P28doiqCzYDU378BQMTEAcmFqrBZ5WFyzStrD/24shlCH8SZNR8WdH9TNuqjD yGUn2Vb4GE4s6orNwnSu2nKvx4jE5xH8J+ogdH6BfNVwXt6fk1LM/yxWMVoFwTcPa5dL LqMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715812675; x=1716417475; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TEgmrYZedq/+04pEwI8dkVxH/OdcAS6xqIEmbrHWo0Q=; b=Hco2VSadjSUnxttdkj3E24WaFpjo6NQ7wfFew/IsBAbh8iqnRiFWBwVtLzpNrYN9HV CjrJPunDe0cVc2l2mexHwAvv5MKwRox5eL55fqj0FqWuTjO0rFh4f985d/SSmTWswzYk 0Ohpf17bD4cyM1qfcKq90UW9T5tG68VNnaS2cZnxehlWkGSIQNUmKuPV9RlPDaENVRUx kIy7eCtQDCJUEZJz7tmoED9i7rGniH4us/XrAJRAJxl5LFLKTi+l4OZn3ymcB3aVcOld suVZy6kaHBxRXdnMQrNkXb+Te/5ru2WdH0B7HX1Rg8KH9rD+BLWkWXhsklXh5cnMV0fO OzXg== X-Forwarded-Encrypted: i=1; AJvYcCUzFOrq9hsccM734UH0XK8cFqHI1dY+OUlYy76VVjqeRD8BOaiIh/eoPgR5MPQ9T9leM4chTmjFAi1ZjY4aNxmJEn3P8tkNRDtdwHla X-Gm-Message-State: AOJu0YxefXryFtPknH6LwaCBSQeZhzsS8+hcouMTcASNJrZbsUBvB2vd 1RiZldOrXH2V+HbOzCOAN4yeN3Mgzvl6JRiYjS1fQla+Wci92HBzexTNSwCzeGsXrHfSIw8kSaN cp64xpfajyJJ0/tSIwsp8xLhd+7X/kQIq1WJHpw== X-Received: by 2002:a2e:868f:0:b0:2df:8e58:d05c with SMTP id 38308e7fff4ca-2e51ad435admr55107431fa.15.1715812674616; Wed, 15 May 2024 15:37:54 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20240514-ad4111-v2-0-29be6a55efb5@analog.com> <20240514-ad4111-v2-1-29be6a55efb5@analog.com> In-Reply-To: <20240514-ad4111-v2-1-29be6a55efb5@analog.com> From: David Lechner Date: Wed, 15 May 2024 17:37:43 -0500 Message-ID: Subject: Re: [PATCH v2 1/9] dt-bindings: adc: ad7173: add support for ad411x To: dumitru.ceclan@analog.com Cc: Lars-Peter Clausen , Michael Hennerich , Jonathan Cameron , Rob Herring , Krzysztof Kozlowski , Conor Dooley , linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Dumitru Ceclan Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, May 14, 2024 at 2:23=E2=80=AFAM Dumitru Ceclan via B4 Relay wrote: > > From: Dumitru Ceclan > > Add support for: AD4111, AD4112, AD4114, AD4115, AD4116. > > AD411x family ADCs support a VCOM pin, dedicated for single-ended usage. > AD4111/AD4112 support current channels, usage is implemented by > specifying channel reg values bigger than 15. > > Signed-off-by: Dumitru Ceclan > --- > .../devicetree/bindings/iio/adc/adi,ad7173.yaml | 118 +++++++++++++++= +++++- > 1 file changed, 117 insertions(+), 1 deletion(-) > > diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml b/= Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml > index ea6cfcd0aff4..6cc3514f5ed8 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 proces= sing > + 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,6 +145,31 @@ patternProperties: > maximum: 15 > > diff-channels: > + description: | > + For using current channels specify select the current inputs > + and enable the adi,current-channel property. > + > + Family AD411x supports a dedicated VCOM voltage input. Did you mean VINCOM? Searching the datasheets for "VCOM" comes up empty. > + To select it set the second channel to 16. > + (VIN2, VCOM) -> diff-channels =3D <2 16> Jonathan mentioned this in v1 with regard to the current inputs, but it applies here too. There is a new proposed single-channel property [1] that would be preferred when an input is used as a single-ended or pseudo-differential input (i.e. with VINCOM or ADCIN15). [1]: https://lore.kernel.org/linux-iio/20240514120222.56488-5-alisa.roman@a= nalog.com/ > + > + There are special values that can be selected besides the volt= age > + analog inputs: > + 21: REF+ > + 22: REF=E2=88=92 > + Supported only by AD7172-2, AD7172-4, AD7175-2, AD7175-8, AD71= 77-2: > + 19: ((AVDD1 =E2=88=92 AVSS)/5)+ > + 20: ((AVDD1 =E2=88=92 AVSS)/5)=E2=88=92 > + Supported only by AD4111, AD4112: > + 12: IIN3+ > + 11: IIN3=E2=88=92 > + 13: IIN2+ > + 10: IIN2=E2=88=92 > + 14: IIN1+ > + 9: IIN1=E2=88=92 > + 15: IIN0+ > + 8: IIN0=E2=88=92 I just made a late reply on v1 where Jonathan suggested that the current inputs are differential with a similar comment to this: It doesn't seem to me like current inputs are differential if they are only measuring one current. They take 2 pins because you need a way for current to come in and go back out, but the datasheet calls them single-ended inputs. > + > items: > minimum: 0 > maximum: 31 > @@ -154,6 +195,23 @@ patternProperties: > - avdd > default: refout-avss > > + adi,current-channel: > + description: | > + Signal that the selected inputs are current channels. > + Only available on AD4111 and AD4112. > + type: boolean > + > + adi,channel-type: > + description: > + Used to differentiate between different channel types as the d= evice > + register configurations are the same for all usage types. > + $ref: /schemas/types.yaml#/definitions/string > + enum: > + - single-ended > + - pseudo-differential > + - differential > + default: differential > + As suggested above, we should soon have diff-channels and single-channel to differentiate between (fully) differential and single-ended. Do we actually need to differentiate between single-ended and pseudo-differential though? I think the AD4116 datasheet is the only one that uses both of those terms. It gives the examples that for "single-ended" ADCIN15 would be connected to AVSS and for "pseudo-differential" ADCIN15 would be connected to REFOUT (AVSS + 2.5 V). So the only difference seems to be if the voltage on ADCIN15 is =3D=3D 0V or !=3D 0V. To make this like other pseudo-differential chips we have done recently, it seems to me like we should have an adcin15-supply property to describe the ADCIN15 input. Then we could use that property to determine single-ended vs. pseudo-differential (if there actually is a need for that) and we wouldn't need the adi,channel-type property. > required: > - reg > - diff-channels > @@ -166,7 +224,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 +244,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 As discussed recently in the the very similar ad719x bindings [2], we may have been misunderstanding this limit so far. 15 is a bit artificially low since input pins can be used more than once in different "channels". But that is really an issues with the existing bindings, not just this patch. [2]: https://lore.kernel.org/linux-iio/20240511122955.2372f56e@jic23-huawei= / > + > + - 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 +298,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] > > -- > 2.43.0 > >