File Index
Files and directories
Sign in
FILE

ufs-rockchip.h

File preview with syntax highlighting.

linux-6.19.14/drivers/ufs/host/ufs-rockchip.h C
 1/* SPDX-License-Identifier: GPL-2.0-only */
 2/*
 3 * Rockchip UFS Host Controller driver
 4 *
 5 * Copyright (C) 2025 Rockchip Electronics Co., Ltd.
 6 */
 7
 8#ifndef _UFS_ROCKCHIP_H_
 9#define _UFS_ROCKCHIP_H_
10
11#define SEL_TX_LANE0 0x0
12#define SEL_TX_LANE1 0x1
13#define SEL_TX_LANE2 0x2
14#define SEL_TX_LANE3 0x3
15#define SEL_RX_LANE0 0x4
16#define SEL_RX_LANE1 0x5
17#define SEL_RX_LANE2 0x6
18#define SEL_RX_LANE3 0x7
19
20#define VND_TX_CLK_PRD                  0xAA
21#define VND_TX_CLK_PRD_EN               0xA9
22#define VND_TX_LINERESET_PVALUE2        0xAB
23#define VND_TX_LINERESET_PVALUE1        0xAC
24#define VND_TX_LINERESET_VALUE          0xAD
25#define VND_TX_BASE_NVALUE              0x93
26#define VND_TX_TASE_VALUE               0x94
27#define VND_TX_POWER_SAVING_CTRL        0x7F
28#define VND_RX_CLK_PRD                  0x12
29#define VND_RX_CLK_PRD_EN               0x11
30#define VND_RX_LINERESET_PVALUE2        0x1B
31#define VND_RX_LINERESET_PVALUE1        0x1C
32#define VND_RX_LINERESET_VALUE          0x1D
33#define VND_RX_LINERESET_OPTION         0x25
34#define VND_RX_POWER_SAVING_CTRL        0x2F
35#define VND_RX_SAVE_DET_CTRL            0x1E
36
37#define CMN_REG23                       0x8C
38#define CMN_REG25                       0x94
39#define TRSV0_REG08                     0xE0
40#define TRSV1_REG08                     0x220
41#define TRSV0_REG14                     0x110
42#define TRSV1_REG14                     0x250
43#define TRSV0_REG15                     0x134
44#define TRSV1_REG15                     0x274
45#define TRSV0_REG16                     0x128
46#define TRSV1_REG16                     0x268
47#define TRSV0_REG17                     0x12C
48#define TRSV1_REG17                     0x26c
49#define TRSV0_REG18                     0x120
50#define TRSV1_REG18                     0x260
51#define TRSV0_REG29                     0x164
52#define TRSV1_REG29                     0x2A4
53#define TRSV0_REG2E                     0x178
54#define TRSV1_REG2E                     0x2B8
55#define TRSV0_REG3C                     0x1B0
56#define TRSV1_REG3C                     0x2F0
57#define TRSV0_REG3D                     0x1B4
58#define TRSV1_REG3D                     0x2F4
59
60#define MPHY_CFG                        0x200
61#define MPHY_CFG_ENABLE                 0x40
62#define MPHY_CFG_DISABLE                0x0
63
64#define MIB_T_DBG_CPORT_TX_ENDIAN       0xc022
65#define MIB_T_DBG_CPORT_RX_ENDIAN       0xc023
66
67struct ufs_rockchip_host {
68	struct ufs_hba *hba;
69	void __iomem *ufs_phy_ctrl;
70	void __iomem *ufs_sys_ctrl;
71	void __iomem *mphy_base;
72	struct gpio_desc *rst_gpio;
73	struct reset_control *rst;
74	struct clk *ref_out_clk;
75	struct clk_bulk_data *clks;
76	uint64_t caps;
77};
78
79#define ufs_sys_writel(base, val, reg)                                    \
80	writel((val), (base) + (reg))
81#define ufs_sys_readl(base, reg) readl((base) + (reg))
82#define ufs_sys_set_bits(base, mask, reg)                                 \
83	ufs_sys_writel(                                                   \
84		(base), ((mask) | (ufs_sys_readl((base), (reg)))), (reg))
85#define ufs_sys_ctrl_clr_bits(base, mask, reg)                                 \
86	ufs_sys_writel((base),                                            \
87			    ((~(mask)) & (ufs_sys_readl((base), (reg)))), \
88			    (reg))
89
90#endif /* _UFS_ROCKCHIP_H_ */
~/ Read-only file preview.