brintos

brintos / linux-shallow public Read only

0
0
Text · 1.9 KiB · 3d5c871 Raw
68 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * ADXL345 3-Axis Digital Accelerometer4 *5 * Copyright (c) 2017 Eva Rachel Retuya <eraretuya@gmail.com>6 */7 8#ifndef _ADXL345_H_9#define _ADXL345_H_10 11#define ADXL345_REG_DEVID		0x0012#define ADXL345_REG_OFSX		0x1E13#define ADXL345_REG_OFSY		0x1F14#define ADXL345_REG_OFSZ		0x2015#define ADXL345_REG_OFS_AXIS(index)	(ADXL345_REG_OFSX + (index))16#define ADXL345_REG_BW_RATE		0x2C17#define ADXL345_REG_POWER_CTL		0x2D18#define ADXL345_REG_DATA_FORMAT		0x3119#define ADXL345_REG_DATAX0		0x3220#define ADXL345_REG_DATAY0		0x3421#define ADXL345_REG_DATAZ0		0x3622#define ADXL345_REG_DATA_AXIS(index)	\23	(ADXL345_REG_DATAX0 + (index) * sizeof(__le16))24 25#define ADXL345_BW_RATE			GENMASK(3, 0)26#define ADXL345_BASE_RATE_NANO_HZ	97656250LL27 28#define ADXL345_POWER_CTL_MEASURE	BIT(3)29#define ADXL345_POWER_CTL_STANDBY	0x0030 31#define ADXL345_DATA_FORMAT_RANGE	GENMASK(1, 0)	/* Set the g range */32#define ADXL345_DATA_FORMAT_JUSTIFY	BIT(2)	/* Left-justified (MSB) mode */33#define ADXL345_DATA_FORMAT_FULL_RES	BIT(3)	/* Up to 13-bits resolution */34#define ADXL345_DATA_FORMAT_SPI_3WIRE	BIT(6)	/* 3-wire SPI mode */35#define ADXL345_DATA_FORMAT_SELF_TEST	BIT(7)	/* Enable a self test */36 37#define ADXL345_DATA_FORMAT_2G		038#define ADXL345_DATA_FORMAT_4G		139#define ADXL345_DATA_FORMAT_8G		240#define ADXL345_DATA_FORMAT_16G		341 42#define ADXL345_DEVID			0xE543 44/*45 * In full-resolution mode, scale factor is maintained at ~4 mg/LSB46 * in all g ranges.47 *48 * At +/- 16g with 13-bit resolution, scale is computed as:49 * (16 + 16) * 9.81 / (2^13 - 1) = 0.038350 */51#define ADXL345_USCALE	3830052 53/*54 * The Datasheet lists a resolution of Resolution is ~49 mg per LSB. That's55 * ~480mm/s**2 per LSB.56 */57#define ADXL375_USCALE	48000058 59struct adxl345_chip_info {60	const char *name;61	int uscale;62};63 64int adxl345_core_probe(struct device *dev, struct regmap *regmap,65		       int (*setup)(struct device*, struct regmap*));66 67#endif /* _ADXL345_H_ */68