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