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