Warning: This file is not a C or C++ file. It does not have highlighting.
1 | /* SPDX-License-Identifier: GPL-2.0-only */ |
---|---|
2 | /* |
3 | * linux/sound/cs35l35.h -- Platform data for CS35l35 |
4 | * |
5 | * Copyright (c) 2016 Cirrus Logic Inc. |
6 | */ |
7 | |
8 | #ifndef __CS35L35_H |
9 | #define __CS35L35_H |
10 | |
11 | struct classh_cfg { |
12 | /* |
13 | * Class H Algorithm Control Variables |
14 | * You can either have it done |
15 | * automatically or you can adjust |
16 | * these variables for tuning |
17 | * |
18 | * if you do not enable the internal algorithm |
19 | * you will get a set of mixer controls for |
20 | * Class H tuning |
21 | * |
22 | * Section 4.3 of the datasheet |
23 | */ |
24 | bool classh_bst_override; |
25 | bool classh_algo_enable; |
26 | int classh_bst_max_limit; |
27 | int classh_mem_depth; |
28 | int classh_release_rate; |
29 | int classh_headroom; |
30 | int classh_wk_fet_disable; |
31 | int classh_wk_fet_delay; |
32 | int classh_wk_fet_thld; |
33 | int classh_vpch_auto; |
34 | int classh_vpch_rate; |
35 | int classh_vpch_man; |
36 | }; |
37 | |
38 | struct monitor_cfg { |
39 | /* |
40 | * Signal Monitor Data |
41 | * highly configurable signal monitoring |
42 | * data positioning and different types of |
43 | * monitoring data. |
44 | * |
45 | * Section 4.8.2 - 4.8.4 of the datasheet |
46 | */ |
47 | bool is_present; |
48 | bool imon_specs; |
49 | bool vmon_specs; |
50 | bool vpmon_specs; |
51 | bool vbstmon_specs; |
52 | bool vpbrstat_specs; |
53 | bool zerofill_specs; |
54 | u8 imon_dpth; |
55 | u8 imon_loc; |
56 | u8 imon_frm; |
57 | u8 imon_scale; |
58 | u8 vmon_dpth; |
59 | u8 vmon_loc; |
60 | u8 vmon_frm; |
61 | u8 vpmon_dpth; |
62 | u8 vpmon_loc; |
63 | u8 vpmon_frm; |
64 | u8 vbstmon_dpth; |
65 | u8 vbstmon_loc; |
66 | u8 vbstmon_frm; |
67 | u8 vpbrstat_dpth; |
68 | u8 vpbrstat_loc; |
69 | u8 vpbrstat_frm; |
70 | u8 zerofill_dpth; |
71 | u8 zerofill_loc; |
72 | u8 zerofill_frm; |
73 | }; |
74 | |
75 | struct cs35l35_platform_data { |
76 | |
77 | /* Stereo (2 Device) */ |
78 | bool stereo; |
79 | /* serial port drive strength */ |
80 | int sp_drv_str; |
81 | /* serial port drive in unused slots */ |
82 | int sp_drv_unused; |
83 | /* Boost Power Down with FET */ |
84 | bool bst_pdn_fet_on; |
85 | /* Boost Voltage : used if ClassH Algo Enabled */ |
86 | int bst_vctl; |
87 | /* Boost Converter Peak Current CTRL */ |
88 | int bst_ipk; |
89 | /* Amp Gain Zero Cross */ |
90 | bool gain_zc; |
91 | /* Audio Input Location */ |
92 | int aud_channel; |
93 | /* Advisory Input Location */ |
94 | int adv_channel; |
95 | /* Shared Boost for stereo */ |
96 | bool shared_bst; |
97 | /* Specifies this amp is using an external boost supply */ |
98 | bool ext_bst; |
99 | /* Inductor Value */ |
100 | int boost_ind; |
101 | /* ClassH Algorithm */ |
102 | struct classh_cfg classh_algo; |
103 | /* Monitor Config */ |
104 | struct monitor_cfg mon_cfg; |
105 | }; |
106 | |
107 | #endif /* __CS35L35_H */ |
108 |
Warning: This file is not a C or C++ file. It does not have highlighting.