* [PATCH v2 0/6] IIO driver for MCP3550/1/3 @ 2017-09-09 18:32 Lukas Wunner [not found] ` <cover.1504807204.git.lukas-JFq808J9C/izQB+pC5nmwQ@public.gmane.org> 0 siblings, 1 reply; 4+ messages in thread From: Lukas Wunner @ 2017-09-09 18:32 UTC (permalink / raw) To: Jonathan Cameron Cc: Hartmut Knaack, Lars-Peter Clausen, Peter Meerwald-Stadler, Mathias Duckeck, Phil Elwell, Oskar Andero, Andrea Galbusera, Akinobu Mita, Manfred Schlaegl, Michael Welling, Soeren Andersen, linux-iio-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, Rob Herring, Mark Rutland One speedup, one cleanup, one kerneldoc patch for mcp320x.c plus support for the MCP3550/1/3 used by the "Revolution Pi" family of open source PLCs (https://revolution.kunbus.com/). Changes since v1: - Drop two patches which are now queued. (Jonathan) - Move kerneldoc to separate patch. (Jonathan) - Move support for continuous conversion mode to separate patch which is marked informational / not for merging. Rename device property to "continuous" for consistency with the existing similar property of drivers/iio/light/us5182d.c. (Rob, Jonathan) - Rework calculation of raw value in patch [5/6]: Instead of byte-wise mangling, convert the big endian value clocked out by the chip to host byte order and mangle the resulting 32-bit value. Reduces the amount of code and improves readability as the bit numbers referenced in the code comment and datasheet are used verbatim in the code. - Use switch/case-statement instead of if-clause when applying chip-specific quirks in mcp320x_probe(). (Jonathan) - Expand code comment explaining the two consecutive conversions in mcp320x_probe(). (Jonathan) Thanks, Lukas Lukas Wunner (6): iio: adc: mcp320x: Speed up readout of single-channel ADCs iio: adc: mcp320x: Drop unnecessary of_device_id attributes iio: adc: mcp320x: Document struct mcp320x dt-bindings: iio: adc: mcp320x: Update for mcp3550/1/3 iio: adc: mcp320x: Add support for mcp3550/1/3 iio: adc: mcp320x: Support continuous conversion mode .../devicetree/bindings/iio/adc/mcp320x.txt | 23 ++ drivers/iio/adc/Kconfig | 5 +- drivers/iio/adc/mcp320x.c | 240 ++++++++++++++------- 3 files changed, 188 insertions(+), 80 deletions(-) -- 2.11.0 ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <cover.1504807204.git.lukas-JFq808J9C/izQB+pC5nmwQ@public.gmane.org>]
* [PATCH v2 4/6] dt-bindings: iio: adc: mcp320x: Update for mcp3550/1/3 [not found] ` <cover.1504807204.git.lukas-JFq808J9C/izQB+pC5nmwQ@public.gmane.org> @ 2017-09-09 18:32 ` Lukas Wunner [not found] ` <f5899af5ef548c618ac14950301f6bc8eff6e9ba.1504807204.git.lukas-JFq808J9C/izQB+pC5nmwQ@public.gmane.org> 0 siblings, 1 reply; 4+ messages in thread From: Lukas Wunner @ 2017-09-09 18:32 UTC (permalink / raw) To: Jonathan Cameron Cc: Hartmut Knaack, Lars-Peter Clausen, Peter Meerwald-Stadler, Mathias Duckeck, Phil Elwell, Oskar Andero, Andrea Galbusera, Akinobu Mita, Manfred Schlaegl, Michael Welling, Soeren Andersen, linux-iio-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, Rob Herring, Mark Rutland All chips supported by this driver clock data out on the falling edge and latch data in on the rising edge, hence SPI mode (0,0) or (1,1) must be used. Furthermore, none of the chips has an internal reference voltage regulator, so an external supply is always required and needs to be specified in the device tree lest the IIO "scale" in sysfs cannot be calculated. Document these requirements in the device tree binding, add compatible strings for the newly supported mcp3550/1/3 and explain that SPI mode (0,0) should be preferred for these chips. Cc: Mathias Duckeck <m.duckeck-XB/JSsFECOqzQB+pC5nmwQ@public.gmane.org> Signed-off-by: Lukas Wunner <lukas-JFq808J9C/izQB+pC5nmwQ@public.gmane.org> --- Changes since v1: - Move support for continuous conversion mode to separate patch which is marked informational / not for merging. (Rob, Jonathan) Documentation/devicetree/bindings/iio/adc/mcp320x.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Documentation/devicetree/bindings/iio/adc/mcp320x.txt b/Documentation/devicetree/bindings/iio/adc/mcp320x.txt index bcd3ac8e6e0c..7d64753df949 100644 --- a/Documentation/devicetree/bindings/iio/adc/mcp320x.txt +++ b/Documentation/devicetree/bindings/iio/adc/mcp320x.txt @@ -29,15 +29,29 @@ Required properties: "microchip,mcp3204" "microchip,mcp3208" "microchip,mcp3301" + "microchip,mcp3550-50" + "microchip,mcp3550-60" + "microchip,mcp3551" + "microchip,mcp3553" NOTE: The use of the compatibles with no vendor prefix is deprecated and only listed because old DT use them. + - spi-cpha, spi-cpol (boolean): + Either SPI mode (0,0) or (1,1) must be used, so specify + none or both of spi-cpha, spi-cpol. The MCP3550/1/3 + is more efficient in mode (1,1) as only 3 instead of + 4 bytes need to be read from the ADC, but not all SPI + masters support it. + + - vref-supply: Phandle to the external reference voltage supply. + Examples: spi_controller { mcp3x0x@0 { compatible = "mcp3002"; reg = <0>; spi-max-frequency = <1000000>; + vref-supply = <&vref_reg>; }; }; -- 2.11.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
[parent not found: <f5899af5ef548c618ac14950301f6bc8eff6e9ba.1504807204.git.lukas-JFq808J9C/izQB+pC5nmwQ@public.gmane.org>]
* Re: [PATCH v2 4/6] dt-bindings: iio: adc: mcp320x: Update for mcp3550/1/3 [not found] ` <f5899af5ef548c618ac14950301f6bc8eff6e9ba.1504807204.git.lukas-JFq808J9C/izQB+pC5nmwQ@public.gmane.org> @ 2017-09-10 16:16 ` Jonathan Cameron 2017-09-18 20:27 ` Rob Herring 1 sibling, 0 replies; 4+ messages in thread From: Jonathan Cameron @ 2017-09-10 16:16 UTC (permalink / raw) To: Lukas Wunner Cc: Hartmut Knaack, Lars-Peter Clausen, Peter Meerwald-Stadler, Mathias Duckeck, Phil Elwell, Oskar Andero, Andrea Galbusera, Akinobu Mita, Manfred Schlaegl, Michael Welling, Soeren Andersen, linux-iio-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, Rob Herring, Mark Rutland On Sat, 9 Sep 2017 20:32:41 +0200 Lukas Wunner <lukas-JFq808J9C/izQB+pC5nmwQ@public.gmane.org> wrote: > All chips supported by this driver clock data out on the falling edge > and latch data in on the rising edge, hence SPI mode (0,0) or (1,1) > must be used. > > Furthermore, none of the chips has an internal reference voltage > regulator, so an external supply is always required and needs to be > specified in the device tree lest the IIO "scale" in sysfs cannot be > calculated. > > Document these requirements in the device tree binding, add compatible > strings for the newly supported mcp3550/1/3 and explain that SPI mode > (0,0) should be preferred for these chips. > > Cc: Mathias Duckeck <m.duckeck-XB/JSsFECOqzQB+pC5nmwQ@public.gmane.org> > Signed-off-by: Lukas Wunner <lukas-JFq808J9C/izQB+pC5nmwQ@public.gmane.org> I'm happy with this, but just want to give Rob / Mark more time to take a look at it. Give me a poke if I seem to have forgotten it in a week or so. Thanks, Jonathan > --- > Changes since v1: > - Move support for continuous conversion mode to separate patch > which is marked informational / not for merging. (Rob, Jonathan) > > Documentation/devicetree/bindings/iio/adc/mcp320x.txt | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/Documentation/devicetree/bindings/iio/adc/mcp320x.txt b/Documentation/devicetree/bindings/iio/adc/mcp320x.txt > index bcd3ac8e6e0c..7d64753df949 100644 > --- a/Documentation/devicetree/bindings/iio/adc/mcp320x.txt > +++ b/Documentation/devicetree/bindings/iio/adc/mcp320x.txt > @@ -29,15 +29,29 @@ Required properties: > "microchip,mcp3204" > "microchip,mcp3208" > "microchip,mcp3301" > + "microchip,mcp3550-50" > + "microchip,mcp3550-60" > + "microchip,mcp3551" > + "microchip,mcp3553" > > NOTE: The use of the compatibles with no vendor prefix > is deprecated and only listed because old DT use them. > > + - spi-cpha, spi-cpol (boolean): > + Either SPI mode (0,0) or (1,1) must be used, so specify > + none or both of spi-cpha, spi-cpol. The MCP3550/1/3 > + is more efficient in mode (1,1) as only 3 instead of > + 4 bytes need to be read from the ADC, but not all SPI > + masters support it. > + > + - vref-supply: Phandle to the external reference voltage supply. > + > Examples: > spi_controller { > mcp3x0x@0 { > compatible = "mcp3002"; > reg = <0>; > spi-max-frequency = <1000000>; > + vref-supply = <&vref_reg>; > }; > }; ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2 4/6] dt-bindings: iio: adc: mcp320x: Update for mcp3550/1/3 [not found] ` <f5899af5ef548c618ac14950301f6bc8eff6e9ba.1504807204.git.lukas-JFq808J9C/izQB+pC5nmwQ@public.gmane.org> 2017-09-10 16:16 ` Jonathan Cameron @ 2017-09-18 20:27 ` Rob Herring 1 sibling, 0 replies; 4+ messages in thread From: Rob Herring @ 2017-09-18 20:27 UTC (permalink / raw) To: Lukas Wunner Cc: Jonathan Cameron, Hartmut Knaack, Lars-Peter Clausen, Peter Meerwald-Stadler, Mathias Duckeck, Phil Elwell, Oskar Andero, Andrea Galbusera, Akinobu Mita, Manfred Schlaegl, Michael Welling, Soeren Andersen, linux-iio-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA, Mark Rutland On Sat, Sep 09, 2017 at 08:32:41PM +0200, Lukas Wunner wrote: > All chips supported by this driver clock data out on the falling edge > and latch data in on the rising edge, hence SPI mode (0,0) or (1,1) > must be used. > > Furthermore, none of the chips has an internal reference voltage > regulator, so an external supply is always required and needs to be > specified in the device tree lest the IIO "scale" in sysfs cannot be > calculated. > > Document these requirements in the device tree binding, add compatible > strings for the newly supported mcp3550/1/3 and explain that SPI mode > (0,0) should be preferred for these chips. > > Cc: Mathias Duckeck <m.duckeck-XB/JSsFECOqzQB+pC5nmwQ@public.gmane.org> > Signed-off-by: Lukas Wunner <lukas-JFq808J9C/izQB+pC5nmwQ@public.gmane.org> > --- > Changes since v1: > - Move support for continuous conversion mode to separate patch > which is marked informational / not for merging. (Rob, Jonathan) > > Documentation/devicetree/bindings/iio/adc/mcp320x.txt | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) Acked-by: Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-09-18 20:27 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-09-09 18:32 [PATCH v2 0/6] IIO driver for MCP3550/1/3 Lukas Wunner [not found] ` <cover.1504807204.git.lukas-JFq808J9C/izQB+pC5nmwQ@public.gmane.org> 2017-09-09 18:32 ` [PATCH v2 4/6] dt-bindings: iio: adc: mcp320x: Update for mcp3550/1/3 Lukas Wunner [not found] ` <f5899af5ef548c618ac14950301f6bc8eff6e9ba.1504807204.git.lukas-JFq808J9C/izQB+pC5nmwQ@public.gmane.org> 2017-09-10 16:16 ` Jonathan Cameron 2017-09-18 20:27 ` Rob Herring
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).