2018-09-10 20:03:47 -04:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
|
|
/*
|
|
|
|
* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License version 2 and
|
|
|
|
* only version 2 as published by the Free Software Foundation.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef HID_QVR_H_FILE
|
|
|
|
#define HID_QVR_H_FILE
|
|
|
|
|
|
|
|
#define QVR_EXTERNAL_SENSOR_REPORT_ID 0x1
|
|
|
|
|
2019-09-16 16:43:02 -04:00
|
|
|
//CMD IDs
|
|
|
|
#define QVR_CMD_ID_CALIBRATION_DATA_SIZE 20
|
|
|
|
#define QVR_CMD_ID_CALIBRATION_BLOCK_DATA 21
|
|
|
|
#define QVR_CMD_ID_START_CALIBRATION_UPDATE 22
|
|
|
|
#define QVR_CMD_ID_UPDATE_CALIBRATION_BLOCK 23
|
|
|
|
#define QVR_CMD_ID_FINISH_CALIBRATION_UPDATE 24
|
|
|
|
#define QVR_CMD_ID_IMU_CONTROL 25
|
|
|
|
#define QVR_CMD_ID_IMU_CONTROL_FALLBACK 7
|
|
|
|
|
|
|
|
#define QVR_HID_REPORT_ID_CAL 2
|
|
|
|
#define QVR_HID_REQUEST_REPORT_SIZE 64
|
|
|
|
|
2018-09-10 20:03:47 -04:00
|
|
|
struct external_imu_format {
|
2019-08-22 19:29:25 -04:00
|
|
|
u8 reportID;
|
|
|
|
u8 padding;
|
|
|
|
u16 version;
|
|
|
|
u16 numIMUs;
|
|
|
|
u16 numSamplesPerImuPacket;
|
|
|
|
u16 totalPayloadSize;
|
|
|
|
u8 reservedPadding[28];
|
|
|
|
|
|
|
|
s16 imuID;
|
|
|
|
s16 sampleID;
|
|
|
|
s16 temperature;
|
|
|
|
|
2018-09-10 20:03:47 -04:00
|
|
|
u64 gts0;
|
2019-08-22 19:29:25 -04:00
|
|
|
u32 gNumerator;
|
|
|
|
u32 gDenominator;
|
|
|
|
s32 gx0;
|
|
|
|
s32 gy0;
|
|
|
|
s32 gz0;
|
|
|
|
|
2018-09-10 20:03:47 -04:00
|
|
|
u64 ats0;
|
2019-08-22 19:29:25 -04:00
|
|
|
u32 aNumerator;
|
|
|
|
u32 aDenominator;
|
2018-09-10 20:03:47 -04:00
|
|
|
s32 ax0;
|
|
|
|
s32 ay0;
|
|
|
|
s32 az0;
|
2019-08-22 19:29:25 -04:00
|
|
|
|
2018-09-10 20:03:47 -04:00
|
|
|
u64 mts0;
|
2019-08-22 19:29:25 -04:00
|
|
|
u32 mNumerator;
|
|
|
|
u32 mDenominator;
|
|
|
|
s32 mx0;
|
|
|
|
s32 my0;
|
|
|
|
s32 mz0;
|
|
|
|
} __packed;
|
2018-09-10 20:03:47 -04:00
|
|
|
|
|
|
|
void qvr_clear_def_parmeter(void);
|
|
|
|
void qvr_init(struct hid_device *hdev);
|
|
|
|
int qvr_input_init(void);
|
|
|
|
void qvr_input_remove(void);
|
|
|
|
|
|
|
|
#endif
|