xref: /linux/sound/soc/codecs/fs210x.h (revision 55a42f78ffd386e01a5404419f8c5ded7db70a21)
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * fs210x.h -- Driver for the FS2104/5S Audio Amplifier
4  *
5  * Copyright (C) 2016-2025 Shanghai FourSemi Semiconductor Co.,Ltd.
6  */
7 
8 #ifndef __FS210X_H__
9 #define __FS210X_H__
10 
11 #define FS210X_00H_STATUS		0x00
12 #define FS210X_03H_DEVID		0x03
13 #define FS210X_05H_ANASTAT		0x05
14 #define FS210X_06H_DIGSTAT		0x06
15 #define FS210X_0BH_ACCKEY		0x0B
16 #define FS210X_0FH_I2CADDR		0x0F
17 #define FS210X_10H_PWRCTRL		0x10
18 #define FS210X_11H_SYSCTRL		0x11
19 #define FS210X_17H_I2SCTRL		0x17
20 #define FS210X_30H_DACCTRL		0x30
21 #define FS210X_39H_LVOLCTRL		0x39
22 #define FS210X_3AH_RVOLCTRL		0x3A
23 #define FS210X_42H_DACEQWL		0x42
24 #define FS210X_46H_DACEQA		0x46
25 #define FS210X_A1H_PLLCTRL1		0xA1
26 #define FS210X_A2H_PLLCTRL2		0xA2
27 #define FS210X_A3H_PLLCTRL3		0xA3
28 #define FS210X_ABH_INTSTAT		0xAB
29 #define FS210X_ACH_INTSTATR		0xAC
30 
31 #define FS210X_05H_PVDD_SHIFT		14
32 #define FS210X_05H_PVDD_MASK		BIT(14)
33 #define FS210X_05H_OCDL_SHIFT		13
34 #define FS210X_05H_OCDL_MASK		BIT(13)
35 #define FS210X_05H_UVDL_SHIFT		12
36 #define FS210X_05H_UVDL_MASK		BIT(12)
37 #define FS210X_05H_OVDL_SHIFT		11
38 #define FS210X_05H_OVDL_MASK		BIT(11)
39 #define FS210X_05H_OTPDL_SHIFT		10
40 #define FS210X_05H_OTPDL_MASK		BIT(10)
41 #define FS210X_05H_OCRDL_SHIFT		9
42 #define FS210X_05H_OCRDL_MASK		BIT(9)
43 #define FS210X_05H_OCLDL_SHIFT		8
44 #define FS210X_05H_OCLDL_MASK		BIT(8)
45 #define FS210X_05H_DCRDL_SHIFT		7
46 #define FS210X_05H_DCRDL_MASK		BIT(7)
47 #define FS210X_05H_DCLDL_SHIFT		6
48 #define FS210X_05H_DCLDL_MASK		BIT(6)
49 #define FS210X_05H_SRDL_SHIFT		5
50 #define FS210X_05H_SRDL_MASK		BIT(5)
51 #define FS210X_05H_OTWDL_SHIFT		4
52 #define FS210X_05H_OTWDL_MASK		BIT(4)
53 #define FS210X_05H_AMPS_SHIFT		3
54 #define FS210X_05H_AMPS_MASK		BIT(3)
55 #define FS210X_05H_PLLS_SHIFT		1
56 #define FS210X_05H_PLLS_MASK		BIT(1)
57 #define FS210X_05H_ANAS_SHIFT		0
58 #define FS210X_05H_ANAS_MASK		BIT(0)
59 #define FS210X_17H_I2SSR_SHIFT		12
60 #define FS210X_17H_I2SSR_MASK		GENMASK(15, 12)
61 #define FS210X_30H_RMUTE_SHIFT		8
62 #define FS210X_30H_LMUTE_SHIFT		4
63 
64 #define FS210X_0BH_ACCKEY_ON		0x0091
65 #define FS210X_0BH_ACCKEY_OFF		0x0000
66 #define FS210X_10H_I2C_RESET		0x0002
67 #define FS210X_11H_DPS_HIZ		0x0100
68 #define FS210X_11H_DPS_PWDN		0x0000
69 #define FS210X_11H_DPS_PLAY		0x0300
70 #define FS210X_46H_CAM_BURST_L		0x8000
71 #define FS210X_46H_CAM_BURST_R		0x8200
72 #define FS2105S_46H_CAM_BURST_W		0x8400
73 #define FS210X_46H_CAM_CLEAR		0x0000
74 
75 #endif /* __FS210X_H__ */
76