Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/include/sound/cs35l35.h
26278 views
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
109