#include <linux/acpi.h>
#include <linux/devm-helpers.h>
#include <linux/extcon-provider.h>
#include <linux/gpio/consumer.h>
#include <linux/interrupt.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/regulator/consumer.h>
#define INT3496_GPIO_USB_ID …
#define INT3496_GPIO_VBUS_EN …
#define INT3496_GPIO_USB_MUX …
#define DEBOUNCE_TIME …
struct int3496_data { … };
static const unsigned int int3496_cable[] = …;
static const struct acpi_gpio_params id_gpios = …;
static const struct acpi_gpio_params vbus_gpios = …;
static const struct acpi_gpio_params mux_gpios = …;
static const struct acpi_gpio_mapping acpi_int3496_default_gpios[] = …;
static void int3496_set_vbus_boost(struct int3496_data *data, bool enable)
{ … }
static void int3496_do_usb_id(struct work_struct *work)
{ … }
static irqreturn_t int3496_thread_isr(int irq, void *priv)
{ … }
static int int3496_probe(struct platform_device *pdev)
{ … }
static const struct acpi_device_id int3496_acpi_match[] = …;
MODULE_DEVICE_TABLE(acpi, int3496_acpi_match);
static const struct platform_device_id int3496_ids[] = …;
MODULE_DEVICE_TABLE(platform, int3496_ids);
static struct platform_driver int3496_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;