xref: /openbmc/linux/sound/pci/oxygen/cs2000.h (revision b2441318)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2268304f4SClemens Ladisch #ifndef CS2000_H_INCLUDED
3268304f4SClemens Ladisch #define CS2000_H_INCLUDED
4268304f4SClemens Ladisch 
5268304f4SClemens Ladisch #define CS2000_DEV_ID		0x01
6268304f4SClemens Ladisch #define CS2000_DEV_CTRL		0x02
7268304f4SClemens Ladisch #define CS2000_DEV_CFG_1	0x03
8268304f4SClemens Ladisch #define CS2000_DEV_CFG_2	0x04
9268304f4SClemens Ladisch #define CS2000_GLOBAL_CFG	0x05
10268304f4SClemens Ladisch #define CS2000_RATIO_0		0x06 /* 32 bits, big endian */
11268304f4SClemens Ladisch #define CS2000_RATIO_1		0x0a
12268304f4SClemens Ladisch #define CS2000_RATIO_2		0x0e
13268304f4SClemens Ladisch #define CS2000_RATIO_3		0x12
14268304f4SClemens Ladisch #define CS2000_FUN_CFG_1	0x16
15268304f4SClemens Ladisch #define CS2000_FUN_CFG_2	0x17
16268304f4SClemens Ladisch #define CS2000_FUN_CFG_3	0x1e
17268304f4SClemens Ladisch 
18268304f4SClemens Ladisch /* DEV_ID */
19268304f4SClemens Ladisch #define CS2000_DEVICE_MASK		0xf8
20268304f4SClemens Ladisch #define CS2000_REVISION_MASK		0x07
21268304f4SClemens Ladisch 
22268304f4SClemens Ladisch /* DEV_CTRL */
23268304f4SClemens Ladisch #define CS2000_UNLOCK			0x80
24268304f4SClemens Ladisch #define CS2000_AUX_OUT_DIS		0x02
25268304f4SClemens Ladisch #define CS2000_CLK_OUT_DIS		0x01
26268304f4SClemens Ladisch 
27268304f4SClemens Ladisch /* DEV_CFG_1 */
28268304f4SClemens Ladisch #define CS2000_R_MOD_SEL_MASK		0xe0
29268304f4SClemens Ladisch #define CS2000_R_MOD_SEL_1		0x00
30268304f4SClemens Ladisch #define CS2000_R_MOD_SEL_2		0x20
31268304f4SClemens Ladisch #define CS2000_R_MOD_SEL_4		0x40
32268304f4SClemens Ladisch #define CS2000_R_MOD_SEL_8		0x60
33268304f4SClemens Ladisch #define CS2000_R_MOD_SEL_1_2		0x80
34268304f4SClemens Ladisch #define CS2000_R_MOD_SEL_1_4		0xa0
35268304f4SClemens Ladisch #define CS2000_R_MOD_SEL_1_8		0xc0
36268304f4SClemens Ladisch #define CS2000_R_MOD_SEL_1_16		0xe0
37268304f4SClemens Ladisch #define CS2000_R_SEL_MASK		0x18
38268304f4SClemens Ladisch #define CS2000_R_SEL_SHIFT		3
39268304f4SClemens Ladisch #define CS2000_AUX_OUT_SRC_MASK		0x06
40268304f4SClemens Ladisch #define CS2000_AUX_OUT_SRC_REF_CLK	0x00
41268304f4SClemens Ladisch #define CS2000_AUX_OUT_SRC_CLK_IN	0x02
42268304f4SClemens Ladisch #define CS2000_AUX_OUT_SRC_CLK_OUT	0x04
43268304f4SClemens Ladisch #define CS2000_AUX_OUT_SRC_PLL_LOCK	0x06
44268304f4SClemens Ladisch #define CS2000_EN_DEV_CFG_1		0x01
45268304f4SClemens Ladisch 
46268304f4SClemens Ladisch /* DEV_CFG_2 */
47268304f4SClemens Ladisch #define CS2000_LOCK_CLK_MASK		0x06
48268304f4SClemens Ladisch #define CS2000_LOCK_CLK_SHIFT		1
49268304f4SClemens Ladisch #define CS2000_FRAC_N_SRC_MASK		0x01
50268304f4SClemens Ladisch #define CS2000_FRAC_N_SRC_STATIC	0x00
51268304f4SClemens Ladisch #define CS2000_FRAC_N_SRC_DYNAMIC	0x01
52268304f4SClemens Ladisch 
53268304f4SClemens Ladisch /* GLOBAL_CFG */
54268304f4SClemens Ladisch #define CS2000_FREEZE			0x08
55268304f4SClemens Ladisch #define CS2000_EN_DEV_CFG_2		0x01
56268304f4SClemens Ladisch 
57268304f4SClemens Ladisch /* FUN_CFG_1 */
58268304f4SClemens Ladisch #define CS2000_CLK_SKIP_EN		0x80
59268304f4SClemens Ladisch #define CS2000_AUX_LOCK_CFG_MASK	0x40
60268304f4SClemens Ladisch #define CS2000_AUX_LOCK_CFG_PP_HIGH	0x00
61268304f4SClemens Ladisch #define CS2000_AUX_LOCK_CFG_OD_LOW	0x40
62268304f4SClemens Ladisch #define CS2000_REF_CLK_DIV_MASK		0x18
63268304f4SClemens Ladisch #define CS2000_REF_CLK_DIV_4		0x00
64268304f4SClemens Ladisch #define CS2000_REF_CLK_DIV_2		0x08
65268304f4SClemens Ladisch #define CS2000_REF_CLK_DIV_1		0x10
66268304f4SClemens Ladisch 
67268304f4SClemens Ladisch /* FUN_CFG_2 */
68268304f4SClemens Ladisch #define CS2000_CLK_OUT_UNL		0x10
69268304f4SClemens Ladisch #define CS2000_L_F_RATIO_CFG_MASK	0x08
70268304f4SClemens Ladisch #define CS2000_L_F_RATIO_CFG_20_12	0x00
71268304f4SClemens Ladisch #define CS2000_L_F_RATIO_CFG_12_20	0x08
72268304f4SClemens Ladisch 
73268304f4SClemens Ladisch /* FUN_CFG_3 */
74268304f4SClemens Ladisch #define CS2000_CLK_IN_BW_MASK		0x70
75268304f4SClemens Ladisch #define CS2000_CLK_IN_BW_1		0x00
76268304f4SClemens Ladisch #define CS2000_CLK_IN_BW_2		0x10
77268304f4SClemens Ladisch #define CS2000_CLK_IN_BW_4		0x20
78268304f4SClemens Ladisch #define CS2000_CLK_IN_BW_8		0x30
79268304f4SClemens Ladisch #define CS2000_CLK_IN_BW_16		0x40
80268304f4SClemens Ladisch #define CS2000_CLK_IN_BW_32		0x50
81268304f4SClemens Ladisch #define CS2000_CLK_IN_BW_64		0x60
82268304f4SClemens Ladisch #define CS2000_CLK_IN_BW_128		0x70
83268304f4SClemens Ladisch 
84268304f4SClemens Ladisch #endif
85