/*
* Copyright (c) 2016 ROCKCHIP, Inc.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option)
* any later version.
*/
#ifndef __HID_RKVR_H
#define __HID_RKVR_H
#define HIDRKVRHANDSHAKE(len) _IOC(_IOC_WRITE, 'H', 0x1A, len)
#define HID_REPORT_ID_RKVR 3
#define RKVR_ID_IDLE 1
#define RKVR_ID_SYNC 2
#define RKVR_ID_CAPS 3
#define HID_REPORT_ID_R 4
#define HID_REPORT_ID_W 5
#define HID_REPORT_ID_CRYP 6
#define HID_REGR_REPORT (4 - 1)
#define HID_REGW_REPORT (5 - 1)
#define HID_MISC_REPORT (6 - 1)
#define HID_SYNCW_REPORT (7 - 1)
#define HID_SYNCR_REPORT (8 - 1)
enum tracker_message_type {
TrackerMessage_None = 0,
TrackerMessage_Sensors = 1,
TrackerMessage_Unknown = 0x100,
TrackerMessage_SizeError = 0x101,
};
#define DEBUG_SYS 1
#define DYNAMIC_LOAD_MPU6500 0
int rkvr_sensor_register_callback(int (*callback)(char *, size_t, void *), void *priv);
struct rkvr_iio_hw_device {
struct device *dev;
const char *name;
int is_open;
struct list_head l;
int (*open)(struct rkvr_iio_hw_device *hdev);
void (*close)(struct rkvr_iio_hw_device *hdev);
int (*power)(struct rkvr_iio_hw_device *hdev, int level);
int (*idle)(struct rkvr_iio_hw_device *hdev, int report, int idle, int reqtype);
int (*read)(struct rkvr_iio_hw_device *hdev, int reg, unsigned char *data, int len);
int (*write)(struct rkvr_iio_hw_device *hdev, int reg, unsigned char data);
};
#endif