1# SPDX-License-Identifier: GPL-2.0-only
2#
3# Magnetometer sensors
4#
5# When adding new entries keep the list in alphabetical order
6
7menu "Magnetometer sensors"
8
9config AF8133J
10	tristate "Voltafield AF8133J 3-Axis Magnetometer"
11	depends on I2C
12	depends on OF
13	select REGMAP_I2C
14	help
15	  Say yes here to build support for Voltafield AF8133J I2C-based
16	  3-axis magnetometer chip.
17
18	  To compile this driver as a module, choose M here: the module
19	  will be called af8133j.
20
21config AK8974
22	tristate "Asahi Kasei AK8974 3-Axis Magnetometer"
23	depends on I2C
24	select REGMAP_I2C
25	select IIO_BUFFER
26	select IIO_TRIGGERED_BUFFER
27	help
28	  Say yes here to build support for Asahi Kasei AK8974, AMI305 or
29	  AMI306 I2C-based 3-axis magnetometer chips.
30
31	  To compile this driver as a module, choose M here: the module
32	  will be called ak8974.
33
34config AK8975
35	tristate "Asahi Kasei AK8975 3-Axis Magnetometer"
36	depends on I2C
37	depends on GPIOLIB || COMPILE_TEST
38	select IIO_BUFFER
39	select IIO_TRIGGERED_BUFFER
40	help
41	  Say yes here to build support for Asahi Kasei AK8975, AK8963,
42	  AK09911, AK09912 or AK09916 3-Axis Magnetometer.
43
44	  To compile this driver as a module, choose M here: the module
45	  will be called ak8975.
46
47config AK09911
48	tristate "Asahi Kasei AK09911 3-axis Compass"
49	depends on I2C
50	depends on GPIOLIB || COMPILE_TEST
51	select AK8975
52	help
53	  Deprecated: AK09911 is now supported by AK8975 driver.
54
55config BMC150_MAGN
56	tristate
57	select IIO_BUFFER
58	select IIO_TRIGGERED_BUFFER
59
60config BMC150_MAGN_I2C
61	tristate "Bosch BMC150 I2C Magnetometer Driver"
62	depends on I2C
63	select BMC150_MAGN
64	select REGMAP_I2C
65	help
66	  Say yes here to build support for the BMC150 magnetometer with
67	  I2C interface.
68
69	  This is a combo module with both accelerometer and magnetometer.
70	  This driver is only implementing magnetometer part, which has
71	  its own address and register map.
72
73	  This driver also supports I2C Bosch BMC156 and BMM150 chips.
74	  To compile this driver as a module, choose M here: the module will be
75	  called bmc150_magn_i2c.
76
77config BMC150_MAGN_SPI
78	tristate "Bosch BMC150 SPI Magnetometer Driver"
79	depends on SPI
80	select BMC150_MAGN
81	select REGMAP_SPI
82	help
83	  Say yes here to build support for the BMC150 magnetometer with
84	  SPI interface.
85
86	  This is a combo module with both accelerometer and magnetometer.
87	  This driver is only implementing magnetometer part, which has
88	  its own address and register map.
89
90	  This driver also supports SPI Bosch BMC156 and BMM150 chips.
91	  To compile this driver as a module, choose M here: the module will be
92	  called bmc150_magn_spi.
93
94config MAG3110
95	tristate "Freescale MAG3110 3-Axis Magnetometer"
96	depends on I2C
97	select IIO_BUFFER
98	select IIO_TRIGGERED_BUFFER
99	help
100	  Say yes here to build support for the Freescale MAG3110 3-Axis
101	  magnetometer.
102
103	  To compile this driver as a module, choose M here: the module
104	  will be called mag3110.
105
106config HID_SENSOR_MAGNETOMETER_3D
107	depends on HID_SENSOR_HUB
108	select IIO_BUFFER
109	select HID_SENSOR_IIO_COMMON
110	select HID_SENSOR_IIO_TRIGGER
111	tristate "HID Magenetometer 3D"
112	help
113	  Say yes here to build support for the HID SENSOR
114	  Magnetometer 3D.
115
116config MMC35240
117	tristate "MEMSIC MMC35240 3-axis magnetic sensor"
118	select REGMAP_I2C
119	depends on I2C
120	help
121	  Say yes here to build support for the MEMSIC MMC35240 3-axis
122	  magnetic sensor.
123
124	  To compile this driver as a module, choose M here: the module
125	  will be called mmc35240.
126
127config IIO_ST_MAGN_3AXIS
128	tristate "STMicroelectronics magnetometers 3-Axis Driver"
129	depends on (I2C || SPI_MASTER) && SYSFS
130	select IIO_ST_SENSORS_CORE
131	select IIO_TRIGGERED_BUFFER if (IIO_BUFFER)
132	help
133	  Say yes here to build support for STMicroelectronics magnetometers:
134	  LSM303C, LSM303DLHC, LSM303DLM, LIS3MDL.
135
136	  Also need to enable at least one of I2C and SPI interface drivers
137	  below.
138
139config IIO_ST_MAGN_I2C_3AXIS
140	tristate "STMicroelectronics magnetometers 3-Axis I2C Interface"
141	depends on I2C && IIO_ST_MAGN_3AXIS
142	default I2C && IIO_ST_MAGN_3AXIS
143	select IIO_ST_SENSORS_I2C
144	help
145	  Build support for STMicroelectronics magnetometers I2C interface.
146
147	  To compile this driver as a module, choose M here. The module
148	  will be called st_magn_i2c.
149
150config IIO_ST_MAGN_SPI_3AXIS
151	tristate "STMicroelectronics magnetometers 3-Axis SPI Interface"
152	depends on SPI_MASTER && IIO_ST_MAGN_3AXIS
153	default SPI_MASTER && IIO_ST_MAGN_3AXIS
154	select IIO_ST_SENSORS_SPI
155	help
156	  Build support for STMicroelectronics magnetometers SPI interface.
157
158	  To compile this driver as a module, choose M here. The module
159	  will be called st_magn_spi.
160
161config SENSORS_HMC5843
162	tristate
163	select IIO_BUFFER
164	select IIO_TRIGGERED_BUFFER
165
166config SENSORS_HMC5843_I2C
167	tristate "Honeywell HMC5843/5883/5883L 3-Axis Magnetometer (I2C)"
168	depends on I2C
169	select SENSORS_HMC5843
170	select REGMAP_I2C
171	help
172	  Say Y here to add support for the Honeywell HMC5843, HMC5883 and
173	  HMC5883L 3-Axis Magnetometer (digital compass).
174
175	  This driver can also be compiled as a set of modules.
176	  If so, these modules will be created:
177	  - hmc5843_core (core functions)
178	  - hmc5843_i2c (support for HMC5843, HMC5883, HMC5883L and HMC5983)
179
180config SENSORS_HMC5843_SPI
181	tristate "Honeywell HMC5983 3-Axis Magnetometer (SPI)"
182	depends on SPI_MASTER
183	select SENSORS_HMC5843
184	select REGMAP_SPI
185	help
186	  Say Y here to add support for the Honeywell HMC5983 3-Axis Magnetometer
187	  (digital compass).
188
189	  This driver can also be compiled as a set of modules.
190	  If so, these modules will be created:
191	  - hmc5843_core (core functions)
192	  - hmc5843_spi (support for HMC5983)
193
194config SENSORS_RM3100
195	tristate
196	select IIO_BUFFER
197	select IIO_TRIGGERED_BUFFER
198
199config SENSORS_RM3100_I2C
200	tristate "PNI RM3100 3-Axis Magnetometer (I2C)"
201	depends on I2C
202	select SENSORS_RM3100
203	select REGMAP_I2C
204	help
205	  Say Y here to add support for the PNI RM3100 3-Axis Magnetometer.
206
207	  This driver can also be compiled as a module.
208	  To compile this driver as a module, choose M here: the module
209	  will be called rm3100-i2c.
210
211config SENSORS_RM3100_SPI
212	tristate "PNI RM3100 3-Axis Magnetometer (SPI)"
213	depends on SPI_MASTER
214	select SENSORS_RM3100
215	select REGMAP_SPI
216	help
217	  Say Y here to add support for the PNI RM3100 3-Axis Magnetometer.
218
219	  This driver can also be compiled as a module.
220	  To compile this driver as a module, choose M here: the module
221	  will be called rm3100-spi.
222
223config TI_TMAG5273
224	tristate "TI TMAG5273 Low-Power Linear 3D Hall-Effect Sensor"
225	depends on I2C
226	select REGMAP_I2C
227	help
228	  Say Y here to add support for the TI TMAG5273 Low-Power
229	  Linear 3D Hall-Effect Sensor.
230
231	  This driver can also be compiled as a module.
232	  To compile this driver as a module, choose M here: the module
233	  will be called tmag5273.
234
235config YAMAHA_YAS530
236	tristate "Yamaha YAS530 family of 3-Axis Magnetometers (I2C)"
237	depends on I2C
238	select REGMAP_I2C
239	select IIO_BUFFER
240	select IIO_TRIGGERED_BUFFER
241	help
242	  Say Y here to add support for the Yamaha YAS530 series of
243	  3-Axis Magnetometers. YAS530, YAS532, YAS533 and YAS537 are
244	  supported.
245
246	  This driver can also be compiled as a module.
247	  To compile this driver as a module, choose M here: the module
248	  will be called yamaha-yas.
249
250endmenu
251