xref: /openbmc/linux/drivers/iio/accel/adxl355.h (revision 7ae9fb1b7ecbb5d85d07857943f677fd1a559b18)
112ed2786SPuranjay Mohan /* SPDX-License-Identifier: GPL-2.0-only */
212ed2786SPuranjay Mohan /*
312ed2786SPuranjay Mohan  * ADXL355 3-Axis Digital Accelerometer
412ed2786SPuranjay Mohan  *
512ed2786SPuranjay Mohan  * Copyright (c) 2021 Puranjay Mohan <puranjay12@gmail.com>
612ed2786SPuranjay Mohan  */
712ed2786SPuranjay Mohan 
812ed2786SPuranjay Mohan #ifndef _ADXL355_H_
912ed2786SPuranjay Mohan #define _ADXL355_H_
1012ed2786SPuranjay Mohan 
1112ed2786SPuranjay Mohan #include <linux/regmap.h>
1212ed2786SPuranjay Mohan 
13*d3532d69SRamona Bolboaca enum adxl355_device_type {
14*d3532d69SRamona Bolboaca 	ADXL355,
15*d3532d69SRamona Bolboaca 	ADXL359,
16*d3532d69SRamona Bolboaca };
17*d3532d69SRamona Bolboaca 
18*d3532d69SRamona Bolboaca struct adxl355_fractional_type {
19*d3532d69SRamona Bolboaca 	int integer;
20*d3532d69SRamona Bolboaca 	int decimal;
21*d3532d69SRamona Bolboaca };
22*d3532d69SRamona Bolboaca 
2312ed2786SPuranjay Mohan struct device;
2412ed2786SPuranjay Mohan 
25*d3532d69SRamona Bolboaca struct adxl355_chip_info {
26*d3532d69SRamona Bolboaca 	const char			*name;
27*d3532d69SRamona Bolboaca 	u8				part_id;
28*d3532d69SRamona Bolboaca 	struct adxl355_fractional_type	accel_scale;
29*d3532d69SRamona Bolboaca 	struct adxl355_fractional_type	temp_offset;
30*d3532d69SRamona Bolboaca };
31*d3532d69SRamona Bolboaca 
3212ed2786SPuranjay Mohan extern const struct regmap_access_table adxl355_readable_regs_tbl;
3312ed2786SPuranjay Mohan extern const struct regmap_access_table adxl355_writeable_regs_tbl;
34*d3532d69SRamona Bolboaca extern const struct adxl355_chip_info adxl35x_chip_info[];
3512ed2786SPuranjay Mohan 
3612ed2786SPuranjay Mohan int adxl355_core_probe(struct device *dev, struct regmap *regmap,
37*d3532d69SRamona Bolboaca 		       const struct adxl355_chip_info *chip_info);
3812ed2786SPuranjay Mohan 
3912ed2786SPuranjay Mohan #endif /* _ADXL355_H_ */
40