misc: nv-sensorhub: tty line disc for sensorhub
[linux-3.10.git] / drivers / misc / nv-sensorhub-ldisc / sh_private.h
1 /*
2  * Copyright (c) 2014, NVIDIA CORPORATION.  All rights reserved.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program; if not, write to the Free Software
15  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
16  * 02111-1307, USA
17  */
18
19 #ifndef SH_PRIVATE_H_
20 #define SH_PRIVATE_H_
21
22 #include "sh_interface.h"
23
24 /*
25  * SENSOR HUB FIRMWARE INTERFACE
26  *
27 ------------------------------------------------------
28 |            |            |            |             |
29 |  Start (S) |    Type    |  Payload   |   CRC32     |
30 |  (1-byte)  |  (1-byte)  |(0-18 bytes)|  (4-bytes)  |
31 |            |            |            |             |
32 ------------------------------------------------------
33 *
34 *
35 */
36
37 /* Packet start */
38 #define SENSOR_HUB_START                'S'
39
40 /* Packet type */
41 /* Messages from sensor hub to AP */
42 /* NOTE: This matches the enum list in client_devs_num in source file */
43 #define MSG_MCU                         0x00 /* Read /dev/shub_mcu */
44 #define MSG_CAMERA                      0x01 /* Read /dev/shub_cam */
45 #define MSG_ACCEL                       0x02 /* Read /dev/shub_accel */
46 #define MSG_GYRO                        0x03 /* Read /dev/shub_gyro */
47 #define MSG_MAG                         0x04 /* Read /dev/shub_mag */
48 #define MSG_BARO                        0x05 /* Read /dev/shub_baro */
49 #define MSG_SENSOR_START                MSG_MCU
50 #define MSG_SENSOR_END                  MSG_BARO
51
52 /* Packet header */
53 struct __attribute__ ((__packed__)) sensor_hub_pkt_header_t {
54         unsigned char   start;
55         unsigned char   type;
56 };
57
58 /* Packet payload */
59 /* Included from sh_interface.h */
60
61 /* Biggest possible packet */
62 struct __attribute__ ((__packed__)) sensor_hub_pkt_t {
63         struct sensor_hub_pkt_header_t header;
64         union {
65                 struct camera_payload_t cam_payload;
66                 struct accel_payload_t  accel_payload;
67                 struct gyro_payload_t   gyro_payload;
68                 struct mag_payload_t    mag_payload;
69                 struct baro_payload_t   baro_payload;
70                 struct mcu_payload_t    mcu_payload;
71         } payload;
72         uint32_t crc32;
73 };
74
75 #endif  /* SH_PRIVATE_H */