#include <linux/clk.h>
#include <linux/err.h>
#include <linux/io.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/phy/phy.h>
#include <linux/platform_device.h>
#include <linux/reset.h>
#define SUNXI_ISCR …
#define SUNXI_PIPE_CLOCK_CONTROL …
#define SUNXI_PHY_TUNE_LOW …
#define SUNXI_PHY_TUNE_HIGH …
#define SUNXI_PHY_EXTERNAL_CONTROL …
#define SUNXI_ISCR_FORCE_VBUS …
#define SUNXI_PCC_PIPE_CLK_OPEN …
#define SUNXI_PEC_EXTERN_VBUS …
#define SUNXI_PEC_SSC_EN …
#define SUNXI_PEC_REF_SSP_EN …
#define SUNXI_TX_DEEMPH_3P5DB(n) …
#define SUNXI_TX_DEEMPH_3P5DB_MASK …
#define SUNXI_TX_DEEMPH_6DB(n) …
#define SUNXI_TX_DEEMPH_6GB_MASK …
#define SUNXI_TX_SWING_FULL(n) …
#define SUNXI_TX_SWING_FULL_MASK …
#define SUNXI_LOS_BIAS(n) …
#define SUNXI_LOS_BIAS_MASK …
#define SUNXI_TXVBOOSTLVL(n) …
#define SUNXI_TXVBOOSTLVL_MASK …
struct sun50i_usb3_phy { … };
static void sun50i_usb3_phy_open(struct sun50i_usb3_phy *phy)
{ … }
static int sun50i_usb3_phy_init(struct phy *_phy)
{ … }
static int sun50i_usb3_phy_exit(struct phy *_phy)
{ … }
static const struct phy_ops sun50i_usb3_phy_ops = …;
static int sun50i_usb3_phy_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id sun50i_usb3_phy_of_match[] = …;
MODULE_DEVICE_TABLE(of, sun50i_usb3_phy_of_match);
static struct platform_driver sun50i_usb3_phy_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;