summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorfengbaopeng <fengbaopeng@hisilicon.com>2018-02-12 20:53:54 +0800
committerwei li <liwei213@huawei.com>2018-02-24 09:30:41 +0800
commit5ac25de695520bb60b54bbe91a66c58ba28bde42 (patch)
tree493081d39e9b78edae567cf78d325920f90ef78d /include
parent15e5958560e9d31e7357e3a0ada2289e78758839 (diff)
drivers:ufs: fix hynix ufs bug with quirk on hi36xx SoC
Hynix ufs has deviations on hi36xx platform which will result in ufs bursts transfer failures at a very low probability. To fix the problem, the Hynix device must set the register VS_DebugSaveConfigTime to 0x10, which will set time reference for SaveConfigTime is 250 ns. The time reference for SaveConfigTime is 40 ns by default. Signed-off-by: fengbaopeng <fengbaopeng@hisilicon.com>
Diffstat (limited to 'include')
-rw-r--r--include/drivers/ufs.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/include/drivers/ufs.h b/include/drivers/ufs.h
index 3a4f1c78..88dedc5a 100644
--- a/include/drivers/ufs.h
+++ b/include/drivers/ufs.h
@@ -7,6 +7,8 @@
#ifndef __UFS_H__
#define __UFS_H__
+#include <utils_def.h>
+
/* register map of UFSHCI */
/* Controller Capabilities */
#define CAP 0x00
@@ -214,6 +216,9 @@
#define DESC_TYPE_INTERCONNECT 0x04
#define DESC_TYPE_STRING 0x05
+#define DESC_DEVICE_MAX_SIZE 0x1F
+#define DEVICE_DESC_PARAM_MANF_ID 0x18
+
#define ATTR_CUR_PWR_MODE 0x02 /* bCurrentPowerMode */
#define ATTR_ACTIVECC 0x03 /* bActiveICCLevel */
@@ -246,8 +251,22 @@
#define FLAG_DEVICE_INIT 0x01
+#define UFS_VENDOR_SKHYNIX U(0x1AD)
+
+#define MAX_MODEL_LEN 16
+/**
+ * ufs_dev_desc - ufs device details from the device descriptor
+ * @wmanufacturerid: card details
+ * @model: card model
+ */
+struct ufs_dev_desc {
+ uint16_t wmanufacturerid;
+ int8_t model[MAX_MODEL_LEN + 1];
+};
+
/* UFS Driver Flags */
#define UFS_FLAGS_SKIPINIT (1 << 0)
+#define UFS_FLAGS_VENDOR_SKHYNIX (U(1) << 2)
typedef struct sense_data {
uint8_t resp_code : 7;