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> 6 #include <linux/uuid.h> 7 8 #define MEI_NFC_UUID UUID_LE(0x0bb17a78, 0x2a8e, 0x4c50, \ 9 0x94, 0xd4, 0x50, 0x26, 0x67, 0x23, 0x77, 0x5c) 10 #define MEI_NFC_HEADER_SIZE 10 11 #define MEI_NFC_MAX_HCI_PAYLOAD 300 12 13 /** 14 * struct nfc_mei_phy 15 * 16 * @cldev: mei client device 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 */ 30 struct nfc_mei_phy { 31 struct mei_cl_device *cldev; 32 struct nfc_hci_dev *hdev; 33 34 wait_queue_head_t send_wq; 35 u8 fw_ivn; 36 u8 vendor_id; 37 u8 radio_type; 38 u8 reserved; 39 40 u16 req_id; 41 u16 recv_req_id; 42 43 int powered; 44 int hard_fault; 45 }; 46 47 extern struct nfc_phy_ops mei_phy_ops; 48 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_ */ 53