linux/drivers/staging/gdm724x/gdm_tty.h
<<
>>
Prefs
   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
  14enum TO_HOST_RESULT {
  15        TO_HOST_BUFFER_REQUEST_FAIL = 1,
  16        TO_HOST_PORT_CLOSE = 2,
  17        TO_HOST_INVALID_PACKET = 3,
  18};
  19
  20enum RECV_PACKET_PROCESS {
  21        RECV_PACKET_PROCESS_COMPLETE = 0,
  22        RECV_PACKET_PROCESS_CONTINUE = 1,
  23};
  24
  25struct gdm {
  26        struct tty_dev *tty_dev;
  27        struct tty_port port;
  28        unsigned int index;
  29        unsigned int minor;
  30};
  31
  32struct 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
  54int register_lte_tty_driver(void);
  55void unregister_lte_tty_driver(void);
  56int register_lte_tty_device(struct tty_dev *tty_dev, struct device *dev);
  57void unregister_lte_tty_device(struct tty_dev *tty_dev);
  58
  59#endif /* _GDM_USB_H_ */
  60
  61