1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* Copyright (c) 2012 GCT Semiconductor, Inc. All rights reserved. */ 3 4 #ifndef _GDM_TTY_H_ 5 #define _GDM_TTY_H_ 6 7 #include <linux/types.h> 8 #include <linux/tty.h> 9 10 #define TTY_MAX_COUNT 2 11 12 #define MAX_ISSUE_NUM 3 13 14 enum TO_HOST_RESULT { 15 TO_HOST_BUFFER_REQUEST_FAIL = 1, 16 TO_HOST_PORT_CLOSE = 2, 17 TO_HOST_INVALID_PACKET = 3, 18 }; 19 20 enum RECV_PACKET_PROCESS { 21 RECV_PACKET_PROCESS_COMPLETE = 0, 22 RECV_PACKET_PROCESS_CONTINUE = 1, 23 }; 24 25 struct gdm { 26 struct tty_dev *tty_dev; 27 struct tty_port port; 28 unsigned int index; 29 unsigned int minor; 30 }; 31 32 struct tty_dev { 33 void *priv_dev; 34 int (*send_func)(void *priv_dev, 35 void *data, 36 int len, 37 int tty_index, 38 void (*cb)(void *cb_data), 39 void *cb_data); 40 int (*recv_func)(void *priv_dev, 41 int (*cb)(void *data, 42 int len, 43 int tty_index, 44 struct tty_dev *tty_dev, 45 int complete)); 46 int (*send_control)(void *priv_dev, 47 int request, 48 int value, 49 void *data, 50 int len); 51 struct gdm *gdm[2]; 52 }; 53 54 int register_lte_tty_driver(void); 55 void unregister_lte_tty_driver(void); 56 int register_lte_tty_device(struct tty_dev *tty_dev, struct device *dev); 57 void unregister_lte_tty_device(struct tty_dev *tty_dev); 58 59 #endif /* _GDM_USB_H_ */ 60 61