phy: relocate and rename phy ufs files

This change contains:
1. Relocating the phy ufs files to reside under the phy driver since
this is the location of any file that implements the APIs presented in
the generic phy framework
2. Renaming ufs-msm-phy*.* files to be phy-qcom-ufs*.* files.
Since UFS is not used strictly in a specific set of targets but rather
its code is applicable to MSM, APQ, IPQ etc, any mentioning of "msm" in
the file name should be changed to "qcom".
Also, prefix of "phy-" is the naming convention of platform driver files
that reside in the phy driver.
3. As a result of the relocation of files into the phy driver,
a new path is created (include/linux/scsi/ufs) and there we expose ufs
header files that are being used also from the drivers/scsi/ufs
and from drivers/phy as well.

Change-Id: Ie5cb47718911ff711d9401a389f56fa508fcddf3
Signed-off-by: Yaniv Gardi <ygardi@codeaurora.org>
This commit is contained in:
Yaniv Gardi 2014-09-03 15:31:52 +03:00
parent 4fe56e46d8
commit 3ba23ab306
20 changed files with 61 additions and 66 deletions

View file

@ -4,3 +4,6 @@
obj-$(CONFIG_GENERIC_PHY) += phy-core.o
obj-$(CONFIG_PHY_MSM_SATA) += phy-msm-sata.o
obj-$(CONFIG_SCSI_UFS_QCOM) += phy-qcom-ufs.o
obj-$(CONFIG_SCSI_UFS_QCOM) += phy-qcom-ufs-qmp-28nm.o
obj-$(CONFIG_SCSI_UFS_QCOM) += phy-qcom-ufs-qmp-20nm.o

View file

@ -22,8 +22,8 @@
#include <linux/platform_device.h>
#include <linux/msm-bus.h>
#include "ufs-msm-phy.h"
#include "ufs-msm-phy-qmp-20nm.h"
#include <linux/phy/phy-qcom-ufs.h>
#include "phy-qcom-ufs-qmp-20nm.h"
#define UFS_PHY_NAME "ufs_phy_qmp_20nm"

View file

@ -15,7 +15,7 @@
#ifndef UFS_QCOM_PHY_QMP_20NM_H_
#define UFS_QCOM_PHY_QMP_20NM_H_
#include "ufs-msm-phy.h"
#include <linux/phy/phy-qcom-ufs.h>
/* QCOM UFS PHY control registers */

View file

@ -23,8 +23,8 @@
#include <linux/msm-bus.h>
#include <linux/phy/phy.h>
#include "ufs-msm-phy.h"
#include "ufs-msm-phy-qmp-28nm.h"
#include <linux/phy/phy-qcom-ufs.h>
#include "phy-qcom-ufs-qmp-28nm.h"
#define UFS_PHY_NAME "ufs_qcom_phy_qmp_28nm"

View file

@ -15,7 +15,7 @@
#ifndef UFS_QCOM_PHY_QMP_28NM_H_
#define UFS_QCOM_PHY_QMP_28NM_H_
#include "ufs-msm-phy.h"
#include <linux/phy/phy-qcom-ufs.h>
/* QCOM UFS PHY control registers */

View file

