Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / drivers / staging / gdm724x / gdm_tty.h
1 /*
2  * Copyright (c) 2012 GCT Semiconductor, Inc. All rights reserved.
3  *
4  * This software is licensed under the terms of the GNU General Public
5  * License version 2, as published by the Free Software Foundation, and
6  * may be copied, distributed, and modified under those terms.
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
14 #ifndef _GDM_TTY_H_
15 #define _GDM_TTY_H_
16
17 #include <linux/types.h>
18 #include <linux/tty.h>
19
20
21 #define TTY_MAX_COUNT           2
22
23 #define MAX_ISSUE_NUM 3
24
25 enum TO_HOST_RESULT {
26         TO_HOST_BUFFER_REQUEST_FAIL = 1,
27         TO_HOST_PORT_CLOSE = 2,
28         TO_HOST_INVALID_PACKET = 3,
29 };
30
31 enum RECV_PACKET_PROCESS {
32         RECV_PACKET_PROCESS_COMPLETE = 0,
33         RECV_PACKET_PROCESS_CONTINUE = 1,
34 };
35
36 struct gdm {
37         struct tty_dev *tty_dev;
38         struct tty_port port;
39         unsigned int index;
40         unsigned int minor;
41 };
42
43 struct tty_dev {
44         void *priv_dev;
45         int (*send_func)(void *priv_dev,
46                          void *data,
47                          int len,
48                          int tty_index,
49                          void (*cb)(void *cb_data),
50                          void *cb_data);
51         int (*recv_func)(void *priv_dev,
52                          int (*cb)(void *data,
53                                    int len,
54                                    int tty_index,
55                                    struct tty_dev *tty_dev,
56                                    int complete));
57         int (*send_control)(void *priv_dev,
58                             int request,
59                             int value,
60                             void *data,
61                             int len);
62         struct gdm *gdm[2];
63 };
64
65 int register_lte_tty_driver(void);
66 void unregister_lte_tty_driver(void);
67 int register_lte_tty_device(struct tty_dev *tty_dev, struct device *dev);
68 void unregister_lte_tty_device(struct tty_dev *tty_dev);
69
70 #endif /* _GDM_USB_H_ */
71