#include <linux/module.h>
#include <linux/acpi.h>
#include <linux/i2c.h>
#include <linux/interrupt.h>
#include <linux/nfc.h>
#include <linux/delay.h>
#include <linux/gpio/consumer.h>
#include <net/nfc/nfc.h>
#include <net/nfc/nci_core.h>
#include "fdp.h"
#define FDP_I2C_DRIVER_NAME …
#define FDP_DP_CLOCK_TYPE_NAME …
#define FDP_DP_CLOCK_FREQ_NAME …
#define FDP_DP_FW_VSC_CFG_NAME …
#define FDP_FRAME_HEADROOM …
#define FDP_FRAME_TAILROOM …
#define FDP_NCI_I2C_MIN_PAYLOAD …
#define FDP_NCI_I2C_MAX_PAYLOAD …
#define FDP_POWER_OFF …
#define FDP_POWER_ON …
#define fdp_nci_i2c_dump_skb(dev, prefix, skb) …
static void fdp_nci_i2c_reset(const struct fdp_i2c_phy *phy)
{ … }
static int fdp_nci_i2c_enable(void *phy_id)
{ … }
static void fdp_nci_i2c_disable(void *phy_id)
{ … }
static void fdp_nci_i2c_add_len_lrc(struct sk_buff *skb)
{ … }
static void fdp_nci_i2c_remove_len_lrc(struct sk_buff *skb)
{ … }
static int fdp_nci_i2c_write(void *phy_id, struct sk_buff *skb)
{ … }
static const struct nfc_phy_ops i2c_phy_ops = …;
static int fdp_nci_i2c_read(struct fdp_i2c_phy *phy, struct sk_buff **skb)
{ … }
static irqreturn_t fdp_nci_i2c_irq_thread_fn(int irq, void *phy_id)
{ … }
static void fdp_nci_i2c_read_device_properties(struct device *dev,
u8 *clock_type, u32 *clock_freq,
u8 **fw_vsc_cfg)
{ … }
static const struct acpi_gpio_params power_gpios = …;
static const struct acpi_gpio_mapping acpi_fdp_gpios[] = …;
static int fdp_nci_i2c_probe(struct i2c_client *client)
{ … }
static void fdp_nci_i2c_remove(struct i2c_client *client)
{ … }
static const struct acpi_device_id fdp_nci_i2c_acpi_match[] = …;
MODULE_DEVICE_TABLE(acpi, fdp_nci_i2c_acpi_match);
static struct i2c_driver fdp_nci_i2c_driver = …;
module_i2c_driver(…) …;
MODULE_LICENSE(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;