/*
 * Defines for the SC7A20 accellerometer
 * Original Author:
 *     Ralim
 *     Created on: 18 Sep. 2020
 *     https://github.com/Ralim/IronOS.git
 */

#ifndef _SC7A20_H_
#define _SC7A20_H_

#include <ch32fun.h>

#define SC7A20_ADDRESS 0x18

#define SC7A20_WHO_AM_I_VALUE (0b00010001)
#define SC7A20_WHO_AMI_I      0x0F
#define SC7A20_CTRL_REG1      0x20
#define SC7A20_CTRL_REG2      0x21
#define SC7A20_CTRL_REG3      0x22
#define SC7A20_CTRL_REG4      0x23
#define SC7A20_CTRL_REG5      0x24
#define SC7A20_CTRL_REG6      0x25
#define SC7A20_REFERENCE      0x26
#define SC7A20_STATUS_REG     0x27
#define SC7A20_OUT_X_L        0x28
#define SC7A20_OUT_X_L_ALT    0xA8
#define SC7A20_OUT_X_H        0x29
#define SC7A20_OUT_Y_L        0x2A
#define SC7A20_OUT_Y_H        0x2B
#define SC7A20_OUT_Z_L        0x2C
#define SC7A20_OUT_Z_H        0x2D
#define SC7A20_FIFO_CTRL      0x2E
#define SC7A20_FIFO_SRC       0x2F
#define SC7A20_INT1_CFG       0x30
#define SC7A20_INT1_SOURCE    0x31
#define SC7A20_INT1_THS       0x32
#define SC7A20_INT1_DURATION  0x33
#define SC7A20_INT2_CFG       0x34
#define SC7A20_INT2_SOURCE    0x35
#define SC7A20_INT2_THS       0x36
#define SC7A20_INT2_DURATION  0x37
#define SC7A20_CLICK_CFG      0x38
#define SC7A20_CLICK_SRC      0x39
#define SC7A20_CLICK_THS      0x3A
#define SC7A20_TIME_LIMIT     0x3B
#define SC7A20_TIME_LATENCY   0x3C
#define SC7A20_TIME_WINDOW    0x3D
#define SC7A20_ACT_THS        0x3E
#define SC7A20_ACT_DURATION   0x3F


void sc7a20_init(void);
void sc7a20_get_readings(int16_t *x, int16_t *y, int16_t *z);


#endif /* CORE_DRIVERS_BMA223_DEFINES_H_ */
