On Mon, Dec 07, 2020 at 12:22:15AM +0300, Dmitry Osipenko wrote: > Some Atmel touchscreen controllers have a WAKE line that needs to be > asserted low in order to wake up controller from a deep sleep. Document > the wakeup methods and the wake-GPIO properties. wake-GPIO? > > Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx> > Signed-off-by: Dmitry Osipenko <digetx@xxxxxxxxx> > --- > .../bindings/input/atmel,maxtouch.yaml | 29 +++++++++++++++++++ > include/dt-bindings/input/atmel-maxtouch.h | 10 +++++++ > 2 files changed, 39 insertions(+) > create mode 100644 include/dt-bindings/input/atmel-maxtouch.h > > diff --git a/Documentation/devicetree/bindings/input/atmel,maxtouch.yaml b/Documentation/devicetree/bindings/input/atmel,maxtouch.yaml > index 8c6418f76e94..e6b03a1e7c30 100644 > --- a/Documentation/devicetree/bindings/input/atmel,maxtouch.yaml > +++ b/Documentation/devicetree/bindings/input/atmel,maxtouch.yaml > @@ -39,6 +39,13 @@ properties: > (active low). The line must be flagged with > GPIO_ACTIVE_LOW. > > + wake-gpios: > + maxItems: 1 > + description: > + Optional GPIO specifier for the touchscreen's wake pin > + (active low). The line must be flagged with > + GPIO_ACTIVE_LOW. > + > linux,gpio-keymap: > $ref: /schemas/types.yaml#/definitions/uint32-array > description: | > @@ -53,6 +60,26 @@ properties: > or experiment to determine which bit corresponds to which input. Use > KEY_RESERVED for unused padding values. > > + atmel,wakeup-method: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: | > + The WAKE line is an active-low input that is used to wake up the touch > + controller from deep-sleep mode before communication with the controller > + could be started. This optional feature used to minimize current > + consumption when the controller is in deep sleep mode. This feature is > + relevant only to some controller families, like mXT1386 controller for > + example. > + > + The WAKE pin can be connected in one of the following ways: > + 1) left permanently low > + 2) connected to the I2C-compatible SCL pin > + 3) connected to a GPIO pin on the host > + enum: > + - 0 # ATMEL_MXT_WAKEUP_NONE > + - 1 # ATMEL_MXT_WAKEUP_I2C_SCL > + - 2 # ATMEL_MXT_WAKEUP_GPIO > + default: 0 > + > required: > - compatible > - reg > @@ -63,6 +90,7 @@ additionalProperties: false > examples: > - | > #include <dt-bindings/interrupt-controller/irq.h> > + #include <dt-bindings/input/atmel-maxtouch.h> > #include <dt-bindings/gpio/gpio.h> > i2c { > #address-cells = <1>; > @@ -75,6 +103,7 @@ examples: > reset-gpios = <&gpio 27 GPIO_ACTIVE_LOW>; > vdda-supply = <&ab8500_ldo_aux2_reg>; > vdd-supply = <&ab8500_ldo_aux5_reg>; > + atmel,wakeup-method = <ATMEL_MXT_WAKEUP_I2C_SCL>; > }; > }; > > diff --git a/include/dt-bindings/input/atmel-maxtouch.h b/include/dt-bindings/input/atmel-maxtouch.h > new file mode 100644 > index 000000000000..7345ab32224d > --- /dev/null > +++ b/include/dt-bindings/input/atmel-maxtouch.h > @@ -0,0 +1,10 @@ > +/* SPDX-License-Identifier: GPL-2.0+ */ > + > +#ifndef _DT_BINDINGS_ATMEL_MAXTOUCH_H > +#define _DT_BINDINGS_ATMEL_MAXTOUCH_H > + > +#define ATMEL_MXT_WAKEUP_NONE 0 > +#define ATMEL_MXT_WAKEUP_I2C_SCL 1 > +#define ATMEL_MXT_WAKEUP_GPIO 2 > + > +#endif /* _DT_BINDINGS_ATMEL_MAXTOUCH_H */ > -- > 2.29.2 >