Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1833999ybz; Sat, 18 Apr 2020 09:23:49 -0700 (PDT) X-Google-Smtp-Source: APiQypITfUbevT4h3sfQHZtk296R8yUKzCpldSy6zQCPQTRIRpbNnI8hOEDs1sSLc9kGNg5qqr/Z X-Received: by 2002:a17:906:da1b:: with SMTP id fi27mr8320104ejb.194.1587227029512; Sat, 18 Apr 2020 09:23:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587227029; cv=none; d=google.com; s=arc-20160816; b=GTWW2SjNnDISpRhg5vG46t54Qxx7TcgF4SrSb2HNLgWB9qLSvI8fg8X77ZEt5sYfiu y5zkmMBy3p/q98TcclHuK77aI4odLRalsVK2joQGOB9iDdXVUb0CY/5neLDA8uReEHlp A2bjUr6rSWHDu/R5V0cccmqdt2S4J5KmY5gJHYkDCqUsSI8FzguLdDU5NUZMgdP1s/6+ DMdc7xkhwWW8oJIurhFZbuaUPmvH2TGxpGFAuJVJkoSdqIpSGXMuaFeRk3s+d+5tY48a Y4KePUO0UNQJtdURGrU18yIbBwTU50MHukMzRa/US1bSYmMeZRRcUMVyZUBd/mmAJp4w D36A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date :dkim-signature; bh=bktLNSKTpu3XCY5yKINbPv9icXWIJqwvkBwqU1nPSJ8=; b=oTD3VJPa+fDKepHKKhBK8Uoxu5wN5Ang0YoQC5YURAeZcR+ehzsTu1C5klvrSfjhbK /BJ2r0VTpShc64cc6W6gy/1UQ7aNBoDJPKm7klJR7KU1Sdc62v4yofq4SXc/oCF9aegR sSwgjkYhTnq7gtwX3KLUqA5GzUwPqJJIlSaBnWSxSBXs7ArD/GigXH7t8ar4MPeA1/cJ dIiSvsCJnbpmyc+pF7q7GnnQeGjxRB4r/rqiXV/oPNH5AH20HF1WLgze6igU5x7BwDgx 3ADkXmC9/EaqvHGGSmaetVYDhSQbk9qAoEvaulBZySWxj8w6/bvkWE8Ey3zH1T5YR2UT iTGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Voz8VJrw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c20si6000354edr.481.2020.04.18.09.23.25; Sat, 18 Apr 2020 09:23:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Voz8VJrw; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726776AbgDRQWJ (ORCPT + 99 others); Sat, 18 Apr 2020 12:22:09 -0400 Received: from mail.kernel.org ([198.145.29.99]:41200 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726359AbgDRQWI (ORCPT ); Sat, 18 Apr 2020 12:22:08 -0400 Received: from archlinux (cpc149474-cmbg20-2-0-cust94.5-4.cable.virginm.net [82.4.196.95]) (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 A88982054F; Sat, 18 Apr 2020 16:22:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1587226926; bh=l/kWwCKIfSjgEyh0o2KmQjq1pjV0Mu5o4RtwVw1VOdw=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=Voz8VJrwhlFqK3oGUjuhcM8l9GBLmyvNUXMNihG4ZqmTVVI+obv4PCLI7FIlfhuCj vPqDCObL+7cRQuCqLUSfVYa4x4ALmMUNtjbOepdFyCQjmeYra2QJxWhE2cFbNe7k6B fGqMLdK4IqFJUxsSBxfDY+Ad3kaZ2zfqD6m+2cKA= Date: Sat, 18 Apr 2020 17:22:00 +0100 From: Jonathan Cameron To: Jishnu Prakash Cc: agross@kernel.org, bjorn.andersson@linaro.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, mka@chromium.org, linus.walleij@linaro.org, Jonathan.Cameron@huawei.com, smohanad@codeaurora.org, kgunda@codeaurora.org, aghayal@codeaurora.org, Hartmut Knaack , Lars-Peter Clausen , Peter Meerwald-Stadler , Rob Herring , Mark Rutland , linux-iio@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-msm-owner@vger.kernel.org Subject: Re: [PATCH V2 1/3] iio: adc: Convert the QCOM SPMI ADC bindings to .yaml format Message-ID: <20200418172200.58a10116@archlinux> In-Reply-To: <1586942266-21480-2-git-send-email-jprakash@codeaurora.org> References: <1586942266-21480-1-git-send-email-jprakash@codeaurora.org> <1586942266-21480-2-git-send-email-jprakash@codeaurora.org> X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 15 Apr 2020 14:47:44 +0530 Jishnu Prakash wrote: > Convert the adc bindings from .txt to .yaml format. > I read patch 2 before this one for some reason but same question applies here Given we are now enforcing a lot of the values explicitly are we better off dropping the text description of that. It looks to me like a potential place to get out of sync given the information is a bit further down. > Signed-off-by: Jishnu Prakash > --- > .../devicetree/bindings/iio/adc/qcom,spmi-vadc.txt | 173 ------------- > .../bindings/iio/adc/qcom,spmi-vadc.yaml | 288 +++++++++++++++++++++ > 2 files changed, 288 insertions(+), 173 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/iio/adc/qcom,spmi-vadc.txt > create mode 100644 Documentation/devicetree/bindings/iio/adc/qcom,spmi-vadc.yaml > > diff --git a/Documentation/devicetree/bindings/iio/adc/qcom,spmi-vadc.txt b/Documentation/devicetree/bindings/iio/adc/qcom,spmi-vadc.txt > deleted file mode 100644 > index c878768..0000000 > --- a/Documentation/devicetree/bindings/iio/adc/qcom,spmi-vadc.txt > +++ /dev/null > @@ -1,173 +0,0 @@ > -Qualcomm's SPMI PMIC ADC > - > -- SPMI PMIC voltage ADC (VADC) provides interface to clients to read > - voltage. The VADC is a 15-bit sigma-delta ADC. > -- SPMI PMIC5 voltage ADC (ADC) provides interface to clients to read > - voltage. The VADC is a 16-bit sigma-delta ADC. > - > -VADC node: > - > -- compatible: > - Usage: required > - Value type: > - Definition: Should contain "qcom,spmi-vadc". > - Should contain "qcom,spmi-adc5" for PMIC5 ADC driver. > - Should contain "qcom,spmi-adc-rev2" for PMIC rev2 ADC driver. > - Should contain "qcom,pms405-adc" for PMS405 PMIC > - > -- reg: > - Usage: required > - Value type: > - Definition: VADC base address in the SPMI PMIC register map. > - > -- #address-cells: > - Usage: required > - Value type: > - Definition: Must be one. Child node 'reg' property should define ADC > - channel number. > - > -- #size-cells: > - Usage: required > - Value type: > - Definition: Must be zero. > - > -- #io-channel-cells: > - Usage: required > - Value type: > - Definition: Must be one. For details about IIO bindings see: > - Documentation/devicetree/bindings/iio/iio-bindings.txt > - > -- interrupts: > - Usage: optional > - Value type: > - Definition: End of conversion interrupt. > - > -Channel node properties: > - > -- reg: > - Usage: required > - Value type: > - Definition: ADC channel number. > - See include/dt-bindings/iio/qcom,spmi-vadc.h > - > -- label: > - Usage: required for "qcom,spmi-adc5" and "qcom,spmi-adc-rev2" > - Value type: > - Definition: ADC input of the platform as seen in the schematics. > - For thermistor inputs connected to generic AMUX or GPIO inputs > - these can vary across platform for the same pins. Hence select > - the platform schematics name for this channel. > - > -- qcom,decimation: > - Usage: optional > - Value type: > - Definition: This parameter is used to decrease ADC sampling rate. > - Quicker measurements can be made by reducing decimation ratio. > - - For compatible property "qcom,spmi-vadc", valid values are > - 512, 1024, 2048, 4096. If property is not found, default value > - of 512 will be used. > - - For compatible property "qcom,spmi-adc5", valid values are 250, 420 > - and 840. If property is not found, default value of 840 is used. > - - For compatible property "qcom,spmi-adc-rev2", valid values are 256, > - 512 and 1024. If property is not present, default value is 1024. > - > -- qcom,pre-scaling: > - Usage: optional > - Value type: > - Definition: Used for scaling the channel input signal before the signal is > - fed to VADC. The configuration for this node is to know the > - pre-determined ratio and use it for post scaling. Select one from > - the following options. > - <1 1>, <1 3>, <1 4>, <1 6>, <1 20>, <1 8>, <10 81>, <1 10> > - If property is not found default value depending on chip will be used. > - > -- qcom,ratiometric: > - Usage: optional > - Value type: > - Definition: Channel calibration type. > - - For compatible property "qcom,spmi-vadc", if this property is > - specified VADC will use the VDD reference (1.8V) and GND for > - channel calibration. If property is not found, channel will be > - calibrated with 0.625V and 1.25V reference channels, also > - known as absolute calibration. > - - For compatible property "qcom,spmi-adc5" and "qcom,spmi-adc-rev2", > - if this property is specified VADC will use the VDD reference > - (1.875V) and GND for channel calibration. If property is not found, > - channel will be calibrated with 0V and 1.25V reference channels, > - also known as absolute calibration. > - > -- qcom,hw-settle-time: > - Usage: optional > - Value type: > - Definition: Time between AMUX getting configured and the ADC starting > - conversion. The 'hw_settle_time' is an index used from valid values > - and programmed in hardware to achieve the hardware settling delay. > - - For compatible property "qcom,spmi-vadc" and "qcom,spmi-adc-rev2", > - Delay = 100us * (hw_settle_time) for hw_settle_time < 11, > - and 2ms * (hw_settle_time - 10) otherwise. > - Valid values are: 0, 100, 200, 300, 400, 500, 600, 700, 800, > - 900 us and 1, 2, 4, 6, 8, 10 ms. > - If property is not found, channel will use 0us. > - - For compatible property "qcom,spmi-adc5", delay = 15us for > - value 0, 100us * (value) for values < 11, > - and 2ms * (value - 10) otherwise. > - Valid values are: 15, 100, 200, 300, 400, 500, 600, 700, 800, > - 900 us and 1, 2, 4, 6, 8, 10 ms > - Certain controller digital versions have valid values of > - 15, 100, 200, 300, 400, 500, 600, 700, 1, 2, 4, 8, 16, 32, 64, 128 ms > - If property is not found, channel will use 15us. > - > -- qcom,avg-samples: > - Usage: optional > - Value type: > - Definition: Number of samples to be used for measurement. > - Averaging provides the option to obtain a single measurement > - from the ADC that is an average of multiple samples. The value > - selected is 2^(value). > - - For compatible property "qcom,spmi-vadc", valid values > - are: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 > - If property is not found, 1 sample will be used. > - - For compatible property "qcom,spmi-adc5" and "qcom,spmi-adc-rev2", > - valid values are: 1, 2, 4, 8, 16 > - If property is not found, 1 sample will be used. > - > -NOTE: > - > -For compatible property "qcom,spmi-vadc" following channels, also known as > -reference point channels, are used for result calibration and their channel > -configuration nodes should be defined: > -VADC_REF_625MV and/or VADC_SPARE1(based on PMIC version) VADC_REF_1250MV, > -VADC_GND_REF and VADC_VDD_VADC. > - > -Example: > - > -#include > -#include > -/* ... */ > - > - /* VADC node */ > - pmic_vadc: vadc@3100 { > - compatible = "qcom,spmi-vadc"; > - reg = <0x3100>; > - interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>; > - #address-cells = <1>; > - #size-cells = <0>; > - #io-channel-cells = <1>; > - io-channel-ranges; > - > - /* Channel node */ > - adc-chan@VADC_LR_MUX10_USB_ID { > - reg = ; > - qcom,decimation = <512>; > - qcom,ratiometric; > - qcom,hw-settle-time = <200>; > - qcom,avg-samples = <1>; > - qcom,pre-scaling = <1 3>; > - }; > - }; > - > - /* IIO client node */ > - usb { > - io-channels = <&pmic_vadc VADC_LR_MUX10_USB_ID>; > - io-channel-names = "vadc"; > - }; > diff --git a/Documentation/devicetree/bindings/iio/adc/qcom,spmi-vadc.yaml b/Documentation/devicetree/bindings/iio/adc/qcom,spmi-vadc.yaml > new file mode 100644 > index 0000000..8273981 > --- /dev/null > +++ b/Documentation/devicetree/bindings/iio/adc/qcom,spmi-vadc.yaml > @@ -0,0 +1,288 @@ > +# SPDX-License-Identifier: GPL-2.0-only > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/iio/adc/qcom,spmi-vadc.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Qualcomm's SPMI PMIC ADC > + > +maintainers: > + - Andy Gross > + - Bjorn Andersson > + > +description: | > + SPMI PMIC voltage ADC (VADC) provides interface to clients to read > + voltage. The VADC is a 15-bit sigma-delta ADC. > + SPMI PMIC5 voltage ADC (ADC) provides interface to clients to read > + voltage. The VADC is a 16-bit sigma-delta ADC. > + > +properties: > + compatible: > + oneOf: > + - items: > + - const: qcom,pms405-adc > + - const: qcom,spmi-adc-rev2 > + > + - items: > + - enum: > + - qcom,spmi-vadc > + - qcom,spmi-adc5 > + - qcom,spmi-adc-rev2 > + > + reg: > + description: VADC base address in the SPMI PMIC register map > + maxItems: 1 > + > + '#address-cells': > + const: 1 > + > + '#size-cells': > + const: 0 > + > + '#io-channel-cells': > + const: 1 > + > + interrupts: > + maxItems: 1 > + description: > + End of conversion interrupt. > + > +required: > + - compatible > + - reg > + - '#address-cells' > + - '#size-cells' > + - '#io-channel-cells' > + > +patternProperties: > + "^.*@[0-9a-fx]+$": > + type: object > + description: | > + Represents the external channels which are connected to the ADC. > + For compatible property "qcom,spmi-vadc" following channels, also known as > + reference point channels, are used for result calibration and their channel > + configuration nodes should be defined: > + VADC_REF_625MV and/or VADC_SPARE1(based on PMIC version) VADC_REF_1250MV, > + VADC_GND_REF and VADC_VDD_VADC. > + > + properties: > + reg: > + description: | > + ADC channel number. > + See include/dt-bindings/iio/qcom,spmi-vadc.h > + > + label: > + $ref: /schemas/types.yaml#/definitions/string > + description: | > + ADC input of the platform as seen in the schematics. > + For thermistor inputs connected to generic AMUX or GPIO inputs > + these can vary across platform for the same pins. Hence select > + the platform schematics name for this channel. > + > + qcom,decimation: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: | > + This parameter is used to decrease ADC sampling rate. > + Quicker measurements can be made by reducing decimation ratio. > + - For compatible property "qcom,spmi-vadc", valid values are > + 512, 1024, 2048, 4096. If property is not found, default value > + of 512 will be used. > + - For compatible property "qcom,spmi-adc5", valid values are 250, 420 > + and 840. If property is not found, default value of 840 is used. > + - For compatible property "qcom,spmi-adc-rev2", valid values are 256, > + 512 and 1024. If property is not present, default value is 1024. > + > + qcom,pre-scaling: > + description: | > + Used for scaling the channel input signal before the signal is > + fed to VADC. The configuration for this node is to know the > + pre-determined ratio and use it for post scaling. It is a pair of > + integers, denoting the numerator and denominator of the fraction by which > + input signal is multiplied. For example, <1 3> indicates the signal is scaled > + down to 1/3 of its value before ADC measurement. Select one from > + the following options. > + <1 1>, <1 3>, <1 4>, <1 6>, <1 20>, <1 8>, <10 81>, <1 10> > + If property is not found default value depending on chip will be used. > + allOf: > + - $ref: /schemas/types.yaml#/definitions/uint32-array > + oneOf: > + - items: > + - const: 1 > + - enum: [ 1, 3, 4, 6, 20, 8, 10 ] > + > + - items: > + - const: 10 > + - const: 81 > + > + qcom,ratiometric: > + description: | > + Channel calibration type. > + - For compatible property "qcom,spmi-vadc", if this property is > + specified VADC will use the VDD reference (1.8V) and GND for > + channel calibration. If property is not found, channel will be > + calibrated with 0.625V and 1.25V reference channels, also > + known as absolute calibration. > + - For compatible property "qcom,spmi-adc5" and "qcom,spmi-adc-rev2", > + if this property is specified VADC will use the VDD reference (1.875V) > + and GND for channel calibration. If property is not found, channel > + will be calibrated with 0V and 1.25V reference channels, also known > + as absolute calibration. > + type: boolean > + > + qcom,hw-settle-time: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: | > + Time between AMUX getting configured and the ADC starting > + conversion. The 'hw_settle_time' is an index used from valid values > + and programmed in hardware to achieve the hardware settling delay. > + - For compatible property "qcom,spmi-vadc" and "qcom,spmi-adc-rev2", > + Delay = 100us * (hw_settle_time) for hw_settle_time < 11, > + and 2ms * (hw_settle_time - 10) otherwise. > + Valid values are: 0, 100, 200, 300, 400, 500, 600, 700, 800, > + 900 us and 1, 2, 4, 6, 8, 10 ms. > + If property is not found, channel will use 0us. > + - For compatible property "qcom,spmi-adc5", delay = 15us for > + value 0, 100us * (value) for values < 11, > + and 2ms * (value - 10) otherwise. > + Valid values are: 15, 100, 200, 300, 400, 500, 600, 700, 800, > + 900 us and 1, 2, 4, 6, 8, 10 ms > + Certain controller digital versions have valid values of > + 15, 100, 200, 300, 400, 500, 600, 700, 1, 2, 4, 8, 16, 32, 64, 128 ms > + If property is not found, channel will use 15us. > + > + qcom,avg-samples: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: | > + Number of samples to be used for measurement. > + Averaging provides the option to obtain a single measurement > + from the ADC that is an average of multiple samples. The value > + selected is 2^(value). > + - For compatible property "qcom,spmi-vadc", valid values > + are: 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 > + If property is not found, 1 sample will be used. > + > + required: > + - reg > + > +allOf: > + - if: > + properties: > + compatible: > + contains: > + const: qcom,spmi-vadc > + > + then: > + patternProperties: > + "^.*@[0-9a-fx]+$": > + minItems: 4 > + properties: > + qcom,decimation: > + items: > + enum: [ 512, 1024, 2048, 4096 ] > + default: 512 > + > + qcom,hw-settle-time: > + items: > + enum: [ 0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1, 2, > + 4, 6, 8, 10 ] > + default: 0 > + > + qcom,avg-samples: > + items: > + enum: [ 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 ] > + default: 1 > + > + - if: > + properties: > + compatible: > + contains: > + const: qcom,spmi-adc-rev2 > + > + then: > + patternProperties: > + "^.*@[0-9a-fx]+$": > + properties: > + qcom,decimation: > + items: > + enum: [ 256, 512, 1024 ] > + default: 1024 > + > + qcom,hw-settle-time: > + items: > + enum: [ 0, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1, 2, > + 4, 6, 8, 10 ] > + default: 0 > + > + qcom,avg-samples: > + items: > + enum: [ 1, 2, 4, 8, 16 ] > + default: 1 > + > + - if: > + properties: > + compatible: > + contains: > + const: qcom,spmi-adc5 > + > + then: > + patternProperties: > + "^.*@[0-9a-fx]+$": > + properties: > + qcom,decimation: > + items: > + enum: [ 250, 420, 840 ] > + default: 840 > + > + qcom,hw-settle-time: > + items: > + enum: [ 15, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1, 2, > + 4, 6, 8, 10, 16, 32, 64, 128 ] > + default: 15 > + > + qcom,avg-samples: > + items: > + enum: [ 1, 2, 4, 8, 16 ] > + default: 1 > + > +examples: > + - | > + spmi_bus { > + #address-cells = <1>; > + #size-cells = <0>; > + /* VADC node */ > + pmic_vadc: adc@3100 { > + compatible = "qcom,spmi-vadc"; > + reg = <0x3100>; > + interrupts = <0x0 0x31 0x0 0x1>; > + #address-cells = <1>; > + #size-cells = <0>; > + #io-channel-cells = <1>; > + io-channel-ranges; > + > + /* Channel node */ > + adc-chan@0x39 { > + reg = <0x39>; > + qcom,decimation = <512>; > + qcom,ratiometric; > + qcom,hw-settle-time = <200>; > + qcom,avg-samples = <1>; > + qcom,pre-scaling = <1 3>; > + }; > + > + adc-chan@0x9 { > + reg = <0x9>; > + }; > + > + adc-chan@0xa { > + reg = <0xa>; > + }; > + > + adc-chan@0xe { > + reg = <0xe>; > + }; > + > + adc-chan@0xf { > + reg = <0xf>; > + }; > + }; > + };