root/drivers/staging/gdm724x/gdm_lte.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 /* Copyright (c) 2012 GCT Semiconductor, Inc. All rights reserved. */
   3 
   4 #ifndef _GDM_LTE_H_
   5 #define _GDM_LTE_H_
   6 
   7 #include <linux/netdevice.h>
   8 #include <linux/types.h>
   9 
  10 #include "gdm_endian.h"
  11 
  12 #define MAX_NIC_TYPE            4
  13 #define MAX_RX_SUBMIT_COUNT     3
  14 #define DRIVER_VERSION          "3.7.17.0"
  15 
  16 enum TX_ERROR_CODE {
  17         TX_NO_ERROR = 0,
  18         TX_NO_DEV,
  19         TX_NO_SPC,
  20         TX_NO_BUFFER,
  21 };
  22 
  23 enum CALLBACK_CONTEXT {
  24         KERNEL_THREAD = 0,
  25         USB_COMPLETE,
  26 };
  27 
  28 struct pdn_table {
  29         u8 activate;
  30         u32 dft_eps_id;
  31         u32 nic_type;
  32 } __packed;
  33 
  34 struct nic;
  35 
  36 struct phy_dev {
  37         void    *priv_dev;
  38         struct net_device *dev[MAX_NIC_TYPE];
  39         int     (*send_hci_func)(void *priv_dev, void *data, int len,
  40                                  void (*cb)(void *cb_data), void *cb_data);
  41         int     (*send_sdu_func)(void *priv_dev, void *data, int len,
  42                                  unsigned int dft_eps_id, unsigned int eps_id,
  43                                  void (*cb)(void *cb_data), void *cb_data,
  44                                  int dev_idx, int nic_type);
  45         int     (*rcv_func)(void *priv_dev,
  46                             int (*cb)(void *cb_data, void *data, int len,
  47                                       int context),
  48                             void *cb_data, int context);
  49         u8 (*get_endian)(void *priv_dev);
  50 };
  51 
  52 struct nic {
  53         struct net_device *netdev;
  54         struct phy_dev *phy_dev;
  55         struct net_device_stats stats;
  56         struct pdn_table pdn_table;
  57         u8 dest_mac_addr[ETH_ALEN];
  58         u8 src_mac_addr[ETH_ALEN];
  59         u32 nic_id;
  60         u16 vlan_id;
  61 };
  62 
  63 int gdm_lte_event_init(void);
  64 void gdm_lte_event_exit(void);
  65 
  66 void start_rx_proc(struct phy_dev *phy_dev);
  67 int register_lte_device(struct phy_dev *phy_dev, struct device *dev,
  68                         u8 *mac_address);
  69 void unregister_lte_device(struct phy_dev *phy_dev);
  70 
  71 #endif /* _GDM_LTE_H_ */

/* [<][>][^][v][top][bottom][index][help] */