* [PATCH v2 3/4] iio: adc: add STMPE ADC devicetree bindings [not found] <20181119102528.2830-1-dev@pschenker.ch> @ 2018-11-19 10:25 ` Philippe Schenker 2018-11-19 10:25 ` [PATCH v2 4/4] ARM: dts: Add stmpe-adc driver to relevant devicetrees Philippe Schenker 1 sibling, 0 replies; 3+ messages in thread From: Philippe Schenker @ 2018-11-19 10:25 UTC (permalink / raw) To: jic23, marcel.ziswiler, stefan Cc: Mark Rutland, devicetree, Dmitry Torokhov, Alexandre Torgue, linux-iio, Peter Meerwald-Stadler, linux-input, linux-kernel, Philippe Schenker, Rob Herring, linux-arm-kernel, Max Krummenacher, Hartmut Knaack, Lee Jones, linux-stm32, Maxime Coquelin, Lars-Peter Clausen From: Stefan Agner <stefan@agner.ch> This adds the devicetree bindings for the STMPE ADC. Signed-off-by: Stefan Agner <stefan@agner.ch> Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com> --- Changes in v2: - Moved the bindings for ADC to the overlying mfd. - Reformatted for better readability .../devicetree/bindings/iio/adc/stmpe-adc.txt | 21 ++++++++++++++ .../bindings/input/touchscreen/stmpe.txt | 11 -------- .../devicetree/bindings/mfd/stmpe.txt | 28 ++++++++++++++----- 3 files changed, 42 insertions(+), 18 deletions(-) create mode 100644 Documentation/devicetree/bindings/iio/adc/stmpe-adc.txt diff --git a/Documentation/devicetree/bindings/iio/adc/stmpe-adc.txt b/Documentation/devicetree/bindings/iio/adc/stmpe-adc.txt new file mode 100644 index 000000000000..480e66422625 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/adc/stmpe-adc.txt @@ -0,0 +1,21 @@ +STMPE ADC driver +---------------- + +Required properties: + - compatible: "st,stmpe-adc" + +Optional properties: +Note that the ADC is shared with the STMPE touchscreen. ADC related settings +have to be done in the mfd. +- st,norequest-mask: bitmask specifying which ADC channels should _not_ be + requestable due to different usage (e.g. touch) + +Node name must be stmpe_adc and should be child node of stmpe node to +which it belongs. + +Example: + + stmpe_adc { + compatible = "st,stmpe-adc"; + st,norequest-mask = <0x0F>; /* dont use ADC CH3-0 */ + }; diff --git a/Documentation/devicetree/bindings/input/touchscreen/stmpe.txt b/Documentation/devicetree/bindings/input/touchscreen/stmpe.txt index 127baa31a77a..71e1359749f2 100644 --- a/Documentation/devicetree/bindings/input/touchscreen/stmpe.txt +++ b/Documentation/devicetree/bindings/input/touchscreen/stmpe.txt @@ -5,13 +5,6 @@ Required properties: - compatible: "st,stmpe-ts" Optional properties: -- st,sample-time: ADC converstion time in number of clock. (0 -> 36 clocks, 1 -> - 44 clocks, 2 -> 56 clocks, 3 -> 64 clocks, 4 -> 80 clocks, 5 -> 96 clocks, 6 - -> 144 clocks), recommended is 4. -- st,mod-12b: ADC Bit mode (0 -> 10bit ADC, 1 -> 12bit ADC) -- st,ref-sel: ADC reference source (0 -> internal reference, 1 -> external - reference) -- st,adc-freq: ADC Clock speed (0 -> 1.625 MHz, 1 -> 3.25 MHz, 2 || 3 -> 6.5 MHz) - st,ave-ctrl: Sample average control (0 -> 1 sample, 1 -> 2 samples, 2 -> 4 samples, 3 -> 8 samples) - st,touch-det-delay: Touch detect interrupt delay (0 -> 10 us, 1 -> 50 us, 2 -> @@ -31,10 +24,6 @@ Example: stmpe_touchscreen { compatible = "st,stmpe-ts"; - st,sample-time = <4>; - st,mod-12b = <1>; - st,ref-sel = <0>; - st,adc-freq = <1>; st,ave-ctrl = <1>; st,touch-det-delay = <2>; st,settling = <2>; diff --git a/Documentation/devicetree/bindings/mfd/stmpe.txt b/Documentation/devicetree/bindings/mfd/stmpe.txt index c797c05cd3c2..bd991514d6c1 100644 --- a/Documentation/devicetree/bindings/mfd/stmpe.txt +++ b/Documentation/devicetree/bindings/mfd/stmpe.txt @@ -4,15 +4,29 @@ STMPE is an MFD device which may expose the following inbuilt devices: gpio, keypad, touchscreen, adc, pwm, rotator. Required properties: - - compatible : "st,stmpe[610|801|811|1600|1601|2401|2403]" - - reg : I2C/SPI address of the device + - compatible : "st,stmpe[610|801|811|1600|1601|2401|2403]" + - reg : I2C/SPI address of the device Optional properties: - - interrupts : The interrupt outputs from the controller - - interrupt-controller : Marks the device node as an interrupt controller - - wakeup-source : Marks the input device as wakable - - st,autosleep-timeout : Valid entries (ms); 4, 16, 32, 64, 128, 256, 512 and 1024 - - irq-gpio : If present, which GPIO to use for event IRQ + - interrupts : The interrupt outputs from the controller + - interrupt-controller : Marks the device node as an interrupt controller + - wakeup-source : Marks the input device as wakable + - st,autosleep-timeout : Valid entries (ms); 4, 16, 32, 64, 128, 256, 512 and 1024 + - irq-gpio : If present, which GPIO to use for event IRQ + +Optional properties for devices with touch and ADC (STMPE811|STMPE610): + - st,sample-time : ADC conversion time in number of clock. + 0 -> 36 clocks 4 -> 80 clocks (recommended) + 1 -> 44 clocks 5 -> 96 clocks + 2 -> 56 clocks 6 -> 144 clocks + 3 -> 64 clocks + - st,mod-12b : ADC Bit mode + 0 -> 10bit ADC 1 -> 12bit ADC + - st,ref-sel : ADC reference source + 0 -> internal 1 -> external + - st,adc-freq : ADC Clock speed + 0 -> 1.625 MHz 2 || 3 -> 6.5 MHz + 1 -> 3.25 MHz Example: -- 2.19.1 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH v2 4/4] ARM: dts: Add stmpe-adc driver to relevant devicetrees [not found] <20181119102528.2830-1-dev@pschenker.ch> 2018-11-19 10:25 ` [PATCH v2 3/4] iio: adc: add STMPE ADC devicetree bindings Philippe Schenker @ 2018-11-19 10:25 ` Philippe Schenker 2018-11-28 3:00 ` Shawn Guo 1 sibling, 1 reply; 3+ messages in thread From: Philippe Schenker @ 2018-11-19 10:25 UTC (permalink / raw) To: jic23, marcel.ziswiler, stefan Cc: Mark Rutland, devicetree, linux-tegra, Sascha Hauer, linux-kernel, Rob Herring, Jonathan Hunter, Philippe Schenker, Thierry Reding, NXP Linux Team, Pengutronix Kernel Team, Fabio Estevam, Shawn Guo, linux-arm-kernel From: Philippe Schenker <philippe.schenker@toradex.com> Activate the stmpe-adc driver as found on Apalis/Colibri iMX6/T30 modules Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com> --- Changes in v2: - Put common ADC settings in mfd arch/arm/boot/dts/imx6qdl-apalis.dtsi | 22 ++++++++++++++-------- arch/arm/boot/dts/imx6qdl-colibri.dtsi | 23 +++++++++++++++-------- arch/arm/boot/dts/tegra30-apalis.dtsi | 22 ++++++++++++++-------- arch/arm/boot/dts/tegra30-colibri.dtsi | 22 ++++++++++++++-------- 4 files changed, 57 insertions(+), 32 deletions(-) diff --git a/arch/arm/boot/dts/imx6qdl-apalis.dtsi b/arch/arm/boot/dts/imx6qdl-apalis.dtsi index 3dc99dd8dde1..8db476d8978d 100644 --- a/arch/arm/boot/dts/imx6qdl-apalis.dtsi +++ b/arch/arm/boot/dts/imx6qdl-apalis.dtsi @@ -331,11 +331,18 @@ id = <0>; blocks = <0x5>; irq-trigger = <0x1>; + /* 3.25 MHz ADC clock speed */ + st,adc-freq = <1>; + /* 12-bit ADC */ + st,mod-12b = <1>; + /* internal ADC reference */ + st,ref-sel = <0>; + /* ADC converstion time: 80 clocks */ + st,sample-time = <4>; + /* forbid to use ADC channels 3-0 (touch) */ stmpe_touchscreen { compatible = "st,stmpe-ts"; - /* 3.25 MHz ADC clock speed */ - st,adc-freq = <1>; /* 8 sample average control */ st,ave-ctrl = <3>; /* 7 length fractional part in z */ @@ -345,17 +352,16 @@ * current limit value */ st,i-drive = <1>; - /* 12-bit ADC */ - st,mod-12b = <1>; - /* internal ADC reference */ - st,ref-sel = <0>; - /* ADC converstion time: 80 clocks */ - st,sample-time = <4>; /* 1 ms panel driver settling time */ st,settling = <3>; /* 5 ms touch detect interrupt delay */ st,touch-det-delay = <5>; }; + + stmpe_adc { + compatible = "st,stmpe-adc"; + st,norequest-mask = <0x0F>; + }; }; }; diff --git a/arch/arm/boot/dts/imx6qdl-colibri.dtsi b/arch/arm/boot/dts/imx6qdl-colibri.dtsi index 87e15e7cb32b..2e303d79c7f8 100644 --- a/arch/arm/boot/dts/imx6qdl-colibri.dtsi +++ b/arch/arm/boot/dts/imx6qdl-colibri.dtsi @@ -262,11 +262,18 @@ id = <0>; blocks = <0x5>; irq-trigger = <0x1>; + /* 3.25 MHz ADC clock speed */ + st,adc-freq = <1>; + /* 12-bit ADC */ + st,mod-12b = <1>; + /* internal ADC reference */ + st,ref-sel = <0>; + /* ADC converstion time: 80 clocks */ + st,sample-time = <4>; + /* forbid to use ADC channels 3-0 (touch) */ stmpe_touchscreen { compatible = "st,stmpe-ts"; - /* 3.25 MHz ADC clock speed */ - st,adc-freq = <1>; /* 8 sample average control */ st,ave-ctrl = <3>; /* 7 length fractional part in z */ @@ -276,17 +283,17 @@ * current limit value */ st,i-drive = <1>; - /* 12-bit ADC */ - st,mod-12b = <1>; - /* internal ADC reference */ - st,ref-sel = <0>; - /* ADC converstion time: 80 clocks */ - st,sample-time = <4>; /* 1 ms panel driver settling time */ st,settling = <3>; /* 5 ms touch detect interrupt delay */ st,touch-det-delay = <5>; }; + + stmpe_adc { + compatible = "st,stmpe-adc"; + /* 3.25 MHz ADC clock speed */ + st,norequest-mask = <0x0F>; + }; }; }; diff --git a/arch/arm/boot/dts/tegra30-apalis.dtsi b/arch/arm/boot/dts/tegra30-apalis.dtsi index 7f112f192fe9..850b0d13549a 100644 --- a/arch/arm/boot/dts/tegra30-apalis.dtsi +++ b/arch/arm/boot/dts/tegra30-apalis.dtsi @@ -976,11 +976,18 @@ id = <0>; blocks = <0x5>; irq-trigger = <0x1>; + /* 3.25 MHz ADC clock speed */ + st,adc-freq = <1>; + /* 12-bit ADC */ + st,mod-12b = <1>; + /* internal ADC reference */ + st,ref-sel = <0>; + /* ADC converstion time: 80 clocks */ + st,sample-time = <4>; + /* forbid to use ADC channels 3-0 (touch) */ stmpe_touchscreen { compatible = "st,stmpe-ts"; - /* 3.25 MHz ADC clock speed */ - st,adc-freq = <1>; /* 8 sample average control */ st,ave-ctrl = <3>; /* 7 length fractional part in z */ @@ -990,17 +997,16 @@ * current limit value */ st,i-drive = <1>; - /* 12-bit ADC */ - st,mod-12b = <1>; - /* internal ADC reference */ - st,ref-sel = <0>; - /* ADC converstion time: 80 clocks */ - st,sample-time = <4>; /* 1 ms panel driver settling time */ st,settling = <3>; /* 5 ms touch detect interrupt delay */ st,touch-det-delay = <5>; }; + + stmpe_adc { + compatible = "st,stmpe-adc"; + st,norequest-mask = <0x0F>; + }; }; /* diff --git a/arch/arm/boot/dts/tegra30-colibri.dtsi b/arch/arm/boot/dts/tegra30-colibri.dtsi index 35af03ca9e90..1f9198bb24ff 100644 --- a/arch/arm/boot/dts/tegra30-colibri.dtsi +++ b/arch/arm/boot/dts/tegra30-colibri.dtsi @@ -845,11 +845,18 @@ id = <0>; blocks = <0x5>; irq-trigger = <0x1>; + /* 3.25 MHz ADC clock speed */ + st,adc-freq = <1>; + /* 12-bit ADC */ + st,mod-12b = <1>; + /* internal ADC reference */ + st,ref-sel = <0>; + /* ADC converstion time: 80 clocks */ + st,sample-time = <4>; + /* forbid to use ADC channels 3-0 (touch) */ stmpe_touchscreen { compatible = "st,stmpe-ts"; - /* 3.25 MHz ADC clock speed */ - st,adc-freq = <1>; /* 8 sample average control */ st,ave-ctrl = <3>; /* 7 length fractional part in z */ @@ -859,17 +866,16 @@ * current limit value */ st,i-drive = <1>; - /* 12-bit ADC */ - st,mod-12b = <1>; - /* internal ADC reference */ - st,ref-sel = <0>; - /* ADC converstion time: 80 clocks */ - st,sample-time = <4>; /* 1 ms panel driver settling time */ st,settling = <3>; /* 5 ms touch detect interrupt delay */ st,touch-det-delay = <5>; }; + + stmpe_adc { + compatible = "st,stmpe-adc"; + st,norequest-mask = <0x0F>; + }; }; /* -- 2.19.1 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v2 4/4] ARM: dts: Add stmpe-adc driver to relevant devicetrees 2018-11-19 10:25 ` [PATCH v2 4/4] ARM: dts: Add stmpe-adc driver to relevant devicetrees Philippe Schenker @ 2018-11-28 3:00 ` Shawn Guo 0 siblings, 0 replies; 3+ messages in thread From: Shawn Guo @ 2018-11-28 3:00 UTC (permalink / raw) To: Philippe Schenker Cc: jic23, marcel.ziswiler, stefan, Philippe Schenker, Fabio Estevam, devicetree, Thierry Reding, Jonathan Hunter, linux-kernel, Rob Herring, linux-arm-kernel, linux-tegra, Pengutronix Kernel Team, Mark Rutland, Sascha Hauer, NXP Linux Team On Mon, Nov 19, 2018 at 11:25:28AM +0100, Philippe Schenker wrote: > From: Philippe Schenker <philippe.schenker@toradex.com> > > Activate the stmpe-adc driver as found on Apalis/Colibri iMX6/T30 modules iMX6 and T30 changes need to be separate patches. Shawn > > Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com> > --- > > Changes in v2: > - Put common ADC settings in mfd > > arch/arm/boot/dts/imx6qdl-apalis.dtsi | 22 ++++++++++++++-------- > arch/arm/boot/dts/imx6qdl-colibri.dtsi | 23 +++++++++++++++-------- > arch/arm/boot/dts/tegra30-apalis.dtsi | 22 ++++++++++++++-------- > arch/arm/boot/dts/tegra30-colibri.dtsi | 22 ++++++++++++++-------- > 4 files changed, 57 insertions(+), 32 deletions(-) > > diff --git a/arch/arm/boot/dts/imx6qdl-apalis.dtsi b/arch/arm/boot/dts/imx6qdl-apalis.dtsi > index 3dc99dd8dde1..8db476d8978d 100644 > --- a/arch/arm/boot/dts/imx6qdl-apalis.dtsi > +++ b/arch/arm/boot/dts/imx6qdl-apalis.dtsi > @@ -331,11 +331,18 @@ > id = <0>; > blocks = <0x5>; > irq-trigger = <0x1>; > + /* 3.25 MHz ADC clock speed */ > + st,adc-freq = <1>; > + /* 12-bit ADC */ > + st,mod-12b = <1>; > + /* internal ADC reference */ > + st,ref-sel = <0>; > + /* ADC converstion time: 80 clocks */ > + st,sample-time = <4>; > + /* forbid to use ADC channels 3-0 (touch) */ > > stmpe_touchscreen { > compatible = "st,stmpe-ts"; > - /* 3.25 MHz ADC clock speed */ > - st,adc-freq = <1>; > /* 8 sample average control */ > st,ave-ctrl = <3>; > /* 7 length fractional part in z */ > @@ -345,17 +352,16 @@ > * current limit value > */ > st,i-drive = <1>; > - /* 12-bit ADC */ > - st,mod-12b = <1>; > - /* internal ADC reference */ > - st,ref-sel = <0>; > - /* ADC converstion time: 80 clocks */ > - st,sample-time = <4>; > /* 1 ms panel driver settling time */ > st,settling = <3>; > /* 5 ms touch detect interrupt delay */ > st,touch-det-delay = <5>; > }; > + > + stmpe_adc { > + compatible = "st,stmpe-adc"; > + st,norequest-mask = <0x0F>; > + }; > }; > }; > > diff --git a/arch/arm/boot/dts/imx6qdl-colibri.dtsi b/arch/arm/boot/dts/imx6qdl-colibri.dtsi > index 87e15e7cb32b..2e303d79c7f8 100644 > --- a/arch/arm/boot/dts/imx6qdl-colibri.dtsi > +++ b/arch/arm/boot/dts/imx6qdl-colibri.dtsi > @@ -262,11 +262,18 @@ > id = <0>; > blocks = <0x5>; > irq-trigger = <0x1>; > + /* 3.25 MHz ADC clock speed */ > + st,adc-freq = <1>; > + /* 12-bit ADC */ > + st,mod-12b = <1>; > + /* internal ADC reference */ > + st,ref-sel = <0>; > + /* ADC converstion time: 80 clocks */ > + st,sample-time = <4>; > + /* forbid to use ADC channels 3-0 (touch) */ > > stmpe_touchscreen { > compatible = "st,stmpe-ts"; > - /* 3.25 MHz ADC clock speed */ > - st,adc-freq = <1>; > /* 8 sample average control */ > st,ave-ctrl = <3>; > /* 7 length fractional part in z */ > @@ -276,17 +283,17 @@ > * current limit value > */ > st,i-drive = <1>; > - /* 12-bit ADC */ > - st,mod-12b = <1>; > - /* internal ADC reference */ > - st,ref-sel = <0>; > - /* ADC converstion time: 80 clocks */ > - st,sample-time = <4>; > /* 1 ms panel driver settling time */ > st,settling = <3>; > /* 5 ms touch detect interrupt delay */ > st,touch-det-delay = <5>; > }; > + > + stmpe_adc { > + compatible = "st,stmpe-adc"; > + /* 3.25 MHz ADC clock speed */ > + st,norequest-mask = <0x0F>; > + }; > }; > }; > > diff --git a/arch/arm/boot/dts/tegra30-apalis.dtsi b/arch/arm/boot/dts/tegra30-apalis.dtsi > index 7f112f192fe9..850b0d13549a 100644 > --- a/arch/arm/boot/dts/tegra30-apalis.dtsi > +++ b/arch/arm/boot/dts/tegra30-apalis.dtsi > @@ -976,11 +976,18 @@ > id = <0>; > blocks = <0x5>; > irq-trigger = <0x1>; > + /* 3.25 MHz ADC clock speed */ > + st,adc-freq = <1>; > + /* 12-bit ADC */ > + st,mod-12b = <1>; > + /* internal ADC reference */ > + st,ref-sel = <0>; > + /* ADC converstion time: 80 clocks */ > + st,sample-time = <4>; > + /* forbid to use ADC channels 3-0 (touch) */ > > stmpe_touchscreen { > compatible = "st,stmpe-ts"; > - /* 3.25 MHz ADC clock speed */ > - st,adc-freq = <1>; > /* 8 sample average control */ > st,ave-ctrl = <3>; > /* 7 length fractional part in z */ > @@ -990,17 +997,16 @@ > * current limit value > */ > st,i-drive = <1>; > - /* 12-bit ADC */ > - st,mod-12b = <1>; > - /* internal ADC reference */ > - st,ref-sel = <0>; > - /* ADC converstion time: 80 clocks */ > - st,sample-time = <4>; > /* 1 ms panel driver settling time */ > st,settling = <3>; > /* 5 ms touch detect interrupt delay */ > st,touch-det-delay = <5>; > }; > + > + stmpe_adc { > + compatible = "st,stmpe-adc"; > + st,norequest-mask = <0x0F>; > + }; > }; > > /* > diff --git a/arch/arm/boot/dts/tegra30-colibri.dtsi b/arch/arm/boot/dts/tegra30-colibri.dtsi > index 35af03ca9e90..1f9198bb24ff 100644 > --- a/arch/arm/boot/dts/tegra30-colibri.dtsi > +++ b/arch/arm/boot/dts/tegra30-colibri.dtsi > @@ -845,11 +845,18 @@ > id = <0>; > blocks = <0x5>; > irq-trigger = <0x1>; > + /* 3.25 MHz ADC clock speed */ > + st,adc-freq = <1>; > + /* 12-bit ADC */ > + st,mod-12b = <1>; > + /* internal ADC reference */ > + st,ref-sel = <0>; > + /* ADC converstion time: 80 clocks */ > + st,sample-time = <4>; > + /* forbid to use ADC channels 3-0 (touch) */ > > stmpe_touchscreen { > compatible = "st,stmpe-ts"; > - /* 3.25 MHz ADC clock speed */ > - st,adc-freq = <1>; > /* 8 sample average control */ > st,ave-ctrl = <3>; > /* 7 length fractional part in z */ > @@ -859,17 +866,16 @@ > * current limit value > */ > st,i-drive = <1>; > - /* 12-bit ADC */ > - st,mod-12b = <1>; > - /* internal ADC reference */ > - st,ref-sel = <0>; > - /* ADC converstion time: 80 clocks */ > - st,sample-time = <4>; > /* 1 ms panel driver settling time */ > st,settling = <3>; > /* 5 ms touch detect interrupt delay */ > st,touch-det-delay = <5>; > }; > + > + stmpe_adc { > + compatible = "st,stmpe-adc"; > + st,norequest-mask = <0x0F>; > + }; > }; > > /* > -- > 2.19.1 > ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-11-28 3:00 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <20181119102528.2830-1-dev@pschenker.ch> 2018-11-19 10:25 ` [PATCH v2 3/4] iio: adc: add STMPE ADC devicetree bindings Philippe Schenker 2018-11-19 10:25 ` [PATCH v2 4/4] ARM: dts: Add stmpe-adc driver to relevant devicetrees Philippe Schenker 2018-11-28 3:00 ` Shawn Guo
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).