Merge tag 'auxdisplay-for-linus-v5.18-rc1' of https://github.com/ojeda/linux
[linux-2.6-microblaze.git] / include / linux / spi / ads7846.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* linux/spi/ads7846.h */
3
4 struct ads7846_platform_data {
5         u16     model;                  /* 7843, 7845, 7846, 7873. */
6         u16     vref_delay_usecs;       /* 0 for external vref; etc */
7         u16     vref_mv;                /* external vref value, milliVolts
8                                          * ads7846: if 0, use internal vref */
9         bool    keep_vref_on;           /* set to keep vref on for differential
10                                          * measurements as well */
11         bool    swap_xy;                /* swap x and y axes */
12
13         /* Settling time of the analog signals; a function of Vcc and the
14          * capacitance on the X/Y drivers.  If set to non-zero, two samples
15          * are taken with settle_delay us apart, and the second one is used.
16          * ~150 uSec with 0.01uF caps.
17          */
18         u16     settle_delay_usecs;
19
20         /* If set to non-zero, after samples are taken this delay is applied
21          * and penirq is rechecked, to help avoid false events.  This value
22          * is affected by the material used to build the touch layer.
23          */
24         u16     penirq_recheck_delay_usecs;
25
26         u16     x_plate_ohms;
27         u16     y_plate_ohms;
28
29         u16     x_min, x_max;
30         u16     y_min, y_max;
31         u16     pressure_min, pressure_max;
32
33         u16     debounce_max;           /* max number of additional readings
34                                          * per sample */
35         u16     debounce_tol;           /* tolerance used for filtering */
36         u16     debounce_rep;           /* additional consecutive good readings
37                                          * required after the first two */
38         int     gpio_pendown;           /* the GPIO used to decide the pendown
39                                          * state if get_pendown_state == NULL */
40         int     gpio_pendown_debounce;  /* platform specific debounce time for
41                                          * the gpio_pendown */
42         int     (*get_pendown_state)(void);
43         void    (*wait_for_sync)(void);
44         bool    wakeup;
45         unsigned long irq_flags;
46 };
47