Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /* Copyright (c) 2012 GCT Semiconductor, Inc. All rights reserved. */
0003 
0004 #ifndef _GDM_TTY_H_
0005 #define _GDM_TTY_H_
0006 
0007 #include <linux/types.h>
0008 #include <linux/tty.h>
0009 
0010 #define TTY_MAX_COUNT       2
0011 
0012 #define MAX_ISSUE_NUM 3
0013 
0014 enum TO_HOST_RESULT {
0015     TO_HOST_BUFFER_REQUEST_FAIL = 1,
0016     TO_HOST_PORT_CLOSE = 2,
0017     TO_HOST_INVALID_PACKET = 3,
0018 };
0019 
0020 enum RECV_PACKET_PROCESS {
0021     RECV_PACKET_PROCESS_COMPLETE = 0,
0022     RECV_PACKET_PROCESS_CONTINUE = 1,
0023 };
0024 
0025 struct gdm {
0026     struct tty_dev *tty_dev;
0027     struct tty_port port;
0028     unsigned int index;
0029     unsigned int minor;
0030 };
0031 
0032 struct tty_dev {
0033     void *priv_dev;
0034     int (*send_func)(void *priv_dev,
0035              void *data,
0036              int len,
0037              int tty_index,
0038              void (*cb)(void *cb_data),
0039              void *cb_data);
0040     int (*recv_func)(void *priv_dev,
0041              int (*cb)(void *data,
0042                    int len,
0043                    int tty_index,
0044                    struct tty_dev *tty_dev,
0045                    int complete));
0046     int (*send_control)(void *priv_dev,
0047                 int request,
0048                 int value,
0049                 void *data,
0050                 int len);
0051     struct gdm *gdm[2];
0052 };
0053 
0054 int register_lte_tty_driver(void);
0055 void unregister_lte_tty_driver(void);
0056 int register_lte_tty_device(struct tty_dev *tty_dev, struct device *dev);
0057 void unregister_lte_tty_device(struct tty_dev *tty_dev);
0058 
0059 #endif /* _GDM_USB_H_ */
0060