1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * Copyright (c) 2011 Bosch Sensortec GmbH
4  * Copyright (c) 2011 Unixphere
5  */
6 
7 #ifndef _BMA150_H_
8 #define _BMA150_H_
9 
10 #define BMA150_DRIVER		"bma150"
11 
12 #define BMA150_RANGE_2G		0
13 #define BMA150_RANGE_4G		1
14 #define BMA150_RANGE_8G		2
15 
16 #define BMA150_BW_25HZ		0
17 #define BMA150_BW_50HZ		1
18 #define BMA150_BW_100HZ		2
19 #define BMA150_BW_190HZ		3
20 #define BMA150_BW_375HZ		4
21 #define BMA150_BW_750HZ		5
22 #define BMA150_BW_1500HZ	6
23 
24 struct bma150_cfg {
25 	bool any_motion_int;		/* Set to enable any-motion interrupt */
26 	bool hg_int;			/* Set to enable high-G interrupt */
27 	bool lg_int;			/* Set to enable low-G interrupt */
28 	unsigned char any_motion_dur;	/* Any-motion duration */
29 	unsigned char any_motion_thres;	/* Any-motion threshold */
30 	unsigned char hg_hyst;		/* High-G hysterisis */
31 	unsigned char hg_dur;		/* High-G duration */
32 	unsigned char hg_thres;		/* High-G threshold */
33 	unsigned char lg_hyst;		/* Low-G hysterisis */
34 	unsigned char lg_dur;		/* Low-G duration */
35 	unsigned char lg_thres;		/* Low-G threshold */
36 	unsigned char range;		/* one of BMA150_RANGE_xxx */
37 	unsigned char bandwidth;	/* one of BMA150_BW_xxx */
38 };
39 
40 struct bma150_platform_data {
41 	struct bma150_cfg cfg;
42 	int (*irq_gpio_cfg)(void);
43 };
44 
45 #endif /* _BMA150_H_ */
46