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 X-Spam-Level: X-Spam-Status: No, score=-17.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_2 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B1459C5519F for ; Sun, 22 Nov 2020 18:39:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7476220781 for ; Sun, 22 Nov 2020 18:39:05 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="oNw5Gftn" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727916AbgKVSjE (ORCPT ); Sun, 22 Nov 2020 13:39:04 -0500 Received: from mail.kernel.org ([198.145.29.99]:46178 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727795AbgKVSjE (ORCPT ); Sun, 22 Nov 2020 13:39:04 -0500 Received: from archlinux (cpc108967-cmbg20-2-0-cust86.5-4.cable.virginm.net [81.101.6.87]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 6F73420760; Sun, 22 Nov 2020 18:39:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1606070343; bh=7W5ax/k1J+rgWXbkjnbcKNJt98tFPnCPC1rr6oCkiHw=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=oNw5GftnOczsr1HmWyrUs0wRJDAJEfjh745hRmMVTP78h4FDazVCCl3/gJuqLfekC hSHHVzbqg1NdCtDsXUlm80MTkFEUnbZ0SMtYe+PmgNqKF02H1mMWsOOXfYFhJJVM5j maZcB/yrkKI/st+2a7eA1oMKfVirKNB+ix2BFiPI= Date: Sun, 22 Nov 2020 18:38:59 +0000 From: Jonathan Cameron To: Rob Herring Cc: linux-iio@vger.kernel.org, devicetree@vger.kernel.org, Jonathan Cameron , Michael Hennerich Subject: Re: [PATCH 38/46] dt-bindings:iio:dac:ad5592r: txt to yaml format conversion. Message-ID: <20201122183859.4cc7105a@archlinux> In-Reply-To: <20201103163120.GE1754553@bogus> References: <20201031184854.745828-1-jic23@kernel.org> <20201031184854.745828-39-jic23@kernel.org> <20201103163120.GE1754553@bogus> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org On Tue, 3 Nov 2020 10:31:20 -0600 Rob Herring wrote: > On Sat, Oct 31, 2020 at 06:48:46PM +0000, Jonathan Cameron wrote: > > From: Jonathan Cameron > > > > This is a more complex binding. Whilst conversion is straight forward > > I am unsure if the full nature of required properties has been captured. > > > > Signed-off-by: Jonathan Cameron > > Cc: Michael Hennerich Tweaked as suggested by Rob and applied. thanks, Jonathan > > --- > > .../devicetree/bindings/iio/dac/ad5592r.txt | 155 -------------- > > .../bindings/iio/dac/adi,ad5592r.yaml | 201 ++++++++++++++++++ > > 2 files changed, 201 insertions(+), 155 deletions(-) > > > > diff --git a/Documentation/devicetree/bindings/iio/dac/ad5592r.txt b/Documentation/devicetree/bindings/iio/dac/ad5592r.txt > > deleted file mode 100644 > > index 989f96f31c66..000000000000 > > --- a/Documentation/devicetree/bindings/iio/dac/ad5592r.txt > > +++ /dev/null > > @@ -1,155 +0,0 @@ > > -Analog Devices AD5592R/AD5593R DAC/ADC device driver > > - > > -Required properties for the AD5592R: > > - - compatible: Must be "adi,ad5592r" > > - - reg: SPI chip select number for the device > > - - spi-max-frequency: Max SPI frequency to use (< 30000000) > > - - spi-cpol: The AD5592R requires inverse clock polarity (CPOL) mode > > - > > -Required properties for the AD5593R: > > - - compatible: Must be "adi,ad5593r" > > - - reg: I2C address of the device > > - > > -Required properties for all supported chips: > > - - #address-cells: Should be 1. > > - - #size-cells: Should be 0. > > - - channel nodes: > > - Each child node represents one channel and has the following > > - Required properties: > > - * reg: Pin on which this channel is connected to. > > - * adi,mode: Mode or function of this channel. > > - Macros specifying the valid values > > - can be found in . > > - > > - The following values are currently supported: > > - * CH_MODE_UNUSED (the pin is unused) > > - * CH_MODE_ADC (the pin is ADC input) > > - * CH_MODE_DAC (the pin is DAC output) > > - * CH_MODE_DAC_AND_ADC (the pin is DAC output > > - but can be monitored by an ADC, since > > - there is no disadvantage this > > - this should be considered as the > > - preferred DAC mode) > > - * CH_MODE_GPIO (the pin is registered > > - with GPIOLIB) > > - Optional properties: > > - * adi,off-state: State of this channel when unused or the > > - device gets removed. Macros specifying the > > - valid values can be found in > > - . > > - > > - * CH_OFFSTATE_PULLDOWN (the pin is pulled down) > > - * CH_OFFSTATE_OUT_LOW (the pin is output low) > > - * CH_OFFSTATE_OUT_HIGH (the pin is output high) > > - * CH_OFFSTATE_OUT_TRISTATE (the pin is > > - tristated output) > > - > > - > > -Optional properties: > > - - vref-supply: Phandle to the external reference voltage supply. This should > > - only be set if there is an external reference voltage connected to the VREF > > - pin. If the property is not set the internal 2.5V reference is used. > > - - reset-gpios : GPIO spec for the RESET pin. If specified, it will be > > - asserted during driver probe. > > - - gpio-controller: Marks the device node as a GPIO controller. > > - - #gpio-cells: Should be 2. The first cell is the GPIO number and the second > > - cell specifies GPIO flags, as defined in . > > - > > -AD5592R Example: > > - > > - #include > > - > > - vref: regulator-vref { > > - compatible = "regulator-fixed"; > > - regulator-name = "vref-ad559x"; > > - regulator-min-microvolt = <3300000>; > > - regulator-max-microvolt = <3300000>; > > - regulator-always-on; > > - }; > > - > > - ad5592r@0 { > > - #size-cells = <0>; > > - #address-cells = <1>; > > - #gpio-cells = <2>; > > - compatible = "adi,ad5592r"; > > - reg = <0>; > > - > > - spi-max-frequency = <1000000>; > > - spi-cpol; > > - > > - vref-supply = <&vref>; /* optional */ > > - reset-gpios = <&gpio0 86 0>; /* optional */ > > - gpio-controller; > > - > > - channel@0 { > > - reg = <0>; > > - adi,mode = ; > > - }; > > - channel@1 { > > - reg = <1>; > > - adi,mode = ; > > - }; > > - channel@2 { > > - reg = <2>; > > - adi,mode = ; > > - }; > > - channel@3 { > > - reg = <3>; > > - adi,mode = ; > > - adi,off-state = ; > > - }; > > - channel@4 { > > - reg = <4>; > > - adi,mode = ; > > - adi,off-state = ; > > - }; > > - channel@5 { > > - reg = <5>; > > - adi,mode = ; > > - adi,off-state = ; > > - }; > > - channel@6 { > > - reg = <6>; > > - adi,mode = ; > > - adi,off-state = ; > > - }; > > - channel@7 { > > - reg = <7>; > > - adi,mode = ; > > - adi,off-state = ; > > - }; > > - }; > > - > > -AD5593R Example: > > - > > - #include > > - > > - ad5593r@10 { > > - #size-cells = <0>; > > - #address-cells = <1>; > > - #gpio-cells = <2>; > > - compatible = "adi,ad5593r"; > > - reg = <0x10>; > > - gpio-controller; > > - > > - channel@0 { > > - reg = <0>; > > - adi,mode = ; > > - adi,off-state = ; > > - }; > > - channel@1 { > > - reg = <1>; > > - adi,mode = ; > > - adi,off-state = ; > > - }; > > - channel@2 { > > - reg = <2>; > > - adi,mode = ; > > - adi,off-state = ; > > - }; > > - channel@6 { > > - reg = <6>; > > - adi,mode = ; > > - adi,off-state = ; > > - }; > > - }; > > diff --git a/Documentation/devicetree/bindings/iio/dac/adi,ad5592r.yaml b/Documentation/devicetree/bindings/iio/dac/adi,ad5592r.yaml > > new file mode 100644 > > index 000000000000..c49646825c37 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/iio/dac/adi,ad5592r.yaml > > @@ -0,0 +1,201 @@ > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/iio/dac/adi,ad5592r.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Analog Devices AD5592R/AD5593R DAC/ADC > > + > > +maintainers: > > + - Michael Hennerich > > + > > +properties: > > + compatible: > > + enum: > > + - adi,ad5592r > > + - adi,ad5593r > > + > > + reg: > > + maxItems: 1 > > + > > + spi-max-frequency: > > + maximum: 30000000 > > + > > + spi-cpol: true > > + > > + "#address-cells": > > + const: 1 > > + > > + "#size-cells": > > + const: 0 > > + > > + "#io-channel-cells": > > + const: 1 > > + > > + vref-supply: > > + description: If not set internal 2.5V reference used. > > + > > + reset-gpios: > > + maxItems: 1 > > + > > + gpio-controller: > > + description: Marks the device node as a GPIO controller. > > + > > + "#gpio-cells": > > + const: 2 > > + description: > > + The first cell is the GPIO number and the second cell specifies > > + GPIO flags, as defined in . > > + > > +required: > > + - compatible > > + - reg > > + - "#address-cells" > > + - "#size-cells" > > + > > +allOf: > > + - if: > > + properties: > > + compatible: > > + contains: > > + const: adi,ad5592r > > + then: > > + required: > > + - spi-cpol > > + else: > > + properties: > > + spi-cpol: false > > + > > +additionalProperties: false > > + > > +patternProperties: > > + "^(channel@)[0-7]$": > > + type: object > > + description: Child node to describe a channel > > + properties: > > + reg: > > + maxItems: 1 > > minimum: 0 > maximum: 7 Dropped the maxItems to avoid a resulting clash. > > > + > > + adi,mode: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + description: | > > + Mode or function of this channel. > > + Macros specifying the valid values can be found in > > + . > > + > > + The following values are currently supported: > > + * CH_MODE_UNUSED (the pin is unused) > > + * CH_MODE_ADC (the pin is ADC input) > > + * CH_MODE_DAC (the pin is DAC output) > > + * CH_MODE_DAC_AND_ADC (the pin is DAC output but can be monitored > > + by an ADC, since there is no disadvantage this should be > > + considered as the preferred DAC mode) > > + * CH_MODE_GPIO (the pin is registered with GPIOLIB) > > Sounds like constraints. indeed, made it an enum: [0, 1, 2 3, 8] to reflect values > > > + > > + adi,off-state: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + description: | > > + State of this channel when unused or the device gets removed. > > + Macros specifying the valid values can be found in > > + . > > + * CH_OFFSTATE_PULLDOWN (the pin is pulled down) > > + * CH_OFFSTATE_OUT_LOW (the pin is output low) > > + * CH_OFFSTATE_OUT_HIGH (the pin is output high) > > + * CH_OFFSTATE_OUT_TRISTATE (the pin is tristated output) > > Here too. > Changed to an enum: [0, 1, 2, 3] to reflect underlying values.