14912e2feSEric Lapuyade #ifndef __LOCAL_MEI_PHY_H_ 24912e2feSEric Lapuyade #define __LOCAL_MEI_PHY_H_ 34912e2feSEric Lapuyade 44912e2feSEric Lapuyade #include <linux/mei_cl_bus.h> 54912e2feSEric Lapuyade #include <net/nfc/hci.h> 6c93b76b3STomas Winkler #include <linux/uuid.h> 74912e2feSEric Lapuyade 8b144ce2dSGreg Kroah-Hartman #define MEI_NFC_UUID UUID_LE(0x0bb17a78, 0x2a8e, 0x4c50, \ 9c93b76b3STomas Winkler 0x94, 0xd4, 0x50, 0x26, 0x67, 0x23, 0x77, 0x5c) 104912e2feSEric Lapuyade #define MEI_NFC_HEADER_SIZE 10 114912e2feSEric Lapuyade #define MEI_NFC_MAX_HCI_PAYLOAD 300 124912e2feSEric Lapuyade 13be9b720aSTomas Winkler /** 14be9b720aSTomas Winkler * struct nfc_mei_phy 15be9b720aSTomas Winkler * 16*89391382STomas Winkler * @cldev: mei client device 17be9b720aSTomas Winkler * @hdev: nfc hci device 18be9b720aSTomas Winkler 19be9b720aSTomas Winkler * @send_wq: send completion wait queue 20be9b720aSTomas Winkler * @fw_ivn: NFC Interface Version Number 21be9b720aSTomas Winkler * @vendor_id: NFC manufacturer ID 22be9b720aSTomas Winkler * @radio_type: NFC radio type 23be9b720aSTomas Winkler * @reserved: reserved for alignment 24be9b720aSTomas Winkler * @req_id: message counter 25be9b720aSTomas Winkler * @recv_req_id: reception message counter 26be9b720aSTomas Winkler * @powered: the device is in powered state 27be9b720aSTomas Winkler * @hard_fault: < 0 if hardware error occurred 28be9b720aSTomas Winkler * and prevents normal operation. 29be9b720aSTomas Winkler */ 304912e2feSEric Lapuyade struct nfc_mei_phy { 31*89391382STomas Winkler struct mei_cl_device *cldev; 324912e2feSEric Lapuyade struct nfc_hci_dev *hdev; 334912e2feSEric Lapuyade 34be9b720aSTomas Winkler wait_queue_head_t send_wq; 35be9b720aSTomas Winkler u8 fw_ivn; 36be9b720aSTomas Winkler u8 vendor_id; 37be9b720aSTomas Winkler u8 radio_type; 38be9b720aSTomas Winkler u8 reserved; 394912e2feSEric Lapuyade 40be9b720aSTomas Winkler u16 req_id; 41be9b720aSTomas Winkler u16 recv_req_id; 42be9b720aSTomas Winkler 43be9b720aSTomas Winkler int powered; 44be9b720aSTomas Winkler int hard_fault; 454912e2feSEric Lapuyade }; 464912e2feSEric Lapuyade 474912e2feSEric Lapuyade extern struct nfc_phy_ops mei_phy_ops; 484912e2feSEric Lapuyade 494912e2feSEric Lapuyade struct nfc_mei_phy *nfc_mei_phy_alloc(struct mei_cl_device *device); 504912e2feSEric Lapuyade void nfc_mei_phy_free(struct nfc_mei_phy *phy); 514912e2feSEric Lapuyade 524912e2feSEric Lapuyade #endif /* __LOCAL_MEI_PHY_H_ */ 53