#ifndef _PHY_SAMSUNG_UFS_
#define _PHY_SAMSUNG_UFS_
#include <linux/phy/phy.h>
#include <linux/regmap.h>
#define PHY_COMN_BLK …
#define PHY_TRSV_BLK …
#define END_UFS_PHY_CFG …
#define PHY_TRSV_CH_OFFSET …
#define PHY_APB_ADDR(off) …
#define PHY_COMN_REG_CFG(o, v, d) …
#define PHY_TRSV_REG_CFG_OFFSET(o, v, d, c) …
#define PHY_TRSV_REG_CFG(o, v, d) …
#define PHY_PLL_LOCK_STATUS …
#define PHY_PLL_LOCK_BIT …
#define PHY_CDR_LOCK_BIT …
enum { … };
#define PWR_MODE_HS_G1_ANY …
#define PWR_MODE_HS_G1_SER_A …
#define PWR_MODE_HS_G1_SER_B …
#define PWR_MODE_HS_G2_ANY …
#define PWR_MODE_HS_G2_SER_A …
#define PWR_MODE_HS_G2_SER_B …
#define PWR_MODE_HS_G3_ANY …
#define PWR_MODE_HS_G3_SER_A …
#define PWR_MODE_HS_G3_SER_B …
#define PWR_MODE(g, s, m) …
#define PWR_MODE_PWM_ANY …
#define PWR_MODE_HS(g, s) …
#define PWR_MODE_HS_ANY …
#define PWR_MODE_ANY …
enum { … };
struct samsung_ufs_phy_cfg { … };
struct samsung_ufs_phy_pmu_isol { … };
struct samsung_ufs_phy_drvdata { … };
struct samsung_ufs_phy { … };
static inline struct samsung_ufs_phy *get_samsung_ufs_phy(struct phy *phy)
{ … }
static inline void samsung_ufs_phy_ctrl_isol(
struct samsung_ufs_phy *phy, u32 isol)
{ … }
int samsung_ufs_phy_wait_for_lock_acq(struct phy *phy, u8 lane);
extern const struct samsung_ufs_phy_drvdata exynos7_ufs_phy;
extern const struct samsung_ufs_phy_drvdata exynosautov9_ufs_phy;
extern const struct samsung_ufs_phy_drvdata fsd_ufs_phy;
extern const struct samsung_ufs_phy_drvdata tensor_gs101_ufs_phy;
#endif