xref: /openbmc/linux/include/linux/bma150.h (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
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