#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>
#include <linux/usb/of.h>
#include <linux/usb/otg.h>
#define UTMI_PHY_PORTS …
#define SYSCON_USB_CFG_REG …
#define USB_CFG_DEVICE_EN_MASK …
#define USB_CFG_DEVICE_MUX_OFFSET …
#define USB_CFG_DEVICE_MUX_MASK …
#define USB_CFG_PLL_MASK …
#define SYSCON_UTMI_CFG_REG(id) …
#define UTMI_PHY_CFG_PU_MASK …
#define UTMI_PLL_CTRL_REG …
#define PLL_REFDIV_OFFSET …
#define PLL_REFDIV_MASK …
#define PLL_REFDIV_VAL …
#define PLL_FBDIV_OFFSET …
#define PLL_FBDIV_MASK …
#define PLL_FBDIV_VAL …
#define PLL_SEL_LPFR_MASK …
#define PLL_RDY …
#define UTMI_CAL_CTRL_REG …
#define IMPCAL_VTH_OFFSET …
#define IMPCAL_VTH_MASK …
#define IMPCAL_VTH_VAL …
#define IMPCAL_DONE …
#define PLLCAL_DONE …
#define UTMI_TX_CH_CTRL_REG …
#define DRV_EN_LS_OFFSET …
#define DRV_EN_LS_MASK …
#define IMP_SEL_LS_OFFSET …
#define IMP_SEL_LS_MASK …
#define TX_AMP_OFFSET …
#define TX_AMP_MASK …
#define TX_AMP_VAL …
#define UTMI_RX_CH_CTRL0_REG …
#define SQ_DET_EN …
#define SQ_ANA_DTC_SEL …
#define UTMI_RX_CH_CTRL1_REG …
#define SQ_AMP_CAL_OFFSET …
#define SQ_AMP_CAL_MASK …
#define SQ_AMP_CAL_VAL …
#define SQ_AMP_CAL_EN …
#define UTMI_CTRL_STATUS0_REG …
#define SUSPENDM …
#define TEST_SEL …
#define UTMI_CHGDTC_CTRL_REG …
#define VDAT_OFFSET …
#define VDAT_MASK …
#define VDAT_VAL …
#define VSRC_OFFSET …
#define VSRC_MASK …
#define VSRC_VAL …
#define PLL_LOCK_DELAY_US …
#define PLL_LOCK_TIMEOUT_US …
#define PORT_REGS(p) …
struct mvebu_cp110_utmi { … };
struct mvebu_cp110_utmi_port { … };
static void mvebu_cp110_utmi_port_setup(struct mvebu_cp110_utmi_port *port)
{ … }
static int mvebu_cp110_utmi_phy_power_off(struct phy *phy)
{ … }
static int mvebu_cp110_utmi_phy_power_on(struct phy *phy)
{ … }
static const struct phy_ops mvebu_cp110_utmi_phy_ops = …;
static const struct of_device_id mvebu_cp110_utmi_of_match[] = …;
MODULE_DEVICE_TABLE(of, mvebu_cp110_utmi_of_match);
static int mvebu_cp110_utmi_phy_probe(struct platform_device *pdev)
{ … }
static struct platform_driver mvebu_cp110_utmi_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;