14912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade#ifndef __LOCAL_MEI_PHY_H_
24912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade#define __LOCAL_MEI_PHY_H_
34912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade
44912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade#include <linux/mei_cl_bus.h>
54912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade#include <net/nfc/hci.h>
64912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade
74912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade#define MEI_NFC_HEADER_SIZE 10
84912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade#define MEI_NFC_MAX_HCI_PAYLOAD 300
94912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade
104912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyadestruct nfc_mei_phy {
114912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade	struct mei_cl_device *device;
124912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade	struct nfc_hci_dev *hdev;
134912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade
144912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade	int powered;
154912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade
164912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade	int hard_fault;		/*
174912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade				 * < 0 if hardware error occured
184912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade				 * and prevents normal operation.
194912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade				 */
204912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade};
214912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade
224912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyadeextern struct nfc_phy_ops mei_phy_ops;
234912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade
244912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyadeint nfc_mei_phy_enable(void *phy_id);
254912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyadevoid nfc_mei_phy_disable(void *phy_id);
264912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyadevoid nfc_mei_event_cb(struct mei_cl_device *device, u32 events, void *context);
274912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyadestruct nfc_mei_phy *nfc_mei_phy_alloc(struct mei_cl_device *device);
284912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyadevoid nfc_mei_phy_free(struct nfc_mei_phy *phy);
294912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade
304912e2fe74811693703e9b4e21bf36c067643a03Eric Lapuyade#endif /* __LOCAL_MEI_PHY_H_ */
31