linux/drivers/misc/lis3lv02d/lis3lv02d.h

/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 *  lis3lv02d.h - ST LIS3LV02DL accelerometer driver
 *
 *  Copyright (C) 2007-2008 Yan Burman
 *  Copyright (C) 2008-2009 Eric Piel
 */
#include <linux/platform_device.h>
#include <linux/input.h>
#include <linux/regulator/consumer.h>
#include <linux/miscdevice.h>

/*
 * This driver tries to support the "digital" accelerometer chips from
 * STMicroelectronics such as LIS3LV02DL, LIS302DL, LIS3L02DQ, LIS331DL,
 * LIS331DLH, LIS35DE, or LIS202DL. They are very similar in terms of
 * programming, with almost the same registers. In addition to differing
 * on physical properties, they differ on the number of axes (2/3),
 * precision (8/12 bits), and special features (freefall detection,
 * click...). Unfortunately, not all the differences can be probed via
 * a register. They can be connected either via I²C or SPI.
 */

#include <linux/lis3lv02d.h>

enum lis3_reg {};

enum lis302d_reg {};

enum lis3lv02d_reg {};

enum lis3_who_am_i {};

enum lis3_type {};

enum lis3lv02d_ctrl1_12b {};

/* Delta to ctrl1_12b version */
enum lis3lv02d_ctrl1_8b {};

enum lis3lv02d_ctrl1_3dc {};

enum lis331dlh_ctrl1 {};

enum lis331dlh_ctrl2 {};

enum lis331dlh_ctrl4 {};

enum lis3lv02d_ctrl2 {};

enum lis3lv02d_ctrl4_3dc {};

enum lis302d_ctrl2 {};

enum lis3lv02d_ctrl3 {};

enum lis3lv02d_status_reg {};

enum lis3lv02d_ff_wu_cfg {};

enum lis3lv02d_ff_wu_src {};

enum lis3lv02d_dd_cfg {};

enum lis3lv02d_dd_src {};

enum lis3lv02d_click_src_8b {};

enum lis3lv02d_reg_state {};

axis_conversion;

struct lis3lv02d {};

int lis3lv02d_init_device(struct lis3lv02d *lis3);
int lis3lv02d_joystick_enable(struct lis3lv02d *lis3);
void lis3lv02d_joystick_disable(struct lis3lv02d *lis3);
void lis3lv02d_poweroff(struct lis3lv02d *lis3);
int lis3lv02d_poweron(struct lis3lv02d *lis3);
void lis3lv02d_remove_fs(struct lis3lv02d *lis3);
int lis3lv02d_init_dt(struct lis3lv02d *lis3);

extern struct lis3lv02d lis3_dev;