iio: adc: add STMPE ADC devicetree bindings
authorStefan Agner <stefan@agner.ch>
Fri, 21 Dec 2018 13:46:35 +0000 (14:46 +0100)
committerLee Jones <lee.jones@linaro.org>
Wed, 16 Jan 2019 12:37:36 +0000 (12:37 +0000)
This adds the devicetree bindings for the STMPE ADC. This also corrects
a typo in st,sample-time it is rather "6 -> 124 clocks" according
to the datasheet and not 144.
We need to use the naming stmpe_adc in devicetree because this is given
by the mfd device.

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>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Documentation/devicetree/bindings/iio/adc/stmpe-adc.txt [new file with mode: 0644]
Documentation/devicetree/bindings/input/touchscreen/stmpe.txt
Documentation/devicetree/bindings/mfd/stmpe.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 (file)
index 0000000..480e664
--- /dev/null
@@ -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 */
+       };
index bf66a55a7de50a0ca3c039f001fa535fd1d49c82..c549924603d2691e5e7ceac14517c41cbf922165 100644 (file)
@@ -5,24 +5,6 @@ Required properties:
  - compatible: "st,stmpe-ts"
 
 Optional properties:
-- st,sample-time       : ADC conversion time in number of clock.
-                               0 -> 36 clocks
-                               1 -> 44 clocks
-                               2 -> 56 clocks
-                               3 -> 64 clocks
-                               4 -> 80 clocks (recommended)
-                               5 -> 96 clocks
-                               6 -> 144 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
-                               1 -> 3.25 MHz
-                               2 || 3 -> 6.5 MHz
 - st,ave-ctrl          : Sample average control
                                0 -> 1 sample
                                1 -> 2 samples
@@ -52,20 +34,76 @@ Optional properties:
                                0 -> 20 mA (typical 35mA max)
                                1 -> 50 mA (typical 80 mA max)
 
+Optional properties common with MFD (deprecated):
+ - st,sample-time      : ADC conversion time in number of clock.
+                               0 -> 36 clocks
+                               1 -> 44 clocks
+                               2 -> 56 clocks
+                               3 -> 64 clocks
+                               4 -> 80 clocks (recommended)
+                               5 -> 96 clocks
+                               6 -> 124 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
+                               1 -> 3.25 MHz
+                               2 || 3 -> 6.5 MHz
+
 Node name must be stmpe_touchscreen and should be child node of stmpe node to
 which it belongs.
 
+Note that common ADC settings of stmpe_touchscreen (child) will take precedence
+over the settings done in MFD.
+
 Example:
 
+stmpe811@41 {
+       compatible = "st,stmpe811";
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_touch_int>;
+       #address-cells = <1>;
+       #size-cells = <0>;
+       reg = <0x41>;
+       interrupts = <10 IRQ_TYPE_LEVEL_LOW>;
+       interrupt-parent = <&gpio4>;
+       interrupt-controller;
+       id = <0>;
+       blocks = <0x5>;
+       irq-trigger = <0x1>;
+       /* Common ADC settings */
+       /* 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>;
+
        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>;
+               reg = <0>;
+               /* 8 sample average control */
+               st,ave-ctrl = <3>;
+               /* 5 ms touch detect interrupt delay */
+               st,touch-det-delay = <5>;
+               /* 1 ms panel driver settling time */
+               st,settling = <3>;
+               /* 7 length fractional part in z */
                st,fraction-z = <7>;
+               /*
+                * 50 mA typical 80 mA max touchscreen drivers
+                * current limit value
+                */
                st,i-drive = <1>;
        };
+       stmpe_adc {
+               compatible = "st,stmpe-adc";
+               st,norequest-mask = <0x0F>;
+       };
+};
index a46e7177195dc5c8febc89af36141bcd5275d095..d4408a417193319950b04a15289a6f2942bcb658 100644 (file)
@@ -14,6 +14,20 @@ Optional properties:
  - 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 -> 124 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:
 
        stmpe1601: stmpe1601@40 {