On Mon, 11 Nov 2024 15:45:03 +0800 Yu-Hsian Yang <j2anfernee@xxxxxxxxx> 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@xxxxxxxxxx> 於 2024年11月9日 週六 下午10:29寫道: > > > > On Sat, 9 Nov 2024 13:42:28 +0000 > > Jonathan Cameron <jic23@xxxxxxxxxx> wrote: > > > > > On Wed, 6 Nov 2024 17:22:35 +0800 > > > Yu-Hsian Yang <j2anfernee@xxxxxxxxx> wrote: > > > > > > > Dear Chanh Nguyen, > > > > > > > > Thank you for your response. > > > > > > > > Chanh Nguyen <chanh@xxxxxxxxxxxxxxxxxxxxxxxxxx> 於 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@xxxxxxxxx> > > > > > > --- > > > > > > .../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@xxxxxxxxxxx> > > > > > > + > > > > > > +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@xxxxxxxxxxxxxxxx (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/ > > > > > > > > > > > > >