#include <linux/arm-smccc.h>
#include <linux/mfd/syscon.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include <linux/reset.h>
#include <linux/regulator/consumer.h>
#include <ufs/ufshcd.h>
#include "ufshcd-pltfrm.h"
#include "ufs-sprd.h"
static const struct of_device_id ufs_sprd_of_match[];
static struct ufs_sprd_priv *ufs_sprd_get_priv_data(struct ufs_hba *hba)
{ … }
static void ufs_sprd_regmap_update(struct ufs_sprd_priv *priv, unsigned int index,
unsigned int reg, unsigned int bits, unsigned int val)
{ … }
static void ufs_sprd_regmap_read(struct ufs_sprd_priv *priv, unsigned int index,
unsigned int reg, unsigned int *val)
{ … }
static void ufs_sprd_get_unipro_ver(struct ufs_hba *hba)
{ … }
static void ufs_sprd_ctrl_uic_compl(struct ufs_hba *hba, bool enable)
{ … }
static int ufs_sprd_get_reset_ctrl(struct device *dev, struct ufs_sprd_rst *rci)
{ … }
static int ufs_sprd_get_syscon_reg(struct device *dev, struct ufs_sprd_syscon *sysci)
{ … }
static int ufs_sprd_get_vreg(struct device *dev, struct ufs_sprd_vreg *vregi)
{ … }
static int ufs_sprd_parse_dt(struct device *dev, struct ufs_hba *hba, struct ufs_sprd_host *host)
{ … }
static int ufs_sprd_common_init(struct ufs_hba *hba)
{ … }
static int sprd_ufs_pwr_change_notify(struct ufs_hba *hba,
enum ufs_notify_change_status status,
struct ufs_pa_layer_attr *dev_max_params,
struct ufs_pa_layer_attr *dev_req_params)
{ … }
static int ufs_sprd_suspend(struct ufs_hba *hba, enum ufs_pm_op pm_op,
enum ufs_notify_change_status status)
{ … }
static void ufs_sprd_n6_host_reset(struct ufs_hba *hba)
{ … }
static int ufs_sprd_n6_device_reset(struct ufs_hba *hba)
{ … }
static void ufs_sprd_n6_key_acc_enable(struct ufs_hba *hba)
{ … }
static int ufs_sprd_n6_init(struct ufs_hba *hba)
{ … }
static int ufs_sprd_n6_phy_init(struct ufs_hba *hba)
{ … }
static int sprd_ufs_n6_hce_enable_notify(struct ufs_hba *hba,
enum ufs_notify_change_status status)
{ … }
static void sprd_ufs_n6_h8_notify(struct ufs_hba *hba,
enum uic_cmd_dme cmd,
enum ufs_notify_change_status status)
{ … }
static struct ufs_sprd_priv n6_ufs = …;
static const struct of_device_id __maybe_unused ufs_sprd_of_match[] = …;
MODULE_DEVICE_TABLE(of, ufs_sprd_of_match);
static int ufs_sprd_probe(struct platform_device *pdev)
{ … }
static void ufs_sprd_remove(struct platform_device *pdev)
{ … }
static const struct dev_pm_ops ufs_sprd_pm_ops = …;
static struct platform_driver ufs_sprd_pltform = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;