Linux IIO development
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@kernel.org>
To: Yu-Hsian Yang <j2anfernee@gmail.com>
Cc: Chanh Nguyen <chanh@amperemail.onmicrosoft.com>,
	avifishman70@gmail.com, tmaimon77@gmail.com,
	tali.perry1@gmail.com, venture@google.com, yuenn@google.com,
	benjaminfair@google.com, lars@metafoo.de, robh@kernel.org,
	krzk+dt@kernel.org, conor+dt@kernel.org, nuno.sa@analog.com,
	dlechner@baylibre.com, javier.carrasco.cruz@gmail.com,
	andy@kernel.org, marcelo.schmitt@analog.com,
	olivier.moysan@foss.st.com, mitrutzceclan@gmail.com,
	matteomartelli3@gmail.com, alisadariana@gmail.com,
	joao.goncalves@toradex.com, marius.cristea@microchip.com,
	mike.looijmans@topic.nl, chanh@os.amperecomputing.com,
	KWLIU@nuvoton.com, yhyang2@nuvoton.com, openbmc@lists.ozlabs.org,
	linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v1 1/2] dt-bindings: iio: adc: Add binding for Nuvoton NCT720x ADCs
Date: Sat, 23 Nov 2024 14:47:50 +0000	[thread overview]
Message-ID: <20241123144750.43eaa1c5@jic23-huawei> (raw)
In-Reply-To: <CA+4VgcJ=8wDWWnmgEt-UkEUfnfD8kGtHe44G5+dcRYt=KdwNfw@mail.gmail.com>

On Mon, 11 Nov 2024 15:45:03 +0800
Yu-Hsian Yang <j2anfernee@gmail.com> wrote:

> Dear Jonathan Cameron,
> 
> For property read-vin-data-size, we have a internal discussion.
> 
> For Nuvoton NCT7201/NCT7202 chip,
> Take an example as to Vin1:
> The VIN reading supports Byte read (One Byte) and Word read (Two Byte)
> 
> For Byte read:
> First read Index 00h to get VIN1 MSB, then read Index 0Fh Bit 3~7 to
> get VIN1 LSB.
> Index 0Fh is a shared LSB for all VINs.
> 
> For Word read:
> Read Index 00h and get 2 Byte (VIN1 MSB and VIN1 LSB).
> 
> We would refer your suggestion,
> we  declare a property named "nvuoton,read-vin-data-size" with default value 16
> for user to use.

Thanks for the info.  If the i2c controller allows word read
then the right thing is to always use it.

Just check for I2C_FUNC_SMBUS_READ_WORD_DATA with
i2c_check_functionality()

If it's supported use i2c_smbus_read_word_swapped()
if not, do the i2c_smbus_read_byte() approach.

We don't need to want this in DT as it is a property of the smbus
controller, not this device.

Jonathan




