Commit | Line | Data |
---|---|---|
35630df6 CR |
1 | /* |
2 | * NCI based Driver for STMicroelectronics NFC Chip | |
3 | * | |
ed06aeef | 4 | * Copyright (C) 2014-2015 STMicroelectronics SAS. All rights reserved. |
35630df6 CR |
5 | * |
6 | * This program is free software; you can redistribute it and/or modify it | |
7 | * under the terms and conditions of the GNU General Public License, | |
8 | * version 2, as published by the Free Software Foundation. | |
9 | * | |
10 | * This program is distributed in the hope that it will be useful, | |
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | * GNU General Public License for more details. | |
14 | * | |
15 | * You should have received a copy of the GNU General Public License | |
16 | * along with this program; if not, see <http://www.gnu.org/licenses/>. | |
17 | */ | |
18 | ||
19 | #ifndef __LOCAL_NDLC_H_ | |
20 | #define __LOCAL_NDLC_H_ | |
21 | ||
22 | #include <linux/skbuff.h> | |
23 | #include <net/nfc/nfc.h> | |
24 | ||
3648dc6d CR |
25 | struct st_nci_se_status; |
26 | ||
35630df6 CR |
27 | /* Low Level Transport description */ |
28 | struct llt_ndlc { | |
29 | struct nci_dev *ndev; | |
30 | struct nfc_phy_ops *ops; | |
31 | void *phy_id; | |
32 | ||
33 | struct timer_list t1_timer; | |
34 | bool t1_active; | |
35 | ||
36 | struct timer_list t2_timer; | |
37 | bool t2_active; | |
38 | ||
39 | struct sk_buff_head rcv_q; | |
40 | struct sk_buff_head send_q; | |
41 | struct sk_buff_head ack_pending_q; | |
42 | ||
43 | struct work_struct sm_work; | |
44 | ||
45 | struct device *dev; | |
46 | ||
4294e320 | 47 | /* |
ed06aeef | 48 | * < 0 if hardware error occurred |
4294e320 CR |
49 | * and prevents normal operation. |
50 | */ | |
35630df6 | 51 | int hard_fault; |
183fe2d0 | 52 | int powered; |
35630df6 CR |
53 | }; |
54 | ||
55 | int ndlc_open(struct llt_ndlc *ndlc); | |
56 | void ndlc_close(struct llt_ndlc *ndlc); | |
57 | int ndlc_send(struct llt_ndlc *ndlc, struct sk_buff *skb); | |
58 | void ndlc_recv(struct llt_ndlc *ndlc, struct sk_buff *skb); | |
59 | int ndlc_probe(void *phy_id, struct nfc_phy_ops *phy_ops, struct device *dev, | |
3648dc6d CR |
60 | int phy_headroom, int phy_tailroom, struct llt_ndlc **ndlc_id, |
61 | struct st_nci_se_status *se_status); | |
35630df6 CR |
62 | void ndlc_remove(struct llt_ndlc *ndlc); |
63 | #endif /* __LOCAL_NDLC_H__ */ |