1# BMM150 Geomagnetic sensor configuration options
2
3# Copyright (c) 2017 Intel Corporation
4# SPDX-License-Identifier: Apache-2.0
5
6menuconfig BMM150
7	bool "BMM150 I2C Geomagnetic Chip"
8	default y
9	depends on DT_HAS_BOSCH_BMM150_ENABLED
10	select I2C
11	help
12	  Enable driver for BMM150 I2C-based Geomagnetic sensor.
13if BMM150
14
15choice
16	prompt "Default preset"
17	default BMM150_PRESET_REGULAR
18	help
19	  Specify the default preset (x/y oversampling, z oversampling, sampling
20	  frequency).
21
22config BMM150_PRESET_LOW_POWER
23	bool "Low power (3, 3, 10)"
24
25config BMM150_PRESET_REGULAR
26	bool "Regular (9, 15, 10)"
27
28config BMM150_PRESET_ENHANCED_REGULAR
29	bool "Enhanced regular (15, 27, 10)"
30
31config BMM150_PRESET_HIGH_ACCURACY
32	bool "High accuracy (47, 83, 20)"
33
34endchoice
35
36choice BMM150_TRIGGER_MODE
37	prompt "Trigger mode"
38	default BMM150_TRIGGER_NONE
39	help
40	  Specify the type of triggering to be used by the driver.
41
42config BMM150_TRIGGER_NONE
43	bool "No trigger"
44
45config BMM150_TRIGGER_GLOBAL_THREAD
46	bool "Use global thread"
47	depends on GPIO
48	depends on $(dt_compat_any_has_prop,$(DT_COMPAT_BOSCH_BMM150),drdy-gpios)
49	select BMM150_TRIGGER
50
51config BMM150_TRIGGER_OWN_THREAD
52	bool "Use own thread"
53	depends on GPIO
54	depends on $(dt_compat_any_has_prop,$(DT_COMPAT_BOSCH_BMM150),drdy-gpios)
55	select BMM150_TRIGGER
56
57config BMM150_TRIGGER_DIRECT
58	bool "Use IRQ handler"
59	depends on GPIO
60	depends on $(dt_compat_any_has_prop,$(DT_COMPAT_BOSCH_BMM150),drdy-gpios)
61	select BMM150_TRIGGER
62endchoice
63
64config BMM150_TRIGGER
65	bool
66
67config BMM150_SAMPLING_RATE_RUNTIME
68	bool "Dynamic sampling rate"
69	help
70	  Enable alteration of sampling rate attribute at runtime.
71
72config BMM150_SAMPLING_REP_XY
73	bool "Dynamic XY oversampling"
74	help
75	  Enable alteration of XY oversampling at runtime.
76
77config BMM150_SAMPLING_REP_Z
78	bool "Dynamic Z oversampling"
79	help
80	  Enable alteration of Z oversampling at runtime.
81
82config BMM150_THREAD_PRIORITY
83	int "Own thread priority"
84	depends on BMM150_TRIGGER_OWN_THREAD
85	default 10
86	help
87	  Priority of the thread used by the driver to handle interrupts.
88
89config BMM150_THREAD_STACK_SIZE
90	int "Own thread stack size"
91	depends on BMM150_TRIGGER_OWN_THREAD
92	default 1024
93	help
94	  Stack size of thread used by the driver to handle interrupts.
95
96endif # BMM150
97