#include <linux/acpi.h>
#include <linux/delay.h>
#include <linux/i2c.h>
#include <linux/interrupt.h>
#include <linux/module.h>
#include <linux/nfc.h>
#include <linux/gpio/consumer.h>
#include <asm/unaligned.h>
#include <net/nfc/nfc.h>
#include "nxp-nci.h"
#define NXP_NCI_I2C_DRIVER_NAME …
#define NXP_NCI_I2C_MAX_PAYLOAD …
struct nxp_nci_i2c_phy { … };
static int nxp_nci_i2c_set_mode(void *phy_id,
enum nxp_nci_mode mode)
{ … }
static int nxp_nci_i2c_write(void *phy_id, struct sk_buff *skb)
{ … }
static const struct nxp_nci_phy_ops i2c_phy_ops = …;
static int nxp_nci_i2c_fw_read(struct nxp_nci_i2c_phy *phy,
struct sk_buff **skb)
{ … }
static int nxp_nci_i2c_nci_read(struct nxp_nci_i2c_phy *phy,
struct sk_buff **skb)
{ … }
static irqreturn_t nxp_nci_i2c_irq_thread_fn(int irq, void *phy_id)
{ … }
static const struct acpi_gpio_params firmware_gpios = …;
static const struct acpi_gpio_params enable_gpios = …;
static const struct acpi_gpio_mapping acpi_nxp_nci_gpios[] = …;
static int nxp_nci_i2c_probe(struct i2c_client *client)
{ … }
static void nxp_nci_i2c_remove(struct i2c_client *client)
{ … }
static const struct i2c_device_id nxp_nci_i2c_id_table[] = …;
MODULE_DEVICE_TABLE(i2c, nxp_nci_i2c_id_table);
static const struct of_device_id of_nxp_nci_i2c_match[] = …;
MODULE_DEVICE_TABLE(of, of_nxp_nci_i2c_match);
#ifdef CONFIG_ACPI
static const struct acpi_device_id acpi_id[] = …;
MODULE_DEVICE_TABLE(acpi, acpi_id);
#endif
static struct i2c_driver nxp_nci_i2c_driver = …;
module_i2c_driver(…) …;
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;