|
92 | 92 | UIC_TRANSPORT_NO_CONNECTION_RX |\
|
93 | 93 | UIC_TRANSPORT_BAD_TC)
|
94 | 94 |
|
95 |
| -/* FSYS UFS Shareability */ |
96 |
| -#define UFS_WR_SHARABLE BIT(2) |
97 |
| -#define UFS_RD_SHARABLE BIT(1) |
98 |
| -#define UFS_SHARABLE (UFS_WR_SHARABLE | UFS_RD_SHARABLE) |
99 |
| -#define UFS_SHAREABILITY_OFFSET 0x710 |
| 95 | +/* UFS Shareability */ |
| 96 | +#define UFS_EXYNOSAUTO_WR_SHARABLE BIT(2) |
| 97 | +#define UFS_EXYNOSAUTO_RD_SHARABLE BIT(1) |
| 98 | +#define UFS_EXYNOSAUTO_SHARABLE (UFS_EXYNOSAUTO_WR_SHARABLE | \ |
| 99 | + UFS_EXYNOSAUTO_RD_SHARABLE) |
| 100 | +#define UFS_GS101_WR_SHARABLE BIT(1) |
| 101 | +#define UFS_GS101_RD_SHARABLE BIT(0) |
| 102 | +#define UFS_GS101_SHARABLE (UFS_GS101_WR_SHARABLE | \ |
| 103 | + UFS_GS101_RD_SHARABLE) |
| 104 | +#define UFS_SHAREABILITY_OFFSET 0x710 |
100 | 105 |
|
101 | 106 | /* Multi-host registers */
|
102 | 107 | #define MHCTRL 0xC4
|
@@ -210,7 +215,7 @@ static int exynos_ufs_shareability(struct exynos_ufs *ufs)
|
210 | 215 | if (ufs->sysreg) {
|
211 | 216 | return regmap_update_bits(ufs->sysreg,
|
212 | 217 | ufs->shareability_reg_offset,
|
213 |
| - UFS_SHARABLE, UFS_SHARABLE); |
| 218 | + ufs->iocc_mask, ufs->iocc_mask); |
214 | 219 | }
|
215 | 220 |
|
216 | 221 | return 0;
|
@@ -1174,6 +1179,7 @@ static int exynos_ufs_parse_dt(struct device *dev, struct exynos_ufs *ufs)
|
1174 | 1179 | }
|
1175 | 1180 | }
|
1176 | 1181 |
|
| 1182 | + ufs->iocc_mask = ufs->drv_data->iocc_mask; |
1177 | 1183 | ufs->pclk_avail_min = PCLK_AVAIL_MIN;
|
1178 | 1184 | ufs->pclk_avail_max = PCLK_AVAIL_MAX;
|
1179 | 1185 |
|
@@ -2034,6 +2040,7 @@ static const struct exynos_ufs_drv_data exynosauto_ufs_drvs = {
|
2034 | 2040 | .opts = EXYNOS_UFS_OPT_BROKEN_AUTO_CLK_CTRL |
|
2035 | 2041 | EXYNOS_UFS_OPT_SKIP_CONFIG_PHY_ATTR |
|
2036 | 2042 | EXYNOS_UFS_OPT_BROKEN_RX_SEL_IDX,
|
| 2043 | + .iocc_mask = UFS_EXYNOSAUTO_SHARABLE, |
2037 | 2044 | .drv_init = exynosauto_ufs_drv_init,
|
2038 | 2045 | .post_hce_enable = exynosauto_ufs_post_hce_enable,
|
2039 | 2046 | .pre_link = exynosauto_ufs_pre_link,
|
@@ -2135,6 +2142,7 @@ static const struct exynos_ufs_drv_data gs101_ufs_drvs = {
|
2135 | 2142 | .opts = EXYNOS_UFS_OPT_SKIP_CONFIG_PHY_ATTR |
|
2136 | 2143 | EXYNOS_UFS_OPT_UFSPR_SECURE |
|
2137 | 2144 | EXYNOS_UFS_OPT_TIMER_TICK_SELECT,
|
| 2145 | + .iocc_mask = UFS_GS101_SHARABLE, |
2138 | 2146 | .drv_init = gs101_ufs_drv_init,
|
2139 | 2147 | .pre_link = gs101_ufs_pre_link,
|
2140 | 2148 | .post_link = gs101_ufs_post_link,
|
|
0 commit comments