2019-12-20 16:00:50 +00:00
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Register constants and other forward declarations needed by the bma400
* sources .
*
* Copyright 2019 Dan Robertson < dan @ dlrobertson . com >
*/
# ifndef _BMA400_H_
# define _BMA400_H_
# include <linux/bits.h>
# include <linux/regmap.h>
/*
* Read - Only Registers
*/
/* Status and ID registers */
# define BMA400_CHIP_ID_REG 0x00
# define BMA400_ERR_REG 0x02
# define BMA400_STATUS_REG 0x03
/* Acceleration registers */
# define BMA400_X_AXIS_LSB_REG 0x04
# define BMA400_X_AXIS_MSB_REG 0x05
# define BMA400_Y_AXIS_LSB_REG 0x06
# define BMA400_Y_AXIS_MSB_REG 0x07
# define BMA400_Z_AXIS_LSB_REG 0x08
# define BMA400_Z_AXIS_MSB_REG 0x09
/* Sensor time registers */
# define BMA400_SENSOR_TIME0 0x0a
# define BMA400_SENSOR_TIME1 0x0b
# define BMA400_SENSOR_TIME2 0x0c
/* Event and interrupt registers */
# define BMA400_EVENT_REG 0x0d
# define BMA400_INT_STAT0_REG 0x0e
# define BMA400_INT_STAT1_REG 0x0f
# define BMA400_INT_STAT2_REG 0x10
/* Temperature register */
# define BMA400_TEMP_DATA_REG 0x11
/* FIFO length and data registers */
# define BMA400_FIFO_LENGTH0_REG 0x12
# define BMA400_FIFO_LENGTH1_REG 0x13
# define BMA400_FIFO_DATA_REG 0x14
/* Step count registers */
# define BMA400_STEP_CNT0_REG 0x15
# define BMA400_STEP_CNT1_REG 0x16
# define BMA400_STEP_CNT3_REG 0x17
# define BMA400_STEP_STAT_REG 0x18
/*
* Read - write configuration registers
*/
# define BMA400_ACC_CONFIG0_REG 0x19
# define BMA400_ACC_CONFIG1_REG 0x1a
# define BMA400_ACC_CONFIG2_REG 0x1b
# define BMA400_CMD_REG 0x7e
/* Chip ID of BMA 400 devices found in the chip ID register. */
# define BMA400_ID_REG_VAL 0x90
# define BMA400_LP_OSR_SHIFT 5
# define BMA400_NP_OSR_SHIFT 4
# define BMA400_SCALE_SHIFT 6
# define BMA400_TWO_BITS_MASK GENMASK(1, 0)
# define BMA400_LP_OSR_MASK GENMASK(6, 5)
# define BMA400_NP_OSR_MASK GENMASK(5, 4)
# define BMA400_ACC_ODR_MASK GENMASK(3, 0)
# define BMA400_ACC_SCALE_MASK GENMASK(7, 6)
# define BMA400_ACC_ODR_MIN_RAW 0x05
# define BMA400_ACC_ODR_LP_RAW 0x06
# define BMA400_ACC_ODR_MAX_RAW 0x0b
# define BMA400_ACC_ODR_MAX_HZ 800
# define BMA400_ACC_ODR_MIN_WHOLE_HZ 25
# define BMA400_ACC_ODR_MIN_HZ 12
# define BMA400_SCALE_MIN 38357
# define BMA400_SCALE_MAX 306864
2019-12-20 16:00:51 +00:00
# define BMA400_NUM_REGULATORS 2
# define BMA400_VDD_REGULATOR 0
# define BMA400_VDDIO_REGULATOR 1
2019-12-20 16:00:50 +00:00
extern const struct regmap_config bma400_regmap_config ;
int bma400_probe ( struct device * dev , struct regmap * regmap , const char * name ) ;
int bma400_remove ( struct device * dev ) ;
# endif