#include <linux/interrupt.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include <linux/usb/tcpci.h>
#include <linux/usb/tcpm.h>
#define MT6360_REG_PHYCTRL1 …
#define MT6360_REG_PHYCTRL3 …
#define MT6360_REG_PHYCTRL7 …
#define MT6360_REG_VCONNCTRL1 …
#define MT6360_REG_MODECTRL2 …
#define MT6360_REG_SWRESET …
#define MT6360_REG_DEBCTRL1 …
#define MT6360_REG_DRPCTRL1 …
#define MT6360_REG_DRPCTRL2 …
#define MT6360_REG_I2CTORST …
#define MT6360_REG_PHYCTRL11 …
#define MT6360_REG_RXCTRL1 …
#define MT6360_REG_RXCTRL2 …
#define MT6360_REG_CTDCTRL2 …
#define MT6360_VCONNCL_ENABLE …
#define MT6360_OPEN40M_ENABLE …
#define MT6360_RPONESHOT_ENABLE …
struct mt6360_tcpc_info { … };
static inline int mt6360_tcpc_write16(struct regmap *regmap,
unsigned int reg, u16 val)
{ … }
static int mt6360_tcpc_init(struct tcpci *tcpci, struct tcpci_data *tdata)
{ … }
static irqreturn_t mt6360_irq(int irq, void *dev_id)
{ … }
static int mt6360_tcpc_probe(struct platform_device *pdev)
{ … }
static void mt6360_tcpc_remove(struct platform_device *pdev)
{ … }
static int __maybe_unused mt6360_tcpc_suspend(struct device *dev)
{ … }
static int __maybe_unused mt6360_tcpc_resume(struct device *dev)
{ … }
static SIMPLE_DEV_PM_OPS(mt6360_tcpc_pm_ops, mt6360_tcpc_suspend, mt6360_tcpc_resume);
static const struct of_device_id __maybe_unused mt6360_tcpc_of_id[] = …;
MODULE_DEVICE_TABLE(of, mt6360_tcpc_of_id);
static struct platform_driver mt6360_tcpc_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;