1# SPDX-License-Identifier: GPL-2.0-only
2#
3# RMI4 configuration
4#
5config RMI4_CORE
6	tristate "Synaptics RMI4 bus support"
7	select IRQ_DOMAIN
8	help
9	  Say Y here if you want to support the Synaptics RMI4 bus.  This is
10	  required for all RMI4 device support.
11
12	  If unsure, say Y.
13
14if RMI4_CORE
15
16config RMI4_I2C
17	tristate "RMI4 I2C Support"
18	depends on I2C
19	help
20	  Say Y here if you want to support RMI4 devices connected to an I2C
21	  bus.
22
23	  If unsure, say Y.
24
25config RMI4_SPI
26	tristate "RMI4 SPI Support"
27	depends on SPI
28	help
29	  Say Y here if you want to support RMI4 devices connected to a SPI
30	  bus.
31
32	  If unsure, say N.
33
34config RMI4_SMB
35	tristate "RMI4 SMB Support"
36	depends on I2C
37	help
38	  Say Y here if you want to support RMI4 devices connected to an SMB
39	  bus.
40
41	  If unsure, say N.
42
43	  To compile this driver as a module, choose M here: the module will be
44	  called rmi_smbus.
45
46config RMI4_F03
47	bool "RMI4 Function 03 (PS2 Guest)"
48	depends on RMI4_CORE
49	help
50	  Say Y here if you want to add support for RMI4 function 03.
51
52	  Function 03 provides PS2 guest support for RMI4 devices. This
53	  includes support for TrackPoints on TouchPads.
54
55config RMI4_F03_SERIO
56	tristate
57	depends on RMI4_CORE
58	depends on RMI4_F03
59	default RMI4_CORE
60	select SERIO
61
62config RMI4_2D_SENSOR
63	bool
64
65config RMI4_F11
66	bool "RMI4 Function 11 (2D pointing)"
67	select RMI4_2D_SENSOR
68	help
69	  Say Y here if you want to add support for RMI4 function 11.
70
71	  Function 11 provides 2D multifinger pointing for touchscreens and
72	  touchpads. For sensors that support relative pointing, F11 also
73	  provides mouse input.
74
75config RMI4_F12
76	bool "RMI4 Function 12 (2D pointing)"
77	select RMI4_2D_SENSOR
78	help
79	  Say Y here if you want to add support for RMI4 function 12.
80
81	  Function 12 provides 2D multifinger pointing for touchscreens and
82	  touchpads. For sensors that support relative pointing, F12 also
83	  provides mouse input.
84
85config RMI4_F30
86	bool "RMI4 Function 30 (GPIO LED)"
87	help
88	  Say Y here if you want to add support for RMI4 function 30.
89
90	  Function 30 provides GPIO and LED support for RMI4 devices. This
91	  includes support for buttons on TouchPads and ClickPads.
92
93config RMI4_F34
94	bool "RMI4 Function 34 (Device reflash)"
95	select FW_LOADER
96	help
97	  Say Y here if you want to add support for RMI4 function 34.
98
99	  Function 34 provides support for upgrading the firmware on the RMI4
100	  device via the firmware loader interface. This is triggered using a
101	  sysfs attribute.
102
103config RMI4_F3A
104	bool "RMI4 Function 3A (GPIO)"
105	help
106	  Say Y here if you want to add support for RMI4 function 3A.
107
108	  Function 3A provides GPIO support for RMI4 devices. This includes
109	  support for buttons on TouchPads and ClickPads.
110
111config RMI4_F54
112	bool "RMI4 Function 54 (Analog diagnostics)"
113	depends on VIDEO_V4L2=y || (RMI4_CORE=m && VIDEO_V4L2=m)
114	select VIDEOBUF2_VMALLOC
115	select RMI4_F55
116	help
117	  Say Y here if you want to add support for RMI4 function 54
118
119	  Function 54 provides access to various diagnostic features in certain
120	  RMI4 touch sensors.
121
122config RMI4_F55
123	bool "RMI4 Function 55 (Sensor tuning)"
124	help
125	  Say Y here if you want to add support for RMI4 function 55
126
127	  Function 55 provides access to the RMI4 touch sensor tuning
128	  mechanism.
129
130endif # RMI_CORE
131