nfcmrvl.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /**
  2. * Marvell NFC driver
  3. *
  4. * Copyright (C) 2014, Marvell International Ltd.
  5. *
  6. * This software file (the "File") is distributed by Marvell International
  7. * Ltd. under the terms of the GNU General Public License Version 2, June 1991
  8. * (the "License"). You may use, redistribute and/or modify this File in
  9. * accordance with the terms and conditions of the License, a copy of which
  10. * is available on the worldwide web at
  11. * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
  12. *
  13. * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
  14. * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
  15. * ARE EXPRESSLY DISCLAIMED. The License provides additional details about
  16. * this warranty disclaimer.
  17. **/
  18. /* Define private flags: */
  19. #define NFCMRVL_NCI_RUNNING 1
  20. #define NFCMRVL_EXT_COEX_ID 0xE0
  21. #define NFCMRVL_NOT_ALLOWED_ID 0xE1
  22. #define NFCMRVL_ACTIVE_ID 0xE2
  23. #define NFCMRVL_EXT_COEX_ENABLE 1
  24. #define NFCMRVL_GPIO_PIN_NFC_NOT_ALLOWED 0xA
  25. #define NFCMRVL_GPIO_PIN_NFC_ACTIVE 0xB
  26. #define NFCMRVL_NCI_MAX_EVENT_SIZE 260
  27. struct nfcmrvl_private {
  28. struct nci_dev *ndev;
  29. unsigned long flags;
  30. void *drv_data;
  31. struct device *dev;
  32. struct nfcmrvl_if_ops *if_ops;
  33. };
  34. struct nfcmrvl_if_ops {
  35. int (*nci_open) (struct nfcmrvl_private *priv);
  36. int (*nci_close) (struct nfcmrvl_private *priv);
  37. int (*nci_send) (struct nfcmrvl_private *priv, struct sk_buff *skb);
  38. };
  39. void nfcmrvl_nci_unregister_dev(struct nfcmrvl_private *priv);
  40. int nfcmrvl_nci_recv_frame(struct nfcmrvl_private *priv, void *data, int count);
  41. struct nfcmrvl_private *nfcmrvl_nci_register_dev(void *drv_data,
  42. struct nfcmrvl_if_ops *ops,
  43. struct device *dev);