Eric Lapuyade | 4912e2f | 2013-04-15 11:19:20 +0200 | [diff] [blame] | 1 | #ifndef __LOCAL_MEI_PHY_H_ |
| 2 | #define __LOCAL_MEI_PHY_H_ |
| 3 | |
| 4 | #include <linux/mei_cl_bus.h> |
| 5 | #include <net/nfc/hci.h> |
Tomas Winkler | c93b76b | 2015-05-07 15:54:02 +0300 | [diff] [blame] | 6 | #include <linux/uuid.h> |
Eric Lapuyade | 4912e2f | 2013-04-15 11:19:20 +0200 | [diff] [blame] | 7 | |
Greg Kroah-Hartman | b144ce2 | 2015-05-27 17:17:27 -0700 | [diff] [blame] | 8 | #define MEI_NFC_UUID UUID_LE(0x0bb17a78, 0x2a8e, 0x4c50, \ |
Tomas Winkler | c93b76b | 2015-05-07 15:54:02 +0300 | [diff] [blame] | 9 | 0x94, 0xd4, 0x50, 0x26, 0x67, 0x23, 0x77, 0x5c) |
Eric Lapuyade | 4912e2f | 2013-04-15 11:19:20 +0200 | [diff] [blame] | 10 | #define MEI_NFC_HEADER_SIZE 10 |
| 11 | #define MEI_NFC_MAX_HCI_PAYLOAD 300 |
| 12 | |
Tomas Winkler | be9b720 | 2015-05-07 15:54:04 +0300 | [diff] [blame] | 13 | /** |
| 14 | * struct nfc_mei_phy |
| 15 | * |
Tomas Winkler | 8939138 | 2015-09-10 10:18:04 +0300 | [diff] [blame] | 16 | * @cldev: mei client device |
Tomas Winkler | be9b720 | 2015-05-07 15:54:04 +0300 | [diff] [blame] | 17 | * @hdev: nfc hci device |
| 18 | |
| 19 | * @send_wq: send completion wait queue |
| 20 | * @fw_ivn: NFC Interface Version Number |
| 21 | * @vendor_id: NFC manufacturer ID |
| 22 | * @radio_type: NFC radio type |
| 23 | * @reserved: reserved for alignment |
| 24 | * @req_id: message counter |
| 25 | * @recv_req_id: reception message counter |
| 26 | * @powered: the device is in powered state |
| 27 | * @hard_fault: < 0 if hardware error occurred |
| 28 | * and prevents normal operation. |
| 29 | */ |
Eric Lapuyade | 4912e2f | 2013-04-15 11:19:20 +0200 | [diff] [blame] | 30 | struct nfc_mei_phy { |
Tomas Winkler | 8939138 | 2015-09-10 10:18:04 +0300 | [diff] [blame] | 31 | struct mei_cl_device *cldev; |
Eric Lapuyade | 4912e2f | 2013-04-15 11:19:20 +0200 | [diff] [blame] | 32 | struct nfc_hci_dev *hdev; |
| 33 | |
Tomas Winkler | be9b720 | 2015-05-07 15:54:04 +0300 | [diff] [blame] | 34 | wait_queue_head_t send_wq; |
| 35 | u8 fw_ivn; |
| 36 | u8 vendor_id; |
| 37 | u8 radio_type; |
| 38 | u8 reserved; |
Eric Lapuyade | 4912e2f | 2013-04-15 11:19:20 +0200 | [diff] [blame] | 39 | |
Tomas Winkler | be9b720 | 2015-05-07 15:54:04 +0300 | [diff] [blame] | 40 | u16 req_id; |
| 41 | u16 recv_req_id; |
| 42 | |
| 43 | int powered; |
| 44 | int hard_fault; |
Eric Lapuyade | 4912e2f | 2013-04-15 11:19:20 +0200 | [diff] [blame] | 45 | }; |
| 46 | |
| 47 | extern struct nfc_phy_ops mei_phy_ops; |
| 48 | |
Eric Lapuyade | 4912e2f | 2013-04-15 11:19:20 +0200 | [diff] [blame] | 49 | struct nfc_mei_phy *nfc_mei_phy_alloc(struct mei_cl_device *device); |
| 50 | void nfc_mei_phy_free(struct nfc_mei_phy *phy); |
| 51 | |
| 52 | #endif /* __LOCAL_MEI_PHY_H_ */ |