From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4EA35C2BD09 for ; Fri, 28 Jun 2024 21:35:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:In-Reply-To:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=01sqsUIxiUY/slRs0jfwolDPWaY30dSFSZdMfkMKI54=; b=fBJR95u2e1u9Pjsr0ahQjY+nde xUHUCUIzN3VVexKA0dgWhWtAViIOzA5nhohdiblqTNYIUh5fQ/5C2rAJWceBilZziusvt0yZji7do genGOC+WdkKXrTwwvvmSOAxNkow6zfCQ2Sel8DYXHEAwOhwAXc9fw9ptnmpCrvFwXt6N7VQXUByuv rxdmgUWWbgkn6QxdtPvPL2UySXmpEJ0B9P2Yw60Tz3Kb/2ULWGnoZNJ+wwPHaKWRjRJMAqaN0pXCO faMwx3T7iVH99Tv4IUJw92JkGU1pM7x0dR/J7ZY+CJFmS3JaxvvXUq7Nu2d9aYYHPuIG5uyFnh5dl xg/XAu3w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNJFl-0000000F2BD-1dsX; Fri, 28 Jun 2024 21:35:33 +0000 Received: from sin.source.kernel.org ([145.40.73.55]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sNJFa-0000000F29Z-2OMg for linux-arm-kernel@lists.infradead.org; Fri, 28 Jun 2024 21:35:24 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id C0410CE3C5A; Fri, 28 Jun 2024 21:35:20 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B5CFDC116B1; Fri, 28 Jun 2024 21:35:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1719610520; bh=TQSYZSsDtzsMcr8D2e2z9zHsl5dNXJP4IAvQWDj6Sgw=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Q+Ixt1TryhrnJ6NBZK+ofuKGvY4vXaT8TcLw6X4GD9WWrdch5TtpcAqDhExQ6FPCi LFyBnOxvYZfsEnh3k87aspOCmC5/xr+Osj3E8QfqqVx294jt1/A5T47WaVI/bvX2+G hUWfMxlCKxeODdivD1rvWGCCZW4/yEJ2KlxhKsDnU9hkhSdRE5uKBLdptl4o72PxFe QZkv7xqa8Ty+y87+5OYOkTs3P70xwEaO+kZJbK55SQpzWJf5VANqpkrzVKah6WsYWd fKh4uoGtaYaMJ6n14xsyR9yNOuX+70SVuaB23qng+cZ/xMiANl4Bcd/IK4JPZ87mhL SXMTdxQMDibZw== Date: Fri, 28 Jun 2024 15:35:17 -0600 From: Rob Herring To: Olivier Moysan Cc: fabrice.gasnier@foss.st.com, Arnaud Pouliquen , Jonathan Cameron , Lars-Peter Clausen , Krzysztof Kozlowski , Conor Dooley , Maxime Coquelin , Alexandre Torgue , alsa-devel@alsa-project.org, linux-iio@vger.kernel.org, devicetree@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 4/8] dt-bindings: iio: dfsdm: move to backend framework Message-ID: <20240628213517.GA225013-robh@kernel.org> References: <20240625150717.1038212-1-olivier.moysan@foss.st.com> <20240625150717.1038212-5-olivier.moysan@foss.st.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240625150717.1038212-5-olivier.moysan@foss.st.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240628_143522_995102_17BCD352 X-CRM114-Status: GOOD ( 26.72 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Tue, Jun 25, 2024 at 05:07:12PM +0200, Olivier Moysan wrote: > Change the DFSDM binding to use the new IIO backend framework, > along with the adoption of IIO generic channels. > This binding change allows to add scaling support to the DFSDM. > > Keep the legacy binding as deprecated for backward compatibility. > > The io-backends property is supported only in generic IIO channel > binding. > > - Channel description with the generic binding (Audio and Analog): > > Properties superseded by generic properties: > st,adc-channels: becomes "reg" property in channel node > st,adc-channel-names: becomes "label" property in channel node > Properties moved to channel child node: > st,adc-channel-types: becomes st,adc-channel-type > st,adc-channel-clk-src, st,adc-alt-channel > > - Analog binding: > > DFSDM filter channel is configured as an IIO backend consumer. > Add io-backends property in channel child nodes. > > DFSDM is no more configured as a channel consumer from SD modulator. > Use of io-channels in DFSDM node is deprecated. > > - Audio binding: > > DFSDM audio DAI is configured as a channel consumer from DFSDM filter. > No change compare to legacy. > > Signed-off-by: Olivier Moysan > --- > .../bindings/iio/adc/st,stm32-dfsdm-adc.yaml | 157 +++++++++++++++++- > 1 file changed, 151 insertions(+), 6 deletions(-) > > diff --git a/Documentation/devicetree/bindings/iio/adc/st,stm32-dfsdm-adc.yaml b/Documentation/devicetree/bindings/iio/adc/st,stm32-dfsdm-adc.yaml > index c1b1324fa132..1802120b16b0 100644 > --- a/Documentation/devicetree/bindings/iio/adc/st,stm32-dfsdm-adc.yaml > +++ b/Documentation/devicetree/bindings/iio/adc/st,stm32-dfsdm-adc.yaml > @@ -102,9 +102,11 @@ patternProperties: > items: > minimum: 0 > maximum: 7 > + deprecated: true > > st,adc-channel-names: > description: List of single-ended channel names. > + deprecated: true > > st,filter-order: > description: | > @@ -118,6 +120,12 @@ patternProperties: > "#io-channel-cells": > const: 1 > > + '#address-cells': > + const: 1 > + > + '#size-cells': > + const: 0 > + > st,adc-channel-types: > description: | > Single-ended channel input type. > @@ -128,6 +136,7 @@ patternProperties: > items: > enum: [ SPI_R, SPI_F, MANCH_R, MANCH_F ] > $ref: /schemas/types.yaml#/definitions/non-unique-string-array > + deprecated: true > > st,adc-channel-clk-src: > description: | > @@ -139,6 +148,7 @@ patternProperties: > items: > enum: [ CLKIN, CLKOUT, CLKOUT_F, CLKOUT_R ] > $ref: /schemas/types.yaml#/definitions/non-unique-string-array > + deprecated: true > > st,adc-alt-channel: > description: > @@ -147,6 +157,7 @@ patternProperties: > If not set, channel n is connected to SPI input n. > If set, channel n is connected to SPI input n + 1. > type: boolean > + deprecated: true > > st,filter0-sync: > description: > @@ -165,11 +176,64 @@ patternProperties: > - compatible > - reg > - interrupts > - - st,adc-channels > - - st,adc-channel-names > - st,filter-order > - "#io-channel-cells" > > + patternProperties: > + "^channel@([0-9]|1[0-9])$": Unit-addresses are normally hex. And according to reg below, the max value is 8. > + type: object > + $ref: adc.yaml > + description: Represents the external channels which are connected to the DFSDM. > + > + properties: > + reg: > + items: > + minimum: 0 > + maximum: 8 More than 1 reg entry valid? Either way, you need maxItems. Or you can just drop 'items' > + > + label: > + description: > + Unique name to identify which channel this is. > + > + st,adc-channel-type: > + description: | > + Single-ended channel input type. > + - "SPI_R": SPI with data on rising edge (default) > + - "SPI_F": SPI with data on falling edge > + - "MANCH_R": manchester codec, rising edge = logic 0, falling edge = logic 1 > + - "MANCH_F": manchester codec, rising edge = logic 1, falling edge = logic 0 > + items: 'items' is for arrays, but... > + enum: [ SPI_R, SPI_F, MANCH_R, MANCH_F ] > + $ref: /schemas/types.yaml#/definitions/string not an array. > + > + st,adc-channel-clk-src: > + description: | > + Conversion clock source. > + - "CLKIN": external SPI clock (CLKIN x) > + - "CLKOUT": internal SPI clock (CLKOUT) (default) > + - "CLKOUT_F": internal SPI clock divided by 2 (falling edge). > + - "CLKOUT_R": internal SPI clock divided by 2 (rising edge). > + items: ditto > + enum: [ CLKIN, CLKOUT, CLKOUT_F, CLKOUT_R ] > + $ref: /schemas/types.yaml#/definitions/string > + > + st,adc-alt-channel: > + description: > + Must be defined if two sigma delta modulators are > + connected on same SPI input. > + If not set, channel n is connected to SPI input n. > + If set, channel n is connected to SPI input n + 1. > + type: boolean > + > + io-backends: > + description: > + Used to pipe external sigma delta modulator or internal ADC backend to DFSDM channel. How many entries (maxItems)? > + > + required: > + - reg > + > + additionalProperties: false Put this next to the $ref for the node. And switch to unevaluatedProperties and drop 'label' from here. > + > allOf: > - if: > properties: > @@ -199,9 +263,19 @@ patternProperties: > description: > From common IIO binding. Used to pipe external sigma delta > modulator or internal ADC output to DFSDM channel. > + deprecated: true > > - required: > - - io-channels > + if: > + required: > + - st,adc-channels > + then: > + required: > + - io-channels > + > + patternProperties: > + "^channel@([0-9]|1[0-9])$": > + required: > + - io-backends Don't think this is needed here. If channel node is present, the io-backends should always be required, right? Then this can go under the node schema. Rob