#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/i2c.h>
#include <linux/nfc.h>
#include <linux/delay.h>
#include <linux/of_irq.h>
#include <net/nfc/nci.h>
#include <net/nfc/nci_core.h>
#include "nfcmrvl.h"
struct nfcmrvl_i2c_drv_data { … };
static int nfcmrvl_i2c_read(struct nfcmrvl_i2c_drv_data *drv_data,
struct sk_buff **skb)
{ … }
static irqreturn_t nfcmrvl_i2c_int_irq_thread_fn(int irq, void *drv_data_ptr)
{ … }
static int nfcmrvl_i2c_nci_open(struct nfcmrvl_private *priv)
{ … }
static int nfcmrvl_i2c_nci_close(struct nfcmrvl_private *priv)
{ … }
static int nfcmrvl_i2c_nci_send(struct nfcmrvl_private *priv,
struct sk_buff *skb)
{ … }
static void nfcmrvl_i2c_nci_update_config(struct nfcmrvl_private *priv,
const void *param)
{ … }
static const struct nfcmrvl_if_ops i2c_ops = …;
static int nfcmrvl_i2c_parse_dt(struct device_node *node,
struct nfcmrvl_platform_data *pdata)
{ … }
static int nfcmrvl_i2c_probe(struct i2c_client *client)
{ … }
static void nfcmrvl_i2c_remove(struct i2c_client *client)
{ … }
static const struct of_device_id of_nfcmrvl_i2c_match[] __maybe_unused = …;
MODULE_DEVICE_TABLE(of, of_nfcmrvl_i2c_match);
static const struct i2c_device_id nfcmrvl_i2c_id_table[] = …;
MODULE_DEVICE_TABLE(i2c, nfcmrvl_i2c_id_table);
static struct i2c_driver nfcmrvl_i2c_driver = …;
module_i2c_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;