diff options
author | fengbaopeng <fengbaopeng@hisilicon.com> | 2018-02-12 20:53:54 +0800 |
---|---|---|
committer | wei li <liwei213@huawei.com> | 2018-02-24 09:30:41 +0800 |
commit | 5ac25de695520bb60b54bbe91a66c58ba28bde42 (patch) | |
tree | 493081d39e9b78edae567cf78d325920f90ef78d /include | |
parent | 15e5958560e9d31e7357e3a0ada2289e78758839 (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.h | 19 |
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; |