> 
> Jonathan Cameron <jic23@kernel.org> 於 2024年11月9日 週六 下午10:29寫道:
> >
> > On Sat, 9 Nov 2024 13:42:28 +0000
> > Jonathan Cameron <jic23@kernel.org> wrote:
> >  
> > > On Wed, 6 Nov 2024 17:22:35 +0800
> > > Yu-Hsian Yang <j2anfernee@gmail.com> wrote:
> > >  
> > > > Dear Chanh Nguyen,
> > > >
> > > > Thank you for your response.
> > > >
> > > > Chanh Nguyen <chanh@amperemail.onmicrosoft.com> 於 2024年11月6日 週三 下午12:58寫道:  
> > > > >
> > > > >
> > > > >
> > > > > On 06/11/2024 09:39, Eason Yang wrote:  
> > > > > > This adds a binding specification for the Nuvoton NCT7201/NCT7202
> > > > > > family of ADCs.
> > > > > >
> > > > > > Signed-off-by: Eason Yang <j2anfernee@gmail.com>
> > > > > > ---
> > > > > >   .../bindings/iio/adc/nuvoton,nct720x.yaml     | 47 +++++++++++++++++++
> > > > > >   MAINTAINERS                                   |  1 +
> > > > > >   2 files changed, 48 insertions(+)
> > > > > >   create mode 100644 Documentation/devicetree/bindings/iio/adc/nuvoton,nct720x.yaml
> > > > > >
> > > > > > diff --git a/Documentation/devicetree/bindings/iio/adc/nuvoton,nct720x.yaml b/Documentation/devicetree/bindings/iio/adc/nuvoton,nct720x.yaml
> > > > > > new file mode 100644
> > > > > > index 000000000000..3052039af10e
> > > > > > --- /dev/null
> > > > > > +++ b/Documentation/devicetree/bindings/iio/adc/nuvoton,nct720x.yaml
> > > > > > @@ -0,0 +1,47 @@
> > > > > > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > > > > > +%YAML 1.2
> > > > > > +---
> > > > > > +$id: http://devicetree.org/schemas/iio/adc/nuvoton,nct720x.yaml#
> > > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > > > > > +
> > > > > > +title: Nuvoton nct7202 and similar ADCs
> > > > > > +
> > > > > > +maintainers:
> > > > > > +  - Eason Yang <yhyang2@nuvoton.com>
> > > > > > +
> > > > > > +description: |
> > > > > > +   Family of ADCs with i2c interface.
> > > > > > +
> > > > > > +properties:
> > > > > > +  compatible:
> > > > > > +    enum:
> > > > > > +      - nuvoton,nct7201
> > > > > > +      - nuvoton,nct7202
> > > > > > +
> > > > > > +  reg:
> > > > > > +    maxItems: 1
> > > > > > +
> > > > > > +  read-vin-data-size:  
> > > > >
> > > > > Is it generic property or vendor property? I tried to find in the
> > > > > https://github.com/torvalds/linux/tree/master/Documentation/devicetree/bindings
> > > > > , but it seems this property hasn't been used on other devices.
> > > > >
> > > > > If it is vendor property, then I think it should include a vendor
> > > > > prefix. For examples:
> > > > >
> > > > > https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/iio/adc/adi%2Cad7780.yaml#L50
> > > > > https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/iio/adc/fsl%2Cvf610-adc.yaml#L42
> > > > > https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/iio/adc/st%2Cstmpe-adc.yaml#L22
> > > > >
> > > > >  
> > > >
> > > > I would add a vendor prefix for it.  
> > >
> > > Why do we want this at all?  Is this device sufficiently high
> > > performance that Linux will ever want to trade of resolution against
> > > sampling speed?
> > >
> > > If so that seems like a policy control that belongs in userspace. Note
> > > that to support that in IIO I would want a strong justification for why we dno't
> > > just set it to 16 always. We just go for maximum resolution in the vast majority
> > > of drivers that support control of this.  
> > I'd misunderstood what this is. It's a control no what the i2c word size is.
> > Do we actually care about supporting rubbish i2c controllers?  How many
> > can't do a word access?
> >
> > If you do it should be detected from the controller rather than in DT.
> >  
> > >
> > >  
> > > >  
> > > > > > +    description: number of data bits per read vin
> > > > > > +    $ref: /schemas/types.yaml#/definitions/uint32
> > > > > > +    enum: [8, 16]
> > > > > > +
> > > > > > +required:
> > > > > > +  - compatible
> > > > > > +  - reg
> > > > > > +  - read-vin-data-size
> > > > > > +
> > > > > > +additionalProperties: false
> > > > > > +
> > > > > > +examples:
> > > > > > +  - |
> > > > > > +    i2c {
> > > > > > +        #address-cells = <1>;
> > > > > > +        #size-cells = <0>;
> > > > > > +
> > > > > > +        nct7202@1d {  
> > > > >
> > > > > I think the Node name should follow
> > > > > https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
> > > > >
> > > > >
> > > > > For some examples that were merged before
> > > > >
> > > > > https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/iio/adc/adi%2Cad7091r5.yaml#L102
> > > > > https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/iio/adc/maxim%2Cmax1238.yaml#L73
> > > > > https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/iio/adc/ti%2Cadc081c.yaml#L49
> > > > >  
> > > >
> > > > I would change it for the node naming.
> > > >  
> > > > > > +            compatible = "nuvoton,nct7202";
> > > > > > +            reg = <0x1d>;
> > > > > > +            read-vin-data-size = <8>;
> > > > > > +        };
> > > > > > +    };
> > > > > > diff --git a/MAINTAINERS b/MAINTAINERS
> > > > > > index 91d0609db61b..68570c58e7aa 100644
> > > > > > --- a/MAINTAINERS
> > > > > > +++ b/MAINTAINERS
> > > > > > @@ -2746,6 +2746,7 @@ L:      openbmc@lists.ozlabs.org (moderated for non-subscribers)
> > > > > >   S:  Supported
> > > > > >   F:  Documentation/devicetree/bindings/*/*/*npcm*
> > > > > >   F:  Documentation/devicetree/bindings/*/*npcm*
> > > > > > +F:   Documentation/devicetree/bindings/iio/adc/nuvoton,nct720x.yaml
> > > > > >   F:  Documentation/devicetree/bindings/rtc/nuvoton,nct3018y.yaml
> > > > > >   F:  arch/arm/boot/dts/nuvoton/nuvoton-npcm*
> > > > > >   F:  arch/arm/mach-npcm/  
> > > > >  
> > >
> > >  
> >  


  reply	other threads:[~2024-11-23 14:48 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-06  2:39 [PATCH v1 0/2] iio: adc: add Nuvoton NCT720x ADC driver Eason Yang
2024-11-06  2:39 ` [PATCH v1 1/2] dt-bindings: iio: adc: Add binding for Nuvoton NCT720x ADCs Eason Yang
2024-11-06  4:58   ` Chanh Nguyen
2024-11-06  9:22     ` Yu-Hsian Yang
2024-11-09 13:42       ` Jonathan Cameron
2024-11-09 14:29         ` Jonathan Cameron
2024-11-11  7:45           ` Yu-Hsian Yang
2024-11-23 14:47             ` Jonathan Cameron [this message]
2024-11-28  2:14               ` Yu-Hsian Yang
2024-11-29 14:50                 ` David Lechner
2024-12-02  3:57                   ` Yu-Hsian Yang
2024-11-06 16:13     ` Conor Dooley
2024-11-07  0:59       ` Yu-Hsian Yang
2024-11-09 13:44   ` Jonathan Cameron
2024-11-06  2:39 ` [PATCH v1 2/2] iio: adc: add Nuvoton NCT720x ADC driver Eason Yang
2024-11-06 12:30   ` kernel test robot
2024-11-07  0:36     ` Yu-Hsian Yang
2024-11-06 13:41   ` Krzysztof Kozlowski
2024-11-07  0:41     ` Yu-Hsian Yang
2024-11-09 13:45       ` Jonathan Cameron
2024-12-04  1:49         ` Yu-Hsian Yang
2024-11-07  6:13   ` anish kumar
2024-11-07  7:17     ` Yu-Hsian Yang
2024-11-07  8:02   ` Andy Shevchenko
2024-11-09 14:37   ` Jonathan Cameron
2024-12-04  2:50     ` Yu-Hsian Yang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20241123144750.43eaa1c5@jic23-huawei \
    --to=jic23@kernel.org \
    --cc=KWLIU@nuvoton.com \
    --cc=alisadariana@gmail.com \
    --cc=andy@kernel.org \
    --cc=avifishman70@gmail.com \
    --cc=benjaminfair@google.com \
    --cc=chanh@amperemail.onmicrosoft.com \
    --cc=chanh@os.amperecomputing.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dlechner@baylibre.com \
    --cc=j2anfernee@gmail.com \
    --cc=javier.carrasco.cruz@gmail.com \
    --cc=joao.goncalves@toradex.com \
    --cc=krzk+dt@kernel.org \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcelo.schmitt@analog.com \
    --cc=marius.cristea@microchip.com \
    --cc=matteomartelli3@gmail.com \
    --cc=mike.looijmans@topic.nl \
    --cc=mitrutzceclan@gmail.com \
    --cc=nuno.sa@analog.com \
    --cc=olivier.moysan@foss.st.com \
    --cc=openbmc@lists.ozlabs.org \
    --cc=robh@kernel.org \
    --cc=tali.perry1@gmail.com \
    --cc=tmaimon77@gmail.com \
    --cc=venture@google.com \
    --cc=yhyang2@nuvoton.com \
    --cc=yuenn@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox