blob: 3330cd798c69fee0f7a453747452434bcce05eaa [file] [log] [blame]
Sage Ahn247e9cf2012-05-15 13:20:36 +09001/*
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
Ben Chanbbd500d2014-06-30 22:13:17 -070014#ifndef __GDM72XX_GDM_WIMAX_H__
15#define __GDM72XX_GDM_WIMAX_H__
Sage Ahn247e9cf2012-05-15 13:20:36 +090016
17#include <linux/netdevice.h>
Sage Ahn247e9cf2012-05-15 13:20:36 +090018#include <linux/types.h>
19#include "wm_ioctl.h"
20#if defined(CONFIG_WIMAX_GDM72XX_QOS)
21#include "gdm_qos.h"
22#endif
23
24#define DRIVER_VERSION "3.2.3"
25
Sage Ahn247e9cf2012-05-15 13:20:36 +090026struct phy_dev {
Michalis Pappasac1a3bf2014-05-09 18:08:28 +080027 void *priv_dev;
Sage Ahn247e9cf2012-05-15 13:20:36 +090028 struct net_device *netdev;
Michalis Pappasac1a3bf2014-05-09 18:08:28 +080029 int (*send_func)(void *priv_dev, void *data, int len,
30 void (*cb)(void *cb_data), void *cb_data);
31 int (*rcv_func)(void *priv_dev,
32 void (*cb)(void *cb_data, void *data, int len),
33 void *cb_data);
Sage Ahn247e9cf2012-05-15 13:20:36 +090034};
35
36struct nic {
37 struct net_device *netdev;
38 struct phy_dev *phy_dev;
Michalis Pappasac1a3bf2014-05-09 18:08:28 +080039 struct data_s sdk_data[SIOC_DATA_MAX];
Sage Ahn247e9cf2012-05-15 13:20:36 +090040#if defined(CONFIG_WIMAX_GDM72XX_QOS)
Michalis Pappasac1a3bf2014-05-09 18:08:28 +080041 struct qos_cb_s qos;
Sage Ahn247e9cf2012-05-15 13:20:36 +090042#endif
Sage Ahn247e9cf2012-05-15 13:20:36 +090043};
44
Michalis Pappasd0a39562014-05-09 18:08:20 +080045int register_wimax_device(struct phy_dev *phy_dev, struct device *pdev);
46int gdm_wimax_send_tx(struct sk_buff *skb, struct net_device *dev);
47void unregister_wimax_device(struct phy_dev *phy_dev);
Sage Ahn247e9cf2012-05-15 13:20:36 +090048
Ben Chanbbd500d2014-06-30 22:13:17 -070049#endif /* __GDM72XX_GDM_WIMAX_H__ */