#include <linux/extcon-provider.h>
#include <linux/interrupt.h>
#include <linux/mfd/intel_soc_pmic.h>
#include <linux/mfd/intel_soc_pmic_mrfld.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include "extcon-intel.h"
#define BCOVE_USBIDCTRL …
#define BCOVE_USBIDCTRL_ID …
#define BCOVE_USBIDCTRL_ACA …
#define BCOVE_USBIDCTRL_ALL …
#define BCOVE_USBIDSTS …
#define BCOVE_USBIDSTS_GND …
#define BCOVE_USBIDSTS_RARBRC_MASK …
#define BCOVE_USBIDSTS_RARBRC_SHIFT …
#define BCOVE_USBIDSTS_NO_ACA …
#define BCOVE_USBIDSTS_R_ID_A …
#define BCOVE_USBIDSTS_R_ID_B …
#define BCOVE_USBIDSTS_R_ID_C …
#define BCOVE_USBIDSTS_FLOAT …
#define BCOVE_USBIDSTS_SHORT …
#define BCOVE_CHGRIRQ_ALL …
#define BCOVE_CHGRCTRL0 …
#define BCOVE_CHGRCTRL0_CHGRRESET …
#define BCOVE_CHGRCTRL0_EMRGCHREN …
#define BCOVE_CHGRCTRL0_EXTCHRDIS …
#define BCOVE_CHGRCTRL0_SWCONTROL …
#define BCOVE_CHGRCTRL0_TTLCK …
#define BCOVE_CHGRCTRL0_BIT_5 …
#define BCOVE_CHGRCTRL0_BIT_6 …
#define BCOVE_CHGRCTRL0_CHR_WDT_NOKICK …
struct mrfld_extcon_data { … };
static const unsigned int mrfld_extcon_cable[] = …;
static int mrfld_extcon_clear(struct mrfld_extcon_data *data, unsigned int reg,
unsigned int mask)
{ … }
static int mrfld_extcon_set(struct mrfld_extcon_data *data, unsigned int reg,
unsigned int mask)
{ … }
static int mrfld_extcon_sw_control(struct mrfld_extcon_data *data, bool enable)
{ … }
static int mrfld_extcon_get_id(struct mrfld_extcon_data *data)
{ … }
static int mrfld_extcon_role_detect(struct mrfld_extcon_data *data)
{ … }
static int mrfld_extcon_cable_detect(struct mrfld_extcon_data *data)
{ … }
static irqreturn_t mrfld_extcon_interrupt(int irq, void *dev_id)
{ … }
static int mrfld_extcon_probe(struct platform_device *pdev)
{ … }
static void mrfld_extcon_remove(struct platform_device *pdev)
{ … }
static const struct platform_device_id mrfld_extcon_id_table[] = …;
MODULE_DEVICE_TABLE(platform, mrfld_extcon_id_table);
static struct platform_driver mrfld_extcon_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;