xref: /OK3568_Linux_fs/kernel/sound/pci/oxygen/cs2000.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun #ifndef CS2000_H_INCLUDED
3*4882a593Smuzhiyun #define CS2000_H_INCLUDED
4*4882a593Smuzhiyun 
5*4882a593Smuzhiyun #define CS2000_DEV_ID		0x01
6*4882a593Smuzhiyun #define CS2000_DEV_CTRL		0x02
7*4882a593Smuzhiyun #define CS2000_DEV_CFG_1	0x03
8*4882a593Smuzhiyun #define CS2000_DEV_CFG_2	0x04
9*4882a593Smuzhiyun #define CS2000_GLOBAL_CFG	0x05
10*4882a593Smuzhiyun #define CS2000_RATIO_0		0x06 /* 32 bits, big endian */
11*4882a593Smuzhiyun #define CS2000_RATIO_1		0x0a
12*4882a593Smuzhiyun #define CS2000_RATIO_2		0x0e
13*4882a593Smuzhiyun #define CS2000_RATIO_3		0x12
14*4882a593Smuzhiyun #define CS2000_FUN_CFG_1	0x16
15*4882a593Smuzhiyun #define CS2000_FUN_CFG_2	0x17
16*4882a593Smuzhiyun #define CS2000_FUN_CFG_3	0x1e
17*4882a593Smuzhiyun 
18*4882a593Smuzhiyun /* DEV_ID */
19*4882a593Smuzhiyun #define CS2000_DEVICE_MASK		0xf8
20*4882a593Smuzhiyun #define CS2000_REVISION_MASK		0x07
21*4882a593Smuzhiyun 
22*4882a593Smuzhiyun /* DEV_CTRL */
23*4882a593Smuzhiyun #define CS2000_UNLOCK			0x80
24*4882a593Smuzhiyun #define CS2000_AUX_OUT_DIS		0x02
25*4882a593Smuzhiyun #define CS2000_CLK_OUT_DIS		0x01
26*4882a593Smuzhiyun 
27*4882a593Smuzhiyun /* DEV_CFG_1 */
28*4882a593Smuzhiyun #define CS2000_R_MOD_SEL_MASK		0xe0
29*4882a593Smuzhiyun #define CS2000_R_MOD_SEL_1		0x00
30*4882a593Smuzhiyun #define CS2000_R_MOD_SEL_2		0x20
31*4882a593Smuzhiyun #define CS2000_R_MOD_SEL_4		0x40
32*4882a593Smuzhiyun #define CS2000_R_MOD_SEL_8		0x60
33*4882a593Smuzhiyun #define CS2000_R_MOD_SEL_1_2		0x80
34*4882a593Smuzhiyun #define CS2000_R_MOD_SEL_1_4		0xa0
35*4882a593Smuzhiyun #define CS2000_R_MOD_SEL_1_8		0xc0
36*4882a593Smuzhiyun #define CS2000_R_MOD_SEL_1_16		0xe0
37*4882a593Smuzhiyun #define CS2000_R_SEL_MASK		0x18
38*4882a593Smuzhiyun #define CS2000_R_SEL_SHIFT		3
39*4882a593Smuzhiyun #define CS2000_AUX_OUT_SRC_MASK		0x06
40*4882a593Smuzhiyun #define CS2000_AUX_OUT_SRC_REF_CLK	0x00
41*4882a593Smuzhiyun #define CS2000_AUX_OUT_SRC_CLK_IN	0x02
42*4882a593Smuzhiyun #define CS2000_AUX_OUT_SRC_CLK_OUT	0x04
43*4882a593Smuzhiyun #define CS2000_AUX_OUT_SRC_PLL_LOCK	0x06
44*4882a593Smuzhiyun #define CS2000_EN_DEV_CFG_1		0x01
45*4882a593Smuzhiyun 
46*4882a593Smuzhiyun /* DEV_CFG_2 */
47*4882a593Smuzhiyun #define CS2000_LOCK_CLK_MASK		0x06
48*4882a593Smuzhiyun #define CS2000_LOCK_CLK_SHIFT		1
49*4882a593Smuzhiyun #define CS2000_FRAC_N_SRC_MASK		0x01
50*4882a593Smuzhiyun #define CS2000_FRAC_N_SRC_STATIC	0x00
51*4882a593Smuzhiyun #define CS2000_FRAC_N_SRC_DYNAMIC	0x01
52*4882a593Smuzhiyun 
53*4882a593Smuzhiyun /* GLOBAL_CFG */
54*4882a593Smuzhiyun #define CS2000_FREEZE			0x08
55*4882a593Smuzhiyun #define CS2000_EN_DEV_CFG_2		0x01
56*4882a593Smuzhiyun 
57*4882a593Smuzhiyun /* FUN_CFG_1 */
58*4882a593Smuzhiyun #define CS2000_CLK_SKIP_EN		0x80
59*4882a593Smuzhiyun #define CS2000_AUX_LOCK_CFG_MASK	0x40
60*4882a593Smuzhiyun #define CS2000_AUX_LOCK_CFG_PP_HIGH	0x00
61*4882a593Smuzhiyun #define CS2000_AUX_LOCK_CFG_OD_LOW	0x40
62*4882a593Smuzhiyun #define CS2000_REF_CLK_DIV_MASK		0x18
63*4882a593Smuzhiyun #define CS2000_REF_CLK_DIV_4		0x00
64*4882a593Smuzhiyun #define CS2000_REF_CLK_DIV_2		0x08
65*4882a593Smuzhiyun #define CS2000_REF_CLK_DIV_1		0x10
66*4882a593Smuzhiyun 
67*4882a593Smuzhiyun /* FUN_CFG_2 */
68*4882a593Smuzhiyun #define CS2000_CLK_OUT_UNL		0x10
69*4882a593Smuzhiyun #define CS2000_L_F_RATIO_CFG_MASK	0x08
70*4882a593Smuzhiyun #define CS2000_L_F_RATIO_CFG_20_12	0x00
71*4882a593Smuzhiyun #define CS2000_L_F_RATIO_CFG_12_20	0x08
72*4882a593Smuzhiyun 
73*4882a593Smuzhiyun /* FUN_CFG_3 */
74*4882a593Smuzhiyun #define CS2000_CLK_IN_BW_MASK		0x70
75*4882a593Smuzhiyun #define CS2000_CLK_IN_BW_1		0x00
76*4882a593Smuzhiyun #define CS2000_CLK_IN_BW_2		0x10
77*4882a593Smuzhiyun #define CS2000_CLK_IN_BW_4		0x20
78*4882a593Smuzhiyun #define CS2000_CLK_IN_BW_8		0x30
79*4882a593Smuzhiyun #define CS2000_CLK_IN_BW_16		0x40
80*4882a593Smuzhiyun #define CS2000_CLK_IN_BW_32		0x50
81*4882a593Smuzhiyun #define CS2000_CLK_IN_BW_64		0x60
82*4882a593Smuzhiyun #define CS2000_CLK_IN_BW_128		0x70
83*4882a593Smuzhiyun 
84*4882a593Smuzhiyun #endif
85