#include <linux/io.h>
#include <linux/iopoll.h>
#include <linux/mfd/syscon.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/phy/phy.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#define USB2_PHY_PLL_CTRL_REG0 …
#define PLL_REF_DIV_OFF …
#define PLL_REF_DIV_MASK …
#define PLL_REF_DIV_5 …
#define PLL_FB_DIV_OFF …
#define PLL_FB_DIV_MASK …
#define PLL_FB_DIV_96 …
#define PLL_SEL_LPFR_OFF …
#define PLL_SEL_LPFR_MASK …
#define PLL_READY …
#define USB2_PHY_CAL_CTRL …
#define PHY_PLLCAL_DONE …
#define PHY_IMPCAL_DONE …
#define USB2_RX_CHAN_CTRL1 …
#define USB2PHY_SQCAL_DONE …
#define USB2_PHY_OTG_CTRL …
#define PHY_PU_OTG …
#define USB2_PHY_CHRGR_DETECT …
#define PHY_CDP_EN …
#define PHY_DCP_EN …
#define PHY_PD_EN …
#define PHY_PU_CHRG_DTC …
#define PHY_CDP_DM_AUTO …
#define PHY_ENSWITCH_DP …
#define PHY_ENSWITCH_DM …
#define USB2_PHY_CTRL(usb32) …
#define RB_USB2PHY_PU …
#define USB2_DP_PULLDN_DEV_MODE …
#define USB2_DM_PULLDN_DEV_MODE …
#define RB_USB2PHY_SUSPM(usb32) …
#define PLL_LOCK_DELAY_US …
#define PLL_LOCK_TIMEOUT_US …
struct mvebu_a3700_utmi_caps { … };
struct mvebu_a3700_utmi { … };
static int mvebu_a3700_utmi_phy_power_on(struct phy *phy)
{ … }
static int mvebu_a3700_utmi_phy_power_off(struct phy *phy)
{ … }
static const struct phy_ops mvebu_a3700_utmi_phy_ops = …;
static const struct mvebu_a3700_utmi_caps mvebu_a3700_utmi_otg_phy_caps = …;
static const struct mvebu_a3700_utmi_caps mvebu_a3700_utmi_host_phy_caps = …;
static const struct of_device_id mvebu_a3700_utmi_of_match[] = …;
MODULE_DEVICE_TABLE(of, mvebu_a3700_utmi_of_match);
static int mvebu_a3700_utmi_phy_probe(struct platform_device *pdev)
{ … }
static struct platform_driver mvebu_a3700_utmi_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;