linux/drivers/phy/allwinner/phy-sun50i-usb3.c

// SPDX-License-Identifier: GPL-2.0+
/*
 * Allwinner sun50i(H6) USB 3.0 phy driver
 *
 * Copyright (C) 2017 Icenowy Zheng <[email protected]>
 *
 * Based on phy-sun9i-usb.c, which is:
 *
 * Copyright (C) 2014-2015 Chen-Yu Tsai <[email protected]>
 *
 * Based on code from Allwinner BSP, which is:
 *
 * Copyright (c) 2010-2015 Allwinner Technology Co., Ltd.
 */

#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>

/* Interface Status and Control Registers */
#define SUNXI_ISCR
#define SUNXI_PIPE_CLOCK_CONTROL
#define SUNXI_PHY_TUNE_LOW
#define SUNXI_PHY_TUNE_HIGH
#define SUNXI_PHY_EXTERNAL_CONTROL

/* USB2.0 Interface Status and Control Register */
#define SUNXI_ISCR_FORCE_VBUS

/* PIPE Clock Control Register */
#define SUNXI_PCC_PIPE_CLK_OPEN

/* PHY External Control Register */
#define SUNXI_PEC_EXTERN_VBUS
#define SUNXI_PEC_SSC_EN
#define SUNXI_PEC_REF_SSP_EN

/* PHY Tune High Register */
#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();