hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (c) 2023 Rockchip Electronics Co., Ltd.
 *
 */
 
#ifndef __TDA7803_H__
#define __TDA7803_H__
 
/* tda7803 registers space*/
#define TDA7803_REG0                          (0x00)
#define CH1_AMP_SBI_MODE                      (0x00 << 0)
#define CH1_AMP_ABI_MODE                      (0x01 << 0)
#define CH2_AMP_SBI_MODE                      (0x00 << 1)
#define CH2_AMP_ABI_MODE                      (0x01 << 1)
#define CH3_AMP_SBI_MODE                      (0x00 << 2)
#define CH3_AMP_ABI_MODE                      (0x01 << 2)
#define CH4_AMP_SBI_MODE                      (0x00 << 3)
#define CH4_AMP_ABI_MODE                      (0x01 << 3)
#define CH1_TRI_MODE_OFF                      (0x00 << 4)
#define CH1_TRI_MODE_ON                       (0x01 << 4)
#define CH2_TRI_MODE_OFF                      (0x00 << 5)
#define CH2_TRI_MODE_ON                       (0x01 << 5)
#define CH3_TRI_MODE_OFF                      (0x00 << 6)
#define CH3_TRI_MODE_ON                       (0x01 << 6)
#define CH4_TRI_MODE_OFF                      (0x00 << 7)
#define CH4_TRI_MODE_ON                       (0x01 << 7)
 
#define TDA7803_REG1                          (0x01)
#define CH2_4_GAIN_GV1                        (0x00 << 0)
#define CH2_4_GAIN_GV2                        (0x01 << 0)
#define CH2_4_GAIN_GV3                        (0x02 << 0)
#define CH2_4_GAIN_GV4                        (0x03 << 0)
#define CH1_3_GAIN_GV1                        (0x00 << 2)
#define CH1_3_GAIN_GV2                        (0x01 << 2)
#define CH1_3_GAIN_GV3                        (0x02 << 2)
#define CH1_3_GAIN_GV4                        (0x03 << 2)
#define GAIN_SELECT_NO                        (0x00 << 4)
#define GAIN_SELECT_6DB                       (0x01 << 4)
#define GAIN_SELECT_12DB                      (0x02 << 4)
#define GAIN_SELECT_NOT_USED                  (0x03 << 4)
#define IMPEDANCE_OPTIMIZER_REAR_2OHM         (0x00 << 6)
#define IMPEDANCE_OPTIMIZER_REAR_4OHM         (0x01 << 6)
#define IMPEDANCE_OPTIMIZER_FRONT_2OHM        (0x00 << 7)
#define IMPEDANCE_OPTIMIZER_FRONT_4OHM        (0x01 << 7)
 
#define TDA7803_REG2                          (0x02)
#define LOW_BATTERY_MUTE_THRESHOLD_1          (0x00 << 0)
#define LOW_BATTERY_MUTE_THRESHOLD_2          (0x01 << 0)
#define DIGITAL_MUTE_ON                       (0x00 << 2)
#define DIGITAL_MUTE_OFF                      (0x01 << 2)
#define CH2_4_MUTE                            (0x00 << 3)
#define CH2_4_UMUTE                           (0x01 << 3)
#define CH1_3_MUTE                            (0x00 << 4)
#define CH1_3_UMUTE                           (0x01 << 4)
#define MUTE_TIME_SETTING_1_45MS              (0x00 << 5)
#define MUTE_TIME_SETTING_5_8MS               (0x01 << 5)
#define MUTE_TIME_SETTING_11_6MS              (0x02 << 5)
#define MUTE_TIME_SETTING_23_2MS              (0x03 << 5)
#define MUTE_TIME_SETTING_46_4MS              (0x04 << 5)
#define MUTE_TIME_SETTING_92_8MS              (0x05 << 5)
#define MUTE_TIME_SETTING_185_5MS             (0x06 << 5)
#define MUTE_TIME_SETTING_371_1MS             (0x07 << 5)
 
#define TDA7803_REG3                          (0x03)
#define HIGH_PASS_FILTER_DISABLE              (0x00 << 0)
#define HIGH_PASS_FILTER_ENABLE               (0x01 << 0)
#define INPUT_OFFSET_DETECTION_DIS            (0x00 << 1)
#define INPUT_OFFSET_DETECTION_EN             (0x01 << 1)
#define NOISE_GATING_FUNCTION_EN              (0x00 << 2)
#define NOISE_GATING_FUNCTION_DIS             (0x01 << 2)
#define INPUT_FORMAT_I2S_STD                  (0x00 << 3)
#define INPUT_FORMAT_TDM_4CH                  (0x01 << 3)
#define INPUT_FORMAT_TDM_8CH_MODEL1           (0x02 << 3)
#define INPUT_FORMAT_TDM_8CH_MODEL2           (0x03 << 3)
#define INPUT_FORMAT_TDM_16CH_MODEL1          (0x04 << 3)
#define INPUT_FORMAT_TDM_16CH_MODEL2          (0x05 << 3)
#define INPUT_FORMAT_TDM_16CH_MODEL3          (0x06 << 3)
#define INPUT_FORMAT_TDM_16CH_MODEL4          (0x07 << 3)
#define SAMPLE_FREQUENCY_RANGE_44100HZ        (0x00 << 6)
#define SAMPLE_FREQUENCY_RANGE_48000HZ        (0x01 << 6)
#define SAMPLE_FREQUENCY_RANGE_96000HZ        (0x02 << 6)
#define SAMPLE_FREQUENCY_RANGE_192000HZ       (0x03 << 6)
 
#define TDA7803_REG4                          (0x04)
#define DIAGNOSTIC_MODE_DISABLE               (0x00 << 0)
#define DIAGNOSTIC_MODE_ENABLE                (0x01 << 0)
#define CH2_4_SPEAKER_MODE                    (0x00 << 1)
#define CH2_4_LINE_DRIVER_MODE                (0x01 << 1)
#define CH1_3_SPEAKER_MODE                    (0x00 << 2)
#define CH1_3_LINE_DRIVER_MODE                (0x01 << 2)
#define DIAGNOSTIC_DISABLE                    (0X00 << 3)
#define DIAGNOSTIC_ENABLE                     (0X01 << 3)
#define DIAGNOSTIC_CURRENT_THRESHOLD_HIGH     (0X00 << 4)
#define DIAGNOSTIC_CURRENT_THRESHOLD_LOW      (0X01 << 4)
#define OFFSET_INFORMATION_YES                (0X00 << 5)
#define OFFSET_INFORMATION_NO                 (0X01 << 5)
#define SHORT_FAULT_INFORMATION_YES           (0X00 << 6)
#define SHORT_FAULT_INFORMATION_NO            (0X01 << 6)
 
#define TDA7803_REG5                          (0x05)
#define CAPABILITY_ENHANCER_DISABLE           (0x00 << 1)
#define CAPABILITY_ENHANCER_ENABLE            (0x0F << 1)
#define THERMAL_THRESHOLD_DEFAULT             (0x00 << 6)
#define THERMAL_THRESHOLD_TW_NEGATIVE_10      (0x01 << 6)
#define THERMAL_THRESHOLD_TW_NEGATIVE_20      (0x02 << 6)
 
#define TDA7803_REG6                          (0x06)
#define PARALLEL_MODE_CONFIG_MODE_1           (0x00 << 2)
#define PARALLEL_MODE_CONFIG_MODE_2           (0x01 << 2)
#define PARALLEL_MODE_CONFIG_MODE_3           (0x02 << 2)
#define PARALLEL_MODE_CONFIG_MODE_4           (0x03 << 2)
#define DIAGNOSITC_PULSE_STRETCH_MODE_1       (0x00 << 5)
#define DIAGNOSITC_PULSE_STRETCH_MODE_2       (0x01 << 5)
#define DIAGNOSITC_PULSE_STRETCH_MODE_3       (0x02 << 5)
#define DIAGNOSITC_PULSE_STRETCH_MODE_4       (0x03 << 5)
#define DIAGNOSITC_PULSE_STRETCH_MODE_5       (0x04 << 5)
#define DIAGNOSITC_PULSE_STRETCH_DEFAULT      (0x05 << 5)
 
#define TDA7803_REG7                          (0x07)
#define AMPLIEFIR_SWITCH_OFF                  (0x00 << 0)
#define AMPLIEFIR_SWITCH_ON                   (0x01 << 0)
#define CLIPP_LEVEL_1_REAR_CHANNELS2_4        (0x00 << 1)
#define CLIPP_LEVEL_2_REAR_CHANNELS2_4        (0x01 << 1)
#define CLIPP_LEVEL_3_REAR_CHANNELS2_4        (0x02 << 1)
#define NOT_CLIPP_FOR_REAR_CHANNELS2_4        (0x03 << 1)
#define CLIPP_LEVEL_1_REAR_CHANNELS1_3        (0x00 << 3)
#define CLIPP_LEVEL_2_REAR_CHANNELS1_3        (0x01 << 3)
#define CLIPP_LEVEL_3_REAR_CHANNELS1_3        (0x02 << 3)
#define NOT_CLIPP_FOR_REAR_CHANNELS1_3        (0x03 << 3)
#define TEMPERATURE_WARNING_TW1               (0x00 << 5)
#define TEMPERATURE_WARNING_TW2               (0x01 << 5)
#define TEMPERATURE_WARNING_TW3               (0x02 << 5)
#define TEMPERATURE_WARNING_TW4               (0x03 << 5)
#define NOT_TEMPERATURE_WARNING               (0x04 << 5)
 
#define TDA7803_REGMAX                        (0x08)
#endif /* __TDA7803_H__ */