#include <linux/clk.h>
#include <linux/delay.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 "phy-mtk-io.h"
#define MP_GLB_DIG_8C …
#define FRC_PLL_ISO_EN …
#define PLL_ISO_EN …
#define FRC_FRC_PWR_ON …
#define PLL_PWR_ON …
#define MP_LN_DIG_RX_9C …
#define FSM_DIFZ_FRC …
#define MP_LN_DIG_RX_AC …
#define FRC_RX_SQ_EN …
#define RX_SQ_EN …
#define MP_LN_RX_44 …
#define FRC_CDR_PWR_ON …
#define CDR_PWR_ON …
#define FRC_CDR_ISO_EN …
#define CDR_ISO_EN …
#define UFSPHY_CLKS_CNT …
struct ufs_mtk_phy { … };
static struct ufs_mtk_phy *get_ufs_mtk_phy(struct phy *generic_phy)
{ … }
static int ufs_mtk_phy_clk_init(struct ufs_mtk_phy *phy)
{ … }
static void ufs_mtk_phy_set_active(struct ufs_mtk_phy *phy)
{ … }
static void ufs_mtk_phy_set_deep_hibern(struct ufs_mtk_phy *phy)
{ … }
static int ufs_mtk_phy_power_on(struct phy *generic_phy)
{ … }
static int ufs_mtk_phy_power_off(struct phy *generic_phy)
{ … }
static const struct phy_ops ufs_mtk_phy_ops = …;
static int ufs_mtk_phy_probe(struct platform_device *pdev)
{ … }
static const struct of_device_id ufs_mtk_phy_of_match[] = …;
MODULE_DEVICE_TABLE(of, ufs_mtk_phy_of_match);
static struct platform_driver ufs_mtk_phy_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;