@ -22,7 +22,7 @@
#include <linux/platform_device.h>
#include <linux/msm-bus.h>
#include "ufs-msm-phy.h"
#include <linux/phy/phy-qcom-ufs.h>
int ufs_qcom_phy_calibrate(struct ufs_qcom_phy *ufs_qcom_phy,
struct ufs_qcom_phy_calibration *tbl_A,

View file

@ -1,8 +1,5 @@
# UFSHCD makefile
obj-$(CONFIG_SCSI_UFS_QCOM) += ufs-msm.o
obj-$(CONFIG_SCSI_UFS_QCOM) += ufs-msm-phy.o
obj-$(CONFIG_SCSI_UFS_QCOM) += ufs-msm-phy-qmp-28nm.o
obj-$(CONFIG_SCSI_UFS_QCOM) += ufs-msm-phy-qmp-20nm.o
obj-$(CONFIG_SCSI_UFS_QCOM) += ufs-qcom.o
obj-$(CONFIG_SCSI_UFSHCD) += ufshcd.o ufs_quirks.o
obj-$(CONFIG_SCSI_UFSHCD_PCI) += ufshcd-pci.o
obj-$(CONFIG_SCSI_UFSHCD_PLATFORM) += ufshcd-pltfrm.o

View file

@ -19,7 +19,8 @@
#include <linux/random.h>
#include "debugfs.h"
#include "unipro.h"
#include <linux/scsi/ufs/unipro.h>
#include "ufshci.h"
enum field_width {
BYTE = 1,

View file

@ -1,4 +1,4 @@
/* Copyright (c) 2013, The Linux Foundation. All rights reserved.
/* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@ -21,7 +21,7 @@
#define _UFS_DEBUGFS_H
#include <linux/debugfs.h>
#include "ufshcd.h"
#include <linux/scsi/ufs/ufshcd.h>
#ifdef CONFIG_DEBUG_FS
void ufsdbg_add_debugfs(struct ufs_hba *hba);

View file

@ -24,9 +24,10 @@
#include <linux/msm-bus.h>
#include <soc/qcom/scm.h>
#include "ufshcd.h"
#include "ufs-msm.h"
#include "ufs-msm-phy.h"
#include <linux/scsi/ufs/ufshcd.h>
#include <linux/scsi/ufs/ufs-qcom.h>
#include <linux/phy/phy-qcom-ufs.h>
#include "ufshci.h"
static int ufs_qcom_get_speed_mode(struct ufs_pa_layer_attr *p, char *result);
static int ufs_qcom_get_bus_vote(struct ufs_qcom_host *host,

View file

@ -1,4 +1,5 @@
/* Copyright (c) 2014, The Linux Foundation. All rights reserved.
/*
* Copyright (c) 2013-2014, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@ -10,7 +11,7 @@
* GNU General Public License for more details.
*/
#include "ufshcd.h"
#include <linux/scsi/ufs/ufshcd.h>
#include "ufs_quirks.h"

View file

@ -23,8 +23,8 @@
#include <scsi/scsi_device.h>
#include <scsi/scsi_cmnd.h>
#include <scsi/scsi_host.h>
#include "ufshcd.h"
#include "ufs.h"
#include <linux/scsi/ufs/ufshcd.h>
#include <linux/scsi/ufs/ufs.h>
#define MODULE_NAME "ufs_test"

View file

@ -33,7 +33,7 @@
* this program.
*/
#include "ufshcd.h"
#include <linux/scsi/ufs/ufshcd.h>
#include <linux/pci.h>
#include <linux/pm_runtime.h>

View file

@ -37,7 +37,7 @@
#include <linux/pm_runtime.h>
#include <linux/of.h>
#include "ufshcd.h"
#include <linux/scsi/ufs/ufshcd.h>
static const struct of_device_id ufs_of_match[];
static struct ufs_hba_variant_ops *get_variant_ops(struct device *dev)

View file

@ -42,8 +42,10 @@
#include <linux/devfreq.h>
#include <linux/nls.h>
#include "ufshcd.h"
#include "unipro.h"
#include <linux/scsi/ufs/ufshcd.h>
#include <linux/scsi/ufs/unipro.h>
#include "ufshci.h"
#include "ufs_quirks.h"
#include "debugfs.h"
#define CREATE_TRACE_POINTS
@ -3063,6 +3065,23 @@ out:
return err;
}
/**
* ufshcd_hba_stop - Send controller to reset state
* @hba: per adapter instance
* @can_sleep: perform sleep or just spin
*/
static inline void ufshcd_hba_stop(struct ufs_hba *hba, bool can_sleep)
{
int err;
ufshcd_writel(hba, CONTROLLER_DISABLE, REG_CONTROLLER_ENABLE);
err = ufshcd_wait_for_register(hba, REG_CONTROLLER_ENABLE,
CONTROLLER_ENABLE, CONTROLLER_DISABLE,
10, 1, can_sleep);
if (err)
dev_err(hba->dev, "%s: Controller disable failed\n", __func__);
}
/**
* ufshcd_hba_enable - initialize the controller
* @hba: per adapter instance

View file

@ -26,9 +26,9 @@
#include <linux/phy/phy.h>
#include <linux/msm-bus.h>
#include "ufshcd.h"
#include "unipro.h"
#include "ufs-msm.h"
#include <linux/scsi/ufs/ufshcd.h>
#include <linux/scsi/ufs/unipro.h>
#include <linux/scsi/ufs/ufs-qcom.h>
#define UFS_QCOM_PHY_CAL_ENTRY(reg, val) \
{ \
@ -38,6 +38,15 @@
#define UFS_QCOM_PHY_NAME_LEN 30
enum {
MASK_SERDES_START = 0x1,
MASK_PCS_READY = 0x1,
};
enum {
OFFSET_SERDES_START = 0x0,
};
struct ufs_qcom_phy_stored_attributes {
u32 att;
u32 value;

View file

@ -139,15 +139,6 @@ struct ufs_qcom_host {
#define ufs_qcom_is_link_active(hba) ufshcd_is_link_active(hba)
#define ufs_qcom_is_link_hibern8(hba) ufshcd_is_link_hibern8(hba)
enum {
MASK_SERDES_START = 0x1,
MASK_PCS_READY = 0x1,
};
enum {
OFFSET_SERDES_START = 0x0,
};
#define MAX_PROP_NAME 32
#define VDDA_PHY_MIN_UV 1000000
#define VDDA_PHY_MAX_UV 1000000

View file

@ -65,10 +65,7 @@
#include <scsi/scsi_eh.h>
#include <linux/fault-inject.h>
#include "ufs.h"
#include "ufshci.h"
#include "ufs_quirks.h"
#define UFSHCD "ufshcd"
#define UFSHCD_DRIVER_VERSION "0.2"
@ -598,9 +595,9 @@ static inline bool ufshcd_can_autobkops_during_suspend(struct ufs_hba *hba)
}
#define ufshcd_writel(hba, val, reg) \
writel((val), (hba)->mmio_base + (reg))
writel_relaxed((val), (hba)->mmio_base + (reg))
#define ufshcd_readl(hba, reg) \
readl((hba)->mmio_base + (reg))
readl_relaxed((hba)->mmio_base + (reg))
/**
* ufshcd_rmwl - read modify write into a register
@ -626,28 +623,6 @@ void ufshcd_remove(struct ufs_hba *);
int ufshcd_wait_for_register(struct ufs_hba *hba, u32 reg, u32 mask,
u32 val, unsigned long interval_us,
unsigned long timeout_ms, bool can_sleep);
/**
* ufshcd_hba_stop - Send controller to reset state
* @hba: per adapter instance
* @can_sleep: perform sleep or just spin
*/
static inline void ufshcd_hba_stop(struct ufs_hba *hba, bool can_sleep)
{
int err;
ufshcd_writel(hba, CONTROLLER_DISABLE, REG_CONTROLLER_ENABLE);
err = ufshcd_wait_for_register(hba, REG_CONTROLLER_ENABLE,
CONTROLLER_ENABLE, CONTROLLER_DISABLE,
10, 1, can_sleep);
if (err)
dev_err(hba->dev, "%s: Controller disable failed\n", __func__);
}
static inline void check_upiu_size(void)
{
BUILD_BUG_ON(ALIGNED_UPIU_SIZE <
GENERAL_UPIU_REQUEST_SIZE + QUERY_DESC_MAX_SIZE);
}
extern int ufshcd_runtime_suspend(struct ufs_hba *hba);
extern int ufshcd_runtime_resume(struct ufs_hba *hba);

View file

@ -1,6 +1,4 @@
/*
* drivers/scsi/ufs/unipro.h
*
* Copyright (C) 2013 Samsung Electronics Co., Ltd.
*
* This program is free software; you can redistribute it and/or modify