1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * UNISOC UFS Host Controller driver
5 * Copyright (C) 2022 Unisoc, Inc.
6 * Author: Zhe Wang <zhe.wang1@unisoc.com>
12 /* Vendor specific attributes */
13 #define RXSQCONTROL 0x8009
14 #define CBRATESEL 0x8114
15 #define CBCREGADDRLSB 0x8116
16 #define CBCREGADDRMSB 0x8117
17 #define CBCREGWRLSB 0x8118
18 #define CBCREGWRMSB 0x8119
19 #define CBCREGRDWRSEL 0x811C
20 #define CBCRCTRL 0x811F
21 #define CBREFCLKCTRL2 0x8132
22 #define VS_MPHYDISABLE 0xD0C1
24 #define APB_UFSDEV_REG 0xCE8
25 #define APB_UFSDEV_REFCLK_EN 0x2
26 #define APB_USB31PLL_CTRL 0xCFC
27 #define APB_USB31PLLV_REF2MPHY 0x1
29 #define SPRD_SIP_SVC_STORAGE_UFS_CRYPTO_ENABLE \
30 ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, \
32 ARM_SMCCC_OWNER_SIP, \
35 enum SPRD_UFS_RST_INDEX
{
42 enum SPRD_UFS_SYSCON_INDEX
{
49 enum SPRD_UFS_VREG_INDEX
{
57 struct reset_control
*rc
;
60 struct ufs_sprd_syscon
{
62 struct regmap
*regmap
;
65 struct ufs_sprd_vreg
{
67 struct regulator
*vreg
;
70 struct ufs_sprd_priv
{
71 struct ufs_sprd_rst rci
[SPRD_UFS_RST_MAX
];
72 struct ufs_sprd_syscon sysci
[SPRD_UFS_SYSCON_MAX
];
73 struct ufs_sprd_vreg vregi
[SPRD_UFS_VREG_MAX
];
74 const struct ufs_hba_variant_ops ufs_hba_sprd_vops
;
77 struct ufs_sprd_host
{
79 struct ufs_sprd_priv
*priv
;
80 void __iomem
*ufs_dbg_mmio
;
82 enum ufs_unipro_ver unipro_ver
;
85 #endif /* _UFS_SPRD_H_ */